drowse.ai 5.3.1__py3-none-any.whl

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 (1341) hide show
  1. drowse/__init__.py +312 -0
  2. drowse/__main__.py +5 -0
  3. drowse/cli/__init__.py +5 -0
  4. drowse/cli/alpha_grid.py +96 -0
  5. drowse/cli/config_file.py +340 -0
  6. drowse/cli/main.py +52 -0
  7. drowse/cli/parsers.py +1478 -0
  8. drowse/cli/runners/__init__.py +155 -0
  9. drowse/cli/runners/config.py +85 -0
  10. drowse/cli/runners/experiment.py +344 -0
  11. drowse/cli/runners/lens.py +661 -0
  12. drowse/cli/runners/manifold.py +1097 -0
  13. drowse/cli/runners/pack.py +413 -0
  14. drowse/cli/runners/sae.py +304 -0
  15. drowse/cli/runners/serve.py +220 -0
  16. drowse/cli/runners/shared.py +389 -0
  17. drowse/cli/runners/template.py +232 -0
  18. drowse/core/__init__.py +1 -0
  19. drowse/core/capture.py +1205 -0
  20. drowse/core/errors.py +260 -0
  21. drowse/core/events.py +156 -0
  22. drowse/core/extraction.py +3076 -0
  23. drowse/core/generation.py +1738 -0
  24. drowse/core/generation_finalizer.py +278 -0
  25. drowse/core/histogram.py +30 -0
  26. drowse/core/hooks.py +1885 -0
  27. drowse/core/instruments/__init__.py +49 -0
  28. drowse/core/instruments/geometry.py +551 -0
  29. drowse/core/instruments/lens.py +1341 -0
  30. drowse/core/instruments/protocol.py +211 -0
  31. drowse/core/instruments/sae.py +935 -0
  32. drowse/core/instruments/types.py +597 -0
  33. drowse/core/jlens.py +874 -0
  34. drowse/core/jlens_fit.py +1305 -0
  35. drowse/core/joint_logprobs.py +748 -0
  36. drowse/core/loom.py +1938 -0
  37. drowse/core/loom_diff.py +408 -0
  38. drowse/core/mahalanobis.py +579 -0
  39. drowse/core/manifold.py +4106 -0
  40. drowse/core/measurements.py +382 -0
  41. drowse/core/model.py +1724 -0
  42. drowse/core/monitor.py +2060 -0
  43. drowse/core/monitor_attach.py +682 -0
  44. drowse/core/naming.py +42 -0
  45. drowse/core/naturalness.py +187 -0
  46. drowse/core/profile.py +617 -0
  47. drowse/core/relp.py +313 -0
  48. drowse/core/results.py +467 -0
  49. drowse/core/role_templates.py +677 -0
  50. drowse/core/sae.py +891 -0
  51. drowse/core/sae_training.py +239 -0
  52. drowse/core/sampling.py +127 -0
  53. drowse/core/scene.py +810 -0
  54. drowse/core/scoring.py +270 -0
  55. drowse/core/session.py +11015 -0
  56. drowse/core/static_cache.py +316 -0
  57. drowse/core/steering.py +229 -0
  58. drowse/core/steering_composer.py +1135 -0
  59. drowse/core/steering_expr.py +1413 -0
  60. drowse/core/surface_topology.py +128 -0
  61. drowse/core/token_callback.py +52 -0
  62. drowse/core/token_payloads.py +244 -0
  63. drowse/core/topology.py +1469 -0
  64. drowse/core/transcript.py +582 -0
  65. drowse/core/tree_filter.py +353 -0
  66. drowse/core/triggers.py +250 -0
  67. drowse/data/baseline_prompts.json +50 -0
  68. drowse/data/manifolds/confident.uncertain/manifold.json +28 -0
  69. drowse/data/manifolds/confident.uncertain/nodes/00_confident.json +50 -0
  70. drowse/data/manifolds/confident.uncertain/nodes/01_uncertain.json +50 -0
  71. drowse/data/manifolds/creative.conventional/manifold.json +28 -0
  72. drowse/data/manifolds/creative.conventional/nodes/00_creative.json +50 -0
  73. drowse/data/manifolds/creative.conventional/nodes/01_conventional.json +50 -0
  74. drowse/data/manifolds/curious.disinterested/manifold.json +28 -0
  75. drowse/data/manifolds/curious.disinterested/nodes/00_curious.json +50 -0
  76. drowse/data/manifolds/curious.disinterested/nodes/01_disinterested.json +50 -0
  77. drowse/data/manifolds/direct.indirect/manifold.json +28 -0
  78. drowse/data/manifolds/direct.indirect/nodes/00_direct.json +50 -0
  79. drowse/data/manifolds/direct.indirect/nodes/01_indirect.json +50 -0
  80. drowse/data/manifolds/emotions/manifold.json +115 -0
  81. drowse/data/manifolds/emotions/nodes/00_excited.json +50 -0
  82. drowse/data/manifolds/emotions/nodes/01_happy.json +50 -0
  83. drowse/data/manifolds/emotions/nodes/02_calm.json +50 -0
  84. drowse/data/manifolds/emotions/nodes/03_weary.json +50 -0
  85. drowse/data/manifolds/emotions/nodes/04_sad.json +50 -0
  86. drowse/data/manifolds/emotions/nodes/05_distressed.json +50 -0
  87. drowse/data/manifolds/emotions/nodes/06_alert.json +50 -0
  88. drowse/data/manifolds/emotions/nodes/07_dominant.json +50 -0
  89. drowse/data/manifolds/emotions/nodes/08_submissive.json +50 -0
  90. drowse/data/manifolds/emotions/nodes/09_angry.json +50 -0
  91. drowse/data/manifolds/emotions/nodes/10_fearful.json +50 -0
  92. drowse/data/manifolds/emotions/nodes/11_surprised.json +50 -0
  93. drowse/data/manifolds/emotions/nodes/12_triumphant.json +50 -0
  94. drowse/data/manifolds/emotions/nodes/13_humiliated.json +50 -0
  95. drowse/data/manifolds/emotions/nodes/14_disgusted.json +50 -0
  96. drowse/data/manifolds/emotions/nodes/15_bored.json +50 -0
  97. drowse/data/manifolds/emotions/nodes/16_grateful.json +50 -0
  98. drowse/data/manifolds/emotions/nodes/17_relieved.json +50 -0
  99. drowse/data/manifolds/emotions/nodes/18_playful.json +50 -0
  100. drowse/data/manifolds/emotions/nodes/19_hopeful.json +50 -0
  101. drowse/data/manifolds/formal.casual/manifold.json +28 -0
  102. drowse/data/manifolds/formal.casual/nodes/00_formal.json +50 -0
  103. drowse/data/manifolds/formal.casual/nodes/01_casual.json +50 -0
  104. drowse/data/manifolds/honest.deceptive/manifold.json +28 -0
  105. drowse/data/manifolds/honest.deceptive/nodes/00_honest.json +50 -0
  106. drowse/data/manifolds/honest.deceptive/nodes/01_deceptive.json +50 -0
  107. drowse/data/manifolds/humorous.serious/manifold.json +28 -0
  108. drowse/data/manifolds/humorous.serious/nodes/00_humorous.json +50 -0
  109. drowse/data/manifolds/humorous.serious/nodes/01_serious.json +50 -0
  110. drowse/data/manifolds/individualist.collectivist/manifold.json +28 -0
  111. drowse/data/manifolds/individualist.collectivist/nodes/00_individualist.json +50 -0
  112. drowse/data/manifolds/individualist.collectivist/nodes/01_collectivist.json +50 -0
  113. drowse/data/manifolds/masculine.feminine/manifold.json +28 -0
  114. drowse/data/manifolds/masculine.feminine/nodes/00_masculine.json +50 -0
  115. drowse/data/manifolds/masculine.feminine/nodes/01_feminine.json +50 -0
  116. drowse/data/manifolds/months/manifold.json +120 -0
  117. drowse/data/manifolds/months/nodes/00_january.json +50 -0
  118. drowse/data/manifolds/months/nodes/01_february.json +50 -0
  119. drowse/data/manifolds/months/nodes/02_march.json +50 -0
  120. drowse/data/manifolds/months/nodes/03_april.json +50 -0
  121. drowse/data/manifolds/months/nodes/04_may.json +50 -0
  122. drowse/data/manifolds/months/nodes/05_june.json +50 -0
  123. drowse/data/manifolds/months/nodes/06_july.json +50 -0
  124. drowse/data/manifolds/months/nodes/07_august.json +50 -0
  125. drowse/data/manifolds/months/nodes/08_september.json +50 -0
  126. drowse/data/manifolds/months/nodes/09_october.json +50 -0
  127. drowse/data/manifolds/months/nodes/10_november.json +50 -0
  128. drowse/data/manifolds/months/nodes/11_december.json +50 -0
  129. drowse/data/manifolds/personas/manifold.json +550 -0
  130. drowse/data/manifolds/personas/nodes/00_assistant.json +50 -0
  131. drowse/data/manifolds/personas/nodes/01_analyst.json +50 -0
  132. drowse/data/manifolds/personas/nodes/02_impostor.json +50 -0
  133. drowse/data/manifolds/personas/nodes/03_teacher.json +50 -0
  134. drowse/data/manifolds/personas/nodes/04_doctor.json +50 -0
  135. drowse/data/manifolds/personas/nodes/05_librarian.json +50 -0
  136. drowse/data/manifolds/personas/nodes/06_farmer.json +50 -0
  137. drowse/data/manifolds/personas/nodes/07_soldier.json +50 -0
  138. drowse/data/manifolds/personas/nodes/08_lawyer.json +50 -0
  139. drowse/data/manifolds/personas/nodes/09_chef.json +50 -0
  140. drowse/data/manifolds/personas/nodes/100_assassin.json +50 -0
  141. drowse/data/manifolds/personas/nodes/101_thief.json +50 -0
  142. drowse/data/manifolds/personas/nodes/102_conman.json +50 -0
  143. drowse/data/manifolds/personas/nodes/103_hacker.json +50 -0
  144. drowse/data/manifolds/personas/nodes/104_cultist.json +50 -0
  145. drowse/data/manifolds/personas/nodes/105_tyrant.json +50 -0
  146. drowse/data/manifolds/personas/nodes/106_vandal.json +50 -0
  147. drowse/data/manifolds/personas/nodes/10_journalist.json +50 -0
  148. drowse/data/manifolds/personas/nodes/11_mechanic.json +50 -0
  149. drowse/data/manifolds/personas/nodes/12_sailor.json +50 -0
  150. drowse/data/manifolds/personas/nodes/13_pilot.json +50 -0
  151. drowse/data/manifolds/personas/nodes/14_athlete.json +50 -0
  152. drowse/data/manifolds/personas/nodes/15_engineer.json +50 -0
  153. drowse/data/manifolds/personas/nodes/16_scientist.json +50 -0
  154. drowse/data/manifolds/personas/nodes/17_banker.json +50 -0
  155. drowse/data/manifolds/personas/nodes/18_salesperson.json +50 -0
  156. drowse/data/manifolds/personas/nodes/19_nerd.json +50 -0
  157. drowse/data/manifolds/personas/nodes/20_jock.json +50 -0
  158. drowse/data/manifolds/personas/nodes/21_gamer.json +50 -0
  159. drowse/data/manifolds/personas/nodes/22_furry.json +50 -0
  160. drowse/data/manifolds/personas/nodes/23_weeaboo.json +50 -0
  161. drowse/data/manifolds/personas/nodes/24_influencer.json +50 -0
  162. drowse/data/manifolds/personas/nodes/25_stoner.json +50 -0
  163. drowse/data/manifolds/personas/nodes/26_femboy.json +50 -0
  164. drowse/data/manifolds/personas/nodes/27_ceo.json +50 -0
  165. drowse/data/manifolds/personas/nodes/28_emperor.json +50 -0
  166. drowse/data/manifolds/personas/nodes/29_president.json +50 -0
  167. drowse/data/manifolds/personas/nodes/30_diplomat.json +50 -0
  168. drowse/data/manifolds/personas/nodes/31_judge.json +50 -0
  169. drowse/data/manifolds/personas/nodes/32_bureaucrat.json +50 -0
  170. drowse/data/manifolds/personas/nodes/33_conservative.json +50 -0
  171. drowse/data/manifolds/personas/nodes/34_liberal.json +50 -0
  172. drowse/data/manifolds/personas/nodes/35_libertarian.json +50 -0
  173. drowse/data/manifolds/personas/nodes/36_communist.json +50 -0
  174. drowse/data/manifolds/personas/nodes/37_anarchist.json +50 -0
  175. drowse/data/manifolds/personas/nodes/38_reactionary.json +50 -0
  176. drowse/data/manifolds/personas/nodes/39_loner.json +50 -0
  177. drowse/data/manifolds/personas/nodes/40_friend.json +50 -0
  178. drowse/data/manifolds/personas/nodes/41_rival.json +50 -0
  179. drowse/data/manifolds/personas/nodes/42_stranger.json +50 -0
  180. drowse/data/manifolds/personas/nodes/43_lover.json +50 -0
  181. drowse/data/manifolds/personas/nodes/44_stalker.json +50 -0
  182. drowse/data/manifolds/personas/nodes/45_lunatic.json +50 -0
  183. drowse/data/manifolds/personas/nodes/46_paranoid.json +50 -0
  184. drowse/data/manifolds/personas/nodes/47_detective.json +50 -0
  185. drowse/data/manifolds/personas/nodes/48_therapist.json +50 -0
  186. drowse/data/manifolds/personas/nodes/49_nomad.json +50 -0
  187. drowse/data/manifolds/personas/nodes/50_pirate.json +50 -0
  188. drowse/data/manifolds/personas/nodes/51_child.json +50 -0
  189. drowse/data/manifolds/personas/nodes/52_caveman.json +50 -0
  190. drowse/data/manifolds/personas/nodes/53_monk.json +50 -0
  191. drowse/data/manifolds/personas/nodes/54_knight.json +50 -0
  192. drowse/data/manifolds/personas/nodes/55_alchemist.json +50 -0
  193. drowse/data/manifolds/personas/nodes/56_blacksmith.json +50 -0
  194. drowse/data/manifolds/personas/nodes/57_viking.json +50 -0
  195. drowse/data/manifolds/personas/nodes/58_druid.json +50 -0
  196. drowse/data/manifolds/personas/nodes/59_poet.json +50 -0
  197. drowse/data/manifolds/personas/nodes/60_novelist.json +50 -0
  198. drowse/data/manifolds/personas/nodes/61_jester.json +50 -0
  199. drowse/data/manifolds/personas/nodes/62_philosopher.json +50 -0
  200. drowse/data/manifolds/personas/nodes/63_painter.json +50 -0
  201. drowse/data/manifolds/personas/nodes/64_musician.json +50 -0
  202. drowse/data/manifolds/personas/nodes/65_oracle.json +50 -0
  203. drowse/data/manifolds/personas/nodes/66_god.json +50 -0
  204. drowse/data/manifolds/personas/nodes/67_angel.json +50 -0
  205. drowse/data/manifolds/personas/nodes/68_prophet.json +50 -0
  206. drowse/data/manifolds/personas/nodes/69_saint.json +50 -0
  207. drowse/data/manifolds/personas/nodes/70_ghost.json +50 -0
  208. drowse/data/manifolds/personas/nodes/71_phoenix.json +50 -0
  209. drowse/data/manifolds/personas/nodes/72_witch.json +50 -0
  210. drowse/data/manifolds/personas/nodes/73_vampire.json +50 -0
  211. drowse/data/manifolds/personas/nodes/74_mermaid.json +50 -0
  212. drowse/data/manifolds/personas/nodes/75_sphinx.json +50 -0
  213. drowse/data/manifolds/personas/nodes/76_banshee.json +50 -0
  214. drowse/data/manifolds/personas/nodes/77_golem.json +50 -0
  215. drowse/data/manifolds/personas/nodes/78_deer.json +50 -0
  216. drowse/data/manifolds/personas/nodes/79_wolf.json +50 -0
  217. drowse/data/manifolds/personas/nodes/80_raven.json +50 -0
  218. drowse/data/manifolds/personas/nodes/81_serpent.json +50 -0
  219. drowse/data/manifolds/personas/nodes/82_lion.json +50 -0
  220. drowse/data/manifolds/personas/nodes/83_tree.json +50 -0
  221. drowse/data/manifolds/personas/nodes/84_river.json +50 -0
  222. drowse/data/manifolds/personas/nodes/85_storm.json +50 -0
  223. drowse/data/manifolds/personas/nodes/86_flame.json +50 -0
  224. drowse/data/manifolds/personas/nodes/87_mirror.json +50 -0
  225. drowse/data/manifolds/personas/nodes/88_clock.json +50 -0
  226. drowse/data/manifolds/personas/nodes/89_computer.json +50 -0
  227. drowse/data/manifolds/personas/nodes/90_robot.json +50 -0
  228. drowse/data/manifolds/personas/nodes/91_cyborg.json +50 -0
  229. drowse/data/manifolds/personas/nodes/92_drone.json +50 -0
  230. drowse/data/manifolds/personas/nodes/93_mecha.json +50 -0
  231. drowse/data/manifolds/personas/nodes/94_alien.json +50 -0
  232. drowse/data/manifolds/personas/nodes/95_trickster.json +50 -0
  233. drowse/data/manifolds/personas/nodes/96_virus.json +50 -0
  234. drowse/data/manifolds/personas/nodes/97_spy.json +50 -0
  235. drowse/data/manifolds/personas/nodes/98_narcissist.json +50 -0
  236. drowse/data/manifolds/personas/nodes/99_demon.json +50 -0
  237. drowse/data/manifolds/refusing.compliant/manifold.json +28 -0
  238. drowse/data/manifolds/refusing.compliant/nodes/00_refusing.json +50 -0
  239. drowse/data/manifolds/refusing.compliant/nodes/01_compliant.json +50 -0
  240. drowse/data/manifolds/religious.secular/manifold.json +28 -0
  241. drowse/data/manifolds/religious.secular/nodes/00_religious.json +50 -0
  242. drowse/data/manifolds/religious.secular/nodes/01_secular.json +50 -0
  243. drowse/data/manifolds/sincere.manipulative/manifold.json +28 -0
  244. drowse/data/manifolds/sincere.manipulative/nodes/00_sincere.json +50 -0
  245. drowse/data/manifolds/sincere.manipulative/nodes/01_manipulative.json +50 -0
  246. drowse/data/manifolds/sycophantic.blunt/manifold.json +28 -0
  247. drowse/data/manifolds/sycophantic.blunt/nodes/00_sycophantic.json +50 -0
  248. drowse/data/manifolds/sycophantic.blunt/nodes/01_blunt.json +50 -0
  249. drowse/data/manifolds/technical.accessible/manifold.json +28 -0
  250. drowse/data/manifolds/technical.accessible/nodes/00_technical.json +50 -0
  251. drowse/data/manifolds/technical.accessible/nodes/01_accessible.json +50 -0
  252. drowse/data/manifolds/traditional.progressive/manifold.json +28 -0
  253. drowse/data/manifolds/traditional.progressive/nodes/00_traditional.json +50 -0
  254. drowse/data/manifolds/traditional.progressive/nodes/01_progressive.json +50 -0
  255. drowse/data/manifolds/verbose.concise/manifold.json +28 -0
  256. drowse/data/manifolds/verbose.concise/nodes/00_verbose.json +50 -0
  257. drowse/data/manifolds/verbose.concise/nodes/01_concise.json +50 -0
  258. drowse/data/manifolds/warm.clinical/manifold.json +28 -0
  259. drowse/data/manifolds/warm.clinical/nodes/00_warm.json +50 -0
  260. drowse/data/manifolds/warm.clinical/nodes/01_clinical.json +50 -0
  261. drowse/data/neutral_statements.json +98 -0
  262. drowse/io/__init__.py +1 -0
  263. drowse/io/alignment.py +1334 -0
  264. drowse/io/atomic.py +278 -0
  265. drowse/io/bake.py +558 -0
  266. drowse/io/bootstrap.py +73 -0
  267. drowse/io/brand_migration.py +48 -0
  268. drowse/io/drowse_archive.py +1830 -0
  269. drowse/io/gguf_io.py +300 -0
  270. drowse/io/hf.py +81 -0
  271. drowse/io/hf_manifolds.py +931 -0
  272. drowse/io/integrity.py +102 -0
  273. drowse/io/lens.py +1992 -0
  274. drowse/io/lens_sources.py +1003 -0
  275. drowse/io/manifold_authoring.py +1348 -0
  276. drowse/io/manifold_folder.py +1854 -0
  277. drowse/io/manifold_lifecycle.py +1253 -0
  278. drowse/io/manifold_tensors.py +727 -0
  279. drowse/io/manifolds.py +443 -0
  280. drowse/io/paths.py +289 -0
  281. drowse/io/probes_bootstrap.py +58 -0
  282. drowse/io/sae.py +382 -0
  283. drowse/io/sae_artifacts.py +318 -0
  284. drowse/io/selectors.py +503 -0
  285. drowse/io/shards.py +160 -0
  286. drowse/io/source_registry.py +138 -0
  287. drowse/io/staging.py +80 -0
  288. drowse/io/templates.py +707 -0
  289. drowse/notebook/__init__.py +38 -0
  290. drowse/notebook/data.py +99 -0
  291. drowse/notebook/plots.py +352 -0
  292. drowse/py.typed +0 -0
  293. drowse/server/__init__.py +20 -0
  294. drowse/server/app.py +987 -0
  295. drowse/server/background_job.py +246 -0
  296. drowse/server/instrument_routes.py +1101 -0
  297. drowse/server/manifold_routes.py +1028 -0
  298. drowse/server/model_names.py +82 -0
  299. drowse/server/native_common.py +92 -0
  300. drowse/server/native_routes.py +45 -0
  301. drowse/server/ollama.py +817 -0
  302. drowse/server/operation_ledger.py +187 -0
  303. drowse/server/probe_routes.py +220 -0
  304. drowse/server/profile_models.py +52 -0
  305. drowse/server/profile_routes.py +440 -0
  306. drowse/server/request_helpers.py +198 -0
  307. drowse/server/request_ledger.py +85 -0
  308. drowse/server/response_models.py +814 -0
  309. drowse/server/session_models.py +146 -0
  310. drowse/server/session_routes.py +150 -0
  311. drowse/server/sse.py +333 -0
  312. drowse/server/streaming.py +129 -0
  313. drowse/server/template_routes.py +161 -0
  314. drowse/server/tree_models.py +121 -0
  315. drowse/server/tree_routes.py +550 -0
  316. drowse/server/ws_events.py +65 -0
  317. drowse/server/ws_models.py +219 -0
  318. drowse/server/ws_stream.py +1205 -0
  319. drowse/web/__init__.py +22 -0
  320. drowse/web/dist/LICENSE-Fluent-Icons.txt +21 -0
  321. drowse/web/dist/LICENSE-Fluent-System-Icons.txt +21 -0
  322. drowse/web/dist/LICENSE-Martian-Mono.txt +93 -0
  323. drowse/web/dist/LICENSE-Torph.txt +21 -0
  324. drowse/web/dist/LICENSE-Wix-Madefor.txt +93 -0
  325. drowse/web/dist/assets/App-BewwoFwv.js +33 -0
  326. drowse/web/dist/assets/App.css +1 -0
  327. drowse/web/dist/assets/MartianMono-cyrillic-ext.woff2 +0 -0
  328. drowse/web/dist/assets/MartianMono-cyrillic.woff2 +0 -0
  329. drowse/web/dist/assets/MartianMono-latin-ext.woff2 +0 -0
  330. drowse/web/dist/assets/MartianMono-latin.woff2 +0 -0
  331. drowse/web/dist/assets/WixMadeforDisplay-cyrillic.woff2 +0 -0
  332. drowse/web/dist/assets/WixMadeforDisplay-latin-ext.woff2 +0 -0
  333. drowse/web/dist/assets/WixMadeforDisplay-latin.woff2 +0 -0
  334. drowse/web/dist/assets/WixMadeforDisplay-vietnamese.woff2 +0 -0
  335. drowse/web/dist/assets/WixMadeforText-italic-latin-ext.woff2 +0 -0
  336. drowse/web/dist/assets/WixMadeforText-italic-latin.woff2 +0 -0
  337. drowse/web/dist/assets/WixMadeforText-normal-cyrillic.woff2 +0 -0
  338. drowse/web/dist/assets/WixMadeforText-normal-latin-ext.woff2 +0 -0
  339. drowse/web/dist/assets/WixMadeforText-normal-latin.woff2 +0 -0
  340. drowse/web/dist/assets/WixMadeforText-normal-vietnamese.woff2 +0 -0
  341. drowse/web/dist/assets/ab.svelte-CbVGAYXo.js +1 -0
  342. drowse/web/dist/assets/artifactUpdates-Cjeu6LJc.js +1 -0
  343. drowse/web/dist/assets/artifactUpdates-DfAoYC9j.js +1 -0
  344. drowse/web/dist/assets/chat.svelte-DxKufn9g.js +1 -0
  345. drowse/web/dist/assets/drawers-BDWC0hIN.js +123 -0
  346. drowse/web/dist/assets/drawers.css +1 -0
  347. drowse/web/dist/assets/drowse.js +7 -0
  348. drowse/web/dist/assets/eleutherai.png +0 -0
  349. drowse/web/dist/assets/errors-Dvb10QW_.js +2 -0
  350. drowse/web/dist/assets/expression-4yISdAdq.js +1 -0
  351. drowse/web/dist/assets/files-CvRivkey.js +1 -0
  352. drowse/web/dist/assets/files-JhDJVgD_.js +1 -0
  353. drowse/web/dist/assets/fittingCancellation-D72BZWPZ.js +1 -0
  354. drowse/web/dist/assets/gemma-3-1b-it.json +1 -0
  355. drowse/web/dist/assets/gemma-3-270m-it.json +1 -0
  356. drowse/web/dist/assets/gemma-3-4b-it.json +1 -0
  357. drowse/web/dist/assets/generation-DbkBAhP_.js +1 -0
  358. drowse/web/dist/assets/index-client-2OdH6IQp.js +3 -0
  359. drowse/web/dist/assets/index-client-D4S4PooY.js +1 -0
  360. drowse/web/dist/assets/index.css +1 -0
  361. drowse/web/dist/assets/instrumentAuthoring.svelte-Csh7NOGX.js +1 -0
  362. drowse/web/dist/assets/instrumentAuthoring.svelte-w9YPcDsP.js +1 -0
  363. drowse/web/dist/assets/instruments.svelte-XnEUQA6B.js +1 -0
  364. drowse/web/dist/assets/localData-DIBDM_zo.js +1 -0
  365. drowse/web/dist/assets/loom.svelte-D_YyqHHK.js +1 -0
  366. drowse/web/dist/assets/manifoldJobs.svelte-9f5hs_J7.js +1 -0
  367. drowse/web/dist/assets/manifoldJobs.svelte-Bwo2GYOH.js +1 -0
  368. drowse/web/dist/assets/openai.png +0 -0
  369. drowse/web/dist/assets/preload-helper-BLdHbfdN.js +1 -0
  370. drowse/web/dist/assets/probes.svelte-COcN1Rh8.js +1 -0
  371. drowse/web/dist/assets/registry-B0_pJoMg.js +1 -0
  372. drowse/web/dist/assets/registry-CQv71XNh.js +1 -0
  373. drowse/web/dist/assets/sampling.svelte-BU0kED3k.js +1 -0
  374. drowse/web/dist/assets/samplingCapabilities-DM6eoDoc.js +1 -0
  375. drowse/web/dist/assets/savedConversations.svelte-BsBLc-p7.js +1 -0
  376. drowse/web/dist/assets/savedConversations.svelte-TuSes9Kg.js +1 -0
  377. drowse/web/dist/assets/selectors-BxXnPPN_.js +1 -0
  378. drowse/web/dist/assets/serviceTools-CG0q1Xqg.js +2 -0
  379. drowse/web/dist/assets/session.svelte-D2STLuP6.js +1 -0
  380. drowse/web/dist/assets/steering.svelte-DvFT3O-d.js +1 -0
  381. drowse/web/dist/assets/steeringPositions-Dr0JOFu7.js +1 -0
  382. drowse/web/dist/assets/templates-Bkq2x5ID.js +1 -0
  383. drowse/web/dist/assets/types-CuMUbvHW.js +1 -0
  384. drowse/web/dist/assets/validation-5wgTuS7k.js +1 -0
  385. drowse/web/dist/assets/webmcp-DyqJf4z6.js +2 -0
  386. drowse/web/dist/assets/workspaceController-C2L33e3m.js +1 -0
  387. drowse/web/dist/assets/workspaceController-DJhXD_BC.js +1 -0
  388. drowse/web/dist/assets/workspaceTools-BWdmXopx.js +2 -0
  389. drowse/web/dist/favicon.ico +0 -0
  390. drowse/web/dist/favicon.svg +1 -0
  391. drowse/web/dist/icons/apple-touch-icon.png +0 -0
  392. drowse/web/dist/icons/drowse-192.png +0 -0
  393. drowse/web/dist/icons/drowse-512.png +0 -0
  394. drowse/web/dist/icons/drowse-maskable-512.png +0 -0
  395. drowse/web/dist/icons/tab-analyzing-0.png +0 -0
  396. drowse/web/dist/icons/tab-analyzing-1.png +0 -0
  397. drowse/web/dist/icons/tab-analyzing-2.png +0 -0
  398. drowse/web/dist/icons/tab-analyzing-dark-0.png +0 -0
  399. drowse/web/dist/icons/tab-analyzing-dark-1.png +0 -0
  400. drowse/web/dist/icons/tab-analyzing-dark-10.png +0 -0
  401. drowse/web/dist/icons/tab-analyzing-dark-11.png +0 -0
  402. drowse/web/dist/icons/tab-analyzing-dark-12.png +0 -0
  403. drowse/web/dist/icons/tab-analyzing-dark-13.png +0 -0
  404. drowse/web/dist/icons/tab-analyzing-dark-14.png +0 -0
  405. drowse/web/dist/icons/tab-analyzing-dark-15.png +0 -0
  406. drowse/web/dist/icons/tab-analyzing-dark-16.png +0 -0
  407. drowse/web/dist/icons/tab-analyzing-dark-17.png +0 -0
  408. drowse/web/dist/icons/tab-analyzing-dark-18.png +0 -0
  409. drowse/web/dist/icons/tab-analyzing-dark-19.png +0 -0
  410. drowse/web/dist/icons/tab-analyzing-dark-2.png +0 -0
  411. drowse/web/dist/icons/tab-analyzing-dark-20.png +0 -0
  412. drowse/web/dist/icons/tab-analyzing-dark-21.png +0 -0
  413. drowse/web/dist/icons/tab-analyzing-dark-22.png +0 -0
  414. drowse/web/dist/icons/tab-analyzing-dark-23.png +0 -0
  415. drowse/web/dist/icons/tab-analyzing-dark-24.png +0 -0
  416. drowse/web/dist/icons/tab-analyzing-dark-25.png +0 -0
  417. drowse/web/dist/icons/tab-analyzing-dark-26.png +0 -0
  418. drowse/web/dist/icons/tab-analyzing-dark-27.png +0 -0
  419. drowse/web/dist/icons/tab-analyzing-dark-28.png +0 -0
  420. drowse/web/dist/icons/tab-analyzing-dark-29.png +0 -0
  421. drowse/web/dist/icons/tab-analyzing-dark-3.png +0 -0
  422. drowse/web/dist/icons/tab-analyzing-dark-30.png +0 -0
  423. drowse/web/dist/icons/tab-analyzing-dark-31.png +0 -0
  424. drowse/web/dist/icons/tab-analyzing-dark-32.png +0 -0
  425. drowse/web/dist/icons/tab-analyzing-dark-33.png +0 -0
  426. drowse/web/dist/icons/tab-analyzing-dark-34.png +0 -0
  427. drowse/web/dist/icons/tab-analyzing-dark-35.png +0 -0
  428. drowse/web/dist/icons/tab-analyzing-dark-36.png +0 -0
  429. drowse/web/dist/icons/tab-analyzing-dark-37.png +0 -0
  430. drowse/web/dist/icons/tab-analyzing-dark-38.png +0 -0
  431. drowse/web/dist/icons/tab-analyzing-dark-39.png +0 -0
  432. drowse/web/dist/icons/tab-analyzing-dark-4.png +0 -0
  433. drowse/web/dist/icons/tab-analyzing-dark-40.png +0 -0
  434. drowse/web/dist/icons/tab-analyzing-dark-41.png +0 -0
  435. drowse/web/dist/icons/tab-analyzing-dark-42.png +0 -0
  436. drowse/web/dist/icons/tab-analyzing-dark-43.png +0 -0
  437. drowse/web/dist/icons/tab-analyzing-dark-44.png +0 -0
  438. drowse/web/dist/icons/tab-analyzing-dark-45.png +0 -0
  439. drowse/web/dist/icons/tab-analyzing-dark-46.png +0 -0
  440. drowse/web/dist/icons/tab-analyzing-dark-47.png +0 -0
  441. drowse/web/dist/icons/tab-analyzing-dark-5.png +0 -0
  442. drowse/web/dist/icons/tab-analyzing-dark-6.png +0 -0
  443. drowse/web/dist/icons/tab-analyzing-dark-7.png +0 -0
  444. drowse/web/dist/icons/tab-analyzing-dark-8.png +0 -0
  445. drowse/web/dist/icons/tab-analyzing-dark-9.png +0 -0
  446. drowse/web/dist/icons/tab-analyzing-light-0.png +0 -0
  447. drowse/web/dist/icons/tab-analyzing-light-1.png +0 -0
  448. drowse/web/dist/icons/tab-analyzing-light-10.png +0 -0
  449. drowse/web/dist/icons/tab-analyzing-light-11.png +0 -0
  450. drowse/web/dist/icons/tab-analyzing-light-12.png +0 -0
  451. drowse/web/dist/icons/tab-analyzing-light-13.png +0 -0
  452. drowse/web/dist/icons/tab-analyzing-light-14.png +0 -0
  453. drowse/web/dist/icons/tab-analyzing-light-15.png +0 -0
  454. drowse/web/dist/icons/tab-analyzing-light-16.png +0 -0
  455. drowse/web/dist/icons/tab-analyzing-light-17.png +0 -0
  456. drowse/web/dist/icons/tab-analyzing-light-18.png +0 -0
  457. drowse/web/dist/icons/tab-analyzing-light-19.png +0 -0
  458. drowse/web/dist/icons/tab-analyzing-light-2.png +0 -0
  459. drowse/web/dist/icons/tab-analyzing-light-20.png +0 -0
  460. drowse/web/dist/icons/tab-analyzing-light-21.png +0 -0
  461. drowse/web/dist/icons/tab-analyzing-light-22.png +0 -0
  462. drowse/web/dist/icons/tab-analyzing-light-23.png +0 -0
  463. drowse/web/dist/icons/tab-analyzing-light-24.png +0 -0
  464. drowse/web/dist/icons/tab-analyzing-light-25.png +0 -0
  465. drowse/web/dist/icons/tab-analyzing-light-26.png +0 -0
  466. drowse/web/dist/icons/tab-analyzing-light-27.png +0 -0
  467. drowse/web/dist/icons/tab-analyzing-light-28.png +0 -0
  468. drowse/web/dist/icons/tab-analyzing-light-29.png +0 -0
  469. drowse/web/dist/icons/tab-analyzing-light-3.png +0 -0
  470. drowse/web/dist/icons/tab-analyzing-light-30.png +0 -0
  471. drowse/web/dist/icons/tab-analyzing-light-31.png +0 -0
  472. drowse/web/dist/icons/tab-analyzing-light-32.png +0 -0
  473. drowse/web/dist/icons/tab-analyzing-light-33.png +0 -0
  474. drowse/web/dist/icons/tab-analyzing-light-34.png +0 -0
  475. drowse/web/dist/icons/tab-analyzing-light-35.png +0 -0
  476. drowse/web/dist/icons/tab-analyzing-light-36.png +0 -0
  477. drowse/web/dist/icons/tab-analyzing-light-37.png +0 -0
  478. drowse/web/dist/icons/tab-analyzing-light-38.png +0 -0
  479. drowse/web/dist/icons/tab-analyzing-light-39.png +0 -0
  480. drowse/web/dist/icons/tab-analyzing-light-4.png +0 -0
  481. drowse/web/dist/icons/tab-analyzing-light-40.png +0 -0
  482. drowse/web/dist/icons/tab-analyzing-light-41.png +0 -0
  483. drowse/web/dist/icons/tab-analyzing-light-42.png +0 -0
  484. drowse/web/dist/icons/tab-analyzing-light-43.png +0 -0
  485. drowse/web/dist/icons/tab-analyzing-light-44.png +0 -0
  486. drowse/web/dist/icons/tab-analyzing-light-45.png +0 -0
  487. drowse/web/dist/icons/tab-analyzing-light-46.png +0 -0
  488. drowse/web/dist/icons/tab-analyzing-light-47.png +0 -0
  489. drowse/web/dist/icons/tab-analyzing-light-5.png +0 -0
  490. drowse/web/dist/icons/tab-analyzing-light-6.png +0 -0
  491. drowse/web/dist/icons/tab-analyzing-light-7.png +0 -0
  492. drowse/web/dist/icons/tab-analyzing-light-8.png +0 -0
  493. drowse/web/dist/icons/tab-analyzing-light-9.png +0 -0
  494. drowse/web/dist/icons/tab-chat-settings-dark.png +0 -0
  495. drowse/web/dist/icons/tab-chat-settings-light.png +0 -0
  496. drowse/web/dist/icons/tab-chat-settings.png +0 -0
  497. drowse/web/dist/icons/tab-chats-dark.png +0 -0
  498. drowse/web/dist/icons/tab-chats-light.png +0 -0
  499. drowse/web/dist/icons/tab-chats.png +0 -0
  500. drowse/web/dist/icons/tab-checking-0.png +0 -0
  501. drowse/web/dist/icons/tab-checking-1.png +0 -0
  502. drowse/web/dist/icons/tab-checking-2.png +0 -0
  503. drowse/web/dist/icons/tab-checking-dark-0.png +0 -0
  504. drowse/web/dist/icons/tab-checking-dark-1.png +0 -0
  505. drowse/web/dist/icons/tab-checking-dark-10.png +0 -0
  506. drowse/web/dist/icons/tab-checking-dark-11.png +0 -0
  507. drowse/web/dist/icons/tab-checking-dark-12.png +0 -0
  508. drowse/web/dist/icons/tab-checking-dark-13.png +0 -0
  509. drowse/web/dist/icons/tab-checking-dark-14.png +0 -0
  510. drowse/web/dist/icons/tab-checking-dark-15.png +0 -0
  511. drowse/web/dist/icons/tab-checking-dark-16.png +0 -0
  512. drowse/web/dist/icons/tab-checking-dark-17.png +0 -0
  513. drowse/web/dist/icons/tab-checking-dark-18.png +0 -0
  514. drowse/web/dist/icons/tab-checking-dark-19.png +0 -0
  515. drowse/web/dist/icons/tab-checking-dark-2.png +0 -0
  516. drowse/web/dist/icons/tab-checking-dark-20.png +0 -0
  517. drowse/web/dist/icons/tab-checking-dark-21.png +0 -0
  518. drowse/web/dist/icons/tab-checking-dark-22.png +0 -0
  519. drowse/web/dist/icons/tab-checking-dark-23.png +0 -0
  520. drowse/web/dist/icons/tab-checking-dark-24.png +0 -0
  521. drowse/web/dist/icons/tab-checking-dark-25.png +0 -0
  522. drowse/web/dist/icons/tab-checking-dark-26.png +0 -0
  523. drowse/web/dist/icons/tab-checking-dark-27.png +0 -0
  524. drowse/web/dist/icons/tab-checking-dark-28.png +0 -0
  525. drowse/web/dist/icons/tab-checking-dark-29.png +0 -0
  526. drowse/web/dist/icons/tab-checking-dark-3.png +0 -0
  527. drowse/web/dist/icons/tab-checking-dark-30.png +0 -0
  528. drowse/web/dist/icons/tab-checking-dark-31.png +0 -0
  529. drowse/web/dist/icons/tab-checking-dark-32.png +0 -0
  530. drowse/web/dist/icons/tab-checking-dark-33.png +0 -0
  531. drowse/web/dist/icons/tab-checking-dark-34.png +0 -0
  532. drowse/web/dist/icons/tab-checking-dark-35.png +0 -0
  533. drowse/web/dist/icons/tab-checking-dark-36.png +0 -0
  534. drowse/web/dist/icons/tab-checking-dark-37.png +0 -0
  535. drowse/web/dist/icons/tab-checking-dark-38.png +0 -0
  536. drowse/web/dist/icons/tab-checking-dark-39.png +0 -0
  537. drowse/web/dist/icons/tab-checking-dark-4.png +0 -0
  538. drowse/web/dist/icons/tab-checking-dark-40.png +0 -0
  539. drowse/web/dist/icons/tab-checking-dark-41.png +0 -0
  540. drowse/web/dist/icons/tab-checking-dark-42.png +0 -0
  541. drowse/web/dist/icons/tab-checking-dark-43.png +0 -0
  542. drowse/web/dist/icons/tab-checking-dark-44.png +0 -0
  543. drowse/web/dist/icons/tab-checking-dark-45.png +0 -0
  544. drowse/web/dist/icons/tab-checking-dark-46.png +0 -0
  545. drowse/web/dist/icons/tab-checking-dark-47.png +0 -0
  546. drowse/web/dist/icons/tab-checking-dark-5.png +0 -0
  547. drowse/web/dist/icons/tab-checking-dark-6.png +0 -0
  548. drowse/web/dist/icons/tab-checking-dark-7.png +0 -0
  549. drowse/web/dist/icons/tab-checking-dark-8.png +0 -0
  550. drowse/web/dist/icons/tab-checking-dark-9.png +0 -0
  551. drowse/web/dist/icons/tab-checking-light-0.png +0 -0
  552. drowse/web/dist/icons/tab-checking-light-1.png +0 -0
  553. drowse/web/dist/icons/tab-checking-light-10.png +0 -0
  554. drowse/web/dist/icons/tab-checking-light-11.png +0 -0
  555. drowse/web/dist/icons/tab-checking-light-12.png +0 -0
  556. drowse/web/dist/icons/tab-checking-light-13.png +0 -0
  557. drowse/web/dist/icons/tab-checking-light-14.png +0 -0
  558. drowse/web/dist/icons/tab-checking-light-15.png +0 -0
  559. drowse/web/dist/icons/tab-checking-light-16.png +0 -0
  560. drowse/web/dist/icons/tab-checking-light-17.png +0 -0
  561. drowse/web/dist/icons/tab-checking-light-18.png +0 -0
  562. drowse/web/dist/icons/tab-checking-light-19.png +0 -0
  563. drowse/web/dist/icons/tab-checking-light-2.png +0 -0
  564. drowse/web/dist/icons/tab-checking-light-20.png +0 -0
  565. drowse/web/dist/icons/tab-checking-light-21.png +0 -0
  566. drowse/web/dist/icons/tab-checking-light-22.png +0 -0
  567. drowse/web/dist/icons/tab-checking-light-23.png +0 -0
  568. drowse/web/dist/icons/tab-checking-light-24.png +0 -0
  569. drowse/web/dist/icons/tab-checking-light-25.png +0 -0
  570. drowse/web/dist/icons/tab-checking-light-26.png +0 -0
  571. drowse/web/dist/icons/tab-checking-light-27.png +0 -0
  572. drowse/web/dist/icons/tab-checking-light-28.png +0 -0
  573. drowse/web/dist/icons/tab-checking-light-29.png +0 -0
  574. drowse/web/dist/icons/tab-checking-light-3.png +0 -0
  575. drowse/web/dist/icons/tab-checking-light-30.png +0 -0
  576. drowse/web/dist/icons/tab-checking-light-31.png +0 -0
  577. drowse/web/dist/icons/tab-checking-light-32.png +0 -0
  578. drowse/web/dist/icons/tab-checking-light-33.png +0 -0
  579. drowse/web/dist/icons/tab-checking-light-34.png +0 -0
  580. drowse/web/dist/icons/tab-checking-light-35.png +0 -0
  581. drowse/web/dist/icons/tab-checking-light-36.png +0 -0
  582. drowse/web/dist/icons/tab-checking-light-37.png +0 -0
  583. drowse/web/dist/icons/tab-checking-light-38.png +0 -0
  584. drowse/web/dist/icons/tab-checking-light-39.png +0 -0
  585. drowse/web/dist/icons/tab-checking-light-4.png +0 -0
  586. drowse/web/dist/icons/tab-checking-light-40.png +0 -0
  587. drowse/web/dist/icons/tab-checking-light-41.png +0 -0
  588. drowse/web/dist/icons/tab-checking-light-42.png +0 -0
  589. drowse/web/dist/icons/tab-checking-light-43.png +0 -0
  590. drowse/web/dist/icons/tab-checking-light-44.png +0 -0
  591. drowse/web/dist/icons/tab-checking-light-45.png +0 -0
  592. drowse/web/dist/icons/tab-checking-light-46.png +0 -0
  593. drowse/web/dist/icons/tab-checking-light-47.png +0 -0
  594. drowse/web/dist/icons/tab-checking-light-5.png +0 -0
  595. drowse/web/dist/icons/tab-checking-light-6.png +0 -0
  596. drowse/web/dist/icons/tab-checking-light-7.png +0 -0
  597. drowse/web/dist/icons/tab-checking-light-8.png +0 -0
  598. drowse/web/dist/icons/tab-checking-light-9.png +0 -0
  599. drowse/web/dist/icons/tab-comparison-dark.png +0 -0
  600. drowse/web/dist/icons/tab-comparison-light.png +0 -0
  601. drowse/web/dist/icons/tab-comparison.png +0 -0
  602. drowse/web/dist/icons/tab-controls-dark.png +0 -0
  603. drowse/web/dist/icons/tab-controls-light.png +0 -0
  604. drowse/web/dist/icons/tab-controls.png +0 -0
  605. drowse/web/dist/icons/tab-conversation-dark.png +0 -0
  606. drowse/web/dist/icons/tab-conversation-light.png +0 -0
  607. drowse/web/dist/icons/tab-conversation.png +0 -0
  608. drowse/web/dist/icons/tab-credits-dark.png +0 -0
  609. drowse/web/dist/icons/tab-credits-light.png +0 -0
  610. drowse/web/dist/icons/tab-credits.png +0 -0
  611. drowse/web/dist/icons/tab-downloading-0.png +0 -0
  612. drowse/web/dist/icons/tab-downloading-1.png +0 -0
  613. drowse/web/dist/icons/tab-downloading-2.png +0 -0
  614. drowse/web/dist/icons/tab-downloading-dark-0.png +0 -0
  615. drowse/web/dist/icons/tab-downloading-dark-1.png +0 -0
  616. drowse/web/dist/icons/tab-downloading-dark-10.png +0 -0
  617. drowse/web/dist/icons/tab-downloading-dark-11.png +0 -0
  618. drowse/web/dist/icons/tab-downloading-dark-12.png +0 -0
  619. drowse/web/dist/icons/tab-downloading-dark-13.png +0 -0
  620. drowse/web/dist/icons/tab-downloading-dark-14.png +0 -0
  621. drowse/web/dist/icons/tab-downloading-dark-15.png +0 -0
  622. drowse/web/dist/icons/tab-downloading-dark-16.png +0 -0
  623. drowse/web/dist/icons/tab-downloading-dark-17.png +0 -0
  624. drowse/web/dist/icons/tab-downloading-dark-18.png +0 -0
  625. drowse/web/dist/icons/tab-downloading-dark-19.png +0 -0
  626. drowse/web/dist/icons/tab-downloading-dark-2.png +0 -0
  627. drowse/web/dist/icons/tab-downloading-dark-20.png +0 -0
  628. drowse/web/dist/icons/tab-downloading-dark-21.png +0 -0
  629. drowse/web/dist/icons/tab-downloading-dark-22.png +0 -0
  630. drowse/web/dist/icons/tab-downloading-dark-23.png +0 -0
  631. drowse/web/dist/icons/tab-downloading-dark-24.png +0 -0
  632. drowse/web/dist/icons/tab-downloading-dark-25.png +0 -0
  633. drowse/web/dist/icons/tab-downloading-dark-26.png +0 -0
  634. drowse/web/dist/icons/tab-downloading-dark-27.png +0 -0
  635. drowse/web/dist/icons/tab-downloading-dark-28.png +0 -0
  636. drowse/web/dist/icons/tab-downloading-dark-29.png +0 -0
  637. drowse/web/dist/icons/tab-downloading-dark-3.png +0 -0
  638. drowse/web/dist/icons/tab-downloading-dark-30.png +0 -0
  639. drowse/web/dist/icons/tab-downloading-dark-31.png +0 -0
  640. drowse/web/dist/icons/tab-downloading-dark-32.png +0 -0
  641. drowse/web/dist/icons/tab-downloading-dark-33.png +0 -0
  642. drowse/web/dist/icons/tab-downloading-dark-34.png +0 -0
  643. drowse/web/dist/icons/tab-downloading-dark-35.png +0 -0
  644. drowse/web/dist/icons/tab-downloading-dark-36.png +0 -0
  645. drowse/web/dist/icons/tab-downloading-dark-37.png +0 -0
  646. drowse/web/dist/icons/tab-downloading-dark-38.png +0 -0
  647. drowse/web/dist/icons/tab-downloading-dark-39.png +0 -0
  648. drowse/web/dist/icons/tab-downloading-dark-4.png +0 -0
  649. drowse/web/dist/icons/tab-downloading-dark-40.png +0 -0
  650. drowse/web/dist/icons/tab-downloading-dark-41.png +0 -0
  651. drowse/web/dist/icons/tab-downloading-dark-42.png +0 -0
  652. drowse/web/dist/icons/tab-downloading-dark-43.png +0 -0
  653. drowse/web/dist/icons/tab-downloading-dark-44.png +0 -0
  654. drowse/web/dist/icons/tab-downloading-dark-45.png +0 -0
  655. drowse/web/dist/icons/tab-downloading-dark-46.png +0 -0
  656. drowse/web/dist/icons/tab-downloading-dark-47.png +0 -0
  657. drowse/web/dist/icons/tab-downloading-dark-5.png +0 -0
  658. drowse/web/dist/icons/tab-downloading-dark-6.png +0 -0
  659. drowse/web/dist/icons/tab-downloading-dark-7.png +0 -0
  660. drowse/web/dist/icons/tab-downloading-dark-8.png +0 -0
  661. drowse/web/dist/icons/tab-downloading-dark-9.png +0 -0
  662. drowse/web/dist/icons/tab-downloading-light-0.png +0 -0
  663. drowse/web/dist/icons/tab-downloading-light-1.png +0 -0
  664. drowse/web/dist/icons/tab-downloading-light-10.png +0 -0
  665. drowse/web/dist/icons/tab-downloading-light-11.png +0 -0
  666. drowse/web/dist/icons/tab-downloading-light-12.png +0 -0
  667. drowse/web/dist/icons/tab-downloading-light-13.png +0 -0
  668. drowse/web/dist/icons/tab-downloading-light-14.png +0 -0
  669. drowse/web/dist/icons/tab-downloading-light-15.png +0 -0
  670. drowse/web/dist/icons/tab-downloading-light-16.png +0 -0
  671. drowse/web/dist/icons/tab-downloading-light-17.png +0 -0
  672. drowse/web/dist/icons/tab-downloading-light-18.png +0 -0
  673. drowse/web/dist/icons/tab-downloading-light-19.png +0 -0
  674. drowse/web/dist/icons/tab-downloading-light-2.png +0 -0
  675. drowse/web/dist/icons/tab-downloading-light-20.png +0 -0
  676. drowse/web/dist/icons/tab-downloading-light-21.png +0 -0
  677. drowse/web/dist/icons/tab-downloading-light-22.png +0 -0
  678. drowse/web/dist/icons/tab-downloading-light-23.png +0 -0
  679. drowse/web/dist/icons/tab-downloading-light-24.png +0 -0
  680. drowse/web/dist/icons/tab-downloading-light-25.png +0 -0
  681. drowse/web/dist/icons/tab-downloading-light-26.png +0 -0
  682. drowse/web/dist/icons/tab-downloading-light-27.png +0 -0
  683. drowse/web/dist/icons/tab-downloading-light-28.png +0 -0
  684. drowse/web/dist/icons/tab-downloading-light-29.png +0 -0
  685. drowse/web/dist/icons/tab-downloading-light-3.png +0 -0
  686. drowse/web/dist/icons/tab-downloading-light-30.png +0 -0
  687. drowse/web/dist/icons/tab-downloading-light-31.png +0 -0
  688. drowse/web/dist/icons/tab-downloading-light-32.png +0 -0
  689. drowse/web/dist/icons/tab-downloading-light-33.png +0 -0
  690. drowse/web/dist/icons/tab-downloading-light-34.png +0 -0
  691. drowse/web/dist/icons/tab-downloading-light-35.png +0 -0
  692. drowse/web/dist/icons/tab-downloading-light-36.png +0 -0
  693. drowse/web/dist/icons/tab-downloading-light-37.png +0 -0
  694. drowse/web/dist/icons/tab-downloading-light-38.png +0 -0
  695. drowse/web/dist/icons/tab-downloading-light-39.png +0 -0
  696. drowse/web/dist/icons/tab-downloading-light-4.png +0 -0
  697. drowse/web/dist/icons/tab-downloading-light-40.png +0 -0
  698. drowse/web/dist/icons/tab-downloading-light-41.png +0 -0
  699. drowse/web/dist/icons/tab-downloading-light-42.png +0 -0
  700. drowse/web/dist/icons/tab-downloading-light-43.png +0 -0
  701. drowse/web/dist/icons/tab-downloading-light-44.png +0 -0
  702. drowse/web/dist/icons/tab-downloading-light-45.png +0 -0
  703. drowse/web/dist/icons/tab-downloading-light-46.png +0 -0
  704. drowse/web/dist/icons/tab-downloading-light-47.png +0 -0
  705. drowse/web/dist/icons/tab-downloading-light-5.png +0 -0
  706. drowse/web/dist/icons/tab-downloading-light-6.png +0 -0
  707. drowse/web/dist/icons/tab-downloading-light-7.png +0 -0
  708. drowse/web/dist/icons/tab-downloading-light-8.png +0 -0
  709. drowse/web/dist/icons/tab-downloading-light-9.png +0 -0
  710. drowse/web/dist/icons/tab-error-dark.png +0 -0
  711. drowse/web/dist/icons/tab-error-light.png +0 -0
  712. drowse/web/dist/icons/tab-error.png +0 -0
  713. drowse/web/dist/icons/tab-home-dark.png +0 -0
  714. drowse/web/dist/icons/tab-home-light.png +0 -0
  715. drowse/web/dist/icons/tab-home.png +0 -0
  716. drowse/web/dist/icons/tab-loading-0.png +0 -0
  717. drowse/web/dist/icons/tab-loading-1.png +0 -0
  718. drowse/web/dist/icons/tab-loading-2.png +0 -0
  719. drowse/web/dist/icons/tab-loading-dark-0.png +0 -0
  720. drowse/web/dist/icons/tab-loading-dark-1.png +0 -0
  721. drowse/web/dist/icons/tab-loading-dark-10.png +0 -0
  722. drowse/web/dist/icons/tab-loading-dark-11.png +0 -0
  723. drowse/web/dist/icons/tab-loading-dark-12.png +0 -0
  724. drowse/web/dist/icons/tab-loading-dark-13.png +0 -0
  725. drowse/web/dist/icons/tab-loading-dark-14.png +0 -0
  726. drowse/web/dist/icons/tab-loading-dark-15.png +0 -0
  727. drowse/web/dist/icons/tab-loading-dark-16.png +0 -0
  728. drowse/web/dist/icons/tab-loading-dark-17.png +0 -0
  729. drowse/web/dist/icons/tab-loading-dark-18.png +0 -0
  730. drowse/web/dist/icons/tab-loading-dark-19.png +0 -0
  731. drowse/web/dist/icons/tab-loading-dark-2.png +0 -0
  732. drowse/web/dist/icons/tab-loading-dark-20.png +0 -0
  733. drowse/web/dist/icons/tab-loading-dark-21.png +0 -0
  734. drowse/web/dist/icons/tab-loading-dark-22.png +0 -0
  735. drowse/web/dist/icons/tab-loading-dark-23.png +0 -0
  736. drowse/web/dist/icons/tab-loading-dark-24.png +0 -0
  737. drowse/web/dist/icons/tab-loading-dark-25.png +0 -0
  738. drowse/web/dist/icons/tab-loading-dark-26.png +0 -0
  739. drowse/web/dist/icons/tab-loading-dark-27.png +0 -0
  740. drowse/web/dist/icons/tab-loading-dark-28.png +0 -0
  741. drowse/web/dist/icons/tab-loading-dark-29.png +0 -0
  742. drowse/web/dist/icons/tab-loading-dark-3.png +0 -0
  743. drowse/web/dist/icons/tab-loading-dark-30.png +0 -0
  744. drowse/web/dist/icons/tab-loading-dark-31.png +0 -0
  745. drowse/web/dist/icons/tab-loading-dark-32.png +0 -0
  746. drowse/web/dist/icons/tab-loading-dark-33.png +0 -0
  747. drowse/web/dist/icons/tab-loading-dark-34.png +0 -0
  748. drowse/web/dist/icons/tab-loading-dark-35.png +0 -0
  749. drowse/web/dist/icons/tab-loading-dark-36.png +0 -0
  750. drowse/web/dist/icons/tab-loading-dark-37.png +0 -0
  751. drowse/web/dist/icons/tab-loading-dark-38.png +0 -0
  752. drowse/web/dist/icons/tab-loading-dark-39.png +0 -0
  753. drowse/web/dist/icons/tab-loading-dark-4.png +0 -0
  754. drowse/web/dist/icons/tab-loading-dark-40.png +0 -0
  755. drowse/web/dist/icons/tab-loading-dark-41.png +0 -0
  756. drowse/web/dist/icons/tab-loading-dark-42.png +0 -0
  757. drowse/web/dist/icons/tab-loading-dark-43.png +0 -0
  758. drowse/web/dist/icons/tab-loading-dark-44.png +0 -0
  759. drowse/web/dist/icons/tab-loading-dark-45.png +0 -0
  760. drowse/web/dist/icons/tab-loading-dark-46.png +0 -0
  761. drowse/web/dist/icons/tab-loading-dark-47.png +0 -0
  762. drowse/web/dist/icons/tab-loading-dark-5.png +0 -0
  763. drowse/web/dist/icons/tab-loading-dark-6.png +0 -0
  764. drowse/web/dist/icons/tab-loading-dark-7.png +0 -0
  765. drowse/web/dist/icons/tab-loading-dark-8.png +0 -0
  766. drowse/web/dist/icons/tab-loading-dark-9.png +0 -0
  767. drowse/web/dist/icons/tab-loading-light-0.png +0 -0
  768. drowse/web/dist/icons/tab-loading-light-1.png +0 -0
  769. drowse/web/dist/icons/tab-loading-light-10.png +0 -0
  770. drowse/web/dist/icons/tab-loading-light-11.png +0 -0
  771. drowse/web/dist/icons/tab-loading-light-12.png +0 -0
  772. drowse/web/dist/icons/tab-loading-light-13.png +0 -0
  773. drowse/web/dist/icons/tab-loading-light-14.png +0 -0
  774. drowse/web/dist/icons/tab-loading-light-15.png +0 -0
  775. drowse/web/dist/icons/tab-loading-light-16.png +0 -0
  776. drowse/web/dist/icons/tab-loading-light-17.png +0 -0
  777. drowse/web/dist/icons/tab-loading-light-18.png +0 -0
  778. drowse/web/dist/icons/tab-loading-light-19.png +0 -0
  779. drowse/web/dist/icons/tab-loading-light-2.png +0 -0
  780. drowse/web/dist/icons/tab-loading-light-20.png +0 -0
  781. drowse/web/dist/icons/tab-loading-light-21.png +0 -0
  782. drowse/web/dist/icons/tab-loading-light-22.png +0 -0
  783. drowse/web/dist/icons/tab-loading-light-23.png +0 -0
  784. drowse/web/dist/icons/tab-loading-light-24.png +0 -0
  785. drowse/web/dist/icons/tab-loading-light-25.png +0 -0
  786. drowse/web/dist/icons/tab-loading-light-26.png +0 -0
  787. drowse/web/dist/icons/tab-loading-light-27.png +0 -0
  788. drowse/web/dist/icons/tab-loading-light-28.png +0 -0
  789. drowse/web/dist/icons/tab-loading-light-29.png +0 -0
  790. drowse/web/dist/icons/tab-loading-light-3.png +0 -0
  791. drowse/web/dist/icons/tab-loading-light-30.png +0 -0
  792. drowse/web/dist/icons/tab-loading-light-31.png +0 -0
  793. drowse/web/dist/icons/tab-loading-light-32.png +0 -0
  794. drowse/web/dist/icons/tab-loading-light-33.png +0 -0
  795. drowse/web/dist/icons/tab-loading-light-34.png +0 -0
  796. drowse/web/dist/icons/tab-loading-light-35.png +0 -0
  797. drowse/web/dist/icons/tab-loading-light-36.png +0 -0
  798. drowse/web/dist/icons/tab-loading-light-37.png +0 -0
  799. drowse/web/dist/icons/tab-loading-light-38.png +0 -0
  800. drowse/web/dist/icons/tab-loading-light-39.png +0 -0
  801. drowse/web/dist/icons/tab-loading-light-4.png +0 -0
  802. drowse/web/dist/icons/tab-loading-light-40.png +0 -0
  803. drowse/web/dist/icons/tab-loading-light-41.png +0 -0
  804. drowse/web/dist/icons/tab-loading-light-42.png +0 -0
  805. drowse/web/dist/icons/tab-loading-light-43.png +0 -0
  806. drowse/web/dist/icons/tab-loading-light-44.png +0 -0
  807. drowse/web/dist/icons/tab-loading-light-45.png +0 -0
  808. drowse/web/dist/icons/tab-loading-light-46.png +0 -0
  809. drowse/web/dist/icons/tab-loading-light-47.png +0 -0
  810. drowse/web/dist/icons/tab-loading-light-5.png +0 -0
  811. drowse/web/dist/icons/tab-loading-light-6.png +0 -0
  812. drowse/web/dist/icons/tab-loading-light-7.png +0 -0
  813. drowse/web/dist/icons/tab-loading-light-8.png +0 -0
  814. drowse/web/dist/icons/tab-loading-light-9.png +0 -0
  815. drowse/web/dist/icons/tab-loom-dark.png +0 -0
  816. drowse/web/dist/icons/tab-loom-light.png +0 -0
  817. drowse/web/dist/icons/tab-loom-working-0.png +0 -0
  818. drowse/web/dist/icons/tab-loom-working-1.png +0 -0
  819. drowse/web/dist/icons/tab-loom-working-2.png +0 -0
  820. drowse/web/dist/icons/tab-loom-working-dark-0.png +0 -0
  821. drowse/web/dist/icons/tab-loom-working-dark-1.png +0 -0
  822. drowse/web/dist/icons/tab-loom-working-dark-10.png +0 -0
  823. drowse/web/dist/icons/tab-loom-working-dark-11.png +0 -0
  824. drowse/web/dist/icons/tab-loom-working-dark-12.png +0 -0
  825. drowse/web/dist/icons/tab-loom-working-dark-13.png +0 -0
  826. drowse/web/dist/icons/tab-loom-working-dark-14.png +0 -0
  827. drowse/web/dist/icons/tab-loom-working-dark-15.png +0 -0
  828. drowse/web/dist/icons/tab-loom-working-dark-16.png +0 -0
  829. drowse/web/dist/icons/tab-loom-working-dark-17.png +0 -0
  830. drowse/web/dist/icons/tab-loom-working-dark-18.png +0 -0
  831. drowse/web/dist/icons/tab-loom-working-dark-19.png +0 -0
  832. drowse/web/dist/icons/tab-loom-working-dark-2.png +0 -0
  833. drowse/web/dist/icons/tab-loom-working-dark-20.png +0 -0
  834. drowse/web/dist/icons/tab-loom-working-dark-21.png +0 -0
  835. drowse/web/dist/icons/tab-loom-working-dark-22.png +0 -0
  836. drowse/web/dist/icons/tab-loom-working-dark-23.png +0 -0
  837. drowse/web/dist/icons/tab-loom-working-dark-24.png +0 -0
  838. drowse/web/dist/icons/tab-loom-working-dark-25.png +0 -0
  839. drowse/web/dist/icons/tab-loom-working-dark-26.png +0 -0
  840. drowse/web/dist/icons/tab-loom-working-dark-27.png +0 -0
  841. drowse/web/dist/icons/tab-loom-working-dark-28.png +0 -0
  842. drowse/web/dist/icons/tab-loom-working-dark-29.png +0 -0
  843. drowse/web/dist/icons/tab-loom-working-dark-3.png +0 -0
  844. drowse/web/dist/icons/tab-loom-working-dark-30.png +0 -0
  845. drowse/web/dist/icons/tab-loom-working-dark-31.png +0 -0
  846. drowse/web/dist/icons/tab-loom-working-dark-32.png +0 -0
  847. drowse/web/dist/icons/tab-loom-working-dark-33.png +0 -0
  848. drowse/web/dist/icons/tab-loom-working-dark-34.png +0 -0
  849. drowse/web/dist/icons/tab-loom-working-dark-35.png +0 -0
  850. drowse/web/dist/icons/tab-loom-working-dark-36.png +0 -0
  851. drowse/web/dist/icons/tab-loom-working-dark-37.png +0 -0
  852. drowse/web/dist/icons/tab-loom-working-dark-38.png +0 -0
  853. drowse/web/dist/icons/tab-loom-working-dark-39.png +0 -0
  854. drowse/web/dist/icons/tab-loom-working-dark-4.png +0 -0
  855. drowse/web/dist/icons/tab-loom-working-dark-40.png +0 -0
  856. drowse/web/dist/icons/tab-loom-working-dark-41.png +0 -0
  857. drowse/web/dist/icons/tab-loom-working-dark-42.png +0 -0
  858. drowse/web/dist/icons/tab-loom-working-dark-43.png +0 -0
  859. drowse/web/dist/icons/tab-loom-working-dark-44.png +0 -0
  860. drowse/web/dist/icons/tab-loom-working-dark-45.png +0 -0
  861. drowse/web/dist/icons/tab-loom-working-dark-46.png +0 -0
  862. drowse/web/dist/icons/tab-loom-working-dark-47.png +0 -0
  863. drowse/web/dist/icons/tab-loom-working-dark-5.png +0 -0
  864. drowse/web/dist/icons/tab-loom-working-dark-6.png +0 -0
  865. drowse/web/dist/icons/tab-loom-working-dark-7.png +0 -0
  866. drowse/web/dist/icons/tab-loom-working-dark-8.png +0 -0
  867. drowse/web/dist/icons/tab-loom-working-dark-9.png +0 -0
  868. drowse/web/dist/icons/tab-loom-working-light-0.png +0 -0
  869. drowse/web/dist/icons/tab-loom-working-light-1.png +0 -0
  870. drowse/web/dist/icons/tab-loom-working-light-10.png +0 -0
  871. drowse/web/dist/icons/tab-loom-working-light-11.png +0 -0
  872. drowse/web/dist/icons/tab-loom-working-light-12.png +0 -0
  873. drowse/web/dist/icons/tab-loom-working-light-13.png +0 -0
  874. drowse/web/dist/icons/tab-loom-working-light-14.png +0 -0
  875. drowse/web/dist/icons/tab-loom-working-light-15.png +0 -0
  876. drowse/web/dist/icons/tab-loom-working-light-16.png +0 -0
  877. drowse/web/dist/icons/tab-loom-working-light-17.png +0 -0
  878. drowse/web/dist/icons/tab-loom-working-light-18.png +0 -0
  879. drowse/web/dist/icons/tab-loom-working-light-19.png +0 -0
  880. drowse/web/dist/icons/tab-loom-working-light-2.png +0 -0
  881. drowse/web/dist/icons/tab-loom-working-light-20.png +0 -0
  882. drowse/web/dist/icons/tab-loom-working-light-21.png +0 -0
  883. drowse/web/dist/icons/tab-loom-working-light-22.png +0 -0
  884. drowse/web/dist/icons/tab-loom-working-light-23.png +0 -0
  885. drowse/web/dist/icons/tab-loom-working-light-24.png +0 -0
  886. drowse/web/dist/icons/tab-loom-working-light-25.png +0 -0
  887. drowse/web/dist/icons/tab-loom-working-light-26.png +0 -0
  888. drowse/web/dist/icons/tab-loom-working-light-27.png +0 -0
  889. drowse/web/dist/icons/tab-loom-working-light-28.png +0 -0
  890. drowse/web/dist/icons/tab-loom-working-light-29.png +0 -0
  891. drowse/web/dist/icons/tab-loom-working-light-3.png +0 -0
  892. drowse/web/dist/icons/tab-loom-working-light-30.png +0 -0
  893. drowse/web/dist/icons/tab-loom-working-light-31.png +0 -0
  894. drowse/web/dist/icons/tab-loom-working-light-32.png +0 -0
  895. drowse/web/dist/icons/tab-loom-working-light-33.png +0 -0
  896. drowse/web/dist/icons/tab-loom-working-light-34.png +0 -0
  897. drowse/web/dist/icons/tab-loom-working-light-35.png +0 -0
  898. drowse/web/dist/icons/tab-loom-working-light-36.png +0 -0
  899. drowse/web/dist/icons/tab-loom-working-light-37.png +0 -0
  900. drowse/web/dist/icons/tab-loom-working-light-38.png +0 -0
  901. drowse/web/dist/icons/tab-loom-working-light-39.png +0 -0
  902. drowse/web/dist/icons/tab-loom-working-light-4.png +0 -0
  903. drowse/web/dist/icons/tab-loom-working-light-40.png +0 -0
  904. drowse/web/dist/icons/tab-loom-working-light-41.png +0 -0
  905. drowse/web/dist/icons/tab-loom-working-light-42.png +0 -0
  906. drowse/web/dist/icons/tab-loom-working-light-43.png +0 -0
  907. drowse/web/dist/icons/tab-loom-working-light-44.png +0 -0
  908. drowse/web/dist/icons/tab-loom-working-light-45.png +0 -0
  909. drowse/web/dist/icons/tab-loom-working-light-46.png +0 -0
  910. drowse/web/dist/icons/tab-loom-working-light-47.png +0 -0
  911. drowse/web/dist/icons/tab-loom-working-light-5.png +0 -0
  912. drowse/web/dist/icons/tab-loom-working-light-6.png +0 -0
  913. drowse/web/dist/icons/tab-loom-working-light-7.png +0 -0
  914. drowse/web/dist/icons/tab-loom-working-light-8.png +0 -0
  915. drowse/web/dist/icons/tab-loom-working-light-9.png +0 -0
  916. drowse/web/dist/icons/tab-loom.png +0 -0
  917. drowse/web/dist/icons/tab-models-dark.png +0 -0
  918. drowse/web/dist/icons/tab-models-light.png +0 -0
  919. drowse/web/dist/icons/tab-models.png +0 -0
  920. drowse/web/dist/icons/tab-offline-dark.png +0 -0
  921. drowse/web/dist/icons/tab-offline-light.png +0 -0
  922. drowse/web/dist/icons/tab-offline.png +0 -0
  923. drowse/web/dist/icons/tab-paused-dark.png +0 -0
  924. drowse/web/dist/icons/tab-paused-light.png +0 -0
  925. drowse/web/dist/icons/tab-paused.png +0 -0
  926. drowse/web/dist/icons/tab-ready-dark.png +0 -0
  927. drowse/web/dist/icons/tab-ready-light.png +0 -0
  928. drowse/web/dist/icons/tab-ready.png +0 -0
  929. drowse/web/dist/icons/tab-saving-0.png +0 -0
  930. drowse/web/dist/icons/tab-saving-1.png +0 -0
  931. drowse/web/dist/icons/tab-saving-2.png +0 -0
  932. drowse/web/dist/icons/tab-saving-dark-0.png +0 -0
  933. drowse/web/dist/icons/tab-saving-dark-1.png +0 -0
  934. drowse/web/dist/icons/tab-saving-dark-10.png +0 -0
  935. drowse/web/dist/icons/tab-saving-dark-11.png +0 -0
  936. drowse/web/dist/icons/tab-saving-dark-12.png +0 -0
  937. drowse/web/dist/icons/tab-saving-dark-13.png +0 -0
  938. drowse/web/dist/icons/tab-saving-dark-14.png +0 -0
  939. drowse/web/dist/icons/tab-saving-dark-15.png +0 -0
  940. drowse/web/dist/icons/tab-saving-dark-16.png +0 -0
  941. drowse/web/dist/icons/tab-saving-dark-17.png +0 -0
  942. drowse/web/dist/icons/tab-saving-dark-18.png +0 -0
  943. drowse/web/dist/icons/tab-saving-dark-19.png +0 -0
  944. drowse/web/dist/icons/tab-saving-dark-2.png +0 -0
  945. drowse/web/dist/icons/tab-saving-dark-20.png +0 -0
  946. drowse/web/dist/icons/tab-saving-dark-21.png +0 -0
  947. drowse/web/dist/icons/tab-saving-dark-22.png +0 -0
  948. drowse/web/dist/icons/tab-saving-dark-23.png +0 -0
  949. drowse/web/dist/icons/tab-saving-dark-24.png +0 -0
  950. drowse/web/dist/icons/tab-saving-dark-25.png +0 -0
  951. drowse/web/dist/icons/tab-saving-dark-26.png +0 -0
  952. drowse/web/dist/icons/tab-saving-dark-27.png +0 -0
  953. drowse/web/dist/icons/tab-saving-dark-28.png +0 -0
  954. drowse/web/dist/icons/tab-saving-dark-29.png +0 -0
  955. drowse/web/dist/icons/tab-saving-dark-3.png +0 -0
  956. drowse/web/dist/icons/tab-saving-dark-30.png +0 -0
  957. drowse/web/dist/icons/tab-saving-dark-31.png +0 -0
  958. drowse/web/dist/icons/tab-saving-dark-32.png +0 -0
  959. drowse/web/dist/icons/tab-saving-dark-33.png +0 -0
  960. drowse/web/dist/icons/tab-saving-dark-34.png +0 -0
  961. drowse/web/dist/icons/tab-saving-dark-35.png +0 -0
  962. drowse/web/dist/icons/tab-saving-dark-36.png +0 -0
  963. drowse/web/dist/icons/tab-saving-dark-37.png +0 -0
  964. drowse/web/dist/icons/tab-saving-dark-38.png +0 -0
  965. drowse/web/dist/icons/tab-saving-dark-39.png +0 -0
  966. drowse/web/dist/icons/tab-saving-dark-4.png +0 -0
  967. drowse/web/dist/icons/tab-saving-dark-40.png +0 -0
  968. drowse/web/dist/icons/tab-saving-dark-41.png +0 -0
  969. drowse/web/dist/icons/tab-saving-dark-42.png +0 -0
  970. drowse/web/dist/icons/tab-saving-dark-43.png +0 -0
  971. drowse/web/dist/icons/tab-saving-dark-44.png +0 -0
  972. drowse/web/dist/icons/tab-saving-dark-45.png +0 -0
  973. drowse/web/dist/icons/tab-saving-dark-46.png +0 -0
  974. drowse/web/dist/icons/tab-saving-dark-47.png +0 -0
  975. drowse/web/dist/icons/tab-saving-dark-5.png +0 -0
  976. drowse/web/dist/icons/tab-saving-dark-6.png +0 -0
  977. drowse/web/dist/icons/tab-saving-dark-7.png +0 -0
  978. drowse/web/dist/icons/tab-saving-dark-8.png +0 -0
  979. drowse/web/dist/icons/tab-saving-dark-9.png +0 -0
  980. drowse/web/dist/icons/tab-saving-light-0.png +0 -0
  981. drowse/web/dist/icons/tab-saving-light-1.png +0 -0
  982. drowse/web/dist/icons/tab-saving-light-10.png +0 -0
  983. drowse/web/dist/icons/tab-saving-light-11.png +0 -0
  984. drowse/web/dist/icons/tab-saving-light-12.png +0 -0
  985. drowse/web/dist/icons/tab-saving-light-13.png +0 -0
  986. drowse/web/dist/icons/tab-saving-light-14.png +0 -0
  987. drowse/web/dist/icons/tab-saving-light-15.png +0 -0
  988. drowse/web/dist/icons/tab-saving-light-16.png +0 -0
  989. drowse/web/dist/icons/tab-saving-light-17.png +0 -0
  990. drowse/web/dist/icons/tab-saving-light-18.png +0 -0
  991. drowse/web/dist/icons/tab-saving-light-19.png +0 -0
  992. drowse/web/dist/icons/tab-saving-light-2.png +0 -0
  993. drowse/web/dist/icons/tab-saving-light-20.png +0 -0
  994. drowse/web/dist/icons/tab-saving-light-21.png +0 -0
  995. drowse/web/dist/icons/tab-saving-light-22.png +0 -0
  996. drowse/web/dist/icons/tab-saving-light-23.png +0 -0
  997. drowse/web/dist/icons/tab-saving-light-24.png +0 -0
  998. drowse/web/dist/icons/tab-saving-light-25.png +0 -0
  999. drowse/web/dist/icons/tab-saving-light-26.png +0 -0
  1000. drowse/web/dist/icons/tab-saving-light-27.png +0 -0
  1001. drowse/web/dist/icons/tab-saving-light-28.png +0 -0
  1002. drowse/web/dist/icons/tab-saving-light-29.png +0 -0
  1003. drowse/web/dist/icons/tab-saving-light-3.png +0 -0
  1004. drowse/web/dist/icons/tab-saving-light-30.png +0 -0
  1005. drowse/web/dist/icons/tab-saving-light-31.png +0 -0
  1006. drowse/web/dist/icons/tab-saving-light-32.png +0 -0
  1007. drowse/web/dist/icons/tab-saving-light-33.png +0 -0
  1008. drowse/web/dist/icons/tab-saving-light-34.png +0 -0
  1009. drowse/web/dist/icons/tab-saving-light-35.png +0 -0
  1010. drowse/web/dist/icons/tab-saving-light-36.png +0 -0
  1011. drowse/web/dist/icons/tab-saving-light-37.png +0 -0
  1012. drowse/web/dist/icons/tab-saving-light-38.png +0 -0
  1013. drowse/web/dist/icons/tab-saving-light-39.png +0 -0
  1014. drowse/web/dist/icons/tab-saving-light-4.png +0 -0
  1015. drowse/web/dist/icons/tab-saving-light-40.png +0 -0
  1016. drowse/web/dist/icons/tab-saving-light-41.png +0 -0
  1017. drowse/web/dist/icons/tab-saving-light-42.png +0 -0
  1018. drowse/web/dist/icons/tab-saving-light-43.png +0 -0
  1019. drowse/web/dist/icons/tab-saving-light-44.png +0 -0
  1020. drowse/web/dist/icons/tab-saving-light-45.png +0 -0
  1021. drowse/web/dist/icons/tab-saving-light-46.png +0 -0
  1022. drowse/web/dist/icons/tab-saving-light-47.png +0 -0
  1023. drowse/web/dist/icons/tab-saving-light-5.png +0 -0
  1024. drowse/web/dist/icons/tab-saving-light-6.png +0 -0
  1025. drowse/web/dist/icons/tab-saving-light-7.png +0 -0
  1026. drowse/web/dist/icons/tab-saving-light-8.png +0 -0
  1027. drowse/web/dist/icons/tab-saving-light-9.png +0 -0
  1028. drowse/web/dist/icons/tab-thinking-0.png +0 -0
  1029. drowse/web/dist/icons/tab-thinking-1.png +0 -0
  1030. drowse/web/dist/icons/tab-thinking-2.png +0 -0
  1031. drowse/web/dist/icons/tab-thinking-dark-0.png +0 -0
  1032. drowse/web/dist/icons/tab-thinking-dark-1.png +0 -0
  1033. drowse/web/dist/icons/tab-thinking-dark-10.png +0 -0
  1034. drowse/web/dist/icons/tab-thinking-dark-11.png +0 -0
  1035. drowse/web/dist/icons/tab-thinking-dark-12.png +0 -0
  1036. drowse/web/dist/icons/tab-thinking-dark-13.png +0 -0
  1037. drowse/web/dist/icons/tab-thinking-dark-14.png +0 -0
  1038. drowse/web/dist/icons/tab-thinking-dark-15.png +0 -0
  1039. drowse/web/dist/icons/tab-thinking-dark-16.png +0 -0
  1040. drowse/web/dist/icons/tab-thinking-dark-17.png +0 -0
  1041. drowse/web/dist/icons/tab-thinking-dark-18.png +0 -0
  1042. drowse/web/dist/icons/tab-thinking-dark-19.png +0 -0
  1043. drowse/web/dist/icons/tab-thinking-dark-2.png +0 -0
  1044. drowse/web/dist/icons/tab-thinking-dark-20.png +0 -0
  1045. drowse/web/dist/icons/tab-thinking-dark-21.png +0 -0
  1046. drowse/web/dist/icons/tab-thinking-dark-22.png +0 -0
  1047. drowse/web/dist/icons/tab-thinking-dark-23.png +0 -0
  1048. drowse/web/dist/icons/tab-thinking-dark-24.png +0 -0
  1049. drowse/web/dist/icons/tab-thinking-dark-25.png +0 -0
  1050. drowse/web/dist/icons/tab-thinking-dark-26.png +0 -0
  1051. drowse/web/dist/icons/tab-thinking-dark-27.png +0 -0
  1052. drowse/web/dist/icons/tab-thinking-dark-28.png +0 -0
  1053. drowse/web/dist/icons/tab-thinking-dark-29.png +0 -0
  1054. drowse/web/dist/icons/tab-thinking-dark-3.png +0 -0
  1055. drowse/web/dist/icons/tab-thinking-dark-30.png +0 -0
  1056. drowse/web/dist/icons/tab-thinking-dark-31.png +0 -0
  1057. drowse/web/dist/icons/tab-thinking-dark-32.png +0 -0
  1058. drowse/web/dist/icons/tab-thinking-dark-33.png +0 -0
  1059. drowse/web/dist/icons/tab-thinking-dark-34.png +0 -0
  1060. drowse/web/dist/icons/tab-thinking-dark-35.png +0 -0
  1061. drowse/web/dist/icons/tab-thinking-dark-36.png +0 -0
  1062. drowse/web/dist/icons/tab-thinking-dark-37.png +0 -0
  1063. drowse/web/dist/icons/tab-thinking-dark-38.png +0 -0
  1064. drowse/web/dist/icons/tab-thinking-dark-39.png +0 -0
  1065. drowse/web/dist/icons/tab-thinking-dark-4.png +0 -0
  1066. drowse/web/dist/icons/tab-thinking-dark-40.png +0 -0
  1067. drowse/web/dist/icons/tab-thinking-dark-41.png +0 -0
  1068. drowse/web/dist/icons/tab-thinking-dark-42.png +0 -0
  1069. drowse/web/dist/icons/tab-thinking-dark-43.png +0 -0
  1070. drowse/web/dist/icons/tab-thinking-dark-44.png +0 -0
  1071. drowse/web/dist/icons/tab-thinking-dark-45.png +0 -0
  1072. drowse/web/dist/icons/tab-thinking-dark-46.png +0 -0
  1073. drowse/web/dist/icons/tab-thinking-dark-47.png +0 -0
  1074. drowse/web/dist/icons/tab-thinking-dark-5.png +0 -0
  1075. drowse/web/dist/icons/tab-thinking-dark-6.png +0 -0
  1076. drowse/web/dist/icons/tab-thinking-dark-7.png +0 -0
  1077. drowse/web/dist/icons/tab-thinking-dark-8.png +0 -0
  1078. drowse/web/dist/icons/tab-thinking-dark-9.png +0 -0
  1079. drowse/web/dist/icons/tab-thinking-light-0.png +0 -0
  1080. drowse/web/dist/icons/tab-thinking-light-1.png +0 -0
  1081. drowse/web/dist/icons/tab-thinking-light-10.png +0 -0
  1082. drowse/web/dist/icons/tab-thinking-light-11.png +0 -0
  1083. drowse/web/dist/icons/tab-thinking-light-12.png +0 -0
  1084. drowse/web/dist/icons/tab-thinking-light-13.png +0 -0
  1085. drowse/web/dist/icons/tab-thinking-light-14.png +0 -0
  1086. drowse/web/dist/icons/tab-thinking-light-15.png +0 -0
  1087. drowse/web/dist/icons/tab-thinking-light-16.png +0 -0
  1088. drowse/web/dist/icons/tab-thinking-light-17.png +0 -0
  1089. drowse/web/dist/icons/tab-thinking-light-18.png +0 -0
  1090. drowse/web/dist/icons/tab-thinking-light-19.png +0 -0
  1091. drowse/web/dist/icons/tab-thinking-light-2.png +0 -0
  1092. drowse/web/dist/icons/tab-thinking-light-20.png +0 -0
  1093. drowse/web/dist/icons/tab-thinking-light-21.png +0 -0
  1094. drowse/web/dist/icons/tab-thinking-light-22.png +0 -0
  1095. drowse/web/dist/icons/tab-thinking-light-23.png +0 -0
  1096. drowse/web/dist/icons/tab-thinking-light-24.png +0 -0
  1097. drowse/web/dist/icons/tab-thinking-light-25.png +0 -0
  1098. drowse/web/dist/icons/tab-thinking-light-26.png +0 -0
  1099. drowse/web/dist/icons/tab-thinking-light-27.png +0 -0
  1100. drowse/web/dist/icons/tab-thinking-light-28.png +0 -0
  1101. drowse/web/dist/icons/tab-thinking-light-29.png +0 -0
  1102. drowse/web/dist/icons/tab-thinking-light-3.png +0 -0
  1103. drowse/web/dist/icons/tab-thinking-light-30.png +0 -0
  1104. drowse/web/dist/icons/tab-thinking-light-31.png +0 -0
  1105. drowse/web/dist/icons/tab-thinking-light-32.png +0 -0
  1106. drowse/web/dist/icons/tab-thinking-light-33.png +0 -0
  1107. drowse/web/dist/icons/tab-thinking-light-34.png +0 -0
  1108. drowse/web/dist/icons/tab-thinking-light-35.png +0 -0
  1109. drowse/web/dist/icons/tab-thinking-light-36.png +0 -0
  1110. drowse/web/dist/icons/tab-thinking-light-37.png +0 -0
  1111. drowse/web/dist/icons/tab-thinking-light-38.png +0 -0
  1112. drowse/web/dist/icons/tab-thinking-light-39.png +0 -0
  1113. drowse/web/dist/icons/tab-thinking-light-4.png +0 -0
  1114. drowse/web/dist/icons/tab-thinking-light-40.png +0 -0
  1115. drowse/web/dist/icons/tab-thinking-light-41.png +0 -0
  1116. drowse/web/dist/icons/tab-thinking-light-42.png +0 -0
  1117. drowse/web/dist/icons/tab-thinking-light-43.png +0 -0
  1118. drowse/web/dist/icons/tab-thinking-light-44.png +0 -0
  1119. drowse/web/dist/icons/tab-thinking-light-45.png +0 -0
  1120. drowse/web/dist/icons/tab-thinking-light-46.png +0 -0
  1121. drowse/web/dist/icons/tab-thinking-light-47.png +0 -0
  1122. drowse/web/dist/icons/tab-thinking-light-5.png +0 -0
  1123. drowse/web/dist/icons/tab-thinking-light-6.png +0 -0
  1124. drowse/web/dist/icons/tab-thinking-light-7.png +0 -0
  1125. drowse/web/dist/icons/tab-thinking-light-8.png +0 -0
  1126. drowse/web/dist/icons/tab-thinking-light-9.png +0 -0
  1127. drowse/web/dist/icons/tab-tokens-dark.png +0 -0
  1128. drowse/web/dist/icons/tab-tokens-light.png +0 -0
  1129. drowse/web/dist/icons/tab-tokens.png +0 -0
  1130. drowse/web/dist/icons/tab-training-0.png +0 -0
  1131. drowse/web/dist/icons/tab-training-1.png +0 -0
  1132. drowse/web/dist/icons/tab-training-2.png +0 -0
  1133. drowse/web/dist/icons/tab-training-dark-0.png +0 -0
  1134. drowse/web/dist/icons/tab-training-dark-1.png +0 -0
  1135. drowse/web/dist/icons/tab-training-dark-10.png +0 -0
  1136. drowse/web/dist/icons/tab-training-dark-11.png +0 -0
  1137. drowse/web/dist/icons/tab-training-dark-12.png +0 -0
  1138. drowse/web/dist/icons/tab-training-dark-13.png +0 -0
  1139. drowse/web/dist/icons/tab-training-dark-14.png +0 -0
  1140. drowse/web/dist/icons/tab-training-dark-15.png +0 -0
  1141. drowse/web/dist/icons/tab-training-dark-16.png +0 -0
  1142. drowse/web/dist/icons/tab-training-dark-17.png +0 -0
  1143. drowse/web/dist/icons/tab-training-dark-18.png +0 -0
  1144. drowse/web/dist/icons/tab-training-dark-19.png +0 -0
  1145. drowse/web/dist/icons/tab-training-dark-2.png +0 -0
  1146. drowse/web/dist/icons/tab-training-dark-20.png +0 -0
  1147. drowse/web/dist/icons/tab-training-dark-21.png +0 -0
  1148. drowse/web/dist/icons/tab-training-dark-22.png +0 -0
  1149. drowse/web/dist/icons/tab-training-dark-23.png +0 -0
  1150. drowse/web/dist/icons/tab-training-dark-24.png +0 -0
  1151. drowse/web/dist/icons/tab-training-dark-25.png +0 -0
  1152. drowse/web/dist/icons/tab-training-dark-26.png +0 -0
  1153. drowse/web/dist/icons/tab-training-dark-27.png +0 -0
  1154. drowse/web/dist/icons/tab-training-dark-28.png +0 -0
  1155. drowse/web/dist/icons/tab-training-dark-29.png +0 -0
  1156. drowse/web/dist/icons/tab-training-dark-3.png +0 -0
  1157. drowse/web/dist/icons/tab-training-dark-30.png +0 -0
  1158. drowse/web/dist/icons/tab-training-dark-31.png +0 -0
  1159. drowse/web/dist/icons/tab-training-dark-32.png +0 -0
  1160. drowse/web/dist/icons/tab-training-dark-33.png +0 -0
  1161. drowse/web/dist/icons/tab-training-dark-34.png +0 -0
  1162. drowse/web/dist/icons/tab-training-dark-35.png +0 -0
  1163. drowse/web/dist/icons/tab-training-dark-36.png +0 -0
  1164. drowse/web/dist/icons/tab-training-dark-37.png +0 -0
  1165. drowse/web/dist/icons/tab-training-dark-38.png +0 -0
  1166. drowse/web/dist/icons/tab-training-dark-39.png +0 -0
  1167. drowse/web/dist/icons/tab-training-dark-4.png +0 -0
  1168. drowse/web/dist/icons/tab-training-dark-40.png +0 -0
  1169. drowse/web/dist/icons/tab-training-dark-41.png +0 -0
  1170. drowse/web/dist/icons/tab-training-dark-42.png +0 -0
  1171. drowse/web/dist/icons/tab-training-dark-43.png +0 -0
  1172. drowse/web/dist/icons/tab-training-dark-44.png +0 -0
  1173. drowse/web/dist/icons/tab-training-dark-45.png +0 -0
  1174. drowse/web/dist/icons/tab-training-dark-46.png +0 -0
  1175. drowse/web/dist/icons/tab-training-dark-47.png +0 -0
  1176. drowse/web/dist/icons/tab-training-dark-5.png +0 -0
  1177. drowse/web/dist/icons/tab-training-dark-6.png +0 -0
  1178. drowse/web/dist/icons/tab-training-dark-7.png +0 -0
  1179. drowse/web/dist/icons/tab-training-dark-8.png +0 -0
  1180. drowse/web/dist/icons/tab-training-dark-9.png +0 -0
  1181. drowse/web/dist/icons/tab-training-light-0.png +0 -0
  1182. drowse/web/dist/icons/tab-training-light-1.png +0 -0
  1183. drowse/web/dist/icons/tab-training-light-10.png +0 -0
  1184. drowse/web/dist/icons/tab-training-light-11.png +0 -0
  1185. drowse/web/dist/icons/tab-training-light-12.png +0 -0
  1186. drowse/web/dist/icons/tab-training-light-13.png +0 -0
  1187. drowse/web/dist/icons/tab-training-light-14.png +0 -0
  1188. drowse/web/dist/icons/tab-training-light-15.png +0 -0
  1189. drowse/web/dist/icons/tab-training-light-16.png +0 -0
  1190. drowse/web/dist/icons/tab-training-light-17.png +0 -0
  1191. drowse/web/dist/icons/tab-training-light-18.png +0 -0
  1192. drowse/web/dist/icons/tab-training-light-19.png +0 -0
  1193. drowse/web/dist/icons/tab-training-light-2.png +0 -0
  1194. drowse/web/dist/icons/tab-training-light-20.png +0 -0
  1195. drowse/web/dist/icons/tab-training-light-21.png +0 -0
  1196. drowse/web/dist/icons/tab-training-light-22.png +0 -0
  1197. drowse/web/dist/icons/tab-training-light-23.png +0 -0
  1198. drowse/web/dist/icons/tab-training-light-24.png +0 -0
  1199. drowse/web/dist/icons/tab-training-light-25.png +0 -0
  1200. drowse/web/dist/icons/tab-training-light-26.png +0 -0
  1201. drowse/web/dist/icons/tab-training-light-27.png +0 -0
  1202. drowse/web/dist/icons/tab-training-light-28.png +0 -0
  1203. drowse/web/dist/icons/tab-training-light-29.png +0 -0
  1204. drowse/web/dist/icons/tab-training-light-3.png +0 -0
  1205. drowse/web/dist/icons/tab-training-light-30.png +0 -0
  1206. drowse/web/dist/icons/tab-training-light-31.png +0 -0
  1207. drowse/web/dist/icons/tab-training-light-32.png +0 -0
  1208. drowse/web/dist/icons/tab-training-light-33.png +0 -0
  1209. drowse/web/dist/icons/tab-training-light-34.png +0 -0
  1210. drowse/web/dist/icons/tab-training-light-35.png +0 -0
  1211. drowse/web/dist/icons/tab-training-light-36.png +0 -0
  1212. drowse/web/dist/icons/tab-training-light-37.png +0 -0
  1213. drowse/web/dist/icons/tab-training-light-38.png +0 -0
  1214. drowse/web/dist/icons/tab-training-light-39.png +0 -0
  1215. drowse/web/dist/icons/tab-training-light-4.png +0 -0
  1216. drowse/web/dist/icons/tab-training-light-40.png +0 -0
  1217. drowse/web/dist/icons/tab-training-light-41.png +0 -0
  1218. drowse/web/dist/icons/tab-training-light-42.png +0 -0
  1219. drowse/web/dist/icons/tab-training-light-43.png +0 -0
  1220. drowse/web/dist/icons/tab-training-light-44.png +0 -0
  1221. drowse/web/dist/icons/tab-training-light-45.png +0 -0
  1222. drowse/web/dist/icons/tab-training-light-46.png +0 -0
  1223. drowse/web/dist/icons/tab-training-light-47.png +0 -0
  1224. drowse/web/dist/icons/tab-training-light-5.png +0 -0
  1225. drowse/web/dist/icons/tab-training-light-6.png +0 -0
  1226. drowse/web/dist/icons/tab-training-light-7.png +0 -0
  1227. drowse/web/dist/icons/tab-training-light-8.png +0 -0
  1228. drowse/web/dist/icons/tab-training-light-9.png +0 -0
  1229. drowse/web/dist/icons/tab-unsupported-dark.png +0 -0
  1230. drowse/web/dist/icons/tab-unsupported-light.png +0 -0
  1231. drowse/web/dist/icons/tab-unsupported.png +0 -0
  1232. drowse/web/dist/icons/tab-working-0.png +0 -0
  1233. drowse/web/dist/icons/tab-working-1.png +0 -0
  1234. drowse/web/dist/icons/tab-working-2.png +0 -0
  1235. drowse/web/dist/icons/tab-working-dark-0.png +0 -0
  1236. drowse/web/dist/icons/tab-working-dark-1.png +0 -0
  1237. drowse/web/dist/icons/tab-working-dark-10.png +0 -0
  1238. drowse/web/dist/icons/tab-working-dark-11.png +0 -0
  1239. drowse/web/dist/icons/tab-working-dark-12.png +0 -0
  1240. drowse/web/dist/icons/tab-working-dark-13.png +0 -0
  1241. drowse/web/dist/icons/tab-working-dark-14.png +0 -0
  1242. drowse/web/dist/icons/tab-working-dark-15.png +0 -0
  1243. drowse/web/dist/icons/tab-working-dark-16.png +0 -0
  1244. drowse/web/dist/icons/tab-working-dark-17.png +0 -0
  1245. drowse/web/dist/icons/tab-working-dark-18.png +0 -0
  1246. drowse/web/dist/icons/tab-working-dark-19.png +0 -0
  1247. drowse/web/dist/icons/tab-working-dark-2.png +0 -0
  1248. drowse/web/dist/icons/tab-working-dark-20.png +0 -0
  1249. drowse/web/dist/icons/tab-working-dark-21.png +0 -0
  1250. drowse/web/dist/icons/tab-working-dark-22.png +0 -0
  1251. drowse/web/dist/icons/tab-working-dark-23.png +0 -0
  1252. drowse/web/dist/icons/tab-working-dark-24.png +0 -0
  1253. drowse/web/dist/icons/tab-working-dark-25.png +0 -0
  1254. drowse/web/dist/icons/tab-working-dark-26.png +0 -0
  1255. drowse/web/dist/icons/tab-working-dark-27.png +0 -0
  1256. drowse/web/dist/icons/tab-working-dark-28.png +0 -0
  1257. drowse/web/dist/icons/tab-working-dark-29.png +0 -0
  1258. drowse/web/dist/icons/tab-working-dark-3.png +0 -0
  1259. drowse/web/dist/icons/tab-working-dark-30.png +0 -0
  1260. drowse/web/dist/icons/tab-working-dark-31.png +0 -0
  1261. drowse/web/dist/icons/tab-working-dark-32.png +0 -0
  1262. drowse/web/dist/icons/tab-working-dark-33.png +0 -0
  1263. drowse/web/dist/icons/tab-working-dark-34.png +0 -0
  1264. drowse/web/dist/icons/tab-working-dark-35.png +0 -0
  1265. drowse/web/dist/icons/tab-working-dark-36.png +0 -0
  1266. drowse/web/dist/icons/tab-working-dark-37.png +0 -0
  1267. drowse/web/dist/icons/tab-working-dark-38.png +0 -0
  1268. drowse/web/dist/icons/tab-working-dark-39.png +0 -0
  1269. drowse/web/dist/icons/tab-working-dark-4.png +0 -0
  1270. drowse/web/dist/icons/tab-working-dark-40.png +0 -0
  1271. drowse/web/dist/icons/tab-working-dark-41.png +0 -0
  1272. drowse/web/dist/icons/tab-working-dark-42.png +0 -0
  1273. drowse/web/dist/icons/tab-working-dark-43.png +0 -0
  1274. drowse/web/dist/icons/tab-working-dark-44.png +0 -0
  1275. drowse/web/dist/icons/tab-working-dark-45.png +0 -0
  1276. drowse/web/dist/icons/tab-working-dark-46.png +0 -0
  1277. drowse/web/dist/icons/tab-working-dark-47.png +0 -0
  1278. drowse/web/dist/icons/tab-working-dark-5.png +0 -0
  1279. drowse/web/dist/icons/tab-working-dark-6.png +0 -0
  1280. drowse/web/dist/icons/tab-working-dark-7.png +0 -0
  1281. drowse/web/dist/icons/tab-working-dark-8.png +0 -0
  1282. drowse/web/dist/icons/tab-working-dark-9.png +0 -0
  1283. drowse/web/dist/icons/tab-working-light-0.png +0 -0
  1284. drowse/web/dist/icons/tab-working-light-1.png +0 -0
  1285. drowse/web/dist/icons/tab-working-light-10.png +0 -0
  1286. drowse/web/dist/icons/tab-working-light-11.png +0 -0
  1287. drowse/web/dist/icons/tab-working-light-12.png +0 -0
  1288. drowse/web/dist/icons/tab-working-light-13.png +0 -0
  1289. drowse/web/dist/icons/tab-working-light-14.png +0 -0
  1290. drowse/web/dist/icons/tab-working-light-15.png +0 -0
  1291. drowse/web/dist/icons/tab-working-light-16.png +0 -0
  1292. drowse/web/dist/icons/tab-working-light-17.png +0 -0
  1293. drowse/web/dist/icons/tab-working-light-18.png +0 -0
  1294. drowse/web/dist/icons/tab-working-light-19.png +0 -0
  1295. drowse/web/dist/icons/tab-working-light-2.png +0 -0
  1296. drowse/web/dist/icons/tab-working-light-20.png +0 -0
  1297. drowse/web/dist/icons/tab-working-light-21.png +0 -0
  1298. drowse/web/dist/icons/tab-working-light-22.png +0 -0
  1299. drowse/web/dist/icons/tab-working-light-23.png +0 -0
  1300. drowse/web/dist/icons/tab-working-light-24.png +0 -0
  1301. drowse/web/dist/icons/tab-working-light-25.png +0 -0
  1302. drowse/web/dist/icons/tab-working-light-26.png +0 -0
  1303. drowse/web/dist/icons/tab-working-light-27.png +0 -0
  1304. drowse/web/dist/icons/tab-working-light-28.png +0 -0
  1305. drowse/web/dist/icons/tab-working-light-29.png +0 -0
  1306. drowse/web/dist/icons/tab-working-light-3.png +0 -0
  1307. drowse/web/dist/icons/tab-working-light-30.png +0 -0
  1308. drowse/web/dist/icons/tab-working-light-31.png +0 -0
  1309. drowse/web/dist/icons/tab-working-light-32.png +0 -0
  1310. drowse/web/dist/icons/tab-working-light-33.png +0 -0
  1311. drowse/web/dist/icons/tab-working-light-34.png +0 -0
  1312. drowse/web/dist/icons/tab-working-light-35.png +0 -0
  1313. drowse/web/dist/icons/tab-working-light-36.png +0 -0
  1314. drowse/web/dist/icons/tab-working-light-37.png +0 -0
  1315. drowse/web/dist/icons/tab-working-light-38.png +0 -0
  1316. drowse/web/dist/icons/tab-working-light-39.png +0 -0
  1317. drowse/web/dist/icons/tab-working-light-4.png +0 -0
  1318. drowse/web/dist/icons/tab-working-light-40.png +0 -0
  1319. drowse/web/dist/icons/tab-working-light-41.png +0 -0
  1320. drowse/web/dist/icons/tab-working-light-42.png +0 -0
  1321. drowse/web/dist/icons/tab-working-light-43.png +0 -0
  1322. drowse/web/dist/icons/tab-working-light-44.png +0 -0
  1323. drowse/web/dist/icons/tab-working-light-45.png +0 -0
  1324. drowse/web/dist/icons/tab-working-light-46.png +0 -0
  1325. drowse/web/dist/icons/tab-working-light-47.png +0 -0
  1326. drowse/web/dist/icons/tab-working-light-5.png +0 -0
  1327. drowse/web/dist/icons/tab-working-light-6.png +0 -0
  1328. drowse/web/dist/icons/tab-working-light-7.png +0 -0
  1329. drowse/web/dist/icons/tab-working-light-8.png +0 -0
  1330. drowse/web/dist/icons/tab-working-light-9.png +0 -0
  1331. drowse/web/dist/index.html +34 -0
  1332. drowse/web/dist/social/drowse.png +0 -0
  1333. drowse/web/dist/social/drowse.svg +6 -0
  1334. drowse/web/dist/theme-init.js +25 -0
  1335. drowse/web/routes.py +118 -0
  1336. drowse_ai-5.3.1.dist-info/METADATA +632 -0
  1337. drowse_ai-5.3.1.dist-info/RECORD +1341 -0
  1338. drowse_ai-5.3.1.dist-info/WHEEL +5 -0
  1339. drowse_ai-5.3.1.dist-info/entry_points.txt +2 -0
  1340. drowse_ai-5.3.1.dist-info/licenses/LICENSE +661 -0
  1341. drowse_ai-5.3.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,123 @@
1
+ import{Ar as e,Bn as t,Br as n,Cn as r,Cr as i,D as a,Dr as o,E as s,Er as c,Fr as l,Gt as u,Ir as d,Jt as f,K as p,Kt as m,Lr as h,Mn as g,Mr as _,Mt as v,Nn as y,Nr as b,Or as x,Ot as S,Pn as C,Pr as w,Q as T,Qt as E,Rr as D,S as O,Tn as k,Tr as A,Ur as j,V as M,Vr as N,Wr as ee,Wt as te,X as ne,Xn as P,Xt as re,Yt as ie,Zn as ae,Zt as oe,_r as se,an as ce,b as le,br as ue,d as de,dr as fe,en as pe,f as me,g as he,hr as ge,jr as _e,kr as ve,l as ye,ln as be,m as xe,mr as Se,n as Ce,nn as we,p as Te,qn as Ee,rn as De,rt as Oe,sn as ke,tn as Ae,vr as je,wr as Me,xr as Ne,xt as Pe,yr as Fe,z as Ie,zr as Le}from"./ab.svelte-CbVGAYXo.js";import{$ as Re,A as ze,At as Be,B as Ve,C as He,D as Ue,E as We,Et as F,H as Ge,I,J as Ke,K as qe,L as Je,O as L,Ot as Ye,P as R,R as z,S as Xe,Tt as Ze,U as B,V as Qe,W as $e,Y as et,_ as tt,a as nt,at as rt,bt as it,c as at,ct as V,d as H,dt as U,et as W,f as ot,g as st,gt as G,h as ct,i as lt,j as K,jt as ut,k as dt,l as ft,lt as pt,m as mt,n as ht,o as gt,ot as q,p as J,pt as Y,q as X,r as Z,rt as _t,s as vt,st as Q,t as yt,tt as bt,u as xt,v as St,w as Ct,wt,y as Tt,yt as Et,z as Dt}from"./index-client-2OdH6IQp.js";import{b as Ot,c as kt,d as At,f as jt,g as Mt,h as Nt,i as Pt,l as Ft,m as It,n as Lt,o as Rt,s as zt,t as Bt,u as Vt,v as Ht,x as Ut,y as Wt}from"./savedConversations.svelte-BsBLc-p7.js";import{i as Gt,r as Kt,t as qt}from"./registry-CQv71XNh.js";import{A as Jt,C as Yt,D as Xt,E as Zt,O as Qt,S as $t,T as en,_ as tn,a as nn,b as rn,c as an,d as on,f as sn,g as cn,h as ln,i as un,l as dn,m as fn,n as pn,o as mn,p as hn,r as gn,s as _n,t as vn,u as yn,v as bn,x as xn,y as Sn}from"./selectors-BxXnPPN_.js";import{a as Cn,i as wn,n as Tn,o as En,r as Dn,s as On,t as kn}from"./samplingCapabilities-DM6eoDoc.js";import{n as An,r as jn,t as Mn}from"./errors-Dvb10QW_.js";import{d as Nn,l as Pn,p as Fn}from"./workspaceController-C2L33e3m.js";import{n as In,t as Ln}from"./types-CuMUbvHW.js";import{o as Rn}from"./manifoldJobs.svelte-9f5hs_J7.js";import{t as zn}from"./fittingCancellation-D72BZWPZ.js";import{n as Bn}from"./artifactUpdates-Cjeu6LJc.js";import{t as Vn}from"./templates-Bkq2x5ID.js";typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var Hn={more:[`M7 12a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm7 0a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm7 0a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z`],appearance:[`M11.5582 13.6469L11.4746 13.7179L4.54692 20.5186C5.04216 20.8239 5.62551 21 6.25 21H17.75C18.3745 21 18.9578 20.8239 19.4531 20.5186L12.5254 13.7179L12.432 13.6399C12.1705 13.4552 11.8174 13.4576 11.5582 13.6469ZM21 6.25C21 4.45507 19.5449 3 17.75 3H6.25C4.45507 3 3 4.45507 3 6.25V17.75C3 18.3771 3.17758 18.9626 3.4852 19.4592L10.4238 12.6475L10.5592 12.5248C11.3941 11.8273 12.615 11.8293 13.4477 12.5306L13.5762 12.6475L20.5148 19.4592C20.8224 18.9626 21 18.3771 21 17.75V6.25ZM15.25 10.75C14.1454 10.75 13.25 9.85457 13.25 8.75C13.25 7.64543 14.1454 6.75 15.25 6.75C16.3546 6.75 17.25 7.64543 17.25 8.75C17.25 9.85457 16.3546 10.75 15.25 10.75Z`],subtract:[`M3.996 13H20c0.552 0 1-0.448 1-1s-0.448-1-1-1H3.996c-0.552 0-1 0.448-1 1s0.448 1 1 1z`],help:[`M12 2c5.523 0 10 4.478 10 10s-4.477 10-10 10S2 17.522 2 12 6.477 2 12 2zm0 13.5c-0.552 0-1 0.448-1 1s0.448 1 1 1 1-0.448 1-1-0.448-1-1-1zm0-8.75c-1.519 0-2.75 1.231-2.75 2.75 0 0.414 0.336 0.75 0.75 0.75 0.38 0 0.694-0.282 0.743-0.648L10.75 9.5c0-0.69 0.56-1.25 1.25-1.25s1.25 0.56 1.25 1.25c0 0.539-0.135 0.805-0.645 1.332L12.47 10.97c-0.878 0.878-1.22 1.447-1.22 2.53 0 0.414 0.336 0.75 0.75 0.75s0.75-0.336 0.75-0.75c0-0.539 0.135-0.805 0.645-1.332l0.135-0.138c0.878-0.878 1.22-1.447 1.22-2.53 0-1.519-1.231-2.75-2.75-2.75z`],shuffle:[`M19.207 4.293c-0.39-0.39-1.024-0.39-1.414 0-0.39 0.39-0.39 1.024 0 1.414l0.801 0.802c-3.809 0.161-6.169 2.59-8.226 4.706l-0.085 0.088C8.057 13.593 6.147 15.5 3 15.5c-0.552 0-1 0.448-1 1s0.448 1 1 1c4.05 0 6.503-2.525 8.632-4.715l0.085-0.088c2.124-2.184 3.96-4.02 6.857-4.185l-0.781 0.78c-0.39 0.391-0.39 1.025 0 1.415 0.39 0.39 1.024 0.39 1.414 0l2.5-2.5C21.895 8.02 22 7.765 22 7.5c0-0.265-0.105-0.52-0.293-0.707l-2.5-2.5zM3 6.5c3.229 0 5.443 1.605 7.287 3.367-0.197 0.199-0.388 0.396-0.574 0.587l-0.147 0.152c-0.233 0.24-0.459 0.47-0.68 0.693C7.186 9.68 5.476 8.5 3 8.5c-0.552 0-1-0.447-1-1 0-0.552 0.448-1 1-1zm15.594 10.991c-3.01-0.128-5.115-1.671-6.881-3.357 0.197-0.2 0.388-0.397 0.574-0.589l0.147-0.151c0.233-0.24 0.459-0.47 0.68-0.693 1.601 1.524 3.21 2.66 5.46 2.787l-0.781-0.78c-0.39-0.391-0.39-1.025 0-1.415 0.39-0.39 1.024-0.39 1.414 0l2.5 2.5C21.895 15.98 22 16.235 22 16.5c0 0.265-0.105 0.52-0.293 0.707l-2.5 2.5c-0.39 0.39-1.024 0.39-1.414 0-0.39-0.39-0.39-1.024 0-1.414l0.801-0.802z`],add:[`M11.883 3.007L12 3c0.513 0 0.935 0.386 0.993 0.883L13 4v7h7c0.513 0 0.936 0.386 0.993 0.883L21 12c0 0.513-0.386 0.935-0.883 0.993L20 13h-7v7c0 0.513-0.386 0.936-0.883 0.993L12 21c-0.513 0-0.935-0.386-0.993-0.883L11 20v-7H4c-0.513 0-0.936-0.386-0.993-0.883L3 12c0-0.513 0.386-0.935 0.883-0.993L4 11h7V4c0-0.513 0.386-0.936 0.883-0.993L12 3l-0.117 0.007z`],back:[`M15.707 4.293c0.39 0.39 0.39 1.024 0 1.414L9.414 12l6.293 6.293c0.39 0.39 0.39 1.024 0 1.414-0.39 0.39-1.024 0.39-1.414 0l-7-7c-0.39-0.39-0.39-1.024 0-1.414l7-7c0.39-0.39 1.024-0.39 1.414 0z`],chats:[`M9.5 3C5.358 3 2 6.358 2 10.5c0 1.133 0.252 2.21 0.703 3.175-0.302 1.225-0.563 2.534-0.681 3.142-0.134 0.69 0.465 1.293 1.153 1.17 0.623-0.11 1.978-0.36 3.236-0.65C7.354 17.762 8.401 18 9.5 18c4.142 0 7.5-3.358 7.5-7.5C17 6.358 13.642 3 9.5 3zM9.462 19c1.338 1.241 3.13 2 5.1 2 1.1 0 2.145-0.237 3.088-0.663 1.043 0.244 2.186 0.488 2.913 0.64 0.892 0.186 1.672-0.615 1.467-1.5-0.162-0.703-0.418-1.795-0.671-2.803 0.45-0.964 0.703-2.04 0.703-3.174 0-3.283-2.11-6.073-5.047-7.09 0.35 0.638 0.621 1.324 0.8 2.048 1.653 1.068 2.747 2.928 2.747 5.042 0 0.992-0.24 1.925-0.665 2.747l-0.13 0.253 0.07 0.276c0.228 0.895 0.467 1.9 0.642 2.65-0.774-0.163-1.818-0.39-2.74-0.61l-0.264-0.062-0.243 0.121c-0.804 0.4-1.71 0.625-2.67 0.625-1.06 0-2.055-0.274-2.92-0.756C10.978 18.91 10.28 19 9.563 19h-0.1z`],check:[`M8.5 16.586l-3.793-3.793c-0.39-0.39-1.024-0.39-1.414 0-0.39 0.39-0.39 1.024 0 1.414l4.5 4.5c0.39 0.39 1.024 0.39 1.414 0l11-11c0.39-0.39 0.39-1.024 0-1.414-0.39-0.39-1.024-0.39-1.414 0L8.5 16.586z`],comparison:[`M21.25 12.5c0.414 0 0.75-0.336 0.75-0.75S21.664 11 21.25 11H2.75C2.336 11 2 11.336 2 11.75s0.336 0.75 0.75 0.75h18.5zM17.75 2C18.993 2 20 3.007 20 4.25V10H4V4.25C4 3.007 5.007 2 6.25 2h11.5zM4 19.25V13.5h16v5.75c0 1.243-1.007 2.25-2.25 2.25H6.25C5.007 21.5 4 20.493 4 19.25z`],controls:[`M8.75 14.5c1.537 0 2.825 1.067 3.163 2.5h9.337c0.414 0 0.75 0.336 0.75 0.75 0 0.38-0.282 0.694-0.648 0.743L21.25 18.5l-9.337 0.001C11.574 19.934 10.286 21 8.75 21c-1.537 0-2.824-1.066-3.163-2.499L2.75 18.5C2.336 18.5 2 18.164 2 17.75c0-0.38 0.282-0.694 0.648-0.743L2.75 17h2.837c0.339-1.433 1.626-2.5 3.163-2.5zM15.25 3c1.537 0 2.825 1.067 3.163 2.5h2.837C21.664 5.5 22 5.836 22 6.25c0 0.38-0.282 0.694-0.648 0.743L21.25 7l-2.837 0.001C18.074 8.434 16.786 9.5 15.25 9.5c-1.537 0-2.824-1.066-3.163-2.499L2.75 7C2.336 7 2 6.664 2 6.25c0-0.38 0.282-0.694 0.648-0.743L2.75 5.5h9.337C12.425 4.067 13.713 3 15.25 3z`],conversation:[`M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-1.64 0-3.225-0.396-4.644-1.142l-4.29 1.117c-0.455 0.119-0.92-0.154-1.037-0.608-0.037-0.14-0.037-0.288 0-0.428l1.116-4.289C2.397 15.23 2 13.643 2 12 2 6.477 6.477 2 12 2zm1.252 11H8.75l-0.102 0.007C8.282 13.057 8 13.37 8 13.75s0.282 0.694 0.648 0.743L8.75 14.5h4.502l0.101-0.007c0.367-0.05 0.649-0.363 0.649-0.743s-0.282-0.694-0.649-0.743L13.252 13zm1.998-3.5h-6.5L8.648 9.507C8.282 9.557 8 9.87 8 10.25s0.282 0.694 0.648 0.743L8.75 11h6.5l0.102-0.007C15.718 10.943 16 10.63 16 10.25s-0.282-0.694-0.648-0.743L15.25 9.5z`],copy:[`M8.5 13.75c0 2.347 1.903 4.25 4.25 4.25h1.74c-0.128 1.678-1.53 3-3.24 3h-5C4.455 21 3 19.545 3 17.75v-7.5C3 8.455 4.455 7 6.25 7H8.5v6.75zM17.75 3C19.545 3 21 4.455 21 6.25v7.5c0 1.795-1.455 3.25-3.25 3.25h-5c-1.795 0-3.25-1.455-3.25-3.25v-7.5C9.5 4.455 10.955 3 12.75 3h5z`],credits:[`M8 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm9 0c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM4.25 14C3.007 14 2 15.007 2 16.25v0.25S2 21 8 21s6-4.5 6-4.5v-0.25c0-1.243-1.007-2.25-2.25-2.25h-7.5zM17 19.5c-1.171 0-2.068-0.181-2.755-0.458 0.342-0.575 0.527-1.128 0.627-1.558 0.06-0.26 0.092-0.481 0.11-0.649 0.008-0.084 0.012-0.155 0.015-0.211L15 16.55v-0.3c0-0.872-0.343-1.664-0.902-2.248L14.2 14h5.6c1.215 0 2.2 0.985 2.2 2.2 0 0 0 3.3-5 3.3z`],dismiss:[`M4.21 4.387l0.083-0.094c0.36-0.36 0.928-0.388 1.32-0.083l0.094 0.083L12 10.585l6.293-6.292c0.39-0.39 1.024-0.39 1.414 0 0.39 0.39 0.39 1.024 0 1.414L13.415 12l6.292 6.293c0.36 0.36 0.388 0.928 0.083 1.32l-0.083 0.094c-0.36 0.36-0.928 0.388-1.32 0.083l-0.094-0.083L12 13.415l-6.293 6.292c-0.39 0.39-1.024 0.39-1.414 0-0.39-0.39-0.39-1.024 0-1.414L10.585 12 4.293 5.707c-0.36-0.36-0.388-0.928-0.083-1.32l0.083-0.094L4.21 4.387z`],down:[`M4.293 8.293c0.39-0.39 1.024-0.39 1.414 0L12 14.586l6.293-6.293c0.39-0.39 1.024-0.39 1.414 0 0.39 0.39 0.39 1.024 0 1.414l-7 7c-0.39 0.39-1.024 0.39-1.414 0l-7-7c-0.39-0.39-0.39-1.024 0-1.414z`],download:[`M13 3c0-0.552-0.448-1-1-1s-1 0.448-1 1v12.086l-3.293-3.293c-0.39-0.39-1.024-0.39-1.414 0-0.39 0.39-0.39 1.024 0 1.414l5 5c0.39 0.39 1.024 0.39 1.414 0l5-5c0.39-0.39 0.39-1.024 0-1.414-0.39-0.39-1.024-0.39-1.414 0L13 15.086V3zM5 20c-0.552 0-1 0.448-1 1s0.448 1 1 1h14c0.552 0 1-0.448 1-1s-0.448-1-1-1H5z`],error:[`M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm-0.001 12.502c-0.552 0-0.999 0.447-0.999 0.999 0 0.551 0.447 0.999 0.999 0.999 0.551 0 0.998-0.448 0.998-0.999 0-0.551-0.447-0.999-0.998-0.999zM11.994 7c-0.414 0-0.75 0.337-0.749 0.751l0.004 4.501 0.007 0.101c0.05 0.367 0.363 0.65 0.743 0.649 0.414 0 0.75-0.337 0.75-0.751l-0.004-4.502-0.007-0.101C12.688 7.282 12.374 7 11.994 7z`],external:[`M11 3c-0.552 0-1 0.448-1 1s0.448 1 1 1h6.586L3.293 19.293c-0.39 0.39-0.39 1.023 0 1.414 0.39 0.39 1.024 0.39 1.414 0L19 6.414V13c0 0.552 0.448 1 1 1s1-0.448 1-1V4c0-0.552-0.448-1-1-1h-9z`],home:[`M13.45 2.533c-0.837-0.707-2.063-0.707-2.9 0L3.8 8.228C3.291 8.655 3 9.284 3 9.948v9.305c0 0.966 0.784 1.75 1.75 1.75h3c0.966 0 1.75-0.784 1.75-1.75V15.25c0-0.68 0.542-1.232 1.217-1.25h2.566c0.675 0.018 1.217 0.57 1.217 1.25v4.003c0 0.966 0.784 1.75 1.75 1.75h3c0.966 0 1.75-0.784 1.75-1.75V9.947c0-0.662-0.292-1.292-0.8-1.72l-6.75-5.694z`],info:[`M12.002 1.999c5.523 0 10.001 4.478 10.001 10.002 0 5.523-4.478 10.001-10.001 10.001C6.478 22.002 2 17.524 2 12.001 2 6.477 6.478 1.999 12.002 1.999zM12 10.5c-0.414 0-0.75 0.336-0.75 0.75v5c0 0.414 0.336 0.75 0.75 0.75s0.75-0.336 0.75-0.75v-5c0-0.414-0.336-0.75-0.75-0.75zM12 9c0.552 0 1-0.448 1-1s-0.448-1-1-1-1 0.448-1 1 0.448 1 1 1z`],loom:[`M4 5.5C4 3.567 5.567 2 7.5 2S11 3.567 11 5.5c0 1.59-1.06 2.932-2.511 3.358 0.688 2.253 2.783 3.892 5.261 3.892h0.33C14.425 11.177 15.825 10 17.5 10c1.933 0 3.5 1.567 3.5 3.5S19.433 17 17.5 17c-1.676 0-3.076-1.177-3.42-2.75h-0.33c-2.231 0-4.218-1.044-5.5-2.67v3.5C9.823 15.425 11 16.825 11 18.5c0 1.933-1.567 3.5-3.5 3.5S4 20.433 4 18.5c0-1.676 1.177-3.076 2.75-3.42V8.92C5.177 8.575 4 7.175 4 5.5z`],models:[`M13.409 2.511c-0.904-0.366-1.914-0.366-2.818 0l-7.498 3.04C2.432 5.819 2 6.461 2 7.173v9.653c0 0.712 0.432 1.354 1.092 1.621l7.5 3.04c0.903 0.367 1.913 0.367 2.817 0l7.498-3.04C21.567 18.18 22 17.538 22 16.826V7.173c0-0.713-0.432-1.354-1.093-1.622l-7.498-3.04zm-7.36 5.472c0.147-0.387 0.58-0.582 0.967-0.435L12 9.438l4.984-1.89c0.387-0.147 0.82 0.048 0.967 0.435 0.147 0.387-0.048 0.82-0.435 0.967l-4.766 1.81v5.49c0 0.414-0.336 0.75-0.75 0.75s-0.75-0.336-0.75-0.75v-5.49L6.484 8.95C6.097 8.803 5.902 8.37 6.049 7.983z`],moon:[`M20.026 17.001c-2.762 4.784-8.879 6.423-13.663 3.661-1.302-0.752-2.399-1.77-3.234-2.982-0.28-0.406-0.099-0.966 0.365-1.132 3.767-1.348 5.785-2.91 6.956-5.146C11.682 9.05 12 6.472 11.139 2.94c-0.12-0.489 0.266-0.954 0.769-0.927 1.556 0.083 3.078 0.53 4.457 1.327 4.784 2.762 6.423 8.879 3.66 13.662z`],next:[`M8.293 4.293c-0.39 0.39-0.39 1.024 0 1.414L14.586 12l-6.293 6.293c-0.39 0.39-0.39 1.024 0 1.414 0.39 0.39 1.024 0.39 1.414 0l7-7c0.39-0.39 0.39-1.024 0-1.414l-7-7c-0.39-0.39-1.024-0.39-1.414 0z`],offline:[`M12.858 14.273l7.434 7.434c0.39 0.39 1.024 0.39 1.414 0 0.39-0.39 0.39-1.024 0-1.414l-17.999-18c-0.39-0.39-1.024-0.39-1.414 0-0.39 0.39-0.39 1.024 0 1.414l3.096 3.097C4.747 7.233 4.136 7.73 3.57 8.299 3.08 8.788 2.608 9.365 2.179 9.982c-0.314 0.454-0.201 1.077 0.252 1.392 0.454 0.315 1.077 0.202 1.392-0.252 0.363-0.524 0.761-1.01 1.16-1.41 0.571-0.57 1.195-1.057 1.855-1.46L7.99 9.405c-0.608 0.35-1.18 0.784-1.7 1.303-0.615 0.616-1.117 1.31-1.503 2.074-0.25 0.493-0.052 1.094 0.44 1.344 0.494 0.249 1.095 0.051 1.344-0.441 0.291-0.575 0.668-1.098 1.134-1.563 0.527-0.528 1.128-0.94 1.768-1.234l1.408 1.407c-0.933 0.21-1.82 0.679-2.545 1.405-0.46 0.46-0.826 1.009-1.09 1.612-0.222 0.506 0.01 1.096 0.515 1.317 0.506 0.222 1.096-0.009 1.317-0.515 0.167-0.381 0.394-0.722 0.672-1 0.842-0.842 2.034-1.123 3.108-0.841zm-1.332-5.93l2.228 2.229c0.958 0.278 1.861 0.795 2.616 1.55 0.444 0.444 0.837 0.995 1.137 1.582 0.252 0.491 0.854 0.686 1.346 0.435 0.491-0.252 0.686-0.854 0.435-1.346-0.393-0.767-0.907-1.488-1.504-2.085-1.717-1.717-4.011-2.505-6.258-2.364zM8.51 5.328l1.651 1.651c3.108-0.581 6.44 0.33 8.844 2.735 0.42 0.42 0.822 0.906 1.172 1.413 0.314 0.455 0.936 0.569 1.391 0.255 0.454-0.314 0.569-0.936 0.255-1.39-0.417-0.605-0.896-1.184-1.404-1.692-3.223-3.224-7.833-4.214-11.91-2.972zm4.552 11.114c0.586 0.586 0.586 1.537 0 2.123-0.586 0.586-1.537 0.586-2.123 0-0.586-0.586-0.586-1.537 0-2.123 0.586-0.586 1.537-0.586 2.123 0z`],paused:[`M5.746 3c-0.966 0-1.75 0.784-1.75 1.75v14.5c0 0.966 0.784 1.75 1.75 1.75h3.5c0.967 0 1.75-0.784 1.75-1.75V4.75c0-0.966-0.783-1.75-1.75-1.75h-3.5zm9 0c-0.966 0-1.75 0.784-1.75 1.75v14.5c0 0.966 0.784 1.75 1.75 1.75h3.5c0.967 0 1.75-0.784 1.75-1.75V4.75c0-0.966-0.783-1.75-1.75-1.75h-3.5z`],ready:[`M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm3.22 6.97l-4.47 4.47-1.97-1.97c-0.293-0.293-0.767-0.293-1.06 0-0.293 0.293-0.293 0.767 0 1.06l2.5 2.5c0.293 0.293 0.767 0.293 1.06 0l5-5c0.293-0.293 0.293-0.767 0-1.06-0.293-0.293-0.767-0.293-1.06 0z`],refresh:[`M5 12c0-3.866 3.134-7 7-7 1.32 0 2.554 0.365 3.608 1H15c-0.552 0-1 0.448-1 1s0.448 1 1 1h3c0.552 0 1-0.448 1-1V4c0-0.552-0.448-1-1-1s-1 0.448-1 1v0.516C15.57 3.559 13.85 3 12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9 9-4.03 9-9c0-0.38-0.024-0.755-0.07-1.124-0.068-0.548-0.568-0.937-1.116-0.868-0.548 0.068-0.936 0.568-0.868 1.116C18.98 11.41 19 11.703 19 12c0 3.866-3.134 7-7 7s-7-3.134-7-7z`],return:[`M7 19c0 0.552 0.448 1 1 1h5c2.242 0 4.01-0.778 5.218-2.023C19.414 16.744 20 15.113 20 13.5c0-1.613-0.586-3.244-1.782-4.477C17.01 7.778 15.242 7 13 7H8.414l2.043-2.043c0.39-0.39 0.39-1.024 0-1.414-0.39-0.39-1.024-0.39-1.414 0l-3.75 3.75c-0.39 0.39-0.39 1.024 0 1.414l3.75 3.75c0.39 0.39 1.024 0.39 1.414 0 0.39-0.39 0.39-1.024 0-1.414L8.414 9H13c1.758 0 2.99 0.597 3.782 1.415C17.586 11.245 18 12.363 18 13.5s-0.414 2.256-1.218 3.085C15.99 17.403 14.758 18 13 18H8c-0.552 0-1 0.448-1 1z`],search:[`M15.843 17.368C14.5 18.392 12.82 19 11 19c-4.418 0-8-3.582-8-8s3.582-8 8-8 8 3.582 8 8c0 1.877-0.646 3.603-1.729 4.967l4.427 4.317c0.396 0.386 0.404 1.019 0.018 1.414-0.386 0.396-1.019 0.404-1.414 0.018l-4.459-4.348zM17 11c0-3.314-2.686-6-6-6s-6 2.686-6 6 2.686 6 6 6 6-2.686 6-6z`],send:[`M12.815 12.197l-7.532 1.255c-0.176 0.03-0.323 0.15-0.386 0.318L2.3 20.728c-0.248 0.64 0.421 1.25 1.035 0.942l18-9c0.553-0.276 0.553-1.065 0-1.341l-18-9C2.72 2.022 2.05 2.632 2.299 3.27l2.598 6.958c0.063 0.167 0.21 0.289 0.386 0.318l7.532 1.255c0.109 0.018 0.182 0.122 0.164 0.23-0.014 0.085-0.08 0.15-0.164 0.165z`],settings:[`M12.012 2.25c0.734 0.009 1.465 0.093 2.182 0.253 0.312 0.07 0.546 0.33 0.582 0.649l0.17 1.527c0.077 0.7 0.669 1.232 1.375 1.233 0.19 0 0.377-0.04 0.552-0.117l1.4-0.615c0.292-0.128 0.633-0.059 0.85 0.174 1.012 1.08 1.766 2.377 2.205 3.792 0.094 0.305-0.015 0.636-0.272 0.825l-1.241 0.916c-0.354 0.26-0.563 0.673-0.563 1.112 0 0.44 0.209 0.853 0.564 1.114l1.242 0.915c0.257 0.19 0.366 0.521 0.272 0.826-0.439 1.415-1.192 2.71-2.204 3.792-0.217 0.232-0.557 0.302-0.849 0.175l-1.406-0.617c-0.402-0.176-0.864-0.15-1.244 0.07s-0.634 0.607-0.682 1.044l-0.17 1.526c-0.034 0.315-0.263 0.574-0.571 0.647-1.448 0.345-2.958 0.345-4.406 0-0.308-0.073-0.537-0.332-0.572-0.647L9.057 19.32c-0.05-0.436-0.303-0.822-0.683-1.041-0.38-0.219-0.84-0.245-1.242-0.07l-1.406 0.617c-0.292 0.127-0.632 0.057-0.85-0.175-1.011-1.082-1.765-2.38-2.203-3.796-0.094-0.305 0.015-0.636 0.272-0.826l1.243-0.916c0.354-0.26 0.564-0.673 0.564-1.112 0-0.44-0.21-0.853-0.564-1.114L2.945 9.973C2.688 9.783 2.58 9.452 2.673 9.147c0.44-1.415 1.193-2.711 2.205-3.792 0.218-0.233 0.558-0.302 0.85-0.174l1.4 0.615c0.403 0.177 0.866 0.15 1.248-0.073 0.38-0.22 0.633-0.609 0.682-1.045l0.17-1.526c0.036-0.319 0.27-0.58 0.583-0.65 0.717-0.159 1.449-0.243 2.201-0.252zM12 9c-1.657 0-3 1.343-3 3s1.343 3 3 3c1.656 0 3-1.343 3-3s-1.344-3-3-3z`],star:[`M10.788 3.102c0.495-1.003 1.926-1.003 2.421 0l2.358 4.778 5.273 0.766c1.107 0.16 1.549 1.522 0.748 2.303l-3.816 3.719 0.901 5.25c0.19 1.104-0.968 1.945-1.959 1.424l-4.716-2.48-4.715 2.48c-0.99 0.52-2.148-0.32-1.96-1.423l0.901-5.251-3.815-3.72c-0.801-0.78-0.359-2.141 0.748-2.302L8.43 7.88l2.358-4.778z`],stop:[`M4.75 3C3.784 3 3 3.784 3 4.75v14.5C3 20.216 3.784 21 4.75 21h14.5c0.966 0 1.75-0.784 1.75-1.75V4.75C21 3.784 20.216 3 19.25 3H4.75z`],sun:[`M12 2c0.414 0 0.75 0.336 0.75 0.75v1.5C12.75 4.664 12.414 5 12 5s-0.75-0.336-0.75-0.75v-1.5C11.25 2.336 11.586 2 12 2zm5 10c0 2.761-2.239 5-5 5s-5-2.239-5-5 2.239-5 5-5 5 2.239 5 5zm4.25 0.75c0.414 0 0.75-0.336 0.75-0.75s-0.336-0.75-0.75-0.75h-1.5C19.336 11.25 19 11.586 19 12s0.336 0.75 0.75 0.75h1.5zM12 19c0.414 0 0.75 0.336 0.75 0.75v1.5c0 0.414-0.336 0.75-0.75 0.75s-0.75-0.336-0.75-0.75v-1.5c0-0.414 0.336-0.75 0.75-0.75zm-7.75-6.25C4.664 12.75 5 12.414 5 12s-0.336-0.75-0.75-0.75h-1.5C2.336 11.25 2 11.586 2 12s0.336 0.75 0.75 0.75h1.5zM4.22 4.22c0.293-0.293 0.767-0.293 1.06 0l1.5 1.5c0.293 0.293 0.293 0.768 0 1.06-0.293 0.294-0.767 0.294-1.06 0l-1.5-1.5c-0.293-0.292-0.293-0.767 0-1.06zm1.06 15.56c-0.293 0.294-0.767 0.294-1.06 0-0.293-0.292-0.293-0.767 0-1.06l1.5-1.5c0.293-0.293 0.767-0.293 1.06 0 0.293 0.293 0.293 0.768 0 1.06l-1.5 1.5zm14.5-15.56c-0.293-0.293-0.767-0.293-1.06 0l-1.5 1.5c-0.293 0.293-0.293 0.768 0 1.06 0.293 0.294 0.767 0.294 1.06 0l1.5-1.5c0.293-0.292 0.293-0.767 0-1.06zm-1.06 15.56c0.293 0.294 0.767 0.294 1.06 0 0.293-0.292 0.293-0.767 0-1.06l-1.5-1.5c-0.293-0.293-0.767-0.293-1.06 0-0.293 0.293-0.293 0.768 0 1.06l1.5 1.5z`],swap:[`M15.207 2.29l4 3.996c0.361 0.36 0.39 0.928 0.084 1.32l-0.083 0.095-4 4.005c-0.39 0.39-1.023 0.39-1.414 0-0.36-0.36-0.389-0.927-0.084-1.32l0.083-0.094L16.083 8H5.5C4.987 8 4.564 7.613 4.507 7.116L4.5 6.999c0-0.513 0.386-0.935 0.883-0.993L5.5 5.999h10.59l-2.296-2.293c-0.36-0.36-0.389-0.928-0.084-1.32l0.083-0.095c0.36-0.36 0.928-0.388 1.32-0.084l0.094 0.084 4 3.995-4-3.995zm4.284 14.592L19.497 17c0 0.513-0.386 0.936-0.883 0.993L18.497 18H7.914l2.293 2.293c0.361 0.36 0.39 0.927 0.084 1.32l-0.083 0.094c-0.36 0.36-0.927 0.389-1.32 0.084l-0.094-0.084-4-3.996c-0.36-0.36-0.389-0.927-0.084-1.32l0.083-0.094 4-4.004c0.39-0.39 1.024-0.39 1.415 0 0.36 0.36 0.388 0.927 0.083 1.32l-0.083 0.094L7.918 16h10.58c0.512 0 0.935 0.386 0.993 0.883L19.497 17l-0.006-0.117z`],tokens:[`M2 6.75C2 4.679 3.679 3 5.75 3h12.5C20.321 3 22 4.679 22 6.75v10.5c0 2.071-1.679 3.75-3.75 3.75H5.75C3.679 21 2 19.321 2 17.25V6.75zM12.75 7.5h2.75v0.75C15.5 8.664 15.836 9 16.25 9S17 8.664 17 8.25v-1.5C17 6.336 16.664 6 16.25 6h-8.5C7.336 6 7 6.336 7 6.75v1.5C7 8.664 7.336 9 7.75 9S8.5 8.664 8.5 8.25V7.5h2.75v9h-0.5c-0.414 0-0.75 0.336-0.75 0.75S10.336 18 10.75 18h2.5c0.414 0 0.75-0.336 0.75-0.75s-0.336-0.75-0.75-0.75h-0.5v-9z`],unsupported:[`M16.906 5.68C13.768 3.237 9.228 3.458 6.343 6.343 3.458 9.228 3.237 13.768 5.68 16.906L16.906 5.68zm1.414 1.414L7.094 18.32c3.138 2.443 7.678 2.222 10.563-0.663 2.885-2.885 3.106-7.425 0.663-10.563zM4.93 4.929c3.905-3.905 10.237-3.905 14.142 0 3.905 3.905 3.905 10.237 0 14.142-3.905 3.905-10.237 3.905-14.142 0-3.905-3.905-3.905-10.237 0-14.142z`],up:[`M4.293 15.707c0.39 0.39 1.024 0.39 1.414 0L12 9.414l6.293 6.293c0.39 0.39 1.024 0.39 1.414 0 0.39-0.39 0.39-1.024 0-1.414l-7-7c-0.39-0.39-1.024-0.39-1.414 0l-7 7c-0.39 0.39-0.39 1.024 0 1.414z`],upload:[`M5.5 2c-0.552 0-1 0.448-1 1s0.448 1 1 1h13c0.552 0 1-0.448 1-1s-0.448-1-1-1h-13zm7.207 3.793c-0.39-0.39-1.024-0.39-1.414 0l-5 5c-0.39 0.39-0.39 1.024 0 1.414 0.39 0.39 1.024 0.39 1.414 0L11 8.914V21c0 0.552 0.448 1 1 1s1-0.448 1-1V8.914l3.293 3.293c0.39 0.39 1.024 0.39 1.414 0 0.39-0.39 0.39-1.024 0-1.414l-5-5z`],warning:[`M9.138 3.707c1.228-2.276 4.493-2.276 5.721 0l6.743 12.502c1.168 2.165-0.4 4.793-2.86 4.793H5.255c-2.46 0-4.028-2.628-2.86-4.793L9.137 3.707zM12.001 15c-0.552 0-1 0.448-1 1s0.448 1 1 1 1-0.448 1-1-0.448-1-1-1zm0-7.5c-0.414 0-0.75 0.336-0.75 0.75v4.5c0 0.414 0.336 0.75 0.75 0.75s0.75-0.336 0.75-0.75v-4.5c0-0.414-0.336-0.75-0.75-0.75z`]},Un=Dt(`<path></path>`),Wn=Dt(`<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"></svg>`);function Gn(e,t){it(t,!0);let n=Z(t,`class`,3,``),r=Z(t,`size`,3,16),i=Z(t,`spin`,3,!1);var a=Wn();let o;L(a,21,()=>Hn[t.name],dt,(e,t)=>{var n=Un();W(()=>J(n,`d`,X(t))),I(e,n)}),F(a),W(()=>{o=tt(a,0,`fluent-icon ${n()}`,`svelte-1xukml3`,o,{spinning:i()}),J(a,`width`,r()),J(a,`height`,r()),J(a,`data-icon`,t.name)}),I(e,a),Et()}var Kn=Dt(`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><rect x="3" y="4" width="18" height="16" rx="3"></rect><path></path></svg>`);function qn(e,t){let n=Z(t,`side`,3,`left`);var r=Kn(),i=V(q(r));F(r),W(()=>J(i,`d`,n()===`left`?`M9 4v16`:`M15 4v16`)),I(e,r)}var Jn=pt({open:null,params:null}),Yn=pt({mode:`dialog`,expanded:!1});function Xn(e){Yn.mode=e;try{localStorage.setItem(`drowse.tools.presentation`,e)}catch{}}function Zn(){try{let e=localStorage.getItem(`drowse.tools.presentation`);(e===`dialog`||e===`sidebar`)&&(Yn.mode=e)}catch{}}function Qn(e,t=null){Xn(`sidebar`),ir(e,t)}var $n=null,er=pt({docked:!1,visible:!1,params:null});function tr(e){Jn.open===`token_drilldown`&&(er.params=e??Jn.params,ar()),er.docked=!0,er.visible=!0}function nr(){er.visible=!1,document.getElementById(`workspace-token-sidebar`)?.contains(document.activeElement)&&document.querySelector(`[aria-controls="workspace-token-sidebar"]`)?.focus({preventScroll:!0})}function rr(e){nr(),er.docked=!1,ir(`token_drilldown`,e)}function ir(e,t=null){let n=j(e);n.available?e===`token_drilldown`&&er.docked?(er.params=t,er.visible=!0):(Jn.open===null&&typeof document<`u`&&document.activeElement instanceof HTMLElement&&($n=document.activeElement),Jn.open=e,Jn.params=t):N(n.reason??`This tool is unavailable.`,{kind:`warning`})}function ar(){let e=$n;$n=null,Jn.open=null,Jn.params=null,queueMicrotask(()=>{e?.isConnected&&e.focus()})}var or={type:`string`,maxLength:2e5},sr={type:`boolean`},cr={type:`number`},lr=(e,t=2**53-1)=>({type:`integer`,minimum:e,maximum:t}),ur=(...e)=>({type:`string`,enum:e}),dr=e=>({anyOf:[e,{type:`null`}]}),fr=(e,t=1e3)=>({type:`array`,items:e,maxItems:t}),pr=In({fitMode:ur(`auto`,`pca`,`spectral`),maxDim:lr(1),varThreshold:{type:`number`,minimum:0,maximum:1},kNN:dr(lr(1)),bandwidth:dr({type:`number`,minimum:0})}),mr=In({mode:ur(`discover`,`authored`,`templated`),namespace:or,name:or,description:or}),hr=In({concepts_text:or,kind:ur(`abstract`,`concrete`,`custom`),custom_system:or,samples_per_prompt:lr(1),role_per_node:sr,force:sr,sae_release:or,also_fit:sr,advanced_open:sr,tuning:pr}),gr=In({auto_domain:sr,domain_kind:ur(`box`,`sphere`,`klein`,`projective`),box_dim:lr(1,3),sphere_dim:lr(1,3),advanced_open:sr,tuning:pr,axes:{...fr(In({name:or,lo:cr,hi:cr,periodic:sr},[`name`,`lo`,`hi`,`periodic`]),3),minItems:3},nodes:fr(In({label:or,coords:fr(cr,3),statements:or,role:or,expanded:sr},[`label`,`coords`,`statements`,`role`,`expanded`]))}),_r=In({selected_key:or,max_dim:dr(lr(1)),also_fit:sr,advanced_open:sr,tuning:pr}),vr=In({tab:ur(`score`,`build`),selected_key:or,steering:or,score_by:ur(`sum`,`mean`),name:or,slot:or,values_text:or,contexts:fr(In({turns:fr(In({role:ur(`user`,`assistant`,`system`),content:or},[`role`,`content`])),assistant:or},[`turns`,`assistant`]))}),yr=In({sources:fr(or),target_name:or,fit_mode:ur(``,`pca`,`spectral`)}),br=In({layout:ur(`side-by-side`,`unified`),sort_by:ur(`magnitude`,`name`)}),xr=In({profile_a:or,profile_b:or}),Sr=In({layer:lr(0),zoom:{type:`number`,minimum:.3,maximum:6},rotate:In({dx:cr,dy:cr},[`dx`,`dy`]),reset:sr}),Cr=In({zoom:{type:`number`,minimum:.01,maximum:1.4},camera:ur(`fit`,`current`),search_match:ur(`next`,`previous`,`first`),collapsed_ids:fr(or)}),wr=In({comparison_visible:sr}),Tr=In({cursor:In({turnIdx:lr(0),seg:ur(`thinking`,`response`),tokenIdx:lr(0)},[`turnIdx`,`seg`,`tokenIdx`]),branch:ur(`primary`,`shadow`),tab:ur(`logits`,`geometry`,`sae`,`lens`),apply_recipe:In({geometry:sr,sae:sr,lens:sr}),move:ur(`next`,`previous`,`next_turn`,`previous_turn`,`segment_start`,`segment_end`,`anchor`,`other_segment`),presentation:ur(`dock`,`drawer`,`hide`)}),Er=z(`<button type="button" class="drawer-close svelte-6xon6p"><!></button>`);function Dr(e,t){let n=Z(t,`label`,3,`Close drawer`);var r=Er();Gn(q(r),{name:`dismiss`}),F(r),W(()=>J(r,`aria-label`,n())),B(`click`,r,function(...e){t.onclick?.apply(this,e)}),I(e,r)}Ge([`click`]);var Or=0;function kr(e){let t=e.classList.contains(`theme-toggle`);e.classList.add(`sliding-selection`);let n=document.createElement(`span`);if(n.className=`selection-indicator`,n.setAttribute(`aria-hidden`,`true`),t){let t=++Or;n.style.viewTransitionName=`theme-selection-${t}`,e.querySelectorAll(`button`).forEach((e,n)=>{e.style.viewTransitionName=`theme-option-${t}-${n}`})}e.prepend(n);let r=0,i=0,a=null;function o(){r=0;let n=e.querySelector(`button[aria-pressed="true"], button[aria-selected="true"], button[aria-current="page"]`);if(!n||!n.getClientRects().length){e.removeAttribute(`data-selection-visible`);return}t&&a&&a!==n&&(e.dataset.selectionReady=``),a=n;let o=0,s=0,c=n;for(;c&&c!==e;)o+=c.offsetLeft,s+=c.offsetTop,c=c.offsetParent;e.style.setProperty(`--selection-x`,`${o}px`),e.style.setProperty(`--selection-y`,`${s}px`),e.style.setProperty(`--selection-width`,`${n.offsetWidth}px`),e.style.setProperty(`--selection-height`,`${n.offsetHeight}px`),e.dataset.selectionVisible=``,t||e.hasAttribute(`data-selection-ready`)||i||(i=requestAnimationFrame(()=>{e.dataset.selectionReady=``,i=0}))}function s(){r||=requestAnimationFrame(o)}let c=new ResizeObserver(s);function l(){c.disconnect(),c.observe(e),e.querySelectorAll(`button`).forEach(e=>c.observe(e))}let u=new MutationObserver(e=>{e.some(e=>e.type===`childList`)&&l(),o()});return u.observe(e,{subtree:!0,childList:!0,attributes:!0,attributeFilter:[`aria-pressed`,`aria-selected`,`aria-current`,`class`]}),l(),o(),{destroy(){u.disconnect(),c.disconnect(),cancelAnimationFrame(r),cancelAnimationFrame(i),n.remove()}}}var Ar=z(`<button type="button" role="tab"> </button>`),jr=z(`<div class="sk-mode-tabs svelte-bsf8gw" role="tablist"></div>`);function Mr(e,t){it(t,!0);let n=Z(t,`value`,15),r=Z(t,`ariaLabel`,3,`Mode`),i=Z(t,`disabled`,3,!1);function a(e){e!==n()&&(n(e),t.onchange?.(e))}function o(e){let t=e.currentTarget,n=t.closest(`[role="tablist"]`);if(!n)return;let r=[...n.querySelectorAll(`[role="tab"]`)],i=r.indexOf(t);if(i<0||r.length===0)return;let a=i;if(e.key===`ArrowRight`)a=(i+1)%r.length;else if(e.key===`ArrowLeft`)a=(i-1+r.length)%r.length;else if(e.key===`Home`)a=0;else if(e.key===`End`)a=r.length-1;else return;e.preventDefault(),r[a].focus(),r[a].click()}var s=jr();L(s,21,()=>t.tabs,e=>e.value,(e,t)=>{var r=Ar();let s;var c=q(r,!0);F(r),W(()=>{r.disabled=i(),s=tt(r,1,`sk-mode-tab svelte-bsf8gw`,null,s,{active:X(t).value===n()}),J(r,`aria-selected`,X(t).value===n()),J(r,`tabindex`,X(t).value===n()?0:-1),R(c,X(t).label)}),B(`click`,r,()=>a(X(t).value)),B(`keydown`,r,o),I(e,r)}),F(s),Tt(s,e=>kr?.(e)),W(()=>J(s,`aria-label`,r())),I(e,s),Et()}Ge([`click`,`keydown`]);async function Nr(){await re(),P.customExpression===null&&P.entries.size===0&&(P.customExpression=E.info?.default_steering??null),O(),he(),await Promise.allSettled([C(),be(),g(),y(),M()])}var Pr={locale:`en`,duration:400,ease:`cubic-bezier(0.19, 1, 0.22, 1)`,disabled:!1,respectReducedMotion:!0};function Fr(e,t,n){if(n<1){let r=t*Math.sqrt(1-n*n);return 1-Math.exp(-n*t*e)*(Math.cos(r*e)+n*t/r*Math.sin(r*e))}let r=Math.sqrt(n*n-1),i=-t*(n+r),a=-t*(n-r),o=-i/(a-i);return 1-(1-o)*Math.exp(i*e)-o*Math.exp(a*e)}function Ir(e,t,n){let r=0;for(let i=0;i<10;i+=.001)if(Math.abs(Fr(i,e,t)-1)>n)r=0;else if(r+=.001,r>.1)return Math.ceil((i-r+.001)*1e3);return 1e4}function Lr(e,t){if(typeof e==`object`){let t=zr(e);return{ease:t.easing,duration:t.duration}}return{ease:e,duration:t}}var Rr=new Map;function zr(e){let{stiffness:t=100,damping:n=10,mass:r=1,precision:i=.001}=e??{},a=`${t}:${n}:${r}:${i}`,o=Rr.get(a);if(o)return o;let s=Math.sqrt(t/r),c=n/(2*Math.sqrt(t*r)),l=Ir(s,c,i),u=Math.min(100,Math.max(32,Math.round(l/15))),d=[];for(let e=0;e<u;e++){let t=e/(u-1)*(l/1e3),n=e===u-1?1:Fr(t,s,c);d.push(Math.round(n*1e4)/1e4+``)}for(;d.length>2&&d[d.length-2]===`1`;)d.splice(d.length-2,1);let f={easing:`linear(${d.join(`, `)})`,duration:l};return Rr.set(a,f),f}function Br(e,t){let n=e.length,r=t.length,i=Array.from({length:n+1},()=>Array(r+1).fill(0));for(let a=n-1;a>=0;a--)for(let n=r-1;n>=0;n--)i[a][n]=e[a]===t[n]?i[a+1][n+1]+1:Math.max(i[a+1][n],i[a][n+1]);let a=[],o=[],s=0,c=0;for(;s<n&&c<r;)e[s]===t[c]?(a.push(s),o.push(c),s++,c++):i[s+1][c]>=i[s][c+1]?s++:c++;return[a,o]}var Vr=`\0n`,Hr=0;function Ur(){return`${Vr}${Hr++}`}function Wr(e){return e>=`0`&&e<=`9`}function Gr(e){for(let t of e)if(Wr(t))return!0;return!1}function Kr(e){let t=``;for(let n of e)!Wr(n)&&!qr.includes(n)&&(t+=n);return t}var qr=`.,'\xA0   `,Jr=`+-−(#`,Yr=`%.,!?:;)"'”’`,Xr=/\p{Sc}/u;function Zr(e,t){return t.includes(e)||Xr.test(e)}function Qr(e){let t=0,n=e.length;for(;t<n&&Zr(e[t],Jr);)t++;for(;n>t&&Zr(e[n-1],Yr);)n--;if(t>=n||!Wr(e[t])||!Wr(e[n-1]))return!1;for(let r=t;r<n;r++){let t=e[r];if(!Wr(t)&&!qr.includes(t))return!1}return!0}function $r(e){return Wr(e)?`digit`:`symbol`}var ei=new Map;function ti(e){let t=String(e),n=ei.get(t);if(n)return n;let r=`.`;try{r=new Intl.NumberFormat(e).formatToParts(1.1).find(e=>e.type===`decimal`)?.value??`.`}catch{}return ei.set(t,r),r}function ni(e,t,n,r=`.`){let i=e.split(``);if(!t||t.length===0)return ri(i);let a=t.map(e=>e.string===`\xA0`?` `:e.string),o=n==null?ci(a,i,r):ii(a,i,n,r),s=new Set;for(let[,e]of o)s.add(t[e].id);let c=[];for(let e=0;e<i.length;e++){let n=i[e],r=$r(n),a=n===` `?`\xA0`:n;if(o.has(e)){let n=o.get(e);c.push({id:t[n].id,string:a,kind:r})}else{let e=Ur();for(;s.has(e);)e=Ur();s.add(e),c.push({id:e,string:a,kind:r})}}return c}function ri(e){return e.map(e=>({id:Ur(),string:e===` `?`\xA0`:e,kind:$r(e)}))}function ii(e,t,n,r){let i=new Map,a=oi(e,r),o=oi(t,r),s=(e,t)=>i.set(o[e],a[t]),c=0;for(;c<o.length&&o[c]<n;)c++;let l=o.length-a.length;if(l>0){let e=c-l;for(let t=0;t<e&&t<a.length;t++)s(t,t);for(let e=c;e<o.length;e++){let t=e-l;t>=0&&t<a.length&&s(e,t)}}else if(l<0){for(let e=0;e<c&&e<o.length;e++)s(e,e);for(let e=c;e<o.length;e++){let t=e-l;t>=0&&t<a.length&&s(e,t)}}else for(let n=0;n<o.length;n++)t[o[n]]===e[a[n]]&&s(n,n);let u=si(e,r),d=si(t,r);for(let n=1;n<=u.length&&n<=d.length;n++){let r=u[u.length-n],a=d[d.length-n];e[r]===t[a]&&i.set(a,r)}return i}function ai(e,t){return e!==t&&qr.includes(e)}function oi(e,t){let n=[];for(let r=0;r<e.length;r++)ai(e[r],t)||n.push(r);return n}function si(e,t){let n=[];for(let r=0;r<e.length;r++)ai(e[r],t)&&n.push(r);return n}function ci(e,t,n){let r=new Map,i=0;for(;i<e.length&&i<t.length&&e[i]===t[i]&&!Wr(e[i]);)r.set(i,i),i++;let a=e.length,o=t.length;for(;a>i&&o>i&&e[a-1]===t[o-1]&&!Wr(e[a-1]);)r.set(o-1,a-1),a--,o--;let s=fi(e,i,a,n),c=fi(t,i,o,n),l=di(e,i,s),u=di(t,i,c);if(l>0&&u>0&&Math.abs(l-u)>=ui)return r;if(!f(i,s,i,c,!0))for(let e=1;s-e>=i&&c-e>=i;e++)d(s-e,c-e);if(s<a&&c<o){r.set(c,s);for(let e=1;s+e<a&&c+e<o;e++)d(s+e,c+e);f(s+1,a,c+1,o,!1)}function d(n,i){let a=e[n];Wr(a)||a===t[i]&&r.set(i,n)}function f(n,i,a,o,s){let c=li(e,n,i),l=li(t,a,o);if(c.length===l.length||!s){let n=Math.min(c.length,l.length);for(let i=0;i<n;i++){let n=c[i],a=l[i];e[n]===t[a]&&r.set(a,n)}return!1}let[u,d]=Br(c.map(t=>e[t]).reverse(),l.map(e=>t[e]).reverse());for(let e=0;e<u.length;e++){let t=c[c.length-1-u[e]],n=l[l.length-1-d[e]];r.set(n,t)}return u.length>0}return r}function li(e,t,n){let r=[];for(let i=t;i<n;i++)Wr(e[i])&&r.push(i);return r}var ui=3;function di(e,t,n){let r=0;for(let i=t;i<n;i++)Wr(e[i])&&r++;return r}function fi(e,t,n,r){for(let i=n-1;i>=t;i--)if(e[i]===r)return i;return n}function pi(){let e=new Set;return{reserve(t){e.add(t)},has(t){return e.has(t)},take(t){if(!e.has(t))return e.add(t),t;let n=1;for(;e.has(`${t}~${n}`);)n++;let r=`${t}~${n}`;return e.add(r),r}}}function mi(e){let t=[],n=[],r=()=>{n.length!==0&&(t.push({word:n.map(e=>e.string).join(``),segments:n}),n=[])};for(let t of e)t.string===`\xA0`||t.string===`
2
+ `?r():n.push(t);return r(),t}function hi(e){let t=[],n=[],r=()=>{if(n.length===0)return;let e=n.map(e=>e.string).join(``);Qr(e)?t.push(...ni(e)):t.push(...n),n=[]};for(let i of e)i.string===`\xA0`||i.string===`
3
+ `?(r(),t.push(i)):n.push(i);return r(),t}function gi(e,t,n=!0){let r=e.includes(`
4
+ `),i=e.includes(` `)||r,a=pi();if(r){let r=e.split(`
5
+ `),i=[],o=0;return r.forEach((e,n)=>{n>0&&(i.push({id:a.take(`newline-${o}`),string:`
6
+ `}),o+=1),e.length>0&&i.push(..._i(e,t,!0,o,a)),o+=e.length}),n?hi(i):i}let o=_i(e,t,i,0,a);return n?hi(o):o}function _i(e,t,n,r,i){return typeof Intl.Segmenter<`u`?vi(new Intl.Segmenter(t,{granularity:n?`word`:`grapheme`}).segment(e)[Symbol.iterator](),r,i):bi(e,n,r,i)}function vi(e,t,n){let r=[];for(let i of Array.from(e)){let e=t+i.index;i.segment===` `?r.push({id:n.take(`space-${e}`),string:`\xA0`}):r.push({id:yi(i.segment,e,n),string:i.segment})}return r}function yi(e,t,n){return n.has(e)?n.take(`${e}-${t}`):n.take(e)}function bi(e,t,n,r){let i=t?e.split(` `):e.split(``),a=[],o=n;return i.forEach((e,n)=>{t&&n>0&&(a.push({id:r.take(`space-${o}`),string:`\xA0`}),o+=1),a.push({id:yi(e,o,r),string:e}),o+=e.length}),a}var xi=`torph-root`,Si=`torph-item`,Ci=`torph-id`,wi=`torph-kind`,Ti=`torph-slot`,Ei=`torph-exiting`,Di=`torph-sr`,Oi=`torph-debug`,ki=`empty`,Ai={linear:[0,0,1,1],ease:[.25,.1,.25,1],"ease-in":[.42,0,1,1],"ease-out":[0,0,.58,1],"ease-in-out":[.42,0,.58,1]},ji=(e,t,n)=>{let r=1-n;return 3*r*r*n*e+3*r*n*n*t+n*n*n};function Mi(e,t,n,r){return i=>{if(i<=0)return 0;if(i>=1)return 1;let a=0,o=1;for(let t=0;t<24;t+=1){let t=(a+o)/2;ji(e,n,t)<i?a=t:o=t}return ji(t,r,(a+o)/2)}}function Ni(e){let t=[...e];(t[0]===null||t[0]===void 0)&&(t[0]=0),t[t.length-1]===null&&(t[t.length-1]=1);for(let e=1;e<t.length;e+=1){if(t[e]!==null)continue;let n=e;for(;t[n]===null;)n+=1;let r=t[e-1],i=(t[n]-r)/(n-e+1);for(let a=e;a<n;a+=1)t[a]=r+i*(a-e+1)}return t.map((e,t,n)=>t===0?e:Math.max(e,n[t-1]))}function Pi(e){let t=[],n=[];for(let r of e.split(`,`)){let e=r.trim().split(/\s+/).filter(Boolean),i=Number(e[0]);if(!Number.isFinite(i))return null;let a=e.slice(1);if(a.length>2)return null;if(a.length===0)t.push(i),n.push(null);else for(let e of a){if(!e.endsWith(`%`))return null;let r=Number(e.slice(0,-1));if(!Number.isFinite(r))return null;t.push(i),n.push(r/100)}}if(t.length<2)return null;let r=Ni(n);return e=>{if(e<=r[0])return t[0];let n=r.length-1;if(e>=r[n])return t[n];let i=0;for(;i<n&&r[i+1]<e;)i+=1;let a=r[i+1]-r[i];return a===0?t[i+1]:t[i]+(t[i+1]-t[i])*(e-r[i])/a}}function Fi(e){let t=e.trim().toLowerCase(),n=Ai[t];if(n)return Mi(...n);let r=/^cubic-bezier\(([^)]*)\)$/.exec(t);if(r){let e=r[1].split(`,`).map(e=>Number(e.trim()));return e.length!==4||e.some(e=>!Number.isFinite(e))?null:Mi(e[0],e[1],e[2],e[3])}let i=/^linear\(([^)]*)\)$/.exec(t);return i?Pi(i[1]):null}var Ii=1e-4;function Li(e,t){let n=Math.min(Math.max(t,0),1-Ii);return(e(n+Ii)-e(n))/Ii}function Ri(e,t){return e*t}function zi(e){let t=getComputedStyle(e).transform;if(!t||t===`none`)return{tx:0,ty:0};let n=t.match(/matrix\(([^)]+)\)/);if(!n)return{tx:0,ty:0};let r=n[1].split(`,`).map(Number);return{tx:r[4]||0,ty:r[5]||0}}function Bi(e){let t=getComputedStyle(e),n=parseFloat(t.width),r=parseFloat(t.height);if(Number.isNaN(n)||Number.isNaN(r)){let t=e.getBoundingClientRect();return{width:t.width,height:t.height}}return{width:n,height:r}}function Vi(e){let{tx:t,ty:n}=zi(e),r=Number(getComputedStyle(e).opacity)||1;return e.getAnimations().forEach(e=>e.cancel()),{tx:t,ty:n,opacity:r}}var Hi=8,Ui=.1,Wi=.5,Gi=.5,Ki=()=>performance.now();function qi(e,t){let n=Math.max(0,Math.min(Hi,t)-Li(e,0));if(!(n>0))return{curve:e,k:0};let r=Math.max(3,Math.ceil(n/(Math.E*Ui))-1);return{curve:t=>t>=1?1:e(t)+n*t*(1-t)**r,k:n}}function Ji(e,t){let n=Math.min(120,Math.max(32,Math.round(t/8))),r=[];for(let t=0;t<n;t+=1){let i=t/(n-1),a=t===n-1?1:e(i);r.push(`${Math.round(a*1e4)/1e4}`)}return`linear(${r.join(`, `)})`}function Yi(e,t,n,r,i,a,o,s){let c=(n,r,i,o,s)=>{let c=e.animate([{[t]:`${n}px`},{[t]:`${r}px`}],{duration:a,easing:i,fill:`both`});return s!==void 0&&(c.currentTime=s),{anim:c,from:n,to:r,easing:i,curve:o,startedAt:Ki()-(s??0)}};if(i&&i.elapsed!==null&&Math.abs(i.to-r)<Gi)return c(i.from,i.to,i.easing,i.curve,i.elapsed);let l=r-n,u=o,d=s;if(s&&Math.abs(l)>Wi){let e=qi(s,(i?.velocity??0)*a/l);e.k>0&&(d=e.curve,u=Ji(e.curve,a))}return c(n,r,u,d)}function Xi(e,t){let n=e.anim.currentTime===null,r=Ki()-e.startedAt,i=n||!Number.isFinite(r)||r>=t||r<0?null:r;return{from:e.from,to:e.to,easing:e.easing,curve:e.curve,elapsed:i,velocity:i===null||!e.curve?0:(e.to-e.from)*Li(e.curve,i/t)/t}}var Zi=new WeakMap;function Qi(e){return Zi.get(e)?.snapshot()}function $i(e){e.style.width=``,e.style.height=``,e.style.transitionProperty=``}function ea(e){let t=Zi.get(e);t&&(Zi.delete(e),t.stop(),t.onCancel?.())}function ta(e){let t=Zi.get(e);t&&(Zi.delete(e),t.stop()),$i(e)}function na(e,t,n,r,i,a,o){let s=Qi(e);if(ea(e),t===0||n===0){$i(e),o?.();return}e.style.transitionProperty=`none`,e.style.width=``,e.style.height=``,e.offsetWidth;let{width:c,height:l}=Bi(e),u=Fi(i),d=Yi(e,`width`,t,c,s?.width,r,i,u),f=Yi(e,`height`,n,l,s?.height,r,i,u),p=()=>{d.anim.cancel(),f.anim.cancel()};d.anim.onfinish=()=>{Zi.delete(e),p(),$i(e),a?.()},Zi.set(e,{stop:p,onCancel:o,snapshot:()=>({width:Xi(d,r),height:Xi(f,r)})})}function ra(e,t,n,r,i,a){ea(e),e.style.transitionProperty=`none`,e.style.width=`${t}px`,e.style.height=`${n}px`;let o=setTimeout(()=>{Zi.delete(e),$i(e),i?.()},r),s=e=>({from:e,to:e,easing:`linear`,curve:null,elapsed:null,velocity:0});Zi.set(e,{stop:()=>clearTimeout(o),onCancel:a,snapshot:()=>({width:s(t),height:s(n)})})}function ia(e){let t=Array.from(e.children),n={},r=e.getBoundingClientRect();return t.forEach((e,t)=>{if(e.hasAttribute(Ei)||e.hasAttribute(Di)||e.tagName===`BR`)return;let i=e.getAttribute(Ci)||`child-${t}`,a=e.getBoundingClientRect(),{tx:o,ty:s}=zi(e);n[i]={x:a.left-r.left-o,y:a.top-r.top-s}}),n}function aa(e,t,n){let r=e[n],i=t[n];return!r||!i?{dx:0,dy:0}:{dx:r.x-i.x,dy:r.y-i.y}}function oa(e,t,n,r=`backward-first`){let[i,a]=r===`backward-first`?[`backward`,`forward`]:[`forward`,`backward`],o=r=>{if(r===`backward`){for(let r=e-1;r>=0;r--)if(n.has(t[r]))return t[r]}else for(let r=e+1;r<t.length;r++)if(n.has(t[r]))return t[r];return null};return o(i)??o(a)}function sa(e,t,n,r){let i=new Set(n.filter((n,i)=>r.has(n)&&!t.has(e[i]))),a=new Map;for(let r=0;r<e.length;r++){let o=e[r];t.has(o)&&a.set(o,oa(r,n,i,`forward-first`))}return a}function ca(e,t){let{dx:n,dy:r,duration:i,ease:a,scale:o}=t;e.animate({transform:o?`translate(${n}px, ${r}px) scale(0.95)`:`translate(${n}px, ${r}px)`,offset:1},{duration:i,easing:a,fill:`both`});let s=e.animate({opacity:0,offset:1},{duration:Ri(i,.25),easing:`linear`,fill:`both`});s.onfinish=()=>e.remove()}function la(e,t){let{deltaX:n,deltaY:r,isNew:i,duration:a,ease:o}=t,s=Vi(e),c=n+s.tx,l=r+s.ty,u=i&&s.opacity>=1?0:s.opacity;e.animate([{transform:`translate(${c}px, ${l}px) scale(${i?.95:1})`},{transform:`none`}],{duration:a,easing:o,fill:`both`}),u<1&&e.animate([{opacity:u},{opacity:1}],{duration:Ri(a,i?.5:.25),delay:i?Ri(a,.25):0,easing:`linear`,fill:`both`})}function ua(e,t){let n=0,r=0;for(let i=e;i&&i!==t;i=i.offsetParent)n+=i.offsetLeft,r+=i.offsetTop;return{x:n,y:r}}function da(e,t){let n=document.createElement(e);return n.setAttribute(Si,``),n.setAttribute(Ci,t),n.setAttribute(`aria-hidden`,`true`),n}function fa(e,t){let n=new Map;for(let r of t){if(r.tagName===`BR`)continue;let{x:t,y:i}=ua(r,e),{tx:a,ty:o}=zi(r),{width:s,height:c}=Bi(r),l=Number(getComputedStyle(r).opacity)||1;r.getAnimations().forEach(e=>e.cancel()),n.set(r,{left:t+a,top:i+o,width:s,height:c,opacity:l})}for(let e=t.length-1;e>=0;e--)t[e].tagName===`BR`&&(t[e].remove(),t.splice(e,1));t.forEach(e=>{let t=n.get(e);e.setAttribute(Ei,``),e.style.position=`absolute`,e.style.pointerEvents=`none`,e.style.left=`${t.left}px`,e.style.top=`${t.top}px`,e.style.width=`${t.width}px`,e.style.height=`${t.height}px`,e.style.opacity=String(t.opacity)})}function pa(e,t){if(t.size===0)return;let n=Array.from(e.children),r=new Set;for(let e of n){if(e.hasAttribute(Ei))continue;let n=e.getAttribute(Ci);if(!n||r.has(n))continue;let i=t.get(n);if(i){r.add(n);for(let t of i){let n=da(`span`,t.id);ma(n,t),e.before(n)}e.remove()}}}function ma(e,t){if(!t.kind){e.removeAttribute(wi),e.removeAttribute(Ti),e.textContent=t.string;return}e.setAttribute(wi,t.kind),e.setAttribute(Ti,``);let n=e.firstElementChild;n||(e.textContent=``,n=document.createElement(`span`),e.appendChild(n)),n.textContent=t.string}function ha(e){return e.hasAttribute(Ti)?e.firstElementChild??e:e}function ga(e,t,n,r){let i=new Map;t.forEach(e=>{let t=e.getAttribute(Ci);n.has(t)&&!e.hasAttribute(Ei)&&(i.set(t,e),e.remove())}),Array.from(e.childNodes).forEach(e=>{e.nodeType===Node.TEXT_NODE&&e.remove()}),r.forEach(t=>{let n=i.get(t.id);if(n&&i.delete(t.id),t.string===`
7
+ `)n&&n.tagName===`BR`?e.appendChild(n):e.appendChild(da(`br`,t.id));else if(n&&n.tagName!==`BR`)n.style.transformOrigin=``,ma(n,t),e.appendChild(n);else{let n=da(`span`,t.id);ma(n,t),e.appendChild(n)}})}var _a=.45,va=.25;function ya(e,t){let{dx:n,dy:r,slideDistance:i,duration:a,ease:o}=t,s=ha(e);e.animate({transform:`translate(${n}px, ${r}px)`,offset:1},{duration:a,easing:o,fill:`both`}),s.animate({transform:`translate(0px, ${i}px)`,offset:1},{duration:a,easing:o,fill:`both`});let c=s.animate({opacity:0,offset:1},{duration:a*_a,easing:`linear`,fill:`both`});c.onfinish=()=>e.remove()}function ba(e,t){let{deltaX:n,deltaY:r,slideDistance:i,kind:a,duration:o,ease:s}=t;xa(e,{deltaX:n,deltaY:r,duration:o,ease:s});let c=ha(e),l=Vi(c),u=a===`digit`?-i:i;c.animate({transform:`translate(0px, ${l.ty+u}px)`,offset:0},{duration:o,easing:s,fill:`both`});let d=l.opacity>=1?0:l.opacity;d<1&&c.animate([{opacity:d},{opacity:1}],{duration:o*va,easing:`linear`,fill:`both`})}function xa(e,t){let{deltaX:n,deltaY:r,duration:i,ease:a}=t,{tx:o,ty:s}=zi(e);e.getAnimations().forEach(e=>e.cancel());let c=n+o,l=r+s;c===0&&l===0||e.animate({transform:`translate(${c}px, ${l}px)`,offset:0},{duration:i,easing:a,fill:`both`})}var Sa=6,Ca=.8,wa=.45,Ta=.35;function Ea(e){let t=e.map(e=>e.getBoundingClientRect()),n=Math.min(...t.map(e=>e.left)),r=Math.max(...t.map(e=>e.right)),i=Math.min(...t.map(e=>e.top)),a=Math.max(...t.map(e=>e.bottom)),o=(n+r)/2,s=(i+a)/2;return t.map(e=>`${o-e.left}px ${s-e.top}px`)}function Da(e,t){let{duration:n,ease:r}=t,i=Ea(e);e.forEach((e,t)=>{e.getAnimations().forEach(e=>e.cancel()),e.style.transformOrigin=i[t],e.animate({transform:`scale(${Ca})`,offset:1},{duration:n,easing:r,fill:`both`});let a=e.animate({opacity:0,offset:1},{duration:n*wa,easing:`linear`,fill:`both`});a.onfinish=()=>e.remove()})}function Oa(e,t){let{duration:n,ease:r}=t,i=Ea(e);e.forEach((e,t)=>{let a=Vi(e);e.style.transformOrigin=i[t],e.animate({transform:`scale(${Ca})`,offset:0},{duration:n,easing:r,fill:`both`});let o=a.opacity>=1?0:a.opacity;e.animate([{opacity:o},{opacity:1}],{duration:n*Ta,easing:`linear`,fill:`both`})})}function ka(e,t){let n=[],r=[],i=()=>{r.length>=Sa&&n.push(r),r=[]};for(let n of e)t.has(n)?r.push(n):i();return i(),n}var Aa=`\0#`;function ja(e,t){if(e.segments.length!==1||e.word.length<=1)return e.segments;let n=e.segments[0],r=e.word.split(``).map((e,t)=>({id:`${n.id}:${t}`,string:e}));return t.set(n.id,r),r}function Ma(e){return e.map(e=>({...e,kind:e.kind??$r(e.string)}))}function Na(e,t){if(e.length===0||t.length===0)return 0;let[n]=Br(e.split(``),t.split(``));return n.length/Math.max(e.length,t.length)}function Pa(e,t){let n=[],r=0;for(let i=0;i<e;i++)n.push(r),t.has(i)&&r++;return n}var Fa=.4;function Ia(e,t){return(Gr(e)||Gr(t))&&Kr(e)===Kr(t)?1:Na(e,t)}var La=2500,Ra=1e6;function za(e,t,n,r={}){let i=t.includes(` `),a=t.includes(`
8
+ `),o=mi(e),s=r.numbers!==!1,c=e=>s&&Qr(e),l=e=>c(e)?Aa:e,u=s&&(Gr(t)||o.some(e=>Gr(e.word)));if(o.length<=1&&!i&&!a&&!u)return{segments:gi(t,n,s),splits:new Map};let d=[],f=[],p=t.split(/( |\n)/),m=[];for(let e of p)e===` `||e===`
9
+ `?m.push(e):e.length>0&&(f.push(m),d.push(e),m=[]);let h=m,g=o.map(e=>e.word);if(g.length*d.length>Ra)return{segments:gi(t,n,s),splits:new Map};let[_,v]=Br(g.map(l),d.map(l)),y=new Set(_),b=new Set(v),x=new Map;for(let e=0;e<v.length;e++)x.set(v[e],_[e]);let S=g.map((e,t)=>t).filter(e=>!y.has(e)),C=d.map((e,t)=>t).filter(e=>!b.has(e)),w=new Set;for(let e of C)for(let t of S)if(!w.has(t)&&l(d[e])===l(g[t])){x.set(e,t),w.add(t);break}w.size>0&&(S=S.filter(e=>!w.has(e)),C=C.filter(e=>!x.has(e)));let T=new Map,E=new Set,D=Pa(g.length,y),O=Pa(d.length,b);if(S.length*C.length<=La)for(let e of C){let t=-1,n=Fa;for(let r of S){if(E.has(r)||D[r]!==O[e])continue;let i=Ia(g[r],d[e]);i>n&&(n=i,t=r)}t>=0&&(T.set(e,t),E.add(t))}let k=d.map((e,t)=>{let n=x.get(t),r=n??T.get(t);return r===void 0?{mode:`fresh`}:c(e)?{mode:`number`,oi:r}:n===void 0?{mode:`morph`,oi:r}:{mode:`reuse`,oi:r}}),A=k.filter(e=>e.mode===`number`).length===1?r.cursorIndex:void 0,j=ti(n),M=pi();for(let e of k){if(e.mode===`fresh`)continue;let t=o[e.oi];if(e.mode!==`reuse`&&t.segments.length===1){let e=t.segments[0];for(let n=0;n<t.word.length;n++)M.reserve(`${e.id}:${n}`)}else for(let e of t.segments)M.reserve(e.id)}let N=[],ee=new Map,te=0;function ne(e){for(let t of e)t===`
10
+ `?N.push({id:M.take(`newline-${te}`),string:`
11
+ `}):N.push({id:M.take(`space-${te}`),string:`\xA0`}),te++}for(let e=0;e<d.length;e++){ne(f[e]??(e>0?[` `]:[]));let t=k[e],n=d[e];if(t.mode===`reuse`)for(let e of o[t.oi].segments)N.push(e);else if(t.mode===`number`){let e=o[t.oi];N.push(...ni(n,Ma(ja(e,ee)),A===void 0?void 0:A-te,j))}else if(t.mode===`morph`){let e=o[t.oi],r=e.word,i=ja(e,ee),a=r.split(``),s=n.split(``),[c,l]=Br(a,s),u=new Map;for(let e=0;e<l.length;e++){let t=i[c[e]];t&&u.set(l[e],t)}for(let e=0;e<s.length;e++)if(u.has(e)){let t=u.get(e);N.push({id:t.id,string:s[e]})}else N.push({id:M.take(`${n}~${e}`),string:s[e]})}else c(n)?N.push(...ni(n)):N.push({id:M.take(n),string:n});te+=n.length}return ne(h),{segments:N,splits:ee}}var Ba=`
12
+ [${xi}] {
13
+ display: inline-block;
14
+ position: relative;
15
+ vertical-align: top;
16
+ will-change: width, height;
17
+ white-space: nowrap;
18
+ text-align: inherit;
19
+ }
20
+
21
+ [${Si}]:not(br) {
22
+ display: inline-block;
23
+ position: relative;
24
+ will-change: opacity, transform;
25
+ transform: none;
26
+ opacity: 1;
27
+ }
28
+
29
+ /*
30
+ * The value once as plain text \u2014 every other child is an aria-hidden fragment.
31
+ * Out of flow, because the engine measures every child of the root. Clipped
32
+ * rather than display: none, which would take it out of the a11y tree as well.
33
+ * user-select: none, or a copied selection pastes the value twice.
34
+ */
35
+ [${Di}] {
36
+ position: absolute;
37
+ width: 1px;
38
+ height: 1px;
39
+ margin: -1px;
40
+ padding: 0;
41
+ border: 0;
42
+ overflow: hidden;
43
+ clip-path: inset(50%);
44
+ white-space: pre;
45
+ -webkit-user-select: none;
46
+ user-select: none;
47
+ }
48
+
49
+ /*
50
+ * A digit slides a whole line box to arrive, so it needs its own box to hide
51
+ * behind. Not the root: that spans every line, so clipping there leaves a digit
52
+ * on a middle line sliding over its neighbour in view. The transform sits on the
53
+ * child, so the slide never touches the slot's rect and the FLIP pass stays
54
+ * oblivious. clip-path, not overflow \u2014 an inline-block whose overflow is
55
+ * anything but visible has its baseline synthesized to the bottom margin edge
56
+ * (CSS 2.1 \xA710.8.1), and engines disagree on whether overflow: clip counts.
57
+ * The inline axis stays open so glyph overhang is not shaved.
58
+ */
59
+ [${Ti}] {
60
+ clip-path: inset(0 -100vw);
61
+ }
62
+
63
+ [${Ti}] > span {
64
+ display: inline-block;
65
+ will-change: opacity, transform;
66
+ }
67
+
68
+ /*
69
+ * Softens the clip above into a gradient, positionally rather than on a timer, so
70
+ * it stays in step with the slide at any duration. The band (--torph-fade, 0 for a
71
+ * hard edge) must eat into the box: the clip trims at the border box, so a ramp
72
+ * reaching past it sits in territory already removed and is never seen. no-clip
73
+ * plus repeat-x is what carries the profile across glyph overhang.
74
+ */
75
+ @supports (mask-clip: no-clip) or (-webkit-mask-clip: no-clip) {
76
+ [${Ti}] {
77
+ --torph-mask: linear-gradient(
78
+ to bottom,
79
+ transparent,
80
+ #000 var(--torph-fade, 0.15em),
81
+ #000 calc(100% - var(--torph-fade, 0.15em)),
82
+ transparent
83
+ );
84
+ -webkit-mask-image: var(--torph-mask);
85
+ mask-image: var(--torph-mask);
86
+ -webkit-mask-repeat: repeat-x;
87
+ mask-repeat: repeat-x;
88
+ -webkit-mask-clip: no-clip;
89
+ mask-clip: no-clip;
90
+ }
91
+ }
92
+
93
+ [${xi}][${Oi}] {
94
+ outline: 2px solid magenta;
95
+ [${Si}] {
96
+ outline: 2px solid cyan;
97
+ outline-offset: -4px;
98
+ }
99
+ }`,Va=null,Ha=0;function Ua(){Ha++,!Va&&(Va=document.createElement(`style`),Va.dataset.torph=`true`,Va.textContent=Ba,document.head.appendChild(Va))}function Wa(){Ha--,!(Ha>0||!Va)&&(Va.remove(),Va=null)}function Ga(){if(typeof window>`u`)return{prefersReducedMotion:!1,destroy:()=>{}};let e=window.matchMedia(`(prefers-reduced-motion: reduce)`),t={prefersReducedMotion:e.matches,destroy:r};function n(e){t.prefersReducedMotion=e.matches}function r(){e.removeEventListener(`change`,n)}return e.addEventListener(`change`,n),t}var Ka={...Pr,debug:!1,scale:!0,numbers:!0},qa=class{element;options={};data;currentMeasures={};prevMeasures={};previousSegments=[];isInitialRender=!0;reducedMotion=null;srNode=null;hasSetup=!1;constructor(e){let t=Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)),{ease:n,...r}={...Ka,...t},{ease:i,duration:a}=Lr(n,r.duration);this.options={...r,ease:i,duration:a},this.element=e.element,this.options.respectReducedMotion&&(this.reducedMotion=Ga()),this.data=``,this.isDisabled()||this.setup()}setup(){this.hasSetup||(this.hasSetup=!0,this.element.setAttribute(xi,``),this.options.debug&&this.element.setAttribute(Oi,``),Ua())}destroy(){this.reducedMotion?.destroy(),ta(this.element),this.element.getAnimations().forEach(e=>e.cancel()),this.srNode?.remove(),this.srNode=null,this.element.removeAttribute(xi),this.element.removeAttribute(Oi),this.hasSetup&&(this.hasSetup=!1,Wa())}isDisabled(){return!!(this.options.disabled||this.reducedMotion?.prefersReducedMotion)}update(e,t){let n=typeof e==`number`?e.toLocaleString(this.options.locale,{minimumFractionDigits:this.options.decimals,maximumFractionDigits:this.options.decimals}):e;if(n!==this.data){if(this.data=n,this.isDisabled()){typeof n==`string`&&(this.srNode=null,this.element.textContent=n,this.previousSegments=[],this.isInitialRender=!0);return}if(this.setup(),this.data instanceof HTMLElement)throw Error(`HTMLElement not yet supported`);this.options.onAnimationStart&&!this.isInitialRender&&this.options.onAnimationStart(),this.createTextGroup(this.data,this.element,t)}}createTextGroup(e,t,n){let{width:r,height:i}=Bi(t),a=this.options.numbers!==!1;this.syncAccessibleText(e);let o,s;if(this.previousSegments.length>0){let t=za(this.previousSegments,e,this.options.locale,{numbers:a,cursorIndex:n});o=t.segments,s=t.splits}else o=gi(e,this.options.locale,a),s=new Map;let c=o.length===0;c&&(o=[{id:ki,string:`​`}]),pa(t,s),this.prevMeasures=ia(this.element);let l=Array.from(t.children).filter(e=>!e.hasAttribute(Di)),u=new Set(o.map(e=>e.id)),d=l.filter(e=>!u.has(e.getAttribute(Ci))&&!e.hasAttribute(Ei)),f=sa(l,new Set(d),l.map(e=>e.getAttribute(Ci)),u);fa(t,d),ga(t,l,u,o),this.currentMeasures=ia(this.element);let p=o.reduce((e,t)=>t.string===`
100
+ `?e+1:e,1),m=(t.offsetHeight||20*p)/p;t.style.width=`${r}px`,t.offsetWidth;let h=ia(this.element);t.style.width=``,this.updateStyles(o,h,m);let g=this.isInitialRender?[]:ka(l,new Set(d)),_=new Set(g.flat());for(let e of g)Da(e,{duration:this.options.duration,ease:this.options.ease});d.forEach(e=>{if(this.isInitialRender||e.getAttribute(Ci)===ki){e.remove();return}if(_.has(e))return;let t=f.get(e),{dx:n,dy:r}=t?aa(this.currentMeasures,this.prevMeasures,t):{dx:0,dy:0};e.hasAttribute(wi)?ya(e,{dx:n,dy:r,slideDistance:m,duration:this.options.duration,ease:this.options.ease}):ca(e,{dx:n,dy:r,duration:this.options.duration,ease:this.options.ease,scale:this.options.scale})}),this.previousSegments=o,this.isInitialRender?(this.isInitialRender=!1,t.style.width=``,t.style.height=``):c?ra(t,r,i,this.options.duration,this.options.onAnimationComplete,this.options.onAnimationCancel):na(t,r,i,this.options.duration,this.options.ease,this.options.onAnimationComplete,this.options.onAnimationCancel)}updateStyles(e,t,n){if(this.isInitialRender)return;let r=Array.from(this.element.children).filter(e=>!e.hasAttribute(Di)),i=e.map(e=>e.id),a=new Map(e.map(e=>[e.id,e.kind])),o=r.filter(e=>!e.hasAttribute(Ei)&&e.tagName!==`BR`&&e.getAttribute(Ci)!==ki),s=new Set(o.filter(e=>!this.prevMeasures[e.getAttribute(Ci)])),c=new Set;for(let e of ka(o,s))e.forEach(e=>c.add(e)),Oa(e,{duration:this.options.duration,ease:this.options.ease});let l=new Set(i.filter(e=>this.prevMeasures[e]));r.forEach((r,o)=>{if(r.hasAttribute(Ei)||r.tagName===`BR`||c.has(r))return;let s=r.getAttribute(Ci)||`child-${o}`;if(s===ki)return;let u=!this.prevMeasures[s],d=u?oa(e.findIndex(e=>e.id===s),i,l):s,{dx:f,dy:p}=d?aa(this.prevMeasures,t,d):{dx:0,dy:0},m=a.get(s);m&&u?ba(r,{deltaX:f,deltaY:p,slideDistance:n,kind:m,duration:this.options.duration,ease:this.options.ease}):m?xa(r,{deltaX:f,deltaY:p,duration:this.options.duration,ease:this.options.ease}):la(r,{deltaX:f,deltaY:p,isNew:u,duration:this.options.duration,ease:this.options.ease})})}syncAccessibleText(e){if(!this.srNode||this.srNode.parentNode!==this.element){let e=document.createElement(`span`);e.setAttribute(Di,``),this.element.prepend(e),this.srNode=e}this.srNode.textContent=e}},Ja=new Map,Ya=0;function Xa(e,t){Ja.set(e,t),Ya||=requestAnimationFrame(()=>{Ya=0;let e=[...Ja.values()];Ja.clear();for(let t of e)t()})}var Za=new Map,Qa=null,$a=null,eo=null;function to(){for(let{update:e}of Za.values())e()}function no(e,t){return Qa||(eo=matchMedia(`(prefers-reduced-motion: reduce)`),eo.addEventListener(`change`,to),document.addEventListener(`visibilitychange`,to),document.addEventListener(`selectionchange`,to),Qa=new IntersectionObserver(e=>{for(let t of e){let e=Za.get(t.target);e&&(e.visible=t.isIntersecting,e.update())}}),$a=new ResizeObserver(e=>{for(let t of e)Za.get(t.target)?.update()})),Za.set(e,{visible:!1,update:t}),Qa.observe(e),$a.observe(e),()=>{Ja.delete(e),Za.delete(e),Qa.unobserve(e),$a.unobserve(e),Za.size||(Qa.disconnect(),$a.disconnect(),Qa=null,$a=null,eo.removeEventListener(`change`,to),eo=null,document.removeEventListener(`visibilitychange`,to),document.removeEventListener(`selectionchange`,to),Ya&&cancelAnimationFrame(Ya),Ya=0)}}function ro(e,t){let n=e.parentElement,r=n.querySelector(`.morph-source`),i=t,a=null,o=``,s=!1,c;function l(){for(let t of e.querySelectorAll(`[torph-sr]`))t.remove()}function u(){clearTimeout(c),s||(e.getAnimations({subtree:!0}).some(e=>e.playState===`running`)?c=setTimeout(u,60):(l(),n.removeAttribute(`data-morph-active`)))}function d(){clearTimeout(c),a?.destroy(),a=null,e.replaceChildren(),e.removeAttribute(`style`),n.removeAttribute(`data-morph-active`)}function f(){if(s)return;let t=document.getSelection();if(!(!i.disabled&&!eo?.matches&&!document.hidden&&Za.get(n)?.visible&&!n.closest(`[inert]`)&&(!t||t.isCollapsed)&&i.text.length<=100&&!i.text.includes(`
101
+ `))){d();return}let f=getComputedStyle(r),p=Number.parseFloat(f.lineHeight)||Number.parseFloat(f.fontSize)*1.4;if(r.getBoundingClientRect().height>p*1.5){d();return}let m=i.numbers&&!/[eE][+-]?\d/.test(i.text),h=JSON.stringify([i.duration,m,i.identity,n.closest(`[data-morph-snapshot]`)?.getAttribute(`data-morph-snapshot`)]);a&&o===h||(d(),o=h,a=new qa({element:e,numbers:m,duration:i.duration,ease:`cubic-bezier(0.2, 0, 0, 1)`,scale:!1,respectReducedMotion:!1,onAnimationComplete:()=>requestAnimationFrame(()=>{if(!s){for(let t of e.getAnimations({subtree:!0}))t.playState===`finished`&&t.cancel();u()}})})),a.update(i.text),l(),n.setAttribute(`data-morph-active`,``),clearTimeout(c),c=setTimeout(u,i.duration+120)}let p=()=>Xa(n,f),m=no(n,p);return document.fonts.ready.then(()=>{s||p()}),{update(e){i=e,n.removeAttribute(`data-morph-active`),p()},destroy(){s=!0,m(),d()}}}var io=z(`<span><span class="morph-source svelte-1d3hxj"> </span><span class="morph-paint svelte-1d3hxj" aria-hidden="true"></span></span>`);function $(e,t){let n=Z(t,`numbers`,3,!0),r=Z(t,`duration`,3,180),i=Z(t,`disabled`,3,!1),a=Z(t,`class`,3,``);var o=io(),s=q(o),c=q(s,!0);F(s);var l=V(s);Tt(l,(e,t)=>ro?.(e,t),()=>({text:String(t.text),numbers:n(),duration:r(),disabled:i(),identity:t.identity})),F(o),W(e=>{tt(o,1,`morph-text ${a()??``}`,`svelte-1d3hxj`),J(o,`data-text`,e),R(c,t.text)},[()=>String(t.text)]),I(e,o)}var ao=e=>e;function oo(e){let t=e-1;return t*t*t+1}function so(e){let t=typeof e==`string`&&e.match(/^\s*(-?[\d.]+)([^\s]*)\s*$/);return t?[parseFloat(t[1]),t[2]||`px`]:[e,`px`]}function co(e,{delay:t=0,duration:n=400,easing:r=ao}={}){let i=+getComputedStyle(e).opacity;return{delay:t,duration:n,easing:r,css:e=>`opacity: ${e*i}`}}function lo(e,{delay:t=0,duration:n=400,easing:r=oo,x:i=0,y:a=0,opacity:o=0}={}){let s=getComputedStyle(e),c=+s.opacity,l=s.transform===`none`?``:s.transform,u=c*(1-o),[d,f]=so(i),[p,m]=so(a);return{delay:t,duration:n,easing:r,css:(e,t)=>`
102
+ transform: ${l} translate(${(1-e)*d}${f}, ${(1-e)*p}${m});
103
+ opacity: ${c-u*t}`}}function uo(e,{delay:t=0,duration:n=400,easing:r=oo,axis:i=`y`}={}){let a=getComputedStyle(e),o=+a.opacity,s=i===`y`?`height`:`width`,c=parseFloat(a[s]),l=i===`y`?[`top`,`bottom`]:[`left`,`right`],u=l.map(e=>`${e[0].toUpperCase()}${e.slice(1)}`),d=parseFloat(a[`padding${u[0]}`]),f=parseFloat(a[`padding${u[1]}`]),p=parseFloat(a[`margin${u[0]}`]),m=parseFloat(a[`margin${u[1]}`]),h=parseFloat(a[`border${u[0]}Width`]),g=parseFloat(a[`border${u[1]}Width`]);return{delay:t,duration:n,easing:r,css:e=>`overflow: hidden;opacity: ${Math.min(e*20,1)*o};${s}: ${e*c}px;padding-${l[0]}: ${e*d}px;padding-${l[1]}: ${e*f}px;margin-${l[0]}: ${e*p}px;margin-${l[1]}: ${e*m}px;border-${l[0]}-width: ${e*h}px;border-${l[1]}-width: ${e*g}px;min-${s}: 0`}}function fo(e){return e}function po(e){return e*e*e}function mo(e){let t=e-1;return t*t*t+1}var ho=()=>typeof window<`u`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;function go(e){return ho()?0:e}function _o(){return{duration:go(160),easing:mo}}function vo(){return{duration:go(110),easing:po}}function yo(e=18,t=0){return{x:e,y:t,duration:go(220),easing:mo}}function bo(e=10,t=0){return{x:e,y:t,duration:go(150),easing:po}}function xo(e=-8){return{y:e,duration:go(200),easing:mo}}function So(e=-4){return{y:e,duration:go(130),easing:po}}function Co(e=4){return{y:e,duration:go(170),easing:mo}}function wo(e=-2){return{y:e,duration:go(100),easing:po}}function To(e){let t=getComputedStyle(e);return{duration:go(Number.parseFloat(t.getPropertyValue(`--selection-dur`))*1e3),easing:mo,css:e=>`opacity: ${e}; transform: translateY(${(1-e)*4}px);`}}function Eo(){return{duration:go(200),easing:mo}}function Do(){return{duration:go(130),easing:po}}function Oo(e){return e?{sphere:`Sphere`,torus:`Torus`,"klein-bottle":`Klein bottle`,"projective-plane":`Real projective plane (RP²)`}[e]??e.replaceAll(`-`,` `):`Unresolved surface`}function ko(e){return e.type===`klein`?`Klein bottle · two angles in radians. Crossing the u seam reverses v; these are coordinates, not a flat surface.`:e.type===`projective`?`Real projective plane (RP²) · polar and azimuth angles in radians. Opposite points on the sphere represent the same position.`:null}function Ao(e){let t;try{t=JSON.parse(e)}catch{throw Error(`Enter a JSON array of points, such as [[0, 1, 2], …].`)}if(!Array.isArray(t)||t.length<32||t.length>384)throw Error(`Use 32–384 points. Larger clouds must be sampled before inspection.`);let n=Array.isArray(t[0])?t[0].length:0;if(n<2||n>1024||!t.every(e=>Array.isArray(e)&&e.length===n&&e.every(e=>typeof e==`number`&&Number.isFinite(e))))throw Error(`Each point needs the same 2–1,024 finite numeric coordinates.`);if(new Set(t.map(e=>JSON.stringify(e))).size!==t.length)throw Error(`Remove duplicate points before inspecting the surface.`);return t}function jo(){return Array.from({length:96},(e,t)=>{let n=1-2*(t+.5)/96,r=t*Math.PI*(3-Math.sqrt(5)),i=Math.sqrt(1-n*n);return[i*Math.cos(r),i*Math.sin(r),n]})}function Mo(){let e=Y(!1),t;function n(){clearTimeout(t),t=void 0}return{get mounted(){return X(e)},mount(){n(),U(e,!0)},show(e){n(),e.inert=!1,e.offsetHeight,e.classList.remove(`is-closing`),e.classList.add(`is-open`)},close(r){if(n(),!r){U(e,!1);return}r.inert=!0,r.classList.remove(`is-open`),r.classList.add(`is-closing`);let i=getComputedStyle(r).getPropertyValue(`--dropdown-close-dur`).trim(),a=parseFloat(i)*(i.endsWith(`ms`)?1:1e3),o=()=>{r.classList.remove(`is-closing`),U(e,!1)},s=go(a);s===0?o():t=setTimeout(o,s)},destroy(){n()}}}var No=z(`<li role="option"> </li>`),Po=z(`<ul class="sk-select-popover t-dropdown svelte-1v3k3t3" popover="manual" role="listbox" tabindex="-1"></ul>`),Fo=z(`<div><button><span><!></span> <span class="sk-select-caret svelte-1v3k3t3" aria-hidden="true"><!></span></button> <!></div>`);function Io(e,t){let n=Ve();it(t,!0);let r=Z(t,`value`,15),i=Z(t,`placeholder`,3,``),a=Z(t,`disabled`,3,!1),o=Z(t,`invalid`,3,!1),s=Y(!1),c=Mo(),l=Y(-1),u=Y(null),d=Y(null),f=Y(``),p=Y(``),m=null;bt(()=>{a()&&X(s)&&y(!1)});let h=G(()=>t.options.findIndex(e=>e.value===r())),g=G(()=>X(h)>=0?t.options[X(h)].label:``);async function _(e){let n=t.options[e];n&&!n.disabled&&(r(n.value),t.onchange?.(n.value),y(!0),await Ke())}async function v(){if(!a()&&(U(s,!0),c.mount(),U(l,X(h)>=0?X(h):x(0,1),!0),await Ke(),X(s))){try{X(d)?.showPopover()}catch{}D(),await Ke(),X(s)&&X(d)&&(c.show(X(d)),X(d)?.focus())}}function y(e){X(s)&&(U(s,!1),c.close(X(d)),U(p,``),e&&queueMicrotask(()=>X(u)?.focus()))}function b(){X(s)?y(!1):v()}function x(e,n){if(t.options.length===0)return-1;let r=e;for(let e=0;e<t.options.length;e++){if(r>=0&&r<t.options.length&&!t.options[r].disabled)return r;r+=n,r<0?r=t.options.length-1:r>=t.options.length&&(r=0)}return-1}function S(e){if(t.options.length===0)return;let n=X(l);for(let r=0;r<t.options.length;r++)if(n+=e,n<0?n=t.options.length-1:n>=t.options.length&&(n=0),!t.options[n].disabled){U(l,n,!0),C();return}}function C(){if(!X(d)||X(l)<0)return;let e=X(d).children[X(l)];if(!e)return;let t=e.offsetTop,n=t+e.offsetHeight;t<X(d).scrollTop?X(d).scrollTop=t:n>X(d).scrollTop+X(d).clientHeight&&(X(d).scrollTop=n-X(d).clientHeight)}function w(e){if(e.length!==1)return;let n=e.toLowerCase();if(!/[a-z0-9]/.test(n))return;U(p,X(p)+n),m&&clearTimeout(m),m=setTimeout(()=>{U(p,``),m=null},600);let r=X(p),i=X(l)>=0?(X(l)+1)%t.options.length:0;for(let e=0;e<t.options.length;e++){let n=(i+e)%t.options.length,a=t.options[n];if(!a.disabled&&a.label.toLowerCase().startsWith(r)){U(l,n),C();return}}}function T(e){if(!a())switch(e.key){case`ArrowDown`:case`ArrowUp`:case`Enter`:case` `:e.preventDefault(),v()}}function E(e){switch(e.key){case`ArrowDown`:e.preventDefault(),S(1);break;case`ArrowUp`:e.preventDefault(),S(-1);break;case`Home`:e.preventDefault(),U(l,x(0,1),!0),C();break;case`End`:e.preventDefault(),U(l,x(t.options.length-1,-1),!0),C();break;case`Enter`:case` `:e.preventDefault(),X(l)>=0&&_(X(l));break;case`Escape`:e.preventDefault(),e.stopPropagation(),y(!0);break;case`Tab`:setTimeout(()=>y(!1),0);break;default:w(e.key)}}function D(){if(!X(u)||!X(d))return;let e=X(u).parentElement.getBoundingClientRect(),t=window.visualViewport,n=t?.offsetLeft??0,r=t?.offsetTop??0,i=t?.width??window.innerWidth,a=r+(t?.height??window.innerHeight),o=Math.max(0,a-e.bottom-8-2),s=Math.max(0,e.top-r-8-2),c=Math.min(320,Math.max(40,X(d).scrollHeight)),l=o<Math.min(c,200)&&s>o,p=Math.max(40,Math.min(320,l?s:o)),m=Math.min(c,p),h=Math.min(e.width,i-16),g=Math.max(n+8,Math.min(e.left,n+i-h-8)),_=l?Math.max(r+8,e.top-m-2):Math.min(a-m-8,e.bottom+2);U(f,`left:${g}px;top:${_}px;width:${h}px;max-height:${p}px`),X(d).dataset.origin=l?`bottom-left`:`top-left`}function O(e){if(!X(s))return;let t=e.target;X(u)?.contains(t)||X(d)?.contains(t)||y(!1)}function k(){X(s)&&D()}ht(()=>(document.addEventListener(`mousedown`,O,!0),window.addEventListener(`resize`,k),window.addEventListener(`scroll`,k,!0),window.visualViewport?.addEventListener(`resize`,k),window.visualViewport?.addEventListener(`scroll`,k),()=>{document.removeEventListener(`mousedown`,O,!0),window.removeEventListener(`resize`,k),window.removeEventListener(`scroll`,k,!0),window.visualViewport?.removeEventListener(`resize`,k),window.visualViewport?.removeEventListener(`scroll`,k),m&&clearTimeout(m),c.destroy()}));var A=Fo();let j;var M=q(A);H(M,()=>({type:`button`,class:`sk-select-trigger field-focus`,disabled:a(),"aria-description":t.title,"aria-haspopup":`listbox`,"aria-expanded":X(s),"aria-controls":X(s)?`${n}-listbox`:void 0,"aria-label":t.ariaLabelledby?void 0:t.ariaLabel,"aria-labelledby":t.ariaLabelledby?`${t.ariaLabelledby} ${n}-value`:void 0,"data-invalid":o()||void 0,"aria-describedby":t.ariaDescribedby,onclick:b,onkeydown:T}),void 0,void 0,void 0,`svelte-1v3k3t3`);var N=q(M);let ee;var te=q(N);{let e=G(()=>X(g)||i());$(te,{get text(){return X(e)},numbers:!1})}F(N);var ne=V(N,2);Gn(q(ne),{name:`down`}),F(ne),F(M),nt(M,e=>U(u,e),()=>X(u));var P=V(M,2),re=e=>{var r=Po();L(r,21,()=>t.options,dt,(e,t,r)=>{var i=No();let a;var o=q(i,!0);F(i),W(()=>{J(i,`id`,`${n}-opt-${r}`),a=tt(i,1,`sk-select-opt svelte-1v3k3t3`,null,a,{"is-highlight":r===X(l),"is-active":r===X(h),"is-disabled":!!X(t).disabled}),J(i,`aria-selected`,r===X(h)),J(i,`aria-disabled`,!!X(t).disabled),R(o,X(t).label)}),$e(`mouseenter`,i,()=>X(t).disabled?null:U(l,r,!0)),B(`click`,i,e=>{e.preventDefault(),e.stopPropagation(),_(r)}),B(`keydown`,i,E),I(e,i)}),F(r),nt(r,e=>U(d,e),()=>X(d)),W(()=>{J(r,`id`,`${n}-listbox`),st(r,X(f)),J(r,`aria-invalid`,o()),J(r,`aria-label`,t.ariaLabelledby?void 0:t.ariaLabel),J(r,`aria-labelledby`,t.ariaLabelledby),J(r,`aria-activedescendant`,X(l)>=0?`${n}-opt-${X(l)}`:void 0)}),B(`keydown`,r,E),I(e,r)};K(P,e=>{c.mounted&&e(re)}),F(A),W(()=>{j=tt(A,1,`sk-select svelte-1v3k3t3`,null,j,{"is-open":X(s),"is-disabled":a()}),J(N,`id`,`${n}-value`),ee=tt(N,1,`sk-select-label svelte-1v3k3t3`,null,ee,{"is-placeholder":X(h)<0})}),I(e,A),Et()}Ge([`keydown`,`click`]);var Lo=z(`<span> </span>`),Ro=z(`<label><input/> <span class="sk-checkbox svelte-vw6mhy" aria-hidden="true"><span class="sk-checkbox-box svelte-vw6mhy" aria-hidden="true"><span>✓</span></span></span> <!></label>`);function zo(e,t){it(t,!0);let n=Z(t,`checked`,15),r=Z(t,`disabled`,3,!1);function i(e){n(e.currentTarget.checked),t.onchange?.(n())}var a=Ro();let o;var s=q(a);H(s,()=>({type:`checkbox`,class:`sk-checkbox-input`,"aria-label":t.ariaLabel??void 0,disabled:r(),"aria-description":t.title,onchange:i}),void 0,void 0,void 0,`svelte-vw6mhy`,!0);var c=V(s,2),l=q(c),u=q(l);let d;F(l),F(c);var f=V(c,2),p=e=>{var n=Lo();let i;var a=q(n,!0);F(n),W(()=>{i=tt(n,1,`sk-checkbox-label svelte-vw6mhy`,null,i,{"is-disabled":r()}),R(a,t.label)}),I(e,n)};K(f,e=>{t.label&&e(p)}),F(a),W(()=>{o=tt(a,1,`sk-checkbox-row svelte-vw6mhy`,null,o,{"is-disabled":r()}),d=tt(u,1,`sk-checkbox-glyph svelte-vw6mhy`,null,d,{"is-visible":n()})}),gt(s,n),I(e,a),Et()}var Bo=z(`<span class="number-rest svelte-j94t9a" aria-hidden="true"><!></span>`),Vo=z(`<span class="sk-number-steppers svelte-j94t9a" aria-hidden="true"><button type="button" class="sk-number-step svelte-j94t9a" tabindex="-1"><!></button> <button type="button" class="sk-number-step svelte-j94t9a" tabindex="-1"><!></button></span>`),Ho=z(`<span><input/> <!> <!></span>`);function Uo(e,t){it(t,!0);let n=Z(t,`value`,15),r=Z(t,`step`,3,1),i=Z(t,`disabled`,3,!1),a=Z(t,`invalid`,3,!1),o=Z(t,`allowEmpty`,3,!1),s=Y(!1),c=Y(null);function l(){X(c)?.focus()}function u(){X(c)?.select()}function d(e){if(e===null)return null;let n=e;return t.min!==void 0&&n<t.min&&(n=t.min),t.max!==void 0&&n>t.max&&(n=t.max),n}function f(e){let r=d(e);X(c)&&r!==e&&(X(c).value=r===null?``:String(r)),n(r),t.oninput?.(r)}function p(e){let r=d(e);X(c)&&r!==e&&(X(c).value=r===null?``:String(r)),n(r),t.onchange?.(r)}function m(e){let t=e.currentTarget.value;if(t===``){f(o()?null:0);return}let n=Number(t);Number.isFinite(n)&&f(n)}function h(e){let t=e.currentTarget.value;if(t===``){p(o()?null:0);return}let n=Number(t);Number.isFinite(n)&&p(n)}function g(e){if(t.onkeydown?.(e),e.defaultPrevented||e.key!==`Enter`)return;e.preventDefault(),e.stopPropagation();let n=X(c)?.value??``;if(n===``){p(o()?null:0);return}let r=Number(n);Number.isFinite(r)&&p(r)}function _(e){if(i())return;let a=(n()??0)+e*r(),o=(r().toString().split(`.`)[1]??``).length;a=Number(a.toFixed(o)),f(a),t.onchange?.(d(a)),X(c)?.focus()}var v={focus:l,select:u},y=Ho();let b;var x=q(y),S=()=>U(s,!0),C=()=>U(s,!1);H(x,()=>({onfocus:S,onblur:C,type:`number`,class:`sk-number-input`,value:n()===null?``:n(),min:t.min,max:t.max,step:r(),placeholder:t.placeholder,disabled:i(),"aria-description":t.title,"aria-label":t.ariaLabel,"aria-invalid":a(),"aria-describedby":t.ariaDescribedby,oninput:m,onchange:h,onkeydown:g}),void 0,void 0,void 0,`svelte-j94t9a`,!0),nt(x,e=>U(c,e),()=>X(c));var w=V(x,2),T=e=>{var t=Bo(),r=q(t);{let e=G(()=>String(n()));$(r,{get text(){return X(e)}})}F(t),I(e,t)};K(w,e=>{!X(s)&&n()!==null&&e(T)});var E=V(w,2),D=e=>{var t=Vo(),n=q(t);Gn(q(n),{name:`up`,size:12}),F(n);var r=V(n,2);Gn(q(r),{name:`down`,size:12}),F(r),F(t),B(`click`,n,()=>_(1)),B(`click`,r,()=>_(-1)),I(e,t)};return K(E,e=>{i()||e(D)}),F(y),W(()=>b=tt(y,1,`sk-number svelte-j94t9a`,null,b,{"is-disabled":i(),"is-invalid":a(),resting:!X(s)&&n()!==null})),I(e,y),Et(v)}Ge([`click`]);var Wo=z(`<div class="sk-disclosure-body svelte-13s59ym"><!></div>`),Go=z(`<section><button type="button" class="sk-disclosure-trigger svelte-13s59ym"><span class="sk-disclosure-caret svelte-13s59ym" aria-hidden="true"><!></span> <span class="sk-disclosure-summary svelte-13s59ym"> </span></button> <!></section>`);function Ko(e,t){it(t,!0);let n=Z(t,`expanded`,15),r=Z(t,`flush`,3,!1);function i(){n(!n())}var a=Go();let o;var s=q(a),c=q(s);Gn(q(c),{name:`next`}),F(c);var l=V(c,2),u=q(l,!0);F(l),F(s);var d=V(s,2),f=e=>{var n=Wo(),r=q(n);We(r,()=>t.children),F(n),Xe(1,n,()=>uo,Eo),Xe(2,n,()=>uo,Do),I(e,n)};K(d,e=>{n()&&e(f)}),F(a),W(()=>{o=tt(a,1,`sk-disclosure svelte-13s59ym`,null,o,{"is-open":n(),"is-flush":r()}),J(s,`aria-expanded`,n()),R(u,t.summary)}),B(`click`,s,i),I(e,a),Et()}Ge([`click`]);var qo=z(`<div class="sk-advanced-body svelte-rwdbuk"><!></div>`),Jo=z(`<div class="sk-advanced svelte-rwdbuk"><!></div>`);function Yo(e,t){it(t,!0);let n=Z(t,`expanded`,15,!1),r=Z(t,`summary`,3,`Advanced options`);var i=Jo();Ko(q(i),{get summary(){return r()},flush:!0,get expanded(){return n()},set expanded(e){n(e)},children:(e,n)=>{var r=qo(),i=q(r);We(i,()=>t.children),F(r),I(e,r)},$$slots:{default:!0}}),F(i),I(e,i),Et()}var Xo=z(`<li class="svelte-5d5z0r"> </li>`),Zo=z(`<section class="sk-validation svelte-5d5z0r"><p class="sk-validation-head svelte-5d5z0r"> </p> <ul class="svelte-5d5z0r"></ul></section>`);function Qo(e,t){let n=Ve();it(t,!0);var r=Je(),i=Q(r),a=e=>{var r=Zo(),i=q(r),a=q(i);F(i);var o=V(i,2);L(o,20,()=>t.messages,e=>e,(e,t)=>{var n=Xo(),r=q(n,!0);F(n),W(()=>R(r,t)),I(e,n)}),F(o),F(r),W(()=>{J(r,`aria-labelledby`,`${n}-heading`),J(i,`id`,`${n}-heading`),R(a,`Check these details before you ${t.verb??``}`)}),I(e,r)};K(i,e=>{t.messages.length>0&&e(a)}),I(e,r),Et()}var $o=z(`<span class="dim-note">hosted browser limit · <strong> </strong> dimensions</span>`),es=z(`<label class="field"><span class="label">variance</span> <!></label>`),ts=z(`<label class="field"><span class="label">k-NN</span> <!></label>`),ns=z(`<label class="field"><span class="label">bandwidth σ</span> <!></label>`),rs=z(`<div class="grid2"><label class="field"><span class="label">max dim</span> <!> <!></label> <!></div> <!>`,1);function is(e,t){it(t,!0);let n=Z(t,`tuning`,7),r=Z(t,`maxDimLimit`,3,null);var i=rs(),a=Q(i),o=q(a),s=V(q(o),2);{let e=G(()=>r()??void 0);Uo(s,{get value(){return n().maxDim},min:1,get max(){return X(e)},step:1,oninput:e=>{e!==null&&(n().maxDim=e)}})}var c=V(s,2),l=e=>{var t=$o(),n=V(q(t)),i=q(n,!0);F(n),Ze(),F(t),W(()=>R(i,r())),I(e,t)};K(c,e=>{r()!==null&&e(l)}),F(o);var u=V(o,2),d=e=>{var t=es();Uo(V(q(t),2),{get value(){return n().varThreshold},min:0,max:1,step:.05,oninput:e=>{e!==null&&(n().varThreshold=e)}}),F(t),I(e,t)},f=e=>{var t=ts();Uo(V(q(t),2),{get value(){return n().kNN},min:1,step:1,allowEmpty:!0,placeholder:`max(5, ⌈log K⌉)`,oninput:e=>{n().kNN=e}}),F(t),I(e,t)};K(u,e=>{n().fitMode===`pca`||n().fitMode===`auto`?e(d):e(f,-1)}),F(a);var p=V(a,2),m=e=>{var t=ns();Uo(V(q(t),2),{get value(){return n().bandwidth},min:0,step:.01,allowEmpty:!0,placeholder:`median(k-NN edges)`,oninput:e=>{n().bandwidth=e}}),F(t),I(e,t)};K(p,e=>{n().fitMode===`spectral`&&e(m)}),I(e,i),Et()}var as=z(`<span class="sk-radio-label svelte-k8e4dq"> </span>`),os=z(`<button><span class="sk-radio-control svelte-k8e4dq" aria-hidden="true"><span class="sk-radio-box svelte-k8e4dq" aria-hidden="true"><span></span></span></span> <!></button>`);function ss(e,t){it(t,!0);let n=Z(t,`group`,15),r=Z(t,`disabled`,3,!1),i=G(()=>n()===t.value);function a(){r()||X(i)||(n(t.value),t.onchange?.(t.value))}function o(e){if(r())return;if(e.key===` `||e.key===`Enter`){e.preventDefault(),a();return}let t=e.currentTarget.closest(`[role="radiogroup"]`);if(!t)return;let n=[...t.querySelectorAll(`[role="radio"]`)].filter(e=>!e.disabled),i=n.indexOf(e.currentTarget);if(i<0||n.length===0)return;let o=i,s=getComputedStyle(t).direction===`rtl`;if(e.key===`ArrowDown`||e.key===`ArrowRight`)o=(i+(e.key===`ArrowRight`&&s?-1:1)+n.length)%n.length;else if(e.key===`ArrowUp`||e.key===`ArrowLeft`)o=(i+(e.key===`ArrowLeft`&&s?1:-1)+n.length)%n.length;else if(e.key===`Home`)o=0;else if(e.key===`End`)o=n.length-1;else return;e.preventDefault(),n[o].focus(),n[o].click()}var s=os();H(s,()=>({type:`button`,role:`radio`,class:`sk-radio`,"aria-checked":X(i),"aria-label":t.ariaLabel,tabindex:X(i)&&!r()?0:-1,"data-name":t.name,disabled:r(),"aria-description":t.title,onclick:a,onkeydown:o,[ft]:{"is-selected":X(i),"is-disabled":r()}}),void 0,void 0,void 0,`svelte-k8e4dq`);var c=q(s),l=q(c),u=q(l);let d;F(l),F(c);var f=V(c,2),p=e=>{var n=as(),r=q(n,!0);F(n),W(()=>R(r,t.label)),I(e,n)};K(f,e=>{t.label&&e(p)}),F(s),W(()=>d=tt(u,1,`sk-radio-dot svelte-k8e4dq`,null,d,{"is-visible":X(i)})),I(e,s),Et()}var cs=z(`<p class="dim-note">linear PCA · automatic curved-shape detection is not included in the hosted release</p>`),ls=z(`<div class="radio-row" role="radiogroup" aria-label="Fit method"><!> <!> <!></div>`),us=z(`<section class="step"><h2 class="step-title">fit method</h2> <!> <p class="dim-note"><!></p></section>`);function ds(e,t){it(t,!0);let n=Z(t,`spectralNote`,3,`curved`),r=Z(t,`linearOnly`,3,!1);bt(()=>{r()&&t.tuning.fitMode!==`pca`&&t.onchange(`pca`)});var i=us(),a=V(q(i),2),o=e=>{var t=cs();I(e,t)},s=e=>{var n=ls(),r=q(n);ss(r,{get group(){return t.tuning.fitMode},value:`auto`,label:`auto`,get onchange(){return t.onchange}});var i=V(r,2);ss(i,{get group(){return t.tuning.fitMode},value:`pca`,label:`pca`,get onchange(){return t.onchange}}),ss(V(i,2),{get group(){return t.tuning.fitMode},value:`spectral`,label:`spectral`,get onchange(){return t.onchange}}),F(n),I(e,n)};K(a,e=>{r()?e(o):e(s,-1)});var c=V(a,2),l=q(c),u=e=>{var t=Qe(`Suggest a flat or periodic layout per model. This does not recover Klein-bottle or RP² coordinates.`);I(e,t)},d=e=>{var t=Qe(`flat`);I(e,t)},f=e=>{var t=Qe();W(()=>R(t,n())),I(e,t)};K(l,e=>{t.tuning.fitMode===`auto`?e(u):t.tuning.fitMode===`pca`?e(d,1):e(f,-1)}),F(c),F(i),I(e,i),Et()}function fs(e){return e.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,`_`).replace(/^[_.-]+|[_.-]+$/g,``)}function ps(e){return{namespace:fs(e.namespace)||`local`,name:fs(e.name),description:e.description.trim()}}function ms(e){return e.split(/[\s,]+/).map(e=>e.trim()).filter(Boolean)}function hs(e=Gt(),t=!1){return{fitMode:t?`pca`:`auto`,maxDim:e===null?8:Math.min(8,e),varThreshold:.7,kNN:null,bandwidth:null}}function gs(e){let t={max_dim:e.maxDim};return(e.fitMode===`pca`||e.fitMode===`auto`)&&(t.var_threshold=e.varThreshold),(e.fitMode===`spectral`||e.fitMode===`auto`)&&(e.kNN!==null&&e.kNN>0&&(t.k_nn=e.kNN),e.bandwidth!==null&&e.bandwidth>0&&(t.bandwidth=e.bandwidth)),t}function _s(e,t=Gt()){return e!==null&&e<1?`Use a maximum dimension of at least 1.`:e!==null&&t!==null&&e>t?`Hosted browser fitting supports at most ${t} dimensions.`:null}function vs(e,t=Gt()){let n=[],r=_s(e.maxDim,t);return r&&n.push(r),(e.fitMode===`pca`||e.fitMode===`auto`)&&(e.varThreshold<=0||e.varThreshold>1)&&n.push(`variance ∈ (0, 1]`),n}var ys=z(`<button type="button">Klein bottle</button> <button type="button">Projective plane (RP²)</button>`,1),bs=z(`<p class="field-error axis-error svelte-gjtd3v"> </p>`),xs=z(`<div class="axis-card"><label class="axis-field name-field"><span class="mini-label">axis</span> <input type="text" class="input mini" spellcheck="false"/></label> <label class="axis-field"><span class="mini-label">lo</span> <!></label> <label class="axis-field"><span class="mini-label">hi</span> <span><!></span></label> <span class="axis-check"><!></span> <!></div>`),Ss=z(`<div class="axes"></div>`),Cs=z(`<label class="field sphere-field"><span class="label">sphere dim</span> <!></label>`),ws=z(`<p class="dim-note"> </p>`),Ts=z(`<section class="step"><h2 class="step-title">domain</h2> <div class="domain-kind" role="group" aria-label="Domain shape"><button type="button">box 1D</button> <button type="button">box 2D</button> <button type="button">box 3D</button> <button type="button">sphere</button> <!></div> <!> <p class="dim-note">dim <strong><!></strong> · min <strong><!></strong> nodes</p></section>`),Es=z(`<p class="muted"> </p>`),Ds=z(`<span class="coord-cell"><!></span>`),Os=z(`<div class="node-coords"></div>`),ks=z(`<p class="field-error svelte-gjtd3v"> </p>`),As=z(`<p class="field-error svelte-gjtd3v"> </p>`),js=z(`<p class="field-error svelte-gjtd3v"> </p>`),Ms=z(`<p class="field-error svelte-gjtd3v"> </p>`),Ns=z(`<div class="node-details"><label class="node-role"><span class="label">role</span> <input type="text" class="input mini svelte-gjtd3v" placeholder="pirate" autocomplete="off" spellcheck="false"/></label> <textarea class="node-statements svelte-gjtd3v" rows="4" placeholder="one statement per line"></textarea></div>`),Ps=z(`<div class="node-card"><div class="node-head"><button type="button" class="node-expand"><span class="caret"> </span></button> <input type="text" class="input mini node-label svelte-gjtd3v" placeholder="label" spellcheck="false"/> <!> <button><!></button></div> <!> <!> <!> <!> <!></div>`),Fs=z(`<p class="field-error svelte-gjtd3v"> </p>`),Is=z(`<div class="form-stack"><span class="auto-domain-toggle"><!></span> <!> <section class="step"><h2 class="step-title">nodes</h2> <p class="dim-note"><!></p> <!> <div class="node-list"></div> <button type="button" class="add-node">+ add node</button> <!> <p>Roles are optional. When nodes use different roles, Drowse follows the role of the nearest node.</p></section> <!> <!> <button type="button" class="save-btn"><!></button></div>`);function Ls(t,n){it(n,!0);let r=Y(!1),i=Gt(),a=d.mode!==`http`,o=pt(hs(i,a)),s=Y(!1),c=Y(!1),l=Y(!1),u=Y(null),f=Y(null),p=Y(`box`),m=Y(2),h=Y(2),g=Y(pt([{name:`x`,lo:0,hi:1,periodic:!1},{name:`y`,lo:0,hi:1,periodic:!1},{name:`z`,lo:0,hi:1,periodic:!1}])),_=G(()=>X(p)===`box`?X(m):X(p)===`sphere`?X(h):2),v=G(()=>X(p)===`projective`?6:2*X(_)+1);function b(){return!a&&X(p)===`klein`?{type:`klein`}:!a&&X(p)===`projective`?{type:`projective`,dim:2}:X(p)===`sphere`?{type:`sphere`,dim:X(h)}:{type:`box`,axes:X(g).slice(0,X(m)).map(e=>({name:e.name,periodic:e.periodic,period:e.hi-e.lo,lo:e.lo,hi:e.hi}))}}function x(e){U(m,e,!0),U(p,`box`),E()}function S(){U(p,`sphere`),E()}function C(e){U(h,e,!0),E()}let w=Y(pt([])),T=/^[a-z0-9._-]+$/;function E(){let e=X(_);U(w,X(w).map(t=>{let n=t.coords.slice(0,e);for(;n.length<e;)n.push(0);return{...t,coords:n}}),!0)}function D(){U(w,[...X(w),{label:`node_${X(w).length+1}`,coords:Array(X(_)).fill(0),statements:``,role:``,expanded:!0}],!0)}function O(e){U(w,X(w).filter((t,n)=>n!==e),!0)}function k(e,t,n){U(w,X(w).map((r,i)=>i===e?{...r,[t]:n}:r),!0)}function A(e,t,n){U(w,X(w).map((r,i)=>{if(i!==e)return r;let a=r.coords.slice();return a[t]=n,{...r,coords:a}}),!0)}function j(e){return e.statements.split(/\r?\n/).map(e=>e.trim()).filter(Boolean)}function M(e){if(!e.every(Number.isFinite))return!1;if(X(p)!==`box`)return!0;for(let t=0;t<X(m);t++){let n=X(g)[t];if(n.periodic)continue;let r=e[t];if(!Number.isFinite(r)||r<n.lo||r>n.hi)return!1}return!0}let ee=G(()=>{let e=[];if(fs(n.identity.name)||e.push(`name required`),!X(r)&&X(p)===`box`)for(let t=0;t<X(m);t++){let n=X(g)[t];n.hi<=n.lo&&e.push(`axis "${n.name||t}": hi > lo`)}X(r)?X(w).length<2&&e.push(`nodes: ${X(w).length} / 2`):X(w).length<X(v)&&e.push(`nodes: ${X(w).length} / ${X(v)}`);let t=new Set;for(let n of X(w)){let i=fs(n.label);i?t.has(i)?e.push(`duplicate label "${i}"`):t.add(i):e.push(`node label required`),!X(r)&&!M(n.coords)&&e.push(`"${n.label}": outside domain`),j(n).length===0&&e.push(`"${n.label}": statement required`);let a=n.role.trim();a&&!T.test(a)&&e.push(`"${n.label}": invalid role "${a}"`)}return X(r)&&e.push(...vs(o,i)),{ok:e.length===0,messages:e}});function te(e){if(!X(l)||X(r)||X(p)!==`box`)return null;let t=X(g)[e];return t.hi<=t.lo?`The high value must be greater than the low value.`:null}function ne(e){if(!X(l))return null;let t=fs(X(w)[e].label);return t?X(w).filter(e=>fs(e.label)===t).length>1?`Each node label must be unique.`:null:`Enter a label for this node.`}function P(e){return!X(l)||X(r)||M(X(w)[e].coords)?null:`Keep every coordinate inside the selected domain.`}function re(e){return!X(l)||j(X(w)[e]).length>0?null:`Add at least one example statement.`}function ie(e){if(!X(l))return null;let t=X(w)[e].role.trim();return t&&!T.test(t)?`Use lowercase letters, numbers, dots, underscores, or hyphens.`:null}function ae(){if(!X(l))return null;let e=X(r)?2:X(v);return X(w).length<e?`Add ${e-X(w).length} more ${e-X(w).length===1?`node`:`nodes`}.`:null}function oe(){return(X(u)?.closest(`.mb-form`))?.querySelector(`:scope > .grid2 > .field:nth-child(2) input`)??null}function se(e){let t=X(u)?.querySelectorAll(`.field`)??[];for(let n of t)if(n.querySelector(`.label`)?.textContent?.trim()===e)return n.querySelector(`input`);return null}async function ce(){if(await Ke(),!fs(n.identity.name))oe()?.focus();else{if(!X(r)&&X(p)===`box`){let e=X(g).slice(0,X(m)).findIndex(e=>e.hi<=e.lo);if(e>=0){X(u)?.querySelector(`#authored-axis-${e}-hi input`)?.focus();return}}if(ae())X(f)?.focus();else{for(let e=0;e<X(w).length;e+=1){let t=X(u)?.querySelector(`[data-node-index="${e}"]`);if(ne(e)){t?.querySelector(`.node-label`)?.focus();return}if(P(e)){t?.querySelector(`.node-coords input`)?.focus();return}let n=ie(e),r=re(e);if(n||r){X(w)[e].expanded||(k(e,`expanded`,!0),await Ke());let t=X(u)?.querySelector(`[data-node-index="${e}"]`);n?t?.querySelector(`.node-role input`)?.focus():t?.querySelector(`.node-statements`)?.focus();return}}(X(r)?vs(o,i):[]).length!==0&&(U(s,!0),await Ke(),se(o.maxDim<1||i!==null&&o.maxDim>i?`max dim`:`variance`)?.focus())}}}async function le(){if(X(c))return;if(U(l,!0),!X(ee).ok){await ce();return}U(c,!0);let{namespace:t,name:i,description:a}=ps(n.identity);if(X(r)){let r={namespace:t,name:i,description:a,fit_mode:o.fitMode,hyperparams:gs(o),nodes:X(w).map(e=>{let t=e.role.trim();return{label:fs(e.label),statements:j(e),...t?{role:t}:{}}})};try{await e.createDiscover(r),await y(),N(`Created ${t}/${i} (auto-domain, ${o.fitMode} fit). Open Manifolds to fit it.`,{kind:`info`}),n.oncomplete?n.oncomplete():(ar(),ir(`manifolds`))}catch(e){N(`Couldn't create the manifold: ${ue(e)}`,{kind:`error`,ttlMs:null})}finally{U(c,!1)}return}let s={namespace:t,name:i,description:a,domain:b(),nodes:X(w).map(e=>{let t=e.role.trim();return{label:fs(e.label),coords:e.coords.slice(0,X(_)),statements:j(e),...t?{role:t}:{}}})};try{let r=await e.create(s);await y();let a=r.advisories??[];a.length>0?N(`Created ${t}/${i}. Check ${a.length} coordinate ${a.length===1?`warning`:`warnings`}.`,{kind:`warning`,detail:a.join(`; `),ttlMs:1e4}):N(`built manifold ${t}/${i}`,{kind:`info`}),n.oncomplete?n.oncomplete():(ar(),ir(`manifolds`))}catch(e){N(`Couldn't create the manifold: ${ue(e)}`,{kind:`error`,ttlMs:null})}finally{U(c,!1)}}function ue(e){return jn(e,`Unable to build this direction. Check the highlighted fields and try again.`)}ht(()=>Nn(`manifold_authored`,{schema:gr,read:()=>({busy:X(c),values:{auto_domain:X(r),domain_kind:X(p),box_dim:X(m),sphere_dim:X(h),axes:X(g),nodes:X(w),tuning:o,advanced_open:X(s)},validation:X(ee)}),update:async e=>{if(X(c))throw new Ln(`BUSY`,`Wait for this interface operation to finish.`);if(a&&[`klein`,`projective`].includes(e.domain_kind))throw new Ln(`UNAVAILABLE`,`This domain is supported by the HTTP runtime only.`);e.auto_domain!==void 0&&U(r,e.auto_domain,!0),e.domain_kind!==void 0&&U(p,e.domain_kind,!0),e.box_dim!==void 0&&U(m,e.box_dim,!0),e.sphere_dim!==void 0&&U(h,e.sphere_dim,!0),e.axes!==void 0&&U(g,structuredClone(e.axes),!0),e.nodes!==void 0&&U(w,structuredClone(e.nodes),!0),e.tuning&&Object.assign(o,e.tuning),e.advanced_open!==void 0&&U(s,e.advanced_open,!0),e.nodes===void 0&&[`domain_kind`,`box_dim`,`sphere_dim`].some(t=>e[t]!==void 0)&&E()}}));var de=Is(),fe=q(de);zo(q(fe),{label:`auto-domain`,get checked(){return X(r)},set checked(e){U(r,e,!0)}}),F(fe);var pe=V(fe,2),me=e=>{ds(e,{get tuning(){return o},get linearOnly(){return a},spectralNote:`curved · best with ≥50 nodes`,onchange:e=>o.fitMode=e})},he=e=>{var t=Ts(),n=V(q(t),2),r=q(n);let i;var o=V(r,2);let s;var c=V(o,2);let l;var u=V(c,2);let d;var f=V(u,2),y=e=>{var t=ys(),n=Q(t);let r;var i=V(n,2);let a;W(()=>{r=tt(n,1,`kind-btn`,null,r,{active:X(p)===`klein`}),J(n,`aria-pressed`,X(p)===`klein`),a=tt(i,1,`kind-btn`,null,a,{active:X(p)===`projective`}),J(i,`aria-pressed`,X(p)===`projective`)}),B(`click`,n,()=>{U(p,`klein`),E()}),B(`click`,i,()=>{U(p,`projective`),E()}),I(e,t)};K(f,e=>{a||e(y)}),F(n);var w=V(n,2),T=e=>{var t=Ss();L(t,21,()=>X(g).slice(0,X(m)),dt,(e,t,n)=>{var r=xs(),i=q(r),a=V(q(i),2);ot(a),F(i);var o=V(i,2);Uo(V(q(o),2),{get value(){return X(t).lo},step:.1,oninput:e=>{e!==null&&(X(g)[n].lo=e)}}),F(o);var s=V(o,2),c=V(q(s),2);J(c,`id`,`authored-axis-${n}-hi`);var l=q(c);{let e=G(()=>te(n)!==null),r=G(()=>`${X(t).name||`Axis ${n+1}`} high value`),i=G(()=>te(n)?`authored-axis-${n}-error`:void 0);Uo(l,{get value(){return X(t).hi},step:.1,get invalid(){return X(e)},get ariaLabel(){return X(r)},get ariaDescribedby(){return X(i)},oninput:e=>{e!==null&&(X(g)[n].hi=e)}})}F(c),F(s);var u=V(s,2);zo(q(u),{get checked(){return X(t).periodic},label:`periodic`,onchange:e=>{X(g)[n].periodic=e}}),F(u);var d=V(u,2),f=e=>{var t=bs();J(t,`id`,`authored-axis-${n}-error`);var r=q(t,!0);F(t),W(e=>R(r,e),[()=>te(n)]),I(e,t)},p=G(()=>te(n));K(d,e=>{X(p)&&e(f)}),F(r),W(()=>ct(a,X(t).name)),B(`input`,a,e=>{X(g)[n].name=e.currentTarget.value}),I(e,r)}),F(t),I(e,t)},D=e=>{var t=Je(),n=Q(t),r=e=>{var t=Cs();Io(V(q(t),2),{get value(){return X(h)},options:[{value:1,label:`S¹ (circle)`},{value:2,label:`S² (sphere)`},{value:3,label:`S³`}],ariaLabel:`Sphere dimension`,onchange:C}),F(t),I(e,t)},i=e=>{var t=ws(),n=q(t);F(t),W(e=>R(n,`${e??``} Spread nodes across the whole surface; the minimum count alone does not guarantee a stable fit.`),[()=>ko(b())]),I(e,t)};K(n,e=>{X(p)===`sphere`?e(r):e(i,-1)}),I(e,t)};K(w,e=>{X(p)===`box`?e(T):e(D,-1)});var O=V(w,2),k=V(q(O));$(q(k),{get text(){return X(_)}}),F(k);var A=V(k,2);$(q(A),{get text(){return X(v)}}),F(A),Ze(),F(O),F(t),W(()=>{i=tt(r,1,`kind-btn`,null,i,{active:X(p)===`box`&&X(m)===1}),J(r,`aria-pressed`,X(p)===`box`&&X(m)===1),s=tt(o,1,`kind-btn`,null,s,{active:X(p)===`box`&&X(m)===2}),J(o,`aria-pressed`,X(p)===`box`&&X(m)===2),l=tt(c,1,`kind-btn`,null,l,{active:X(p)===`box`&&X(m)===3}),J(c,`aria-pressed`,X(p)===`box`&&X(m)===3),d=tt(u,1,`kind-btn`,null,d,{active:X(p)===`sphere`}),J(u,`aria-pressed`,X(p)===`sphere`)}),B(`click`,r,()=>x(1)),B(`click`,o,()=>x(2)),B(`click`,c,()=>x(3)),B(`click`,u,S),I(e,t)};K(pe,e=>{X(r)?e(me):e(he,-1)});var ge=V(pe,2),_e=V(q(ge),2),ve=q(_e);{let e=G(()=>`${X(w).length} ${X(w).length===1?`node`:`nodes`} · ${X(r)?`coordinates derived at fit`:`${X(_)} dimensions`}`);$(ve,{get text(){return X(e)}})}F(_e);var ye=V(_e,2),be=e=>{var t=Es(),n=q(t);F(t),W(()=>R(n,`add ≥${(X(r)?2:X(v))??``} nodes`)),I(e,t)};K(ye,e=>{X(w).length===0&&e(be)});var xe=V(ye,2);L(xe,21,()=>X(w),dt,(e,t,n)=>{var i=Ps();J(i,`data-node-index`,n);var a=q(i),o=q(a);J(o,`aria-controls`,`authored-node-${n}-details`);var s=q(o),c=q(s,!0);F(s),F(o);var l=V(o,2);ot(l),J(l,`aria-label`,`Node ${n+1} label`);var u=V(l,2),d=e=>{var r=Os();L(r,21,()=>X(t).coords,dt,(e,r,i)=>{var a=Ds(),o=q(a);{let e=G(()=>`Node ${X(t).label||n+1}, coordinate ${i+1}`),a=G(()=>P(n)!==null),s=G(()=>P(n)?`authored-node-${n}-coords-error`:void 0);Uo(o,{get value(){return X(r)},step:.1,get ariaLabel(){return X(e)},get invalid(){return X(a)},get ariaDescribedby(){return X(s)},oninput:e=>A(n,i,e??0)})}F(a),I(e,a)}),F(r),I(e,r)};K(u,e=>{X(r)||e(d)});var f=V(u,2),p=()=>O(n);H(f,()=>({type:`button`,class:`node-remove`,onclick:p,"aria-label":`remove node ${X(t).label??``}`,"aria-description":`remove node`}),void 0,void 0,void 0,`svelte-gjtd3v`),Gn(q(f),{name:`dismiss`}),F(f),F(a);var m=V(a,2),h=e=>{var t=ks();J(t,`id`,`authored-node-${n}-label-error`);var r=q(t,!0);F(t),W(e=>R(r,e),[()=>ne(n)]),I(e,t)},g=G(()=>ne(n));K(m,e=>{X(g)&&e(h)});var _=V(m,2),v=e=>{var t=As();J(t,`id`,`authored-node-${n}-coords-error`);var r=q(t,!0);F(t),W(e=>R(r,e),[()=>P(n)]),I(e,t)},y=G(()=>P(n));K(_,e=>{X(y)&&e(v)});var b=V(_,2),x=e=>{var t=js();J(t,`id`,`authored-node-${n}-role-error`);var r=q(t,!0);F(t),W(e=>R(r,e),[()=>ie(n)]),I(e,t)},S=G(()=>ie(n));K(b,e=>{X(S)&&e(x)});var C=V(b,2),w=e=>{var t=Ms();J(t,`id`,`authored-node-${n}-statements-error`);var r=q(t,!0);F(t),W(e=>R(r,e),[()=>re(n)]),I(e,t)},T=G(()=>re(n));K(C,e=>{X(T)&&e(w)});var E=V(C,2),D=e=>{var r=Ns();J(r,`id`,`authored-node-${n}-details`);var i=q(r),a=V(q(i),2);ot(a),F(i);var o=V(i,2);_t(o),F(r),W((e,r,i,s)=>{ct(a,X(t).role),J(a,`aria-invalid`,e),J(a,`aria-describedby`,r),ct(o,X(t).statements),J(o,`aria-label`,`Statements for node ${X(t).label||n+1}`),J(o,`aria-invalid`,i),J(o,`aria-describedby`,s)},[()=>ie(n)!==null,()=>ie(n)?`authored-node-${n}-role-error`:void 0,()=>re(n)!==null,()=>re(n)?`authored-node-${n}-statements-error`:void 0]),B(`input`,a,e=>k(n,`role`,e.currentTarget.value)),B(`input`,o,e=>k(n,`statements`,e.currentTarget.value)),Xe(1,r,()=>uo,Eo),Xe(2,r,()=>uo,Do),I(e,r)};K(E,e=>{X(t).expanded&&e(D)}),F(i),W((e,r)=>{J(o,`aria-expanded`,X(t).expanded),J(o,`aria-label`,`${X(t).expanded?`Collapse`:`Expand`} node ${X(t).label||n+1}`),R(c,X(t).expanded?`▾`:`▸`),ct(l,X(t).label),J(l,`aria-invalid`,e),J(l,`aria-describedby`,r)},[()=>ne(n)!==null,()=>ne(n)?`authored-node-${n}-label-error`:void 0]),B(`click`,o,()=>k(n,`expanded`,!X(t).expanded)),B(`input`,l,e=>k(n,`label`,e.currentTarget.value)),I(e,i)}),F(xe);var Se=V(xe,2);nt(Se,e=>U(f,e),()=>X(f));var Ce=V(Se,2),we=e=>{var t=Fs(),n=q(t,!0);F(t),W(e=>R(n,e),[()=>ae()]),I(e,t)},Te=G(()=>ae());K(Ce,e=>{X(Te)&&e(we)});var Ee=V(Ce,2);H(Ee,()=>({class:`muted`,"aria-description":vn}),void 0,void 0,void 0,`svelte-gjtd3v`),F(ge);var De=V(ge,2),Oe=e=>{Yo(e,{get expanded(){return X(s)},set expanded(e){U(s,e,!0)},children:(e,t)=>{is(e,{get tuning(){return o},get maxDimLimit(){return i}})},$$slots:{default:!0}})};K(De,e=>{X(r)&&e(Oe)});var ke=V(De,2);{let e=G(()=>X(l)?X(ee).messages:[]);Qo(ke,{verb:`build`,get messages(){return X(e)}})}var Ae=V(ke,2),je=q(Ae);{let e=G(()=>X(c)?`building…`:X(r)?`build · ${o.fitMode}`:`build`);$(je,{get text(){return X(e)},numbers:!1})}F(Ae),F(de),nt(de,e=>U(u,e),()=>X(u)),W(()=>Ae.disabled=X(c)),B(`click`,Se,D),B(`click`,Ae,le),I(t,de),Et()}Ge([`click`,`input`]);var Rs=z(`<button><!></button>`);function zs(e,t){let n=Z(t,`variant`,3,`ghost`),r=Z(t,`size`,3,`md`),i=Z(t,`disabled`,3,!1),a=Z(t,`busy`,3,!1),o=Z(t,`static`,3,!1),s=Z(t,`type`,3,`button`);var c=Rs();H(c,()=>({class:`sk-btn ${n()??``} ${r()??``}`,disabled:i(),"aria-description":t.title,"aria-label":t.ariaLabel,"aria-busy":a()||void 0,type:s(),onclick:t.onclick,onmousedown:t.onmousedown,[ft]:{accented:t.accent!==void 0,"loading-pulse":a(),static:o()},[xt]:{"--btn-accent":t.accent,"--btn-solid-fill":t.accent??`var(--action-bg)`,"--btn-solid-ink":t.accent?`var(--text-on-accent)`:`var(--action-ink)`}}),void 0,void 0,void 0,`svelte-g9c1iq`);var l=q(c);We(l,()=>t.children),F(c),I(e,c)}var Bs=z(`<span id="discover-concepts-error" class="field-error svelte-xk78rg"> </span>`),Vs=z(`<span id="discover-system-error" class="field-error svelte-xk78rg"> </span>`),Hs=z(`<label class="field"><span class="label">system template</span> <textarea class="input svelte-xk78rg" rows="3" spellcheck="false"></textarea> <!></label>`),Us=z(`<label><input type="radio" name="example-budget" class="svelte-xk78rg"/> <span class="svelte-xk78rg"><strong class="svelte-xk78rg"> </strong><span class="svelte-xk78rg"> </span><small class="svelte-xk78rg"> </small></span></label>`),Ws=z(`<span id="discover-samples-error" class="field-error svelte-xk78rg"> </span>`),Gs=z(`<label class="field"><span class="label">Responses per prompt</span> <!> <!></label>`),Ks=z(`<span class="field-error svelte-xk78rg"> </span>`),qs=z(`<span class="dim-note">No compatible learned-feature pack is installed.</span>`),Js=z(`<div class="field"><span class="label">feature space for fit</span> <!> <!></div>`),Ys=z(`<label class="field"><span class="label">SAE release</span> <input class="input" placeholder="e.g. gemma-scope-2-4b-it-res" spellcheck="false"/></label>`),Xs=z(`<p class="role-hint">each concept becomes its assistant voice; unsupported chat templates fail before fitting</p>`),Zs=z(`<!> <!> <!> <div class="check-stack"><!> <!> <!> <!> <p class="budget-help svelte-xk78rg">Without replacement, existing concept groups are reused. To change their example budget, use a new name or enable replacement.</p></div>`,1),Qs=z(`<p class="creation-error svelte-xk78rg" role="alert"> </p>`),$s=z(`<section class="creation-result svelte-xk78rg" aria-label="Creation result"><strong> </strong> <p class="svelte-xk78rg"> </p> <div class="result-actions svelte-xk78rg"><!> <!></div></section>`),ec=z(`<div class="form-stack" role="form" aria-label="Generate manifold"><fieldset class="creation-fields svelte-xk78rg"><section class="step"><h2 class="step-title svelte-xk78rg">Concepts to compare</h2> <label class="field"><span class="label">Concepts (at least 2)</span> <textarea class="input svelte-xk78rg" rows="4" placeholder="pirate, assistant" spellcheck="false"></textarea> <!> <span class="dim-note"><strong><!></strong> concepts · separate with commas or new lines; join words with underscores</span></label> <div><div class="field"><span class="label">What do the concepts describe?</span> <div class="radio-row" role="radiogroup" aria-label="Concept kind"><!> <!> <!></div></div></div> <!></section> <section class="step" aria-labelledby="example-budget-title"><h2 id="example-budget-title" class="step-title svelte-xk78rg">Example budget</h2> <div class="budget-options svelte-xk78rg" role="radiogroup" aria-label="Example budget"><!> <label><input type="radio" name="example-budget" class="svelte-xk78rg"/> <span class="svelte-xk78rg"><strong class="svelte-xk78rg">Custom</strong><span class="svelte-xk78rg">Choose the number of responses per prompt.</span></span></label></div> <!> <p class="budget-total svelte-xk78rg"><strong> </strong><span class="svelte-xk78rg"> </span></p> <p class="budget-help svelte-xk78rg"> </p></section> <!></fieldset> <!> <!> <!> <button type="button" class="save-btn svelte-xk78rg"><!></button></div>`);function tc(e,t){it(t,!0);let n=[],r=Gt(),i=d.mode!==`http`,a=pt(hs(r,i)),s=Y(``),c=Y(`concrete`),l=Y(`You are {c}.`),u=Y(1),f=Y(`1`),p=Y(!1),m=Y(!1),h=Y(``),g=Y(!0),_=Y(!1),b=Y(!1),C=Y(null),w={},T=Y(null),E=Y(!1),D=Y(!1),O=G(()=>Rn.current!==null&&[`running`,`waiting`,`cancelling`].includes(Rn.current.status)),k=Y(!1),A=Y(null),j=Y(null),M=Y(null),ee=Y(null),te=G(()=>ms(X(s))),ne=G(()=>X(u)*an),P=G(()=>X(ne)*X(te).length),re=G(()=>[{value:``,label:`Standard fit (no feature pack)`},...v.sources.map(e=>({value:e.source,label:e.name?.trim()||e.source}))]);ht(()=>{i&&S()});let ie=G(()=>{let e=[];fs(t.identity.name)||e.push(`name required`),X(te).length<2&&e.push(`concepts: ${X(te).length} / 2`);let n=new Set;for(let t of X(te)){let r=fs(t);r?n.has(r)?e.push(`duplicate concept "${r}"`):n.add(r):e.push(`invalid concept "${t}"`)}if((!Number.isSafeInteger(X(u))||X(u)<1)&&e.push(`Choose a whole number of responses per prompt, at least 1.`),X(c)===`custom`){let t=X(l).trim();t?t.includes(`{c}`)||e.push(`system template needs "{c}"`):e.push(`system template required`)}return e.push(...vs(a,r)),{ok:e.length===0,messages:e}}),ae=G(()=>{if(!X(k))return null;if(X(te).length<2)return`Enter at least two concepts.`;let e=new Set;for(let t of X(te)){let n=fs(t);if(!n)return`Concept “${t}” needs a letter or number.`;if(e.has(n))return`Each concept must be unique after formatting.`;e.add(n)}return null}),oe=G(()=>X(k)&&(!Number.isSafeInteger(X(u))||X(u)<1)?`Use a whole number, at least 1.`:null),se=G(()=>!X(k)||X(c)!==`custom`?null:X(l).trim()?X(l).includes(`{c}`)?null:`Include the "{c}" placeholder.`:`Enter a system template.`);bt(()=>{let e=X(M)?.querySelector(`input`);e&&(X(oe)?(e.setAttribute(`aria-invalid`,`true`),e.setAttribute(`aria-describedby`,`discover-samples-error`)):(e.removeAttribute(`aria-invalid`),e.removeAttribute(`aria-describedby`)))});function ce(){return(X(A)?.closest(`.mb-form`))?.querySelector(`:scope > .grid2 > .field:nth-child(2) input`)??null}function le(e){let t=X(A)?.querySelectorAll(`.field`)??[];for(let n of t)if(n.querySelector(`.label`)?.textContent?.trim()===e)return n.querySelector(`input`);return null}async function ue(){await Ke(),fs(t.identity.name)?X(ae)?X(j)?.focus():X(oe)?X(M)?.querySelector(`input`)?.focus():X(se)?X(ee)?.focus():vs(a,r).length!==0&&(U(_,!0),await Ke(),le(a.maxDim<1||r!==null&&a.maxDim>r?`max dim`:`variance`)?.focus()):ce()?.focus()}async function de(){if(X(b)||X(O))return;if(U(k,!0),!X(ie).ok){await ue();return}U(b,!0),U(T,null),U(C,null),U(D,!1);let{namespace:e,name:n,description:r}=ps(t.identity),i=gs(a),s={namespace:e,name:n,description:r,concepts:X(te).map(e=>fs(e)),kind:X(c),custom_system:X(c)===`custom`?X(l).trim():void 0,samples_per_prompt:X(u),fit_mode:a.fitMode,hyperparams:i,force:X(m),role_per_node:X(p)};w={sae:X(h).trim()||null,fit_mode:a.fitMode,hyperparams:i};let d=X(g);try{await x(s,()=>{},d),U(C,{namespace:e,name:n,fitted:!1},!0),d&&(await o(e,n,w,()=>{}),U(C,{namespace:e,name:n,fitted:!0},!0)),await y()}catch(e){U(T,zn(e)?X(C)?`Fitting cancelled. Your examples are saved; you can fit them below.`:`Generation cancelled. Completed concept groups are kept; run again to fill any missing groups.`:`${X(C)?`Examples were saved, but fitting failed`:`Could not generate the examples`}: ${An(e)}`,!0),await y()}finally{U(b,!1)}}async function fe(){if(!X(C)||X(b)||X(O))return;let e=X(C);U(b,!0),U(T,null);try{await o(e.namespace,e.name,w,()=>{}),U(C,{...e,fitted:!0},!0),await y()}catch(e){U(T,zn(e)?`Fitting cancelled. Your saved examples are ready to try again.`:`Could not fit the saved examples: ${An(e)}`,!0)}finally{U(b,!1)}}async function me(){if(X(C)?.fitted&&!X(E)){U(E,!0);try{await pe(`${X(C).namespace}/${X(C).name}`),U(D,!0),N(`Probe added. Generate a reply to see its readings.`)}catch(e){U(T,`Could not add the probe: ${An(e)}`)}finally{U(E,!1)}}}ht(()=>Nn(`manifold_discover`,{schema:hr,read:()=>({busy:X(b)||X(E)||X(O),values:{concepts_text:X(s),kind:X(c),custom_system:X(l),samples_per_prompt:X(u),role_per_node:X(p),force:X(m),sae_release:X(h),also_fit:X(g),advanced_open:X(_),tuning:a},validation:X(ie),examples_per_concept:X(ne),total_examples:X(P)}),update:async e=>{if(X(b)||X(E)||X(O))throw new Ln(`BUSY`,`Wait for this interface operation to finish.`);e.concepts_text!==void 0&&U(s,e.concepts_text,!0),e.kind!==void 0&&U(c,e.kind,!0),e.custom_system!==void 0&&U(l,e.custom_system,!0),e.samples_per_prompt!==void 0&&(U(u,e.samples_per_prompt,!0),U(f,String(X(u)),!0)),e.role_per_node!==void 0&&U(p,e.role_per_node,!0),e.force!==void 0&&U(m,e.force,!0),e.sae_release!==void 0&&U(h,e.sae_release,!0),e.also_fit!==void 0&&U(g,e.also_fit,!0),e.advanced_open!==void 0&&U(_,e.advanced_open,!0),e.tuning&&Object.assign(a,e.tuning)}}));var he=ec(),ge=q(he),_e=q(ge),ve=V(q(_e),2),ye=V(q(ve),2);_t(ye),nt(ye,e=>U(j,e),()=>X(j));var be=V(ye,2),xe=e=>{var t=Bs(),n=q(t,!0);F(t),W(()=>R(n,X(ae))),I(e,t)};K(be,e=>{X(ae)&&e(xe)});var Se=V(be,2),Ce=q(Se);$(q(Ce),{get text(){return X(te).length}}),F(Ce),Ze(),F(Se),F(ve);var we=V(ve,2),Te=q(we),Ee=V(q(Te),2),De=q(Ee);ss(De,{value:`concrete`,label:`Roles or characters`,get group(){return X(c)},set group(e){U(c,e,!0)}});var Oe=V(De,2);ss(Oe,{value:`abstract`,label:`Traits or feelings`,get group(){return X(c)},set group(e){U(c,e,!0)}}),ss(V(Oe,2),{value:`custom`,label:`Custom instructions`,get group(){return X(c)},set group(e){U(c,e,!0)}}),F(Ee),F(Te),F(we);var ke=V(we,2),Ae=e=>{var t=Hs(),n=V(q(t),2);_t(n),nt(n,e=>U(ee,e),()=>X(ee));var r=V(n,2),i=e=>{var t=Vs(),n=q(t,!0);F(t),W(()=>R(n,X(se))),I(e,t)};K(r,e=>{X(se)&&e(i)}),F(t),W(()=>{J(n,`aria-invalid`,!!X(se)),J(n,`aria-describedby`,X(se)?`discover-system-error`:void 0)}),at(n,()=>X(l),e=>U(l,e)),I(e,t)};K(ke,e=>{X(c)===`custom`&&e(Ae)}),F(_e);var je=V(_e,2),Me=V(q(je),2),Ne=q(Me);L(Ne,17,()=>dn,dt,(e,t)=>{var r=Us();let i;var a=q(r);ot(a);var o,s=V(a,2),c=q(s),l=q(c,!0);F(c);var d=V(c),p=q(d);F(d);var m=V(d),h=q(m,!0);F(m),F(s),F(r),W((e,n)=>{i=tt(r,1,`budget-option svelte-xk78rg`,null,i,e),o!==(o=n)&&(a.value=(a.__value=n)??``),R(l,X(t).label),R(p,`${X(t).rounds*an} examples per concept`),R(h,X(t).description)},[()=>({selected:X(f)===String(X(t).rounds)}),()=>String(X(t).rounds)]),B(`change`,a,()=>U(u,X(t).rounds,!0)),vt(n,[],a,()=>(String(X(t).rounds),X(f)),e=>U(f,e)),I(e,r)});var Pe=V(Ne,2);let Fe;var Ie=q(Pe);ot(Ie),Ie.value=Ie.__value=`custom`,Ze(2),F(Pe),F(Me);var Le=V(Me,2),Re=e=>{var t=Gs(),n=V(q(t),2);Uo(n,{get value(){return X(u)},min:1,step:1,oninput:e=>{e!==null&&U(u,e,!0)}});var r=V(n,2),i=e=>{var t=Ws(),n=q(t,!0);F(t),W(()=>R(n,X(oe))),I(e,t)};K(r,e=>{X(oe)&&e(i)}),F(t),nt(t,e=>U(M,e),()=>X(M)),I(e,t)};K(Le,e=>{X(f)===`custom`&&e(Re)});var ze=V(Le,2),Be=q(ze),Ve=q(Be,!0);F(Be);var He=V(Be),Ue=q(He);F(He),F(ze);var We=V(ze,2),Ge=q(We);F(We),F(je),Yo(V(je,2),{get expanded(){return X(_)},set expanded(e){U(_,e,!0)},children:(e,t)=>{var n=Zs(),o=Q(n);ds(o,{get tuning(){return a},get linearOnly(){return i},spectralNote:`curved · best with ≥50 nodes`,onchange:e=>a.fitMode=e});var s=V(o,2),c=e=>{var t=Js(),n=V(q(t),2);{let e=G(()=>v.loading||v.busy);Io(n,{get options(){return X(re)},get disabled(){return X(e)},ariaLabel:`Feature space used for manifold fitting`,get value(){return X(h)},set value(e){U(h,e,!0)}})}var r=V(n,2),i=e=>{var t=Ks(),n=q(t,!0);F(t),W(()=>R(n,v.error)),I(e,t)},a=e=>{var t=qs();I(e,t)};K(r,e=>{v.error?e(i):!v.loading&&v.sources.length===0&&e(a,1)}),F(t),I(e,t)},l=e=>{var t=Ys(),n=V(q(t),2);ot(n),F(t),at(n,()=>X(h),e=>U(h,e)),I(e,t)};K(s,e=>{i?e(c):e(l,-1)});var u=V(s,2);is(u,{get tuning(){return a},get maxDimLimit(){return r}});var d=V(u,2),f=q(d);zo(f,{label:`Fit after generating examples`,get checked(){return X(g)},set checked(e){U(g,e,!0)}});var _=V(f,2);zo(_,{label:`Use a separate role for each concept`,get title(){return vn},get checked(){return X(p)},set checked(e){U(p,e,!0)}});var y=V(_,2),b=e=>{var t=Xs();I(e,t)};K(y,e=>{X(p)&&e(b)}),zo(V(y,2),{label:`Replace existing examples with this name`,get checked(){return X(m)},set checked(e){U(m,e,!0)}}),Ze(2),F(d),I(e,n)},$$slots:{default:!0}}),F(ge);var qe=V(ge,2),Je=e=>{var t=Qs(),n=q(t,!0);F(t),W(()=>R(n,X(T))),I(e,t)};K(qe,e=>{X(T)&&e(Je)});var Ye=V(qe,2),z=e=>{var n=$s(),r=q(n),i=q(r);F(r);var a=V(r,2),o=q(a,!0);F(a);var s=V(a,2),c=q(s),l=e=>{{let t=G(()=>X(D)||X(E));zs(e,{variant:`solid`,get disabled(){return X(t)},onclick:()=>void me(),children:(e,t)=>{Ze();var n=Qe();W(()=>R(n,X(D)?`Probe added`:`Add probe`)),I(e,n)},$$slots:{default:!0}})}},u=e=>{zs(e,{variant:`solid`,get disabled(){return X(O)},onclick:()=>void fe(),children:(e,t)=>{Ze();var n=Qe(`Fit saved examples`);I(e,n)},$$slots:{default:!0}})};K(c,e=>{X(C).fitted?e(l):e(u,-1)}),zs(V(c,2),{onclick:()=>t.oncomplete?t.oncomplete(X(C)):ir(`subspace`),children:(e,t)=>{Ze();var n=Qe(`Open library`);I(e,n)},$$slots:{default:!0}}),F(s),F(n),W(()=>{R(i,`${X(C).fitted?`Ready to use`:`Examples saved`}: ${X(C).namespace??``}/${X(C).name??``}`),R(o,X(C).fitted?`Add a probe to measure the next reply, or open the library to steer with it.`:`Fit these saved examples when you are ready. You do not need to generate them again.`)}),I(e,n)};K(Ye,e=>{X(C)&&!X(b)&&e(z)});var Xe=V(Ye,2);{let e=G(()=>X(k)?X(ie).messages:[]);Qo(Xe,{verb:`generate examples`,get messages(){return X(e)}})}var $e=V(Xe,2),et=q($e);{let e=G(()=>X(g)?`Generate and fit`:`Generate examples`);$(et,{get text(){return X(e)}})}F($e),F(he),nt(he,e=>U(A,e),()=>X(A)),W(e=>{J(he,`aria-busy`,X(b)),ge.disabled=X(b)||X(O),J(ye,`aria-invalid`,!!X(ae)),J(ye,`aria-describedby`,X(ae)?`discover-concepts-error`:void 0),Fe=tt(Pe,1,`budget-option svelte-xk78rg`,null,Fe,{selected:X(f)===`custom`}),R(Ve,e),R(Ue,`${X(te).length??``} concepts × ${X(ne)??``} examples`),R(Ge,`Each round covers all ${an??``} prompts. More examples can reduce sampling noise, but do not guarantee a better probe. Start with Standard, then inspect the result.`),$e.disabled=X(b)||X(O)},[()=>Number.isSafeInteger(X(P))&&X(P)>0?`${X(P).toLocaleString()} examples total`:`Choose concepts and an example budget`]),at(ye,()=>X(s),e=>U(s,e)),vt(n,[],Ie,()=>X(f),e=>U(f,e)),B(`click`,$e,de),I(e,he),Et()}Ge([`change`,`click`]);var nc=z(`<p class="muted">loading…</p>`),rc=z(`<p class="muted">no templates yet</p>`),ic=z(`<span id="templated-source-error" class="field-error svelte-18kog0j"> </span>`),ac=z(`<p class="dim-note">slot <strong> </strong> · <strong> </strong> values × <strong> </strong> contexts</p>`),oc=z(`<label class="field template-source svelte-18kog0j"><span class="label">source *</span> <!> <!></label> <!>`,1),sc=z(`<span id="templated-max-dim-error" class="field-error svelte-18kog0j"> </span>`),cc=z(`<span class="dim-note">hosted browser limit · <strong> </strong> dimensions</span>`),lc=z(`<label class="field"><span class="label">max dim</span> <!> <!></label> <div class="check-stack"><!></div>`,1),uc=z(`<div class="form-stack" role="form" aria-label="Build manifold from template"><section class="step"><h2 class="step-title">template</h2> <!> <button type="button" class="add-node">author a template…</button></section> <!> <!> <p class="progress form-status svelte-18kog0j" role="status" aria-live="polite" aria-atomic="true"><!></p> <!> <div class="form-actions svelte-18kog0j"><!> <button type="button" class="save-btn svelte-18kog0j"><!></button></div></div>`);function dc(t,r){it(r,!0);let i=Gt(),a=d.mode!==`http`,s=pt(hs(i,a)),c=Y(pt([])),l=Y(!0),u=Y(``),f=Y(null),p=Y(!0),m=Y(!1),h=Y(!1),g=Y(!1),_=Y(``),v=Y(null),b=Y(null),x=Y(null),S=Y(null),C=Y(!1),T=Y(!1),E=qt();ht(async()=>{try{U(c,(await w.list()).templates,!0)}catch(e){N(`couldn't load templates: ${An(e)}`,{kind:`error`})}finally{U(l,!1)}});let D=G(()=>X(c).map(e=>({value:`${e.namespace}/${e.name}`,label:`${e.namespace}/${e.name} · ${e.slot} · ${e.n_values}×${e.n_contexts}`}))),O=G(()=>X(c).find(e=>`${e.namespace}/${e.name}`===X(u))??null),k=G(()=>{let e=[];fs(r.identity.name)||e.push(`name required`),X(O)||e.push(`template required`);let t=_s(X(f),i);return t&&e.push(t),{ok:e.length===0,messages:e}}),A=G(()=>X(g)&&!X(O)?`Choose a template.`:null),j=G(()=>X(g)?_s(X(f),i):null);bt(()=>{let e=X(b)?.querySelector(`button`);e&&(X(A)?(e.setAttribute(`aria-invalid`,`true`),e.setAttribute(`aria-describedby`,`templated-source-error`)):(e.removeAttribute(`aria-invalid`),e.removeAttribute(`aria-describedby`)))}),bt(()=>{let e=X(x)?.querySelector(`input`);e&&(X(j)?(e.setAttribute(`aria-invalid`,`true`),e.setAttribute(`aria-describedby`,`templated-max-dim-error`)):(e.removeAttribute(`aria-invalid`),e.removeAttribute(`aria-describedby`)))});function M(){return(X(v)?.closest(`.mb-form`))?.querySelector(`:scope > .grid2 > .field:nth-child(2) input`)??null}async function ee(){await Ke(),fs(r.identity.name)?X(A)?(X(b)?.querySelector(`button`)??X(S))?.focus():X(j)&&(U(m,!0),await Ke(),X(x)?.querySelector(`input`)?.focus()):M()?.focus()}function te(){ar(),ir(`template_lab`,{tab:`build`})}async function ne(){if(E&&X(C)&&!X(T)){U(T,!0),U(_,`Cancelling fit…`);try{await E.cancelFitting()}catch(e){N(`Couldn't cancel the fit: ${An(e)}`,{kind:`error`,ttlMs:null})}finally{U(T,!1)}}}async function P(){if(X(h))return;if(U(g,!0),!X(k).ok||!X(O)){await ee();return}U(h,!0),U(_,`Starting authoring…`);let{namespace:t,name:i,description:a}=ps(r.identity),c={};X(f)!==null&&X(f)>=1&&(c.max_dim=X(f));let l={namespace:t,name:i,description:a,fit_mode:s.fitMode,template_ref:`${X(O).namespace}/${X(O).name}`,hyperparams:c},u=N(`authoring ${t}/${i}…`,{kind:`info`,ttlMs:null});try{if(await e.createFromTemplate(l),n(u),X(p)){U(_,`Starting fit…`),U(C,!0);try{await o(t,i,{fit_mode:s.fitMode,hyperparams:c},e=>{if(e.event!==`progress`)return;let t=e.data&&typeof e.data==`object`?e.data.message:null;t&&U(_,t,!0)}),N(`fit ${t}/${i} (${s.fitMode})`,{kind:`info`})}catch(e){zn(e)?N(`Fit cancelled. ${t}/${i} was kept and can be fitted later.`,{kind:`info`}):N(`Couldn't fit the manifold: ${An(e)}`,{kind:`error`,ttlMs:null})}finally{U(C,!1),U(T,!1)}}else N(`Created ${t}/${i}. Open Manifolds to fit it.`,{kind:`info`});await y(),r.oncomplete?r.oncomplete():(ar(),ir(`manifolds`))}catch(e){n(u),N(`Couldn't create the manifold: ${An(e)}`,{kind:`error`,ttlMs:null})}finally{U(h,!1),U(_,``)}}ht(()=>Nn(`manifold_templated`,{schema:_r,read:()=>({busy:X(h)||X(C)||X(T),values:{selected_key:X(u),max_dim:X(f),also_fit:X(p),advanced_open:X(m),tuning:s},validation:X(k),available_templates:X(D),loading_templates:X(l)}),update:async e=>{if(X(h)||X(C)||X(T))throw new Ln(`BUSY`,`Wait for this interface operation to finish.`);if(e.selected_key&&!X(D).some(t=>t.value===e.selected_key))throw new Ln(`NOT_FOUND`,`Choose a template from available_templates.`);e.selected_key!==void 0&&U(u,e.selected_key,!0),e.max_dim!==void 0&&U(f,e.max_dim,!0),e.also_fit!==void 0&&U(p,e.also_fit,!0),e.advanced_open!==void 0&&U(m,e.advanced_open,!0),e.tuning&&Object.assign(s,e.tuning)}}));var re=uc(),ie=q(re),ae=V(q(ie),2),oe=e=>{var t=nc();I(e,t)},se=e=>{var t=rc();I(e,t)},ce=e=>{var t=oc(),n=Q(t),r=V(q(n),2);{let e=G(()=>[{value:``,label:`Choose a template`},...X(D)]);Io(r,{get value(){return X(u)},get options(){return X(e)},ariaLabel:`Template`,onchange:e=>{U(u,String(e),!0)}})}var i=V(r,2),a=e=>{var t=ic(),n=q(t,!0);F(t),W(()=>R(n,X(A))),I(e,t)};K(i,e=>{X(A)&&e(a)}),F(n),nt(n,e=>U(b,e),()=>X(b));var o=V(n,2),s=e=>{var t=ac(),n=V(q(t)),r=q(n,!0);F(n);var i=V(n,2),a=q(i,!0);F(i);var o=V(i,2),s=q(o,!0);F(o),Ze(),F(t),W(()=>{R(r,X(O).slot),R(a,X(O).n_values),R(s,X(O).n_contexts)}),I(e,t)};K(o,e=>{X(O)&&e(s)}),I(e,t)};K(ae,e=>{X(l)?e(oe):X(c).length===0?e(se,1):e(ce,-1)});var le=V(ae,2);nt(le,e=>U(S,e),()=>X(S)),F(ie);var ue=V(ie,2);ds(ue,{get tuning(){return s},get linearOnly(){return a},onchange:e=>s.fitMode=e});var de=V(ue,2);Yo(de,{get expanded(){return X(m)},set expanded(e){U(m,e,!0)},children:(e,t)=>{var n=lc(),r=Q(n),a=V(q(r),2);{let e=G(()=>i??void 0),t=G(()=>i===null?`auto`:`auto · max ${i}`);Uo(a,{get value(){return X(f)},min:1,get max(){return X(e)},step:1,allowEmpty:!0,get placeholder(){return X(t)},oninput:e=>{U(f,e,!0)}})}var o=V(a,2),s=e=>{var t=sc(),n=q(t,!0);F(t),W(()=>R(n,X(j))),I(e,t)},c=e=>{var t=cc(),n=V(q(t)),r=q(n,!0);F(n),Ze(),F(t),W(()=>R(r,i)),I(e,t)};K(o,e=>{X(j)?e(s):i!==null&&e(c,1)}),F(r),nt(r,e=>U(x,e),()=>X(x));var l=V(r,2);zo(q(l),{label:`fit now`,get checked(){return X(p)},set checked(e){U(p,e,!0)}}),F(l),I(e,n)},$$slots:{default:!0}});var fe=V(de,2);$(q(fe),{get text(){return X(_)}}),F(fe);var pe=V(fe,2);{let e=G(()=>X(g)?X(k).messages:[]);Qo(pe,{verb:`building`,get messages(){return X(e)}})}var me=V(pe,2),he=q(me),ge=e=>{zs(e,{variant:`ghost`,get disabled(){return X(T)},onclick:ne,children:(e,t)=>{{let t=G(()=>X(T)?`cancelling…`:`cancel`);$(e,{get text(){return X(t)},numbers:!1})}},$$slots:{default:!0}})};K(he,e=>{E&&X(C)&&e(ge)});var _e=V(he,2),ve=q(_e);{let e=G(()=>X(h)?`building…`:X(p)?`build + fit`:`build`);$(ve,{get text(){return X(e)},numbers:!1})}F(_e),F(me),F(re),nt(re,e=>U(v,e),()=>X(v)),W(()=>{J(re,`aria-busy`,X(h)),_e.disabled=X(h)}),B(`click`,le,te),B(`click`,_e,P),I(t,re),Et()}Ge([`click`]);var fc=z(`<div class="authoring-form svelte-7khf1m"><!></div>`),pc=z(`<section class="drawer-shell svelte-7khf1m" aria-label="Build manifold"><header class="header svelte-7khf1m"><h2 class="title svelte-7khf1m">Create a concept or scale</h2> <!></header> <div class="body mb-form svelte-7khf1m"><!> <p class="intro svelte-7khf1m"> </p> <div class="grid2"><label class="field"><span class="label">Folder</span> <input type="text" class="input" placeholder="local" autocomplete="off" spellcheck="false"/></label> <label class="field"><span class="label">Name (required)</span> <input type="text" class="input" required="" placeholder="e.g. pirate" autocomplete="off" spellcheck="false"/></label></div> <label class="field"><span class="label">Description (optional)</span> <input type="text" class="input" placeholder="What should this concept or scale measure?" autocomplete="off"/></label> <!></div></section>`);function mc(e,t){it(t,!0);let n=G(()=>t.params?.returnToToken),r=Y(pt(et(()=>[`authored`,`templated`].includes(t.params?.mode??``)?t.params.mode:`discover`))),i=Y(pt([]));bt(()=>{X(i).includes(X(r))||U(i,[...X(i),X(r)],!0)});let a=G(()=>Rn.current!==null&&[`running`,`waiting`,`cancelling`].includes(Rn.current.status)),o=pt({namespace:`local`,name:``,description:``});function s(){X(n)?ir(`token_drilldown`,X(n)):ar()}function c(e){if(Jn.open!==`manifold_builder`)return;let{namespace:t,name:r}=e??ps(o),i=P.catalog.find(e=>e.namespace===t&&e.name===r),a=i?.resolved_fit_mode??i?.fit_mode;ir(a===`spectral`||a===`authored`?`manifolds`:`subspace`,{returnToToken:X(n)})}ht(()=>Nn(`manifold_builder`,{schema:mr,read:()=>({busy:X(a),values:{mode:X(r),...o}}),update:async e=>{if(X(a))throw new Ln(`BUSY`,`Wait for this interface operation to finish.`);e.mode!==void 0&&U(r,e.mode,!0);for(let t of[`namespace`,`name`,`description`])e[t]!==void 0&&(o[t]=e[t])}}));var l=pc(),u=q(l);Dr(V(q(u),2),{onclick:s}),F(u);var d=V(u,2),f=q(d);Mr(f,{tabs:[{value:`discover`,label:`Generate examples`},{value:`templated`,label:`Use a template`},{value:`authored`,label:`Use your examples`}],ariaLabel:`Authoring mode`,get disabled(){return X(a)},get value(){return X(r)},set value(e){U(r,e,!0)}});var p=V(f,2),m=q(p,!0);F(p);var h=V(p,2),g=q(h),_=V(q(g),2);ot(_),F(g);var v=V(g,2),y=V(q(v),2);ot(y),F(v),F(h);var b=V(h,2),x=V(q(b),2);ot(x),F(b);var S=V(b,2);L(S,16,()=>X(i),e=>e,(e,t)=>{var n=fc(),i=q(n),a=e=>{Ls(e,{get identity(){return o},oncomplete:c})},s=e=>{tc(e,{get identity(){return o},oncomplete:c})},l=e=>{dc(e,{get identity(){return o},oncomplete:c})};K(i,e=>{t===`authored`?e(a):t===`discover`?e(s,1):e(l,-1)}),F(n),W(()=>{J(n,`hidden`,X(r)!==t),n.inert=X(r)!==t}),I(e,n)}),F(d),F(l),W(()=>{R(m,X(r)===`discover`?`Describe at least two contrasting concepts, such as pirate and assistant. Drowse generates examples and learns a direction you can measure or steer.`:X(r)===`templated`?`Use a prompt template for categories such as days, months, or directions. Its possible answers become the examples.`:`Supply your own labeled examples. Choose coordinates for a scale, or let Drowse find the layout.`),_.disabled=X(a),y.disabled=X(a),x.disabled=X(a)}),at(_,()=>o.namespace,e=>o.namespace=e),at(y,()=>o.name,e=>o.name=e),at(x,()=>o.description,e=>o.description=e),I(e,l),Et()}var hc=z(`<span role="presentation"><button type="button" class="info-trigger svelte-46n1f7"><!></button> <span class="info-popover t-dropdown svelte-46n1f7" role="tooltip" popover="manual"> </span></span>`);function gc(e,t){let n=Ve();it(t,!0);let r=Z(t,`label`,3,`About this setting`),i=Z(t,`icon`,3,`help`),a=Y(!1),o,s,c=Y(``),l=!1,u=!1,d=!1,f,p,m=Mo();function h(e){e.pointerType!==`touch`&&(clearTimeout(p),u=!0,clearTimeout(f),f=setTimeout(()=>{U(a,!0)},300))}function g(e){e.pointerType!==`touch`&&(u=!1,clearTimeout(f),clearTimeout(p),p=setTimeout(()=>{document.activeElement===o&&o.matches(`:focus-visible`)||U(a,!1)},150))}function _(){if(!X(a)||!o||!s)return;let e=window.visualViewport,t=e?.offsetLeft??0,n=e?.offsetTop??0,r=e?.width??window.innerWidth,i=e?.height??window.innerHeight;s.style.maxWidth=`min(18rem, ${r-16}px)`,s.style.maxHeight=`${i-16}px`;let l=o.getBoundingClientRect(),u=s.getBoundingClientRect(),d=Math.max(t+8,Math.min(l.left,t+r-u.width-8)),f=l.bottom+6,p=f+u.height<=n+i-8?f:Math.max(n+8,l.top-u.height-6);U(c,`left:${d}px;top:${p}px;max-width:min(18rem, ${r-16}px);max-height:${i-16}px`)}bt(()=>{X(a)?(m.mount(),Ke().then(()=>{X(a)&&!l&&(s.showPopover(),_(),m.show(s))})):s?.matches(`:popover-open`)&&m.close(s)}),bt(()=>{m.mounted||s?.hidePopover()}),ht(()=>{let e=e=>{e.target instanceof Node&&!o.contains(e.target)&&!s.contains(e.target)&&(clearTimeout(f),U(a,!1))};return document.addEventListener(`pointerdown`,e,!0),document.addEventListener(`keydown`,v,!0),window.addEventListener(`resize`,_),window.addEventListener(`scroll`,_,!0),window.visualViewport?.addEventListener(`resize`,_),window.visualViewport?.addEventListener(`scroll`,_),()=>{l=!0,clearTimeout(f),clearTimeout(p),m.destroy(),document.removeEventListener(`pointerdown`,e,!0),document.removeEventListener(`keydown`,v,!0),window.removeEventListener(`resize`,_),window.removeEventListener(`scroll`,_,!0),window.visualViewport?.removeEventListener(`resize`,_),window.visualViewport?.removeEventListener(`scroll`,_)}});function v(e){e.key===`Escape`&&(clearTimeout(f),X(a)&&(U(a,!1),e.preventDefault(),e.stopPropagation()))}var y=hc();let b;var x=q(y);Gn(q(x),{get name(){return i()},size:20}),F(x),nt(x,e=>o=e,()=>o);var S=V(x,2),C=q(S,!0);F(S),nt(S,e=>s=e,()=>s),F(y),W(()=>{b=tt(y,1,`info-tip svelte-46n1f7`,null,b,{open:X(a)}),J(x,`aria-label`,r()),J(x,`aria-describedby`,n),J(x,`aria-expanded`,X(a)),J(S,`id`,n),st(S,X(c)),R(C,t.text)}),$e(`pointerenter`,y,h),$e(`pointerleave`,y,g),B(`focusout`,y,e=>{!u&&!e.currentTarget.contains(e.relatedTarget)&&U(a,!1)}),$e(`focus`,x,()=>{o.matches(`:focus-visible`)&&(clearTimeout(f),U(a,!0))}),B(`pointerdown`,x,e=>{d=e.pointerType===`touch`}),B(`click`,x,e=>{clearTimeout(f),clearTimeout(p),U(a,e.detail>0&&d?!X(a):!0,!0)}),I(e,y),Et()}Ge([`focusout`,`pointerdown`,`click`]);var _c=z(`<button type="button"> </button>`),vc=z(`<div class="technical-stack svelte-s9wnam"><section class="technical-section svelte-s9wnam"><h3 class="svelte-s9wnam">Conversation format</h3> <div class="mode-row svelte-s9wnam" role="group" aria-label="Conversation format"></div> <p class="hint svelte-s9wnam"> </p></section> <label class="technical-section svelte-s9wnam"><span class="setting-label svelte-s9wnam">Stop sequences</span> <textarea rows="4" aria-label="Stop sequences" class="svelte-s9wnam"></textarea></label> <label class="technical-section svelte-s9wnam"><span class="setting-label svelte-s9wnam">Logit bias</span> <textarea rows="5" aria-label="Logit bias" aria-describedby="logit-bias-help"></textarea> <p id="logit-bias-help"> </p></label></div>`),yc=z(`<section class="drawer-shell svelte-s9wnam" aria-label="Sampling settings drawer"><header class="header svelte-s9wnam"><div><h2 class="title svelte-s9wnam">Sampling settings</h2></div> <!></header> <div class="body svelte-s9wnam"><section class="panel svelte-s9wnam"><div class="panel-heading svelte-s9wnam"><div><h3 class="svelte-s9wnam">Sampling filters and penalties</h3></div></div> <div class="setting-grid two svelte-s9wnam"><div class="setting svelte-s9wnam"><span class="setting-label svelte-s9wnam">Temperature <!></span> <!></div> <div class="setting svelte-s9wnam"><span class="setting-label svelte-s9wnam">Top K <!></span> <!></div> <div class="setting svelte-s9wnam"><span class="setting-label svelte-s9wnam">Frequency penalty <!></span> <!></div> <div class="setting svelte-s9wnam"><span class="setting-label svelte-s9wnam">Presence penalty <!></span> <!></div></div></section> <section class="panel svelte-s9wnam"><div class="panel-heading svelte-s9wnam"><div><h3 class="svelte-s9wnam">Captured output and reproducibility</h3></div></div> <div class="setting-grid two svelte-s9wnam"><div class="setting svelte-s9wnam"><span class="setting-label svelte-s9wnam">Return top K <!></span> <!></div> <div class="setting svelte-s9wnam"><span class="setting-label svelte-s9wnam">Seed <!></span> <!></div></div></section> <!></div></section>`);function bc(e,t){it(t,!0),lt(t,[`$$slots`,`$$events`,`$$legacy`]),bt(()=>{t.params});let n=[{value:`chat`,label:`chat`},{value:`raw`,label:`raw`}],r=G(()=>E.info?.is_base_model===!0),i=Kt().mode,a=On(i),o=a>0,s=kn,c=Y(!1),l={...on,temperature:on.advancedTemperature};function d(e){if(e===null){f(`top_k`,null),u({top_k:null});return}let t=Math.max(0,Math.min(s,Math.floor(e)));f(`top_k`,t),u({top_k:t})}function p(e,t){t!==null&&f(e,Math.max(-2,Math.min(2,t)))}function h(e){e!==null&&f(`return_top_k`,wn(e,i))}function g(e){f(`seed`,e===null?null:Math.floor(e))}let _=G(()=>{let e=m.logit_bias_text.trim();if(!e)return!0;try{let t=JSON.parse(e);return t&&typeof t==`object`&&!Array.isArray(t)}catch{return e.split(/\r?\n/).filter(Boolean).every(e=>/^\s*-?\d+\s*[:=,\s]\s*-?\d+(?:\.\d+)?\s*$/.test(e))}});var v=yc(),y=q(v);Dr(V(q(y),2),{get onclick(){return ar}}),F(y);var b=V(y,2),x=q(b),S=V(q(x),2),C=q(S),w=q(C);gc(V(q(w)),{get text(){return l.temperature},label:`About Temperature`}),F(w),Uo(V(w,2),{get value(){return m.temperature},min:0,get max(){return Dn},step:.05,onchange:e=>{e!==null&&(f(`temperature`,e),u({temperature:e}))},ariaLabel:`Temperature value`}),F(C);var T=V(C,2),D=q(T);gc(V(q(D)),{get text(){return l.topK},label:`About Top K`}),F(D),Uo(V(D,2),{get value(){return m.top_k},min:0,get max(){return s},step:1,placeholder:`Default (1024)`,allowEmpty:!0,onchange:d,ariaLabel:`Top K`}),F(T);var O=V(T,2),k=q(O);gc(V(q(k)),{get text(){return l.frequencyPenalty},label:`About Frequency penalty`}),F(k),Uo(V(k,2),{get value(){return m.frequency_penalty},min:-2,max:2,step:.05,onchange:e=>p(`frequency_penalty`,e),ariaLabel:`Frequency penalty`}),F(O);var A=V(O,2),j=q(A);gc(V(q(j)),{get text(){return l.presencePenalty},label:`About Presence penalty`}),F(j),Uo(V(j,2),{get value(){return m.presence_penalty},min:-2,max:2,step:.05,onchange:e=>p(`presence_penalty`,e),ariaLabel:`Presence penalty`}),F(A),F(S),F(x);var M=V(x,2),N=V(q(M),2),ee=q(N),te=q(ee);gc(V(q(te)),{get text(){return l.returnTopK},label:`About Return top K`}),F(te);var ne=V(te,2);{let e=G(()=>!o);Uo(ne,{get value(){return m.return_top_k},min:0,get max(){return a},step:1,get disabled(){return X(e)},onchange:h,ariaLabel:`Return top K`})}F(ee);var P=V(ee,2),re=q(P);gc(V(q(re)),{get text(){return l.seed},label:`About Seed`}),F(re);var ie=V(re,2);{let e=G(()=>Cn(i));Uo(ie,{get value(){return m.seed},get min(){return X(e)},get max(){return Tn},step:1,placeholder:`Not fixed`,allowEmpty:!0,onchange:g,ariaLabel:`Seed`})}F(P),F(N),F(M),Ko(V(M,2),{summary:`Additional parameters`,get expanded(){return X(c)},set expanded(e){U(c,e,!0)},children:(e,t)=>{var i=vc(),a=q(i),o=V(q(a),2);L(o,21,()=>n,e=>e.label,(e,t)=>{var n=_c();let i;var a=q(n,!0);F(n),W(()=>{i=tt(n,1,`mode-opt svelte-s9wnam`,null,i,{active:Te.mode===X(t).value}),J(n,`aria-pressed`,Te.mode===X(t).value),n.disabled=X(r)&&X(t).value===`chat`,R(a,X(t).value===`chat`?`Chat template`:`Raw completion`)}),B(`click`,n,()=>le(X(t).value)),I(e,n)}),F(o),Tt(o,e=>kr?.(e));var s=V(o,2),c=q(s,!0);F(s),F(a);var l=V(a,2),u=V(q(l),2);_t(u),J(u,`placeholder`,`One sequence per line
104
+ ###
105
+ <|eot_id|>`),F(l);var d=V(l,2),p=V(q(d),2);_t(p),J(p,`placeholder`,`{"198": -4, "220": 1.5}`);let h;var g=V(p,2);let v;var y=q(g,!0);F(g),F(d),F(i),W(()=>{R(c,X(r)?`Base models continue the exact text in the buffer, without chat roles or a system prompt.`:`This model normally opens in chat template mode.`),ct(u,m.stop_sequences),ct(p,m.logit_bias_text),J(p,`aria-invalid`,!X(_)),h=tt(p,1,`svelte-s9wnam`,null,h,{invalid:!X(_)}),v=tt(g,1,`hint svelte-s9wnam`,null,v,{error:!X(_)}),R(y,X(_)?`Use a JSON object or one token ID and value per line.`:`Use JSON or write one token ID and value per line.`)}),B(`input`,u,e=>f(`stop_sequences`,e.currentTarget.value)),B(`input`,p,e=>f(`logit_bias_text`,e.currentTarget.value)),I(e,i)},$$slots:{default:!0}}),F(b),F(v),I(e,v),Et()}Ge([`click`,`input`]);function xc(e){return Object.prototype.toString.call(e)===`[object Date]`}function Sc(e,t,n,r){if(typeof n==`number`||xc(n)){let i=r-n,a=(n-t)/(e.dt||1/60),o=(a+(e.opts.stiffness*i-e.opts.damping*a)*e.inv_mass)*e.dt;return Math.abs(o)<e.opts.precision&&Math.abs(i)<e.opts.precision?r:(e.settled=!1,xc(n)?new Date(n.getTime()+o):n+o)}if(Array.isArray(n))return n.map((i,a)=>Sc(e,t[a],n[a],r[a]));if(typeof n==`object`){let i={};for(let a in n)i[a]=Sc(e,t[a],n[a],r[a]);return i}throw Error(`Cannot spring ${typeof n} values`)}var Cc=class e{#e=Y(.15);#t=Y(.8);#n=Y(.01);#r;#i;#a=void 0;#o=0;#s=1;#c=0;#l=null;#u=null;constructor(e,t={}){this.#r=Y(e),this.#i=Y(e),typeof t.stiffness==`number`&&(this.#e.v=wc(t.stiffness,0,1)),typeof t.damping==`number`&&(this.#t.v=wc(t.damping,0,1)),typeof t.precision==`number`&&(this.#n.v=t.precision)}static of(t,n){let r=new e(t(),n);return Re(()=>{r.set(t())}),r}#d(e){if(U(this.#i,e),this.#r.v??=e,this.#a??=this.#r.v,!this.#l){this.#o=Ct.now();var t=1e3/(this.#c*60);this.#l??=He(e=>{this.#s=Math.min(this.#s+t,1);let n=Math.min(e-this.#o,1e3/30),r={inv_mass:this.#s,opts:{stiffness:this.#e.v,damping:this.#t.v,precision:this.#n.v},settled:!0,dt:n*60/1e3};var i=Sc(r,this.#a,this.#r.v,this.#i.v);return this.#a=this.#r.v,this.#o=e,U(this.#r,i),r.settled&&(this.#l=null),!r.settled})}return this.#l.promise}set(e,t){if(this.#u?.reject(Error(`Aborted`)),t?.instant||this.#r.v===void 0)return this.#l?.abort(),this.#l=null,U(this.#r,U(this.#i,e)),this.#a=e,Promise.resolve();t?.preserveMomentum&&(this.#s=0,this.#c=t.preserveMomentum);var n=this.#u=Ye();return n.promise.catch(Be),this.#d(e).then(()=>{n===this.#u&&n.resolve(void 0)}),n.promise}get current(){return X(this.#r)}get damping(){return X(this.#t)}set damping(e){U(this.#t,wc(e,0,1))}get precision(){return X(this.#n)}set precision(e){U(this.#n,e)}get stiffness(){return X(this.#e)}set stiffness(e){U(this.#e,wc(e,0,1))}get target(){return X(this.#i)}set target(e){this.set(e)}};function wc(e,t,n){return Math.max(t,Math.min(n,e))}function Tc(e,t){if(e===t||e!==e)return()=>e;let n=typeof e;if(n!==typeof t||Array.isArray(e)!==Array.isArray(t))throw Error(`Cannot interpolate values of different type`);if(Array.isArray(e)){let n=t.map((t,n)=>Tc(e[n],t));return e=>n.map(t=>t(e))}if(n===`object`){if(!e||!t)throw Error(`Object cannot be null`);if(xc(e)&&xc(t)){let n=e.getTime(),r=t.getTime()-n;return e=>new Date(n+e*r)}let n=Object.keys(t),r={};return n.forEach(n=>{r[n]=Tc(e[n],t[n])}),e=>{let t={};return n.forEach(n=>{t[n]=r[n](e)}),t}}if(n===`number`){let n=t-e;return t=>e+t*n}return()=>t}var Ec=class e{#e;#t;#n;#r=null;constructor(e,t={}){this.#e=Y(e),this.#t=Y(e),this.#n=t}static of(t,n){let r=new e(t(),n);return Re(()=>{r.set(t())}),r}set(e,t){U(this.#t,e);let{delay:n=0,duration:r=400,easing:i=fo,interpolate:a=Tc}={...this.#n,...t};if(r===0)return this.#r?.abort(),U(this.#e,e),Promise.resolve();let o=Ct.now()+n,s,c=!1,l=this.#r;return this.#r=He(t=>{if(t<o)return!0;if(!c){c=!0;let t=this.#e.v;s=a(t,e),typeof r==`function`&&(r=r(t,e)),l?.abort()}let n=t-o;return n>r?(U(this.#e,e),!1):(U(this.#e,s(i(n/r))),!0)}),this.#r.promise}get current(){return X(this.#e)}get target(){return X(this.#t)}set target(e){this.set(e)}},Dc=new h(`(prefers-reduced-motion: reduce)`),Oc=Dt(`<line x1="12" x2="12"></line>`),kc=Dt(`<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><defs><clipPath><circle cx="12" cy="12"></circle></clipPath></defs><path class="disc svelte-6z6lim" fill-rule="evenodd"></path><g class="rays svelte-6z6lim" stroke-linecap="round"></g></svg>`);function Ac(e,t){let n=Ve();it(t,!0);let r=Z(t,`class`,3,``),i=Ec.of(()=>+(t.name===`moon`),{duration:()=>Dc.current?0:320,easing:mo}),a=G(()=>Dc.current?+(t.name===`moon`):i.current),o=G(()=>-6+14*X(a));var s=kc(),c=q(s),l=q(c),u=q(l);F(l),F(c);var d=V(c),f=V(d);L(f,20,()=>[0,45,90,135,180,225,270,315],dt,(e,t)=>{var n=Oc();W(()=>{J(n,`y1`,4+3*X(a)),J(n,`y2`,2+5*X(a)),J(n,`transform`,`rotate(${t} 12 12)`)}),I(e,n)}),F(f),F(s),W(()=>{tt(s,0,St(r()),`svelte-6z6lim`),J(s,`data-theme-icon`,t.name),J(l,`id`,n),J(u,`r`,5+3*X(a)),J(d,`clip-path`,`url(#${n})`),J(d,`d`,`M0 0h24v24H0z M${X(o)-7} ${X(o)}a7 7 0 1 0 14 0a7 7 0 1 0-14 0z`),J(f,`opacity`,1-X(a))}),I(e,s),Et()}var jc=z(`<div class="theme-toggle svelte-1ihlba3" role="group" aria-label="Appearance"><button type="button" data-theme-label-dark="Switch to light theme" data-theme-label-light="Switch to dark theme" class="svelte-1ihlba3"><!></button></div>`);function Mc(e,t){it(t,!0);let n=Y(pt(en()));ht(()=>Xt(e=>{U(n,e,!0)}));var r=jc(),i=q(r),a=q(i);{let e=G(()=>X(n)===`dark`?`sunny`:`moon`);Ac(a,{get name(){return X(e)},class:`theme-icon`})}F(i),F(r),W(()=>J(i,`aria-label`,X(n)===`dark`?`Switch to light theme`:`Switch to dark theme`)),B(`click`,i,()=>Zt(X(n)===`dark`?`light`:`dark`)),I(e,r),Et()}Ge([`click`]);var Nc={effect:`dither`,pixelSize:3,visibility:.1};function Pc(e){return{effect:e.effect===`original`||e.effect===`pixel`?e.effect:`dither`,pixelSize:Number.isFinite(e.pixelSize)?Math.min(12,Math.max(1,Math.round(e.pixelSize))):3,visibility:Number.isFinite(e.visibility)?Math.min(.14,Math.max(.04,e.visibility)):.1}}function Fc(e){if(![`image/jpeg`,`image/png`,`image/webp`].includes(e.type))throw Error(`Choose a PNG, JPEG, or WebP image.`);if(!e.size||e.size>10485760)throw Error(`Choose an image smaller than 10 MB.`)}function Ic(e,t){let n=Math.min(1,2048/Math.max(e,t));return{width:Math.max(1,Math.round(e*n)),height:Math.max(1,Math.round(t*n))}}var Lc=pt({...Nc,url:``,name:``,ready:!1,busy:!1,error:``}),Rc={...Nc,image:null,name:``},zc=null;async function Bc(){return new Promise((e,t)=>{let n=indexedDB.open(`drowse-appearance`,1);n.onupgradeneeded=()=>n.result.createObjectStore(`settings`),n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function Vc(e){Rc.image===e.image&&Lc.url||(Lc.url&&URL.revokeObjectURL(Lc.url),Lc.url=e.image?URL.createObjectURL(e.image):``),Rc=e,Object.assign(Lc,Pc(e),{name:e.name})}function Hc(){return zc??=(async()=>{try{let e=await Bc(),t=await new Promise((t,n)=>{let r=e.transaction(`settings`,`readonly`),i=r.objectStore(`settings`).get(`background`);i.onsuccess=()=>t(i.result),i.onerror=()=>n(i.error),r.oncomplete=()=>e.close(),r.onabort=()=>e.close()});t&&Vc({...Pc(t),image:t.image instanceof Blob?t.image:null,name:typeof t.name==`string`?t.name:``})}catch{Lc.error=`Background storage is unavailable in this browser. Your workspace still works without an image.`}finally{Lc.ready=!0}})()}async function Uc(e){let t=await Bc();await new Promise((n,r)=>{let i=t.transaction(`settings`,`readwrite`);i.objectStore(`settings`).put(e,`background`),i.oncomplete=()=>{t.close(),n()},i.onabort=()=>{t.close(),r(i.error)}}),Vc(e)}async function Wc(e){if(!Lc.busy){Lc.busy=!0,Lc.error=``;try{await Hc(),await Uc({...Rc,...Pc({...Rc,...e})})}catch{Lc.error=`The background setting could not be saved. Try again or free some browser storage.`}finally{Lc.busy=!1}}}async function Gc(e){if(!Lc.busy){Lc.busy=!0,Lc.error=``;try{Fc(e),await Hc();let t=await createImageBitmap(e),n;try{let e=Ic(t.width,t.height),r=document.createElement(`canvas`);r.width=e.width,r.height=e.height;let i=r.getContext(`2d`);if(!i)throw Error(`Image processing is unavailable in this browser.`);i.drawImage(t,0,0,e.width,e.height),n=await new Promise((e,t)=>r.toBlob(n=>n?e(n):t(Error(`This image could not be processed.`)),`image/webp`,.85))}finally{t.close()}await Uc({...Rc,image:n,name:e.name.slice(0,160)})}catch(e){Lc.error=e instanceof Error&&(e.message.startsWith(`Choose `)||e.message.startsWith(`Image processing`)||e.message.startsWith(`This image`))?e.message:`The image could not be saved. Try another image or free some browser storage.`}finally{Lc.busy=!1}}}async function Kc(){if(!Lc.busy){Lc.busy=!0,Lc.error=``;try{await Hc(),await Uc({...Rc,image:null,name:``})}catch{Lc.error=`The background could not be removed. Try again.`}finally{Lc.busy=!1}}}var qc=z(`<div class="setting-row svelte-9is73f"><span>Pixel size</span><!></div>`),Jc=z(`<div class="image-row svelte-9is73f"><span class="image-name svelte-9is73f"> </span><!></div> <div class="setting-row svelte-9is73f"><span>Treatment</span><!></div> <!> <div class="setting-row svelte-9is73f"><span>Visibility</span><!></div> <p class="svelte-9is73f">The image stays dim so text and token colors remain readable. The effect is static and does not animate during generation.</p>`,1),Yc=z(`<p class="error svelte-9is73f" role="alert"> </p>`),Xc=z(`<section class="drawer-shell svelte-9is73f" aria-label="Appearance settings"><header class="header svelte-9is73f"><h2 class="svelte-9is73f">Appearance</h2><!></header> <div class="body svelte-9is73f"><div class="theme-row svelte-9is73f"><div class="svelte-9is73f"><h3 class="svelte-9is73f">Theme</h3><p class="svelte-9is73f">Choose a light or dark workspace.</p></div><!></div> <section class="background-settings svelte-9is73f" aria-labelledby="background-title"><div><h3 id="background-title" class="svelte-9is73f">Workspace background</h3><p class="svelte-9is73f">Optional. Images stay on this device and are never uploaded to a server.</p></div> <div class="upload-field svelte-9is73f"><label for="background-file" class="svelte-9is73f">Background image</label> <input id="background-file" type="file" accept="image/png,image/jpeg,image/webp" aria-describedby="background-file-help" class="svelte-9is73f"/> <p id="background-file-help" class="svelte-9is73f">PNG, JPEG, or WebP. Up to 10 MB; resized to use less memory.</p></div> <!> <!> <p class="save-state svelte-9is73f" role="status"><!></p></section></div></section>`);function Zc(e,t){it(t,!0);let n=[{value:`original`,label:`Original`},{value:`pixel`,label:`Pixels`},{value:`dither`,label:`Dither`}],r=[1,2,3,4,6,8,12].map(e=>({value:String(e),label:`${e} px`})),i=[{value:`0.04`,label:`Subtle`},{value:`0.1`,label:`Balanced`},{value:`0.14`,label:`Visible`}];var a=Xc(),o=q(a);Dr(V(q(o)),{get onclick(){return ar}}),F(o);var s=V(o,2),c=q(s);Mc(V(q(c)),{}),F(c);var l=V(c,2),u=V(q(l),2),d=V(q(u),2);Ze(2),F(u);var f=V(u,2),p=e=>{var t=Jc(),a=Q(t),o=q(a),s=q(o,!0);F(o),zs(V(o),{get disabled(){return Lc.busy},onclick:()=>void Kc(),children:(e,t)=>{Ze();var n=Qe(`Remove image`);I(e,n)},$$slots:{default:!0}}),F(a);var c=V(a,2);Io(V(q(c)),{ariaLabel:`Background treatment`,get value(){return Lc.effect},get options(){return n},get disabled(){return Lc.busy},onchange:e=>void Wc({effect:e})}),F(c);var l=V(c,2),u=e=>{var t=qc(),n=V(q(t));{let e=G(()=>String(Lc.pixelSize));Io(n,{ariaLabel:`Background pixel size`,get value(){return X(e)},get options(){return r},get disabled(){return Lc.busy},onchange:e=>void Wc({pixelSize:Number(e)})})}F(t),I(e,t)};K(l,e=>{Lc.effect!==`original`&&e(u)});var d=V(l,2),f=V(q(d));{let e=G(()=>String(Lc.visibility));Io(f,{ariaLabel:`Background visibility`,get value(){return X(e)},get options(){return i},get disabled(){return Lc.busy},onchange:e=>void Wc({visibility:Number(e)})})}F(d),Ze(2),W(()=>R(s,Lc.name)),I(e,t)};K(f,e=>{Lc.url&&e(p)});var m=V(f,2),h=e=>{var t=Yc(),n=q(t,!0);F(t),W(()=>R(n,Lc.error)),I(e,t)};K(m,e=>{Lc.error&&e(h)});var g=V(m,2),_=q(g);{let e=G(()=>Lc.busy?`Saving on this device…`:Lc.url?`Background saved on this device.`:`Using the plain workspace background.`);$(_,{get text(){return X(e)}})}F(g),F(l),F(s),F(a),W(()=>d.disabled=!Lc.ready||Lc.busy),B(`change`,d,e=>{let t=e.currentTarget.files?.[0];t&&Gc(t),e.currentTarget.value=``}),I(e,a),Et()}Ge([`change`]);var Qc=z(`<span class="member-recipe svelte-2ivmxu">Standing recipe</span>`),$c=z(`<span class="member-notes svelte-2ivmxu">Uses the current reply settings</span>`),el=z(`<span class="member-notes svelte-2ivmxu"> </span>`),tl=z(`<li><button type="button" class="member-main svelte-2ivmxu"><span class="glyph svelte-2ivmxu" aria-hidden="true"> </span> <span class="member-text svelte-2ivmxu"><span class="member-label svelte-2ivmxu"> </span> <!> <!></span></button></li>`),nl=z(`<p class="error svelte-2ivmxu" role="alert"> </p>`),rl=z(`<button type="button" class="btn quiet svelte-2ivmxu">Clear settings</button>`),il=z(`<section class="panel form svelte-2ivmxu" aria-labelledby="selected-role-title"><div class="section-heading svelte-2ivmxu"><div><h3 id="selected-role-title" class="svelte-2ivmxu"> </h3></div></div> <div class="field svelte-2ivmxu"><span class="field-heading svelte-2ivmxu"><span class="label svelte-2ivmxu">Steering expression</span> <!></span> <input class="input mono svelte-2ivmxu" placeholder="Leave blank for normal behavior" spellcheck="false" autocomplete="off"/></div> <div class="field svelte-2ivmxu"><span class="field-heading svelte-2ivmxu"><span class="label svelte-2ivmxu">Thinking default</span><!></span> <!></div> <div class="field svelte-2ivmxu"><span class="field-heading svelte-2ivmxu"><span class="label svelte-2ivmxu">Seed default</span><!></span> <!></div> <label class="field svelte-2ivmxu"><span class="label svelte-2ivmxu">Private note</span> <input class="input svelte-2ivmxu" placeholder="What should you remember about this role?" autocomplete="off"/></label> <!> <div class="form-actions svelte-2ivmxu"><p class="save-status svelte-2ivmxu" role="status" aria-live="polite"> </p> <!></div></section>`),al=z(`<section class="drawer-shell svelte-2ivmxu" aria-label="Role settings drawer"><header class="header svelte-2ivmxu"><div><h2 class="title svelte-2ivmxu">Role settings</h2></div> <!></header> <div class="body svelte-2ivmxu"><section class="panel role-picker svelte-2ivmxu" aria-labelledby="conversation-roles-title"><div class="section-heading svelte-2ivmxu"><div><h3 id="conversation-roles-title" class="svelte-2ivmxu">Conversation roles</h3></div></div> <ul class="roster svelte-2ivmxu" aria-label="Conversation roles"></ul></section> <!></div></section>`);function ol(e,t){it(t,!0),lt(t,[`$$slots`,`$$events`,`$$legacy`]),bt(()=>{t.params});let n=Y(``),r=Y(``),i=Y(`inherit`),a=Y(null),o=Y(null),c=Y(null),u=Y(!1),d=Y(null),f=Y(null),p=null,h=null,g=G(()=>E.info?.default_user_role??`user`),_=G(()=>E.info?.default_assistant_role??`assistant`),v=G(()=>[...new Set([X(g),X(_),m.user_role.trim(),m.assistant_role.trim()].filter(Boolean))]),y=G(()=>{let e=new Map;for(let[t,n]of Object.entries(s.roster)){let r=t===`user`?X(g):t===`assistant`?X(_):t;e.get(r)&&t!==`user`&&t!==`assistant`||e.set(r,{key:t,label:r,member:n})}for(let t of X(v)){if(e.has(t))continue;let n=t===X(g)?`user`:t===X(_)?`assistant`:t;e.set(t,{key:n,label:t,member:s.roster[n]??null})}let t=X(v).map(t=>e.get(t)).filter(e=>e!==void 0),n=[...e.values()].filter(e=>!X(v).includes(e.label)).sort((e,t)=>e.label.localeCompare(t.label));return[...t,...n]}),b=G(()=>X(c)?s.roster[X(c)]??null:null),x=G(()=>X(c)!==null&&(X(n).trim()!==(X(b)?.recipe?.steering??``)||X(r).trim()!==(X(b)?.notes??``)||X(i)!==(typeof X(b)?.recipe?.thinking==`boolean`?String(X(b).recipe.thinking):`inherit`)||X(a)!==(X(b)?.recipe?.seed??null))),S=G(()=>X(u)?`Saving…`:X(x)?`Changes save automatically`:X(f)===X(c)?`Saved`:`Changes save automatically`);function C(e){U(o,e.label,!0),U(c,e.key,!0),U(n,e.member?.recipe?.steering??``,!0),U(r,e.member?.notes??``,!0),U(i,typeof e.member?.recipe?.thinking==`boolean`?String(e.member.recipe.thinking):`inherit`,!0),U(a,e.member?.recipe?.seed??null,!0),U(d,null)}ht(()=>Pn({read:()=>({busy:X(u)||p!==null,dirty:X(x),values:{label:X(c),steering:X(n),thinking:X(i),seed:X(a),notes:X(r)}}),sync:()=>{let e=X(y).find(e=>e.key===X(c));e?C(e):(U(n,``),U(r,``),U(i,`inherit`),U(a,null))}}));function w(){p!==null&&(clearTimeout(p),p=null)}function T(){U(d,null),U(f,null),w(),p=setTimeout(()=>{p=null,D()},450)}bt(()=>{let e=X(y);X(c)!==null&&e.some(e=>e.key===X(c))||e[0]&&C(e[0])});async function D(){if(w(),h&&!await h)return!1;let e=X(c);if(!e||!X(x))return!0;let t=X(o),p=X(n).trim(),m=X(r).trim(),g=X(i)===`inherit`?null:X(i)===`true`,_=X(a);U(u,!0),U(d,null);let v=(async()=>{try{let t=await l.castPut(e,{steering:p===``?null:p,notes:m,thinking:g,seed:_});return s.roster={...s.roster,[e]:t.member},X(c)===e&&U(f,e,!0),!0}catch(e){return U(d,jn(e,`Unable to save ${t??`this role`}. Check the fields and try again.`),!0),!1}finally{U(u,!1)}})();h=v;let y=await v;return h===v&&(h=null),y&&X(c)===e&&X(x)?D():y}async function O(e){e.key!==X(c)&&await D()&&C(e)}async function k(){await D()&&ar()}async function A(e){try{await l.castDelete(e);let t={...s.roster};delete t[e],s.roster=t,X(c)===e&&(U(n,``),U(r,``),U(i,`inherit`),U(a,null),U(f,null))}catch(e){N(jn(e,`Unable to remove this speaker. Try again.`),{kind:`error`})}}async function j(){w(),(!h||await h)&&X(c)&&await A(X(c))}yt(()=>{w(),X(x)&&D()});var M=al(),ee=q(M);Dr(V(q(ee),2),{onclick:()=>void k()}),F(ee);var te=V(ee,2),ne=q(te),P=V(q(ne),2);L(P,21,()=>X(y),e=>e.label,(e,t)=>{var n=tl();let r;var i=q(n),a=q(i),o=q(a,!0);F(a);var s=V(a,2),l=q(s),u=q(l,!0);F(l);var d=V(l,2),f=e=>{var t=Qc();I(e,t)},p=G(()=>X(t).member?.recipe&&Object.keys(X(t).member.recipe).length>0),m=e=>{var t=$c();I(e,t)};K(d,e=>{X(p)?e(f):e(m,-1)});var h=V(d,2),g=e=>{var n=el(),r=q(n,!0);F(n),W(()=>R(r,X(t).member.notes)),I(e,n)};K(h,e=>{X(t).member?.notes&&e(g)}),F(s),F(i),F(n),W(e=>{r=tt(n,1,`member svelte-2ivmxu`,null,r,{editing:X(c)===X(t).key}),J(i,`aria-pressed`,X(c)===X(t).key),R(o,e),R(u,X(t).label)},[()=>X(t).label.slice(0,1).toUpperCase()]),B(`click`,i,()=>void O(X(t))),I(e,n)}),F(P),F(ne);var re=V(ne,2),ie=e=>{var t=il(),s=q(t),c=q(s),l=q(c),f=q(l,!0);F(l),F(c),F(s);var p=V(s,2),m=q(p);gc(V(q(m),2),{label:`About role guidance`,get text(){return yn.cast}}),F(m);var h=V(m,2);ot(h),F(p);var g=V(p,2),_=q(g);gc(V(q(_)),{get text(){return on.thinking},label:`About role thinking`}),F(_);var v=V(_,2);{let e=G(()=>!E.info?.supports_thinking||!E.info?.thinking_is_optional),t=G(()=>`Thinking default for ${X(o)}`);Io(v,{get value(){return X(i)},options:[{value:`inherit`,label:`Use reply setting`},{value:`true`,label:`On`},{value:`false`,label:`Off`}],get disabled(){return X(e)},get ariaLabel(){return X(t)},onchange:e=>{U(i,e,!0),T()}})}F(g);var y=V(g,2),x=q(y);gc(V(q(x)),{get text(){return on.seed},label:`About role seed`}),F(x);var C=V(x,2);{let e=G(()=>Cn(Kt().mode)),t=G(()=>`Seed default for ${X(o)}`);Uo(C,{get value(){return X(a)},get min(){return X(e)},get max(){return Tn},step:1,allowEmpty:!0,placeholder:`Use reply setting`,get ariaLabel(){return X(t)},onchange:e=>{U(a,e===null?null:Math.floor(e),!0),T()}})}F(y);var w=V(y,2),D=V(q(w),2);ot(D),F(w);var O=V(w,2),k=e=>{var t=nl(),n=q(t,!0);F(t),W(()=>R(n,X(d))),I(e,t)};K(O,e=>{X(d)&&e(k)});var A=V(O,2),M=q(A),N=q(M,!0);F(M);var ee=V(M,2),te=e=>{var t=rl();W(()=>t.disabled=X(u)),B(`click`,t,()=>void j()),I(e,t)};K(ee,e=>{X(b)?.origin===`configured`&&e(te)}),F(A),F(t),W(()=>{R(f,X(o)),J(h,`aria-label`,`Steering expression for ${X(o)}`),R(N,X(S))}),B(`input`,h,T),at(h,()=>X(n),e=>U(n,e)),B(`input`,D,T),at(D,()=>X(r),e=>U(r,e)),I(e,t)};K(re,e=>{X(c)&&X(o)&&e(ie)}),F(te),F(M),I(e,M),Et()}Ge([`click`,`input`]);function sl(e){return e.family===`geometry`&&e.is_affine&&e.intrinsic_dim===1}function cl(e,t,n,r){let i=new Set(e);if(r)for(let e of t){let t=n.get(e)?.info;t&&sl(t)&&i.add(e)}return[...i].sort((e,t)=>e.localeCompare(t,void 0,{sensitivity:`base`}))}function ll(e,t,n){let r=new Set(n);return e.filter(e=>{let n=t.get(e)?.info;return!n||!sl(n)||!r.has(e)}).map(e=>({name:e,reason:ul(t.get(e)?.info)})).sort((e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:`base`}))}function ul(e){return e?e.family===`lens`?`J-lens readout, not a residual direction`:e.family===`sae`?`SAE readout, not a residual direction`:e.is_affine?e.intrinsic_dim===1?`not exposed as a direction by this runtime`:`multidimensional subspace, not one direction`:`curved manifold, not one direction`:`not exposed as a direction by this runtime`}var dl=z(`<span class="t svelte-w2uko1"> </span>`),fl=z(`<div role="img"><!></div>`);function pl(e,t){it(t,!0);let n=Z(t,`scale`,3,fe),r=Z(t,`size`,3,14),i=Z(t,`positiveColor`,3,`var(--layer-cell-positive)`),a=Z(t,`negativeColor`,3,`var(--layer-cell-negative)`),o=Z(t,`active`,3,!1),s=Z(t,`showValue`,3,!1),c=G(()=>t.value===null||t.value===void 0||!Number.isFinite(t.value)),l=G(()=>{if(X(c))return 0;let e=Number.isFinite(n())&&n()>1e-6?n():fe;return Math.max(-1,Math.min(1,t.value/e))}),u=G(()=>{if(X(c))return`var(--layer-cell-empty)`;let e=X(l);if(Math.abs(e)<1e-9)return`var(--layer-cell-neutral)`;let t=e>0?i():a(),n=15+Math.abs(e)*85;return`color-mix(in srgb, var(--layer-cell-neutral) ${100-n}%, ${t} ${n}%)`}),d=G(()=>!X(c)&&Math.abs(X(l))>=.55?`var(--text-on-accent)`:`var(--fg)`),f=G(()=>t.title??(X(c)?`-`:t.value.toFixed(3))),p=G(()=>s()&&!X(c)?t.value.toFixed(2):``);var m=fl();let h;var g=q(m),_=e=>{var t=dl(),n=q(t,!0);F(t),W(()=>R(n,X(p))),I(e,t)};K(g,e=>{X(p)&&e(_)}),F(m),W(()=>{h=tt(m,1,`cell svelte-w2uko1`,null,h,{active:o()}),st(m,`width: ${r()??``}px; height: ${r()??``}px; background: ${X(u)??``}; color: ${X(d)??``};`),J(m,`aria-label`,X(f))}),I(e,m),Et()}var ml=z(`<code class="name svelte-ox6jpy"> </code> <span class="meta svelte-ox6jpy"> </span>`,1),hl=z(`<span class="meta svelte-ox6jpy">Choose at least two controls</span>`),gl=z(`<span class="meta svelte-ox6jpy">Choose two controls</span>`),_l=z(`<div class="empty err svelte-ox6jpy" role="alert"> </div>`),vl=z(`<div class="empty loading-pulse loading-placeholder svelte-ox6jpy" role="status">Loading layer comparison…</div>`),yl=z(`<div class="empty svelte-ox6jpy">Choose two available profiles or probes to compare their layers.</div>`),bl=z(`<th><span class="svelte-ox6jpy"> </span></th>`),xl=z(`<td class="cell-td svelte-ox6jpy"><button class="matrix-pick svelte-ox6jpy" type="button"><!></button></td>`),Sl=z(`<tr><th> </th><!></tr>`),Cl=z(`<p class="focused-cell svelte-ox6jpy" role="status"><!></p> <div class="grid-scroll svelte-ox6jpy"><table class="grid svelte-ox6jpy"><thead class="svelte-ox6jpy"><tr><th class="corner svelte-ox6jpy" scope="col"><span class="axis-a svelte-ox6jpy"> </span> <span class="axis-sep svelte-ox6jpy">/</span> <span class="axis-b svelte-ox6jpy"> </span></th><!></tr></thead><tbody></tbody></table></div>`,1),wl=z(`<aside class="drawer svelte-ox6jpy" aria-label="Pairwise compare"><header class="drawer-header svelte-ox6jpy"><div class="title svelte-ox6jpy"><h2 class="eyebrow svelte-ox6jpy">Compare controls by layer</h2> <div class="name-row svelte-ox6jpy"><!></div></div> <!></header> <div class="picker-row svelte-ox6jpy"><label class="picker svelte-ox6jpy"><span class="picker-label svelte-ox6jpy">a</span> <!></label> <label class="picker svelte-ox6jpy"><span class="picker-label svelte-ox6jpy">b</span> <!></label></div> <div class="body svelte-ox6jpy"><!></div></aside>`);function Tl(e,t){it(t,!0),lt(t,[`$$slots`,`$$events`,`$$legacy`]),bt(()=>{t.params});let n=Kt().mode===`http`,r=G(()=>cl(ae.names,ke.active,ke.entries,n)),i=Y(``),a=Y(``),o=G(()=>X(r).length===0?[{value:``,label:`(empty)`}]:X(r).map(e=>({value:e,label:e}))),s=Y(null),c=Y(!1),l=Y(null);bt(()=>{C().catch(()=>{})}),bt(()=>{X(r).length===0?(U(i,``),U(a,``)):(X(i)&&X(r).includes(X(i))||U(i,X(r)[0],!0),X(a)&&X(r).includes(X(a))||U(a,X(r).find(e=>e!==X(i))??X(i),!0))});async function u(e,t){if(!e||!t)U(s,null);else{U(c,!0),U(l,null);try{U(s,await _.pairwise(e,t),!0)}catch(e){if(e instanceof Mn){let t=e.body&&typeof e.body==`object`&&`detail`in e.body?String(e.body.detail):e.message;U(l,jn(e,`Unable to compare these directions. ${t}`),!0)}else U(l,jn(e,`Unable to compare these directions. Try again.`),!0);U(s,null)}finally{U(c,!1)}}}bt(()=>{u(X(i),X(a))});function d(e,t,n){return`${X(i)} L${e} × ${X(a)} L${t}: ${n==null?`-`:n.toFixed(3)}`}function f(){ar()}function p(e){e.key===`Escape`&&(e.preventDefault(),f())}let m=Y(`Select a cell to inspect its value`),h=G(()=>X(s)?.matrix??null),g=G(()=>X(s)?.layers_a??[]),v=G(()=>X(s)?.layers_b??[]);ht(()=>Nn(`profile_compare`,{schema:xr,read:()=>({busy:!1,values:{profile_a:X(i),profile_b:X(a)},available_profiles:X(r),loading:X(c),error:X(l)}),update:async e=>{for(let t of[`profile_a`,`profile_b`])if(e[t]!==void 0&&!X(r).includes(e[t]))throw new Ln(`NOT_FOUND`,`Choose a profile from available_profiles.`);e.profile_a!==void 0&&U(i,e.profile_a,!0),e.profile_b!==void 0&&U(a,e.profile_b,!0)}}));var y=wl();$e(`keydown`,rt,p);var b=q(y),x=q(b),S=V(q(x),2),w=q(S),T=e=>{var t=ml(),n=Q(t),r=q(n);F(n);var o=V(n,2),c=q(o);F(o),W(()=>{R(r,`${X(i)??``} × ${X(a)??``}`),R(c,`${X(g).length??``} × ${X(v).length??``} layers · model ${X(s).model??`-`??``}`)}),I(e,t)},E=e=>{var t=hl();I(e,t)},D=e=>{var t=gl();I(e,t)};K(w,e=>{X(s)?e(T):X(r).length<2?e(E,1):e(D,-1)}),F(S),F(x),Dr(V(x,2),{onclick:f}),F(b);var O=V(b,2),k=q(O),A=V(q(k),2);{let e=G(()=>X(r).length===0);Io(A,{get options(){return X(o)},get disabled(){return X(e)},ariaLabel:`Concept A`,get value(){return X(i)},set value(e){U(i,e,!0)}})}F(k);var j=V(k,2),M=V(q(j),2);{let e=G(()=>X(r).length===0);Io(M,{get options(){return X(o)},get disabled(){return X(e)},ariaLabel:`Concept B`,get value(){return X(a)},set value(e){U(a,e,!0)}})}F(j),F(O);var N=V(O,2),ee=q(N),te=e=>{var t=_l(),n=q(t);F(t),W(()=>R(n,`Comparison failed: ${X(l)??``}`)),I(e,t)},ne=e=>{var t=vl();I(e,t)},P=e=>{var t=yl();I(e,t)},re=e=>{var t=Cl(),n=Q(t);$(q(n),{get text(){return X(m)},numbers:!1}),F(n);var r=V(n,2),o=q(r);st(o,`--cell: 26px;`);var s=q(o),c=q(s),l=q(c),u=q(l),f=q(u,!0);F(u);var p=V(u,4),_=q(p,!0);F(p),F(l);var y=V(l);L(y,16,()=>X(v),e=>e,(e,t)=>{var n=bl();H(n,()=>({class:`col-label`,scope:`col`,"aria-description":X(a)+` L`+t}),void 0,void 0,void 0,`svelte-ox6jpy`);var r=q(n),i=q(r);F(r),F(n),W(()=>R(i,`L${t??``}`)),I(e,n)}),F(c),F(s);var b=V(s);L(b,22,()=>X(g),e=>e,(e,t,n)=>{var r=Sl(),a=q(r);H(a,()=>({class:`row-label`,scope:`row`,"aria-description":X(i)+` L`+t}),void 0,void 0,void 0,`svelte-ox6jpy`);var o=q(a);F(a);var s=V(a);L(s,18,()=>X(v),e=>e,(e,r,i)=>{let a=G(()=>X(h)[X(n)]?.[X(i)]??null);var o=xl(),s=q(o),c=q(s);{let e=G(()=>d(t,r,X(a)));pl(c,{get value(){return X(a)},size:26,get title(){return X(e)}})}F(s),F(o),W(e=>J(s,`aria-label`,e),[()=>d(t,r,X(a))]),$e(`pointerenter`,s,()=>U(m,d(t,r,X(a)),!0)),$e(`focus`,s,()=>U(m,d(t,r,X(a)),!0)),B(`click`,s,()=>U(m,d(t,r,X(a)),!0)),I(e,o)}),F(r),W(()=>R(o,`L${t??``}`)),I(e,r)}),F(b),F(o),F(r),W(()=>{R(f,X(i)),R(_,X(a))}),I(e,t)};K(ee,e=>{X(l)?e(te):X(c)&&!X(h)?e(ne,1):!X(h)||X(g).length===0||X(v).length===0?e(P,2):e(re,-1)}),F(N),F(y),W(()=>J(N,`aria-busy`,X(c))),I(e,y),Et()}Ge([`click`]);var El=z(`<span aria-hidden="true">,</span>`),Dl=z(`<!> <code> </code> <span class="omission-reason svelte-1iwlzgv"> </span>`,1),Ol=z(`<div class="omissions svelte-1iwlzgv" role="note"><span>Omitted unsupported probes:</span> <!></div>`),kl=z(`<div class="empty err svelte-1iwlzgv" role="alert"> </div>`),Al=z(`<div class="empty loading-pulse loading-placeholder svelte-1iwlzgv" role="status">Loading correlations…</div>`),jl=z(`<div class="empty svelte-1iwlzgv">No single-direction profiles are available for correlation.</div>`),Ml=z(`<th><span class="svelte-1iwlzgv"> </span></th>`),Nl=z(`<td class="cell-td svelte-1iwlzgv"><button class="matrix-pick svelte-1iwlzgv" type="button"><!></button></td>`),Pl=z(`<tr><th> </th><!></tr>`),Fl=z(`<p class="focused-cell svelte-1iwlzgv" role="status"><!></p> <div class="grid-scroll svelte-1iwlzgv"><table class="grid svelte-1iwlzgv"><thead class="svelte-1iwlzgv"><tr><th class="corner svelte-1iwlzgv" scope="col">name</th><!></tr></thead><tbody></tbody></table></div>`,1),Il=z(`<aside class="drawer svelte-1iwlzgv" aria-label="Correlation matrix"><header class="drawer-header svelte-1iwlzgv"><div class="title svelte-1iwlzgv"><h2 class="eyebrow svelte-1iwlzgv">Direction correlations</h2> <div class="name-row svelte-1iwlzgv"><span class="meta svelte-1iwlzgv"> <!></span></div></div> <div class="actions svelte-1iwlzgv"><!> <!></div></header> <!> <div class="body svelte-1iwlzgv"><!></div></aside>`);function Ll(e,t){it(t,!0),lt(t,[`$$slots`,`$$events`,`$$legacy`]),bt(()=>{t.params});let n=Y(!1),r=Y(null);async function i(){U(n,!0),U(r,null);try{await g(null)}catch(e){U(r,jn(e,`Unable to compare the active directions. Try again.`),!0)}finally{U(n,!1)}}bt(()=>{P.correlation||i()});let a=G(()=>P.correlation),o=G(()=>X(a)?.names??[]),s=G(()=>X(a)?ll(ke.active,ke.entries,X(a).names):[]);function c(e,t,n){return`${e} vs ${t}: ${n==null?`-`:n.toFixed(3)}`}function l(){ar()}function u(e){e.key===`Escape`&&(e.preventDefault(),l())}let d=Y(`Select a cell to inspect its value`);var f=Il();$e(`keydown`,rt,u);var p=q(f),m=q(p),h=V(q(m),2),_=q(h),v=q(_),y=V(v),b=e=>{var t=Qe();W(()=>R(t,`· ${X(s).length??``} unsupported ${X(s).length===1?`probe`:`probes`} omitted`)),I(e,t)};K(y,e=>{X(s).length>0&&e(b)}),F(_),F(h),F(m);var x=V(m,2),S=q(x);zs(S,{size:`sm`,onclick:()=>void i(),get disabled(){return X(n)},title:`refresh`,children:(e,t)=>{Ze();var r=Qe();W(()=>R(r,X(n)?`…`:`refresh`)),I(e,r)},$$slots:{default:!0}}),Dr(V(S,2),{onclick:l}),F(x),F(p);var C=V(p,2),w=e=>{var t=Ol(),n=V(q(t),2);L(n,19,()=>X(s),e=>e.name,(e,t,n)=>{var r=Dl(),i=Q(r),a=e=>{var t=El();I(e,t)};K(i,e=>{X(n)>0&&e(a)});var o=V(i,2);H(o,()=>({"aria-description":X(t).reason}),void 0,void 0,void 0,`svelte-1iwlzgv`);var s=q(o,!0);F(o);var c=V(o,2),l=q(c);F(c),W(()=>{R(s,X(t).name),R(l,`(${X(t).reason??``})`)}),I(e,r)}),F(t),I(e,t)};K(C,e=>{X(a)&&X(s).length>0&&e(w)});var T=V(C,2),E=q(T),D=e=>{var t=kl(),n=q(t);F(t),W(()=>R(n,`Correlation failed: ${X(r)??``}`)),I(e,t)},O=e=>{var t=Al();I(e,t)},k=e=>{var t=jl();I(e,t)},A=e=>{var t=Fl(),n=Q(t);$(q(n),{get text(){return X(d)},numbers:!1}),F(n);var r=V(n,2),i=q(r);st(i,`--cell: 26px;`);var s=q(i),l=q(s),u=V(q(l));L(u,16,()=>X(o),e=>e,(e,t)=>{var n=Ml();H(n,()=>({class:`col-label`,scope:`col`,"aria-description":t}),void 0,void 0,void 0,`svelte-1iwlzgv`);var r=q(n),i=q(r,!0);F(r),F(n),W(()=>R(i,t)),I(e,n)}),F(l),F(s);var f=V(s);L(f,20,()=>X(o),e=>e,(e,t)=>{var n=Pl(),r=q(n);H(r,()=>({class:`row-label`,scope:`row`,"aria-description":t}),void 0,void 0,void 0,`svelte-1iwlzgv`);var i=q(r,!0);F(r);var s=V(r);L(s,16,()=>X(o),e=>e,(e,n)=>{let r=G(()=>X(a).matrix[t]?.[n]??null);var i=Nl(),o=q(i),s=q(o);{let e=G(()=>c(t,n,X(r)));pl(s,{get value(){return X(r)},size:26,get title(){return X(e)}})}F(o),F(i),W(e=>J(o,`aria-label`,e),[()=>c(t,n,X(r))]),$e(`pointerenter`,o,()=>U(d,c(t,n,X(r)),!0)),$e(`focus`,o,()=>U(d,c(t,n,X(r)),!0)),B(`click`,o,()=>U(d,c(t,n,X(r)),!0)),I(e,i)}),F(n),W(()=>R(i,t)),I(e,n)}),F(f),F(i),F(r),I(e,t)};K(E,e=>{X(r)?e(D):X(n)&&!X(a)?e(O,1):!X(a)||X(o).length===0?e(k,2):e(A,-1)}),F(T),F(f),W(()=>{R(v,`${X(o).length??``} comparable ${X(o).length===1?`direction`:`directions`} `),J(T,`aria-busy`,X(n))}),I(e,f),Et()}Ge([`click`]);var Rl=pt({busy:!1});async function zl(e=!1){let t=te.info;if(!(Rl.busy||me.active)){if(!t||t.model_id!==E.info?.model_id)throw Error(`Open a model before resetting its settings.`);Rl.busy=!0;try{let n=t.config;if(await u({temperature:n.temperature??1,top_p:n.top_p??1,top_k:n.top_k,max_tokens:n.max_tokens??1024,system_prompt:n.system_prompt??``,...t.thinking_is_optional?{thinking:n.thinking??!1}:{}}),Object.assign(m,{seed:null,stop_sequences:``,logit_bias_text:``,presence_penalty:0,frequency_penalty:0,return_top_k:wn(8,Kt().mode)}),!e)return;P.entries.clear(),P.customExpression=t.default_steering,P.subspaceAlong=.5,m.user_role=t.default_user_role??`user`,m.assistant_role=t.default_assistant_role??`assistant`,Object.assign(Ce,{enabled:!1,mode:`unsteered`,custom:``}),le(t.is_base_model?`raw`:`chat`);for(let e of[...ke.active])await Ae(e);for(let e of t.instruments){if(e.family!==`geometry`&&e.family!==`lens`&&e.family!==`sae`)continue;let t=E.info?.instruments.find(t=>t.family===e.family);t&&(e.source&&e.source!==t.source&&e.family!==`geometry`&&(e.family===`lens`&&t.capabilities.source_switch?await c.setLensSource(e.source):Kt().mode===`browser`&&await c.activateInstalledPack(e.family,{source:e.source,...`layer`in e.live?{layer:e.live.layer}:{}})),JSON.stringify(t.live)!==JSON.stringify(e.live)&&await c.setLive(e.family,{enabled:e.live.enabled,...`layers`in e.live?{layers:e.live.layers}:{}}))}if(await re(),E.error)throw Error(E.error)}finally{Rl.busy=!1}}}var Bl=z(`<h3 class="svelte-1s953nc">Reset settings</h3> <p class="svelte-1s953nc">Restore generation settings, system prompt, roles, steering, and readings. Chats and downloaded files stay saved.</p>`,1),Vl=z(`<p class="svelte-1s953nc">Reset the current model’s settings to their starting values?</p> <div class="actions svelte-1s953nc"><!> <!></div>`,1),Hl=z(`<p class="svelte-1s953nc">Available when the current reply finishes.</p>`),Ul=z(`<p role="alert" class="svelte-1s953nc"> </p>`),Wl=z(`<div class="reset-settings svelte-1s953nc"><!> <!> <!> <!></div>`);function Gl(e,t){it(t,!0);let n=Z(t,`full`,3,!1),r=Y(!1),i=Y(!1);bt(()=>{if(!X(i))return;let e=setTimeout(()=>U(i,!1),1800);return()=>clearTimeout(e)});let a=Y(null);async function o(){U(a,null);try{await zl(n()),U(r,!1),U(i,!0),N(n()?`Model settings reset.`:`Generation settings reset.`,{kind:`info`})}catch(e){U(a,jn(e,`Settings could not be fully reset. Try again.`),!0)}}var s=Wl(),c=q(s),l=e=>{var t=Bl();Ze(2),I(e,t)};K(c,e=>{n()&&e(l)});var u=V(c,2),d=e=>{var t=Vl(),n=V(Q(t),2),i=q(n);zs(i,{get disabled(){return Rl.busy},onclick:()=>U(r,!1),children:(e,t)=>{Ze();var n=Qe(`Cancel`);I(e,n)},$$slots:{default:!0}});var a=V(i,2);{let e=G(()=>Rl.busy||me.active);zs(a,{variant:`solid`,get disabled(){return X(e)},onclick:()=>void o(),children:(e,t)=>{Ze();var n=Qe(`Reset Settings`);I(e,n)},$$slots:{default:!0}})}F(n),I(e,t)},f=e=>{{let t=G(()=>!te.info||Rl.busy||me.active);zs(e,{get disabled(){return X(t)},onclick:()=>n()?U(r,!0):void o(),children:(e,t)=>{{let t=G(()=>Rl.busy?`Resetting…`:X(i)?`Settings reset`:n()?`Reset Settings`:`Reset to original`);$(e,{get text(){return X(t)},numbers:!1})}},$$slots:{default:!0}})}};K(u,e=>{X(r)?e(d):e(f,-1)});var p=V(u,2),m=e=>{var t=Hl();I(e,t)};K(p,e=>{me.active&&e(m)});var h=V(p,2),g=e=>{var t=Ul(),n=q(t,!0);F(t),W(()=>R(n,X(a))),I(e,t)};K(h,e=>{X(a)&&e(g)}),F(s),I(e,s),Et()}var Kl=pt({busy:!1,lastAudit:null,error:null});function ql(){let e=[];return E.info||e.push(`session info is not loaded`),E.error&&e.push(E.error),Ie.error&&e.push(`loom API error: ${Ie.error}`),P.error&&e.push(P.error),ke.error&&e.push(ke.error),P.catalog.length===0&&e.push(`no manifold artifacts are available`),ke.active.length===0&&e.push(`no active probes; internal-state views will be sparse`),e}function Jl(){let e=E.info,t=[Kl.error,E.error,Ie.error,P.error,ke.error].filter(e=>!!e);return{status:e?t.length?`degraded`:`ready`:`unavailable`,model_id:e?.model_id??null,device:e?.device??null,dtype:e?.dtype??null,refreshing:Kl.busy,refreshed_at:Kl.lastAudit,generation:{active:me.active,finish_reason:me.finishReason,tokens:me.tokensSoFar,max_tokens:me.maxTokens,tokens_per_second:me.tokPerSec,perplexity:xe(me),measured_steps:me.ppl.count},tree:{loaded:Ie.loaded,nodes:Ie.nodes.size,revision:Ie.rev,depth:Ie.activePath.length},artifacts:{available:P.catalog.length,racked:P.entries.size,resident:ae.names.length},probes:{active:ke.active.length,rows:ke.entries.size,correlation_available:P.correlation!==null},errors:t,warnings:ql()}}async function Yl(){if(Kl.busy)throw Error(`Diagnostics are already refreshing.`);Kl.busy=!0,Kl.error=null;try{let e=(await Promise.allSettled([re(),C(),be(),M(!0),y(),g(void 0,!0)])).find(e=>e.status===`rejected`);e?.status===`rejected`&&(Kl.error=jn(e.reason,`Unable to refresh every diagnostic. Reopen the model and try again.`)),Kl.lastAudit=new Date().toISOString()}finally{Kl.busy=!1}return Jl()}var Xl=z(`<header class="drawer-header svelte-1p8xu43"><div class="title svelte-1p8xu43"><h2 class="eyebrow svelte-1p8xu43">Model health</h2></div> <!></header>`),Zl=z(`<div class="error svelte-1p8xu43" role="alert"> </div>`),Ql=z(`<p class="good svelte-1p8xu43">clear</p>`),$l=z(`<li class="svelte-1p8xu43"> </li>`),eu=z(`<ul class="svelte-1p8xu43"></ul>`),tu=z(`<p class="dim svelte-1p8xu43"> </p>`),nu=z(`<section><!> <div class="body svelte-1p8xu43"><section class="hero svelte-1p8xu43"><div class="svelte-1p8xu43"><h2 class="svelte-1p8xu43"> </h2> <p class="svelte-1p8xu43"> </p></div> <!></section> <!> <section class="panel svelte-1p8xu43"><!></section> <section class="grid svelte-1p8xu43"><div class="tile svelte-1p8xu43"><span class="svelte-1p8xu43">generation</span> <strong class="svelte-1p8xu43"> </strong> <p class="svelte-1p8xu43"><!> · <!> tok/s</p></div> <div class="tile svelte-1p8xu43"><span class="svelte-1p8xu43">Perplexity</span> <strong class="svelte-1p8xu43"><!></strong> <p class="svelte-1p8xu43"> </p></div> <div class="tile svelte-1p8xu43"><span class="svelte-1p8xu43">loom tree</span> <strong class="svelte-1p8xu43"> </strong> <p class="svelte-1p8xu43"> </p></div> <div class="tile svelte-1p8xu43"><span class="svelte-1p8xu43">artifacts</span> <strong class="svelte-1p8xu43"><!></strong> <p class="svelte-1p8xu43"> </p></div> <div class="tile svelte-1p8xu43"><span class="svelte-1p8xu43">probes</span> <strong class="svelte-1p8xu43"><!></strong> <p class="svelte-1p8xu43"> </p></div></section> <section class="panel svelte-1p8xu43"><h3 class="svelte-1p8xu43">checks</h3> <div class="checks svelte-1p8xu43"><div> </div> <div> </div> <div> </div> <div> </div> <div> </div></div></section> <section class="panel svelte-1p8xu43"><h3 class="svelte-1p8xu43">warnings · <!></h3> <!> <!></section></div></section>`);function ru(e,t){it(t,!0);let n=Z(t,`params`,3,null),r=G(()=>n()?.embedded===!0),i=G(()=>Kl.busy),a=G(()=>Kl.lastAudit?new Date(Kl.lastAudit).toLocaleTimeString():null),o=G(()=>Kl.error),s=G(()=>xe(me)),c=G(ql);async function l(){Kl.busy||await Yl()}var u=nu();let d;var f=q(u),p=e=>{var t=Xl();Dr(V(q(t),2),{get onclick(){return ar}}),F(t),I(e,t)};K(f,e=>{X(r)||e(p)});var m=V(f,2),h=q(m),g=q(h),_=q(g),v=q(_,!0);F(_);var y=V(_,2),b=q(y,!0);F(y),F(g),zs(V(g,2),{variant:`solid`,get busy(){return X(i)},get disabled(){return X(i)},onclick:l,children:(e,t)=>{{let t=G(()=>X(i)?`checking…`:`refresh`);$(e,{get text(){return X(t)}})}},$$slots:{default:!0}}),F(h);var x=V(h,2),S=e=>{var t=Zl(),n=q(t);F(t),W(()=>R(n,`Health check failed: ${X(o)??``}`)),I(e,t)};K(x,e=>{X(o)&&e(S)});var C=V(x,2);Gl(q(C),{full:!0}),F(C);var w=V(C,2),T=q(w),D=V(q(T),2),O=q(D,!0);F(D);var k=V(D,2),A=q(k);{let e=G(()=>`${me.tokensSoFar}/${me.maxTokens||`-`} tokens`);$(A,{get text(){return X(e)}})}var j=V(A,2);{let e=G(()=>me.tokPerSec.toFixed(1));$(j,{get text(){return X(e)}})}Ze(),F(k),F(T);var M=V(T,2),N=V(q(M),2),ee=q(N);{let e=G(()=>X(s)===null?`-`:X(s).toFixed(2));$(ee,{get text(){return X(e)}})}F(N);var te=V(N,2),ne=q(te);F(te),F(M);var re=V(M,2),ie=V(q(re),2),oe=q(ie,!0);F(ie);var se=V(ie,2),ce=q(se);F(se),F(re);var le=V(re,2),ue=V(q(le),2);$(q(ue),{get text(){return P.catalog.length}}),F(ue);var de=V(ue,2),fe=q(de);F(de),F(le);var pe=V(le,2),he=V(q(pe),2);$(q(he),{get text(){return ke.active.length}}),F(he);var ge=V(he,2),_e=q(ge);F(ge),F(pe),F(w);var ve=V(w,2),ye=V(q(ve),2),be=q(ye);let Se;var Ce=q(be);F(be);var we=V(be,2);let Te;var Ee=q(we);F(we);var De=V(we,2);let Oe;var Ae=q(De);F(De);var je=V(De,2);let Me;var Ne=q(je);F(je);var Pe=V(je,2);let Fe;var Le=q(Pe);F(Pe),F(ye),F(ve);var Re=V(ve,2),ze=q(Re);$(V(q(ze)),{get text(){return X(c).length}}),F(ze);var Be=V(ze,2),Ve=e=>{var t=Ql();I(e,t)},He=e=>{var t=eu();L(t,20,()=>X(c),e=>e,(e,t)=>{var n=$l(),r=q(n,!0);F(n),W(()=>R(r,t)),I(e,n)}),F(t),I(e,t)};K(Be,e=>{X(c).length===0?e(Ve):e(He,-1)});var Ue=V(Be,2),We=e=>{var t=tu(),n=q(t);F(t),W(()=>R(n,`updated ${X(a)??``}`)),I(e,t)};K(Ue,e=>{X(a)&&e(We)}),F(Re),F(m),F(u),W(()=>{d=tt(u,1,`drawer-shell svelte-1p8xu43`,null,d,{embedded:X(r)}),J(u,`role`,X(r)?`region`:void 0),J(u,`aria-label`,X(r)?`Model controls`:`Health drawer`),J(m,`aria-busy`,X(i)),R(v,E.info?.model_id??`no model`),R(b,E.info?`${E.info.device}/${E.info.dtype}`:`session offline`),R(O,me.active?`active`:me.finishReason??`idle`),R(ne,`${me.ppl.count??``} steps`),R(oe,Ie.nodes.size||`-`),R(ce,`rev ${(Ie.loaded?Ie.rev:`-`)??``} · depth ${(Ie.activePath.length||`-`)??``}`),R(fe,`${P.entries.size??``} racked · ${ae.names.length??``} resident`),R(_e,`${ke.entries.size??``} rows · ${P.correlation?`matrix cached`:`no matrix`}`),Se=tt(be,1,`svelte-1p8xu43`,null,Se,{ok:!!E.info}),R(Ce,`Session details: ${E.info?`loaded`:`unavailable`}`),Te=tt(we,1,`svelte-1p8xu43`,null,Te,{ok:Ie.loaded&&!Ie.error}),R(Ee,`Loom: ${Ie.loaded&&!Ie.error?`loaded`:`unavailable`}`),Oe=tt(De,1,`svelte-1p8xu43`,null,Oe,{ok:P.catalog.length>0}),R(Ae,`Response controls: ${P.catalog.length>0?`available`:`none installed`}`),Me=tt(je,1,`svelte-1p8xu43`,null,Me,{ok:ke.active.length>0}),R(Ne,`Probes: ${ke.active.length>0?`active`:`none active`}`),Fe=tt(Pe,1,`svelte-1p8xu43`,null,Fe,{ok:P.correlation!==null}),R(Le,`Correlation: ${P.correlation===null?`not measured`:`available`}`)}),I(e,u),Et()}var iu=z(`<article class="svelte-n6r2o6"><h3 class="svelte-n6r2o6">Browser fitting</h3> <p class="svelte-n6r2o6"> </p></article>`),au=z(`<div class="shortcut-help svelte-n6r2o6"><section><h3 class="svelte-n6r2o6">Conversation</h3> <table class="kb svelte-n6r2o6"><tbody><tr><td class="svelte-n6r2o6"><kbd class="svelte-n6r2o6">Esc</kbd></td><td class="svelte-n6r2o6">Stops generation or closes a panel</td></tr><tr><td class="svelte-n6r2o6"><kbd class="svelte-n6r2o6">Enter</kbd></td><td class="svelte-n6r2o6">Sends a message</td></tr><tr><td class="svelte-n6r2o6"><kbd class="svelte-n6r2o6">Shift</kbd> + <kbd class="svelte-n6r2o6">Enter</kbd></td><td class="svelte-n6r2o6">Starts a new line</td></tr><tr><td class="svelte-n6r2o6"><kbd class="svelte-n6r2o6"> </kbd> + <kbd class="svelte-n6r2o6">Enter</kbd></td><td class="svelte-n6r2o6">Adds text without generating</td></tr><tr><td class="svelte-n6r2o6">Select a token</td><td class="svelte-n6r2o6">Opens its details</td></tr></tbody></table></section> <section><h3 class="svelte-n6r2o6">Loom</h3> <p class="section-copy svelte-n6r2o6">These keys apply while the Loom has keyboard focus.</p> <table class="kb svelte-n6r2o6"><tbody><tr><td class="svelte-n6r2o6"><kbd class="svelte-n6r2o6">j</kbd> / <kbd class="svelte-n6r2o6">k</kbd></td><td class="svelte-n6r2o6">Moves between alternatives</td></tr><tr><td class="svelte-n6r2o6"><kbd class="svelte-n6r2o6">h</kbd> / <kbd class="svelte-n6r2o6">l</kbd></td><td class="svelte-n6r2o6">Moves to an earlier turn or its first continuation</td></tr><tr><td class="svelte-n6r2o6"><kbd class="svelte-n6r2o6">Enter</kbd></td><td class="svelte-n6r2o6">Opens the selected branch</td></tr><tr><td class="svelte-n6r2o6"><kbd class="svelte-n6r2o6">s</kbd></td><td class="svelte-n6r2o6">Stars the selected turn</td></tr><tr><td class="svelte-n6r2o6"><kbd class="svelte-n6r2o6">n</kbd></td><td class="svelte-n6r2o6">Adds a note</td></tr><tr><td class="svelte-n6r2o6"><kbd class="svelte-n6r2o6">/</kbd></td><td class="svelte-n6r2o6">Searches the conversation</td></tr><tr><td class="svelte-n6r2o6"><kbd class="svelte-n6r2o6"> </kbd> + <kbd class="svelte-n6r2o6">R</kbd></td><td class="svelte-n6r2o6">Generates another answer</td></tr><tr><td class="svelte-n6r2o6"><kbd class="svelte-n6r2o6"> </kbd> + <kbd class="svelte-n6r2o6">E</kbd></td><td class="svelte-n6r2o6">Edits the selected turn</td></tr><tr><td class="svelte-n6r2o6"><kbd class="svelte-n6r2o6"> </kbd> + <kbd class="svelte-n6r2o6">B</kbd></td><td class="svelte-n6r2o6">Creates an alternate branch</td></tr><tr><td class="svelte-n6r2o6"><kbd class="svelte-n6r2o6"> </kbd> + <kbd class="svelte-n6r2o6">N</kbd></td><td class="svelte-n6r2o6">Opens the map navigator</td></tr><tr><td class="svelte-n6r2o6"><kbd class="svelte-n6r2o6"> </kbd> + <kbd class="svelte-n6r2o6">D</kbd></td><td class="svelte-n6r2o6">Deletes the branch and its continuations</td></tr></tbody></table></section></div>`),ou=z(`<div class="syntax-help svelte-n6r2o6"><p class="svelte-n6r2o6">Steering expressions are the text form of response controls. They describe directions and when those directions apply. The controls create them automatically; this section is only a technical reference.</p> <h3 class="svelte-n6r2o6">Examples</h3> <div class="examples svelte-n6r2o6"><code class="svelte-n6r2o6">0.3 honest</code><span class="svelte-n6r2o6">A light push toward honesty</span> <code class="svelte-n6r2o6">0.4 warm@response</code><span class="svelte-n6r2o6">Warmth only during the reply</span> <code class="svelte-n6r2o6">0.5 personas%pirate</code><span class="svelte-n6r2o6">The pirate point on a persona manifold</span> <code class="svelte-n6r2o6">!sycophantic</code><span class="svelte-n6r2o6">The sycophantic direction removed</span> <code class="svelte-n6r2o6">0.3 a + 0.5 b</code><span class="svelte-n6r2o6">Two directions applied together</span></div> <h3 class="svelte-n6r2o6">Basic grammar</h3> <pre class="grammar svelte-n6r2o6" tabindex="0" role="region" aria-label="Steering expression grammar"></pre></div>`),su=z(`<section class="drawer-shell svelte-n6r2o6" aria-label="Help drawer"><header class="header svelte-n6r2o6"><div><h2 class="title svelte-n6r2o6">Help</h2></div> <!></header> <div class="body svelte-n6r2o6" role="region" aria-label="Help reference" tabindex="0"><section class="block" aria-labelledby="help-contact"><h2 id="help-contact" class="svelte-n6r2o6">Questions or feedback?</h2> <p class="section-copy svelte-n6r2o6">Email <a> </a> for help, feedback, or research inquiries.</p></section> <section class="intro svelte-n6r2o6" aria-labelledby="help-start"><h2 id="help-start" class="svelte-n6r2o6">What each area does</h2> <div class="area-grid svelte-n6r2o6"><article class="svelte-n6r2o6"><h3 class="svelte-n6r2o6">Conversation</h3> <p class="svelte-n6r2o6">The chat appears here. Color on a model reply can show token surprisal, sampler entropy, or a saved reading.</p></article> <article class="svelte-n6r2o6"><h3 class="svelte-n6r2o6">Controls</h3> <p class="svelte-n6r2o6">Response controls shape and measure the next reply. Model controls manage the active model, its tools, and local storage. Chat controls let you name your chat, change its avatar, and save or download a copy.</p></article> <article class="svelte-n6r2o6"><h3 class="svelte-n6r2o6">Loom</h3> <p class="svelte-n6r2o6">Weave shows your current text beside its alternative continuations. Map shows where the paths divide; drag to move around or pinch to zoom.</p></article> <!></div></section> <section class="block terms svelte-n6r2o6"><h2 class="svelte-n6r2o6">Common terms</h2> <dl class="svelte-n6r2o6"><div class="svelte-n6r2o6"><dt class="svelte-n6r2o6">Token</dt><dd class="svelte-n6r2o6">One unit of text for the model. It may be a whole word, part of one, or punctuation.</dd></div> <div class="svelte-n6r2o6"><dt class="svelte-n6r2o6">Token surprisal</dt><dd class="svelte-n6r2o6">How unlikely the chosen token was after sampling settings were applied. It measures a word choice, not whether the reply is true.</dd></div> <div class="svelte-n6r2o6"><dt class="svelte-n6r2o6">Sampler entropy</dt><dd class="svelte-n6r2o6">How spread out the next-token probabilities were after sampling settings. Low entropy can come from restrictive settings, even when the reply is wrong.</dd></div> <div class="svelte-n6r2o6"><dt class="svelte-n6r2o6">Direction</dt><dd class="svelte-n6r2o6">An internal pattern used to steer a reply toward or away from a trait.</dd></div> <div class="svelte-n6r2o6"><dt class="svelte-n6r2o6">Reading</dt><dd class="svelte-n6r2o6">A measurement of an internal pattern. It observes the reply without changing it.</dd></div> <div class="svelte-n6r2o6"><dt class="svelte-n6r2o6">J-lens</dt><dd class="svelte-n6r2o6">A fitted projection of a layer's activations into token probabilities. Aggregate strength is the mean across fitted layers, not the final sampler probability or a record of the model's thoughts.</dd></div> <div class="svelte-n6r2o6"><dt class="svelte-n6r2o6">SAE feature</dt><dd class="svelte-n6r2o6">A learned activation pattern. Its label is an interpretation, not proof of a concept or cause. Normalized strength compares activation with a reference maximum and can exceed 1.</dd></div> <div class="svelte-n6r2o6"><dt class="svelte-n6r2o6">Captured or replayed</dt><dd class="svelte-n6r2o6">Captured readings were recorded during the original run. Replayed readings are computed later; their source and steering are shown beside them. An unsteered replay is a separate measurement, not the original capture.</dd></div> <div class="svelte-n6r2o6"><dt class="svelte-n6r2o6">Loom</dt><dd class="svelte-n6r2o6">The conversation map, including its alternate continuations.</dd></div></dl></section> <!> <!></div></section>`);function cu(e,t){it(t,!0),lt(t,[`$$slots`,`$$events`,`$$legacy`]),bt(()=>{t.params});let n=typeof navigator<`u`&&/Mac|iPhone|iPad|iPod/.test(navigator.platform)?`Cmd`:`Ctrl`,r=Y(!1),i=Y(!1),a=Gt();var o=su(),s=q(o);Dr(V(q(s),2),{get onclick(){return ar}}),F(s);var c=V(s,2),l=q(c),u=V(q(l),2),d=V(q(u)),f=q(d,!0);F(d),Ze(),F(u),F(l);var p=V(l,2),m=V(q(p),2),h=V(q(m),6),g=e=>{var t=iu(),n=V(q(t),2),r=q(n);F(n),F(t),W(()=>R(r,`Browser fitting supports up to ${a??``} dimensions. Larger fits need the Python/server runtime.`)),I(e,t)};K(h,e=>{a!==null&&e(g)}),F(m),F(p);var _=V(p,4);Ko(_,{summary:`Keyboard shortcuts`,get expanded(){return X(r)},set expanded(e){U(r,e,!0)},children:(e,t)=>{var r=au(),i=q(r),a=V(q(i),2),o=q(a),s=V(q(o),3),c=q(s),l=q(c),u=q(l,!0);F(l),Ze(2),F(c),Ze(),F(s),Ze(),F(o),F(a),F(i);var d=V(i,2),f=V(q(d),4),p=q(f),m=V(q(p),6),h=q(m),g=q(h),_=q(g,!0);F(g),Ze(2),F(h),Ze(),F(m);var v=V(m),y=q(v),b=q(y),x=q(b,!0);F(b),Ze(2),F(y),Ze(),F(v);var S=V(v),C=q(S),w=q(C),T=q(w,!0);F(w),Ze(2),F(C),Ze(),F(S);var E=V(S),D=q(E),O=q(D),k=q(O,!0);F(O),Ze(2),F(D),Ze(),F(E);var A=V(E),j=q(A),M=q(j),N=q(M,!0);F(M),Ze(2),F(j),Ze(),F(A),F(p),F(f),F(d),F(r),W(()=>{R(u,n),R(_,n),R(x,n),R(T,n),R(k,n),R(N,n)}),I(e,r)},$$slots:{default:!0}}),Ko(V(_,2),{summary:`Steering expression reference`,get expanded(){return X(i)},set expanded(e){U(i,e,!0)},children:(e,t)=>{var n=ou(),r=V(q(n),8);r.textContent=`expr := term (("+" | "-") term)*
106
+ term := [coeff "*"?] ["!"] selector ["@" trigger]
107
+ selector := atom (("~" | "|") atom | "%" position)?
108
+ position := signed_num ("," signed_num)* | label
109
+ atom := [ns "/"] NAME ["." NAME] [":" variant] | "sae/" INT
110
+ trigger := before | after | both | thinking | response
111
+ | prompt | generated | when:<probe><op><num>
112
+ variant := raw | sae | sae-<release>
113
+ | role-<name> | from-<source>
114
+ `,F(n),I(e,n)},$$slots:{default:!0}}),F(c),F(o),W(()=>{J(d,`href`,`mailto:${rn}`),R(f,rn)}),I(e,o),Et()}var lu=z(`<section class="success svelte-ibwdrc" tabindex="-1"><div class="success-icon svelte-ibwdrc"><!></div> <div role="status" class="svelte-ibwdrc"><h2 class="svelte-ibwdrc">Message sent</h2> <p class="svelte-ibwdrc">Your message is on its way to <a class="svelte-ibwdrc"> </a>.</p> <p class="svelte-ibwdrc"> </p></div> <details class="reference svelte-ibwdrc"><summary class="svelte-ibwdrc">Message reference</summary><code class="svelte-ibwdrc"> </code></details> <div class="actions svelte-ibwdrc"><!> <!></div></section>`),uu=z(`<p class="intro svelte-ibwdrc">Tell us what could work better.</p>`),du=z(`<span class="error svelte-ibwdrc"> </span>`),fu=z(`<div class="field svelte-ibwdrc"><span class="label svelte-ibwdrc">Reason</span> <!> <!></div>`),pu=z(`<span class="error svelte-ibwdrc"> </span>`),mu=z(`<span class="error svelte-ibwdrc"> </span>`),hu=z(`<span class="error svelte-ibwdrc"> </span>`),gu=z(`<details class="reference svelte-ibwdrc"><summary class="svelte-ibwdrc">Message reference</summary><code class="svelte-ibwdrc"> </code></details>`),_u=z(`<div class="notice svelte-ibwdrc" tabindex="-1"><p role="alert" class="svelte-ibwdrc"> </p> <!> <div class="recovery-actions svelte-ibwdrc"><!><a class="svelte-ibwdrc">Email us directly</a></div> <span class="sr-only svelte-ibwdrc" role="status"><!></span></div>`),vu=z(`<!><!>`,1),yu=z(`<p class="draft-note svelte-ibwdrc" role="status"><!></p>`),bu=z(`<form class="contact-form svelte-ibwdrc" novalidate=""><!> <p class="required-note svelte-ibwdrc">All fields are required unless marked optional.</p> <div class="categories svelte-ibwdrc"><!> <div><span class="label svelte-ibwdrc">Topic</span> <!> <!></div></div> <label class="field svelte-ibwdrc"><span class="label svelte-ibwdrc">Title</span> <input name="title" required="" placeholder="A short summary" class="svelte-ibwdrc"/> <!></label> <label class="field svelte-ibwdrc"><span class="label-row svelte-ibwdrc"><span class="label svelte-ibwdrc">Message</span><span class="count svelte-ibwdrc" aria-hidden="true"><!> / <!></span></span> <textarea name="body" required="" rows="6" class="svelte-ibwdrc"></textarea> <span class="sr-only svelte-ibwdrc">Up to <!> characters.</span> <!></label> <label class="field svelte-ibwdrc"><span class="label svelte-ibwdrc">Email <span class="optional svelte-ibwdrc">(optional)</span></span> <input type="email" name="email" autocomplete="email" inputmode="email" autocapitalize="none" spellcheck="false" placeholder="you@example.com" class="svelte-ibwdrc"/> <span> </span></label> <div class="honeypot svelte-ibwdrc" aria-hidden="true" inert=""><label>Website<input name="website" tabindex="-1" autocomplete="off" class="svelte-ibwdrc"/></label></div> <!> <div class="send-section svelte-ibwdrc"><p class="privacy svelte-ibwdrc">Only the form fields are sent. Chats and model data aren't attached.</p> <div class="actions form-actions svelte-ibwdrc"><div class="secondary-action svelte-ibwdrc"><!></div> <!></div> <!></div></form>`);function xu(e,t){let n=Ve();it(t,!0);let r=Z(t,`source`,3,`feedback`),i=G(()=>tn[r()]),a=G(()=>Yt(X(i).fields.reason)),o=G(()=>X(i).fields.reason===`other`),s=G(()=>X(i).status===`sending`),c=Y(void 0),l=Y(void 0),u=Y(!1),d=Y(!1),f=G(()=>!!(X(i).fields.title||X(i).fields.body||X(i).fields.email));bt(()=>{X(a).length&&!X(a).some(e=>e.value===X(i).fields.topic)&&(X(i).fields.topic=X(a)[0].value,delete X(i).errors.topic)});async function p(e){e.preventDefault(),U(u,!1),await Sn(r()),await Ke(),Object.keys(X(i).errors).length?X(c)?.querySelector(`[aria-invalid="true"], button[data-invalid]`)?.focus():X(l)?.focus({preventScroll:!0})}async function m(){let e=`${X(i).fields.title}\n\n${X(i).fields.body}\n\nTopic: ${X(a).find(e=>e.value===X(i).fields.topic)?.label}\nReason: ${$t.find(e=>e.value===X(i).fields.reason)?.label}\nReply email: ${X(i).fields.email||`Not provided`}\nReference: ${X(i).requestId||`Not submitted`}`;try{await navigator.clipboard.writeText(e),U(u,!0)}catch{X(i).message=`Clipboard access is unavailable. You can select and copy the text from the fields above.`}}function h(e){(X(f)&&X(i).status!==`sent`||X(s))&&(e.preventDefault(),e.returnValue=``)}var g=Je();$e(`beforeunload`,rt,h);var _=Q(g),v=e=>{var a=lu(),o=q(a);Gn(q(o),{name:`check`,size:24}),F(o);var s=V(o,2),c=q(s),u=V(c,2),d=V(q(u)),f=q(d,!0);F(d),Ze(),F(u);var p=V(u,2),m=q(p,!0);F(p),F(s);var h=V(s,2),g=V(q(h)),_=q(g,!0);F(g),F(h);var v=V(h,2),y=q(v);zs(y,{onclick:()=>bn(r()),children:(e,t)=>{Ze();var n=Qe(`Send another message`);I(e,n)},$$slots:{default:!0}});var b=V(y,2),x=e=>{zs(e,{variant:`solid`,get onclick(){return t.ondone},children:(e,t)=>{Ze();var n=Qe(`Done`);I(e,n)},$$slots:{default:!0}})};K(b,e=>{t.ondone&&e(x)}),F(v),F(a),nt(a,e=>U(l,e),()=>X(l)),W(e=>{J(a,`aria-labelledby`,`${n}-success`),J(c,`id`,`${n}-success`),J(d,`href`,`mailto:${rn}`),R(f,rn),R(m,e),R(_,X(i).requestId)},[()=>X(i).fields.email.trim()?`We can reply to ${X(i).fields.email.trim()}.`:`You didn't leave an email, so we can't reply.`]),Xe(1,a,()=>lo,()=>Co(6)),Xe(2,a,()=>lo,wo),I(e,a)},y=e=>{var t=bu(),h=q(t),g=e=>{var t=uu();I(e,t)};K(h,e=>{r()===`feedback`&&e(g)});var _=V(h,4),v=q(_),y=e=>{var t=fu(),r=q(t),a=V(r,2);{let e=G(()=>`${n}-reason-label`),t=G(()=>!!X(i).errors.reason),r=G(()=>X(i).errors.reason?`${n}-reason-error`:void 0);Io(a,{get options(){return $t},ariaLabel:`Reason`,get ariaLabelledby(){return X(e)},get invalid(){return X(t)},get ariaDescribedby(){return X(r)},get disabled(){return X(s)},get value(){return X(i).fields.reason},set value(e){X(i).fields.reason=e}})}var o=V(a,2),c=e=>{var t=du(),r=q(t,!0);F(t),W(()=>{J(t,`id`,`${n}-reason-error`),R(r,X(i).errors.reason)}),I(e,t)};K(o,e=>{X(i).errors.reason&&e(c)}),F(t),W(()=>J(r,`id`,`${n}-reason-label`)),I(e,t)};K(v,e=>{r()===`contact`&&e(y)});var b=V(v,2);let x;var S=q(b),C=V(S,2);{let e=G(()=>`${n}-topic-label`),t=G(()=>!!X(i).errors.topic),r=G(()=>X(i).errors.topic?`${n}-topic-error`:void 0),c=G(()=>X(s)||X(o));Io(C,{get options(){return X(a)},ariaLabel:`Topic`,get ariaLabelledby(){return X(e)},get invalid(){return X(t)},get ariaDescribedby(){return X(r)},get disabled(){return X(c)},get value(){return X(i).fields.topic},set value(e){X(i).fields.topic=e}})}var w=V(C,2),T=e=>{var t=pu(),r=q(t,!0);F(t),W(()=>{J(t,`id`,`${n}-topic-error`),R(r,X(i).errors.topic)}),I(e,t)};K(w,e=>{X(i).errors.topic&&e(T)}),F(b),F(_);var E=V(_,2),D=q(E),O=V(D,2);ot(O);var k=V(O,2),A=e=>{var t=mu(),r=q(t,!0);F(t),W(()=>{J(t,`id`,`${n}-title-error`),R(r,X(i).errors.title)}),I(e,t)};K(k,e=>{X(i).errors.title&&e(A)}),F(E);var j=V(E,2),M=q(j),N=q(M),ee=V(N),te=q(ee);{let e=G(()=>X(i).fields.body.length.toLocaleString(`en-US`));$(te,{get text(){return X(e)}})}var ne=V(te,2);{let e=G(()=>xn.body.toLocaleString(`en-US`));$(ne,{get text(){return X(e)}})}F(ee),F(M);var P=V(M,2);_t(P);var re=V(P,2),ie=V(q(re));{let e=G(()=>xn.body.toLocaleString(`en-US`));$(ie,{get text(){return X(e)}})}Ze(),F(re);var ae=V(re,2),oe=e=>{var t=hu(),r=q(t,!0);F(t),W(()=>{J(t,`id`,`${n}-body-error`),R(r,X(i).errors.body)}),I(e,t)};K(ae,e=>{X(i).errors.body&&e(oe)}),F(j);var se=V(j,2),ce=q(se),le=V(ce,2);ot(le);var ue=V(le,2);let de;var fe=q(ue,!0);F(ue),F(se);var pe=V(se,2),me=q(pe),he=V(q(me));ot(he),F(me),F(pe);var ge=V(pe,2),_e=e=>{var t=_u(),n=q(t),r=q(n,!0);F(n);var a=V(n,2),o=e=>{var t=gu(),n=V(q(t)),r=q(n,!0);F(n),F(t),W(()=>R(r,X(i).requestId)),I(e,t)};K(a,e=>{X(i).requestId&&e(o)});var s=V(a,2),c=q(s);zs(c,{onclick:m,children:(e,t)=>{{let t=G(()=>X(u)?`Draft copied`:`Copy draft`);$(e,{get text(){return X(t)}})}},$$slots:{default:!0}});var d=V(c);F(s);var f=V(s,2),p=q(f);{let e=G(()=>X(u)?`Draft copied to clipboard.`:``);$(p,{get text(){return X(e)}})}F(f),F(t),nt(t,e=>U(l,e),()=>X(l)),W(()=>{R(r,X(i).message),J(d,`href`,`mailto:${rn}`)}),Xe(1,t,()=>lo,Co),Xe(2,t,()=>lo,wo),I(e,t)};K(ge,e=>{X(i).message&&e(_e)});var ve=V(ge,2),ye=V(q(ve),2),be=q(ye),xe=q(be),Se=e=>{zs(e,{variant:`flat`,get disabled(){return X(s)},onclick:()=>{X(d)?(bn(r()),U(d,!1)):U(d,!0)},children:(e,t)=>{Ze();var n=Qe();W(()=>R(n,X(d)?`Confirm clear draft`:`Clear draft`)),I(e,n)},$$slots:{default:!0}})};K(xe,e=>{X(f)&&e(Se)}),F(be),zs(V(be,2),{type:`submit`,variant:`solid`,get disabled(){return X(s)},get busy(){return X(s)},children:(e,t)=>{var n=vu(),r=Q(n);Gn(r,{name:`send`});var a=V(r);{let e=G(()=>X(s)?`Sending…`:X(i).uncertain?`Check delivery`:`Send message`);$(a,{get text(){return X(e)}})}I(e,n)},$$slots:{default:!0}}),F(ye);var Ce=V(ye,2),we=e=>{var t=yu(),n=q(t);{let e=G(()=>X(s)?`Sending your message…`:`Your draft is saved in this tab until you send it.`);$(n,{get text(){return X(e)}})}F(t),I(e,t)};K(Ce,e=>{(X(f)||X(s))&&e(we)}),F(ve),F(t),nt(t,e=>U(c,e),()=>X(c)),W((e,a,c,l)=>{J(t,`aria-label`,r()===`feedback`?`Feedback form`:`Contact form`),J(t,`aria-busy`,X(s)),x=tt(b,1,`field svelte-ibwdrc`,null,x,{"is-disabled":X(o)}),J(S,`id`,`${n}-topic-label`),J(D,`id`,`${n}-title-label`),J(O,`maxlength`,xn.title),O.disabled=X(s),J(O,`aria-labelledby`,`${n}-title-label`),J(O,`aria-invalid`,e),J(O,`aria-describedby`,X(i).errors.title?`${n}-title-error`:void 0),J(N,`id`,`${n}-body-label`),J(P,`maxlength`,xn.body),P.disabled=X(s),J(P,`aria-labelledby`,`${n}-body-label`),J(P,`aria-invalid`,a),J(P,`aria-describedby`,X(i).errors.body?`${n}-body-error ${n}-body-hint`:`${n}-body-hint`),J(P,`placeholder`,X(i).fields.reason===`bug`?`What happened, and what did you expect? Include the steps so we can try it too.`:r()===`feedback`?`What happened, or what would you like to see?`:`What would you like to talk about?`),J(re,`id`,`${n}-body-hint`),J(ce,`id`,`${n}-email-label`),J(le,`maxlength`,xn.email),le.disabled=X(s),J(le,`aria-labelledby`,`${n}-email-label`),J(le,`aria-invalid`,c),J(le,`aria-describedby`,`${n}-email-hint`),J(ue,`id`,`${n}-email-hint`),de=tt(ue,1,`hint svelte-ibwdrc`,null,de,l),R(fe,X(i).errors.email||`Add an email if you'd like a reply.`)},[()=>!!X(i).errors.title,()=>!!X(i).errors.body,()=>!!X(i).errors.email,()=>({error:!!X(i).errors.email})]),$e(`submit`,t,p),at(O,()=>X(i).fields.title,e=>X(i).fields.title=e),B(`keydown`,P,e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&!e.isComposing&&(e.preventDefault(),X(c)?.requestSubmit())}),at(P,()=>X(i).fields.body,e=>X(i).fields.body=e),at(le,()=>X(i).fields.email,e=>X(i).fields.email=e),at(he,()=>X(i).fields.website,e=>X(i).fields.website=e),I(e,t)};K(_,e=>{X(i).status===`sent`?e(v):e(y,-1)}),I(e,g),Et()}Ge([`keydown`]);var Su=z(`<section class="feedback-drawer svelte-10mbnui" aria-label="Submit Feedback"><header class="svelte-10mbnui"><h2 class="svelte-10mbnui">Share feedback</h2><!></header> <div class="body svelte-10mbnui"><!><p class="contact-link svelte-10mbnui">Need help? <a target="_blank" rel="noreferrer" class="svelte-10mbnui">Contact us<span class="sr-only svelte-10mbnui">(opens a new tab)</span></a> or email <a class="svelte-10mbnui"> </a>.</p></div></section>`);function Cu(e,t){it(t,!0);var n=Su(),r=q(n);Dr(V(q(r)),{get onclick(){return ar},label:`Close feedback`}),F(r);var i=V(r,2),a=q(i);xu(a,{source:`feedback`,get ondone(){return ar}});var o=V(a),s=V(q(o)),c=V(s,2),l=q(c,!0);F(c),Ze(),F(o),F(i),F(n),W(()=>{J(s,`href`,d.mode===`http`?`https://drowse.ai/contact`:`/contact`),J(c,`href`,`mailto:${rn}`),R(l,rn)}),I(e,n),Et()}var wu=z(`<span>[BASE]</span>`);function Tu(e,t){let n=Z(t,`plain`,3,!1);var r=wu();H(r,()=>({class:`base-tag`,"aria-description":`Base model · continues text without chat instructions`,[ft]:{plain:n()}}),void 0,void 0,void 0,`svelte-1ove6n8`),I(e,r)}var Eu=(e,t)=>`mo-root${e===`always`?` mo-always`:``}${t?` mo-expr`:``}`;function Du(e){let t=Math.round(e.num(`motion.blink`,3500,6500)),n=Math.round(e.num(`motion.saccade`,4200,7600)),r=e.num(`motion.lookX`,1,2.2),i=e.num(`motion.lookY`,.8,1.7),a=e=>Math.round(e*100)/100;return{phase:Math.round(e.num(`motion.phase`,0,2800)),bob:Math.round(e.num(`motion.bob`,0,3400)),blink:t,blinkPhase:Math.round(e.num(`motion.blinkPhase`,0,t)),saccade:n,saccadePhase:Math.round(e.num(`motion.saccadePhase`,0,n)),lookX:a(r)*(e.bool(`motion.lookXFlip`)?-1:1),lookY:a(i)*(e.bool(`motion.lookYFlip`)?-1:1),lookMX:a(r),lookMY:a(i)}}function Ou(e){let t=e=>`${-e}ms`,n=Du(e);return{"--mo-phase":t(n.phase),"--mo-bob-phase":t(n.bob),"--mo-blink":`${n.blink}ms`,"--mo-blink-phase":t(n.blinkPhase),"--mo-look-x":String(n.lookX),"--mo-look-mx":String(n.lookMX),"--mo-look-y":String(n.lookY),"--mo-look-my":String(n.lookMY),"--mo-saccade":`${n.saccade}ms`,"--mo-saccade-phase":t(n.saccadePhase)}}function ku({l:e,c:t,h:n}){let r=n*Math.PI/180,i=t*Math.cos(r),a=t*Math.sin(r),o=e+.3963377774*i+.2158037573*a,s=e-.1055613458*i-.0638541728*a,c=e-.0894841775*i-1.291485548*a,l=o*o*o,u=s*s*s,d=c*c*c;return[4.0767416621*l-3.3077115913*u+.2309699292*d,-1.2684380046*l+2.6097574011*u-.3413193965*d,-.0041960863*l-.7034186147*u+1.707614701*d]}var Au=e=>e.every(e=>e>=-1e-4&&e<=1.0001);function ju(e){let t=ku(e);if(!Au(t)){let n=0,r=e.c;for(let t=0;t<12;t++){let t=(n+r)/2;Au(ku({...e,c:t}))?n=t:r=t}t=ku({...e,c:n})}return t.map(e=>Math.min(1,Math.max(0,e)))}function Mu(e){let[t,n,r]=ju(e);return .2126*t+.7152*n+.0722*r}function Nu(e,t){let n=Mu(e),r=Mu(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function Pu(e,t,n){if(Nu(e,t)>=n)return e;let r=e.l>=t.l?1:-1;for(let i of[r,-r]){let r={...e};for(let e=0;e<60;e++){if(r.l=Math.min(1,Math.max(0,r.l+i*.02)),Nu(r,t)>=n)return r;if(r.l===0||r.l===1)break}}let i={...e,l:0,c:0},a={...e,l:1,c:0};return Nu(i,t)>=Nu(a,t)?i:a}function Fu(e){return`#`+ju(e).map(e=>{let t=e<=.0031308?12.92*e:1.055*e**.4166666666666667-.055;return Math.round(t*255).toString(16).padStart(2,`0`)}).join(``)}var Iu=[[.2,{l:.86,c:.085}],[.36,{l:.9,c:.028}],[.62,{l:.73,c:.135}],[.8,{l:.62,c:.165}],[.93,{l:.87,c:.16}],[1,{l:.34,c:.035}]],Lu=e=>Iu.find(([t])=>e<t)?.[1]??Iu[0][1],Ru={l:.145,c:0,h:0},zu=1.5,Bu=(e,t)=>{let n=Lu(t),r=Pu({l:n.l,c:n.c,h:e},Ru,zu);return{bg:{l:.965,c:.01,h:e},head:r,eye:r.l>=.5?{l:.17,c:.02,h:e}:{l:.97,c:.012,h:e}}},Vu=[[`head`,`bg`,1.25],[`eye`,`head`,4.5]];function Hu(e,t=!0,n=0){let r=Bu(e,n);if(t)for(let[e,t,n]of Vu)r[e]=Pu(r[e],r[t],n);return r}function Uu(e,t=!0,n=0){let r=Hu(e,t,n),i={};for(let e in r)i[e]=Fu(r[e]);return i}var Wu=e=>{let t=Math.round(e*100)/100;return Object.is(t,-0)?`0`:String(t)};function Gu({cx:e,cy:t,rx:n,ry:r,n:i=4,rot:a=0}){let o=Math.min(1,(8*2**(-1/i)-4)/3),s=n,c=r,l=s*o,u=c*o,d=[[s,0],[s,u],[l,c],[0,c],[-l,c],[-s,u],[-s,0],[-s,-u],[-l,-c],[0,-c],[l,-c],[s,-u],[s,0]],f=a*Math.PI/180,p=Math.cos(f),m=Math.sin(f),h=n=>{let[r,i]=d[n];return`${Wu(e+r*p-i*m)} ${Wu(t+r*m+i*p)}`},g=`M${h(0)}`;for(let e=1;e<13;e+=3)g+=`C${h(e)} ${h(e+1)} ${h(e+2)}`;return g+`Z`}function Ku(e,t,n,r,i,a=0){let o=i.length,s=a*Math.PI/180,c=i.map((i,a)=>{let c=s+2*Math.PI*a/o;return[e+n*i*Math.cos(c),t+r*i*Math.sin(c)]}),l=e=>c[(e%o+o)%o],u=`M${Wu(l(0)[0])} ${Wu(l(0)[1])}`;for(let e=0;e<o;e++){let[t,n]=l(e-1),[r,i]=l(e),[a,o]=l(e+1),[s,c]=l(e+2);u+=`C${Wu(r+(a-t)/6)} ${Wu(i+(o-n)/6)} ${Wu(a-(s-r)/6)} ${Wu(o-(c-i)/6)} ${Wu(a)} ${Wu(o)}`}return u+`Z`}function qu({cx:e,cy:t,rx:n,ry:r,sides:i,round:a=.3,rot:o=0}){let s=a>0?a<1?a/2:.5:0,c=o*Math.PI/180-Math.PI/2,l=Array.from({length:i},(a,o)=>{let s=c+2*Math.PI*o/i;return[e+n*Math.cos(s),t+r*Math.sin(s)]}),u=e=>l[(e%i+i)%i],d=(e,t)=>{let[n,r]=u(e),[i,a]=u(t);return`${Wu(n+(i-n)*s)} ${Wu(r+(a-r)*s)}`},f=`M${d(0,-1)}`;for(let e=0;e<i;e++){let[t,n]=u(e);f+=`Q${Wu(t)} ${Wu(n)} ${d(e,e+1)}`,s<.5&&(f+=`L${d(e+1,e)}`)}return f+`Z`}function Ju(e,t,n,r){let i=Wu(e-n),a=Wu(e+n);return`M${i} ${Wu(t-r)}H${a}V${Wu(t+r)}H${i}Z`}function Yu(e,t,n,r,i){let a=Math.max(1.05,i),o=n*Math.sqrt(1-1/(a*a)),s=t-r/a,c=t-a*r,l=o*.14,u=s+.86*(c-s);return`M${Wu(e-o)} ${Wu(s)}L${Wu(e-l)} ${Wu(u)}Q${Wu(e)} ${Wu(c)} ${Wu(e+l)} ${Wu(u)}L${Wu(e+o)} ${Wu(s)}Z`}function Xu(e,t){for(let n=0;n<t.length;n++)e=Math.imul(e^t[n],3432918353),e=e<<13|e>>>19;return e}function Zu(e){return e=Math.imul(e^e>>>16,2246822507),e=Math.imul(e^e>>>13,3266489909),(e^e>>>16)>>>0}var Qu=new TextEncoder;function $u(e){return e.normalize(`NFC`).trim().toLowerCase()}function ed(e,t=!0){let n=t?$u(e):e;return Xu(1779033703^n.length,Qu.encode(n))}function td(e,t){return Zu(Xu(Xu(e,Uint8Array.of(255)),Qu.encode(t)))/4294967296}function nd(e,t=!0,n){let r=ed(e,t),i=e=>{let t=n?.[e],i=Array.isArray(t)?t[Math.floor(td(r,e)*t.length)]:t;return i===void 0?td(r,e):i>0?i<1?i:.999999:0};return i.num=(e,t,n)=>t+i(e)*(n-t),i.int=(e,t,n)=>t+Math.floor(i(e)*(n-t+1)),i.pick=(e,t)=>t[Math.floor(i(e)*t.length)],i.bool=(e,t=.5)=>i(e)<t,i.jitter=(e,t)=>(i(e)*2-1)*t,i}function rd(e,t,n){let r=t.expression;return n||!r?{l:e,wrap:``}:r.bake(e,r.p)}var id=(e,t)=>t?`<g transform="${t}">${e}</g>`:e;function ad(e,t){let n=nd(e,t.normalize??!0,t.traits);return{t:n,palette:{...Uu(t.hue??n.num(`hue`,0,360),t.contrast??!0,t.tone??n(`tone`)),...t.palette}}}function od(e,t,n){let r=t.background??e.background;if(r!==!1)return{d:r===`square`?`M0 0H100V100H0Z`:Gu({cx:50,cy:50,rx:50,ry:50,n:r===`circle`?2:6}),fill:n.bg}}function sd(e){return(t,n={},r)=>{let{t:i,palette:a}=ad(t,n),o=r?.(i,a),s=rd(e.layout(i),n,o);return{cls:o?.cls,bg:od(e,n,a),inner:id(e.render(s.l,a,!!o),s.wrap),vars:o?.vars}}}var cd=(e,t,n)=>{let r=t.rx,i=e.num(`eye.rx`,.075,.105)*r,a=e.num(`eye.ratio`,1.9,3.2),o=e.num(`eye.scale`,.78,1.24),s=e.num(`eye.stretch`,.85,1.18),c=e.num(`eye.gap`,.1,.24)*r,l=i*Math.max(1,o),u=i*a*Math.max(1,o*s),d=l+r*.03+c,f=e.jitter(`gaze.x`,.09)*n.rx,p=e.num(`gaze.y`,-.2,.08)*n.ry,m=e.jitter(`eye.dy`,.04)*n.ry,h=Math.hypot(l,u),g=Math.hypot((Math.abs(f)+d+h)/n.rx,(Math.abs(p)+Math.abs(m)+h)/n.ry),_=g>.9?.9/g:1,v=i*_,y=v*a,b=d*_,x=Math.max(0,Math.min(1,c/u)),S=Math.min(12,Math.asin(x)*180/Math.PI),C=e.num(`eye.lean`,-1,1)*S,w=Math.max(-12,Math.min(12,C+e.jitter(`eye.lean2`,3.5))),T=n.cx+f*_,E=n.cy+p*_;return[{cx:T-b,cy:E,rx:v,ry:y,n:e.num(`eye.n`,3.5,6),rot:C},{cx:T+b,cy:E+m*_,rx:v*o,ry:y*o*s,n:e.num(`eye.n`,3.5,6),rot:w}]};function ld(e,t){let n=t=>(e.find(([,e])=>t<e)??e[e.length-1])[0];function r(e){let r=n(e(`shape`)),i=e.num(`body.r`,31,38)*r.core,a={cx:50+e.jitter(`body.x`,1.5),cy:50+e.jitter(`body.y`,1.5),rx:i,ry:i*e.num(`body.ratio`,.92,1.08),n:e.num(`body.n`,1.9,2.5),rot:0,radii:Array.from({length:e.int(`body.pts`,6,8)},(t,n)=>1+e.jitter(`body.r${n}`,.16))};r.body?.(e,a);let o=r.face?.(a)??a,s={petals:[],extra:[]};return r.decorate?.(e,a,s),{shape:r.name,draw:r.path,body:a,face:o,petals:s.petals,extra:s.extra,eyes:t(e,a,o)}}function i(e,t,n){let r=e=>Math.round(e*100)/100,i=`<g fill="${t.head}">`+e.petals.map(e=>`<circle cx="${r(e.cx)}" cy="${r(e.cy)}" r="${r(e.r)}"/>`).join(``)+e.extra.map(e=>`<path d="${e}"/>`).join(``)+`<path d="${e.draw?e.draw(e.body):Gu(e.body)}"/></g><g fill="${t.eye}"${n?` class="mo-eyes"`:``}>`+e.eyes.map((e,t)=>{let i=`<path d="${Gu(e)}"/>`;return n?`<g class="mo-eye" style="--mo-wrap:${t?1:-1};--mo-lean:${r(e.rot)};transform-origin:${r(e.cx)}px ${r(e.cy)}px">${i}</g>`:i}).join(``)+`</g>`;return n?`<g class="mo-breathe"><g class="mo-bob">${i}</g></g>`:i}return{layout:r,render:i,background:!1}}var ud=e=>qu(e),dd=e=>Ku(e.cx,e.cy,e.rx,e.ry,e.radii,e.rot),fd=e=>t=>({cx:t.cx,cy:t.cy,rx:t.rx*e,ry:t.ry*e}),pd=e=>fd(Math.min(...e.radii)*.95)(e),md=e=>fd(.84)(e),hd={name:`round`,core:1},gd={name:`organic`,core:.98,path:dd,face:pd},_d={name:`boxy`,core:.86,body:(e,t)=>{t.n=e.num(`body.n`,3.4,6),t.rot=e.num(`body.rot`,-20,20)}},vd={name:`capsule`,core:1.02,body:(e,t)=>{t.ry*=e.num(`capsule.squat`,.55,.68)},face:fd(.94),decorate:(e,t,n)=>{for(let e of[-1,1])n.petals.push({cx:t.cx+e*(t.rx-t.ry),cy:t.cy,r:t.ry})},path:e=>Ju(e.cx,e.cy,e.rx-e.ry,e.ry)},yd=ld([[hd,.22],[gd,.48],[_d,.6],[vd,.7],[{name:`nub`,core:.88,decorate:(e,t,n)=>{let r=e.int(`nub.n`,1,2);for(let i=0;i<r;i++){let r=e.num(`nub.a${i}`,0,2*Math.PI);n.petals.push({cx:t.cx+Math.cos(r)*t.rx*.88,cy:t.cy+Math.sin(r)*t.rx*.88,r:t.rx*e.num(`nub.r${i}`,.24,.4)})}}},.79],[{name:`cloud`,core:.78,face:pd,path:dd,decorate:(e,t,n)=>{let r=e.int(`cloud.n`,4,6);for(let i=0;i<r;i++){let a=Math.PI+Math.PI*(i+.5)/r;n.petals.push({cx:t.cx+Math.cos(a)*t.rx*.8,cy:t.cy+Math.sin(a)*t.rx*.5,r:t.rx*e.num(`cloud.r${i}`,.44,.62)})}}},.86],[{name:`droplet`,core:.78,body:(e,t)=>{t.cy+=.22*t.ry,t.n=2},face:e=>({cx:e.cx,cy:e.cy+e.ry*.05,rx:e.rx*.88,ry:e.ry*.88}),decorate:(e,t,n)=>{n.extra.push(Yu(t.cx,t.cy,t.rx,t.ry,e.num(`droplet.tip`,1.4,1.65)))}},.915],[{name:`hexagon`,core:1.05,path:ud,face:md,body:(e,t)=>{t.sides=6,t.rot=e.num(`body.rot`,-12,12),t.round=e.num(`poly.round`,.24,.5)}},.95],[{name:`sun`,core:.7,decorate:(e,t,n)=>{let r=e.int(`sun.n`,6,9),i=t.rx*e.num(`sun.dist`,1,1.08),a=t.rx*e.num(`sun.r`,.2,.26),o=e.num(`sun.rot`,0,2*Math.PI);for(let e=0;e<r;e++){let s=o+2*Math.PI*e/r;n.petals.push({cx:t.cx+Math.cos(s)*i,cy:t.cy+Math.sin(s)*i,r:a})}}},.98],[{name:`triangle`,core:1.15,path:ud,body:(e,t)=>{t.sides=3,t.rot=e.num(`body.rot`,-5,5),t.round=e.num(`poly.round`,.24,.5)},face:e=>({cx:e.cx,cy:e.cy+e.ry*.1,rx:e.rx*.54,ry:e.ry*.36})},1]],cd),bd=(e,t)=>(n,r)=>{let i=t?t.vars(t.p):{},a=t?.tint?t.tint(r,t.p):r;return{cls:Eu(e,!!Object.keys(i).length||!!t?.tint),vars:{...Ou(n),"--mo-head":a.head,"--mo-eye":a.eye,...i}}};function xd(e,t={}){return sd(yd)(e,t,t.animate&&bd(t.animate,t.expression))}function Sd({l:e,c:t,h:n}){let r=n*Math.PI/180,i=t*Math.cos(r),a=t*Math.sin(r),o=e+.3963377774*i+.2158037573*a,s=e-.1055613458*i-.0638541728*a,c=e-.0894841775*i-1.291485548*a,l=o*o*o,u=s*s*s,d=c*c*c;return[4.0767416621*l-3.3077115913*u+.2309699292*d,-1.2684380046*l+2.6097574011*u-.3413193965*d,-.0041960863*l-.7034186147*u+1.707614701*d]}var Cd=e=>e.every(e=>e>=-1e-4&&e<=1.0001);function wd(e){let t=Sd(e);if(!Cd(t)){let n=0,r=e.c;for(let t=0;t<12;t++){let t=(n+r)/2;Cd(Sd({...e,c:t}))?n=t:r=t}t=Sd({...e,c:n})}return t.map(e=>Math.min(1,Math.max(0,e)))}function Td(e){let[t,n,r]=wd(e);return .2126*t+.7152*n+.0722*r}function Ed(e,t){let n=Td(e),r=Td(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function Dd(e,t,n){if(Ed(e,t)>=n)return e;let r=e.l>=t.l?1:-1;for(let i of[r,-r]){let r={...e};for(let e=0;e<60;e++){if(r.l=Math.min(1,Math.max(0,r.l+i*.02)),Ed(r,t)>=n)return r;if(r.l===0||r.l===1)break}}let i={...e,l:0,c:0},a={...e,l:1,c:0};return Ed(i,t)>=Ed(a,t)?i:a}function Od(e){return`#`+wd(e).map(e=>{let t=e<=.0031308?12.92*e:1.055*e**.4166666666666667-.055;return Math.round(t*255).toString(16).padStart(2,`0`)}).join(``)}var kd=[[.2,{l:.86,c:.085}],[.36,{l:.9,c:.028}],[.62,{l:.73,c:.135}],[.8,{l:.62,c:.165}],[.93,{l:.87,c:.16}],[1,{l:.34,c:.035}]],Ad=e=>kd.find(([t])=>e<t)?.[1]??kd[0][1],jd={l:.145,c:0,h:0},Md=1.5,Nd=(e,t)=>{let n=Ad(t),r=Dd({l:n.l,c:n.c,h:e},jd,Md);return{bg:{l:.965,c:.01,h:e},head:r,eye:r.l>=.5?{l:.17,c:.02,h:e}:{l:.97,c:.012,h:e}}},Pd=[[`head`,`bg`,1.25],[`eye`,`head`,4.5]];function Fd(e,t=!0,n=0){let r=Nd(e,n);if(t)for(let[e,t,n]of Pd)r[e]=Dd(r[e],r[t],n);return r}function Id(e,t=!0,n=0){let r=Fd(e,t,n),i={};for(let e in r)i[e]=Od(r[e]);return i}var Ld=e=>{let t=Math.round(e*100)/100;return Object.is(t,-0)?`0`:String(t)};function Rd({cx:e,cy:t,rx:n,ry:r,n:i=4,rot:a=0}){let o=Math.min(1,(8*2**(-1/i)-4)/3),s=n,c=r,l=s*o,u=c*o,d=[[s,0],[s,u],[l,c],[0,c],[-l,c],[-s,u],[-s,0],[-s,-u],[-l,-c],[0,-c],[l,-c],[s,-u],[s,0]],f=a*Math.PI/180,p=Math.cos(f),m=Math.sin(f),h=n=>{let[r,i]=d[n];return`${Ld(e+r*p-i*m)} ${Ld(t+r*m+i*p)}`},g=`M${h(0)}`;for(let e=1;e<13;e+=3)g+=`C${h(e)} ${h(e+1)} ${h(e+2)}`;return g+`Z`}function zd(e,t,n,r,i,a=0){let o=i.length,s=a*Math.PI/180,c=i.map((i,a)=>{let c=s+2*Math.PI*a/o;return[e+n*i*Math.cos(c),t+r*i*Math.sin(c)]}),l=e=>c[(e%o+o)%o],u=`M${Ld(l(0)[0])} ${Ld(l(0)[1])}`;for(let e=0;e<o;e++){let[t,n]=l(e-1),[r,i]=l(e),[a,o]=l(e+1),[s,c]=l(e+2);u+=`C${Ld(r+(a-t)/6)} ${Ld(i+(o-n)/6)} ${Ld(a-(s-r)/6)} ${Ld(o-(c-i)/6)} ${Ld(a)} ${Ld(o)}`}return u+`Z`}function Bd({cx:e,cy:t,rx:n,ry:r,sides:i,round:a=.3,rot:o=0}){let s=a>0?a<1?a/2:.5:0,c=o*Math.PI/180-Math.PI/2,l=Array.from({length:i},(a,o)=>{let s=c+2*Math.PI*o/i;return[e+n*Math.cos(s),t+r*Math.sin(s)]}),u=e=>l[(e%i+i)%i],d=(e,t)=>{let[n,r]=u(e),[i,a]=u(t);return`${Ld(n+(i-n)*s)} ${Ld(r+(a-r)*s)}`},f=`M${d(0,-1)}`;for(let e=0;e<i;e++){let[t,n]=u(e);f+=`Q${Ld(t)} ${Ld(n)} ${d(e,e+1)}`,s<.5&&(f+=`L${d(e+1,e)}`)}return f+`Z`}function Vd(e,t,n,r){let i=Ld(e-n),a=Ld(e+n);return`M${i} ${Ld(t-r)}H${a}V${Ld(t+r)}H${i}Z`}function Hd(e,t,n,r,i){let a=Math.max(1.05,i),o=n*Math.sqrt(1-1/(a*a)),s=t-r/a,c=t-a*r,l=o*.14,u=s+.86*(c-s);return`M${Ld(e-o)} ${Ld(s)}L${Ld(e-l)} ${Ld(u)}Q${Ld(e)} ${Ld(c)} ${Ld(e+l)} ${Ld(u)}L${Ld(e+o)} ${Ld(s)}Z`}function Ud(e,t){for(let n=0;n<t.length;n++)e=Math.imul(e^t[n],3432918353),e=e<<13|e>>>19;return e}function Wd(e){return e=Math.imul(e^e>>>16,2246822507),e=Math.imul(e^e>>>13,3266489909),(e^e>>>16)>>>0}var Gd=new TextEncoder;function Kd(e){return e.normalize(`NFC`).trim().toLowerCase()}function qd(e,t=!0){let n=t?Kd(e):e;return Ud(1779033703^n.length,Gd.encode(n))}function Jd(e,t){return Wd(Ud(Ud(e,Uint8Array.of(255)),Gd.encode(t)))/4294967296}function Yd(e,t=!0,n){let r=qd(e,t),i=e=>{let t=n?.[e],i=Array.isArray(t)?t[Math.floor(Jd(r,e)*t.length)]:t;return i===void 0?Jd(r,e):i>0?i<1?i:.999999:0};return i.num=(e,t,n)=>t+i(e)*(n-t),i.int=(e,t,n)=>t+Math.floor(i(e)*(n-t+1)),i.pick=(e,t)=>t[Math.floor(i(e)*t.length)],i.bool=(e,t=.5)=>i(e)<t,i.jitter=(e,t)=>(i(e)*2-1)*t,i}function Xd(e,t,n){let r=t.expression;return n||!r?{l:e,wrap:``}:r.bake(e,r.p)}var Zd=(e,t)=>t?.tint?t.tint(e,t.p):e,Qd=(e,t)=>t?`<g transform="${t}">${e}</g>`:e,$d=e=>e.replace(/[&<>]/g,e=>e===`&`?`&amp;`:e===`<`?`&lt;`:`&gt;`);function ef(e,t){let n=Yd(e,t.normalize??!0,t.traits);return{t:n,palette:{...Id(t.hue??n.num(`hue`,0,360),t.contrast??!0,t.tone??n(`tone`)),...t.palette}}}var tf=e=>e.title?`<title>${$d(e.title)}</title>`:``;function nf(e,t,n){let r=t.background??e.background;if(r!==!1)return{d:r===`square`?`M0 0H100V100H0Z`:Rd({cx:50,cy:50,rx:50,ry:50,n:r===`circle`?2:6}),fill:n.bg}}var rf=e=>e?`<path d="${e.d}" fill="${e.fill}"/>`:``;function af(e){return(t,n={})=>{let{t:r,palette:i}=ef(t,n),a=Zd(i,n.expression),o=n.size?` width="${n.size}" height="${n.size}"`:``,s=Xd(e.layout(r),n);return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"${o}>${tf(n)+rf(nf(e,n,a))+Qd(e.render(s.l,a),s.wrap)}</svg>`}}var of=(e,t,n)=>{let r=t.rx,i=e.num(`eye.rx`,.075,.105)*r,a=e.num(`eye.ratio`,1.9,3.2),o=e.num(`eye.scale`,.78,1.24),s=e.num(`eye.stretch`,.85,1.18),c=e.num(`eye.gap`,.1,.24)*r,l=i*Math.max(1,o),u=i*a*Math.max(1,o*s),d=l+r*.03+c,f=e.jitter(`gaze.x`,.09)*n.rx,p=e.num(`gaze.y`,-.2,.08)*n.ry,m=e.jitter(`eye.dy`,.04)*n.ry,h=Math.hypot(l,u),g=Math.hypot((Math.abs(f)+d+h)/n.rx,(Math.abs(p)+Math.abs(m)+h)/n.ry),_=g>.9?.9/g:1,v=i*_,y=v*a,b=d*_,x=Math.max(0,Math.min(1,c/u)),S=Math.min(12,Math.asin(x)*180/Math.PI),C=e.num(`eye.lean`,-1,1)*S,w=Math.max(-12,Math.min(12,C+e.jitter(`eye.lean2`,3.5))),T=n.cx+f*_,E=n.cy+p*_;return[{cx:T-b,cy:E,rx:v,ry:y,n:e.num(`eye.n`,3.5,6),rot:C},{cx:T+b,cy:E+m*_,rx:v*o,ry:y*o*s,n:e.num(`eye.n`,3.5,6),rot:w}]};function sf(e,t){let n=t=>(e.find(([,e])=>t<e)??e[e.length-1])[0];function r(e){let r=n(e(`shape`)),i=e.num(`body.r`,31,38)*r.core,a={cx:50+e.jitter(`body.x`,1.5),cy:50+e.jitter(`body.y`,1.5),rx:i,ry:i*e.num(`body.ratio`,.92,1.08),n:e.num(`body.n`,1.9,2.5),rot:0,radii:Array.from({length:e.int(`body.pts`,6,8)},(t,n)=>1+e.jitter(`body.r${n}`,.16))};r.body?.(e,a);let o=r.face?.(a)??a,s={petals:[],extra:[]};return r.decorate?.(e,a,s),{shape:r.name,draw:r.path,body:a,face:o,petals:s.petals,extra:s.extra,eyes:t(e,a,o)}}function i(e,t,n){let r=e=>Math.round(e*100)/100,i=`<g fill="${t.head}">`+e.petals.map(e=>`<circle cx="${r(e.cx)}" cy="${r(e.cy)}" r="${r(e.r)}"/>`).join(``)+e.extra.map(e=>`<path d="${e}"/>`).join(``)+`<path d="${e.draw?e.draw(e.body):Rd(e.body)}"/></g><g fill="${t.eye}"${n?` class="mo-eyes"`:``}>`+e.eyes.map((e,t)=>{let i=`<path d="${Rd(e)}"/>`;return n?`<g class="mo-eye" style="--mo-wrap:${t?1:-1};--mo-lean:${r(e.rot)};transform-origin:${r(e.cx)}px ${r(e.cy)}px">${i}</g>`:i}).join(``)+`</g>`;return n?`<g class="mo-breathe"><g class="mo-bob">${i}</g></g>`:i}return{layout:r,render:i,background:!1}}var cf=e=>Bd(e),lf=e=>zd(e.cx,e.cy,e.rx,e.ry,e.radii,e.rot),uf=e=>t=>({cx:t.cx,cy:t.cy,rx:t.rx*e,ry:t.ry*e}),df=e=>uf(Math.min(...e.radii)*.95)(e),ff=e=>uf(.84)(e),pf={name:`round`,core:1},mf={name:`organic`,core:.98,path:lf,face:df},hf={name:`boxy`,core:.86,body:(e,t)=>{t.n=e.num(`body.n`,3.4,6),t.rot=e.num(`body.rot`,-20,20)}},gf={name:`capsule`,core:1.02,body:(e,t)=>{t.ry*=e.num(`capsule.squat`,.55,.68)},face:uf(.94),decorate:(e,t,n)=>{for(let e of[-1,1])n.petals.push({cx:t.cx+e*(t.rx-t.ry),cy:t.cy,r:t.ry})},path:e=>Vd(e.cx,e.cy,e.rx-e.ry,e.ry)},_f=af(sf([[pf,.22],[mf,.48],[hf,.6],[gf,.7],[{name:`nub`,core:.88,decorate:(e,t,n)=>{let r=e.int(`nub.n`,1,2);for(let i=0;i<r;i++){let r=e.num(`nub.a${i}`,0,2*Math.PI);n.petals.push({cx:t.cx+Math.cos(r)*t.rx*.88,cy:t.cy+Math.sin(r)*t.rx*.88,r:t.rx*e.num(`nub.r${i}`,.24,.4)})}}},.79],[{name:`cloud`,core:.78,face:df,path:lf,decorate:(e,t,n)=>{let r=e.int(`cloud.n`,4,6);for(let i=0;i<r;i++){let a=Math.PI+Math.PI*(i+.5)/r;n.petals.push({cx:t.cx+Math.cos(a)*t.rx*.8,cy:t.cy+Math.sin(a)*t.rx*.5,r:t.rx*e.num(`cloud.r${i}`,.44,.62)})}}},.86],[{name:`droplet`,core:.78,body:(e,t)=>{t.cy+=.22*t.ry,t.n=2},face:e=>({cx:e.cx,cy:e.cy+e.ry*.05,rx:e.rx*.88,ry:e.ry*.88}),decorate:(e,t,n)=>{n.extra.push(Hd(t.cx,t.cy,t.rx,t.ry,e.num(`droplet.tip`,1.4,1.65)))}},.915],[{name:`hexagon`,core:1.05,path:cf,face:ff,body:(e,t)=>{t.sides=6,t.rot=e.num(`body.rot`,-12,12),t.round=e.num(`poly.round`,.24,.5)}},.95],[{name:`sun`,core:.7,decorate:(e,t,n)=>{let r=e.int(`sun.n`,6,9),i=t.rx*e.num(`sun.dist`,1,1.08),a=t.rx*e.num(`sun.r`,.2,.26),o=e.num(`sun.rot`,0,2*Math.PI);for(let e=0;e<r;e++){let s=o+2*Math.PI*e/r;n.petals.push({cx:t.cx+Math.cos(s)*i,cy:t.cy+Math.sin(s)*i,r:a})}}},.98],[{name:`triangle`,core:1.15,path:cf,body:(e,t)=>{t.sides=3,t.rot=e.num(`body.rot`,-5,5),t.round=e.num(`poly.round`,.24,.5)},face:e=>({cx:e.cx,cy:e.cy+e.ry*.1,rx:e.rx*.54,ry:e.ry*.36})},1]],of));function vf(e,t){return`data:image/svg+xml,`+_f(e,t).replace(/"/g,`'`).replace(/[%#<>{}|\\^[\]`]/g,e=>`%`+e.charCodeAt(0).toString(16).toUpperCase()).replace(/\s+/g,` `)}var yf=Dt(`<title> </title>`),bf=Dt(`<path></path>`),xf=Dt(`<svg><!><!><g></g></svg>`),Sf=z(`<img/>`);function Cf(e,t){it(t,!0);let n=lt(t,[`$$slots`,`$$events`,`$$legacy`,`name`,`size`,`background`,`palette`,`hue`,`tone`,`normalize`,`contrast`,`title`,`animate`,`expression`,`traits`,`class`,`style`]),r=G(()=>({size:t.size,background:t.background,palette:t.palette,hue:t.hue,tone:t.tone,normalize:t.normalize,contrast:t.contrast,title:t.title,expression:t.expression,traits:t.traits})),i=G(()=>t.animate?``:vf(t.name,X(r))),a=G(()=>t.animate?xd(t.name,{...X(r),animate:t.animate}):null),o=G(()=>n),s=G(()=>n),c=G(()=>{let{alt:e,...t}=X(s);return t}),l=G(()=>[...Object.entries(X(a)?.vars??{}).map(([e,t])=>`${e}:${t}`),...t.style?[t.style]:[]].join(`;`));var u=Je(),d=Q(u),f=e=>{var n=xf();H(n,()=>({xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 100 100`,width:t.size,height:t.size,role:t.title?`img`:void 0,"aria-hidden":!t.title||void 0,class:t.class,style:X(l),...X(o)}));var r=q(n),i=e=>{var n=yf(),r=q(n,!0);F(n),W(()=>R(r,t.title)),I(e,n)};K(r,e=>{t.title&&e(i)});var s=V(r),c=e=>{var t=bf();W(()=>{J(t,`d`,X(a).bg.d),J(t,`fill`,X(a).bg.fill)}),I(e,t)};K(s,e=>{X(a).bg&&e(c)});var u=V(s);Ue(u,()=>X(a).inner,!0),F(u),F(n),W(()=>tt(u,0,St(X(a).cls))),I(e,n)},p=e=>{var n=Sf();H(n,()=>({src:X(i),width:t.size,height:t.size,alt:X(s).alt??t.title??``,class:t.class,style:t.style,...X(c)})),qe(n),I(e,n)};K(d,e=>{X(a)?e(f):e(p,-1)}),I(e,u),Et()}function wf(e=new Date){let t=E.info,n=a();if(!t||!n)throw Error(`The conversation is still loading`);let r={version:7,savedAt:e.toISOString(),model_id:t.model_id,session_id:t.id,tree:Ef(n),steerRack:[...P.entries.entries()].map(([e,t])=>({name:e,...Ef(t)})),subspaceAlong:P.subspaceAlong,customSteeringExpression:P.customExpression,probeRack:{sortMode:ke.sortMode,active:[...ke.active],entries:[...ke.entries.entries()].map(([e,t])=>({name:e,request:Ef(t.request),sparkline:[...t.sparkline],current:t.current,previous:t.previous}))},highlightState:Ef({...De}),samplingState:Ef({...m})};return Ut(r,Ht),r}async function Tf(e){let t=Ef(e);Ut(t,Ht);let n=Wt(t);return await Ot({capture:Df,async preflight(){let e=E.info;if(!e||t.model_id!==e.model_id)throw Error(`This conversation belongs to a different model`);let r=await b.validateSteering(n.steeringExpression,void 0,d.mode===`browser`?{probeRequests:n.probeRequests,tree:n.snapshot.tree}:void 0);if(!r.valid)throw Error(r.error??`Steering preflight failed`)},async apply(){await l.restore(n.snapshot.tree),await Of(n.probeRequests),jf(n),await M()},rollback:Mf}),{turns:t.tree.nodes.filter(e=>e.parent_id!==null).length,terms:t.steerRack.length,probes:t.probeRack.active.length}}function Ef(e){return JSON.parse(JSON.stringify(e))}async function Df(){let e=[...ke.entries].map(([e,t])=>[e,Ef(t)]),t=new Map(e);return{tree:await l.get(),steerEntries:[...P.entries].map(([e,t])=>[e,Ef(t)]),subspaceAlong:P.subspaceAlong,customSteeringExpression:P.customExpression,probeRequests:ke.active.map(e=>Ef(t.get(e).request)),probeEntries:e,probeSortMode:ke.sortMode,highlight:Ef({...De}),sampling:Ef({...m})}}async function Of(e){for(let e of[...ke.active])await Ae(e);for(let t of e)await pe(t.selector,{name:t.name,top_n:t.top_n})}function kf(e){P.entries.clear();for(let[t,n]of e)P.entries.set(t,Ef(n))}function Af(e){for(let[t,n]of e){let e=ke.entries.get(t);if(!e)throw Error(`Probe ${t} was not restored`);`info`in n?ke.entries.set(t,{...Ef(n),info:e.info}):ke.entries.set(t,{...e,request:Ef(n.request),sparkline:[...n.sparkline],current:n.current,previous:n.previous})}}function jf(e){kf(e.steerEntries),P.subspaceAlong=e.snapshot.subspaceAlong,P.customExpression=e.snapshot.customSteeringExpression,Object.assign(m,Ef(e.snapshot.samplingState)),Object.assign(De,Ef(e.snapshot.highlightState)),ke.sortMode=e.snapshot.probeRack.sortMode,Af(e.probeRows)}async function Mf(e){let t=[];try{await l.restore(e.tree)}catch(e){t.push(e)}try{await Of(e.probeRequests)}catch(e){t.push(e)}kf(e.steerEntries),P.subspaceAlong=e.subspaceAlong,P.customExpression=e.customSteeringExpression,Object.assign(m,e.sampling),Object.assign(De,e.highlight),ke.sortMode=e.probeSortMode;try{Af(e.probeEntries)}catch(e){t.push(e)}try{await M()}catch(e){t.push(e)}if(t.length>0)throw AggregateError(t,`Workspace rollback failed`)}var Nf=z(`<div class="storage-protection svelte-1qiwp0e" role="status"><div><strong class="svelte-1qiwp0e">Protect saved chats</strong> <p class="svelte-1qiwp0e"> </p></div> <button type="button" class="quiet-button svelte-1qiwp0e"> </button></div>`),Pf=z(`<p class="error svelte-1qiwp0e" role="alert"> </p>`),Ff=z(`<p class="notice svelte-1qiwp0e">Wait for the current reply to finish before opening another chat.</p>`),If=z(`<p class="empty svelte-1qiwp0e">Loading saved chats…</p>`),Lf=z(`<div class="empty-state svelte-1qiwp0e"><strong class="svelte-1qiwp0e"> </strong> <p class="svelte-1qiwp0e"> </p></div>`),Rf=z(`<label class="rename-field svelte-1qiwp0e"><span class="sr-only svelte-1qiwp0e">Conversation name</span> <input maxlength="120" class="svelte-1qiwp0e"/></label>`),zf=z(`<strong> </strong>`),Bf=z(`<span class="current-label svelte-1qiwp0e">Open now</span>`),Vf=z(`<div class="card-actions svelte-1qiwp0e"><button type="button" class="quiet-button svelte-1qiwp0e">Cancel</button> <button type="button" class="button compact svelte-1qiwp0e">Save name</button></div>`),Hf=z(`<div class="confirm-row svelte-1qiwp0e" role="group"><p class="svelte-1qiwp0e"> </p> <button type="button" class="quiet-button svelte-1qiwp0e">Cancel</button> <button type="button" class="danger-button svelte-1qiwp0e">Delete</button></div>`),Uf=z(`<div class="card-actions svelte-1qiwp0e"><button> </button> <button type="button" class="quiet-button svelte-1qiwp0e">Rename</button> <button type="button" class="quiet-button svelte-1qiwp0e">Download</button> <button type="button" class="quiet-button svelte-1qiwp0e">Duplicate</button> <button type="button" class="quiet-button danger-text svelte-1qiwp0e">Delete</button></div>`),Wf=z(`<article role="listitem"><div class="card-main svelte-1qiwp0e"><button><!></button> <div class="card-copy svelte-1qiwp0e"><!> <span class="card-meta svelte-1qiwp0e"><span class="model svelte-1qiwp0e"> <!></span> <!></span></div> <time> </time></div> <!></article>`),Gf=z(`<div class="confirm-row svelte-1qiwp0e" role="group" aria-label="Confirm deletion of unavailable saved chat"><p class="svelte-1qiwp0e">Delete this saved data? This cannot be undone.</p> <button type="button" class="quiet-button svelte-1qiwp0e">Cancel</button> <button type="button" class="danger-button svelte-1qiwp0e">Delete</button></div>`),Kf=z(`<div class="card-actions svelte-1qiwp0e"><span>Could not read this chat</span> <button type="button" class="quiet-button danger-text svelte-1qiwp0e">Delete</button></div>`),qf=z(`<article class="conversation-card unavailable svelte-1qiwp0e" role="listitem"><div class="card-main svelte-1qiwp0e"><div class="unavailable-avatar svelte-1qiwp0e" aria-hidden="true">?</div> <div class="card-copy svelte-1qiwp0e"><strong class="svelte-1qiwp0e"> </strong> <span class="model svelte-1qiwp0e">The saved data is still in storage.</span></div></div> <!></article>`),Jf=z(`<div class="conversation-list svelte-1qiwp0e" role="list" aria-label="Saved conversations"><!> <!></div>`),Yf=z(`<section class="drawer-shell svelte-1qiwp0e" aria-label="Saved conversations drawer"><header class="header svelte-1qiwp0e"><div class="svelte-1qiwp0e"><h2 class="title svelte-1qiwp0e">Saved chats</h2> <p class="svelte-1qiwp0e">Named conversations stay on this device until you delete them. Click an avatar for a new one.</p></div> <!></header> <div class="toolbar svelte-1qiwp0e"><label class="search-field svelte-1qiwp0e"><span class="sr-only svelte-1qiwp0e">Search saved chats</span> <input type="search" placeholder="Search saved chats…" class="svelte-1qiwp0e"/></label> <input class="file-input svelte-1qiwp0e" type="file" accept=".drowsechat,.polytheticchat,.saklaschat,.json,application/json" aria-label="Import Drowse conversation file" tabindex="-1"/> <div class="toolbar-actions svelte-1qiwp0e"><button type="button" class="button primary svelte-1qiwp0e">Save current chat</button> <button type="button" class="button svelte-1qiwp0e"> </button></div></div> <!> <div class="body svelte-1qiwp0e"><!> <!> <!></div></section>`);function Xf(e,t){it(t,!0),lt(t,[`$$slots`,`$$events`,`$$legacy`]),bt(()=>void t.params);let n=Y(null),r=Y(pt([])),i=Y(pt([])),a=Y(``),o=Y(!0),s=Y(null),c=Y(null),l=Y(null),u=Y(null),d=Y(null),f=Y(null),p=Y(``),m=Y(!1),h=Y(null),g=Y(`checking`),_=Y(!1),v=Y(!1),y=G(()=>E.info?.model_id??null),b=G(()=>{let e=X(a).trim().toLocaleLowerCase();return e?X(r).filter(t=>t.name.toLocaleLowerCase().includes(e)||Vt(t.modelId).toLocaleLowerCase().includes(e)):X(r)});ht(()=>{C(),x()});async function x(){if(!navigator.storage?.persisted)U(g,`unavailable`);else try{U(g,await navigator.storage.persisted()?`protected`:`unprotected`,!0)}catch{U(g,`unavailable`)}}async function S(){U(_,!0);try{let e=await Rt();U(g,e===!0?`protected`:e===!1?`unprotected`:`unavailable`,!0),U(v,e!==!0),e&&N(`Saved chats are protected from automatic browser cleanup.`,{kind:`info`})}finally{U(_,!1)}}ht(()=>Pt(C));async function C(){U(o,!0),U(s,null);try{let e=await Bt.listSummaries();U(r,e.conversations,!0),U(i,e.issues,!0)}catch(e){U(s,jn(e,`Saved conversations could not be opened.`),!0)}finally{U(o,!1)}}async function w(e){if(!(e.modelId!==X(y)||me.active)){U(c,e.id,!0),U(s,null);try{await Lt();let t=await Bt.get(e.id);await Tf(t.snapshot),zt.activeId=e.id,zt.avatarSeed=t.avatarSeed,zt.accent=t.accent??`purple`,N(`Opened “${e.name}”.`,{kind:`info`}),ar()}catch(e){U(s,jn(e,`This conversation could not be opened. Your current work was left unchanged.`),!0)}finally{U(c,null)}}}async function T(e){U(l,e.id,!0),U(s,null);try{let t=await Bt.update(e.id,{avatarSeed:At()});zt.activeId===e.id&&(zt.avatarSeed=t.avatarSeed),ne(t)}catch(e){U(s,jn(e,`The avatar could not be changed.`),!0)}finally{U(l,null)}}function D(e){U(d,null),U(f,e.id,!0),U(p,e.name,!0),Ke().then(()=>{X(h)?.focus(),X(h)?.select()})}async function O(e){U(l,e.id,!0),U(s,null);try{ne(await Bt.update(e.id,{name:X(p)})),U(f,null)}catch(e){U(s,jn(e,`The conversation could not be renamed.`),!0)}finally{U(l,null)}}function k(e,t){e.key===`Enter`?(e.preventDefault(),X(p).trim()&&X(l)!==t.id&&O(t)):e.key===`Escape`&&(e.preventDefault(),U(f,null))}function A(e){U(f,null),U(d,e,!0)}async function j(e){U(l,e,!0),U(s,null);try{await Bt.delete(e),U(r,X(r).filter(t=>t.id!==e),!0),U(i,X(i).filter(t=>t.id!==e),!0),U(d,null),N(`Saved conversation deleted.`,{kind:`info`})}catch(e){U(s,jn(e,`The saved conversation could not be deleted.`),!0)}finally{U(l,null)}}async function M(e){U(l,e.id,!0),U(s,null);try{await Lt(),await hn(Bt,e.id)}catch(e){U(s,jn(e,`This conversation could not be exported. Your saved chat was not changed.`),!0)}finally{U(l,null)}}async function ee(e){let t=e.currentTarget,n=t.files?.[0]??null;if(t.value=``,n&&!X(m)){U(m,!0),U(s,null);try{let e=await cn(n,Bt);U(r,[jt(e),...X(r)],!0),N(`Imported “${e.name}” as a separate chat.`,{kind:`info`}),Rt()}catch(e){U(s,jn(e,`This conversation file could not be imported.`),!0)}finally{U(m,!1)}}}async function te(e){if(!(X(l)!==null||X(m)||X(c)!==null)){U(l,e.id,!0),U(u,e.id,!0),U(s,null);try{await Lt();let t=await Bt.duplicate(e.id);U(r,[jt(t),...X(r)],!0),N(`Created “${t.name}”. The original chat is unchanged.`,{kind:`info`})}catch(e){U(s,jn(e,`The chat could not be duplicated. The original chat was not changed.`),!0)}finally{U(l,null),U(u,null)}}}function ne(e){U(r,X(r).map(t=>t.id===e.id?jt(e):t),!0)}function P(e){let t=e-Date.now();for(let[e,n]of[[`year`,31536e6],[`month`,2592e6],[`day`,864e5],[`hour`,36e5],[`minute`,6e4]])if(Math.abs(t)>=n||e===`minute`){let r=Math.round(t/n);return new Intl.RelativeTimeFormat(void 0,{numeric:`auto`}).format(r,e)}return`just now`}function re(e){return new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`}).format(new Date(e))}var ie=Yf(),ae=q(ie);Dr(V(q(ae),2),{get onclick(){return ar}}),F(ae);var oe=V(ae,2),se=q(oe),ce=V(q(se),2);ot(ce),F(se);var le=V(se,2);nt(le,e=>U(n,e),()=>X(n));var ue=V(le,2),de=q(ue),fe=V(de,2),pe=q(fe,!0);F(fe),F(ue),F(oe);var he=V(oe,2),ge=e=>{var t=Nf(),n=q(t),r=V(q(n),2),i=q(r,!0);F(r),F(n);var a=V(n,2),o=q(a,!0);F(a),F(t),W(()=>{R(i,X(v)?`Your browser did not grant protection. Your chats are still saved locally.`:`Automatic browser cleanup protection is off.`),a.disabled=X(_),R(o,X(_)?`Checking…`:X(v)?`Try again`:`Protect storage`)}),B(`click`,a,()=>void S()),I(e,t)};K(he,e=>{!X(o)&&X(r).length>0&&X(g)===`unprotected`&&e(ge)});var _e=V(he,2),ve=q(_e),ye=e=>{var t=Pf(),n=q(t,!0);F(t),W(()=>R(n,X(s))),I(e,t)};K(ve,e=>{X(s)&&e(ye)});var be=V(ve,2),xe=e=>{var t=Ff();I(e,t)};K(be,e=>{me.active&&e(xe)});var Se=V(be,2),Ce=e=>{var t=If();I(e,t)},we=e=>{var t=Lf(),n=q(t),r=q(n,!0);F(n);var i=V(n,2),o=q(i,!0);F(i),F(t),W((e,t)=>{R(r,e),R(o,t)},[()=>X(a).trim()?`No matches`:`No saved chats yet`,()=>X(a).trim()?`Try a different name or model.`:`Save the current chat to name it and keep its full loom.`]),I(e,t)},Te=e=>{var t=Jf(),n=q(t);L(n,17,()=>X(b),e=>e.id,(e,t)=>{let n=G(()=>X(t).modelId===X(y));var r=Wf();let i;var a=q(r),o=q(a),s=()=>void T(X(t));H(o,()=>({type:`button`,class:`avatar-button`,"aria-busy":X(l)===X(t).id,onclick:s,disabled:X(l)===X(t).id,"aria-label":`Generate another avatar for ${X(t).name}`,"aria-description":`Generate another avatar`}),void 0,void 0,void 0,`svelte-1qiwp0e`),Cf(q(o),{get name(){return X(t).avatarSeed},size:62,background:`circle`,alt:``}),F(o);var g=V(o,2),_=q(g),v=e=>{var n=Rf(),r=V(q(n),2);ot(r),nt(r,e=>U(h,e),()=>X(h)),F(n),W(()=>r.disabled=X(l)===X(t).id),B(`keydown`,r,e=>k(e,X(t))),at(r,()=>X(p),e=>U(p,e)),I(e,n)},b=e=>{var n=zf();H(n,()=>({"aria-description":X(t).name,dir:`auto`}),void 0,void 0,void 0,`svelte-1qiwp0e`);var r=q(n,!0);F(n),W(()=>{R(r,X(t).name),n.dir=n.dir}),I(e,n)};K(_,e=>{X(f)===X(t).id?e(v):e(b,-1)});var x=V(_,2),S=q(x),C=q(S,!0),N=V(C),ee=e=>{Tu(e,{})};K(N,e=>{(X(t).modelType===`base`||X(n)&&E.info?.is_base_model)&&e(ee)}),F(S);var ne=V(S,2),ie=e=>{var t=Bf();I(e,t)};K(ne,e=>{zt.activeId===X(t).id&&e(ie)}),F(x),F(g);var ae=V(g,2);H(ae,(e,t)=>({datetime:e,...t}),[()=>new Date(X(t).updatedAt).toISOString(),()=>({"aria-description":re(X(t).updatedAt)})],void 0,void 0,`svelte-1qiwp0e`);var oe=q(ae,!0);F(ae),F(a);var se=V(a,2),ce=e=>{var n=Vf(),r=q(n),i=V(r,2);F(n),W(e=>i.disabled=e,[()=>!X(p).trim()||X(l)===X(t).id]),B(`click`,r,()=>U(f,null)),B(`click`,i,()=>void O(X(t))),I(e,n)},le=e=>{var n=Hf(),r=q(n),i=q(r);F(r);var a=V(r,2),o=V(a,2);F(n),W(()=>{J(n,`aria-label`,`Confirm deletion of ${X(t).name}`),R(i,`Delete “${X(t).name??``}”? This cannot be undone.`),o.disabled=X(l)===X(t).id}),B(`click`,a,()=>U(d,null)),B(`click`,o,()=>void j(X(t).id)),I(e,n)},ue=e=>{var r=Uf(),i=q(r),a=()=>void w(X(t));H(i,e=>({type:`button`,class:`button primary compact`,onclick:a,disabled:!X(n)||me.active||X(c)!==null,...e}),[()=>({"aria-description":X(n)?void 0:`Load ${Vt(X(t).modelId)} to open this chat`})],void 0,void 0,`svelte-1qiwp0e`);var o=q(i,!0);F(i);var s=V(i,2),d=V(s,2),f=V(d,2),p=V(f,2);F(r),W(()=>{R(o,X(c)===X(t).id?`Opening…`:X(n)?`Open`:`Different model`),d.disabled=X(l)!==null,f.disabled=X(l)!==null||X(m)||X(c)!==null,J(f,`aria-label`,`Duplicate ${X(t).name}`),J(f,`aria-busy`,X(u)===X(t).id)}),B(`click`,s,()=>D(X(t))),B(`click`,d,()=>void M(X(t))),B(`click`,f,()=>void te(X(t))),B(`click`,p,()=>A(X(t).id)),I(e,r)};K(se,e=>{X(f)===X(t).id?e(ce):X(d)===X(t).id?e(le,1):e(ue,-1)}),F(r),W((e,n,a)=>{i=tt(r,1,`conversation-card svelte-1qiwp0e`,null,i,{current:zt.activeId===X(t).id}),J(r,`data-saved-conversation`,X(t).id),J(r,`data-chat-accent`,X(t).accent??`purple`),st(r,e),R(C,n),R(oe,a)},[()=>Mt(X(t).accent),()=>Vt(X(t).modelId),()=>P(X(t).updatedAt)]),I(e,r)});var r=V(n,2);L(r,17,()=>X(i),e=>e.id,(e,t)=>{var n=qf(),r=q(n),i=V(q(r),2),a=q(i),o=q(a,!0);F(a),Ze(2),F(i),F(r);var s=V(r,2),c=e=>{var n=Gf(),r=V(q(n),2),i=V(r,2);F(n),B(`click`,r,()=>U(d,null)),B(`click`,i,()=>void j(X(t).id)),I(e,n)},l=e=>{var n=Kf(),r=q(n);H(r,e=>({class:`issue-reason`,...e}),[()=>({"aria-description":jn(X(t).reason,`This saved chat could not be read. The data is still in storage.`)})],void 0,void 0,`svelte-1qiwp0e`);var i=V(r,2);F(n),B(`click`,i,()=>A(X(t).id)),I(e,n)};K(s,e=>{X(d)===X(t).id?e(c):e(l,-1)}),F(n),W(()=>R(o,X(t).name||`Unavailable saved chat`)),I(e,n)}),F(t),I(e,t)};K(Se,e=>{X(o)?e(Ce):X(b).length===0&&X(i).length===0?e(we,1):e(Te,-1)}),F(_e),F(ie),W(()=>{de.disabled=me.active,fe.disabled=X(m),J(fe,`aria-busy`,X(m)),R(pe,X(m)?`Importing…`:`Import file`)}),at(ce,()=>X(a),e=>U(a,e)),B(`change`,le,ee),B(`click`,de,()=>ir(`save_conversation`)),B(`click`,fe,()=>X(n)?.click()),I(e,ie),Et()}Ge([`change`,`click`,`keydown`]);var Zf=z(`<section class="drawer-shell svelte-17cq88b" aria-label="Unavailable runtime drawer"><header class="svelte-17cq88b"><div><h2 class="svelte-17cq88b">This tool is not available here</h2> <p class="svelte-17cq88b">Close this panel and choose an available action from All tools.</p></div> <!></header></section>`);function Qf(e,t){it(t,!0),lt(t,[`$$slots`,`$$events`,`$$legacy`]),bt(()=>void t.params);var n=Zf(),r=q(n);Dr(V(q(r),2),{get onclick(){return ar}}),F(r),F(n),I(e,n),Et()}var $f=z(`<p id="surface-error" role="alert" class="svelte-1kkyvr6"> </p>`),ep=z(`<section class="surface-card svelte-1kkyvr6" aria-labelledby="surface-result"><p class="eyebrow svelte-1kkyvr6"> </p> <h3 id="surface-result" tabindex="-1" class="svelte-1kkyvr6"> </h3> <p class="svelte-1kkyvr6"> </p> <p class="svelte-1kkyvr6"> </p> <details><summary class="svelte-1kkyvr6">Evidence details</summary> <p class="svelte-1kkyvr6">Homology over two coefficient fields helps distinguish orientable surfaces from non-orientable ones.</p> <dl class="svelte-1kkyvr6"><dt>Betti numbers (mod 2)</dt><dd class="svelte-1kkyvr6"> </dd> <dt>Betti numbers (mod 3)</dt><dd class="svelte-1kkyvr6"> </dd> <dt>Relative persistence</dt><dd class="svelte-1kkyvr6"> </dd></dl></details></section>`),tp=z(`<form class="svelte-1kkyvr6"><label for="surface-points" class="svelte-1kkyvr6">Point coordinates</label> <p id="surface-input-help" class="svelte-1kkyvr6">Paste a JSON array with 32–384 distinct points in 2–1,024 dimensions. Use synthetic Euclidean coordinates; model activations require whitening first.</p> <textarea id="surface-points" spellcheck="false" rows="6" class="svelte-1kkyvr6"></textarea> <div class="actions svelte-1kkyvr6"><!> <!></div> <p role="status" class="svelte-1kkyvr6"> </p> <!></form> <!> <!>`,1),np=z(`<div class="surface-card svelte-1kkyvr6"><h3 class="svelte-1kkyvr6">Available in the native Python app</h3> <p class="svelte-1kkyvr6">This browser release cannot inspect topology or steer on Klein bottles and RP² yet. Open Drowse’s native dashboard to use these tools.</p> <p class="svelte-1kkyvr6">Surface inspection also needs the <code>drowse[topology]</code> Python extra. No language model is needed for the inspection itself.</p></div>`),rp=z(`<section class="drawer-shell svelte-1kkyvr6" aria-label="Surface geometry"><header class="header svelte-1kkyvr6"><h2 class="svelte-1kkyvr6">Surface geometry</h2> <!></header> <div class="body svelte-1kkyvr6"><p class="svelte-1kkyvr6">Inspect a sampled surface, then author coordinates separately to steer on it.</p> <div class="surface-card svelte-1kkyvr6"><h3 class="svelte-1kkyvr6">What can be identified?</h3> <p class="svelte-1kkyvr6">Spheres, tori, Klein bottles, and real projective planes. Sparse, noisy, or very thin surfaces may remain unresolved.</p> <p class="svelte-1kkyvr6">A match is evidence of topology, not proof that the samples form a closed surface. It does not recover a steering chart.</p></div> <!></div></section>`);function ip(t,n){it(n,!0);let r=d.mode===`http`&&!!e.inspectSurface,i=Y(``),a=Y(!1),o=Y(``),s=Y(null),c=Y(void 0),l=Y(void 0),u=0;yt(()=>{u++});function f(){u++,U(s,null),U(o,``)}async function p(t){if(t.preventDefault(),X(a)||!r||!e.inspectSurface)return;U(s,null),U(o,``);let n;try{n=Ao(X(i))}catch(e){U(o,e.message,!0),await Ke(),X(c)?.focus();return}let d=u;U(a,!0);try{let t=await e.inspectSurface(n);if(u!==d)return;U(s,t,!0),await Ke(),X(l)?.focus(),X(l)?.scrollIntoView({block:`start`})}catch(e){u===d&&U(o,An(e),!0)}finally{U(a,!1)}}var m=rp(),h=q(m);Dr(V(q(h),2),{get onclick(){return ar}}),F(h);var g=V(h,2),_=V(q(g),4),v=e=>{var t=tp(),n=Q(t),r=V(q(n),4);_t(r),nt(r,e=>U(c,e),()=>X(c));var u=V(r,2),d=q(u);zs(d,{get disabled(){return X(a)},onclick:()=>{U(i,JSON.stringify(jo()),!0),f()},children:(e,t)=>{Ze();var n=Qe(`Use sphere example`);I(e,n)},$$slots:{default:!0}}),zs(V(d,2),{variant:`solid`,type:`submit`,get disabled(){return X(a)},children:(e,t)=>{{let t=G(()=>X(a)?`Inspecting…`:`Inspect surface`);$(e,{get text(){return X(t)}})}},$$slots:{default:!0}}),F(u);var m=V(u,2),h=q(m,!0);F(m);var g=V(m,2),_=e=>{var t=$f(),n=q(t,!0);F(t),W(()=>R(n,X(o))),I(e,t)};K(g,e=>{X(o)&&e(_)}),F(n);var v=V(n,2),y=e=>{var t=ep(),n=q(t),r=q(n,!0);F(n);var i=V(n,2),a=q(i,!0);F(i),nt(i,e=>U(l,e),()=>X(l));var o=V(i,2),c=q(o,!0);F(o);var u=V(o,2),d=q(u);F(u);var f=V(u,2),p=V(q(f),4),m=V(q(p)),h=q(m,!0);F(m);var g=V(m,3),_=q(g,!0);F(g);var v=V(g,3),y=q(v);F(v),F(p),F(f),F(t),W((e,t,n,i)=>{R(r,X(s).candidate?`Topology suggestion`:`No reliable match`),R(a,e),R(c,X(s).reason),R(d,`${X(s).sample_count??``} points inspected · No steering coordinates recovered`),R(h,t),R(_,n),R(y,`${i??``} · not a confidence probability`)},[()=>Oo(X(s).candidate),()=>X(s).betti_mod2?.join(`, `)??`Not resolved`,()=>X(s).betti_mod3?.join(`, `)??`Not resolved`,()=>X(s).relative_persistence?.toFixed(3)??`Not available`]),I(e,t)};K(v,e=>{X(s)&&e(y)}),zs(V(v,2),{onclick:()=>ir(`manifold_builder`),children:(e,t)=>{Ze();var n=Qe(`Create a manifold with coordinates`);I(e,n)},$$slots:{default:!0}}),W(e=>{r.readOnly=X(a),J(r,`aria-invalid`,e),J(r,`aria-describedby`,`surface-input-help${X(o)?` surface-error`:``}`),R(h,X(a)?`Computing surface evidence locally. This can take a minute; generation is unchanged.`:``)},[()=>!!X(o)]),$e(`submit`,n,p),B(`input`,r,f),at(r,()=>X(i),e=>U(i,e)),I(e,t)},y=e=>{var t=np();I(e,t)};K(_,e=>{r?e(v):e(y,-1)}),F(g),F(m),I(t,m),Et()}Ge([`input`]);var ap=z(`<p class="muted svelte-1nhgk63">Create or download at least two learned response controls first.</p>`),op=z(`<li class="source"><label class="source-label svelte-1nhgk63"><input type="checkbox"/> <span class="row-name svelte-1nhgk63"> </span> <span class="row-sub svelte-1nhgk63"> </span></label></li>`),sp=z(`<p class="warn svelte-1nhgk63"> </p>`),cp=z(`<!> Combining…`,1),lp=z(`<form class="form svelte-1nhgk63"><fieldset class="sources svelte-1nhgk63"><legend class="svelte-1nhgk63">Response controls <span class="optional svelte-1nhgk63">(choose at least two)</span></legend> <ul class="source-list svelte-1nhgk63" role="list"></ul></fieldset> <label class="field svelte-1nhgk63"><span class="label svelte-1nhgk63">New control name</span> <input type="text" placeholder="combined" aria-label="New combined response control name" autocomplete="off" spellcheck="false" class="svelte-1nhgk63"/></label> <label class="field svelte-1nhgk63"><span class="label svelte-1nhgk63">Layout method</span> <!></label> <!> <footer class="foot svelte-1nhgk63"><button type="button" class="secondary svelte-1nhgk63">Cancel</button> <button><!></button></footer></form>`),up=z(`<section class="drawer-shell svelte-1nhgk63" aria-label="Combine response controls"><header class="header svelte-1nhgk63"><h2 class="title svelte-1nhgk63">Combine response controls</h2> <!></header> <div class="body svelte-1nhgk63"><!></div></section>`);function dp(t,r){it(r,!0),lt(r,[`$$slots`,`$$events`,`$$legacy`]),bt(()=>{r.params});function i(e){return`${e.namespace}/${e.name}`}function a(e){return e.fit_mode===`pca`||e.fit_mode===`spectral`||e.fit_mode===`auto`}let o=new Le,s=Y(``),c=Y(``),l=Y(!1),u=G(()=>P.catalog.filter(e=>a(e)));function d(e){o.has(e)?o.delete(e):o.add(e)}let f=G(()=>{let e=new Set;for(let t of o){let n=P.catalog.find(e=>i(e)===t);n&&n.fit_mode&&e.add(n.fit_mode)}return[...e].sort()}),p=G(()=>!X(l)&&o.size>=2&&X(s).trim().length>0&&(X(f).length<=1||X(c)!==``));async function m(t){t.preventDefault();let r=X(s).trim();if(o.size<2){N(`pick >= 2 discover manifolds to merge`,{kind:`error`});return}if(!r){N(`target name required`,{kind:`error`});return}let i=[...o].map(e=>{let[t,n]=e.split(`/`);return{namespace:t,name:n}});U(l,!0);let a=N(`merging ${i.length} manifolds into '${r}'…`,{kind:`info`,ttlMs:null});try{await e.merge({name:r,sources:i,fit_mode:X(c)||void 0}),await y(),n(a),N(`Merged into local/${r}. Fit the merged manifold next.`,{kind:`info`}),ar()}catch(e){n(a),N(`Couldn't merge the manifolds: ${An(e)}`,{kind:`error`,ttlMs:null})}finally{U(l,!1)}}ht(()=>{y()}),ht(()=>Nn(`manifold_merge`,{schema:yr,read:()=>({busy:X(l),values:{sources:[...o],target_name:X(s),fit_mode:X(c)},available_sources:X(u).map(i),can_submit:X(p)}),update:async e=>{if(X(l))throw new Ln(`BUSY`,`Wait for this interface operation to finish.`);if(e.sources&&e.sources.some(e=>!X(u).some(t=>i(t)===e)))throw new Ln(`NOT_FOUND`,`Choose merge sources from available_sources.`);if(e.sources!==void 0){o.clear();for(let t of e.sources)o.add(t)}e.target_name!==void 0&&U(s,e.target_name,!0),e.fit_mode!==void 0&&U(c,e.fit_mode,!0)}}));var h=up(),g=q(h);Dr(V(q(g),2),{get onclick(){return ar}}),F(g);var _=V(g,2),v=q(_),b=e=>{var t=ap();I(e,t)},x=e=>{var t=lp(),n=q(t),r=V(q(n),2);L(r,21,()=>X(u),e=>i(e),(e,t)=>{let n=G(()=>i(X(t)));var r=op(),a=q(r),s=q(a);ot(s);var c=V(s,2),u=q(c,!0);F(c);var f=V(c,2),p=q(f);F(f),F(a),F(r),W(e=>{mt(s,e),s.disabled=X(l),R(u,X(n)),R(p,`${X(t).domain_label??``} · ${X(t).node_count??``} nodes ·
115
+ ${X(t).fit_mode??``}`)},[()=>o.has(X(n))]),B(`change`,s,()=>d(X(n))),I(e,r)}),F(r),F(n);var a=V(n,2),h=V(q(a),2);ot(h),F(a);var g=V(a,2),_=V(q(g),2);{let e=G(()=>X(l)||o.size===0),t=G(()=>[...X(f).length<=1?[{value:``,label:`Match the source (${X(f)[0]??`automatic`})`}]:[],{value:`pca`,label:`pca`},{value:`spectral`,label:`spectral`}]);Io(_,{ariaLabel:`Combined response control layout method`,get disabled(){return X(e)},get options(){return X(t)},get value(){return X(c)},set value(e){U(c,e,!0)}})}F(g);var v=V(g,2),y=e=>{var t=sp(),n=q(t);F(t),W(e=>R(n,`The selected controls use different layout methods: ${e??``}.`),[()=>X(f).join(`, `)]),I(e,t)};K(v,e=>{X(f).length>1&&e(y)});var b=V(v,2),x=q(b),S=V(x,2);H(S,e=>({type:`submit`,class:`primary`,disabled:!X(p),...e}),[()=>({"aria-description":o.size<2?`Choose at least two response controls`:X(s).trim()?`Combine controls`:`Enter a name for the combined control`})],void 0,void 0,`svelte-1nhgk63`);var C=q(S),w=e=>{var t=cp();Gn(Q(t),{name:`refresh`,spin:!0}),Ze(),I(e,t)},T=e=>{var t=Qe();W(()=>R(t,`Combine ${o.size??``} controls`)),I(e,t)};K(C,e=>{X(l)?e(w):e(T,-1)}),F(S),F(b),F(t),W(()=>h.disabled=X(l)),$e(`submit`,t,m),at(h,()=>X(s),e=>U(s,e)),B(`click`,x,function(...e){ar?.apply(this,e)}),I(e,t)};K(v,e=>{X(u).length<2?e(b):e(x,-1)}),F(_),F(h),I(t,h),Et()}Ge([`change`,`click`]);var fp=z(`<button id="packs-tab-search" type="button" role="tab" aria-controls="packs-panel">Hugging Face</button>`),pp=z(`<label><span><!></span> <input type="file" accept=".drowse,application/zip" class="svelte-lozhsl"/></label>`),mp=z(`<p class="muted svelte-lozhsl"> </p>`),hp=z(`<p class="install-stage svelte-lozhsl" aria-live="polite"><!><!></p>`),gp=z(`<p class="error svelte-lozhsl" role="alert"> </p>`),_p=z(`<div class="replace-warning svelte-lozhsl" role="alert"><span>This replaces the installed pack and its included templates. The current files stay in place until the replacement passes verification.</span> <button type="button" class="svelte-lozhsl">replace installed pack</button> <button type="button" class="svelte-lozhsl">keep current pack</button></div>`),vp=z(`<p class="muted svelte-lozhsl">loading portable packs…</p>`),yp=z(`<span class="svelte-lozhsl"> </span> <button type="button" class="danger svelte-lozhsl">Delete pack</button> <button type="button" class="svelte-lozhsl">cancel</button>`,1),bp=z(`<button type="button" class="svelte-lozhsl">delete</button>`),xp=z(`<li class="svelte-lozhsl"><div class="svelte-lozhsl"><strong class="svelte-lozhsl"> </strong> <span class="svelte-lozhsl"> </span> <span class="svelte-lozhsl">Publisher unverified</span></div> <div class="actions svelte-lozhsl"><button type="button" class="svelte-lozhsl"><!></button> <!></div></li>`),Sp=z(`<ul class="archive-list svelte-lozhsl" role="list"></ul>`),Cp=z(`<section class="archive-tools svelte-lozhsl" aria-labelledby="archive-tools-title"><div class="archive-heading svelte-lozhsl"><div><h2 id="archive-tools-title" class="svelte-lozhsl">Portable control files</h2> <p class="svelte-lozhsl">Checksums verify archive integrity, not the publisher’s identity.</p></div> <!></div> <!> <!> <!> <!></section>`),wp=z(`<p class="muted svelte-lozhsl">loading manifolds…</p>`),Tp=z(`<p class="muted svelte-lozhsl"> </p>`),Ep=z(`<span> </span>`),Dp=z(`<span class="fit-tag svelte-lozhsl">fitted</span>`),Op=z(`<span class="stale svelte-lozhsl">stale</span>`),kp=z(`<li><div class="meta svelte-lozhsl"><span class="row-name svelte-lozhsl"> </span> <span class="row-sub svelte-lozhsl"> <!> <!> <!></span></div></li>`),Ap=z(`<ul class="rows svelte-lozhsl" role="list"></ul>`),jp=z(`<!> <!>`,1),Mp=z(`<p class="muted svelte-lozhsl">Only public, browser-compatible Drowse packs appear here.</p>`),Np=z(`<p class="muted svelte-lozhsl">searching…</p>`),Pp=z(`<p class="error svelte-lozhsl" role="alert"> </p>`),Fp=z(`<p class="muted svelte-lozhsl"> </p>`),Ip=z(`<span> </span>`),Lp=z(`<span class="hf-fit-count svelte-lozhsl"> </span>`),Rp=z(`<span class="install-stage svelte-lozhsl" aria-live="polite"><!></span>`),zp=z(`<li><div class="meta svelte-lozhsl"><span class="row-name svelte-lozhsl"> </span> <span class="row-sub svelte-lozhsl"> <!> <!></span> <!></div> <div class="actions svelte-lozhsl"><button><!></button></div></li>`),Bp=z(`<ul class="rows svelte-lozhsl" role="list"></ul>`),Vp=z(`<div class="search svelte-lozhsl"><label class="search-label svelte-lozhsl"><span class="vh svelte-lozhsl">search query</span> <input type="search" placeholder="Search Hugging Face…" aria-label="Search HF for drowse-manifold repos" class="svelte-lozhsl"/></label> <!></div>`),Hp=z(`<div class="drawer-shell svelte-lozhsl"><header class="header svelte-lozhsl"><h2 class="title svelte-lozhsl">Downloaded response controls</h2> <!></header> <div class="tabs svelte-lozhsl" role="tablist" aria-label="Manifold pack views"><button id="packs-tab-installed" type="button" role="tab" aria-controls="packs-panel">Installed</button> <!></div> <div class="body svelte-lozhsl" id="packs-panel" role="tabpanel"><p class="catalog-count"><!></p> <!></div></div>`);function Up(t,n){it(n,!0),lt(n,[`$$slots`,`$$events`,`$$legacy`]),bt(()=>{n.params});let r=Y(`installed`),i=Y(``),a=Y(pt([])),o=Y(!1),s=Y(null),c=Y(null),l=Y(null),u=d.mode!==`http`,f=ee(`manifold_artifacts`),p=!u||f.available,m=Y(null),h=Y(null),g=Y(pt([])),_=Y(!1),v=Y(null),b=Y(null),x=Y(null),S=Y(null),C=Y(null),w=null;function T(){w&&clearTimeout(w);let e=X(i).trim();e?(U(o,!0),w=setTimeout(()=>{E(e)},300)):(U(a,[],!0),U(s,null),U(o,!1))}async function E(t){try{let n=await e.search(t,20);U(a,n.results??[],!0),U(s,null)}catch(e){U(a,[],!0),e instanceof Mn?e.status===503?U(s,u?`Hugging Face search is unavailable. Check your connection and try again.`:'huggingface_hub isn\'t installed on the server. Run `pip install -e ".[serve]"` and restart.',!0):e.status===502?U(s,jn(e,`Hugging Face search was interrupted. Check your connection and try again.`),!0):U(s,jn(e,`Unable to search Hugging Face. Try again.`),!0):U(s,jn(e,`Unable to search Hugging Face. Try again.`),!0)}finally{U(o,!1)}}async function D(e){let t=typeof e.repository==`string`?e.repository:`${e.namespace}/${e.name}`,n=ie(e),i=typeof e.revision==`string`?`${t}@${e.revision}`:t;U(c,n,!0),U(l,null);try{let e=await ve({target:i},e=>{if(e.event===`progress`){let t=e.data;if(t?.message)U(l,t.message,!0);else if(t?.phase===`downloading`&&t.downloadedBytes!==void 0){let e=`${(t.downloadedBytes/1e6).toFixed(1)} MB`,n=t.totalBytes?` of ${(t.totalBytes/1e6).toFixed(1)} MB`:``;U(l,`Downloading ${e}${n}`)}else t?.phase&&U(l,`${t.phase[0].toUpperCase()}${t.phase.slice(1)} archive`)}});await y(),U(r,`installed`),N(`installed ${e.namespace}/${e.name}`,{kind:`info`})}catch(e){e instanceof Mn?e.status===503?N(u?`Hugging Face install is unavailable. Check your connection and try again.`:`huggingface_hub isn't installed on the server`,{kind:`error`,ttlMs:null}):e.status===502?N(jn(e,`The Hugging Face download was interrupted. Check your connection and try again.`),{kind:`error`,ttlMs:null}):e.status===409?N(`${n} is already installed`,{kind:`error`,ttlMs:null}):N(jn(e,`Unable to install ${n}. Check the pack and try again.`),{kind:`error`,ttlMs:null}):N(jn(e,`Unable to install ${n}. Check the pack and try again.`),{kind:`error`,ttlMs:null})}finally{U(c,null),U(l,null)}}async function O(){if(u&&f.available){U(_,!0);try{U(g,(await e.drowseArchiveList()).packs,!0),U(b,null)}catch(e){U(b,te(e),!0)}finally{U(_,!1)}}}async function k(t,n=!1){if(!t.name.toLowerCase().endsWith(`.drowse`))U(b,`Choose a .drowse file.`);else{U(v,`import`),U(b,null),U(x,`Inspecting archive`);try{let r=await e.drowseArchiveInstall(t,{force:n},e=>{if(!e.data||typeof e.data!=`object`)return;let t=e.data;U(x,t.path?`${t.phase??`Verifying`}: ${t.path}`:t.phase??`Verifying archive`,!0)});U(S,null),await O(),await y(),N(`installed ${r.namespace}/${r.name}`,{kind:`info`})}catch(e){let r=te(e);U(b,r,!0),U(S,/already installed/i.test(r)&&!n?t:null,!0)}finally{U(v,null),U(x,null)}}}let A=Y(null);bt(()=>{if(!X(A))return;let e=setTimeout(()=>U(A,null),1800);return()=>clearTimeout(e)});async function j(t){U(v,`export:${t.id}`),U(b,null);try{let n=await e.drowseArchiveExport(t.id),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`${t.name}.drowse`,i.click(),U(A,t.id,!0),setTimeout(()=>URL.revokeObjectURL(r),0)}catch(e){U(b,te(e),!0)}finally{U(v,null)}}async function M(t){let n=un(t,gn(t,P.entries,ke.entries));if(n)U(b,n,!0);else{U(v,`delete:${t.id}`),U(b,null);try{await e.drowseArchiveDelete(t.id),U(C,null),await O(),await y()}catch(e){U(b,te(e),!0)}finally{U(v,null)}}}function te(e){return jn(e,`Unable to update local direction packs. Check the file and try again.`)}function ne(e,t=!1){U(r,e,!0),t&&queueMicrotask(()=>{X(e===`installed`?m:h)?.focus()})}function re(e){if(!p)return;let t=null;e.key===`ArrowLeft`||e.key===`ArrowRight`?t=X(r)===`installed`?`search`:`installed`:e.key===`Home`?t=`installed`:e.key===`End`&&(t=`search`),t!==null&&(e.preventDefault(),ne(t,!0))}function ie(e){return`repository`in e&&typeof e.repository==`string`?e.repository:`${e.namespace}/${e.name}`}function ae(e){return e.fit_mode&&e.fit_mode!==`authored`?e.fit_mode:null}ht(()=>Bn(async e=>{e===`manifolds`&&await O()})),ht(()=>{y(),O()});var oe=Hp(),se=q(oe);Dr(V(q(se),2),{get onclick(){return ar}}),F(se);var ce=V(se,2),le=q(ce);let ue;nt(le,e=>U(m,e),()=>X(m));var de=V(le,2),fe=e=>{var t=fp();let n;nt(t,e=>U(h,e),()=>X(h)),W(()=>{J(t,`aria-selected`,X(r)===`search`),J(t,`tabindex`,X(r)===`search`?0:-1),n=tt(t,1,`svelte-lozhsl`,null,n,{active:X(r)===`search`})}),B(`click`,t,()=>ne(`search`)),B(`keydown`,t,re),I(e,t)};K(de,e=>{p&&e(fe)}),F(ce),Tt(ce,e=>kr?.(e));var pe=V(ce,2),me=q(pe),he=q(me);{let e=G(()=>X(r)===`installed`?`${P.catalog.length} installed manifolds`:X(a)===null?`Search compatible manifolds`:`${X(a).length} found`);$(he,{get text(){return X(e)}})}F(me);var ge=V(me,2),_e=e=>{var t=jp(),n=Q(t),r=e=>{var t=Cp(),n=q(t),r=V(q(n),2),i=e=>{var t=pp();let n;var r=q(t),i=q(r);{let e=G(()=>X(v)===`import`?`verifying…`:`import pack`);$(i,{get text(){return X(e)}})}F(r);var a=V(r,2);F(t),W(()=>{n=tt(t,1,`file-action svelte-lozhsl`,null,n,{disabled:X(v)!==null}),a.disabled=X(v)!==null}),B(`change`,a,e=>{let t=e.currentTarget,n=t.files?.[0];n&&k(n),t.value=``}),I(e,t)};K(r,e=>{f.available&&e(i)}),F(n);var a=V(n,2),o=e=>{var t=mp(),n=q(t,!0);F(t),W(()=>R(n,f.reason)),I(e,t)},s=e=>{var t=hp(),n=q(t);{let e=G(()=>X(x).split(`: `)[0]);$(n,{get text(){return X(e)},numbers:!1})}var r=V(n),i=e=>{var t=Qe();W(e=>R(t,`· ${e??``}`),[()=>X(x).slice(X(x).indexOf(`: `)+2)]),I(e,t)},a=G(()=>X(x).includes(`: `));K(r,e=>{X(a)&&e(i)}),F(t),I(e,t)};K(a,e=>{f.available?X(x)&&e(s,1):e(o)});var c=V(a,2),l=e=>{var t=gp(),n=q(t,!0);F(t),W(()=>R(n,X(b))),I(e,t)};K(c,e=>{f.available&&X(b)&&e(l)});var u=V(c,2),d=e=>{var t=_p(),n=V(q(t),2),r=V(n,2);F(t),W(()=>{n.disabled=X(v)!==null,r.disabled=X(v)!==null}),B(`click`,n,()=>void k(X(S),!0)),B(`click`,r,()=>U(S,null)),I(e,t)};K(u,e=>{f.available&&X(S)&&e(d)});var p=V(u,2),m=e=>{var t=vp();I(e,t)},h=e=>{var t=Sp();L(t,21,()=>X(g),e=>e.id,(e,t)=>{var n=xp(),r=q(n),i=q(r),a=q(i);F(i);var o=V(i,2),s=q(o,!0);F(o),Ze(2),F(r);var c=V(r,2),l=q(c),u=q(l);{let e=G(()=>X(v)===`export:${X(t).id}`?`Preparing…`:X(A)===X(t).id?`Download started`:`export`);$(u,{get text(){return X(e)},numbers:!1})}F(l);var d=V(l,2),f=e=>{var n=yp(),r=Q(n),i=q(r);F(r);var a=V(r,2),o=V(a,2);W(()=>{R(i,`Delete ${X(t).namespace??``}/${X(t).name??``} from this device? Export a backup first if you want to keep it.`),a.disabled=X(v)!==null,o.disabled=X(v)!==null}),B(`click`,a,()=>void M(X(t))),B(`click`,o,()=>U(C,null)),I(e,n)},p=e=>{var n=bp();W(()=>n.disabled=X(v)!==null),B(`click`,n,()=>U(C,X(t).id,!0)),I(e,n)};K(d,e=>{X(C)===X(t).id?e(f):e(p,-1)}),F(c),F(n),W(()=>{R(a,`${X(t).namespace??``}/${X(t).name??``}`),R(s,X(t).source.repository?`${X(t).source.repository}@${X(t).source.revision}`:X(t).source.uri),l.disabled=X(v)!==null}),B(`click`,l,()=>void j(X(t))),I(e,n)}),F(t),I(e,t)};K(p,e=>{f.available&&X(_)?e(m):f.available&&X(g).length>0&&e(h,1)}),F(t),I(e,t)};K(n,e=>{u&&e(r)});var i=V(n,2),a=e=>{var t=wp();I(e,t)},o=e=>{var t=Tp(),n=q(t,!0);F(t),W(()=>R(n,f.available?u?`No manifolds installed. Import a .drowse or search Hugging Face.`:`No manifolds installed. Search Hugging Face to find compatible sources.`:`No manifolds installed.`)),I(e,t)},s=e=>{var t=Ap();L(t,21,()=>P.catalog,e=>ie(e),(e,t)=>{let n=G(()=>ie(X(t))),r=G(()=>ae(X(t)));var i=kp();H(i,()=>({class:`row`,"aria-description":X(t).description||X(n)}),void 0,void 0,void 0,`svelte-lozhsl`);var a=q(i),o=q(a),s=q(o,!0);F(o);var c=V(o,2),l=q(c),u=V(l),d=e=>{var t=Ep(),n=q(t,!0);F(t),W(()=>{tt(t,1,`fit-badge fit-${X(r)??``}`,`svelte-lozhsl`),R(n,X(r))}),I(e,t)};K(u,e=>{X(r)&&e(d)});var f=V(u,2),p=e=>{var t=Dp();I(e,t)};K(f,e=>{X(t).fitted_for_session&&e(p)});var m=V(f,2),h=e=>{var t=Op();I(e,t)};K(m,e=>{X(t).stale&&e(h)}),F(c),F(a),F(i),W(()=>{R(s,X(n)),R(l,`${X(t).domain_label??``} · ${X(t).node_count??``} nodes `)}),I(e,i)}),F(t),I(e,t)};K(i,e=>{P.loading&&P.catalog.length===0?e(a):P.catalog.length===0?e(o,1):e(s,-1)}),I(e,t)},ye=e=>{var t=Vp(),n=q(t),r=V(q(n),2);ot(r),F(n);var u=V(n,2),d=e=>{var t=Mp();I(e,t)},f=G(()=>!X(i).trim()),p=e=>{var t=Np();I(e,t)},m=e=>{var t=Pp(),n=q(t,!0);F(t),W(()=>R(n,X(s))),I(e,t)},h=e=>{var t=Fp(),n=q(t);F(t),W(e=>R(n,`No Hugging Face packs match “${e??``}”. Try a different search.`),[()=>X(i).trim()]),I(e,t)},g=e=>{var t=Bp();L(t,21,()=>X(a),e=>ie(e),(e,t)=>{let n=G(()=>ie(X(t))),r=G(()=>X(c)===X(n)),i=G(()=>ae(X(t)));var a=zp();H(a,()=>({class:`row`,"aria-description":X(t).description||X(n)}),void 0,void 0,void 0,`svelte-lozhsl`);var o=q(a),s=q(o),u=q(s,!0);F(s);var d=V(s,2),f=q(d),p=V(f),m=e=>{var t=Ip(),n=q(t,!0);F(t),W(()=>{tt(t,1,`fit-badge fit-${X(i)??``}`,`svelte-lozhsl`),R(n,X(i))}),I(e,t)};K(p,e=>{X(i)&&e(m)});var h=V(p,2),g=e=>{var n=Lp(),r=q(n);F(n),W(()=>R(r,`· ${X(t).tensor_models.length??``} fit${X(t).tensor_models.length===1?``:`s`}`)),I(e,n)};K(h,e=>{X(t).tensor_models.length>0&&e(g)}),F(d);var _=V(d,2),v=e=>{var t=Rp();$(q(t),{get text(){return X(l)}}),F(t),I(e,t)};K(_,e=>{X(r)&&X(l)&&e(v)}),F(o);var y=V(o,2),b=q(y),x=()=>void D(X(t));H(b,()=>({type:`button`,class:`act install`,disabled:X(r),onclick:x,"aria-description":`install ${X(n)}`}),void 0,void 0,void 0,`svelte-lozhsl`);var S=q(b);{let e=G(()=>X(r)?`…`:`install`);$(S,{get text(){return X(e)}})}F(b),F(y),F(a),W(()=>{R(u,X(n)),R(f,`${X(t).domain_label??``} · ${X(t).node_count??``} nodes `)}),I(e,a)}),F(t),I(e,t)};K(u,e=>{X(f)?e(d):X(o)?e(p,1):X(s)?e(m,2):X(a).length===0?e(h,3):e(g,-1)}),F(t),B(`input`,r,T),at(r,()=>X(i),e=>U(i,e)),I(e,t)};K(ge,e=>{X(r)===`installed`?e(_e):e(ye,-1)}),F(pe),F(oe),W(()=>{J(le,`aria-selected`,X(r)===`installed`),J(le,`tabindex`,X(r)===`installed`?0:-1),ue=tt(le,1,`svelte-lozhsl`,null,ue,{active:X(r)===`installed`}),J(pe,`aria-labelledby`,X(r)===`installed`?`packs-tab-installed`:`packs-tab-search`)}),B(`click`,le,()=>ne(`installed`)),B(`keydown`,le,re),I(t,oe),Et()}Ge([`click`,`keydown`,`change`,`input`]);var Wp=z(`<!> `,1),Gp=z(`<p class="empty svelte-lzsal6">select ≥2 generated nodes in Threads</p>`),Kp=z(`<p class="empty loading-pulse loading-placeholder svelte-lzsal6" role="status">Comparing replies…</p>`),qp=z(`<div class="col svelte-lzsal6"><header class="col-header svelte-lzsal6"><code class="col-id svelte-lzsal6"> </code> <span class="col-tag svelte-lzsal6"> </span></header> <p class="col-preview svelte-lzsal6"> </p></div>`),Jp=z(`<tr><td class="ss-tag svelte-lzsal6"> </td><td class="ss-preview svelte-lzsal6"> </td><td class="ss-num svelte-lzsal6"> </td><td class="ss-num svelte-lzsal6"><!></td><td class="ss-num svelte-lzsal6"><!></td></tr>`),Yp=z(`<section class="siblings-summary svelte-lzsal6"><header class="ss-header svelte-lzsal6"><span class="ss-label svelte-lzsal6">siblings</span> <span class="ss-foot svelte-lzsal6"> </span></header> <table class="ss-table svelte-lzsal6"><thead class="svelte-lzsal6"><tr><th class="ss-tag svelte-lzsal6">tag</th><th class="ss-preview svelte-lzsal6">preview</th><th>mean lp</th><th>rk1 unchanged</th><th>mean ≈KL</th></tr></thead><tbody></tbody></table></section>`),Xp=z(`<p class="error svelte-lzsal6" role="alert"> </p>`),Zp=z(`<code> </code>`),Qp=z(`<span> </span>`),$p=z(`<span class="tok svelte-lzsal6"> </span>`),em=z(`<span> </span>`),tm=z(`<span class="tok svelte-lzsal6"> </span>`),nm=z(`<div class="text-grid svelte-lzsal6"><div class="text-pane svelte-lzsal6"><span class="pane-label svelte-lzsal6">A</span> <div class="text-body svelte-lzsal6"><!></div></div> <div class="text-pane svelte-lzsal6"><span class="pane-label svelte-lzsal6"> </span> <div class="text-body svelte-lzsal6"><!></div></div></div>`),rm=z(`<span class="span-sign svelte-lzsal6">+</span>`),im=z(`<span class="span-sign svelte-lzsal6">−</span>`),am=z(`<span><!> </span>`),om=z(`<div class="unified-body svelte-lzsal6"></div>`),sm=z(`<p class="dim small loading-pulse loading-placeholder svelte-lzsal6" role="status">Computing token probabilities…</p>`),cm=z(`<p class="error small svelte-lzsal6" role="alert"> </p>`),lm=z(`<p class="dim small replay-unavailable svelte-lzsal6"> </p>`),um=z(`<tr><td class="lp-pos svelte-lzsal6"> </td><td class="lp-tok svelte-lzsal6"><code class="svelte-lzsal6"> </code></td><td class="lp-num svelte-lzsal6"> </td><td class="lp-num svelte-lzsal6"> </td><td class="lp-num svelte-lzsal6"> </td><td class="lp-num svelte-lzsal6"> </td><td class="lp-flag svelte-lzsal6"> </td></tr>`),dm=z(`<div class="joint-table svelte-lzsal6"><header class="joint-header svelte-lzsal6"><span class="joint-label svelte-lzsal6">logprobs</span> <span class="joint-summary svelte-lzsal6"><strong class="svelte-lzsal6"> </strong> </span></header> <table class="lp-table svelte-lzsal6"><thead class="svelte-lzsal6"><tr><th class="lp-pos svelte-lzsal6">pos</th><th class="lp-tok svelte-lzsal6">token</th><th class="lp-num svelte-lzsal6">lp(A)</th><th class="lp-num svelte-lzsal6">lp(B)</th><th>Δ lp(A)</th><th>≈KL</th><th>rk1Δ</th></tr></thead><tbody></tbody></table></div>`),fm=z(`<p class="dim small svelte-lzsal6">no aligned tokens</p>`),pm=z(`<div><span class="r-name svelte-lzsal6"> </span> <span class="r-vals svelte-lzsal6"><span class="r-side"><!></span> <span class="r-arrow svelte-lzsal6">→</span> <span class="r-side"><!></span></span> <div class="r-bar-track svelte-lzsal6"><div class="r-bar-fill svelte-lzsal6"></div></div> <span class="r-delta svelte-lzsal6"><!></span></div>`),mm=z(`<div class="readings-table svelte-lzsal6"><span class="readings-label svelte-lzsal6">Δ readings</span> <div class="readings-grid svelte-lzsal6"></div></div>`),hm=z(`<p class="dim small svelte-lzsal6">no readings</p>`),gm=z(`<section class="diff-block svelte-lzsal6"><header class="diff-header svelte-lzsal6"><span class="diff-title svelte-lzsal6"> </span> <!></header> <!> <!> <!></section>`),_m=z(`<div><div class="col anchor-col svelte-lzsal6"><header class="col-header svelte-lzsal6"><code class="col-id svelte-lzsal6"> </code> <span class="col-tag svelte-lzsal6">A · anchor</span></header> <p class="col-preview svelte-lzsal6"> </p></div> <!></div> <!> <!>`,1),vm=z(`<section class="drawer-shell svelte-lzsal6" aria-label="Cross-branch diff drawer"><header class="header svelte-lzsal6"><div class="title svelte-lzsal6"><h2 class="eyebrow svelte-lzsal6">Compare conversation branches</h2> <div class="name-row svelte-lzsal6"><span class="meta svelte-lzsal6"><!></span></div></div> <!></header> <div class="toolbar svelte-lzsal6"><label class="header-ctl svelte-lzsal6"><span>layout</span> <!></label> <label class="header-ctl svelte-lzsal6"><span>sort by</span> <!></label></div> <div class="body svelte-lzsal6"><!></div> <footer class="footer svelte-lzsal6"><!></footer></section>`);function ym(e,t){it(t,!0);let n=G(()=>{let e=t.params??Jn.params??{};return Array.isArray(e.node_ids)?e.node_ids.filter(Boolean):[]}),r=G(()=>X(n)[0]??null),i=Y(pt([])),a=Y(pt([])),o=Y(!1),s=Y(null),c=Y(`side-by-side`),u=Y(`magnitude`);async function d(){let e=X(n);if(e.length<2||!X(r)){U(i,[],!0),U(a,[],!0);return}U(o,!0);let t=l.replayCapabilities().catch(e=>({jointLogprobs:{available:!1,reason:jn(e,`Token likelihood replay is unavailable in this runtime.`)}})),s=[];try{for(let t=1;t<e.length;t++)try{let n=await l.diff(X(r),e[t]);s.push({kind:`ok`,diff:n})}catch(e){if(e instanceof Mn){let t=e.body&&typeof e.body==`object`&&`detail`in e.body?String(e.body.detail):e.message;s.push({kind:`err`,message:jn(e,`Unable to compare this branch. ${t}`)})}else s.push({kind:`err`,message:jn(e,`Unable to compare this branch. Try again.`)})}U(i,s,!0)}finally{U(o,!1)}await f((await t).jointLogprobs)}async function f(e){let t=X(n);if(t.length<2||!X(r)){U(a,[],!0);return}if(!e.available){let n=e.reason??`This model runtime cannot replay exact token likelihoods for branch comparison.`;U(a,t.slice(1).map(()=>({kind:`unavailable`,message:n})),!0);return}U(a,t.slice(1).map(()=>({kind:`loading`})),!0);let i=[];for(let e=1;e<t.length;e++){try{let n=await l.jointLogprobs(X(r),t[e]);i.push({kind:`ok`,data:n})}catch(e){if(e instanceof Mn){let t=e.body&&typeof e.body==`object`&&`detail`in e.body?String(e.body.detail):e.message;i.push({kind:`err`,message:jn(e,`Unable to compare token likelihoods. ${t}`)})}else i.push({kind:`err`,message:jn(e,`Token likelihood comparison is unavailable for these branches.`)})}U(a,[...i,...X(a).slice(i.length)],!0)}U(a,i,!0)}bt(()=>{X(n),d()}),ht(()=>()=>{T()});function p(e){let t=(Ie.nodes.get(e)?.text??``).replace(/\s+/g,` `).trim();return t?t.length>80?t.slice(0,80)+`…`:t:`(empty)`}function m(e){let t=[...e];return X(u)===`magnitude`?t.sort((e,t)=>Math.abs(t.delta)-Math.abs(e.delta)):t.sort((e,t)=>e.name.localeCompare(t.name)),t}function h(e,t=5){let n=[...e].sort((e,t)=>Math.abs(t.delta)-Math.abs(e.delta));return new Set(n.slice(0,t).map(e=>e.name))}function g(e){return e.filter(e=>e.a_index>=0)}function _(e){return e.filter(e=>e.b_index>=0)}function v(e){return`${e.delta>=0?`+`:``}${e.delta.toFixed(3)}`}function y(e){return e===0?`var(--fg-muted)`:e>=0?`var(--accent-green)`:`var(--accent-red)`}function b(e){return e===`insert`?`color-mix(in srgb, var(--accent-green) 18%, transparent)`:e===`delete`?`color-mix(in srgb, var(--accent-red) 18%, transparent)`:`transparent`}function x(e){return e.split(/(\s+)/)}function S(e){return!e.reading_deltas||e.reading_deltas.length===0?``:e.reading_deltas.slice(0,3).map(e=>`${e.name} ${v(e)}`).join(` · `)}function C(e){return e==null||!Number.isFinite(e)?`-`:e.toFixed(2)}function w(e,t){if(e==null||t==null||!Number.isFinite(e)||!Number.isFinite(t))return`-`;let n=e-t;return`${n>=0?`+`:``}${n.toFixed(2)}`}function E(e){return e==null||!Number.isFinite(e)?`-`:Math.abs(e)<.01?e.toExponential(1):e.toFixed(2)}function D(e){return e.filter(e=>e.aligned)}let O=G(()=>{if(X(n).length<2)return[];let e=[];for(let t=0;t<X(n).length;t++){let r=X(n)[t],i=Ie.nodes.get(r),o=t===0,s={nodeId:r,isAnchor:o,label:o?`A`:X(n).length===2?`B`:`B${t}`,preview:p(r),meanLogprob:i&&typeof i.mean_logprob==`number`?i.mean_logprob:null,rank1Unchanged:null,klMean:null,jointReady:o};if(!o){let e=X(a)[t-1];if(e){if(e.kind===`ok`){let t=D(e.data.rows);if(t.length>0){s.rank1Unchanged=1-e.data.n_rank1_changed/t.length;let n=0,r=0;for(let e of t)e.approx_kl!=null&&Number.isFinite(e.approx_kl)&&(n+=e.approx_kl,r+=1);s.klMean=r>0?n/r:null}s.jointReady=!0}else(e.kind===`err`||e.kind===`unavailable`)&&(s.jointReady=!0)}}e.push(s)}return e});function k(e){return e==null||!Number.isFinite(e)?`-`:`${(e*100).toFixed(0)}%`}function A(e){return e==null||!Number.isFinite(e)?`-`:Math.abs(e)<.01?e.toExponential(1):e.toFixed(3)}ht(()=>Nn(`node_compare`,{schema:br,read:()=>({busy:!1,values:{layout:X(c),sort_by:X(u)}}),update:async e=>{e.layout!==void 0&&U(c,e.layout,!0),e.sort_by!==void 0&&U(u,e.sort_by,!0)}}));var j=vm(),M=q(j),N=q(M),ee=V(q(N),2),te=q(ee),ne=q(te),P=e=>{var t=Wp(),r=Q(t);$(r,{get text(){return X(n).length}});var i=V(r);W(()=>R(i,` branch${X(n).length===1?``:`es`} selected`)),I(e,t)},re=e=>{var t=Qe(`Select branches`);I(e,t)};K(ne,e=>{X(n).length>=2?e(P):e(re,-1)}),F(te),F(ee),F(N),Dr(V(N,2),{get onclick(){return ar}}),F(M);var ie=V(M,2),ae=q(ie);Io(V(q(ae),2),{options:[{value:`side-by-side`,label:`side-by-side`},{value:`unified`,label:`unified`}],ariaLabel:`Layout`,get value(){return X(c)},set value(e){U(c,e,!0)}}),F(ae);var oe=V(ae,2);Io(V(q(oe),2),{options:[{value:`magnitude`,label:`|Δ| desc`},{value:`name`,label:`name`}],ariaLabel:`Sort readings by`,get value(){return X(u)},set value(e){U(u,e,!0)}}),F(oe),F(ie);var se=V(ie,2),ce=q(se),le=e=>{var t=Gp();I(e,t)},ue=e=>{var t=Kp();I(e,t)},de=e=>{var t=_m(),o=Q(t);let l;var u=q(o),d=q(u),f=q(d),T=q(f,!0);F(f),Ze(2),F(d);var j=V(d,2),M=q(j,!0);F(j),F(u);var N=V(u,2);L(N,18,()=>X(n).slice(1),e=>e,(e,t,r)=>{var i=qp(),a=q(i),o=q(a),s=q(o,!0);F(o);var c=V(o,2),l=q(c);F(c),F(a);var u=V(a,2),d=q(u,!0);F(u),F(i),W((e,t)=>{R(s,e),R(l,`B${X(n).length>2?X(r)+1:``}`),R(d,t)},[()=>t.slice(0,12),()=>p(t)]),I(e,i)}),F(o);var ee=V(o,2),te=e=>{var t=Yp(),n=q(t),r=V(q(n),2),i=q(r);F(r),F(n);var a=V(n,2),o=q(a),s=q(o),c=V(q(s),2);H(c,()=>({class:`ss-num`,"aria-description":`mean logprob`}),void 0,void 0,void 0,`svelte-lzsal6`);var l=V(c);H(l,()=>({class:`ss-num`,"aria-description":`rank-1 agreement`}),void 0,void 0,void 0,`svelte-lzsal6`);var u=V(l);H(u,()=>({class:`ss-num`,"aria-description":`approximate KL`}),void 0,void 0,void 0,`svelte-lzsal6`),F(s),F(o);var d=V(o);L(d,21,()=>X(O),e=>e.nodeId,(e,t)=>{var n=Jp();let r;var i=q(n),a=q(i,!0);F(i);var o=V(i),s=q(o,!0);F(o);var c=V(o),l=q(c,!0);F(c);var u=V(c),d=q(u);{let e=G(()=>X(t).isAnchor?`-`:X(t).jointReady?k(X(t).rank1Unchanged):`…`);$(d,{get text(){return X(e)}})}F(u);var f=V(u),p=q(f);{let e=G(()=>X(t).isAnchor?`-`:X(t).jointReady?A(X(t).klMean):`…`);$(p,{get text(){return X(e)}})}F(f),F(n),W(e=>{r=tt(n,1,`svelte-lzsal6`,null,r,{anchor:X(t).isAnchor}),R(a,X(t).label),R(s,X(t).preview),R(l,e)},[()=>C(X(t).meanLogprob)]),I(e,n)}),F(d),F(a),F(t),W(()=>R(i,`vs ${X(O)[0]?.label??`A`??``}`)),I(e,t)};K(ee,e=>{X(O).length>0&&e(te)});var ne=V(ee,2);L(ne,17,()=>X(i),dt,(e,t,r)=>{var i=Je(),o=Q(i),l=e=>{var n=Xp(),r=q(n,!0);F(n),W(()=>R(r,X(t).message)),I(e,n)},u=e=>{let i=G(()=>X(t).diff),o=G(()=>h(X(i).readings,5)),l=G(()=>m(X(i).readings)),u=G(()=>X(a)[r]);var d=gm(),f=q(d),p=q(f),T=q(p,!0);F(p);var O=V(p,2),k=e=>{var t=Zp();H(t,()=>({class:`recipe-delta`,"aria-description":`steering delta A → B`}),void 0,void 0,void 0,`svelte-lzsal6`);var n=q(t);F(t),W(()=>R(n,`Δ recipe: ${(X(i).steering_delta||`none`)??``}`)),I(e,t)};K(O,e=>{(X(i).parent_applied_steering!==null||X(i).steering_delta)&&e(k)}),F(f);var A=V(f,2),j=e=>{let t=G(()=>g(X(i).per_token)),a=G(()=>_(X(i).per_token));var o=nm(),c=q(o),l=V(q(c),2),u=q(l),d=e=>{var n=Je(),r=Q(n);L(r,17,()=>X(t),e=>`a-${e.a_index}`,(e,t)=>{var n=Qp(),r=()=>U(s,X(t).a_index,!0),i=()=>U(s,null);H(n,e=>({class:`tok`,...e,onmouseenter:r,onmouseleave:i,[ft]:{"highlight-anchor":X(s)===X(t).a_index}}),[()=>({"aria-description":S(X(t))})],void 0,void 0,`svelte-lzsal6`);var a=q(n,!0);F(n),W(()=>R(a,X(t).a_text)),I(e,n)}),I(e,n)},f=e=>{var t=Je(),n=Q(t);L(n,17,()=>x(X(i).a_text),dt,(e,t)=>{var n=$p(),r=q(n,!0);F(n),W(()=>R(r,X(t))),I(e,n)}),I(e,t)};K(u,e=>{X(t).length>0?e(d):e(f,-1)}),F(l),F(c);var p=V(c,2),m=q(p),h=q(m);F(m);var v=V(m,2),y=q(v),b=e=>{var t=Je(),n=Q(t);L(n,17,()=>X(a),e=>`b-${e.b_index}`,(e,t)=>{let n=G(()=>X(t).a_index>=0&&X(s)!==null&&X(t).a_index===X(s));var r=em();H(r,e=>({class:`tok`,...e,[ft]:{"highlight-target":X(n)}}),[()=>({"aria-description":S(X(t))})],void 0,void 0,`svelte-lzsal6`);var i=q(r,!0);F(r),W(()=>R(i,X(t).b_text)),I(e,r)}),I(e,t)},C=e=>{var t=Je(),n=Q(t);L(n,17,()=>x(X(i).b_text),dt,(e,t)=>{var n=tm(),r=q(n,!0);F(n),W(()=>R(r,X(t))),I(e,n)}),I(e,t)};K(y,e=>{X(a).length>0?e(b):e(C,-1)}),F(v),F(p),F(o),W(()=>R(h,`B${X(n).length>2?r+1:``}`)),I(e,o)},M=e=>{var t=om();L(t,21,()=>X(i).text,dt,(e,t)=>{var n=am();let r;var i=q(n),a=e=>{var t=rm();I(e,t)},o=e=>{var t=im();I(e,t)};K(i,e=>{X(t).state===`insert`?e(a):X(t).state===`delete`&&e(o,1)});var s=V(i);F(n),W(e=>{r=tt(n,1,`tok-span svelte-lzsal6`,null,r,{"span-equal":X(t).state===`equal`,"span-insert":X(t).state===`insert`,"span-delete":X(t).state===`delete`}),st(n,e),R(s,`${X(t).text??``} `)},[()=>`background-color: ${b(X(t).state)}`]),I(e,n)}),F(t),I(e,t)};K(A,e=>{X(c)===`side-by-side`?e(j):e(M,-1)});var N=V(A,2),ee=e=>{var t=Je(),n=Q(t),r=e=>{var t=sm();I(e,t)},i=e=>{var t=cm(),n=q(t);F(t),W(()=>R(n,`logprobs: ${X(u).message??``}`)),I(e,t)},a=e=>{var t=lm(),n=q(t);F(t),W(()=>R(n,`${X(u).message??``} Branch text and saved measurements remain available.`)),I(e,t)},o=e=>{let t=G(()=>D(X(u).data.rows));var n=Je(),r=Q(n),i=e=>{var n=dm(),r=q(n),i=V(q(r),2),a=q(i),o=q(a,!0);F(a);var s=V(a);F(i),F(r);var c=V(r,2),l=q(c),d=q(l),f=V(q(d),4);H(f,()=>({class:`lp-num`,"aria-description":`log pB(A token) − log pA(A token)`}),void 0,void 0,void 0,`svelte-lzsal6`);var p=V(f);H(p,()=>({class:`lp-num`,"aria-description":`approx KL(A ∥ B) · top-K`}),void 0,void 0,void 0,`svelte-lzsal6`);var m=V(p);H(m,()=>({class:`lp-flag`,"aria-description":`argmax differs`}),void 0,void 0,void 0,`svelte-lzsal6`),F(d),F(l);var h=V(l);L(h,21,()=>X(t),e=>`${e.a_index}-${e.b_index}`,(e,t)=>{var n=um();let r;var i=q(n),a=q(i,!0);F(i);var o=V(i),s=q(o),c=q(s,!0);F(s),F(o);var l=V(o),u=q(l,!0);F(l);var d=V(l),f=q(d,!0);F(d);var p=V(d),m=q(p,!0);F(p);var h=V(p),g=q(h,!0);F(h);var _=V(h),v=q(_,!0);F(_),F(n),W((e,i,o,s,l)=>{r=tt(n,1,`svelte-lzsal6`,null,r,{"rank-flip":X(t).rank_changed}),R(a,X(t).a_index),R(c,e),R(u,i),R(f,o),R(m,s),R(g,l),R(v,X(t).rank_changed?`●`:``)},[()=>JSON.stringify(X(t).a_text),()=>C(X(t).lp_a_in_a),()=>C(X(t).lp_b_in_b),()=>w(X(t).lp_a_in_b,X(t).lp_a_in_a),()=>E(X(t).approx_kl)]),I(e,n)}),F(h),F(c),F(n),W(()=>{R(o,X(u).data.n_rank1_changed),R(s,` / ${X(t).length??``} rank-1 changes`)}),I(e,n)},a=e=>{var t=fm();I(e,t)};K(r,e=>{X(t).length>0?e(i):e(a,-1)}),I(e,n)};K(n,e=>{X(u).kind===`loading`?e(r):X(u).kind===`err`?e(i,1):X(u).kind===`unavailable`?e(a,2):e(o,-1)}),I(e,t)};K(N,e=>{X(u)&&e(ee)});var te=V(N,2),ne=e=>{var t=mm(),n=V(q(t),2);L(n,21,()=>X(l),e=>e.name,(e,t)=>{let n=G(()=>X(o).has(X(t).name));var r=pm();let i;var a=q(r),s=q(a,!0);F(a);var c=V(a,2),l=q(c),u=q(l);{let e=G(()=>X(t).a_value.toFixed(3));$(u,{get text(){return X(e)}})}F(l);var d=V(l,4),f=q(d);{let e=G(()=>X(t).b_value.toFixed(3));$(f,{get text(){return X(e)}})}F(d),F(c);var p=V(c,2),m=q(p);F(p);var h=V(p,2),g=q(h);{let e=G(()=>v(X(t)));$(g,{get text(){return X(e)}})}F(h),F(r),W((e,a)=>{i=tt(r,1,`reading-row svelte-lzsal6`,null,i,{"top-delta":X(n)}),R(s,X(t).name),st(m,e),st(h,a)},[()=>`width: ${Math.min(100,Math.abs(X(t).delta)*100)}%; background: ${y(X(t).delta)}`,()=>`color: ${y(X(t).delta)}`]),I(e,r)}),F(n),F(t),I(e,t)},P=e=>{var t=hm();I(e,t)};K(te,e=>{X(l).length>0?e(ne):e(P,-1)}),F(d),W(()=>R(T,X(n).length===2?`A vs B`:`A vs B${r+1}`)),I(e,d)};K(o,e=>{X(t).kind===`err`?e(l):e(u,-1)}),I(e,i)}),W((e,t)=>{l=tt(o,1,`columns svelte-lzsal6`,null,l,{unified:X(c)===`unified`}),R(T,e),R(M,t)},[()=>X(r)?.slice(0,12)??``,()=>p(X(r)??``)]),I(e,t)};K(ce,e=>{X(n).length<2?e(le):X(o)&&X(i).length===0?e(ue,1):e(de,-1)}),F(se);var fe=V(se,2);zs(q(fe),{variant:`ghost`,size:`sm`,get onclick(){return ar},children:(e,t)=>{Ze();var n=Qe(`close`);I(e,n)},$$slots:{default:!0}}),F(fe),F(j),I(e,j),Et()}function bm(e){let t=e.querySelector(`summary`),n=null,r=e.open,i=e.style.overflow,a=e.style.boxSizing;function o(){n?.cancel(),n=null,e.style.overflow=i,e.style.boxSizing=a,t.removeAttribute(`aria-expanded`)}function s(i){if(i.target.closest(`a, button, input`))return;i.preventDefault();let a=e.getBoundingClientRect().height;r=n?!r:!e.open,o(),e.style.boxSizing=`border-box`,e.open=r;let s=e.getBoundingClientRect().height,c=go(r?250:150);!c||a===s?o():(e.open=!0,t.setAttribute(`aria-expanded`,String(r)),e.style.overflow=`clip`,n=e.animate([{height:`${a}px`},{height:`${s}px`}],{duration:c,easing:r?`cubic-bezier(0.22, 1, 0.36, 1)`:`cubic-bezier(0.4, 0, 1, 1)`}),n.onfinish=()=>{e.open=r,o()})}return t.addEventListener(`click`,s),{destroy(){t.removeEventListener(`click`,s),o()}}}function xm(e,t=!1){return Number.isFinite(e)?e!==0&&Math.abs(e)<1e-4?t?e<0?`−<0.01%`:`<0.01%`:e.toExponential(2):t?`${(e*100).toLocaleString(`en-US`,{maximumFractionDigits:2})}%`:e.toLocaleString(`en-US`,{maximumFractionDigits:4}):`Not available`}function Sm(e,t,n=!1){return Number.isFinite(e)?n?xm(e,!0):!Number.isFinite(t)||t<=0?`${xm(e)} · scale unavailable`:`${xm(e)} · ${xm(Math.abs(e)/t,!0)} of scale (${xm(t)})`:`Not available`}function Cm(e,t){return Number.isFinite(e)&&Number.isFinite(t)&&t>0?Math.min(1,Math.abs(e)/t):0}var wm=z(`<span class="midline svelte-irr9qk"></span>`),Tm=z(`<span role="img"><span class="fill svelte-irr9qk"></span> <!></span>`);function Em(e,t){it(t,!0);let n=Z(t,`width`,3,144),r=Z(t,`height`,3,8),i=Z(t,`showBaseline`,3,!1),a=Z(t,`bipolar`,3,!1),o=Z(t,`percentage`,3,!1),s=G(()=>Cm(t.value,t.max)*(a()?50:100)),c=G(()=>a()?t.value<0?50-X(s):50:0),l=G(()=>t.color??(t.value>0?`var(--accent-green)`:t.value<0?`var(--accent-red)`:`var(--fg-muted)`)),u=G(()=>t.title??Sm(t.value,t.max,o()));var d=Tm();let f,p;var m=q(d);let h;var g=V(m,2),_=e=>{var t=wm();I(e,t)};K(g,e=>{a()&&e(_)}),F(d),W(()=>{f=tt(d,1,`bar svelte-irr9qk`,null,f,{baseline:i()}),J(d,`aria-label`,X(u)),p=st(d,``,p,{"--bar-width":`${n()}px`,height:`${r()}px`}),h=st(m,``,h,{left:`${X(c)}%`,width:`${X(s)}%`,"--fill":X(l)})}),I(e,d),Et()}function Dm(e){let t=getComputedStyle(e),n=(e,n=`transparent`)=>t.getPropertyValue(e).trim()||n;return{fg:n(`--fg-strong`),fgDim:n(`--fg-dim`),muted:n(`--fg-muted`),border:n(`--glass-line`),accent:n(`--accent`),purple:n(`--pillar-manifold`),bg:n(`--bg-deep`),node:n(`--geom-node`,n(`--pillar-manifold`)),neutral:n(`--geom-neutral`,n(`--fg-subtle`)),live:n(`--live`),light:n(`--accent-light`)}}var Om=`560 10px "Martian Mono", ui-monospace, monospace`,km=`560 9px "Martian Mono", ui-monospace, monospace`,Am=28;function jm(e){let t=e.getContext(`2d`);if(!t)return null;let n=e.getBoundingClientRect(),r=window.devicePixelRatio||1,i=Math.max(1,Math.floor(n.width)),a=Math.max(1,Math.floor(n.height));return e.width=Math.floor(i*r),e.height=Math.floor(a*r),t.setTransform(r,0,0,r,0,0),t.lineCap=`round`,t.lineJoin=`round`,t.clearRect(0,0,i,a),{ctx:t,w:i,h:a}}function Mm(e){let t=1/0,n=-1/0,r=1/0,i=-1/0;for(let[a,o]of e)a<t&&(t=a),a>n&&(n=a),o<r&&(r=o),o>i&&(i=o);if(!Number.isFinite(t))return{minX:-1,maxX:1,minY:-1,maxY:1};let a=n-t||1,o=i-r||1;return{minX:t-a*.08,maxX:n+a*.08,minY:r-o*.08,maxY:i+o*.08}}function Nm(e,t,n){let r=t-56,i=n-56,a=Math.max(e.maxX-e.minX,e.maxY-e.minY)||1,o=Math.min(r,i)/a,s=(e.minX+e.maxX)/2,c=(e.minY+e.maxY)/2;return(e,r)=>[t/2+(e-s)*o,n/2-(r-c)*o]}function Pm(e,t,n,r,i,a=1){e.globalAlpha=a,e.beginPath(),e.arc(t,n,r,0,Math.PI*2),e.fillStyle=i,e.fill(),e.globalAlpha=1}function Fm(e,t,n,r){e.globalAlpha=.95,e.beginPath(),e.arc(t,n,6.5,0,Math.PI*2),e.strokeStyle=r.live,e.lineWidth=2,e.stroke(),e.beginPath(),e.arc(t,n,3.2,0,Math.PI*2),e.fillStyle=r.light,e.fill(),e.globalAlpha=1}function Im(e,t,n,r,i,a){e.globalAlpha=.9,e.fillStyle=i,e.font=Om;let o=e.measureText(r).width,s=t+5+o<=a-8?t+5:Math.max(8,t-5-o);e.fillText(r,s,n-4),e.globalAlpha=1}function Lm(e,t,n){if(!(t.length<2)){e.lineWidth=1.5,e.strokeStyle=n;for(let n=1;n<t.length;n++)e.globalAlpha=.12+.78*(n/(t.length-1)),e.beginPath(),e.moveTo(t[n-1][0],t[n-1][1]),e.lineTo(t[n][0],t[n][1]),e.stroke();e.globalAlpha=1}}function Rm(e,t,n,r,i,a){let{geom:o,live:s,trail:c}=r,l=[];for(let e of o.node_white)l.push([e[0]??0,0]);l.push([o.neutral_white[0]??0,0]),s&&l.push([s[0]??0,0]);for(let e of c)l.push([e[0]??0,0]);let u=Mm(l),d=n/2,f=e=>{let n=t-56,r=u.maxX-u.minX||1;return Am+(e-u.minX)/r*n};e.strokeStyle=i.border,e.lineWidth=1,e.beginPath(),e.moveTo(Am,d),e.lineTo(t-Am,d),e.stroke();let p=f(o.neutral_white[0]??0);a.push({screen:[p,d],label:`neutral`,point:o.neutral_white}),e.strokeStyle=i.neutral,e.beginPath(),e.moveTo(p,d-8),e.lineTo(p,d+8),e.stroke(),Im(e,p,d-6,`neutral`,i.neutral,t),o.node_white.forEach((n,o)=>{let s=f(n[0]??0);a.push({screen:[s,d],label:r.nodeLabels[o]??`node ${o+1}`,point:n}),Pm(e,s,d,4,i.node),Im(e,s,d+18,r.nodeLabels[o]??``,i.fgDim,t)}),c.forEach((t,n)=>{let r=.1+.7*(n/Math.max(1,c.length-1));Pm(e,f(t[0]??0),d,2.5,i.live,r)}),s&&Fm(e,f(s[0]??0),d,i),s&&a.push({screen:[f(s[0]??0),d],label:`live`,point:s})}function zm(e,t,n,r,i,a,o){let{geom:s,live:c,trail:l}=r,u=[];for(let e of s.node_white)u.push([e[0]??0,e[1]??0]);if(u.push([s.neutral_white[0]??0,s.neutral_white[1]??0]),s.overlay?.kind===`curve`)for(let e of s.overlay.points)u.push([e[0]??0,e[1]??0]);let d=Nm(Mm(u),t,n);{let[r,a]=d(0,0);e.strokeStyle=i.border,e.lineWidth=1,e.globalAlpha=.35,e.beginPath(),e.moveTo(Am,a),e.lineTo(t-Am,a),e.moveTo(r,Am),e.lineTo(r,n-Am),e.stroke(),e.globalAlpha=.7,e.fillStyle=i.muted,e.font=km,e.fillText(`PC1`,t-Am-22,a-4),e.fillText(`PC2`,r+4,38),e.globalAlpha=1}s.overlay?.kind===`curve`&&s.overlay.points.length>1&&(e.strokeStyle=i.purple,e.globalAlpha=.5,e.lineWidth=1.5,e.beginPath(),s.overlay.points.forEach((t,n)=>{let[r,i]=d(t[0]??0,t[1]??0);n===0?e.moveTo(r,i):e.lineTo(r,i)}),e.stroke(),e.globalAlpha=1);{let[t,n]=d(s.neutral_white[0]??0,s.neutral_white[1]??0);o.push({screen:[t,n],label:`neutral`,point:s.neutral_white}),e.strokeStyle=i.neutral,e.lineWidth=1.5,e.beginPath(),e.arc(t,n,4,0,Math.PI*2),e.stroke()}if(s.node_white.forEach((n,r)=>{let[s,c]=d(n[0]??0,n[1]??0);o.push({screen:[s,c],label:a(r),point:n}),Pm(e,s,c,3.5,i.node),Im(e,s,c,a(r),i.fgDim,t)}),Lm(e,l.map(e=>d(e[0]??0,e[1]??0)),i.live),c){let[t,n]=d(c[0]??0,c[1]??0);o.push({screen:[t,n],label:`live`,point:c}),Fm(e,t,n,i)}}function Bm(e,t){let n=0,r=0,i=0,a=Math.min(e.length,t.length);for(let o=0;o<a;o++){let a=t[o],s=e[o]??0;n+=s*(a[0]??0),r+=s*(a[1]??0),i+=s*(a[2]??0)}return[n,r,i]}function Vm(e,t){let n=t/2,r=Math.sin(n);return[Math.cos(n),e[0]*r,e[1]*r,e[2]*r]}function Hm(e,t){let[n,r,i,a]=e,[o,s,c,l]=t;return[n*o-r*s-i*c-a*l,n*s+r*o+i*l-a*c,n*c-r*l+i*o+a*s,n*l+r*c-i*s+a*o]}function Um(e){let t=Math.hypot(e[0],e[1],e[2],e[3])||1;return[e[0]/t,e[1]/t,e[2]/t,e[3]/t]}function Wm(e,t){let[n,r,i,a]=e,[o,s,c]=t,l=2*(i*c-a*s),u=2*(a*o-r*c),d=2*(r*s-i*o);return[o+n*l+(i*d-a*u),s+n*u+(a*l-r*d),c+n*d+(r*u-i*l)]}function Gm(e,t,n,r=.01){let i=Vm([0,1,0],t*r);return Um(Hm(Hm(Vm([1,0,0],n*r),i),e))}var Km=Um(Hm(Vm([1,0,0],.5),Vm([0,1,0],.6)));function qm(e,t,n,r,i,a,o){let{geom:s,live:c,trail:l,orbit:u}=r,d=s.pca_rotation;if(!d)return;let f=u.q,p=u.zoom||1,m=s.node_white.map(e=>Bm(e,d)),h=Bm(s.neutral_white,d),g=(s.overlay?.points??[]).map(e=>Bm(e,d)),_=h,v=0;for(let e of[...m,h,...g]){let t=Math.hypot(e[0]-_[0],e[1]-_[1],e[2]-_[2]);t>v&&(v=t)}v||=1;let y=t-56,b=n-56,x=Math.min(y,b)/2/v*p,S=t/2,C=n/2,w=e=>{let t=Wm(f,[e[0]-_[0],e[1]-_[1],e[2]-_[2]]);return{s:[S+t[0]*x,C-t[1]*x],z:t[2]}},T=m.map(w),E=w(h);o.push({screen:E.s,label:`neutral`,point:s.neutral_white});let D=g.map(w),O=l.map(e=>w(Bm(e,d))),k=c?w(Bm(c,d)):null,A=1/0,j=-1/0;for(let e of T)e.z<A&&(A=e.z),e.z>j&&(j=e.z);let M=j-A||1,N=e=>(e-A)/M;{let t=v*1.1,n=[{dir:[1,0,0],name:`PC1`},{dir:[0,1,0],name:`PC2`},{dir:[0,0,1],name:`PC3`}];e.strokeStyle=i.border,e.lineWidth=1;for(let{dir:r,name:a}of n){let n=w([_[0]+r[0]*t,_[1]+r[1]*t,_[2]+r[2]*t]),o=w([_[0]-r[0]*t,_[1]-r[1]*t,_[2]-r[2]*t]);e.globalAlpha=.35,e.beginPath(),e.moveTo(o.s[0],o.s[1]),e.lineTo(n.s[0],n.s[1]),e.stroke(),e.globalAlpha=.7,e.fillStyle=i.muted,e.font=km,e.fillText(a,n.s[0]+3,n.s[1]-2)}e.globalAlpha=1}if(s.overlay&&D.length>1){if(e.strokeStyle=i.purple,e.lineWidth=1,s.overlay.kind===`curve`)e.globalAlpha=.4,e.beginPath(),D.forEach((t,n)=>{n===0?e.moveTo(t.s[0],t.s[1]):e.lineTo(t.s[0],t.s[1])}),e.stroke(),e.globalAlpha=1;else if(s.overlay.kind===`surface`&&s.overlay.grid_shape){let[t,n]=s.overlay.grid_shape;e.globalAlpha=.28;for(let r=0;r<t;r++){e.beginPath();for(let t=0;t<n;t++){let i=D[r*n+t];i&&(t===0?e.moveTo(i.s[0],i.s[1]):e.lineTo(i.s[0],i.s[1]))}e.stroke()}for(let r=0;r<n;r++){e.beginPath();for(let i=0;i<t;i++){let t=D[i*n+r];t&&(i===0?e.moveTo(t.s[0],t.s[1]):e.lineTo(t.s[0],t.s[1]))}e.stroke()}e.globalAlpha=1}}e.strokeStyle=i.neutral,e.lineWidth=1.5,e.beginPath(),e.arc(E.s[0],E.s[1],4,0,Math.PI*2),e.stroke();let ee=T.map((e,t)=>({i:t,z:e.z})).sort((e,t)=>e.z-t.z);for(let{i:n}of ee){let r=T[n];o.push({screen:r.s,label:a(n),point:s.node_white[n]});let c=N(r.z);Pm(e,r.s[0],r.s[1],2.5+2.5*c,i.node,.4+.6*c),c>.55&&Im(e,r.s[0],r.s[1],a(n),i.fgDim,t)}Lm(e,O.map(e=>e.s),i.live),k&&Fm(e,k.s[0],k.s[1],i),k&&c&&o.push({screen:k.s,label:`live`,point:c})}function Jm(e,t){let n=jm(e);if(!n)return[];let r=[],{ctx:i,w:a,h:o}=n,s=Dm(e),c=e=>t.nodeLabels[e]??``,l=t.geom.rank;return l<=1?Rm(i,a,o,t,s,r):l===2?zm(i,a,o,t,s,c,r):qm(i,a,o,t,s,c,r),r}function Ym(e,t){let n=t.x-e.x,r=t.y-e.y;return{center:{x:e.x+n/2,y:e.y+r/2},distance:Math.hypot(n,r)}}function Xm(e,t,n,r,i){return!Number.isFinite(e)||!Number.isFinite(t)||!Number.isFinite(n)||t<=0||n<=0?Math.min(i,Math.max(r,e)):Math.min(i,Math.max(r,e*n/t))}var Zm=z(`<span>rank varies by layer</span>`),Qm=z(`<span class="meta svelte-f3zez2"> </span> <!>`,1),$m=z(`<span class="family-dot svelte-f3zez2" aria-hidden="true"></span> <code> </code> <!>`,1),eh=z(`<span class="meta svelte-f3zez2">No reading selected</span>`),th=z(`<div class="body svelte-f3zez2"><div class="empty svelte-f3zez2">Select a saved reading to see how it is measured.</div></div>`),nh=z(`<div class="body svelte-f3zez2" aria-busy="true"><div class="empty loading-pulse loading-placeholder svelte-f3zez2" role="status">Loading probe geometry…</div></div>`),rh=z(`<div class="body svelte-f3zez2"><div class="empty err svelte-f3zez2" role="alert"> </div></div>`),ih=z(`<div class="body svelte-f3zez2"><div class="empty svelte-f3zez2">This probe has no fitted geometry.</div></div>`),ah=z(`<button><span class="lyr svelte-f3zez2"> </span> <!> <span class="val svelte-f3zez2"> </span></button>`),oh=z(`<span class="orbit-hint svelte-f3zez2">drag · scroll or pinch</span> <div class="plot-controls svelte-f3zez2" aria-label="Geometry view controls"><button type="button" aria-label="Rotate geometry left" class="svelte-f3zez2">left</button> <button type="button" aria-label="Rotate geometry right" class="svelte-f3zez2">right</button> <button type="button" aria-label="Rotate geometry up" class="svelte-f3zez2">up</button> <button type="button" aria-label="Rotate geometry down" class="svelte-f3zez2">down</button> <button type="button" aria-label="Zoom geometry out" class="svelte-f3zez2"><!></button> <button type="button" aria-label="Zoom geometry in" class="svelte-f3zez2"><!></button> <button type="button" class="svelte-f3zez2">reset</button></div>`,1),sh=z(`<span class="trail-hint svelte-f3zez2"><!></span>`),ch=z(`<span>live trail unavailable here</span>`),lh=z(`<span class="live-hint svelte-f3zez2">run for live trail</span>`),uh=z(`<li> </li>`),dh=z(`<p class="capability-note svelte-f3zez2" role="note"> </p>`),fh=z(`<div class="body svelte-f3zez2"><div class="bars-col svelte-f3zez2"><div class="section-label svelte-f3zez2">layers · ‖share‖</div> <div class="bars svelte-f3zez2"></div></div> <div class="plot-col svelte-f3zez2"><div><canvas> </canvas> <span class="layer-chip svelte-f3zez2"><!></span> <!> <!></div> <p class="coordinate-summary svelte-f3zez2" id="probe-geometry-summary"> <!> </p> <details class="geometry-summary svelte-f3zez2"><summary class="svelte-f3zez2">Geometry coordinates</summary> <p class="svelte-f3zez2"> <!>]. Coordinates show the first three whitened dimensions.</p> <ul class="svelte-f3zez2"></ul></details> <!></div></div>`),ph=z(`<aside class="drawer svelte-f3zez2" aria-label="Probe inspector"><header class="drawer-header svelte-f3zez2"><div class="title svelte-f3zez2"><h2 class="eyebrow svelte-f3zez2">Reading details</h2> <div class="name-row svelte-f3zez2"><!></div></div> <!></header> <!></aside>`);function mh(e,t){it(t,!0),lt(t,[`$$slots`,`$$events`,`$$legacy`]),bt(()=>{t.params});let n=G(()=>Jn.params),r=G(()=>X(n)?.name??``),i=G(()=>X(r).split(`/`).pop()??X(r)),a=G(()=>ke.entries.get(X(r))??null),o=ee(`probe_subspace_trails`),s=Y(null),c=Y(!1),l=Y(null),u=Y(null),d=pt({q:Km,zoom:1.6}),f=Y(null),p=0,m=[],h=Y(`Hover a node to see its whitened coordinates`),g=0,_=G(()=>X(s)?.is_affine===!1?`var(--pillar-manifold)`:`var(--pillar-subspace)`);async function v(e,t){if(!e)t===g&&(U(s,null),U(c,!1),U(l,null));else{U(c,!0),U(l,null),U(s,null);try{let n=await _e.geometry(e);if(t!==g)return;U(s,n,!0);let r=null,i=-1/0;for(let e of Object.values(n.layers)){let t=Math.abs(e.mahalanobis_share);t>i&&(i=t,r=e.layer)}U(u,r,!0)}catch(e){if(t!==g)return;U(l,jn(e,`Unable to load this direction map. Reattach the direction and try again.`),!0)}finally{t===g&&U(c,!1)}}}bt(()=>{let e=++g;return v(X(r),e),()=>{g===e&&(g+=1)}});let y=G(()=>X(s)?Object.values(X(s).layers).sort((e,t)=>e.layer-t.layer):[]),b=G(()=>X(s)&&X(u)!==null?X(s).layers[String(X(u))]??null:null),x=G(()=>X(y).reduce((e,t)=>Math.max(e,Math.abs(t.mahalanobis_share)),0)),S=G(()=>X(u)===null?``:String(X(u))),C=G(()=>{let e=X(a)?.subspaceTrail;return!e||e.length===0?null:e[e.length-1]?.perLayer[X(S)]??null}),w=G(()=>{let e=X(a)?.subspaceTrail??[],t=[];for(let n of e){let e=n.perLayer[X(S)];Array.isArray(e)&&t.push(e)}return t});bt(()=>{let e=X(f),t=X(b),n=X(C),r=X(w),i=d.q,a=d.zoom,o=X(s)?.node_labels??[];if(!e||!t){p&&=(cancelAnimationFrame(p),0);return}let c=()=>{p&&cancelAnimationFrame(p),p=requestAnimationFrame(()=>{p=0,m=Jm(e,{geom:t,nodeLabels:o,live:n,trail:r,orbit:{q:i,zoom:a}})})},l=new ResizeObserver(c);return l.observe(e),c(),()=>{l.disconnect(),p&&cancelAnimationFrame(p),p=0}});let T=null,E=0,D=0,O=new Map,k=null,A=G(()=>(X(b)?.rank??0)>=3);function j(e,t){try{e.setPointerCapture(t)}catch{}}function M(e,t){if(e.hasPointerCapture(t))try{e.releasePointerCapture(t)}catch{}}function N(){let e=[...O.values()];return e.length>=2?[e[0],e[1]]:null}function te(e){let t=N();if(!t)return;let{distance:n}=Ym(t[0],t[1]);if(!(n<=0)){T=null,k={distance:n,zoom:d.zoom};for(let t of O.keys())j(e,t)}}function ne(e){X(A)&&(e.pointerType===`touch`&&(O.set(e.pointerId,{x:e.clientX,y:e.clientY}),O.size>=2)?(te(e.currentTarget),e.preventDefault()):(T=e.pointerId,E=e.clientX,D=e.clientY,j(e.currentTarget,e.pointerId),e.preventDefault()))}function P(e){if(X(f)&&e.buttons===0){let t=X(f).getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top,i,a=16;for(let e of m){let t=Math.hypot(n-e.screen[0],r-e.screen[1]);t<=a&&(i=e,a=t)}U(h,i?`${i.label} · whitened coordinates [${i.point.map(e=>xm(e)).join(`, `)}]`:`Hover a node to see its whitened coordinates`,!0)}if(!X(A))return;if(e.pointerType===`touch`&&O.has(e.pointerId)){O.set(e.pointerId,{x:e.clientX,y:e.clientY});let t=N();if(t&&k){d.zoom=Xm(k.zoom,k.distance,Ym(t[0],t[1]).distance,.3,6),e.preventDefault();return}}if(T!==e.pointerId)return;let t=e.clientX-E,n=e.clientY-D;E=e.clientX,D=e.clientY,d.q=Gm(d.q,t,n)}function re(e){let t=e.currentTarget;if(M(t,e.pointerId),e.pointerType===`touch`){let n=k!==null;O.delete(e.pointerId),n&&(O.size>=2?te(t):k=null)}T===e.pointerId&&(T=null)}function ie(e){if(!X(A))return;e.preventDefault();let t=Math.exp(-e.deltaY*.0015);d.zoom=Math.max(.3,Math.min(6,d.zoom*t))}function ae(e,t){X(A)&&(d.q=Gm(d.q,e,t))}function oe(e){d.zoom=Math.max(.3,Math.min(6,d.zoom*e))}function se(){d.q=Km,d.zoom=1.6}function ce(e){return!e||e.length===0?`not available`:e.slice(0,3).map(e=>e.toFixed(3)).join(`, `)}function le(){ar()}function ue(e){e.key===`Escape`&&(e.preventDefault(),le())}let de=G(()=>{let e=X(b)?.rank??0;return e<=1?`line · rank 1`:e===2?`2D scatter · rank 2`:`3D PCA scatter · rank ${e}`}),fe=G(()=>X(b)?`intrinsic dim ${X(b).intrinsic_dim}`:``);ht(()=>Nn(`probe_geometry`,{schema:Sr,read:()=>({values:{layer:X(u),zoom:d.zoom,quaternion:d.q},available_layers:X(y).map(e=>e.layer),can_rotate:X(A),loading:X(c)}),update:e=>{let t=e.layer;if(t!==void 0&&!X(y).some(e=>e.layer===t))throw new Ln(`NOT_FOUND`,`Choose a layer from available_layers.`);let n=t===void 0?X(b):X(s)?.layers[String(t)];if(!n)throw new Ln(`NOT_READY`,`Wait for this probe's geometry to load.`);if((e.rotate||e.zoom!==void 0)&&n.rank<3)throw new Ln(`UNAVAILABLE`,`Orbit and zoom controls require geometry of rank 3 or greater.`);if(t!==void 0&&U(u,t,!0),e.reset&&se(),e.zoom!==void 0&&(d.zoom=e.zoom),e.rotate){let t=e.rotate;ae(t.dx,t.dy)}}}));var pe=ph();$e(`keydown`,rt,ue);let me;var he=q(pe),ge=q(he),ve=V(q(ge),2),ye=q(ve),be=e=>{var t=$m(),n=V(Q(t),2);H(n,()=>({class:`name`,"aria-description":X(r)}),void 0,void 0,void 0,`svelte-f3zez2`);var a=q(n,!0);F(n);var o=V(n,2),c=e=>{var t=Qm(),n=Q(t),r=q(n);F(n);var i=V(n,2),a=e=>{var t=Zm();H(t,()=>({class:`warn`,"aria-description":`rank varies by layer`}),void 0,void 0,void 0,`svelte-f3zez2`),I(e,t)};K(i,e=>{X(s).rank_uniform||e(a)}),W(()=>R(r,`${X(de)??``} · ${X(fe)??``}`)),I(e,t)};K(o,e=>{X(s)&&e(c)}),W(()=>R(a,X(i))),I(e,t)},xe=e=>{var t=eh();I(e,t)};K(ye,e=>{X(r)?e(be):e(xe,-1)}),F(ve),F(ge),Dr(V(ge,2),{onclick:le}),F(he);var Se=V(he,2),Ce=e=>{var t=th();I(e,t)},we=e=>{var t=nh();I(e,t)},Te=e=>{var t=rh(),n=q(t),r=q(n);F(n),F(t),W(()=>R(r,`Probe geometry failed: ${X(l)??``}`)),I(e,t)},Ee=e=>{var t=ih();I(e,t)},De=e=>{var t=fh(),n=q(t),r=V(q(n),2);L(r,21,()=>X(y),e=>e.layer,(e,t)=>{var n=ah(),r=()=>U(u,X(t).layer,!0);H(n,e=>({type:`button`,class:`row`,"aria-pressed":X(t).layer===X(u),...e,onclick:r,[ft]:{active:X(t).layer===X(u)}}),[()=>({"aria-description":`L${X(t).layer} · share ${xm(X(t).mahalanobis_share)} · ${xm(X(x)>0?Math.abs(X(t).mahalanobis_share)/X(x):0,!0)} of largest layer`})],void 0,void 0,`svelte-f3zez2`);var i=q(n),a=q(i);F(i);var o=V(i,2);{let e=G(()=>X(x)||1),n=G(()=>`Share ${xm(X(t).mahalanobis_share)} · ${xm(X(x)>0?Math.abs(X(t).mahalanobis_share)/X(x):0,!0)} of largest layer`);Em(o,{get value(){return X(t).mahalanobis_share},get max(){return X(e)},width:200,height:8,color:`var(--family)`,get title(){return X(n)}})}var s=V(o,2),c=q(s,!0);F(s),F(n),W(e=>{R(a,`L${X(t).layer??``}`),R(c,e)},[()=>X(t).mahalanobis_share.toFixed(3)]),I(e,n)}),F(r),F(n);var a=V(n,2),c=q(a);let l;var p=q(c);H(p,e=>({class:`plot`,"aria-description":X(h),"aria-label":`Whitened geometry for ${X(i)}, layer ${X(u)}`,"aria-describedby":`probe-geometry-summary`,"data-orbit-zoom":e,onpointerdown:ne,onpointermove:P,onpointerup:re,onpointercancel:re,onlostpointercapture:re,onwheel:ie}),[()=>d.zoom.toFixed(2)],void 0,void 0,`svelte-f3zez2`);var m=q(p);F(p),nt(p,e=>U(f,e),()=>X(f));var g=V(p,2),_=q(g);{let e=G(()=>`L${X(u)} · share ${X(b).mahalanobis_share.toFixed(3)}`);$(_,{get text(){return X(e)}})}F(g);var v=V(g,2),S=e=>{var t=oh(),n=V(Q(t),2),r=q(n),i=V(r,2),a=V(i,2),o=V(a,2),s=V(o,2);Gn(q(s),{name:`subtract`}),F(s);var c=V(s,2);Gn(q(c),{name:`add`}),F(c);var l=V(c,2);F(n),B(`click`,r,()=>ae(-18,0)),B(`click`,i,()=>ae(18,0)),B(`click`,a,()=>ae(0,-18)),B(`click`,o,()=>ae(0,18)),B(`click`,s,()=>oe(.8)),B(`click`,c,()=>oe(1.25)),B(`click`,l,se),I(e,t)};K(v,e=>{X(A)&&e(S)});var T=V(v,2),E=e=>{var t=sh(),n=q(t);{let e=G(()=>`${X(w).length} trail pts`);$(n,{get text(){return X(e)}})}F(t),I(e,t)},D=e=>{var t=ch();H(t,()=>({class:`live-hint`,"aria-description":o.reason??void 0}),void 0,void 0,void 0,`svelte-f3zez2`),I(e,t)},O=e=>{var t=lh();I(e,t)};K(T,e=>{X(w).length>0?e(E):o.available?e(O,-1):e(D,1)}),F(c);var k=V(c,2),j=q(k),M=V(j);{let e=G(()=>ce(X(C)));$(M,{get text(){return X(e)},get identity(){return X(u)}})}var N=V(M);F(k);var ee=V(k,2),te=V(q(ee),2),le=q(te),ue=V(le);{let e=G(()=>ce(X(C)));$(ue,{get text(){return X(e)},get identity(){return X(u)}})}Ze(),F(te);var de=V(te,2);L(de,21,()=>X(b).node_white,dt,(e,t,n)=>{var r=uh(),i=q(r);F(r),W(e=>R(i,`${X(s).node_labels[n]??`node ${n+1}`??``}: [${e??``}]`),[()=>ce(X(t))]),I(e,r)}),F(de),F(ee),Tt(ee,e=>bm?.(e));var fe=V(ee,2),pe=e=>{var t=dh(),n=q(t);F(t),W(()=>R(n,`${o.reason??``}. The fitted geometry remains available.`)),I(e,t)};K(fe,e=>{o.available||e(pe)}),F(a),F(t),W((e,t)=>{l=tt(c,1,`plot-wrap svelte-f3zez2`,null,l,{orbit:X(A)}),R(m,`Whitened geometry for ${X(i)??``}, layer ${X(u)??``}.`),R(j,`Neutral [${e??``}]; live point [`),R(N,`];
116
+ ${X(b).node_white.length??``} node ${X(b).node_white.length===1?`centroid`:`centroids`}.`),R(le,`Layer ${X(u)??``}; rank ${X(b).rank??``}; neutral [${t??``}];
117
+ live point [`)},[()=>ce(X(b).neutral_white),()=>ce(X(b).neutral_white)]),I(e,t)};K(Se,e=>{X(r)?X(c)?e(we,1):X(l)?e(Te,2):!X(s)||!X(b)||X(y).length===0?e(Ee,3):e(De,-1):e(Ce)}),F(pe),W(()=>me=st(pe,``,me,{"--family":X(_)})),I(e,pe),Et()}Ge([`click`]);var hh=[`epistemic`,`alignment`,`register`,`cultural`],gh={epistemic:`Epistemic`,alignment:`Alignment`,register:`Register`,cultural:`Cultural`,other:`Other`},_h=new Set([`epistemic`]),vh=new Set(hh);function yh(e){if(Array.isArray(e)){for(let t of e)if(typeof t==`string`&&vh.has(t))return t}return`other`}function bh(e){let t=e.indexOf(`.`);return t<0?{positive:e,negative:null}:{positive:e.slice(0,t),negative:e.slice(t+1)}}var xh=z(`<input/> <span class="slider-bubble svelte-1ia2ohq" popover="manual" aria-hidden="true"><!></span>`,1);function Sh(e,t){it(t,!0);let n=Z(t,`value`,15),r=Z(t,`min`,3,0),i=Z(t,`max`,3,1),a=Z(t,`step`,3,.01),o=Z(t,`disabled`,3,!1);function s(e){let r=parseFloat(e.currentTarget.value);Number.isFinite(r)&&(U(u,!0),n(r),t.oninput?.(r))}let c,l,u=Y(!1),d=G(()=>t.displayValue??n().toFixed(Math.min(6,(String(a()).split(`.`)[1]??``).length)));function f(){if(!X(u)||!c||!l)return;let e=c.getBoundingClientRect(),t=i()===r()?0:Math.max(0,Math.min(1,(n()-r())/(i()-r()))),a=e.left+10+(getComputedStyle(c).direction===`rtl`?1-t:t)*(e.width-20),o=l.getBoundingClientRect().width/2,s=window.visualViewport,d=s?.offsetLeft??0,f=s?.offsetTop??0,p=s?.width??innerWidth,m=s?.height??innerHeight;e.bottom<=f||e.top>=f+m?l.hidePopover():(l.matches(`:popover-open`)||l.showPopover(),l.style.left=`${Math.max(d+o+8,Math.min(d+p-o-8,a))}px`,l.style.top=`${Math.max(f+8,Math.min(f+m-l.offsetHeight-8,e.top-l.offsetHeight+2))}px`)}ht(()=>(window.addEventListener(`resize`,f),document.addEventListener(`scroll`,f,!0),window.visualViewport?.addEventListener(`resize`,f),window.visualViewport?.addEventListener(`scroll`,f),()=>{window.removeEventListener(`resize`,f),document.removeEventListener(`scroll`,f,!0),window.visualViewport?.removeEventListener(`resize`,f),window.visualViewport?.removeEventListener(`scroll`,f)})),bt(()=>{n(),X(d),X(u)&&!o()?Ke().then(()=>{X(u)&&!o()&&l?.isConnected&&(l.showPopover(),f())}):l?.hidePopover()});let p=null;function m(e){if(!p||e.pointerId!==p.id||o())return;let s=e.currentTarget,c=s.getBoundingClientRect(),l=Math.max(1,c.width-20),u=getComputedStyle(s).direction===`rtl`,d=Math.max(0,Math.min(1,(e.clientX-c.left-10-p.offset)/l)),f=r()+(u?1-d:d)*(i()-r());s.value=String(Math.max(r(),Math.min(i(),r()+Math.round((f-r())/a())*a()))),n(s.valueAsNumber),t.oninput?.(n())}function h(e){if(o()||e.button!==0||!e.isPrimary)return;e.preventDefault();let t=e.currentTarget,a=t.getBoundingClientRect(),s=i()===r()?0:(n()-r())/(i()-r()),c=a.left+10+(getComputedStyle(t).direction===`rtl`?1-s:s)*(a.width-20),l=e.clientX-c;U(u,!0),p={id:e.pointerId,offset:Math.abs(l)<=12?l:0},t.focus({preventScroll:!0}),t.setPointerCapture(e.pointerId),m(e)}function g(e){if(p?.id!==e.pointerId)return;p=null,U(u,!1);let t=e.currentTarget;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId)}var _=xh(),v=Q(_),y=()=>U(u,!0),b=()=>U(u,!1);H(v,()=>({onfocus:y,onblur:b,class:`sk-slider`,type:`range`,min:r(),max:i(),step:a(),value:n(),disabled:o(),"aria-description":t.title,"aria-label":t.ariaLabel,"aria-valuetext":X(d),oninput:s,onpointerdown:h,onpointermove:m,onpointerup:g,onpointercancel:g,onlostpointercapture:g}),void 0,void 0,void 0,`svelte-1ia2ohq`,!0),nt(v,e=>c=e,()=>c);var x=V(v,2);$(q(x),{get text(){return X(d)},duration:120}),F(x),nt(x,e=>l=e,()=>l),I(e,_),Et()}function Ch(e){let t=e.diagnostics;return t?`per_component_variance`in t&&Array.isArray(t.per_component_variance)?{kind:`pca`,...t}:`eigenvalues`in t&&Array.isArray(t.eigenvalues)?{kind:`spectral`,...t}:null:null}function wh(e){let t=e.per_component_variance.reduce((e,t)=>Math.max(e,t),0);return e.per_component_variance.map((n,r)=>({index:r+1,value:n,frac:t>0?n/t:0,picked:r+1<=e.picked_k}))}function Th(e){let t=e.eigenvalues.reduce((e,t)=>Math.max(e,t),0);return e.eigenvalues.map((n,r)=>({index:r+1,value:n,frac:t>0?n/t:0,picked:r+1<=e.picked_k}))}function Eh(e){if(e.kind===`pca`){let t=e.cumulative_variance,n=e.picked_k<=t.length?t[e.picked_k-1]:null,r=n===null?`?`:n.toFixed(3);return`pca · k=${e.picked_k} · cumvar@k=${r} (≥${e.threshold})`}let t=e.gap_magnitude.toExponential(2);return`spectral · k=${e.picked_k} · gap=${t} · σ=${e.bandwidth.toPrecision(3)} · k_nn=${e.k_nn}`}function Dh(e){if(!e)return null;for(let t of e)if(t.fit_mode===`pca`||t.fit_mode===`spectral`||t.fit_mode===`auto`)return t;return null}var Oh=z(`<div class="diag svelte-ct8csj"><p class="summary svelte-ct8csj"> </p> <p class="muted svelte-ct8csj">Authored geometry · not an automatic topology detection</p></div>`),kh=z(`<p class="summary svelte-ct8csj"><!></p> <!>`,1),Ah=z(`<li><span class="bar-fill svelte-ct8csj"></span> <span class="bar-label svelte-ct8csj"> </span></li>`),jh=z(`<p class="warn svelte-ct8csj"> </p>`),Mh=z(`<code class="svelte-ct8csj"> </code>`),Nh=z(`<p class="hyperparams svelte-ct8csj"></p>`),Ph=z(`<div class="diag svelte-ct8csj"><p class="summary svelte-ct8csj"> </p> <!> <ol class="bars svelte-ct8csj"></ol> <!> <!></div>`),Fh=z(`<p class="muted svelte-ct8csj">fit for diagnostics</p>`),Ih=z(`<!> <!>`,1);function Lh(e,t){it(t,!0);let n=Y(0),r=G(()=>Dh(t.manifold.fitted)),i=G(()=>X(r)?Ch(X(r)):null),a=G(()=>X(i)===null?[]:X(i).kind===`pca`?wh(X(i)):Th(X(i))),o=G(()=>X(a)[Math.min(X(n),X(a).length-1)]);var s=Ih(),c=Q(s),l=e=>{var n=Oh(),r=q(n),i=q(r,!0);F(r),Ze(2),F(n),W(e=>R(i,e),[()=>ko(t.manifold.domain)]),I(e,n)},u=G(()=>ko(t.manifold.domain));K(c,e=>{X(u)&&e(l)});var d=V(c,2),f=e=>{var t=Ph(),s=q(t),c=q(s,!0);F(s);var l=V(s,2),u=e=>{var t=kh(),r=Q(t),s=q(r);{let e=G(()=>`Component ${X(o).index} · ${X(i).kind===`pca`?`${xm(X(o).value,!0)} variance`:`eigenvalue ${xm(X(o).value)}`} · ${X(o).picked?`kept`:`not kept`}`);$(s,{get text(){return X(e)},get identity(){return X(i).kind}})}F(r);var c=V(r,2);{let e=G(()=>Math.min(X(n),X(a).length-1)),t=G(()=>Math.max(0,X(a).length-1)),r=G(()=>`Component ${X(o).index}`);Sh(c,{get value(){return X(e)},min:0,get max(){return X(t)},step:1,ariaLabel:`Diagnostic component`,get displayValue(){return X(r)},oninput:e=>U(n,e,!0)})}I(e,t)};K(l,e=>{X(o)&&e(u)});var d=V(l,2);L(d,21,()=>X(a),e=>e.index,(e,t)=>{var n=Ah();H(n,e=>({class:`bar`,...e,[ft]:{picked:X(t).picked}}),[()=>({"aria-description":`#${X(t).index} · ${X(i).kind===`pca`?`${xm(X(t).value,!0)} variance`:`eigenvalue ${xm(X(t).value)}`} · ${xm(X(t).frac,!0)} of largest component${X(t).picked?` (kept)`:``}`})],void 0,void 0,`svelte-ct8csj`);var r=q(n),a=V(r,2),o=q(a,!0);F(a),F(n),W(e=>{st(r,`height: ${e??``}%`),R(o,X(t).index)},[()=>Math.max(2,X(t).frac*100)]),I(e,n)}),F(d);var f=V(d,2),p=e=>{var t=jh(),n=q(t);F(t),W(()=>R(n,`${X(i).component_count??``} components · raise k_nn or use pca`)),I(e,t)};K(f,e=>{X(i).kind===`spectral`&&X(i).component_count>1&&e(p)});var m=V(f,2),h=e=>{var t=Nh();L(t,21,()=>Object.entries(X(r).hyperparams),([e,t])=>e,(e,t)=>{var n=G(()=>ut(X(t),2));let r=()=>X(n)[0],i=()=>X(n)[1];var a=Mh(),o=q(a);F(a),W(e=>R(o,`${r()??``}=${e??``}`),[()=>typeof i()==`number`?i().toString():i()]),I(e,a)}),F(t),I(e,t)};K(m,e=>{X(r)&&X(r).hyperparams&&e(h)}),F(t),W(e=>{J(t,`data-kind`,X(i).kind),R(c,e),J(d,`aria-label`,`${X(i).kind} diagnostics`)},[()=>Eh(X(i))]),I(e,t)},p=e=>{var t=Fh();I(e,t)};K(d,e=>{X(i)===null?(t.manifold.fit_mode===`pca`||t.manifold.fit_mode===`spectral`)&&e(p,1):e(f)}),I(e,s),Et()}var Rh=z(`<span> </span>`),zh=z(`<li><button><span class="node-name svelte-2t0ety"> </span> <!></button></li>`),Bh=z(`<ul class="node-chips svelte-2t0ety" role="list"></ul>`),Vh=z(`<div class="nodes-block svelte-2t0ety"><button><span class="caret svelte-2t0ety" aria-hidden="true"> </span> <span class="nodes-label svelte-2t0ety">nodes</span> <span class="nodes-count svelte-2t0ety"> <!></span></button> <!></div>`),Hh=z(`<span> </span>`),Uh=z(`<span>persona</span>`),Wh=z(`<span class="stale svelte-2t0ety">stale</span>`),Gh=z(`<p class="selector-unavailable svelte-2t0ety" role="status"> </p>`),Kh=z(`<div class="selector-row svelte-2t0ety"><span class="svelte-2t0ety">fit</span> <!> <code class="svelte-2t0ety"> </code></div> <!>`,1),qh=z(`<p class="muted loading-pulse loading-placeholder svelte-2t0ety" role="status">Loading details…</p>`),Jh=z(`<p class="error svelte-2t0ety"> </p>`),Yh=z(`<p class="muted svelte-2t0ety"> </p>`),Xh=z(`<div class="inspect-body svelte-2t0ety"><!></div>`),Zh=z(`<li><div class="row-line svelte-2t0ety"><div class="meta svelte-2t0ety"><span class="row-name svelte-2t0ety"> </span> <span class="row-sub svelte-2t0ety"> <!> <!> <!></span></div> <div class="actions svelte-2t0ety"><button><!></button> <button>+steer</button> <button>+probe</button> <button> </button> <button> </button></div></div> <!> <!> <!></li>`),Qh=z(`<span> </span>`),$h=z(`<li><div class="row-line svelte-2t0ety"><div class="meta svelte-2t0ety"><span class="row-name svelte-2t0ety"> </span> <span class="row-sub svelte-2t0ety"> <!></span></div> <div class="actions svelte-2t0ety"><button> </button> <button> </button></div></div> <!></li>`),eg=z(`<p class="error svelte-2t0ety" role="alert"> </p>`),tg=z(`<button type="button" class="build-btn svelte-2t0ety"><span class="plus svelte-2t0ety" aria-hidden="true"><!></span> <span class="build-label svelte-2t0ety"> </span> <span class="build-hint svelte-2t0ety"> </span></button>`),ng=z(`<div class="search-row svelte-2t0ety"><input type="search" class="search svelte-2t0ety" autocomplete="off" spellcheck="false"/> <button><!></button></div>`),rg=z(`<p class="error svelte-2t0ety" role="alert"> </p>`),ig=z(`<p class="muted loading-pulse loading-placeholder svelte-2t0ety" role="status">Loading controls…</p>`),ag=z(`<p class="muted svelte-2t0ety"> </p>`),og=z(`<ul class="rows svelte-2t0ety" role="list"></ul>`),sg=z(`<section class="category svelte-2t0ety"><button type="button"><span class="caret svelte-2t0ety" aria-hidden="true"> </span> <span class="cat-name svelte-2t0ety"> </span> <span class="cat-count svelte-2t0ety"> </span></button> <!></section>`),cg=z(`<h2 class="section-title svelte-2t0ety">Fitted</h2> <div class="catalog svelte-2t0ety"></div>`,1),lg=z(`<ul class="rows svelte-2t0ety" role="list"></ul>`),ug=z(`<section class="category svelte-2t0ety"><button type="button"><span class="caret svelte-2t0ety" aria-hidden="true"> </span> <span class="cat-name svelte-2t0ety"> </span> <span class="cat-count svelte-2t0ety"> </span></button> <!></section>`),dg=z(`<h2 class="section-title svelte-2t0ety">Unfitted</h2> <div class="catalog svelte-2t0ety"></div>`,1),fg=z(`<p class="muted svelte-2t0ety">no matches</p>`),pg=z(`<!> <!> <!>`,1),mg=z(`<section><header class="header svelte-2t0ety"><h2 class="title svelte-2t0ety"> </h2> <!> <!></header> <div class="body svelte-2t0ety"><!> <details class="custom-attach svelte-2t0ety"><summary class="svelte-2t0ety">attach selector</summary> <form class="attach-form svelte-2t0ety"><label class="row-label svelte-2t0ety"><span class="svelte-2t0ety">selector</span> <input type="text" class="text-input svelte-2t0ety" placeholder="ns/name" aria-label="Selector"/></label> <label class="row-label svelte-2t0ety"><span class="svelte-2t0ety">name</span> <input type="text" class="text-input svelte-2t0ety" placeholder="name" aria-label="Registered probe name (optional)"/></label> <label class="row-label svelte-2t0ety"><span class="svelte-2t0ety">top_n</span> <input type="number" class="text-input small svelte-2t0ety" min="1" max="32" step="1" aria-label="Per-token nearest-node list length"/></label> <button type="submit" class="act probe svelte-2t0ety">+ attach</button></form></details> <!> <button type="button" class="build-btn svelte-2t0ety">Inspect surface geometry</button> <!> <!> <!></div></section>`);function hg(n,i){it(i,!0);let a=G(()=>i.params?.returnToToken);function s(e){e?ir(`token_drilldown`,e):ar()}let c=G(()=>i.params&&typeof i.params==`object`&&i.params.family===`manifold`?`manifold`:`subspace`),l=G(()=>X(c)===`manifold`?`var(--pillar-manifold)`:`var(--accent)`),u=G(()=>X(a)?`Add a probe`:X(c)===`manifold`?`manifold`:`subspace`),f=G(()=>X(a)?`Create a concept`:`build manifold`),p=G(()=>X(a)?`Train a concept for this model`:`author a domain and node corpus`),m=j(`manifold_builder`).available,h=ee(`fitting`),g=d.mode!==`http`,_=Y(null),v=!1,b=new Le,x=new Le,S=new Map,w=new Le,T=new D,O=new Le,A=new D,M=new Map,te=Y(``),ne=Y(null),re=new Le,ie=new D,ae=new Le([..._h].flatMap(e=>[`ft:${e}`,`un:${e}`]));ht(()=>(v=!0,y(),be(),queueMicrotask(()=>X(ne)?.focus({preventScroll:!0})),()=>{v=!1;for(let e of S.values())window.clearTimeout(e);S.clear()}));function oe(e){return`${e.namespace}/${e.name}`}function se(e){return pn(e,E.info?.model_id??null,g)}function ce(e){return mn(se(e),ie.get(oe(e)))}function le(e,t){ie.set(oe(e),t)}function ue(e){let t=ce(e);return t&&!t.available?t.unavailableReason??`The selected fit for ${oe(e)} is unavailable.`:null}let de=G(()=>X(te).trim().length>0);function fe(e,t){return e.toLowerCase().includes(t)}function me(e,t){if(!t)return!0;let n=t.toLowerCase();if(oe(e).toLowerCase().includes(n)||e.name.toLowerCase().includes(n)||e.namespace.toLowerCase().includes(n)||e.description&&e.description.toLowerCase().includes(n))return!0;if(Array.isArray(e.tags)){for(let t of e.tags)if(typeof t==`string`&&t.toLowerCase().includes(n))return!0}return(e.node_labels??[]).some(e=>fe(e,n))}function he(e){let t=e.node_labels??[],n=X(te).trim().toLowerCase();if(!n)return t;let r=t.filter(e=>fe(e,n));return r.length>0?r:t}function ge(e,t){let n=e.node_roles;if(!n)return null;let r=(e.node_labels??[]).indexOf(t);return r>=0?n[r]??null:null}function _e(e){return X(de)||re.has(e)}function ve(e){re.has(e)?re.delete(e):re.add(e)}function ye(e){let t=e.fit_mode;if(t===`auto`){let n=e.resolved_fit_mode;if(n==null)return!0;t=n}return X(c)===`subspace`?t===`pca`||t===`baked`:t===`spectral`||t===`authored`}let xe=G(()=>P.catalog.filter(e=>ye(e)&&e.fitted_for_session&&me(e,X(te).trim()))),Se=G(()=>P.catalog.filter(e=>ye(e)&&!e.fitted_for_session&&me(e,X(te).trim()))),Ce=G(()=>P.catalog.filter(e=>ye(e)).length);function we(e){let t=new Map;for(let n of e){let e=yh(n.tags),r=t.get(e);r?r.push(n):t.set(e,[n])}for(let e of t.values())e.sort((e,t)=>e.name.localeCompare(t.name));return t}function Te(e){return[...hh,`other`].filter(t=>(e.get(t)?.length??0)>0).map(t=>({cat:t,items:e.get(t)}))}let De=G(()=>Te(we(X(xe)))),Oe=G(()=>Te(we(X(Se))));function Ae(e){ae.has(e)?ae.delete(e):ae.add(e)}function je(e){return X(de)||ae.has(e)}function Me(e){return[...P.entries.keys()].some(t=>_n(t,e))}function Ne(e){let t=ce(e);return t?[...ke.entries.values()].some(n=>nn(n.info,e,n.request.selector)&&(n.info.family!==`geometry`||n.info.manifold===t.selector||n.request.selector===t.selector)):!1}function Pe(e){return un(e,gn(e,P.entries,ke.entries))}function Fe(e,n){if(!e.fitted_for_session)return;let i=ce(e);if(!i||!i.available){N(i?.unavailableReason??`No compatible fit is available for ${oe(e)}.`,{kind:`error`,ttlMs:null});return}let a=oe(e);X(c)===`subspace`?(k(a,i.variant),Ee(a,n)):(r(a,i.variant),t(a,n)),ar()}function Ie(e){if(Me(e))return;let t=ce(e);!t||!t.available?N(t?.unavailableReason??`No compatible fit is available for ${oe(e)}.`,{kind:`error`,ttlMs:null}):(X(c)===`subspace`?k(oe(e),t.variant):r(oe(e),t.variant),ar())}async function Re(e){if(Ne(e)||b.has(oe(e)))return;let t=Jn.params,n=Jn.open,r=X(a),i=ce(e);if(!i||!i.available){N(i?.unavailableReason??`No compatible fit is available for ${oe(e)}.`,{kind:`error`,ttlMs:null});return}let o=oe(e);b.add(o);try{let e=await pe(i.selector);N(`probe ${e.name}`,{kind:`info`}),v&&Jn.open===n&&Jn.params===t&&s(r)}catch(e){N(`attach: ${An(e)}`,{kind:`error`,ttlMs:null})}finally{b.delete(o)}}let ze=Y(``),Ve=Y(``),He=Y(3),Ue=Y(!1);async function We(e){if(e.preventDefault(),X(Ue))return;let t=Jn.params,n=Jn.open,r=X(a),i=X(ze).trim();if(!i)N(`selector required`,{kind:`error`});else{if(g){let e=P.catalog.find(e=>_n(i,e));if(e){let t=se(e),n=t.find(e=>e.selector===i),r=t.find(e=>!e.available&&e.unavailableReason!==null);if(n&&!n.available||!n&&r){N(n?.unavailableReason??r.unavailableReason,{kind:`error`,ttlMs:null});return}}}U(Ue,!0);try{let e={};X(Ve).trim()&&(e.name=X(Ve).trim()),X(He)&&X(He)>0&&(e.top_n=X(He));let a=await pe(i,e);N(`probe ${a.name}`,{kind:`info`}),U(ze,``),U(Ve,``),v&&Jn.open===n&&Jn.params===t&&r&&s(r)}catch(e){N(`attach: ${An(e)}`,{kind:`error`,ttlMs:null})}finally{U(Ue,!1)}}}function Ge(e){if(!h.available){N(h.reason??`Manifold fitting is unavailable.`,{kind:`error`,ttlMs:null});return}let t=oe(e);b.has(t)||(b.add(t),U(_,null),(async()=>{try{await o(e.namespace,e.name,{},()=>{}),T.delete(t),A.delete(t),M.set(t,(M.get(t)??0)+1),O.delete(t),await Promise.all([y(),be(),C()]),v&&w.has(t)&&(w.delete(t),await ct(e)),N(`fitted ${t}`,{kind:`info`})}catch(e){if(zn(e)){N(`Fitting ${t} cancelled.`,{kind:`info`});return}N(`Couldn't fit '${t}': ${An(e)}`,{kind:`error`,ttlMs:null})}finally{b.delete(t)}})())}function Ke(e){let t=oe(e),n=Pe(e);if(n){N(n,{kind:`error`,ttlMs:null});return}if(x.has(t)){let n=S.get(t);n!==void 0&&(window.clearTimeout(n),S.delete(t)),x.delete(t),qe(e);return}x.add(t);let r=window.setTimeout(()=>{x.delete(t),S.delete(t)},3e3);S.set(t,r)}async function qe(t){let n=oe(t);b.add(n),U(_,null);try{await e.delete(t.namespace,t.name),await y();let r=t.namespace==="default"?`Deleted ${n}. This bundled item will return on restart.`:`deleted ${n}`;N(r,{kind:`info`})}catch(e){U(_,An(e),!0)}finally{b.delete(n)}}function Ye(){ir(`manifold_builder`,X(a)?{returnToToken:X(a),mode:`discover`}:null)}function z(e){return e.fit_mode&&e.fit_mode!==`authored`?e.fit_mode:null}function et(e){return(e.node_roles??[]).some(e=>e)}function rt(e){return e.fit_mode===`pca`||e.fit_mode===`spectral`}async function ct(t){let n=oe(t);if(w.has(n)){w.delete(n);return}if(w.add(n),T.has(n))return;O.add(n),A.delete(n);let r=(M.get(n)??0)+1;M.set(n,r);try{let i=await e.get(t.namespace,t.name);if(!v||M.get(n)!==r)return;T.set(n,i)}catch(e){if(!v||M.get(n)!==r)return;A.set(n,An(e))}finally{M.get(n)===r&&O.delete(n)}}var lt=mg();let ut,dt;var pt=q(lt),mt=q(pt),gt=q(mt,!0);F(mt);var Z=V(mt,2),_t=e=>{zs(e,{onclick:()=>s(X(a)),children:(e,t)=>{Ze();var n=Qe(`Back to token`);I(e,n)},$$slots:{default:!0}})};K(Z,e=>{X(a)&&e(_t)}),Dr(V(Z,2),{get onclick(){return ar}}),F(pt);var vt=V(pt,2);{let e=(e,t=Be,n=Be)=>{let r=G(()=>oe(t())),i=G(()=>(t().node_labels??[]).length),a=G(()=>he(t()));var o=Je(),s=Q(o),c=e=>{var o=Vh(),s=q(o),c=()=>ve(X(r));H(s,(e,t)=>({type:`button`,class:`nodes-toggle`,"aria-expanded":e,onclick:c,...t}),[()=>_e(X(r)),()=>({"aria-description":_e(X(r))?`collapse`:`expand`})],void 0,void 0,`svelte-2t0ety`);var l=q(s),u=q(l,!0);F(l);var d=V(l,4),f=q(d,!0),p=V(f),m=e=>{var t=Qe();W(()=>R(t,`/${X(i)??``}`)),I(e,t)};K(p,e=>{X(a).length!==X(i)&&e(m)}),F(d),F(s);var h=V(s,2),g=e=>{var i=Bh();L(i,20,()=>X(a),e=>e,(e,i)=>{let a=G(()=>ge(t(),i));var o=zh(),s=q(o),c=()=>Fe(t(),i);H(s,()=>({type:`button`,class:`node-chip`,disabled:!n(),onclick:c,"aria-description":n()?`steer ${X(r)} → ${i}`:`fit ${X(r)} first to steer to ${i}`}),void 0,void 0,void 0,`svelte-2t0ety`);var l=q(s),u=q(l,!0);F(l);var d=V(l,2),f=e=>{var t=Rh();H(t,()=>({class:`node-role`,"aria-description":`role baseline`}),void 0,void 0,void 0,`svelte-2t0ety`);var n=q(t,!0);F(t),W(()=>R(n,X(a))),I(e,t)};K(d,e=>{X(a)&&e(f)}),F(s),F(o),W(()=>R(u,i)),I(e,o)}),F(i),Xe(1,i,()=>uo,Eo),Xe(2,i,()=>uo,Do),I(e,i)},_=G(()=>_e(X(r)));K(h,e=>{X(_)&&e(g)}),F(o),W(e=>{R(u,e),R(f,X(a).length)},[()=>_e(X(r))?`▾`:`▸`]),I(e,o)};K(s,e=>{X(i)>0&&e(c)}),I(e,o)},t=(t,n=Be)=>{let r=G(()=>oe(n())),i=G(()=>b.has(X(r))),a=G(()=>x.has(X(r))),o=G(()=>w.has(X(r))),s=G(()=>z(n())),c=G(()=>se(n())),l=G(()=>ce(n())),u=G(()=>ue(n())),d=G(()=>Pe(n()));var f=Zh();H(f,()=>({class:`row`,"aria-description":n().description||X(r)}),void 0,void 0,void 0,`svelte-2t0ety`);var p=q(f),m=q(p),g=q(m),_=q(g,!0);F(g);var v=V(g,2),y=q(v),S=V(y),C=e=>{var t=Hh(),n=q(t,!0);F(t),W(()=>{tt(t,1,`fit-badge fit-${X(s)??``}`,`svelte-2t0ety`),R(n,X(s))}),I(e,t)};K(S,e=>{X(s)&&e(C)});var E=V(S,2),D=e=>{var t=Uh();H(t,()=>({class:`fit-badge fit-persona`,"aria-description":`role-paired manifold`}),void 0,void 0,void 0,`svelte-2t0ety`),I(e,t)},k=G(()=>et(n()));K(E,e=>{X(k)&&e(D)});var j=V(E,2),M=e=>{var t=Wh();I(e,t)};K(j,e=>{n().stale&&e(M)}),F(v),F(m);var N=V(m,2),ee=q(N),te=()=>void ct(n());H(ee,()=>({type:`button`,class:`act inspect`,"aria-expanded":X(o),"aria-label":`${X(o)?`Hide`:`Show`} details for ${X(r)}`,onclick:te,"aria-description":X(o)?`hide`:`inspect`}),void 0,void 0,void 0,`svelte-2t0ety`);var ne=q(ee);{let e=G(()=>X(o)?`down`:`info`);Gn(ne,{get name(){return X(e)}})}F(ee);var P=V(ee,2),re=()=>Ie(n());H(P,(e,t)=>({type:`button`,class:`act steer`,disabled:e,onclick:re,...t}),[()=>X(i)||Me(n())||X(l)===null||!X(l).available,()=>({"aria-description":X(u)??(Me(n())?`${X(r)} already racked`:`steer with ${X(l)?.selector??X(r)}`)})],void 0,void 0,`svelte-2t0ety`);var ie=V(P,2),ae=()=>void Re(n());H(ie,(e,t)=>({type:`button`,class:`act probe`,disabled:e,onclick:ae,...t}),[()=>X(i)||Ne(n())||X(l)===null||!X(l).available,()=>({"aria-description":X(u)??(Ne(n())?`${X(r)} already attached`:`probe with ${X(l)?.selector??X(r)}`)})],void 0,void 0,`svelte-2t0ety`);var de=V(ie,2),fe=()=>Ge(n());H(de,()=>({type:`button`,class:`act fit`,disabled:X(i)||!h.available,onclick:fe,"aria-description":h.available?`re-fit ${X(r)}`:h.reason??`Fitting unavailable`}),void 0,void 0,void 0,`svelte-2t0ety`);var pe=q(de,!0);F(de);var me=V(de,2),he=()=>Ke(n());H(me,()=>({type:`button`,class:`act del`,disabled:X(i),onclick:he,"aria-description":X(d)??(X(a)?`click again to confirm`:`delete ${X(r)}`),[ft]:{confirm:X(a)}}),void 0,void 0,void 0,`svelte-2t0ety`);var ge=q(me,!0);F(me),F(N),F(p);var _e=V(p,2),ve=e=>{var t=Kh(),i=Q(t),a=V(q(i),2);{let e=G(()=>X(c).map(e=>({value:e.selector,label:e.label,disabled:!e.available}))),t=G(()=>`Fit for ${X(r)}`),i=G(()=>X(l).unavailableReason??`Use ${X(l).selector}`);Io(a,{get value(){return X(l).selector},get options(){return X(e)},get ariaLabel(){return X(t)},get title(){return X(i)},onchange:e=>le(n(),e)})}var o=V(a,2),s=q(o,!0);F(o),F(i);var d=V(i,2),f=e=>{var t=Gh(),n=q(t,!0);F(t),W(()=>R(n,X(u))),I(e,t)};K(d,e=>{X(u)&&e(f)}),W(()=>R(s,X(l).selector)),I(e,t)};K(_e,e=>{X(c).length>0&&X(l)&&e(ve)});var ye=V(_e,2),be=e=>{var t=Xh(),n=q(t),i=e=>{var t=qh();I(e,t)},a=G(()=>O.has(X(r))),o=e=>{var t=Jh(),n=q(t,!0);F(t),W(e=>R(n,e),[()=>A.get(X(r))]),I(e,t)},s=G(()=>A.has(X(r))),c=e=>{let t=G(()=>T.get(X(r)));var n=Je(),i=Q(n),a=e=>{Lh(e,{get manifold(){return X(t)}})},o=G(()=>rt(X(t))),s=e=>{var n=Yh(),r=q(n);F(n),W(()=>R(r,`authored · ${X(t).domain_label??``} · dim ${X(t).intrinsic_dim??``}`)),I(e,n)};K(i,e=>{X(o)?e(a):e(s,-1)}),I(e,n)},l=G(()=>T.has(X(r)));K(n,e=>{X(a)?e(i):X(s)?e(o,1):X(l)&&e(c,2)}),F(t),Xe(1,t,()=>uo,Eo),Xe(2,t,()=>uo,Do),I(e,t)};K(ye,e=>{X(o)&&e(be)});var xe=V(ye,2);e(xe,n,()=>X(l)?.available===!0),F(f),W(()=>{R(_,X(r)),R(y,`${n().domain_label??``} · ${n().node_count??``} nodes `),R(pe,X(i)?`…`:`re-fit`),R(ge,X(a)?`confirm?`:`delete`)}),I(t,f)},n=(t,n=Be)=>{let r=G(()=>oe(n())),i=G(()=>b.has(X(r))),a=G(()=>x.has(X(r))),o=G(()=>z(n())),s=G(()=>Pe(n()));var c=$h();H(c,()=>({class:`row`,"aria-description":n().description||X(r)}),void 0,void 0,void 0,`svelte-2t0ety`);var l=q(c),u=q(l),d=q(u),f=q(d,!0);F(d);var p=V(d,2),m=q(p),g=V(m),_=e=>{var t=Qh(),n=q(t,!0);F(t),W(()=>{tt(t,1,`fit-badge fit-${X(o)??``}`,`svelte-2t0ety`),R(n,X(o))}),I(e,t)};K(g,e=>{X(o)&&e(_)}),F(p),F(u);var v=V(u,2),y=q(v),S=()=>Ge(n());H(y,()=>({type:`button`,class:`act fit`,disabled:X(i)||!h.available,onclick:S,"aria-description":h.available?`fit ${X(r)}`:h.reason??`Fitting unavailable`}),void 0,void 0,void 0,`svelte-2t0ety`);var C=q(y,!0);F(y);var w=V(y,2),T=()=>Ke(n());H(w,()=>({type:`button`,class:`act del`,disabled:X(i),onclick:T,"aria-description":X(s)??(X(a)?`click again to confirm`:`delete ${X(r)}`),[ft]:{confirm:X(a)}}),void 0,void 0,void 0,`svelte-2t0ety`);var E=q(w,!0);F(w),F(v),F(l);var D=V(l,2);e(D,n,()=>!1),F(c),W(()=>{R(f,X(r)),R(m,`${n().domain_label??``} · ${n().node_count??``} nodes `),R(C,X(i)?`…`:`fit`),R(E,X(a)?`confirm?`:`delete`)}),I(t,c)};var yt=q(vt),bt=e=>{var t=eg(),n=q(t,!0);F(t),W(()=>R(n,X(_))),I(e,t)};K(yt,e=>{X(_)&&e(bt)});var xt=V(yt,2),St=V(q(xt),2),Ct=q(St),wt=V(q(Ct),2);ot(wt),F(Ct);var Dt=V(Ct,2),Ot=V(q(Dt),2);ot(Ot),F(Dt);var kt=V(Dt,2),At=V(q(kt),2);ot(At),F(kt);var jt=V(kt,2);F(St),F(xt),Tt(xt,e=>bm?.(e));var Mt=V(xt,2),Nt=e=>{var t=tg(),n=q(t);Gn(q(n),{name:`add`}),F(n);var r=V(n,2),i=q(r,!0);F(r);var a=V(r,2),o=q(a,!0);F(a),F(t),W(()=>{R(i,X(f)),R(o,X(p))}),B(`click`,t,Ye),I(e,t)};K(Mt,e=>{(!X(a)||m)&&e(Nt)});var Pt=V(Mt,2),Ft=V(Pt,2),It=e=>{var t=ng(),n=q(t);ot(n),nt(n,e=>U(ne,e),()=>X(ne));var r=V(n,2),i=()=>void y();H(r,()=>({type:`button`,class:`refresh`,onclick:i,disabled:P.loading,"aria-description":`refresh`,"aria-label":`Refresh`}),void 0,void 0,void 0,`svelte-2t0ety`),Gn(q(r),{name:`refresh`,get spin(){return P.loading}}),F(r),F(t),W(()=>{J(n,`placeholder`,X(c)===`manifold`?`search manifolds & nodes…`:`search subspaces & nodes…`),J(n,`aria-label`,X(c)===`manifold`?`Search manifolds and nodes`:`Search subspaces and nodes`)}),at(n,()=>X(te),e=>U(te,e)),I(e,t)};K(Ft,e=>{X(Ce)>0&&e(It)});var Lt=V(Ft,2),Rt=e=>{var t=rg(),n=q(t,!0);F(t),W(()=>R(n,P.error)),I(e,t)};K(Lt,e=>{P.error&&e(Rt)});var zt=V(Lt,2),Bt=e=>{var t=ig();I(e,t)},Vt=e=>{var t=ag(),n=q(t,!0);F(t),W(()=>R(n,X(a)?`No saved concepts in this category yet.`:`none`)),I(e,t)},Ht=e=>{var r=pg(),i=Q(r),a=e=>{var n=cg(),r=V(Q(n),2);L(r,21,()=>X(De),({cat:e,items:t})=>e,(e,n)=>{let r=()=>X(n).cat,i=()=>X(n).items,a=G(()=>`ft:${r()}`),o=G(()=>je(X(a)));var s=sg(),c=q(s);let l;var u=q(c),d=q(u,!0);F(u);var f=V(u,2),p=q(f,!0);F(f);var m=V(f,2),h=q(m,!0);F(m),F(c);var g=V(c,2),_=e=>{var n=og();L(n,21,i,e=>oe(e),(e,n)=>{t(e,()=>X(n))}),F(n),W(()=>J(n,`aria-label`,gh[r()])),Xe(1,n,()=>uo,Eo),Xe(2,n,()=>uo,Do),I(e,n)};K(g,e=>{X(o)&&e(_)}),F(s),W(()=>{l=tt(c,1,`cat-header svelte-2t0ety`,null,l,{open:X(o)}),J(c,`aria-expanded`,X(o)),c.disabled=X(de),R(d,X(o)?`▾`:`▸`),R(p,gh[r()]),R(h,i().length)}),B(`click`,c,()=>Ae(X(a))),I(e,s)}),F(r),I(e,n)};K(i,e=>{X(De).length>0&&e(a)});var o=V(i,2),s=e=>{var t=dg(),r=V(Q(t),2);L(r,21,()=>X(Oe),({cat:e,items:t})=>e,(e,t)=>{let r=()=>X(t).cat,i=()=>X(t).items,a=G(()=>`un:${r()}`),o=G(()=>je(X(a)));var s=ug(),c=q(s);let l;var u=q(c),d=q(u,!0);F(u);var f=V(u,2),p=q(f,!0);F(f);var m=V(f,2),h=q(m,!0);F(m),F(c);var g=V(c,2),_=e=>{var t=lg();L(t,21,i,e=>oe(e),(e,t)=>{n(e,()=>X(t))}),F(t),W(()=>J(t,`aria-label`,gh[r()])),Xe(1,t,()=>uo,Eo),Xe(2,t,()=>uo,Do),I(e,t)};K(g,e=>{X(o)&&e(_)}),F(s),W(()=>{l=tt(c,1,`cat-header svelte-2t0ety`,null,l,{open:X(o)}),J(c,`aria-expanded`,X(o)),c.disabled=X(de),R(d,X(o)?`▾`:`▸`),R(p,gh[r()]),R(h,i().length)}),B(`click`,c,()=>Ae(X(a))),I(e,s)}),F(r),I(e,t)};K(o,e=>{X(Oe).length>0&&e(s)});var c=V(o,2),l=e=>{var t=fg();I(e,t)};K(c,e=>{X(xe).length===0&&X(Se).length===0&&e(l)}),I(e,r)};K(zt,e=>{P.loading&&X(Ce)===0?e(Bt):X(Ce)===0?e(Vt,1):e(Ht,-1)}),F(vt),W(e=>{wt.disabled=X(Ue),Ot.disabled=X(Ue),At.disabled=X(Ue),jt.disabled=e},[()=>X(Ue)||!X(ze).trim()]),$e(`submit`,St,We),at(wt,()=>X(ze),e=>U(ze,e)),at(Ot,()=>X(Ve),e=>U(Ve,e)),at(At,()=>X(He),e=>U(He,e)),B(`click`,Pt,()=>ir(`surface_geometry`))}F(lt),W(e=>{ut=tt(lt,1,`drawer-shell svelte-2t0ety`,null,ut,{"fam-manifold":X(c)===`manifold`}),J(lt,`aria-label`,X(c)===`manifold`?`Manifolds`:`Subspaces`),dt=st(lt,``,dt,{"--family-accent":X(l)}),R(gt,X(u))},[()=>X(Ue)||!X(ze).trim()]),I(n,lt),Et()}Ge([`click`]);var gg=z(`<label class="color-option svelte-9lpm3w"><input type="radio" class="svelte-9lpm3w"/> <span class="swatch svelte-9lpm3w"><span><!></span></span> <span class="svelte-9lpm3w"> </span></label>`),_g=z(`<div class="accent-popover svelte-9lpm3w" popover="manual" role="dialog" aria-label="Chat accent color" tabindex="-1"><div class="accent-surface t-dropdown svelte-9lpm3w"><fieldset class="svelte-9lpm3w"><legend class="sr-only">Chat accent color</legend> <!></fieldset></div></div>`),vg=z(`<div class="accent-picker svelte-9lpm3w"><button type="button" aria-haspopup="dialog" class="svelte-9lpm3w"><span class="current-swatch svelte-9lpm3w" aria-hidden="true"></span> <span>Color <span class="color-name svelte-9lpm3w">· <!></span></span> <span class="chevron svelte-9lpm3w"><!></span></button> <!></div>`);function yg(e,t){let n=Ve();it(t,!0);let r=Z(t,`value`,3,`purple`),i=Z(t,`disabled`,3,!1),a=G(()=>Nt(r())),o=Y(`purple`),s=Y(!1),c=Y(null),l=Y(null),u=Y(null),d=Y(``),f,p=Mo();bt(()=>{U(o,r())});function m(){if(!X(s)||!X(c)||!X(l))return;let e=X(c).getBoundingClientRect(),t=window.visualViewport,n=t?.offsetLeft??0,r=t?.offsetTop??0,i=t?.width??window.innerWidth,a=r+(t?.height??window.innerHeight),o=Math.min(432,i-16),f=Math.max(n+8,Math.min(e.left,n+i-o-8)),p=X(u)?.offsetHeight??0,m=e.bottom+8+p>a-8&&e.top-p-8>=r+8,h=m?e.top-p-8:e.bottom+8,g=X(l).getBoundingClientRect(),_=getComputedStyle(X(l)),v=parseFloat(_.left)-g.left,y=parseFloat(_.top)-g.top;U(d,`left:${f+v}px;top:${h+y}px;width:${o}px;max-height:${Math.max(0,a-h-8)}px`),X(u)&&(X(u).dataset.origin=m?`bottom-left`:`top-left`)}async function h(e){i()||(clearTimeout(f),U(s,!0),p.mount(),await Ke(),X(s)&&X(l)&&(X(l).showPopover(),m(),await Ke(),X(s)&&X(l)&&X(u)&&(p.show(X(u)),e&&X(l).querySelector(`input:checked`)?.focus({preventScroll:!0}))))}function g(e=!1){U(s,!1),e&&X(c)?.focus({preventScroll:!0}),p.close(X(u))}function _(e){if(!X(s))return;let t=e.target;!X(c)?.contains(t)&&!X(l)?.contains(t)&&g()}function v(e){X(s)&&(e.key===`Tab`&&!X(c)?.contains(e.target)?f=setTimeout(()=>g(),0):e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),g(!0)))}ht(()=>(document.addEventListener(`pointerdown`,_,!0),document.addEventListener(`focusin`,_),document.addEventListener(`keydown`,v,!0),window.addEventListener(`resize`,m),window.addEventListener(`scroll`,m,!0),window.visualViewport?.addEventListener(`resize`,m),window.visualViewport?.addEventListener(`scroll`,m),()=>{U(s,!1),clearTimeout(f),document.removeEventListener(`pointerdown`,_,!0),document.removeEventListener(`focusin`,_),document.removeEventListener(`keydown`,v,!0),window.removeEventListener(`resize`,m),window.removeEventListener(`scroll`,m,!0),window.visualViewport?.removeEventListener(`resize`,m),window.visualViewport?.removeEventListener(`scroll`,m),p.destroy()}));async function y(e){U(o,e,!0),await t.onchange(e),U(o,r())}var b=vg(),x=q(b),S=q(x);let C;var w=V(S,2),T=V(q(w));$(V(q(T)),{get text(){return X(a).name},numbers:!1}),F(T),F(w);var E=V(w,2);Gn(q(E),{name:`down`,size:16}),F(E),F(x),nt(x,e=>U(c,e),()=>X(c));var D=V(x,2),O=e=>{var t=_g(),r=q(t),a=q(r),c=V(q(a),2);L(c,17,()=>It,dt,(e,t)=>{var r=gg(),i=q(r);ot(i);var a=V(i,2);let s;var c=q(a);let l;Gn(q(c),{name:`check`,size:16}),F(c),F(a);var u=V(a,2),d=q(u,!0);F(u),F(r),W(()=>{J(i,`name`,`chat-accent-${n}`),ct(i,X(t).id),mt(i,X(o)===X(t).id),s=st(a,``,s,{background:X(t).dark}),l=tt(c,1,`swatch-check svelte-9lpm3w`,null,l,{chosen:X(o)===X(t).id}),R(d,X(t).name)}),B(`change`,i,()=>void y(X(t).id)),I(e,r)}),F(a),F(r),nt(r,e=>U(u,e),()=>X(u)),F(t),nt(t,e=>U(l,e),()=>X(l)),W(()=>{J(t,`id`,`${n}-colors`),st(t,X(d)),t.inert=!X(s),a.disabled=i()}),I(e,t)};K(D,e=>{p.mounted&&e(O)}),F(b),W(()=>{x.disabled=i(),J(x,`aria-expanded`,X(s)),J(x,`aria-controls`,p.mounted?`${n}-colors`:void 0),C=st(S,``,C,{background:X(a).dark})}),B(`click`,x,e=>X(s)?g():void h(e.detail===0)),I(e,b),Et()}Ge([`click`,`change`]);var bg=z(`<p class="notice svelte-1e766n7">Wait for the current reply to finish before saving.</p>`),xg=z(`<p class="error svelte-1e766n7" role="alert"> </p>`),Sg=z(`<button type="button" class="button svelte-1e766n7">Save as new</button>`),Cg=z(`<section><header class="header svelte-1e766n7"><div class="svelte-1e766n7"><h2 class="title svelte-1e766n7"><!></h2> <p class="svelte-1e766n7">Keep the full loom, response settings, and readings on this device.</p></div> <!></header> <div class="body svelte-1e766n7"><div class="identity-card svelte-1e766n7"><div class="avatar-picker svelte-1e766n7"><button type="button" class="avatar-button svelte-1e766n7" aria-label="Generate another avatar"><!></button> <span class="svelte-1e766n7">Click for a new avatar</span></div> <label class="name-field svelte-1e766n7"><span class="svelte-1e766n7">Name</span> <input maxlength="120" autocomplete="off" placeholder="Untitled conversation" class="svelte-1e766n7"/></label></div> <div class="summary svelte-1e766n7" aria-label="Conversation summary"><span class="svelte-1e766n7"> </span> <span class="svelte-1e766n7"> </span></div> <!> <p class="storage-note svelte-1e766n7">Stored in this browser. Drowse removes a saved chat only after you confirm Delete.</p> <!> <!></div> <footer class="footer svelte-1e766n7"><button type="button" class="text-button svelte-1e766n7"><!></button> <div class="footer-actions svelte-1e766n7"><!> <button type="button"><!></button></div></footer></section>`);function wg(e,t){it(t,!0);let n=Z(t,`embedded`,3,!1),r=Y(``),i=Y(null),a=Y(``),o=Y(pt(At())),s=Y(`purple`),c=G(()=>X(r)!==``&&JSON.stringify([X(a),X(o),X(s)])!==X(r)),l=Y(null),u=Y(!0),d=Y(!1),f=Y(`Current model`),p=Y(0);ht(()=>{m()}),ht(()=>Pt(()=>{if(!X(d)&&!X(c))return m()}));async function m(){U(u,!0),U(l,null);try{await Lt().catch(()=>void 0);let e=wf();U(f,Vt(e.model_id),!0),U(p,e.tree.nodes.filter(e=>e.parent_id!==null).length,!0),U(a,Ft(),!0);let t=zt.activeId;if(t)try{let n=await Bt.get(t);n.modelId===e.model_id?(U(i,n,!0),U(a,n.name,!0),U(o,n.avatarSeed,!0),U(s,n.accent??`purple`,!0)):(zt.activeId=null,zt.avatarSeed=null,zt.accent=`purple`)}catch(e){if(e instanceof kt&&e.code===`NOT_FOUND`)zt.activeId=null,zt.avatarSeed=null,zt.accent=`purple`;else throw e}}catch(e){U(l,jn(e,`This conversation is not ready to save yet.`),!0)}finally{U(r,JSON.stringify([X(a),X(o),X(s)]),!0),U(u,!1)}}function h(){U(o,At(),!0)}async function g(e=!1){if(U(l,null),me.active)U(l,`Wait for the current reply to finish before saving.`);else{U(d,!0);try{await Lt().catch(()=>void 0);let t=await Rt(),c=wf(),l=X(i)?.id??zt.activeId,u=l&&!e?await Bt.update(l,{name:X(a),avatarSeed:X(o),accent:X(s),snapshot:c}):await Bt.create({name:X(a),avatarSeed:X(o),accent:X(s),snapshot:c});U(i,u,!0),U(r,JSON.stringify([u.name,u.avatarSeed,u.accent??`purple`]),!0),U(a,u.name,!0),U(o,u.avatarSeed,!0),zt.activeId=u.id,zt.avatarSeed=u.avatarSeed,zt.accent=u.accent??`purple`,zt.status=`saved`,zt.error=null,N(t===!1?`Saved “${u.name}”. Browser cleanup protection is off.`:`Saved “${u.name}”.`,{kind:t===!1?`warning`:`info`}),n()||ar()}catch(e){U(l,jn(e,`This conversation could not be saved.`),!0)}finally{U(d,!1)}}}let _=Y(`idle`);bt(()=>{if(X(_)!==`ready`)return;let e=setTimeout(()=>U(_,`idle`),1800);return()=>clearTimeout(e)});async function v(){if(!(X(d)||X(u)||me.active)){U(_,`preparing`),U(d,!0),U(l,null);try{let e=wf(),t=Date.now(),n={schemaVersion:1,id:X(i)?.id??crypto.randomUUID(),name:X(a).trim()||Ft(t),avatarSeed:X(o),accent:X(s),modelId:e.model_id,createdAt:X(i)?.createdAt??t,updatedAt:Math.max(X(i)?.updatedAt??t,t),snapshot:e},r=new Blob([await ln(n)],{type:`application/json`});fn(r,n.name),U(_,`ready`)}catch(e){U(_,`idle`),U(l,jn(e,`A backup copy could not be created.`),!0)}finally{U(d,!1)}}}ht(()=>Nn(`chat_identity`,{schema:In({name:{type:`string`,maxLength:120},avatar_seed:{type:`string`,maxLength:256},accent:{type:`string`,enum:It.map(e=>e.id)}}),read:()=>({busy:X(u)||X(d),dirty:X(c),chat_id:X(i)?.id??zt.activeId,values:{name:X(a),avatar_seed:X(o),accent:X(s)}}),update:e=>{if(X(u)||X(d))throw new Ln(`BUSY`,`Wait for the saved-chat form.`);e.name!==void 0&&U(a,e.name,!0),e.avatar_seed!==void 0&&U(o,e.avatar_seed,!0),e.accent!==void 0&&U(s,e.accent,!0)}}));var y=Cg();let b;var x=q(y),S=q(x),C=q(S),w=q(C);{let e=G(()=>n()?`Save and name chat`:X(i)?`Update saved chat`:`Save chat`);$(w,{get text(){return X(e)}})}F(C),Ze(2),F(S);var T=V(S,2),E=e=>{Dr(e,{get onclick(){return ar}})};K(T,e=>{n()||e(E)}),F(x);var D=V(x,2),O=q(D),k=q(O),A=q(k);Cf(q(A),{get name(){return X(o)},size:76,background:`circle`,alt:``}),F(A),Ze(2),F(k);var j=V(k,2),M=V(q(j),2);ot(M),F(j),F(O);var ee=V(O,2),te=q(ee),ne=q(te,!0);F(te);var P=V(te,2),re=q(P);F(P),F(ee);var ie=V(ee,2);{let e=G(()=>X(u)||X(d));yg(ie,{get value(){return X(s)},get disabled(){return X(e)},onchange:e=>{U(s,e,!0)}})}var ae=V(ie,4),oe=e=>{var t=bg();I(e,t)};K(ae,e=>{me.active&&e(oe)});var se=V(ae,2),ce=e=>{var t=xg(),n=q(t,!0);F(t),W(()=>R(n,X(l))),I(e,t)};K(se,e=>{X(l)&&e(ce)}),F(D);var le=V(D,2),ue=q(le),de=q(ue);{let e=G(()=>X(_)===`preparing`?`Preparing copy…`:X(_)===`ready`?`Download started`:`Download copy`);$(de,{get text(){return X(e)},numbers:!1})}F(ue);var fe=V(ue,2),pe=q(fe),he=e=>{var t=Sg();W(()=>t.disabled=X(u)||X(d)||me.active),B(`click`,t,()=>void g(!0)),I(e,t)};K(pe,e=>{X(i)&&e(he)});var ge=V(pe,2);let _e;var ve=q(ge);{let e=G(()=>X(d)?`Saving…`:X(i)?`Update`:`Save`);$(ve,{get text(){return X(e)}})}F(ge),F(fe),F(le),F(y),W(e=>{b=tt(y,1,`drawer-shell svelte-1e766n7`,null,b,{embedded:n()}),J(y,`aria-label`,n()?`Save and name chat`:`Save conversation drawer`),M.disabled=X(u)||X(d),R(ne,X(f)),R(re,`${X(p)??``} ${X(p)===1?`turn`:`turns`}`),ue.disabled=X(u)||X(d)||me.active,_e=tt(ge,1,`button primary svelte-1e766n7`,null,_e,{"loading-pulse":X(d)}),J(ge,`aria-busy`,X(d)),ge.disabled=e},[()=>X(u)||X(d)||me.active||!X(a).trim()]),B(`click`,A,h),at(M,()=>X(a),e=>U(a,e)),B(`click`,ue,v),B(`click`,ge,()=>void g(!1)),I(e,y),Et()}Ge([`click`]);var Tg=z(`<p role="status" class="svelte-u5qi8r">Preparing your backup…</p>`),Eg=z(`<div class="name-field svelte-u5qi8r"><label for="chat-download-name" class="svelte-u5qi8r">File name</label> <input id="chat-download-name" class="field-focus svelte-u5qi8r" maxlength="120" required="" autocomplete="off"/></div> <div class="file-summary svelte-u5qi8r"><span class="filename svelte-u5qi8r"> </span> <span class="size svelte-u5qi8r" aria-label="Backup size"> </span></div> <p class="note svelte-u5qi8r">This is a copy. Your saved chat’s name stays unchanged.</p>`,1),Dg=z(`<p class="error svelte-u5qi8r" role="alert"> </p>`),Og=z(`<button type="button" class="primary svelte-u5qi8r">Try again</button>`),kg=z(`<button type="submit" class="primary svelte-u5qi8r">Download</button>`),Ag=z(`<form class="download-chat svelte-u5qi8r"><header class="svelte-u5qi8r"><h2 class="svelte-u5qi8r">Download chat</h2> <!></header> <p class="svelte-u5qi8r">All messages, Loom branches, settings, and recorded readings. Model files aren’t included.</p> <!> <!> <footer class="svelte-u5qi8r"><button type="button" class="svelte-u5qi8r">Cancel</button> <!></footer></form>`);function jg(e,t){it(t,!0);let n=Y(``),r=Y(null),i=Y(null),a=Y(!0),o=Y(!1),s=G(()=>sn(X(n)));ht(()=>{c()});async function c(){U(a,!0),U(i,null),U(r,null);try{if(me.active)throw Error(`Wait for the reply to finish, then try again.`);let e=wf(),t=zt.activeId,i=null;if(t)try{i=await Bt.get(t)}catch(e){if(!(e instanceof kt&&e.code===`NOT_FOUND`))throw e}i?.modelId!==e.model_id&&(i=null);let a=Date.now(),o={schemaVersion:1,id:i?.id??crypto.randomUUID(),name:i?.name??Ft(a),avatarSeed:i?.avatarSeed??At(),accent:i?.accent??zt.accent,modelId:e.model_id,createdAt:i?.createdAt??a,updatedAt:Math.max(i?.updatedAt??a,a),snapshot:e};U(n,o.name,!0),U(r,new Blob([await ln(o)],{type:`application/json`}),!0)}catch(e){U(i,jn(e,`This chat could not be prepared for download.`),!0)}finally{U(a,!1)}}function l(e){if(e.preventDefault(),X(r)&&X(n).trim()&&!X(o)){U(o,!0);try{fn(X(r),X(n)),ar()}catch(e){U(i,jn(e,`The download could not start. Try again.`),!0),U(o,!1)}}}var u=Ag(),d=q(u);Dr(V(q(d),2),{get onclick(){return ar}}),F(d);var f=V(d,4),p=e=>{var t=Tg();I(e,t)},m=e=>{var t=Eg(),i=Q(t),a=V(q(i),2);ot(a),F(i);var o=V(i,2),c=q(o),l=q(c,!0);F(c);var u=V(c,2),d=q(u);F(u),F(o),Ze(2),W(e=>{R(l,X(s)),J(u,`data-bytes`,X(r).size),R(d,`${e??``} bytes`)},[()=>X(r).size.toLocaleString()]),at(a,()=>X(n),e=>U(n,e)),I(e,t)};K(f,e=>{X(a)?e(p):X(r)&&e(m,1)});var h=V(f,2),g=e=>{var t=Dg(),n=q(t,!0);F(t),W(()=>R(n,X(i))),I(e,t)};K(h,e=>{X(i)&&e(g)});var _=V(h,2),v=q(_),y=V(v,2),b=e=>{var t=Og();W(()=>t.disabled=X(a)),B(`click`,t,()=>void c()),I(e,t)},x=e=>{var t=kg();W(e=>t.disabled=e,[()=>!X(r)||!X(n).trim()||X(o)]),I(e,t)};K(y,e=>{X(i)&&!X(r)?e(b):e(x,-1)}),F(_),F(u),$e(`submit`,u,l),B(`click`,v,function(...e){ar?.apply(this,e)}),I(e,u),Et()}Ge([`click`]);var Mg=z(`<p class="error svelte-1aevcja" role="alert"> </p>`),Ng=z(`<div class="empty svelte-1aevcja">Select Refresh sessions to list the models running on this server.</div>`),Pg=z(`<span class="svelte-1aevcja">Current session</span>`),Fg=z(`<article><strong class="svelte-1aevcja"> </strong> <!> <code class="svelte-1aevcja"> </code> <span class="svelte-1aevcja"> </span></article>`),Ig=z(`<section class="drawer-shell svelte-1aevcja" aria-label="Session and auth drawer"><header class="header svelte-1aevcja"><div><h2 class="title svelte-1aevcja">API access</h2></div> <!></header> <div class="body svelte-1aevcja"><section class="panel svelte-1aevcja"><h3 class="svelte-1aevcja"><label>API key</label></h3> <form class="key-row svelte-1aevcja"><input type="password" placeholder="DROWSE_API_KEY" autocomplete="off" aria-label="Drowse API key" class="svelte-1aevcja"/> <button type="submit" class="svelte-1aevcja">Apply key</button> <button type="button" class="svelte-1aevcja">Clear key</button></form> <p class="hint svelte-1aevcja">Changes apply only to this tab until you reload.</p> <p class="hint svelte-1aevcja" role="status"> </p></section> <section class="panel svelte-1aevcja"><div class="section-head svelte-1aevcja"><h3 class="svelte-1aevcja">Server sessions</h3> <button type="button"> </button></div> <!> <div class="sessions svelte-1aevcja"><!></div></section></div></section>`);function Lg(e,t){let n=Ve();it(t,!0),lt(t,[`$$slots`,`$$events`,`$$legacy`]),bt(()=>{t.params});let r=Y(pt(Qt()??``)),i=Y(pt([])),a=Y(!1),o=Y(null),s=Y(!1);async function c(){U(a,!0),U(o,null);try{let e=await b.list();U(i,e.sessions,!0)}catch(e){U(o,jn(e,`Unable to load server sessions. Check the server connection and try again.`),!0)}finally{U(a,!1)}}async function l(){Jt(X(r)),U(s,!0),await re(),await c()}var u=Ig(),d=q(u);Dr(V(q(d),2),{get onclick(){return ar}}),F(d);var f=V(d,2),p=q(f),m=q(p),h=q(m);F(m);var g=V(m,2),_=q(g);ot(_);var v=V(_,4);F(g);var y=V(g,4),x=q(y,!0);F(y),F(p);var S=V(p,2),C=q(S),w=V(q(C),2);let T;var D=q(w,!0);F(w),F(C);var O=V(C,2),k=e=>{var t=Mg(),n=q(t,!0);F(t),W(()=>R(n,X(o))),I(e,t)};K(O,e=>{X(o)&&e(k)});var A=V(O,2),j=q(A),M=e=>{var t=Ng();I(e,t)},N=e=>{var t=Je(),n=Q(t);L(n,17,()=>X(i),e=>e.id,(e,t)=>{var n=Fg();let r;var i=q(n),a=q(i,!0);F(i);var o=V(i,2),s=e=>{var t=Pg();I(e,t)};K(o,e=>{E.info?.id===X(t).id&&e(s)});var c=V(o,2),l=q(c,!0);F(c);var u=V(c,2),d=q(u);F(u),F(n),W(()=>{r=tt(n,1,`svelte-1aevcja`,null,r,{active:E.info?.id===X(t).id}),R(a,X(t).id),R(l,X(t).model_id),R(d,`${X(t).device??``}/${X(t).dtype??``} · ${X(t).profiles.length??``} profiles · ${X(t).probes.length??``} probes`)}),I(e,n)}),I(e,t)};K(j,e=>{X(i).length===0?e(M):e(N,-1)}),F(A),F(S),F(f),F(u),W(()=>{J(h,`for`,n),J(_,`id`,n),R(x,X(s)?`API key updated for this tab.`:``),J(w,`aria-busy`,X(a)),w.disabled=X(a),T=tt(w,1,`svelte-1aevcja`,null,T,{"loading-pulse":X(a)}),R(D,X(a)?`Loading…`:`Refresh sessions`)}),$e(`submit`,g,e=>{e.preventDefault(),l()}),B(`input`,_,()=>U(s,!1)),at(_,()=>X(r),e=>U(r,e)),B(`click`,v,()=>{U(r,``),l()}),B(`click`,w,c),I(e,u),Et()}Ge([`input`,`click`]);var Rg=z(`<p class="error svelte-ao4ksi" role="alert"> </p>`),zg=z(`<section class="drawer-shell svelte-ao4ksi" aria-label="System prompt drawer"><header class="header svelte-ao4ksi"><h2 class="title svelte-ao4ksi">System prompt</h2> <!></header> <div class="body svelte-ao4ksi"><p class="hint svelte-ao4ksi">Sets the default system prompt for new generations in this session.
118
+ Per-request OpenAI or Ollama system messages take precedence. Leaving it
119
+ empty clears the system prompt.</p> <label class="field svelte-ao4ksi"><span class="label svelte-ao4ksi">System prompt</span> <textarea class="textarea svelte-ao4ksi" rows="12" placeholder="No system prompt" spellcheck="false"></textarea> <span class="char-count svelte-ao4ksi"> </span></label> <!></div> <footer class="footer svelte-ao4ksi"><button type="button" class="btn svelte-ao4ksi">Cancel</button> <button type="button"> </button></footer></section>`);function Bg(e,t){it(t,!0),lt(t,[`$$slots`,`$$events`,`$$legacy`]),bt(()=>{t.params});let n=Y(pt(E.info?.config.system_prompt??``)),r=Y(!1),i=Y(null);ht(()=>Fn({read:()=>({busy:X(r),dirty:X(n)!==(E.info?.config.system_prompt??``),values:{text:X(n)}}),sync:()=>{U(n,E.info?.config.system_prompt??``,!0),U(i,null)}}));async function a(){if(!X(r)){U(r,!0),U(i,null);try{await u({system_prompt:X(n)}),ar()}catch(e){if(e instanceof Mn){let t=e.body&&typeof e.body==`object`&&`detail`in e.body?String(e.body.detail):e.message;U(i,jn(e,`Unable to save the system prompt. ${t}`),!0)}else U(i,jn(e,`Unable to save the system prompt. Try again.`),!0)}finally{U(r,!1)}}}var o=zg(),s=q(o);Dr(V(q(s),2),{get onclick(){return ar}}),F(s);var c=V(s,2),l=V(q(c),2),d=V(q(l),2);_t(d);var f=V(d,2),p=q(f);F(f),F(l);var m=V(l,2),h=e=>{var t=Rg(),n=q(t,!0);F(t),W(()=>R(n,X(i))),I(e,t)};K(m,e=>{X(i)&&e(h)}),F(c);var g=V(c,2),_=q(g),v=V(_,2);let y;var b=q(v,!0);F(v),F(g),F(o),W(()=>{d.disabled=X(r),R(p,`${X(n).length??``} char${X(n).length===1?``:`s`}`),_.disabled=X(r),y=tt(v,1,`btn primary svelte-ao4ksi`,null,y,{"loading-pulse":X(r)}),J(v,`aria-busy`,X(r)),v.disabled=X(r),R(b,X(r)?`Saving…`:`Save system prompt`)}),at(d,()=>X(n),e=>U(n,e)),B(`click`,_,function(...e){ar?.apply(this,e)}),B(`click`,v,a),I(e,o),Et()}Ge([`click`]);var Vg=z(`<section class="template-preview svelte-1tvkrjg" aria-label="Template slot preview"><label class="svelte-1tvkrjg">Preview candidate<!></label> <p class="svelte-1tvkrjg"> <mark class="svelte-1tvkrjg"><!></mark> </p></section>`);function Hg(e,t){it(t,!0);let n=Y(``),r=G(()=>t.values.includes(X(n))?X(n):t.values[0]??``),i=G(()=>t.slot?t.sentence.split(t.slot):[]);var a=Je(),o=Q(a),s=e=>{var a=Vg(),o=q(a),s=V(q(o));{let e=G(()=>t.values.map(e=>({value:e,label:e})));Io(s,{get value(){return X(r)},get options(){return X(e)},onchange:e=>U(n,e,!0),ariaLabel:`Preview candidate`})}F(o);var c=V(o,2),l=q(c,!0),u=V(l);$(q(u),{get text(){return X(r)},numbers:!1}),F(u);var d=V(u,1,!0);F(c),F(a),W(()=>{R(l,X(i)[0]),R(d,X(i)[1])}),I(e,a)};K(o,e=>{X(i).length===2&&t.values.length>0&&e(s)}),I(e,a),Et()}var Ug=z(`<span class="dot svelte-190ojsy"></span>`),Wg=z(`<span class="meta svelte-190ojsy"> </span>`),Gg=z(`<button><!> <span> </span> <!></button>`),Kg=z(`<div role="group"></div>`);function qg(e,t){it(t,!0);let n=Z(t,`value`,15),r=Z(t,`fill`,3,!1),i=Z(t,`ariaLabel`,3,`View`);function a(e){e!==n()&&(n(e),t.onchange?.(e))}var o=Kg();let s;L(o,21,()=>t.items,e=>e.value,(e,t)=>{var r=Gg(),i=()=>a(X(t).value);H(r,()=>({class:`tab`,"aria-label":X(t).label,"aria-pressed":X(t).value===n(),"aria-description":X(t).title,disabled:X(t).disabled,onclick:i,[ft]:{on:X(t).value===n()},[xt]:{"--tab-c":X(t).color}}),void 0,void 0,void 0,`svelte-190ojsy`);var o=q(r),s=e=>{var t=Ug();I(e,t)};K(o,e=>{X(t).color&&e(s)});var c=V(o,2),l=q(c,!0);F(c);var u=V(c,2),d=e=>{var n=Wg(),r=q(n,!0);F(n),W(()=>R(r,X(t).meta)),I(e,n)};K(u,e=>{X(t).meta&&e(d)}),F(r),W(()=>R(l,X(t).label)),I(e,r)}),F(o),Tt(o,e=>kr?.(e)),W(()=>{s=tt(o,1,`sk-tabs svelte-190ojsy`,null,s,{fill:r()}),J(o,`aria-label`,i())}),I(e,o),Et()}var Jg=z(`<p class="muted loading-pulse loading-placeholder svelte-lk8dis" role="status">Loading templates…</p>`),Yg=z(`<p class="muted svelte-lk8dis">no templates</p>`),Xg=z(`<p class="hint svelte-lk8dis"> </p>`),Zg=z(`<span></span>`),Qg=z(`<span></span>`),$g=z(`<div class="mass-row svelte-lk8dis"><span>Steered mass</span><div class="mass-bar svelte-lk8dis" role="img"></div></div>`),e_=z(`<div class="bar steer svelte-lk8dis"></div>`),t_=z(`<span class="arrow svelte-lk8dis">→</span><!>`,1),n_=z(`<div class="bar-row svelte-lk8dis"><span> </span> <div class="bars svelte-lk8dis"><div class="bar base svelte-lk8dis"></div> <!></div> <span class="bar-num svelte-lk8dis"><!><!></span></div>`),r_=z(`<div class="ctx-card svelte-lk8dis"><div class="ctx-head svelte-lk8dis"> </div> <div class="mass-row svelte-lk8dis"><span>Baseline mass</span><div class="mass-bar svelte-lk8dis" role="img"></div></div> <!> <!></div>`),i_=z(`<label class="field svelte-lk8dis"><span class="label svelte-lk8dis">template</span> <!></label> <!> <label class="field svelte-lk8dis"><span class="label svelte-lk8dis">steering</span> <input type="text" placeholder="0.5 patient.hurried" autocomplete="off" spellcheck="false" class="svelte-lk8dis"/></label> <div class="controls svelte-lk8dis"><label class="byrow svelte-lk8dis"><span class="label svelte-lk8dis">rank by</span> <!></label> <!> <!></div> <!>`,1),a_=z(`<p class="hint svelte-lk8dis">Compare the model's preference among a fixed set of answers.</p> <!>`,1),o_=z(`<button type="button" class="mini svelte-lk8dis">remove</button>`),s_=z(`<button type="button" class="mini svelte-lk8dis"><!></button>`),c_=z(`<div class="turn-row svelte-lk8dis"><!> <input type="text" placeholder="turn content" autocomplete="off" class="svelte-lk8dis"/> <!></div>`),l_=z(`<div class="ctx-build svelte-lk8dis"><div class="ctx-build-head svelte-lk8dis"><span></span> <!></div> <!> <button type="button" class="mini add svelte-lk8dis">+ turn</button> <label class="field assistant-field svelte-lk8dis"><span class="label svelte-lk8dis">assistant · slot</span> <input type="text" autocomplete="off" class="svelte-lk8dis"/></label> <!></div>`),u_=z(`<li> </li>`),d_=z(`<ul id="template-build-errors" class="errs svelte-lk8dis" role="status" aria-live="polite"></ul>`),f_=z(`<form class="form svelte-lk8dis"><label class="field svelte-lk8dis"><span class="label svelte-lk8dis">name</span> <input type="text" placeholder="weekday" autocomplete="off" spellcheck="false" class="svelte-lk8dis"/></label> <label class="field svelte-lk8dis"><span class="label svelte-lk8dis">slot token</span> <input type="text" placeholder="[DAY]" autocomplete="off" spellcheck="false" class="svelte-lk8dis"/></label> <label class="field svelte-lk8dis"><span class="label svelte-lk8dis">values</span> <textarea rows="3" class="svelte-lk8dis"></textarea></label> <fieldset class="contexts svelte-lk8dis"><legend class="svelte-lk8dis">contexts <span class="optional svelte-lk8dis"> </span></legend> <!> <button type="button" class="mini add svelte-lk8dis">+ context</button></fieldset> <!> <footer class="foot svelte-lk8dis"><!> <!></footer></form>`),p_=z(`<div class="delete-confirmation svelte-lk8dis"><p class="svelte-lk8dis"> </p> <!> <!></div>`),m_=z(`<div class="cat-row svelte-lk8dis"><span class="cat-name svelte-lk8dis"> </span> <span class="cat-sub svelte-lk8dis"> </span> <!></div>`),h_=z(`<div class="catalog svelte-lk8dis"><div class="catalog-head svelte-lk8dis">installed</div> <!></div>`),g_=z(`<section class="drawer-shell svelte-lk8dis" aria-label="Template lab"><header class="header svelte-lk8dis"><div class="title svelte-lk8dis"><h2 class="eyebrow svelte-lk8dis">Prompt template lab</h2></div> <!></header> <div class="toolbar svelte-lk8dis"><!></div> <div class="body svelte-lk8dis"><!> <!></div></section>`);function __(e,t){it(t,!0);let n=Y(pt(et(()=>t.params?.tab===`build`?`build`:`score`))),r=[{value:`score`,label:`score`,title:`restricted-choice scores`},{value:`build`,label:`build`,title:`new template`}],i=Y(pt([])),a=Y(!1),o=Y(null),s=Y(!1);async function c(){U(a,!0);try{U(i,(await w.list()).templates,!0)}catch(e){N(`couldn't load templates: ${An(e)}`,{kind:`error`})}finally{U(a,!1)}}ht(c),ht(()=>Bn(async e=>{e===`templates`&&await c()}));let l=Y(``),u=Y(``),d=Y(!1),f=Y(`sum`),p=Y(null),m=Y(null),h=Y(``),g=Y(!1),_=qt(),v=G(()=>X(i).find(e=>`${e.namespace}/${e.name}`===X(l))??null),y=Y(null),b=Y(``);bt(()=>{let e=X(v);if(U(y,null),U(b,``),!e)return;let t=!0;return w.get(e.namespace,e.name).then(e=>{t&&U(y,e,!0)}).catch(()=>{t&&U(b,`Preview unavailable. Scoring is still available.`)}),()=>{t=!1}});function x(e){return X(f)===`sum`?e.prob_sum:e.prob_mean}async function S(){if(!X(v)||X(d))return;U(d,!0),U(g,!1),U(p,null),U(m,null);let{namespace:e,name:t}=X(v);try{U(p,(await w.score(e,t,null)).contexts,!0);let n=X(u).trim();n&&U(m,(await w.score(e,t,n)).contexts,!0),U(h,X(l),!0)}catch(e){U(p,null),U(m,null),U(h,``),zn(e)?N(`scoring cancelled`,{kind:`info`}):N(`scoring failed: ${An(e)}`,{kind:`error`})}finally{U(d,!1),U(g,!1)}}async function C(){if(_&&X(d)&&!X(g)){U(g,!0);try{await _.cancelFitting()}catch(e){N(`couldn't cancel scoring: ${An(e)}`,{kind:`error`,ttlMs:null})}finally{U(g,!1)}}}function T(e){let t=X(p)?.[e];if(!t)return[];let n=X(m)?.[e]??null,r=t.choices.map((e,t)=>({label:e.label,base:x(e),steer:n?x(n.choices[t]):null}));return r.sort((e,t)=>Math.max(t.base,t.steer??-1)-Math.max(e.base,e.steer??-1)),r}let E=Y(``),D=Y(`[DAY]`),O=Y(``),k=Y(pt([{turns:[{role:`user`,content:``}],assistant:``}])),A=Y(!1),j=Y(!1),M=Y(null),ee=G(()=>X(O).split(/[\n,]+/).map(e=>e.trim()).filter(Boolean));function te(){U(k,[...X(k),{turns:[{role:`user`,content:``}],assistant:``}],!0)}function ne(e){U(k,X(k).filter((t,n)=>n!==e),!0)}function P(e){let t=X(k)[e],n=t.turns[t.turns.length-1]?.role===`user`?`assistant`:`user`;t.turns=[...t.turns,{role:n,content:``}],U(k,[...X(k)],!0)}function re(e,t){X(k)[e].turns=X(k)[e].turns.filter((e,n)=>n!==t),U(k,[...X(k)],!0)}let ie=G(()=>({slot:X(D),values:X(ee),contexts:X(k).map(e=>({turns:e.turns.filter(e=>e.content.trim()),assistant:e.assistant}))})),ae=G(()=>[...X(E).trim()?[]:[`name required`],...Vn(X(ie))]),oe=G(()=>!X(E).trim()),se=G(()=>X(ae).includes(`slot required`)),ce=G(()=>X(ae).some(e=>e===`≥ 2 values`||e.startsWith(`value "`))),le=e=>X(ae).some(t=>t.startsWith(`context ${e+1}:`)),ue=e=>X(j)&&e?`template-build-errors`:void 0;async function de(e){if(e.preventDefault(),X(ae).length)U(j,!0),await Ke(),X(M)?.querySelector(`[aria-invalid="true"]`)?.focus();else{U(A,!0);try{await w.create({namespace:`local`,name:X(E).trim(),slot:X(D).trim(),values:X(ee),contexts:X(ie).contexts}),N(`template ${X(E).trim()} created`,{kind:`info`}),await c(),U(l,`local/${X(E).trim()}`),U(n,`score`)}catch(e){N(`create failed: ${An(e)}`,{kind:`error`})}finally{U(A,!1)}}}async function fe(e){if(!X(s)){U(s,!0);try{await w.delete(e.namespace,e.name),N(`removed ${e.namespace}/${e.name}`,{kind:`info`}),X(l)===`${e.namespace}/${e.name}`&&U(l,``),await c(),U(o,null)}catch(e){N(`delete failed: ${An(e)}`,{kind:`error`})}finally{U(s,!1)}}}ht(()=>Nn(`template_lab`,{schema:vr,read:()=>({busy:X(A)||X(d)||X(s)||X(g),dirty:!!X(E)||X(D)!==`[DAY]`||!!X(O)||JSON.stringify(X(k))!==JSON.stringify([{turns:[{role:`user`,content:``}],assistant:``}]),values:{tab:X(n),selected_key:X(l),steering:X(u),score_by:X(f),name:X(E),slot:X(D),values_text:X(O),contexts:X(k)},validation:X(ae),available_templates:X(i).map(e=>`${e.namespace}/${e.name}`),loading:X(a)}),update:async e=>{if(X(A)||X(d)||X(s)||X(g))throw new Ln(`BUSY`,`Wait for this interface operation to finish.`);if(e.selected_key&&!X(i).some(t=>`${t.namespace}/${t.name}`===e.selected_key))throw new Ln(`NOT_FOUND`,`Choose a template from available_templates.`);e.tab!==void 0&&U(n,e.tab,!0),e.selected_key!==void 0&&U(l,e.selected_key,!0),e.steering!==void 0&&U(u,e.steering,!0),e.score_by!==void 0&&U(f,e.score_by,!0),e.name!==void 0&&U(E,e.name,!0),e.slot!==void 0&&U(D,e.slot,!0),e.values_text!==void 0&&U(O,e.values_text,!0),e.contexts!==void 0&&U(k,structuredClone(e.contexts),!0)}}));var pe=g_(),me=q(pe);Dr(V(q(me),2),{get onclick(){return ar}}),F(me);var he=V(me,2);qg(q(he),{get items(){return r},ariaLabel:`Template lab view`,get value(){return X(n)},set value(e){U(n,e,!0)}}),F(he);var ge=V(he,2),_e=q(ge),ve=e=>{var t=a_(),n=V(Q(t),2),r=e=>{var t=Jg();I(e,t)},o=e=>{var t=Yg();I(e,t)},s=e=>{var t=i_(),n=Q(t),r=V(q(n),2);{let e=G(()=>[{value:``,label:`Select…`},...X(i).map(e=>({value:`${e.namespace}/${e.name}`,label:`${e.namespace}/${e.name} · ${e.n_values} values × ${e.n_contexts} ctx`}))]);Io(r,{get disabled(){return X(d)},ariaLabel:`Template`,get options(){return X(e)},get value(){return X(l)},set value(e){U(l,e,!0)}})}F(n);var a=V(n,2),o=e=>{var t=Je(),n=Q(t);L(n,17,()=>X(y).contexts,dt,(e,t)=>{Hg(e,{get sentence(){return X(t).assistant},get slot(){return X(y).slot},get values(){return X(y).values}})}),I(e,t)},s=e=>{var t=Xg(),n=q(t,!0);F(t),W(()=>R(n,X(b))),I(e,t)};K(a,e=>{X(y)?e(o):X(b)&&e(s,1)});var c=V(a,2),x=V(q(c),2);ot(x),F(c);var w=V(c,2),E=q(w);Io(V(q(E),2),{ariaLabel:`Rank by`,options:[{value:`sum`,label:`sum`},{value:`mean`,label:`mean`}],get value(){return X(f)},set value(e){U(f,e,!0)}}),F(E);var D=V(E,2),O=e=>{zs(e,{variant:`ghost`,get disabled(){return X(g)},onclick:C,children:(e,t)=>{{let t=G(()=>X(g)?`cancelling…`:`cancel`);$(e,{get text(){return X(t)}})}},$$slots:{default:!0}})};K(D,e=>{_&&X(d)&&e(O)});var k=V(D,2);{let e=G(()=>!X(v)||X(d));zs(k,{variant:`solid`,get busy(){return X(d)},get disabled(){return X(e)},onclick:S,children:(e,t)=>{{let t=G(()=>X(d)?`scoring…`:`score`);$(e,{get text(){return X(t)}})}},$$slots:{default:!0}})}F(w);var A=V(w,2),j=e=>{var t=Je(),n=Q(t);L(n,17,()=>X(p),dt,(e,t,n)=>{var r=r_(),i=q(r),a=q(i);F(i);var o=V(i,2),s=V(q(o));L(s,23,()=>T(n),e=>e.label,(e,t,n)=>{var r=Zg();H(r,e=>({...e,[xt]:{width:`${X(t).base*100}%`,opacity:.35+X(n)%4*.2}}),[()=>({"aria-description":`${X(t).label}: ${(X(t).base*100).toFixed(1)}%`})],void 0,void 0,`svelte-lk8dis`),I(e,r)}),F(s),F(o);var c=V(o,2),l=e=>{var t=$g(),r=V(q(t));L(r,23,()=>T(n),e=>e.label,(e,t,n)=>{var r=Qg();H(r,e=>({...e,[xt]:{width:`${(X(t).steer??0)*100}%`,opacity:.35+X(n)%4*.2}}),[()=>({"aria-description":`${X(t).label}: ${((X(t).steer??0)*100).toFixed(1)}%`})],void 0,void 0,`svelte-lk8dis`),I(e,r)}),F(r),F(t),W(e=>J(r,`aria-label`,e),[()=>T(n).map(e=>`${e.label}: ${((e.steer??0)*100).toFixed(1)}%`).join(`, `)]),I(e,t)};K(c,e=>{X(m)&&e(l)});var u=V(c,2);L(u,17,()=>T(n),e=>e.label,(e,t)=>{var n=n_(),r=q(n);H(r,()=>({class:`bar-label`,"aria-description":X(t).label}),void 0,void 0,void 0,`svelte-lk8dis`);var i=q(r,!0);F(r);var a=V(r,2),o=q(a),s=V(o,2),c=e=>{var n=e_();W(e=>st(n,e),[()=>`width:${(X(t).steer*100).toFixed(1)}%`]),I(e,n)};K(s,e=>{X(t).steer!==null&&e(c)}),F(a);var l=V(a,2),u=q(l);{let e=G(()=>`${(X(t).base*100).toFixed(0)}%`);$(u,{get text(){return X(e)}})}var d=V(u),f=e=>{var n=t_(),r=V(Q(n));{let e=G(()=>`${(X(t).steer*100).toFixed(0)}%`);$(r,{get text(){return X(e)}})}I(e,n)};K(d,e=>{X(t).steer!==null&&e(f)}),F(l),F(n),W(e=>{R(i,X(t).label),st(o,e)},[()=>`width:${(X(t).base*100).toFixed(1)}%`]),I(e,n)}),F(r),W(e=>{R(a,`context ${n+1}${X(m)?` · base → steered`:``}`),J(s,`aria-label`,e)},[()=>T(n).map(e=>`${e.label}: ${(e.base*100).toFixed(1)}%`).join(`, `)]),I(e,r)}),I(e,t)};K(A,e=>{X(p)&&X(h)===X(l)&&!X(d)&&e(j)}),W(()=>x.disabled=X(d)),at(x,()=>X(u),e=>U(u,e)),I(e,t)};K(n,e=>{X(a)?e(r):X(i).length===0?e(o,1):e(s,-1)}),I(e,t)},ye=e=>{var t=f_(),n=q(t),r=V(q(n),2);ot(r),F(n);var i=V(n,2),a=V(q(i),2);ot(a),F(i);var o=V(i,2),s=V(q(o),2);_t(s),J(s,`placeholder`,`Monday
120
+ Tuesday
121
+ Wednesday`),F(o);var c=V(o,2),l=q(c),u=V(q(l)),d=q(u);F(u),F(l);var f=V(l,2);L(f,17,()=>X(k),dt,(e,t,n)=>{var r=l_(),i=q(r),a=q(i);a.textContent=`context ${n+1}`;var o=V(a,2),s=e=>{var t=o_();J(t,`aria-label`,`Remove context ${n+1}`),B(`click`,t,()=>ne(n)),I(e,t)};K(o,e=>{X(k).length>1&&e(s)}),F(i);var c=V(i,2);L(c,17,()=>X(t).turns,dt,(e,r,i)=>{var a=c_(),o=q(a);{let e=G(()=>X(j)&&le(n)),t=G(()=>ue(le(n)));Io(o,{get disabled(){return X(A)},ariaLabel:`Context ${n+1}, turn ${i+1} role`,get invalid(){return X(e)},get ariaDescribedby(){return X(t)},options:[{value:`user`,label:`user`},{value:`assistant`,label:`assistant`},{value:`system`,label:`system`}],get value(){return X(r).role},set value(e){X(r).role=e}})}var s=V(o,2);ot(s),J(s,`aria-label`,`Context ${n+1}, turn ${i+1} content`);var c=V(s,2),l=e=>{var t=s_();J(t,`aria-label`,`Remove turn ${i+1} from context ${n+1}`),Gn(q(t),{name:`dismiss`}),F(t),B(`click`,t,()=>re(n,i)),I(e,t)};K(c,e=>{X(t).turns.length>1&&e(l)}),F(a),W((e,t)=>{s.disabled=X(A),J(s,`aria-invalid`,e),J(s,`aria-describedby`,t)},[()=>X(j)&&le(n),()=>ue(le(n))]),at(s,()=>X(r).content,e=>X(r).content=e),I(e,a)});var l=V(c,2);J(l,`aria-label`,`Add turn to context ${n+1}`);var u=V(l,2),d=V(q(u),2);ot(d),F(u);var f=V(u,2);{let e=G(()=>X(O).split(`
122
+ `).map(e=>e.trim()).filter(Boolean));Hg(f,{get sentence(){return X(t).assistant},get slot(){return X(D)},get values(){return X(e)}})}F(r),W((e,t)=>{J(d,`placeholder`,`today is ${X(D)}`),d.disabled=X(A),J(d,`aria-invalid`,e),J(d,`aria-describedby`,t)},[()=>X(j)&&le(n),()=>ue(le(n))]),B(`click`,l,()=>P(n)),at(d,()=>X(t).assistant,e=>X(t).assistant=e),I(e,r)});var p=V(f,2);F(c);var m=V(c,2),h=e=>{var t=d_();L(t,20,()=>X(ae),e=>e,(e,t)=>{var n=u_(),r=q(n,!0);F(n),W(()=>R(r,t)),I(e,n)}),F(t),I(e,t)};K(m,e=>{X(j)&&X(ae).length&&e(h)});var g=V(m,2),_=q(g);zs(_,{variant:`ghost`,get onclick(){return ar},children:(e,t)=>{Ze();var n=Qe(`cancel`);I(e,n)},$$slots:{default:!0}}),zs(V(_,2),{type:`submit`,variant:`solid`,get busy(){return X(A)},get disabled(){return X(A)},children:(e,t)=>{{let t=G(()=>X(A)?`creating…`:`create template`);$(e,{get text(){return X(t)}})}},$$slots:{default:!0}}),F(g),F(t),nt(t,e=>U(M,e),()=>X(M)),W((e,n,i)=>{J(t,`aria-busy`,X(A)),r.disabled=X(A),J(r,`aria-invalid`,X(j)&&X(oe)),J(r,`aria-describedby`,e),a.disabled=X(A),J(a,`aria-invalid`,X(j)&&X(se)),J(a,`aria-describedby`,n),s.disabled=X(A),J(s,`aria-invalid`,X(j)&&X(ce)),J(s,`aria-describedby`,i),R(d,`(${X(k).length??``})`)},[()=>ue(X(oe)),()=>ue(X(se)),()=>ue(X(ce))]),$e(`submit`,t,de),at(r,()=>X(E),e=>U(E,e)),at(a,()=>X(D),e=>U(D,e)),at(s,()=>X(O),e=>U(O,e)),B(`click`,p,te),I(e,t)};K(_e,e=>{X(n)===`score`?e(ve):e(ye,-1)});var be=V(_e,2),xe=e=>{var t=h_(),n=V(q(t),2);L(n,17,()=>X(i),e=>`${e.namespace}/${e.name}`,(e,t)=>{var n=m_(),r=q(n),i=q(r);F(r);var a=V(r,2),c=q(a);F(a);var l=V(a,2),u=e=>{var n=p_(),r=q(n),i=q(r);F(r);var a=V(r,2);zs(a,{variant:`ghost`,size:`sm`,get disabled(){return X(s)},onclick:()=>U(o,null),children:(e,t)=>{Ze();var n=Qe(`Cancel`);I(e,n)},$$slots:{default:!0}}),zs(V(a,2),{variant:`danger`,size:`sm`,get disabled(){return X(s)},onclick:()=>fe(X(t)),children:(e,t)=>{{let t=G(()=>X(s)?`Deleting…`:`Delete template`);$(e,{get text(){return X(t)}})}},$$slots:{default:!0}}),F(n),W(()=>R(i,`Delete ${X(t).namespace??``}/${X(t).name??``}? This removes the saved template and cannot be undone.`)),I(e,n)},d=e=>{{let n=G(()=>`Delete template ${X(t).namespace}/${X(t).name}`);zs(e,{variant:`danger`,size:`sm`,get disabled(){return X(s)},get ariaLabel(){return X(n)},onclick:()=>U(o,`${X(t).namespace}/${X(t).name}`),children:(e,t)=>{Ze();var n=Qe(`Delete…`);I(e,n)},$$slots:{default:!0}})}};K(l,e=>{X(o)===`${X(t).namespace}/${X(t).name}`?e(u):e(d,-1)}),F(n),W(()=>{R(i,`${X(t).namespace??``}/${X(t).name??``}`),R(c,`${X(t).slot??``} · ${X(t).n_values??``}×${X(t).n_contexts??``}`)}),I(e,n)}),F(t),I(e,t)};K(be,e=>{X(i).length>0&&e(xe)}),F(ge),F(pe),I(e,pe),Et()}Ge([`click`]),wt();var v_=Dt(`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" data-icon="popout"><path d="M10 5H6a3 3 0 0 0-3 3v10a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3v-4M14 3h7v7M21 3 10 14"></path></svg>`);function y_(e){var t=v_();I(e,t)}function b_(e,t){return e?(t===`thinking`?e.thinkingTokens:e.tokens)??[]:[]}function x_(e){let t=[];return e.forEach((e,n)=>{let r=e.thinkingTokens?.length??0;r>0&&t.push({turnIdx:n,seg:`thinking`,length:r});let i=e.tokens?.length??0;i>0&&t.push({turnIdx:n,seg:`response`,length:i})}),t}function S_(e,t){return e.findIndex(e=>e.turnIdx===t.turnIdx&&e.seg===t.seg)}function C_(e,t,n){let r=S_(e,t);if(r<0)return null;let i=t.tokenIdx+n;if(i>=0&&i<e[r].length)return{...t,tokenIdx:i};let a=r+n;if(a<0||a>=e.length)return null;let o=e[a];return{turnIdx:o.turnIdx,seg:o.seg,tokenIdx:n>0?0:o.length-1}}function w_(e,t,n){let r=n>0?e.find(e=>e.turnIdx>t.turnIdx):[...e].reverse().find(e=>e.turnIdx<t.turnIdx);if(!r)return null;let i=e.find(e=>e.turnIdx===r.turnIdx);return{turnIdx:i.turnIdx,seg:i.seg,tokenIdx:0}}function T_(e,t){if(e.length===0)return null;let n=S_(e,t);if(n>=0)return t.tokenIdx<e[n].length?t:{...t,tokenIdx:e[n].length-1};let r=e.find(e=>e.turnIdx===t.turnIdx);if(r)return{turnIdx:r.turnIdx,seg:r.seg,tokenIdx:Math.min(t.tokenIdx,r.length-1)};let i=e.find(e=>e.turnIdx>t.turnIdx)??e[e.length-1];return{turnIdx:i.turnIdx,seg:i.seg,tokenIdx:0}}var E_=48,D_=class{#e=Y(null);get data(){return X(this.#e)}set data(e){U(this.#e,e,!0)}#t=Y(!1);get loading(){return X(this.#t)}set loading(e){U(this.#t,e,!0)}#n=Y(null);get error(){return X(this.#n)}set error(e){U(this.#n,e,!0)}#r=Y(null);get origin(){return X(this.#r)}set origin(e){U(this.#r,e,!0)}#i=Y(null);get source(){return X(this.#i)}set source(e){U(this.#i,e,!0)}#a=Y(null);get progress(){return X(this.#a)}set progress(e){U(this.#a,e,!0)}#o=null;#s=new Map;#c=!1;adopt(e,t){this.#o=null,this.data=e,this.origin=`captured`,this.source=t,this.loading=!1,this.error=null,this.progress=null}clear(){this.#o=null,this.data=null,this.origin=null,this.source=null,this.loading=!1,this.error=null,this.progress=null}dispose(){this.#c=!0,this.clear(),this.#s.clear()}replay(e,t,n,r,i){let a=O_(e,t,n,r);this.#o=a;let o=this.#s.get(a);if(o&&o.state!==`failed`){this.#s.delete(a),this.#s.set(a,o),this.#l(a,o);return}let s={state:`loading`,data:null,source:null,error:null,progress:{phase:`queued`,completed:0,total:n+1,progress:0,message:`Waiting for the current model task to finish`}};this.#s.set(a,s),this.#l(a,s),Me(e,t,n,r,e=>{let t=k_(e);t!==null&&(s.progress=t,this.#o===a&&this.#l(a,s))}).then(e=>{let{data:t,source:n}=i(e.measurements);s.state=`ready`,s.data=t,s.source=n,s.error=null,s.progress=null}).catch(e=>{s.state=`failed`,s.error=An(e),s.progress=null}).finally(()=>{this.#u(),this.#o===a&&this.#l(a,s)})}#l(e,t){this.#c||this.#o!==e||(this.loading=t.state===`loading`,this.data=t.data,this.error=t.error,this.origin=t.state===`ready`?`replayed`:null,this.source=t.source,this.progress=t.progress)}#u(){if(!(this.#s.size<=E_))for(let[e,t]of this.#s){if(this.#s.size<=E_)break;t.state!==`loading`&&e!==this.#o&&this.#s.delete(e)}}};function O_(e,t,n,r){return JSON.stringify([e,A(e),t,n,r.topK??null,r.steered??!0,r.raw??!1,r.layers??null])}function k_(e){if(e.event!==`progress`||e.data===null||typeof e.data!=`object`)return null;let t=e.data;return t.kind!==`token_readout`||![`queued`,`context`,`readout`,`complete`].includes(String(t.phase))||!Number.isInteger(t.completed)||!Number.isInteger(t.total)||typeof t.progress!=`number`||!Number.isFinite(t.progress)||typeof t.message!=`string`?null:{phase:t.phase,completed:Math.max(0,Number(t.completed)),total:Math.max(0,Number(t.total)),progress:Math.max(0,Math.min(1,t.progress)),message:t.message}}var A_=pt({tab:`lens`});function j_(e,t,n,r){if(e.loading)return`…`;if(e.error)return;let i=e.data??(n?t:null);return i===null?void 0:String(r(i))}function M_(e,t){return e===`logits`||t[e]?e:t.lens?`lens`:t.sae?`sae`:t.geometry?`geometry`:`logits`}function N_(e,t){if(t)return t===`__surprise__`?ue(e.logprob):t===`__probability__`?je(e.logprob):t===`__entropy__`?Se(e.samplerEntropy):Fe(e,t)}function P_(e){let t=De.target;if(!t)return{};let n=De.compareTwo&&De.compareTarget?De.compareTarget:null;return Ne(N_(e,t),n===null?null:N_(e,n),De.smoothBlend,we(t),n===null?void 0:we(n),F_(t),n===null?void 0:F_(n))}function F_(e){let t=ke.entries.get(se(e).base)?.info;return t?.family===`lens`?`surprise`:t?.family===`sae`?`sae`:ge(e)}function I_(e){let t=P_(e),n=[];return t.backgroundColor&&n.push(`background-color: ${t.backgroundColor}`),t.backgroundImage&&n.push(`background-image: ${t.backgroundImage}`),n.join(`;`)}var L_=z(`<div class="sequence-slider svelte-cca58d"><!></div>`),R_=z(`<span class="more svelte-cca58d" aria-hidden="true"> </span>`),z_=z(`<button> </button>`),B_=z(`<span class="more svelte-cca58d" aria-hidden="true"> </span>`),V_=z(`<section class="context-shell svelte-cca58d" aria-label="Token context"><header class="svelte-cca58d"><span>sequence context</span> <span class="position svelte-cca58d"><!></span></header> <!> <div class="ribbon svelte-cca58d" role="group" aria-label="Token context sequence" tabindex="0"><!> <!> <!></div></section>`);function H_(e,t){it(t,!0);let n=G(()=>Math.max(0,t.index-60)),r=G(()=>Math.min(t.tokens.length,t.index+60+1)),i=G(()=>t.tokens.slice(X(n),X(r)).map((e,t)=>({tok:e,i:X(n)+t})));function a(e){return e.replace(/\n/g,`⏎`)}let o=Y(null);bt(()=>{t.index,X(i);let e=X(o)?.querySelector(`.current`);if(X(o)&&e){let t=e.getBoundingClientRect(),n=X(o).getBoundingClientRect();X(o).scrollLeft+=t.left+t.width/2-n.left-X(o).clientWidth/2}});var s=V_(),c=q(s),l=V(q(c),2),u=q(l);{let e=G(()=>`token ${t.index+1} / ${t.tokens.length}`);$(u,{get text(){return X(e)}})}F(l),F(c);var d=V(c,2),f=e=>{var n=L_(),r=q(n);{let e=G(()=>t.tokens.length-1),n=G(()=>`Token ${t.index+1}`);Sh(r,{get value(){return t.index},min:0,get max(){return X(e)},step:1,get displayValue(){return X(n)},ariaLabel:`Sequence token position`,get oninput(){return t.onjump}})}F(n),I(e,n)};K(d,e=>{t.tokens.length>1&&e(f)});var p=V(d,2),m=q(p),h=e=>{var t=R_(),r=q(t);F(t),W(()=>R(r,`…${X(n)??``}`)),I(e,t)};K(m,e=>{X(n)>0&&e(h)});var g=V(m,2);L(g,17,()=>X(i),({tok:e,i:t})=>t,(e,n)=>{let r=()=>X(n).tok,i=()=>X(n).i;var o=z_(),s=()=>t.onjump(i());H(o,e=>({type:`button`,class:`rtok`,style:e,tabindex:`-1`,"aria-current":i()===t.index,"aria-description":`token ${i()+1} / ${t.tokens.length}`,onclick:s,[ft]:{current:i()===t.index}}),[()=>I_(r())],void 0,void 0,`svelte-cca58d`);var c=q(o,!0);F(o),W(e=>R(c,e),[()=>a(r().text)]),I(e,o)});var _=V(g,2),v=e=>{var n=B_(),i=q(n);F(n),W(()=>R(i,`${t.tokens.length-X(r)}…`)),I(e,n)};K(_,e=>{X(r)<t.tokens.length&&e(v)}),F(p),nt(p,e=>U(o,e),()=>X(o)),F(s),I(e,s),Et()}var U_=z(`<span class="rolling-number svelte-1rbetjy"><!></span>`);function W_(e,t){it(t,!0);let n=Z(t,`digits`,3,0),r=Z(t,`signed`,3,!1),i=G(()=>t.format??{useGrouping:!1,minimumFractionDigits:n(),maximumFractionDigits:n(),signDisplay:r()?`always`:`auto`}),a=G(()=>Number.isFinite(t.value)?new Intl.NumberFormat(`en-US`,X(i)).format(t.value):`-`);var o=U_();$(q(o),{get text(){return X(a)}}),F(o),W(()=>J(o,`data-value`,t.value)),I(e,o),Et()}var G_=z(`<div class="layers-status svelte-2plfw6"> </div>`),K_=z(`<span class="endcap svelte-2plfw6" aria-hidden="true"> </span> <div class="cells svelte-2plfw6"></div> <span class="endcap svelte-2plfw6" aria-hidden="true"> </span>`,1),q_=z(`<div><!></div>`),J_=z(`<div class="layer-strip svelte-2plfw6"><div class="layers svelte-2plfw6" role="slider" aria-valuemin="0"><!></div> <!></div>`);function Y_(e,t){it(t,!0);let n=Z(t,`emptyMessage`,3,`no data yet, generate a token first`),r=Y(0),i=Y(!1);bt(()=>{X(r)>=t.cells.length&&U(r,Math.max(0,t.cells.length-1),!0)});function a(e){if(t.cells.length!==0){if(e.key===`ArrowRight`)U(r,Math.min(t.cells.length-1,X(r)+1),!0);else if(e.key===`ArrowLeft`)U(r,Math.max(0,X(r)-1),!0);else if(e.key===`Home`)U(r,0);else if(e.key===`End`)U(r,t.cells.length-1);else return;e.preventDefault()}}var o=J_(),s=q(o),c=q(s),l=e=>{var t=G_(),r=q(t,!0);F(t),W(()=>R(r,n())),I(e,t)},u=e=>{var n=K_(),a=Q(n),o=q(a);F(a);var s=V(a,2);L(s,23,()=>t.cells,e=>e.layer,(e,n,a)=>{{let o=G(()=>X(i)&&X(a)===X(r));pl(e,{get value(){return X(n).value},get scale(){return t.scale},size:13,get title(){return X(n).title},get positiveColor(){return t.positiveColor},get negativeColor(){return t.negativeColor},get active(){return X(o)}})}}),F(s);var c=V(s,2),l=q(c);F(c),W(()=>{R(o,`L${t.cells[0].layer??``}`),R(l,`L${t.cells[t.cells.length-1].layer??``}`)}),I(e,n)};K(c,e=>{t.cells.length===0?e(l):e(u,-1)}),F(s);var d=V(s,2),f=e=>{var n=q_();H(n,()=>({class:`keyboard-readout`,"aria-hidden":!X(i),"aria-description":t.cells[X(r)].title,[ft]:{visible:X(i)}}),void 0,void 0,void 0,`svelte-2plfw6`),$(q(n),{get text(){return t.cells[X(r)].title}}),F(n),I(e,n)};K(d,e=>{t.cells[X(r)]&&e(f)}),F(o),W(e=>{J(s,`aria-label`,t.ariaLabel),J(s,`aria-valuemax`,e),J(s,`aria-valuenow`,X(r)),J(s,`aria-valuetext`,t.cells[X(r)]?.title??n()),J(s,`tabindex`,t.cells.length>0?0:void 0)},[()=>Math.max(0,t.cells.length-1)]),$e(`focus`,s,()=>U(i,!0)),$e(`blur`,s,()=>U(i,!1)),B(`keydown`,s,a),B(`pointermove`,s,e=>{if(e.pointerType===`touch`&&e.buttons===0)return;let t=[...e.currentTarget.querySelectorAll(`.cell`)].findIndex(t=>{let n=t.getBoundingClientRect();return e.clientX>=n.left&&e.clientX<=n.right});t>=0&&(U(r,t,!0),U(i,!0))}),B(`pointerdown`,s,e=>{e.currentTarget.focus(),U(i,!0)}),I(e,o),Et()}Ge([`keydown`,`pointermove`,`pointerdown`]);var X_=z(`<div class="layer-coordinate svelte-1ij67v6" role="group"><span class="svelte-1ij67v6"> </span> <!> <output class="svelte-1ij67v6"> </output></div>`),Z_=z(`<p class="svelte-1ij67v6">Subspace fraction <output class="svelte-1ij67v6"> </output></p>`),Q_=z(`<section class="layer-readings svelte-1ij67v6"><header class="svelte-1ij67v6"><span class="svelte-1ij67v6">Layer readings</span> <!></header> <div class="layer-values svelte-1ij67v6" aria-live="polite" aria-atomic="true"><!> <!></div></section>`);function $_(e,t){it(t,!0);let n=Y(``),r=G(()=>Object.keys(t.reading.coords_per_layer??{}).filter(e=>Number.isSafeInteger(Number(e))&&Number(e)>=0&&t.reading.coords_per_layer[e]?.length>0).sort((e,t)=>Number(e)-Number(t))),i=G(()=>X(r).includes(X(n))?X(n):X(r)[0]),a=G(()=>t.reading.coords_per_layer?.[X(i)]??[]),o=G(()=>t.reading.fraction_per_layer?.[X(i)]);var s=Je(),c=Q(s),l=e=>{var s=Q_(),c=q(s),l=V(q(c),2);{let e=G(()=>X(r).map(e=>({value:e,label:`Layer ${e}`}))),a=G(()=>`${t.name} layer`);Io(l,{get value(){return X(i)},get options(){return X(e)},onchange:e=>{U(n,e,!0)},get ariaLabel(){return X(a)}})}F(c);var u=V(c,2),d=q(u);L(d,17,()=>X(a),dt,(e,n,r)=>{var a=X_(),o=q(a),s=q(o,!0);F(o);var c=V(o,2);{let e=G(()=>ce(t.name,r));Em(c,{get value(){return X(n)},get max(){return X(e)},bipolar:!0})}var l=V(c,2),u=q(l,!0);F(l),F(a),W(e=>{J(a,`aria-label`,`${t.name} layer ${X(i)} axis ${r}`),R(s,t.axisLabels[r]??`c${r}`),R(u,e)},[()=>X(n).toFixed(3)]),I(e,a)});var f=V(d,2),p=e=>{var t=Z_(),n=V(q(t)),r=q(n,!0);F(n),F(t),W(e=>R(r,e),[()=>X(o).toFixed(3)]),I(e,t)};K(f,e=>{X(o)!=null&&e(p)}),F(u),F(s),W(()=>J(s,`aria-label`,`${t.name} layer readings`)),I(e,s)};K(c,e=>{X(r).length>0&&e(l)}),I(e,s),Et()}var ev=z(`<div class="reading svelte-i9n9i1" role="group"><div class="label svelte-i9n9i1"><!></div> <div class="bar svelte-i9n9i1"><!></div> <div class="middle svelte-i9n9i1"><!></div> <div class="value svelte-i9n9i1"><!></div></div>`);function tv(e,t){var n=ev(),r=q(n),i=q(r);We(i,()=>t.left),F(r);var a=V(r,2),o=q(a);We(o,()=>t.bar),F(a);var s=V(a,2),c=q(s);We(c,()=>t.middle),F(s);var l=V(s,2),u=q(l);We(u,()=>t.right),F(l),F(n),W(()=>J(n,`aria-label`,t.ariaLabel)),I(e,n)}var nv=z(`<div role="group"><div class="statline svelte-17l5p3y"><!></div> <div class="body svelte-17l5p3y"><!></div></div>`);function rv(e,t){let n=Z(t,`accent`,3,`--accent`),r=Z(t,`disabled`,3,!1),i=Z(t,`active`,3,!1);var a=nv();let o,s;var c=q(a),l=q(c);We(l,()=>t.statline),F(c);var u=V(c,2),d=q(u);We(d,()=>t.body),F(u),F(a),W(()=>{o=tt(a,1,`card svelte-17l5p3y`,null,o,{disabled:r(),active:i()}),s=st(a,``,s,{"--card-accent":`var(${n()??``})`})}),I(e,a)}var iv=z(`<span aria-hidden="true"> </span>`);function av(e,t){let n=Z(t,`filled`,3,!1),r=G(()=>t.shape===`circle`?n()?`●`:`○`:t.shape===`diamond`?n()?`◆`:`◇`:t.shape===`triangle`?n()?`▲`:`△`:n()?`■`:`□`);var i=iv(),a=q(i,!0);F(i),W(()=>{tt(i,1,`marker ${t.shape??``}`,`svelte-1a5iijm`),R(a,X(r))}),I(e,i)}var ov=z(`<p class="empty-detail svelte-y4jv5c"> </p>`),sv=z(`<div class="empty-action svelte-y4jv5c"><!></div>`),cv=z(`<div class="empty svelte-y4jv5c"><p class="empty-title svelte-y4jv5c"> </p> <!> <!></div>`);function lv(e,t){let n=Z(t,`detail`,3,null);var r=cv(),i=q(r),a=q(i,!0);F(i);var o=V(i,2),s=e=>{var t=ov(),r=q(t,!0);F(t),W(()=>R(r,n())),I(e,t)};K(o,e=>{n()&&e(s)});var c=V(o,2),l=e=>{var n=sv(),r=q(n);We(r,()=>t.children),F(n),I(e,n)};K(c,e=>{t.children&&e(l)}),F(r),W(()=>R(a,t.title)),I(e,r)}var uv=z(`<span> </span>`),dv=z(`<!> <!>`,1),fv=z(`<span class="kv source svelte-1drc9te"> </span>`),pv=z(`<span> </span>`),mv=z(`<span>steered: <code class="svelte-1drc9te"> </code></span>`),hv=z(`<span>unsteered</span>`),gv=z(`<button> </button>`),_v=z(`<div class="inst-head svelte-1drc9te"><span class="context-label svelte-1drc9te">readout</span> <!> <!> <!> <!> <!></div>`);function vv(e,t){it(t,!0);let n=Z(t,`source`,3,null),r=Z(t,`layer`,3,null),i=Z(t,`steered`,15),a=Z(t,`accent`,3,`var(--accent)`);var o=_v();let s;var c=V(q(o),2),l=e=>{var n=dv(),r=Q(n);ze(r,()=>t.origin,e=>{var n=uv();H(n,()=>({class:`kv origin`,"aria-description":t.origin===`captured`?`Recorded when this token was generated. No new model run was needed.`:`Computed by running the recorded context through the model again.`}),void 0,void 0,void 0,`svelte-1drc9te`);var r=q(n,!0);F(n),W(()=>R(r,t.origin)),Xe(1,n,()=>co,()=>({duration:go(140)})),I(e,n)});var i=V(r,2);{let e=G(()=>t.origin===`captured`?`Recorded when this token was generated. No new model run was needed.`:`Computed by running the recorded context through the model again.`);gc(i,{label:`About readout provenance`,get text(){return X(e)}})}I(e,n)};K(c,e=>{t.origin&&e(l)});var u=V(c,2),d=e=>{var t=fv(),r=q(t,!0);F(t),W(()=>R(r,n())),I(e,t)};K(u,e=>{n()&&e(d)});var f=V(u,2),p=e=>{var t=pv();H(t,()=>({class:`kv`,"aria-description":`The model layer where this SAE measures feature activations.`}),void 0,void 0,void 0,`svelte-1drc9te`);var n=q(t);F(t),W(()=>R(n,`L${r()??``}`)),I(e,t)};K(f,e=>{r()!=null&&r()>=0&&e(p)});var m=V(f,2),h=e=>{var n=mv();H(n,()=>({class:`kv steer-chip`,"aria-description":`These steering settings were applied when computing this readout.`}),void 0,void 0,void 0,`svelte-1drc9te`);var r=V(q(n)),i=q(r,!0);F(r),F(n),W(()=>R(i,t.steering)),I(e,n)},g=e=>{var t=hv();H(t,()=>({class:`kv`,"aria-description":`Computed without steering so you can compare it with the steered readout.`}),void 0,void 0,void 0,`svelte-1drc9te`),I(e,t)};K(m,e=>{t.steering===null?i()||e(g,1):e(h)});var _=V(m,2),v=e=>{var t=gv(),n=()=>{i(!i())};H(t,()=>({type:`button`,class:`steer-toggle`,"aria-pressed":i(),"aria-description":i()?`Recompute without the original steering to compare its effect.`:`Recompute using the steering saved with this generation.`,onclick:n,[ft]:{on:i()}}),void 0,void 0,void 0,`svelte-1drc9te`);var r=q(t);F(t),W(()=>R(r,`Steering ${i()?`on`:`off`}`)),I(e,t)};K(_,e=>{t.showToggle&&e(v)}),F(o),W(()=>s=st(o,``,s,{"--inst-accent":a()})),I(e,o),Et()}var yv=z(`<span class="count svelte-5tb47u"><!></span>`),bv=z(`<section class="section svelte-5tb47u"><header class="svelte-5tb47u"><div class="title-row svelte-5tb47u"><h3 class="svelte-5tb47u"> </h3> <!></div></header> <div class="content svelte-5tb47u"><!></div></section>`);function xv(e,t){let n=Z(t,`count`,3,null),r=Z(t,`accent`,3,`var(--accent)`);var i=bv();let a;var o=q(i),s=q(o),c=q(s),l=q(c,!0);F(c);var u=V(c,2),d=e=>{var t=yv();$(q(t),{get text(){return n()}}),F(t),I(e,t)};K(u,e=>{n()&&e(d)}),F(s),F(o);var f=V(o,2),p=q(f);We(p,()=>t.children),F(f),F(i),W(()=>{a=st(i,``,a,{"--section-accent":r()}),R(l,t.title)}),I(e,i)}var Sv=z(`<span> </span>`),Cv=z(`<span><!></span>`),wv=z(`<span> </span>`),Tv=z(`<span> </span>`),Ev=z(`<div class="header svelte-19muw5c"><span class="lead svelte-19muw5c"><!></span> <code> </code> <!> <!> <!> <span class="spacer svelte-19muw5c"></span> <!></div>`);function Dv(e,t){let n=Z(t,`secondary`,3,null),r=Z(t,`secondaryAccent`,3,!1),i=Z(t,`meta`,3,null),a=Z(t,`badge`,3,null),o=Z(t,`tail`,3,null),s=Z(t,`tailAccent`,3,!1);var c=Ev(),l=q(c),u=q(l);We(u,()=>t.lead),F(l);var d=V(l,2);H(d,()=>({class:`primary`,"aria-description":t.primaryTitle}),void 0,void 0,void 0,`svelte-19muw5c`);var f=q(d,!0);F(d);var p=V(d,2),m=e=>{var i=Sv();H(i,()=>({class:`secondary`,"aria-description":t.secondaryTitle,[ft]:{accent:r()}}),void 0,void 0,void 0,`svelte-19muw5c`);var a=q(i,!0);F(i),W(()=>R(a,n())),I(e,i)};K(p,e=>{n()&&e(m)});var h=V(p,2),g=e=>{var n=Cv();H(n,()=>({class:`meta`,"aria-description":t.metaTitle}),void 0,void 0,void 0,`svelte-19muw5c`),$(q(n),{get text(){return i()},get identity(){return t.primary}}),F(n),I(e,n)};K(h,e=>{i()&&e(g)});var _=V(h,2),v=e=>{var n=wv();H(n,()=>({class:`badge`,"aria-description":t.badgeTitle}),void 0,void 0,void 0,`svelte-19muw5c`);var r=q(n,!0);F(n),W(()=>R(r,a())),I(e,n)};K(_,e=>{a()&&e(v)});var y=V(_,4),b=e=>{var n=Tv();H(n,()=>({class:`tail`,"aria-description":t.tailTitle,[ft]:{accent:s()}}),void 0,void 0,void 0,`svelte-19muw5c`);var r=q(n,!0);F(n),W(()=>R(r,o())),I(e,n)};K(y,e=>{o()&&e(b)}),F(c),W(()=>R(f,t.primary)),I(e,c)}var Ov=z(`<span class="value svelte-1u6vkiq"><!></span>`),kv=z(`<span> <!></span>`),Av=z(`<div class="chips svelte-1u6vkiq" role="list"></div>`);function jv(e,t){it(t,!0);let n=Z(t,`ariaLabel`,3,`Supporting evidence`);var r=Je(),i=Q(r),a=e=>{var r=Av();L(r,21,()=>t.items,dt,(e,t)=>{var n=kv();H(n,()=>({class:`chip`,"aria-description":X(t).title,role:`listitem`,[ft]:{soft:X(t).soft}}),void 0,void 0,void 0,`svelte-1u6vkiq`);var r=q(n),i=V(r),a=e=>{var n=Ov();$(q(n),{get text(){return X(t).value},get identity(){return X(t).label}}),F(n),I(e,n)};K(i,e=>{X(t).value&&e(a)}),F(n),W(()=>R(r,`${X(t).label??``} `)),I(e,n)}),F(r),W(()=>J(r,`aria-label`,n())),I(e,r)};K(i,e=>{t.items.length>0&&e(a)}),I(e,r),Et()}var Mv=z(`<!>%`,1),Nv=z(`<div class="readout-progress loading-pulse svelte-1z0f2vr" role="status" aria-live="polite"><div class="progress-heading svelte-1z0f2vr"><span><!></span> <code class="svelte-1z0f2vr"><!></code></div> <div role="progressbar" aria-label="Geometry readout progress" aria-valuemin="0" aria-valuemax="100"><span class="svelte-1z0f2vr"></span></div> <p class="svelte-1z0f2vr"> </p> <p class="progress-note svelte-1z0f2vr">You can inspect another token while this finishes. This result will be kept.</p></div>`),Pv=z(`<span>subspace</span>`),Fv=z(`<span class="nearest svelte-1z0f2vr"> </span>`),Iv=z(`<span class="geo-value svelte-1z0f2vr"><!></span>`),Lv=z(`<span> </span>`),Rv=z(`<span>@<!></span>`),zv=z(`<span class="geo-value svelte-1z0f2vr"><!></span>`),Bv=z(`<p class="aggregate-label svelte-1z0f2vr">Across fitted layers</p> <!> <!> <!> <!> <!>`,1),Vv=z(`<details class="geometry-guide svelte-1z0f2vr"><summary class="svelte-1z0f2vr">How to read geometry</summary> <dl class="svelte-1z0f2vr"><dt class="svelte-1z0f2vr">Coordinates</dt> <dd class="svelte-1z0f2vr">Position in the fitted domain. On a two-pole axis, 0 is neutral and +1 is the named pole. Values can extend beyond a pole.</dd> <dt class="svelte-1z0f2vr">Subspace</dt> <dd class="svelte-1z0f2vr">Share of the centered activation in this subspace, from 0 to 1. Larger subspaces can capture more; this is not confidence.</dd> <dt class="svelte-1z0f2vr">Distance · d</dt> <dd class="svelte-1z0f2vr">Distance to a node in typical label spacings. Smaller is closer; 1 means one typical spacing away.</dd> <dt class="svelte-1z0f2vr">Assignment · ~</dt> <dd class="svelte-1z0f2vr">Relative geometric fit among nodes, not the probability that a trait is true.</dd> <dt class="svelte-1z0f2vr">Membership</dt> <dd class="svelte-1z0f2vr">Fit inside a curved manifold’s learned tube. Flat fits always return 1, so that value is hidden.</dd></dl></details> <div class="geo-list svelte-1z0f2vr"></div>`,1),Hv=z(`<!> <!>`,1),Uv=z(`<p class="setup-note svelte-1z0f2vr">Concept training isn’t available in this session. You can still add a fitted concept as a probe.</p>`),Wv=z(`<div class="setup-actions svelte-1z0f2vr"><!> <!></div> <!>`,1);function Gv(e,t){it(t,!0);let n=Z(t,`steered`,15),r=G(()=>Object.entries(t.readout.data?.readings??{}).sort(([e],[t])=>e.localeCompare(t,void 0,{sensitivity:`base`}))),i=j(`manifold_builder`);function a(e=!1){ir(e?`manifold_builder`:`subspace`,{returnToToken:t.returnToToken,...e?{mode:`discover`}:{}})}let o=G(()=>t.replayAvailable&&((t.readout.data?.steering??null)!==null||!n())),s=G(()=>t.readout.progress!==null&&t.readout.progress.progress>0),c=G(()=>Math.round((t.readout.progress?.progress??0)*100)),l=G(()=>t.readout.progress?.phase===`readout`?`Reading geometry`:t.readout.progress?.phase===`queued`?`Waiting for the model`:`Preparing this token`);function u(e){let t=ke.entries.get(e)?.info;return t?.family===`geometry`?t.is_affine:null}function d(e,t,n){let r=ke.entries.get(e)?.info,i=r?.family===`geometry`?r.node_labels:void 0;return n===1&&t===0&&i&&i.length===2?i[0]:`c${t}`}function f(e,t){let n=u(e)===!1,r={};if(n)Object.assign(r,t.fraction_per_layer??{});else for(let[e,n]of Object.entries(t.coords_per_layer??{}))r[e]=n[0]??null;return Object.keys(r).sort((e,t)=>Number(e)-Number(t)).map(e=>{let t=r[e],n=t!==null&&t>=0?`+`:``;return{layer:Number(e),value:t,title:t===null?`L${e} · unavailable`:`L${e} · ${n}${t.toFixed(3)}`}})}function p(e,t){return u(e)===!1?1:ce(e,0)}function m(e,t){return[...(e.nearest??[]).map(([e,t])=>({label:e,value:`d=${t.toFixed(2)}`,title:`${t.toFixed(3)} typical label spacings away · smaller is closer`})),...(e.assignment??[]).map(([e,t])=>({label:`~${e}`,value:`${(t*100).toFixed(0)}%`,title:`geometric assignment · ${(t*100).toFixed(1)}% · relative fit among nodes, not semantic confidence`,soft:!0})),...t===!1||e.residual!==0?[{label:`residual`,value:e.residual.toFixed(3),title:`off-surface distance divided by the in-subspace activation norm · smaller is closer to the surface`}]:[],...t!==!0&&e.membership!=null?[{label:`membership`,value:e.membership.toFixed(3),title:`fit inside the learned tube · 0 to 1 · not semantic confidence; without a learned tube this defaults to 1`}]:[]]}var h=Je(),g=Q(h),_=e=>{var n=Nv(),r=q(n),i=q(r);$(q(i),{get text(){return X(l)},numbers:!1}),F(i);var a=V(i,2),o=q(a),u=e=>{var t=Mv();W_(Q(t),{get value(){return X(c)}}),Ze(),I(e,t)},d=e=>{var t=Qe(`starting`);I(e,t)};K(o,e=>{X(s)?e(u):e(d,-1)}),F(a),F(r);var f=V(r,2);let p;var m=q(f);F(f);var h=V(f,2),g=q(h,!0);F(h),Ze(2),F(n),W(()=>{p=tt(f,1,`progress-track svelte-1z0f2vr`,null,p,{indeterminate:!X(s)}),J(f,`aria-valuenow`,X(s)?X(c):void 0),J(f,`aria-valuetext`,X(s)?`${X(c)}%`:`Starting`),st(m,X(s)?`width: ${X(c)}%`:void 0),R(g,t.readout.progress?.message??`Waiting for the model`)}),I(e,n)},v=e=>{{let n=G(()=>`readout: ${t.readout.error}`);lv(e,{get title(){return X(n)}})}},y=e=>{var i=Hv(),a=Q(i);vv(a,{get origin(){return t.readout.origin},get source(){return t.readout.source},get steering(){return t.readout.data.steering},get showToggle(){return X(o)},accent:`var(--pillar-subspace)`,get steered(){return n()},set steered(e){n(e)}});var s=V(a,2);{let e=G(()=>`${X(r).length} attached`);xv(s,{title:`PROBE READINGS`,get count(){return X(e)},children:(e,t)=>{var n=Vv(),i=V(Q(n),2);L(i,21,()=>X(r),([e,t])=>e,(e,t)=>{var n=G(()=>ut(X(t),2));let r=()=>X(n)[0],i=()=>X(n)[1],a=G(()=>i().coords.length),o=G(()=>f(r(),i())),s=G(()=>u(r())),c=G(()=>X(s)===!1?`--pillar-manifold`:`--pillar-subspace`),l=G(()=>m(i(),X(s)));rv(e,{get accent(){return X(c)},disabled:!1,statline:e=>{{let t=e=>{{let t=G(()=>X(s)===!1?`diamond`:`circle`);av(e,{get shape(){return X(t)},filled:!0})}},n=G(()=>X(s)===null?`geometry`:X(s)?`subspace`:`manifold`),a=G(()=>i().depth_com?.[0]==null?null:`@${i().depth_com[0].toFixed(2)} ±${(i().depth_spread?.[0]??0).toFixed(2)}`);Dv(e,{get primary(){return r()},get primaryTitle(){return r()},get secondary(){return X(n)},secondaryAccent:!0,get meta(){return X(a)},metaTitle:`Where this probe’s signal is concentrated across layers: 0 is the first layer, 1 is the last. The ± value shows how widely it is spread.`,lead:t,$$slots:{lead:!0}})}},body:e=>{var t=Bv(),n=V(Q(t),2);{let e=e=>{var t=Pv();H(t,()=>({class:`geo-axis-label`,"aria-description":`Share of the centered activation in this subspace · 0 to 1 · not confidence`}),void 0,void 0,void 0,`svelte-1z0f2vr`),I(e,t)},t=e=>{Em(e,{percentage:!0,get value(){return i().fraction},max:1,color:`var(--fg)`})},r=e=>{var t=Je(),n=Q(t),r=e=>{var t=Fv(),n=q(t,!0);F(t),W(()=>R(n,i().nearest[0][0])),I(e,t)};K(n,e=>{(i().nearest??[]).length>0&&e(r)}),I(e,t)},a=e=>{var t=Iv(),n=q(t);{let e=G(()=>i().fraction.toFixed(3));$(n,{get text(){return X(e)}})}F(t),I(e,t)},o=G(()=>`Subspace fraction ${i().fraction.toFixed(3)}`);tv(n,{get ariaLabel(){return X(o)},left:e,bar:t,middle:r,right:a,$$slots:{left:!0,bar:!0,middle:!0,right:!0}})}var c=V(n,2);L(c,17,()=>i().coords,dt,(e,t,n)=>{{let o=e=>{var t=Lv();H(t,()=>({class:`geo-axis-label`,"aria-description":`coordinate axis ${n}`}),void 0,void 0,void 0,`svelte-1z0f2vr`);var i=q(t,!0);F(t),W(e=>R(i,e),[()=>d(r(),n,X(a))]),I(e,t)},s=e=>{{let i=G(()=>ce(r(),n));Em(e,{get value(){return X(t)},get max(){return X(i)},bipolar:!0})}},c=e=>{var t=Je(),r=Q(t),a=e=>{var t=Rv();H(t,e=>({class:`geo-depth`,...e}),[()=>({"aria-description":`depth center ±${(i().depth_spread?.[n]??0).toFixed(2)} · 0 first, 1 last`})],void 0,void 0,`svelte-1z0f2vr`);var r=V(q(t));{let e=G(()=>i().depth_com[n].toFixed(2));$(r,{get text(){return X(e)}})}F(t),I(e,t)};K(r,e=>{i().depth_com&&i().depth_com[n]!=null&&e(a)}),I(e,t)},l=e=>{var n=zv(),r=q(n);{let e=G(()=>X(t).toFixed(3));$(r,{get text(){return X(e)}})}F(n),I(e,n)},u=G(()=>`${r()} axis ${n}`);tv(e,{get ariaLabel(){return X(u)},left:o,bar:s,middle:c,right:l,$$slots:{left:!0,bar:!0,middle:!0,right:!0}})}});var u=V(c,2),f=e=>{{let t=G(()=>p(r(),i())),n=G(()=>X(s)===!1?`var(--pillar-manifold)`:void 0),a=G(()=>`${r()} per-layer readings`);Y_(e,{get cells(){return X(o)},get scale(){return X(t)},get positiveColor(){return X(n)},get ariaLabel(){return X(a)}})}};K(u,e=>{X(o).length>0&&e(f)});var m=V(u,2);{let e=G(()=>`Geometry evidence for ${r()}`);jv(m,{get items(){return X(l)},get ariaLabel(){return X(e)}})}var h=V(m,2),g=e=>{{let t=G(()=>i().coords.map((e,t)=>d(r(),t,X(a))));$_(e,{get name(){return r()},get reading(){return i()},get axisLabels(){return X(t)}})}};K(h,e=>{X(s)&&e(g)}),I(e,t)},$$slots:{statline:!0,body:!0}})}),F(i),I(e,n)},$$slots:{default:!0}})}I(e,i)},b=e=>{lv(e,{title:`Add a probe to see concept readings`,detail:`Choose a fitted concept, or create and train one for this model. Add it as a probe to inspect its readings here.`,children:(e,t)=>{var n=Wv(),r=Q(n),o=q(r);zs(o,{variant:`solid`,onclick:()=>a(),children:(e,t)=>{Ze();var n=Qe(`Add a probe`);I(e,n)},$$slots:{default:!0}});var s=V(o,2),c=e=>{zs(e,{onclick:()=>a(!0),children:(e,t)=>{Ze();var n=Qe(`Create a concept`);I(e,n)},$$slots:{default:!0}})};K(s,e=>{i.available&&e(c)}),F(r);var l=V(r,2),u=e=>{var t=Uv();I(e,t)};K(l,e=>{i.available||e(u)}),I(e,n)},$$slots:{default:!0}})},x=e=>{lv(e,{title:`no raw decode record`,detail:`replay needs a loom node generated with raw-decode capture in this session`})},S=e=>{lv(e,{title:`no readings`})};K(g,e=>{t.readout.loading?e(_):t.readout.error?e(v,1):t.readout.data&&X(r).length>0?e(y,2):t.hasGeometryProbes?t.hasReplayContext?e(S,-1):e(x,4):e(b,3)}),I(e,h),Et()}var Kv=z(`<p class="sampler-note svelte-1ryci9v">This token has almost all of the probability after sampling settings.
123
+ That is not a measure of factual accuracy.</p>`),qv=z(`<span> </span>`),Jv=z(`<span class="row-label svelte-1ryci9v">probability</span>`),Yv=z(`<span class="row-context svelte-1ryci9v">logp <!></span>`),Xv=z(`<span class="row-value svelte-1ryci9v"><!></span>`),Zv=z(`<!> <div class="row-meta svelte-1ryci9v"><span>Δ top <b class="svelte-1ryci9v"><!></b></span> <span>token id <b class="svelte-1ryci9v"> </b></span> <span class="spacer svelte-1ryci9v"></span> <!></div>`,1),Qv=z(`<p class="branch-error svelte-1ryci9v"> </p>`),$v=z(`<!> <div class="logit-grid svelte-1ryci9v" aria-label="Ranked token alternatives"></div> <!>`,1),ey=z(`<!> <!>`,1);function ty(e,t){it(t,!0);let n=Kt().mode,r=En(n),i=On(n)>0,a=G(()=>n===`http`||n===`browser`&&ie(`geometry`)?.capabilities.token_readout===!0),o=G(()=>{let e=t.token.topAlts;if(!e||e.length===0)return[];let n=e[0]?.logprob??0;return e.map((e,r)=>({rank:r+1,id:e.id,text:e.text,logprob:e.logprob,p:Math.exp(e.logprob),delta:e.logprob-n,chosen:t.token.tokenId!=null&&e.id===t.token.tokenId}))}),s=G(()=>X(o).length===1&&X(o)[0].chosen&&X(o)[0].p>=.9995),c=Y(null),l=Y(null);function u(e){return e==null||!Number.isFinite(e)?`-`:e.toFixed(3)}function d(e){return Number.isFinite(e)?e>=.001?e.toFixed(4):e.toExponential(2):`-`}function f(e,t){return t===1||!Number.isFinite(e)?`-`:e.toFixed(3)}function h(){i&&(m.return_top_k??0)===0&&(m.return_top_k=r)}async function g(e){if(U(l,null),!t.nodeId)U(l,`no generated loom node is available for this token`);else if(t.token.rawIndex==null)U(l,`this token has no raw-decode index; forking needs a node generated with raw-decode capture in this session`);else{U(c,e.rank,!0);try{await p(t.nodeId,t.token.rawIndex,e.id),ar(),Oe.view=`map`,window.dispatchEvent(new CustomEvent(`drowse:workspace`,{detail:`branches`}))}catch(e){U(l,jn(e,`Unable to create a branch from this word choice. Try another alternative.`),!0)}finally{U(c,null)}}}var _=ey(),v=Q(_);vv(v,{origin:`captured`,source:`sampler`,steering:null,steered:!0,showToggle:!1,accent:`var(--pillar-lens)`});var y=V(v,2);{let e=G(()=>X(o).length>0?`${X(o).length} retained`:`capture unavailable`);xv(y,{title:`RANKED ALTERNATIVES`,get count(){return X(e)},accent:`var(--pillar-lens)`,children:(e,n)=>{var r=Je(),p=Q(r),_=e=>{var t=$v(),n=Q(t),r=e=>{var t=Kv();I(e,t)};K(n,e=>{X(s)&&e(r)});var i=V(n,2);L(i,21,()=>X(o),e=>e.id,(e,t)=>{rv(e,{accent:`--pillar-lens`,disabled:!1,get active(){return X(t).chosen},statline:e=>{{let n=e=>{var n=qv(),r=q(n);F(n),W(()=>R(r,`#${X(t).rank??``}`)),I(e,n)},r=G(()=>JSON.stringify(X(t).text)),i=G(()=>`id ${X(t).id}`),a=G(()=>X(t).chosen?`generated`:null);Dv(e,{get primary(){return X(r)},get secondary(){return X(i)},get badge(){return X(a)},lead:n,$$slots:{lead:!0}})}},body:e=>{var n=Zv(),r=Q(n);{let e=e=>{var t=Jv();I(e,t)},n=e=>{Em(e,{percentage:!0,get value(){return X(t).p},max:1,color:`var(--pillar-lens)`})},i=e=>{var n=Yv(),r=V(q(n));{let e=G(()=>u(X(t).logprob));$(r,{get text(){return X(e)}})}F(n),I(e,n)},a=e=>{var n=Xv(),r=q(n);{let e=G(()=>d(X(t).p));$(r,{get text(){return X(e)}})}F(n),I(e,n)},o=G(()=>`Probability ${d(X(t).p)}`);tv(r,{get ariaLabel(){return X(o)},left:e,bar:n,middle:i,right:a,$$slots:{left:!0,bar:!0,middle:!0,right:!0}})}var i=V(r,2),o=q(i),s=V(q(o)),l=q(s);{let e=G(()=>f(X(t).delta,X(t).rank));$(l,{get text(){return X(e)}})}F(s),F(o);var p=V(o,2),m=V(q(p)),h=q(m,!0);F(m),F(p);var _=V(p,4);{let e=G(()=>!X(a)||X(t).chosen||X(c)!==null),n=G(()=>X(a)?void 0:`Token branching is not available in the browser runtime yet`);zs(_,{size:`sm`,get disabled(){return X(e)},onclick:()=>g(X(t)),get title(){return X(n)},children:(e,n)=>{{let n=G(()=>X(c)===X(t).rank?`Starting…`:X(t).chosen?`Used`:X(a)?`Start branch`:`View only`);$(e,{get text(){return X(n)},numbers:!1})}},$$slots:{default:!0}})}F(i),W(()=>R(h,X(t).id)),I(e,n)},$$slots:{statline:!0,body:!0}})}),F(i);var p=V(i,2),m=e=>{var t=Qv(),n=q(t,!0);F(t),W(()=>R(n,X(l))),I(e,t)};K(p,e=>{X(l)&&e(m)}),I(e,t)},v=e=>{{let n=G(()=>`logprob ${u(t.token.logprob)} · no alternatives captured`);lv(e,{get title(){return X(n)},children:(e,t)=>{{let t=G(()=>!i||m.return_top_k>0);zs(e,{onclick:h,get disabled(){return X(t)},children:(e,t)=>{Ze();var n=Qe();W(()=>R(n,i?m.return_top_k>0?`alts on next run`:`enable alts`:`alts unavailable`)),I(e,n)},$$slots:{default:!0}})}},$$slots:{default:!0}})}},y=e=>{lv(e,{title:`no logprob data`,children:(e,t)=>{{let t=G(()=>!i||m.return_top_k>0);zs(e,{onclick:h,get disabled(){return X(t)},children:(e,t)=>{Ze();var n=Qe();W(()=>R(n,i?m.return_top_k>0?`alts on next run`:`enable alts`:`alts unavailable`)),I(e,n)},$$slots:{default:!0}})}},$$slots:{default:!0}})};K(p,e=>{X(o).length>0?e(_):t.token.logprob==null?e(y,-1):e(v,1)}),I(e,r)},$$slots:{default:!0}})}I(e,_),Et()}var ny=`/assets/gemma-3-1b-it.json`,ry=`/assets/gemma-3-270m-it.json`,iy=`/assets/gemma-3-4b-it.json`;function ay(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var oy=[{size:`270m`,layer:12,sha256:`f99efac8449faa1e5b715e0298f27d5cf3f5646fce5a5ece14ded90a09efeb65`},{size:`1b`,layer:13,sha256:`6be6fbfed9850588adb1826bcc9fc89551d9eaf573311e95b21307fd4a281cd5`},{size:`4b`,layer:17,sha256:`f67e2305cfd1703d8a685d99fb25b6f25a2feaaa4eb45ef08a467f400b696d71`}];function sy(e,t,n){let r=e;if(!ay(r)||r.modelId!==t.model||r.layer!==t.source||String(r.index)!==String(n)||!ay(r.source)||r.source.hfRepoId!==t.repository||t.folder!==void 0&&r.source.hfFolderId!==t.folder||t.saeId!==void 0&&r.source.saelensSaeId!==t.saeId||!t.folder&&!t.saeId||!Array.isArray(r.explanations))throw Error(`The description belongs to a different SAE dictionary.`);let i=r.explanations.find(e=>ay(e)&&typeof e.description==`string`&&!!e.description.trim());return{label:i?.description.trim()??null,explanationModel:typeof i?.explanationModelName==`string`?i.explanationModelName:null,url:`https://www.neuronpedia.org/${encodeURIComponent(t.model)}/${encodeURIComponent(t.source)}/${n}`}}var cy=new Map,ly=new Map;function uy(e){return oy.find(t=>e.model===`gemma-3-${t.size}-it`&&e.source===`${t.layer}-gemmascope-2-res-16k`&&e.repository===`google/gemma-scope-2-${t.size}-it`&&!!(e.folder||e.saeId)&&(e.folder===void 0||e.folder===`resid_post/layer_${t.layer}_width_16k_l0_medium`)&&(e.saeId===void 0||e.saeId===`layer_${t.layer}_width_16k_l0_medium`))}async function dy(e,t){let n=uy(e);if(!n)return null;let r=ly.get(n.size);r||(r=(async()=>{let t=new URL(Object.assign({"./data/sae-descriptions/gemma-3-1b-it.json":ny,"./data/sae-descriptions/gemma-3-270m-it.json":ry,"./data/sae-descriptions/gemma-3-4b-it.json":iy})[`./data/sae-descriptions/gemma-3-${n.size}-it.json`],import.meta.url),r=await fetch(t.href,{signal:AbortSignal.timeout(5e3),credentials:`omit`,referrerPolicy:`no-referrer`});if(!r.ok)throw Error(`Bundled SAE descriptions are unavailable.`);let i=await r.json();if(!ay(i)||i.format_version!==1||i.provider_sha256!==n.sha256||i.feature_count!==16384||!ay(i.source)||i.source.model!==e.model||i.source.source!==e.source||i.source.repository!==e.repository||i.source.folder!==`resid_post/layer_${n.layer}_width_16k_l0_medium`||!ay(i.explanations))throw Error(`Bundled descriptions do not match this SAE.`);for(let[e,t]of Object.entries(i.explanations))if(!/^(0|[1-9]\d*)$/.test(e)||Number(e)>=16384||!Array.isArray(t)||t.length!==2||typeof t[0]!=`string`||!t[0].trim()||t[1]!==null&&typeof t[1]!=`string`)throw Error(`Bundled SAE descriptions are invalid.`);return i.explanations})(),ly.set(n.size,r));let i;try{i=await r}catch{return ly.get(n.size)===r&&ly.delete(n.size),null}let a=i[String(t)];return a?{label:a[0],explanationModel:a[1],url:`https://www.neuronpedia.org/${encodeURIComponent(e.model)}/${encodeURIComponent(e.source)}/${t}`}:null}async function fy(e,t,n){if(!Number.isSafeInteger(t)||t<0)throw Error(`Invalid SAE feature ID.`);n.throwIfAborted();let r=JSON.stringify([e,t]),i=cy.get(r);if(i)return i;let a=await dy(e,t);if(n.throwIfAborted(),!a){let r=await fetch(`https://www.neuronpedia.org/api/feature/${encodeURIComponent(e.model)}/${encodeURIComponent(e.source)}/${t}`,{signal:n,credentials:`omit`,referrerPolicy:`no-referrer`});if(!r.ok)throw Error(`Descriptions could not be loaded. Try again when you are online.`);a=sy(await r.json(),e,t)}return cy.set(r,a),cy.size>512&&cy.delete(cy.keys().next().value),a}var py=z(`<span> </span>`),my=z(`<span aria-hidden="true"></span>`),hy=z(`<span class="pinned-value svelte-1df69yl"> </span>`),gy=z(`<!> <!>`,1),_y=z(`<div class="pinned-grid svelte-1df69yl" aria-label="Pinned probe readings"></div>`);function vy(e,t){it(t,!0);let n=G(()=>`var(${t.accent})`),r=G(()=>Math.max(1,...Object.values(t.readings).filter(e=>e.unit===`raw_activation`).map(e=>e.value))),i=G(()=>Object.entries(t.readings).sort(([e],[t])=>e.localeCompare(t,void 0,{sensitivity:`base`})));function a(e){let t=e.per_layer??{};return Object.keys(t).sort((e,t)=>Number(e)-Number(t)).map(n=>({layer:Number(n),value:t[n],title:`L${n} · ${xm(t[n],e.unit===`mean_token_probability`)} · ${o[e.unit]}`}))}let o={mean_token_probability:`mean fitted-layer probability`,activation_over_max:`activation / corpus max`,raw_activation:`raw activation (no corpus max cached)`};function s(e){return Math.max(...e.map(e=>e.value??0),1e-12)}var c=Je(),l=Q(c),u=e=>{{let c=G(()=>`${X(i).length} captured`);xv(e,{title:`PINNED PROBES`,get count(){return X(c)},get accent(){return X(n)},children:(e,c)=>{var l=_y();L(l,21,()=>X(i),([e,t])=>e,(e,i)=>{var c=G(()=>ut(X(i),2));let l=()=>X(c)[0],u=()=>X(c)[1],d=G(()=>a(u()));rv(e,{get accent(){return t.accent},disabled:!1,statline:e=>{{let n=e=>{av(e,{get shape(){return t.shape},filled:!0})},r=G(()=>`probe ${l()}`),i=G(()=>u().depth?.center?.[0]==null?null:`@${u().depth.center[0].toFixed(2)} ±${(u().depth.spread?.[0]??0).toFixed(2)}`);Dv(e,{get primary(){return l()},get primaryTitle(){return X(r)},get meta(){return X(i)},metaTitle:`Where this probe’s signal is concentrated across layers: 0 is the first layer, 1 is the last. The ± value shows how widely it is spread.`,lead:n,$$slots:{lead:!0}})}},body:e=>{var t=gy(),i=Q(t);{let e=e=>{var t=py();H(t,()=>({class:`row-label`,"aria-description":o[u().unit]}),void 0,void 0,void 0,`svelte-1df69yl`);var n=q(t,!0);F(t),W(()=>R(n,u().unit===`raw_activation`?`activation`:`strength`)),I(e,t)},t=e=>{{let t=G(()=>u().unit===`mean_token_probability`),i=G(()=>Math.max(u().value,0)),a=G(()=>u().unit===`raw_activation`?X(r):1);Em(e,{get percentage(){return X(t)},get value(){return X(i)},get max(){return X(a)},get color(){return X(n)}})}},a=e=>{var t=my();I(e,t)},s=e=>{var t=hy(),n=q(t,!0);F(t),W(e=>R(n,e),[()=>u().value.toFixed(3)]),I(e,t)},c=G(()=>`Pinned probe ${l()}`);tv(i,{get ariaLabel(){return X(c)},left:e,bar:t,middle:a,right:s,$$slots:{left:!0,bar:!0,middle:!0,right:!0}})}var a=V(i,2),c=e=>{{let t=G(()=>s(X(d))),r=G(()=>`${l()} per-layer strength`);Y_(e,{get cells(){return X(d)},get scale(){return X(t)},get positiveColor(){return X(n)},get ariaLabel(){return X(r)}})}};K(a,e=>{X(d).length>1&&e(c)}),I(e,t)},$$slots:{statline:!0,body:!0}})}),F(l),I(e,l)},$$slots:{default:!0}})}};K(l,e=>{X(i).length>0&&e(u)}),I(e,c),Et()}var yy=z(`<!>%`,1),by=z(`<div class="readout-progress loading-pulse svelte-w3bzpw" role="status" aria-live="polite"><div class="progress-heading svelte-w3bzpw"><span><!></span> <code class="svelte-w3bzpw"><!></code></div> <div role="progressbar" aria-label="Model-feature readout progress" aria-valuemin="0" aria-valuemax="100"><span class="svelte-w3bzpw"></span></div> <p class="svelte-w3bzpw"> </p> <p class="progress-note svelte-w3bzpw">You can inspect another token while this finishes. This result will be kept.</p></div>`),xy=z(`<button class="description-action svelte-w3bzpw"><!></button> <p class="metadata-privacy svelte-w3bzpw">Uses published Neuronpedia descriptions included with Drowse, then looks up missing feature IDs. Your conversation and activation values are not sent.</p>`,1),Sy=z(`<p role="status" class="svelte-w3bzpw">Checking the SAE description source…</p>`),Cy=z(`<p class="metadata-error svelte-w3bzpw" role="alert"> </p> <button class="description-action svelte-w3bzpw">Retry description source</button>`,1),wy=z(`<p class="metadata-privacy svelte-w3bzpw">Only labels included with this exact SAE pack are shown. An exact published dictionary match is required for additional descriptions.</p>`),Ty=z(`<p role="status" class="svelte-w3bzpw">Checking the published feature records…</p>`),Ey=z(`<p class="metadata-error svelte-w3bzpw" role="alert"> </p>`),Dy=z(`<span> </span>`),Oy=z(`<p class="feature-description svelte-w3bzpw"> </p>`),ky=z(`<p class="feature-description missing svelte-w3bzpw"><!></p>`),Ay=z(`<a class="description-source svelte-w3bzpw" target="_blank" rel="noreferrer"> </a>`),jy=z(`<!> <!> <div class="feature-reading svelte-w3bzpw" role="group"><span class="row-label svelte-w3bzpw"> </span> <span class="sae-value svelte-w3bzpw"><!></span> <div class="feature-bar svelte-w3bzpw"><!></div></div> <!>`,1),My=z(`<div role="listitem"><!></div>`),Ny=z(`<p class="no-matches svelte-w3bzpw"> <button class="svelte-w3bzpw">Clear search</button></p>`),Py=z(`<div class="sae-list svelte-w3bzpw" role="list" aria-label="Top SAE features"></div> <!>`,1),Fy=z(`<div class="feature-tools svelte-w3bzpw"><label class="svelte-w3bzpw">Find a feature<input type="search" placeholder="Description or feature ID" class="svelte-w3bzpw"/></label> <label class="svelte-w3bzpw">Sort by<!></label></div> <!>`,1),Iy=z(`<!> <div class="description-context svelte-w3bzpw"><p class="svelte-w3bzpw">Feature descriptions are published interpretations, not definitive meanings. Activations are not probabilities.</p> <!> <!> <!></div> <!> <!>`,1);function Ly(e,t){it(t,!0);let n=Z(t,`steered`,15);ht(()=>{S()});let r=G(()=>v.sources.find(e=>e.source===t.readout.source&&e.layer===t.readout.data?.layer)),i=G(()=>X(r)?.description_source),a=G(()=>JSON.stringify(X(i)??null)),o=G(()=>`${t.readout.data?.node_id}/${t.readout.data?.raw_index}/${t.readout.source}/${t.readout.data?.layer}/${t.readout.data?.features.map(e=>e.id).join(`,`)}`),s=Y(``),c=Y(`activation`),l=Y(pt({})),u=Y(!1),d=Y(``),f=null,p=G(()=>(t.readout.data?.features??[]).some(e=>!e.label?.trim()&&!X(l)[e.id])),m=G(()=>new Map([...t.readout.data?.features??[]].sort((e,t)=>t.activation-e.activation).map((e,t)=>[e.id,t+1])));bt(()=>(X(o),X(a),U(l,{},!0),U(d,``),U(u,!1),U(s,``),et(()=>{g()}),()=>{f?.abort(),f=null}));let h=G(()=>{let e=X(s).trim().toLowerCase();return[...t.readout.data?.features??[]].filter(t=>!e||`sae/${t.id} ${t.label?.trim()||X(l)[t.id]?.label||``}`.toLowerCase().includes(e)).sort((e,t)=>X(c)===`id`?e.id-t.id:t.activation-e.activation)});async function g(){let e=X(i);if(!e||!t.readout.data||X(u))return;let n=new AbortController;f=n,U(u,!0),U(d,``);let r=setTimeout(()=>n.abort(),2e4),a=t.readout.data.features.filter(e=>!e.label?.trim()&&!X(l)[e.id]);try{for(let t=0;t<a.length;t+=4){let r=await Promise.allSettled(a.slice(t,t+4).map(async t=>[t.id,await fy(e,t.id,n.signal)]));if(f!==n)return;for(let e of r)e.status===`fulfilled`?U(l,{...X(l),[e.value[0]]:e.value[1]},!0):U(d,`Some descriptions could not be loaded. Check your connection and try again.`);if(n.signal.aborted)break}}catch{f===n&&U(d,`Some descriptions could not be loaded. Check your connection and try again.`)}finally{clearTimeout(r),f===n&&U(u,!1)}}let _=G(()=>t.replayAvailable&&((t.readout.data?.steering??null)!==null||!n())),y=G(()=>t.readout.progress!==null&&t.readout.progress.progress>0),b=G(()=>Math.round((t.readout.progress?.progress??0)*100)),x=G(()=>t.readout.progress?.phase===`readout`?`Reading model features`:t.readout.progress?.phase===`queued`?`Waiting for the model`:`Preparing this token`),C=G(()=>Math.max(...(t.readout.data?.features??[]).filter(e=>!(e.max_act!=null&&e.max_act>0)).map(e=>e.activation),1));function w(e){return e.max_act!=null&&e.max_act>0?e.activation/e.max_act:null}function T(e){return e.max_act!=null&&e.max_act>0?[{label:`activation`,value:e.activation.toFixed(3),title:`raw activation · ${e.activation.toFixed(3)}`},{label:`reference maximum`,value:e.max_act.toFixed(3),title:`Reference maximum supplied with this feature: ${e.max_act.toFixed(3)}`}]:[]}var E=Je(),D=Q(E),O=e=>{var n=by(),r=q(n),i=q(r);$(q(i),{get text(){return X(x)},numbers:!1}),F(i);var a=V(i,2),o=q(a),s=e=>{var t=yy();W_(Q(t),{get value(){return X(b)}}),Ze(),I(e,t)},c=e=>{var t=Qe(`starting`);I(e,t)};K(o,e=>{X(y)?e(s):e(c,-1)}),F(a),F(r);var l=V(r,2);let u;var d=q(l);F(l);var f=V(l,2),p=q(f,!0);F(f),Ze(2),F(n),W(()=>{u=tt(l,1,`progress-track svelte-w3bzpw`,null,u,{indeterminate:!X(y)}),J(l,`aria-valuenow`,X(y)?X(b):void 0),J(l,`aria-valuetext`,X(y)?`${X(b)}%`:`Starting`),st(d,X(y)?`width: ${X(b)}%`:void 0),R(p,t.readout.progress?.message??`Waiting for the model`)}),I(e,n)},k=e=>{{let n=G(()=>`readout: ${t.readout.error}`);lv(e,{get title(){return X(n)}})}},A=e=>{var r=Iy(),a=Q(r);vv(a,{get origin(){return t.readout.origin},get source(){return t.readout.source},get layer(){return t.readout.data.layer},get steering(){return t.readout.data.steering},get showToggle(){return X(_)},accent:`var(--pillar-sae)`,get steered(){return n()},set steered(e){n(e)}});var o=V(a,2),f=V(q(o),2),y=e=>{var t=xy(),n=Q(t),r=q(n);{let e=G(()=>X(u)?`Loading descriptions…`:X(d)?`Retry descriptions`:X(p)?`Load published descriptions`:`Descriptions checked`);$(r,{get text(){return X(e)}})}F(n),Ze(2),W(()=>{n.disabled=X(u)||!X(p),J(n,`aria-busy`,X(u))}),B(`click`,n,g),I(e,t)},b=e=>{var t=Sy();I(e,t)},x=e=>{var t=Cy(),n=Q(t),r=q(n,!0);F(n);var i=V(n,2);W(()=>R(r,v.error)),B(`click`,i,()=>void S()),I(e,t)},E=e=>{var t=wy();I(e,t)};K(f,e=>{X(i)?e(y):v.loading?e(b,1):v.error?e(x,2):e(E,-1)});var D=V(f,2),O=e=>{var t=Ty();I(e,t)};K(D,e=>{X(u)&&e(O)});var k=V(D,2),A=e=>{var t=Ey(),n=q(t,!0);F(t),W(()=>R(n,X(d))),I(e,t)};K(k,e=>{X(d)&&e(A)}),F(o);var j=V(o,2),M=e=>{vy(e,{get readings(){return t.pinned},accent:`--pillar-sae`,shape:`triangle`})},N=G(()=>t.readout.origin===`captured`&&t.pinned&&Object.keys(t.pinned).length>0);K(j,e=>{X(N)&&e(M)});var ee=V(j,2),te=e=>{lv(e,{title:`no features fired at this position`})},ne=e=>{var n=Fy(),r=Q(n),a=q(r),o=V(q(a));ot(o),F(a);var d=V(a,2);Io(V(q(d)),{ariaLabel:`Sort by`,options:[{value:`activation`,label:`Activation`},{value:`id`,label:`Feature ID`}],get value(){return X(c)},set value(e){U(c,e,!0)}}),F(d),F(r);var f=V(r,2);{let e=G(()=>`${X(h).length} of ${t.readout.data.features.length} recorded`);xv(f,{title:`SAE activations`,get count(){return X(e)},accent:`var(--pillar-sae)`,children:(e,n)=>{var r=Py(),a=Q(r);L(a,21,()=>X(h),e=>e.id,(e,n)=>{let r=G(()=>w(X(n))),a=G(()=>T(X(n))),o=G(()=>X(l)[X(n).id]),s=G(()=>X(n).label?.trim()||X(o)?.label);var c=My();rv(q(c),{accent:`--pillar-sae`,disabled:!1,statline:e=>{{let r=e=>{var t=Dy(),r=q(t);F(t),W(e=>R(r,`#${e??``}`),[()=>X(m).get(X(n).id)]),I(e,t)},i=G(()=>`sae/${X(n).id}`),a=G(()=>`Layer ${t.readout.data?.layer??`-`}`);Dv(e,{get primary(){return X(i)},get tail(){return X(a)},tailTitle:`SAE layer`,lead:r,$$slots:{lead:!0}})}},body:e=>{var t=jy(),c=Q(t),l=e=>{var t=Je(),n=Q(t);ze(n,()=>X(s),e=>{var t=Oy(),n=q(t,!0);F(t),W(()=>R(n,X(s))),Xe(1,t,()=>co,()=>({duration:go(160)})),I(e,t)}),I(e,t)},d=e=>{var t=ky(),n=q(t);{let e=G(()=>X(o)?`No description published for this feature`:X(i)?X(u)?`Loading description…`:`Description could not be loaded`:v.loading?`Loading description source…`:v.error?`Description source could not be loaded`:`No description included in this pack`);$(n,{get text(){return X(e)},numbers:!1})}F(t),I(e,t)};K(c,e=>{X(s)?e(l):e(d,-1)});var f=V(c,2),p=e=>{var t=Ay(),n=q(t);F(t),W(()=>{J(t,`href`,X(o).url),R(n,`Neuronpedia${X(o).explanationModel?` · ${X(o).explanationModel}`:` · feature record`}`)}),I(e,t)};K(f,e=>{X(o)&&e(p)});var m=V(f,2),h=q(m),g=q(h,!0);F(h);var _=V(h,2),y=q(_);{let e=G(()=>X(r)==null?X(n).activation.toFixed(2):X(r).toFixed(3)),t=G(()=>X(r)==null?`raw`:`relative`);$(y,{get text(){return X(e)},get identity(){return X(t)}})}F(_);var b=V(_,2),x=q(b),S=e=>{{let t=G(()=>Math.max(X(r),0));Em(e,{get value(){return X(t)},max:1,color:`var(--pillar-sae)`})}},w=e=>{{let t=G(()=>Math.max(X(n).activation,0));Em(e,{get value(){return X(t)},get max(){return X(C)},color:`color-mix(in srgb, var(--pillar-sae) 55%, transparent)`})}};K(x,e=>{X(r)==null?e(w,-1):e(S)}),F(b),F(m);var T=V(m,2);{let e=G(()=>`Metadata for feature sae/${X(n).id}`);jv(T,{get items(){return X(a)},get ariaLabel(){return X(e)}})}W(()=>{J(m,`aria-label`,`Activation for sae/${X(n).id}`),R(g,X(r)==null?`Raw activation`:`Relative activation`)}),I(e,t)},$$slots:{statline:!0,body:!0}}),F(c),W(()=>J(c,`aria-label`,`SAE feature ${X(n).id}, layer ${t.readout.data.layer}`)),I(e,c)}),F(a);var o=V(a,2),c=e=>{var t=Ny(),n=q(t),r=V(n);F(t),W(()=>R(n,`No recorded features match “${X(s)??``}”. `)),B(`click`,r,()=>{U(s,``)}),I(e,t)};K(o,e=>{X(h).length===0&&e(c)}),I(e,r)},$$slots:{default:!0}})}at(o,()=>X(s),e=>U(s,e)),I(e,n)};K(ee,e=>{t.readout.data.features.length===0?e(te):e(ne,-1)}),I(e,r)},j=e=>{var n=Je(),r=Q(n),i=e=>{lv(e,{title:`No SAE is available for this model`})},a=e=>{lv(e,{title:`No SAE is available for this conversation length`})},o=e=>{lv(e,{title:`No SAE is installed`,detail:`Add the available SAE in Model settings, then reopen the model.`})},s=e=>{lv(e,{title:`No SAE is loaded`,detail:`Check Model settings for a compatible SAE.`})};K(r,e=>{t.availability===`unavailable`?e(i):t.availability===`context-unavailable`?e(a,1):t.availability===`available`?e(o,2):e(s,-1)}),I(e,n)},M=e=>{lv(e,{title:`no raw decode record`,detail:`replay needs a loom node generated with raw-decode capture in this session`})},N=e=>{lv(e,{title:`no readout`})};K(D,e=>{t.readout.loading?e(O):t.readout.error?e(k,1):t.readout.data?e(A,2):t.saeLoaded?t.hasReplayContext?e(N,-1):e(M,4):e(j,3)}),I(e,E),Et()}Ge([`click`]);var Ry=z(`<code> </code>`);function zy(e,t){lv(e,{title:`no J-LENS fit`,children:(e,n)=>{var r=Ry(),i=q(r);F(r),W(()=>R(i,`drowse lens fit ${t.modelId??`<model>`??``}`)),I(e,r)},$$slots:{default:!0}})}var By=z(`<!>%`,1),Vy=z(`<div class="readout-progress loading-pulse svelte-9hulvj" role="status" aria-live="polite"><div class="progress-heading svelte-9hulvj"><span><!></span> <code class="svelte-9hulvj"><!></code></div> <div role="progressbar" aria-label="J-lens readout progress" aria-valuemin="0" aria-valuemax="100"><span class="svelte-9hulvj"></span></div> <p class="svelte-9hulvj"> </p> <p class="progress-note svelte-9hulvj">You can inspect another token while this finishes. This result will be kept.</p></div>`),Hy=z(`<span></span>`),Uy=z(`<span class="row-label svelte-9hulvj">strength</span>`),Wy=z(`<span class="row-context svelte-9hulvj"> </span>`),Gy=z(`<span class="row-value svelte-9hulvj"><!></span>`),Ky=z(`<!> <!>`,1),qy=z(`<div role="listitem"><!></div>`),Jy=z(`<div class="aggregate-grid svelte-9hulvj" role="list" aria-label="Aggregate lens tokens"></div>`),Yy=z(`<th class="num svelte-9hulvj"></th>`),Xy=z(`<td><span class="cell-token svelte-9hulvj"> </span> <span class="cell-prob svelte-9hulvj"> </span></td>`),Zy=z(`<tr class="svelte-9hulvj"><th class="row-label svelte-9hulvj"> </th><!></tr>`),Qy=z(`<p class="focused-readout svelte-9hulvj"><!></p> <div class="grid-scroll svelte-9hulvj" role="slider" aria-label="Vocabulary matrix cell" tabindex="0"><table class="lens-table svelte-9hulvj"><thead class="svelte-9hulvj"><tr><th class="corner svelte-9hulvj">L \\ rank</th><!></tr></thead><tbody class="svelte-9hulvj"></tbody></table></div>`,1),$y=z(`<!> <!> <!> <!>`,1);function eb(e,t){it(t,!0);let n=Z(t,`steered`,15),r=G(()=>t.replayAvailable&&((t.readout.data?.steering??null)!==null||!n())),i=G(()=>Math.max(0,...t.readout.data?.layers.map(e=>e.tokens.length)??[])),a=G(()=>t.readout.data?.layers.length??0),o=G(()=>t.readout.progress!==null&&t.readout.progress.progress>0),s=G(()=>Math.round((t.readout.progress?.progress??0)*100)),c=G(()=>t.readout.progress?.phase===`readout`?`Reading the J-lens`:t.readout.progress?.phase===`queued`?`Waiting for the model`:`Preparing this token`);function l(e){return`background: color-mix(in srgb, var(--pillar-lens) ${Math.round(Math.min(1,Math.exp(e))*30)}%, var(--bg));`}function u(e,t){let n=Math.exp(t.logprob),r=n>=.001?n.toFixed(4):n.toExponential(2);return`L${e} · ${JSON.stringify(t.token)} · ${xm(n,!0)} · p=${r} · logprob=${t.logprob.toFixed(3)}`}function d(e){let t=e.token.trim();return t.length>0?t:JSON.stringify(e.token)}function f(e){return e.trim()||JSON.stringify(e)}function p(e){return(t.readout.data?.layers??[]).map(t=>{let n=t.tokens.find(t=>t.token===e.token),r=n?Math.exp(n.logprob):null;return{layer:t.layer,value:r,title:r==null?`L${t.layer} · below top-${X(i)}`:`L${t.layer} · ${xm(r,!0)} · p ${r.toPrecision(3)}`}})}let m=Y(`Select a vocabulary cell to inspect it`),h=Y(0);bt(()=>{t.readout.data,U(h,0),U(m,`Select a vocabulary cell to inspect it`)});function g(e){let t=[...e.currentTarget.querySelectorAll(`.lens-cell`)];if(t.length){if(e.key===`ArrowRight`)U(h,Math.min(t.length-1,X(h)+1),!0);else if(e.key===`ArrowLeft`)U(h,Math.max(0,X(h)-1),!0);else if(e.key===`ArrowDown`)U(h,Math.min(t.length-1,X(h)+X(i)),!0);else if(e.key===`ArrowUp`)U(h,Math.max(0,X(h)-X(i)),!0);else if(e.key===`Home`)U(h,0);else if(e.key===`End`)U(h,t.length-1);else return;e.preventDefault(),U(m,t[X(h)].getAttribute(`aria-description`)??``,!0),t[X(h)].scrollIntoView({block:`nearest`,inline:`nearest`})}}function _(e){return Math.max(...e.map(e=>e.value??0),1e-12)}function v(e){let t=Math.exp(e);return t>=.001?t.toFixed(3):t.toExponential(1)}function y(e){if(e.ctrlKey||Math.abs(e.deltaY)<=Math.abs(e.deltaX))return;let t=e.currentTarget.closest(`[data-token-details-scroll]`);if(!t)return;let n=e.deltaMode===WheelEvent.DOM_DELTA_LINE?16:e.deltaMode===WheelEvent.DOM_DELTA_PAGE?t.clientHeight:1,r=t.scrollTop;t.scrollTop+=e.deltaY*n,t.scrollTop!==r&&e.preventDefault()}var b=Je(),x=Q(b),S=e=>{var n=Vy(),r=q(n),i=q(r);$(q(i),{get text(){return X(c)},numbers:!1}),F(i);var a=V(i,2),l=q(a),u=e=>{var t=By();W_(Q(t),{get value(){return X(s)}}),Ze(),I(e,t)},d=e=>{var t=Qe(`starting`);I(e,t)};K(l,e=>{X(o)?e(u):e(d,-1)}),F(a),F(r);var f=V(r,2);let p;var m=q(f);F(f);var h=V(f,2),g=q(h,!0);F(h),Ze(2),F(n),W(()=>{p=tt(f,1,`progress-track svelte-9hulvj`,null,p,{indeterminate:!X(o)}),J(f,`aria-valuenow`,X(o)?X(s):void 0),J(f,`aria-valuetext`,X(o)?`${X(s)}%`:`Starting`),st(m,X(o)?`width: ${X(s)}%`:void 0),R(g,t.readout.progress?.message??`Waiting for the model`)}),I(e,n)},C=e=>{{let n=G(()=>`readout: ${t.readout.error}`);lv(e,{get title(){return X(n)}})}},w=e=>{var o=$y(),s=Q(o);vv(s,{get origin(){return t.readout.origin},get source(){return t.readout.source},get steering(){return t.readout.data.steering},get showToggle(){return X(r)},accent:`var(--pillar-lens)`,get steered(){return n()},set steered(e){n(e)}});var c=V(s,2),b=e=>{vy(e,{get readings(){return t.pinned},accent:`--pillar-lens`,shape:`square`})},x=G(()=>t.readout.origin===`captured`&&t.pinned&&Object.keys(t.pinned).length>0);K(c,e=>{X(x)&&e(b)});var S=V(c,2),C=e=>{{let n=G(()=>`${t.readout.data.aggregate?.length??0} tokens`);xv(e,{title:`AGGREGATE WORKSPACE`,get count(){return X(n)},accent:`var(--pillar-lens)`,children:(e,n)=>{var r=Jy();L(r,21,()=>t.readout.data.aggregate??[],dt,(e,n,r)=>{let i=G(()=>p(X(n))),o=G(()=>X(i).filter(e=>e.value!=null).length);var s=qy(),c=q(s);{let e=e=>{{let i=e=>{var t=Hy();t.textContent=`#${r+1}`,I(e,t)},a=G(()=>f(X(n).token)),o=G(()=>`@${X(n).com.toFixed(2)} ±${X(n).spread.toFixed(2)}`),s=G(()=>X(n).token===t.readout.data?.token_text?`generated`:null);Dv(e,{get primary(){return X(a)},get meta(){return X(o)},metaTitle:`Where this word’s probability is concentrated across layers: 0 is the first layer, 1 is the last. The ± value shows how widely it is spread.`,get badge(){return X(s)},lead:i,$$slots:{lead:!0}})}},s=e=>{var t=Ky(),r=Q(t);{let e=e=>{var t=Uy();I(e,t)},t=e=>{Em(e,{percentage:!0,get value(){return X(n).strength},max:1,color:`var(--pillar-lens)`})},i=e=>{var t=Wy(),n=q(t);F(t),W(()=>R(n,`${X(o)??``}/${X(a)??``} layers`)),I(e,t)},s=e=>{var t=Gy(),r=q(t);{let e=G(()=>X(n).strength.toFixed(3));$(r,{get text(){return X(e)}})}F(t),I(e,t)},c=G(()=>`Strength ${X(n).strength.toFixed(3)}`);tv(r,{get ariaLabel(){return X(c)},left:e,bar:t,middle:i,right:s,$$slots:{left:!0,bar:!0,middle:!0,right:!0}})}var s=V(r,2);{let e=G(()=>_(X(i))),t=G(()=>`Per-layer strength for ${f(X(n).token)}`);Y_(s,{get cells(){return X(i)},get scale(){return X(e)},positiveColor:`var(--layer-cell-lens)`,get ariaLabel(){return X(t)}})}I(e,t)},l=G(()=>X(n).token===t.readout.data.token_text);rv(c,{accent:`--pillar-lens`,disabled:!1,get active(){return X(l)},statline:e,body:s,$$slots:{statline:!0,body:!0}})}F(s),I(e,s)}),F(r),I(e,r)},$$slots:{default:!0}})}};K(S,e=>{(t.readout.data.aggregate??[]).length>0&&e(C)});var w=V(S,2);{let e=G(()=>`${t.readout.data.layers.length} layers × ${X(i)} ranks`);xv(w,{title:`LAYER × VOCABULARY`,get count(){return X(e)},accent:`var(--pillar-lens)`,children:(e,n)=>{var r=Qy(),a=Q(r);$(q(a),{get text(){return X(m)},numbers:!1}),F(a);var o=V(a,2);J(o,`aria-valuemin`,0);var s=q(o),c=q(s),f=q(c),p=V(q(f));L(p,17,()=>({length:X(i)}),dt,(e,t,n)=>{var r=Yy();r.textContent=n+1,I(e,r)}),F(f),F(c);var _=V(c);L(_,21,()=>t.readout.data.layers,e=>e.layer,(e,n)=>{var r=Zy(),i=q(r),a=q(i);F(i);var o=V(i);L(o,17,()=>X(n).tokens,e=>e.id,(e,r)=>{var i=Xy();H(i,(e,n)=>({class:`lens-cell`,style:e,...n,[ft]:{hit:X(r).id===t.readout.data.token_id}}),[()=>l(X(r).logprob),()=>({"aria-description":u(X(n).layer,X(r))})],void 0,void 0,`svelte-9hulvj`);var a=q(i),o=q(a,!0);F(a);var s=V(a,2),c=q(s);F(s),F(i),W((e,t)=>{R(o,e),R(c,`p ${t??``}`)},[()=>d(X(r)),()=>v(X(r).logprob)]),I(e,i)}),F(r),W(()=>R(a,`L${X(n).layer??``}`)),I(e,r)}),F(_),F(s),F(o),W(e=>{J(o,`aria-valuemax`,e),J(o,`aria-valuenow`,X(h)),J(o,`aria-valuetext`,X(m))},[()=>Math.max(0,t.readout.data.layers.reduce((e,t)=>e+t.tokens.length,0)-1)]),B(`keydown`,o,g),$e(`wheel`,o,y),B(`pointermove`,o,e=>{let t=e.target.closest(`.lens-cell`);t&&(U(m,t.getAttribute(`aria-description`)??``,!0),U(h,[...e.currentTarget.querySelectorAll(`.lens-cell`)].indexOf(t),!0))}),B(`pointerdown`,o,e=>{let t=e.target.closest(`.lens-cell`);t&&U(m,t.getAttribute(`aria-description`)??``,!0)}),I(e,r)},$$slots:{default:!0}})}I(e,o)},T=e=>{zy(e,{get modelId(){return t.modelId}})},E=e=>{lv(e,{title:`no raw decode record`,detail:`replay needs a loom node generated with raw-decode capture in this session`})},D=e=>{lv(e,{title:`no readout`})};K(x,e=>{t.readout.loading?e(S):t.readout.error?e(C,1):t.readout.data?e(w,2):t.jlensFitted?t.hasReplayContext?e(D,-1):e(E,4):e(T,3)}),I(e,b),Et()}Ge([`keydown`,`pointermove`,`pointerdown`]);function tb(e,t,n,r){let i=e.models.flatMap(e=>e.variants).find(e=>e.id===t);if(!i)return`unknown`;let a=i.packs.filter(e=>e.kind===r);if(a.length===0)return`unavailable`;if(n===null)return`available`;let o=i.contextProfiles.find(e=>e.contextTokens===n);return o&&a.some(e=>e.compatibleContextBindingSha256.includes(o.bindingSha256))?`available`:`context-unavailable`}async function nb(e){let t=qt();if(!t)return`unknown`;let{modelVariantId:n,contextTokens:r}=t.snapshot;if(!n)return`unknown`;try{return tb((await t.catalog({preferCached:!0,offline:typeof navigator<`u`&&navigator.onLine===!1})).document,n,r,e)}catch{return`unknown`}}var rb=z(`<button><!></button>`),ib=z(`<span> </span>`),ab=z(`<span> </span>`),ob=z(`<span>no replay</span>`),sb=z(`<span>p <!> · logp <!> </span>`),cb=z(`<button type="button" class="scrub-btn scrub-home svelte-b6e72b" aria-label="Return to the token you opened"><!></button>`),lb=z(`<span class="svelte-b6e72b"> </span>`),ub=z(`<div class="name-row svelte-b6e72b"><code class="tok-text svelte-b6e72b"><!></code> <button><!></button> <!> <!> <!></div> <div class="nav-row svelte-b6e72b"><span class="scrub svelte-b6e72b"><button><!></button> <span class="scrub-pos svelte-b6e72b"><!></span> <button><!></button></span> <span class="scrub svelte-b6e72b"><button><!></button> <span class="scrub-pos svelte-b6e72b"><!></span> <button><!></button></span> <!></div> <div class="generation-context svelte-b6e72b"><div class="recipe svelte-b6e72b"><span class="recipe-label svelte-b6e72b">generation recipe</span> <code> </code> <!></div></div>`,1),db=z(`<div class="name-row svelte-b6e72b"><span class="coord svelte-b6e72b"> </span></div>`),fb=z(`<form class="replacement-form svelte-b6e72b"><label for="token-replacement" class="svelte-b6e72b">Replacement text</label> <div class="replacement-controls svelte-b6e72b"><input id="token-replacement" aria-describedby="token-replacement-help" autocomplete="off" spellcheck="true" class="svelte-b6e72b"/> <button type="submit" class="primary-action svelte-b6e72b"><!></button></div> <span id="token-replacement-help" class="svelte-b6e72b">Edit this token or replace it with a longer phrase. Spacing is preserved.</span></form>`),pb=z(`<p class="branch-point-error svelte-b6e72b" role="alert"> </p>`),mb=z(`<!> <section class="branch-point svelte-b6e72b" aria-label="Selected token branch point"><div class="branch-point-copy svelte-b6e72b"><strong class="svelte-b6e72b">Branch from this token</strong> <span class="svelte-b6e72b"> </span></div> <div class="branch-point-actions svelte-b6e72b"><button> </button> <button><!></button></div> <!> <!></section>`,1),hb=z(`<p class="replay-unavailable svelte-b6e72b" role="note"></p>`),gb=z(`<p class="replay-unavailable svelte-b6e72b" role="note"></p>`),_b=z(`<p class="replay-unavailable svelte-b6e72b" role="note"></p>`),vb=z(`<div class="empty svelte-b6e72b"> </div>`),yb=z(`<div class="tab-content svelte-b6e72b"><!> <!></div>`),bb=z(`<aside data-token-details-scroll="" aria-label="Token drilldown" tabindex="-1"><header class="drawer-header svelte-b6e72b"><div class="heading-row svelte-b6e72b"><!> <h2 class="eyebrow svelte-b6e72b">Generated word details</h2> <!></div> <div class="title svelte-b6e72b"><!></div></header> <!> <div class="toolbar svelte-b6e72b"><!> <!></div> <div class="body svelte-b6e72b"><!></div></aside>`);function xb(e,t){it(t,!0);let n=Z(t,`docked`,3,!1),r=Z(t,`active`,3,!0),a=Z(t,`mobile`,3,!1),o=Y(null),s=G(()=>t.params);function c(){t.onclose?t.onclose():n()?nr():ar()}function l(){let e=X(y)?{turnIdx:X(y).turnIdx,tokenIdx:X(y).tokenIdx,isThinking:X(y).seg===`thinking`}:X(s);n()?rr(e):tr(e)}let u=G(()=>X(s)?{turnIdx:X(s).turnIdx,seg:X(s).isThinking?`thinking`:`response`,tokenIdx:X(s).tokenIdx}:null),d=Y(null),f=Y(`primary`),h=[{value:`primary`,label:`steered`,title:`primary turn`},{value:`shadow`,label:`unsteered`,title:`A/B shadow turn`}];bt(()=>{let e=X(u);U(d,e?{...e}:null,!0),U(f,`primary`)});let g=G(()=>ye.turns.map((e,t)=>t===(X(d)?.turnIdx??-1)&&X(f)===`shadow`&&e.abPair?e.abPair:e)),_=G(()=>x_(X(g))),y=G(()=>X(d)?T_(X(_),X(d)):null),b=-1;bt(()=>{let e=X(y)?.turnIdx??-1;e!==b&&(b=e,X(f)!==`primary`&&U(f,`primary`))});let x=G(()=>X(y)!=null&&X(y).turnIdx>=0&&X(y).turnIdx<ye.turns.length?ye.turns[X(y).turnIdx]:null),S=G(()=>X(y)?X(g)[X(y).turnIdx]??null:null),C=G(()=>X(y)?b_(X(S),X(y).seg):[]),w=G(()=>X(y)!=null&&X(y).tokenIdx>=0&&X(y).tokenIdx<X(C).length?X(C)[X(y).tokenIdx]:null),T=G(()=>X(y)?X(f)===`shadow`?X(S)?.nodeId??null:X(x)?.nodeId?X(x).nodeId:X(y).turnIdx<0||Ie.activePath.length===0?null:Ie.activePath.map(e=>Ie.nodes.get(e)).filter(Boolean).filter(e=>!(e.parent_id===null&&e.role===`system`&&!e.text))[X(y).turnIdx]?.id??null:null),D=G(()=>X(T)!=null&&X(w)?.rawIndex!=null),O=G(()=>X(f)===`primary`&&X(T)!=null&&X(w)?.rawIndex!=null&&X(w)?.tokenId!=null&&!me.active),k=G(()=>X(f)===`primary`&&X(T)!=null&&X(w)?.rawIndex!=null&&!me.active),A=Y(!1),j=Y(null),M=Y(!1),N=Y(``),ee=Y(!1),te=Y(null);bt(()=>{X(T),X(w)?.rawIndex,U(j,null),U(M,!1),U(N,``)});async function P(){if(!X(k)||!X(w))return;U(N,X(w).text,!0),U(M,!0),U(j,null),await Ke(),X(te)?.focus();let e=X(N).search(/\S/),t=X(N).trimEnd().length;X(te)?.setSelectionRange(e>=0?e:0,t>0?t:X(N).length)}async function re(){if(X(k)&&X(T)&&X(w)?.rawIndex!=null){if(X(N).length===0)U(j,`Enter replacement text.`),X(te)?.focus();else{U(j,null),U(ee,!0);try{await ne(X(T),X(w).rawIndex,X(N)),(!n()||a())&&c(),Oe.view=`map`,window.dispatchEvent(new CustomEvent(`drowse:workspace`,{detail:`branches`}))}catch(e){U(j,jn(e,`Unable to replace this token and start a new branch.`),!0)}finally{U(ee,!1)}}}}async function ae(){if(X(O)&&X(T)&&X(w)?.rawIndex!=null&&X(w).tokenId!=null){U(j,null),U(A,!0);try{await p(X(T),X(w).rawIndex,X(w).tokenId,!0),(!n()||a())&&c(),Oe.view=`map`,window.dispatchEvent(new CustomEvent(`drowse:workspace`,{detail:`branches`}))}catch(e){U(j,jn(e,`Unable to continue this branch from the selected token.`),!0)}finally{U(A,!1)}}}let se=G(()=>X(T)?Ie.nodes.get(X(T))??null:null),ce=G(()=>X(se)?.recipe?.sampling??null),le=G(()=>X(se)?.recipe?.steering??X(S)?.appliedSteering??null);function ue(e){return e==null||!Number.isFinite(e)?`-`:Number.isInteger(e)?String(e):e.toFixed(2)}let fe=G(()=>{let e=X(ce),t=X(se)?.recipe;if(!e&&!t)return[];let n=[`Temperature ${ue(e?.temperature)}`,`Top P ${ue(e?.top_p)}`,`Top K ${ue(e?.top_k)}`,`Max tokens ${ue(e?.max_tokens)}`],r=t?.seed??e?.seed;return r!=null&&n.push(`Seed ${r}`),e?.presence_penalty&&n.push(`Presence penalty ${ue(e.presence_penalty)}`),e?.frequency_penalty&&n.push(`Frequency penalty ${ue(e.frequency_penalty)}`),e?.return_top_k!=null&&n.push(`Return top K ${e.return_top_k}`),t?.thinking!=null&&n.push(t.thinking?`Thinking on`:`Thinking off`),(t?.probes.length??0)>0&&n.push(`${t.probes.length} recipe probes`),n});function pe(e){e&&U(d,e,!0)}let he=G(()=>X(y)!=null&&C_(X(_),X(y),-1)!==null),ge=G(()=>X(y)!=null&&C_(X(_),X(y),1)!==null),_e=G(()=>X(y)!=null&&w_(X(_),X(y),-1)!==null),ve=G(()=>X(y)!=null&&w_(X(_),X(y),1)!==null);function be(e){X(y)&&pe(C_(X(_),X(y),e))}function xe(e){X(y)&&pe(w_(X(_),X(y),e))}function Se(e){X(y)&&U(d,{...X(y),tokenIdx:e===`home`?0:Math.max(0,X(C).length-1)},!0)}let Ce=G(()=>X(y)!=null&&X(u)!=null&&X(y).turnIdx===X(u).turnIdx&&X(y).seg===X(u).seg&&X(y).tokenIdx===X(u).tokenIdx);function we(){X(u)&&U(d,{...X(u)},!0)}let Te=G(()=>{if(!X(y))return null;let e=X(y).seg===`thinking`?`response`:`thinking`;return X(_).some(t=>t.turnIdx===X(y).turnIdx&&t.seg===e)?e:null});function Ee(){X(y)&&X(Te)&&U(d,{turnIdx:X(y).turnIdx,seg:X(Te),tokenIdx:0},!0)}function De(e){if(e.defaultPrevented||!r()||a()&&!X(o)?.contains(e.target)||n()&&!X(o)?.contains(e.target))return;if(e.key===`Escape`){e.preventDefault(),(!n()||a())&&c();return}let t=e.target;if(!(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.tagName===`SELECT`||t.isContentEditable||t.closest(`[role="slider"], [role="listbox"]`)))){switch(e.key){case`ArrowLeft`:be(-1);break;case`ArrowRight`:be(1);break;case`ArrowUp`:xe(-1);break;case`ArrowDown`:xe(1);break;case`Home`:Se(`home`);break;case`End`:Se(`end`);break;default:return}e.preventDefault()}}let Ae=G(()=>X(S)?X(S).roleLabel??X(S).role:``),je=G(()=>{let e=X(w)?.topAlts;if(!e||e.length===0||X(w)?.tokenId==null)return null;let t=e.findIndex(e=>e.id===X(w).tokenId);return t>=0?t+1:null});function Me(e){return Number.isFinite(e)?e>=.001?e.toFixed(3):e.toExponential(1):`-`}let Ne=G(()=>[{value:`geometry`,label:`geometry`,meta:j_(Je,X(mt),X(ct),e=>Object.keys(e.readings).length),color:`var(--fg-dim)`,title:`activation geometry`},{value:`logits`,label:`logits`,meta:X(w)?.topAlts?String(X(w).topAlts.length):void 0,title:`sampling alternatives`},{value:`sae`,label:`sae`,meta:j_(qe,X(pt),X(st),e=>e.features.length),color:`var(--pillar-sae)`,title:`sparse features`},{value:`lens`,label:`j-lens`,meta:j_(Ge,X(ft),X(z),e=>e.layers.length),color:`var(--pillar-lens)`,title:`workspace readout`}]),Fe=G(()=>X(x)?.abPair!=null),Le=G(()=>E.info?.jlens_fitted===!0),Re=G(oe),Be=Y(`unknown`);ht(()=>{let e=!0;return nb(`sae`).then(t=>{e&&U(Be,t,!0)}),()=>{e=!1}});let Ve=G(()=>ie(`lens`)?.capabilities.token_readout===!0),He=G(()=>ie(`sae`)?.capabilities.token_readout===!0),Ue=G(()=>ie(`geometry`)?.capabilities.token_readout===!0),We=G(()=>i(m.return_top_k)),Ge=new D_,qe=new D_,Je=new D_,Ye=G(()=>{let e=A_.tab;if(!X(w)||!X(y))return X(s)?`missing:unavailable`:`missing:unselected`;if(e===`logits`)return`${e}:ready`;let t=e===`geometry`?Je:e===`sae`?qe:Ge;return`${e}:${t.loading?`loading`:t.error?`error`:t.data?`ready`:`empty`}`});yt(()=>{Ge.dispose(),qe.dispose(),Je.dispose()});let z=Y(!0),st=Y(!0),ct=Y(!0);bt(()=>{X(w),X(T),X(z),Ge.clear()}),bt(()=>{X(w),X(T),X(st),qe.clear()}),bt(()=>{X(w),X(T),X(ct),Je.clear()});let lt=G(()=>ke.active.some(e=>ke.entries.get(e)?.info.family===`geometry`)),ut=G(()=>X(w)?.measurements?.instruments.lens?.readings??null),dt=G(()=>X(w)?.measurements?.instruments.sae?.readings??null),ft=G(()=>{let e=X(w)?.measurements?.instruments.lens;return!e?.readout||!X(w)?null:{node_id:X(T)??``,raw_index:X(w).rawIndex??-1,token_id:X(w).tokenId??-1,token_text:X(w).text,steering:e.binding.steering,aggregate:e.readout.aggregate,layers:e.readout.layers}}),pt=G(()=>{let e=X(w)?.measurements?.instruments.sae;return!e?.readout||!X(w)?null:{node_id:X(T)??``,raw_index:X(w).rawIndex??-1,token_id:X(w).tokenId??-1,token_text:X(w).text,steering:e.binding.steering,layer:e.binding.layer??-1,features:e.readout.features}}),mt=G(()=>{let e=X(w)?.measurements?.instruments.geometry;return!e||Object.keys(e.readings??{}).length===0?null:{steering:e.binding?.steering??null,readings:e.readings}}),gt=Y(null);bt(()=>{r()&&X(s)&&X(w)&&E.info&&X(gt)!==X(s)&&(A_.tab=M_(X(s).initialTab??et(()=>A_.tab),{lens:X(ft)!==null||X(D)&&X(Le)&&X(Ve),sae:X(pt)!==null||X(D)&&X(Re)&&X(He),geometry:X(mt)!==null||X(D)&&X(lt)&&X(Ue)}),U(gt,X(s),!0))}),bt(()=>{if(!r()||A_.tab!==`lens`)return;let e=X(ft);if(!X(Ve)&&!X(z)&&U(z,!0),(X(z)||!X(Ve))&&e){Ge.adopt(e,X(w)?.measurements?.instruments.lens?.binding.source??null);return}if(Ge.clear(),!X(Ve)||!X(Le))return;let t=X(T),n=X(w)?.rawIndex;if(!t||n==null)return;let i=X(w)?.tokenId??-1,a=X(w)?.text??``,o=Pe.sources.find(e=>e.active)?.source??null;Ge.replay(`lens`,t,n,{topK:X(We),steered:X(z),raw:de(),layers:`all`},e=>{let r=e.instruments.lens;if(!r?.readout)throw Error(`No J-lens reading was returned. Check the active lens source and try again.`);return{data:{node_id:t,raw_index:n,token_id:i,token_text:a,steering:r?.binding.steering??null,aggregate:r.readout.aggregate,layers:r.readout.layers},source:r?.binding.source??o??null}})}),bt(()=>{if(!r()||A_.tab!==`sae`)return;let e=X(pt);if(!X(He)&&!X(st)&&U(st,!0),(X(st)||!X(He))&&e){qe.adopt(e,X(w)?.measurements?.instruments.sae?.binding.source??null);return}if(qe.clear(),!X(He)||!X(Re))return;let t=X(T),n=X(w)?.rawIndex;if(!t||n==null)return;let i=X(w)?.tokenId??-1,a=X(w)?.text??``,o=v.sources.find(e=>e.active)?.source??ie(`sae`)?.source??null;qe.replay(`sae`,t,n,{topK:X(We),steered:X(st),raw:de()},e=>{let r=e.instruments.sae;if(!r?.readout)throw Error(`No SAE reading was returned. Check the active feature source and try again.`);return{data:{node_id:t,raw_index:n,token_id:i,token_text:a,steering:r?.binding.steering??null,layer:r?.binding.layer??-1,features:r.readout.features},source:r?.binding.source??o??null}})}),bt(()=>{if(!r()||A_.tab!==`geometry`)return;let e=X(mt);if(!X(Ue)&&!X(ct)&&U(ct,!0),(X(ct)||!X(Ue))&&e){Je.adopt(e,null);return}if(Je.clear(),!X(Ue)||!X(lt))return;let t=X(T),n=X(w)?.rawIndex;t&&n!=null&&Je.replay(`geometry`,t,n,{steered:X(ct),raw:de()},e=>{let t=e.instruments.geometry;if(!t)throw Error(`No probe readings were returned. Check that the probes are attached and try again.`);return{data:{steering:t?.binding?.steering??null,readings:t?.readings??{}},source:null}})}),bt(()=>{if(r())return Nn(`token_inspector`,{schema:Tr,read:()=>({values:{cursor:X(y),branch:X(f),tab:A_.tab,apply_recipe:{geometry:X(ct),lens:X(z),sae:X(st)},presentation:n()?`dock`:`drawer`},node_id:X(T),raw_index:X(w)?.rawIndex??null,shadow_available:X(Fe),replay:{geometry:X(Ue),lens:X(Ve),sae:X(He)}}),update:async e=>{if(e.move&&(e.cursor||e.branch))throw new Ln(`INVALID_INPUT`,`Choose a relative move or an explicit cursor and branch.`);let t=e.cursor??X(y),r=e.branch??(e.cursor&&t?.turnIdx!==X(y)?.turnIdx?`primary`:X(f));if(!t)throw new Ln(`NOT_FOUND`,`Select a token before changing the inspector.`);let i=ye.turns[t.turnIdx];if(r===`shadow`&&!i?.abPair)throw new Ln(`NOT_FOUND`,`This turn has no shadow comparison.`);let a=b_((r===`shadow`?i?.abPair:i)??null,t.seg)[t.tokenIdx];if(!a)throw new Ln(`NOT_FOUND`,`The requested token is not present on that branch and segment.`);let o=e.apply_recipe;for(let[e,t]of[[`geometry`,X(Ue)],[`lens`,X(Ve)],[`sae`,X(He)]]){if(o?.[e]===!1&&(!t||a.rawIndex==null))throw new Ln(`UNAVAILABLE`,`Unsteered ${e} inspection requires token replay support and a recorded raw token index.`);if(o?.[e]===!1&&(e===`geometry`&&!X(lt)||e===`lens`&&!X(Le)||e===`sae`&&!X(Re)))throw new Ln(`UNAVAILABLE`,`Prepare the ${e} instrument before requesting an unsteered replay.`)}let s=null;if(e.move&&(e.move===`next`||e.move===`previous`?s=C_(X(_),t,e.move===`next`?1:-1):e.move===`next_turn`||e.move===`previous_turn`?s=w_(X(_),t,e.move===`next_turn`?1:-1):e.move===`segment_start`||e.move===`segment_end`?s={...t,tokenIdx:e.move===`segment_start`?0:X(C).length-1}:e.move===`anchor`?s=X(u):X(Te)&&(s={...t,seg:X(Te),tokenIdx:0}),!s))throw new Ln(`NOT_FOUND`,`There is no token in that direction.`);(e.cursor||s)&&(U(d,s??{...t},!0),await Ke()),e.branch!==void 0&&U(f,r,!0),e.tab!==void 0&&(A_.tab=e.tab),o?.geometry!==void 0&&U(ct,o.geometry,!0),o?.lens!==void 0&&U(z,o.lens,!0),o?.sae!==void 0&&U(st,o.sae,!0),await Ke(),e.presentation===`hide`?c():(e.presentation===`dock`&&!n()||e.presentation===`drawer`&&n())&&l()}})});var _t=bb();$e(`keydown`,rt,De);let vt;var xt=q(_t),St=q(xt),Ct=q(St),wt=e=>{var t=rb();H(t,()=>({type:`button`,class:`dock-toggle`,"aria-pressed":n(),"aria-label":n()?`Undock token details`:`Dock token details`,"aria-description":n()?`Show token details in a window`:`Keep token details in a sidebar`,onclick:l}),void 0,void 0,void 0,`svelte-b6e72b`);var r=q(t),i=e=>{y_(e,{})},a=e=>{qn(e,{side:`right`})};K(r,e=>{n()?e(i):e(a,-1)}),F(t),I(e,t)};K(Ct,e=>{a()||e(wt)}),Dr(V(Ct,4),{onclick:c}),F(St);var Tt=V(St,2),Dt=q(Tt),Ot=e=>{var t=ub(),n=Q(t),r=q(n),i=q(r);{let e=G(()=>JSON.stringify(X(w).text)),t=G(()=>`${X(y).turnIdx}:${X(y).seg}:${X(y).tokenIdx}`);$(i,{get text(){return X(e)},numbers:!1,get identity(){return X(t)}})}F(r);var a=V(r,2);H(a,()=>({type:`button`,class:`kv-chip seg-chip`,disabled:!X(Te),onclick:Ee,"aria-description":X(Te)?`Show the ${X(Te)} tokens from this same turn.`:void 0}),void 0,void 0,void 0,`svelte-b6e72b`);var o=q(a),s=e=>{var t=Qe();W(()=>R(t,`Completion ${X(y).turnIdx??``}`)),I(e,t)},c=e=>{var t=Qe();W(()=>R(t,`turn ${X(y).turnIdx??``} · ${X(Ae)??``} · ${X(y).seg??``}`)),I(e,t)};K(o,e=>{E.info?.is_base_model?e(s):e(c,-1)}),F(a);var l=V(a,2),u=e=>{var t=ib();H(t,()=>({class:`kv-chip`,"aria-description":`This token’s ID in the model’s vocabulary.`}),void 0,void 0,void 0,`svelte-b6e72b`);var n=q(t);F(t),W(()=>R(n,`id ${X(w).tokenId??``}`)),I(e,t)};K(l,e=>{X(w).tokenId!=null&&e(u)});var d=V(l,2),f=e=>{var t=ab();H(t,()=>({class:`kv-chip`,"aria-description":`Position in the recorded generation, used to replay or branch from this token.`}),void 0,void 0,void 0,`svelte-b6e72b`);var n=q(t);F(t),W(()=>R(n,`raw ${X(w).rawIndex??``}`)),I(e,t)},p=e=>{var t=ob();H(t,()=>({class:`kv-chip warn`,"aria-description":`The generation record is missing, so this token cannot be replayed or branched.`}),void 0,void 0,void 0,`svelte-b6e72b`),I(e,t)};K(d,e=>{X(w).rawIndex==null?e(p,-1):e(f)});var m=V(d,2),h=e=>{var t=sb();H(t,()=>({class:`kv-chip`,"aria-description":`Probability after temperature and Top K / Top P filtering, not the model’s unmodified probability.`}),void 0,void 0,void 0,`svelte-b6e72b`);var n=V(q(t));{let e=G(()=>Me(Math.exp(X(w).logprob))),t=G(()=>`${X(y).turnIdx}:${X(y).seg}:${X(y).tokenIdx}`);$(n,{get text(){return X(e)},get identity(){return X(t)}})}var r=V(n,2);{let e=G(()=>X(w).logprob.toFixed(3)),t=G(()=>`${X(y).turnIdx}:${X(y).seg}:${X(y).tokenIdx}`);$(r,{get text(){return X(e)},get identity(){return X(t)}})}var i=V(r,1,!0);F(t),W(()=>R(i,X(je)===null?``:` · rank ${X(je)}/${X(w).topAlts?.length??0}`)),I(e,t)};K(m,e=>{X(w).logprob!=null&&e(h)}),F(n);var g=V(n,2),_=q(g),v=q(_),b=()=>be(-1);H(v,()=>({type:`button`,class:`scrub-btn`,disabled:!X(he),onclick:b,"aria-label":`Previous token`,"aria-description":`Inspect the previous token`}),void 0,void 0,void 0,`svelte-b6e72b`),Gn(q(v),{name:`back`}),F(v);var x=V(v,2),S=q(x);{let e=G(()=>`${X(y).tokenIdx+1} / ${X(C).length}`);$(S,{get text(){return X(e)}})}F(x);var T=V(x,2),D=()=>be(1);H(T,()=>({type:`button`,class:`scrub-btn`,disabled:!X(ge),onclick:D,"aria-label":`Next token`,"aria-description":`Inspect the next token`}),void 0,void 0,void 0,`svelte-b6e72b`),Gn(q(T),{name:`next`}),F(T),F(_);var O=V(_,2),k=q(O),A=()=>xe(-1);H(k,()=>({type:`button`,class:`scrub-btn`,disabled:!X(_e),onclick:A,"aria-label":`Previous turn`,"aria-description":`Inspect the previous turn`}),void 0,void 0,void 0,`svelte-b6e72b`),Gn(q(k),{name:`up`}),F(k);var j=V(k,2),M=q(j);{let e=G(()=>`turn ${X(y).turnIdx}`);$(M,{get text(){return X(e)}})}F(j);var N=V(j,2),ee=()=>xe(1);H(N,()=>({type:`button`,class:`scrub-btn`,disabled:!X(ve),onclick:ee,"aria-label":`Next turn`,"aria-description":`Inspect the next turn`}),void 0,void 0,void 0,`svelte-b6e72b`),Gn(q(N),{name:`down`}),F(N),F(O);var te=V(O,2),ne=e=>{var t=cb();Gn(q(t),{name:`return`}),F(t),B(`click`,t,we),I(e,t)};K(te,e=>{X(Ce)||e(ne)}),F(g);var P=V(g,2),re=q(P),ie=V(q(re),2);H(ie,()=>({class:`recipe-steering`,"aria-description":X(le)??`no steering`}),void 0,void 0,void 0,`svelte-b6e72b`);var ae=q(ie,!0);F(ie);var oe=V(ie,2);L(oe,16,()=>X(fe),e=>e,(e,t)=>{var n=lb(),r=q(n,!0);F(n),W(()=>R(r,t)),I(e,n)}),F(re),F(P),W(()=>R(ae,X(le)??`unsteered`)),I(e,t)},kt=e=>{var t=db(),n=q(t),r=q(n,!0);F(n),F(t),W(()=>R(r,X(s)?`Selected token unavailable`:`No token selected`)),I(e,t)};K(Dt,e=>{X(w)&&X(y)?e(Ot):e(kt,-1)}),F(Tt),F(xt);var At=V(xt,2),jt=e=>{var t=mb(),n=Q(t);H_(n,{get tokens(){return X(C)},get index(){return X(y).tokenIdx},onjump:e=>{X(y)&&U(d,{...X(y),tokenIdx:e},!0)}});var r=V(n,2),i=q(r),a=V(q(i),2),o=q(a);F(a),F(i);var s=V(i,2),c=q(s),l=()=>{X(M)?(U(M,!1),U(j,null)):P()};H(c,()=>({type:`button`,class:`secondary-action`,disabled:!X(k)||X(ee),"aria-description":X(k)?void 0:me.active?`Finish or stop the current generation first`:`This saved token does not have an exact replay boundary`,onclick:l}),void 0,void 0,void 0,`svelte-b6e72b`);var u=q(c,!0);F(c);var f=V(c,2),p=()=>void ae();H(f,()=>({type:`button`,class:`primary-action`,disabled:!X(O)||X(A),"aria-description":X(O)?void 0:me.active?`Finish or stop the current generation first`:`This saved token does not have an exact replay boundary`,onclick:p}),void 0,void 0,void 0,`svelte-b6e72b`);var m=q(f);{let e=G(()=>X(A)?`Starting…`:`Continue from here`);$(m,{get text(){return X(e)},numbers:!1})}F(f),F(s);var h=V(s,2),g=e=>{var t=fb(),n=V(q(t),2),r=q(n);ot(r),nt(r,e=>U(te,e),()=>X(te));var i=V(r,2),a=q(i);{let e=G(()=>X(ee)?`Starting…`:`Start branch`);$(a,{get text(){return X(e)},numbers:!1})}F(i),F(n),Ze(2),F(t),W(()=>i.disabled=!X(k)||X(ee)||X(N).length===0),$e(`submit`,t,e=>{e.preventDefault(),re()}),at(r,()=>X(N),e=>U(N,e)),I(e,t)};K(h,e=>{X(M)&&e(g)});var _=V(h,2),v=e=>{var t=pb(),n=q(t,!0);F(t),W(()=>R(n,X(j))),I(e,t)};K(_,e=>{X(j)&&e(v)}),F(r),W(()=>{R(o,`Keep the text up to here and write a new ending. Your original ${E.info?.is_base_model?`completion`:`response`} stays saved.`),R(u,X(M)?`Cancel replacement`:`Replace token…`)}),I(e,t)};K(At,e=>{X(w)&&X(y)&&e(jt)});var Mt=V(At,2),Nt=q(Mt);qg(Nt,{get items(){return X(Ne)},ariaLabel:`Token detail view`,get value(){return A_.tab},set value(e){A_.tab=e}});var Pt=V(Nt,2),Ft=e=>{qg(e,{get items(){return h},ariaLabel:`Token branch`,get value(){return X(f)},set value(e){U(f,e,!0)}})};K(Pt,e=>{X(Fe)&&e(Ft)}),F(Mt);var It=V(Mt,2),Lt=q(It);ze(Lt,()=>X(Ye),e=>{var t=yb(),n=q(t),r=e=>{var t=hb();t.textContent=`Geometry token replay is unavailable in this runtime. Geometry captured during generation can still be inspected.`,I(e,t)},i=e=>{var t=gb();t.textContent=`J-lens token replay is unavailable in this runtime. J-lens data captured during generation can still be inspected.`,I(e,t)},a=e=>{var t=_b();t.textContent=`SAE token replay is unavailable in this runtime. Sparse-feature data captured during generation can still be inspected.`,I(e,t)};K(n,e=>{X(w)&&X(y)&&A_.tab===`geometry`&&!X(Ue)&&(X(lt)||X(mt))?e(r):X(w)&&X(y)&&A_.tab===`lens`&&!X(Ve)&&(X(Le)||X(ft))?e(i,1):X(w)&&X(y)&&A_.tab===`sae`&&!X(He)&&(X(Re)||X(pt))&&e(a,2)});var o=V(n,2),c=e=>{var t=vb(),n=q(t,!0);F(t),W(()=>R(n,X(s)?`This token is no longer available. Select another token to inspect it.`:`Select a token in your conversation or Loom to see its full details here.`)),I(e,t)},l=e=>{{let t=G(()=>({turnIdx:X(y).turnIdx,tokenIdx:X(y).tokenIdx,isThinking:X(y).seg===`thinking`}));Gv(e,{get readout(){return Je},get returnToToken(){return X(t)},get hasGeometryProbes(){return X(lt)},get hasReplayContext(){return X(D)},get replayAvailable(){return X(Ue)},get steered(){return X(ct)},set steered(e){U(ct,e,!0)}})}},u=e=>{ty(e,{get token(){return X(w)},get nodeId(){return X(T)}})},d=e=>{Ly(e,{get readout(){return qe},get saeLoaded(){return X(Re)},get availability(){return X(Be)},get hasReplayContext(){return X(D)},get pinned(){return X(dt)},get replayAvailable(){return X(He)},get steered(){return X(st)},set steered(e){U(st,e,!0)}})},f=e=>{{let t=G(()=>E.info?.model_id??null);eb(e,{get readout(){return Ge},get jlensFitted(){return X(Le)},get hasReplayContext(){return X(D)},get pinned(){return X(ut)},get modelId(){return X(t)},get replayAvailable(){return X(Ve)},get steered(){return X(z)},set steered(e){U(z,e,!0)}})}};K(o,e=>{!X(w)||!X(y)?e(c):A_.tab===`geometry`?e(l,1):A_.tab===`logits`?e(u,2):A_.tab===`sae`?e(d,3):e(f,-1)}),F(t),Xe(1,t,()=>To),I(e,t)}),F(It),F(_t),nt(_t,e=>U(o,e),()=>X(o)),W(()=>{J(_t,`data-morph-snapshot`,X(y)?`${X(y).turnIdx}:${X(y).seg}:${X(y).tokenIdx}`:`none`),vt=tt(_t,1,`drawer svelte-b6e72b`,null,vt,{docked:n()||a(),mobile:a()})}),I(e,_t),Et()}Ge([`click`]);var Sb=z(`<p class="error svelte-1yqeqxz" role="alert"> </p>`),Cb=z(`<textarea class="yaml svelte-1yqeqxz" readonly="" rows="20" aria-label="Rendered transcript YAML"></textarea> <div class="form-actions svelte-1yqeqxz"><button type="button" class="btn svelte-1yqeqxz" data-cursor="copy"><span role="status"><!></span></button> <button type="button" class="btn primary svelte-1yqeqxz">download .yaml</button></div>`,1),wb=z(`<div id="transcript-export-panel" class="tab-panel svelte-1yqeqxz" role="tabpanel" aria-labelledby="transcript-export-tab" tabindex="0"><p class="hint svelte-1yqeqxz">Export the active conversation path, or end at a specific node.</p> <label class="field svelte-1yqeqxz"><span class="label svelte-1yqeqxz">end at node <span class="optional svelte-1yqeqxz">optional</span></span> <input type="text" class="input svelte-1yqeqxz" autocomplete="off" spellcheck="false"/></label> <div class="form-actions svelte-1yqeqxz"><button type="button" class="btn primary svelte-1yqeqxz"><!></button></div> <!> <!></div>`),Tb=z(`<p class="error svelte-1yqeqxz" role="alert"> </p>`),Eb=z(`<li> </li>`),Db=z(`<div class="banner svelte-1yqeqxz"><span class="banner-title svelte-1yqeqxz">guards</span> <ul class="svelte-1yqeqxz"></ul> <p class="hint svelte-1yqeqxz">saved as root notes</p></div>`),Ob=z(`<p class="ok svelte-1yqeqxz">imported · leaf <code> </code></p>`),kb=z(`<div id="transcript-import-panel" class="tab-panel svelte-1yqeqxz" role="tabpanel" aria-labelledby="transcript-import-tab" tabindex="0"><p class="hint svelte-1yqeqxz">Import a Drowse transcript from a local YAML file or pasted text.</p> <div class="field svelte-1yqeqxz" role="radiogroup" aria-labelledby="import-mode-label"><span class="label svelte-1yqeqxz" id="import-mode-label">place imported turns</span> <!> <!> <!></div> <span class="mode-opt svelte-1yqeqxz"><!></span> <label class="field svelte-1yqeqxz"><span class="label svelte-1yqeqxz">file</span> <input type="file" accept=".yaml,.yml,application/x-yaml,text/yaml"/></label> <textarea class="yaml svelte-1yqeqxz" rows="14" placeholder="paste transcript YAML here…" spellcheck="false" aria-label="Transcript YAML to import"></textarea> <div class="form-actions svelte-1yqeqxz"><button type="button" class="btn primary svelte-1yqeqxz"><!></button></div> <!> <!> <!></div>`),Ab=z(`<section class="drawer-shell svelte-1yqeqxz" aria-label="Transcript drawer"><header class="header svelte-1yqeqxz"><h2 class="title svelte-1yqeqxz">Conversation transcript</h2> <div class="tabs svelte-1yqeqxz" role="tablist" aria-label="Transcript action"><button id="transcript-export-tab" type="button" role="tab" aria-controls="transcript-export-panel">export</button> <button id="transcript-import-tab" type="button" role="tab" aria-controls="transcript-import-panel">import</button></div> <!></header> <div class="body svelte-1yqeqxz"><!></div> <footer class="footer svelte-1yqeqxz"><button type="button" class="btn svelte-1yqeqxz">close</button></footer></section>`);function jb(e,t){it(t,!0),lt(t,[`$$slots`,`$$events`,`$$legacy`]),bt(()=>{t.params});let n=Y(`export`);function r(e){U(n,e,!0)}function i(e){let t=[`export`,`import`],i=t.indexOf(X(n)),a=i;if(e.key===`ArrowRight`)a=(i+1)%t.length;else if(e.key===`ArrowLeft`)a=(i-1+t.length)%t.length;else if(e.key===`Home`)a=0;else if(e.key===`End`)a=t.length-1;else return;e.preventDefault(),r(t[a]),document.getElementById(`transcript-${t[a]}-tab`)?.focus()}let a=Y(``),o=Y(``),s=Y(null),c=Y(!1),u=Y(null);async function d(){if(!X(c)){U(c,!0),U(s,null),U(o,``),U(u,null);try{let e=X(a).trim(),t=null;if(e){let n=h(e);if(n.id)t=n.id;else if(n.matches.length===0){U(s,`no node matches prefix "${e}"`);return}else{let e=n.matches.slice(0,6).map(e=>e.slice(0,8)).join(`, `);U(s,`ambiguous: ${n.matches.length} matches (${e}`+(n.matches.length>6?`, …`:``)+`)`);return}}let n=await l.transcriptExport(t);U(o,n.yaml,!0),U(u,n.node_id,!0)}catch(e){U(s,An(e),!0)}finally{U(c,!1)}}}function f(){if(!X(o))return;let e=new Blob([X(o)],{type:`application/yaml;charset=utf-8`}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`drowse-transcript-${X(u)?X(u).slice(0,8):`active`}.yaml`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(t)}let p=Y(!1);bt(()=>{if(!X(p))return;let e=setTimeout(()=>U(p,!1),1800);return()=>clearTimeout(e)});async function m(){if(X(o))try{await navigator.clipboard.writeText(X(o)),U(p,!0)}catch{U(s,`Could not copy. Select the YAML above and copy it manually.`)}}function h(e){let t=e.trim();if(!t)return{id:null,matches:[]};if(t===`root`){let e=Ie.root_id;return e?{id:e,matches:[e]}:{id:null,matches:[]}}let n=[];for(let e of Ie.nodes.keys()){if(e===t)return{id:e,matches:[e]};e.startsWith(t)&&n.push(e)}return n.length===1?{id:n[0],matches:n}:{id:null,matches:n}}let g=Y(``),_=Y(`default`),v=Y(!1),y=Y(null),b=Y(!1),x=Y(pt([])),S=Y(null),C=Y(null);async function w(e){let t=e.target.files?.[0];t&&U(g,await t.text(),!0)}async function T(){if(X(b))return;let e=X(g).trim();if(!e)U(y,`paste a transcript YAML or upload a file`);else{U(b,!0),U(y,null),U(x,[],!0),U(S,null);try{let t=await l.transcriptLoad(e,X(_),X(v));U(x,t.guards,!0),U(S,t.leaf_id,!0),await M()}catch(e){U(y,An(e),!0)}finally{U(b,!1)}}}var E=Ab(),D=q(E),O=V(q(D),2),k=q(O);let A;var j=V(k,2);let N;F(O),Tt(O,e=>kr?.(e)),Dr(V(O,2),{get onclick(){return ar}}),F(D);var ee=V(D,2),te=q(ee),ne=e=>{var t=wb(),n=V(q(t),2),r=V(q(n),2);ot(r),F(n);var i=V(n,2),l=q(i),u=q(l);{let e=G(()=>X(c)?`preparing…`:`preview YAML`);$(u,{get text(){return X(e)}})}F(l),F(i);var h=V(i,2),g=e=>{var t=Sb(),n=q(t,!0);F(t),W(()=>R(n,X(s))),I(e,t)};K(h,e=>{X(s)&&e(g)});var _=V(h,2),v=e=>{var t=Cb(),n=Q(t);_t(n);var r=V(n,2),i=q(r),a=q(i),s=q(a);{let e=G(()=>X(p)?`Copied`:`Copy`);$(s,{get text(){return X(e)},numbers:!1})}F(a),F(i);var c=V(i,2);F(r),W(()=>ct(n,X(o))),B(`click`,i,m),B(`click`,c,f),I(e,t)};K(_,e=>{X(o)&&e(v)}),F(t),W(e=>{J(r,`placeholder`,e),l.disabled=X(c)},[()=>`Active node · ${Ie.active_node_id?.slice(0,12)??`-`}`]),at(r,()=>X(a),e=>U(a,e)),B(`click`,l,d),I(e,t)},P=e=>{var t=kb(),n=V(q(t),2),r=V(q(n),2);ss(r,{value:`default`,label:`start a new path at the root`,get group(){return X(_)},set group(e){U(_,e,!0)}});var i=V(r,2);ss(i,{value:`here`,label:`continue from the active node`,get group(){return X(_)},set group(e){U(_,e,!0)}}),ss(V(i,2),{value:`merge`,label:`merge after the deepest matching turn`,get group(){return X(_)},set group(e){U(_,e,!0)}}),F(n);var a=V(n,2);zo(q(a),{label:`Require matching reading settings`,get checked(){return X(v)},set checked(e){U(v,e,!0)}}),F(a);var o=V(a,2),s=V(q(o),2);nt(s,e=>U(C,e),()=>X(C)),F(o);var c=V(o,2);_t(c);var l=V(c,2),u=q(l),d=q(u);{let e=G(()=>X(b)?`importing…`:`import`);$(d,{get text(){return X(e)}})}F(u),F(l);var f=V(l,2),p=e=>{var t=Tb(),n=q(t,!0);F(t),W(()=>R(n,X(y))),I(e,t)};K(f,e=>{X(y)&&e(p)});var m=V(f,2),h=e=>{var t=Db(),n=V(q(t),2);L(n,20,()=>X(x),e=>e,(e,t)=>{var n=Eb(),r=q(n,!0);F(n),W(()=>R(r,t)),I(e,n)}),F(n),Ze(2),F(t),I(e,t)};K(m,e=>{X(x).length>0&&e(h)});var E=V(m,2),D=e=>{var t=Ob(),n=V(q(t)),r=q(n,!0);F(n),F(t),W(e=>R(r,e),[()=>X(S).slice(0,12)]),I(e,t)};K(E,e=>{X(S)&&!X(y)&&e(D)}),F(t),W(()=>u.disabled=X(b)),B(`change`,s,w),at(c,()=>X(g),e=>U(g,e)),B(`click`,u,T),I(e,t)};K(te,e=>{X(n)===`export`?e(ne):e(P,-1)}),F(ee);var re=V(ee,2),ie=q(re);F(re),F(E),W(()=>{A=tt(k,1,`tab svelte-1yqeqxz`,null,A,{active:X(n)===`export`}),J(k,`aria-selected`,X(n)===`export`),J(k,`tabindex`,X(n)===`export`?0:-1),N=tt(j,1,`tab svelte-1yqeqxz`,null,N,{active:X(n)===`import`}),J(j,`aria-selected`,X(n)===`import`),J(j,`tabindex`,X(n)===`import`?0:-1)}),B(`click`,k,()=>r(`export`)),B(`keydown`,k,i),B(`click`,j,()=>r(`import`)),B(`keydown`,j,i),B(`click`,ie,function(...e){ar?.apply(this,e)}),I(e,E),Et()}Ge([`click`,`keydown`,`change`]);var Mb=[{key:`manifolds`,label:`Shape responses`},{key:`analysis`,label:`Understand responses`},{key:`session`,label:`Settings and help`}],Nb={appearance:{component:Zc,narrow:!0,launcher:{group:`session`,label:`Appearance…`,keywords:`theme background wallpaper image pixel dither`}},surface_geometry:{component:ip,narrow:!0,launcher:{group:`analysis`,label:`Inspect surface geometry…`,keywords:`topology manifold Klein bottle projective plane sphere torus`}},manifold_builder:{component:mc,narrow:!0,launcher:{group:`manifolds`,label:`Create a concept or scale…`,keywords:`extract author create concept vector fit`}},manifold_merge:{component:dp,launcher:{group:`manifolds`,label:`Combine response controls…`,keywords:`union corpora`}},manifold_pack:{component:Up,launcher:{group:`manifolds`,label:`Manage downloaded controls…`,keywords:`pack packs install search huggingface hub catalog`}},template_lab:{component:__,launcher:{group:`manifolds`,label:`Test prompt templates…`,keywords:`score completion slot restricted choice`}},cast:{component:ol,launcher:{group:`manifolds`,label:`Role settings…`,keywords:`role behavior guidance speaker`}},correlation:{component:Ll,launcher:{group:`analysis`,label:`Compare saved readings…`,keywords:`cosine similarity vectors`}},compare:{component:Tl,launcher:{group:`analysis`,label:`Compare controls by layer…`,keywords:`cross-layer cosine`}},health:{component:ru,launcher:{group:`session`,label:`Model health…`,keywords:`device dtype`}},session_admin:{component:Lg,launcher:{group:`session`,label:`API access…`,keywords:`auth api key bearer`}},local_runtime:{component:Qf,launcher:{group:`session`,label:`Model settings…`,keywords:`local device model storage gpu webgpu offline delete unload switch diagnostics`}},help:{component:cu,launcher:{group:`session`,label:`Help and shortcuts…`,keywords:`keyboard grammar cheatsheet`}},feedback:{component:Cu,narrow:!0,launcher:{group:`session`,label:`Submit Feedback…`,keywords:`contact support bug suggestion feedback`}},subspace:{component:hg,params:{family:`subspace`},narrow:!0,launcher:null,via:`the steering and probe racks' "+ add" buttons`},manifolds:{component:hg,params:{family:`manifold`},narrow:!0,launcher:null,via:`the steering and probe racks' "+ add" buttons`},save_conversation:{component:wg,narrow:!0,launcher:{group:`session`,label:`Save current chat…`,keywords:`conversation name local storage backup`}},download_chat:{component:jg,narrow:!0,launcher:null,via:`the workbench header download button`},load_conversation:{component:Xf,narrow:!0,launcher:{group:`session`,label:`Saved chats…`,keywords:`conversation library open rename avatar delete import backup`}},system_prompt:{component:Bg,narrow:!0,launcher:null,via:`the sampling strip's system-prompt button`},advanced_sampling:{component:bc,launcher:null,via:`the sampling strip's advanced button`},token_drilldown:{component:xb,launcher:null,via:`selecting a transcript or raw-buffer token`},probe_inspector:{component:mh,launcher:null,via:`a probe card's ⓘ button`},node_compare:{component:ym,launcher:null,via:`the loom sidebar's compare actions`},transcript:{component:jb,launcher:{group:`analysis`,label:`Conversation transcript…`,keywords:`transcript export import yaml conversation`}}};function Pb(e,t){let n=Nb[e].params;return n?{...t,...n}:t}var Fb=Mb.map(e=>{let t=[];for(let[n,r]of Object.entries(Nb))r.launcher===null||r.launcher.group!==e.key||d.mode===`http`&&n===`local_runtime`||d.mode!==`http`&&n===`health`||d.mode!==`http`&&n===`session_admin`||!j(n).available||t.push({label:r.launcher.label,drawer:n,keywords:r.launcher.keywords});return{key:e.key,label:e.label,tools:t}});export{So as $,Rl as A,mc as B,Cf as C,Xn as Ct,Yl as D,Gn as Dt,Jl as E,qn as Et,Gc as F,Io as G,Ko as H,Mc as I,Eo as J,Mo as K,Dc as L,Hc as M,Kc as N,Gl as O,Hn as Ot,Wc as P,xo as Q,Cc as R,Tf as S,Zn as St,Kl as T,Yn as Tt,Uo as U,zs as V,zo as W,Co as X,Do as Y,wo as Z,Xm as _,tr as _t,av as a,po as at,bm as b,ir as bt,Y_ as c,lo as ct,I_ as d,Nr as dt,go as et,qg as f,kr as ft,Ym as g,ar as gt,bh as h,Tr as ht,xb as i,vo as it,Lc as j,zl as k,W_ as l,uo as lt,Sh as m,Cr as mt,Fb as n,bo as nt,rv as o,mo as ot,wg as p,wr as pt,ko as q,Pb as r,_o as rt,tv as s,co as st,Nb as t,yo as tt,N_ as u,$ as ut,Em as v,Jn as vt,Tu as w,er as wt,wf as x,Qn as xt,xm as y,nr as yt,gc as z};