@yadsh/dsh-qa-surface 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. package/README.md +194 -9
  2. package/compatibility.json +10 -1
  3. package/cordis.patch.yml +9 -0
  4. package/lib/account-remotes.js +10 -0
  5. package/lib/account-remotes.js.map +1 -1
  6. package/lib/accounts/errors.js.map +1 -1
  7. package/lib/accounts/file.js.map +1 -1
  8. package/lib/accounts/store.js +22 -0
  9. package/lib/accounts/store.js.map +1 -1
  10. package/lib/client/QaAccountsController.js +29 -0
  11. package/lib/client/QaAccountsController.js.map +1 -1
  12. package/lib/client/QaSessionController.js +168 -48
  13. package/lib/client/QaSessionController.js.map +1 -1
  14. package/lib/client/QaSurface.js +125 -56
  15. package/lib/client/QaSurface.js.map +1 -1
  16. package/lib/client/QaSurfaceGuard.js +96 -0
  17. package/lib/client/QaSurfaceGuard.js.map +1 -0
  18. package/lib/client/QaTranscriptAdapter.js +11 -5
  19. package/lib/client/QaTranscriptAdapter.js.map +1 -1
  20. package/lib/client/components/QaChangelog.js +31 -0
  21. package/lib/client/components/QaChangelog.js.map +1 -1
  22. package/lib/client/components/QaComposer.js +1 -1
  23. package/lib/client/components/QaComposer.js.map +1 -1
  24. package/lib/client/components/QaHeader.js +2 -8
  25. package/lib/client/components/QaHeader.js.map +1 -1
  26. package/lib/client/components/QaMessage.js +20 -7
  27. package/lib/client/components/QaMessage.js.map +1 -1
  28. package/lib/client/components/QaModal.js +24 -6
  29. package/lib/client/components/QaModal.js.map +1 -1
  30. package/lib/client/components/QaSidebar.js +2 -6
  31. package/lib/client/components/QaSidebar.js.map +1 -1
  32. package/lib/client/components/QaSourcesPanel.js +6 -5
  33. package/lib/client/components/QaSourcesPanel.js.map +1 -1
  34. package/lib/client/components/QaWidthHandle.js +21 -1
  35. package/lib/client/components/QaWidthHandle.js.map +1 -1
  36. package/lib/client/components/surface-utils.js +2 -0
  37. package/lib/client/components/surface-utils.js.map +1 -1
  38. package/lib/client/index.js +72 -24
  39. package/lib/client/index.js.map +1 -1
  40. package/lib/client/panels/PanelHost.js +209 -0
  41. package/lib/client/panels/PanelHost.js.map +1 -0
  42. package/lib/client/panels/PanelLauncher.js +39 -0
  43. package/lib/client/panels/PanelLauncher.js.map +1 -0
  44. package/lib/client/panels/contract.js +2 -0
  45. package/lib/client/panels/contract.js.map +1 -0
  46. package/lib/client/panels/index.js +2 -0
  47. package/lib/client/panels/index.js.map +1 -0
  48. package/lib/client/panels/registry.js +171 -0
  49. package/lib/client/panels/registry.js.map +1 -0
  50. package/lib/client/project-session-state.js +3 -0
  51. package/lib/client/project-session-state.js.map +1 -1
  52. package/lib/client/settings/card.js +2 -2
  53. package/lib/client/settings/card.js.map +1 -1
  54. package/lib/client/settings/sections/accounts.js +3 -1
  55. package/lib/client/settings/sections/accounts.js.map +1 -1
  56. package/lib/client/settings/sections/documents.js +88 -0
  57. package/lib/client/settings/sections/documents.js.map +1 -0
  58. package/lib/client/settings/sections/interface.js +2 -0
  59. package/lib/client/settings/sections/interface.js.map +1 -1
  60. package/lib/client/settings/sections.js +1 -0
  61. package/lib/client/settings/sections.js.map +1 -1
  62. package/lib/client/settings-extensions/contract.js +2 -0
  63. package/lib/client/settings-extensions/contract.js.map +1 -0
  64. package/lib/client/settings-extensions/index.js +2 -0
  65. package/lib/client/settings-extensions/index.js.map +1 -0
  66. package/lib/client/settings-extensions/registry.js +63 -0
  67. package/lib/client/settings-extensions/registry.js.map +1 -0
  68. package/lib/client/settlement.js +51 -5
  69. package/lib/client/settlement.js.map +1 -1
  70. package/lib/client/source-preview.js +24 -0
  71. package/lib/client/source-preview.js.map +1 -0
  72. package/lib/client/styles.js +157 -32
  73. package/lib/client/styles.js.map +1 -1
  74. package/lib/client/subagent-codenames.js +109 -0
  75. package/lib/client/subagent-codenames.js.map +1 -0
  76. package/lib/client/types.js +1 -0
  77. package/lib/client/types.js.map +1 -1
  78. package/lib/client/user-settings/GeneralSettingsPage.js +13 -0
  79. package/lib/client/user-settings/GeneralSettingsPage.js.map +1 -0
  80. package/lib/client/user-settings/ProfileSettingsPage.js +59 -0
  81. package/lib/client/user-settings/ProfileSettingsPage.js.map +1 -0
  82. package/lib/client/user-settings/SkillCatalog.js +23 -0
  83. package/lib/client/user-settings/SkillCatalog.js.map +1 -0
  84. package/lib/client/user-settings/SkillEditor.js +89 -0
  85. package/lib/client/user-settings/SkillEditor.js.map +1 -0
  86. package/lib/client/user-settings/SkillToolPicker.js +58 -0
  87. package/lib/client/user-settings/SkillToolPicker.js.map +1 -0
  88. package/lib/client/user-settings/SkillsSettingsPage.js +171 -0
  89. package/lib/client/user-settings/SkillsSettingsPage.js.map +1 -0
  90. package/lib/client/user-settings/StartersSettingsPage.js +78 -0
  91. package/lib/client/user-settings/StartersSettingsPage.js.map +1 -0
  92. package/lib/client/user-settings/UserSettingsDialog.js +50 -0
  93. package/lib/client/user-settings/UserSettingsDialog.js.map +1 -0
  94. package/lib/client/user-settings/copy.js +84 -0
  95. package/lib/client/user-settings/copy.js.map +1 -0
  96. package/lib/client/user-settings/draft.js +127 -0
  97. package/lib/client/user-settings/draft.js.map +1 -0
  98. package/lib/client/user-settings/fields.js +24 -0
  99. package/lib/client/user-settings/fields.js.map +1 -0
  100. package/lib/client.js +5467 -1379
  101. package/lib/client.js.map +1 -1
  102. package/lib/config-resolvers/accounts.js +30 -0
  103. package/lib/config-resolvers/accounts.js.map +1 -1
  104. package/lib/config-resolvers/defaults.js +23 -0
  105. package/lib/config-resolvers/defaults.js.map +1 -1
  106. package/lib/config-resolvers/tools.js +37 -0
  107. package/lib/config-resolvers/tools.js.map +1 -0
  108. package/lib/config-resolvers/ui.js +2 -0
  109. package/lib/config-resolvers/ui.js.map +1 -1
  110. package/lib/config.js +288 -0
  111. package/lib/config.js.map +1 -1
  112. package/lib/documents/artifacts/ids.js +43 -0
  113. package/lib/documents/artifacts/ids.js.map +1 -0
  114. package/lib/documents/artifacts/manifest.js +66 -0
  115. package/lib/documents/artifacts/manifest.js.map +1 -0
  116. package/lib/documents/artifacts/store.js +169 -0
  117. package/lib/documents/artifacts/store.js.map +1 -0
  118. package/lib/documents/capabilities.js +93 -0
  119. package/lib/documents/capabilities.js.map +1 -0
  120. package/lib/documents/config.js +302 -0
  121. package/lib/documents/config.js.map +1 -0
  122. package/lib/documents/defaults.js +78 -0
  123. package/lib/documents/defaults.js.map +1 -0
  124. package/lib/documents/errors.js +101 -0
  125. package/lib/documents/errors.js.map +1 -0
  126. package/lib/documents/index.js +80 -0
  127. package/lib/documents/index.js.map +1 -0
  128. package/lib/documents/inspect/facts.js +161 -0
  129. package/lib/documents/inspect/facts.js.map +1 -0
  130. package/lib/documents/inspect/zip.js +108 -0
  131. package/lib/documents/inspect/zip.js.map +1 -0
  132. package/lib/documents/markdown/directives.js +135 -0
  133. package/lib/documents/markdown/directives.js.map +1 -0
  134. package/lib/documents/markdown/frontmatter.js +35 -0
  135. package/lib/documents/markdown/frontmatter.js.map +1 -0
  136. package/lib/documents/markdown/normalize.js +113 -0
  137. package/lib/documents/markdown/normalize.js.map +1 -0
  138. package/lib/documents/orchestrator/assets.js +243 -0
  139. package/lib/documents/orchestrator/assets.js.map +1 -0
  140. package/lib/documents/orchestrator/convert-document.js +186 -0
  141. package/lib/documents/orchestrator/convert-document.js.map +1 -0
  142. package/lib/documents/orchestrator/create-document.js +292 -0
  143. package/lib/documents/orchestrator/create-document.js.map +1 -0
  144. package/lib/documents/orchestrator/extract-document.js +162 -0
  145. package/lib/documents/orchestrator/extract-document.js.map +1 -0
  146. package/lib/documents/orchestrator/inspect-document.js +89 -0
  147. package/lib/documents/orchestrator/inspect-document.js.map +1 -0
  148. package/lib/documents/orchestrator/runtime-deps.js +59 -0
  149. package/lib/documents/orchestrator/runtime-deps.js.map +1 -0
  150. package/lib/documents/orchestrator/scope.js +132 -0
  151. package/lib/documents/orchestrator/scope.js.map +1 -0
  152. package/lib/documents/providers/docling.js +247 -0
  153. package/lib/documents/providers/docling.js.map +1 -0
  154. package/lib/documents/providers/libreoffice.js +130 -0
  155. package/lib/documents/providers/libreoffice.js.map +1 -0
  156. package/lib/documents/providers/markitdown.js +89 -0
  157. package/lib/documents/providers/markitdown.js.map +1 -0
  158. package/lib/documents/providers/pandoc.js +161 -0
  159. package/lib/documents/providers/pandoc.js.map +1 -0
  160. package/lib/documents/providers/process.js +164 -0
  161. package/lib/documents/providers/process.js.map +1 -0
  162. package/lib/documents/providers/registry.js +152 -0
  163. package/lib/documents/providers/registry.js.map +1 -0
  164. package/lib/documents/providers/shared.js +75 -0
  165. package/lib/documents/providers/shared.js.map +1 -0
  166. package/lib/documents/runtime.js +114 -0
  167. package/lib/documents/runtime.js.map +1 -0
  168. package/lib/documents/security/file-types.js +188 -0
  169. package/lib/documents/security/file-types.js.map +1 -0
  170. package/lib/documents/security/limits.js +78 -0
  171. package/lib/documents/security/limits.js.map +1 -0
  172. package/lib/documents/security/mime.js +43 -0
  173. package/lib/documents/security/mime.js.map +1 -0
  174. package/lib/documents/security/paths.js +133 -0
  175. package/lib/documents/security/paths.js.map +1 -0
  176. package/lib/documents/templates/registry.js +147 -0
  177. package/lib/documents/templates/registry.js.map +1 -0
  178. package/lib/documents/templates/resolver.js +59 -0
  179. package/lib/documents/templates/resolver.js.map +1 -0
  180. package/lib/documents/tools/convert.js +125 -0
  181. package/lib/documents/tools/convert.js.map +1 -0
  182. package/lib/documents/tools/create.js +187 -0
  183. package/lib/documents/tools/create.js.map +1 -0
  184. package/lib/documents/tools/index.js +41 -0
  185. package/lib/documents/tools/index.js.map +1 -0
  186. package/lib/documents/tools/inspect.js +135 -0
  187. package/lib/documents/tools/inspect.js.map +1 -0
  188. package/lib/documents/tools/shared.js +88 -0
  189. package/lib/documents/tools/shared.js.map +1 -0
  190. package/lib/documents/tools/to-markdown.js +125 -0
  191. package/lib/documents/tools/to-markdown.js.map +1 -0
  192. package/lib/documents/types.js +12 -0
  193. package/lib/documents/types.js.map +1 -0
  194. package/lib/index.js +225 -20
  195. package/lib/index.js.map +1 -1
  196. package/lib/integration-principals.js +22 -0
  197. package/lib/integration-principals.js.map +1 -0
  198. package/lib/lockdown-policy.js +15 -3
  199. package/lib/lockdown-policy.js.map +1 -1
  200. package/lib/personal-skills/errors.js +9 -0
  201. package/lib/personal-skills/errors.js.map +1 -0
  202. package/lib/personal-skills/host.js +80 -0
  203. package/lib/personal-skills/host.js.map +1 -0
  204. package/lib/personal-skills/index.js +10 -0
  205. package/lib/personal-skills/index.js.map +1 -0
  206. package/lib/personal-skills/paths.js +127 -0
  207. package/lib/personal-skills/paths.js.map +1 -0
  208. package/lib/personal-skills/provider.js +109 -0
  209. package/lib/personal-skills/provider.js.map +1 -0
  210. package/lib/personal-skills/remotes.js +40 -0
  211. package/lib/personal-skills/remotes.js.map +1 -0
  212. package/lib/personal-skills/service.js +686 -0
  213. package/lib/personal-skills/service.js.map +1 -0
  214. package/lib/personal-skills/skill-file.js +278 -0
  215. package/lib/personal-skills/skill-file.js.map +1 -0
  216. package/lib/personal-skills/skill-format.js +202 -0
  217. package/lib/personal-skills/skill-format.js.map +1 -0
  218. package/lib/personal-skills/watcher.js +96 -0
  219. package/lib/personal-skills/watcher.js.map +1 -0
  220. package/lib/profile.js +6 -4
  221. package/lib/profile.js.map +1 -1
  222. package/lib/prompt-notes.js +19 -0
  223. package/lib/prompt-notes.js.map +1 -1
  224. package/lib/provenance/file-preview.js +68 -21
  225. package/lib/provenance/file-preview.js.map +1 -1
  226. package/lib/provenance/host-store.js +44 -11
  227. package/lib/provenance/host-store.js.map +1 -1
  228. package/lib/provenance/index.js +1 -0
  229. package/lib/provenance/index.js.map +1 -1
  230. package/lib/provenance/normalize.js +3 -1
  231. package/lib/provenance/normalize.js.map +1 -1
  232. package/lib/provenance/snapshot-store.js +154 -0
  233. package/lib/provenance/snapshot-store.js.map +1 -0
  234. package/lib/qa-tools/activation-detector.js +53 -0
  235. package/lib/qa-tools/activation-detector.js.map +1 -0
  236. package/lib/qa-tools/activation-manager.js +111 -0
  237. package/lib/qa-tools/activation-manager.js.map +1 -0
  238. package/lib/qa-tools/catalog.js +108 -0
  239. package/lib/qa-tools/catalog.js.map +1 -0
  240. package/lib/qa-tools/durable-marker.js +115 -0
  241. package/lib/qa-tools/durable-marker.js.map +1 -0
  242. package/lib/qa-tools/index.js +83 -0
  243. package/lib/qa-tools/index.js.map +1 -0
  244. package/lib/qa-tools/lifecycle.js +64 -0
  245. package/lib/qa-tools/lifecycle.js.map +1 -0
  246. package/lib/qa-tools/types.js +2 -0
  247. package/lib/qa-tools/types.js.map +1 -0
  248. package/lib/resolve-config.js +5 -0
  249. package/lib/resolve-config.js.map +1 -1
  250. package/lib/secure-session.js +35 -3
  251. package/lib/secure-session.js.map +1 -1
  252. package/lib/starters.js +117 -0
  253. package/lib/starters.js.map +1 -0
  254. package/lib/typert.host.js +767 -22
  255. package/lib/typert.remote-client.d.ts +17 -1
  256. package/lib/typert.remote-client.js +609 -17
  257. package/lib/types/account-remotes.d.ts +3 -1
  258. package/lib/types/accounts/errors.d.ts +1 -1
  259. package/lib/types/accounts/file.d.ts +10 -0
  260. package/lib/types/accounts/store.d.ts +7 -1
  261. package/lib/types/client/QaAccountsController.d.ts +7 -1
  262. package/lib/types/client/QaSessionController.d.ts +12 -0
  263. package/lib/types/client/QaSurface.d.ts +14 -4
  264. package/lib/types/client/QaSurfaceGuard.d.ts +27 -0
  265. package/lib/types/client/QaTranscriptAdapter.d.ts +7 -0
  266. package/lib/types/client/components/QaComposer.d.ts +3 -1
  267. package/lib/types/client/components/QaHeader.d.ts +3 -1
  268. package/lib/types/client/components/QaModal.d.ts +5 -4
  269. package/lib/types/client/components/QaSidebar.d.ts +8 -11
  270. package/lib/types/client/components/QaWidthHandle.d.ts +13 -0
  271. package/lib/types/client/index.d.ts +1 -0
  272. package/lib/types/client/panels/PanelHost.d.ts +18 -0
  273. package/lib/types/client/panels/PanelLauncher.d.ts +5 -0
  274. package/lib/types/client/panels/contract.d.ts +83 -0
  275. package/lib/types/client/panels/index.d.ts +3 -0
  276. package/lib/types/client/panels/registry.d.ts +40 -0
  277. package/lib/types/client/project-session-state.d.ts +5 -0
  278. package/lib/types/client/settings/sections/documents.d.ts +13 -0
  279. package/lib/types/client/settings/sections.d.ts +1 -0
  280. package/lib/types/client/settings-extensions/contract.d.ts +32 -0
  281. package/lib/types/client/settings-extensions/index.d.ts +3 -0
  282. package/lib/types/client/settings-extensions/registry.d.ts +15 -0
  283. package/lib/types/client/settlement.d.ts +41 -5
  284. package/lib/types/client/source-preview.d.ts +8 -0
  285. package/lib/types/client/styles.d.ts +2 -0
  286. package/lib/types/client/subagent-codenames.d.ts +18 -0
  287. package/lib/types/client/types.d.ts +35 -3
  288. package/lib/types/client/user-settings/GeneralSettingsPage.d.ts +14 -0
  289. package/lib/types/client/user-settings/ProfileSettingsPage.d.ts +18 -0
  290. package/lib/types/client/user-settings/SkillCatalog.d.ts +16 -0
  291. package/lib/types/client/user-settings/SkillEditor.d.ts +42 -0
  292. package/lib/types/client/user-settings/SkillToolPicker.d.ts +17 -0
  293. package/lib/types/client/user-settings/SkillsSettingsPage.d.ts +15 -0
  294. package/lib/types/client/user-settings/StartersSettingsPage.d.ts +14 -0
  295. package/lib/types/client/user-settings/UserSettingsDialog.d.ts +43 -0
  296. package/lib/types/client/user-settings/copy.d.ts +25 -0
  297. package/lib/types/client/user-settings/draft.d.ts +51 -0
  298. package/lib/types/client/user-settings/fields.d.ts +43 -0
  299. package/lib/types/config-resolvers/tools.d.ts +6 -0
  300. package/lib/types/documents/artifacts/ids.d.ts +14 -0
  301. package/lib/types/documents/artifacts/manifest.d.ts +32 -0
  302. package/lib/types/documents/artifacts/store.d.ts +67 -0
  303. package/lib/types/documents/capabilities.d.ts +32 -0
  304. package/lib/types/documents/config.d.ts +27 -0
  305. package/lib/types/documents/defaults.d.ts +161 -0
  306. package/lib/types/documents/errors.d.ts +42 -0
  307. package/lib/types/documents/index.d.ts +63 -0
  308. package/lib/types/documents/inspect/facts.d.ts +43 -0
  309. package/lib/types/documents/inspect/zip.d.ts +28 -0
  310. package/lib/types/documents/markdown/directives.d.ts +39 -0
  311. package/lib/types/documents/markdown/frontmatter.d.ts +15 -0
  312. package/lib/types/documents/markdown/normalize.d.ts +30 -0
  313. package/lib/types/documents/orchestrator/assets.d.ts +55 -0
  314. package/lib/types/documents/orchestrator/convert-document.d.ts +25 -0
  315. package/lib/types/documents/orchestrator/create-document.d.ts +18 -0
  316. package/lib/types/documents/orchestrator/extract-document.d.ts +24 -0
  317. package/lib/types/documents/orchestrator/inspect-document.d.ts +12 -0
  318. package/lib/types/documents/orchestrator/runtime-deps.d.ts +43 -0
  319. package/lib/types/documents/orchestrator/scope.d.ts +52 -0
  320. package/lib/types/documents/providers/docling.d.ts +54 -0
  321. package/lib/types/documents/providers/libreoffice.d.ts +40 -0
  322. package/lib/types/documents/providers/markitdown.d.ts +28 -0
  323. package/lib/types/documents/providers/pandoc.d.ts +42 -0
  324. package/lib/types/documents/providers/process.d.ts +54 -0
  325. package/lib/types/documents/providers/registry.d.ts +68 -0
  326. package/lib/types/documents/providers/shared.d.ts +27 -0
  327. package/lib/types/documents/runtime.d.ts +59 -0
  328. package/lib/types/documents/security/file-types.d.ts +39 -0
  329. package/lib/types/documents/security/limits.d.ts +24 -0
  330. package/lib/types/documents/security/mime.d.ts +13 -0
  331. package/lib/types/documents/security/paths.d.ts +38 -0
  332. package/lib/types/documents/templates/registry.d.ts +50 -0
  333. package/lib/types/documents/templates/resolver.d.ts +30 -0
  334. package/lib/types/documents/tools/convert.d.ts +9 -0
  335. package/lib/types/documents/tools/create.d.ts +14 -0
  336. package/lib/types/documents/tools/index.d.ts +33 -0
  337. package/lib/types/documents/tools/inspect.d.ts +9 -0
  338. package/lib/types/documents/tools/shared.d.ts +77 -0
  339. package/lib/types/documents/tools/to-markdown.d.ts +12 -0
  340. package/lib/types/documents/types.d.ts +294 -0
  341. package/lib/types/index.d.ts +75 -3
  342. package/lib/types/integration-principals.d.ts +9 -0
  343. package/lib/types/lockdown-policy.d.ts +12 -2
  344. package/lib/types/personal-skills/errors.d.ts +11 -0
  345. package/lib/types/personal-skills/host.d.ts +42 -0
  346. package/lib/types/personal-skills/index.d.ts +10 -0
  347. package/lib/types/personal-skills/paths.d.ts +39 -0
  348. package/lib/types/personal-skills/provider.d.ts +33 -0
  349. package/lib/types/personal-skills/remotes.d.ts +35 -0
  350. package/lib/types/personal-skills/service.d.ts +131 -0
  351. package/lib/types/personal-skills/skill-file.d.ts +64 -0
  352. package/lib/types/personal-skills/skill-format.d.ts +100 -0
  353. package/lib/types/personal-skills/watcher.d.ts +39 -0
  354. package/lib/types/profile.d.ts +13 -0
  355. package/lib/types/prompt-notes.d.ts +9 -0
  356. package/lib/types/provenance/file-preview.d.ts +47 -4
  357. package/lib/types/provenance/host-store.d.ts +7 -1
  358. package/lib/types/provenance/index.d.ts +1 -0
  359. package/lib/types/provenance/snapshot-store.d.ts +23 -0
  360. package/lib/types/qa-tools/activation-detector.d.ts +29 -0
  361. package/lib/types/qa-tools/activation-manager.d.ts +47 -0
  362. package/lib/types/qa-tools/catalog.d.ts +40 -0
  363. package/lib/types/qa-tools/durable-marker.d.ts +16 -0
  364. package/lib/types/qa-tools/index.d.ts +40 -0
  365. package/lib/types/qa-tools/lifecycle.d.ts +44 -0
  366. package/lib/types/qa-tools/types.d.ts +45 -0
  367. package/lib/types/secure-session.d.ts +24 -2
  368. package/lib/types/starters.d.ts +45 -0
  369. package/lib/types/types.d.ts +202 -3
  370. package/package.json +24 -11
  371. package/scripts/repair-session-events.mjs +260 -0
  372. package/lib/client/components/QaProfile.js +0 -64
  373. package/lib/client/components/QaProfile.js.map +0 -1
  374. package/lib/types/client/components/QaProfile.d.ts +0 -25
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Audience-facing copy for the settings dialog. The Host sends stable codes
3
+ * and never Russian prose, so every message a user reads is written here.
4
+ */
5
+ /** One message per diagnostic code; `detail` carries the offending value. */
6
+ export function diagnosticMessage(diagnostic) {
7
+ const detail = diagnostic.detail ?? "";
8
+ return DIAGNOSTIC_COPY[diagnostic.code](detail);
9
+ }
10
+ const DIAGNOSTIC_COPY = {
11
+ "name-required": () => "Укажите название навыка.",
12
+ "name-invalid": () => "Название может содержать только строчные латинские буквы, цифры и дефисы (до 64 символов).",
13
+ "name-mismatch": (detail) => `В файле указано имя «${detail}». Сохраните навык, чтобы имя файла и каталога совпали.`,
14
+ "description-required": () => "Добавьте описание: по нему ассистент понимает, когда применять навык.",
15
+ "description-too-long": (detail) => `Описание длиннее ${detail} символов — ассистент увидит только начало.`,
16
+ "when-to-use-too-long": (detail) => `Поле «Когда использовать» длиннее ${detail} символов.`,
17
+ "field-type-invalid": (detail) => detail === ""
18
+ ? "Одно из полей имеет неподдерживаемый тип и не будет сохранено."
19
+ : `Поле «${detail}» имеет неподдерживаемый тип и не будет сохранено.`,
20
+ "invocation-never": () => "Навык сейчас недоступен ни ассистенту, ни вам: включите хотя бы один вариант.",
21
+ "invocation-invalid": (detail) => `Поле «${detail}» должно быть true или false.`,
22
+ "invocation-legacy-key": (detail) => `Поле «${detail}» устарело и мешает DSH прочитать навык. Замените его на disable-model-invocation.`,
23
+ "allowed-tools-invalid": () => "Поле allowed-tools заполнено в неподдерживаемом формате. Перечислите инструменты через пробел.",
24
+ "tool-name-invalid": (detail) => `Редактор не распознал имена инструментов: ${detail}.`,
25
+ "tool-unavailable": (detail) => `Инструмент ${detail} сейчас недоступен в этой конфигурации. Он останется в файле.`,
26
+ "tools-too-many": (detail) => `В одном навыке можно указать не больше ${detail} инструментов.`,
27
+ "file-too-large": (detail) => `Файл навыка превышает предел ${detail} байт. Сократите инструкции.`,
28
+ "frontmatter-missing": () => "В файле нет блока frontmatter: без него DSH не увидит навык. Сохранение создаст его.",
29
+ "frontmatter-invalid": (detail) => detail === ""
30
+ ? "Не удалось разобрать frontmatter файла."
31
+ : `Не удалось разобрать frontmatter файла: ${detail}.`,
32
+ "skill-file-missing": () => "Файл SKILL.md отсутствует. Сохранение создаст его заново.",
33
+ "unknown-field": (detail) => `Поле «${detail}» незнакомо редактору и сохраняется как есть.`,
34
+ "resource-unsupported": (detail) => `Файл «${detail}» редактор не изменяет и сохраняет как есть.`,
35
+ };
36
+ /** Wire-safe failure reasons the Host may answer with. */
37
+ const REASON_COPY = {
38
+ "auth-required": "Сессия истекла. Войдите заново.",
39
+ "skills-disabled": "Навыки отключены на этом стенде.",
40
+ "skill-not-found": "Навык не найден: возможно, его удалили или переименовали.",
41
+ "skill-exists": "Навык с таким названием уже есть.",
42
+ "skill-conflict": "Навык был изменён в другом месте. Перезагрузите текущую версию или сохраните копию.",
43
+ "skill-name-invalid": "Название может содержать только строчные латинские буквы, цифры и дефисы.",
44
+ "skill-invalid": "Не удалось сохранить навык: проверьте поля ниже.",
45
+ "storage-unavailable": "Хранилище навыков недоступно. Обратитесь к администратору стенда.",
46
+ "workspace-unavailable": "Рабочий каталог вашего аккаунта недоступен. Обратитесь к администратору стенда.",
47
+ };
48
+ const REASON_MARKER = /\(reason: ([a-z-]+)\)/u;
49
+ const GENERIC_FAILURE = "Не удалось выполнить действие. Попробуйте ещё раз.";
50
+ /**
51
+ * Turn one remote refusal into copy. The Host folds domain failures into a
52
+ * `(reason: <code>)` marker on the wire message; anything else — a transport
53
+ * fault, an unknown code — reads as the generic failure.
54
+ */
55
+ export function skillFailureCopy(error) {
56
+ const message = typeof error === "object" && error !== null && "message" in error
57
+ ? String(error.message)
58
+ : typeof error === "string"
59
+ ? error
60
+ : "";
61
+ const reason = REASON_MARKER.exec(message)?.at(1);
62
+ if (reason === undefined)
63
+ return GENERIC_FAILURE;
64
+ return REASON_COPY[reason] ?? GENERIC_FAILURE;
65
+ }
66
+ /** Whether a failure is the optimistic-concurrency refusal. */
67
+ export function isSkillConflict(error) {
68
+ const message = typeof error === "object" && error !== null && "message" in error
69
+ ? String(error.message)
70
+ : typeof error === "string"
71
+ ? error
72
+ : "";
73
+ return REASON_MARKER.exec(message)?.at(1) === "skill-conflict";
74
+ }
75
+ export const SKILLS_EMPTY_COPY = {
76
+ title: "У вас пока нет навыков.",
77
+ body: "Навык — это набор инструкций, который помогает ассистенту стабильно выполнять повторяющиеся задачи.",
78
+ action: "Создать первый навык",
79
+ };
80
+ export const SKILLS_TOOLS_HINT = "Инструменты, которые использует этот навык. Они не предоставляют дополнительных разрешений.";
81
+ export const SKILLS_DESCRIPTION_HINT = "Кратко опишите, что делает навык и в каких ситуациях его стоит использовать.";
82
+ export const SKILLS_NAME_HINT = "Строчные латинские буквы, цифры и дефисы. Например: jira-investigation.";
83
+ export const SKILLS_BEHAVIOUR_HINT = "«Автоматически» значит, что ассистент может применить навык сам, когда задача совпадёт с описанием. Содержимое навыка не хранится в контексте постоянно.";
84
+ //# sourceMappingURL=copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy.js","sourceRoot":"","sources":["../../../src/client/user-settings/copy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ import { skillNameProblem, validateSkillDraft, } from "../../personal-skills/skill-format.js";
2
+ import { pluralRu } from "../settings/format.js";
3
+ export function emptyDraft() {
4
+ return {
5
+ name: "",
6
+ description: "",
7
+ whenToUse: "",
8
+ modelInvocable: true,
9
+ userInvocable: true,
10
+ allowedTools: [],
11
+ body: "",
12
+ };
13
+ }
14
+ export function draftFromDocument(document) {
15
+ return {
16
+ name: document.name,
17
+ description: document.description,
18
+ whenToUse: document.whenToUse ?? "",
19
+ modelInvocable: document.modelInvocable,
20
+ userInvocable: document.userInvocable,
21
+ allowedTools: [...document.allowedTools],
22
+ body: document.body,
23
+ };
24
+ }
25
+ /** Whether a fresh draft carries anything worth warning about on exit. */
26
+ export function draftHasContent(draft) {
27
+ return (draft.name.trim() !== "" ||
28
+ draft.description.trim() !== "" ||
29
+ draft.whenToUse.trim() !== "" ||
30
+ draft.body.trim() !== "" ||
31
+ draft.allowedTools.length > 0);
32
+ }
33
+ /** Collapse diagnostics that describe the same thing for the same field. */
34
+ export function mergeDiagnostics(...groups) {
35
+ const seen = new Set();
36
+ const merged = [];
37
+ for (const group of groups) {
38
+ for (const entry of group) {
39
+ const key = `${entry.code}:${entry.detail ?? ""}:${entry.field ?? ""}`;
40
+ if (seen.has(key))
41
+ continue;
42
+ seen.add(key);
43
+ merged.push(entry);
44
+ }
45
+ }
46
+ return merged;
47
+ }
48
+ export function draftIsDirty(draft, document) {
49
+ const baseline = draftFromDocument(document);
50
+ return (draft.name !== baseline.name ||
51
+ draft.description !== baseline.description ||
52
+ draft.whenToUse !== baseline.whenToUse ||
53
+ draft.modelInvocable !== baseline.modelInvocable ||
54
+ draft.userInvocable !== baseline.userInvocable ||
55
+ draft.body !== baseline.body ||
56
+ draft.allowedTools.join(" ") !== baseline.allowedTools.join(" "));
57
+ }
58
+ /**
59
+ * The rules the editor checks by itself, so typing is answered immediately.
60
+ * The size limit, the preserved frontmatter and the serialized file are the
61
+ * Host's business and arrive from it; the Host also re-checks all of this on
62
+ * every write, so nothing here is the authority.
63
+ */
64
+ export function draftDiagnostics(draft, options) {
65
+ return validateSkillDraft({
66
+ name: draft.name.trim(),
67
+ description: draft.description,
68
+ whenToUse: draft.whenToUse.trim() === "" ? null : draft.whenToUse,
69
+ modelInvocable: draft.modelInvocable,
70
+ userInvocable: draft.userInvocable,
71
+ allowedTools: draft.allowedTools,
72
+ availableTools: options.availableTools,
73
+ });
74
+ }
75
+ /** Whether the draft is complete enough to send. */
76
+ export function draftIsSavable(draft) {
77
+ return (skillNameProblem(draft.name.trim()) === null &&
78
+ draft.description.trim() !== "");
79
+ }
80
+ export function draftInput(draft, revision) {
81
+ const whenToUse = draft.whenToUse.trim();
82
+ return {
83
+ name: draft.name.trim(),
84
+ description: draft.description.trim(),
85
+ whenToUse: whenToUse === "" ? null : whenToUse,
86
+ modelInvocable: draft.modelInvocable,
87
+ userInvocable: draft.userInvocable,
88
+ allowedTools: [...draft.allowedTools],
89
+ body: draft.body,
90
+ expectedRevision: revision,
91
+ };
92
+ }
93
+ /** The terse line under a catalog row: invocation, command, tool count. */
94
+ export function skillMetaLine(skill) {
95
+ const parts = [skill.modelInvocable ? "Авто" : "Только вручную"];
96
+ if (skill.userInvocable)
97
+ parts.push(`/${skill.name}`);
98
+ const tools = skill.allowedTools.length;
99
+ parts.push(pluralRu(tools, ["инструмент", "инструмента", "инструментов"]));
100
+ return parts.join(" · ");
101
+ }
102
+ /** Tools the catalog cannot use right now, as the row's warning text. */
103
+ export function skillToolWarning(skill) {
104
+ const count = skill.unavailableTools.length;
105
+ if (count === 0)
106
+ return null;
107
+ return `${pluralRu(count, [
108
+ "инструмент недоступен",
109
+ "инструмента недоступны",
110
+ "инструментов недоступны",
111
+ ])} сейчас`;
112
+ }
113
+ /** Case-insensitive search over the fields the catalog offers. */
114
+ export function skillMatchesQuery(skill, query) {
115
+ const needle = query.trim().toLowerCase();
116
+ if (needle === "")
117
+ return true;
118
+ return [skill.name, skill.description, skill.whenToUse ?? ""].some((field) => field.toLowerCase().includes(needle));
119
+ }
120
+ /** Editing one tool name out of a draft, wherever the picker put it. */
121
+ export function withToolRemoved(tools, name) {
122
+ return tools.filter((tool) => tool !== name);
123
+ }
124
+ export function withToolAdded(tools, name) {
125
+ return tools.includes(name) ? tools : [...tools, name];
126
+ }
127
+ //# sourceMappingURL=draft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft.js","sourceRoot":"","sources":["../../../src/client/user-settings/draft.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AA6BjD,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,IAAI,EAAE,EAAE;QACR,WAAW,EAAE,EAAE;QACf,SAAS,EAAE,EAAE;QACb,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,EAAE;QAChB,IAAI,EAAE,EAAE;KACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAyB;IACzD,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,EAAE;QACnC,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,YAAY,EAAE,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC;QACxC,IAAI,EAAE,QAAQ,CAAC,IAAI;KACpB,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,eAAe,CAAC,KAAmB;IACjD,OAAO,CACL,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;QACxB,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE;QAC/B,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;QAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;QACxB,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAC9B,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,gBAAgB,CAC9B,GAAG,MAAiD;IAEpD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACvE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,KAAmB,EACnB,QAAyB;IAEzB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC7C,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;QAC5B,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW;QAC1C,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;QACtC,KAAK,CAAC,cAAc,KAAK,QAAQ,CAAC,cAAc;QAChD,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,aAAa;QAC9C,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;QAC5B,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CACjE,CAAC;AACJ,CAAC;AAMD;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAmB,EACnB,OAAgC;IAEhC,OAAO,kBAAkB,CAAC;QACxB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;QACvB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS;QACjE,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,cAAc,EAAE,OAAO,CAAC,cAAc;KACvC,CAAC,CAAC;AACL,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,cAAc,CAAC,KAAmB;IAChD,OAAO,CACL,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI;QAC5C,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,CAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,KAAmB,EACnB,QAAuB;IAEvB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACzC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;QACvB,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE;QACrC,SAAS,EAAE,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC9C,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC;QACrC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,gBAAgB,EAAE,QAAQ;KAC3B,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,aAAa,CAAC,KAAqB;IACjD,MAAM,KAAK,GAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC3E,IAAI,KAAK,CAAC,aAAa;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAC3E,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,gBAAgB,CAAC,KAAqB;IACpD,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC;IAC5C,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE;QACxB,uBAAuB;QACvB,wBAAwB;QACxB,yBAAyB;KAC1B,CAAC,SAAS,CAAC;AACd,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,iBAAiB,CAC/B,KAAqB,EACrB,KAAa;IAEb,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1C,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3E,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CACrC,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,eAAe,CAC7B,KAAwB,EACxB,IAAY;IAEZ,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,KAAwB,EACxB,IAAY;IAEZ,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export function QaSettingsField(props) {
3
+ return (_jsxs("div", { className: "dsh-qa-settings__field", children: [_jsxs("label", { className: "dsh-qa-settings__field-label", children: [props.label, props.children] }), props.hint === undefined ? null : (_jsx("span", { className: "dsh-qa-settings__field-hint", children: props.hint }))] }));
4
+ }
5
+ export function QaSettingsSection(props) {
6
+ return (_jsxs("section", { className: "dsh-qa-settings__section", children: [_jsxs("header", { className: "dsh-qa-settings__section-head", children: [_jsx("h3", { className: "dsh-qa-settings__section-title", children: props.title }), props.aside] }), props.children] }));
7
+ }
8
+ export function QaSettingsToggle(props) {
9
+ return (_jsxs("div", { className: "dsh-qa-settings__toggle-row", children: [_jsxs("label", { className: "dsh-qa-settings__toggle", children: [_jsx("input", { type: "checkbox", checked: props.checked, disabled: props.disabled === true, onChange: (event) => props.onChange(event.currentTarget.checked) }), _jsx("span", { className: "dsh-qa-settings__toggle-label", children: props.label })] }), props.hint === undefined ? null : (_jsx("span", { className: "dsh-qa-settings__field-hint", children: props.hint }))] }));
10
+ }
11
+ export function QaSettingsNotice(props) {
12
+ return (_jsx("p", { className: `dsh-qa-settings__notice dsh-qa-settings__notice--${props.tone}`, role: props.tone === "error" ? "alert" : "status", children: props.children }));
13
+ }
14
+ export function QaSettingsActions(props) {
15
+ return _jsx("div", { className: "dsh-qa-settings__actions", children: props.children });
16
+ }
17
+ export function QaSettingsButton(props) {
18
+ const tone = props.tone ?? "plain";
19
+ return (_jsx("button", {
20
+ // The only submit button in the dialog belongs to the editor's form;
21
+ // every other control is an explicit action.
22
+ type: props.type ?? "button", className: `dsh-qa-settings__button dsh-qa-settings__button--${tone}`, disabled: props.disabled === true, ...(props.title === undefined ? {} : { title: props.title }), ...(props.onClick === undefined ? {} : { onClick: props.onClick }), children: props.label }));
23
+ }
24
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/client/user-settings/fields.tsx"],"names":[],"mappings":";AAiBA,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,OAAO,CACL,eAAK,SAAS,EAAC,wBAAwB,aACrC,iBAAO,SAAS,EAAC,8BAA8B,aAC5C,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,QAAQ,IACT,EACP,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACjC,eAAM,SAAS,EAAC,6BAA6B,YAAE,KAAK,CAAC,IAAI,GAAQ,CAClE,IACG,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAIjC;IACC,OAAO,CACL,mBAAS,SAAS,EAAC,0BAA0B,aAC3C,kBAAQ,SAAS,EAAC,+BAA+B,aAC/C,aAAI,SAAS,EAAC,gCAAgC,YAAE,KAAK,CAAC,KAAK,GAAM,EAChE,KAAK,CAAC,KAAK,IACL,EACR,KAAK,CAAC,QAAQ,IACP,CACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAMhC;IACC,OAAO,CACL,eAAK,SAAS,EAAC,6BAA6B,aAC1C,iBAAO,SAAS,EAAC,yBAAyB,aACxC,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ,KAAK,IAAI,EACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,GAChE,EACF,eAAM,SAAS,EAAC,+BAA+B,YAAE,KAAK,CAAC,KAAK,GAAQ,IAC9D,EACP,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACjC,eAAM,SAAS,EAAC,6BAA6B,YAAE,KAAK,CAAC,IAAI,GAAQ,CAClE,IACG,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAGhC;IACC,OAAO,CACL,YACE,SAAS,EAAE,oDAAoD,KAAK,CAAC,IAAI,EAAE,EAC3E,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,YAEhD,KAAK,CAAC,QAAQ,GACb,CACL,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAuC;IACvE,OAAO,cAAK,SAAS,EAAC,0BAA0B,YAAE,KAAK,CAAC,QAAQ,GAAO,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAOhC;IACC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC;IACnC,OAAO,CACL;QACE,qEAAqE;QACrE,6CAA6C;QAC7C,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,QAAQ,EAC5B,SAAS,EAAE,oDAAoD,IAAI,EAAE,EACrE,QAAQ,EAAE,KAAK,CAAC,QAAQ,KAAK,IAAI,KAC7B,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,KACzD,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,YAElE,KAAK,CAAC,KAAK,GACL,CACV,CAAC;AACJ,CAAC"}