minecodex 1.0.5 → 1.0.6

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.
@@ -17,6 +17,9 @@
17
17
  "maxVisibleItems": 6,
18
18
  "favoriteStorageKey": "codex-model-slider:favorites:v1",
19
19
  "reasoningEffortOverrides": {
20
+ "command-code/Qwen-Qwen3.8-Flash": ["low", "medium", "xhigh"],
21
+ "command-code/xai-grok-4.6": ["low", "medium", "high", "xhigh"],
22
+ "command-code/xiaomi-mimo-v2.5": ["low", "medium", "high", "xhigh"],
20
23
  "opencode-go/hy3": ["low", "medium", "high"],
21
24
  "opencode-go/muse-spark-1.2-contributor": ["low", "medium", "high", "xhigh"]
22
25
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "minecodex",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "description": "Lightweight, local-first plugins for the Codex desktop app.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -308,7 +308,6 @@ export function createInjectionSource(features, {
308
308
  let nativeTabCapabilityPromise = null;
309
309
  let nativeTabCapability = null;
310
310
  let nativeTabCapabilityError = null;
311
- const modelSelectorOriginalItems = new Map();
312
311
  const modelSelectorOriginalToggleLabels = new Map();
313
312
  const modelSelectorGenericContainers = new Map();
314
313
  const modelSelectorNativeToggleHandlers = new Map();
@@ -1112,7 +1111,9 @@ export function createInjectionSource(features, {
1112
1111
  })).filter((level) => level.effort);
1113
1112
  const allowed = selector?.reasoningEffortOverrides?.[identity.raw.toLowerCase()];
1114
1113
  const supportedReasoningLevels = allowed
1115
- ? nativeReasoningLevels.filter((level) => allowed.includes(level.effort))
1114
+ ? (nativeReasoningLevels.length
1115
+ ? nativeReasoningLevels.filter((level) => allowed.includes(level.effort))
1116
+ : allowed.map((effort) => ({ effort })))
1116
1117
  : nativeReasoningLevels;
1117
1118
  const currentReasoningLevel = String(controller?.reasoningEffort ?? "").toLowerCase();
1118
1119
  return {
@@ -1508,6 +1509,16 @@ export function createInjectionSource(features, {
1508
1509
  if (!items.length) return;
1509
1510
  const favorites = loadModelFavorites(selector);
1510
1511
  items.forEach((item) => { item.style.display = ""; });
1512
+ if (!menu.hasAttribute("data-codex-model-slider-controller-menu")) {
1513
+ if (!modelSelectorMenuSizeFrames.has(menu)) {
1514
+ const frame = requestAnimationFrame(() => {
1515
+ modelSelectorMenuSizeFrames.delete(menu);
1516
+ sizeModelMenuViewport(menu, selector.maxVisibleItems);
1517
+ });
1518
+ modelSelectorMenuSizeFrames.set(menu, frame);
1519
+ }
1520
+ return;
1521
+ }
1511
1522
  const starred = items.filter((item) => favorites.has(item.dataset.codexModelSliderRaw));
1512
1523
  const ordinary = items.filter((item) => !favorites.has(item.dataset.codexModelSliderRaw));
1513
1524
  const desired = items.slice().sort((a, b) => compareEnhancedModelItems(a, b, favorites));
@@ -1585,6 +1596,7 @@ export function createInjectionSource(features, {
1585
1596
  rawValue = null,
1586
1597
  selected = null,
1587
1598
  scheduleReturn = true,
1599
+ owned = false,
1588
1600
  } = {}) {
1589
1601
  const observedRaw = rawValue ?? modelItemRawValue(item);
1590
1602
  if (!observedRaw) return;
@@ -1598,16 +1610,21 @@ export function createInjectionSource(features, {
1598
1610
  item.dataset.codexModelSliderOrder = String(index);
1599
1611
  item.dataset.codexModelSliderIdentitySource = catalogModel ? "catalog" : nativeDescriptor ? "native" : "visible";
1600
1612
  if (item.querySelector("[data-codex-model-slider-row]")) return;
1601
- if (!modelSelectorOriginalItems.has(item)) modelSelectorOriginalItems.set(item, item.innerHTML);
1602
-
1603
- const identity = modelIdentity(raw);
1604
- const display = modelDisplayLabel(identity, selector);
1605
- const provider = providerLabel(identity.provider, selector);
1606
- const brand = brandForModel(identity, selector);
1607
1613
  item.toggleAttribute(
1608
1614
  "data-codex-model-slider-selected",
1609
1615
  selected ?? Boolean(item.querySelector("svg")),
1610
1616
  );
1617
+ if (!owned) {
1618
+ if (scheduleReturn && !item.hasAttribute("data-codex-model-slider-return-listener")) {
1619
+ item.setAttribute("data-codex-model-slider-return-listener", "");
1620
+ item.addEventListener("click", scheduleModelSliderReturn);
1621
+ }
1622
+ return;
1623
+ }
1624
+ const identity = modelIdentity(raw);
1625
+ const display = modelDisplayLabel(identity, selector);
1626
+ const provider = providerLabel(identity.provider, selector);
1627
+ const brand = brandForModel(identity, selector);
1611
1628
  const favorites = loadModelFavorites(selector);
1612
1629
  const starred = favorites.has(raw);
1613
1630
  const row = document.createElement("span");
@@ -1794,7 +1811,6 @@ export function createInjectionSource(features, {
1794
1811
  record.button.setAttribute("aria-expanded", "false");
1795
1812
  record.parentMenu.style.position = record.position;
1796
1813
  record.parentMenu.style.overflow = record.overflow;
1797
- for (const item of modelMenuItems(record.menu)) modelSelectorOriginalItems.delete(item);
1798
1814
  record.menu.remove();
1799
1815
  modelSelectorControllerMenu = null;
1800
1816
  return true;
@@ -1835,6 +1851,7 @@ export function createInjectionSource(features, {
1835
1851
  rawValue: String(model.model),
1836
1852
  selected: String(model.model) === String(controller.model),
1837
1853
  scheduleReturn: false,
1854
+ owned: true,
1838
1855
  });
1839
1856
  menu.append(item);
1840
1857
  });
@@ -2635,9 +2652,7 @@ export function createInjectionSource(features, {
2635
2652
  modelSelectorSuppressOutsidePointerSequence = false;
2636
2653
  modelSelectorPendingReturn = false;
2637
2654
  document.documentElement.removeAttribute("data-codex-model-slider-selecting-effort");
2638
- for (const [item, html] of modelSelectorOriginalItems) {
2639
- if (!item.isConnected) continue;
2640
- item.innerHTML = html;
2655
+ for (const item of document.querySelectorAll("[data-codex-model-slider-item]")) {
2641
2656
  item.style.removeProperty("display");
2642
2657
  for (const name of [
2643
2658
  "data-codex-model-slider-raw",
@@ -2674,7 +2689,6 @@ export function createInjectionSource(features, {
2674
2689
  document.querySelectorAll("[data-codex-model-slider-trigger-label]").forEach((element) => element.remove());
2675
2690
  document.documentElement.removeAttribute("data-codex-model-slider-catalog-ready");
2676
2691
  modelSelectorStyle.remove();
2677
- modelSelectorOriginalItems.clear();
2678
2692
  modelSelectorOriginalToggleLabels.clear();
2679
2693
  modelSelectorGenericContainers.clear();
2680
2694
  modelSelectorNativeToggleHandlers.clear();