elastro-client 1.3.26__tar.gz → 1.3.27__tar.gz

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 (127) hide show
  1. {elastro_client-1.3.26/elastro_client.egg-info → elastro_client-1.3.27}/PKG-INFO +1 -1
  2. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/__init__.py +1 -1
  3. elastro_client-1.3.27/elastro/gui/assets/index-BTk4W2oz.css +1 -0
  4. elastro_client-1.3.26/elastro/gui/assets/index-CDM13vFi.js → elastro_client-1.3.27/elastro/gui/assets/index-DRaRiqvj.js +1 -1
  5. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/gui/index.html +2 -2
  6. {elastro_client-1.3.26 → elastro_client-1.3.27/elastro_client.egg-info}/PKG-INFO +1 -1
  7. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro_client.egg-info/SOURCES.txt +2 -2
  8. {elastro_client-1.3.26 → elastro_client-1.3.27}/pyproject.toml +1 -1
  9. elastro_client-1.3.26/elastro/gui/assets/index-_TTaaZ3u.css +0 -1
  10. {elastro_client-1.3.26 → elastro_client-1.3.27}/.coveragerc +0 -0
  11. {elastro_client-1.3.26 → elastro_client-1.3.27}/LICENSE +0 -0
  12. {elastro_client-1.3.26 → elastro_client-1.3.27}/MANIFEST.in +0 -0
  13. {elastro_client-1.3.26 → elastro_client-1.3.27}/README.md +0 -0
  14. {elastro_client-1.3.26 → elastro_client-1.3.27}/docs/advanced_features.md +0 -0
  15. {elastro_client-1.3.26 → elastro_client-1.3.27}/docs/api_reference.md +0 -0
  16. {elastro_client-1.3.26 → elastro_client-1.3.27}/docs/cli_usage.md +0 -0
  17. {elastro_client-1.3.26 → elastro_client-1.3.27}/docs/commands_reference.md +0 -0
  18. {elastro_client-1.3.26 → elastro_client-1.3.27}/docs/getting_started.md +0 -0
  19. {elastro_client-1.3.26 → elastro_client-1.3.27}/docs/roadmap.md +0 -0
  20. {elastro_client-1.3.26 → elastro_client-1.3.27}/docs/troubleshooting.md +0 -0
  21. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/advanced/__init__.py +0 -0
  22. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/advanced/aggregations.py +0 -0
  23. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/advanced/query_builder.py +0 -0
  24. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/advanced/scroll.py +0 -0
  25. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/__init__.py +0 -0
  26. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/art.py +0 -0
  27. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/cli.py +0 -0
  28. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/commands/__init__.py +0 -0
  29. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/commands/cluster.py +0 -0
  30. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/commands/config.py +0 -0
  31. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/commands/datastream.py +0 -0
  32. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/commands/document.py +0 -0
  33. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/commands/gui.py +0 -0
  34. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/commands/ilm.py +0 -0
  35. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/commands/index.py +0 -0
  36. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/commands/index_recipes.py +0 -0
  37. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/commands/ingest.py +0 -0
  38. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/commands/ml.py +0 -0
  39. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/commands/painless_commands.py +0 -0
  40. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/commands/script.py +0 -0
  41. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/commands/security.py +0 -0
  42. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/commands/snapshot.py +0 -0
  43. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/commands/tasks.py +0 -0
  44. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/commands/template.py +0 -0
  45. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/commands/utils.py +0 -0
  46. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/completion.py +0 -0
  47. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/cli/output.py +0 -0
  48. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/config/__init__.py +0 -0
  49. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/config/defaults.py +0 -0
  50. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/config/loader.py +0 -0
  51. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/core/__init__.py +0 -0
  52. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/core/client.py +0 -0
  53. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/core/datastream.py +0 -0
  54. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/core/document.py +0 -0
  55. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/core/document_bulk.py +0 -0
  56. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/core/errors.py +0 -0
  57. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/core/ilm.py +0 -0
  58. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/core/index.py +0 -0
  59. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/core/logger.py +0 -0
  60. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/core/query_builder.py +0 -0
  61. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/core/snapshot.py +0 -0
  62. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/core/validation.py +0 -0
  63. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/gui/elastro.svg +0 -0
  64. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/gui/favicon.ico +0 -0
  65. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/gui/vite.svg +0 -0
  66. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/py.typed +0 -0
  67. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/server.py +0 -0
  68. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/utils/__init__.py +0 -0
  69. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/utils/aliases.py +0 -0
  70. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/utils/health.py +0 -0
  71. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/utils/snapshots.py +0 -0
  72. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro/utils/templates.py +0 -0
  73. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro_client.egg-info/dependency_links.txt +0 -0
  74. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro_client.egg-info/entry_points.txt +0 -0
  75. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro_client.egg-info/requires.txt +0 -0
  76. {elastro_client-1.3.26 → elastro_client-1.3.27}/elastro_client.egg-info/top_level.txt +0 -0
  77. {elastro_client-1.3.26 → elastro_client-1.3.27}/examples/client.py +0 -0
  78. {elastro_client-1.3.26 → elastro_client-1.3.27}/examples/config_usage.py +0 -0
  79. {elastro_client-1.3.26 → elastro_client-1.3.27}/examples/datastreams.py +0 -0
  80. {elastro_client-1.3.26 → elastro_client-1.3.27}/examples/debug_connection.py +0 -0
  81. {elastro_client-1.3.26 → elastro_client-1.3.27}/examples/document_operations.py +0 -0
  82. {elastro_client-1.3.26 → elastro_client-1.3.27}/examples/index_management.py +0 -0
  83. {elastro_client-1.3.26 → elastro_client-1.3.27}/examples/search.py +0 -0
  84. {elastro_client-1.3.26 → elastro_client-1.3.27}/pytest.ini +0 -0
  85. {elastro_client-1.3.26 → elastro_client-1.3.27}/requirements.txt +0 -0
  86. {elastro_client-1.3.26 → elastro_client-1.3.27}/setup.cfg +0 -0
  87. {elastro_client-1.3.26 → elastro_client-1.3.27}/setup.py +0 -0
  88. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/__init__.py +0 -0
  89. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/conftest.py +0 -0
  90. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/fixtures/__init__.py +0 -0
  91. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/fixtures/datastream_fixtures.py +0 -0
  92. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/fixtures/document_fixtures.py +0 -0
  93. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/fixtures/index_fixtures.py +0 -0
  94. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/integration/__init__.py +0 -0
  95. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/integration/test_aggregations_integration.py +0 -0
  96. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/integration/test_client_integration.py +0 -0
  97. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/integration/test_datastream_integration.py +0 -0
  98. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/integration/test_docs_quickstart.py +0 -0
  99. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/integration/test_document_integration.py +0 -0
  100. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/integration/test_index_integration.py +0 -0
  101. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/integration/test_query_builder_integration.py +0 -0
  102. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/integration/test_scroll_integration.py +0 -0
  103. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/integration/test_workflow_integration.py +0 -0
  104. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/manual/test_es.py +0 -0
  105. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/__init__.py +0 -0
  106. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/advanced/__init__.py +0 -0
  107. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/advanced/test_aggregations.py +0 -0
  108. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/advanced/test_query_builder.py +0 -0
  109. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/advanced/test_scroll.py +0 -0
  110. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/config/__init__.py +0 -0
  111. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/config/test_defaults.py +0 -0
  112. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/config/test_loader.py +0 -0
  113. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/core/__init__.py +0 -0
  114. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/core/test_client.py +0 -0
  115. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/core/test_datastream.py +0 -0
  116. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/core/test_document.py +0 -0
  117. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/core/test_document_bulk.py +0 -0
  118. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/core/test_errors.py +0 -0
  119. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/core/test_index.py +0 -0
  120. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/core/test_validation.py +0 -0
  121. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/utils/__init__.py +0 -0
  122. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/utils/test_aliases.py +0 -0
  123. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/utils/test_health.py +0 -0
  124. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/utils/test_snapshots.py +0 -0
  125. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/unit/utils/test_templates.py +0 -0
  126. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/verify_api_actions.py +0 -0
  127. {elastro_client-1.3.26 → elastro_client-1.3.27}/tests/verify_cli_e2e.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: elastro-client
3
- Version: 1.3.26
3
+ Version: 1.3.27
4
4
  Summary: A comprehensive Python library for Elasticsearch management with both programmatic and CLI interfaces
5
5
  Author: Austin Jorgensen
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ Elasticsearch Management Module.
4
4
  A module for managing Elasticsearch operations within a pipeline process.
5
5
  """
6
6
 
7
- __version__ = "1.3.26"
7
+ __version__ = "1.3.27"
8
8
 
9
9
  # Core component imports
10
10
  from elastro.core.client import ElasticsearchClient
@@ -0,0 +1 @@
1
+ @import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--background: 210 20% 98%;--foreground: 230 25% 15%;--card: 0 0% 100%;--card-foreground: 230 25% 15%;--popover: 0 0% 100%;--popover-foreground: 230 25% 15%;--primary: 216 100% 50%;--primary-foreground: 0 0% 100%;--secondary: 263 53% 52%;--secondary-foreground: 0 0% 100%;--muted: 210 20% 94%;--muted-foreground: 230 15% 45%;--accent: 189 100% 50%;--accent-foreground: 230 60% 10%;--teal: 173 80% 40%;--teal-foreground: 0 0% 100%;--warning: 45 93% 47%;--warning-foreground: 0 0% 100%;--destructive: 0 84% 60%;--destructive-foreground: 0 0% 100%;--border: 210 20% 90%;--input: 210 20% 90%;--ring: 216 100% 50%;--radius: .75rem;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--gradient-primary: linear-gradient(135deg, hsl(216 100% 50%), hsl(263 53% 52%));--gradient-accent: linear-gradient(135deg, hsl(216 100% 50%), hsl(189 100% 50%));--glass-bg: hsl(0 0% 100% / .7);--glass-border: hsl(0 0% 100% / .2);--shadow-sm: 0 1px 2px hsl(230 25% 15% / .05);--shadow-md: 0 4px 12px hsl(230 25% 15% / .08);--shadow-lg: 0 8px 30px hsl(230 25% 15% / .12)}@media(prefers-color-scheme:dark){:root{--background: 230 25% 10%;--foreground: 210 20% 98%;--card: 230 25% 14%;--card-foreground: 210 20% 98%;--popover: 230 25% 14%;--popover-foreground: 210 20% 98%;--primary: 216 100% 60%;--secondary: 263 53% 65%;--warning: 45 93% 55%;--muted: 230 25% 18%;--muted-foreground: 210 20% 70%;--accent: 189 100% 45%;--accent-foreground: 0 0% 100%;--border: 230 25% 18%;--input: 230 25% 18%;--glass-bg: hsl(230 25% 14% / .7);--glass-border: hsl(210 20% 98% / .1)}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:hsl(var(--background));color:hsl(var(--foreground));line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{display:flex;height:100vh;width:100vw;overflow:hidden}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius);font-weight:500;transition:all .2s ease;cursor:pointer;padding:.5rem 1rem;border:none;font-size:.875rem}.btn:active{transform:scale(.95)}.btn-primary:active{box-shadow:0 0 15px hsl(var(--primary) / .6)}.btn-secondary:active{box-shadow:0 0 15px hsl(var(--secondary) / .6)}.btn-outline:active{background-color:hsl(var(--muted));box-shadow:0 0 15px hsl(var(--foreground) / .2)}.btn-primary{background:var(--gradient-primary);color:hsl(var(--primary-foreground));box-shadow:var(--shadow-md)}.btn-primary:hover{opacity:.9;box-shadow:var(--shadow-lg)}.btn-secondary{background-color:hsl(var(--secondary));color:hsl(var(--secondary-foreground))}.btn-outline{background-color:transparent;border:1px solid hsl(var(--border));color:hsl(var(--foreground))}.btn-outline:hover{background-color:hsl(var(--muted))}.card{background-color:hsl(var(--card));color:hsl(var(--card-foreground));border-radius:var(--radius);border:1px solid hsl(var(--border));box-shadow:var(--shadow-sm);padding:1.5rem;transition:transform .2s ease,box-shadow .2s ease}.card:hover{box-shadow:var(--shadow-md)}.glass-panel{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .4s ease forwards}input,select{width:100%;padding:.5rem .75rem;border-radius:var(--radius);border:1px solid hsl(var(--border));background-color:hsl(var(--input));color:hsl(var(--foreground));font-family:inherit;font-size:.875rem;transition:border-color .2s ease,box-shadow .2s ease}input:focus,select:focus{outline:none;border-color:hsl(var(--ring));box-shadow:0 0 0 2px hsl(var(--ring) / .2)}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,hsl(var(--muted) / .4) 25%,hsl(var(--muted) / .8),hsl(var(--muted) / .4) 75%);background-size:200% 100%;animation:skeleton-shimmer 2s infinite linear;border-radius:var(--radius)}.skeleton-text{height:1.25rem;margin-bottom:.5rem}.skeleton-title{height:1.75rem}.skeleton-jumbo{height:3.5rem;border-radius:.5rem}.skeleton-badge{height:1.5rem;border-radius:9999px}.w-12{width:3rem}.w-16{width:4rem}.w-20{width:5rem}.w-1\/4{width:25%}.w-1\/3{width:33.333333%}.w-1\/2{width:50%}.w-full{width:100%}.w-3\/4{width:75%}.layout[data-v-432f1e06]{display:flex;width:100%;height:100%}.sidebar[data-v-432f1e06]{width:280px;height:100%;display:flex;flex-direction:column;padding:1.5rem;border-right:1px solid hsl(var(--border));z-index:10}.sidebar-header[data-v-432f1e06]{display:flex;align-items:center;gap:1rem;margin-bottom:2.5rem}.logo-placeholder[data-v-432f1e06]{width:40px;height:40px;border-radius:12px;background:var(--gradient-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.25rem;box-shadow:var(--shadow-sm)}.sidebar-header h2[data-v-432f1e06]{font-size:1.5rem;font-weight:700;background:var(--gradient-accent);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.sidebar-nav[data-v-432f1e06]{display:flex;flex-direction:column;gap:.5rem;flex:1}.nav-item[data-v-432f1e06]{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius);background:transparent;border:none;color:hsl(var(--muted-foreground));font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-align:left}.nav-item[data-v-432f1e06]:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.nav-item.active[data-v-432f1e06]{background:hsl(var(--primary) / .1);color:hsl(var(--primary));font-weight:600}.token-warning[data-v-432f1e06]{margin-top:auto;padding:1rem;border-radius:var(--radius);background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:.85rem;display:flex;align-items:flex-start;gap:.5rem}.main-content[data-v-432f1e06]{flex:1;height:100%;overflow-y:auto;padding:2.5rem 2.5rem 0;background-color:hsl(var(--background));display:flex;flex-direction:column}.page-wrapper[data-v-432f1e06]{flex:1 0 auto}.app-footer[data-v-432f1e06]{margin-top:auto;padding:2rem 0;border-top:1px solid hsl(var(--border) / .5);color:hsl(var(--muted-foreground));font-size:.85rem;text-align:center;flex-shrink:0}.fade-enter-active[data-v-432f1e06],.fade-leave-active[data-v-432f1e06]{transition:opacity .2s ease,transform .2s ease}.fade-enter-from[data-v-432f1e06]{opacity:0;transform:translateY(10px)}.fade-leave-to[data-v-432f1e06]{opacity:0;transform:translateY(-10px)}.page-header[data-v-5e1193ec]{margin-bottom:2rem}.page-header h1[data-v-5e1193ec]{font-size:2rem;font-weight:700;margin-bottom:.25rem}.page-header p[data-v-5e1193ec]{color:hsl(var(--muted-foreground));font-size:1rem}.stats-grid[data-v-5e1193ec]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card[data-v-5e1193ec]{display:flex;flex-direction:column;gap:.5rem}.stat-card h3[data-v-5e1193ec]{font-size:.875rem;font-weight:500;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.05em}.stat-card .value[data-v-5e1193ec]{font-size:2.5rem;font-weight:700}.text-destructive[data-v-5e1193ec]{color:hsl(var(--destructive))}.cluster-card[data-v-5e1193ec]{margin-bottom:1.5rem}.cluster-link-wrapper[data-v-5e1193ec]{display:block;text-decoration:none;color:inherit;transition:all .2s cubic-bezier(.175,.885,.32,1.275)}.cluster-link-wrapper[data-v-5e1193ec]:hover{transform:translateY(-2px);border-color:hsl(var(--ring))}.cluster-link-wrapper[data-v-5e1193ec]:active{transform:scale(.98);box-shadow:0 0 15px hsl(var(--primary) / .3)}.cluster-link-wrapper .cluster-header h2[data-v-5e1193ec]{display:flex;align-items:center;gap:.5rem}.cluster-link-wrapper .chevron[data-v-5e1193ec]{opacity:0;transform:translate(-10px);transition:all .2s ease;color:hsl(var(--primary))}.cluster-link-wrapper:hover .chevron[data-v-5e1193ec]{opacity:1;transform:translate(0)}.cluster-header[data-v-5e1193ec]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid hsl(var(--border) / .5)}.cluster-header h2[data-v-5e1193ec]{font-size:1.25rem;font-weight:600}.health-badge[data-v-5e1193ec]{padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:700;color:#fff;text-transform:uppercase}@keyframes pulse-destructive-5e1193ec{0%{box-shadow:0 0 hsl(var(--destructive) / .7)}70%{box-shadow:0 0 0 10px hsl(var(--destructive) / 0)}to{box-shadow:0 0 hsl(var(--destructive) / 0)}}.status-pulse[data-v-5e1193ec]{animation:pulse-destructive-5e1193ec 2s infinite}.cluster-details[data-v-5e1193ec]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;font-size:.95rem}.info-block[data-v-5e1193ec]{display:flex;flex-direction:column;gap:.5rem}.info-block p[data-v-5e1193ec]{margin:0;font-size:1.05rem;display:flex;align-items:center;gap:.5rem}.info-block strong[data-v-5e1193ec]{color:hsl(var(--muted-foreground));font-weight:500;text-transform:uppercase;font-size:.85rem;letter-spacing:.05em}.highlight-val[data-v-5e1193ec]{color:hsl(var(--foreground));font-family:var(--font-mono);font-weight:600;background:hsl(var(--muted));padding:.15rem .5rem;border-radius:4px}.unstable-indices h4[data-v-5e1193ec]{font-size:.95rem;font-weight:600;margin-bottom:.75rem;color:hsl(var(--destructive))}.indices-table[data-v-5e1193ec]{width:100%;border-collapse:collapse;font-size:.875rem}.indices-table th[data-v-5e1193ec]{text-align:left;padding:.75rem;background:hsl(var(--muted) / .5);font-weight:500;color:hsl(var(--muted-foreground));border-bottom:1px solid hsl(var(--border))}.indices-table td[data-v-5e1193ec]{padding:.75rem;border-bottom:1px solid hsl(var(--border) / .5)}.health-dot[data-v-5e1193ec]{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.5rem}.alert-icon-inline[data-v-5e1193ec]{color:hsl(var(--destructive));display:inline-block;vertical-align:text-bottom;margin-right:.5rem;animation:pulse-destructive-5e1193ec 2s infinite}.font-bold[data-v-5e1193ec]{font-weight:700}.error-banner[data-v-5e1193ec]{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));padding:1rem;border-radius:var(--radius);margin-bottom:2rem;display:flex;align-items:center;gap:.75rem;font-weight:500}.empty-state[data-v-5e1193ec]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.empty-icon[data-v-5e1193ec]{color:hsl(var(--muted-foreground));margin-bottom:1rem;opacity:.5}.empty-state h2[data-v-5e1193ec]{font-size:1.25rem;margin-bottom:.5rem}.empty-state p[data-v-5e1193ec]{color:hsl(var(--muted-foreground))}.mt-4[data-v-5e1193ec]{margin-top:1rem}.page-header[data-v-e174029f]{margin-bottom:2rem}.page-header h1[data-v-e174029f]{font-size:2rem;font-weight:700;margin-bottom:.25rem}.page-header p[data-v-e174029f]{color:hsl(var(--muted-foreground));font-size:1rem}.tabs-container[data-v-e174029f]{display:flex;flex-direction:column;gap:1.5rem}.tabs[data-v-e174029f]{display:flex;gap:.5rem;border-bottom:1px solid hsl(var(--border) / .5);padding-bottom:0;margin-bottom:.5rem}.tab-btn[data-v-e174029f]{background:transparent;border:none;border-bottom:2px solid transparent;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;color:hsl(var(--muted-foreground));cursor:pointer;transition:all .2s ease;margin-bottom:-1px}.tab-btn[data-v-e174029f]:hover{color:hsl(var(--foreground));background:hsl(var(--muted) / .5);border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.tab-btn.active[data-v-e174029f]{color:hsl(var(--primary));border-bottom:2px solid hsl(var(--primary));background:transparent}.tab-content[data-v-e174029f]{width:100%;max-width:800px}.card h3[data-v-e174029f]{font-size:1.25rem;font-weight:600;margin-bottom:.25rem}.text-muted[data-v-e174029f]{color:hsl(var(--muted-foreground));margin-bottom:1.5rem}.text-sm[data-v-e174029f]{font-size:.875rem}.cluster-form[data-v-e174029f]{display:flex;flex-direction:column;gap:1.25rem}.form-group[data-v-e174029f]{display:flex;flex-direction:column;gap:.5rem}.form-row[data-v-e174029f]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}label[data-v-e174029f]{font-size:.875rem;font-weight:500;color:hsl(var(--foreground))}.radio-group[data-v-e174029f]{display:flex;gap:1.5rem;padding:.5rem 0}.radio-label[data-v-e174029f]{display:flex;align-items:center;gap:.5rem;font-weight:400;cursor:pointer}.submit-btn[data-v-e174029f]{margin-top:.5rem;align-self:flex-start}.alert[data-v-e174029f]{padding:1rem;border-radius:var(--radius);margin-bottom:1.5rem;font-weight:500}.error-banner[data-v-e174029f]{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));border:1px solid hsl(var(--destructive) / .2)}.success-banner[data-v-e174029f]{background:hsl(var(--teal) / .1);color:hsl(var(--teal));border:1px solid hsl(var(--teal) / .2)}.flex-header[data-v-e174029f]{margin-bottom:1.5rem}.clusters-grid[data-v-e174029f]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;width:100%}.cluster-grid-card[data-v-e174029f]{display:flex;flex-direction:column;gap:1rem;height:100%}.card-top[data-v-e174029f]{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid hsl(var(--border) / .5);padding-bottom:1rem}.cluster-name-block strong[data-v-e174029f]{display:block;font-size:1.15rem;font-weight:600;margin-bottom:.1rem}.host-url[data-v-e174029f]{font-size:.85rem;color:hsl(var(--muted-foreground))}.health-chip[data-v-e174029f]{display:flex;align-items:center;gap:.35rem;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:700;text-transform:uppercase;background:hsl(var(--muted) / .3);color:hsl(var(--muted-foreground))}.chip-dot[data-v-e174029f]{width:6px;height:6px;border-radius:50%;background:currentColor}.health-green[data-v-e174029f]{background:hsl(var(--teal) / .15);color:hsl(var(--teal))}.health-yellow[data-v-e174029f]{background:hsl(var(--secondary) / .15);color:hsl(var(--secondary))}.health-red[data-v-e174029f]{background:hsl(var(--destructive) / .15);color:hsl(var(--destructive))}.card-stats[data-v-e174029f]{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:.5rem}.stat-small[data-v-e174029f]{display:flex;flex-direction:column;gap:.2rem}.stat-label[data-v-e174029f]{font-size:.75rem;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.05em;font-weight:600}.stat-val[data-v-e174029f]{font-size:.95rem;font-weight:500;word-break:break-all;color:hsl(var(--foreground))}.card-actions[data-v-e174029f]{margin-top:auto;padding-top:.5rem}.empty-list[data-v-e174029f]{color:hsl(var(--muted-foreground));font-style:italic;padding:3rem 0;text-align:center}.mt-4[data-v-e174029f]{margin-top:1rem}.code-block[data-v-f0ccb4d4]{overflow:hidden;border-radius:.75rem;border:1px solid hsl(var(--border) / .5);background:hsl(var(--card) / .4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:100%;margin-bottom:2rem;font-family:JetBrains Mono,monospace}.code-header[data-v-f0ccb4d4]{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid hsl(var(--border) / .3);background:hsl(var(--card) / .5)}.code-dots[data-v-f0ccb4d4]{display:flex;gap:.375rem}.dot[data-v-f0ccb4d4]{width:.75rem;height:.75rem;border-radius:50%}.dot-red[data-v-f0ccb4d4]{background:#ef4444cc}.dot-yellow[data-v-f0ccb4d4]{background:#eab308cc}.dot-green[data-v-f0ccb4d4]{background:#22c55ecc}.code-title[data-v-f0ccb4d4]{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:hsl(var(--muted-foreground));margin-right:auto;margin-left:1rem}.icon-small[data-v-f0ccb4d4]{width:1rem;height:1rem}.copy-btn[data-v-f0ccb4d4]{display:flex;align-items:center;gap:.375rem;background:transparent;border:none;color:hsl(var(--muted-foreground));cursor:pointer;font-size:.75rem;padding:.25rem .5rem;border-radius:.25rem;transition:all .2s}.copy-btn[data-v-f0ccb4d4]:hover{color:hsl(var(--foreground));background:hsl(var(--muted) / .5)}.code-content[data-v-f0ccb4d4]{padding:1rem;overflow-x:auto}pre[data-v-f0ccb4d4]{margin:0;font-size:.875rem;line-height:1.6}code[data-v-f0ccb4d4]{display:block}.code-line[data-v-f0ccb4d4]{display:flex;min-width:0}.line-number[data-v-f0ccb4d4]{-webkit-user-select:none;user-select:none;color:hsl(var(--muted-foreground) / .3);width:2rem;text-align:right;padding-right:1rem;flex-shrink:0}.line-text[data-v-f0ccb4d4]{flex:1;white-space:pre-wrap;word-break:break-all}[data-v-f0ccb4d4] .hl-str{color:#2dd4bf}[data-v-f0ccb4d4] .hl-comment{color:hsl(var(--muted-foreground));opacity:.6;font-style:italic}[data-v-f0ccb4d4] .hl-kw{color:#f472b6;font-weight:500}[data-v-f0ccb4d4] .hl-func{color:#60a5fa}[data-v-f0ccb4d4] .hl-dec{color:#facc15}[data-v-f0ccb4d4] .hl-num{color:#fb923c}[data-v-f0ccb4d4] .hl-cmd{color:#d946ef;font-weight:700}[data-v-f0ccb4d4] .hl-str2{color:#4ade80}[data-v-f0ccb4d4] .hl-flag{color:#22d3ee;opacity:.9}[data-v-f0ccb4d4] .hl-var{color:#facc15}.docs-layout[data-v-cfe6e046]{display:flex;flex-direction:column;position:relative;width:100%}.top-nav[data-v-cfe6e046]{position:sticky;top:0;z-index:30;background:hsl(var(--background) / .8);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid hsl(var(--border) / .5);margin-bottom:2rem;padding:.75rem 0}.nav-container[data-v-cfe6e046]{display:flex;align-items:center;gap:1.5rem;width:100%;padding:0 1rem}.nav-title[data-v-cfe6e046]{font-size:.875rem;font-weight:600;color:hsl(var(--foreground));white-space:nowrap}.nav-links[data-v-cfe6e046]{display:flex;align-items:center;gap:.5rem;overflow-x:auto;padding-bottom:2px}.nav-links[data-v-cfe6e046]::-webkit-scrollbar{display:none}.nav-links[data-v-cfe6e046]{-ms-overflow-style:none;scrollbar-width:none}.nav-btn[data-v-cfe6e046]{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:.5rem;border:1px solid transparent;background:transparent;color:hsl(var(--muted-foreground));font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.nav-btn[data-v-cfe6e046]:hover{background:hsl(var(--muted) / .5);color:hsl(var(--foreground))}.nav-btn.active[data-v-cfe6e046]{background:hsl(var(--primary) / .1);color:hsl(var(--primary))}.main-content[data-v-cfe6e046]{flex:1;width:100%}.hero-section[data-v-cfe6e046]{margin-bottom:3rem;animation:fade-in-cfe6e046 .5s ease-out}@keyframes fade-in-cfe6e046{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.badge[data-v-cfe6e046]{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:9999px;background:hsl(var(--card) / .4);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid hsl(var(--border) / .5);margin-bottom:1.5rem}.badge span[data-v-cfe6e046]{font-size:.875rem;font-weight:500;color:hsl(var(--muted-foreground))}.text-accent[data-v-cfe6e046]{color:hsl(var(--teal))}.page-title[data-v-cfe6e046]{font-size:3rem;font-weight:800;margin-bottom:1rem;letter-spacing:-.025em}.gradient-text[data-v-cfe6e046]{background:linear-gradient(to right,hsl(var(--primary)),hsl(var(--teal)));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.subtitle[data-v-cfe6e046]{font-size:1.25rem;color:hsl(var(--muted-foreground));line-height:1.6}.doc-section[data-v-cfe6e046]{margin-bottom:4rem;scroll-margin-top:6rem}.section-title[data-v-cfe6e046]{display:flex;align-items:center;gap:.75rem;font-size:1.875rem;font-weight:700;margin-bottom:1rem;color:hsl(var(--foreground))}.text-primary[data-v-cfe6e046]{color:hsl(var(--primary))}.section-desc[data-v-cfe6e046]{font-size:1.125rem;color:hsl(var(--muted-foreground));margin-bottom:1.5rem}.subsection-title[data-v-cfe6e046]{font-size:1.25rem;font-weight:600;margin:2rem 0 1rem;color:hsl(var(--foreground))}.icon-small[data-v-cfe6e046],.icon-badge[data-v-cfe6e046]{width:1rem;height:1rem}.icon-large[data-v-cfe6e046]{width:2rem;height:2rem}.shrink-0[data-v-cfe6e046]{flex-shrink:0}.text-left[data-v-cfe6e046]{text-align:left}.mobile-toggle[data-v-cfe6e046]{display:none}@media(max-width:1024px){.sidebar[data-v-cfe6e046]{position:fixed;top:4rem;left:0;height:calc(100vh - 4rem);background:hsl(var(--background));transform:translate(-100%);transition:transform .3s;border-right:1px solid hsl(var(--border) / .5)}.sidebar-open[data-v-cfe6e046]{transform:translate(0)}.mobile-toggle[data-v-cfe6e046]{display:block;position:fixed;top:4rem;left:0;right:0;background:hsl(var(--background));border-bottom:1px solid hsl(var(--border) / .5);padding:.75rem 1rem;z-index:20}.toggle-btn[data-v-cfe6e046]{display:flex;align-items:center;gap:.5rem;background:transparent;border:none;color:hsl(var(--foreground));font-size:.875rem;font-weight:500}.main-content[data-v-cfe6e046]{padding-top:4rem;padding-left:1rem;padding-right:1rem}}.docs-layout[data-v-0189e06c]{display:flex;flex-direction:column;position:relative;width:100%}.top-nav[data-v-0189e06c]{position:sticky;top:0;z-index:30;background:hsl(var(--background) / .8);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid hsl(var(--border) / .5);margin-bottom:2rem;padding:.75rem 0}.nav-container[data-v-0189e06c]{display:flex;align-items:center;gap:1.5rem;width:100%;padding:0 1rem}.nav-title[data-v-0189e06c]{font-size:.875rem;font-weight:600;color:hsl(var(--foreground));white-space:nowrap}.nav-links[data-v-0189e06c]{display:flex;align-items:center;gap:.5rem;overflow-x:auto;padding-bottom:2px}.nav-links[data-v-0189e06c]::-webkit-scrollbar{display:none}.nav-links[data-v-0189e06c]{-ms-overflow-style:none;scrollbar-width:none}.nav-btn[data-v-0189e06c]{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:.5rem;border:1px solid transparent;background:transparent;color:hsl(var(--muted-foreground));font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.nav-btn[data-v-0189e06c]:hover{background:hsl(var(--muted) / .5);color:hsl(var(--foreground))}.nav-btn.active[data-v-0189e06c]{background:hsl(var(--primary) / .1);color:hsl(var(--primary))}.main-content[data-v-0189e06c]{flex:1;width:100%}.hero-section[data-v-0189e06c]{margin-bottom:3rem;animation:fade-in-0189e06c .5s ease-out}@keyframes fade-in-0189e06c{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.badge[data-v-0189e06c]{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:9999px;background:hsl(var(--card) / .4);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid hsl(var(--border) / .5);margin-bottom:1.5rem}.badge span[data-v-0189e06c]{font-size:.875rem;font-weight:500;color:hsl(var(--muted-foreground))}.text-accent[data-v-0189e06c]{color:hsl(var(--teal))}.page-title[data-v-0189e06c]{font-size:3rem;font-weight:800;margin-bottom:1rem;letter-spacing:-.025em}.gradient-text[data-v-0189e06c]{background:linear-gradient(to right,hsl(var(--primary)),hsl(var(--teal)));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.subtitle[data-v-0189e06c]{font-size:1.25rem;color:hsl(var(--muted-foreground));line-height:1.6}.doc-section[data-v-0189e06c]{margin-bottom:4rem;scroll-margin-top:6rem}.section-title[data-v-0189e06c]{display:flex;align-items:center;gap:.75rem;font-size:1.875rem;font-weight:700;margin-bottom:1rem;color:hsl(var(--foreground))}.text-primary[data-v-0189e06c]{color:hsl(var(--primary))}.section-desc[data-v-0189e06c]{font-size:1.125rem;color:hsl(var(--muted-foreground));margin-bottom:1.5rem}.info-card[data-v-0189e06c]{background:hsl(var(--card) / .4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid hsl(var(--border) / .5);border-radius:.75rem;padding:1.5rem;margin-bottom:1.5rem}.info-title[data-v-0189e06c]{font-size:1.25rem;font-weight:600;margin-bottom:.75rem}.info-list[data-v-0189e06c]{display:flex;flex-direction:column;gap:.5rem;list-style:none;padding:0;margin:0}.info-list li[data-v-0189e06c]{display:flex;align-items:flex-start;gap:.5rem;color:hsl(var(--muted-foreground))}.info-list strong[data-v-0189e06c]{color:hsl(var(--foreground));font-weight:600}.icon-small[data-v-0189e06c],.icon-badge[data-v-0189e06c]{width:1rem;height:1rem}.icon-large[data-v-0189e06c]{width:2rem;height:2rem}.shrink-0[data-v-0189e06c]{flex-shrink:0}.mt-05[data-v-0189e06c]{margin-top:.125rem}.text-left[data-v-0189e06c]{text-align:left}.mobile-toggle[data-v-0189e06c]{display:none}@media(max-width:1024px){.sidebar[data-v-0189e06c]{position:fixed;top:4rem;left:0;height:calc(100vh - 4rem);background:hsl(var(--background));transform:translate(-100%);transition:transform .3s;border-right:1px solid hsl(var(--border) / .5)}.sidebar-open[data-v-0189e06c]{transform:translate(0)}.mobile-toggle[data-v-0189e06c]{display:block;position:fixed;top:4rem;left:0;right:0;background:hsl(var(--background));border-bottom:1px solid hsl(var(--border) / .5);padding:.75rem 1rem;z-index:20}.toggle-btn[data-v-0189e06c]{display:flex;align-items:center;gap:.5rem;background:transparent;border:none;color:hsl(var(--foreground));font-size:.875rem;font-weight:500}.main-content[data-v-0189e06c]{padding-top:4rem;padding-left:1rem;padding-right:1rem}}.docs-wrapper[data-v-60eff690]{position:relative;min-height:100%}.bg-glow[data-v-60eff690]{position:absolute;width:50vw;height:50vh;border-radius:50%;filter:blur(140px);z-index:1;pointer-events:none;opacity:.25}.bg-glow-primary[data-v-60eff690]{top:-10%;right:-10%;background:radial-gradient(circle,hsl(var(--primary)) 0%,transparent 70%)}.bg-glow-accent[data-v-60eff690]{bottom:-20%;left:-20%;background:radial-gradient(circle,hsl(var(--teal)) 0%,transparent 70%)}.tabs-container[data-v-60eff690]{width:100%;max-width:1200px;margin:0 auto}.tabs-list[data-v-60eff690]{display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:400px;margin:0 auto 2rem;background:hsl(var(--muted) / .5);padding:.375rem;border-radius:.75rem;border:1px solid hsl(var(--border) / .5);gap:.25rem}.tab-trigger[data-v-60eff690]{padding:.5rem 1rem;border-radius:.5rem;border:none;background:transparent;color:hsl(var(--muted-foreground));font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.tab-trigger[data-v-60eff690]:hover{color:hsl(var(--foreground))}.tab-trigger.active[data-v-60eff690]{background:hsl(var(--card));color:hsl(var(--foreground));box-shadow:0 1px 3px #0000001a}.tabs-content[data-v-60eff690]{width:100%}.header-actions[data-v-72313788]{margin-bottom:2rem}.back-btn[data-v-72313788]{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem}.page-header[data-v-72313788]{margin-bottom:3rem;padding-bottom:1.5rem;border-bottom:1px solid hsl(var(--border) / .3)}.title-group[data-v-72313788]{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem}.title-group h1[data-v-72313788]{font-size:2.5rem;font-weight:700;letter-spacing:-.025em}.host-link a[data-v-72313788]{color:hsl(var(--muted-foreground));text-decoration:none;transition:color .2s;font-family:var(--font-mono);font-size:.95rem}.host-link a[data-v-72313788]:hover{color:hsl(var(--primary));text-decoration:underline}.metrics-grid[data-v-72313788]{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem}.metric-card[data-v-72313788]{display:flex;flex-direction:column;height:100%}.metric-header[data-v-72313788]{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;color:hsl(var(--muted-foreground))}.metric-header h3[data-v-72313788]{font-size:1.1rem;font-weight:600;color:hsl(var(--foreground))}.mega-stat[data-v-72313788]{font-size:3.5rem;font-weight:800;line-height:1;background:var(--gradient-accent);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:1rem}.sub-stats[data-v-72313788]{display:flex;flex-wrap:wrap;gap:.5rem}.sub-stat-badge[data-v-72313788]{background:hsl(var(--muted) / .5);padding:.25rem .5rem;border-radius:.25rem;font-size:.85rem;color:hsl(var(--muted-foreground));border:1px solid hsl(var(--border) / .5)}.sub-stat-badge strong[data-v-72313788]{color:hsl(var(--foreground))}.health-breakdown[data-v-72313788]{display:flex;height:8px;width:100%;border-radius:4px;overflow:hidden;background:hsl(var(--muted));margin-bottom:1rem}.health-bar-segment[data-v-72313788]{height:100%;transition:width 1s ease-in-out}.health-legend[data-v-72313788]{display:flex;gap:1rem;font-size:.85rem;color:hsl(var(--muted-foreground))}.dot[data-v-72313788]{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.25rem}.dot.green[data-v-72313788]{background:hsl(var(--teal))}.dot.yellow[data-v-72313788]{background:hsl(var(--warning))}.dot.red[data-v-72313788]{background:hsl(var(--destructive))}.status-indicator[data-v-72313788]{display:inline-block;padding:.25rem .75rem;border-radius:999px;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.status-good[data-v-72313788]{background:hsl(var(--teal) / .1);color:hsl(var(--teal))}.status-bad[data-v-72313788]{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive))}.repos-list[data-v-72313788]{display:flex;flex-direction:column;gap:.75rem}.repo-item[data-v-72313788]{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:hsl(var(--muted) / .3);border-radius:var(--radius);border:1px solid hsl(var(--border) / .5)}.repo-name[data-v-72313788]{font-family:var(--font-mono);font-weight:600}.badge-outline[data-v-72313788]{font-size:.75rem;padding:.1rem .5rem;border-radius:999px;border:1px solid currentColor;opacity:.7;text-transform:uppercase}.text-muted[data-v-72313788]{color:hsl(var(--muted-foreground))}.text-sm[data-v-72313788]{font-size:.875rem}.mt-2[data-v-72313788]{margin-top:.5rem}.mt-3[data-v-72313788]{margin-top:1rem}.mb-4[data-v-72313788]{margin-bottom:1.5rem}.health-badge.outline[data-v-72313788]{background:transparent;border:1.5px solid;padding:.25rem .75rem;border-radius:999px;font-size:.85rem;font-weight:700;text-transform:uppercase}.error-banner[data-v-72313788]{display:flex;align-items:flex-start;gap:1.5rem;padding:2rem;background:hsl(var(--destructive) / .05);border-left:4px solid hsl(var(--destructive));color:hsl(var(--foreground))}.error-banner svg[data-v-72313788]{color:hsl(var(--destructive));flex-shrink:0;margin-top:.25rem}.error-text h3[data-v-72313788]{font-size:1.25rem;font-weight:600;margin-bottom:.5rem;color:hsl(var(--destructive))}.loader-container[data-v-72313788]{display:flex;justify-content:center;padding:5rem 0}.mt-4[data-v-72313788]{margin-top:2rem}.terminal-card[data-v-72313788]{display:flex;flex-direction:column;background:#09090b;border:1px solid hsl(var(--border));overflow:hidden;padding:0}.terminal-header[data-v-72313788]{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:hsl(var(--muted) / .5);border-bottom:1px solid hsl(var(--border) / .5);color:hsl(var(--muted-foreground))}.terminal-header h3[data-v-72313788]{font-size:.95rem;font-weight:600;color:hsl(var(--foreground));letter-spacing:.025em;margin:0}.cli-chips[data-v-72313788]{display:flex;gap:.5rem;margin:0 1rem;overflow-x:auto;flex-grow:1;padding-bottom:6px;padding-top:4px}.cli-chips[data-v-72313788]::-webkit-scrollbar{height:4px}.cli-chips[data-v-72313788]::-webkit-scrollbar-thumb{background:hsl(var(--primary) / .5);border-radius:4px}.cli-chip[data-v-72313788]{background:hsl(var(--primary) / .2);color:hsl(var(--primary));border:2px solid hsl(var(--primary) / .6);border-radius:8px;padding:.5rem 1.25rem;font-size:1rem;font-family:var(--font-mono);font-weight:800;cursor:pointer;white-space:nowrap;transition:all .2s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 2px 8px #00000026}.cli-chip[data-v-72313788]:hover{background:hsl(var(--primary) / .35);border-color:hsl(var(--primary));transform:translateY(-3px);box-shadow:0 6px 16px #0000004d}.terminal-icon[data-v-72313788]{color:hsl(var(--primary))}.btn-clear[data-v-72313788]{background:transparent;border:none;color:hsl(var(--muted-foreground));cursor:pointer;padding:.25rem;border-radius:.25rem;transition:color .15s,background-color .15s;display:flex;align-items:center;justify-content:center}.btn-clear[data-v-72313788]:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.terminal-body[data-v-72313788]{padding:1rem;height:75vh;min-height:500px;overflow-y:auto;overflow-x:auto;font-family:var(--font-mono);font-size:.85rem;line-height:1.5;background:transparent}.terminal-body[data-v-72313788]::-webkit-scrollbar{width:8px;height:8px}.terminal-body[data-v-72313788]::-webkit-scrollbar-track{background:transparent}.terminal-body[data-v-72313788]::-webkit-scrollbar-thumb{background:hsl(var(--muted));border-radius:4px}.cli-line[data-v-72313788]{margin-bottom:.5rem}.cli-line pre[data-v-72313788]{margin:0;font-family:inherit;white-space:pre}.cli-input[data-v-72313788]{color:hsl(var(--foreground));font-weight:600}.cli-output[data-v-72313788]{color:hsl(var(--muted-foreground))}.cli-error[data-v-72313788]{color:hsl(var(--destructive))}.cli-system[data-v-72313788]{color:hsl(var(--primary));opacity:.8;font-style:italic}.terminal-input-form[data-v-72313788]{display:flex;align-items:center;padding:.75rem 1rem;background:transparent;border-top:1px solid hsl(var(--border) / .3)}.prompt[data-v-72313788]{color:hsl(var(--teal));font-family:var(--font-mono);font-weight:700;margin-right:.75rem;-webkit-user-select:none;user-select:none}.terminal-input-form input[data-v-72313788]{flex-grow:1;background:transparent;border:none;color:hsl(var(--foreground));font-family:var(--font-mono);font-size:.9rem;outline:none}.terminal-input-form input[data-v-72313788]:focus{outline:none}.terminal-input-form input[data-v-72313788]:disabled{opacity:.5;cursor:not-allowed}.cursor-blink[data-v-72313788]{animation:blink-72313788 1s step-end infinite}@keyframes blink-72313788{0%,to{opacity:1}50%{opacity:0}}.chip-destructive[data-v-72313788]{color:hsl(var(--destructive));border-color:hsl(var(--destructive) / .6);background:hsl(var(--destructive) / .1)}.chip-destructive[data-v-72313788]:hover{background:hsl(var(--destructive) / .2);border-color:hsl(var(--destructive));box-shadow:0 6px 16px hsl(var(--destructive) / .3)}.modal-overlay[data-v-72313788]{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:1000;display:flex;align-items:center;justify-content:center;background:hsl(var(--background) / .5)}.glass-panel[data-v-72313788]{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.modal-content[data-v-72313788]{background:hsl(var(--card));border:1px solid hsl(var(--border) / .7);border-radius:var(--radius);box-shadow:0 20px 50px #00000080;width:90%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.modal-header[data-v-72313788]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid hsl(var(--border) / .5)}.modal-header h2[data-v-72313788]{font-size:1.25rem;font-weight:600;margin:0}.btn-close[data-v-72313788]{background:transparent;border:none;color:hsl(var(--muted-foreground));cursor:pointer;padding:.25rem;border-radius:4px;transition:all .2s;display:flex;align-items:center;justify-content:center}.btn-close[data-v-72313788]:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.modal-body[data-v-72313788]{padding:1.5rem;overflow-y:auto}.detail-grid[data-v-72313788]{display:flex;flex-direction:column;gap:.75rem}.detail-row[data-v-72313788]{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:hsl(var(--muted) / .3);border:1px solid hsl(var(--border) / .5);border-radius:var(--radius)}.detail-label[data-v-72313788]{font-weight:600;color:hsl(var(--foreground));text-transform:capitalize}.legend-row[data-v-72313788]{display:flex;align-items:center;font-size:1.05rem}.legend-text strong[data-v-72313788]{color:hsl(var(--foreground));font-family:var(--font-mono);margin-right:.25rem}.interactive-card[data-v-72313788]{cursor:pointer;background:hsl(var(--card));border:1px solid hsl(var(--border));text-align:left;transition:all .2s cubic-bezier(.175,.885,.32,1.275);padding:1.5rem;border-radius:var(--radius)}.interactive-card[data-v-72313788]:hover{transform:translateY(-2px);border-color:hsl(var(--primary) / .5)}.interactive-card[data-v-72313788]:active{transform:scale(.98);box-shadow:0 0 15px hsl(var(--primary) / .3)}.animate-zoom-in[data-v-72313788]{animation:zoom-in-72313788 .2s cubic-bezier(.175,.885,.32,1.275)}@keyframes zoom-in-72313788{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.mono-code[data-v-72313788]{font-family:var(--font-mono);background:hsl(var(--muted));padding:.1rem .3rem;border-radius:4px}.mb-3[data-v-72313788]{margin-bottom:.75rem}.page-header h1[data-v-41a0b48c]{background:linear-gradient(to right,hsl(var(--primary)),hsl(var(--teal)));-webkit-background-clip:text;-webkit-text-fill-color:transparent;display:inline-block}.builder-layout[data-v-41a0b48c]{display:grid;grid-template-columns:3fr 2fr;gap:1.5rem;align-items:flex-start}.panel-title[data-v-41a0b48c]{font-size:1.15rem;font-weight:700;color:hsl(var(--foreground));border-bottom:2px solid hsl(var(--border) / .4);padding-bottom:.75rem;margin-bottom:1.25rem}.glass-panel[data-v-41a0b48c]{background:hsl(var(--card) / .6);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid hsl(var(--border) / .5);box-shadow:0 8px 32px #0000004d}.detail-label[data-v-41a0b48c]{font-size:.75rem;font-weight:700;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.08em}.cli-input[data-v-41a0b48c]{background:hsl(var(--background) / .8);border:1px solid hsl(var(--border));padding:.6rem .85rem;border-radius:var(--radius);color:hsl(var(--foreground));font-size:.95rem;outline:none}.cli-input[data-v-41a0b48c]:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 2px hsl(var(--primary) / .2)}.field-tree[data-v-41a0b48c]{display:flex;flex-direction:column;gap:.5rem}.field-item[data-v-41a0b48c]{padding:.85rem 1.25rem;background:hsl(var(--muted) / .15);border:1px solid hsl(var(--border) / .4);border-left:4px solid hsl(var(--muted));border-radius:var(--radius)}.fluid-hover[data-v-41a0b48c]{transition:all .25s cubic-bezier(.4,0,.2,1)}.fluid-hover[data-v-41a0b48c]:hover{border-left-color:hsl(var(--primary));background:hsl(var(--muted) / .3);transform:translate(4px);box-shadow:-4px 4px 12px #0000001a}.field-type[data-v-41a0b48c]{font-size:.7rem;padding:.2rem .6rem;border-radius:999px;border:1px solid currentColor;text-transform:uppercase;font-weight:800;letter-spacing:.05em;margin-left:.5rem}.type-text[data-v-41a0b48c]{color:hsl(var(--destructive));background:hsl(var(--destructive)/.05)}.type-keyword[data-v-41a0b48c]{color:hsl(var(--teal));background:hsl(var(--teal)/.05)}.type-object[data-v-41a0b48c],.type-nested[data-v-41a0b48c]{color:hsl(var(--primary));background:hsl(var(--primary)/.05)}.type-date[data-v-41a0b48c]{color:#8b5cf6;background:#8b5cf60d}.type-long[data-v-41a0b48c],.type-integer[data-v-41a0b48c],.type-float[data-v-41a0b48c],.type-double[data-v-41a0b48c]{color:#eab308;background:#eab3080d}.tactile-btn[data-v-41a0b48c]{transition:all .15s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 14px #0003}.tactile-btn[data-v-41a0b48c]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px rgba(var(--primary),.23)}.tactile-btn[data-v-41a0b48c]:active:not(:disabled){transform:translateY(1px) scale(.97);box-shadow:0 2px 8px #0000004d}.btn-icon[data-v-41a0b48c]{background:transparent;border:none;color:hsl(var(--muted-foreground));cursor:pointer;padding:.35rem;border-radius:var(--radius);transition:all .2s}.btn-icon[data-v-41a0b48c]:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.tactile-btn-danger[data-v-41a0b48c]:hover{color:hsl(var(--destructive));background:hsl(var(--destructive) / .15);box-shadow:0 0 12px hsl(var(--destructive) / .3)}.modal-overlay[data-v-41a0b48c]{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}
@@ -290,4 +290,4 @@ results = doc_manager.search("products", query)`,language:"python",showLineNumbe
290
290
  | # alternate
291
291
  (?:\\x07) # BEL (what xterm did)
292
292
  )
293
- `]))));let i=this._buffer.match(this._osc_regex);if(i===null)return t.kind=_e.ESC,t.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),t;t.kind=_e.OSCURL,t.url=i[1],t.text=i[2];var o=i[0].length;return this._buffer=this._buffer.slice(o),t}else if(r=="(")return t.kind=_e.Unknown,this._buffer=this._buffer.slice(3),t}}ansi_to_html(t){this.append_buffer(t);for(var n=[];;){var s=this.get_next_packet();if(s.kind==_e.EOS||s.kind==_e.Incomplete)break;s.kind==_e.ESC||s.kind==_e.Unknown||(s.kind==_e.Text?n.push(this.transform_to_html(this.with_state(s))):s.kind==_e.SGR?this.process_ansi(s):s.kind==_e.OSCURL&&n.push(this.process_hyperlink(s)))}return n.join("")}with_state(t){return{bold:this.bold,faint:this.faint,italic:this.italic,underline:this.underline,fg:this.fg,bg:this.bg,text:t.text}}process_ansi(t){let n=t.text.split(";");for(;n.length>0;){let s=n.shift(),r=parseInt(s,10);if(isNaN(r)||r===0)this.fg=null,this.bg=null,this.bold=!1,this.faint=!1,this.italic=!1,this.underline=!1;else if(r===1)this.bold=!0;else if(r===2)this.faint=!0;else if(r===3)this.italic=!0;else if(r===4)this.underline=!0;else if(r===21)this.bold=!1;else if(r===22)this.faint=!1,this.bold=!1;else if(r===23)this.italic=!1;else if(r===24)this.underline=!1;else if(r===39)this.fg=null;else if(r===49)this.bg=null;else if(r>=30&&r<38)this.fg=this.ansi_colors[0][r-30];else if(r>=40&&r<48)this.bg=this.ansi_colors[0][r-40];else if(r>=90&&r<98)this.fg=this.ansi_colors[1][r-90];else if(r>=100&&r<108)this.bg=this.ansi_colors[1][r-100];else if((r===38||r===48)&&n.length>0){let o=r===38,i=n.shift();if(i==="5"&&n.length>0){let l=parseInt(n.shift(),10);l>=0&&l<=255&&(o?this.fg=this.palette_256[l]:this.bg=this.palette_256[l])}if(i==="2"&&n.length>2){let l=parseInt(n.shift(),10),a=parseInt(n.shift(),10),f=parseInt(n.shift(),10);if(l>=0&&l<=255&&a>=0&&a<=255&&f>=0&&f<=255){let u={rgb:[l,a,f],class_name:"truecolor"};o?this.fg=u:this.bg=u}}}}}transform_to_html(t){let n=t.text;if(n.length===0||(n=this.escape_txt_for_html(n),!t.bold&&!t.italic&&!t.faint&&!t.underline&&t.fg===null&&t.bg===null))return n;let s=[],r=[],o=t.fg,i=t.bg;t.bold&&s.push(this._boldStyle),t.faint&&s.push(this._faintStyle),t.italic&&s.push(this._italicStyle),t.underline&&s.push(this._underlineStyle),this._use_classes?(o&&(o.class_name!=="truecolor"?r.push(`${o.class_name}-fg`):s.push(`color:rgb(${o.rgb.join(",")})`)),i&&(i.class_name!=="truecolor"?r.push(`${i.class_name}-bg`):s.push(`background-color:rgb(${i.rgb.join(",")})`))):(o&&s.push(`color:rgb(${o.rgb.join(",")})`),i&&s.push(`background-color:rgb(${i.rgb})`));let l="",a="";return r.length&&(l=` class="${r.join(" ")}"`),s.length&&(a=` style="${s.join(";")}"`),`<span${a}${l}>${n}</span>`}process_hyperlink(t){let n=t.url.split(":");return n.length<1||!this._url_allowlist[n[0]]?"":`<a href="${this.escape_txt_for_html(t.url)}">${this.escape_txt_for_html(t.text)}</a>`}}function Yo(e,...t){let n=e.raw[0],s=/^\s+|\s+\n|\s*#[\s\S]*?\n|\n/gm,r=n.replace(s,"");return new RegExp(r)}function qg(e,...t){let n=e.raw[0],s=/^\s+|\s+\n|\s*#[\s\S]*?\n|\n/gm,r=n.replace(s,"");return new RegExp(r,"g")}var Zo,el,tl;const zg={class:"cluster-detail-page animate-fade-in"},Gg={class:"header-actions"},Kg={key:0,class:"metrics-grid mt-4"},Wg={key:1,class:"error-banner card"},Jg={class:"error-text"},Qg={key:2,class:"detail-content"},Xg={class:"page-header"},Yg={class:"title-group"},Zg={class:"host-link"},e1=["href"],t1={class:"metrics-grid"},n1={class:"metric-body"},s1={class:"mega-stat"},r1={class:"sub-stats"},i1={class:"metric-body"},o1={class:"mega-stat"},l1={class:"health-breakdown mt-3"},a1={class:"health-legend"},c1={class:"metric-body"},u1={class:"mega-stat"},d1={class:"metric-body"},f1={key:0,class:"repos-list"},p1={class:"repo-name"},h1={class:"repo-type badge-outline"},m1={key:1,class:"text-sm text-muted"},g1={class:"card terminal-card mt-4"},y1={class:"terminal-header"},v1={class:"cli-chips"},b1=["onClick"],_1={class:"terminal-actions"},w1=["innerHTML"],x1={key:0,class:"cli-line cli-system cli-loading"},C1=["disabled"],E1={class:"modal-content animate-zoom-in"},k1={class:"modal-header"},S1={class:"modal-body"},R1={key:0},A1={class:"detail-grid"},T1={class:"detail-label"},O1={class:"detail-value badge-outline"},$1={class:"text-muted mt-4"},I1={key:1},N1={class:"health-legend vertical mt-2"},P1={class:"legend-row mb-3"},L1={class:"legend-text"},M1={class:"legend-row mb-3"},B1={class:"legend-text"},D1={class:"legend-row"},F1={class:"legend-text"},j1={key:0,class:"mt-4 text-center text-muted"},U1={key:1,class:"mt-4"},H1={class:"repos-list"},V1={style:{display:"flex","justify-content":"space-between",width:"100%"}},q1={class:"repo-name"},z1={class:"text-sm text-muted",style:{margin:"0.5rem 0"}},G1={key:0,class:"mt-2",style:{width:"100%"}},K1={key:0},W1=["onClick","disabled"],J1={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",style:{"margin-right":"4px"}},Q1={key:1},X1=["onClick","disabled"],Y1={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",style:{"margin-right":"4px"}},Z1={key:2},e0=["onClick","disabled"],t0={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",style:{"margin-right":"4px"}},n0={key:2},s0={key:0},r0={class:"detail-row mb-4"},i0={class:"detail-value badge-outline"},o0={key:1,class:"text-muted"},l0={key:3},a0={key:0},c0={class:"repos-list"},u0={class:"repo-name"},d0={class:"repo-type badge-outline"},f0={key:1,class:"text-muted"},p0=ht({__name:"ClusterDetail",setup(e){const t=_a(),n=ba(),s="",r=ue(decodeURIComponent(t.params.name)),o=ue(!0),i=ue(null),l=ue(null),a=ue(null),f=()=>{a.value=null},u=async()=>{if(le.token){o.value=!0,i.value=null;try{const j=await be.get(`${s}/api/cluster/${encodeURIComponent(r.value)}`,{headers:{Authorization:`Bearer ${le.token}`}});l.value=j.data}catch(j){j.response?.status===401?i.value="Unauthorized: Invalid or missing security token.":j.response?.status===404?i.value=`Cluster '${r.value}' not found in configuration.`:i.value=`Failed to fetch detailed metrics for '${r.value}'. Is the cluster reachable?`}finally{o.value=!1}}};Yt(()=>{if(le.token)u();else{const j=setInterval(()=>{le.token&&(clearInterval(j),u())},100)}});const d=j=>{switch(j){case"green":return"hsl(var(--teal))";case"yellow":return"hsl(var(--secondary))";case"red":return"hsl(var(--destructive))";default:return"hsl(var(--muted-foreground))"}},h=ue(null),y=ue(!1),g=ue(null),_=async()=>{if(le.token){y.value=!0;try{const j=await be.get(`${s}/api/clusters/${encodeURIComponent(r.value)}/indices/unhealthy`,{headers:{Authorization:`Bearer ${le.token}`}});h.value=j.data.indices}catch(j){console.error("Failed to fetch unhealthy indices",j)}finally{y.value=!1}}},x=async(j,v)=>{if(le.token){g.value=j;try{await be.post(`${s}/api/clusters/${encodeURIComponent(r.value)}/indices/${encodeURIComponent(j)}/fix`,{action:v},{headers:{Authorization:`Bearer ${le.token}`}}),_(),u()}catch(T){console.error("Fix failed",T),alert(T.response?.data?.detail||"Failed to apply fix.")}finally{g.value=null}}};Hn(a,j=>{j==="indices"&&l.value&&(l.value.indices.yellow>0||l.value.indices.red>0)&&!h.value&&_()});const L=ue(""),P=ue(null),I={index:["close","create","delete","exists","find","get","list","open","update","wizard"],doc:["bulk","bulk-delete","delete","get","index","search","update"],datastream:["create","delete","get","list","rollover"],config:["get","init","list","set"],snapshot:["create","delete","list","repo","restore"],template:["create","delete","get","list","wizard"],ilm:["create","delete","explain","get","list","start","stop"],cluster:["allocation","settings"],security:["roles","users"],tasks:["cancel","list"],ingest:["pipelines","simulate"],ml:["init-job"],script:["create","delete","execute","get","list"],utils:["aliases","health","templates"]},C=Xe(()=>{const j=L.value.trim();if(!j)return Object.keys(I);const v=j.split(/\s+/),T=v[0];return v.length===1&&T&&I[T]?I[T]:[]}),K=()=>{P.value&&P.value.focus()},Y=j=>{const v=L.value.trim();L.value=v?v+" "+j+" ":j+" ",K()},E=ue([{type:"system",text:`Connected to Elastro CLI. Scope restricted to '${r.value}'.`},{type:"system",text:'Type a command (e.g., "indices list") and press Enter.'}]),F=ue(!1),V=ue(null),se=async()=>{const j=L.value.trim();if(!(!j||F.value)){E.value.push({type:"input",text:`$ ${j}`}),L.value="",F.value=!0,setTimeout(()=>{V.value&&(V.value.scrollTop=V.value.scrollHeight)},10);try{const v=await be.post(`${s}/api/cluster/${encodeURIComponent(r.value)}/cli`,{command:j},{headers:{Authorization:`Bearer ${le.token}`}}),T=new Vg;if(v.data.output){const te=T.ansi_to_html(v.data.output);E.value.push({type:v.data.exit_code===0?"output":"error",text:te})}else E.value.push({type:"system",text:"[Command completed with no output]"})}catch(v){const T=v.response?.data?.detail||v.message||"Unknown execution error";E.value.push({type:"error",text:`Error: ${T}`})}finally{F.value=!1,setTimeout(()=>{V.value&&(V.value.scrollTop=V.value.scrollHeight),K()},10)}}};return(j,v)=>(R(),$("div",zg,[c("div",Gg,[c("button",{onClick:v[0]||(v[0]=T=>W(n).push("/")),class:"btn btn-secondary back-btn"},[...v[7]||(v[7]=[c("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("line",{x1:"19",y1:"12",x2:"5",y2:"12"}),c("polyline",{points:"12 19 5 12 12 5"})],-1),G(" Back to Dashboard ",-1)])])]),o.value?(R(),$("div",Kg,[(R(),$(he,null,Ie(4,T=>c("div",{key:T,class:"card metric-card"},[...v[8]||(v[8]=[Jt('<div class="metric-header" style="margin-bottom:1rem;" data-v-6c17fdd6><div class="skeleton skeleton-badge" style="width:20px;height:20px;border-radius:4px;" data-v-6c17fdd6></div><div class="skeleton skeleton-text w-1/2" style="margin-bottom:0;" data-v-6c17fdd6></div></div><div class="metric-body" data-v-6c17fdd6><div class="skeleton skeleton-jumbo w-1/3 mb-4" data-v-6c17fdd6></div><div class="skeleton skeleton-text w-full" data-v-6c17fdd6></div></div>',2)])])),64))])):i.value?(R(),$("div",Wg,[v[10]||(v[10]=c("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("circle",{cx:"12",cy:"12",r:"10"}),c("line",{x1:"12",x2:"12",y1:"8",y2:"12"}),c("line",{x1:"12",x2:"12.01",y1:"16",y2:"16"})],-1)),c("div",Jg,[v[9]||(v[9]=c("h3",null,"Connection Failed",-1)),c("p",null,q(i.value),1)])])):l.value?(R(),$("div",Qg,[c("header",Xg,[c("div",Yg,[c("h1",null,q(l.value.name),1),c("span",{class:"health-badge outline",style:kt({borderColor:d(l.value.health),color:d(l.value.health)})},q(l.value.health),5)]),c("p",Zg,[c("a",{href:l.value.host,target:"_blank"},q(l.value.host),9,e1)])]),c("div",t1,[c("button",{class:"card metric-card interactive-card",onClick:v[1]||(v[1]=T=>a.value="nodes")},[v[11]||(v[11]=Jt('<div class="metric-header" data-v-6c17fdd6><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-6c17fdd6><rect x="4" y="4" width="16" height="16" rx="2" ry="2" data-v-6c17fdd6></rect><rect x="9" y="9" width="6" height="6" data-v-6c17fdd6></rect><line x1="9" y1="1" x2="9" y2="4" data-v-6c17fdd6></line><line x1="15" y1="1" x2="15" y2="4" data-v-6c17fdd6></line><line x1="9" y1="20" x2="9" y2="23" data-v-6c17fdd6></line><line x1="15" y1="20" x2="15" y2="23" data-v-6c17fdd6></line><line x1="20" y1="9" x2="23" y2="9" data-v-6c17fdd6></line><line x1="20" y1="14" x2="23" y2="14" data-v-6c17fdd6></line><line x1="1" y1="9" x2="4" y2="9" data-v-6c17fdd6></line><line x1="1" y1="14" x2="4" y2="14" data-v-6c17fdd6></line></svg><h3 data-v-6c17fdd6>Node Topology</h3></div>',1)),c("div",n1,[c("div",s1,q(l.value.nodes.total),1),c("div",r1,[(R(!0),$(he,null,Ie(l.value.nodes.roles,(T,te)=>(R(),$("div",{key:te,class:"sub-stat-badge"},[G(q(te)+": ",1),c("strong",null,q(T),1)]))),128))])])]),c("button",{class:"card metric-card interactive-card",onClick:v[2]||(v[2]=T=>a.value="indices")},[v[15]||(v[15]=Jt('<div class="metric-header" data-v-6c17fdd6><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-6c17fdd6><path d="M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4" data-v-6c17fdd6></path><polyline points="14 2 14 8 20 8" data-v-6c17fdd6></polyline><path d="M2 15h10" data-v-6c17fdd6></path><path d="m9 18 3-3-3-3" data-v-6c17fdd6></path></svg><h3 data-v-6c17fdd6>Index Health</h3></div>',1)),c("div",i1,[c("div",o1,q(l.value.indices.total),1),c("div",l1,[c("div",{class:"health-bar-segment",style:kt({width:`${(l.value.indices.total-l.value.indices.red-l.value.indices.yellow)/l.value.indices.total*100}%`,background:"hsl(var(--teal))"}),title:"Green Indices"},null,4),c("div",{class:"health-bar-segment",style:kt({width:`${l.value.indices.yellow/l.value.indices.total*100}%`,background:"hsl(var(--secondary))"}),title:"Yellow Indices"},null,4),c("div",{class:"health-bar-segment",style:kt({width:`${l.value.indices.red/l.value.indices.total*100}%`,background:"hsl(var(--destructive))"}),title:"Red Indices"},null,4)]),c("div",a1,[c("span",null,[v[12]||(v[12]=c("span",{class:"dot green"},null,-1)),G(" "+q(l.value.indices.total-l.value.indices.red-l.value.indices.yellow)+" Green",1)]),c("span",null,[v[13]||(v[13]=c("span",{class:"dot yellow"},null,-1)),G(" "+q(l.value.indices.yellow)+" Yellow",1)]),c("span",null,[v[14]||(v[14]=c("span",{class:"dot red"},null,-1)),G(" "+q(l.value.indices.red)+" Red",1)])])])]),c("button",{class:"card metric-card interactive-card",onClick:v[3]||(v[3]=T=>a.value="ilm")},[v[17]||(v[17]=c("div",{class:"metric-header"},[c("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("circle",{cx:"12",cy:"12",r:"10"}),c("polyline",{points:"12 6 12 12 16 14"})]),c("h3",null,"Lifecycle Policies")],-1)),c("div",c1,[c("div",u1,q(l.value.ilm.policy_count),1),v[16]||(v[16]=c("p",{class:"text-sm text-muted mt-2"},"Active Index Lifecycle Management configurations governing data retention.",-1))])]),c("button",{class:"card metric-card interactive-card",onClick:v[4]||(v[4]=T=>a.value="backups")},[v[18]||(v[18]=Jt('<div class="metric-header" data-v-6c17fdd6><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-6c17fdd6><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" data-v-6c17fdd6></path><polyline points="7 10 12 15 17 10" data-v-6c17fdd6></polyline><line x1="12" y1="15" x2="12" y2="3" data-v-6c17fdd6></line></svg><h3 data-v-6c17fdd6>Snapshot Repositories</h3></div>',1)),c("div",d1,[c("div",{class:Se(["status-indicator mb-4",l.value.backups.configured?"status-good":"status-bad"])},q(l.value.backups.configured?"Configured":"Not Configured"),3),l.value.backups.configured?(R(),$("div",f1,[(R(!0),$(he,null,Ie(l.value.backups.repositories,T=>(R(),$("div",{key:T.name,class:"repo-item"},[c("span",p1,q(T.name),1),c("span",h1,q(T.type),1)]))),128))])):(R(),$("p",m1,"No snapshot repositories are currently registered for this cluster."))])])]),c("div",g1,[c("div",y1,[v[20]||(v[20]=c("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"terminal-icon"},[c("polyline",{points:"4 17 10 11 4 5"}),c("line",{x1:"12",y1:"19",x2:"20",y2:"19"})],-1)),v[21]||(v[21]=c("h3",null,"Elastro Controller",-1)),c("div",v1,[(R(!0),$(he,null,Ie(C.value,T=>(R(),$("button",{key:T,onClick:te=>Y(T),class:Se(["cli-chip",{"chip-destructive":["delete","bulk-delete","cancel"].includes(T)}])},q(T),11,b1))),128))]),c("div",_1,[c("button",{class:"btn-clear",onClick:v[5]||(v[5]=T=>E.value=[]),title:"Clear Terminal"},[...v[19]||(v[19]=[c("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("polyline",{points:"3 6 5 6 21 6"}),c("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})],-1)])])])]),c("div",{class:"terminal-body",ref_key:"terminalBody",ref:V,onClick:K},[(R(!0),$(he,null,Ie(E.value,(T,te)=>(R(),$("div",{key:te,class:Se(["cli-line",`cli-${T.type}`])},[c("pre",{innerHTML:T.text},null,8,w1)],2))),128)),F.value?(R(),$("div",x1,[...v[22]||(v[22]=[G(" Executing command... ",-1),c("span",{class:"cursor-blink"},"_",-1)])])):xe("",!0)],512),c("form",{onSubmit:Pr(se,["prevent"]),class:"terminal-input-form"},[v[23]||(v[23]=c("span",{class:"prompt"},"$",-1)),Qe(c("input",{ref_key:"cliInputRef",ref:P,type:"text","onUpdate:modelValue":v[6]||(v[6]=T=>L.value=T),class:"cli-input",placeholder:"Type a command and press Enter...",disabled:F.value,autocomplete:"off",spellcheck:"false"},null,8,C1),[[Lt,L.value]])],32)]),a.value?(R(),$("div",{key:0,class:"modal-overlay glass-panel",onClick:Pr(f,["self"])},[c("div",E1,[c("div",k1,[c("h2",null,q(a.value==="nodes"?"Node Topology Details":a.value==="indices"?"Index Health Breakdown":a.value==="ilm"?"Lifecycle Policies":"Snapshot Repositories"),1),c("button",{class:"btn-close",onClick:f,"aria-label":"Close modal"},[...v[24]||(v[24]=[c("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),c("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])]),c("div",S1,[a.value==="nodes"?(R(),$("div",R1,[c("div",A1,[(R(!0),$(he,null,Ie(l.value.nodes.roles,(T,te)=>(R(),$("div",{key:te,class:"detail-row"},[c("span",T1,q(te)+" Nodes",1),c("span",O1,q(T),1)]))),128))]),c("p",$1,"Total nodes operating in this cluster: "+q(l.value.nodes.total),1)])):a.value==="indices"?(R(),$("div",I1,[c("div",N1,[c("div",P1,[v[26]||(v[26]=c("span",{class:"dot green"},null,-1)),c("span",L1,[c("strong",null,q(l.value.indices.total-l.value.indices.red-l.value.indices.yellow),1),v[25]||(v[25]=G(" Green (Healthy) Indices",-1))])]),c("div",M1,[v[28]||(v[28]=c("span",{class:"dot yellow"},null,-1)),c("span",B1,[c("strong",null,q(l.value.indices.yellow),1),v[27]||(v[27]=G(" Yellow (Warning) Indices",-1))])]),c("div",D1,[v[30]||(v[30]=c("span",{class:"dot red"},null,-1)),c("span",F1,[c("strong",null,q(l.value.indices.red),1),v[29]||(v[29]=G(" Red (Critical/Offline) Indices",-1))])])]),y.value?(R(),$("div",j1," Loading diagnostic explanations... ")):h.value&&h.value.length>0?(R(),$("div",U1,[v[34]||(v[34]=c("h3",{class:"mb-3",style:{"font-weight":"600","font-size":"1.1rem",color:"hsl(var(--destructive))"}},"Diagnostics & Remediation",-1)),c("div",H1,[(R(!0),$(he,null,Ie(h.value,T=>(R(),$("div",{key:T.index,class:"repo-item detail-row",style:{"flex-direction":"column","align-items":"flex-start",gap:"0.5rem","border-color":"hsl(var(--destructive)/0.3)"}},[c("div",V1,[c("span",q1,q(T.index),1),c("span",{class:"badge-outline",style:kt({borderColor:d(T.health),color:d(T.health)})},q(T.health.toUpperCase()),5)]),c("p",z1,q(T.allocate_explanation),1),T.routing_filter_fault||T.reason==="ALLOCATION_FAILED"||T.health==="yellow"&&(T.reason==="CLUSTER_RECOVERED"||T.reason==="REPLICA_ADDED"||T.allocate_explanation.toLowerCase().includes("replica")&&(T.allocate_explanation.toLowerCase().includes("too many")||T.allocate_explanation.toLowerCase().includes("permitted")||T.allocate_explanation.toLowerCase().includes("same node")))?(R(),$("div",G1,[T.routing_filter_fault?(R(),$("div",K1,[c("button",{class:"btn btn-secondary",style:{width:"100%","justify-content":"center","font-size":"0.85rem"},onClick:te=>x(T.index,"clear_routing_filters"),disabled:g.value===T.index},[(R(),$("svg",J1,[...v[31]||(v[31]=[c("circle",{cx:"12",cy:"12",r:"10"},null,-1),c("line",{x1:"15",y1:"9",x2:"9",y2:"15"},null,-1),c("line",{x1:"9",y1:"9",x2:"15",y2:"15"},null,-1)])])),G(" "+q(g.value===T.index?"Clearing Rules...":"Clear Explicit Routing Filters"),1)],8,W1)])):T.reason==="ALLOCATION_FAILED"?(R(),$("div",Q1,[c("button",{class:"btn btn-secondary",style:{width:"100%","justify-content":"center","font-size":"0.85rem"},onClick:te=>x(T.index,"reroute"),disabled:g.value===T.index},[(R(),$("svg",Y1,[...v[32]||(v[32]=[c("path",{d:"M21 2v6h-6"},null,-1),c("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"},null,-1),c("path",{d:"M3 3v5h5"},null,-1)])])),G(" "+q(g.value===T.index?"Applying Reroute...":"Force Retry Allocation (Reroute)"),1)],8,X1)])):(R(),$("div",Z1,[c("button",{class:"btn btn-secondary",style:{width:"100%","justify-content":"center","font-size":"0.85rem"},onClick:te=>x(T.index,"reduce_replicas"),disabled:g.value===T.index},[(R(),$("svg",t0,[...v[33]||(v[33]=[c("path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"},null,-1),c("polyline",{points:"3.27 6.96 12 12.01 20.73 6.96"},null,-1),c("line",{x1:"12",y1:"22.08",x2:"12",y2:"12"},null,-1)])])),G(" "+q(g.value===T.index?"Applying Fix...":"Reduce Replicas to 0"),1)],8,e0)]))])):xe("",!0)]))),128))])])):xe("",!0)])):a.value==="ilm"?(R(),$("div",n0,[l.value.ilm.policy_count>0?(R(),$("div",s0,[c("div",r0,[v[35]||(v[35]=c("span",{class:"detail-label"},"Active Global Policies",-1)),c("span",i0,q(l.value.ilm.policy_count),1)]),v[36]||(v[36]=c("p",{class:"text-sm text-muted"},[G("To view deeper ILM configurations and rulesets, run "),c("code",{class:"mono-code"},"ilm list"),G(" or "),c("code",{class:"mono-code"},"ilm explain"),G(" in the Controller.")],-1))])):(R(),$("p",o0,"No Data Lifecycle Policies are currently registered on this cluster."))])):a.value==="backups"?(R(),$("div",l0,[l.value.backups.configured?(R(),$("div",a0,[c("div",c0,[(R(!0),$(he,null,Ie(l.value.backups.repositories,T=>(R(),$("div",{key:T.name,class:"repo-item detail-row"},[c("span",u0,q(T.name),1),c("span",d0,q(T.type),1)]))),128))])])):(R(),$("p",f0,"No snapshot repositories are configured."))])):xe("",!0)])])])):xe("",!0)])):xe("",!0)]))}}),h0=Ht(p0,[["__scopeId","data-v-6c17fdd6"]]);function m0(){const e=ue([]),t=ue("strict"),n=ue("logs-*"),s=["text","keyword","long","integer","short","byte","double","float","date","boolean","object","nested"],r=(a,f)=>{if(!a.trim()||!s.includes(f))return;const u={name:a.trim(),type:f};u.type==="keyword"?u.ignore_above=256:(u.type==="object"||u.type==="nested")&&(u.properties=[]),e.value.push(u)},o=(a,f)=>{a.splice(f,1)},i=(a,f,u)=>{if(a.properties||(a.properties=[]),!f.trim()||!s.includes(u))return;const d={name:f.trim(),type:u};d.type==="keyword"?d.ignore_above=256:(d.type==="object"||d.type==="nested")&&(d.properties=[]),a.properties.push(d)},l=Xe(()=>{const a=u=>{const d={};for(const h of u)d[h.name]={type:h.type},h.ignore_above!==void 0&&(d[h.name].ignore_above=h.ignore_above),(h.type==="object"||h.type==="nested")&&h.properties&&h.properties.length>0&&(d[h.name].properties=a(h.properties));return d},f={mappings:{dynamic:t.value,properties:a(e.value)}};return JSON.stringify(f,null,2)});return{fields:e,activePolicy:t,templateTarget:n,fieldTypes:s,addRootField:r,removeField:o,addNestedField:i,generatedSchema:l}}const g0={class:"mapping-builder-page animate-fade-in relative flex flex-col min-h-screen"},y0={class:"px-6 py-4 flex-1"},v0={class:"builder-layout mb-8"},b0={class:"card editor-panel glass-panel"},_0={class:"metrics-grid mb-8"},w0={class:"detail-row"},x0={class:"detail-row"},C0={key:0,class:"text-xs text-muted-foreground mt-2"},E0={key:0,class:"field-tree"},k0={class:"field-item-header"},S0={class:"flex items-center"},R0={class:"field-name font-mono"},A0={key:0,class:"field-badge text-xs flex items-center"},T0={class:"field-actions"},O0=["onClick"],$0=["onClick"],I0={key:0,class:"nested-tree mt-3 pl-4 border-l-2 border-border/50"},N0={class:"field-item-header"},P0={class:"flex items-center"},L0={class:"field-name font-mono opacity-90"},M0={class:"field-actions"},B0=["onClick"],D0={key:1,class:"empty-state p-8 text-center text-muted-foreground border border-dashed border-border/60 rounded-lg bg-muted/5"},F0={class:"add-field-form mt-6 flex gap-3 p-4 bg-muted/20 border border-border/40 rounded-xl"},j0=["value"],U0={class:"card output-panel glass-panel"},H0={class:"editor-output p-4 rounded-xl mb-6 shadow-inner bg-black/40 border border-white/5",style:{flex:"1","overflow-y":"auto"}},V0={class:"text-sm font-mono text-teal-300/90"},q0={class:"deploy-actions pt-4 border-t border-border/40"},z0={key:0,class:"mt-0.5 mr-3 flex-shrink-0",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},G0={key:1,class:"mt-0.5 mr-3 flex-shrink-0",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},K0=["disabled"],W0={key:0,xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"mr-2"},J0={key:1,class:"animate-spin mr-2",xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Q0={key:0,class:"modal-overlay"},X0={class:"modal-content card glass-panel animate-fade-in shadow-2xl border border-white/10",style:{"max-width":"400px",width:"100%"}},Y0={class:"text-sm text-muted-foreground mb-4"},Z0={class:"font-mono text-primary"},ey={class:"mb-4"},ty={class:"mb-6"},ny=["value"],sy={class:"flex justify-end gap-3 pt-4 border-t border-border/40"},ry=["disabled"],iy=ht({__name:"MappingBuilder",setup(e){const{fields:t,activePolicy:n,templateTarget:s,fieldTypes:r,addRootField:o,removeField:i,addNestedField:l,generatedSchema:a}=m0(),f=ue(""),u=ue("text"),d=()=>{o(f.value,u.value),f.value="",u.value="text"},h=ue(!1),y=ue(null),g=ue(""),_=ue("text"),x=Y=>{y.value=Y,g.value="",_.value="text",h.value=!0},L=()=>{y.value&&g.value.trim()&&r.includes(_.value)&&l(y.value,g.value,_.value),h.value=!1,y.value=null},P=()=>{h.value=!1,y.value=null},I=ue(!1),C=ue(null),K=async()=>{if(!le.clusters||le.clusters.length===0){C.value={success:!1,message:"No active cluster found in state. Please select a cluster first."};return}const Y=le.clusters[0].name;I.value=!0,C.value=null;try{const E=`template create ${s.value} --file -`,F=await be.post(`/api/cluster/${Y}/cli`,{command:E,stdin:a.value},{headers:{Authorization:`Bearer ${le.token}`}});F.data.exit_code===0?C.value={success:!0,message:`Template successfully deployed to ${Y}!`}:C.value={success:!1,message:F.data.error||F.data.output||"Unknown error deploying template."}}catch(E){console.error("Deploy failed",E),C.value={success:!1,message:E.response?.data?.detail||E.message||"Network error occurred."}}finally{I.value=!1}};return(Y,E)=>(R(),$("div",g0,[E[30]||(E[30]=c("header",{class:"page-header px-6 pt-6 pb-4 glass-header"},[c("h1",{class:"text-3xl font-bold tracking-tight text-foreground"},"Mapping Builder"),c("p",{class:"text-muted-foreground text-sm mt-1"},"Visually construct structural index schemas and analyzers effortlessly.")],-1)),c("div",y0,[c("div",v0,[c("div",b0,[E[19]||(E[19]=c("h3",{class:"panel-title flex items-center"},[c("svg",{class:"mr-2",xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("circle",{cx:"12",cy:"12",r:"3"}),c("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"})]),G(" Global Parameters ")],-1)),c("div",_0,[c("div",w0,[E[10]||(E[10]=c("span",{class:"detail-label"},"Template Pattern Target",-1)),Qe(c("input",{type:"text","onUpdate:modelValue":E[0]||(E[0]=F=>Pe(s)?s.value=F:null),class:"cli-input mt-2 transition-all",placeholder:"e.g. logs-*"},null,512),[[Lt,W(s)]])]),c("div",x0,[E[12]||(E[12]=c("span",{class:"detail-label"},"Dynamic Mapping Policy",-1)),Qe(c("select",{"onUpdate:modelValue":E[1]||(E[1]=F=>Pe(n)?n.value=F:null),class:"cli-input mt-2 transition-all"},[...E[11]||(E[11]=[c("option",{value:"strict"},"Strict (Reject unknown fields)",-1),c("option",{value:"true"},"Dynamic (Auto-map unknown fields)",-1),c("option",{value:"false"},"False (Ignore unknown fields)",-1)])],512),[[fr,W(n)]]),W(n)==="strict"?(R(),$("p",C0," Safeguards against unvalidated mapping explosions. ")):xe("",!0)])]),E[20]||(E[20]=Jt('<h3 class="panel-title flex items-center mb-4" data-v-41a0b48c><svg class="mr-2" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-41a0b48c><line x1="8" y1="6" x2="21" y2="6" data-v-41a0b48c></line><line x1="8" y1="12" x2="21" y2="12" data-v-41a0b48c></line><line x1="8" y1="18" x2="21" y2="18" data-v-41a0b48c></line><line x1="3" y1="6" x2="3.01" y2="6" data-v-41a0b48c></line><line x1="3" y1="12" x2="3.01" y2="12" data-v-41a0b48c></line><line x1="3" y1="18" x2="3.01" y2="18" data-v-41a0b48c></line></svg> Structure Definitions </h3>',1)),W(t).length>0?(R(),$("div",E0,[(R(!0),$(he,null,Ie(W(t),(F,V,se,j)=>{const v=[F.name,F.type,F.properties?.length];if(j&&j.key===V&&Li(j,v))return j;const T=(R(),$("div",{class:"field-item card fluid-hover",key:V},[c("div",k0,[c("div",S0,[c("span",R0,q(F.name),1),c("span",{class:Se(["field-type",`type-${F.type}`])},q(F.type),3),F.ignore_above?(R(),$("span",A0,[...E[13]||(E[13]=[c("svg",{class:"mr-1",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"})],-1),G(" Robustness ",-1)])])):xe("",!0)]),c("div",T0,[F.type==="object"||F.type==="nested"?(R(),$("button",{key:0,onClick:te=>x(F),class:"btn-icon tactile-btn",title:"Add Child Property"},[...E[14]||(E[14]=[c("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),c("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1)])],8,O0)):xe("",!0),c("button",{onClick:te=>W(i)(W(t),V),class:"btn-icon text-destructive tactile-btn-danger",title:"Remove Field"},[...E[15]||(E[15]=[c("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),c("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])],8,$0)])]),(F.type==="object"||F.type==="nested")&&F.properties&&F.properties.length>0?(R(),$("div",I0,[(R(!0),$(he,null,Ie(F.properties,(te,Te,ae,ce)=>{const oe=[te.name,te.type];if(ce&&ce.key===Te&&Li(ce,oe))return ce;const je=(R(),$("div",{class:"field-item child-item fluid-hover mb-2",key:Te},[c("div",N0,[c("div",P0,[c("span",L0,q(te.name),1),c("span",{class:Se(["field-type",`type-${te.type}`])},q(te.type),3)]),c("div",M0,[c("button",{onClick:lt=>W(i)(F.properties,Te),class:"btn-icon text-destructive tactile-btn-danger"},[...E[16]||(E[16]=[c("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),c("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])],8,B0)])])]));return je.memo=oe,je},E,2),128))])):xe("",!0)]));return T.memo=v,T},E,4),128))])):(R(),$("div",D0,[...E[17]||(E[17]=[c("svg",{class:"mx-auto mb-3 opacity-50",xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),c("line",{x1:"3",y1:"9",x2:"21",y2:"9"}),c("line",{x1:"9",y1:"21",x2:"9",y2:"9"})],-1),c("p",null,"No fields defined. Start building your mapping below.",-1)])])),c("div",F0,[Qe(c("input",{type:"text","onUpdate:modelValue":E[6]||(E[6]=F=>f.value=F),placeholder:"Enter root field name...",class:"cli-input flex-1",onKeyup:so(d,["enter"])},null,544),[[Lt,f.value]]),Qe(c("select",{"onUpdate:modelValue":E[7]||(E[7]=F=>u.value=F),class:"cli-input w-32"},[(R(!0),$(he,null,Ie(W(r),F=>(R(),$("option",{key:F,value:F},q(F),9,j0))),128))],512),[[fr,u.value]]),c("button",{onClick:d,class:"btn btn-secondary tactile-btn min-w-[120px]"},[...E[18]||(E[18]=[c("svg",{class:"mr-2",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),c("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1),G(" Append ",-1)])])])]),c("div",U0,[E[25]||(E[25]=Jt('<h3 class="panel-title flex items-center mb-4" data-v-41a0b48c><svg class="mr-2 text-primary" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-41a0b48c><polyline points="16 18 22 12 16 6" data-v-41a0b48c></polyline><polyline points="8 6 2 12 8 18" data-v-41a0b48c></polyline></svg> Generated Payload </h3><p class="text-xs text-muted-foreground mb-4" data-v-41a0b48c>Rendered instantaneously via Vue composable computed states without layout blocking.</p>',2)),c("div",H0,[c("pre",null,[c("code",V0,q(W(a)),1)])]),c("div",q0,[C.value?(R(),$("div",{key:0,class:Se(["mb-4 p-4 rounded-xl text-sm flex items-start animate-fade-in",C.value.success?"bg-teal-900/20 text-teal-400 border border-teal-800/50":"bg-destructive/10 text-destructive border border-destructive/30"])},[C.value.success?(R(),$("svg",z0,[...E[21]||(E[21]=[c("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"},null,-1),c("polyline",{points:"22 4 12 14.01 9 11.01"},null,-1)])])):(R(),$("svg",G0,[...E[22]||(E[22]=[c("circle",{cx:"12",cy:"12",r:"10"},null,-1),c("line",{x1:"12",y1:"8",x2:"12",y2:"12"},null,-1),c("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"},null,-1)])])),G(" "+q(C.value.message),1)],2)):xe("",!0),c("button",{class:"btn btn-primary w-full shadow-xl tactile-btn py-3 text-base flex justify-center items-center font-medium",onClick:K,disabled:I.value},[I.value?(R(),$("svg",J0,[...E[24]||(E[24]=[c("path",{d:"M21 12a9 9 0 1 1-6.219-8.56"},null,-1)])])):(R(),$("svg",W0,[...E[23]||(E[23]=[c("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"},null,-1),c("polyline",{points:"22 4 12 14.01 9 11.01"},null,-1)])])),G(" "+q(I.value?"Deploying Payload...":"Push Mapping to Active Cluster"),1)],8,K0)])])])]),h.value?(R(),$("div",Q0,[c("div",X0,[E[29]||(E[29]=c("h3",{class:"text-lg font-bold mb-4 text-foreground flex items-center"},[c("svg",{class:"mr-2 text-primary",xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"})]),G(" Add Nested Property ")],-1)),c("p",Y0,[E[26]||(E[26]=G("Injecting a property into: ",-1)),c("span",Z0,q(y.value?.name),1)]),c("div",ey,[E[27]||(E[27]=c("label",{class:"detail-label block mb-2"},"Property Name",-1)),Qe(c("input",{type:"text","onUpdate:modelValue":E[8]||(E[8]=F=>g.value=F),class:"cli-input w-full transition-all focus:ring-2 ring-primary/30",placeholder:"e.g. host.name",onKeyup:so(L,["enter"]),autofocus:""},null,544),[[Lt,g.value]])]),c("div",ty,[E[28]||(E[28]=c("label",{class:"detail-label block mb-2"},"Property Type",-1)),Qe(c("select",{"onUpdate:modelValue":E[9]||(E[9]=F=>_.value=F),class:"cli-input w-full transition-all focus:ring-2 ring-primary/30"},[(R(!0),$(he,null,Ie(W(r),F=>(R(),$("option",{key:F,value:F},q(F),9,ny))),128))],512),[[fr,_.value]])]),c("div",sy,[c("button",{onClick:P,class:"btn btn-secondary tactile-btn px-6 text-muted-foreground hover:text-foreground"},"Cancel"),c("button",{onClick:L,disabled:!g.value.trim(),class:"btn btn-primary tactile-btn px-6"},"Confirm",8,ry)])])])):xe("",!0)]))}}),oy=Ht(iy,[["__scopeId","data-v-41a0b48c"]]),ly=[{path:"/",name:"Dashboard",component:Hh},{path:"/cluster/:name",name:"ClusterDetail",component:h0},{path:"/docs",name:"Documentation",component:Hg},{path:"/mapping-builder",name:"MappingBuilder",component:oy},{path:"/settings",name:"Settings",component:xm}],ay=Nf({history:df(),routes:ly});Cd(Hf).use(ay).mount("#app");
293
+ `]))));let i=this._buffer.match(this._osc_regex);if(i===null)return t.kind=_e.ESC,t.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),t;t.kind=_e.OSCURL,t.url=i[1],t.text=i[2];var o=i[0].length;return this._buffer=this._buffer.slice(o),t}else if(r=="(")return t.kind=_e.Unknown,this._buffer=this._buffer.slice(3),t}}ansi_to_html(t){this.append_buffer(t);for(var n=[];;){var s=this.get_next_packet();if(s.kind==_e.EOS||s.kind==_e.Incomplete)break;s.kind==_e.ESC||s.kind==_e.Unknown||(s.kind==_e.Text?n.push(this.transform_to_html(this.with_state(s))):s.kind==_e.SGR?this.process_ansi(s):s.kind==_e.OSCURL&&n.push(this.process_hyperlink(s)))}return n.join("")}with_state(t){return{bold:this.bold,faint:this.faint,italic:this.italic,underline:this.underline,fg:this.fg,bg:this.bg,text:t.text}}process_ansi(t){let n=t.text.split(";");for(;n.length>0;){let s=n.shift(),r=parseInt(s,10);if(isNaN(r)||r===0)this.fg=null,this.bg=null,this.bold=!1,this.faint=!1,this.italic=!1,this.underline=!1;else if(r===1)this.bold=!0;else if(r===2)this.faint=!0;else if(r===3)this.italic=!0;else if(r===4)this.underline=!0;else if(r===21)this.bold=!1;else if(r===22)this.faint=!1,this.bold=!1;else if(r===23)this.italic=!1;else if(r===24)this.underline=!1;else if(r===39)this.fg=null;else if(r===49)this.bg=null;else if(r>=30&&r<38)this.fg=this.ansi_colors[0][r-30];else if(r>=40&&r<48)this.bg=this.ansi_colors[0][r-40];else if(r>=90&&r<98)this.fg=this.ansi_colors[1][r-90];else if(r>=100&&r<108)this.bg=this.ansi_colors[1][r-100];else if((r===38||r===48)&&n.length>0){let o=r===38,i=n.shift();if(i==="5"&&n.length>0){let l=parseInt(n.shift(),10);l>=0&&l<=255&&(o?this.fg=this.palette_256[l]:this.bg=this.palette_256[l])}if(i==="2"&&n.length>2){let l=parseInt(n.shift(),10),a=parseInt(n.shift(),10),f=parseInt(n.shift(),10);if(l>=0&&l<=255&&a>=0&&a<=255&&f>=0&&f<=255){let u={rgb:[l,a,f],class_name:"truecolor"};o?this.fg=u:this.bg=u}}}}}transform_to_html(t){let n=t.text;if(n.length===0||(n=this.escape_txt_for_html(n),!t.bold&&!t.italic&&!t.faint&&!t.underline&&t.fg===null&&t.bg===null))return n;let s=[],r=[],o=t.fg,i=t.bg;t.bold&&s.push(this._boldStyle),t.faint&&s.push(this._faintStyle),t.italic&&s.push(this._italicStyle),t.underline&&s.push(this._underlineStyle),this._use_classes?(o&&(o.class_name!=="truecolor"?r.push(`${o.class_name}-fg`):s.push(`color:rgb(${o.rgb.join(",")})`)),i&&(i.class_name!=="truecolor"?r.push(`${i.class_name}-bg`):s.push(`background-color:rgb(${i.rgb.join(",")})`))):(o&&s.push(`color:rgb(${o.rgb.join(",")})`),i&&s.push(`background-color:rgb(${i.rgb})`));let l="",a="";return r.length&&(l=` class="${r.join(" ")}"`),s.length&&(a=` style="${s.join(";")}"`),`<span${a}${l}>${n}</span>`}process_hyperlink(t){let n=t.url.split(":");return n.length<1||!this._url_allowlist[n[0]]?"":`<a href="${this.escape_txt_for_html(t.url)}">${this.escape_txt_for_html(t.text)}</a>`}}function Yo(e,...t){let n=e.raw[0],s=/^\s+|\s+\n|\s*#[\s\S]*?\n|\n/gm,r=n.replace(s,"");return new RegExp(r)}function qg(e,...t){let n=e.raw[0],s=/^\s+|\s+\n|\s*#[\s\S]*?\n|\n/gm,r=n.replace(s,"");return new RegExp(r,"g")}var Zo,el,tl;const zg={class:"cluster-detail-page animate-fade-in"},Gg={class:"header-actions"},Kg={key:0,class:"metrics-grid mt-4"},Wg={key:1,class:"error-banner card"},Jg={class:"error-text"},Qg={key:2,class:"detail-content"},Xg={class:"page-header"},Yg={class:"title-group"},Zg={class:"host-link"},e1=["href"],t1={class:"metrics-grid"},n1={class:"metric-body"},s1={class:"mega-stat"},r1={class:"sub-stats"},i1={class:"metric-body"},o1={class:"mega-stat"},l1={class:"health-breakdown mt-3"},a1={class:"health-legend"},c1={class:"metric-body"},u1={class:"mega-stat"},d1={class:"metric-body"},f1={key:0,class:"repos-list"},p1={class:"repo-name"},h1={class:"repo-type badge-outline"},m1={key:1,class:"text-sm text-muted"},g1={class:"card terminal-card mt-4"},y1={class:"terminal-header"},v1={class:"cli-chips"},b1=["onClick"],_1={class:"terminal-actions"},w1=["innerHTML"],x1={key:0,class:"cli-line cli-system cli-loading"},C1=["disabled"],E1={class:"modal-content animate-zoom-in"},k1={class:"modal-header"},S1={class:"modal-body"},R1={key:0},A1={class:"detail-grid"},T1={class:"detail-label"},O1={class:"detail-value badge-outline"},$1={class:"text-muted mt-4"},I1={key:1},N1={class:"health-legend vertical mt-2"},P1={class:"legend-row mb-3"},L1={class:"legend-text"},M1={class:"legend-row mb-3"},B1={class:"legend-text"},D1={class:"legend-row"},F1={class:"legend-text"},j1={key:0,class:"mt-4 text-center text-muted"},U1={key:1,class:"mt-4"},H1={class:"repos-list"},V1={style:{display:"flex","justify-content":"space-between",width:"100%"}},q1={class:"repo-name"},z1={class:"text-sm text-muted",style:{margin:"0.5rem 0"}},G1={key:0,class:"mt-2",style:{width:"100%"}},K1={key:0},W1=["onClick","disabled"],J1={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",style:{"margin-right":"4px"}},Q1={key:1},X1=["onClick","disabled"],Y1={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",style:{"margin-right":"4px"}},Z1={key:2},e0=["onClick","disabled"],t0={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",style:{"margin-right":"4px"}},n0={key:2},s0={key:0},r0={class:"detail-row mb-4"},i0={class:"detail-value badge-outline"},o0={key:1,class:"text-muted"},l0={key:3},a0={key:0},c0={class:"repos-list"},u0={class:"repo-name"},d0={class:"repo-type badge-outline"},f0={key:1,class:"text-muted"},p0=ht({__name:"ClusterDetail",setup(e){const t=_a(),n=ba(),s="",r=ue(decodeURIComponent(t.params.name)),o=ue(!0),i=ue(null),l=ue(null),a=ue(null),f=()=>{a.value=null},u=async()=>{if(le.token){o.value=!0,i.value=null;try{const j=await be.get(`${s}/api/cluster/${encodeURIComponent(r.value)}`,{headers:{Authorization:`Bearer ${le.token}`}});l.value=j.data}catch(j){j.response?.status===401?i.value="Unauthorized: Invalid or missing security token.":j.response?.status===404?i.value=`Cluster '${r.value}' not found in configuration.`:i.value=`Failed to fetch detailed metrics for '${r.value}'. Is the cluster reachable?`}finally{o.value=!1}}};Yt(()=>{if(le.token)u();else{const j=setInterval(()=>{le.token&&(clearInterval(j),u())},100)}});const d=j=>{switch(j){case"green":return"hsl(var(--teal))";case"yellow":return"hsl(var(--warning))";case"red":return"hsl(var(--destructive))";default:return"hsl(var(--muted-foreground))"}},h=ue(null),y=ue(!1),g=ue(null),_=async()=>{if(le.token){y.value=!0;try{const j=await be.get(`${s}/api/clusters/${encodeURIComponent(r.value)}/indices/unhealthy`,{headers:{Authorization:`Bearer ${le.token}`}});h.value=j.data.indices}catch(j){console.error("Failed to fetch unhealthy indices",j)}finally{y.value=!1}}},x=async(j,v)=>{if(le.token){g.value=j;try{await be.post(`${s}/api/clusters/${encodeURIComponent(r.value)}/indices/${encodeURIComponent(j)}/fix`,{action:v},{headers:{Authorization:`Bearer ${le.token}`}}),_(),u()}catch(T){console.error("Fix failed",T),alert(T.response?.data?.detail||"Failed to apply fix.")}finally{g.value=null}}};Hn(a,j=>{j==="indices"&&l.value&&(l.value.indices.yellow>0||l.value.indices.red>0)&&!h.value&&_()});const L=ue(""),P=ue(null),I={index:["close","create","delete","exists","find","get","list","open","update","wizard"],doc:["bulk","bulk-delete","delete","get","index","search","update"],datastream:["create","delete","get","list","rollover"],config:["get","init","list","set"],snapshot:["create","delete","list","repo","restore"],template:["create","delete","get","list","wizard"],ilm:["create","delete","explain","get","list","start","stop"],cluster:["allocation","settings"],security:["roles","users"],tasks:["cancel","list"],ingest:["pipelines","simulate"],ml:["init-job"],script:["create","delete","execute","get","list"],utils:["aliases","health","templates"]},C=Xe(()=>{const j=L.value.trim();if(!j)return Object.keys(I);const v=j.split(/\s+/),T=v[0];return v.length===1&&T&&I[T]?I[T]:[]}),K=()=>{P.value&&P.value.focus()},Y=j=>{const v=L.value.trim();L.value=v?v+" "+j+" ":j+" ",K()},E=ue([{type:"system",text:`Connected to Elastro CLI. Scope restricted to '${r.value}'.`},{type:"system",text:'Type a command (e.g., "indices list") and press Enter.'}]),F=ue(!1),V=ue(null),se=async()=>{const j=L.value.trim();if(!(!j||F.value)){E.value.push({type:"input",text:`$ ${j}`}),L.value="",F.value=!0,setTimeout(()=>{V.value&&(V.value.scrollTop=V.value.scrollHeight)},10);try{const v=await be.post(`${s}/api/cluster/${encodeURIComponent(r.value)}/cli`,{command:j},{headers:{Authorization:`Bearer ${le.token}`}}),T=new Vg;if(v.data.output){const te=T.ansi_to_html(v.data.output);E.value.push({type:v.data.exit_code===0?"output":"error",text:te})}else E.value.push({type:"system",text:"[Command completed with no output]"})}catch(v){const T=v.response?.data?.detail||v.message||"Unknown execution error";E.value.push({type:"error",text:`Error: ${T}`})}finally{F.value=!1,setTimeout(()=>{V.value&&(V.value.scrollTop=V.value.scrollHeight),K()},10)}}};return(j,v)=>(R(),$("div",zg,[c("div",Gg,[c("button",{onClick:v[0]||(v[0]=T=>W(n).push("/")),class:"btn btn-secondary back-btn"},[...v[7]||(v[7]=[c("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("line",{x1:"19",y1:"12",x2:"5",y2:"12"}),c("polyline",{points:"12 19 5 12 12 5"})],-1),G(" Back to Dashboard ",-1)])])]),o.value?(R(),$("div",Kg,[(R(),$(he,null,Ie(4,T=>c("div",{key:T,class:"card metric-card"},[...v[8]||(v[8]=[Jt('<div class="metric-header" style="margin-bottom:1rem;" data-v-72313788><div class="skeleton skeleton-badge" style="width:20px;height:20px;border-radius:4px;" data-v-72313788></div><div class="skeleton skeleton-text w-1/2" style="margin-bottom:0;" data-v-72313788></div></div><div class="metric-body" data-v-72313788><div class="skeleton skeleton-jumbo w-1/3 mb-4" data-v-72313788></div><div class="skeleton skeleton-text w-full" data-v-72313788></div></div>',2)])])),64))])):i.value?(R(),$("div",Wg,[v[10]||(v[10]=c("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("circle",{cx:"12",cy:"12",r:"10"}),c("line",{x1:"12",x2:"12",y1:"8",y2:"12"}),c("line",{x1:"12",x2:"12.01",y1:"16",y2:"16"})],-1)),c("div",Jg,[v[9]||(v[9]=c("h3",null,"Connection Failed",-1)),c("p",null,q(i.value),1)])])):l.value?(R(),$("div",Qg,[c("header",Xg,[c("div",Yg,[c("h1",null,q(l.value.name),1),c("span",{class:"health-badge outline",style:kt({borderColor:d(l.value.health),color:d(l.value.health)})},q(l.value.health),5)]),c("p",Zg,[c("a",{href:l.value.host,target:"_blank"},q(l.value.host),9,e1)])]),c("div",t1,[c("button",{class:"card metric-card interactive-card",onClick:v[1]||(v[1]=T=>a.value="nodes")},[v[11]||(v[11]=Jt('<div class="metric-header" data-v-72313788><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-72313788><rect x="4" y="4" width="16" height="16" rx="2" ry="2" data-v-72313788></rect><rect x="9" y="9" width="6" height="6" data-v-72313788></rect><line x1="9" y1="1" x2="9" y2="4" data-v-72313788></line><line x1="15" y1="1" x2="15" y2="4" data-v-72313788></line><line x1="9" y1="20" x2="9" y2="23" data-v-72313788></line><line x1="15" y1="20" x2="15" y2="23" data-v-72313788></line><line x1="20" y1="9" x2="23" y2="9" data-v-72313788></line><line x1="20" y1="14" x2="23" y2="14" data-v-72313788></line><line x1="1" y1="9" x2="4" y2="9" data-v-72313788></line><line x1="1" y1="14" x2="4" y2="14" data-v-72313788></line></svg><h3 data-v-72313788>Node Topology</h3></div>',1)),c("div",n1,[c("div",s1,q(l.value.nodes.total),1),c("div",r1,[(R(!0),$(he,null,Ie(l.value.nodes.roles,(T,te)=>(R(),$("div",{key:te,class:"sub-stat-badge"},[G(q(te)+": ",1),c("strong",null,q(T),1)]))),128))])])]),c("button",{class:"card metric-card interactive-card",onClick:v[2]||(v[2]=T=>a.value="indices")},[v[15]||(v[15]=Jt('<div class="metric-header" data-v-72313788><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-72313788><path d="M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4" data-v-72313788></path><polyline points="14 2 14 8 20 8" data-v-72313788></polyline><path d="M2 15h10" data-v-72313788></path><path d="m9 18 3-3-3-3" data-v-72313788></path></svg><h3 data-v-72313788>Index Health</h3></div>',1)),c("div",i1,[c("div",o1,q(l.value.indices.total),1),c("div",l1,[c("div",{class:"health-bar-segment",style:kt({width:`${(l.value.indices.total-l.value.indices.red-l.value.indices.yellow)/l.value.indices.total*100}%`,background:"hsl(var(--teal))"}),title:"Green Indices"},null,4),c("div",{class:"health-bar-segment",style:kt({width:`${l.value.indices.yellow/l.value.indices.total*100}%`,background:"hsl(var(--warning))"}),title:"Yellow Indices"},null,4),c("div",{class:"health-bar-segment",style:kt({width:`${l.value.indices.red/l.value.indices.total*100}%`,background:"hsl(var(--destructive))"}),title:"Red Indices"},null,4)]),c("div",a1,[c("span",null,[v[12]||(v[12]=c("span",{class:"dot green"},null,-1)),G(" "+q(l.value.indices.total-l.value.indices.red-l.value.indices.yellow)+" Green",1)]),c("span",null,[v[13]||(v[13]=c("span",{class:"dot yellow"},null,-1)),G(" "+q(l.value.indices.yellow)+" Yellow",1)]),c("span",null,[v[14]||(v[14]=c("span",{class:"dot red"},null,-1)),G(" "+q(l.value.indices.red)+" Red",1)])])])]),c("button",{class:"card metric-card interactive-card",onClick:v[3]||(v[3]=T=>a.value="ilm")},[v[17]||(v[17]=c("div",{class:"metric-header"},[c("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("circle",{cx:"12",cy:"12",r:"10"}),c("polyline",{points:"12 6 12 12 16 14"})]),c("h3",null,"Lifecycle Policies")],-1)),c("div",c1,[c("div",u1,q(l.value.ilm.policy_count),1),v[16]||(v[16]=c("p",{class:"text-sm text-muted mt-2"},"Active Index Lifecycle Management configurations governing data retention.",-1))])]),c("button",{class:"card metric-card interactive-card",onClick:v[4]||(v[4]=T=>a.value="backups")},[v[18]||(v[18]=Jt('<div class="metric-header" data-v-72313788><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-72313788><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" data-v-72313788></path><polyline points="7 10 12 15 17 10" data-v-72313788></polyline><line x1="12" y1="15" x2="12" y2="3" data-v-72313788></line></svg><h3 data-v-72313788>Snapshot Repositories</h3></div>',1)),c("div",d1,[c("div",{class:Se(["status-indicator mb-4",l.value.backups.configured?"status-good":"status-bad"])},q(l.value.backups.configured?"Configured":"Not Configured"),3),l.value.backups.configured?(R(),$("div",f1,[(R(!0),$(he,null,Ie(l.value.backups.repositories,T=>(R(),$("div",{key:T.name,class:"repo-item"},[c("span",p1,q(T.name),1),c("span",h1,q(T.type),1)]))),128))])):(R(),$("p",m1,"No snapshot repositories are currently registered for this cluster."))])])]),c("div",g1,[c("div",y1,[v[20]||(v[20]=c("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"terminal-icon"},[c("polyline",{points:"4 17 10 11 4 5"}),c("line",{x1:"12",y1:"19",x2:"20",y2:"19"})],-1)),v[21]||(v[21]=c("h3",null,"Elastro Controller",-1)),c("div",v1,[(R(!0),$(he,null,Ie(C.value,T=>(R(),$("button",{key:T,onClick:te=>Y(T),class:Se(["cli-chip",{"chip-destructive":["delete","bulk-delete","cancel"].includes(T)}])},q(T),11,b1))),128))]),c("div",_1,[c("button",{class:"btn-clear",onClick:v[5]||(v[5]=T=>E.value=[]),title:"Clear Terminal"},[...v[19]||(v[19]=[c("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("polyline",{points:"3 6 5 6 21 6"}),c("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})],-1)])])])]),c("div",{class:"terminal-body",ref_key:"terminalBody",ref:V,onClick:K},[(R(!0),$(he,null,Ie(E.value,(T,te)=>(R(),$("div",{key:te,class:Se(["cli-line",`cli-${T.type}`])},[c("pre",{innerHTML:T.text},null,8,w1)],2))),128)),F.value?(R(),$("div",x1,[...v[22]||(v[22]=[G(" Executing command... ",-1),c("span",{class:"cursor-blink"},"_",-1)])])):xe("",!0)],512),c("form",{onSubmit:Pr(se,["prevent"]),class:"terminal-input-form"},[v[23]||(v[23]=c("span",{class:"prompt"},"$",-1)),Qe(c("input",{ref_key:"cliInputRef",ref:P,type:"text","onUpdate:modelValue":v[6]||(v[6]=T=>L.value=T),class:"cli-input",placeholder:"Type a command and press Enter...",disabled:F.value,autocomplete:"off",spellcheck:"false"},null,8,C1),[[Lt,L.value]])],32)]),a.value?(R(),$("div",{key:0,class:"modal-overlay glass-panel",onClick:Pr(f,["self"])},[c("div",E1,[c("div",k1,[c("h2",null,q(a.value==="nodes"?"Node Topology Details":a.value==="indices"?"Index Health Breakdown":a.value==="ilm"?"Lifecycle Policies":"Snapshot Repositories"),1),c("button",{class:"btn-close",onClick:f,"aria-label":"Close modal"},[...v[24]||(v[24]=[c("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),c("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])]),c("div",S1,[a.value==="nodes"?(R(),$("div",R1,[c("div",A1,[(R(!0),$(he,null,Ie(l.value.nodes.roles,(T,te)=>(R(),$("div",{key:te,class:"detail-row"},[c("span",T1,q(te)+" Nodes",1),c("span",O1,q(T),1)]))),128))]),c("p",$1,"Total nodes operating in this cluster: "+q(l.value.nodes.total),1)])):a.value==="indices"?(R(),$("div",I1,[c("div",N1,[c("div",P1,[v[26]||(v[26]=c("span",{class:"dot green"},null,-1)),c("span",L1,[c("strong",null,q(l.value.indices.total-l.value.indices.red-l.value.indices.yellow),1),v[25]||(v[25]=G(" Green (Healthy) Indices",-1))])]),c("div",M1,[v[28]||(v[28]=c("span",{class:"dot yellow"},null,-1)),c("span",B1,[c("strong",null,q(l.value.indices.yellow),1),v[27]||(v[27]=G(" Yellow (Warning) Indices",-1))])]),c("div",D1,[v[30]||(v[30]=c("span",{class:"dot red"},null,-1)),c("span",F1,[c("strong",null,q(l.value.indices.red),1),v[29]||(v[29]=G(" Red (Critical/Offline) Indices",-1))])])]),y.value?(R(),$("div",j1," Loading diagnostic explanations... ")):h.value&&h.value.length>0?(R(),$("div",U1,[v[34]||(v[34]=c("h3",{class:"mb-3",style:{"font-weight":"600","font-size":"1.1rem",color:"hsl(var(--destructive))"}},"Diagnostics & Remediation",-1)),c("div",H1,[(R(!0),$(he,null,Ie(h.value,T=>(R(),$("div",{key:T.index,class:"repo-item detail-row",style:{"flex-direction":"column","align-items":"flex-start",gap:"0.5rem","border-color":"hsl(var(--destructive)/0.3)"}},[c("div",V1,[c("span",q1,q(T.index),1),c("span",{class:"badge-outline",style:kt({borderColor:d(T.health),color:d(T.health)})},q(T.health.toUpperCase()),5)]),c("p",z1,q(T.allocate_explanation),1),T.routing_filter_fault||T.reason==="ALLOCATION_FAILED"||T.health==="yellow"&&(T.reason==="CLUSTER_RECOVERED"||T.reason==="REPLICA_ADDED"||T.allocate_explanation.toLowerCase().includes("replica")&&(T.allocate_explanation.toLowerCase().includes("too many")||T.allocate_explanation.toLowerCase().includes("permitted")||T.allocate_explanation.toLowerCase().includes("same node")))?(R(),$("div",G1,[T.routing_filter_fault?(R(),$("div",K1,[c("button",{class:"btn btn-secondary",style:{width:"100%","justify-content":"center","font-size":"0.85rem"},onClick:te=>x(T.index,"clear_routing_filters"),disabled:g.value===T.index},[(R(),$("svg",J1,[...v[31]||(v[31]=[c("circle",{cx:"12",cy:"12",r:"10"},null,-1),c("line",{x1:"15",y1:"9",x2:"9",y2:"15"},null,-1),c("line",{x1:"9",y1:"9",x2:"15",y2:"15"},null,-1)])])),G(" "+q(g.value===T.index?"Clearing Rules...":"Clear Explicit Routing Filters"),1)],8,W1)])):T.reason==="ALLOCATION_FAILED"?(R(),$("div",Q1,[c("button",{class:"btn btn-secondary",style:{width:"100%","justify-content":"center","font-size":"0.85rem"},onClick:te=>x(T.index,"reroute"),disabled:g.value===T.index},[(R(),$("svg",Y1,[...v[32]||(v[32]=[c("path",{d:"M21 2v6h-6"},null,-1),c("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"},null,-1),c("path",{d:"M3 3v5h5"},null,-1)])])),G(" "+q(g.value===T.index?"Applying Reroute...":"Force Retry Allocation (Reroute)"),1)],8,X1)])):(R(),$("div",Z1,[c("button",{class:"btn btn-secondary",style:{width:"100%","justify-content":"center","font-size":"0.85rem"},onClick:te=>x(T.index,"reduce_replicas"),disabled:g.value===T.index},[(R(),$("svg",t0,[...v[33]||(v[33]=[c("path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"},null,-1),c("polyline",{points:"3.27 6.96 12 12.01 20.73 6.96"},null,-1),c("line",{x1:"12",y1:"22.08",x2:"12",y2:"12"},null,-1)])])),G(" "+q(g.value===T.index?"Applying Fix...":"Reduce Replicas to 0"),1)],8,e0)]))])):xe("",!0)]))),128))])])):xe("",!0)])):a.value==="ilm"?(R(),$("div",n0,[l.value.ilm.policy_count>0?(R(),$("div",s0,[c("div",r0,[v[35]||(v[35]=c("span",{class:"detail-label"},"Active Global Policies",-1)),c("span",i0,q(l.value.ilm.policy_count),1)]),v[36]||(v[36]=c("p",{class:"text-sm text-muted"},[G("To view deeper ILM configurations and rulesets, run "),c("code",{class:"mono-code"},"ilm list"),G(" or "),c("code",{class:"mono-code"},"ilm explain"),G(" in the Controller.")],-1))])):(R(),$("p",o0,"No Data Lifecycle Policies are currently registered on this cluster."))])):a.value==="backups"?(R(),$("div",l0,[l.value.backups.configured?(R(),$("div",a0,[c("div",c0,[(R(!0),$(he,null,Ie(l.value.backups.repositories,T=>(R(),$("div",{key:T.name,class:"repo-item detail-row"},[c("span",u0,q(T.name),1),c("span",d0,q(T.type),1)]))),128))])])):(R(),$("p",f0,"No snapshot repositories are configured."))])):xe("",!0)])])])):xe("",!0)])):xe("",!0)]))}}),h0=Ht(p0,[["__scopeId","data-v-72313788"]]);function m0(){const e=ue([]),t=ue("strict"),n=ue("logs-*"),s=["text","keyword","long","integer","short","byte","double","float","date","boolean","object","nested"],r=(a,f)=>{if(!a.trim()||!s.includes(f))return;const u={name:a.trim(),type:f};u.type==="keyword"?u.ignore_above=256:(u.type==="object"||u.type==="nested")&&(u.properties=[]),e.value.push(u)},o=(a,f)=>{a.splice(f,1)},i=(a,f,u)=>{if(a.properties||(a.properties=[]),!f.trim()||!s.includes(u))return;const d={name:f.trim(),type:u};d.type==="keyword"?d.ignore_above=256:(d.type==="object"||d.type==="nested")&&(d.properties=[]),a.properties.push(d)},l=Xe(()=>{const a=u=>{const d={};for(const h of u)d[h.name]={type:h.type},h.ignore_above!==void 0&&(d[h.name].ignore_above=h.ignore_above),(h.type==="object"||h.type==="nested")&&h.properties&&h.properties.length>0&&(d[h.name].properties=a(h.properties));return d},f={mappings:{dynamic:t.value,properties:a(e.value)}};return JSON.stringify(f,null,2)});return{fields:e,activePolicy:t,templateTarget:n,fieldTypes:s,addRootField:r,removeField:o,addNestedField:i,generatedSchema:l}}const g0={class:"mapping-builder-page animate-fade-in relative flex flex-col min-h-screen"},y0={class:"px-6 py-4 flex-1"},v0={class:"builder-layout mb-8"},b0={class:"card editor-panel glass-panel"},_0={class:"metrics-grid mb-8"},w0={class:"detail-row"},x0={class:"detail-row"},C0={key:0,class:"text-xs text-muted-foreground mt-2"},E0={key:0,class:"field-tree"},k0={class:"field-item-header"},S0={class:"flex items-center"},R0={class:"field-name font-mono"},A0={key:0,class:"field-badge text-xs flex items-center"},T0={class:"field-actions"},O0=["onClick"],$0=["onClick"],I0={key:0,class:"nested-tree mt-3 pl-4 border-l-2 border-border/50"},N0={class:"field-item-header"},P0={class:"flex items-center"},L0={class:"field-name font-mono opacity-90"},M0={class:"field-actions"},B0=["onClick"],D0={key:1,class:"empty-state p-8 text-center text-muted-foreground border border-dashed border-border/60 rounded-lg bg-muted/5"},F0={class:"add-field-form mt-6 flex gap-3 p-4 bg-muted/20 border border-border/40 rounded-xl"},j0=["value"],U0={class:"card output-panel glass-panel"},H0={class:"editor-output p-4 rounded-xl mb-6 shadow-inner bg-black/40 border border-white/5",style:{flex:"1","overflow-y":"auto"}},V0={class:"text-sm font-mono text-teal-300/90"},q0={class:"deploy-actions pt-4 border-t border-border/40"},z0={key:0,class:"mt-0.5 mr-3 flex-shrink-0",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},G0={key:1,class:"mt-0.5 mr-3 flex-shrink-0",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},K0=["disabled"],W0={key:0,xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"mr-2"},J0={key:1,class:"animate-spin mr-2",xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Q0={key:0,class:"modal-overlay"},X0={class:"modal-content card glass-panel animate-fade-in shadow-2xl border border-white/10",style:{"max-width":"400px",width:"100%"}},Y0={class:"text-sm text-muted-foreground mb-4"},Z0={class:"font-mono text-primary"},ey={class:"mb-4"},ty={class:"mb-6"},ny=["value"],sy={class:"flex justify-end gap-3 pt-4 border-t border-border/40"},ry=["disabled"],iy=ht({__name:"MappingBuilder",setup(e){const{fields:t,activePolicy:n,templateTarget:s,fieldTypes:r,addRootField:o,removeField:i,addNestedField:l,generatedSchema:a}=m0(),f=ue(""),u=ue("text"),d=()=>{o(f.value,u.value),f.value="",u.value="text"},h=ue(!1),y=ue(null),g=ue(""),_=ue("text"),x=Y=>{y.value=Y,g.value="",_.value="text",h.value=!0},L=()=>{y.value&&g.value.trim()&&r.includes(_.value)&&l(y.value,g.value,_.value),h.value=!1,y.value=null},P=()=>{h.value=!1,y.value=null},I=ue(!1),C=ue(null),K=async()=>{if(!le.clusters||le.clusters.length===0){C.value={success:!1,message:"No active cluster found in state. Please select a cluster first."};return}const Y=le.clusters[0].name;I.value=!0,C.value=null;try{const E=`template create ${s.value} --file -`,F=await be.post(`/api/cluster/${Y}/cli`,{command:E,stdin:a.value},{headers:{Authorization:`Bearer ${le.token}`}});F.data.exit_code===0?C.value={success:!0,message:`Template successfully deployed to ${Y}!`}:C.value={success:!1,message:F.data.error||F.data.output||"Unknown error deploying template."}}catch(E){console.error("Deploy failed",E),C.value={success:!1,message:E.response?.data?.detail||E.message||"Network error occurred."}}finally{I.value=!1}};return(Y,E)=>(R(),$("div",g0,[E[30]||(E[30]=c("header",{class:"page-header px-6 pt-6 pb-4 glass-header"},[c("h1",{class:"text-3xl font-bold tracking-tight text-foreground"},"Mapping Builder"),c("p",{class:"text-muted-foreground text-sm mt-1"},"Visually construct structural index schemas and analyzers effortlessly.")],-1)),c("div",y0,[c("div",v0,[c("div",b0,[E[19]||(E[19]=c("h3",{class:"panel-title flex items-center"},[c("svg",{class:"mr-2",xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("circle",{cx:"12",cy:"12",r:"3"}),c("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"})]),G(" Global Parameters ")],-1)),c("div",_0,[c("div",w0,[E[10]||(E[10]=c("span",{class:"detail-label"},"Template Pattern Target",-1)),Qe(c("input",{type:"text","onUpdate:modelValue":E[0]||(E[0]=F=>Pe(s)?s.value=F:null),class:"cli-input mt-2 transition-all",placeholder:"e.g. logs-*"},null,512),[[Lt,W(s)]])]),c("div",x0,[E[12]||(E[12]=c("span",{class:"detail-label"},"Dynamic Mapping Policy",-1)),Qe(c("select",{"onUpdate:modelValue":E[1]||(E[1]=F=>Pe(n)?n.value=F:null),class:"cli-input mt-2 transition-all"},[...E[11]||(E[11]=[c("option",{value:"strict"},"Strict (Reject unknown fields)",-1),c("option",{value:"true"},"Dynamic (Auto-map unknown fields)",-1),c("option",{value:"false"},"False (Ignore unknown fields)",-1)])],512),[[fr,W(n)]]),W(n)==="strict"?(R(),$("p",C0," Safeguards against unvalidated mapping explosions. ")):xe("",!0)])]),E[20]||(E[20]=Jt('<h3 class="panel-title flex items-center mb-4" data-v-41a0b48c><svg class="mr-2" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-41a0b48c><line x1="8" y1="6" x2="21" y2="6" data-v-41a0b48c></line><line x1="8" y1="12" x2="21" y2="12" data-v-41a0b48c></line><line x1="8" y1="18" x2="21" y2="18" data-v-41a0b48c></line><line x1="3" y1="6" x2="3.01" y2="6" data-v-41a0b48c></line><line x1="3" y1="12" x2="3.01" y2="12" data-v-41a0b48c></line><line x1="3" y1="18" x2="3.01" y2="18" data-v-41a0b48c></line></svg> Structure Definitions </h3>',1)),W(t).length>0?(R(),$("div",E0,[(R(!0),$(he,null,Ie(W(t),(F,V,se,j)=>{const v=[F.name,F.type,F.properties?.length];if(j&&j.key===V&&Li(j,v))return j;const T=(R(),$("div",{class:"field-item card fluid-hover",key:V},[c("div",k0,[c("div",S0,[c("span",R0,q(F.name),1),c("span",{class:Se(["field-type",`type-${F.type}`])},q(F.type),3),F.ignore_above?(R(),$("span",A0,[...E[13]||(E[13]=[c("svg",{class:"mr-1",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"})],-1),G(" Robustness ",-1)])])):xe("",!0)]),c("div",T0,[F.type==="object"||F.type==="nested"?(R(),$("button",{key:0,onClick:te=>x(F),class:"btn-icon tactile-btn",title:"Add Child Property"},[...E[14]||(E[14]=[c("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),c("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1)])],8,O0)):xe("",!0),c("button",{onClick:te=>W(i)(W(t),V),class:"btn-icon text-destructive tactile-btn-danger",title:"Remove Field"},[...E[15]||(E[15]=[c("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),c("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])],8,$0)])]),(F.type==="object"||F.type==="nested")&&F.properties&&F.properties.length>0?(R(),$("div",I0,[(R(!0),$(he,null,Ie(F.properties,(te,Te,ae,ce)=>{const oe=[te.name,te.type];if(ce&&ce.key===Te&&Li(ce,oe))return ce;const je=(R(),$("div",{class:"field-item child-item fluid-hover mb-2",key:Te},[c("div",N0,[c("div",P0,[c("span",L0,q(te.name),1),c("span",{class:Se(["field-type",`type-${te.type}`])},q(te.type),3)]),c("div",M0,[c("button",{onClick:lt=>W(i)(F.properties,Te),class:"btn-icon text-destructive tactile-btn-danger"},[...E[16]||(E[16]=[c("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),c("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])],8,B0)])])]));return je.memo=oe,je},E,2),128))])):xe("",!0)]));return T.memo=v,T},E,4),128))])):(R(),$("div",D0,[...E[17]||(E[17]=[c("svg",{class:"mx-auto mb-3 opacity-50",xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),c("line",{x1:"3",y1:"9",x2:"21",y2:"9"}),c("line",{x1:"9",y1:"21",x2:"9",y2:"9"})],-1),c("p",null,"No fields defined. Start building your mapping below.",-1)])])),c("div",F0,[Qe(c("input",{type:"text","onUpdate:modelValue":E[6]||(E[6]=F=>f.value=F),placeholder:"Enter root field name...",class:"cli-input flex-1",onKeyup:so(d,["enter"])},null,544),[[Lt,f.value]]),Qe(c("select",{"onUpdate:modelValue":E[7]||(E[7]=F=>u.value=F),class:"cli-input w-32"},[(R(!0),$(he,null,Ie(W(r),F=>(R(),$("option",{key:F,value:F},q(F),9,j0))),128))],512),[[fr,u.value]]),c("button",{onClick:d,class:"btn btn-secondary tactile-btn min-w-[120px]"},[...E[18]||(E[18]=[c("svg",{class:"mr-2",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),c("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1),G(" Append ",-1)])])])]),c("div",U0,[E[25]||(E[25]=Jt('<h3 class="panel-title flex items-center mb-4" data-v-41a0b48c><svg class="mr-2 text-primary" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-41a0b48c><polyline points="16 18 22 12 16 6" data-v-41a0b48c></polyline><polyline points="8 6 2 12 8 18" data-v-41a0b48c></polyline></svg> Generated Payload </h3><p class="text-xs text-muted-foreground mb-4" data-v-41a0b48c>Rendered instantaneously via Vue composable computed states without layout blocking.</p>',2)),c("div",H0,[c("pre",null,[c("code",V0,q(W(a)),1)])]),c("div",q0,[C.value?(R(),$("div",{key:0,class:Se(["mb-4 p-4 rounded-xl text-sm flex items-start animate-fade-in",C.value.success?"bg-teal-900/20 text-teal-400 border border-teal-800/50":"bg-destructive/10 text-destructive border border-destructive/30"])},[C.value.success?(R(),$("svg",z0,[...E[21]||(E[21]=[c("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"},null,-1),c("polyline",{points:"22 4 12 14.01 9 11.01"},null,-1)])])):(R(),$("svg",G0,[...E[22]||(E[22]=[c("circle",{cx:"12",cy:"12",r:"10"},null,-1),c("line",{x1:"12",y1:"8",x2:"12",y2:"12"},null,-1),c("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"},null,-1)])])),G(" "+q(C.value.message),1)],2)):xe("",!0),c("button",{class:"btn btn-primary w-full shadow-xl tactile-btn py-3 text-base flex justify-center items-center font-medium",onClick:K,disabled:I.value},[I.value?(R(),$("svg",J0,[...E[24]||(E[24]=[c("path",{d:"M21 12a9 9 0 1 1-6.219-8.56"},null,-1)])])):(R(),$("svg",W0,[...E[23]||(E[23]=[c("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"},null,-1),c("polyline",{points:"22 4 12 14.01 9 11.01"},null,-1)])])),G(" "+q(I.value?"Deploying Payload...":"Push Mapping to Active Cluster"),1)],8,K0)])])])]),h.value?(R(),$("div",Q0,[c("div",X0,[E[29]||(E[29]=c("h3",{class:"text-lg font-bold mb-4 text-foreground flex items-center"},[c("svg",{class:"mr-2 text-primary",xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[c("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"})]),G(" Add Nested Property ")],-1)),c("p",Y0,[E[26]||(E[26]=G("Injecting a property into: ",-1)),c("span",Z0,q(y.value?.name),1)]),c("div",ey,[E[27]||(E[27]=c("label",{class:"detail-label block mb-2"},"Property Name",-1)),Qe(c("input",{type:"text","onUpdate:modelValue":E[8]||(E[8]=F=>g.value=F),class:"cli-input w-full transition-all focus:ring-2 ring-primary/30",placeholder:"e.g. host.name",onKeyup:so(L,["enter"]),autofocus:""},null,544),[[Lt,g.value]])]),c("div",ty,[E[28]||(E[28]=c("label",{class:"detail-label block mb-2"},"Property Type",-1)),Qe(c("select",{"onUpdate:modelValue":E[9]||(E[9]=F=>_.value=F),class:"cli-input w-full transition-all focus:ring-2 ring-primary/30"},[(R(!0),$(he,null,Ie(W(r),F=>(R(),$("option",{key:F,value:F},q(F),9,ny))),128))],512),[[fr,_.value]])]),c("div",sy,[c("button",{onClick:P,class:"btn btn-secondary tactile-btn px-6 text-muted-foreground hover:text-foreground"},"Cancel"),c("button",{onClick:L,disabled:!g.value.trim(),class:"btn btn-primary tactile-btn px-6"},"Confirm",8,ry)])])])):xe("",!0)]))}}),oy=Ht(iy,[["__scopeId","data-v-41a0b48c"]]),ly=[{path:"/",name:"Dashboard",component:Hh},{path:"/cluster/:name",name:"ClusterDetail",component:h0},{path:"/docs",name:"Documentation",component:Hg},{path:"/mapping-builder",name:"MappingBuilder",component:oy},{path:"/settings",name:"Settings",component:xm}],ay=Nf({history:df(),routes:ly});Cd(Hf).use(ay).mount("#app");
@@ -6,8 +6,8 @@
6
6
  <link rel="icon" type="image/x-icon" href="/favicon.ico" />
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8
8
  <title>Elastro</title>
9
- <script type="module" crossorigin src="/assets/index-CDM13vFi.js"></script>
10
- <link rel="stylesheet" crossorigin href="/assets/index-_TTaaZ3u.css">
9
+ <script type="module" crossorigin src="/assets/index-DRaRiqvj.js"></script>
10
+ <link rel="stylesheet" crossorigin href="/assets/index-BTk4W2oz.css">
11
11
  </head>
12
12
 
13
13
  <body>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: elastro-client
3
- Version: 1.3.26
3
+ Version: 1.3.27
4
4
  Summary: A comprehensive Python library for Elasticsearch management with both programmatic and CLI interfaces
5
5
  Author: Austin Jorgensen
6
6
  License-Expression: MIT
@@ -62,8 +62,8 @@ elastro/gui/elastro.svg
62
62
  elastro/gui/favicon.ico
63
63
  elastro/gui/index.html
64
64
  elastro/gui/vite.svg
65
- elastro/gui/assets/index-CDM13vFi.js
66
- elastro/gui/assets/index-_TTaaZ3u.css
65
+ elastro/gui/assets/index-BTk4W2oz.css
66
+ elastro/gui/assets/index-DRaRiqvj.js
67
67
  elastro/utils/__init__.py
68
68
  elastro/utils/aliases.py
69
69
  elastro/utils/health.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "elastro-client"
7
- version = "1.3.26"
7
+ version = "1.3.27"
8
8
  description = "A comprehensive Python library for Elasticsearch management with both programmatic and CLI interfaces"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9,<3.14"
@@ -1 +0,0 @@
1
- @import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--background: 210 20% 98%;--foreground: 230 25% 15%;--card: 0 0% 100%;--card-foreground: 230 25% 15%;--popover: 0 0% 100%;--popover-foreground: 230 25% 15%;--primary: 216 100% 50%;--primary-foreground: 0 0% 100%;--secondary: 263 53% 52%;--secondary-foreground: 0 0% 100%;--muted: 210 20% 94%;--muted-foreground: 230 15% 45%;--accent: 189 100% 50%;--accent-foreground: 230 60% 10%;--teal: 173 80% 40%;--teal-foreground: 0 0% 100%;--destructive: 0 84% 60%;--destructive-foreground: 0 0% 100%;--border: 210 20% 90%;--input: 210 20% 90%;--ring: 216 100% 50%;--radius: .75rem;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--gradient-primary: linear-gradient(135deg, hsl(216 100% 50%), hsl(263 53% 52%));--gradient-accent: linear-gradient(135deg, hsl(216 100% 50%), hsl(189 100% 50%));--glass-bg: hsl(0 0% 100% / .7);--glass-border: hsl(0 0% 100% / .2);--shadow-sm: 0 1px 2px hsl(230 25% 15% / .05);--shadow-md: 0 4px 12px hsl(230 25% 15% / .08);--shadow-lg: 0 8px 30px hsl(230 25% 15% / .12)}@media(prefers-color-scheme:dark){:root{--background: 230 25% 10%;--foreground: 210 20% 98%;--card: 230 25% 14%;--card-foreground: 210 20% 98%;--popover: 230 25% 14%;--popover-foreground: 210 20% 98%;--primary: 216 100% 60%;--secondary: 263 53% 65%;--muted: 230 25% 18%;--muted-foreground: 210 20% 70%;--accent: 189 100% 45%;--accent-foreground: 0 0% 100%;--border: 230 25% 18%;--input: 230 25% 18%;--glass-bg: hsl(230 25% 14% / .7);--glass-border: hsl(210 20% 98% / .1)}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:hsl(var(--background));color:hsl(var(--foreground));line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{display:flex;height:100vh;width:100vw;overflow:hidden}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius);font-weight:500;transition:all .2s ease;cursor:pointer;padding:.5rem 1rem;border:none;font-size:.875rem}.btn:active{transform:scale(.95)}.btn-primary:active{box-shadow:0 0 15px hsl(var(--primary) / .6)}.btn-secondary:active{box-shadow:0 0 15px hsl(var(--secondary) / .6)}.btn-outline:active{background-color:hsl(var(--muted));box-shadow:0 0 15px hsl(var(--foreground) / .2)}.btn-primary{background:var(--gradient-primary);color:hsl(var(--primary-foreground));box-shadow:var(--shadow-md)}.btn-primary:hover{opacity:.9;box-shadow:var(--shadow-lg)}.btn-secondary{background-color:hsl(var(--secondary));color:hsl(var(--secondary-foreground))}.btn-outline{background-color:transparent;border:1px solid hsl(var(--border));color:hsl(var(--foreground))}.btn-outline:hover{background-color:hsl(var(--muted))}.card{background-color:hsl(var(--card));color:hsl(var(--card-foreground));border-radius:var(--radius);border:1px solid hsl(var(--border));box-shadow:var(--shadow-sm);padding:1.5rem;transition:transform .2s ease,box-shadow .2s ease}.card:hover{box-shadow:var(--shadow-md)}.glass-panel{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .4s ease forwards}input,select{width:100%;padding:.5rem .75rem;border-radius:var(--radius);border:1px solid hsl(var(--border));background-color:hsl(var(--input));color:hsl(var(--foreground));font-family:inherit;font-size:.875rem;transition:border-color .2s ease,box-shadow .2s ease}input:focus,select:focus{outline:none;border-color:hsl(var(--ring));box-shadow:0 0 0 2px hsl(var(--ring) / .2)}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,hsl(var(--muted) / .4) 25%,hsl(var(--muted) / .8),hsl(var(--muted) / .4) 75%);background-size:200% 100%;animation:skeleton-shimmer 2s infinite linear;border-radius:var(--radius)}.skeleton-text{height:1.25rem;margin-bottom:.5rem}.skeleton-title{height:1.75rem}.skeleton-jumbo{height:3.5rem;border-radius:.5rem}.skeleton-badge{height:1.5rem;border-radius:9999px}.w-12{width:3rem}.w-16{width:4rem}.w-20{width:5rem}.w-1\/4{width:25%}.w-1\/3{width:33.333333%}.w-1\/2{width:50%}.w-full{width:100%}.w-3\/4{width:75%}.layout[data-v-432f1e06]{display:flex;width:100%;height:100%}.sidebar[data-v-432f1e06]{width:280px;height:100%;display:flex;flex-direction:column;padding:1.5rem;border-right:1px solid hsl(var(--border));z-index:10}.sidebar-header[data-v-432f1e06]{display:flex;align-items:center;gap:1rem;margin-bottom:2.5rem}.logo-placeholder[data-v-432f1e06]{width:40px;height:40px;border-radius:12px;background:var(--gradient-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.25rem;box-shadow:var(--shadow-sm)}.sidebar-header h2[data-v-432f1e06]{font-size:1.5rem;font-weight:700;background:var(--gradient-accent);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.sidebar-nav[data-v-432f1e06]{display:flex;flex-direction:column;gap:.5rem;flex:1}.nav-item[data-v-432f1e06]{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius);background:transparent;border:none;color:hsl(var(--muted-foreground));font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-align:left}.nav-item[data-v-432f1e06]:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.nav-item.active[data-v-432f1e06]{background:hsl(var(--primary) / .1);color:hsl(var(--primary));font-weight:600}.token-warning[data-v-432f1e06]{margin-top:auto;padding:1rem;border-radius:var(--radius);background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:.85rem;display:flex;align-items:flex-start;gap:.5rem}.main-content[data-v-432f1e06]{flex:1;height:100%;overflow-y:auto;padding:2.5rem 2.5rem 0;background-color:hsl(var(--background));display:flex;flex-direction:column}.page-wrapper[data-v-432f1e06]{flex:1 0 auto}.app-footer[data-v-432f1e06]{margin-top:auto;padding:2rem 0;border-top:1px solid hsl(var(--border) / .5);color:hsl(var(--muted-foreground));font-size:.85rem;text-align:center;flex-shrink:0}.fade-enter-active[data-v-432f1e06],.fade-leave-active[data-v-432f1e06]{transition:opacity .2s ease,transform .2s ease}.fade-enter-from[data-v-432f1e06]{opacity:0;transform:translateY(10px)}.fade-leave-to[data-v-432f1e06]{opacity:0;transform:translateY(-10px)}.page-header[data-v-5e1193ec]{margin-bottom:2rem}.page-header h1[data-v-5e1193ec]{font-size:2rem;font-weight:700;margin-bottom:.25rem}.page-header p[data-v-5e1193ec]{color:hsl(var(--muted-foreground));font-size:1rem}.stats-grid[data-v-5e1193ec]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card[data-v-5e1193ec]{display:flex;flex-direction:column;gap:.5rem}.stat-card h3[data-v-5e1193ec]{font-size:.875rem;font-weight:500;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.05em}.stat-card .value[data-v-5e1193ec]{font-size:2.5rem;font-weight:700}.text-destructive[data-v-5e1193ec]{color:hsl(var(--destructive))}.cluster-card[data-v-5e1193ec]{margin-bottom:1.5rem}.cluster-link-wrapper[data-v-5e1193ec]{display:block;text-decoration:none;color:inherit;transition:all .2s cubic-bezier(.175,.885,.32,1.275)}.cluster-link-wrapper[data-v-5e1193ec]:hover{transform:translateY(-2px);border-color:hsl(var(--ring))}.cluster-link-wrapper[data-v-5e1193ec]:active{transform:scale(.98);box-shadow:0 0 15px hsl(var(--primary) / .3)}.cluster-link-wrapper .cluster-header h2[data-v-5e1193ec]{display:flex;align-items:center;gap:.5rem}.cluster-link-wrapper .chevron[data-v-5e1193ec]{opacity:0;transform:translate(-10px);transition:all .2s ease;color:hsl(var(--primary))}.cluster-link-wrapper:hover .chevron[data-v-5e1193ec]{opacity:1;transform:translate(0)}.cluster-header[data-v-5e1193ec]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid hsl(var(--border) / .5)}.cluster-header h2[data-v-5e1193ec]{font-size:1.25rem;font-weight:600}.health-badge[data-v-5e1193ec]{padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:700;color:#fff;text-transform:uppercase}@keyframes pulse-destructive-5e1193ec{0%{box-shadow:0 0 hsl(var(--destructive) / .7)}70%{box-shadow:0 0 0 10px hsl(var(--destructive) / 0)}to{box-shadow:0 0 hsl(var(--destructive) / 0)}}.status-pulse[data-v-5e1193ec]{animation:pulse-destructive-5e1193ec 2s infinite}.cluster-details[data-v-5e1193ec]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;font-size:.95rem}.info-block[data-v-5e1193ec]{display:flex;flex-direction:column;gap:.5rem}.info-block p[data-v-5e1193ec]{margin:0;font-size:1.05rem;display:flex;align-items:center;gap:.5rem}.info-block strong[data-v-5e1193ec]{color:hsl(var(--muted-foreground));font-weight:500;text-transform:uppercase;font-size:.85rem;letter-spacing:.05em}.highlight-val[data-v-5e1193ec]{color:hsl(var(--foreground));font-family:var(--font-mono);font-weight:600;background:hsl(var(--muted));padding:.15rem .5rem;border-radius:4px}.unstable-indices h4[data-v-5e1193ec]{font-size:.95rem;font-weight:600;margin-bottom:.75rem;color:hsl(var(--destructive))}.indices-table[data-v-5e1193ec]{width:100%;border-collapse:collapse;font-size:.875rem}.indices-table th[data-v-5e1193ec]{text-align:left;padding:.75rem;background:hsl(var(--muted) / .5);font-weight:500;color:hsl(var(--muted-foreground));border-bottom:1px solid hsl(var(--border))}.indices-table td[data-v-5e1193ec]{padding:.75rem;border-bottom:1px solid hsl(var(--border) / .5)}.health-dot[data-v-5e1193ec]{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.5rem}.alert-icon-inline[data-v-5e1193ec]{color:hsl(var(--destructive));display:inline-block;vertical-align:text-bottom;margin-right:.5rem;animation:pulse-destructive-5e1193ec 2s infinite}.font-bold[data-v-5e1193ec]{font-weight:700}.error-banner[data-v-5e1193ec]{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));padding:1rem;border-radius:var(--radius);margin-bottom:2rem;display:flex;align-items:center;gap:.75rem;font-weight:500}.empty-state[data-v-5e1193ec]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.empty-icon[data-v-5e1193ec]{color:hsl(var(--muted-foreground));margin-bottom:1rem;opacity:.5}.empty-state h2[data-v-5e1193ec]{font-size:1.25rem;margin-bottom:.5rem}.empty-state p[data-v-5e1193ec]{color:hsl(var(--muted-foreground))}.mt-4[data-v-5e1193ec]{margin-top:1rem}.page-header[data-v-e174029f]{margin-bottom:2rem}.page-header h1[data-v-e174029f]{font-size:2rem;font-weight:700;margin-bottom:.25rem}.page-header p[data-v-e174029f]{color:hsl(var(--muted-foreground));font-size:1rem}.tabs-container[data-v-e174029f]{display:flex;flex-direction:column;gap:1.5rem}.tabs[data-v-e174029f]{display:flex;gap:.5rem;border-bottom:1px solid hsl(var(--border) / .5);padding-bottom:0;margin-bottom:.5rem}.tab-btn[data-v-e174029f]{background:transparent;border:none;border-bottom:2px solid transparent;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;color:hsl(var(--muted-foreground));cursor:pointer;transition:all .2s ease;margin-bottom:-1px}.tab-btn[data-v-e174029f]:hover{color:hsl(var(--foreground));background:hsl(var(--muted) / .5);border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.tab-btn.active[data-v-e174029f]{color:hsl(var(--primary));border-bottom:2px solid hsl(var(--primary));background:transparent}.tab-content[data-v-e174029f]{width:100%;max-width:800px}.card h3[data-v-e174029f]{font-size:1.25rem;font-weight:600;margin-bottom:.25rem}.text-muted[data-v-e174029f]{color:hsl(var(--muted-foreground));margin-bottom:1.5rem}.text-sm[data-v-e174029f]{font-size:.875rem}.cluster-form[data-v-e174029f]{display:flex;flex-direction:column;gap:1.25rem}.form-group[data-v-e174029f]{display:flex;flex-direction:column;gap:.5rem}.form-row[data-v-e174029f]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}label[data-v-e174029f]{font-size:.875rem;font-weight:500;color:hsl(var(--foreground))}.radio-group[data-v-e174029f]{display:flex;gap:1.5rem;padding:.5rem 0}.radio-label[data-v-e174029f]{display:flex;align-items:center;gap:.5rem;font-weight:400;cursor:pointer}.submit-btn[data-v-e174029f]{margin-top:.5rem;align-self:flex-start}.alert[data-v-e174029f]{padding:1rem;border-radius:var(--radius);margin-bottom:1.5rem;font-weight:500}.error-banner[data-v-e174029f]{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));border:1px solid hsl(var(--destructive) / .2)}.success-banner[data-v-e174029f]{background:hsl(var(--teal) / .1);color:hsl(var(--teal));border:1px solid hsl(var(--teal) / .2)}.flex-header[data-v-e174029f]{margin-bottom:1.5rem}.clusters-grid[data-v-e174029f]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;width:100%}.cluster-grid-card[data-v-e174029f]{display:flex;flex-direction:column;gap:1rem;height:100%}.card-top[data-v-e174029f]{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid hsl(var(--border) / .5);padding-bottom:1rem}.cluster-name-block strong[data-v-e174029f]{display:block;font-size:1.15rem;font-weight:600;margin-bottom:.1rem}.host-url[data-v-e174029f]{font-size:.85rem;color:hsl(var(--muted-foreground))}.health-chip[data-v-e174029f]{display:flex;align-items:center;gap:.35rem;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:700;text-transform:uppercase;background:hsl(var(--muted) / .3);color:hsl(var(--muted-foreground))}.chip-dot[data-v-e174029f]{width:6px;height:6px;border-radius:50%;background:currentColor}.health-green[data-v-e174029f]{background:hsl(var(--teal) / .15);color:hsl(var(--teal))}.health-yellow[data-v-e174029f]{background:hsl(var(--secondary) / .15);color:hsl(var(--secondary))}.health-red[data-v-e174029f]{background:hsl(var(--destructive) / .15);color:hsl(var(--destructive))}.card-stats[data-v-e174029f]{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:.5rem}.stat-small[data-v-e174029f]{display:flex;flex-direction:column;gap:.2rem}.stat-label[data-v-e174029f]{font-size:.75rem;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.05em;font-weight:600}.stat-val[data-v-e174029f]{font-size:.95rem;font-weight:500;word-break:break-all;color:hsl(var(--foreground))}.card-actions[data-v-e174029f]{margin-top:auto;padding-top:.5rem}.empty-list[data-v-e174029f]{color:hsl(var(--muted-foreground));font-style:italic;padding:3rem 0;text-align:center}.mt-4[data-v-e174029f]{margin-top:1rem}.code-block[data-v-f0ccb4d4]{overflow:hidden;border-radius:.75rem;border:1px solid hsl(var(--border) / .5);background:hsl(var(--card) / .4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:100%;margin-bottom:2rem;font-family:JetBrains Mono,monospace}.code-header[data-v-f0ccb4d4]{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid hsl(var(--border) / .3);background:hsl(var(--card) / .5)}.code-dots[data-v-f0ccb4d4]{display:flex;gap:.375rem}.dot[data-v-f0ccb4d4]{width:.75rem;height:.75rem;border-radius:50%}.dot-red[data-v-f0ccb4d4]{background:#ef4444cc}.dot-yellow[data-v-f0ccb4d4]{background:#eab308cc}.dot-green[data-v-f0ccb4d4]{background:#22c55ecc}.code-title[data-v-f0ccb4d4]{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:hsl(var(--muted-foreground));margin-right:auto;margin-left:1rem}.icon-small[data-v-f0ccb4d4]{width:1rem;height:1rem}.copy-btn[data-v-f0ccb4d4]{display:flex;align-items:center;gap:.375rem;background:transparent;border:none;color:hsl(var(--muted-foreground));cursor:pointer;font-size:.75rem;padding:.25rem .5rem;border-radius:.25rem;transition:all .2s}.copy-btn[data-v-f0ccb4d4]:hover{color:hsl(var(--foreground));background:hsl(var(--muted) / .5)}.code-content[data-v-f0ccb4d4]{padding:1rem;overflow-x:auto}pre[data-v-f0ccb4d4]{margin:0;font-size:.875rem;line-height:1.6}code[data-v-f0ccb4d4]{display:block}.code-line[data-v-f0ccb4d4]{display:flex;min-width:0}.line-number[data-v-f0ccb4d4]{-webkit-user-select:none;user-select:none;color:hsl(var(--muted-foreground) / .3);width:2rem;text-align:right;padding-right:1rem;flex-shrink:0}.line-text[data-v-f0ccb4d4]{flex:1;white-space:pre-wrap;word-break:break-all}[data-v-f0ccb4d4] .hl-str{color:#2dd4bf}[data-v-f0ccb4d4] .hl-comment{color:hsl(var(--muted-foreground));opacity:.6;font-style:italic}[data-v-f0ccb4d4] .hl-kw{color:#f472b6;font-weight:500}[data-v-f0ccb4d4] .hl-func{color:#60a5fa}[data-v-f0ccb4d4] .hl-dec{color:#facc15}[data-v-f0ccb4d4] .hl-num{color:#fb923c}[data-v-f0ccb4d4] .hl-cmd{color:#d946ef;font-weight:700}[data-v-f0ccb4d4] .hl-str2{color:#4ade80}[data-v-f0ccb4d4] .hl-flag{color:#22d3ee;opacity:.9}[data-v-f0ccb4d4] .hl-var{color:#facc15}.docs-layout[data-v-cfe6e046]{display:flex;flex-direction:column;position:relative;width:100%}.top-nav[data-v-cfe6e046]{position:sticky;top:0;z-index:30;background:hsl(var(--background) / .8);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid hsl(var(--border) / .5);margin-bottom:2rem;padding:.75rem 0}.nav-container[data-v-cfe6e046]{display:flex;align-items:center;gap:1.5rem;width:100%;padding:0 1rem}.nav-title[data-v-cfe6e046]{font-size:.875rem;font-weight:600;color:hsl(var(--foreground));white-space:nowrap}.nav-links[data-v-cfe6e046]{display:flex;align-items:center;gap:.5rem;overflow-x:auto;padding-bottom:2px}.nav-links[data-v-cfe6e046]::-webkit-scrollbar{display:none}.nav-links[data-v-cfe6e046]{-ms-overflow-style:none;scrollbar-width:none}.nav-btn[data-v-cfe6e046]{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:.5rem;border:1px solid transparent;background:transparent;color:hsl(var(--muted-foreground));font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.nav-btn[data-v-cfe6e046]:hover{background:hsl(var(--muted) / .5);color:hsl(var(--foreground))}.nav-btn.active[data-v-cfe6e046]{background:hsl(var(--primary) / .1);color:hsl(var(--primary))}.main-content[data-v-cfe6e046]{flex:1;width:100%}.hero-section[data-v-cfe6e046]{margin-bottom:3rem;animation:fade-in-cfe6e046 .5s ease-out}@keyframes fade-in-cfe6e046{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.badge[data-v-cfe6e046]{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:9999px;background:hsl(var(--card) / .4);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid hsl(var(--border) / .5);margin-bottom:1.5rem}.badge span[data-v-cfe6e046]{font-size:.875rem;font-weight:500;color:hsl(var(--muted-foreground))}.text-accent[data-v-cfe6e046]{color:hsl(var(--teal))}.page-title[data-v-cfe6e046]{font-size:3rem;font-weight:800;margin-bottom:1rem;letter-spacing:-.025em}.gradient-text[data-v-cfe6e046]{background:linear-gradient(to right,hsl(var(--primary)),hsl(var(--teal)));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.subtitle[data-v-cfe6e046]{font-size:1.25rem;color:hsl(var(--muted-foreground));line-height:1.6}.doc-section[data-v-cfe6e046]{margin-bottom:4rem;scroll-margin-top:6rem}.section-title[data-v-cfe6e046]{display:flex;align-items:center;gap:.75rem;font-size:1.875rem;font-weight:700;margin-bottom:1rem;color:hsl(var(--foreground))}.text-primary[data-v-cfe6e046]{color:hsl(var(--primary))}.section-desc[data-v-cfe6e046]{font-size:1.125rem;color:hsl(var(--muted-foreground));margin-bottom:1.5rem}.subsection-title[data-v-cfe6e046]{font-size:1.25rem;font-weight:600;margin:2rem 0 1rem;color:hsl(var(--foreground))}.icon-small[data-v-cfe6e046],.icon-badge[data-v-cfe6e046]{width:1rem;height:1rem}.icon-large[data-v-cfe6e046]{width:2rem;height:2rem}.shrink-0[data-v-cfe6e046]{flex-shrink:0}.text-left[data-v-cfe6e046]{text-align:left}.mobile-toggle[data-v-cfe6e046]{display:none}@media(max-width:1024px){.sidebar[data-v-cfe6e046]{position:fixed;top:4rem;left:0;height:calc(100vh - 4rem);background:hsl(var(--background));transform:translate(-100%);transition:transform .3s;border-right:1px solid hsl(var(--border) / .5)}.sidebar-open[data-v-cfe6e046]{transform:translate(0)}.mobile-toggle[data-v-cfe6e046]{display:block;position:fixed;top:4rem;left:0;right:0;background:hsl(var(--background));border-bottom:1px solid hsl(var(--border) / .5);padding:.75rem 1rem;z-index:20}.toggle-btn[data-v-cfe6e046]{display:flex;align-items:center;gap:.5rem;background:transparent;border:none;color:hsl(var(--foreground));font-size:.875rem;font-weight:500}.main-content[data-v-cfe6e046]{padding-top:4rem;padding-left:1rem;padding-right:1rem}}.docs-layout[data-v-0189e06c]{display:flex;flex-direction:column;position:relative;width:100%}.top-nav[data-v-0189e06c]{position:sticky;top:0;z-index:30;background:hsl(var(--background) / .8);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid hsl(var(--border) / .5);margin-bottom:2rem;padding:.75rem 0}.nav-container[data-v-0189e06c]{display:flex;align-items:center;gap:1.5rem;width:100%;padding:0 1rem}.nav-title[data-v-0189e06c]{font-size:.875rem;font-weight:600;color:hsl(var(--foreground));white-space:nowrap}.nav-links[data-v-0189e06c]{display:flex;align-items:center;gap:.5rem;overflow-x:auto;padding-bottom:2px}.nav-links[data-v-0189e06c]::-webkit-scrollbar{display:none}.nav-links[data-v-0189e06c]{-ms-overflow-style:none;scrollbar-width:none}.nav-btn[data-v-0189e06c]{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:.5rem;border:1px solid transparent;background:transparent;color:hsl(var(--muted-foreground));font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.nav-btn[data-v-0189e06c]:hover{background:hsl(var(--muted) / .5);color:hsl(var(--foreground))}.nav-btn.active[data-v-0189e06c]{background:hsl(var(--primary) / .1);color:hsl(var(--primary))}.main-content[data-v-0189e06c]{flex:1;width:100%}.hero-section[data-v-0189e06c]{margin-bottom:3rem;animation:fade-in-0189e06c .5s ease-out}@keyframes fade-in-0189e06c{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.badge[data-v-0189e06c]{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:9999px;background:hsl(var(--card) / .4);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid hsl(var(--border) / .5);margin-bottom:1.5rem}.badge span[data-v-0189e06c]{font-size:.875rem;font-weight:500;color:hsl(var(--muted-foreground))}.text-accent[data-v-0189e06c]{color:hsl(var(--teal))}.page-title[data-v-0189e06c]{font-size:3rem;font-weight:800;margin-bottom:1rem;letter-spacing:-.025em}.gradient-text[data-v-0189e06c]{background:linear-gradient(to right,hsl(var(--primary)),hsl(var(--teal)));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.subtitle[data-v-0189e06c]{font-size:1.25rem;color:hsl(var(--muted-foreground));line-height:1.6}.doc-section[data-v-0189e06c]{margin-bottom:4rem;scroll-margin-top:6rem}.section-title[data-v-0189e06c]{display:flex;align-items:center;gap:.75rem;font-size:1.875rem;font-weight:700;margin-bottom:1rem;color:hsl(var(--foreground))}.text-primary[data-v-0189e06c]{color:hsl(var(--primary))}.section-desc[data-v-0189e06c]{font-size:1.125rem;color:hsl(var(--muted-foreground));margin-bottom:1.5rem}.info-card[data-v-0189e06c]{background:hsl(var(--card) / .4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid hsl(var(--border) / .5);border-radius:.75rem;padding:1.5rem;margin-bottom:1.5rem}.info-title[data-v-0189e06c]{font-size:1.25rem;font-weight:600;margin-bottom:.75rem}.info-list[data-v-0189e06c]{display:flex;flex-direction:column;gap:.5rem;list-style:none;padding:0;margin:0}.info-list li[data-v-0189e06c]{display:flex;align-items:flex-start;gap:.5rem;color:hsl(var(--muted-foreground))}.info-list strong[data-v-0189e06c]{color:hsl(var(--foreground));font-weight:600}.icon-small[data-v-0189e06c],.icon-badge[data-v-0189e06c]{width:1rem;height:1rem}.icon-large[data-v-0189e06c]{width:2rem;height:2rem}.shrink-0[data-v-0189e06c]{flex-shrink:0}.mt-05[data-v-0189e06c]{margin-top:.125rem}.text-left[data-v-0189e06c]{text-align:left}.mobile-toggle[data-v-0189e06c]{display:none}@media(max-width:1024px){.sidebar[data-v-0189e06c]{position:fixed;top:4rem;left:0;height:calc(100vh - 4rem);background:hsl(var(--background));transform:translate(-100%);transition:transform .3s;border-right:1px solid hsl(var(--border) / .5)}.sidebar-open[data-v-0189e06c]{transform:translate(0)}.mobile-toggle[data-v-0189e06c]{display:block;position:fixed;top:4rem;left:0;right:0;background:hsl(var(--background));border-bottom:1px solid hsl(var(--border) / .5);padding:.75rem 1rem;z-index:20}.toggle-btn[data-v-0189e06c]{display:flex;align-items:center;gap:.5rem;background:transparent;border:none;color:hsl(var(--foreground));font-size:.875rem;font-weight:500}.main-content[data-v-0189e06c]{padding-top:4rem;padding-left:1rem;padding-right:1rem}}.docs-wrapper[data-v-60eff690]{position:relative;min-height:100%}.bg-glow[data-v-60eff690]{position:absolute;width:50vw;height:50vh;border-radius:50%;filter:blur(140px);z-index:1;pointer-events:none;opacity:.25}.bg-glow-primary[data-v-60eff690]{top:-10%;right:-10%;background:radial-gradient(circle,hsl(var(--primary)) 0%,transparent 70%)}.bg-glow-accent[data-v-60eff690]{bottom:-20%;left:-20%;background:radial-gradient(circle,hsl(var(--teal)) 0%,transparent 70%)}.tabs-container[data-v-60eff690]{width:100%;max-width:1200px;margin:0 auto}.tabs-list[data-v-60eff690]{display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:400px;margin:0 auto 2rem;background:hsl(var(--muted) / .5);padding:.375rem;border-radius:.75rem;border:1px solid hsl(var(--border) / .5);gap:.25rem}.tab-trigger[data-v-60eff690]{padding:.5rem 1rem;border-radius:.5rem;border:none;background:transparent;color:hsl(var(--muted-foreground));font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.tab-trigger[data-v-60eff690]:hover{color:hsl(var(--foreground))}.tab-trigger.active[data-v-60eff690]{background:hsl(var(--card));color:hsl(var(--foreground));box-shadow:0 1px 3px #0000001a}.tabs-content[data-v-60eff690]{width:100%}.header-actions[data-v-6c17fdd6]{margin-bottom:2rem}.back-btn[data-v-6c17fdd6]{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem}.page-header[data-v-6c17fdd6]{margin-bottom:3rem;padding-bottom:1.5rem;border-bottom:1px solid hsl(var(--border) / .3)}.title-group[data-v-6c17fdd6]{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem}.title-group h1[data-v-6c17fdd6]{font-size:2.5rem;font-weight:700;letter-spacing:-.025em}.host-link a[data-v-6c17fdd6]{color:hsl(var(--muted-foreground));text-decoration:none;transition:color .2s;font-family:var(--font-mono);font-size:.95rem}.host-link a[data-v-6c17fdd6]:hover{color:hsl(var(--primary));text-decoration:underline}.metrics-grid[data-v-6c17fdd6]{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem}.metric-card[data-v-6c17fdd6]{display:flex;flex-direction:column;height:100%}.metric-header[data-v-6c17fdd6]{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;color:hsl(var(--muted-foreground))}.metric-header h3[data-v-6c17fdd6]{font-size:1.1rem;font-weight:600;color:hsl(var(--foreground))}.mega-stat[data-v-6c17fdd6]{font-size:3.5rem;font-weight:800;line-height:1;background:var(--gradient-accent);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:1rem}.sub-stats[data-v-6c17fdd6]{display:flex;flex-wrap:wrap;gap:.5rem}.sub-stat-badge[data-v-6c17fdd6]{background:hsl(var(--muted) / .5);padding:.25rem .5rem;border-radius:.25rem;font-size:.85rem;color:hsl(var(--muted-foreground));border:1px solid hsl(var(--border) / .5)}.sub-stat-badge strong[data-v-6c17fdd6]{color:hsl(var(--foreground))}.health-breakdown[data-v-6c17fdd6]{display:flex;height:8px;width:100%;border-radius:4px;overflow:hidden;background:hsl(var(--muted));margin-bottom:1rem}.health-bar-segment[data-v-6c17fdd6]{height:100%;transition:width 1s ease-in-out}.health-legend[data-v-6c17fdd6]{display:flex;gap:1rem;font-size:.85rem;color:hsl(var(--muted-foreground))}.dot[data-v-6c17fdd6]{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.25rem}.dot.green[data-v-6c17fdd6]{background:hsl(var(--teal))}.dot.yellow[data-v-6c17fdd6]{background:hsl(var(--secondary))}.dot.red[data-v-6c17fdd6]{background:hsl(var(--destructive))}.status-indicator[data-v-6c17fdd6]{display:inline-block;padding:.25rem .75rem;border-radius:999px;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.status-good[data-v-6c17fdd6]{background:hsl(var(--teal) / .1);color:hsl(var(--teal))}.status-bad[data-v-6c17fdd6]{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive))}.repos-list[data-v-6c17fdd6]{display:flex;flex-direction:column;gap:.75rem}.repo-item[data-v-6c17fdd6]{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:hsl(var(--muted) / .3);border-radius:var(--radius);border:1px solid hsl(var(--border) / .5)}.repo-name[data-v-6c17fdd6]{font-family:var(--font-mono);font-weight:600}.badge-outline[data-v-6c17fdd6]{font-size:.75rem;padding:.1rem .5rem;border-radius:999px;border:1px solid currentColor;opacity:.7;text-transform:uppercase}.text-muted[data-v-6c17fdd6]{color:hsl(var(--muted-foreground))}.text-sm[data-v-6c17fdd6]{font-size:.875rem}.mt-2[data-v-6c17fdd6]{margin-top:.5rem}.mt-3[data-v-6c17fdd6]{margin-top:1rem}.mb-4[data-v-6c17fdd6]{margin-bottom:1.5rem}.health-badge.outline[data-v-6c17fdd6]{background:transparent;border:1.5px solid;padding:.25rem .75rem;border-radius:999px;font-size:.85rem;font-weight:700;text-transform:uppercase}.error-banner[data-v-6c17fdd6]{display:flex;align-items:flex-start;gap:1.5rem;padding:2rem;background:hsl(var(--destructive) / .05);border-left:4px solid hsl(var(--destructive));color:hsl(var(--foreground))}.error-banner svg[data-v-6c17fdd6]{color:hsl(var(--destructive));flex-shrink:0;margin-top:.25rem}.error-text h3[data-v-6c17fdd6]{font-size:1.25rem;font-weight:600;margin-bottom:.5rem;color:hsl(var(--destructive))}.loader-container[data-v-6c17fdd6]{display:flex;justify-content:center;padding:5rem 0}.mt-4[data-v-6c17fdd6]{margin-top:2rem}.terminal-card[data-v-6c17fdd6]{display:flex;flex-direction:column;background:#09090b;border:1px solid hsl(var(--border));overflow:hidden;padding:0}.terminal-header[data-v-6c17fdd6]{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:hsl(var(--muted) / .5);border-bottom:1px solid hsl(var(--border) / .5);color:hsl(var(--muted-foreground))}.terminal-header h3[data-v-6c17fdd6]{font-size:.95rem;font-weight:600;color:hsl(var(--foreground));letter-spacing:.025em;margin:0}.cli-chips[data-v-6c17fdd6]{display:flex;gap:.5rem;margin:0 1rem;overflow-x:auto;flex-grow:1;padding-bottom:6px;padding-top:4px}.cli-chips[data-v-6c17fdd6]::-webkit-scrollbar{height:4px}.cli-chips[data-v-6c17fdd6]::-webkit-scrollbar-thumb{background:hsl(var(--primary) / .5);border-radius:4px}.cli-chip[data-v-6c17fdd6]{background:hsl(var(--primary) / .2);color:hsl(var(--primary));border:2px solid hsl(var(--primary) / .6);border-radius:8px;padding:.5rem 1.25rem;font-size:1rem;font-family:var(--font-mono);font-weight:800;cursor:pointer;white-space:nowrap;transition:all .2s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 2px 8px #00000026}.cli-chip[data-v-6c17fdd6]:hover{background:hsl(var(--primary) / .35);border-color:hsl(var(--primary));transform:translateY(-3px);box-shadow:0 6px 16px #0000004d}.terminal-icon[data-v-6c17fdd6]{color:hsl(var(--primary))}.btn-clear[data-v-6c17fdd6]{background:transparent;border:none;color:hsl(var(--muted-foreground));cursor:pointer;padding:.25rem;border-radius:.25rem;transition:color .15s,background-color .15s;display:flex;align-items:center;justify-content:center}.btn-clear[data-v-6c17fdd6]:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.terminal-body[data-v-6c17fdd6]{padding:1rem;height:75vh;min-height:500px;overflow-y:auto;overflow-x:auto;font-family:var(--font-mono);font-size:.85rem;line-height:1.5;background:transparent}.terminal-body[data-v-6c17fdd6]::-webkit-scrollbar{width:8px;height:8px}.terminal-body[data-v-6c17fdd6]::-webkit-scrollbar-track{background:transparent}.terminal-body[data-v-6c17fdd6]::-webkit-scrollbar-thumb{background:hsl(var(--muted));border-radius:4px}.cli-line[data-v-6c17fdd6]{margin-bottom:.5rem}.cli-line pre[data-v-6c17fdd6]{margin:0;font-family:inherit;white-space:pre}.cli-input[data-v-6c17fdd6]{color:hsl(var(--foreground));font-weight:600}.cli-output[data-v-6c17fdd6]{color:hsl(var(--muted-foreground))}.cli-error[data-v-6c17fdd6]{color:hsl(var(--destructive))}.cli-system[data-v-6c17fdd6]{color:hsl(var(--primary));opacity:.8;font-style:italic}.terminal-input-form[data-v-6c17fdd6]{display:flex;align-items:center;padding:.75rem 1rem;background:transparent;border-top:1px solid hsl(var(--border) / .3)}.prompt[data-v-6c17fdd6]{color:hsl(var(--teal));font-family:var(--font-mono);font-weight:700;margin-right:.75rem;-webkit-user-select:none;user-select:none}.terminal-input-form input[data-v-6c17fdd6]{flex-grow:1;background:transparent;border:none;color:hsl(var(--foreground));font-family:var(--font-mono);font-size:.9rem;outline:none}.terminal-input-form input[data-v-6c17fdd6]:focus{outline:none}.terminal-input-form input[data-v-6c17fdd6]:disabled{opacity:.5;cursor:not-allowed}.cursor-blink[data-v-6c17fdd6]{animation:blink-6c17fdd6 1s step-end infinite}@keyframes blink-6c17fdd6{0%,to{opacity:1}50%{opacity:0}}.chip-destructive[data-v-6c17fdd6]{color:hsl(var(--destructive));border-color:hsl(var(--destructive) / .6);background:hsl(var(--destructive) / .1)}.chip-destructive[data-v-6c17fdd6]:hover{background:hsl(var(--destructive) / .2);border-color:hsl(var(--destructive));box-shadow:0 6px 16px hsl(var(--destructive) / .3)}.modal-overlay[data-v-6c17fdd6]{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:1000;display:flex;align-items:center;justify-content:center;background:hsl(var(--background) / .5)}.glass-panel[data-v-6c17fdd6]{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.modal-content[data-v-6c17fdd6]{background:hsl(var(--card));border:1px solid hsl(var(--border) / .7);border-radius:var(--radius);box-shadow:0 20px 50px #00000080;width:90%;max-width:500px;overflow:hidden}.modal-header[data-v-6c17fdd6]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid hsl(var(--border) / .5)}.modal-header h2[data-v-6c17fdd6]{font-size:1.25rem;font-weight:600;margin:0}.btn-close[data-v-6c17fdd6]{background:transparent;border:none;color:hsl(var(--muted-foreground));cursor:pointer;padding:.25rem;border-radius:4px;transition:all .2s;display:flex;align-items:center;justify-content:center}.btn-close[data-v-6c17fdd6]:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.modal-body[data-v-6c17fdd6]{padding:1.5rem}.detail-grid[data-v-6c17fdd6]{display:flex;flex-direction:column;gap:.75rem}.detail-row[data-v-6c17fdd6]{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:hsl(var(--muted) / .3);border:1px solid hsl(var(--border) / .5);border-radius:var(--radius)}.detail-label[data-v-6c17fdd6]{font-weight:600;color:hsl(var(--foreground));text-transform:capitalize}.legend-row[data-v-6c17fdd6]{display:flex;align-items:center;font-size:1.05rem}.legend-text strong[data-v-6c17fdd6]{color:hsl(var(--foreground));font-family:var(--font-mono);margin-right:.25rem}.interactive-card[data-v-6c17fdd6]{cursor:pointer;background:hsl(var(--card));border:1px solid hsl(var(--border));text-align:left;transition:all .2s cubic-bezier(.175,.885,.32,1.275);padding:1.5rem;border-radius:var(--radius)}.interactive-card[data-v-6c17fdd6]:hover{transform:translateY(-2px);border-color:hsl(var(--primary) / .5)}.interactive-card[data-v-6c17fdd6]:active{transform:scale(.98);box-shadow:0 0 15px hsl(var(--primary) / .3)}.animate-zoom-in[data-v-6c17fdd6]{animation:zoom-in-6c17fdd6 .2s cubic-bezier(.175,.885,.32,1.275)}@keyframes zoom-in-6c17fdd6{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.mono-code[data-v-6c17fdd6]{font-family:var(--font-mono);background:hsl(var(--muted));padding:.1rem .3rem;border-radius:4px}.mb-3[data-v-6c17fdd6]{margin-bottom:.75rem}.page-header h1[data-v-41a0b48c]{background:linear-gradient(to right,hsl(var(--primary)),hsl(var(--teal)));-webkit-background-clip:text;-webkit-text-fill-color:transparent;display:inline-block}.builder-layout[data-v-41a0b48c]{display:grid;grid-template-columns:3fr 2fr;gap:1.5rem;align-items:flex-start}.panel-title[data-v-41a0b48c]{font-size:1.15rem;font-weight:700;color:hsl(var(--foreground));border-bottom:2px solid hsl(var(--border) / .4);padding-bottom:.75rem;margin-bottom:1.25rem}.glass-panel[data-v-41a0b48c]{background:hsl(var(--card) / .6);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid hsl(var(--border) / .5);box-shadow:0 8px 32px #0000004d}.detail-label[data-v-41a0b48c]{font-size:.75rem;font-weight:700;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.08em}.cli-input[data-v-41a0b48c]{background:hsl(var(--background) / .8);border:1px solid hsl(var(--border));padding:.6rem .85rem;border-radius:var(--radius);color:hsl(var(--foreground));font-size:.95rem;outline:none}.cli-input[data-v-41a0b48c]:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 2px hsl(var(--primary) / .2)}.field-tree[data-v-41a0b48c]{display:flex;flex-direction:column;gap:.5rem}.field-item[data-v-41a0b48c]{padding:.85rem 1.25rem;background:hsl(var(--muted) / .15);border:1px solid hsl(var(--border) / .4);border-left:4px solid hsl(var(--muted));border-radius:var(--radius)}.fluid-hover[data-v-41a0b48c]{transition:all .25s cubic-bezier(.4,0,.2,1)}.fluid-hover[data-v-41a0b48c]:hover{border-left-color:hsl(var(--primary));background:hsl(var(--muted) / .3);transform:translate(4px);box-shadow:-4px 4px 12px #0000001a}.field-type[data-v-41a0b48c]{font-size:.7rem;padding:.2rem .6rem;border-radius:999px;border:1px solid currentColor;text-transform:uppercase;font-weight:800;letter-spacing:.05em;margin-left:.5rem}.type-text[data-v-41a0b48c]{color:hsl(var(--destructive));background:hsl(var(--destructive)/.05)}.type-keyword[data-v-41a0b48c]{color:hsl(var(--teal));background:hsl(var(--teal)/.05)}.type-object[data-v-41a0b48c],.type-nested[data-v-41a0b48c]{color:hsl(var(--primary));background:hsl(var(--primary)/.05)}.type-date[data-v-41a0b48c]{color:#8b5cf6;background:#8b5cf60d}.type-long[data-v-41a0b48c],.type-integer[data-v-41a0b48c],.type-float[data-v-41a0b48c],.type-double[data-v-41a0b48c]{color:#eab308;background:#eab3080d}.tactile-btn[data-v-41a0b48c]{transition:all .15s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 14px #0003}.tactile-btn[data-v-41a0b48c]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px rgba(var(--primary),.23)}.tactile-btn[data-v-41a0b48c]:active:not(:disabled){transform:translateY(1px) scale(.97);box-shadow:0 2px 8px #0000004d}.btn-icon[data-v-41a0b48c]{background:transparent;border:none;color:hsl(var(--muted-foreground));cursor:pointer;padding:.35rem;border-radius:var(--radius);transition:all .2s}.btn-icon[data-v-41a0b48c]:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.tactile-btn-danger[data-v-41a0b48c]:hover{color:hsl(var(--destructive));background:hsl(var(--destructive) / .15);box-shadow:0 0 12px hsl(var(--destructive) / .3)}.modal-overlay[data-v-41a0b48c]{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}
File without changes