@ashlr/hub 3.7.0 → 3.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/CHANGELOG.md +257 -0
  2. package/dist/build-identity.json +2 -2
  3. package/dist/cli/resource-profile.js +95 -21
  4. package/dist/cli/resource-profile.js.map +1 -1
  5. package/dist/core/policy/local-only.d.ts +142 -2
  6. package/dist/core/policy/local-only.js +204 -15
  7. package/dist/core/policy/local-only.js.map +1 -1
  8. package/dist/core/resources/native-profile.d.ts +56 -0
  9. package/dist/core/resources/native-profile.js +368 -6
  10. package/dist/core/resources/native-profile.js.map +1 -1
  11. package/dist/core/run/budget.d.ts +22 -8
  12. package/dist/core/run/budget.js +80 -12
  13. package/dist/core/run/budget.js.map +1 -1
  14. package/dist/core/run/model-catalog.js +8 -1
  15. package/dist/core/run/model-catalog.js.map +1 -1
  16. package/dist/core/run/sandboxed-engine.js +3 -3
  17. package/dist/core/run/sandboxed-engine.js.map +1 -1
  18. package/dist/core/universe/builtins/preparation/manifest.json +1 -1
  19. package/dist/core/universe/builtins/preparation/preparation-bridge.mjs +69 -10
  20. package/dist/core/universe/builtins/preparation/preparation-verification-fixtures.mjs +68 -9
  21. package/dist/core/verse/adapters/claude.d.ts +49 -2
  22. package/dist/core/verse/adapters/claude.js +317 -56
  23. package/dist/core/verse/adapters/claude.js.map +1 -1
  24. package/dist/core/verse/adapters/codex.d.ts +81 -5
  25. package/dist/core/verse/adapters/codex.js +409 -47
  26. package/dist/core/verse/adapters/codex.js.map +1 -1
  27. package/dist/core/verse/adapters/grok.d.ts +13 -1
  28. package/dist/core/verse/adapters/grok.js +28 -2
  29. package/dist/core/verse/adapters/grok.js.map +1 -1
  30. package/dist/core/verse/adapters/index.d.ts +32 -0
  31. package/dist/core/verse/adapters/index.js +2 -0
  32. package/dist/core/verse/adapters/index.js.map +1 -1
  33. package/dist/core/verse/codex-rollout.d.ts +284 -0
  34. package/dist/core/verse/codex-rollout.js +786 -0
  35. package/dist/core/verse/codex-rollout.js.map +1 -0
  36. package/dist/core/verse/context-fit.d.ts +63 -0
  37. package/dist/core/verse/context-fit.js +355 -0
  38. package/dist/core/verse/context-fit.js.map +1 -0
  39. package/dist/core/verse/context-math.d.ts +215 -0
  40. package/dist/core/verse/context-math.js +365 -0
  41. package/dist/core/verse/context-math.js.map +1 -0
  42. package/dist/core/verse/local-models.d.ts +137 -1
  43. package/dist/core/verse/local-models.js +209 -5
  44. package/dist/core/verse/local-models.js.map +1 -1
  45. package/dist/core/verse/model-windows.d.ts +217 -0
  46. package/dist/core/verse/model-windows.js +616 -0
  47. package/dist/core/verse/model-windows.js.map +1 -0
  48. package/dist/core/verse/preferences.d.ts +123 -0
  49. package/dist/core/verse/preferences.js +403 -0
  50. package/dist/core/verse/preferences.js.map +1 -0
  51. package/dist/core/verse/project-memory.d.ts +112 -0
  52. package/dist/core/verse/project-memory.js +295 -0
  53. package/dist/core/verse/project-memory.js.map +1 -0
  54. package/dist/core/verse/seats.d.ts +106 -4
  55. package/dist/core/verse/seats.js +291 -89
  56. package/dist/core/verse/seats.js.map +1 -1
  57. package/dist/core/verse/session-engine.d.ts +117 -2
  58. package/dist/core/verse/session-engine.js +763 -65
  59. package/dist/core/verse/session-engine.js.map +1 -1
  60. package/dist/core/verse/session-handoff.d.ts +94 -0
  61. package/dist/core/verse/session-handoff.js +551 -0
  62. package/dist/core/verse/session-handoff.js.map +1 -0
  63. package/dist/core/verse/session-search.d.ts +63 -0
  64. package/dist/core/verse/session-search.js +213 -0
  65. package/dist/core/verse/session-search.js.map +1 -0
  66. package/dist/core/verse/session-store.d.ts +16 -2
  67. package/dist/core/verse/session-store.js +80 -6
  68. package/dist/core/verse/session-store.js.map +1 -1
  69. package/dist/core/verse/types.d.ts +333 -1
  70. package/dist/core/verse/types.js +54 -2
  71. package/dist/core/verse/types.js.map +1 -1
  72. package/dist/core/verse/verse-api.d.ts +40 -5
  73. package/dist/core/verse/verse-api.js +724 -25
  74. package/dist/core/verse/verse-api.js.map +1 -1
  75. package/dist/core/web/api.d.ts +14 -4
  76. package/dist/core/web/api.js +26 -11
  77. package/dist/core/web/api.js.map +1 -1
  78. package/dist/core/web/public/next/assets/{App-vtaHB9mp.js → App-XURmiAAp.js} +5 -5
  79. package/dist/core/web/public/next/assets/{App-vtaHB9mp.js.map → App-XURmiAAp.js.map} +1 -1
  80. package/dist/core/web/public/next/assets/{ApprovalsSection-B-bFJ0I9.js → ApprovalsSection-BriUzoZc.js} +2 -2
  81. package/dist/core/web/public/next/assets/{ApprovalsSection-B-bFJ0I9.js.map → ApprovalsSection-BriUzoZc.js.map} +1 -1
  82. package/dist/core/web/public/next/assets/AutonomySection-C4GBsQVc.js +2 -0
  83. package/dist/core/web/public/next/assets/{AutonomySection-DoqmsCjw.js.map → AutonomySection-C4GBsQVc.js.map} +1 -1
  84. package/dist/core/web/public/next/assets/ChatSection-BpOBOUvg.css +1 -0
  85. package/dist/core/web/public/next/assets/ChatSection-hlgPBRco.js +84 -0
  86. package/dist/core/web/public/next/assets/ChatSection-hlgPBRco.js.map +1 -0
  87. package/dist/core/web/public/next/assets/ConfirmDialog-BdQYI-Ng.js +2 -0
  88. package/dist/core/web/public/next/assets/ConfirmDialog-BdQYI-Ng.js.map +1 -0
  89. package/dist/core/web/public/next/assets/{Dialog-CPM9JxBc.js → Dialog-BxdIfmFH.js} +2 -2
  90. package/dist/core/web/public/next/assets/{Dialog-CPM9JxBc.js.map → Dialog-BxdIfmFH.js.map} +1 -1
  91. package/dist/core/web/public/next/assets/{DiffViewer-B84qVef9.js → DiffViewer-DmeRWuc4.js} +2 -2
  92. package/dist/core/web/public/next/assets/{DiffViewer-B84qVef9.js.map → DiffViewer-DmeRWuc4.js.map} +1 -1
  93. package/dist/core/web/public/next/assets/{McpSection-CEUpV_5X.js → McpSection-q34T7Tho.js} +2 -2
  94. package/dist/core/web/public/next/assets/{McpSection-CEUpV_5X.js.map → McpSection-q34T7Tho.js.map} +1 -1
  95. package/dist/core/web/public/next/assets/{MutationTokenDialog-DA8t97XT.js → MutationTokenDialog-CFAkwOEt.js} +2 -2
  96. package/dist/core/web/public/next/assets/{MutationTokenDialog-DA8t97XT.js.map → MutationTokenDialog-CFAkwOEt.js.map} +1 -1
  97. package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-Bq7Vyud0.js → ResourcePoolConsoleApp-DHc8GFOY.js} +4 -4
  98. package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-Bq7Vyud0.js.map → ResourcePoolConsoleApp-DHc8GFOY.js.map} +1 -1
  99. package/dist/core/web/public/next/assets/{RouteErrorBoundary-Badio_uO.js → RouteErrorBoundary-ZL9F4qUn.js} +2 -2
  100. package/dist/core/web/public/next/assets/{RouteErrorBoundary-Badio_uO.js.map → RouteErrorBoundary-ZL9F4qUn.js.map} +1 -1
  101. package/dist/core/web/public/next/assets/{Meter-CLcr-4wS.css → Segmented-8cf0Fypn.css} +1 -1
  102. package/dist/core/web/public/next/assets/{Meter--h3MmZS-.js → Segmented-DbRjVye3.js} +2 -2
  103. package/dist/core/web/public/next/assets/Segmented-DbRjVye3.js.map +1 -0
  104. package/dist/core/web/public/next/assets/SettingsSection-nJGGGYqv.js +2 -0
  105. package/dist/core/web/public/next/assets/{SettingsSection-BwrpQlpP.js.map → SettingsSection-nJGGGYqv.js.map} +1 -1
  106. package/dist/core/web/public/next/assets/UniverseConsoleApp-6GJydgo4.js +2 -0
  107. package/dist/core/web/public/next/assets/{UniverseConsoleApp-_FSohAdN.js.map → UniverseConsoleApp-6GJydgo4.js.map} +1 -1
  108. package/dist/core/web/public/next/assets/{UniverseView-DqcXbed4.js → UniverseView-DLDtNYL8.js} +2 -2
  109. package/dist/core/web/public/next/assets/{UniverseView-DqcXbed4.js.map → UniverseView-DLDtNYL8.js.map} +1 -1
  110. package/dist/core/web/public/next/assets/UsageSection-Cf9d9iFH.js +2 -0
  111. package/dist/core/web/public/next/assets/UsageSection-Cf9d9iFH.js.map +1 -0
  112. package/dist/core/web/public/next/assets/VerseConsoleApp-DsdKQoTH.css +1 -0
  113. package/dist/core/web/public/next/assets/VerseConsoleApp-y0uOHixd.js +3 -0
  114. package/dist/core/web/public/next/assets/VerseConsoleApp-y0uOHixd.js.map +1 -0
  115. package/dist/core/web/public/next/assets/{charts-CTZJ-JrH.js → charts-CVooqJWN.js} +2 -2
  116. package/dist/core/web/public/next/assets/{charts-CTZJ-JrH.js.map → charts-CVooqJWN.js.map} +1 -1
  117. package/dist/core/web/public/next/assets/context-model-Bqv8DVuH.js +2 -0
  118. package/dist/core/web/public/next/assets/context-model-Bqv8DVuH.js.map +1 -0
  119. package/dist/core/web/public/next/assets/global-eaY9GyX3.js +2 -0
  120. package/dist/core/web/public/next/assets/global-eaY9GyX3.js.map +1 -0
  121. package/dist/core/web/public/next/assets/{icons-D9vlf85u.js → icons-vex8rclC.js} +2 -2
  122. package/dist/core/web/public/next/assets/{icons-D9vlf85u.js.map → icons-vex8rclC.js.map} +1 -1
  123. package/dist/core/web/public/next/assets/{index-CZamKRUg.js → index-D2Eik-zt.js} +3 -3
  124. package/dist/core/web/public/next/assets/{index-CZamKRUg.js.map → index-D2Eik-zt.js.map} +1 -1
  125. package/dist/core/web/public/next/assets/{queries-B8eBnFox.js → queries-bAYU0VNy.js} +2 -2
  126. package/dist/core/web/public/next/assets/{queries-B8eBnFox.js.map → queries-bAYU0VNy.js.map} +1 -1
  127. package/dist/core/web/public/next/assets/use-guarded-action-C7QrP7Yp.js +2 -0
  128. package/dist/core/web/public/next/assets/{use-guarded-action-bzrVVAYq.js.map → use-guarded-action-C7QrP7Yp.js.map} +1 -1
  129. package/dist/core/web/public/next/assets/verse-model-TfDk9cky.js +2 -0
  130. package/dist/core/web/public/next/assets/verse-model-TfDk9cky.js.map +1 -0
  131. package/dist/core/web/public/next/assets/{workspace-model-v0a1gl-C.js → workspace-model-CHol5RVp.js} +2 -2
  132. package/dist/core/web/public/next/assets/{workspace-model-v0a1gl-C.js.map → workspace-model-CHol5RVp.js.map} +1 -1
  133. package/dist/core/web/public/next/index.html +1 -1
  134. package/dist/release-dependency-inventory.json +1 -1
  135. package/docs/README.md +1 -0
  136. package/package.json +1 -1
  137. package/dist/core/web/public/next/assets/AutonomySection-DoqmsCjw.js +0 -2
  138. package/dist/core/web/public/next/assets/ChatSection-BfnLe5dT.css +0 -1
  139. package/dist/core/web/public/next/assets/ChatSection-vNPIJffd.js +0 -80
  140. package/dist/core/web/public/next/assets/ChatSection-vNPIJffd.js.map +0 -1
  141. package/dist/core/web/public/next/assets/ConfirmDialog-Dd2APQhB.js +0 -2
  142. package/dist/core/web/public/next/assets/ConfirmDialog-Dd2APQhB.js.map +0 -1
  143. package/dist/core/web/public/next/assets/Meter--h3MmZS-.js.map +0 -1
  144. package/dist/core/web/public/next/assets/SettingsSection-BwrpQlpP.js +0 -2
  145. package/dist/core/web/public/next/assets/UniverseConsoleApp-_FSohAdN.js +0 -2
  146. package/dist/core/web/public/next/assets/UsageSection-Bq6Daaby.js +0 -2
  147. package/dist/core/web/public/next/assets/UsageSection-Bq6Daaby.js.map +0 -1
  148. package/dist/core/web/public/next/assets/VerseConsoleApp-CMkCizvL.css +0 -1
  149. package/dist/core/web/public/next/assets/VerseConsoleApp-CsIQv9id.js +0 -3
  150. package/dist/core/web/public/next/assets/VerseConsoleApp-CsIQv9id.js.map +0 -1
  151. package/dist/core/web/public/next/assets/global-D6bTxIRn.js +0 -2
  152. package/dist/core/web/public/next/assets/global-D6bTxIRn.js.map +0 -1
  153. package/dist/core/web/public/next/assets/use-guarded-action-bzrVVAYq.js +0 -2
  154. package/dist/core/web/public/next/assets/verse-model-CvtK6vP6.js +0 -2
  155. package/dist/core/web/public/next/assets/verse-model-CvtK6vP6.js.map +0 -1
@@ -0,0 +1 @@
1
+ ._button_12qr7_1{justify-content:center;align-items:center;gap:var(--space-2);height:var(--density-row);padding:0 var(--density-pad);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-sm-size);line-height:1;font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard), opacity var(--duration-fast) var(--ease-standard);background:0 0;border:1px solid #0000;display:inline-flex}._button_12qr7_1:disabled{cursor:not-allowed;opacity:.55}._glyph_12qr7_30{flex:none;justify-content:center;align-items:center;display:inline-flex}._sm_12qr7_37{height:var(--density-row-sm);padding:0 var(--space-2);font-size:var(--text-xs-size)}._block_12qr7_43{width:100%}._iconOnly_12qr7_48{width:var(--density-row);padding:0}._sm_12qr7_37._iconOnly_12qr7_48{width:var(--density-row-sm)}._ghost_12qr7_60{color:var(--text-secondary)}._ghost_12qr7_60:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}._ghost_12qr7_60:active:not(:disabled){background:var(--bg-active)}._subtle_12qr7_71{border-color:var(--border-default);background:var(--bg-surface);color:var(--text-primary)}._subtle_12qr7_71:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong)}._subtle_12qr7_71:active:not(:disabled){background:var(--bg-active)}._primary_12qr7_84{background:var(--accent-600);border-color:var(--accent-600);color:var(--text-on-accent)}._primary_12qr7_84:hover:not(:disabled){background:var(--accent-700);border-color:var(--accent-700)}._primary_12qr7_84:active:not(:disabled){background:var(--accent-700)}._danger_12qr7_99{border-color:var(--border-default);color:var(--status-danger-fg)}._danger_12qr7_99:hover:not(:disabled){background:var(--status-danger-bg);border-color:var(--status-danger-solid)}._danger_12qr7_99:active:not(:disabled){background:var(--status-danger-bg)}._button_12qr7_1[aria-pressed=true],._button_12qr7_1[aria-expanded=true]{background:var(--bg-selected);color:var(--text-primary)}._field_ki2n9_1{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}._label_ki2n9_8{font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-secondary);font-weight:var(--font-weight-medium)}._shell_ki2n9_15{align-items:center;gap:var(--space-1);height:var(--density-row);padding:0 var(--space-2);background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-sm);transition:border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);display:flex}._sm_ki2n9_29{height:var(--density-row-sm)}._shell_ki2n9_15:hover:not(:has(._input_ki2n9_33:disabled)){border-color:var(--border-strong)}._shell_ki2n9_15:has(._input_ki2n9_33:focus-visible){border-color:var(--border-focus);box-shadow:var(--shadow-focus-ring)}._invalid_ki2n9_50{border-color:var(--status-danger-solid)}._input_ki2n9_33{min-width:0;height:100%;color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-sm-size);background:0 0;border:none;flex:1}._input_ki2n9_33:focus,._input_ki2n9_33:focus-visible{box-shadow:none;outline:none}._input_ki2n9_33::placeholder{color:var(--text-tertiary)}._input_ki2n9_33:disabled{color:var(--text-disabled);cursor:not-allowed}._mono_ki2n9_80{font-family:var(--font-mono);font-size:var(--text-xs-size)}._prefix_ki2n9_85{color:var(--text-tertiary);font-size:var(--text-xs-size);white-space:nowrap}._hint_ki2n9_91{font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-tertiary)}._error_ki2n9_97{font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--status-danger-fg)}._field_1yhua_1{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}._label_1yhua_8{font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-secondary);font-weight:var(--font-weight-medium)}._shell_1yhua_15{height:var(--density-row);background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-sm);transition:border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);align-items:center;display:flex;position:relative}._sm_1yhua_28{height:var(--density-row-sm)}._shell_1yhua_15:hover{border-color:var(--border-strong)}._shell_1yhua_15:has(._select_1yhua_42:focus-visible){border-color:var(--border-focus);box-shadow:var(--shadow-focus-ring)}._select_1yhua_42{appearance:none;width:100%;height:100%;padding:0 var(--space-6) 0 var(--space-2);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-sm-size);cursor:pointer;background:0 0;border:none}._select_1yhua_42:focus,._select_1yhua_42:focus-visible{box-shadow:none;outline:none}._select_1yhua_42:disabled{color:var(--text-disabled);cursor:not-allowed}._chevron_1yhua_72{right:var(--space-2);color:var(--text-tertiary);pointer-events:none;position:absolute}._hint_1yhua_79{font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-tertiary)}._field_228wn_1{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}._label_228wn_8{font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-secondary);font-weight:var(--font-weight-medium)}._row_228wn_15{align-items:center;gap:var(--space-3);height:var(--density-row);display:flex}._value_228wn_22{text-align:right;min-width:4ch;font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:var(--text-xs-size);color:var(--text-secondary);flex:none}._input_228wn_32{appearance:none;cursor:pointer;background:0 0;flex:1;min-width:0;height:16px}._input_228wn_32:focus{outline:none}._input_228wn_32:focus-visible{box-shadow:none}._input_228wn_32::-webkit-slider-runnable-track{border-radius:var(--radius-full);background:var(--slider-track-image,linear-gradient(to right, var(--accent-500) var(--slider-fill,0%), var(--bg-active) var(--slider-fill,0%)));height:4px}._input_228wn_32::-moz-range-track{border-radius:var(--radius-full);background:var(--slider-track-image,linear-gradient(to right, var(--accent-500) var(--slider-fill,0%), var(--bg-active) var(--slider-fill,0%)));height:4px}._input_228wn_32::-webkit-slider-thumb{appearance:none;border-radius:var(--radius-full);background:var(--bg-surface);border:2px solid var(--accent-500);width:12px;height:12px;transition:border-color var(--duration-fast) var(--ease-standard);margin-top:-4px}._input_228wn_32::-moz-range-thumb{border-radius:var(--radius-full);background:var(--bg-surface);border:2px solid var(--accent-500);width:12px;height:12px}._input_228wn_32:focus-visible::-webkit-slider-thumb{box-shadow:var(--shadow-focus-ring)}._input_228wn_32:focus-visible::-moz-range-thumb{box-shadow:var(--shadow-focus-ring)}._input_228wn_32:disabled{cursor:not-allowed;opacity:.55}._wrapper_1xq82_1{align-items:center;gap:var(--space-2);cursor:pointer;display:inline-flex}._label_1xq82_8{font-size:var(--text-sm-size);color:var(--text-primary)}._track_1xq82_13{border:1px solid var(--border-strong);border-radius:var(--radius-full);background:var(--bg-active);cursor:pointer;width:34px;height:18px;transition:background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);flex:none;padding:0;position:relative}._track_1xq82_13:hover:not(:disabled){border-color:var(--text-tertiary)}._track_1xq82_13[aria-checked=true]{background:var(--accent-600);border-color:var(--accent-600)}._track_1xq82_13[aria-checked=true]:hover:not(:disabled){background:var(--accent-700);border-color:var(--accent-700)}._track_1xq82_13:active:not(:disabled) ._knob_1xq82_44{width:14px}._track_1xq82_13[aria-checked=true]:active:not(:disabled) ._knob_1xq82_44{transform:translate(14px)}._track_1xq82_13:disabled{cursor:not-allowed;opacity:.55}._knob_1xq82_44{border-radius:var(--radius-full);background:var(--bg-surface);width:12px;height:12px;transition:transform var(--duration-fast) var(--ease-standard), width var(--duration-fast) var(--ease-standard);position:absolute;top:2px;left:2px}._track_1xq82_13[aria-checked=true] ._knob_1xq82_44{background:var(--accent-contrast);transform:translate(16px)}._tag_2eqdv_1{align-items:center;gap:var(--space-1);max-width:100%;height:var(--density-row-sm);padding:0 var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);background:var(--bg-hover);color:var(--text-secondary);font-size:var(--text-xs-size);white-space:nowrap;text-overflow:ellipsis;line-height:1;display:inline-flex;overflow:hidden}._sm_2eqdv_19{height:calc(var(--density-row-sm) - var(--space-2));padding:0 var(--space-1);font-size:var(--text-2xs-size)}._mono_2eqdv_25{font-family:var(--font-mono);font-size:var(--text-2xs-size)}._dot_2eqdv_30{border-radius:var(--radius-full);background:var(--status-neutral-solid);flex:none;width:6px;height:6px}._marker_2eqdv_38{width:2px;height:100%;min-height:var(--engine-marker-h);border-radius:var(--radius-full);flex:none;display:inline-block}._card_13g9r_14{z-index:var(--z-dialog);left:calc(var(--rail-width) + var(--space-5));right:auto;bottom:calc(var(--space-5) + env(safe-area-inset-bottom,0px));width:min(420px, calc(100vw - var(--rail-width) - var(--space-5) * 2));max-height:min(640px, calc(100vh - var(--space-8)));background:var(--bg-surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-dialog);animation:_onboarding-in_13g9r_1 var(--duration-base) var(--ease-decelerate);flex-direction:column;display:flex;position:fixed;overflow:hidden}@keyframes _onboarding-in_13g9r_1{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}._head_13g9r_56{align-items:flex-start;gap:var(--space-2);padding:var(--space-4) var(--space-4) var(--space-3);border-bottom:1px solid var(--border-subtle);display:flex}._headText_13g9r_64{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}._eyebrow_13g9r_72{font-family:var(--font-display);font-size:var(--text-2xs-size);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-tertiary)}._title_13g9r_80{font-family:var(--font-display);font-size:var(--text-md-size);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-display);color:var(--text-primary)}._subtitle_13g9r_88{font-size:var(--text-xs-size);line-height:var(--text-xs-line-relaxed);color:var(--text-secondary)}._body_13g9r_96{min-height:0;padding:var(--space-4);gap:var(--space-3);flex-direction:column;flex:1;align-items:flex-start;display:flex;overflow-y:auto}._lead_13g9r_107{font-size:var(--text-sm-size);line-height:var(--text-sm-line-relaxed);color:var(--text-primary)}._aside_13g9r_113,._caveat_13g9r_114{font-size:var(--text-xs-size);line-height:var(--text-xs-line-relaxed);color:var(--text-tertiary)}._caveat_13g9r_114{border-left:2px solid var(--border-strong);padding-left:var(--space-3)}._kbd_13g9r_125{font-family:var(--font-mono);font-size:var(--text-2xs-size);border:1px solid var(--border-default);border-radius:var(--radius-xs);background:var(--bg-surface);color:var(--text-secondary);white-space:nowrap;padding:1px 5px}._sections_13g9r_138,._findings_13g9r_139{flex-direction:column;width:100%;margin:0;padding:0;list-style:none;display:flex}._sectionRow_13g9r_148{align-items:flex-start;gap:var(--space-3);padding:var(--space-2) 0;border-top:1px solid var(--border-subtle);display:flex}._sectionRow_13g9r_148:first-child{border-top:none}._sectionIcon_13g9r_160,._localIcon_13g9r_161{width:var(--control-h-xs);height:var(--control-h-xs);color:var(--text-tertiary);flex:none;justify-content:center;align-items:center;display:inline-flex}._sectionText_13g9r_173{flex-direction:column;gap:2px;min-width:0;display:flex}._sectionName_13g9r_180{font-family:var(--font-display);font-size:var(--text-xs-size);font-weight:var(--font-weight-semibold);color:var(--text-primary);align-items:center;gap:var(--space-2);display:inline-flex}._sectionBlurb_13g9r_190{font-size:var(--text-xs-size);line-height:var(--text-xs-line-relaxed);color:var(--text-secondary)}._finding_13g9r_139{gap:var(--space-1);padding:var(--space-3) 0;border-top:1px solid var(--border-subtle);flex-direction:column;display:flex}._finding_13g9r_139:first-child{border-top:none}._findingHead_13g9r_210{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}._stopName_13g9r_218{font-family:var(--font-display);font-size:var(--text-sm-size);font-weight:var(--font-weight-semibold);color:var(--text-primary)}._findingDetail_13g9r_225{font-size:var(--text-xs-size);line-height:var(--text-xs-line-relaxed);color:var(--text-secondary)}._findingNote_13g9r_231{font-size:var(--text-xs-size);line-height:var(--text-xs-line-relaxed);color:var(--text-tertiary)}._findingFix_13g9r_237{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;margin-top:2px;display:flex}._fixLabel_13g9r_245{font-family:var(--font-display);font-size:var(--text-2xs-size);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-tertiary);flex:none}._fixText_13g9r_254{font-size:var(--text-xs-size);line-height:var(--text-xs-line-relaxed);color:var(--text-secondary)}._code_13g9r_260{font-family:var(--font-mono);font-size:var(--text-xs-size);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);background:var(--bg-code,var(--bg-surface));color:var(--text-primary);overflow-wrap:anywhere;padding:2px 6px}._tone_13g9r_276{flex:none;align-items:center;gap:5px;display:inline-flex}._toneLabel_13g9r_283{font-family:var(--font-display);font-size:var(--text-2xs-size);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-secondary)}._tone_13g9r_276[data-tone=ok]{color:var(--status-success-fg,var(--text-secondary))}._tone_13g9r_276[data-tone=attention]{color:var(--status-warning-fg,var(--text-secondary))}._tone_13g9r_276[data-tone=unknown]{color:var(--text-tertiary)}._foot_13g9r_305{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-subtle);background:var(--bg-surface);display:flex}._pips_13g9r_315{gap:5px;margin:0;padding:0;list-style:none;display:flex}._pip_13g9r_315{background:var(--border-default);border-radius:1px;width:14px;height:2px}._pip_13g9r_315[data-state=current]{background:var(--accent-500)}._pip_13g9r_315[data-state=done]{background:var(--border-strong)}._actions_13g9r_338{align-items:center;gap:var(--space-2);display:flex}@media (max-width:900px){._card_13g9r_14{left:calc(var(--rail-width) + var(--space-3));width:min(420px, calc(100vw - var(--rail-width) - var(--space-3) * 2));right:auto}}._shell_1retv_6{grid-template-columns:var(--rail-width) minmax(0, 1fr);background:var(--bg-canvas);height:100%;min-height:0;color:var(--text-primary);font-family:var(--font-ui);display:grid}._shell_1retv_6>*{min-width:0;min-height:0}._shell_1retv_6[data-rail=expanded]{--rail-width:216px}._rail_1retv_45{align-items:center;gap:var(--space-2);padding:var(--space-3) 0;border-right:1px solid var(--border-subtle);background:var(--bg-canvas);padding-top:calc(var(--space-3) + var(--app-titlebar-height,0px));flex-direction:column;display:flex;position:relative}._rail_1retv_45[data-rail=expanded]{padding-left:var(--space-2);padding-right:var(--space-2);align-items:stretch}._railDragStrip_1retv_79{width:auto;height:var(--app-titlebar-height,0px);position:absolute;top:0;left:0;right:0}._mark_1retv_88{width:32px;height:32px;margin-bottom:var(--space-2);color:var(--accent-500);justify-content:center;align-items:center;display:flex}._railList_1retv_98{flex-direction:column;align-items:center;gap:2px;margin:0;padding:0;list-style:none;display:flex}._railFoot_1retv_107{flex-direction:column;align-items:center;gap:2px;margin-top:auto;display:flex}._rail_1retv_45[data-rail=expanded] ._railList_1retv_98,._rail_1retv_45[data-rail=expanded] ._railFoot_1retv_107{align-self:stretch;align-items:stretch}._rail_1retv_45[data-rail=expanded] ._railList_1retv_98>li{display:flex}._railButton_1retv_122{width:calc(var(--control-h) + var(--space-1));height:calc(var(--control-h) + var(--space-1));border-radius:var(--radius-sm);color:var(--text-tertiary);transition:color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard);justify-content:center;align-items:center;display:flex;position:relative}._railButton_1retv_122:hover{color:var(--text-primary);background:var(--bg-hover)}._rail_1retv_45[data-rail=expanded] ._railButton_1retv_122{justify-content:flex-start;gap:var(--space-2);width:100%;padding:0 var(--space-2)}._railIcon_1retv_148{flex:none;justify-content:center;align-items:center;width:16px;height:16px;display:flex;position:relative}._railLabel_1retv_158{text-overflow:ellipsis;white-space:nowrap;text-align:left;min-width:0;font-size:var(--text-sm-size);line-height:var(--text-sm-line);flex:auto;overflow:hidden}._railKey_1retv_171{font-family:var(--font-mono);font-size:var(--text-2xs-size,11px);color:var(--text-tertiary);flex:none}._railButton_1retv_122:hover ._railKey_1retv_171{color:var(--text-secondary)}._railButton_1retv_122:active{background:var(--bg-active)}._railButton_1retv_122[aria-current]{color:var(--text-primary)}._railButton_1retv_122[aria-current]:before{content:"";background:var(--accent-500);border-radius:1px;width:2px;height:56%;position:absolute;top:50%;left:-10px;transform:translateY(-50%)}._rail_1retv_45[data-rail=expanded] ._railButton_1retv_122[aria-current]:before{left:calc(var(--space-2) * -1)}._railDot_1retv_203{border-radius:var(--radius-full);background:var(--status-warning-solid);width:6px;height:6px;box-shadow:0 0 0 2px var(--bg-canvas);position:absolute;top:-3px;right:-3px}._section_1retv_215{background:var(--bg-surface);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}._section_1retv_215>*{min-height:0}._loading_1retv_225{color:var(--text-secondary);font-size:var(--text-sm-size);flex:1;justify-content:center;align-items:center;display:flex}._missing_1retv_234{max-width:56ch;padding:0 var(--space-6);gap:var(--space-3);margin:clamp(32px,12vh,120px) auto 0;display:grid}._missingTitle_1retv_241{font-family:var(--font-display);font-size:var(--text-xl-size);line-height:var(--text-xl-line);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-display,-.02em)}._missingBody_1retv_248,._missingDetail_1retv_249{color:var(--text-secondary);font-size:var(--text-sm-size);line-height:var(--text-sm-line)}._missingBody_1retv_248 code{font-size:var(--text-xs-size);color:var(--text-primary)}._missingDetail_1retv_249{padding-left:var(--space-3);border-left:2px solid var(--border-strong);color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--text-xs-size);overflow-wrap:anywhere}._shell_k4nf7_1{background:var(--bg-canvas);height:100dvh;min-height:100%;color:var(--text-primary);flex-direction:column;display:flex;overflow:hidden}._checking_k4nf7_2{padding:var(--space-8);color:var(--text-secondary)}
@@ -0,0 +1,3 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ApprovalsSection-BriUzoZc.js","assets/index-D2Eik-zt.js","assets/global-eaY9GyX3.js","assets/global-z-JfD3ow.css","assets/RouteErrorBoundary-ZL9F4qUn.js","assets/RouteErrorBoundary-ekyMXAK8.css","assets/queries-bAYU0VNy.js","assets/ConfirmDialog-BdQYI-Ng.js","assets/Dialog-BxdIfmFH.js","assets/Dialog-tQ8kFulD.css","assets/ConfirmDialog-Dx15x0Ho.css","assets/MutationTokenDialog-CFAkwOEt.js","assets/MutationTokenDialog-CrfJ0PdD.css","assets/DiffViewer-DmeRWuc4.js","assets/DiffViewer-C8HHTnVE.css","assets/format-BNYWGJat.js","assets/use-guarded-action-C7QrP7Yp.js","assets/ApprovalsSection-Su-NUTis.css","assets/AutonomySection-C4GBsQVc.js","assets/Segmented-DbRjVye3.js","assets/Segmented-8cf0Fypn.css","assets/fleet-model-ClBbQ0Uj.js","assets/workspace-model-CHol5RVp.js","assets/verse-model-TfDk9cky.js","assets/AutonomySection-CHjxJt2z.css","assets/ChatSection-hlgPBRco.js","assets/context-model-Bqv8DVuH.js","assets/ChatSection-BpOBOUvg.css","assets/McpSection-q34T7Tho.js","assets/McpSection-D88QlDpG.css","assets/SettingsSection-nJGGGYqv.js","assets/icons-vex8rclC.js","assets/SettingsSection-BII7TTSD.css","assets/UsageSection-Cf9d9iFH.js","assets/charts-CVooqJWN.js","assets/charts-CsrtT4rk.css","assets/UsageSection-DwgNOYvi.css"])))=>i.map(i=>d[i]);
2
+ import{a as e,i as t,n,o as r,t as i}from"./index-D2Eik-zt.js";import{D as a,L as o,P as s,g as c,j as l,l as u,lt as d,n as f,ot as ee,s as p,st as m,t as te,u as ne,v as re,x as ie}from"./global-eaY9GyX3.js";import"./Dialog-BxdIfmFH.js";import{n as ae,t as oe}from"./RouteErrorBoundary-ZL9F4qUn.js";import{u as se}from"./queries-bAYU0VNy.js";import{r as h}from"./Segmented-DbRjVye3.js";import{_ as ce,a as le,b as ue,c as de,d as fe,f as pe,g as me,i as he,n as ge,o as _e,t as ve,u as ye,v as be,x as xe}from"./icons-vex8rclC.js";var g=r(e(),1),Se=`ashlr:desktop-command`,Ce=[`open-settings`,`toggle-theme`];function we(e){if(e===`light`||e===`dark`)return e;try{return window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}catch{return`light`}}function Te(){return window.__ASHLR_DESKTOP__}function Ee(e){try{Te()?.reportTheme?.(we(e))}catch{}}function De(e){return typeof e==`string`&&Ce.includes(e)}function Oe(e){function t(t){let n=t.detail?.command;De(n)&&e(n)}return window.addEventListener(Se,t),()=>window.removeEventListener(Se,t)}var _=n(),ke=ge,Ae=de,je=fe,Me=ye,Ne=be,Pe=ce,Fe=me,Ie=ue,Le=le,Re=_e;function v({size:e=16,children:t,...n}){return(0,_.jsx)(`svg`,{viewBox:`0 0 16 16`,width:e,height:e,fill:`none`,stroke:`currentColor`,strokeWidth:1.5,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,focusable:`false`,...n,children:t})}function ze(e){return(0,_.jsxs)(v,{...e,children:[(0,_.jsx)(`rect`,{x:`2.5`,y:`3`,width:`11`,height:`10`,rx:`1.5`}),(0,_.jsx)(`path`,{d:`M10 3v10`})]})}function Be(e){return(0,_.jsxs)(v,{...e,children:[(0,_.jsx)(`rect`,{x:`2.5`,y:`3`,width:`11`,height:`10`,rx:`1.5`}),(0,_.jsx)(`path`,{d:`M6 3v10`})]})}function Ve({expanded:e=!1,...t}){return(0,_.jsxs)(v,{...t,children:[(0,_.jsx)(`rect`,{x:`2.5`,y:`3`,width:`11`,height:`10`,rx:`1.5`}),(0,_.jsx)(`path`,{d:`M6 3v10`}),e?(0,_.jsx)(`path`,{d:`M11.2 6.4 9.6 8l1.6 1.6`}):(0,_.jsx)(`path`,{d:`M9.4 6.4 11 8l-1.6 1.6`})]})}function He(e){return(0,_.jsxs)(v,{...e,children:[(0,_.jsx)(`path`,{d:`M6 1.8v3.2M10 1.8v3.2`}),(0,_.jsx)(`path`,{d:`M3.8 5h8.4v2.6a4.2 4.2 0 0 1-4.2 4.2 4.2 4.2 0 0 1-4.2-4.2V5Z`}),(0,_.jsx)(`path`,{d:`M8 11.8v2.4`})]})}function Ue(e){let{size:t=20,...n}=e;return(0,_.jsx)(`svg`,{viewBox:`0 0 32 32`,width:t,height:t,fill:`none`,stroke:`currentColor`,strokeWidth:1.8,strokeLinejoin:`round`,strokeLinecap:`round`,"aria-hidden":`true`,focusable:`false`,...n,children:(0,_.jsx)(`path`,{d:`m5 11 11-6 11 6-11 6Z M5 16l11 6 11-6 M5 21l11 6 11-6`})})}var We={chat:ke,autonomy:Ae,approvals:je,usage:Me,settings:Ne,mcp:He},y={button:`_button_12qr7_1`,glyph:`_glyph_12qr7_30`,sm:`_sm_12qr7_37`,block:`_block_12qr7_43`,iconOnly:`_iconOnly_12qr7_48`,ghost:`_ghost_12qr7_60`,subtle:`_subtle_12qr7_71`,primary:`_primary_12qr7_84`,danger:`_danger_12qr7_99`};function b({variant:e=`subtle`,size:t=`md`,icon:n,trailingIcon:r,block:i=!1,busy:a=!1,iconOnly:o=!1,className:s,children:c,disabled:l,type:u=`button`,...d}){let f=[y.button,y[e],y[t],o?y.iconOnly:``,i?y.block:``,s??``].filter(Boolean).join(` `);return(0,_.jsxs)(`button`,{type:u,className:f,disabled:l||a,"aria-busy":a||void 0,...d,children:[n?(0,_.jsx)(`span`,{className:y.glyph,children:n}):null,o?null:c,r?(0,_.jsx)(`span`,{className:y.glyph,children:r}):null]})}var x={field:`_field_ki2n9_1`,label:`_label_ki2n9_8`,shell:`_shell_ki2n9_15`,sm:`_sm_ki2n9_29`,input:`_input_ki2n9_33`,invalid:`_invalid_ki2n9_50`,mono:`_mono_ki2n9_80`,prefix:`_prefix_ki2n9_85`,hint:`_hint_ki2n9_91`,error:`_error_ki2n9_97`};function Ge({label:e,hint:t,error:n,size:r=`md`,mono:i=!1,prefix:a,className:o,id:s,...c}){let l=(0,g.useId)(),u=s??l,d=`${u}-hint`,f=`${u}-error`,ee=[c[`aria-describedby`],t?d:null,n?f:null].filter(Boolean).join(` `);return(0,_.jsxs)(`div`,{className:`${x.field} ${o??``}`,children:[e?(0,_.jsx)(`label`,{className:x.label,htmlFor:u,children:e}):null,(0,_.jsxs)(`div`,{className:`${x.shell} ${x[r]} ${n?x.invalid:``}`,children:[a?(0,_.jsx)(`span`,{className:x.prefix,children:a}):null,(0,_.jsx)(`input`,{...c,id:u,className:`${x.input} ${i?x.mono:``}`,"aria-invalid":n?!0:c[`aria-invalid`],"aria-describedby":ee||void 0})]}),t?(0,_.jsx)(`p`,{id:d,className:x.hint,children:t}):null,n?(0,_.jsx)(`p`,{id:f,className:x.error,role:`alert`,children:n}):null]})}var S={field:`_field_1yhua_1`,label:`_label_1yhua_8`,shell:`_shell_1yhua_15`,sm:`_sm_1yhua_28`,select:`_select_1yhua_42`,chevron:`_chevron_1yhua_72`,hint:`_hint_1yhua_79`};function Ke({label:e,hint:t,size:n=`md`,className:r,id:i,children:a,...o}){let s=(0,g.useId)(),c=i??s,l=`${c}-hint`;return(0,_.jsxs)(`div`,{className:`${S.field} ${r??``}`,children:[e?(0,_.jsx)(`label`,{className:S.label,htmlFor:c,children:e}):null,(0,_.jsxs)(`div`,{className:`${S.shell} ${S[n]}`,children:[(0,_.jsx)(`select`,{...o,id:c,className:S.select,"aria-describedby":[o[`aria-describedby`],t?l:null].filter(Boolean).join(` `)||void 0,children:a}),(0,_.jsx)(le,{className:S.chevron,size:14})]}),t?(0,_.jsx)(`p`,{id:l,className:S.hint,children:t}):null]})}t();var C={field:`_field_228wn_1`,label:`_label_228wn_8`,row:`_row_228wn_15`,value:`_value_228wn_22`,input:`_input_228wn_32`};function qe({label:e,value:t,min:n=0,max:r=100,valueLabel:i,valueText:a,trackImage:o,className:s,id:c,...l}){let u=(0,g.useId)(),d=c??u,f=Math.max(1,r-n),ee=Math.round((t-n)/f*100);return(0,_.jsxs)(`div`,{className:`${C.field} ${s??``}`,children:[e?(0,_.jsx)(`label`,{className:C.label,htmlFor:d,children:e}):null,(0,_.jsxs)(`div`,{className:C.row,children:[(0,_.jsx)(`input`,{...l,id:d,type:`range`,className:C.input,value:t,min:n,max:r,"aria-valuetext":a,style:{"--slider-fill":`${ee}%`,...o?{"--slider-track-image":o}:{}},"data-custom-track":o?`true`:void 0}),i===void 0?null:(0,_.jsx)(`span`,{className:C.value,children:i})]})]})}var w={wrapper:`_wrapper_1xq82_1`,label:`_label_1xq82_8`,track:`_track_1xq82_13`,knob:`_knob_1xq82_44`};function Je({checked:e,onChange:t,label:n,disabled:r=!1,id:i,className:a,...o}){let s=(0,_.jsx)(`button`,{type:`button`,id:i,role:`switch`,"aria-checked":e,disabled:r,className:w.track,onClick:()=>t(!e),...o,children:(0,_.jsx)(`span`,{className:w.knob,"aria-hidden":`true`})});return n?(0,_.jsxs)(`label`,{className:`${w.wrapper} ${a??``}`,children:[s,(0,_.jsx)(`span`,{className:w.label,children:n})]}):(0,_.jsx)(`span`,{className:a,children:s})}var T={tag:`_tag_2eqdv_1`,sm:`_sm_2eqdv_19`,mono:`_mono_2eqdv_25`,dot:`_dot_2eqdv_30`,marker:`_marker_2eqdv_38`},Ye={claude:`var(--engine-claude)`,codex:`var(--engine-codex)`,grok:`var(--engine-grok)`,local:`var(--engine-local)`};function Xe({children:e,engine:t,mono:n=!1,size:r=`md`,dot:i=!1,title:a,className:o}){let s=i||t!==void 0;return(0,_.jsxs)(`span`,{className:`${T.tag} ${T[r]} ${n?T.mono:``} ${o??``}`,title:a,"data-engine":t,children:[s?(0,_.jsx)(`span`,{className:T.dot,style:t?{background:Ye[t]}:void 0,"aria-hidden":`true`}):null,e]})}var E=[{id:`chat`,label:`Chat`,module:`ChatSection`},{id:`autonomy`,label:`Autonomy`,module:`AutonomySection`},{id:`approvals`,label:`Approvals`,module:`ApprovalsSection`},{id:`usage`,label:`Usage`,module:`UsageSection`},{id:`settings`,label:`Settings`,module:`SettingsSection`},{id:`mcp`,label:`MCP`,module:`McpSection`}],Ze=new Set(E.map(e=>e.id)),Qe={min:240,max:360,def:264},$e={min:260,max:480,def:320},et=`ashlr.verse.ui.v2`,D={section:`chat`,railExpanded:!1,sidebarWidth:Qe.def,sidebarCollapsed:!1,resourcesOpen:!0,resourcesWidth:$e.def,pendingApprovals:0,command:null};function tt(e,t){let n=Number(e);return!Number.isFinite(n)||n<=0?t.def:Math.max(t.min,Math.min(t.max,Math.round(n)))}function nt(){try{let e=localStorage.getItem(et);if(!e)return D;let t=JSON.parse(e);return{...D,section:typeof t.section==`string`&&Ze.has(t.section)?t.section:D.section,railExpanded:t.railExpanded===!0,sidebarWidth:tt(t.sidebarWidth,Qe),sidebarCollapsed:t.sidebarCollapsed===!0,resourcesOpen:t.resourcesOpen!==!1,resourcesWidth:tt(t.resourcesWidth,$e)}}catch{return D}}var O=nt(),rt=0,k=new Set;function it(e){let t={section:e.section,railExpanded:e.railExpanded,sidebarWidth:e.sidebarWidth,sidebarCollapsed:e.sidebarCollapsed,resourcesOpen:e.resourcesOpen,resourcesWidth:e.resourcesWidth};try{localStorage.setItem(et,JSON.stringify(t))}catch{}}function A(e){let t={...O,...e};if(Object.keys(e).every(e=>Object.is(O[e],t[e])))return;let n=[`section`,`railExpanded`,`sidebarWidth`,`sidebarCollapsed`,`resourcesOpen`,`resourcesWidth`].some(e=>!Object.is(O[e],t[e]));O=t,n&&it(t);for(let e of k)e()}function at(e){return k.add(e),()=>k.delete(e)}function ot(){return O}function j(e){A({section:e})}function st(){A({railExpanded:!O.railExpanded})}function ct(e){A({sidebarCollapsed:e})}function lt(e){A({resourcesOpen:e})}function ut(e){A({pendingApprovals:Number.isFinite(e)?Math.max(0,Math.trunc(e)):0})}function dt(e){rt+=1,A({section:`chat`,command:{name:e,nonce:rt}})}function ft(){A({command:null})}var pt=`ashlr.verse.seats.v1`,mt=50,ht=null;function gt(){if(ht)return ht;let e={};try{let t=localStorage.getItem(pt),n=t?JSON.parse(t):null;if(n&&typeof n==`object`&&!Array.isArray(n))for(let[t,r]of Object.entries(n)){if(!r||typeof r!=`object`||Array.isArray(r))continue;let{seatId:n,model:i}=r;typeof n==`string`&&n.length!==0&&typeof i==`string`&&i.length!==0&&(e[t]={seatId:n,model:i})}}catch{}return ht=e,e}function _t(e){let t=gt();if(e){let n=t[e];if(n)return n}let n=Object.keys(t),r=n[n.length-1];return r?t[r]??null:null}function vt(e,t){if(!e||!t.seatId||!t.model)return;let n=gt();delete n[e],n[e]={seatId:t.seatId,model:t.model};let r=Object.keys(n);for(let e of r.slice(0,Math.max(0,r.length-mt)))delete n[e];try{localStorage.setItem(pt,JSON.stringify(n))}catch{}}var M=new Map,yt=50;function bt(e,t){if(!e||!t)return;let n=M.get(e)??new Set;n.add(t),M.delete(e),M.set(e,n);for(let e of[...M.keys()].slice(0,Math.max(0,M.size-yt)))M.delete(e)}function xt(e,t){return M.get(e)?.has(t)??!1}var St=`2.1.257`;function N(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function P(e,t){let n=e[t];return typeof n==`string`&&n.length>0?n:null}function F(e,t){let n=e[t];return typeof n==`number`&&Number.isFinite(n)?n:null}function I(e,t,n=!1){let r=e[t];return typeof r==`boolean`?r:n}function L(e){return Array.isArray(e)?e:[]}var Ct=/(launcher\.mjs|native-profiles|account-connections|console-startup|\/\.ashlr\b|Bearer\s|--token\b)/i;function wt(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length===0||t.length>200||Ct.test(t)||/[\r\n]/.test(t)?null:t}function R(e){return e===null?null:Math.max(0,Math.min(100,e))}function Tt(e){let t=N(e);if(!t)return null;let n=P(t,`id`)??P(t,`label`);if(n===null)return null;let r=N(t.nativeReport),i=I(t,`limitReached`)||I(t,`rateLimitReached`),a=t.measured;return{id:n,label:P(t,`label`),usedPercent:R(F(t,`usedPercent`)??F(t,`used_percent`)),resetsAt:P(t,`resetsAt`)??P(t,`resets_at`),resetDescription:(r?P(r,`resetDescription`):null)??P(t,`resetDescription`),limitReached:i,measured:typeof a==`boolean`?a:!i}}function Et(e){let t=N(e);if(!t)return null;let n=P(t,`balance`),r=n===null?F(t,`balance`):Number.parseFloat(n);return{hasCredits:I(t,`hasCredits`)||I(t,`has_credits`),unlimited:I(t,`unlimited`),balance:n,balanceValue:typeof r==`number`&&Number.isFinite(r)?r:null}}var Dt=[`claude`,`codex`,`grok`];function Ot(e){let t=N(e);if(!t)return null;let n=P(t,`id`),r=P(t,`provider`);if(n===null||r===null||!Dt.includes(r))return null;let i=L(t.windows).map(Tt).filter(e=>e!==null),a=P(t,`state`),o=P(t,`authentication`),s=N(t.unsupported);return{id:n,label:P(t,`label`)??n,provider:r,state:a===`checking`||a===`observed`||a===`signed-out`||a===`unavailable`?a:`unavailable`,authentication:o===`signed-in`||o===`signed-out`?o:`unknown`,health:P(t,`health`),planType:P(t,`planType`)??P(t,`plan_type`),observedAt:P(t,`observedAt`),windows:i,binding:Tt(t.binding),credits:Et(t.credits),reason:P(t,`reason`),unsupported:kt(t,s),reconnectCommand:wt(t.reconnectCommand),notes:L(t.notes).filter(e=>typeof e==`string`)}}function kt(e,t){if(t)return{code:P(t,`code`)??`usage-version-unsupported`,pinnedVersion:P(t,`pinnedVersion`)??P(t,`version`)};let n=P(e,`reason`);return n===`usage-version-unsupported`?{code:n,pinnedVersion:St}:null}function At(e){let t=P(e,`collectorNote`);if(t)return t;let n=N(e.collector);return!n||P(n,`owner`)!==`another-collector`?null:P(n,`note`)??`Another collector process owns the quota-refresh lease, so these readings are read-only and may be staler than this server’s poll interval.`}function jt(e){let t=N(e);if(!t)return null;let n=Array.isArray(t.accounts)?t.accounts:Array.isArray(e)?e:null;return n===null?null:{sampledAt:P(t,`sampledAt`),refreshing:I(t,`refreshing`),accounts:n.map(Ot).filter(e=>e!==null),collectorNote:At(t)}}function Mt(e){let t=N(e);if(!t)return null;let n=P(t,`day`);return n===null||!/^\d{4}-\d{2}-\d{2}$/.test(n)?null:{day:n,tokensIn:F(t,`tokensIn`)??0,tokensOut:F(t,`tokensOut`)??0,estCostUsd:F(t,`estCostUsd`)??0,sessions:F(t,`sessions`)??0,cacheRead:F(t,`cacheRead`),cacheWrite:F(t,`cacheWrite`),cacheHitRate:F(t,`cacheHitRate`)}}function Nt(e,t){let n=N(e),r=n?Array.isArray(n.byDay)?n.byDay:Array.isArray(n.days)?n.days:null:Array.isArray(e)?e:null;if(r===null)return null;let i=n?P(n,`window`):null;return{window:i===`7d`||i===`30d`?i:t,days:r.map(Mt).filter(e=>e!==null).sort((e,t)=>e.day.localeCompare(t.day)),generatedAt:n?P(n,`generatedAt`):null,estimated:!n||I(n,`estimated`,!0),caveats:n?L(n.caveats).filter(e=>typeof e==`string`):[]}}function Pt(e,t){let n=N(e);if(!n)return null;let r=P(n,`label`)??P(n,`id`)??P(n,`name`)??P(n,`model`);if(r===null)return null;let i=n.capabilities,a=P(n,`state`),o=n.supportsTools,s=F(n,`nativeContextLength`)??F(n,`nativeContext`),c=F(n,`contextLength`)??F(n,`configuredContext`),l=P(n,`placement`);return{name:r,runtime:t,loaded:a===null?I(n,`loaded`)||I(n,`resident`):a===`loaded`,sizeBytes:F(n,`sizeBytes`)??F(n,`size`),sizeVramBytes:F(n,`sizeVramBytes`)??F(n,`size_vram`),placement:l===`gpu`||l===`cpu`||l===`split`?l:`unknown`,gpuPercent:R(F(n,`gpuPercent`)),memoryPercent:R(F(n,`memoryPercent`)),family:P(n,`family`),arch:P(n,`arch`),expiresAt:P(n,`expiresAt`)??P(n,`expires_at`),parameterSize:P(n,`parameterSize`)??P(n,`parameter_size`),quantization:P(n,`quantization`)??P(n,`quantization_level`),nativeContext:s,configuredContext:c!==null&&s!==null&&c===s?null:c,capabilities:Array.isArray(i)?i.filter(e=>typeof e==`string`):null,supportsTools:typeof o==`boolean`?o:null}}function Ft(e,t){let n=N(e);if(!n)return null;let r=Array.isArray(n.models)?n.models:null;if(r===null)return null;let i=r.map(e=>Pt(e,t)).filter(e=>e!==null),a=I(n,`stale`);return{models:i,status:{runtime:t,reachable:I(n,`reachable`),reason:P(n,`reason`),stale:a,staleForMs:a?F(n,`staleForMs`):null,modelCount:i.length}}}function z(e){let t=N(e);if(!t)return null;let n=Ft(t.ollama,`ollama`),r=Ft(t.lmStudio??t.lmstudio,`lmstudio`);if(n!==null||r!==null){let e=[n,r].filter(e=>e!==null),i=e.some(e=>e.status.reachable),a=N(t.machine);return{reachable:i,models:e.flatMap(e=>e.models),memoryBudgetBytes:(a?F(a,`totalMemoryBytes`):null)??F(t,`memoryBudgetBytes`)??F(t,`memoryBudget`),freeMemoryBytes:a?F(a,`freeMemoryBytes`):null,reason:i?null:e.map(e=>e.status.reason).find(e=>e!==null)??null,runtimes:e.map(e=>e.status),notes:L(t.notes).filter(e=>typeof e==`string`),sampledAt:P(t,`sampledAt`)}}let i=Array.isArray(t.models)?t.models:null;return i===null?null:{reachable:I(t,`reachable`,!0),models:i.map(e=>Pt(e,null)).filter(e=>e!==null),memoryBudgetBytes:F(t,`memoryBudgetBytes`)??F(t,`memoryBudget`),freeMemoryBytes:F(t,`freeMemoryBytes`),reason:P(t,`reason`),runtimes:[],notes:L(t.notes).filter(e=>typeof e==`string`),sampledAt:P(t,`sampledAt`)}}var It=`verse-usage-frontier`,Lt=`verse-usage-control`,Rt={key:It,fetch:e=>u(`/api/usage`,e)};function zt(e){return e instanceof p?e.status===404?`This server does not expose /api/verse/control, so configured caps and today’s spend are unavailable here.`:`Configured caps unavailable (HTTP ${e.status}).`:`Configured caps unavailable: the request failed.`}var Bt={key:Lt,fetch:async e=>{try{return{raw:await u(`/api/verse/control`,e),available:!0,reason:null}}catch(e){if(e instanceof p&&e.status===401||e instanceof DOMException&&e.name===`AbortError`)throw e;return{raw:null,available:!1,reason:zt(e)}}}},Vt=`verse-usage-accounts`,Ht=`verse-usage-local-models`,Ut=`verse-usage-series`;function Wt(e,t){return t instanceof p?t.status===404?`This server does not expose ${e} yet, so this panel has no source.`:`${e} answered HTTP ${t.status}.`:`${e} could not be reached.`}function B(e){return async t=>{try{return{raw:await u(e,t),available:!0,reason:null}}catch(t){if(t instanceof p&&t.status===401||t instanceof DOMException&&t.name===`AbortError`)throw t;return{raw:null,available:!1,reason:Wt(e,t)}}}}var Gt={key:Vt,fetch:B(`/api/verse/accounts`)},Kt=[350,1200],qt=B(`/api/verse/local-models`);function Jt(e){if(!e.available)return!1;let t=z(e.raw);return t!==null&&!t.reachable}function Yt(e,t){return new Promise((n,r)=>{if(t?.aborted){r(new DOMException(`Aborted`,`AbortError`));return}let i=()=>{clearTimeout(a),r(new DOMException(`Aborted`,`AbortError`))},a=setTimeout(()=>{t?.removeEventListener(`abort`,i),n()},e);t?.addEventListener(`abort`,i,{once:!0})})}var Xt={key:Ht,fetch:async e=>{let t=await qt(e);for(let n of Kt){if(!Jt(t))return t;await Yt(n,e),t=await qt(e)}return t}},Zt={"7d":{key:`${Ut}:7d`,fetch:B(`/api/verse/usage-series?window=7d`)},"30d":{key:`${Ut}:30d`,fetch:B(`/api/verse/usage-series?window=30d`)}};function Qt(e){return Zt[e]}var V=[{id:`welcome`,title:`Welcome to Verse`,subtitle:`Five sections, one rail. Two minutes and you will know what each one does.`},{id:`accounts`,title:`Your seats`,subtitle:`Which provider accounts this machine can actually dispatch to right now.`},{id:`local`,title:`Local runtime`,subtitle:`Whether there is a model on this machine, and what that changes.`},{id:`stops`,title:`Three ways to stop`,subtitle:`They do not have the same blast radius. This is the one screen that says so.`},{id:`finish`,title:`Make it yours`,subtitle:`Theme, accent, density and font live in Settings. Then start a chat.`}];function $t(e){return Number.isFinite(e)?Math.min(V.length-1,Math.max(0,Math.trunc(e))):0}var en={claude:`Sign back in with the Claude CLI on this machine, then reopen Verse.`,codex:`Sign back in with the Codex CLI on this machine, then reopen Verse.`,grok:"Reconnect the Grok seat through `ashlr resources`."};function tn(e){let t=e.label||e.id,n={id:e.id,label:t,provider:e.provider};if(e.authentication===`signed-out`||e.state===`signed-out`)return{...n,tone:`attention`,state:`signed out`,detail:e.reason??e.notes[0]??`Verse cannot dispatch to ${t} until this seat is signed in again.`,fix:e.reconnectCommand??en[e.provider]};if(e.unsupported)return{...n,tone:`attention`,state:`probe blocked`,detail:`The usage probe for ${t} is pinned to a specific CLI build`+(e.unsupported.pinnedVersion?` (${e.unsupported.pinnedVersion})`:``)+` and this machine is running a different one, so its quota is unreadable. The seat itself still works.`,fix:null};if(e.state===`unavailable`)return{...n,tone:`unknown`,state:`no reading`,detail:e.reason??`No usage reading came back for ${t}. That is not the same as a limit.`,fix:null};if(e.state===`checking`)return{...n,tone:`unknown`,state:`checking`,detail:`Still probing ${t}.`,fix:null};let r=e.binding,i=r?.limitReached===!0,a=e.credits?.hasCredits===!0||e.credits?.unlimited===!0;if(i&&!a)return{...n,tone:`attention`,state:`limit reached`,detail:`${t} reported its limit reached. Pick another seat, or wait for the window to reset.`,fix:null};if(i&&a)return{...n,tone:`ok`,state:`usable on credits`,detail:`${t} has used up its included window but still has a spendable balance, so it can still dispatch.`,fix:null};let o=r?.measured===!0&&typeof r.usedPercent==`number`?r.usedPercent:null;return{...n,tone:`ok`,state:`connected`,detail:o===null?`${t} is signed in. No local utilization signal for this provider — that is expected, not a fault.`:`${t} is signed in, ${Math.round(o)}% through its binding window.`,fix:null}}function nn(e){if(e.loading)return{findings:null,summary:`Checking which accounts this machine can reach…`,caveat:null,signedOutCount:0};if(!e.snapshot)return{findings:null,summary:`This server did not report a per-account roster, so Verse cannot say which seats are connected.`,caveat:e.unavailableReason,signedOutCount:0};let t=e.snapshot.accounts.map(tn);if(t.length===0)return{findings:t,summary:`No provider accounts are connected on this machine yet. Verse will still run local models.`,caveat:e.snapshot.collectorNote,signedOutCount:0};let n=t.filter(e=>e.state===`signed out`),r=t.filter(e=>e.tone===`ok`);return{findings:t,summary:n.length===0?`${r.length} of ${t.length} ${t.length===1?`seat is`:`seats are`} ready to dispatch.`:`${n.length} ${n.length===1?`seat is`:`seats are`} signed out. Each one below says how to get it back.`,caveat:e.snapshot.collectorNote,signedOutCount:n.length}}var H=`Local seats cost nothing and consume no provider quota, so the autonomous loop can keep working after a cloud window is used up.`,U=`Without one, every turn and every autonomous tick spends a provider account, and a used-up window stops the work.`;function rn(e){if(e.loading)return{tone:`unknown`,state:`checking`,summary:`Probing the local runtimes on this machine…`,meaning:H,fix:null,modelCount:0,toolCapableCount:0,stale:!1};if(!e.snapshot)return{tone:`unknown`,state:`not reported`,summary:`This server does not report local runtimes, so Verse cannot say whether one is available here.`,meaning:U,fix:e.unavailableReason,modelCount:0,toolCapableCount:0,stale:!1};let t=e.snapshot.models,n=t.filter(e=>e.supportsTools===!0).length,r=e.snapshot.runtimes.some(e=>e.stale);return e.snapshot.reachable?t.length===0?{tone:`attention`,state:`no models`,summary:`A local runtime answered, but it has no models installed.`,meaning:U,fix:`Pull a model into the runtime, then press Refresh in Usage.`,modelCount:0,toolCapableCount:0,stale:r}:{tone:`ok`,state:r?`available (retained reading)`:`available`,summary:`${t.length} local ${t.length===1?`model`:`models`} available`+(n>0?`, ${n} of them tool-capable.`:`, none of them tool-capable.`)+(r?` This is a retained reading, not a fresh probe.`:``),meaning:n>0?H:`${H} A model that cannot call tools can answer, but cannot run an agentic turn.`,fix:null,modelCount:t.length,toolCapableCount:n,stale:r}:{tone:`attention`,state:`unreachable`,summary:`No local runtime answered. Verse cannot tell whether one is not running or not installed — the probe only knows it got no answer.`,meaning:U,fix:`Start Ollama (or LM Studio) and press Refresh in Usage. If neither is installed, everything still works — it all runs on the cloud seats.`,modelCount:0,toolCapableCount:0,stale:r}}var an=[{name:`Pause`,scope:`Halts autonomous dispatch only. A running loop parks instead of exiting.`,limit:`Your own chats and the agent’s write tools keep working.`,reversible:`Reversible in one click, with no restart and no confirmation.`,tone:`ok`},{name:`Stop loop`,scope:`Stops the daemon — and engages the GLOBAL kill switch while doing it.`,limit:`That means it also refuses the agent’s own write tools, exactly like the emergency control.`,reversible:`Reversible, but confirm-guarded. For an ordinary halt, use Pause.`,tone:`attention`},{name:`Emergency stop`,scope:`Engages the global kill switch (~/.ashlr/KILL) directly.`,limit:`Every mutating path refuses: the loop, dispatch, and the agent’s own write tools.`,reversible:`Reversible, confirm-guarded, and deliberately separated from the other two.`,tone:`attention`}],on=`ashlr.verse.onboarding.v1`,sn={completedAt:null,dismissedAt:null};function cn(){try{let e=localStorage.getItem(on);if(!e)return sn;let t=JSON.parse(e);return{completedAt:typeof t.completedAt==`string`?t.completedAt:null,dismissedAt:typeof t.dismissedAt==`string`?t.dismissedAt:null}}catch{return{completedAt:null,dismissedAt:new Date(0).toISOString()}}}function ln(e){try{localStorage.setItem(on,JSON.stringify(e))}catch{}}function un(e){return e.completedAt===null&&e.dismissedAt===null}var dn=cn(),W={...dn,open:un(dn),step:0},fn=new Set;function G(e){let t={...W,...e};if(!Object.keys(e).every(e=>Object.is(W[e],t[e]))){W=t;for(let e of fn)e()}}function pn(e){return fn.add(e),()=>fn.delete(e)}function mn(){return W}function hn(e){G({step:Math.max(0,Math.trunc(e))})}function gn(){let e={completedAt:W.completedAt,dismissedAt:new Date().toISOString()};ln(e),G({...e,open:!1})}function _n(){let e={completedAt:new Date().toISOString(),dismissedAt:W.dismissedAt};ln(e),G({...e,open:!1})}function vn(){G({open:!0,step:0})}function yn(){return(0,g.useSyncExternalStore)(pn,mn,mn)}var K={card:`_card_13g9r_14`,"onboarding-in":`_onboarding-in_13g9r_1`,head:`_head_13g9r_56`,headText:`_headText_13g9r_64`,eyebrow:`_eyebrow_13g9r_72`,title:`_title_13g9r_80`,subtitle:`_subtitle_13g9r_88`,body:`_body_13g9r_96`,lead:`_lead_13g9r_107`,aside:`_aside_13g9r_113`,caveat:`_caveat_13g9r_114`,kbd:`_kbd_13g9r_125`,sections:`_sections_13g9r_138`,findings:`_findings_13g9r_139`,sectionRow:`_sectionRow_13g9r_148`,sectionIcon:`_sectionIcon_13g9r_160`,localIcon:`_localIcon_13g9r_161`,sectionText:`_sectionText_13g9r_173`,sectionName:`_sectionName_13g9r_180`,sectionBlurb:`_sectionBlurb_13g9r_190`,finding:`_finding_13g9r_139`,findingHead:`_findingHead_13g9r_210`,stopName:`_stopName_13g9r_218`,findingDetail:`_findingDetail_13g9r_225`,findingNote:`_findingNote_13g9r_231`,findingFix:`_findingFix_13g9r_237`,fixLabel:`_fixLabel_13g9r_245`,fixText:`_fixText_13g9r_254`,code:`_code_13g9r_260`,tone:`_tone_13g9r_276`,toneLabel:`_toneLabel_13g9r_283`,foot:`_foot_13g9r_305`,pips:`_pips_13g9r_315`,pip:`_pip_13g9r_315`,actions:`_actions_13g9r_338`};function bn({tone:e,label:t}){let n=e===`ok`?he:e===`attention`?ve:pe;return(0,_.jsxs)(`span`,{className:K.tone,"data-tone":e,children:[(0,_.jsx)(n,{size:13,"aria-hidden":`true`,focusable:`false`}),(0,_.jsx)(`span`,{className:K.toneLabel,children:t})]})}function q({children:e}){return(0,_.jsx)(`div`,{className:K.body,children:e})}var xn={chat:`Talk to a seat. Sessions are grouped by project and resume where they stopped.`,autonomy:`The human-out-of-the-loop cockpit: the loop, its budget, its scope, and what it did while you were away.`,approvals:`Everything the loop produced that is waiting on you. Approving a PR proposal pushes a branch.`,usage:`Which account you can actually use right now, and what it costs.`,settings:`Theme, accent, density, font — and this tour again whenever you want it.`,mcp:`What each seat would actually load as an MCP server, and whether any provider CLI has drifted off its pin.`};function Sn(){return(0,_.jsxs)(q,{children:[(0,_.jsx)(`p`,{className:K.lead,children:`Verse is the desktop surface over this machine’s agentic fleet. Everything it shows comes from one local server — no session, token or artifact leaves this machine.`}),(0,_.jsx)(`ul`,{className:K.sections,children:E.map((e,t)=>{let n=We[e.id];return(0,_.jsxs)(`li`,{className:K.sectionRow,children:[(0,_.jsx)(`span`,{className:K.sectionIcon,"aria-hidden":`true`,children:(0,_.jsx)(n,{})}),(0,_.jsxs)(`span`,{className:K.sectionText,children:[(0,_.jsxs)(`span`,{className:K.sectionName,children:[e.label,` `,(0,_.jsxs)(`kbd`,{className:K.kbd,children:[`⌘`,t+1]})]}),(0,_.jsx)(`span`,{className:K.sectionBlurb,children:xn[e.id]})]})]},e.id)})})]})}function Cn(){let e=re(Gt),t=(0,g.useMemo)(()=>nn({snapshot:e.data?.available?jt(e.data.raw):null,loading:e.data===void 0&&e.status!==`error`,unavailableReason:e.data?.reason??e.error?.message??null}),[e.data,e.status,e.error]);return(0,_.jsxs)(q,{children:[(0,_.jsx)(`p`,{className:K.lead,children:t.summary}),t.findings===null?null:(0,_.jsx)(`ul`,{className:K.findings,children:t.findings.map(e=>(0,_.jsxs)(`li`,{className:K.finding,children:[(0,_.jsxs)(`div`,{className:K.findingHead,children:[(0,_.jsx)(Xe,{engine:e.provider,children:e.label}),(0,_.jsx)(bn,{tone:e.tone,label:e.state})]}),(0,_.jsx)(`p`,{className:K.findingDetail,children:e.detail}),e.fix?(0,_.jsxs)(`p`,{className:K.findingFix,children:[(0,_.jsx)(`span`,{className:K.fixLabel,children:`Fix`}),(0,_.jsx)(`code`,{className:K.code,children:e.fix})]}):null]},e.id))}),t.caveat?(0,_.jsx)(`p`,{className:K.caveat,children:t.caveat}):null,(0,_.jsxs)(`p`,{className:K.aside,children:[`The full per-window picture — resets, credits, limits — lives in Usage`,` `,(0,_.jsx)(`kbd`,{className:K.kbd,children:`⌘4`}),`.`]})]})}function wn(){let e=re(Xt),t=(0,g.useMemo)(()=>rn({snapshot:e.data?.available?z(e.data.raw):null,loading:e.data===void 0&&e.status!==`error`,unavailableReason:e.data?.reason??e.error?.message??null}),[e.data,e.status,e.error]);return(0,_.jsxs)(q,{children:[(0,_.jsxs)(`div`,{className:K.findingHead,children:[(0,_.jsx)(`span`,{className:K.localIcon,"aria-hidden":`true`,children:(0,_.jsx)(de,{size:15})}),(0,_.jsx)(bn,{tone:t.tone,label:t.state})]}),(0,_.jsx)(`p`,{className:K.lead,children:t.summary}),(0,_.jsx)(`p`,{className:K.findingDetail,children:t.meaning}),t.fix?(0,_.jsxs)(`p`,{className:K.findingFix,children:[(0,_.jsx)(`span`,{className:K.fixLabel,children:`Fix`}),(0,_.jsx)(`span`,{className:K.fixText,children:t.fix})]}):null]})}function Tn(){return(0,_.jsxs)(q,{children:[(0,_.jsxs)(`p`,{className:K.lead,children:[`Autonomy `,(0,_.jsx)(`kbd`,{className:K.kbd,children:`⌘2`}),` has three stop controls. They are not interchangeable, and the difference is the most important thing on this screen.`]}),(0,_.jsx)(`ul`,{className:K.findings,children:an.map(e=>(0,_.jsxs)(`li`,{className:K.finding,children:[(0,_.jsxs)(`div`,{className:K.findingHead,children:[(0,_.jsx)(`span`,{className:K.stopName,children:e.name}),(0,_.jsx)(bn,{tone:e.tone,label:e.tone===`ok`?`narrow`:`global`})]}),(0,_.jsx)(`p`,{className:K.findingDetail,children:e.scope}),(0,_.jsx)(`p`,{className:K.findingDetail,children:e.limit}),(0,_.jsx)(`p`,{className:K.findingNote,children:e.reversible})]},e.name))})]})}function En(){return(0,_.jsxs)(q,{children:[(0,_.jsxs)(`p`,{className:K.lead,children:[`Settings `,(0,_.jsx)(`kbd`,{className:K.kbd,children:`⌘,`}),` carries theme, accent hue, density, display font, corner radius and reduced motion. Every change applies as you make it — there is no save button.`]}),(0,_.jsx)(b,{variant:`subtle`,icon:(0,_.jsx)(be,{size:14}),onClick:()=>j(`settings`),children:`Open Settings`}),(0,_.jsx)(`p`,{className:K.aside,children:`You can replay this tour any time from Settings → Onboarding.`})]})}var Dn=[Sn,Cn,wn,Tn,En];function On(){let{open:e,step:t}=yn(),n=$t(t),r=V[n],i=Dn[n],a=n===V.length-1,o=(0,g.useCallback)(()=>gn(),[]),s=(0,g.useRef)(null);return(0,g.useEffect)(()=>{if(!e)return;function t(e){if(e.key!==`Escape`)return;let t=s.current;t&&e.target instanceof Node&&t.contains(e.target)&&(e.preventDefault(),gn())}return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[e]),e?(0,_.jsxs)(`aside`,{ref:s,className:K.card,"aria-labelledby":`verse-onboarding-title`,role:`region`,children:[(0,_.jsxs)(`header`,{className:K.head,children:[(0,_.jsxs)(`div`,{className:K.headText,children:[(0,_.jsxs)(`p`,{className:K.eyebrow,children:[`Getting started · `,n+1,` of `,V.length]}),(0,_.jsx)(`h2`,{id:`verse-onboarding-title`,className:K.title,children:r.title}),(0,_.jsx)(`p`,{className:K.subtitle,children:r.subtitle})]}),(0,_.jsx)(b,{iconOnly:!0,variant:`ghost`,size:`sm`,"aria-label":`Close getting started`,icon:(0,_.jsx)(xe,{size:14}),onClick:o})]}),(0,_.jsx)(i,{}),(0,_.jsxs)(`footer`,{className:K.foot,children:[(0,_.jsx)(`ol`,{className:K.pips,"aria-hidden":`true`,children:V.map((e,t)=>(0,_.jsx)(`li`,{className:K.pip,"data-state":t===n?`current`:t<n?`done`:`todo`},e.id))}),(0,_.jsxs)(`div`,{className:K.actions,children:[(0,_.jsx)(b,{variant:`ghost`,size:`sm`,onClick:o,children:`Skip setup`}),n>0?(0,_.jsx)(b,{variant:`subtle`,size:`sm`,onClick:()=>hn(n-1),children:`Back`}):null,a?(0,_.jsx)(b,{variant:`primary`,size:`sm`,icon:(0,_.jsx)(ge,{size:14}),onClick:()=>{_n(),dt(`new-chat`)},children:`Start a first chat`}):(0,_.jsx)(b,{variant:`primary`,size:`sm`,onClick:()=>hn(n+1),children:`Next`})]})]})]}):null}function kn(){return(0,g.useSyncExternalStore)(at,ot,ot)}var J={shell:`_shell_1retv_6`,rail:`_rail_1retv_45`,railDragStrip:`_railDragStrip_1retv_79`,mark:`_mark_1retv_88`,railList:`_railList_1retv_98`,railFoot:`_railFoot_1retv_107`,railButton:`_railButton_1retv_122`,railIcon:`_railIcon_1retv_148`,railLabel:`_railLabel_1retv_158`,railKey:`_railKey_1retv_171`,railDot:`_railDot_1retv_203`,section:`_section_1retv_215`,loading:`_loading_1retv_225`,missing:`_missing_1retv_234`,missingTitle:`_missingTitle_1retv_241`,missingBody:`_missingBody_1retv_248`,missingDetail:`_missingDetail_1retv_249`},An=Object.assign({"./sections/ApprovalsSection.tsx":()=>i(()=>import(`./ApprovalsSection-BriUzoZc.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17])),"./sections/AutonomySection.tsx":()=>i(()=>import(`./AutonomySection-C4GBsQVc.js`),__vite__mapDeps([18,1,2,3,4,5,7,8,9,10,11,12,19,20,15,16,21,22,23,24])),"./sections/ChatSection.tsx":()=>i(()=>import(`./ChatSection-hlgPBRco.js`),__vite__mapDeps([25,1,2,3,8,9,4,5,11,12,13,14,19,20,23,22,26,27])),"./sections/McpSection.tsx":()=>i(()=>import(`./McpSection-q34T7Tho.js`),__vite__mapDeps([28,1,2,3,29])),"./sections/SettingsSection.tsx":()=>i(()=>import(`./SettingsSection-nJGGGYqv.js`),__vite__mapDeps([30,1,2,3,8,9,4,5,19,20,31,32])),"./sections/UsageSection.tsx":()=>i(()=>import(`./UsageSection-Cf9d9iFH.js`),__vite__mapDeps([33,1,2,3,4,5,6,34,35,15,21,23,26,36]))});function jn({label:e,moduleName:t,detail:n}){return(0,_.jsxs)(`div`,{className:J.missing,role:`status`,children:[(0,_.jsxs)(`h1`,{className:J.missingTitle,children:[e,` is not wired up yet`]}),(0,_.jsxs)(`p`,{className:J.missingBody,children:[`This build has no `,(0,_.jsxs)(`code`,{children:[`routes/verse/sections/`,t,`.tsx`]}),`. The rail keeps the slot so the section appears the moment that module lands — nothing here is broken, and the other sections still work.`]}),n?(0,_.jsx)(`p`,{className:J.missingDetail,children:n}):null]})}function Mn(e){let t=E.find(t=>t.id===e),n=An[`./sections/${t.module}.tsx`];return async()=>{if(!n)return{default:()=>(0,_.jsx)(jn,{label:t.label,moduleName:t.module})};try{let e=await n(),r=e[t.module]??e.default;return typeof r==`function`?{default:r}:{default:()=>(0,_.jsx)(jn,{label:t.label,moduleName:t.module,detail:`The module loaded but exports no \`${t.module}\` component.`})}}catch(e){let n=e instanceof Error?e.message:String(e);return{default:()=>(0,_.jsx)(jn,{label:t.label,moduleName:t.module,detail:n})}}}}var Nn=new Map(E.map(e=>[e.id,(0,g.lazy)(Mn(e.id))])),Pn=`⌘\\`,Fn=se({status:`pending`,limit:500});function In(){let e=kn(),t=ie(),n=Nn.get(e.section),r=re(Fn).data?.pending;(0,g.useEffect)(()=>{typeof r==`number`&&ut(r)},[r]),(0,g.useEffect)(()=>{function e(e){if(!(e.metaKey||e.ctrlKey)||e.altKey||e.shiftKey)return;let t=Number.parseInt(e.key,10);if(Number.isInteger(t)&&t>=1&&t<=E.length){e.preventDefault(),j(E[t-1].id);return}switch(e.key.toLowerCase()){case`k`:e.preventDefault(),dt(`quick-switcher`);break;case`n`:e.preventDefault(),dt(`new-chat`);break;case`,`:e.preventDefault(),j(`settings`);break;case`\\`:e.preventDefault(),st()}}return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]),(0,g.useEffect)(()=>Oe(e=>{e===`open-settings`?j(`settings`):e===`toggle-theme`&&t.cycle()}),[t]),(0,g.useEffect)(()=>{Ee(t.theme)},[t.theme]);let i=(0,g.useMemo)(()=>`Theme: ${t.theme} — click to cycle`,[t.theme]),a=e.railExpanded,o=a?`Collapse rail`:`Expand rail`;return(0,_.jsxs)(`div`,{className:J.shell,"data-rail":a?`expanded`:`collapsed`,children:[(0,_.jsxs)(`nav`,{className:J.rail,"data-rail":a?`expanded`:`collapsed`,"aria-label":`Verse sections`,children:[(0,_.jsx)(`span`,{className:J.railDragStrip,"data-app-region":`drag`,"aria-hidden":`true`}),(0,_.jsx)(h,{label:`Ashlr Verse`,placement:`right`,disabled:a,children:(0,_.jsxs)(`span`,{className:J.mark,children:[(0,_.jsx)(Ue,{}),(0,_.jsx)(`span`,{className:`visually-hidden`,children:`Ashlr Verse`})]})}),(0,_.jsx)(`ul`,{className:J.railList,children:E.map((t,n)=>{let r=We[t.id],i=t.id===`approvals`?e.pendingApprovals:0,o=e.section===t.id,s=`⌘${n+1}`;return(0,_.jsx)(`li`,{children:(0,_.jsx)(h,{label:t.label,shortcut:s,placement:`right`,disabled:a,children:(0,_.jsxs)(`button`,{type:`button`,className:J.railButton,"aria-current":o?`page`:void 0,"data-section":t.id,"aria-label":i>0?`${t.label}, ${i} pending`:t.label,onClick:()=>j(t.id),children:[(0,_.jsxs)(`span`,{className:J.railIcon,children:[(0,_.jsx)(r,{}),i>0?(0,_.jsx)(`span`,{className:J.railDot,"data-pending":i,"aria-hidden":`true`}):null]}),a?(0,_.jsx)(`span`,{className:J.railLabel,children:t.label}):null,a?(0,_.jsx)(`span`,{className:J.railKey,"aria-hidden":`true`,children:s}):null]})})},t.id)})}),(0,_.jsxs)(`div`,{className:J.railFoot,children:[(0,_.jsx)(h,{label:o,shortcut:Pn,placement:`right`,disabled:a,children:(0,_.jsxs)(`button`,{type:`button`,className:J.railButton,onClick:st,"aria-label":o,"aria-expanded":a,"data-rail-toggle":a?`expanded`:`collapsed`,children:[(0,_.jsx)(`span`,{className:J.railIcon,children:(0,_.jsx)(Ve,{expanded:a})}),a?(0,_.jsx)(`span`,{className:J.railLabel,children:o}):null,a?(0,_.jsx)(`span`,{className:J.railKey,"aria-hidden":`true`,children:Pn}):null]})}),(0,_.jsx)(h,{label:i,placement:`right`,disabled:a,children:(0,_.jsxs)(`button`,{type:`button`,className:J.railButton,onClick:t.cycle,"aria-label":i,"data-theme-toggle":t.theme,children:[(0,_.jsx)(`span`,{className:J.railIcon,children:(0,_.jsx)(Ln,{preference:t.theme})}),a?(0,_.jsxs)(`span`,{className:J.railLabel,children:[`Theme: `,t.theme]}):null]})})]})]}),(0,_.jsx)(`main`,{className:J.section,"data-section":e.section,id:`main-content`,tabIndex:-1,children:(0,_.jsx)(oe,{resetKey:e.section,children:(0,_.jsx)(g.Suspense,{fallback:(0,_.jsx)(Rn,{}),children:(0,_.jsx)(n,{})})})}),(0,_.jsx)(On,{})]})}function Ln({preference:e}){return(0,_.jsxs)(`svg`,{viewBox:`0 0 16 16`,width:16,height:16,fill:`none`,stroke:`currentColor`,strokeWidth:1.4,strokeLinejoin:`round`,strokeLinecap:`round`,"aria-hidden":`true`,focusable:`false`,children:[(0,_.jsx)(`circle`,{cx:`8`,cy:`8`,r:`4.2`}),e===`dark`?(0,_.jsx)(`path`,{d:`M8 3.8a4.2 4.2 0 0 0 0 8.4Z`,fill:`currentColor`,stroke:`none`}):null,e===`light`?(0,_.jsx)(`path`,{d:`M8 1.6v1M8 13.4v1M14.4 8h-1M2.6 8h-1M12.5 3.5l-.7.7M4.2 11.8l-.7.7M12.5 12.5l-.7-.7M4.2 4.2l-.7-.7`}):null]})}function Rn(){return(0,_.jsx)(`div`,{className:J.loading,role:`status`,"aria-live":`polite`,children:`Loading…`})}var zn=`verse-bootstrap`,Y=`verse-sessions`,X={key:zn,fetch:e=>u(`/api/verse/bootstrap`,e)},Bn={key:Y,fetch:e=>u(`/api/verse/sessions`,e)};function Z(e,t=``){return`/api/verse/sessions/${encodeURIComponent(e)}${t}`}function Vn(e,t){return u(Z(e),t)}var Hn=class extends Error{constructor(){super(`Unlock actions with the mutation token before chatting.`),this.name=`VerseMutationLockedError`}};async function Q(e,t){let n=l();if(!n)throw new Hn;let r=await ne(e,t,n);return o(),r}function Un(){m(Y),m(zn)}async function Wn(e){let t=await Q(`/api/verse/sessions`,e);return Un(),t}async function Gn(e,t){let n={text:t},r=await Q(Z(e,`/turns`),n);return m(Y),r}async function Kn(e){await Q(Z(e,`/cancel`),{}),m(Y)}async function qn(e){await Q(Z(e,`/delete`),{}),Un()}async function Jn(e,t){let n=await Q(Z(e,`/rename`),{title:t});return m(Y),n}var Yn=`verse-workspaces`,Xn=`verse-autonomy-scope`,Zn={key:Yn,fetch:e=>u(`/api/verse/workspaces`,e)},Qn={key:Xn,fetch:e=>u(`/api/verse/autonomy-scope`,e)};function $n(e,t){return u(Z(e,`/roots`),t)}function $(){m(Yn),m(Xn),m(zn)}async function er(e){let t=await Q(`/api/verse/workspaces`,e);return $(),t}async function tr(e,t){let n=await Q(`/api/verse/workspaces/${encodeURIComponent(e)}/update`,t);return $(),n}async function nr(e){await Q(`/api/verse/workspaces/${encodeURIComponent(e)}/delete`,{}),$()}async function rr(e,t){await Q(`/api/verse/workspaces/priority`,{path:e,priority:t}),$()}async function ir(e){await Q(`/api/verse/workspaces/focus`,{sectionId:e}),$()}var ar={shell:`_shell_k4nf7_1`,checking:`_checking_k4nf7_2`};function or(){let e=c();return(0,g.useEffect)(()=>{if(e!==`checking`)return;let t=!1;return a().then(e=>{if(!(t||e))return d(X.key,X.fetch).then(()=>{t||s(ee(X.key).status===`success`)})}),()=>{t=!0}},[e]),e===`checking`?(0,_.jsx)(`p`,{className:ar.checking,role:`status`,children:`Checking for an existing Verse session…`}):e===`unauthenticated`?(0,_.jsx)(te,{heading:`Connect to Ashlr Verse`,command:`ashlr verse`,subject:`Ashlr Verse`,mutationField:!0}):(0,_.jsxs)(ae,{children:[(0,_.jsx)(f,{}),(0,_.jsx)(`div`,{className:ar.shell,children:(0,_.jsx)(In,{})})]})}export{z as A,Je as B,vn as C,Bt as D,Gt as E,_t as F,Le as G,Ke as H,vt as I,Fe as J,Re as K,lt as L,ft as M,bt as N,Xt as O,xt as P,Ue as Q,ct as R,yn as S,Qt as T,Ge as U,qe as V,or as VerseConsoleApp,b as W,Be as X,Pe as Y,Ie as Z,X as _,er as a,Zn as b,Vn as c,Jn as d,Gn as f,Qn as g,tr as h,Wn as i,Nt as j,jt as k,$n as l,rr as m,Hn as n,qn as o,ir as p,ze as q,Kn as r,nr as s,Y as t,Un as u,Z as v,Rt as w,kn as x,Bn as y,Xe as z};
3
+ //# sourceMappingURL=VerseConsoleApp-y0uOHixd.js.map