@evo-dev/evodev 0.0.1-alpha.18 → 0.0.1-alpha.19

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.
package/dist/index.js CHANGED
@@ -20,12 +20,14 @@ var __toESM = (mod, isNodeMode, target) => {
20
20
  }
21
21
  target = mod != null ? __create(__getProtoOf(mod)) : {};
22
22
  const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
23
- for (let key of __getOwnPropNames(mod))
24
- if (!__hasOwnProp.call(to, key))
25
- __defProp(to, key, {
26
- get: __accessProp.bind(mod, key),
27
- enumerable: true
28
- });
23
+ if (mod && typeof mod === "object" || typeof mod === "function") {
24
+ for (let key of __getOwnPropNames(mod))
25
+ if (!__hasOwnProp.call(to, key))
26
+ __defProp(to, key, {
27
+ get: __accessProp.bind(mod, key),
28
+ enumerable: true
29
+ });
30
+ }
29
31
  if (canCache)
30
32
  cache.set(mod, to);
31
33
  return to;
@@ -34,14 +36,14 @@ var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports,
34
36
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
35
37
 
36
38
  // node_modules/.bun/emoji-regex@10.6.0/node_modules/emoji-regex/index.js
37
- var require_emoji_regex = __commonJS((exports, module) => {
39
+ var require_emoji_regex = __commonJS(function(exports, module) {
38
40
  module.exports = () => {
39
41
  return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
40
42
  };
41
43
  });
42
44
 
43
45
  // node_modules/.bun/get-caller-file@2.0.5/node_modules/get-caller-file/index.js
44
- var require_get_caller_file = __commonJS((exports, module) => {
46
+ var require_get_caller_file = __commonJS(function(exports, module) {
45
47
  module.exports = function getCallerFile(position) {
46
48
  if (position === undefined) {
47
49
  position = 2;
@@ -62,7 +64,7 @@ var require_get_caller_file = __commonJS((exports, module) => {
62
64
  });
63
65
 
64
66
  // node_modules/.bun/cli-width@4.1.0/node_modules/cli-width/index.js
65
- var require_cli_width = __commonJS((exports, module) => {
67
+ var require_cli_width = __commonJS(function(exports, module) {
66
68
  module.exports = cliWidth;
67
69
  function normalizeOpts(options) {
68
70
  const defaultOpts = {
@@ -102,7 +104,7 @@ var require_cli_width = __commonJS((exports, module) => {
102
104
  });
103
105
 
104
106
  // node_modules/.bun/mute-stream@3.0.0/node_modules/mute-stream/lib/index.js
105
- var require_lib = __commonJS((exports, module) => {
107
+ var require_lib = __commonJS(function(exports, module) {
106
108
  var Stream = __require("stream");
107
109
 
108
110
  class MuteStream extends Stream {
@@ -15224,6 +15226,8 @@ var PROCESS_LOCK_STALE_MS2 = 5 * 60 * 1000;
15224
15226
  var PROCESS_LOCK_HEARTBEAT_MS = 30 * 1000;
15225
15227
  var PROCESSING_TRIGGER_STALE_MS = PROCESS_LOCK_STALE_MS2;
15226
15228
  var MAX_TRANSIENT_TRIGGER_ATTEMPTS = 3;
15229
+ var LOCAL_SEGMENT_SCAN_MULTIPLIER = 20;
15230
+ var MAX_LOCAL_SEGMENT_SCAN_LIMIT = 500;
15227
15231
  async function processEvolutionTriggers(input) {
15228
15232
  const now = normalizeTimestamp(input.now);
15229
15233
  const limit = input.limit ?? 20;
@@ -15251,13 +15255,23 @@ async function processEvolutionTriggers(input) {
15251
15255
  if (!dryRun) {
15252
15256
  await reconcileRetryableEvolutionTriggers(input, now);
15253
15257
  }
15254
- const pendingSegments = dryRun || input.distillSessionKnowledge !== undefined ? (await listSegmentEvolutionTriggers({
15258
+ const listedPendingSegments = dryRun || input.distillSessionKnowledge !== undefined ? await listSegmentEvolutionTriggers({
15255
15259
  homeDir: input.homeDir,
15256
15260
  projectKey: input.projectKey,
15257
15261
  runId: input.runId,
15258
15262
  status: "pending"
15259
- })).slice(0, limit) : [];
15260
- const remainingLimit = Math.max(0, limit - pendingSegments.length);
15263
+ }) : [];
15264
+ const segmentSelection = dryRun ? {
15265
+ triggers: listedPendingSegments.slice(0, limit),
15266
+ semanticCandidates: Math.min(listedPendingSegments.length, limit)
15267
+ } : await selectPendingSegmentTriggers({
15268
+ homeDir: input.homeDir,
15269
+ triggers: listedPendingSegments,
15270
+ now,
15271
+ semanticLimit: limit
15272
+ });
15273
+ const pendingSegments = segmentSelection.triggers;
15274
+ const remainingLimit = Math.max(0, limit - segmentSelection.semanticCandidates);
15261
15275
  const pending = remainingLimit === 0 ? [] : (await listEvolutionTriggers({
15262
15276
  homeDir: input.homeDir,
15263
15277
  projectKey: input.projectKey,
@@ -15509,6 +15523,39 @@ async function processEvolutionTriggers(input) {
15509
15523
  await releaseEvolutionProcessLock(lock);
15510
15524
  }
15511
15525
  }
15526
+ async function selectPendingSegmentTriggers(input) {
15527
+ const scanLimit = Math.max(input.semanticLimit, Math.min(input.semanticLimit * LOCAL_SEGMENT_SCAN_MULTIPLIER, MAX_LOCAL_SEGMENT_SCAN_LIMIT));
15528
+ const selected = [];
15529
+ let semanticCandidates = 0;
15530
+ for (const trigger of input.triggers.slice(0, scanLimit)) {
15531
+ let requiresSemanticDistillation = true;
15532
+ try {
15533
+ const segment = await readSessionEvidenceSegment({
15534
+ homeDir: input.homeDir,
15535
+ projectKey: trigger.projectKey,
15536
+ sessionKey: trigger.sessionKey,
15537
+ segmentId: trigger.segmentId
15538
+ });
15539
+ const existingBatchId = segment.lifecycle.consumedByBatchIds.at(-1);
15540
+ if (segment.lifecycle.status === "distilled" && existingBatchId !== undefined) {
15541
+ requiresSemanticDistillation = false;
15542
+ } else {
15543
+ const analysis2 = analyzeSessionEvidenceSegment({
15544
+ homeDir: input.homeDir,
15545
+ segment,
15546
+ now: input.now
15547
+ });
15548
+ requiresSemanticDistillation = analysis2.evidenceWindow?.triggerPolicy.distillRecommended === true;
15549
+ }
15550
+ } catch {}
15551
+ if (requiresSemanticDistillation && semanticCandidates >= input.semanticLimit)
15552
+ break;
15553
+ selected.push(trigger);
15554
+ if (requiresSemanticDistillation)
15555
+ semanticCandidates += 1;
15556
+ }
15557
+ return { triggers: selected, semanticCandidates };
15558
+ }
15512
15559
  async function reportProgress(input, result, phase) {
15513
15560
  if (input.onProgress === undefined)
15514
15561
  return;
@@ -25996,8 +26043,23 @@ async function installCodexPlugin(input, options) {
25996
26043
  const selector = options.pluginSelector ?? "evodev@evodev";
25997
26044
  const args = ["plugin", "add", selector];
25998
26045
  const runner = options.commandRunner ?? new NodeCodexCommandRunner;
26046
+ const installedPlugin = input.force === true || options.pluginVersion === undefined ? null : await readInstalledCodexPlugin(runner, selector);
26047
+ let needsRepair = false;
26048
+ if (installedPlugin !== null && installedPlugin.version === options.pluginVersion && installedPlugin.enabled) {
26049
+ try {
26050
+ const hydration = await hydrateCodexWorkspaceCoreDependency({
26051
+ paths: options.paths,
26052
+ selector
26053
+ });
26054
+ if (hydration.warnings.length === 0 && hydration.errors.length === 0) {
26055
+ return createPluginInstallResult(input.targetPlugin, "already-installed", command, args, `Codex plugin ${selector} already matches EvoDev ${options.pluginVersion}; skipped marketplace refresh.`);
26056
+ }
26057
+ } catch {}
26058
+ needsRepair = true;
26059
+ }
26060
+ const effectiveInput = input.force === true || needsRepair || installedPlugin !== null && (installedPlugin.version !== options.pluginVersion || !installedPlugin.enabled) ? { ...input, force: true } : input;
25999
26061
  const primaryResult = await installCodexPluginOnce({
26000
- input,
26062
+ input: effectiveInput,
26001
26063
  command,
26002
26064
  selector,
26003
26065
  args,
@@ -26010,7 +26072,7 @@ async function installCodexPlugin(input, options) {
26010
26072
  return primaryResult;
26011
26073
  }
26012
26074
  const fallbackResult = await installCodexPluginOnce({
26013
- input,
26075
+ input: effectiveInput,
26014
26076
  command,
26015
26077
  selector,
26016
26078
  args,
@@ -26027,6 +26089,24 @@ async function installCodexPlugin(input, options) {
26027
26089
  ]
26028
26090
  };
26029
26091
  }
26092
+ async function readInstalledCodexPlugin(runner, selector) {
26093
+ try {
26094
+ const result = await runner.run("codex", ["plugin", "list", "--json"]);
26095
+ if (result.exitCode !== 0 || result.stdout === undefined)
26096
+ return null;
26097
+ const parsed = JSON.parse(result.stdout);
26098
+ const plugins2 = isRecord16(parsed) && Array.isArray(parsed.installed) ? parsed.installed : [];
26099
+ const plugin = plugins2.find((candidate) => isRecord16(candidate) && candidate.pluginId === selector);
26100
+ if (!isRecord16(plugin))
26101
+ return null;
26102
+ return {
26103
+ version: typeof plugin.version === "string" ? plugin.version : null,
26104
+ enabled: plugin.enabled !== false
26105
+ };
26106
+ } catch {
26107
+ return null;
26108
+ }
26109
+ }
26030
26110
  async function installCodexPluginOnce(input) {
26031
26111
  const { command, selector, args, runner } = input;
26032
26112
  const warnings = [];
@@ -26617,6 +26697,21 @@ async function installClaudeCodePlugin(input, options) {
26617
26697
  const args = ["plugin", "install", selector, "--scope", scope];
26618
26698
  const runner = options.commandRunner ?? new NodeClaudeCommandRunner2;
26619
26699
  const warnings = [];
26700
+ const installedPlugin = input.force === true || options.pluginVersion === undefined ? null : await readInstalledClaudePlugin(runner, selector);
26701
+ let needsRepair = false;
26702
+ if (installedPlugin !== null && installedPlugin.version === options.pluginVersion && installedPlugin.enabled) {
26703
+ try {
26704
+ const hydration = await hydrateClaudeWorkspaceCoreDependency({
26705
+ paths: options.paths,
26706
+ selector
26707
+ });
26708
+ if (hydration.warnings.length === 0 && hydration.errors.length === 0) {
26709
+ return createPluginInstallResult2(input.targetPlugin, "already-installed", command, args, `Claude Code plugin ${selector} already matches EvoDev ${options.pluginVersion}; skipped marketplace refresh.`);
26710
+ }
26711
+ } catch {}
26712
+ needsRepair = true;
26713
+ }
26714
+ const forceRefresh = input.force === true || needsRepair || installedPlugin !== null && (installedPlugin.version !== options.pluginVersion || !installedPlugin.enabled);
26620
26715
  try {
26621
26716
  if (options.pluginMarketplaceSource !== undefined) {
26622
26717
  const marketplaceResult = await runner.run(command, [
@@ -26645,7 +26740,7 @@ async function installClaudeCodePlugin(input, options) {
26645
26740
  }
26646
26741
  }
26647
26742
  }
26648
- if (input.force === true) {
26743
+ if (forceRefresh) {
26649
26744
  const uninstallArgs = [
26650
26745
  "plugin",
26651
26746
  "uninstall",
@@ -26675,7 +26770,7 @@ async function installClaudeCodePlugin(input, options) {
26675
26770
  if (isAlreadyInstalledMessage(result.stdout ?? result.stderr)) {
26676
26771
  return createPluginInstallResult2(input.targetPlugin, "already-installed", command, args, result.stdout, [
26677
26772
  ...warnings,
26678
- input.force === true ? "Claude Code reported the plugin is already installed after forced refresh; check the local plugin cache if changes are not visible." : "Claude Code reported the plugin is already installed; if local plugin files changed without a version bump, Claude may keep the existing cached copy. Bump the plugin version or uninstall and reinstall to refresh the cache."
26773
+ forceRefresh ? "Claude Code reported the plugin is already installed after forced refresh; check the local plugin cache if changes are not visible." : "Claude Code reported the plugin is already installed; if local plugin files changed without a version bump, Claude may keep the existing cached copy. Bump the plugin version or uninstall and reinstall to refresh the cache."
26679
26774
  ]);
26680
26775
  }
26681
26776
  return createPluginInstallResult2(input.targetPlugin, "installed", command, args, result.stdout, warnings);
@@ -26685,6 +26780,24 @@ async function installClaudeCodePlugin(input, options) {
26685
26780
  return createPluginInstallResult2(input.targetPlugin, "failed", command, args, describeError8(error));
26686
26781
  }
26687
26782
  }
26783
+ async function readInstalledClaudePlugin(runner, selector) {
26784
+ try {
26785
+ const result = await runner.run("claude", ["plugin", "list", "--json"]);
26786
+ if (result.exitCode !== 0 || result.stdout === undefined)
26787
+ return null;
26788
+ const parsed = JSON.parse(result.stdout);
26789
+ const plugins2 = Array.isArray(parsed) ? parsed : isRecord17(parsed) && Array.isArray(parsed.plugins) ? parsed.plugins : [];
26790
+ const plugin = plugins2.find((candidate) => isRecord17(candidate) && candidate.id === selector);
26791
+ if (!isRecord17(plugin))
26792
+ return null;
26793
+ return {
26794
+ version: typeof plugin.version === "string" ? plugin.version : null,
26795
+ enabled: plugin.enabled !== false
26796
+ };
26797
+ } catch {
26798
+ return null;
26799
+ }
26800
+ }
26688
26801
  function isAlreadyInstalledMessage(message) {
26689
26802
  return message !== undefined && /already\s+installed/i.test(message);
26690
26803
  }
@@ -26925,6 +27038,9 @@ function isNotFoundError11(error) {
26925
27038
  function isNotDirectoryError(error) {
26926
27039
  return error instanceof Error && "code" in error && error.code === "ENOTDIR";
26927
27040
  }
27041
+ function isRecord17(value) {
27042
+ return typeof value === "object" && value !== null && !Array.isArray(value);
27043
+ }
26928
27044
  function describeError8(error) {
26929
27045
  if (error instanceof Error) {
26930
27046
  return error.message;
@@ -26935,13 +27051,14 @@ function describeError8(error) {
26935
27051
  var PROGRESS_BAR_WIDTH = 16;
26936
27052
  var DOING_STATUS_FRAMES = ["⏳", "⌛"];
26937
27053
  var DEFAULT_INTERACTIVE_COLUMNS = 80;
27054
+ var DEFAULT_TERMINAL_STATUS_VISIBLE_MS = 150;
26938
27055
  var WIDE_TERMINAL_CHARACTER = /[\p{Extended_Pictographic}\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}]/u;
26939
27056
  function createProgressReporter(options = {}) {
26940
27057
  const stream = options.stream;
26941
27058
  const interactive = options.interactive ?? (options.write === undefined && stream?.isTTY === true && typeof stream.clearLine === "function" && typeof stream.cursorTo === "function");
26942
27059
  const writeLine = options.write ?? ((message) => (stream ?? process.stdout).write(`${message}
26943
27060
  `));
26944
- const minTerminalStatusVisibleMs = options.minTerminalStatusVisibleMs ?? (interactive ? 500 : 0);
27061
+ const minTerminalStatusVisibleMs = options.minTerminalStatusVisibleMs ?? (interactive ? DEFAULT_TERMINAL_STATUS_VISIBLE_MS : 0);
26945
27062
  const doingAnimationIntervalMs = options.doingAnimationIntervalMs ?? (interactive ? 800 : 0);
26946
27063
  const sleep2 = options.sleep ?? defaultSleep;
26947
27064
  const setAnimationInterval = options.setAnimationInterval ?? ((callback, ms) => setInterval(callback, ms));
@@ -27138,6 +27255,9 @@ function defaultSleep(ms) {
27138
27255
  return new Promise((resolve10) => setTimeout(resolve10, ms));
27139
27256
  }
27140
27257
 
27258
+ // packages/cli/src/version.ts
27259
+ var CLI_VERSION = "0.0.1-alpha.19";
27260
+
27141
27261
  // packages/cli/src/init.ts
27142
27262
  var DEFAULT_CODE_AGENT_MARKETPLACE_SOURCE = "limerickgds/evodev";
27143
27263
  var DEFAULT_CODEX_MARKETPLACE_SOURCE = "git@github.com:limerickgds/evodev.git";
@@ -27426,12 +27546,14 @@ function createDefaultInitPluginRegistry(homeDir, options = {}) {
27426
27546
  const claudeOptions = {
27427
27547
  paths: resolveClaudePaths({ homeDir }),
27428
27548
  pluginMarketplaceSource: marketplaceSource,
27549
+ pluginVersion: CLI_VERSION,
27429
27550
  ...options.claudePluginOptions
27430
27551
  };
27431
27552
  const codexOptions = {
27432
27553
  paths: resolveCodexPaths({ homeDir }),
27433
27554
  pluginMarketplaceSource: explicitMarketplaceSource ?? DEFAULT_CODEX_MARKETPLACE_SOURCE,
27434
27555
  pluginMarketplaceFallbackSource: explicitMarketplaceSource === undefined ? DEFAULT_CODEX_MARKETPLACE_FALLBACK_SOURCE : undefined,
27556
+ pluginVersion: CLI_VERSION,
27435
27557
  ...options.codexPluginOptions
27436
27558
  };
27437
27559
  return createPluginRegistry([createClaudePlugin(claudeOptions), createCodexPlugin(codexOptions)]);
@@ -27442,12 +27564,12 @@ function createInitProgressReporter(options = console.log) {
27442
27564
  }
27443
27565
  return createProgressReporter(options);
27444
27566
  }
27445
- var EVOHUB_BANNER = [
27446
- "█████ █ █ ███ █ █ █ █ ████ ",
27447
- "█ █ █ █ █ █ █ █ █",
27448
- "████ █ ██████ █ █ ████ ",
27449
- "█ █ █ █ █ █ █ █ █ █",
27450
- "█████ █ ███ ███ ████ "
27567
+ var EVODEV_BANNER = [
27568
+ "█████ █ █ ███ ████ █████ █ █",
27569
+ "█ █ █ █ █ █ █ █ █ █",
27570
+ "████ █ █ █ █ █ ████ █ █",
27571
+ "█ █ █ █ █ █ █ █ █ █ ",
27572
+ "█████ █ ███ ████ █████ █ "
27451
27573
  ];
27452
27574
  function formatInitSummary(input) {
27453
27575
  const failedPluginInstall = hasFailedPluginInstallResult(input.pluginInstallResults);
@@ -27463,7 +27585,7 @@ function formatInitSummary(input) {
27463
27585
  return [
27464
27586
  "EvoDev init result",
27465
27587
  "",
27466
- ...EVOHUB_BANNER,
27588
+ ...EVODEV_BANNER,
27467
27589
  "",
27468
27590
  failedPluginInstall ? "❌ Status: stopped" : "✅ Status: ready",
27469
27591
  failedPluginInstall ? "Progress: stopped at Code Agent plugin install" : "Progress: 7/7 complete",
@@ -27496,7 +27618,7 @@ function formatInitStoppedSummary(input) {
27496
27618
  return [
27497
27619
  "EvoDev init result",
27498
27620
  "",
27499
- ...EVOHUB_BANNER,
27621
+ ...EVODEV_BANNER,
27500
27622
  "",
27501
27623
  "❌ Status: stopped",
27502
27624
  "Progress: stopped at doctor gate",
@@ -27989,7 +28111,7 @@ async function installSelectedCodeAgentPlugins(selectedPlugins, pluginRegistry,
27989
28111
  });
27990
28112
  continue;
27991
28113
  }
27992
- const result = await plugin.installPlugin({ targetPlugin: pluginId, force: true });
28114
+ const result = await plugin.installPlugin({ targetPlugin: pluginId, force: false });
27993
28115
  results.push(result);
27994
28116
  emitInitProgress(progress, {
27995
28117
  status: result.status === "failed" ? "failed" : result.status === "skipped" ? "skipped" : "done",
@@ -28894,7 +29016,7 @@ function redactRawExcerptContent(content) {
28894
29016
  return line;
28895
29017
  try {
28896
29018
  const event = JSON.parse(line);
28897
- if (!isRecord17(event)) {
29019
+ if (!isRecord18(event)) {
28898
29020
  const safeLine = redactSessionMemoryCredentialText(line);
28899
29021
  redacted ||= safeLine.redacted;
28900
29022
  return safeLine.value;
@@ -28933,7 +29055,7 @@ function parseRawEvents(content) {
28933
29055
  continue;
28934
29056
  try {
28935
29057
  const event = JSON.parse(line);
28936
- if (!isRecord17(event))
29058
+ if (!isRecord18(event))
28937
29059
  continue;
28938
29060
  const payload = typeof event.rawPayloadJson === "string" ? safeJsonParse(event.rawPayloadJson) : null;
28939
29061
  events.push({
@@ -28950,7 +29072,7 @@ function parseRawEvents(content) {
28950
29072
  }
28951
29073
  function findTranscriptPointer(events) {
28952
29074
  for (const event of [...events].reverse()) {
28953
- if (!isRecord17(event.payload))
29075
+ if (!isRecord18(event.payload))
28954
29076
  continue;
28955
29077
  const path2 = stringValue(event.payload.transcript_path) ?? stringValue(event.payload.transcriptPath) ?? stringValue(event.payload.trace_path) ?? stringValue(event.payload.tracePath);
28956
29078
  if (path2 === null)
@@ -29008,7 +29130,7 @@ async function readLargeTranscriptWindow(path2, target, pointer) {
29008
29130
  if (line.trim() === "")
29009
29131
  continue;
29010
29132
  const value = safeJsonParse(line);
29011
- if (value === null || !isRecord17(value))
29133
+ if (value === null || !isRecord18(value))
29012
29134
  continue;
29013
29135
  if (target === "codex" && value.type === "session_meta") {
29014
29136
  sessionMeta = value;
@@ -29053,7 +29175,7 @@ async function readLargeTranscriptWindow(path2, target, pointer) {
29053
29175
  return sessionMeta === null ? selected : [sessionMeta, ...selected];
29054
29176
  }
29055
29177
  function codexTurnStart(value) {
29056
- if (!isRecord17(value.payload))
29178
+ if (!isRecord18(value.payload))
29057
29179
  return null;
29058
29180
  if (value.type === "event_msg" && value.payload.type === "task_started" || value.type === "turn_context") {
29059
29181
  return stringValue(value.payload.turn_id);
@@ -29061,17 +29183,17 @@ function codexTurnStart(value) {
29061
29183
  return null;
29062
29184
  }
29063
29185
  function isCodexTurnComplete(value) {
29064
- return value.type === "event_msg" && isRecord17(value.payload) && value.payload.type === "task_complete";
29186
+ return value.type === "event_msg" && isRecord18(value.payload) && value.payload.type === "task_complete";
29065
29187
  }
29066
29188
  function claudeTurnStart(value) {
29067
- if (!isRecord17(value.message) || value.message.role !== "user")
29189
+ if (!isRecord18(value.message) || value.message.role !== "user")
29068
29190
  return null;
29069
29191
  const blocks = Array.isArray(value.message.content) ? value.message.content : [value.message.content];
29070
- const hasPrompt = blocks.some((block) => typeof block === "string" || isRecord17(block) && block.type !== "tool_result");
29192
+ const hasPrompt = blocks.some((block) => typeof block === "string" || isRecord18(block) && block.type !== "tool_result");
29071
29193
  return hasPrompt ? stringValue(value.promptId) ?? stringValue(value.uuid) ?? "claude-turn" : null;
29072
29194
  }
29073
29195
  function recordContainsCallId(value, callId) {
29074
- if (!isRecord17(value))
29196
+ if (!isRecord18(value))
29075
29197
  return false;
29076
29198
  if (value.call_id === callId || value.id === callId || value.tool_use_id === callId || value.toolUseId === callId) {
29077
29199
  return true;
@@ -29096,17 +29218,17 @@ function parseJsonLines(text2) {
29096
29218
  return values;
29097
29219
  }
29098
29220
  function parseCodexConversation(records) {
29099
- const events = records.filter(isRecord17);
29221
+ const events = records.filter(isRecord18);
29100
29222
  const sessionMeta = events.find((event) => event.type === "session_meta");
29101
- const sessionId = isRecord17(sessionMeta?.payload) ? stringValue(sessionMeta.payload.id) ?? stringValue(sessionMeta.payload.session_id) : null;
29223
+ const sessionId = isRecord18(sessionMeta?.payload) ? stringValue(sessionMeta.payload.id) ?? stringValue(sessionMeta.payload.session_id) : null;
29102
29224
  const hasResponseUser = hasCodexResponseMessage(events, "user");
29103
29225
  const hasResponseAssistant = hasCodexResponseMessage(events, "assistant");
29104
- const hasResponseReasoning = events.some((event) => event.type === "response_item" && isRecord17(event.payload) && event.payload.type === "reasoning");
29226
+ const hasResponseReasoning = events.some((event) => event.type === "response_item" && isRecord18(event.payload) && event.payload.type === "reasoning");
29105
29227
  const callNames = new Map;
29106
29228
  const messages = [];
29107
29229
  let activeTurnId = null;
29108
29230
  for (const [index, event] of events.entries()) {
29109
- const payload = isRecord17(event.payload) ? event.payload : {};
29231
+ const payload = isRecord18(event.payload) ? event.payload : {};
29110
29232
  const eventType = stringValue(event.type) ?? "unknown";
29111
29233
  const payloadType = stringValue(payload.type) ?? "unknown";
29112
29234
  const timestamp = stringValue(event.timestamp);
@@ -29174,13 +29296,13 @@ function parseClaudeConversation(records) {
29174
29296
  let currentTurnId = null;
29175
29297
  let turnCounter = 0;
29176
29298
  for (const [recordIndex, value] of records.entries()) {
29177
- if (!isRecord17(value) || !isRecord17(value.message))
29299
+ if (!isRecord18(value) || !isRecord18(value.message))
29178
29300
  continue;
29179
29301
  sessionId ??= stringValue(value.sessionId);
29180
29302
  const role = coerceRole(stringValue(value.message.role));
29181
29303
  const content = value.message.content;
29182
29304
  const blocks = Array.isArray(content) ? content : [content];
29183
- const hasPlainUserContent = role === "user" && blocks.some((block) => typeof block === "string" || isRecord17(block) && block.type !== "tool_result");
29305
+ const hasPlainUserContent = role === "user" && blocks.some((block) => typeof block === "string" || isRecord18(block) && block.type !== "tool_result");
29184
29306
  if (hasPlainUserContent) {
29185
29307
  turnCounter += 1;
29186
29308
  currentTurnId = stringValue(value.promptId) ?? stringValue(value.uuid) ?? `claude-turn-${turnCounter}`;
@@ -29193,7 +29315,7 @@ function parseClaudeConversation(records) {
29193
29315
  turnId: currentTurnId,
29194
29316
  metadata: compactMetadata({
29195
29317
  eventType: stringValue(value.type) ?? "message",
29196
- payloadType: isRecord17(block) ? stringValue(block.type) ?? "unknown" : "text",
29318
+ payloadType: isRecord18(block) ? stringValue(block.type) ?? "unknown" : "text",
29197
29319
  sourceLine: recordIndex + 1,
29198
29320
  model: stringValue(value.message.model)
29199
29321
  })
@@ -29202,7 +29324,7 @@ function parseClaudeConversation(records) {
29202
29324
  messages.push(createMessage(`${recordId}-${blockIndex}`, displayRoleForText(role, block), "text", block, base));
29203
29325
  continue;
29204
29326
  }
29205
- if (!isRecord17(block))
29327
+ if (!isRecord18(block))
29206
29328
  continue;
29207
29329
  const blockType = stringValue(block.type) ?? "unknown";
29208
29330
  if (blockType === "text") {
@@ -29306,7 +29428,7 @@ function truncateUtf8(value, maxBytes) {
29306
29428
  };
29307
29429
  }
29308
29430
  function hasCodexResponseMessage(events, role) {
29309
- return events.some((event) => event.type === "response_item" && isRecord17(event.payload) && event.payload.type === "message" && event.payload.role === role);
29431
+ return events.some((event) => event.type === "response_item" && isRecord18(event.payload) && event.payload.type === "message" && event.payload.role === role);
29310
29432
  }
29311
29433
  function coerceRole(value) {
29312
29434
  if (value === "user" || value === "assistant" || value === "developer" || value === "system" || value === "tool") {
@@ -29326,7 +29448,7 @@ function extractText(value) {
29326
29448
  if (Array.isArray(value))
29327
29449
  return value.map(extractText).filter(Boolean).join(`
29328
29450
  `);
29329
- if (!isRecord17(value))
29451
+ if (!isRecord18(value))
29330
29452
  return "";
29331
29453
  for (const key of ["text", "content", "value", "thinking"]) {
29332
29454
  if (key in value) {
@@ -29369,7 +29491,7 @@ function safeTranscriptError(error) {
29369
29491
  return message;
29370
29492
  return "The linked native transcript is unavailable or unreadable.";
29371
29493
  }
29372
- function isRecord17(value) {
29494
+ function isRecord18(value) {
29373
29495
  return typeof value === "object" && value !== null && !Array.isArray(value);
29374
29496
  }
29375
29497
 
@@ -29447,7 +29569,7 @@ function createCodexSessionKnowledgeAnalyzer(input = {}) {
29447
29569
  };
29448
29570
  }
29449
29571
  function parseSemanticKnowledgeAnalysis(value) {
29450
- if (!isRecord18(value))
29572
+ if (!isRecord19(value))
29451
29573
  throw new Error("Semantic knowledge analyzer output must be an object.");
29452
29574
  const decision = value.decision;
29453
29575
  if (decision !== "write" && decision !== "no_write") {
@@ -29465,7 +29587,7 @@ function parseSemanticKnowledgeAnalysis(value) {
29465
29587
  };
29466
29588
  }
29467
29589
  function parseSemanticCandidate(value, index) {
29468
- if (!isRecord18(value))
29590
+ if (!isRecord19(value))
29469
29591
  throw new Error(`candidates[${index}] must be an object.`);
29470
29592
  const kind = value.kind;
29471
29593
  const confidence = value.confidence;
@@ -29773,7 +29895,7 @@ async function runCodex(input) {
29773
29895
  }
29774
29896
  async function resolveSegmentRepoRoot(events, homeDir) {
29775
29897
  for (const event of [...events].reverse()) {
29776
- if (!isRecord18(event.payload) || typeof event.payload.cwd !== "string")
29898
+ if (!isRecord19(event.payload) || typeof event.payload.cwd !== "string")
29777
29899
  continue;
29778
29900
  const cwd = await realpath4(event.payload.cwd).catch(() => null);
29779
29901
  if (cwd === null || cwd === resolve11(homeDir) || !await isDirectory3(cwd))
@@ -29957,7 +30079,7 @@ async function isDirectory3(path2) {
29957
30079
  return false;
29958
30080
  }
29959
30081
  }
29960
- function isRecord18(value) {
30082
+ function isRecord19(value) {
29961
30083
  return typeof value === "object" && value !== null && !Array.isArray(value);
29962
30084
  }
29963
30085
  var SEMANTIC_KINDS = new Set([
@@ -34083,6 +34205,7 @@ function shouldRunLazyEvolutionFallback(argv) {
34083
34205
  "daemon",
34084
34206
  "doctor",
34085
34207
  "hook",
34208
+ "init",
34086
34209
  "knowledge",
34087
34210
  "mcp",
34088
34211
  "observability",
@@ -34904,7 +35027,7 @@ function createCodexImprovementEvalAnalyzer(input = {}) {
34904
35027
  };
34905
35028
  }
34906
35029
  function parseImprovementEvalReplayAnalysis(value) {
34907
- if (!isRecord19(value))
35030
+ if (!isRecord20(value))
34908
35031
  throw new Error("Improvement eval output must be an object.");
34909
35032
  return {
34910
35033
  targetFixed: requiredSignal(value.targetFixed, "targetFixed"),
@@ -35088,14 +35211,14 @@ function parseCodexReplayMetrics(output) {
35088
35211
  continue;
35089
35212
  try {
35090
35213
  const event = JSON.parse(line);
35091
- if (!isRecord19(event))
35214
+ if (!isRecord20(event))
35092
35215
  continue;
35093
- const usage = isRecord19(event.usage) ? event.usage : null;
35216
+ const usage = isRecord20(event.usage) ? event.usage : null;
35094
35217
  if (usage !== null) {
35095
35218
  inputTokens = readNonNegativeInteger(usage.input_tokens) ?? inputTokens;
35096
35219
  outputTokens = readNonNegativeInteger(usage.output_tokens) ?? outputTokens;
35097
35220
  }
35098
- const item = isRecord19(event.item) ? event.item : null;
35221
+ const item = isRecord20(event.item) ? event.item : null;
35099
35222
  if (item !== null && typeof item.type === "string" && ["command_execution", "mcp_tool_call", "web_search"].includes(item.type)) {
35100
35223
  if (typeof item.id === "string")
35101
35224
  toolCallIds.add(item.id);
@@ -35187,7 +35310,7 @@ function summarizeProcessError(value) {
35187
35310
  function safeError(error) {
35188
35311
  return redactSessionMemoryCredentialText(error instanceof Error ? error.message : String(error)).value.replace(/\s+/gu, " ").slice(0, 500);
35189
35312
  }
35190
- function isRecord19(value) {
35313
+ function isRecord20(value) {
35191
35314
  return typeof value === "object" && value !== null && !Array.isArray(value);
35192
35315
  }
35193
35316
  var IMPROVEMENT_EVAL_SCHEMA = {
@@ -35942,7 +36065,7 @@ async function acquireExecutionLock(path2, latest) {
35942
36065
  async function isExecutionLockOwnerAlive(path2) {
35943
36066
  try {
35944
36067
  const value = JSON.parse(await readFile34(path2, "utf8"));
35945
- return isRecord20(value) && typeof value.pid === "number" && isProcessAlive2(value.pid);
36068
+ return isRecord21(value) && typeof value.pid === "number" && isProcessAlive2(value.pid);
35946
36069
  } catch {
35947
36070
  return false;
35948
36071
  }
@@ -35957,7 +36080,7 @@ async function writeExecutionRecord(homeDir, proposal, record) {
35957
36080
  await rename7(temporary, path2);
35958
36081
  }
35959
36082
  function parseExecutionRecord(value) {
35960
- if (!isRecord20(value))
36083
+ if (!isRecord21(value))
35961
36084
  throw new Error("Execution record must be an object.");
35962
36085
  const allowedKeys = new Set([
35963
36086
  "schemaVersion",
@@ -36039,7 +36162,7 @@ function isProcessAlive2(pid) {
36039
36162
  return false;
36040
36163
  }
36041
36164
  }
36042
- function isRecord20(value) {
36165
+ function isRecord21(value) {
36043
36166
  return typeof value === "object" && value !== null && !Array.isArray(value);
36044
36167
  }
36045
36168
  function isNotFoundError15(error) {
@@ -36148,8 +36271,12 @@ async function scanSessionRepoProposalsUnlocked(options) {
36148
36271
  continue;
36149
36272
  }
36150
36273
  const repoRoot = await resolveSegmentRepoRoot2(detail.rawEvents, options.homeDir);
36151
- if (repoRoot === null)
36152
- throw new Error("Could not resolve the repository used by this session.");
36274
+ if (repoRoot === null) {
36275
+ result.noChange += 1;
36276
+ await writeReceipt(receiptPath, createReceipt(segment, now2, "no-change", null, "The session path is not inside a Git repository."));
36277
+ await reportProposalProgress(options, result, "updated");
36278
+ continue;
36279
+ }
36153
36280
  const repositorySnapshot = await inspectRepoProposalRepositorySnapshot(repoRoot);
36154
36281
  const analysis3 = parseSessionProposalAnalysis(await analyzer({
36155
36282
  repoRoot,
@@ -36411,7 +36538,7 @@ function createCodexSessionProposalAnalyzer(input = {}) {
36411
36538
  };
36412
36539
  }
36413
36540
  function parseSessionProposalAnalysis(value) {
36414
- if (!isRecord21(value))
36541
+ if (!isRecord22(value))
36415
36542
  throw new Error("Session proposal analyzer output must be an object.");
36416
36543
  const decision = value.decision;
36417
36544
  if (decision !== "propose" && decision !== "no-change") {
@@ -36470,7 +36597,7 @@ function formatConversation(detail) {
36470
36597
  }
36471
36598
  async function resolveSegmentRepoRoot2(events, homeDir) {
36472
36599
  for (const event of [...events].reverse()) {
36473
- if (!isRecord21(event.payload) || typeof event.payload.cwd !== "string")
36600
+ if (!isRecord22(event.payload) || typeof event.payload.cwd !== "string")
36474
36601
  continue;
36475
36602
  const cwd = await realpath7(event.payload.cwd).catch(() => null);
36476
36603
  if (cwd === null || cwd === resolve14(homeDir))
@@ -36489,7 +36616,7 @@ async function findRepositoryRoot2(cwd, homeDir) {
36489
36616
  return current;
36490
36617
  current = dirname29(current);
36491
36618
  }
36492
- return cwd;
36619
+ return null;
36493
36620
  }
36494
36621
  async function validatePlannedFiles(repoRoot, files) {
36495
36622
  if (files.length === 0)
@@ -36665,7 +36792,7 @@ async function runCodex2(input) {
36665
36792
  });
36666
36793
  }
36667
36794
  function parsePlannedFile(value, index) {
36668
- if (!isRecord21(value))
36795
+ if (!isRecord22(value))
36669
36796
  throw new Error(`plannedFiles[${index}] must be an object.`);
36670
36797
  return {
36671
36798
  relativePath: requiredString3(value.relativePath, `plannedFiles[${index}].relativePath`),
@@ -36675,7 +36802,7 @@ function parsePlannedFile(value, index) {
36675
36802
  };
36676
36803
  }
36677
36804
  function parseCurrentStateAnalysis(value) {
36678
- if (!isRecord21(value))
36805
+ if (!isRecord22(value))
36679
36806
  throw new Error("currentState must be an object.");
36680
36807
  if (typeof value.explicitUserRequest !== "boolean") {
36681
36808
  throw new Error("currentState.explicitUserRequest must be a boolean.");
@@ -36765,7 +36892,7 @@ async function releaseScanLock(lock) {
36765
36892
  async function readScanLockOwner(path2) {
36766
36893
  try {
36767
36894
  const value = JSON.parse(await readFile35(path2, "utf8"));
36768
- return isRecord21(value) && typeof value.ownerId === "string" ? value.ownerId : null;
36895
+ return isRecord22(value) && typeof value.ownerId === "string" ? value.ownerId : null;
36769
36896
  } catch {
36770
36897
  return null;
36771
36898
  }
@@ -36844,7 +36971,7 @@ function selectIndependentCandidateReceipts(candidates2) {
36844
36971
  async function readReceipt(path2) {
36845
36972
  try {
36846
36973
  const value = JSON.parse(await readFile35(path2, "utf8"));
36847
- return isRecord21(value) && value.kind === "session-repo-proposal-receipt" ? value : null;
36974
+ return isRecord22(value) && value.kind === "session-repo-proposal-receipt" ? value : null;
36848
36975
  } catch {
36849
36976
  return null;
36850
36977
  }
@@ -36852,7 +36979,7 @@ async function readReceipt(path2) {
36852
36979
  async function readDailyState(path2) {
36853
36980
  try {
36854
36981
  const value = JSON.parse(await readFile35(path2, "utf8"));
36855
- return isRecord21(value) && value.kind === "session-repo-proposal-daily-state" ? value : null;
36982
+ return isRecord22(value) && value.kind === "session-repo-proposal-daily-state" ? value : null;
36856
36983
  } catch {
36857
36984
  return null;
36858
36985
  }
@@ -36932,7 +37059,7 @@ function createLocalStableId2(prefix, parts) {
36932
37059
  const digest = createHash12("sha256").update(parts.join("\x00")).digest("hex").slice(0, 16);
36933
37060
  return `${prefix}-${digest}`;
36934
37061
  }
36935
- function isRecord21(value) {
37062
+ function isRecord22(value) {
36936
37063
  return typeof value === "object" && value !== null && !Array.isArray(value);
36937
37064
  }
36938
37065
  function isFileExistsError2(error) {
@@ -39817,14 +39944,14 @@ function parseCodexModelCatalog(value) {
39817
39944
  } catch {
39818
39945
  return [];
39819
39946
  }
39820
- if (!isRecord22(parsed) || !Array.isArray(parsed.models))
39947
+ if (!isRecord23(parsed) || !Array.isArray(parsed.models))
39821
39948
  return [];
39822
39949
  const models = [];
39823
39950
  const seenModels = new Set;
39824
39951
  for (const entry of parsed.models) {
39825
39952
  if (models.length >= MAX_CODEX_MODELS)
39826
39953
  break;
39827
- if (!isRecord22(entry))
39954
+ if (!isRecord23(entry))
39828
39955
  continue;
39829
39956
  const id = printableText(entry.slug, 120);
39830
39957
  if (id === null || seenModels.has(id))
@@ -39832,7 +39959,7 @@ function parseCodexModelCatalog(value) {
39832
39959
  const label = printableText(entry.display_name, 120) ?? id;
39833
39960
  const defaultReasoningEffort = printableText(entry.default_reasoning_level, 40) ?? "medium";
39834
39961
  const supportedReasoningEfforts = Array.isArray(entry.supported_reasoning_levels) ? [
39835
- ...new Set(entry.supported_reasoning_levels.map((option) => isRecord22(option) ? printableText(option.effort, 40) : null).filter((effort) => effort !== null))
39962
+ ...new Set(entry.supported_reasoning_levels.map((option) => isRecord23(option) ? printableText(option.effort, 40) : null).filter((effort) => effort !== null))
39836
39963
  ].slice(0, MAX_REASONING_EFFORTS) : [];
39837
39964
  seenModels.add(id);
39838
39965
  models.push({ id, label, defaultReasoningEffort, supportedReasoningEfforts });
@@ -39915,7 +40042,7 @@ function printableText(value, maxLength) {
39915
40042
  }
39916
40043
  return normalized;
39917
40044
  }
39918
- function isRecord22(value) {
40045
+ function isRecord23(value) {
39919
40046
  return typeof value === "object" && value !== null && !Array.isArray(value);
39920
40047
  }
39921
40048
 
@@ -43010,7 +43137,6 @@ function getHelpText() {
43010
43137
  ].join(`
43011
43138
  `);
43012
43139
  }
43013
- var CLI_VERSION = "0.0.1-alpha.18";
43014
43140
  function getVersionText() {
43015
43141
  return `evodev ${CLI_VERSION}`;
43016
43142
  }
@@ -43699,112 +43825,112 @@ function isMainModule() {
43699
43825
  return process.argv[1] !== undefined && realpathSync2(fileURLToPath5(import.meta.url)) === realpathSync2(resolve15(process.argv[1]));
43700
43826
  }
43701
43827
  export {
43702
- updateUiSetting,
43703
- updateUiEvolutionScheduler,
43704
- updateEvoDevSetting,
43705
- shouldRunPostCommandMaintenance,
43706
- shouldRunLazyEvolutionFallback,
43707
- scanSessionRepoProposals,
43708
- runWorkflowCommand,
43709
- runUiCommand,
43710
- runTrajectoryImportCommand,
43711
- runTraceCommand,
43712
- runTeamCommand,
43713
- runSyncCommand,
43714
- runScheduleCommand,
43715
- runRepoProposalApplication,
43716
- runPluginCommand,
43717
- runPendingImprovementEvaluations,
43718
- runPackCommand,
43719
- runObservabilityCommand,
43720
- runMcpCommand,
43721
- runLearnCommand,
43722
- runLazyEvolutionFallback,
43723
- runKnowledgeCommand,
43724
- runInit,
43725
- runHookCommand,
43726
- runEvoCommand,
43727
- runDoctor,
43728
- runDailySessionProposalScan,
43729
- runDaemonCommand,
43730
- runConfigSetCommand,
43731
- runConfigGetCommand,
43732
- runConfigCommand,
43733
- runAgentSpawnCommand,
43734
- runAgentCommand,
43735
- run,
43736
- resolveLazyEvolutionStatePath,
43737
- resolveLaunchAgentPath,
43738
- resolveLatestEvolutionJobPath,
43739
- resolveInitProjectCandidates,
43740
- resolveEvolutionJobPath,
43741
- resolveDefaultCodeAgentSelections,
43742
- resolveDailyScheduleStatePath,
43743
- renderUiDashboardHtml,
43744
- renderLaunchAgentPlist,
43745
- recordDailyEvolutionRun,
43746
- readUiSettingsSnapshot,
43747
- readUiDashboardSnapshot,
43748
- readSessionProposalBacklogStatus,
43749
- readLazyEvolutionStatus,
43750
- readLatestEvolutionJob,
43751
- readEvolutionJob,
43752
- readEvoDevSettingsSnapshot,
43753
- readDailySessionProposalState,
43754
- readDailyEvolutionScheduleStatus,
43755
- readDailyEvolutionScheduleState,
43756
- previewTrajectoryImport,
43757
- prepareTrajectoryImport,
43758
- prepareDailyEvolutionSchedule,
43759
- parseSyncFlags,
43760
- parseSessionProposalAnalysis,
43761
- parseSemanticKnowledgeAnalysis,
43762
- parseInitFlags,
43763
- parseImprovementEvalReplayAnalysis,
43764
- parseCodexModelCatalog,
43765
- listEvolutionJobs,
43766
- getWorkflowHelpText,
43767
- getVersionText,
43768
- getUiHelpText,
43769
- getTeamHelpText,
43770
- getTeamConfigHelpText,
43771
- getScheduleHelpText,
43772
- getPackHelpText,
43773
- getHelpText,
43774
- formatTrajectoryImportPreview,
43775
- formatTrajectoryImportApplyResult,
43776
- formatSyncOutput,
43777
- formatDoctorOutput,
43778
- discoverCodexRuntime,
43779
- decideDailyEvolutionTick,
43780
- createSessionKnowledgeDistiller,
43781
- createInteractivePrompter,
43782
- createInitProjectChoices,
43783
- createEvoDevSettingsRevision,
43784
- createDefaultInitPluginRegistry,
43785
- createCodexSessionProposalAnalyzer,
43786
- createCodexSessionKnowledgeAnalyzer,
43787
- createCodexImprovementEvalAnalyzer,
43788
- createCodeAgentChoices,
43789
- compareSemver,
43790
- classifyImprovementEvalAnalysis,
43791
- checkForUpdates,
43792
- applyReviewDecision,
43793
- applyEvoDevSettingsMutation,
43794
- ReviewDecisionError,
43795
- OsEvolutionScheduler,
43796
- EvolutionJobService,
43797
- EvolutionJobNotFoundError,
43798
- EvolutionJobBusyError,
43799
- EvoDevSettingsMutationError,
43800
- EVO_DEV_SETTINGS_KEYS,
43801
- EVOLUTION_SCHEDULE_LABEL,
43802
- EVOLUTION_SCHEDULE_INTERVAL_SECONDS,
43803
- DEFAULT_LAZY_EVOLUTION_LIMIT,
43804
- DEFAULT_LAZY_EVOLUTION_INTERVAL_MS,
43805
- DEFAULT_EVOLUTION_SCHEDULE_DAILY_TIME,
43806
- DEFAULT_CODE_AGENT_MARKETPLACE_SOURCE,
43807
- DEFAULT_CODEX_MARKETPLACE_SOURCE,
43828
+ CLI_VERSION,
43808
43829
  DEFAULT_CODEX_MARKETPLACE_FALLBACK_SOURCE,
43809
- CLI_VERSION
43830
+ DEFAULT_CODEX_MARKETPLACE_SOURCE,
43831
+ DEFAULT_CODE_AGENT_MARKETPLACE_SOURCE,
43832
+ DEFAULT_EVOLUTION_SCHEDULE_DAILY_TIME,
43833
+ DEFAULT_LAZY_EVOLUTION_INTERVAL_MS,
43834
+ DEFAULT_LAZY_EVOLUTION_LIMIT,
43835
+ EVOLUTION_SCHEDULE_INTERVAL_SECONDS,
43836
+ EVOLUTION_SCHEDULE_LABEL,
43837
+ EVO_DEV_SETTINGS_KEYS,
43838
+ EvoDevSettingsMutationError,
43839
+ EvolutionJobBusyError,
43840
+ EvolutionJobNotFoundError,
43841
+ EvolutionJobService,
43842
+ OsEvolutionScheduler,
43843
+ ReviewDecisionError,
43844
+ applyEvoDevSettingsMutation,
43845
+ applyReviewDecision,
43846
+ checkForUpdates,
43847
+ classifyImprovementEvalAnalysis,
43848
+ compareSemver,
43849
+ createCodeAgentChoices,
43850
+ createCodexImprovementEvalAnalyzer,
43851
+ createCodexSessionKnowledgeAnalyzer,
43852
+ createCodexSessionProposalAnalyzer,
43853
+ createDefaultInitPluginRegistry,
43854
+ createEvoDevSettingsRevision,
43855
+ createInitProjectChoices,
43856
+ createInteractivePrompter,
43857
+ createSessionKnowledgeDistiller,
43858
+ decideDailyEvolutionTick,
43859
+ discoverCodexRuntime,
43860
+ formatDoctorOutput,
43861
+ formatSyncOutput,
43862
+ formatTrajectoryImportApplyResult,
43863
+ formatTrajectoryImportPreview,
43864
+ getHelpText,
43865
+ getPackHelpText,
43866
+ getScheduleHelpText,
43867
+ getTeamConfigHelpText,
43868
+ getTeamHelpText,
43869
+ getUiHelpText,
43870
+ getVersionText,
43871
+ getWorkflowHelpText,
43872
+ listEvolutionJobs,
43873
+ parseCodexModelCatalog,
43874
+ parseImprovementEvalReplayAnalysis,
43875
+ parseInitFlags,
43876
+ parseSemanticKnowledgeAnalysis,
43877
+ parseSessionProposalAnalysis,
43878
+ parseSyncFlags,
43879
+ prepareDailyEvolutionSchedule,
43880
+ prepareTrajectoryImport,
43881
+ previewTrajectoryImport,
43882
+ readDailyEvolutionScheduleState,
43883
+ readDailyEvolutionScheduleStatus,
43884
+ readDailySessionProposalState,
43885
+ readEvoDevSettingsSnapshot,
43886
+ readEvolutionJob,
43887
+ readLatestEvolutionJob,
43888
+ readLazyEvolutionStatus,
43889
+ readSessionProposalBacklogStatus,
43890
+ readUiDashboardSnapshot,
43891
+ readUiSettingsSnapshot,
43892
+ recordDailyEvolutionRun,
43893
+ renderLaunchAgentPlist,
43894
+ renderUiDashboardHtml,
43895
+ resolveDailyScheduleStatePath,
43896
+ resolveDefaultCodeAgentSelections,
43897
+ resolveEvolutionJobPath,
43898
+ resolveInitProjectCandidates,
43899
+ resolveLatestEvolutionJobPath,
43900
+ resolveLaunchAgentPath,
43901
+ resolveLazyEvolutionStatePath,
43902
+ run,
43903
+ runAgentCommand,
43904
+ runAgentSpawnCommand,
43905
+ runConfigCommand,
43906
+ runConfigGetCommand,
43907
+ runConfigSetCommand,
43908
+ runDaemonCommand,
43909
+ runDailySessionProposalScan,
43910
+ runDoctor,
43911
+ runEvoCommand,
43912
+ runHookCommand,
43913
+ runInit,
43914
+ runKnowledgeCommand,
43915
+ runLazyEvolutionFallback,
43916
+ runLearnCommand,
43917
+ runMcpCommand,
43918
+ runObservabilityCommand,
43919
+ runPackCommand,
43920
+ runPendingImprovementEvaluations,
43921
+ runPluginCommand,
43922
+ runRepoProposalApplication,
43923
+ runScheduleCommand,
43924
+ runSyncCommand,
43925
+ runTeamCommand,
43926
+ runTraceCommand,
43927
+ runTrajectoryImportCommand,
43928
+ runUiCommand,
43929
+ runWorkflowCommand,
43930
+ scanSessionRepoProposals,
43931
+ shouldRunLazyEvolutionFallback,
43932
+ shouldRunPostCommandMaintenance,
43933
+ updateEvoDevSetting,
43934
+ updateUiEvolutionScheduler,
43935
+ updateUiSetting
43810
43936
  };