@linzumi/cli 0.0.53-beta → 0.0.54-beta

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 (3) hide show
  1. package/README.md +1 -1
  2. package/dist/index.js +201 -61
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -62,7 +62,7 @@ Install the CLI or run it with `npx`:
62
62
  ```bash
63
63
  npm install -g @linzumi/cli@latest
64
64
  npx -y @linzumi/cli@latest signup
65
- npx -y @linzumi/cli@0.0.53-beta --version
65
+ npx -y @linzumi/cli@0.0.54-beta --version
66
66
  linzumi --version
67
67
  ```
68
68
 
package/dist/index.js CHANGED
@@ -4,35 +4,21 @@ var __getProtoOf = Object.getPrototypeOf;
4
4
  var __defProp = Object.defineProperty;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- function __accessProp(key) {
8
- return this[key];
9
- }
10
- var __toESMCache_node;
11
- var __toESMCache_esm;
12
7
  var __toESM = (mod, isNodeMode, target) => {
13
- var canCache = mod != null && typeof mod === "object";
14
- if (canCache) {
15
- var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
16
- var cached = cache.get(mod);
17
- if (cached)
18
- return cached;
19
- }
20
8
  target = mod != null ? __create(__getProtoOf(mod)) : {};
21
9
  const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
22
10
  for (let key of __getOwnPropNames(mod))
23
11
  if (!__hasOwnProp.call(to, key))
24
12
  __defProp(to, key, {
25
- get: __accessProp.bind(mod, key),
13
+ get: () => mod[key],
26
14
  enumerable: true
27
15
  });
28
- if (canCache)
29
- cache.set(mod, to);
30
16
  return to;
31
17
  };
32
18
  var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
33
19
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
34
20
 
35
- // node_modules/yoctocolors-cjs/index.js
21
+ // ../../node_modules/yoctocolors-cjs/index.js
36
22
  var require_yoctocolors_cjs = __commonJS((exports, module) => {
37
23
  var tty = __require("node:tty");
38
24
  var hasColors = tty?.WriteStream?.prototype?.hasColors?.() ?? false;
@@ -106,7 +92,7 @@ var require_yoctocolors_cjs = __commonJS((exports, module) => {
106
92
  module.exports = colors;
107
93
  });
108
94
 
109
- // node_modules/cli-width/index.js
95
+ // ../../node_modules/cli-width/index.js
110
96
  var require_cli_width = __commonJS((exports, module) => {
111
97
  module.exports = cliWidth;
112
98
  function normalizeOpts(options) {
@@ -146,7 +132,7 @@ var require_cli_width = __commonJS((exports, module) => {
146
132
  }
147
133
  });
148
134
 
149
- // node_modules/ansi-regex/index.js
135
+ // ../../node_modules/ansi-regex/index.js
150
136
  var require_ansi_regex = __commonJS((exports, module) => {
151
137
  module.exports = ({ onlyFirst = false } = {}) => {
152
138
  const pattern = [
@@ -157,13 +143,13 @@ var require_ansi_regex = __commonJS((exports, module) => {
157
143
  };
158
144
  });
159
145
 
160
- // node_modules/strip-ansi/index.js
146
+ // ../../node_modules/strip-ansi/index.js
161
147
  var require_strip_ansi = __commonJS((exports, module) => {
162
148
  var ansiRegex = require_ansi_regex();
163
149
  module.exports = (string) => typeof string === "string" ? string.replace(ansiRegex(), "") : string;
164
150
  });
165
151
 
166
- // node_modules/is-fullwidth-code-point/index.js
152
+ // ../../node_modules/string-width/node_modules/is-fullwidth-code-point/index.js
167
153
  var require_is_fullwidth_code_point = __commonJS((exports, module) => {
168
154
  var isFullwidthCodePoint = (codePoint) => {
169
155
  if (Number.isNaN(codePoint)) {
@@ -178,14 +164,14 @@ var require_is_fullwidth_code_point = __commonJS((exports, module) => {
178
164
  module.exports.default = isFullwidthCodePoint;
179
165
  });
180
166
 
181
- // node_modules/emoji-regex/index.js
167
+ // ../../node_modules/string-width/node_modules/emoji-regex/index.js
182
168
  var require_emoji_regex = __commonJS((exports, module) => {
183
169
  module.exports = function() {
184
170
  return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g;
185
171
  };
186
172
  });
187
173
 
188
- // node_modules/string-width/index.js
174
+ // ../../node_modules/string-width/index.js
189
175
  var require_string_width = __commonJS((exports, module) => {
190
176
  var stripAnsi = require_strip_ansi();
191
177
  var isFullwidthCodePoint = require_is_fullwidth_code_point();
@@ -219,7 +205,7 @@ var require_string_width = __commonJS((exports, module) => {
219
205
  module.exports.default = stringWidth;
220
206
  });
221
207
 
222
- // node_modules/color-name/index.js
208
+ // ../../node_modules/color-name/index.js
223
209
  var require_color_name = __commonJS((exports, module) => {
224
210
  module.exports = {
225
211
  aliceblue: [240, 248, 255],
@@ -373,7 +359,7 @@ var require_color_name = __commonJS((exports, module) => {
373
359
  };
374
360
  });
375
361
 
376
- // node_modules/color-convert/conversions.js
362
+ // ../../node_modules/color-convert/conversions.js
377
363
  var require_conversions = __commonJS((exports, module) => {
378
364
  var cssKeywords = require_color_name();
379
365
  var reverseKeywords = {};
@@ -1042,7 +1028,7 @@ var require_conversions = __commonJS((exports, module) => {
1042
1028
  };
1043
1029
  });
1044
1030
 
1045
- // node_modules/color-convert/route.js
1031
+ // ../../node_modules/color-convert/route.js
1046
1032
  var require_route = __commonJS((exports, module) => {
1047
1033
  var conversions = require_conversions();
1048
1034
  function buildGraph() {
@@ -1108,7 +1094,7 @@ var require_route = __commonJS((exports, module) => {
1108
1094
  };
1109
1095
  });
1110
1096
 
1111
- // node_modules/color-convert/index.js
1097
+ // ../../node_modules/color-convert/index.js
1112
1098
  var require_color_convert = __commonJS((exports, module) => {
1113
1099
  var conversions = require_conversions();
1114
1100
  var route = require_route();
@@ -1167,7 +1153,7 @@ var require_color_convert = __commonJS((exports, module) => {
1167
1153
  module.exports = convert;
1168
1154
  });
1169
1155
 
1170
- // node_modules/ansi-styles/index.js
1156
+ // ../../node_modules/ansi-styles/index.js
1171
1157
  var require_ansi_styles = __commonJS((exports, module) => {
1172
1158
  var wrapAnsi16 = (fn, offset) => (...args) => {
1173
1159
  const code = fn(...args);
@@ -1303,7 +1289,7 @@ var require_ansi_styles = __commonJS((exports, module) => {
1303
1289
  });
1304
1290
  });
1305
1291
 
1306
- // node_modules/wrap-ansi/index.js
1292
+ // ../../node_modules/@inquirer/core/node_modules/wrap-ansi/index.js
1307
1293
  var require_wrap_ansi = __commonJS((exports, module) => {
1308
1294
  var stringWidth = require_string_width();
1309
1295
  var stripAnsi = require_strip_ansi();
@@ -1439,7 +1425,7 @@ var require_wrap_ansi = __commonJS((exports, module) => {
1439
1425
  };
1440
1426
  });
1441
1427
 
1442
- // node_modules/mute-stream/lib/index.js
1428
+ // ../../node_modules/mute-stream/lib/index.js
1443
1429
  var require_lib = __commonJS((exports, module) => {
1444
1430
  var Stream = __require("stream");
1445
1431
 
@@ -10456,7 +10442,7 @@ function realpathOrResolved(pathValue) {
10456
10442
  }
10457
10443
 
10458
10444
  // src/version.ts
10459
- var linzumiCliVersion = "0.0.53-beta";
10445
+ var linzumiCliVersion = "0.0.54-beta";
10460
10446
  var linzumiCliVersionText = `linzumi ${linzumiCliVersion}`;
10461
10447
 
10462
10448
  // src/runnerLock.ts
@@ -11241,6 +11227,64 @@ async function openLocalCodexRunner(options, log, cleanup, close) {
11241
11227
  cleanup.actions.push(() => codex.close());
11242
11228
  const seq = { value: 0 };
11243
11229
  const discoveredCodexThreads = { value: [] };
11230
+ const lastReportedDiscoveryFailure = { value: undefined };
11231
+ const reportClientError = async (args) => {
11232
+ await kandan.push(topic, "client_error_report", {
11233
+ id: `client-error-${randomUUID3()}`,
11234
+ severity: args.severity ?? "error",
11235
+ code: args.code,
11236
+ operation: args.operation,
11237
+ message: args.message,
11238
+ occurredAt: new Date().toISOString(),
11239
+ instanceId,
11240
+ clientId,
11241
+ runnerId: options.runnerId,
11242
+ hostname: runnerHost,
11243
+ cwd: options.cwd,
11244
+ codexUrl,
11245
+ workspace: runnerWorkspaceSlug(options) ?? null,
11246
+ channel: options.channelSession?.channelSlug ?? null,
11247
+ cliVersion: linzumiCliVersion,
11248
+ details: args.details ?? {}
11249
+ }).catch((error) => {
11250
+ log("kandan.client_error_report_push_failed", {
11251
+ code: args.code,
11252
+ operation: args.operation,
11253
+ message: error instanceof Error ? error.message : String(error)
11254
+ });
11255
+ });
11256
+ };
11257
+ const loadDiscoveredCodexThreads = async (phase) => {
11258
+ try {
11259
+ const threads = await discoverCodexThreads(codex, options.cwd);
11260
+ lastReportedDiscoveryFailure.value = undefined;
11261
+ return threads;
11262
+ } catch (error) {
11263
+ const message = error instanceof Error ? error.message : String(error);
11264
+ const signature = `codex_thread_discovery_failed:${message}`;
11265
+ log("codex.thread_discovery_failed", {
11266
+ phase,
11267
+ message
11268
+ });
11269
+ if (lastReportedDiscoveryFailure.value !== signature) {
11270
+ lastReportedDiscoveryFailure.value = signature;
11271
+ await reportClientError({
11272
+ code: "codex_thread_discovery_failed",
11273
+ operation: "codex_thread_discovery",
11274
+ message,
11275
+ details: {
11276
+ phase,
11277
+ codexUrl,
11278
+ cwd: options.cwd
11279
+ }
11280
+ });
11281
+ }
11282
+ return discoveredCodexThreads.value;
11283
+ }
11284
+ };
11285
+ if (options.channelSession === undefined) {
11286
+ discoveredCodexThreads.value = await loadDiscoveredCodexThreads("initial");
11287
+ }
11244
11288
  const runtimeDefaults = runnerRuntimeDefaults(options);
11245
11289
  const instancePayload = {
11246
11290
  instanceId,
@@ -11393,11 +11437,17 @@ async function openLocalCodexRunner(options, log, cleanup, close) {
11393
11437
  message: error instanceof Error ? error.message : String(error)
11394
11438
  });
11395
11439
  });
11440
+ const refreshDiscoveredCodexThreads = async (phase) => {
11441
+ discoveredCodexThreads.value = await loadDiscoveredCodexThreads(phase);
11442
+ await pushHeartbeat();
11443
+ };
11396
11444
  const heartbeatInterval = setInterval(() => {
11397
- pushHeartbeat();
11445
+ channelSession === undefined ? refreshDiscoveredCodexThreads("heartbeat") : pushHeartbeat();
11398
11446
  }, 15000);
11399
11447
  cleanup.actions.push(() => clearInterval(heartbeatInterval));
11400
- kandan.onReconnect(() => pushHeartbeat().then(() => {
11448
+ kandan.onReconnect(() => channelSession === undefined ? refreshDiscoveredCodexThreads("reconnect").then(() => {
11449
+ return;
11450
+ }) : pushHeartbeat().then(() => {
11401
11451
  return;
11402
11452
  }));
11403
11453
  pushHeartbeat();
@@ -11432,7 +11482,7 @@ async function openLocalCodexRunner(options, log, cleanup, close) {
11432
11482
  });
11433
11483
  }
11434
11484
  if (channelSession === undefined && notification.method === "thread/started") {
11435
- refreshDiscoveredCodexThreads();
11485
+ refreshDiscoveredCodexThreads("thread_started");
11436
11486
  }
11437
11487
  log("codex.notification", {
11438
11488
  method: notification.method,
@@ -11667,6 +11717,96 @@ async function closeCleanupStack(cleanup) {
11667
11717
  })();
11668
11718
  return cleanup.closePromise;
11669
11719
  }
11720
+ async function discoverCodexThreads(codex, _cwd) {
11721
+ const rowsById = new Map;
11722
+ const archivedModes = [false, true];
11723
+ const sourcePasses = [
11724
+ undefined,
11725
+ [
11726
+ "exec",
11727
+ "appServer",
11728
+ "subAgent",
11729
+ "subAgentReview",
11730
+ "subAgentCompact",
11731
+ "subAgentThreadSpawn",
11732
+ "subAgentOther",
11733
+ "unknown"
11734
+ ]
11735
+ ];
11736
+ for (const archived of archivedModes) {
11737
+ for (const sourceKinds of sourcePasses) {
11738
+ let cursor;
11739
+ while (true) {
11740
+ const response = await codex.request("thread/list", {
11741
+ limit: 50,
11742
+ sortKey: "updated_at",
11743
+ sortDirection: "desc",
11744
+ archived,
11745
+ useStateDbOnly: true,
11746
+ ...cursor === undefined ? {} : { cursor },
11747
+ ...sourceKinds === undefined ? {} : { sourceKinds }
11748
+ });
11749
+ if ("error" in response) {
11750
+ throw new Error(`thread/list failed: ${response.error.message}`);
11751
+ }
11752
+ const result = objectValue(response.result);
11753
+ const data = arrayValue(result?.data)?.filter(isJsonObject) ?? [];
11754
+ for (const thread of data) {
11755
+ const row = codexThreadHistoryRow(thread, archived);
11756
+ const id = stringValue(objectValue(row)?.id);
11757
+ if (id !== undefined && id !== "" && !rowsById.has(id)) {
11758
+ rowsById.set(id, row);
11759
+ }
11760
+ }
11761
+ const nextCursor = stringValue(result?.nextCursor);
11762
+ if (nextCursor === undefined || nextCursor === "" || data.length === 0) {
11763
+ break;
11764
+ }
11765
+ cursor = nextCursor;
11766
+ }
11767
+ }
11768
+ }
11769
+ return Array.from(rowsById.values()).sort(compareCodexThreadHistoryRows);
11770
+ }
11771
+ function codexThreadHistoryRow(thread, archived) {
11772
+ const gitInfo = objectValue(thread.gitInfo);
11773
+ const preview = stringValue(thread.preview) ?? "";
11774
+ const name = stringValue(thread.name) ?? "";
11775
+ const title = stringValue(thread.title) ?? (name === "" ? preview : name);
11776
+ const description = stringValue(thread.description) ?? stringValue(thread.summary) ?? preview;
11777
+ return {
11778
+ id: stringValue(thread.id) ?? "",
11779
+ title: title ?? "",
11780
+ description: description ?? "",
11781
+ preview: preview.replace(/\s+/g, " ").trim(),
11782
+ cwd: stringValue(thread.cwd) ?? "",
11783
+ source: stringValue(thread.source) ?? "",
11784
+ createdAt: codexTimestamp(thread.createdAt),
11785
+ updatedAt: codexTimestamp(thread.updatedAt),
11786
+ archived,
11787
+ modelProvider: stringValue(thread.modelProvider) ?? "",
11788
+ cliVersion: stringValue(thread.cliVersion) ?? "",
11789
+ gitBranch: stringValue(gitInfo?.branch) ?? "",
11790
+ gitOriginUrl: stringValue(gitInfo?.originUrl) ?? "",
11791
+ path: stringValue(thread.path) ?? ""
11792
+ };
11793
+ }
11794
+ function codexTimestamp(value) {
11795
+ if (typeof value === "number" && Number.isFinite(value)) {
11796
+ return new Date(value * 1000).toISOString();
11797
+ }
11798
+ return stringValue(value) ?? "";
11799
+ }
11800
+ function compareCodexThreadHistoryRows(left, right) {
11801
+ const leftRow = objectValue(left);
11802
+ const rightRow = objectValue(right);
11803
+ const leftTime = Date.parse(stringValue(leftRow?.createdAt) ?? stringValue(leftRow?.updatedAt) ?? "");
11804
+ const rightTime = Date.parse(stringValue(rightRow?.createdAt) ?? stringValue(rightRow?.updatedAt) ?? "");
11805
+ return safeComparableTime(leftTime) - safeComparableTime(rightTime);
11806
+ }
11807
+ function safeComparableTime(value) {
11808
+ return Number.isFinite(value) ? value : Number.MAX_SAFE_INTEGER;
11809
+ }
11670
11810
  function extractStartedThreadId(response) {
11671
11811
  if ("error" in response) {
11672
11812
  throw new Error(`thread/start failed: ${response.error.message}`);
@@ -13700,7 +13840,7 @@ To kick the agent off:
13700
13840
  3. Paste into the thread. Codex will pick it up and start editing this folder.
13701
13841
  `;
13702
13842
 
13703
- // node_modules/@inquirer/core/dist/esm/lib/key.js
13843
+ // ../../node_modules/@inquirer/core/dist/esm/lib/key.js
13704
13844
  var isUpKey = (key, keybindings = []) => key.name === "up" || keybindings.includes("vim") && key.name === "k" || keybindings.includes("emacs") && key.ctrl && key.name === "p";
13705
13845
  var isDownKey = (key, keybindings = []) => key.name === "down" || keybindings.includes("vim") && key.name === "j" || keybindings.includes("emacs") && key.ctrl && key.name === "n";
13706
13846
  var isSpaceKey = (key) => key.name === "space";
@@ -13708,7 +13848,7 @@ var isBackspaceKey = (key) => key.name === "backspace";
13708
13848
  var isTabKey = (key) => key.name === "tab";
13709
13849
  var isNumberKey = (key) => "1234567890".includes(key.name);
13710
13850
  var isEnterKey = (key) => key.name === "enter" || key.name === "return";
13711
- // node_modules/@inquirer/core/dist/esm/lib/errors.js
13851
+ // ../../node_modules/@inquirer/core/dist/esm/lib/errors.js
13712
13852
  class AbortPromptError extends Error {
13713
13853
  name = "AbortPromptError";
13714
13854
  message = "Prompt was aborted";
@@ -13734,10 +13874,10 @@ class HookError extends Error {
13734
13874
  class ValidationError extends Error {
13735
13875
  name = "ValidationError";
13736
13876
  }
13737
- // node_modules/@inquirer/core/dist/esm/lib/use-state.js
13877
+ // ../../node_modules/@inquirer/core/dist/esm/lib/use-state.js
13738
13878
  import { AsyncResource as AsyncResource2 } from "node:async_hooks";
13739
13879
 
13740
- // node_modules/@inquirer/core/dist/esm/lib/hook-engine.js
13880
+ // ../../node_modules/@inquirer/core/dist/esm/lib/hook-engine.js
13741
13881
  import { AsyncLocalStorage, AsyncResource } from "node:async_hooks";
13742
13882
  var hookStorage = new AsyncLocalStorage;
13743
13883
  function createStore(rl) {
@@ -13842,7 +13982,7 @@ var effectScheduler = {
13842
13982
  }
13843
13983
  };
13844
13984
 
13845
- // node_modules/@inquirer/core/dist/esm/lib/use-state.js
13985
+ // ../../node_modules/@inquirer/core/dist/esm/lib/use-state.js
13846
13986
  function useState(defaultValue) {
13847
13987
  return withPointer((pointer) => {
13848
13988
  const setState = AsyncResource2.bind(function setState2(newValue) {
@@ -13860,7 +14000,7 @@ function useState(defaultValue) {
13860
14000
  });
13861
14001
  }
13862
14002
 
13863
- // node_modules/@inquirer/core/dist/esm/lib/use-effect.js
14003
+ // ../../node_modules/@inquirer/core/dist/esm/lib/use-effect.js
13864
14004
  function useEffect(cb, depArray) {
13865
14005
  withPointer((pointer) => {
13866
14006
  const oldDeps = pointer.get();
@@ -13872,10 +14012,10 @@ function useEffect(cb, depArray) {
13872
14012
  });
13873
14013
  }
13874
14014
 
13875
- // node_modules/@inquirer/core/dist/esm/lib/theme.js
14015
+ // ../../node_modules/@inquirer/core/dist/esm/lib/theme.js
13876
14016
  var import_yoctocolors_cjs = __toESM(require_yoctocolors_cjs(), 1);
13877
14017
 
13878
- // node_modules/@inquirer/figures/dist/esm/index.js
14018
+ // ../../node_modules/@inquirer/figures/dist/esm/index.js
13879
14019
  import process2 from "node:process";
13880
14020
  function isUnicodeSupported() {
13881
14021
  if (process2.platform !== "win32") {
@@ -14164,7 +14304,7 @@ var figures = shouldUseMain ? mainSymbols : fallbackSymbols;
14164
14304
  var esm_default = figures;
14165
14305
  var replacements = Object.entries(specialMainSymbols);
14166
14306
 
14167
- // node_modules/@inquirer/core/dist/esm/lib/theme.js
14307
+ // ../../node_modules/@inquirer/core/dist/esm/lib/theme.js
14168
14308
  var defaultTheme = {
14169
14309
  prefix: {
14170
14310
  idle: import_yoctocolors_cjs.default.blue("?"),
@@ -14185,7 +14325,7 @@ var defaultTheme = {
14185
14325
  }
14186
14326
  };
14187
14327
 
14188
- // node_modules/@inquirer/core/dist/esm/lib/make-theme.js
14328
+ // ../../node_modules/@inquirer/core/dist/esm/lib/make-theme.js
14189
14329
  function isPlainObject(value) {
14190
14330
  if (typeof value !== "object" || value === null)
14191
14331
  return false;
@@ -14213,7 +14353,7 @@ function makeTheme(...themes) {
14213
14353
  return deepMerge(...themesToMerge);
14214
14354
  }
14215
14355
 
14216
- // node_modules/@inquirer/core/dist/esm/lib/use-prefix.js
14356
+ // ../../node_modules/@inquirer/core/dist/esm/lib/use-prefix.js
14217
14357
  function usePrefix({ status = "idle", theme }) {
14218
14358
  const [showLoader, setShowLoader] = useState(false);
14219
14359
  const [tick, setTick] = useState(0);
@@ -14243,7 +14383,7 @@ function usePrefix({ status = "idle", theme }) {
14243
14383
  const iconName = status === "loading" ? "idle" : status;
14244
14384
  return typeof prefix === "string" ? prefix : prefix[iconName] ?? prefix["idle"];
14245
14385
  }
14246
- // node_modules/@inquirer/core/dist/esm/lib/use-memo.js
14386
+ // ../../node_modules/@inquirer/core/dist/esm/lib/use-memo.js
14247
14387
  function useMemo(fn, dependencies) {
14248
14388
  return withPointer((pointer) => {
14249
14389
  const prev = pointer.get();
@@ -14255,11 +14395,11 @@ function useMemo(fn, dependencies) {
14255
14395
  return prev.value;
14256
14396
  });
14257
14397
  }
14258
- // node_modules/@inquirer/core/dist/esm/lib/use-ref.js
14398
+ // ../../node_modules/@inquirer/core/dist/esm/lib/use-ref.js
14259
14399
  function useRef(val) {
14260
14400
  return useState({ current: val })[0];
14261
14401
  }
14262
- // node_modules/@inquirer/core/dist/esm/lib/use-keypress.js
14402
+ // ../../node_modules/@inquirer/core/dist/esm/lib/use-keypress.js
14263
14403
  function useKeypress(userHandler) {
14264
14404
  const signal = useRef(userHandler);
14265
14405
  signal.current = userHandler;
@@ -14277,7 +14417,7 @@ function useKeypress(userHandler) {
14277
14417
  };
14278
14418
  }, []);
14279
14419
  }
14280
- // node_modules/@inquirer/core/dist/esm/lib/utils.js
14420
+ // ../../node_modules/@inquirer/core/dist/esm/lib/utils.js
14281
14421
  var import_cli_width = __toESM(require_cli_width(), 1);
14282
14422
  var import_wrap_ansi = __toESM(require_wrap_ansi(), 1);
14283
14423
  function breakLines(content, width) {
@@ -14290,7 +14430,7 @@ function readlineWidth() {
14290
14430
  return import_cli_width.default({ defaultWidth: 80, output: readline().output });
14291
14431
  }
14292
14432
 
14293
- // node_modules/@inquirer/core/dist/esm/lib/pagination/use-pagination.js
14433
+ // ../../node_modules/@inquirer/core/dist/esm/lib/pagination/use-pagination.js
14294
14434
  function usePointerPosition({ active, renderedItems, pageSize, loop }) {
14295
14435
  const state = useRef({
14296
14436
  lastPointer: active,
@@ -14356,12 +14496,12 @@ function usePagination({ items, active, renderItem, pageSize, loop = true }) {
14356
14496
  return pageBuffer.filter((line) => typeof line === "string").join(`
14357
14497
  `);
14358
14498
  }
14359
- // node_modules/@inquirer/core/dist/esm/lib/create-prompt.js
14499
+ // ../../node_modules/@inquirer/core/dist/esm/lib/create-prompt.js
14360
14500
  var import_mute_stream = __toESM(require_lib(), 1);
14361
14501
  import * as readline2 from "node:readline";
14362
14502
  import { AsyncResource as AsyncResource3 } from "node:async_hooks";
14363
14503
 
14364
- // node_modules/signal-exit/dist/mjs/signals.js
14504
+ // ../../node_modules/@inquirer/core/node_modules/signal-exit/dist/mjs/signals.js
14365
14505
  var signals = [];
14366
14506
  signals.push("SIGHUP", "SIGINT", "SIGTERM");
14367
14507
  if (process.platform !== "win32") {
@@ -14371,7 +14511,7 @@ if (process.platform === "linux") {
14371
14511
  signals.push("SIGIO", "SIGPOLL", "SIGPWR", "SIGSTKFLT");
14372
14512
  }
14373
14513
 
14374
- // node_modules/signal-exit/dist/mjs/index.js
14514
+ // ../../node_modules/@inquirer/core/node_modules/signal-exit/dist/mjs/index.js
14375
14515
  var processOk = (process3) => !!process3 && typeof process3 === "object" && typeof process3.removeListener === "function" && typeof process3.emit === "function" && typeof process3.reallyExit === "function" && typeof process3.listeners === "function" && typeof process3.kill === "function" && typeof process3.pid === "number" && typeof process3.on === "function";
14376
14516
  var kExitEmitter = Symbol.for("signal-exit emitter");
14377
14517
  var global = globalThis;
@@ -14569,10 +14709,10 @@ var {
14569
14709
  unload
14570
14710
  } = signalExitWrap(processOk(process3) ? new SignalExit(process3) : new SignalExitFallback);
14571
14711
 
14572
- // node_modules/@inquirer/core/dist/esm/lib/screen-manager.js
14712
+ // ../../node_modules/@inquirer/core/dist/esm/lib/screen-manager.js
14573
14713
  import { stripVTControlCharacters } from "node:util";
14574
14714
 
14575
- // node_modules/@inquirer/ansi/dist/esm/index.js
14715
+ // ../../node_modules/@inquirer/ansi/dist/esm/index.js
14576
14716
  var ESC = "\x1B[";
14577
14717
  var cursorLeft = ESC + "G";
14578
14718
  var cursorHide = ESC + "?25l";
@@ -14588,7 +14728,7 @@ var cursorTo = (x, y) => {
14588
14728
  var eraseLine = ESC + "2K";
14589
14729
  var eraseLines = (lines) => lines > 0 ? (eraseLine + cursorUp(1)).repeat(lines - 1) + eraseLine + cursorLeft : "";
14590
14730
 
14591
- // node_modules/@inquirer/core/dist/esm/lib/screen-manager.js
14731
+ // ../../node_modules/@inquirer/core/dist/esm/lib/screen-manager.js
14592
14732
  var height = (content) => content.split(`
14593
14733
  `).length;
14594
14734
  var lastLine = (content) => content.split(`
@@ -14653,7 +14793,7 @@ class ScreenManager {
14653
14793
  }
14654
14794
  }
14655
14795
 
14656
- // node_modules/@inquirer/core/dist/esm/lib/promise-polyfill.js
14796
+ // ../../node_modules/@inquirer/core/dist/esm/lib/promise-polyfill.js
14657
14797
  class PromisePolyfill extends Promise {
14658
14798
  static withResolver() {
14659
14799
  let resolve8;
@@ -14666,7 +14806,7 @@ class PromisePolyfill extends Promise {
14666
14806
  }
14667
14807
  }
14668
14808
 
14669
- // node_modules/@inquirer/core/dist/esm/lib/create-prompt.js
14809
+ // ../../node_modules/@inquirer/core/dist/esm/lib/create-prompt.js
14670
14810
  function getCallSites() {
14671
14811
  const _prepareStackTrace = Error.prepareStackTrace;
14672
14812
  let result = [];
@@ -14752,7 +14892,7 @@ function createPrompt(view) {
14752
14892
  };
14753
14893
  return prompt;
14754
14894
  }
14755
- // node_modules/@inquirer/core/dist/esm/lib/Separator.js
14895
+ // ../../node_modules/@inquirer/core/dist/esm/lib/Separator.js
14756
14896
  var import_yoctocolors_cjs2 = __toESM(require_yoctocolors_cjs(), 1);
14757
14897
  class Separator {
14758
14898
  separator = import_yoctocolors_cjs2.default.dim(Array.from({ length: 15 }).join(esm_default.line));
@@ -14766,7 +14906,7 @@ class Separator {
14766
14906
  return Boolean(choice && typeof choice === "object" && "type" in choice && choice.type === "separator");
14767
14907
  }
14768
14908
  }
14769
- // node_modules/@inquirer/checkbox/dist/esm/index.js
14909
+ // ../../node_modules/@inquirer/checkbox/dist/esm/index.js
14770
14910
  var import_yoctocolors_cjs3 = __toESM(require_yoctocolors_cjs(), 1);
14771
14911
  var checkboxTheme = {
14772
14912
  icon: {
@@ -14953,7 +15093,7 @@ var esm_default2 = createPrompt((config, done) => {
14953
15093
  `).trimEnd();
14954
15094
  return `${lines}${cursorHide}`;
14955
15095
  });
14956
- // node_modules/@inquirer/input/dist/esm/index.js
15096
+ // ../../node_modules/@inquirer/input/dist/esm/index.js
14957
15097
  var inputTheme = {
14958
15098
  validationFailureMode: "keep"
14959
15099
  };
@@ -15037,7 +15177,7 @@ var esm_default3 = createPrompt((config, done) => {
15037
15177
  error
15038
15178
  ];
15039
15179
  });
15040
- // node_modules/@inquirer/select/dist/esm/index.js
15180
+ // ../../node_modules/@inquirer/select/dist/esm/index.js
15041
15181
  var import_yoctocolors_cjs4 = __toESM(require_yoctocolors_cjs(), 1);
15042
15182
  var selectTheme = {
15043
15183
  icon: { cursor: esm_default.pointer },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@linzumi/cli",
3
- "version": "0.0.53-beta",
3
+ "version": "0.0.54-beta",
4
4
  "description": "Linzumi CLI — point a Codex agent at the real code on your laptop, with your team watching and steering from shared threads.",
5
5
  "type": "module",
6
6
  "bin": {