@latysh-development/monolith 0.0.0-stage → 0.1.0-alpha.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 (291) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +132 -2
  3. package/dist/brief/cli.d.ts +30 -0
  4. package/dist/brief/cli.d.ts.map +1 -0
  5. package/dist/brief/cli.js +85 -0
  6. package/dist/brief/collect.d.ts +17 -0
  7. package/dist/brief/collect.d.ts.map +1 -0
  8. package/dist/brief/collect.js +302 -0
  9. package/dist/brief/config.d.ts +40 -0
  10. package/dist/brief/config.d.ts.map +1 -0
  11. package/dist/brief/config.js +85 -0
  12. package/dist/brief/constants.d.ts +10 -0
  13. package/dist/brief/constants.d.ts.map +1 -0
  14. package/dist/brief/constants.js +9 -0
  15. package/dist/brief/docs.d.ts +53 -0
  16. package/dist/brief/docs.d.ts.map +1 -0
  17. package/dist/brief/docs.js +229 -0
  18. package/dist/brief/freshness.d.ts +104 -0
  19. package/dist/brief/freshness.d.ts.map +1 -0
  20. package/dist/brief/freshness.js +263 -0
  21. package/dist/brief/git-signals.d.ts +17 -0
  22. package/dist/brief/git-signals.d.ts.map +1 -0
  23. package/dist/brief/git-signals.js +101 -0
  24. package/dist/brief/index.d.ts +11 -0
  25. package/dist/brief/index.d.ts.map +1 -0
  26. package/dist/brief/index.js +5 -0
  27. package/dist/brief/reconcile.d.ts +75 -0
  28. package/dist/brief/reconcile.d.ts.map +1 -0
  29. package/dist/brief/reconcile.js +259 -0
  30. package/dist/brief/render.d.ts +60 -0
  31. package/dist/brief/render.d.ts.map +1 -0
  32. package/dist/brief/render.js +407 -0
  33. package/dist/brief/sanitize.d.ts +38 -0
  34. package/dist/brief/sanitize.d.ts.map +1 -0
  35. package/dist/brief/sanitize.js +48 -0
  36. package/dist/brief/selectors.d.ts +36 -0
  37. package/dist/brief/selectors.d.ts.map +1 -0
  38. package/dist/brief/selectors.js +75 -0
  39. package/dist/brief/story.d.ts +18 -0
  40. package/dist/brief/story.d.ts.map +1 -0
  41. package/dist/brief/story.js +59 -0
  42. package/dist/brief/types.d.ts +110 -0
  43. package/dist/brief/types.d.ts.map +1 -0
  44. package/dist/brief/types.js +11 -0
  45. package/dist/cli/index.d.ts +3 -0
  46. package/dist/cli/index.d.ts.map +1 -0
  47. package/dist/cli/index.js +166 -0
  48. package/dist/cli/init-args.d.ts +16 -0
  49. package/dist/cli/init-args.d.ts.map +1 -0
  50. package/dist/cli/init-args.js +24 -0
  51. package/dist/cli/ui-args.d.ts +23 -0
  52. package/dist/cli/ui-args.d.ts.map +1 -0
  53. package/dist/cli/ui-args.js +66 -0
  54. package/dist/cli/ui.d.ts +40 -0
  55. package/dist/cli/ui.d.ts.map +1 -0
  56. package/dist/cli/ui.js +180 -0
  57. package/dist/coordinatorium/checkpoint.d.ts +44 -0
  58. package/dist/coordinatorium/checkpoint.d.ts.map +1 -0
  59. package/dist/coordinatorium/checkpoint.js +124 -0
  60. package/dist/coordinatorium/cli.d.ts +39 -0
  61. package/dist/coordinatorium/cli.d.ts.map +1 -0
  62. package/dist/coordinatorium/cli.js +203 -0
  63. package/dist/coordinatorium/errors.d.ts +112 -0
  64. package/dist/coordinatorium/errors.d.ts.map +1 -0
  65. package/dist/coordinatorium/errors.js +145 -0
  66. package/dist/coordinatorium/index.d.ts +11 -0
  67. package/dist/coordinatorium/index.d.ts.map +1 -0
  68. package/dist/coordinatorium/index.js +5 -0
  69. package/dist/coordinatorium/lock.d.ts +187 -0
  70. package/dist/coordinatorium/lock.d.ts.map +1 -0
  71. package/dist/coordinatorium/lock.js +659 -0
  72. package/dist/coordinatorium/mission.d.ts +32 -0
  73. package/dist/coordinatorium/mission.d.ts.map +1 -0
  74. package/dist/coordinatorium/mission.js +87 -0
  75. package/dist/coordinatorium/state-keeper.d.ts +115 -0
  76. package/dist/coordinatorium/state-keeper.d.ts.map +1 -0
  77. package/dist/coordinatorium/state-keeper.js +396 -0
  78. package/dist/coordinatorium/types.d.ts +69 -0
  79. package/dist/coordinatorium/types.d.ts.map +1 -0
  80. package/dist/coordinatorium/types.js +27 -0
  81. package/dist/durable/assess.d.ts +105 -0
  82. package/dist/durable/assess.d.ts.map +1 -0
  83. package/dist/durable/assess.js +239 -0
  84. package/dist/durable/canonical.d.ts +25 -0
  85. package/dist/durable/canonical.d.ts.map +1 -0
  86. package/dist/durable/canonical.js +78 -0
  87. package/dist/durable/cli.d.ts +37 -0
  88. package/dist/durable/cli.d.ts.map +1 -0
  89. package/dist/durable/cli.js +141 -0
  90. package/dist/durable/errors.d.ts +188 -0
  91. package/dist/durable/errors.d.ts.map +1 -0
  92. package/dist/durable/errors.js +317 -0
  93. package/dist/durable/fs-store.d.ts +233 -0
  94. package/dist/durable/fs-store.d.ts.map +1 -0
  95. package/dist/durable/fs-store.js +1393 -0
  96. package/dist/durable/index.d.ts +20 -0
  97. package/dist/durable/index.d.ts.map +1 -0
  98. package/dist/durable/index.js +13 -0
  99. package/dist/durable/log.d.ts +33 -0
  100. package/dist/durable/log.d.ts.map +1 -0
  101. package/dist/durable/log.js +157 -0
  102. package/dist/durable/memory-store.d.ts +51 -0
  103. package/dist/durable/memory-store.d.ts.map +1 -0
  104. package/dist/durable/memory-store.js +302 -0
  105. package/dist/durable/projection.d.ts +35 -0
  106. package/dist/durable/projection.d.ts.map +1 -0
  107. package/dist/durable/projection.js +328 -0
  108. package/dist/durable/prune-check.d.ts +17 -0
  109. package/dist/durable/prune-check.d.ts.map +1 -0
  110. package/dist/durable/prune-check.js +45 -0
  111. package/dist/durable/register.d.ts +100 -0
  112. package/dist/durable/register.d.ts.map +1 -0
  113. package/dist/durable/register.js +532 -0
  114. package/dist/durable/retention.d.ts +49 -0
  115. package/dist/durable/retention.d.ts.map +1 -0
  116. package/dist/durable/retention.js +59 -0
  117. package/dist/durable/runtime.d.ts +497 -0
  118. package/dist/durable/runtime.d.ts.map +1 -0
  119. package/dist/durable/runtime.js +1271 -0
  120. package/dist/durable/seams.d.ts +40 -0
  121. package/dist/durable/seams.d.ts.map +1 -0
  122. package/dist/durable/seams.js +21 -0
  123. package/dist/durable/testing.d.ts +11 -0
  124. package/dist/durable/testing.d.ts.map +1 -0
  125. package/dist/durable/testing.js +25 -0
  126. package/dist/durable/types.d.ts +442 -0
  127. package/dist/durable/types.d.ts.map +1 -0
  128. package/dist/durable/types.js +75 -0
  129. package/dist/graph/builder.d.ts +11 -0
  130. package/dist/graph/builder.d.ts.map +1 -0
  131. package/dist/graph/builder.js +153 -0
  132. package/dist/graph/identity.d.ts +37 -0
  133. package/dist/graph/identity.d.ts.map +1 -0
  134. package/dist/graph/identity.js +46 -0
  135. package/dist/graph/index.d.ts +7 -0
  136. package/dist/graph/index.d.ts.map +1 -0
  137. package/dist/graph/index.js +3 -0
  138. package/dist/graph/resolver.d.ts +41 -0
  139. package/dist/graph/resolver.d.ts.map +1 -0
  140. package/dist/graph/resolver.js +36 -0
  141. package/dist/graph/types.d.ts +42 -0
  142. package/dist/graph/types.d.ts.map +1 -0
  143. package/dist/graph/types.js +1 -0
  144. package/dist/http/index.d.ts +5 -0
  145. package/dist/http/index.d.ts.map +1 -0
  146. package/dist/http/index.js +2 -0
  147. package/dist/http/server.d.ts +76 -0
  148. package/dist/http/server.d.ts.map +1 -0
  149. package/dist/http/server.js +195 -0
  150. package/dist/http/ui-assets.d.ts +22 -0
  151. package/dist/http/ui-assets.d.ts.map +1 -0
  152. package/dist/http/ui-assets.js +100 -0
  153. package/dist/index.d.ts +31 -0
  154. package/dist/index.d.ts.map +1 -0
  155. package/dist/index.js +26 -0
  156. package/dist/init/index.d.ts +12 -0
  157. package/dist/init/index.d.ts.map +1 -0
  158. package/dist/init/index.js +90 -0
  159. package/dist/init/prompts.d.ts +3 -0
  160. package/dist/init/prompts.d.ts.map +1 -0
  161. package/dist/init/prompts.js +47 -0
  162. package/dist/init/scaffold.d.ts +25 -0
  163. package/dist/init/scaffold.d.ts.map +1 -0
  164. package/dist/init/scaffold.js +204 -0
  165. package/dist/init/types.d.ts +14 -0
  166. package/dist/init/types.d.ts.map +1 -0
  167. package/dist/init/types.js +1 -0
  168. package/dist/readmodel/dashboard.d.ts +40 -0
  169. package/dist/readmodel/dashboard.d.ts.map +1 -0
  170. package/dist/readmodel/dashboard.js +236 -0
  171. package/dist/readmodel/index.d.ts +3 -0
  172. package/dist/readmodel/index.d.ts.map +1 -0
  173. package/dist/readmodel/index.js +1 -0
  174. package/dist/readmodel/types.d.ts +104 -0
  175. package/dist/readmodel/types.d.ts.map +1 -0
  176. package/dist/readmodel/types.js +15 -0
  177. package/dist/root/index.d.ts +179 -0
  178. package/dist/root/index.d.ts.map +1 -0
  179. package/dist/root/index.js +418 -0
  180. package/dist/root/safe-write.d.ts +268 -0
  181. package/dist/root/safe-write.d.ts.map +1 -0
  182. package/dist/root/safe-write.js +966 -0
  183. package/dist/root/write-artifacts.d.ts +20 -0
  184. package/dist/root/write-artifacts.d.ts.map +1 -0
  185. package/dist/root/write-artifacts.js +42 -0
  186. package/dist/scriptorium/compile.d.ts +4 -0
  187. package/dist/scriptorium/compile.d.ts.map +1 -0
  188. package/dist/scriptorium/compile.js +185 -0
  189. package/dist/scriptorium/frontmatter.d.ts +13 -0
  190. package/dist/scriptorium/frontmatter.d.ts.map +1 -0
  191. package/dist/scriptorium/frontmatter.js +90 -0
  192. package/dist/scriptorium/index.d.ts +3 -0
  193. package/dist/scriptorium/index.d.ts.map +1 -0
  194. package/dist/scriptorium/index.js +1 -0
  195. package/dist/scriptorium/markdown.d.ts +31 -0
  196. package/dist/scriptorium/markdown.d.ts.map +1 -0
  197. package/dist/scriptorium/markdown.js +88 -0
  198. package/dist/scriptorium/types.d.ts +78 -0
  199. package/dist/scriptorium/types.d.ts.map +1 -0
  200. package/dist/scriptorium/types.js +1 -0
  201. package/dist/types/enforcement.d.ts +11 -0
  202. package/dist/types/enforcement.d.ts.map +1 -0
  203. package/dist/types/enforcement.js +1 -0
  204. package/dist/types/integrity.d.ts +33 -0
  205. package/dist/types/integrity.d.ts.map +1 -0
  206. package/dist/types/integrity.js +1 -0
  207. package/dist/types/project-definition.d.ts +30 -0
  208. package/dist/types/project-definition.d.ts.map +1 -0
  209. package/dist/types/project-definition.js +1 -0
  210. package/dist/ui/assets/cosmic-glass-bg-Dwx47zPu.webp +0 -0
  211. package/dist/ui/assets/index-C4NhMaq7.js +28 -0
  212. package/dist/ui/assets/index-DMZ7ZvZY.css +1 -0
  213. package/dist/ui/index.html +13 -0
  214. package/dist/validate/index.d.ts +6 -0
  215. package/dist/validate/index.d.ts.map +1 -0
  216. package/dist/validate/index.js +214 -0
  217. package/dist/version.d.ts +2 -0
  218. package/dist/version.d.ts.map +1 -0
  219. package/dist/version.js +1 -0
  220. package/package.json +67 -4
  221. package/templates/.gitkeep +0 -0
  222. package/templates/default-instance/instruction/.cursorrules +53 -0
  223. package/templates/default-instance/instruction/.windsurfrules +53 -0
  224. package/templates/default-instance/instruction/CLAUDE.md +53 -0
  225. package/templates/default-instance/monolith/context/boot/HANDOFF.md +49 -0
  226. package/templates/default-instance/monolith/context/boot/WORK_SESSION.md +30 -0
  227. package/templates/default-instance/monolith/context/execution/current-state.md +30 -0
  228. package/templates/default-instance/monolith/context/maps/dependency-map.md +38 -0
  229. package/templates/default-instance/monolith/context/maps/project-map.md +85 -0
  230. package/templates/default-instance/monolith/context/maps/roadmap-index.md +41 -0
  231. package/templates/default-instance/monolith/context/maps/routing-map.md +147 -0
  232. package/templates/default-instance/monolith/context/maps/semantic-map.md +73 -0
  233. package/templates/default-instance/monolith/context/models/model-registry.md +37 -0
  234. package/templates/default-instance/monolith/context/models/privacy-classification.md +35 -0
  235. package/templates/default-instance/monolith/context/templates/plan-template.md +56 -0
  236. package/templates/default-instance/monolith/governance/README.md +29 -0
  237. package/templates/default-instance/monolith/governance/RULE_SCHEMA.md +58 -0
  238. package/templates/default-instance/monolith/learning/INDEX.md +48 -0
  239. package/templates/default-instance/monolith/learning/injection-map.md +49 -0
  240. package/templates/default-instance/monolith/learning/taxonomy.md +30 -0
  241. package/templates/default-instance/monolith/memory/errors/README.md +26 -0
  242. package/templates/default-instance/monolith/memory/errors/SCHEMA.md +47 -0
  243. package/templates/default-instance/monolith/memory/errors/TAXONOMY.md +27 -0
  244. package/templates/default-instance/monolith/memory/long-term/architecture-principles.md +31 -0
  245. package/templates/default-instance/monolith/memory/long-term/decisions.md +36 -0
  246. package/templates/default-instance/monolith/memory/long-term/execution-history.md +20 -0
  247. package/templates/default-instance/monolith/memory/long-term/tech-debt.md +25 -0
  248. package/templates/default-instance/monolith/memory/working/active.md +41 -0
  249. package/templates/default-instance/monolith/memory/working/governance-result.md +0 -0
  250. package/templates/default-instance/monolith/memory/working/integrity-result.md +0 -0
  251. package/templates/default-instance/monolith/memory/working/story-index.md +28 -0
  252. package/templates/default-instance/monolith/protocols/boot/boot-sequence.md +59 -0
  253. package/templates/default-instance/monolith/protocols/cognition/cognitive-modes.md +90 -0
  254. package/templates/default-instance/monolith/protocols/cognition/dry-run.md +56 -0
  255. package/templates/default-instance/monolith/protocols/cognition/execution-trace-format.md +52 -0
  256. package/templates/default-instance/monolith/protocols/cognition/semantic-planning.md +51 -0
  257. package/templates/default-instance/monolith/protocols/execution/hybrid-execution.md +37 -0
  258. package/templates/default-instance/monolith/protocols/execution/local-llm-governance.md +42 -0
  259. package/templates/default-instance/monolith/protocols/governance/command-policy.md +51 -0
  260. package/templates/default-instance/monolith/protocols/governance/core-invariants.md +40 -0
  261. package/templates/default-instance/monolith/protocols/governance/memory-governance.md +54 -0
  262. package/templates/default-instance/monolith/protocols/governance/metadata-schema.md +62 -0
  263. package/templates/default-instance/monolith/protocols/governance/skills.md +53 -0
  264. package/templates/default-instance/monolith/protocols/governance/work-session.md +46 -0
  265. package/templates/default-instance/monolith/skills/INDEX.md +28 -0
  266. package/templates/default-instance/monolith/skills/current-status/SKILL.md +47 -0
  267. package/templates/default-instance/monolith/skills/finalize-story/SKILL.md +86 -0
  268. package/templates/default-instance/monolith/skills/global-status/SKILL.md +56 -0
  269. package/templates/default-instance/monolith/skills/self-improvement/SKILL.md +77 -0
  270. package/templates/default-instance/monolith/state.json +11 -0
  271. package/templates/default-instance/monolith/tests/INDEX.md +57 -0
  272. package/templates/default-instance/monolith/tests/scenarios/architecture-review.md +32 -0
  273. package/templates/default-instance/monolith/tests/scenarios/debug-failure.md +32 -0
  274. package/templates/default-instance/monolith/tests/scenarios/dry-run-activation.md +33 -0
  275. package/templates/default-instance/monolith/tests/scenarios/execution-trace-verification.md +31 -0
  276. package/templates/default-instance/monolith/tests/scenarios/finalize-story.md +35 -0
  277. package/templates/default-instance/monolith/tests/scenarios/implement-feature.md +36 -0
  278. package/templates/default-instance/monolith/tests/scenarios/local-llm-delegation.md +31 -0
  279. package/templates/default-instance/monolith/tests/scenarios/planning-request.md +32 -0
  280. package/templates/default-instance/monolith/tests/scenarios/sensitive-context-task.md +30 -0
  281. package/templates/default-instance/monolith/tests/scenarios/validator-verification.md +33 -0
  282. package/templates/default-instance/monolith/tests/validation/expected-behavior.md +70 -0
  283. package/templates/default-instance/monolith/tests/validators/INDEX.md +17 -0
  284. package/templates/default-instance/monolith/tests/validators/delegation-semantics.md +22 -0
  285. package/templates/default-instance/monolith/tests/validators/mode-consistency.md +25 -0
  286. package/templates/default-instance/monolith/tests/validators/privacy-routing.md +23 -0
  287. package/templates/default-instance/monolith/tests/validators/protocol-references.md +27 -0
  288. package/templates/default-instance/monolith/tests/validators/routing-integrity.md +30 -0
  289. package/templates/default-instance/projectroot/AGENTS.md +107 -0
  290. package/templates/default-instance/projectroot/monolith.config.json +32 -0
  291. package/templates/default-instance/projectroot/project.definition.mjs.template +41 -0
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Shape of the project.definition.mjs file that every MONOLITH instance must provide.
3
+ * This describes the intended contract only. `monolith validate` does NOT import or
4
+ * execute the file and does not check that it exports `PROJECT_DEFINITION` (SEC-002,
5
+ * ADR-011); no kernel code currently reads these values at runtime.
6
+ */
7
+ export interface ProjectDefinition {
8
+ /** Directory name of the MONOLITH instance (e.g. '.monolith'). */
9
+ monolithRoot: string;
10
+ /** Protocol ID used as the finalization gate. */
11
+ finalizationProtocolId: string;
12
+ /** All protocol IDs active in this project. */
13
+ protocols: string[];
14
+ /** Filesystem paths where mistake / error records are stored. */
15
+ mistakeRoots: string[];
16
+ /** Path to the drift log JSON file. */
17
+ driftLogPath: string;
18
+ /** Per-protocol lists of terms that force lesson injection. */
19
+ forcedInjectionTerms: Record<string, string[]>;
20
+ /** IDs of graph nodes that must exist at the project root. */
21
+ requiredRootArtifacts: string[];
22
+ /** Markdown files that must exist at the workspace root. */
23
+ projectRootFiles: string[];
24
+ /** Documents that must be present before finalization is allowed. */
25
+ requiredFinalizationDocs: Array<{
26
+ path: string;
27
+ label: string;
28
+ }>;
29
+ }
30
+ //# sourceMappingURL=project-definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-definition.d.ts","sourceRoot":"","sources":["../../src/types/project-definition.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,YAAY,EAAE,MAAM,CAAC;IAErB,iDAAiD;IACjD,sBAAsB,EAAE,MAAM,CAAC;IAE/B,+CAA+C;IAC/C,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB,iEAAiE;IACjE,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;IAErB,+DAA+D;IAC/D,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAE/C,8DAA8D;IAC9D,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAEhC,4DAA4D;IAC5D,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAE3B,qEAAqE;IACrE,wBAAwB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClE"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))s(i);new MutationObserver(i=>{for(const r of i)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&s(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const r={};return i.integrity&&(r.integrity=i.integrity),i.referrerPolicy&&(r.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?r.credentials="include":i.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function s(i){if(i.ep)return;i.ep=!0;const r=n(i);fetch(i.href,r)}})();/**
2
+ * @vue/shared v3.5.44
3
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
+ * @license MIT
5
+ **/function _s(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const Z={},xt=[],We=()=>{},Ei=()=>!1,Nn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Pn=e=>e.startsWith("onUpdate:"),le=Object.assign,vs=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Qr=Object.prototype.hasOwnProperty,B=(e,t)=>Qr.call(e,t),P=Array.isArray,lt=e=>rn(e)==="[object Map]",At=e=>rn(e)==="[object Set]",Us=e=>rn(e)==="[object Date]",D=e=>typeof e=="function",se=e=>typeof e=="string",qe=e=>typeof e=="symbol",W=e=>e!==null&&typeof e=="object",Ii=e=>(W(e)||D(e))&&D(e.then)&&D(e.catch),Mi=Object.prototype.toString,rn=e=>Mi.call(e),eo=e=>rn(e).slice(8,-1),Ni=e=>rn(e)==="[object Object]",bs=e=>se(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Vt=_s(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),$n=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},to=/-\w/g,Re=$n(e=>e.replace(to,t=>t.slice(1).toUpperCase())),no=/\B([A-Z])/g,Ct=$n(e=>e.replace(no,"-$1").toLowerCase()),Pi=$n(e=>e.charAt(0).toUpperCase()+e.slice(1)),Bn=$n(e=>e?`on${Pi(e)}`:""),Ue=(e,t)=>!Object.is(e,t),yn=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},$i=(e,t,n,s=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},Ri=e=>{const t=parseFloat(e);return isNaN(t)?e:t},so=e=>{const t=se(e)?Number(e):NaN;return isNaN(t)?e:t};let Bs;const Rn=()=>Bs||(Bs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ss(e){if(P(e)){const t={};for(let n=0;n<e.length;n++){const s=e[n],i=se(s)?lo(s):Ss(s);if(i)for(const r in i)t[r]=i[r]}return t}else if(se(e)||W(e))return e}const io=/;(?![^(]*\))/g,ro=/:([^]+)/,oo=/"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;function lo(e){const t={};return e.replace(oo,n=>n.startsWith("/*")?"":n).split(io).forEach(n=>{if(n){const s=n.split(ro);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function on(e){let t="";if(se(e))t=e;else if(P(e))for(let n=0;n<e.length;n++){const s=on(e[n]);s&&(t+=s+" ")}else if(W(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const co="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly",ao=_s(co);function Li(e){return!!e||e===""}function uo(e,t,n){if(e.length!==t.length)return!1;let s=!0;for(let i=0;s&&i<e.length;i++)s=at(e[i],t[i],n);return s}function Ws(e,t,n){if(e.size!==t.size)return!1;const s=Array.from(t),i=new Uint8Array(s.length);for(const r of e){let o=-1;for(let l=0;l<s.length;l++)if(!i[l]&&at(r,s[l],n)){o=l;break}if(o<0)return!1;i[o]=1}return!0}function fo(e,t,n){let s=lt(e),i=lt(t);if(s||i||(s=At(e),i=At(t),s||i))return s&&i?Ws(e,t,n):!1;const r=Object.keys(e).length,o=Object.keys(t).length;if(r!==o)return!1;for(const l in e){const c=e.hasOwnProperty(l),d=t.hasOwnProperty(l);if(c&&!d||!c&&d||!at(e[l],t[l],n))return!1}return String(e)===String(t)}function qs(e,t,n,s){n||(n=[new Map,new Map]);const[i,r]=n;if(i.has(e)||r.has(t))return i.get(e)===t&&r.get(t)===e;i.set(e,t),r.set(t,e);const o=s(e,t,n);return i.delete(e),r.delete(t),o}function at(e,t,n){if(e===t)return!0;let s=Us(e),i=Us(t);return s||i?s&&i?e.getTime()===t.getTime():!1:(s=qe(e),i=qe(t),s||i?e===t:(s=P(e),i=P(t),s||i?s&&i?qs(e,t,n,uo):!1:(s=W(e),i=W(t),s||i?!s||!i?!1:qs(e,t,n,fo):String(e)===String(t))))}function ho(e,t){return e.findIndex(n=>at(n,t))}const Di=e=>!!(e&&e.__v_isRef===!0),oe=e=>se(e)?e:e==null?"":P(e)||W(e)&&(e.toString===Mi||!D(e.toString))?Di(e)?oe(e.value):JSON.stringify(e,Fi,2):String(e),Fi=(e,t)=>Di(t)?Fi(e,t.value):lt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,i],r)=>(n[Wn(s,r)+" =>"]=i,n),{})}:At(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Wn(n))}:qe(t)?Wn(t):W(t)&&!P(t)&&!Ni(t)?String(t):t,Wn=(e,t="")=>{var n;return qe(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/**
6
+ * @vue/reactivity v3.5.44
7
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
8
+ * @license MIT
9
+ **/let fe;class po{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&fe&&(fe.active?(this.parent=fe,this.index=(fe.scopes||(fe.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const s=this.scopes.slice();for(t=0,n=s.length;t<n;t++)s[t].pause()}for(t=0,n=this.effects.length;t<n;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,n;if(this.scopes){const i=this.scopes.slice();for(t=0,n=i.length;t<n;t++)i[t].resume()}const s=this.effects.slice();for(t=0,n=s.length;t<n;t++)s[t].resume()}}run(t){if(this._active){const n=fe;try{return fe=this,t()}finally{fe=n}}}on(){++this._on===1&&(this.prevScope=fe,fe=this)}off(){if(this._on>0&&--this._on===0){if(fe===this)fe=this.prevScope;else{let t=fe;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n<s;n++)this.effects[n].stop();for(this.effects.length=0,n=0,s=this.cleanups.length;n<s;n++)this.cleanups[n]();if(this.cleanups.length=0,this.scopes){const i=this.scopes.slice();for(n=0,s=i.length;n<s;n++)i[n].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const i=this.parent.scopes.pop();i&&i!==this&&(this.parent.scopes[this.index]=i,i.index=this.index)}this.parent=void 0}}}function go(){return fe}let Q;const qn=new WeakSet;class ki{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,fe&&(fe.active?fe.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,qn.has(this)&&(qn.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||ji(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Gs(this),Vi(this);const t=Q,n=Le;Q=this,Le=!0;try{return this.fn()}finally{Ki(this),Q=t,Le=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)Ts(t);this.deps=this.depsTail=void 0,Gs(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?qn.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){rs(this)&&this.run()}get dirty(){return rs(this)}}let Hi=0,Kt,Ut;function ji(e,t=!1){if(e.flags|=8,t){e.next=Ut,Ut=e;return}e.next=Kt,Kt=e}function xs(){Hi++}function ws(){if(--Hi>0)return;if(Ut){let t=Ut;for(Ut=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Kt;){let t=Kt;for(Kt=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function Vi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ki(e){let t,n=e.depsTail,s=n;for(;s;){const i=s.prevDep;s.version===-1?(s===n&&(n=i),Ts(s),mo(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=i}e.deps=t,e.depsTail=n}function rs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ui(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ui(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Gt)||(e.globalVersion=Gt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!rs(e))))return;e.flags|=2;const t=e.dep,n=Q,s=Le;Q=e,Le=!0;try{Vi(e);const i=e.fn(e._value);(t.version===0||Ue(i,e._value))&&(e.flags|=128,e._value=i,t.version++)}catch(i){throw t.version++,i}finally{Q=n,Le=s,Ki(e),e.flags&=-3}}function Ts(e,t=!1){const{dep:n,prevSub:s,nextSub:i}=e;if(s&&(s.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let r=n.computed.deps;r;r=r.nextDep)Ts(r,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function mo(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Le=!0;const Bi=[];function Ge(){Bi.push(Le),Le=!1}function ze(){const e=Bi.pop();Le=e===void 0?!0:e}function Gs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Q;Q=void 0;try{t()}finally{Q=n}}}let Gt=0;class yo{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class As{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!Q||!Le||Q===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Q)n=this.activeLink=new yo(Q,this),Q.deps?(n.prevDep=Q.depsTail,Q.depsTail.nextDep=n,Q.depsTail=n):Q.deps=Q.depsTail=n,Wi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=Q.depsTail,n.nextDep=void 0,Q.depsTail.nextDep=n,Q.depsTail=n,Q.deps===n&&(Q.deps=s)}return n}trigger(t){this.version++,Gt++,this.notify(t)}notify(t){xs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ws()}}}function Wi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)Wi(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const os=new WeakMap,wt=Symbol(""),ls=Symbol(""),zt=Symbol("");function pe(e,t,n){if(Le&&Q){let s=os.get(e);s||os.set(e,s=new Map);let i=s.get(n);i||(s.set(n,i=new As),i.map=s,i.key=n),i.track()}}function tt(e,t,n,s,i,r){const o=os.get(e);if(!o){Gt++;return}const l=c=>{c&&c.trigger()};if(xs(),t==="clear")o.forEach(l);else{const c=P(e),d=c&&bs(n);if(c&&n==="length"){const u=Number(s);o.forEach((h,v)=>{(v==="length"||v===zt||!qe(v)&&v>=u)&&l(h)})}else switch((n!==void 0||o.has(void 0))&&l(o.get(n)),d&&l(o.get(zt)),t){case"add":c?d&&l(o.get("length")):(l(o.get(wt)),lt(e)&&l(o.get(ls)));break;case"delete":c||(l(o.get(wt)),lt(e)&&l(o.get(ls)));break;case"set":lt(e)&&l(o.get(wt));break}}ws()}function Ot(e){const t=U(e);return t===e||(pe(t,"iterate",zt),Ie(e))?t:Je(e)?ct(e)?t.map(n=>ut(Me(n))):t.map(ut):t.map(Me)}function Ln(e){return pe(e=U(e),"iterate",zt),e}function je(e,t){return Je(e)?ut(ct(e)?Me(t):t):Me(t)}const _o={__proto__:null,[Symbol.iterator](){return Gn(this,Symbol.iterator,e=>je(this,e))},concat(...e){return Ot(this).concat(...e.map(t=>P(t)?Ot(t):t))},entries(){return Gn(this,"entries",e=>(e[1]=je(this,e[1]),e))},every(e,t){return Ze(this,"every",e,t,void 0,arguments)},filter(e,t){return Ze(this,"filter",e,t,n=>n.map(s=>je(this,s)),arguments)},find(e,t){return Ze(this,"find",e,t,n=>je(this,n),arguments)},findIndex(e,t){return Ze(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ze(this,"findLast",e,t,n=>je(this,n),arguments)},findLastIndex(e,t){return Ze(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ze(this,"forEach",e,t,void 0,arguments)},includes(...e){return zn(this,"includes",e)},indexOf(...e){return zn(this,"indexOf",e)},join(e){return Ot(this).join(e)},lastIndexOf(...e){return zn(this,"lastIndexOf",e)},map(e,t){return Ze(this,"map",e,t,void 0,arguments)},pop(){return Lt(this,"pop")},push(...e){return Lt(this,"push",e)},reduce(e,...t){return Js(this,"reduce",e,t)},reduceRight(e,...t){return Js(this,"reduceRight",e,t)},shift(){return Lt(this,"shift")},some(e,t){return Ze(this,"some",e,t,void 0,arguments)},splice(...e){return Lt(this,"splice",e)},toReversed(){return Ot(this).toReversed()},toSorted(e){return Ot(this).toSorted(e)},toSpliced(...e){return Ot(this).toSpliced(...e)},unshift(...e){return Lt(this,"unshift",e)},values(){return Gn(this,"values",e=>je(this,e))}};function Gn(e,t,n){const s=Ln(e),i=s[t],r=i.call(s);if(s!==e&&!Ie(e)){if(r[Symbol.toStringTag]==="Array Iterator"){const o=Object.create(Object.getPrototypeOf(r));return o.next=()=>zs(r.next(),n),i!==qi[t]&&Object.defineProperties(o,{return:{get(){const l=r.return;return typeof l=="function"?l.bind(r):l}},throw:{get(){const l=r.throw;return typeof l=="function"?l.bind(r):l}}}),o}r._next=r.next,r.next=()=>zs(r._next(),n)}return r}function zs(e,t){return e.done||(e.value=t(e.value)),e}const qi=Array.prototype;function Ze(e,t,n,s,i,r){const o=Ln(e),l=o!==e&&!Ie(e),c=o[t];if(c!==qi[t]){const h=c.apply(e,r);return l?Me(h):h}let d=n;o!==e&&(l?d=function(h,v){return n.call(this,je(e,h),v,e)}:n.length>2&&(d=function(h,v){return n.call(this,h,v,e)}));const u=c.call(o,d,s);return l&&i?i(u):u}function Js(e,t,n,s){const i=Ln(e),r=i!==e&&!Ie(e);let o=n,l=!1;i!==e&&(r?(l=s.length===0,o=function(d,u,h){return l&&(l=!1,d=je(e,d)),n.call(this,d,je(e,u),h,e)}):n.length>3&&(o=function(d,u,h){return n.call(this,d,u,h,e)}));const c=i[t](o,...s);return l?je(e,c):c}function zn(e,t,n){const s=U(e);pe(s,"iterate",zt);const i=s[t](...n);return(i===-1||i===!1)&&Is(n[0])?(n[0]=U(n[0]),s[t](...n)):i}function Lt(e,t,n=[]){Ge(),xs();const s=U(e)[t].apply(e,n);return ws(),ze(),s}const vo=_s("__proto__,__v_isRef,__isVue"),Gi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(qe));function bo(e){qe(e)||(e=String(e));const t=U(this);return pe(t,"has",e),t.hasOwnProperty(e)}class zi{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const i=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!i;if(n==="__v_isReadonly")return i;if(n==="__v_isShallow")return r;if(n==="__v_raw")return s===(i?r?Mo:Xi:r?Zi:Yi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const o=P(t);if(!i){let c;if(o&&(c=_o[n]))return c;if(n==="hasOwnProperty")return bo}const l=Reflect.get(t,n,me(t)?t:s);if((qe(n)?Gi.has(n):vo(n))||(i||pe(t,"get",n),r))return l;if(me(l)){const c=o&&bs(n)?l:l.value;return i&&W(c)?as(c):c}return W(l)?i?as(l):Os(l):l}}class Ji extends zi{constructor(t=!1){super(!1,t)}set(t,n,s,i){let r=t[n];const o=P(t)&&bs(n);if(!this._isShallow){const d=Je(r);if(!Ie(s)&&!Je(s)&&(r=U(r),s=U(s)),!o&&me(r)&&!me(s))return d||(r.value=s),!0}const l=o?Number(n)<t.length:B(t,n),c=Reflect.set(t,n,s,me(t)?t:i);return t===U(i)&&c&&(l?Ue(s,r)&&tt(t,"set",n,s):tt(t,"add",n,s)),c}deleteProperty(t,n){const s=B(t,n);t[n];const i=Reflect.deleteProperty(t,n);return i&&s&&tt(t,"delete",n,void 0),i}has(t,n){const s=Reflect.has(t,n);return(!qe(n)||!Gi.has(n))&&pe(t,"has",n),s}ownKeys(t){return pe(t,"iterate",P(t)?"length":wt),Reflect.ownKeys(t)}}class So extends zi{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const xo=new Ji,wo=new So,To=new Ji(!0);const cs=e=>e,dn=e=>Reflect.getPrototypeOf(e);function Ao(e,t,n){return function(...s){const i=this.__v_raw,r=U(i),o=lt(r),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,d=i[e](...s),u=n?cs:t?ut:Me;return!t&&pe(r,"iterate",c?ls:wt),le(Object.create(d),{next(){const{value:h,done:v}=d.next();return v?{value:h,done:v}:{value:l?[u(h[0]),u(h[1])]:u(h),done:v}}})}}function hn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Co(e,t){const n={get(i){const r=this.__v_raw,o=U(r),l=U(i);e||(Ue(i,l)&&pe(o,"get",i),pe(o,"get",l));const{has:c}=dn(o),d=t?cs:e?ut:Me;if(c.call(o,i))return d(r.get(i));if(c.call(o,l))return d(r.get(l));r!==o&&r.get(i)},get size(){const i=this.__v_raw;return!e&&pe(U(i),"iterate",wt),i.size},has(i){const r=this.__v_raw,o=U(r),l=U(i);return e||(Ue(i,l)&&pe(o,"has",i),pe(o,"has",l)),i===l?r.has(i):r.has(i)||r.has(l)},forEach(i,r){const o=this,l=o.__v_raw,c=U(l),d=t?cs:e?ut:Me;return!e&&pe(c,"iterate",wt),l.forEach((u,h)=>i.call(r,d(u),d(h),o))}};return le(n,e?{add:hn("add"),set:hn("set"),delete:hn("delete"),clear:hn("clear")}:{add(i){const r=U(this),o=dn(r),l=U(i),c=!t&&!Ie(i)&&!Je(i)?l:i;return o.has.call(r,c)||Ue(i,c)&&o.has.call(r,i)||Ue(l,c)&&o.has.call(r,l)||(r.add(c),tt(r,"add",c,c)),this},set(i,r){!t&&!Ie(r)&&!Je(r)&&(r=U(r));const o=U(this),{has:l,get:c}=dn(o);let d=l.call(o,i);d||(i=U(i),d=l.call(o,i));const u=c.call(o,i);return o.set(i,r),d?Ue(r,u)&&tt(o,"set",i,r):tt(o,"add",i,r),this},delete(i){const r=U(this),{has:o,get:l}=dn(r);let c=o.call(r,i);c||(i=U(i),c=o.call(r,i)),l&&l.call(r,i);const d=r.delete(i);return c&&tt(r,"delete",i,void 0),d},clear(){const i=U(this),r=i.size!==0,o=i.clear();return r&&tt(i,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(i=>{n[i]=Ao(i,e,t)}),n}function Cs(e,t){const n=Co(e,t);return(s,i,r)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_isShallow"?t:i==="__v_raw"?s:Reflect.get(B(n,i)&&i in s?n:s,i,r)}const Oo={get:Cs(!1,!1)},Eo={get:Cs(!1,!0)},Io={get:Cs(!0,!1)};const Yi=new WeakMap,Zi=new WeakMap,Xi=new WeakMap,Mo=new WeakMap;function No(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Os(e){return Je(e)?e:Es(e,!1,xo,Oo,Yi)}function Po(e){return Es(e,!1,To,Eo,Zi)}function as(e){return Es(e,!0,wo,Io,Xi)}function Es(e,t,n,s,i){if(!W(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=i.get(e);if(r)return r;const o=No(eo(e));if(o===0)return e;const l=new Proxy(e,o===2?s:n);return i.set(e,l),l}function ct(e){return Je(e)?ct(e.__v_raw):!!(e&&e.__v_isReactive)}function Je(e){return!!(e&&e.__v_isReadonly)}function Ie(e){return!!(e&&e.__v_isShallow)}function Is(e){return e?!!e.__v_raw:!1}function U(e){const t=e&&e.__v_raw;return t?U(t):e}function $o(e){return!B(e,"__v_skip")&&Object.isExtensible(e)&&$i(e,"__v_skip",!0),e}const Me=e=>W(e)?Os(e):e,ut=e=>W(e)?as(e):e;function me(e){return e?e.__v_isRef===!0:!1}function It(e){return Ro(e,!1)}function Ro(e,t){return me(e)?e:new Lo(e,t)}class Lo{constructor(t,n){this.dep=new As,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:U(t),this._value=n?t:Me(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||Ie(t)||Je(t);t=s?t:U(t),Ue(t,n)&&(this._rawValue=t,this._value=s?t:Me(t),this.dep.trigger())}}function Dn(e){return me(e)?e.value:e}const Do={get:(e,t,n)=>t==="__v_raw"?e:Dn(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const i=e[t];return me(i)&&!me(n)?(i.value=n,!0):Reflect.set(e,t,n,s)}};function Qi(e){return ct(e)?e:new Proxy(e,Do)}class Fo{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new As(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Gt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&Q!==this)return ji(this,!0),!0}get value(){const t=this.dep.track();return Ui(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function ko(e,t,n=!1){let s,i;return D(e)?s=e:(s=e.get,i=e.set),new Fo(s,i,n)}const pn={},bn=new WeakMap;let vt;function Ho(e,t=!1,n=vt){if(n){let s=bn.get(n);s||bn.set(n,s=[]),s.push(e)}}function jo(e,t,n=Z){const{immediate:s,deep:i,once:r,scheduler:o,augmentJob:l,call:c}=n,d=M=>i?M:Ie(M)||i===!1||i===0?nt(M,1):nt(M);let u,h,v,w,F=!1,O=!1;if(me(e)?(h=()=>e.value,F=Ie(e)):ct(e)?(h=()=>d(e),F=!0):P(e)?(O=!0,F=e.some(M=>ct(M)||Ie(M)),h=()=>e.map(M=>{if(me(M))return M.value;if(ct(M))return d(M);if(D(M))return c?c(M,2):M()})):D(e)?t?h=c?()=>c(e,2):e:h=()=>{if(v){Ge();try{v()}finally{ze()}}const M=vt;vt=u;try{return c?c(e,3,[w]):e(w)}finally{vt=M}}:h=We,t&&i){const M=h,z=i===!0?1/0:i;h=()=>nt(M(),z)}const k=go(),j=()=>{u.stop(),k&&k.active&&vs(k.effects,u)};if(r&&t){const M=t;t=(...z)=>{try{return M(...z)}finally{j()}}}let L=O?new Array(e.length).fill(pn):pn;const V=M=>{if(!(!(u.flags&1)||!u.dirty&&!M))if(t){const z=u.run();if(M||i||F||(O?z.some((ce,ye)=>Ue(ce,L[ye])):Ue(z,L))){const ce=vt;Ge();try{v&&v(),vt=u;const ye=[z,L===pn?void 0:O&&L[0]===pn?[]:L,w];L=z,c?c(t,3,ye):t(...ye)}finally{vt=ce,ze()}}}else u.run()};return l&&l(V),u=new ki(h),u.scheduler=o?()=>o(V,!1):V,w=M=>Ho(M,!1,u),v=u.onStop=()=>{const M=bn.get(u);if(M){if(c)c(M,4);else for(const z of M)z();bn.delete(u)}},t?s?V(!0):L=u.run():o?o(V.bind(null,!0),!0):u.run(),j.pause=u.pause.bind(u),j.resume=u.resume.bind(u),j.stop=j,j}function nt(e,t=1/0,n){if(t<=0||!W(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,me(e))nt(e.value,t,n);else if(P(e))for(let s=0;s<e.length;s++)nt(e[s],t,n);else if(At(e)||lt(e))e.forEach(s=>{nt(s,t,n)});else if(Ni(e)){for(const s in e)nt(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&nt(e[s],t,n)}return e}/**
10
+ * @vue/runtime-core v3.5.44
11
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
12
+ * @license MIT
13
+ **/function ln(e,t,n,s){try{return s?e(...s):e()}catch(i){Fn(i,t,n)}}function Ne(e,t,n,s){if(D(e)){const i=ln(e,t,n,s);return i&&Ii(i)&&i.catch(r=>{Fn(r,t,n)}),i}if(P(e)){const i=[];for(let r=0;r<e.length;r++)i.push(Ne(e[r],t,n,s));return i}}function Fn(e,t,n,s=!0){const i=t?t.vnode:null,{errorHandler:r,throwUnhandledErrorInProduction:o}=t&&t.appContext.config||Z;if(t){let l=t.parent;const c=t.proxy,d=`https://vuejs.org/error-reference/#runtime-${n}`;for(;l;){const u=l.ec;if(u){for(let h=0;h<u.length;h++)if(u[h](e,c,d)===!1)return}l=l.parent}if(r){Ge(),ln(r,null,10,[e,c,d]),ze();return}}Vo(e,n,i,s,o)}function Vo(e,t,n,s=!0,i=!1){if(i)throw e;console.error(e)}const ve=[];let $e=-1;const Ve=[];let ot=null,Et=0;const er=Promise.resolve();let Sn=null;function tr(e){const t=Sn||er;return e?t.then(this?e.bind(this):e):t}function Ko(e){let t=$e+1,n=ve.length;for(;t<n;){const s=t+n>>>1,i=ve[s],r=Jt(i);r<e||r===e&&i.flags&2?t=s+1:n=s}return t}function Ms(e){if(!(e.flags&1)){const t=Jt(e),n=ve[ve.length-1];!n||!(e.flags&2)&&t>=Jt(n)?ve.push(e):ve.splice(Ko(t),0,e),e.flags|=1,nr()}}function nr(){Sn||(Sn=er.then(rr))}function Uo(e){if(!P(e))ot&&e.id===-1?ot.splice(Et+1,0,e):e.flags&1||(Ve.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)Ve.push(e[t]);nr()}function sr(e,t,n,s=$e+1){for(;s<ve.length;s++){const i=ve[s];if(i&&i.flags&2){if(e&&i.id!==e.uid||t!==void 0&&!(i.id>=t))continue;ve.splice(s,1),s=e?s-1:$e,i.flags&4&&(i.flags&=-2),i(),i.flags&4||(i.flags&=-2)}}}function ir(e,t,n=0){if(Ve.length){let s=Ve,i=0;if(t){s=[];for(let o=0;o<Ve.length;o++){const l=Ve[o];(l.i!==void 0?!l.i||l.i.uid<n:t.has(l))?Ve[i++]=l:s.push(l)}}const r=[...new Set(s)].sort((o,l)=>Jt(o)-Jt(l));if(Ve.length=i,ot){for(let o=0;o<r.length;o++)ot.push(r[o]);return}for(ot=r,Et=0;Et<ot.length;Et++){const o=ot[Et];o.flags&4&&(o.flags&=-2),o.flags&8||o(),o.flags&=-2}ot=null,Et=0}}let Jn=!1;function Bo(e,t){if(Jn){e();return}const n=t===void 0?void 0:new Set(Ve);e(),Jn=!0;try{sr(void 0,t),ir(void 0,n,t)}finally{Jn=!1}}const Jt=e=>e.id==null?e.flags&2?-1:1/0:e.id;function rr(e){try{for($e=0;$e<ve.length;$e++){const t=ve[$e];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),ln(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;$e<ve.length;$e++){const t=ve[$e];t&&(t.flags&=-2)}$e=-1,ve.length=0,ir(),Sn=null,(ve.length||Ve.length)&&rr()}}let Ee=null,or=null;function xn(e){const t=Ee;return Ee=e,or=e&&e.type.__scopeId||null,t}function lr(e,t=Ee,n){if(!t||e._n)return e;const s=(...i)=>{s._d&&Cn(-1);const r=xn(t),o=Tt.length;let l;try{l=e(...i)}finally{for(let c=Tt.length;c>o;c--)Rr();xn(r),s._d&&Cn(1)}return l};return s._n=!0,s._c=!0,s._d=!0,s}function Wo(e,t){if(Ee===null)return e;const n=Un(Ee),s=e.dirs||(e.dirs=[]);for(let i=0;i<t.length;i++){let[r,o,l,c=Z]=t[i];r&&(D(r)&&(r={mounted:r,updated:r}),r.deep&&nt(o),s.push({dir:r,instance:n,value:o,oldValue:void 0,arg:l,modifiers:c}))}return e}function gt(e,t,n,s){const i=e.dirs,r=t&&t.dirs;for(let o=0;o<i.length;o++){const l=i[o];r&&(l.oldValue=r[o].value);let c=l.dir[s];c&&(Ge(),Ne(c,n,8,[e.el,l,e,t]),ze())}}function qo(e,t){if(be){let n=be.provides;const s=be.parent&&be.parent.provides;s===n&&(n=be.provides=Object.create(s)),n[e]=t}}function _n(e,t,n=!1){const s=kr();if(s||Mt){let i=Mt?Mt._context.provides:s?s.parent==null||s.ce?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides:void 0;if(i&&e in i)return i[e];if(arguments.length>1)return n&&D(t)?t.call(s&&s.proxy):t}}const Go=Symbol.for("v-scx"),zo=()=>_n(Go);function Yn(e,t,n){return cr(e,t,n)}function cr(e,t,n=Z){const{immediate:s,deep:i,flush:r,once:o}=n,l=le({},n),c=t&&s||!t&&r!=="post";let d;if(tn){if(r==="sync"){const w=zo();d=w.__watcherHandles||(w.__watcherHandles=[])}else if(!c){const w=()=>{};return w.stop=We,w.resume=We,w.pause=We,w}}const u=be;l.call=(w,F,O)=>Ne(w,u,F,O);let h=!1;r==="post"?l.scheduler=w=>{w.i=u,xe(w,u&&u.suspense)}:r!=="sync"&&(h=!0,l.scheduler=(w,F)=>{F?w():Ms(w)}),l.augmentJob=w=>{t&&(w.flags|=4),h&&(w.flags|=2,u&&(w.id=u.uid,w.i=u))};const v=jo(e,t,l);return tn&&(d?d.push(v):c&&v()),v}function Jo(e,t,n){const s=this.proxy,i=se(e)?e.includes(".")?ar(s,e):()=>s[e]:e.bind(s,s);let r;D(t)?r=t:(r=t.handler,n=t);const o=an(this),l=cr(i,r.bind(s),n);return o(),l}function ar(e,t){const n=t.split(".");return()=>{let s=e;for(let i=0;i<n.length&&s;i++)s=s[n[i]];return s}}const Yo=Symbol("_vte"),kn=e=>e.__isTeleport,Oe=Symbol("_leaveCb"),Dt=Symbol("_enterCb");function Zo(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Ns(()=>{e.isMounted=!0}),Ps(()=>{e.isUnmounting=!0}),e}const Ce=[Function,Array],ur={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ce,onEnter:Ce,onAfterEnter:Ce,onEnterCancelled:Ce,onBeforeLeave:Ce,onLeave:Ce,onAfterLeave:Ce,onLeaveCancelled:Ce,onBeforeAppear:Ce,onAppear:Ce,onAfterAppear:Ce,onAppearCancelled:Ce},Xo={name:"BaseTransition",props:ur,setup(e,{slots:t}){const n=kr(),s=Zo();return()=>{const i=t.default&&hr(t.default(),!0),r=i&&i.length?fr(i):n.subTree?Qt():void 0;if(!r)return;const o=U(e),{mode:l}=o;if(s.isLeaving)return Zn(r);const c=wn(r);if(!c)return Zn(r);let d=us(c,o,s,n,h=>d=h);c.type!==ge&&Nt(c,d);let u=n.subTree&&wn(n.subTree);if(u&&u.type!==ge&&!St(u,c)&&Yt(n.subTree)){let h=us(u,o,s,n);if(Nt(u,h),l==="out-in"&&c.type!==ge)return s.isLeaving=!0,h.afterLeave=()=>{s.isLeaving=!1,n.job.flags&8||n.update(),delete h.afterLeave,u=void 0},Zn(r);l==="in-out"&&c.type!==ge?h.delayLeave=(v,w,F)=>{const O=dr(s,u);O[String(u.key)]=u,v[Oe]=()=>{w(),v[Oe]=void 0,delete d.delayedLeave,u=void 0},d.delayedLeave=()=>{F(),delete d.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return r}}};function fr(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ge){t=n;break}}return t}const Qo=Xo;function dr(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function us(e,t,n,s,i){const{appear:r,mode:o,persisted:l=!1,onBeforeEnter:c,onEnter:d,onAfterEnter:u,onEnterCancelled:h,onBeforeLeave:v,onLeave:w,onAfterLeave:F,onLeaveCancelled:O,onBeforeAppear:k,onAppear:j,onAfterAppear:L,onAppearCancelled:V}=t,M=String(e.key),z=dr(n,e),ce=(H,q)=>{H&&Ne(H,s,9,q)},ye=(H,q)=>{const te=q[1];ce(H,q),P(H)?H.every(A=>A.length<=1)&&te():H.length<=1&&te()},Se={mode:o,persisted:l,beforeEnter(H){let q=c;if(!n.isMounted)if(r)q=k||c;else return;H[Oe]&&H[Oe](!0);const te=z[M];if(te&&St(e,te)){let A=te.el[Oe];if(!A){const J=Yt(te);A=J&&J.el[Oe]}A&&A()}ce(q,[H])},enter(H){if(z[M]===e)return;let q=d,te=u,A=h;if(!n.isMounted)if(r)q=j||d,te=L||u,A=V||h;else return;let J=!1;H[Dt]=Ye=>{J||(J=!0,Ye?ce(A,[H]):ce(te,[H]),Se.delayedLeave&&Se.delayedLeave(),H[Dt]=void 0)};const he=H[Dt].bind(null,!1);q?ye(q,[H,he]):he()},leave(H,q){const te=String(e.key);if(H[Dt]&&H[Dt](!0),n.isUnmounting)return q();ce(v,[H]);let A=!1;H[Oe]=he=>{A||(A=!0,q(),he?ce(O,[H]):ce(F,[H]),H[Oe]=void 0,z[te]===e&&delete z[te])};const J=H[Oe].bind(null,!1);z[te]=e,w?ye(w,[H,J]):J()},clone(H){const q=us(H,t,n,s,i);return i&&i(q),q}};return Se}function Zn(e){if(Hn(e))return e=dt(e),e.children=null,e}function wn(e){if(!Hn(e))return kn(e.type)&&e.children?fr(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&D(n.default))return n.default()}}function Nt(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;Nt(kn(n.type)&&wn(n)||n,t)}else if(e.shapeFlag&128)e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback);else if(e.transition=t,e.type===ie&&P(e.children)){const n=Sr(e.children,!1);n&&Nt(n,t)}}function hr(e,t=!1,n){let s=[],i=0;for(let r=0;r<e.length;r++){let o=e[r];const l=n==null?o.key:String(n)+String(o.key!=null?o.key:r);o.type===ie?(o.patchFlag&128&&i++,s=s.concat(hr(o.children,t,l))):(t||o.type!==ge)&&s.push(l!=null?dt(o,{key:l}):o)}if(i>1)for(let r=0;r<s.length;r++)s[r].patchFlag=-2;return s}function Yt(e){if(e.component)return Yt(e.component.subTree);if(e.type===ie){const t=P(e.children)&&Sr(e.children,!1);return t?Yt(t):void 0}if(e.type!==ge)return e}function st(e,t){return D(e)?le({name:e.name},t,{setup:e}):e}function pr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Ys(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Tn=new WeakMap;function Bt(e,t,n,s,i=!1){if(P(e)){e.forEach((O,k)=>Bt(O,t&&(P(t)?t[k]:t),n,s,i));return}if(Wt(s)&&!i){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&Bt(e,t,n,s.component.subTree);return}const r=s.shapeFlag&4?Un(s.component):s.el,o=i?null:r,{i:l,r:c}=e,d=t&&t.r,u=l.refs===Z?l.refs={}:l.refs,h=l.setupState,v=U(h),w=h===Z?Ei:O=>Ys(u,O)?!1:B(v,O),F=(O,k)=>!(k&&Ys(u,k));if(d!=null&&d!==c){if(Zs(t),se(d))u[d]=null,w(d)&&(h[d]=null);else if(me(d)){const O=t;F(d,O.k)&&(d.value=null),O.k&&(u[O.k]=null)}}if(D(c))ln(c,l,12,[o,u]);else{const O=se(c),k=me(c);if(O||k){const j=()=>{if(e.f){const L=O?w(c)?h[c]:u[c]:F()||!e.k?c.value:u[e.k];if(i)P(L)&&vs(L,r);else if(P(L))L.includes(r)||L.push(r);else if(O)u[c]=[r],w(c)&&(h[c]=u[c]);else{const V=[r];F(c,e.k)&&(c.value=V),e.k&&(u[e.k]=V)}}else O?(u[c]=o,w(c)&&(h[c]=o)):k&&(F(c,e.k)&&(c.value=o),e.k&&(u[e.k]=o))};if(o){const L=()=>{j(),Tn.delete(e)};L.id=-1,Tn.set(e,L),xe(L,n)}else Zs(e),j()}}}function Zs(e){const t=Tn.get(e);t&&(t.flags|=8,Tn.delete(e))}Rn().requestIdleCallback;Rn().cancelIdleCallback;const Wt=e=>!!e.type.__asyncLoader,Hn=e=>e.type.__isKeepAlive;function el(e,t){gr(e,"a",t)}function tl(e,t){gr(e,"da",t)}function gr(e,t,n=be){const s=e.__wdc||(e.__wdc=()=>{let i=n;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(jn(t,s,n),n){let i=n.parent;for(;i&&i.parent;)Hn(i.parent.vnode)&&nl(s,t,n,i),i=i.parent}}function nl(e,t,n,s){const i=jn(t,e,s,!0);mr(()=>{vs(s[t],i)},n)}function jn(e,t,n=be,s=!1){if(n){const i=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...o)=>{Ge();const l=an(n),c=Ne(t,n,e,o);return l(),ze(),c});return s?i.unshift(r):i.push(r),r}}const it=e=>(t,n=be)=>{(!tn||e==="sp")&&jn(e,(...s)=>t(...s),n)},sl=it("bm"),Ns=it("m"),il=it("bu"),rl=it("u"),Ps=it("bum"),mr=it("um"),ol=it("sp"),ll=it("rtg"),cl=it("rtc");function al(e,t=be){jn("ec",e,t)}const ul=Symbol.for("v-ndc");function ft(e,t,n,s){let i;const r=n,o=P(e);if(o||se(e)){const l=o&&ct(e);let c=!1,d=!1;l&&(c=!Ie(e),d=Je(e),e=Ln(e)),i=new Array(e.length);for(let u=0,h=e.length;u<h;u++)i[u]=t(c?d?ut(Me(e[u])):Me(e[u]):e[u],u,void 0,r)}else if(typeof e=="number")if(!Number.isInteger(e)||e<0)i=[];else{i=new Array(e);for(let l=0;l<e;l++)i[l]=t(l+1,l,void 0,r)}else if(W(e))if(e[Symbol.iterator])i=Array.from(e,(l,c)=>t(l,c,void 0,r));else{const l=Object.keys(e);i=new Array(l.length);for(let c=0,d=l.length;c<d;c++){const u=l[c];i[c]=t(e[u],u,c,r)}}else i=[];return i}const fs=e=>e?Hr(e)?Un(e):fs(e.parent):null,qt=le(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>fs(e.parent),$root:e=>fs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>_r(e),$forceUpdate:e=>e.f||(e.f=()=>{Ms(e.update)}),$nextTick:e=>e.n||(e.n=tr.bind(e.proxy)),$watch:e=>Jo.bind(e)}),Xn=(e,t)=>e!==Z&&!e.__isScriptSetup&&B(e,t),fl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:i,props:r,accessCache:o,type:l,appContext:c}=e;if(t[0]!=="$"){const v=o[t];if(v!==void 0)switch(v){case 1:return s[t];case 2:return i[t];case 4:return n[t];case 3:return r[t]}else{if(Xn(s,t))return o[t]=1,s[t];if(i!==Z&&B(i,t))return o[t]=2,i[t];if(B(r,t))return o[t]=3,r[t];if(n!==Z&&B(n,t))return o[t]=4,n[t];ds&&(o[t]=0)}}const d=qt[t];let u,h;if(d)return t==="$attrs"&&pe(e.attrs,"get",""),d(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(n!==Z&&B(n,t))return o[t]=4,n[t];if(h=c.config.globalProperties,B(h,t))return h[t]},set({_:e},t,n){const{data:s,setupState:i,ctx:r}=e;return Xn(i,t)?(i[t]=n,!0):s!==Z&&B(s,t)?(s[t]=n,!0):B(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:i,props:r,type:o}},l){let c;return!!(n[l]||e!==Z&&l[0]!=="$"&&B(e,l)||Xn(t,l)||B(r,l)||B(s,l)||B(qt,l)||B(i.config.globalProperties,l)||(c=o.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:B(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Xs(e){return P(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ds=!0;function dl(e){const t=_r(e),n=e.proxy,s=e.ctx;ds=!1,t.beforeCreate&&Qs(t.beforeCreate,e,"bc");const{data:i,computed:r,methods:o,watch:l,provide:c,inject:d,created:u,beforeMount:h,mounted:v,beforeUpdate:w,updated:F,activated:O,deactivated:k,beforeDestroy:j,beforeUnmount:L,destroyed:V,unmounted:M,render:z,renderTracked:ce,renderTriggered:ye,errorCaptured:Se,serverPrefetch:H,expose:q,inheritAttrs:te,components:A,directives:J,filters:he}=t;if(d&&hl(d,s,null),o)for(const ne in o){const X=o[ne];D(X)&&(s[ne]=X.bind(n))}if(i){const ne=i.call(n,n);W(ne)&&(e.data=Os(ne))}if(ds=!0,r)for(const ne in r){const X=r[ne],ht=D(X)?X.bind(n,n):D(X.get)?X.get.bind(n,n):We,un=!D(X)&&D(X.set)?X.set.bind(n):We,pt=nn({get:ht,set:un});Object.defineProperty(s,ne,{enumerable:!0,configurable:!0,get:()=>pt.value,set:Pe=>pt.value=Pe})}if(l)for(const ne in l)yr(l[ne],s,n,ne);if(c){const ne=D(c)?c.call(n):c;Reflect.ownKeys(ne).forEach(X=>{qo(X,ne[X])})}u&&Qs(u,e,"c");function ae(ne,X){P(X)?X.forEach(ht=>ne(ht.bind(n))):X&&ne(X.bind(n))}if(ae(sl,h),ae(Ns,v),ae(il,w),ae(rl,F),ae(el,O),ae(tl,k),ae(al,Se),ae(cl,ce),ae(ll,ye),ae(Ps,L),ae(mr,M),ae(ol,H),P(q))if(q.length){const ne=e.exposed||(e.exposed={});q.forEach(X=>{Object.defineProperty(ne,X,{get:()=>n[X],set:ht=>n[X]=ht,enumerable:!0})})}else e.exposed||(e.exposed={});z&&e.render===We&&(e.render=z),te!=null&&(e.inheritAttrs=te),A&&(e.components=A),J&&(e.directives=J),H&&pr(e)}function hl(e,t,n=We){P(e)&&(e=hs(e));for(const s in e){const i=e[s];let r;W(i)?"default"in i?r=_n(i.from||s,i.default,!0):r=_n(i.from||s):r=_n(i),me(r)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>r.value,set:o=>r.value=o}):t[s]=r}}function Qs(e,t,n){Ne(P(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function yr(e,t,n,s){let i=s.includes(".")?ar(n,s):()=>n[s];if(se(e)){const r=t[e];D(r)&&Yn(i,r)}else if(D(e))Yn(i,e.bind(n));else if(W(e))if(P(e))e.forEach(r=>yr(r,t,n,s));else{const r=D(e.handler)?e.handler.bind(n):t[e.handler];D(r)&&Yn(i,r,e)}}function _r(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:i,optionsCache:r,config:{optionMergeStrategies:o}}=e.appContext,l=r.get(t);let c;return l?c=l:!i.length&&!n&&!s?c=t:(c={},i.length&&i.forEach(d=>An(c,d,o,!0)),An(c,t,o)),W(t)&&r.set(t,c),c}function An(e,t,n,s=!1){const{mixins:i,extends:r}=t;r&&An(e,r,n,!0),i&&i.forEach(o=>An(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=pl[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const pl={data:ei,props:ti,emits:ti,methods:kt,computed:kt,beforeCreate:_e,created:_e,beforeMount:_e,mounted:_e,beforeUpdate:_e,updated:_e,beforeDestroy:_e,beforeUnmount:_e,destroyed:_e,unmounted:_e,activated:_e,deactivated:_e,errorCaptured:_e,serverPrefetch:_e,components:kt,directives:kt,watch:ml,provide:ei,inject:gl};function ei(e,t){return t?e?function(){return le(D(e)?e.call(this,this):e,D(t)?t.call(this,this):t)}:t:e}function gl(e,t){return kt(hs(e),hs(t))}function hs(e){if(P(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function _e(e,t){return e?[...new Set([].concat(e,t))]:t}function kt(e,t){return e?le(Object.create(null),e,t):t}function ti(e,t){return e?P(e)&&P(t)?[...new Set([...e,...t])]:le(Object.create(null),Xs(e),Xs(t??{})):t}function ml(e,t){if(!e)return t;if(!t)return e;const n=le(Object.create(null),e);for(const s in t)n[s]=_e(e[s],t[s]);return n}function vr(){return{app:null,config:{isNativeTag:Ei,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let yl=0;function _l(e,t){return function(s,i=null){D(s)||(s=le({},s)),i!=null&&!W(i)&&(i=null);const r=vr(),o=new WeakSet,l=[];let c=!1;const d=r.app={_uid:yl++,_component:s,_props:i,_container:null,_context:r,_instance:null,version:Jl,get config(){return r.config},set config(u){},use(u,...h){return o.has(u)||(u&&D(u.install)?(o.add(u),u.install(d,...h)):D(u)&&(o.add(u),u(d,...h))),d},mixin(u){return r.mixins.includes(u)||r.mixins.push(u),d},component(u,h){return h?(r.components[u]=h,d):r.components[u]},directive(u,h){return h?(r.directives[u]=h,d):r.directives[u]},mount(u,h,v){if(!c){const w=d._ceVNode||ee(s,i);return w.appContext=r,v===!0?v="svg":v===!1&&(v=void 0),e(w,u,v),c=!0,d._container=u,u.__vue_app__=d,Un(w.component)}},onUnmount(u){l.push(u)},unmount(){c&&(Ne(l,d._instance,16),e(null,d._container),delete d._container.__vue_app__)},provide(u,h){return r.provides[u]=h,d},runWithContext(u){const h=Mt;Mt=d;try{return u()}finally{Mt=h}}};return d}}let Mt=null;const vl=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Re(t)}Modifiers`]||e[`${Ct(t)}Modifiers`];function bl(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||Z;let i=n;const r=t.startsWith("update:"),o=r&&vl(s,t.slice(7));o&&(o.trim&&(i=n.map(u=>se(u)?u.trim():u)),o.number&&(i=i.map(Ri)));let l,c=s[l=Bn(t)]||s[l=Bn(Re(t))];!c&&r&&(c=s[l=Bn(Ct(t))]),c&&Ne(c,e,6,i);const d=s[l+"Once"];if(d){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Ne(d,e,6,i)}}const Sl=new WeakMap;function br(e,t,n=!1){const s=n?Sl:t.emitsCache,i=s.get(e);if(i!==void 0)return i;const r=e.emits;let o={},l=!1;if(!D(e)){const c=d=>{const u=br(d,t,!0);u&&(l=!0,le(o,u))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!r&&!l?(W(e)&&s.set(e,null),null):(P(r)?r.forEach(c=>o[c]=null):le(o,r),W(e)&&s.set(e,o),o)}function Vn(e,t){return!e||!Nn(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),B(e,t[0].toLowerCase()+t.slice(1))||B(e,Ct(t))||B(e,t))}function ni(e){const{type:t,vnode:n,proxy:s,withProxy:i,propsOptions:[r],slots:o,attrs:l,emit:c,render:d,renderCache:u,props:h,data:v,setupState:w,ctx:F,inheritAttrs:O}=e,k=xn(e);let j,L;try{if(n.shapeFlag&4){const M=i||s,z=M;j=Ke(d.call(z,M,u,h,w,v,F)),L=l}else{const M=t;j=Ke(M.length>1?M(h,{attrs:l,slots:o,emit:c}):M(h,null)),L=t.props?l:xl(l)}}catch(M){Tt.length=0,Fn(M,e,1),j=ee(ge)}let V=j;if(L&&O!==!1){const M=Object.keys(L),{shapeFlag:z}=V;M.length&&z&7&&(r&&M.some(Pn)&&(L=wl(L,r)),V=dt(V,L,!1,!0))}if(n.dirs&&(V=dt(V,null,!1,!0),V.dirs=V.dirs?V.dirs.concat(n.dirs):n.dirs),n.transition){const M=kn(V.type)&&wn(V)||V;Nt(M,n.transition)}return j=V,xn(k),j}function Sr(e,t=!0){let n;for(let s=0;s<e.length;s++){const i=e[s];if(Xt(i)){if(i.type!==ge||i.children==="v-if"){if(n)return;n=i}}else return}return n}const xl=e=>{let t;for(const n in e)(n==="class"||n==="style"||Nn(n))&&((t||(t={}))[n]=e[n]);return t},wl=(e,t)=>{const n={};for(const s in e)(!Pn(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Tl(e,t,n){const{props:s,children:i,component:r}=e,{props:o,children:l,patchFlag:c}=t,d=r.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?si(s,o,d):!!o;if(c&8){const u=t.dynamicProps;for(let h=0;h<u.length;h++){const v=u[h];if(xr(o,s,v)&&!Vn(d,v))return!0}}}else return(i||l)&&(!l||!l.$stable)?!0:s===o?!1:s?o?si(s,o,d):!0:!!o;return!1}function si(e,t,n){const s=Object.keys(t);if(s.length!==Object.keys(e).length)return!0;for(let i=0;i<s.length;i++){const r=s[i];if(!B(e,r)||xr(t,e,r)&&!Vn(n,r))return!0}return!1}function xr(e,t,n){const s=e[n],i=t[n];return n==="style"&&W(s)&&W(i)?!at(s,i):s!==i}function Al({vnode:e,parent:t,suspense:n},s){for(;t;){const i=t.subTree;if(i.suspense&&i.suspense.activeBranch===e&&(i.suspense.vnode.el=i.el=s,e=i),i===e)(e=t.vnode).el=s,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=s)}const wr={},Tr=()=>Object.create(wr),Ar=e=>Object.getPrototypeOf(e)===wr;function Cl(e,t,n,s=!1){const i={},r=Tr();e.propsDefaults=Object.create(null),Cr(e,t,i,r);for(const o in e.propsOptions[0])o in i||(i[o]=void 0);n?e.props=s?i:Po(i):e.type.props?e.props=i:e.props=r,e.attrs=r}function Ol(e,t,n,s){const{props:i,attrs:r,vnode:{patchFlag:o}}=e,l=U(i),[c]=e.propsOptions;let d=!1;if((s||o>0)&&!(o&16)){if(o&8){const u=e.vnode.dynamicProps;for(let h=0;h<u.length;h++){let v=u[h];if(Vn(e.emitsOptions,v))continue;const w=t[v];if(c)if(B(r,v))w!==r[v]&&(r[v]=w,d=!0);else{const F=Re(v);i[F]=ps(c,l,F,w,e,!1)}else w!==r[v]&&(r[v]=w,d=!0)}}}else{Cr(e,t,i,r)&&(d=!0);let u;for(const h in l)(!t||!B(t,h)&&((u=Ct(h))===h||!B(t,u)))&&(c?n&&(n[h]!==void 0||n[u]!==void 0)&&(i[h]=ps(c,l,h,void 0,e,!0)):delete i[h]);if(r!==l)for(const h in r)(!t||!B(t,h))&&(delete r[h],d=!0)}d&&tt(e.attrs,"set","")}function Cr(e,t,n,s){const[i,r]=e.propsOptions;let o=!1,l;if(t)for(let c in t){if(Vt(c))continue;const d=t[c];let u;i&&B(i,u=Re(c))?!r||!r.includes(u)?n[u]=d:(l||(l={}))[u]=d:Vn(e.emitsOptions,c)||(!(c in s)||d!==s[c])&&(s[c]=d,o=!0)}if(r){const c=U(n),d=l||Z;for(let u=0;u<r.length;u++){const h=r[u];n[h]=ps(i,c,h,d[h],e,!B(d,h))}}return o}function ps(e,t,n,s,i,r){const o=e[n];if(o!=null){const l=B(o,"default");if(l&&s===void 0){const c=o.default;if(o.type!==Function&&!o.skipFactory&&D(c)){const{propsDefaults:d}=i;if(n in d)s=d[n];else{const u=an(i);s=d[n]=c.call(null,t),u()}}else s=c;i.ce&&i.ce._setProp(n,s)}o[0]&&(r&&!l?s=!1:o[1]&&(s===""||s===Ct(n))&&(s=!0))}return s}const El=new WeakMap;function Or(e,t,n=!1){const s=n?El:t.propsCache,i=s.get(e);if(i)return i;const r=e.props,o={},l=[];let c=!1;if(!D(e)){const u=h=>{c=!0;const[v,w]=Or(h,t,!0);le(o,v),w&&l.push(...w)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!c)return W(e)&&s.set(e,xt),xt;if(P(r))for(let u=0;u<r.length;u++){const h=Re(r[u]);ii(h)&&(o[h]=Z)}else if(r)for(const u in r){const h=Re(u);if(ii(h)){const v=r[u],w=o[h]=P(v)||D(v)?{type:v}:le({},v),F=w.type;let O=!1,k=!0;if(P(F))for(let j=0;j<F.length;++j){const L=F[j],V=D(L)&&L.name;if(V==="Boolean"){O=!0;break}else V==="String"&&(k=!1)}else O=D(F)&&F.name==="Boolean";w[0]=O,w[1]=k,(O||B(w,"default"))&&l.push(h)}}const d=[o,l];return W(e)&&s.set(e,d),d}function ii(e){return e[0]!=="$"&&!Vt(e)}const $s=e=>e==="_"||e==="_ctx"||e==="$stable",Rs=e=>P(e)?e.map(Ke):[Ke(e)],Il=(e,t,n)=>{if(t._n)return t;const s=lr((...i)=>Rs(t(...i)),n);return s._c=!1,s},Er=(e,t,n)=>{const s=e._ctx;for(const i in e){if($s(i))continue;const r=e[i];if(D(r))t[i]=Il(i,r,s);else if(r!=null){const o=Rs(r);t[i]=()=>o}}},Ir=(e,t)=>{const n=Rs(t);e.slots.default=()=>n},Mr=(e,t,n)=>{for(const s in t)(n||!$s(s))&&(e[s]=t[s])},Ml=(e,t,n)=>{const s=e.slots=Tr();if(e.vnode.shapeFlag&32){const i=t._;i?(Mr(s,t,n),n&&$i(s,"_",i,!0)):Er(t,s)}else t&&Ir(e,t)},Nl=(e,t,n)=>{const{vnode:s,slots:i}=e;let r=!0,o=Z;if(s.shapeFlag&32){const l=t._;l?n&&l===1?r=!1:Mr(i,t,n):(r=!t.$stable,Er(t,i)),o=t}else t&&(Ir(e,t),o={default:1});if(r)for(const l in i)!$s(l)&&o[l]==null&&delete i[l]},xe=Dl;function Pl(e){return $l(e)}function $l(e,t){const n=Rn();n.__VUE__=!0;const{insert:s,remove:i,patchProp:r,createElement:o,createText:l,createComment:c,setText:d,setElementText:u,parentNode:h,nextSibling:v,setScopeId:w=We,insertStaticContent:F}=e,O=(a,f,p,_=null,m=null,y=null,x=void 0,S=null,b=!!f.dynamicChildren)=>{if(a===f)return;a&&!St(a,f)&&(_=fn(a),Pe(a,m,y,!0),a=null),f.patchFlag===-2&&(b=!1,f.dynamicChildren=null),f.dynamicChildren&&a&&a.dynamicChildren&&a.dynamicChildren.hasOnce&&(f.dynamicChildren===xt&&(f.dynamicChildren=[]),f.dynamicChildren.hasOnce=!0);const{type:g,ref:N,shapeFlag:T}=f;switch(g){case Kn:k(a,f,p,_);break;case ge:j(a,f,p,_);break;case es:a==null&&L(f,p,_,x);break;case ie:A(a,f,p,_,m,y,x,S,b);break;default:T&1?z(a,f,p,_,m,y,x,S,b):T&6?J(a,f,p,_,m,y,x,S,b):(T&64||T&128)&&g.process(a,f,p,_,m,y,x,S,b,$t)}N!=null&&m?Bt(N,a&&a.ref,y,f||a,!f):N==null&&a&&a.ref!=null&&Bt(a.ref,null,y,a,!0)},k=(a,f,p,_)=>{if(a==null)s(f.el=l(f.children),p,_);else{const m=f.el=a.el;f.children!==a.children&&d(m,f.children)}},j=(a,f,p,_)=>{a==null?s(f.el=c(f.children||""),p,_):f.el=a.el},L=(a,f,p,_)=>{[a.el,a.anchor]=F(a.children,f,p,_,a.el,a.anchor)},V=({el:a,anchor:f},p,_)=>{let m;for(;a&&a!==f;)m=v(a),s(a,p,_),a=m;s(f,p,_)},M=({el:a,anchor:f})=>{let p;for(;a&&a!==f;)p=v(a),i(a),a=p;i(f)},z=(a,f,p,_,m,y,x,S,b)=>{if(f.type==="svg"?x="svg":f.type==="math"&&(x="mathml"),a==null)ce(f,p,_,m,y,x,S,b);else{const g=a.el&&a.el._isVueCE?a.el:null;try{g&&g._beginPatch(),H(a,f,m,y,x,S,b)}finally{g&&g._endPatch()}}},ce=(a,f,p,_,m,y,x,S)=>{let b,g;const{props:N,shapeFlag:T,transition:$,dirs:R}=a;if(b=a.el=o(a.type,y,N&&N.is,N),T&8?u(b,a.children):T&16&&Se(a.children,b,null,_,m,Qn(a,y),x,S),R&&gt(a,null,_,"created"),ye(b,a,a.scopeId,x,_),N){for(const Y in N)Y!=="value"&&!Vt(Y)&&r(b,Y,null,N[Y],y,_);"value"in N&&r(b,"value",null,N.value,y),(g=N.onVnodeBeforeMount)&&He(g,_,a)}R&&gt(a,null,_,"beforeMount");const K=Rl(m,$);K&&$.beforeEnter(b),s(b,f,p),((g=N&&N.onVnodeMounted)||K||R)&&xe(()=>{try{g&&He(g,_,a),K&&$.enter(b),R&&gt(a,null,_,"mounted")}finally{}},m)},ye=(a,f,p,_,m)=>{if(p&&w(a,p),_)for(let y=0;y<_.length;y++)w(a,_[y]);if(m){let y=m.subTree;if(f===y||$r(y.type)&&(y.ssContent===f||y.ssFallback===f)){const x=m.vnode;ye(a,x,x.scopeId,x.slotScopeIds,m.parent)}}},Se=(a,f,p,_,m,y,x,S,b=0)=>{for(let g=b;g<a.length;g++){const N=a[g]=S?et(a[g]):Ke(a[g]);O(null,N,f,p,_,m,y,x,S)}},H=(a,f,p,_,m,y,x)=>{const S=f.el=a.el;let{patchFlag:b,dynamicChildren:g,dirs:N}=f;b|=a.patchFlag&16;const T=a.props||Z,$=f.props||Z;let R;if(p&&mt(p,!1),(R=$.onVnodeBeforeUpdate)&&He(R,p,f,a),N&&gt(f,a,p,"beforeUpdate"),p&&mt(p,!0),g&&(!a.dynamicChildren||a.dynamicChildren.length!==g.length)&&(b=0,x=!1,g=null),(T.innerHTML&&$.innerHTML==null||T.textContent&&$.textContent==null)&&u(S,""),g?q(a.dynamicChildren,g,S,p,_,Qn(f,m),y):x||X(a,f,S,null,p,_,Qn(f,m),y,!1),b>0){if(b&16)te(S,T,$,p,m);else if(b&2&&T.class!==$.class&&r(S,"class",null,$.class,m),b&4&&r(S,"style",T.style,$.style,m),b&8){const K=f.dynamicProps;for(let Y=0;Y<K.length;Y++){const G=K[Y],re=T[G],ue=$[G];(ue!==re||G==="value")&&r(S,G,re,ue,m,p)}}b&1&&a.children!==f.children&&u(S,f.children)}else!x&&g==null&&te(S,T,$,p,m);((R=$.onVnodeUpdated)||N)&&xe(()=>{R&&He(R,p,f,a),N&&gt(f,a,p,"updated")},_)},q=(a,f,p,_,m,y,x)=>{for(let S=0;S<f.length;S++){const b=a[S],g=f[S],N=b.el||gs(b),T=N&&(b.type===ie||!St(b,g)||b.shapeFlag&198)?h(N):p;O(b,g,T,null,_,m,y,x,!0)}},te=(a,f,p,_,m)=>{if(f!==p){if(f!==Z)for(const y in f)!Vt(y)&&!(y in p)&&r(a,y,f[y],null,m,_);for(const y in p){if(Vt(y))continue;const x=p[y],S=f[y];x!==S&&y!=="value"&&r(a,y,S,x,m,_)}"value"in p&&r(a,"value",f.value,p.value,m)}},A=(a,f,p,_,m,y,x,S,b)=>{const g=f.el=a?a.el:l(""),N=f.anchor=a?a.anchor:l("");let{patchFlag:T,dynamicChildren:$,slotScopeIds:R}=f;R&&(S=S?S.concat(R):R),a==null?(s(g,p,_),s(N,p,_),Se(f.children||[],p,N,m,y,x,S,b)):T>0&&T&64&&$&&a.dynamicChildren&&a.dynamicChildren.length===$.length?(q(a.dynamicChildren,$,p,m,y,x,S),(f.key!=null||m&&f===m.subTree)&&Nr(a,f,!0)):X(a,f,p,N,m,y,x,S,b)},J=(a,f,p,_,m,y,x,S,b)=>{f.slotScopeIds=S,a==null?f.shapeFlag&512?m.ctx.activate(f,p,_,x,b):he(f,p,_,m,y,x,b):Ye(a,f,b)},he=(a,f,p,_,m,y,x)=>{const S=a.component=Kl(a,_,m);if(Hn(a)&&(S.ctx.renderer=$t),Ul(S,!1,x),S.asyncDep){if(m&&m.registerDep(S,ae,x,y),!a.el){const b=S.subTree=ee(ge);j(null,b,f,p),a.placeholder=b.el}}else ae(S,a,f,p,m,y,x)},Ye=(a,f,p)=>{const _=f.component=a.component;if(Tl(a,f,p))if(_.asyncDep&&!_.asyncResolved){f.el=a.el,f.placeholder=a.placeholder,ne(_,f,p);return}else _.next=f,_.update();else f.el=a.el,f.placeholder=a.placeholder,_.vnode=f},ae=(a,f,p,_,m,y,x)=>{const S=()=>{if(a.isMounted){let{next:T,bu:$,u:R,parent:K,vnode:Y}=a;{const Fe=Pr(a);if(Fe){T&&(T.el=Y.el,ne(a,T,x)),Fe.asyncDep.then(()=>{xe(()=>{a.isUnmounted||g()},m)});return}}let G=T,re;mt(a,!1),T?(T.el=Y.el,ne(a,T,x)):T=Y,$&&yn($),(re=T.props&&T.props.onVnodeBeforeUpdate)&&He(re,K,T,Y),mt(a,!0);const ue=ni(a),De=a.subTree;a.subTree=ue,O(De,ue,h(De.el),fn(De),a,m,y),T.el=ue.el,G===null&&Al(a,ue.el),R&&xe(R,m),(re=T.props&&T.props.onVnodeUpdated)&&xe(()=>He(re,K,T,Y),m)}else{let T;const{el:$,props:R}=f,{bm:K,m:Y,parent:G,root:re,type:ue}=a,De=Wt(f);mt(a,!1),K&&yn(K),!De&&(T=R&&R.onVnodeBeforeMount)&&He(T,G,f),mt(a,!0);{re.ce&&re.ce._hasShadowRoot()&&re.ce._injectChildStyle(ue,a.parent?a.parent.type:void 0);const Fe=a.subTree=ni(a);O(null,Fe,p,_,a,m,y),f.el=Fe.el}if(Y&&xe(Y,m),!De&&(T=R&&R.onVnodeMounted)){const Fe=f;xe(()=>He(T,G,Fe),m)}(f.shapeFlag&256||G&&Wt(G.vnode)&&G.vnode.shapeFlag&256)&&a.a&&xe(a.a,m),a.isMounted=!0,f=p=_=null}};a.scope.on();const b=a.effect=new ki(S);a.scope.off();const g=a.update=b.run.bind(b),N=a.job=b.runIfDirty.bind(b);N.i=a,N.id=a.uid,b.scheduler=()=>Ms(N),mt(a,!0),g()},ne=(a,f,p)=>{f.component=a;const _=a.vnode.props;a.vnode=f,a.next=null,Ol(a,f.props,_,p),Nl(a,f.children,p),Ge(),sr(a),ze()},X=(a,f,p,_,m,y,x,S,b=!1)=>{const g=a&&a.children,N=a?a.shapeFlag:0,T=f.children,{patchFlag:$,shapeFlag:R}=f;if($>0){if($&128){un(g,T,p,_,m,y,x,S,b);return}else if($&256){ht(g,T,p,_,m,y,x,S,b);return}}R&8?(N&16&&Pt(g,m,y),T!==g&&u(p,T)):N&16?R&16?un(g,T,p,_,m,y,x,S,b):Pt(g,m,y,!0):(N&8&&u(p,""),R&16&&Se(T,p,_,m,y,x,S,b))},ht=(a,f,p,_,m,y,x,S,b)=>{a=a||xt,f=f||xt;const g=a.length,N=f.length,T=Math.min(g,N);let $;for($=0;$<T;$++){const R=f[$]=b?et(f[$]):Ke(f[$]);O(a[$],R,p,null,m,y,x,S,b)}g>N?Pt(a,m,y,!0,!1,T):Se(f,p,_,m,y,x,S,b,T)},un=(a,f,p,_,m,y,x,S,b)=>{let g=0;const N=f.length;let T=a.length-1,$=N-1;for(;g<=T&&g<=$;){const R=a[g],K=f[g]=b?et(f[g]):Ke(f[g]);if(St(R,K))O(R,K,p,null,m,y,x,S,b);else break;g++}for(;g<=T&&g<=$;){const R=a[T],K=f[$]=b?et(f[$]):Ke(f[$]);if(St(R,K))O(R,K,p,null,m,y,x,S,b);else break;T--,$--}if(g>T){if(g<=$){const R=$+1,K=R<N?f[R].el:_;for(;g<=$;)O(null,f[g]=b?et(f[g]):Ke(f[g]),p,K,m,y,x,S,b),g++}}else if(g>$)for(;g<=T;)Pe(a[g],m,y,!0),g++;else{const R=g,K=g,Y=new Map;for(g=K;g<=$;g++){const we=f[g]=b?et(f[g]):Ke(f[g]);we.key!=null&&Y.set(we.key,g)}let G,re=0;const ue=$-K+1;let De=!1,Fe=0;const Rt=new Array(ue);for(g=0;g<ue;g++)Rt[g]=0;for(g=R;g<=T;g++){const we=a[g];if(re>=ue){Pe(we,m,y,!0);continue}let ke;if(we.key!=null)ke=Y.get(we.key);else for(G=K;G<=$;G++)if(Rt[G-K]===0&&St(we,f[G])){ke=G;break}ke===void 0?Pe(we,m,y,!0):(Rt[ke-K]=g+1,ke>=Fe?Fe=ke:De=!0,O(we,f[ke],p,null,m,y,x,S,b),re++)}const js=De?Ll(Rt):xt;for(G=js.length-1,g=ue-1;g>=0;g--){const we=K+g,ke=f[we],Vs=f[we+1],Ks=we+1<N?Vs.el||gs(Vs):_;Rt[g]===0?O(null,ke,p,Ks,m,y,x,S,b):De&&(G<0||g!==js[G]?pt(ke,p,Ks,2):G--)}}},pt=(a,f,p,_,m=null)=>{const{el:y,type:x,transition:S,children:b,shapeFlag:g}=a;if(g&6){pt(a.component.subTree,f,p,_);return}if(g&128){a.suspense.move(f,p,_);return}if(g&64){x.move(a,f,p,$t);return}if(x===ie){s(y,f,p);for(let T=0;T<b.length;T++)pt(b[T],f,p,_);s(a.anchor,f,p);return}if(x===es){V(a,f,p);return}if(_!==2&&g&1&&S)if(_===0)S.persisted&&!y[Oe]?s(y,f,p):(S.beforeEnter(y),s(y,f,p),xe(()=>S.enter(y),m));else{const{leave:T,delayLeave:$,afterLeave:R}=S,K=()=>{a.ctx.isUnmounted?i(y):s(y,f,p)},Y=()=>{const G=y._isLeaving||!!y[Oe];y._isLeaving&&y[Oe](!0),S.persisted&&!G?K():T(y,()=>{K(),R&&R()})};$?$(y,K,Y):Y()}else s(y,f,p)},Pe=(a,f,p,_=!1,m=!1)=>{const{type:y,props:x,ref:S,children:b,dynamicChildren:g,shapeFlag:N,patchFlag:T,dirs:$,cacheIndex:R,memo:K}=a;if((T===-2||g&&g.hasOnce)&&(m=!1),S!=null&&(Ge(),Bt(S,null,p,a,!0),ze()),R!=null&&(!a.ctx||a.ctx===f)&&(f.renderCache[R]=void 0),N&256){f.ctx.deactivate(a);return}const Y=N&1&&$,G=!Wt(a);let re;if(G&&(re=x&&x.onVnodeBeforeUnmount)&&He(re,f,a),N&6)Xr(a.component,p,_);else{if(N&128){a.suspense.unmount(p,_);return}Y&&gt(a,null,f,"beforeUnmount"),N&64?a.type.remove(a,f,p,$t,_):g&&!g.hasOnce&&(y!==ie||T>0&&T&64)?Pt(g,f,p,!1,!0):(y===ie&&T&384||!m&&N&16)&&Pt(b,f,p),_&&Fs(a)}const ue=K!=null&&R==null;(G&&(re=x&&x.onVnodeUnmounted)||Y||ue)&&xe(()=>{re&&He(re,f,a),Y&&gt(a,null,f,"unmounted"),ue&&(a.el=null)},p)},Fs=a=>{const{type:f,el:p,anchor:_,transition:m}=a,y=f===ie;if(y&&!m){ks(p,_);return}if(f===es){M(a),m&&!m.persisted&&m.afterLeave&&m.afterLeave();return}const x=y?Yt(a):a,S=()=>{y?h(p)&&ks(p,_):i(p),m&&!m.persisted&&m.afterLeave&&m.afterLeave()};if(x&&x.shapeFlag&1&&m&&!m.persisted){const{leave:b,delayLeave:g}=m,N=x.el,T=()=>b(N,S);g?g(N,S,T):T()}else S()},ks=(a,f)=>{let p;for(;a!==f;)p=v(a),i(a),a=p;i(f)},Xr=(a,f,p)=>{const{bum:_,scope:m,job:y,subTree:x,um:S,m:b,a:g}=a;ri(b),ri(g),_&&yn(_),m.stop(),y?(y.flags|=8,Pe(x,a,f,p)):a.vnode.el&&x&&(x.transition=a.vnode.transition,Pe(x,a,f,p)),S&&xe(S,f),xe(()=>{a.isUnmounted=!0},f)},Pt=(a,f,p,_=!1,m=!1,y=0)=>{for(let x=y;x<a.length;x++)Pe(a[x],f,p,_,m)},fn=a=>{if(a.shapeFlag&6)return fn(a.component.subTree);if(a.shapeFlag&128)return a.suspense.next();const f=v(a.anchor||a.el),p=f&&f[Yo];return p?v(p):f},Hs=(a,f,p)=>{const _=a&&f._vnode?void 0:a&&a.component?a.component.uid:Vl();Bo(()=>{a==null?f._vnode&&Pe(f._vnode,null,null,!0):O(f._vnode||null,a,f,null,null,null,p),f._vnode=a},_)},$t={p:O,um:Pe,m:pt,r:Fs,mt:he,mc:Se,pc:X,pbc:q,n:fn,o:e};return{render:Hs,hydrate:void 0,createApp:_l(Hs)}}function Qn({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function mt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Rl(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Nr(e,t,n=!1){const s=e.children,i=t.children;if(P(s)&&P(i))for(let r=0;r<s.length;r++){const o=s[r];let l=i[r];l.shapeFlag&1&&!l.dynamicChildren&&((l.patchFlag<=0||l.patchFlag===32)&&(l=i[r]=et(i[r]),l.el=o.el),!n&&l.patchFlag!==-2&&Nr(o,l)),l.type===Kn&&(l.patchFlag===-1&&(l=i[r]=et(l)),l.el=o.el),l.type===ge&&!l.el&&(l.el=o.el)}}function Ll(e){const t=e.slice(),n=[0];let s,i,r,o,l;const c=e.length;for(s=0;s<c;s++){const d=e[s];if(d!==0){if(i=n[n.length-1],e[i]<d){t[s]=i,n.push(s);continue}for(r=0,o=n.length-1;r<o;)l=r+o>>1,e[n[l]]<d?r=l+1:o=l;d<e[n[r]]&&(r>0&&(t[s]=n[r-1]),n[r]=s)}}for(r=n.length,o=n[r-1];r-- >0;)n[r]=o,o=t[o];return n}function Pr(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Pr(t)}function ri(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function gs(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?gs(t.subTree):null}const $r=e=>e.__isSuspense;function Dl(e,t){t&&t.pendingBranch?P(e)?t.effects.push(...e):t.effects.push(e):Uo(e)}const ie=Symbol.for("v-fgt"),Kn=Symbol.for("v-txt"),ge=Symbol.for("v-cmt"),es=Symbol.for("v-stc"),Tt=[];let Ae=null;function C(e=!1){Tt.push(Ae=e?null:[])}function Rr(){Tt.pop(),Ae=Tt[Tt.length-1]||null}let Zt=1;function Cn(e,t=!1){Zt+=e,e<0&&Ae&&t&&(Ae.hasOnce=!0)}function Lr(e){return e.dynamicChildren=Zt>0?Ae||xt:null,Rr(),Zt>0&&Ae&&Ae.push(e),e}function I(e,t,n,s,i,r){return Lr(E(e,t,n,s,i,r,!0))}function bt(e,t,n,s,i){return Lr(ee(e,t,n,s,i,!0))}function Xt(e){return e?e.__v_isVNode===!0:!1}function St(e,t){return e.type===t.type&&e.key===t.key}const Dr=({key:e})=>e??null,vn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?se(e)||me(e)||D(e)?{i:Ee,r:e,k:t,f:!!n}:e:null);function E(e,t=null,n=null,s=0,i=null,r=e===ie?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Dr(t),ref:t&&vn(t),scopeId:or,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:s,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Ee};return l?(On(c,n),r&128&&e.normalize(c)):n&&(c.shapeFlag|=se(n)?8:16),Zt>0&&!o&&Ae&&(c.patchFlag>0||r&6)&&c.patchFlag!==32&&Ae.push(c),c}const ee=Fl;function Fl(e,t=null,n=null,s=0,i=null,r=!1){if((!e||e===ul)&&(e=ge),Xt(e)){const l=dt(e,t,!0);return n&&On(l,n),Zt>0&&!r&&Ae&&(l.shapeFlag&6?Ae[Ae.indexOf(e)]=l:Ae.push(l)),l.patchFlag=-2,l}if(Gl(e)&&(e=e.__vccOpts),t){t=kl(t);let{class:l,style:c}=t;l&&!se(l)&&(t.class=on(l)),W(c)&&(Is(c)&&!P(c)&&(c=le({},c)),t.style=Ss(c))}const o=se(e)?1:$r(e)?128:kn(e)?64:W(e)?4:D(e)?2:0;return E(e,t,n,s,i,o,r,!0)}function kl(e){return e?Is(e)||Ar(e)?le({},e):e:null}function dt(e,t,n=!1,s=!1){const{props:i,ref:r,patchFlag:o,children:l,transition:c}=e,d=t?Hl(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:d,key:d&&Dr(d),ref:t&&t.ref?n&&r?P(r)?r.concat(vn(t)):[r,vn(t)]:vn(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ie?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&dt(e.ssContent),ssFallback:e.ssFallback&&dt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return c&&s&&Nt(u,c.clone(u)),u}function cn(e=" ",t=0){return ee(Kn,null,e,t)}function Qt(e="",t=!1){return t?(C(),bt(ge,null,e)):ee(ge,null,e)}function Ke(e){return e==null||typeof e=="boolean"?ee(ge):P(e)?ee(ie,null,e.slice()):Xt(e)?et(e):ee(Kn,null,String(e))}function et(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:dt(e)}function On(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(P(t))n=16;else if(typeof t=="object")if(s&65){const i=t.default;i&&(i._c&&(i._d=!1),On(e,i()),i._c&&(i._d=!0));return}else{n=32;const i=t._;!i&&!Ar(t)?t._ctx=Ee:i===3&&Ee&&(Ee.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(D(t)){if(s&65){On(e,{default:t});return}t={default:t,_ctx:Ee},n=32}else t=String(t),s&64?(n=16,t=[cn(t)]):n=8;e.children=t,e.shapeFlag|=n}function Hl(...e){const t={};for(let n=0;n<e.length;n++){const s=e[n];for(const i in s)if(i==="class")t.class!==s.class&&(t.class=on([t.class,s.class]));else if(i==="style")t.style=Ss([t.style,s.style]);else if(Nn(i)){const r=t[i],o=s[i];o&&r!==o&&!(P(r)&&r.includes(o))?t[i]=r?[].concat(r,o):o:o==null&&r==null&&!Pn(i)&&(t[i]=o)}else i!==""&&(t[i]=s[i])}return t}function He(e,t,n,s=null){Ne(e,t,7,[n,s])}const jl=vr();let Fr=0;function Vl(){return Fr}function Kl(e,t,n){const s=e.type,i=(t?t.appContext:e.appContext)||jl,r={uid:Fr++,vnode:e,type:s,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new po(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Or(s,i),emitsOptions:br(s,i),emit:null,emitted:null,propsDefaults:Z,inheritAttrs:s.inheritAttrs,ctx:Z,data:Z,props:Z,attrs:Z,slots:Z,refs:Z,setupState:Z,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return r.ctx={_:r},r.root=t?t.root:r,r.emit=bl.bind(null,r),e.ce&&e.ce(r),r}let be=null;const kr=()=>be||Ee;let En,en;{const e=Rn(),t=(n,s)=>{let i;return(i=e[n])||(i=e[n]=[]),i.push(s),r=>{i.length>1?i.forEach(o=>o(r)):i[0](r)}};En=t("__VUE_INSTANCE_SETTERS__",n=>be=n),en=t("__VUE_SSR_SETTERS__",n=>tn=n)}const an=e=>{const t=be;return En(e),e.scope.on(),()=>{e.scope.off(),En(t)}},oi=()=>{be&&be.scope.off(),En(null)};function Hr(e){return e.vnode.shapeFlag&4}let tn=!1;function Ul(e,t=!1,n=!1){t&&en(t);const{props:s,children:i}=e.vnode,r=Hr(e);Cl(e,s,r,t),Ml(e,i,n||t);const o=r?Bl(e,t):void 0;return t&&en(!1),o}function Bl(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,fl);const{setup:s}=n;if(s){Ge();const i=e.setupContext=s.length>1?ql(e):null,r=an(e),o=ln(s,e,0,[e.props,i]),l=Ii(o);if(ze(),r(),(l||e.sp)&&!Wt(e)&&pr(e),l){if(o.then(oi,oi),t)return o.then(c=>{en(!0);try{li(e,c,t)}finally{en(!1)}}).catch(c=>{Fn(c,e,0)});e.asyncDep=o}else li(e,o)}else jr(e)}function li(e,t,n){D(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:W(t)&&(e.setupState=Qi(t)),jr(e)}function jr(e,t,n){const s=e.type;e.render||(e.render=s.render||We);{const i=an(e);Ge();try{dl(e)}finally{ze(),i()}}}const Wl={get(e,t){return pe(e,"get",""),e[t]}};function ql(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Wl),slots:e.slots,emit:e.emit,expose:t}}function Un(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Qi($o(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in qt)return qt[n](e)},has(t,n){return n in t||n in qt}})):e.proxy}function Gl(e){return D(e)&&"__vccOpts"in e}const nn=(e,t)=>ko(e,t,tn);function zl(e,t,n){try{Cn(-1);const s=arguments.length;return s===2?W(t)&&!P(t)?Xt(t)?ee(e,null,[t]):ee(e,t):ee(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&Xt(n)&&(n=[n]),ee(e,t,n))}finally{Cn(1)}}const Jl="3.5.44";/**
14
+ * @vue/runtime-dom v3.5.44
15
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
16
+ * @license MIT
17
+ **/let ms;const ci=typeof window<"u"&&window.trustedTypes;if(ci)try{ms=ci.createPolicy("vue",{createHTML:e=>e})}catch{}const Vr=ms?e=>ms.createHTML(e):e=>e,Yl="http://www.w3.org/2000/svg",Zl="http://www.w3.org/1998/Math/MathML",Qe=typeof document<"u"?document:null,ai=Qe&&Qe.createElement("template"),Xl={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const i=t==="svg"?Qe.createElementNS(Yl,e):t==="mathml"?Qe.createElementNS(Zl,e):n?Qe.createElement(e,{is:n}):Qe.createElement(e);return e==="select"&&s&&s.multiple!=null&&i.setAttribute("multiple",s.multiple),i},createText:e=>Qe.createTextNode(e),createComment:e=>Qe.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Qe.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,i,r){const o=n?n.previousSibling:t.lastChild;if(i&&(i===r||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===r||!(i=i.nextSibling)););else{ai.innerHTML=Vr(s==="svg"?`<svg>${e}</svg>`:s==="mathml"?`<math>${e}</math>`:e);const l=ai.content;if(s==="svg"||s==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},rt="transition",Ft="animation",sn=Symbol("_vtc"),Kr={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Ql=le({},ur,Kr),ec=e=>(e.displayName="Transition",e.props=Ql,e),tc=ec((e,{slots:t})=>zl(Qo,nc(e),t)),yt=(e,t=[])=>{P(e)?e.forEach(n=>n(...t)):e&&e(...t)},ui=e=>e?P(e)?e.some(t=>t.length>1):e.length>1:!1;function nc(e){const t={};for(const A in e)A in Kr||(t[A]=e[A]);if(e.css===!1)return t;const{name:n="v",type:s,duration:i,enterFromClass:r=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=r,appearActiveClass:d=o,appearToClass:u=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:v=`${n}-leave-active`,leaveToClass:w=`${n}-leave-to`}=e,F=sc(i),O=F&&F[0],k=F&&F[1],{onBeforeEnter:j,onEnter:L,onEnterCancelled:V,onLeave:M,onLeaveCancelled:z,onBeforeAppear:ce=j,onAppear:ye=L,onAppearCancelled:Se=V}=t,H=(A,J,he,Ye)=>{A._enterCancelled=Ye,_t(A,J?u:l),_t(A,J?d:o),he&&he()},q=(A,J)=>{A._isLeaving=!1,_t(A,h),_t(A,w),_t(A,v),J&&J()},te=A=>(J,he)=>{const Ye=A?ye:L,ae=()=>H(J,A,he);yt(Ye,[J,ae]),fi(()=>{_t(J,A?c:r),Xe(J,A?u:l),ui(Ye)||di(J,s,O,ae)})};return le(t,{onBeforeEnter(A){yt(j,[A]),Xe(A,r),Xe(A,o)},onBeforeAppear(A){yt(ce,[A]),Xe(A,c),Xe(A,d)},onEnter:te(!1),onAppear:te(!0),onLeave(A,J){A._isLeaving=!0;const he=()=>q(A,J);Xe(A,h),A._enterCancelled?(Xe(A,v),gi(A)):(gi(A),Xe(A,v)),fi(()=>{A._isLeaving&&(_t(A,h),Xe(A,w),ui(M)||di(A,s,k,he))}),yt(M,[A,he])},onEnterCancelled(A){H(A,!1,void 0,!0),yt(V,[A])},onAppearCancelled(A){H(A,!0,void 0,!0),yt(Se,[A])},onLeaveCancelled(A){q(A),yt(z,[A])}})}function sc(e){if(e==null)return null;if(W(e))return[ts(e.enter),ts(e.leave)];{const t=ts(e);return[t,t]}}function ts(e){return so(e)}function Xe(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[sn]||(e[sn]=new Set)).add(t)}function _t(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[sn];n&&(n.delete(t),n.size||(e[sn]=void 0))}function fi(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let ic=0;function di(e,t,n,s){const i=e._endId=++ic,r=()=>{i===e._endId&&s()};if(n!=null)return setTimeout(r,n);const{type:o,timeout:l,propCount:c}=rc(e,t);if(!o)return s();const d=o+"end";let u=0;const h=()=>{e.removeEventListener(d,v),r()},v=w=>{w.target===e&&++u>=c&&h()};setTimeout(()=>{u<c&&h()},l+1),e.addEventListener(d,v)}function rc(e,t){const n=window.getComputedStyle(e),s=F=>(n[F]||"").split(", "),i=s(`${rt}Delay`),r=s(`${rt}Duration`),o=hi(i,r),l=s(`${Ft}Delay`),c=s(`${Ft}Duration`),d=hi(l,c);let u=null,h=0,v=0;t===rt?o>0&&(u=rt,h=o,v=r.length):t===Ft?d>0&&(u=Ft,h=d,v=c.length):(h=Math.max(o,d),u=h>0?o>d?rt:Ft:null,v=u?u===rt?r.length:c.length:0);const w=u===rt&&/\b(?:transform|all)(?:,|$)/.test(s(`${rt}Property`).toString());return{type:u,timeout:h,propCount:v,hasTransform:w}}function hi(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((n,s)=>pi(n)+pi(e[s])))}function pi(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function gi(e){return(e?e.ownerDocument:document).body.offsetHeight}function oc(e,t,n){const s=e[sn];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const mi=Symbol("_vod"),lc=Symbol("_vsh"),cc=Symbol(""),ac=/(?:^|;)\s*display\s*:/;function uc(e,t,n){const s=e.style,i=se(n);let r=!1;if(n&&!i){if(t)if(se(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&Ht(s,l,"")}else for(const o in t)n[o]==null&&Ht(s,o,"");for(const o in n){o==="display"&&(r=!0);const l=n[o];l!=null?dc(e,o,!se(t)&&t?t[o]:void 0,l)||Ht(s,o,l):Ht(s,o,"")}}else if(i){if(t!==n){const o=s[cc];o&&(n+=";"+o),s.cssText=n,r=ac.test(n)}}else t&&e.removeAttribute("style");mi in e&&((!i||t!==n)&&(e[mi]=r?s.display:""),e[lc]&&(s.display="none"))}const gn=/\s*!important$/;function Ht(e,t,n){if(P(n))n.forEach(s=>Ht(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))gn.test(n)?e.setProperty(t,n.replace(gn,""),"important"):e.setProperty(t,n);else{const s=fc(e,t);gn.test(n)?e.setProperty(Ct(s),n.replace(gn,""),"important"):e[s]=n}}const yi=["Webkit","Moz","ms"],ns={};function fc(e,t){const n=ns[t];if(n)return n;let s=Re(t);if(s!=="filter"&&s in e)return ns[t]=s;s=Pi(s);for(let i=0;i<yi.length;i++){const r=yi[i]+s;if(r in e)return ns[t]=r}return t}function dc(e,t,n,s){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&se(s)&&n===s}const _i="http://www.w3.org/1999/xlink";function vi(e,t,n,s,i,r=ao(t)){s&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(_i,t.slice(6,t.length)):e.setAttributeNS(_i,t,n):n==null||r&&!Li(n)?e.removeAttribute(t):e.setAttribute(t,r?"":qe(n)?String(n):n)}function bi(e,t,n,s,i){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?Vr(n):n);return}const r=e.tagName;if(t==="value"&&r!=="PROGRESS"&&!r.includes("-")){const l=r==="OPTION"?e.getAttribute("value")||"":e.value,c=n==null?e.type==="checkbox"?"on":"":String(n);(l!==c||!("_value"in e))&&(e.value=c),n==null&&e.removeAttribute(t),e._value=n;return}let o=!1;if(n===""||n==null){const l=typeof e[t];l==="boolean"?n=Li(n):n==null&&l==="string"?(n="",o=!0):l==="number"&&(n=0,o=!0)}try{e[t]=n}catch{}o&&e.removeAttribute(i||t)}function Ur(e,t,n,s){e.addEventListener(t,n,s)}function hc(e,t,n,s){e.removeEventListener(t,n,s)}const Si=Symbol("_vei");function pc(e,t,n,s,i=null){const r=e[Si]||(e[Si]={}),o=r[t];if(s&&o)o.value=s;else{const[l,c]=yc(t);if(s){const d=r[t]=bc(s,i);Ur(e,l,d,c)}else o&&(hc(e,l,o,c),r[t]=void 0)}}const gc=/(Once|Passive|Capture)$/,mc=/^on:?(?:Once|Passive|Capture)$/;function yc(e){let t,n;for(;(n=e.match(gc))&&!mc.test(e);)t||(t={}),e=e.slice(0,e.length-n[1].length),t[n[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):Ct(e.slice(2)),t]}let ss=0;const _c=Promise.resolve(),vc=()=>ss||(_c.then(()=>ss=0),ss=Date.now());function bc(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;const i=n.value;if(P(i)){const r=s.stopImmediatePropagation;s.stopImmediatePropagation=()=>{r.call(s),s._stopped=!0};const o=i.slice(),l=[s];for(let c=0;c<o.length&&!s._stopped;c++){const d=o[c];d&&Ne(d,t,5,l)}}else Ne(i,t,5,[s])};return n.value=e,n.attached=vc(),n}const xi=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Sc=(e,t,n,s,i,r)=>{const o=i==="svg";t==="class"?oc(e,s,o):t==="style"?uc(e,n,s):Nn(t)?Pn(t)||pc(e,t,n,s,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):xc(e,t,s,o))?(bi(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&vi(e,t,s,o,r,t!=="value")):e._isVueCE&&(wc(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!se(s)))?bi(e,Re(t),s,r,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),vi(e,t,s,o))};function xc(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&xi(t)&&D(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const i=e.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return xi(t)&&se(n)?!1:t in e}function wc(e,t){const n=e._def.props;if(!n)return!1;const s=Re(t);return Array.isArray(n)?n.some(i=>Re(i)===s):Object.keys(n).some(i=>Re(i)===s)}const wi=e=>{const t=e.props["onUpdate:modelValue"]||!1;return P(t)?n=>yn(t,n):t},is=Symbol("_assign"),Tc={deep:!0,created(e,{value:t,modifiers:{number:n}},s){e._modelValue=t,Ur(e,"change",()=>{const i=Array.prototype.filter.call(e.options,c=>c.selected).map(c=>n?Ri(In(c)):In(c)),r=e.multiple,o=r?At(e._modelValue)?new Set(i):i:i[0],l=e._pendingValue=[r,r?P(o)?i.slice():i:o];try{e[is](o)}finally{tr(()=>{e._pendingValue===l&&(e._pendingValue=void 0)})}}),e[is]=wi(s)},mounted(e,{value:t}){Ti(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[is]=wi(n)},updated(e,{value:t}){const n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!Ac(t,n[1],n[0]))&&Ti(e,t)}};function Ac(e,t,n){if(!n||P(e))return at(e,t);if(At(e)){if(e.size!==t.length)return!1;for(const s of t)if(!e.has(s))return!1;return!0}return!1}function Ti(e,t){const n=e.multiple,s=P(t);if(!(n&&!s&&!At(t))){for(let i=0,r=e.options.length;i<r;i++){const o=e.options[i],l=In(o);if(n)if(s){const c=typeof l;c==="string"||c==="number"?o.selected=t.some(d=>String(d)===String(l)):o.selected=ho(t,l)>-1}else o.selected=t.has(l);else if(at(In(o),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function In(e){return"_value"in e?e._value:e.value}const Cc=le({patchProp:Sc},Xl);let Ai;function Oc(){return Ai||(Ai=Pl(Cc))}const Ec=((...e)=>{const t=Oc().createApp(...e),{mount:n}=t;return t.mount=s=>{const i=Mc(s);if(!i)return;const r=t._component;!D(r)&&!r.render&&!r.template&&(r.template=i.innerHTML),i.nodeType===1&&(i.textContent="");const o=n(i,!1,Ic(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t});function Ic(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Mc(e){return se(e)?document.querySelector(e):e}const Nc={key:0,class:"unknown"},Pc={key:1},Be=st({__name:"ValueOrUnknown",props:{value:{}},setup(e){return(t,n)=>e.value===null||e.value===void 0||e.value===""?(C(),I("span",Nc,"UNKNOWN")):(C(),I("span",Pc,oe(e.value),1))}}),$c={id:"checkpoints",class:"panel","aria-labelledby":"checkpoints-h"},Rc={key:0,class:"empty"},Lc={key:1,class:"empty"},Dc={key:2,class:"cards"},Fc={class:"card-head"},kc={class:"muted"},Hc={key:0,class:"muted","data-testid":"checkpoint-count"},jc={class:"steps"},Vc={key:0},Kc={key:1,class:"muted"},Uc={key:2},Bc=st({__name:"CheckpointsPanel",props:{checkpoints:{}},setup(e){return(t,n)=>(C(),I("section",$c,[n[3]||(n[3]=E("h2",{id:"checkpoints-h"},"Checkpoints",-1)),n[4]||(n[4]=E("p",{class:"muted"},"Latest checkpoint per active mission",-1)),e.checkpoints===null?(C(),I("p",Rc,[...n[0]||(n[0]=[E("span",{class:"unknown"},"NOT AVAILABLE",-1)])])):e.checkpoints.length===0?(C(),I("p",Lc,"No checkpoints recorded.")):(C(),I("ul",Dc,[(C(!0),I(ie,null,ft(e.checkpoints,s=>(C(),I("li",{key:s.id,class:"card","data-testid":"checkpoint"},[E("div",Fc,[E("code",null,oe(s.id),1),E("span",kc,[ee(Be,{value:s.createdAt},null,8,["value"])])]),s.recordedCount!==void 0?(C(),I("p",Hc,oe(s.recordedCount)+" recorded "+oe(s.recordedCount===1?"checkpoint":"checkpoints"),1)):Qt("",!0),E("p",null,[ee(Be,{value:s.summary},null,8,["value"])]),E("div",jc,[n[2]||(n[2]=E("h4",null,[cn("Remaining steps "),E("span",{class:"tag"},"historical record as of this checkpoint, not the current plan")],-1)),s.remainingSteps===null?(C(),I("p",Vc,[...n[1]||(n[1]=[E("span",{class:"unknown"},"UNKNOWN",-1)])])):s.remainingSteps.length===0?(C(),I("p",Kc,"None recorded.")):(C(),I("ul",Uc,[(C(!0),I(ie,null,ft(s.remainingSteps,(i,r)=>(C(),I("li",{key:r},oe(i),1))),128))]))])]))),128))]))]))}}),Wc={id:"mission",class:"panel","aria-labelledby":"mission-h"},qc={key:0,class:"empty"},Gc={key:1,class:"empty"},zc={key:2,class:"cards"},Jc={class:"card-head"},Yc={class:"status status-active"},Zc={class:"facts compact"},Xc=st({__name:"CurrentMission",props:{missions:{}},setup(e){const t=e,n=nn(()=>(t.missions??[]).filter(s=>s.status==="in_progress"));return(s,i)=>(C(),I("section",Wc,[i[3]||(i[3]=E("h2",{id:"mission-h"},"Current Mission",-1)),e.missions===null?(C(),I("p",qc,[...i[0]||(i[0]=[E("span",{class:"unknown"},"NOT AVAILABLE",-1)])])):n.value.length===0?(C(),I("p",Gc,"No active missions.")):(C(),I("ul",zc,[(C(!0),I(ie,null,ft(n.value,r=>(C(),I("li",{key:r.id,class:"card","data-testid":"mission"},[E("div",Jc,[E("code",null,oe(r.id),1),E("span",Yc,oe(r.status),1)]),E("h3",null,[ee(Be,{value:r.title},null,8,["value"])]),E("p",null,[ee(Be,{value:r.summary},null,8,["value"])]),E("dl",Zc,[i[1]||(i[1]=E("dt",null,"Started",-1)),E("dd",null,[ee(Be,{value:r.startedAt},null,8,["value"])]),i[2]||(i[2]=E("dt",null,"Updated",-1)),E("dd",null,[ee(Be,{value:r.updatedAt},null,8,["value"])])])]))),128))]))]))}}),Qc={id:"diagnostics",class:"panel","aria-labelledby":"diagnostics-h"},ea={class:"facts"},ta={key:0,class:"muted"},na={key:1,class:"muted"},sa={key:2,class:"empty"},ia={key:3,class:"diag"},ra={class:"sev"},oa={key:4,class:"empty"},la={key:5,class:"diag","data-testid":"missing"},ca=st({__name:"DiagnosticsPanel",props:{data:{}},setup(e){const t=e,n=nn(()=>{const s=t.data,i=[];s.overview.name===null&&i.push("overview.name"),s.overview.description===null&&i.push("overview.description"),s.overview.stateRevision===null&&i.push("overview.stateRevision"),s.overview.currentStory===null&&i.push("overview.currentStory"),s.roadmapText===null&&i.push("roadmapText"),s.missions===null&&i.push("missions"),s.checkpoints===null&&i.push("checkpoints");for(const r of s.missions??[])for(const o of["title","summary","startedAt","updatedAt"])r[o]===null&&i.push(`mission ${r.id}.${o}`);for(const r of s.checkpoints??[])for(const o of["createdAt","summary","remainingSteps"])r[o]===null&&i.push(`checkpoint ${r.id}.${o}`);return i});return(s,i)=>(C(),I("section",Qc,[i[1]||(i[1]=E("h2",{id:"diagnostics-h"},"Diagnostics",-1)),E("dl",ea,[i[0]||(i[0]=E("dt",null,"Data source",-1)),E("dd",null,oe(e.data.isDemo?"Synthetic demo fixtures (available)":"MONOLITH HTTP API (GET /api/dashboard)"),1)]),e.data.isDemo?(C(),I("p",ta," No runtime checks of a real project are performed. Security status of MONOLITH Core is not reported here. ")):(C(),I("p",na," Only the availability of the fixed source files is reported. Project validity and the security status of MONOLITH Core are not reported here. ")),i[2]||(i[2]=E("h3",null,"Messages",-1)),e.data.diagnostics.length===0?(C(),I("p",sa,"No diagnostic messages.")):(C(),I("ul",ia,[(C(!0),I(ie,null,ft(e.data.diagnostics,(r,o)=>(C(),I("li",{key:o,class:on(`sev-${r.severity}`),"data-testid":"diagnostic"},[E("span",ra,oe(r.severity),1),cn(" "+oe(r.message),1)],2))),128))])),i[3]||(i[3]=E("h3",null,"Missing values",-1)),n.value.length===0?(C(),I("p",oa,"None.")):(C(),I("ul",la,[(C(!0),I(ie,null,ft(n.value,r=>(C(),I("li",{key:r},[E("code",null,oe(r),1)]))),128))]))]))}}),aa={id:"overview",class:"panel","aria-labelledby":"overview-h"},ua={class:"facts"},fa={key:0,class:"story","data-testid":"current-story"},da=st({__name:"ProjectOverview",props:{overview:{}},setup(e){return(t,n)=>(C(),I("section",aa,[n[4]||(n[4]=E("h2",{id:"overview-h"},"Project Overview",-1)),E("dl",ua,[n[2]||(n[2]=E("dt",null,"Name",-1)),E("dd",null,[ee(Be,{value:e.overview.name},null,8,["value"])]),e.overview.description!==void 0?(C(),I(ie,{key:0},[n[0]||(n[0]=E("dt",null,"Description",-1)),E("dd",null,[ee(Be,{value:e.overview.description},null,8,["value"])])],64)):Qt("",!0),n[3]||(n[3]=E("dt",null,"State revision",-1)),E("dd",null,[ee(Be,{value:e.overview.stateRevision},null,8,["value"])]),e.overview.currentStory!==void 0?(C(),I(ie,{key:1},[n[1]||(n[1]=E("dt",null,"Current story",-1)),E("dd",null,[e.overview.currentStory?(C(),I("pre",fa,oe(e.overview.currentStory),1)):(C(),bt(Be,{key:1,value:null}))])],64)):Qt("",!0)])]))}}),ha={id:"roadmap",class:"panel","aria-labelledby":"roadmap-h"},pa={key:0,class:"empty"},ga={key:1,class:"empty"},ma={key:2,class:"roadmap","data-testid":"roadmap-text"},ya=st({__name:"RoadmapPanel",props:{text:{}},setup(e){return(t,n)=>(C(),I("section",ha,[n[1]||(n[1]=E("h2",{id:"roadmap-h"},"Roadmap",-1)),e.text===null?(C(),I("p",pa,[...n[0]||(n[0]=[E("span",{class:"unknown"},"NOT AVAILABLE",-1)])])):e.text.trim()===""?(C(),I("p",ga,"Roadmap is empty.")):(C(),I("pre",ma,oe(e.text),1))]))}}),Ls=[{id:"overview",label:"Project Overview"},{id:"mission",label:"Current Mission"},{id:"checkpoints",label:"Checkpoints"},{id:"roadmap",label:"Roadmap"},{id:"diagnostics",label:"Diagnostics"}],Br=Ls[0].id;function Wr(e){return Ls.some(t=>t.id===e)}function Ci(e){const t=e.replace(/^#/,"");return Wr(t)?t:Br}const qr=["classic","cosmic-glass"],ys="classic",Gr="monolith.skin";function Ds(e){return typeof e=="string"&&qr.includes(e)}function _a(){try{const e=window.localStorage.getItem(Gr);return Ds(e)?e:ys}catch{return ys}}function zr(e){document.documentElement.dataset.skin=e}function va(e){try{window.localStorage.setItem(Gr,e)}catch{}}function ba(e){zr(e),va(e)}function Sa(){const e=_a();return zr(e),e}function xa(){const e=document.documentElement.dataset.skin;return Ds(e)?e:ys}const wa={class:"skin-switcher"},Ta=["value"],Aa=["value"],Ca=st({__name:"SkinSwitcher",setup(e){const t={classic:"Classic","cosmic-glass":"Cosmic Glass"},n=It(xa());function s(i){const r=i.target.value;Ds(r)&&(n.value=r,ba(r))}return(i,r)=>(C(),I("label",wa,[r[0]||(r[0]=cn(" Skin ",-1)),E("select",{value:n.value,"data-testid":"skin-select","aria-label":"Skin",onChange:s},[(C(!0),I(ie,null,ft(Dn(qr),o=>(C(),I("option",{key:o,value:o},oe(t[o]),9,Aa))),128))],40,Ta)]))}}),Oa=(e,t)=>{const n=e.__vccOpts||e;for(const[s,i]of t)n[s]=i;return n},Ea=Oa(Ca,[["__scopeId","data-v-76c1c45c"]]),Ia={class:"sidebar-head"},Ma=["aria-expanded"],Na={id:"sidebar-panel",class:"sidebar-panel","data-testid":"sidebar-panel"},Pa={key:0,class:"nav","aria-label":"Sections"},$a=["href","aria-current","onClick"],Ra=st({__name:"SideNav",props:{sections:{type:Boolean},active:{}},emits:["select"],setup(e,{emit:t}){const n=t;function s(l,c){var d;l.button!==0||l.ctrlKey||l.metaKey||l.shiftKey||l.altKey||(l.preventDefault(),n("select",c),i.value&&(i.value=!1,(d=r.value)==null||d.focus()))}const i=It(!1),r=It(null);function o(l){var c;l.key==="Escape"&&i.value&&(i.value=!1,(c=r.value)==null||c.focus())}return(l,c)=>(C(),I("aside",{class:on(["sidebar",{open:i.value}]),onKeydown:o},[E("div",Ia,[c[1]||(c[1]=E("div",{class:"brand"},[E("strong",null,"MONOLITH"),E("span",{class:"muted"},"Mission Control")],-1)),E("button",{ref_key:"toggle",ref:r,type:"button",class:"nav-toggle","data-testid":"nav-toggle","aria-controls":"sidebar-panel","aria-expanded":i.value,onClick:c[0]||(c[0]=d=>i.value=!i.value)},oe(i.value?"Close menu":"Menu"),9,Ma)]),E("div",Na,[e.sections?(C(),I("nav",Pa,[(C(!0),I(ie,null,ft(Dn(Ls),d=>(C(),I("a",{key:d.id,href:`#${d.id}`,"aria-current":d.id===e.active?"location":void 0,onClick:u=>s(u,d.id)},oe(d.label),9,$a))),128))])):Qt("",!0),ee(Ea)])],34))}}),La=`# Tidewatch roadmap (demo text)
18
+
19
+ Phase 1 - Ingest
20
+ - Sensor adapter for harbor gauges
21
+ - Draft: <phase> parser (HTML-like text is shown as plain text)
22
+
23
+ Phase 2 - Reporting
24
+ - Daily tide summary
25
+ - Export to CSV
26
+
27
+ Phase 3 - Alerts
28
+ - Threshold notifications`,Da={isDemo:!0,overview:{name:"Tidewatch (demo)",description:"Fictional harbor tide-logging service used to exercise the dashboard.",stateRevision:14},missions:[{id:"MIS-0003",title:"Add gauge calibration import",status:"in_progress",summary:"Import calibration offsets from a CSV file.",startedAt:"2026-03-02T09:15:00.000Z",updatedAt:"2026-03-04T16:40:00.000Z"},{id:"MIS-0004",title:"Fix timezone drift in daily summary",status:"in_progress",summary:"Summaries cross midnight incorrectly for UTC+13.",startedAt:"2026-03-03T11:00:00.000Z",updatedAt:"2026-03-03T11:00:00.000Z"},{id:"MIS-0002",title:"Initial ingest adapter",status:"completed",summary:"Adapter shipped.",startedAt:"2026-02-10T08:00:00.000Z",updatedAt:"2026-02-20T18:30:00.000Z"}],checkpoints:[{id:"MIS-0003-CKPT-0002",missionId:"MIS-0003",createdAt:"2026-03-04T16:40:00.000Z",summary:"CSV parser done; offset validation pending.",remainingSteps:["Validate offset ranges","Write import tests","Document CSV format"]},{id:"MIS-0003-CKPT-0001",missionId:"MIS-0003",createdAt:"2026-03-03T10:05:00.000Z",summary:"Scoped the CSV format.",remainingSteps:["Implement parser","Validate offset ranges"]}],roadmapText:La,diagnostics:[{severity:"info",message:'Fixture "normal" loaded.'},{severity:"warning",message:"Sample warning: fixture state revision is older than expected."}]},Fa={isDemo:!0,overview:{name:"Tidewatch (demo)",description:null,stateRevision:null},missions:[{id:"MIS-0007",title:null,status:"in_progress",summary:null,startedAt:"2026-03-05T09:00:00.000Z",updatedAt:null}],checkpoints:[{id:"MIS-0007-CKPT-0001",missionId:"MIS-0007",createdAt:null,summary:null,remainingSteps:null}],roadmapText:null,diagnostics:[{severity:"info",message:'Fixture "partial" loaded.'},{severity:"error",message:"Sample error: roadmap source could not be read."}]},ka={isDemo:!0,overview:{name:"Tidewatch (demo)",description:"Fictional project with no recorded work.",stateRevision:0},missions:[],checkpoints:[],roadmapText:"",diagnostics:[{severity:"info",message:'Fixture "empty" loaded.'}]},Jr={normal:Da,partial:Fa,empty:ka},Oi=Object.keys(Jr),Ha={available:"info",absent:"warning",corrupt:"error",forbidden:"error",unreadable:"error"};function ja(e){const t=e.path===null?"path unknown":e.path;return`${e.id} (${t}): ${e.status}${e.code===null?"":` [${e.code}]`}`}function Va(e){var o;const t=e.projectOverview.data,n=e.currentMissions.data,s=e.checkpoints.data,i=e.roadmap.data,r=[{severity:"info",message:"Source availability only; monolith validate was not run."},...e.diagnostics.sources.map(l=>({severity:Ha[l.status],message:ja(l)})),...e.diagnostics.notes.map(l=>({severity:l.severity==="warn"?"warning":"info",message:l.code}))];return{isDemo:!1,overview:{name:(t==null?void 0:t.name)??null,stateRevision:(t==null?void 0:t.stateRevision)??null,currentStory:t===null?null:((o=t.currentStory)==null?void 0:o.excerpt)??null},missions:n===null?null:n.active.map(l=>({id:l.id,title:l.title,status:l.status,summary:l.summary,startedAt:l.startedAt,updatedAt:l.updatedAt})),checkpoints:s===null?null:s.byActiveMission.flatMap(l=>l.latest===null?[]:[{id:l.latest.id,missionId:l.latest.missionId,createdAt:l.latest.createdAt,summary:l.latest.summary,remainingSteps:l.latest.remainingSteps,recordedCount:l.count}]),roadmapText:i===null?null:i.text,diagnostics:r}}const Te=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),de=e=>typeof e=="string",Mn=e=>e===null||typeof e=="string",Ka=e=>e===null||typeof e=="number"&&Number.isFinite(e),Ua=e=>typeof e=="number"&&Number.isFinite(e),Yr=(e,t)=>Array.isArray(e)&&e.every(t),Ba=["in_progress","completed","failed","cancelled"],Wa=["available","absent","corrupt","forbidden","unreadable"];function Zr(e){return Te(e)&&de(e.id)&&Mn(e.path)&&de(e.status)&&Wa.includes(e.status)&&Mn(e.code)}function mn(e,t){return Te(e)&&Yr(e.sources,Zr)&&(e.data===null||t(e.data))}function qa(e){return Te(e)&&de(e.id)&&de(e.title)&&de(e.status)&&Ba.includes(e.status)&&Mn(e.summary)&&de(e.startedAt)&&de(e.updatedAt)}function Ga(e){return Te(e)&&de(e.id)&&de(e.missionId)&&de(e.createdAt)&&de(e.summary)&&Yr(e.remainingSteps,de)}function za(e){return Te(e)&&Mn(e.name)&&Ka(e.stateRevision)&&(e.currentStory===null||Te(e.currentStory)&&de(e.currentStory.excerpt)&&de(e.currentStory.lineRange))}function Ja(e){if(!Te(e))return!1;const t=e.diagnostics;return mn(e.projectOverview,za)&&mn(e.currentMissions,n=>Te(n)&&Array.isArray(n.active)&&n.active.every(qa))&&mn(e.checkpoints,n=>Te(n)&&Array.isArray(n.byActiveMission)&&n.byActiveMission.every(s=>Te(s)&&de(s.missionId)&&Ua(s.count)&&(s.latest===null||Ga(s.latest))))&&mn(e.roadmap,n=>Te(n)&&de(n.text))&&Te(t)&&Array.isArray(t.sources)&&t.sources.every(Zr)&&Array.isArray(t.notes)&&t.notes.every(n=>Te(n)&&de(n.code)&&(n.severity==="info"||n.severity==="warn"))}const Ya="/api/dashboard",Za=["HOST_NOT_ALLOWED","ORIGIN_NOT_ALLOWED","NOT_FOUND","METHOD_NOT_ALLOWED","RESPONSE_TOO_LARGE","INTERNAL_ERROR"];class jt extends Error{}async function Xa(e){var t;try{const n=await e.json(),s=(t=n==null?void 0:n.error)==null?void 0:t.code;return typeof s=="string"&&Za.includes(s)?s:null}catch{return null}}async function Qa(e=fetch){let t;try{t=await e(Ya,{method:"GET",headers:{Accept:"application/json"},cache:"no-store",credentials:"omit",redirect:"error"})}catch{throw new jt("The MONOLITH API is unreachable.")}if(!t.ok){const s=await Xa(t);throw new jt(`Dashboard request failed (HTTP ${t.status}${s?`, ${s}`:""}). Check whether the MONOLITH dev API is running.`)}let n;try{n=await t.json()}catch{throw new jt("The MONOLITH API returned a response that is not valid JSON.")}if(!Ja(n))throw new jt("The MONOLITH API returned an unexpected data shape.");return n}const eu={class:"shell"},tu={class:"shell-main"},nu={class:"topbar"},su={class:"project"},iu={class:"topbar-right"},ru={key:0,class:"scenario"},ou=["value"],lu=["disabled"],cu={key:2,class:"demo-badge","data-testid":"demo-badge"},au={key:3,class:"live-badge","data-testid":"live-badge"},uu={key:4,class:"live-badge live-badge-off","data-testid":"live-badge"},fu={key:0,class:"content"},du={key:1,class:"content"},hu={key:0,class:"panel",role:"alert","data-testid":"load-error"},pu={key:1,class:"panel",role:"status","data-testid":"loading"},gu=st({__name:"App",setup(e){const t=new URLSearchParams(window.location.search),n=t.get("mode")==="demo";function s(){return Oi.find(O=>O===t.get("scenario"))??"normal"}const i=It(s()),r=It({status:"loading"});let o=0;async function l(){const O=++o;r.value={status:"loading"};try{const k=await Qa();O===o&&(r.value={status:"ready",data:k})}catch(k){if(O!==o)return;const j=k instanceof jt?k.message:"The dashboard could not be loaded.";r.value={status:"error",message:j}}}const c=It(Ci(window.location.hash));function d(){const O=window.location.hash;O!==""&&!Wr(O.slice(1))&&window.history.replaceState(window.history.state,"",`#${Br}`)}function u(){d(),c.value=Ci(window.location.hash)}function h(O){O===c.value&&window.location.hash===`#${O}`||(window.history.pushState(window.history.state,"",`#${O}`),c.value=O)}function v(){window.scrollY>0&&window.scrollTo({top:0})}Ns(()=>{d(),window.addEventListener("hashchange",u),window.addEventListener("popstate",u),n||l()}),Ps(()=>{window.removeEventListener("hashchange",u),window.removeEventListener("popstate",u)});const w=nn(()=>n?Jr[i.value]:r.value.status==="ready"?Va(r.value.data):null),F=nn(()=>!n&&r.value.status==="loading");return(O,k)=>{var j;return C(),I("div",eu,[ee(Ra,{sections:w.value!==null,active:c.value,onSelect:h},null,8,["sections","active"]),E("div",tu,[E("header",nu,[E("div",su,oe(((j=w.value)==null?void 0:j.overview.name)??"UNKNOWN"),1),E("div",iu,[n?(C(),I("label",ru,[k[1]||(k[1]=cn(" Scenario ",-1)),Wo(E("select",{"onUpdate:modelValue":k[0]||(k[0]=L=>i.value=L),"data-testid":"scenario-select"},[(C(!0),I(ie,null,ft(Dn(Oi),L=>(C(),I("option",{key:L,value:L},oe(L),9,ou))),128))],512),[[Tc,i.value]])])):(C(),I("button",{key:1,type:"button","data-testid":"refresh",disabled:F.value,onClick:l},"Refresh",8,lu)),n?(C(),I("span",cu,"DEMO DATA")):w.value?(C(),I("span",au,"LIVE DATA")):(C(),I("span",uu,"LIVE · NO DATA"))])]),w.value?(C(),I("main",fu,[ee(tc,{name:"section-fade",mode:"out-in",onAfterLeave:v},{default:lr(()=>[c.value==="overview"?(C(),bt(da,{key:"overview",overview:w.value.overview},null,8,["overview"])):c.value==="mission"?(C(),bt(Xc,{key:"mission",missions:w.value.missions},null,8,["missions"])):c.value==="checkpoints"?(C(),bt(Bc,{key:"checkpoints",checkpoints:w.value.checkpoints},null,8,["checkpoints"])):c.value==="roadmap"?(C(),bt(ya,{key:"roadmap",text:w.value.roadmapText},null,8,["text"])):(C(),bt(ca,{key:"diagnostics",data:w.value},null,8,["data"]))]),_:1})])):(C(),I("main",du,[r.value.status==="error"?(C(),I("section",hu,[k[2]||(k[2]=E("h2",null,"Live data could not be loaded",-1)),E("p",null,oe(r.value.message),1),k[3]||(k[3]=E("p",{class:"muted"},"No data is shown. Demo data is never substituted for live data.",-1)),E("button",{type:"button","data-testid":"retry",onClick:l},"Retry")])):(C(),I("section",pu,[...k[4]||(k[4]=[E("p",{class:"muted"},"Loading live data…",-1)])]))]))])])}}});Sa();Ec(gu).mount("#app");
@@ -0,0 +1 @@
1
+ .skin-switcher[data-v-76c1c45c]{color:var(--muted);font-size:13px;display:flex;gap:6px;align-items:center}.skin-switcher select[data-v-76c1c45c]{background:var(--surface-2);color:var(--text);border:1px solid var(--control-border);border-radius:4px;padding:2px 6px}:root{--bg: #0e1116;--surface: #161b22;--surface-2: #1d242d;--border: #2b3440;--control-border: #627185;--text: #e6edf3;--muted: #8b98a8;--accent: #58a6ff;--ok: #3fb950;--warn: #d29922;--err: #f85149;--demo: #f0b429;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}code,pre{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.9em}.shell{display:flex;align-items:flex-start;min-height:100vh}.shell-main{flex:1 1 auto;min-width:0}.sidebar{position:sticky;top:0;align-self:flex-start;flex:0 0 240px;width:240px;height:100vh;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border)}.sidebar-head{padding:14px 16px}.sidebar-panel{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:space-between;gap:16px;padding:4px 12px 16px;overflow-y:auto}.sidebar-panel .skin-switcher{margin-top:auto;padding:12px 4px 0;border-top:1px solid var(--border)}.nav-toggle{display:none}.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;padding:10px 20px;min-height:52px;background:var(--surface);border-bottom:1px solid var(--border)}.brand{display:flex;flex-wrap:wrap;gap:0 10px;align-items:baseline}.brand .muted{white-space:nowrap}.brand strong{letter-spacing:.12em}.project{font-weight:600}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:14px}.scenario{color:var(--muted);font-size:13px;display:flex;gap:6px;align-items:center}.scenario select{background:var(--surface-2);color:var(--text);border:1px solid var(--control-border);border-radius:4px;padding:2px 6px}.demo-badge{background:var(--demo);color:#1a1300;font-weight:800;letter-spacing:.1em;padding:4px 12px;border-radius:4px}.nav{display:flex;flex-direction:column;gap:2px}.nav a{color:var(--muted);text-decoration:none;overflow-wrap:anywhere;padding:6px 10px;border-radius:4px}.nav a:hover{color:var(--text);background:var(--surface-2)}.nav a[aria-current=location]{color:var(--text);background:var(--surface-2);font-weight:600;box-shadow:inset 3px 0 0 var(--accent)}.nav a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.content{max-width:1100px;margin:0 auto;padding:20px;display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.panel{min-width:0;overflow-wrap:anywhere;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:16px 20px;scroll-margin-top:16px}.panel h2{margin:0 0 12px;font-size:16px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}.panel h3{margin:16px 0 6px;font-size:14px}.panel h4{margin:10px 0 4px;font-size:13px;color:var(--muted)}.facts{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 16px;margin:0}.facts dt{color:var(--muted)}.facts dt,.facts dd{min-width:0}.facts dd{margin:0;overflow-wrap:anywhere}.facts.compact{font-size:13px;margin-top:8px}.cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.card{min-width:0;overflow-wrap:anywhere;background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:10px 14px}.card h3{margin:6px 0 2px;font-size:15px}.card p{margin:4px 0}.card-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.status{font-size:12px;padding:1px 8px;border-radius:10px;border:1px solid var(--ok);color:var(--ok)}.steps ul{margin:0;padding-left:20px}.tag{font-weight:400;font-size:11px;color:var(--warn);border:1px solid var(--warn);border-radius:3px;padding:0 6px;margin-left:6px}.roadmap{margin:0;padding:12px;background:var(--surface-2);border-radius:4px;white-space:pre-wrap;overflow-wrap:anywhere}.diag li{min-width:0}.diag{list-style:none;margin:0;padding:0;display:grid;gap:4px}.sev{font-size:11px;text-transform:uppercase;font-weight:700;margin-right:6px}.sev-info .sev{color:var(--accent)}.sev-warning .sev{color:var(--warn)}.sev-error .sev{color:var(--err)}.muted{color:var(--muted)}.empty{color:var(--muted);font-style:italic;margin:0}.unknown{color:var(--warn);font-weight:600;font-style:normal;letter-spacing:.04em}@media(max-width:899px){.shell{display:block}.sidebar{position:sticky;top:0;z-index:2;width:auto;height:auto;max-height:100vh;border-right:0;border-bottom:1px solid var(--border)}.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px}.sidebar-panel{display:none;padding-top:4px;max-height:calc(100vh - 56px)}.sidebar.open .sidebar-panel{display:flex}.nav-toggle{display:inline-block}.panel{scroll-margin-top:64px}}@media(max-width:600px){.topbar{padding-left:12px;padding-right:12px}.topbar-right{margin-left:0;width:100%;flex-wrap:wrap;justify-content:space-between}.content{padding:12px}.facts{grid-template-columns:1fr}.facts dd{margin-bottom:6px}}.live-badge{background:#1f6f43;color:#eafff3;font-weight:800;letter-spacing:.1em;padding:4px 12px;border-radius:4px}.live-badge-off{background:var(--surface-2);color:var(--muted, #9aa4b2);border:1px solid var(--border)}.story{white-space:pre-wrap;margin:0;font:inherit}button{background:var(--surface-2);color:var(--text);border:1px solid var(--control-border);border-radius:4px;padding:4px 12px;font:inherit;cursor:pointer}button:disabled{opacity:.5;cursor:default}.section-fade-enter-active{transition:opacity .22s ease-out,transform .22s ease-out}.section-fade-leave-active{transition:opacity .15s ease-in,transform .15s ease-in}.section-fade-enter-from{opacity:0;transform:translateY(8px)}.section-fade-leave-to{opacity:0;transform:translateY(-8px)}@media(prefers-reduced-motion:reduce){.section-fade-enter-active,.section-fade-leave-active{transition:none}.section-fade-enter-from,.section-fade-leave-to{opacity:1;transform:none}}:root[data-skin=cosmic-glass]{--bg: #080a1e;--surface: rgba(12, 16, 40, .74);--surface-2: rgba(30, 34, 76, .62);--border: rgba(190, 200, 255, .2);--control-border: rgba(204, 212, 255, .52);--text: #f1f4ff;--muted: #b8c3df;--accent: #b4a9ff;--ok: #5fd68a;--warn: #f0c040;--err: #ff8a85;--demo: #f0b429;--glass-dense: rgba(9, 12, 32, .86);--glass-edge: inset 0 1px 0 rgba(255, 255, 255, .07);--glass-shadow: 0 8px 32px rgba(2, 3, 14, .45);--glass-blur: blur(14px) saturate(1.15);background:var(--bg)}:root[data-skin=cosmic-glass] body{background:transparent;isolation:isolate}:root[data-skin=cosmic-glass] body:before{content:"";position:fixed;top:0;bottom:0;right:0;left:-14vw;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#080a1e00,#080a1e33 60%,#080a1e99),url(./cosmic-glass-bg-Dwx47zPu.webp) 24% 0 / cover no-repeat,var(--bg)}:root[data-skin=cosmic-glass] .sidebar{background:#080b2080;-webkit-backdrop-filter:blur(4px) saturate(1.1);backdrop-filter:blur(4px) saturate(1.1);border-right-color:var(--border);box-shadow:1px 0 #968cff14,6px 0 28px #02030e59}:root[data-skin=cosmic-glass] .brand strong{color:var(--text);letter-spacing:.16em}:root[data-skin=cosmic-glass] .brand .muted{font-size:13px}:root[data-skin=cosmic-glass] .nav a{color:var(--muted);border-left:2px solid transparent;border-radius:0 6px 6px 0}:root[data-skin=cosmic-glass] .nav a:hover{color:var(--text);background:#968cff29;border-left-color:var(--accent)}:root[data-skin=cosmic-glass] .nav a[aria-current=location]{color:var(--text);background:linear-gradient(90deg,#968cff42,#968cff14);border-left-color:#d3ccff;box-shadow:none}:root[data-skin=cosmic-glass] .sidebar-panel .skin-switcher{border-top-color:var(--border)}:root[data-skin=cosmic-glass] .topbar{background:#080b20a8;-webkit-backdrop-filter:blur(12px) saturate(1.1);backdrop-filter:blur(12px) saturate(1.1);border-bottom-color:var(--border);box-shadow:0 6px 24px #02030e4d}:root[data-skin=cosmic-glass] .project{font-size:16px;letter-spacing:.01em}:root[data-skin=cosmic-glass] .live-badge{background:#14532f;color:#eafff3;border:1px solid #5fd68a}:root[data-skin=cosmic-glass] .live-badge-off{background:var(--glass-dense);color:var(--muted);border-color:var(--border)}:root[data-skin=cosmic-glass] .demo-badge{border:1px solid #ffd978}:root[data-skin=cosmic-glass] .panel{background:var(--surface);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:10px;box-shadow:var(--glass-edge),var(--glass-shadow);padding:18px 22px}:root[data-skin=cosmic-glass] .panel h2{font-size:14px;letter-spacing:.08em;font-weight:700;padding-bottom:8px;margin-bottom:14px;border-bottom:1px solid var(--border)}:root[data-skin=cosmic-glass] .panel h3{font-size:15px;font-weight:650}:root[data-skin=cosmic-glass] .card{background:var(--surface-2);border-radius:8px;box-shadow:var(--glass-edge);line-height:1.55}:root[data-skin=cosmic-glass] .facts dt{font-size:13px}:root[data-skin=cosmic-glass] .roadmap,:root[data-skin=cosmic-glass] .story{background:var(--glass-dense);border-radius:8px;line-height:1.6}:root[data-skin=cosmic-glass] .roadmap{border:1px solid var(--border)}:root[data-skin=cosmic-glass] .status{background:#5fd68a1f}:root[data-skin=cosmic-glass] .tag{background:#f0c0401a}:root[data-skin=cosmic-glass] button,:root[data-skin=cosmic-glass] select{background:var(--glass-dense);border-color:var(--control-border)}:root[data-skin=cosmic-glass] button:hover:not(:disabled){border-color:var(--accent);background:#3c3882b3}:root[data-skin=cosmic-glass] button:disabled{opacity:1;color:#8f9abb;border-style:dashed;cursor:not-allowed}:root[data-skin=cosmic-glass] a:focus-visible,:root[data-skin=cosmic-glass] button:focus-visible,:root[data-skin=cosmic-glass] select:focus-visible{outline:2px solid #d3ccff;outline-offset:2px;box-shadow:0 0 0 4px #9a8cff59}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){:root[data-skin=cosmic-glass]{--surface: rgba(12, 16, 40, .92);--surface-2: rgba(26, 30, 70, .92)}:root[data-skin=cosmic-glass] .sidebar,:root[data-skin=cosmic-glass] .topbar{background:#080b20f2}}@media(prefers-reduced-motion:no-preference){:root[data-skin=cosmic-glass] .nav a,:root[data-skin=cosmic-glass] button{transition:background-color .15s,border-color .15s,color .15s}}@media(max-width:899px){:root[data-skin=cosmic-glass] body:before{left:0;background:linear-gradient(180deg,#080a1e00,#080a1e33 55%,#080a1e8c),url(./cosmic-glass-bg-Dwx47zPu.webp) 16% 0 / cover no-repeat,var(--bg)}:root[data-skin=cosmic-glass] .sidebar{background:#080b20d1;border-bottom-color:var(--border)}:root[data-skin=cosmic-glass] .panel{padding:14px 16px;background:#0c102899}}
@@ -0,0 +1,13 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>MONOLITH Mission Control</title>
7
+ <script type="module" crossorigin src="./assets/index-C4NhMaq7.js"></script>
8
+ <link rel="stylesheet" crossorigin href="./assets/index-DMZ7ZvZY.css">
9
+ </head>
10
+ <body>
11
+ <div id="app"></div>
12
+ </body>
13
+ </html>
@@ -0,0 +1,6 @@
1
+ export interface ValidateOptions {
2
+ targetDir: string;
3
+ quiet?: boolean;
4
+ }
5
+ export declare function runValidate(options: ValidateOptions): Promise<void>;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validate/index.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA4KD,wBAAsB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DzE"}
@@ -0,0 +1,214 @@
1
+ /* eslint-disable no-console */
2
+ import { existsSync, readdirSync } from 'fs';
3
+ import { isAbsolute, join, resolve, relative, sep } from 'path';
4
+ import { checkProjectFile, readConfigFile, readProjectFile, resolveMonolithRoot, RootContainmentError, findWriteArtifacts, describeWriteArtifacts, } from '../root/index.js';
5
+ const DEFINITION_FILE_NAME = 'project.definition.mjs';
6
+ const REQUIRED_DIRS = ['memory', 'context', 'protocols', 'skills', 'governance', 'learning', 'tests'];
7
+ // Only flag variables that init is responsible for substituting.
8
+ // User-facing content placeholders (e.g. {{PLAN_TITLE}}) are intentional and must not be flagged.
9
+ const INIT_VARS = new Set([
10
+ 'PROJECT_NAME', 'LANGUAGE', 'PACKAGE_MANAGER', 'AI_TOOL',
11
+ 'MONOLITH_ROOT', 'FINALIZATION_PROTOCOL', 'PROTOCOLS_JSON',
12
+ 'MISTAKE_ROOTS_JSON', 'DRIFT_LOG_PATH',
13
+ ]);
14
+ const INIT_PLACEHOLDER_RE = /\{\{([A-Z_]+)\}\}/g;
15
+ const COL_WIDTH = 16;
16
+ /**
17
+ * Static configuration check (SEC-002). `project.definition.mjs` is a
18
+ * project-controlled file: it is NEVER imported, evaluated or parsed as
19
+ * JavaScript here. It is only checked as a file — present, inside the
20
+ * project, regular, non-empty, at most 1 MiB. A PASS therefore says nothing
21
+ * about its syntax, its exports or what it would do if executed.
22
+ */
23
+ function checkConfiguration(targetDir) {
24
+ const config = readConfigFile(targetDir);
25
+ if (config.status === 'absent') {
26
+ return { label: 'Configuration', passed: false, error: 'missing monolith.config.json' };
27
+ }
28
+ if (config.status === 'unreadable') {
29
+ return { label: 'Configuration', passed: false, error: `monolith.config.json cannot be read safely: ${config.detail}` };
30
+ }
31
+ if (config.status !== 'ok') {
32
+ return { label: 'Configuration', passed: false, error: 'monolith.config.json is not valid JSON' };
33
+ }
34
+ const def = checkProjectFile(targetDir, DEFINITION_FILE_NAME);
35
+ if (!def.ok) {
36
+ const error = def.code === 'FILE_MISSING'
37
+ ? `missing ${DEFINITION_FILE_NAME}`
38
+ : `${DEFINITION_FILE_NAME} rejected (${def.code}): ${def.detail}`;
39
+ return { label: 'Configuration', passed: false, error };
40
+ }
41
+ if (!Object.prototype.hasOwnProperty.call(config.cfg, 'monolithRoot')) {
42
+ return { label: 'Configuration', passed: false, error: 'monolith.config.json missing monolithRoot field' };
43
+ }
44
+ try {
45
+ resolveMonolithRoot(targetDir, config);
46
+ }
47
+ catch (err) {
48
+ if (err instanceof RootContainmentError) {
49
+ return { label: 'Configuration', passed: false, error: err.message };
50
+ }
51
+ throw err;
52
+ }
53
+ return {
54
+ label: 'Configuration',
55
+ passed: true,
56
+ note: `${DEFINITION_FILE_NAME} checked as a file only (present, inside project, regular, non-empty, <= 1 MiB); not parsed or executed`,
57
+ };
58
+ }
59
+ function checkInstance(targetDir, monolithRoot) {
60
+ const instanceDir = join(targetDir, monolithRoot);
61
+ if (!existsSync(instanceDir)) {
62
+ return { label: 'Instance', passed: false, error: `missing ${monolithRoot}/` };
63
+ }
64
+ for (const dir of REQUIRED_DIRS) {
65
+ if (!existsSync(join(instanceDir, dir))) {
66
+ return { label: 'Instance', passed: false, error: `missing ${monolithRoot}/${dir}/` };
67
+ }
68
+ }
69
+ return { label: 'Instance', passed: true };
70
+ }
71
+ function walkFiles(dir) {
72
+ const results = [];
73
+ if (!existsSync(dir))
74
+ return results;
75
+ for (const entry of readdirSync(dir, { withFileTypes: true })) {
76
+ const full = join(dir, entry.name);
77
+ // A link is never descended into; it is listed so the reader refuses it by name
78
+ // (FILE_SYMLINK) instead of the instance silently passing (SEC-001B.1-R).
79
+ if (entry.isSymbolicLink()) {
80
+ results.push(full);
81
+ }
82
+ else if (entry.isDirectory()) {
83
+ results.push(...walkFiles(full));
84
+ }
85
+ else {
86
+ results.push(full);
87
+ }
88
+ }
89
+ return results;
90
+ }
91
+ function hasUnreplacedInitVars(content) {
92
+ let match;
93
+ INIT_PLACEHOLDER_RE.lastIndex = 0;
94
+ while ((match = INIT_PLACEHOLDER_RE.exec(content)) !== null) {
95
+ if (INIT_VARS.has(match[1]))
96
+ return true;
97
+ }
98
+ return false;
99
+ }
100
+ function checkTemplates(targetDir, monolithRoot) {
101
+ const violations = [];
102
+ const unsafe = [];
103
+ const instanceDir = join(targetDir, monolithRoot);
104
+ for (const file of walkFiles(instanceDir)) {
105
+ if (file.endsWith('.gitkeep'))
106
+ continue;
107
+ const rel = relative(targetDir, file);
108
+ // Same bounded, containment-checked reader as the root files below (SEC-002):
109
+ // a FIFO/socket/device is never opened, a file over 1 MiB is never read.
110
+ const read = readProjectFile(targetDir, rel.split(sep).join('/'), { allowEmpty: true });
111
+ if (!read.ok) {
112
+ if (read.code !== 'FILE_MISSING')
113
+ unsafe.push(`${rel} (${read.code})`);
114
+ continue;
115
+ }
116
+ if (hasUnreplacedInitVars(read.content)) {
117
+ violations.push(rel);
118
+ }
119
+ }
120
+ for (const rootFile of [DEFINITION_FILE_NAME, 'monolith.config.json', 'AGENTS.md']) {
121
+ // Bounded, containment-checked read (SEC-002): never blocks on a FIFO,
122
+ // never reads a device, never follows a link out of the project.
123
+ const read = readProjectFile(targetDir, rootFile, { allowEmpty: true });
124
+ if (!read.ok) {
125
+ if (read.code !== 'FILE_MISSING')
126
+ unsafe.push(`${rootFile} (${read.code})`);
127
+ continue;
128
+ }
129
+ if (hasUnreplacedInitVars(read.content)) {
130
+ violations.push(rootFile);
131
+ }
132
+ }
133
+ if (unsafe.length > 0) {
134
+ return {
135
+ label: 'Templates',
136
+ passed: false,
137
+ error: `cannot safely read: ${unsafe.slice(0, 3).join(', ')}${unsafe.length > 3 ? ` (+${unsafe.length - 3} more)` : ''}`,
138
+ };
139
+ }
140
+ if (violations.length > 0) {
141
+ return {
142
+ label: 'Templates',
143
+ passed: false,
144
+ error: `unreplaced placeholders in ${violations.length} file(s): ${violations.slice(0, 3).join(', ')}${violations.length > 3 ? ` (+${violations.length - 3} more)` : ''}`,
145
+ };
146
+ }
147
+ return { label: 'Templates', passed: true };
148
+ }
149
+ function formatRow(result) {
150
+ const label = result.label.padEnd(COL_WIDTH);
151
+ const status = result.passed ? 'PASS' : 'FAIL';
152
+ const tail = result.error ? ` ${result.error}` : '';
153
+ return `${label}${status}${tail}`;
154
+ }
155
+ export async function runValidate(options) {
156
+ const quiet = options.quiet ?? false;
157
+ // SEC-001B.1-R: the project root is the read boundary and is never inferred
158
+ // from the cwd; the CLI passes `process.cwd()` explicitly.
159
+ if (typeof options.targetDir !== 'string' || options.targetDir.length === 0 || !isAbsolute(options.targetDir)) {
160
+ console.log(formatRow({ label: 'Configuration', passed: false, error: 'targetDir must be an explicit absolute path (the cwd is never assumed)' }));
161
+ process.exit(1);
162
+ return;
163
+ }
164
+ const targetDir = resolve(options.targetDir);
165
+ // Containment failures are reported by checkConfiguration; the instance
166
+ // and template checks must not touch a root that failed resolution.
167
+ let monolithRoot = null;
168
+ let rootAbs = null;
169
+ try {
170
+ const resolved = resolveMonolithRoot(targetDir);
171
+ monolithRoot = resolved.monolithRoot;
172
+ rootAbs = resolved.rootAbs;
173
+ }
174
+ catch (err) {
175
+ if (!(err instanceof RootContainmentError))
176
+ throw err;
177
+ }
178
+ const configResult = checkConfiguration(targetDir);
179
+ const instanceResult = monolithRoot === null
180
+ ? { label: 'Instance', passed: false, error: 'skipped: monolithRoot failed validation' }
181
+ : checkInstance(targetDir, monolithRoot);
182
+ const templateResult = monolithRoot === null
183
+ ? { label: 'Templates', passed: false, error: 'skipped: monolithRoot failed validation' }
184
+ : checkTemplates(targetDir, monolithRoot);
185
+ const results = [configResult, instanceResult, templateResult];
186
+ const passed = results.every((r) => r.passed);
187
+ if (quiet) {
188
+ if (!passed) {
189
+ for (const r of results) {
190
+ if (!r.passed)
191
+ console.log(formatRow(r));
192
+ }
193
+ }
194
+ }
195
+ else {
196
+ console.log('');
197
+ console.log('MONOLITH validate');
198
+ console.log('');
199
+ for (const r of results) {
200
+ console.log(formatRow(r));
201
+ }
202
+ console.log('');
203
+ console.log(`Result: ${passed ? 'PASS' : 'FAIL'}`);
204
+ if (configResult.passed && configResult.note)
205
+ console.log(`Note: ${configResult.note}`);
206
+ // Read-only warning (SEC-001B.2): never affects the result or the exit code.
207
+ const artifacts = rootAbs === null || monolithRoot === null ? [] : findWriteArtifacts(rootAbs);
208
+ if (artifacts.length > 0 && monolithRoot !== null) {
209
+ console.log(`Warning: ${describeWriteArtifacts(artifacts, monolithRoot)}`);
210
+ }
211
+ console.log('');
212
+ }
213
+ process.exit(passed ? 0 : 1);
214
+ }
@@ -0,0 +1,2 @@
1
+ export declare const MONOLITH_VERSION = "0.1.0-alpha.0";
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,kBAAkB,CAAC"}
@@ -0,0 +1 @@
1
+ export const MONOLITH_VERSION = '0.1.0-alpha.0';