wildcrane-runner 0.6.0 → 0.6.1

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/runner.mjs CHANGED
@@ -1,4 +1,4 @@
1
- // wildcrane-runner 0.6.0 — built by runner/scripts/build.mjs. Do not edit.
1
+ // wildcrane-runner 0.6.1 — built by runner/scripts/build.mjs. Do not edit.
2
2
  import { createRequire as __ai4kanbanRequire } from 'node:module'
3
3
  const require = __ai4kanbanRequire(import.meta.url)
4
4
  var __create = Object.create;
@@ -28,9 +28,9 @@ var __commonJS = (cb, mod) => function __require2() {
28
28
  throw mod = 0, e2;
29
29
  }
30
30
  };
31
- var __export = (target, all2) => {
32
- for (var name in all2)
33
- __defProp(target, name, { get: all2[name], enumerable: true });
31
+ var __export = (target, all) => {
32
+ for (var name in all)
33
+ __defProp(target, name, { get: all[name], enumerable: true });
34
34
  };
35
35
  var __copyProps = (to, from, except, desc) => {
36
36
  if (from && typeof from === "object" || typeof from === "function") {
@@ -49,9 +49,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
49
49
  mod
50
50
  ));
51
51
 
52
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react/cjs/react.production.js
52
+ // node_modules/react/cjs/react.production.js
53
53
  var require_react_production = __commonJS({
54
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react/cjs/react.production.js"(exports) {
54
+ "node_modules/react/cjs/react.production.js"(exports) {
55
55
  "use strict";
56
56
  var REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.transitional.element");
57
57
  var REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal");
@@ -501,9 +501,9 @@ var require_react_production = __commonJS({
501
501
  }
502
502
  });
503
503
 
504
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react/cjs/react.development.js
504
+ // node_modules/react/cjs/react.development.js
505
505
  var require_react_development = __commonJS({
506
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react/cjs/react.development.js"(exports, module) {
506
+ "node_modules/react/cjs/react.development.js"(exports, module) {
507
507
  "use strict";
508
508
  "production" !== process.env.NODE_ENV && (function() {
509
509
  function defineDeprecationWarning(methodName, info) {
@@ -1498,9 +1498,9 @@ var require_react_development = __commonJS({
1498
1498
  }
1499
1499
  });
1500
1500
 
1501
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react/index.js
1501
+ // node_modules/react/index.js
1502
1502
  var require_react = __commonJS({
1503
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react/index.js"(exports, module) {
1503
+ "node_modules/react/index.js"(exports, module) {
1504
1504
  "use strict";
1505
1505
  if (process.env.NODE_ENV === "production") {
1506
1506
  module.exports = require_react_production();
@@ -1510,9 +1510,9 @@ var require_react = __commonJS({
1510
1510
  }
1511
1511
  });
1512
1512
 
1513
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react/cjs/react-jsx-runtime.production.js
1513
+ // node_modules/react/cjs/react-jsx-runtime.production.js
1514
1514
  var require_react_jsx_runtime_production = __commonJS({
1515
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react/cjs/react-jsx-runtime.production.js"(exports) {
1515
+ "node_modules/react/cjs/react-jsx-runtime.production.js"(exports) {
1516
1516
  "use strict";
1517
1517
  var REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.transitional.element");
1518
1518
  var REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment");
@@ -1540,9 +1540,9 @@ var require_react_jsx_runtime_production = __commonJS({
1540
1540
  }
1541
1541
  });
1542
1542
 
1543
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react/cjs/react-jsx-runtime.development.js
1543
+ // node_modules/react/cjs/react-jsx-runtime.development.js
1544
1544
  var require_react_jsx_runtime_development = __commonJS({
1545
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react/cjs/react-jsx-runtime.development.js"(exports) {
1545
+ "node_modules/react/cjs/react-jsx-runtime.development.js"(exports) {
1546
1546
  "use strict";
1547
1547
  "production" !== process.env.NODE_ENV && (function() {
1548
1548
  function getComponentNameFromType(type) {
@@ -1811,9 +1811,9 @@ var require_react_jsx_runtime_development = __commonJS({
1811
1811
  }
1812
1812
  });
1813
1813
 
1814
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react/jsx-runtime.js
1814
+ // node_modules/react/jsx-runtime.js
1815
1815
  var require_jsx_runtime = __commonJS({
1816
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react/jsx-runtime.js"(exports, module) {
1816
+ "node_modules/react/jsx-runtime.js"(exports, module) {
1817
1817
  "use strict";
1818
1818
  if (process.env.NODE_ENV === "production") {
1819
1819
  module.exports = require_react_jsx_runtime_production();
@@ -1823,9 +1823,9 @@ var require_jsx_runtime = __commonJS({
1823
1823
  }
1824
1824
  });
1825
1825
 
1826
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-dom/cjs/react-dom.production.js
1826
+ // node_modules/react-dom/cjs/react-dom.production.js
1827
1827
  var require_react_dom_production = __commonJS({
1828
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-dom/cjs/react-dom.production.js"(exports) {
1828
+ "node_modules/react-dom/cjs/react-dom.production.js"(exports) {
1829
1829
  "use strict";
1830
1830
  var React4 = require_react();
1831
1831
  function formatProdErrorMessage(code) {
@@ -1980,9 +1980,9 @@ var require_react_dom_production = __commonJS({
1980
1980
  }
1981
1981
  });
1982
1982
 
1983
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-dom/cjs/react-dom.development.js
1983
+ // node_modules/react-dom/cjs/react-dom.development.js
1984
1984
  var require_react_dom_development = __commonJS({
1985
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-dom/cjs/react-dom.development.js"(exports) {
1985
+ "node_modules/react-dom/cjs/react-dom.development.js"(exports) {
1986
1986
  "use strict";
1987
1987
  "production" !== process.env.NODE_ENV && (function() {
1988
1988
  function noop() {
@@ -2235,9 +2235,9 @@ var require_react_dom_development = __commonJS({
2235
2235
  }
2236
2236
  });
2237
2237
 
2238
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-dom/index.js
2238
+ // node_modules/react-dom/index.js
2239
2239
  var require_react_dom = __commonJS({
2240
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-dom/index.js"(exports, module) {
2240
+ "node_modules/react-dom/index.js"(exports, module) {
2241
2241
  "use strict";
2242
2242
  function checkDCE() {
2243
2243
  if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === "undefined" || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== "function") {
@@ -2261,9 +2261,9 @@ var require_react_dom = __commonJS({
2261
2261
  }
2262
2262
  });
2263
2263
 
2264
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js
2264
+ // node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js
2265
2265
  var require_react_dom_server_legacy_node_production = __commonJS({
2266
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js"(exports) {
2266
+ "node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js"(exports) {
2267
2267
  "use strict";
2268
2268
  var React4 = require_react();
2269
2269
  var ReactDOM = require_react_dom();
@@ -7512,9 +7512,9 @@ A.finished.finally(function(){document.__reactViewTransition===A&&(document.__re
7512
7512
  }
7513
7513
  });
7514
7514
 
7515
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-dom/cjs/react-dom-server.node.production.js
7515
+ // node_modules/react-dom/cjs/react-dom-server.node.production.js
7516
7516
  var require_react_dom_server_node_production = __commonJS({
7517
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-dom/cjs/react-dom-server.node.production.js"(exports) {
7517
+ "node_modules/react-dom/cjs/react-dom-server.node.production.js"(exports) {
7518
7518
  "use strict";
7519
7519
  var util = __require("util");
7520
7520
  var crypto5 = __require("crypto");
@@ -13686,9 +13686,9 @@ A.finished.finally(function(){document.__reactViewTransition===A&&(document.__re
13686
13686
  }
13687
13687
  });
13688
13688
 
13689
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js
13689
+ // node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js
13690
13690
  var require_react_dom_server_legacy_node_development = __commonJS({
13691
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js"(exports) {
13691
+ "node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js"(exports) {
13692
13692
  "use strict";
13693
13693
  "production" !== process.env.NODE_ENV && (function() {
13694
13694
  function styleReplacer(match, prefix2, s, suffix2) {
@@ -21196,9 +21196,9 @@ A.finished.finally(function(){document.__reactViewTransition===A&&(document.__re
21196
21196
  }
21197
21197
  });
21198
21198
 
21199
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-dom/cjs/react-dom-server.node.development.js
21199
+ // node_modules/react-dom/cjs/react-dom-server.node.development.js
21200
21200
  var require_react_dom_server_node_development = __commonJS({
21201
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-dom/cjs/react-dom-server.node.development.js"(exports) {
21201
+ "node_modules/react-dom/cjs/react-dom-server.node.development.js"(exports) {
21202
21202
  "use strict";
21203
21203
  "production" !== process.env.NODE_ENV && (function() {
21204
21204
  function styleReplacer(match, prefix2, s, suffix2) {
@@ -29495,9 +29495,9 @@ A.finished.finally(function(){document.__reactViewTransition===A&&(document.__re
29495
29495
  }
29496
29496
  });
29497
29497
 
29498
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-dom/server.node.js
29498
+ // node_modules/react-dom/server.node.js
29499
29499
  var require_server_node = __commonJS({
29500
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-dom/server.node.js"(exports) {
29500
+ "node_modules/react-dom/server.node.js"(exports) {
29501
29501
  "use strict";
29502
29502
  var l2;
29503
29503
  var s;
@@ -29518,9 +29518,9 @@ var require_server_node = __commonJS({
29518
29518
  }
29519
29519
  });
29520
29520
 
29521
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/tokenizer/keywords.js
29521
+ // node_modules/sucrase/dist/parser/tokenizer/keywords.js
29522
29522
  var require_keywords = __commonJS({
29523
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/tokenizer/keywords.js"(exports) {
29523
+ "node_modules/sucrase/dist/parser/tokenizer/keywords.js"(exports) {
29524
29524
  "use strict";
29525
29525
  Object.defineProperty(exports, "__esModule", { value: true });
29526
29526
  var ContextualKeyword;
@@ -29611,9 +29611,9 @@ var require_keywords = __commonJS({
29611
29611
  }
29612
29612
  });
29613
29613
 
29614
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/tokenizer/types.js
29614
+ // node_modules/sucrase/dist/parser/tokenizer/types.js
29615
29615
  var require_types = __commonJS({
29616
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/tokenizer/types.js"(exports) {
29616
+ "node_modules/sucrase/dist/parser/tokenizer/types.js"(exports) {
29617
29617
  "use strict";
29618
29618
  Object.defineProperty(exports, "__esModule", { value: true });
29619
29619
  var TokenType;
@@ -30095,9 +30095,9 @@ var require_types = __commonJS({
30095
30095
  }
30096
30096
  });
30097
30097
 
30098
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/tokenizer/state.js
30098
+ // node_modules/sucrase/dist/parser/tokenizer/state.js
30099
30099
  var require_state = __commonJS({
30100
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/tokenizer/state.js"(exports) {
30100
+ "node_modules/sucrase/dist/parser/tokenizer/state.js"(exports) {
30101
30101
  "use strict";
30102
30102
  Object.defineProperty(exports, "__esModule", { value: true });
30103
30103
  var _keywords = require_keywords();
@@ -30236,9 +30236,9 @@ var require_state = __commonJS({
30236
30236
  }
30237
30237
  });
30238
30238
 
30239
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/util/charcodes.js
30239
+ // node_modules/sucrase/dist/parser/util/charcodes.js
30240
30240
  var require_charcodes = __commonJS({
30241
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/util/charcodes.js"(exports) {
30241
+ "node_modules/sucrase/dist/parser/util/charcodes.js"(exports) {
30242
30242
  "use strict";
30243
30243
  Object.defineProperty(exports, "__esModule", { value: true });
30244
30244
  var charCodes;
@@ -30459,9 +30459,9 @@ var require_charcodes = __commonJS({
30459
30459
  }
30460
30460
  });
30461
30461
 
30462
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/traverser/base.js
30462
+ // node_modules/sucrase/dist/parser/traverser/base.js
30463
30463
  var require_base = __commonJS({
30464
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/traverser/base.js"(exports) {
30464
+ "node_modules/sucrase/dist/parser/traverser/base.js"(exports) {
30465
30465
  "use strict";
30466
30466
  Object.defineProperty(exports, "__esModule", { value: true });
30467
30467
  function _interopRequireDefault(obj3) {
@@ -30522,9 +30522,9 @@ var require_base = __commonJS({
30522
30522
  }
30523
30523
  });
30524
30524
 
30525
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/traverser/util.js
30525
+ // node_modules/sucrase/dist/parser/traverser/util.js
30526
30526
  var require_util = __commonJS({
30527
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/traverser/util.js"(exports) {
30527
+ "node_modules/sucrase/dist/parser/traverser/util.js"(exports) {
30528
30528
  "use strict";
30529
30529
  Object.defineProperty(exports, "__esModule", { value: true });
30530
30530
  var _index = require_tokenizer();
@@ -30608,9 +30608,9 @@ var require_util = __commonJS({
30608
30608
  }
30609
30609
  });
30610
30610
 
30611
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/util/whitespace.js
30611
+ // node_modules/sucrase/dist/parser/util/whitespace.js
30612
30612
  var require_whitespace = __commonJS({
30613
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/util/whitespace.js"(exports) {
30613
+ "node_modules/sucrase/dist/parser/util/whitespace.js"(exports) {
30614
30614
  "use strict";
30615
30615
  Object.defineProperty(exports, "__esModule", { value: true });
30616
30616
  var _charcodes = require_charcodes();
@@ -30663,9 +30663,9 @@ var require_whitespace = __commonJS({
30663
30663
  }
30664
30664
  });
30665
30665
 
30666
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/util/identifier.js
30666
+ // node_modules/sucrase/dist/parser/util/identifier.js
30667
30667
  var require_identifier = __commonJS({
30668
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/util/identifier.js"(exports) {
30668
+ "node_modules/sucrase/dist/parser/util/identifier.js"(exports) {
30669
30669
  "use strict";
30670
30670
  Object.defineProperty(exports, "__esModule", { value: true });
30671
30671
  var _charcodes = require_charcodes();
@@ -30701,9 +30701,9 @@ var require_identifier = __commonJS({
30701
30701
  }
30702
30702
  });
30703
30703
 
30704
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/tokenizer/readWordTree.js
30704
+ // node_modules/sucrase/dist/parser/tokenizer/readWordTree.js
30705
30705
  var require_readWordTree = __commonJS({
30706
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/tokenizer/readWordTree.js"(exports) {
30706
+ "node_modules/sucrase/dist/parser/tokenizer/readWordTree.js"(exports) {
30707
30707
  "use strict";
30708
30708
  Object.defineProperty(exports, "__esModule", { value: true });
30709
30709
  var _keywords = require_keywords();
@@ -40010,9 +40010,9 @@ var require_readWordTree = __commonJS({
40010
40010
  }
40011
40011
  });
40012
40012
 
40013
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/tokenizer/readWord.js
40013
+ // node_modules/sucrase/dist/parser/tokenizer/readWord.js
40014
40014
  var require_readWord = __commonJS({
40015
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/tokenizer/readWord.js"(exports) {
40015
+ "node_modules/sucrase/dist/parser/tokenizer/readWord.js"(exports) {
40016
40016
  "use strict";
40017
40017
  Object.defineProperty(exports, "__esModule", { value: true });
40018
40018
  var _base = require_base();
@@ -40073,9 +40073,9 @@ var require_readWord = __commonJS({
40073
40073
  }
40074
40074
  });
40075
40075
 
40076
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/tokenizer/index.js
40076
+ // node_modules/sucrase/dist/parser/tokenizer/index.js
40077
40077
  var require_tokenizer = __commonJS({
40078
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/tokenizer/index.js"(exports) {
40078
+ "node_modules/sucrase/dist/parser/tokenizer/index.js"(exports) {
40079
40079
  "use strict";
40080
40080
  Object.defineProperty(exports, "__esModule", { value: true });
40081
40081
  function _interopRequireDefault(obj3) {
@@ -40827,9 +40827,9 @@ var require_tokenizer = __commonJS({
40827
40827
  }
40828
40828
  });
40829
40829
 
40830
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/getImportExportSpecifierInfo.js
40830
+ // node_modules/sucrase/dist/util/getImportExportSpecifierInfo.js
40831
40831
  var require_getImportExportSpecifierInfo = __commonJS({
40832
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/getImportExportSpecifierInfo.js"(exports) {
40832
+ "node_modules/sucrase/dist/util/getImportExportSpecifierInfo.js"(exports) {
40833
40833
  "use strict";
40834
40834
  Object.defineProperty(exports, "__esModule", { value: true });
40835
40835
  var _types = require_types();
@@ -40881,9 +40881,9 @@ var require_getImportExportSpecifierInfo = __commonJS({
40881
40881
  }
40882
40882
  });
40883
40883
 
40884
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/plugins/jsx/xhtml.js
40884
+ // node_modules/sucrase/dist/parser/plugins/jsx/xhtml.js
40885
40885
  var require_xhtml = __commonJS({
40886
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/plugins/jsx/xhtml.js"(exports) {
40886
+ "node_modules/sucrase/dist/parser/plugins/jsx/xhtml.js"(exports) {
40887
40887
  "use strict";
40888
40888
  Object.defineProperty(exports, "__esModule", { value: true });
40889
40889
  exports.default = /* @__PURE__ */ new Map([
@@ -41144,9 +41144,9 @@ var require_xhtml = __commonJS({
41144
41144
  }
41145
41145
  });
41146
41146
 
41147
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/getJSXPragmaInfo.js
41147
+ // node_modules/sucrase/dist/util/getJSXPragmaInfo.js
41148
41148
  var require_getJSXPragmaInfo = __commonJS({
41149
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/getJSXPragmaInfo.js"(exports) {
41149
+ "node_modules/sucrase/dist/util/getJSXPragmaInfo.js"(exports) {
41150
41150
  "use strict";
41151
41151
  Object.defineProperty(exports, "__esModule", { value: true });
41152
41152
  function getJSXPragmaInfo(options) {
@@ -41165,9 +41165,9 @@ var require_getJSXPragmaInfo = __commonJS({
41165
41165
  }
41166
41166
  });
41167
41167
 
41168
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/Transformer.js
41168
+ // node_modules/sucrase/dist/transformers/Transformer.js
41169
41169
  var require_Transformer = __commonJS({
41170
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/Transformer.js"(exports) {
41170
+ "node_modules/sucrase/dist/transformers/Transformer.js"(exports) {
41171
41171
  "use strict";
41172
41172
  Object.defineProperty(exports, "__esModule", { value: true });
41173
41173
  var Transformer = class {
@@ -41186,9 +41186,9 @@ var require_Transformer = __commonJS({
41186
41186
  }
41187
41187
  });
41188
41188
 
41189
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/JSXTransformer.js
41189
+ // node_modules/sucrase/dist/transformers/JSXTransformer.js
41190
41190
  var require_JSXTransformer = __commonJS({
41191
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/JSXTransformer.js"(exports) {
41191
+ "node_modules/sucrase/dist/transformers/JSXTransformer.js"(exports) {
41192
41192
  "use strict";
41193
41193
  Object.defineProperty(exports, "__esModule", { value: true });
41194
41194
  function _interopRequireDefault(obj3) {
@@ -41256,8 +41256,8 @@ var require_JSXTransformer = __commonJS({
41256
41256
  }
41257
41257
  if (this.isAutomaticRuntime) {
41258
41258
  if (this.importProcessor) {
41259
- for (const [path28, resolvedName] of Object.entries(this.cjsAutomaticModuleNameResolutions)) {
41260
- prefix += `var ${resolvedName} = require("${path28}");`;
41259
+ for (const [path29, resolvedName] of Object.entries(this.cjsAutomaticModuleNameResolutions)) {
41260
+ prefix += `var ${resolvedName} = require("${path29}");`;
41261
41261
  }
41262
41262
  } else {
41263
41263
  const { createElement: createElementResolution, ...otherResolutions } = this.esmAutomaticImportNameResolutions;
@@ -41450,11 +41450,11 @@ var require_JSXTransformer = __commonJS({
41450
41450
  }
41451
41451
  claimAutoImportedName(funcName, importPathSuffix) {
41452
41452
  if (this.importProcessor) {
41453
- const path28 = this.jsxImportSource + importPathSuffix;
41454
- if (!this.cjsAutomaticModuleNameResolutions[path28]) {
41455
- this.cjsAutomaticModuleNameResolutions[path28] = this.importProcessor.getFreeIdentifierForPath(path28);
41453
+ const path29 = this.jsxImportSource + importPathSuffix;
41454
+ if (!this.cjsAutomaticModuleNameResolutions[path29]) {
41455
+ this.cjsAutomaticModuleNameResolutions[path29] = this.importProcessor.getFreeIdentifierForPath(path29);
41456
41456
  }
41457
- return `${this.cjsAutomaticModuleNameResolutions[path28]}.${funcName}`;
41457
+ return `${this.cjsAutomaticModuleNameResolutions[path29]}.${funcName}`;
41458
41458
  } else {
41459
41459
  if (!this.esmAutomaticImportNameResolutions[funcName]) {
41460
41460
  this.esmAutomaticImportNameResolutions[funcName] = this.nameManager.claimFreeName(
@@ -41787,9 +41787,9 @@ var require_JSXTransformer = __commonJS({
41787
41787
  }
41788
41788
  });
41789
41789
 
41790
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/getNonTypeIdentifiers.js
41790
+ // node_modules/sucrase/dist/util/getNonTypeIdentifiers.js
41791
41791
  var require_getNonTypeIdentifiers = __commonJS({
41792
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/getNonTypeIdentifiers.js"(exports) {
41792
+ "node_modules/sucrase/dist/util/getNonTypeIdentifiers.js"(exports) {
41793
41793
  "use strict";
41794
41794
  Object.defineProperty(exports, "__esModule", { value: true });
41795
41795
  function _interopRequireDefault(obj3) {
@@ -41828,9 +41828,9 @@ var require_getNonTypeIdentifiers = __commonJS({
41828
41828
  }
41829
41829
  });
41830
41830
 
41831
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/CJSImportProcessor.js
41831
+ // node_modules/sucrase/dist/CJSImportProcessor.js
41832
41832
  var require_CJSImportProcessor = __commonJS({
41833
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/CJSImportProcessor.js"(exports) {
41833
+ "node_modules/sucrase/dist/CJSImportProcessor.js"(exports) {
41834
41834
  "use strict";
41835
41835
  Object.defineProperty(exports, "__esModule", { value: true });
41836
41836
  function _interopRequireDefault(obj3) {
@@ -41890,7 +41890,7 @@ var require_CJSImportProcessor = __commonJS({
41890
41890
  */
41891
41891
  pruneTypeOnlyImports() {
41892
41892
  this.nonTypeIdentifiers = _getNonTypeIdentifiers.getNonTypeIdentifiers.call(void 0, this.tokens, this.options);
41893
- for (const [path28, importInfo] of this.importInfoByPath.entries()) {
41893
+ for (const [path29, importInfo] of this.importInfoByPath.entries()) {
41894
41894
  if (importInfo.hasBareImport || importInfo.hasStarExport || importInfo.exportStarNames.length > 0 || importInfo.namedExports.length > 0) {
41895
41895
  continue;
41896
41896
  }
@@ -41900,7 +41900,7 @@ var require_CJSImportProcessor = __commonJS({
41900
41900
  ...importInfo.namedImports.map(({ localName }) => localName)
41901
41901
  ];
41902
41902
  if (names2.every((name) => this.shouldAutomaticallyElideImportedName(name))) {
41903
- this.importsToReplace.set(path28, "");
41903
+ this.importsToReplace.set(path29, "");
41904
41904
  }
41905
41905
  }
41906
41906
  }
@@ -41908,7 +41908,7 @@ var require_CJSImportProcessor = __commonJS({
41908
41908
  return this.isTypeScriptTransformEnabled && !this.keepUnusedImports && !this.nonTypeIdentifiers.has(name);
41909
41909
  }
41910
41910
  generateImportReplacements() {
41911
- for (const [path28, importInfo] of this.importInfoByPath.entries()) {
41911
+ for (const [path29, importInfo] of this.importInfoByPath.entries()) {
41912
41912
  const {
41913
41913
  defaultNames,
41914
41914
  wildcardNames,
@@ -41918,17 +41918,17 @@ var require_CJSImportProcessor = __commonJS({
41918
41918
  hasStarExport
41919
41919
  } = importInfo;
41920
41920
  if (defaultNames.length === 0 && wildcardNames.length === 0 && namedImports.length === 0 && namedExports.length === 0 && exportStarNames.length === 0 && !hasStarExport) {
41921
- this.importsToReplace.set(path28, `require('${path28}');`);
41921
+ this.importsToReplace.set(path29, `require('${path29}');`);
41922
41922
  continue;
41923
41923
  }
41924
- const primaryImportName = this.getFreeIdentifierForPath(path28);
41924
+ const primaryImportName = this.getFreeIdentifierForPath(path29);
41925
41925
  let secondaryImportName;
41926
41926
  if (this.enableLegacyTypeScriptModuleInterop) {
41927
41927
  secondaryImportName = primaryImportName;
41928
41928
  } else {
41929
- secondaryImportName = wildcardNames.length > 0 ? wildcardNames[0] : this.getFreeIdentifierForPath(path28);
41929
+ secondaryImportName = wildcardNames.length > 0 ? wildcardNames[0] : this.getFreeIdentifierForPath(path29);
41930
41930
  }
41931
- let requireCode = `var ${primaryImportName} = require('${path28}');`;
41931
+ let requireCode = `var ${primaryImportName} = require('${path29}');`;
41932
41932
  if (wildcardNames.length > 0) {
41933
41933
  for (const wildcardName of wildcardNames) {
41934
41934
  const moduleExpr = this.enableLegacyTypeScriptModuleInterop ? primaryImportName : `${this.helperManager.getHelperName("interopRequireWildcard")}(${primaryImportName})`;
@@ -41956,7 +41956,7 @@ var require_CJSImportProcessor = __commonJS({
41956
41956
  "createStarExport"
41957
41957
  )}(${primaryImportName});`;
41958
41958
  }
41959
- this.importsToReplace.set(path28, requireCode);
41959
+ this.importsToReplace.set(path29, requireCode);
41960
41960
  for (const defaultName of defaultNames) {
41961
41961
  this.identifierReplacements.set(defaultName, `${secondaryImportName}.default`);
41962
41962
  }
@@ -41965,8 +41965,8 @@ var require_CJSImportProcessor = __commonJS({
41965
41965
  }
41966
41966
  }
41967
41967
  }
41968
- getFreeIdentifierForPath(path28) {
41969
- const components = path28.split("/");
41968
+ getFreeIdentifierForPath(path29) {
41969
+ const components = path29.split("/");
41970
41970
  const lastComponent = components[components.length - 1];
41971
41971
  const baseName = lastComponent.replace(/\W/g, "");
41972
41972
  return this.nameManager.claimFreeName(`_${baseName}`);
@@ -42011,8 +42011,8 @@ var require_CJSImportProcessor = __commonJS({
42011
42011
  if (!this.tokens.matches1AtIndex(index, _types.TokenType.string)) {
42012
42012
  throw new Error("Expected string token at the end of import statement.");
42013
42013
  }
42014
- const path28 = this.tokens.stringValueAtIndex(index);
42015
- const importInfo = this.getImportInfo(path28);
42014
+ const path29 = this.tokens.stringValueAtIndex(index);
42015
+ const importInfo = this.getImportInfo(path29);
42016
42016
  importInfo.defaultNames.push(...defaultNames);
42017
42017
  importInfo.wildcardNames.push(...wildcardNames);
42018
42018
  importInfo.namedImports.push(...namedImports);
@@ -42079,8 +42079,8 @@ var require_CJSImportProcessor = __commonJS({
42079
42079
  if (!this.tokens.matches1AtIndex(index, _types.TokenType.string)) {
42080
42080
  throw new Error("Expected string token at the end of import statement.");
42081
42081
  }
42082
- const path28 = this.tokens.stringValueAtIndex(index);
42083
- const importInfo = this.getImportInfo(path28);
42082
+ const path29 = this.tokens.stringValueAtIndex(index);
42083
+ const importInfo = this.getImportInfo(path29);
42084
42084
  importInfo.namedExports.push(...namedImports);
42085
42085
  }
42086
42086
  preprocessExportStarAtIndex(index) {
@@ -42095,8 +42095,8 @@ var require_CJSImportProcessor = __commonJS({
42095
42095
  if (!this.tokens.matches1AtIndex(index, _types.TokenType.string)) {
42096
42096
  throw new Error("Expected string token at the end of star export statement.");
42097
42097
  }
42098
- const path28 = this.tokens.stringValueAtIndex(index);
42099
- const importInfo = this.getImportInfo(path28);
42098
+ const path29 = this.tokens.stringValueAtIndex(index);
42099
+ const importInfo = this.getImportInfo(path29);
42100
42100
  if (exportedName !== null) {
42101
42101
  importInfo.exportStarNames.push(exportedName);
42102
42102
  } else {
@@ -42136,8 +42136,8 @@ var require_CJSImportProcessor = __commonJS({
42136
42136
  * Get a mutable import info object for this path, creating one if it doesn't
42137
42137
  * exist yet.
42138
42138
  */
42139
- getImportInfo(path28) {
42140
- const existingInfo = this.importInfoByPath.get(path28);
42139
+ getImportInfo(path29) {
42140
+ const existingInfo = this.importInfoByPath.get(path29);
42141
42141
  if (existingInfo) {
42142
42142
  return existingInfo;
42143
42143
  }
@@ -42150,7 +42150,7 @@ var require_CJSImportProcessor = __commonJS({
42150
42150
  exportStarNames: [],
42151
42151
  hasStarExport: false
42152
42152
  };
42153
- this.importInfoByPath.set(path28, newInfo);
42153
+ this.importInfoByPath.set(path29, newInfo);
42154
42154
  return newInfo;
42155
42155
  }
42156
42156
  addExportBinding(localName, exportedName) {
@@ -42196,9 +42196,9 @@ var require_CJSImportProcessor = __commonJS({
42196
42196
  }
42197
42197
  });
42198
42198
 
42199
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js
42199
+ // node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js
42200
42200
  var require_sourcemap_codec_umd = __commonJS({
42201
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js"(exports, module) {
42201
+ "node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js"(exports, module) {
42202
42202
  (function(global, factory) {
42203
42203
  if (typeof exports === "object" && typeof module !== "undefined") {
42204
42204
  factory(module);
@@ -42223,9 +42223,9 @@ var require_sourcemap_codec_umd = __commonJS({
42223
42223
  var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
42224
42224
  var __getOwnPropNames2 = Object.getOwnPropertyNames;
42225
42225
  var __hasOwnProp2 = Object.prototype.hasOwnProperty;
42226
- var __export2 = (target, all2) => {
42227
- for (var name in all2)
42228
- __defProp2(target, name, { get: all2[name], enumerable: true });
42226
+ var __export2 = (target, all) => {
42227
+ for (var name in all)
42228
+ __defProp2(target, name, { get: all[name], enumerable: true });
42229
42229
  };
42230
42230
  var __copyProps2 = (to, from, except, desc) => {
42231
42231
  if (from && typeof from === "object" || typeof from === "function") {
@@ -42699,9 +42699,9 @@ var require_sourcemap_codec_umd = __commonJS({
42699
42699
  }
42700
42700
  });
42701
42701
 
42702
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js
42702
+ // node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js
42703
42703
  var require_resolve_uri_umd = __commonJS({
42704
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js"(exports, module) {
42704
+ "node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js"(exports, module) {
42705
42705
  (function(global, factory) {
42706
42706
  typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, global.resolveURI = factory());
42707
42707
  })(exports, (function() {
@@ -42730,16 +42730,16 @@ var require_resolve_uri_umd = __commonJS({
42730
42730
  }
42731
42731
  function parseFileUrl(input) {
42732
42732
  const match = fileRegex.exec(input);
42733
- const path28 = match[2];
42734
- return makeUrl("file:", "", match[1] || "", "", isAbsolutePath(path28) ? path28 : "/" + path28, match[3] || "", match[4] || "");
42733
+ const path29 = match[2];
42734
+ return makeUrl("file:", "", match[1] || "", "", isAbsolutePath(path29) ? path29 : "/" + path29, match[3] || "", match[4] || "");
42735
42735
  }
42736
- function makeUrl(scheme, user, host, port, path28, query, hash) {
42736
+ function makeUrl(scheme, user, host, port, path29, query, hash) {
42737
42737
  return {
42738
42738
  scheme,
42739
42739
  user,
42740
42740
  host,
42741
42741
  port,
42742
- path: path28,
42742
+ path: path29,
42743
42743
  query,
42744
42744
  hash,
42745
42745
  type: 7
@@ -42769,11 +42769,11 @@ var require_resolve_uri_umd = __commonJS({
42769
42769
  url.type = input ? input.startsWith("?") ? 3 : input.startsWith("#") ? 2 : 4 : 1;
42770
42770
  return url;
42771
42771
  }
42772
- function stripPathFilename(path28) {
42773
- if (path28.endsWith("/.."))
42774
- return path28;
42775
- const index = path28.lastIndexOf("/");
42776
- return path28.slice(0, index + 1);
42772
+ function stripPathFilename(path29) {
42773
+ if (path29.endsWith("/.."))
42774
+ return path29;
42775
+ const index = path29.lastIndexOf("/");
42776
+ return path29.slice(0, index + 1);
42777
42777
  }
42778
42778
  function mergePaths(url, base) {
42779
42779
  normalizePath(base, base.type);
@@ -42811,14 +42811,14 @@ var require_resolve_uri_umd = __commonJS({
42811
42811
  pieces[pointer++] = piece;
42812
42812
  positive++;
42813
42813
  }
42814
- let path28 = "";
42814
+ let path29 = "";
42815
42815
  for (let i = 1; i < pointer; i++) {
42816
- path28 += "/" + pieces[i];
42816
+ path29 += "/" + pieces[i];
42817
42817
  }
42818
- if (!path28 || addTrailingSlash && !path28.endsWith("/..")) {
42819
- path28 += "/";
42818
+ if (!path29 || addTrailingSlash && !path29.endsWith("/..")) {
42819
+ path29 += "/";
42820
42820
  }
42821
- url.path = path28;
42821
+ url.path = path29;
42822
42822
  }
42823
42823
  function resolve2(input, base) {
42824
42824
  if (!input && !base)
@@ -42859,13 +42859,13 @@ var require_resolve_uri_umd = __commonJS({
42859
42859
  case 3:
42860
42860
  return queryHash;
42861
42861
  case 4: {
42862
- const path28 = url.path.slice(1);
42863
- if (!path28)
42862
+ const path29 = url.path.slice(1);
42863
+ if (!path29)
42864
42864
  return queryHash || ".";
42865
- if (isRelative(base || input) && !isRelative(path28)) {
42866
- return "./" + path28 + queryHash;
42865
+ if (isRelative(base || input) && !isRelative(path29)) {
42866
+ return "./" + path29 + queryHash;
42867
42867
  }
42868
- return path28 + queryHash;
42868
+ return path29 + queryHash;
42869
42869
  }
42870
42870
  case 5:
42871
42871
  return url.path + queryHash;
@@ -42878,9 +42878,9 @@ var require_resolve_uri_umd = __commonJS({
42878
42878
  }
42879
42879
  });
42880
42880
 
42881
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js
42881
+ // node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js
42882
42882
  var require_trace_mapping_umd = __commonJS({
42883
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js"(exports, module) {
42883
+ "node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js"(exports, module) {
42884
42884
  (function(global, factory) {
42885
42885
  if (typeof exports === "object" && typeof module !== "undefined") {
42886
42886
  factory(module, require_resolve_uri_umd(), require_sourcemap_codec_umd());
@@ -42910,9 +42910,9 @@ var require_trace_mapping_umd = __commonJS({
42910
42910
  var __commonJS2 = (cb, mod) => function __require2() {
42911
42911
  return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
42912
42912
  };
42913
- var __export2 = (target, all2) => {
42914
- for (var name in all2)
42915
- __defProp2(target, name, { get: all2[name], enumerable: true });
42913
+ var __export2 = (target, all) => {
42914
+ for (var name in all)
42915
+ __defProp2(target, name, { get: all[name], enumerable: true });
42916
42916
  };
42917
42917
  var __copyProps2 = (to, from, except, desc) => {
42918
42918
  if (from && typeof from === "object" || typeof from === "function") {
@@ -42964,10 +42964,10 @@ var require_trace_mapping_umd = __commonJS({
42964
42964
  module2.exports = __toCommonJS(trace_mapping_exports);
42965
42965
  var import_sourcemap_codec = __toESM2(require_sourcemap_codec());
42966
42966
  var import_resolve_uri = __toESM2(require_resolve_uri());
42967
- function stripFilename(path28) {
42968
- if (!path28) return "";
42969
- const index = path28.lastIndexOf("/");
42970
- return path28.slice(0, index + 1);
42967
+ function stripFilename(path29) {
42968
+ if (!path29) return "";
42969
+ const index = path29.lastIndexOf("/");
42970
+ return path29.slice(0, index + 1);
42971
42971
  }
42972
42972
  function resolver(mapUrl, sourceRoot) {
42973
42973
  const from = stripFilename(mapUrl);
@@ -43394,7 +43394,7 @@ var require_trace_mapping_umd = __commonJS({
43394
43394
  }
43395
43395
  return result;
43396
43396
  }
43397
- function generatedPosition(map2, source, line, column, bias, all2) {
43397
+ function generatedPosition(map2, source, line, column, bias, all) {
43398
43398
  var _a, _b;
43399
43399
  line--;
43400
43400
  if (line < 0) throw new Error(LINE_GTR_ZERO);
@@ -43402,13 +43402,13 @@ var require_trace_mapping_umd = __commonJS({
43402
43402
  const { sources, resolvedSources } = map2;
43403
43403
  let sourceIndex2 = sources.indexOf(source);
43404
43404
  if (sourceIndex2 === -1) sourceIndex2 = resolvedSources.indexOf(source);
43405
- if (sourceIndex2 === -1) return all2 ? [] : GMapping(null, null);
43405
+ if (sourceIndex2 === -1) return all ? [] : GMapping(null, null);
43406
43406
  const bySourceMemos = (_a = cast(map2))._bySourceMemos || (_a._bySourceMemos = sources.map(memoizedState));
43407
43407
  const generated = (_b = cast(map2))._bySources || (_b._bySources = buildBySources(decodedMappings(map2), bySourceMemos));
43408
43408
  const segments = generated[sourceIndex2][line];
43409
- if (segments == null) return all2 ? [] : GMapping(null, null);
43409
+ if (segments == null) return all ? [] : GMapping(null, null);
43410
43410
  const memo = bySourceMemos[sourceIndex2];
43411
- if (all2) return sliceGeneratedPositions(segments, memo, line, column, bias);
43411
+ if (all) return sliceGeneratedPositions(segments, memo, line, column, bias);
43412
43412
  const index = traceSegmentInternal(segments, memo, line, column, bias);
43413
43413
  if (index === -1) return GMapping(null, null);
43414
43414
  const segment = segments[index];
@@ -43418,9 +43418,9 @@ var require_trace_mapping_umd = __commonJS({
43418
43418
  }
43419
43419
  });
43420
43420
 
43421
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js
43421
+ // node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js
43422
43422
  var require_gen_mapping_umd = __commonJS({
43423
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js"(exports, module) {
43423
+ "node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js"(exports, module) {
43424
43424
  (function(global, factory) {
43425
43425
  if (typeof exports === "object" && typeof module !== "undefined") {
43426
43426
  factory(module, require_sourcemap_codec_umd(), require_trace_mapping_umd());
@@ -43450,9 +43450,9 @@ var require_gen_mapping_umd = __commonJS({
43450
43450
  var __commonJS2 = (cb, mod) => function __require2() {
43451
43451
  return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
43452
43452
  };
43453
- var __export2 = (target, all2) => {
43454
- for (var name in all2)
43455
- __defProp2(target, name, { get: all2[name], enumerable: true });
43453
+ var __export2 = (target, all) => {
43454
+ for (var name in all)
43455
+ __defProp2(target, name, { get: all[name], enumerable: true });
43456
43456
  };
43457
43457
  var __copyProps2 = (to, from, except, desc) => {
43458
43458
  if (from && typeof from === "object" || typeof from === "function") {
@@ -43769,9 +43769,9 @@ var require_gen_mapping_umd = __commonJS({
43769
43769
  }
43770
43770
  });
43771
43771
 
43772
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/computeSourceMap.js
43772
+ // node_modules/sucrase/dist/computeSourceMap.js
43773
43773
  var require_computeSourceMap = __commonJS({
43774
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/computeSourceMap.js"(exports) {
43774
+ "node_modules/sucrase/dist/computeSourceMap.js"(exports) {
43775
43775
  "use strict";
43776
43776
  Object.defineProperty(exports, "__esModule", { value: true });
43777
43777
  var _genmapping = require_gen_mapping_umd();
@@ -43832,9 +43832,9 @@ var require_computeSourceMap = __commonJS({
43832
43832
  }
43833
43833
  });
43834
43834
 
43835
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/HelperManager.js
43835
+ // node_modules/sucrase/dist/HelperManager.js
43836
43836
  var require_HelperManager = __commonJS({
43837
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/HelperManager.js"(exports) {
43837
+ "node_modules/sucrase/dist/HelperManager.js"(exports) {
43838
43838
  "use strict";
43839
43839
  Object.defineProperty(exports, "__esModule", { value: true });
43840
43840
  var HELPERS = {
@@ -44021,9 +44021,9 @@ var require_HelperManager = __commonJS({
44021
44021
  }
44022
44022
  });
44023
44023
 
44024
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/identifyShadowedGlobals.js
44024
+ // node_modules/sucrase/dist/identifyShadowedGlobals.js
44025
44025
  var require_identifyShadowedGlobals = __commonJS({
44026
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/identifyShadowedGlobals.js"(exports) {
44026
+ "node_modules/sucrase/dist/identifyShadowedGlobals.js"(exports) {
44027
44027
  "use strict";
44028
44028
  Object.defineProperty(exports, "__esModule", { value: true });
44029
44029
  var _tokenizer = require_tokenizer();
@@ -44090,9 +44090,9 @@ var require_identifyShadowedGlobals = __commonJS({
44090
44090
  }
44091
44091
  });
44092
44092
 
44093
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/getIdentifierNames.js
44093
+ // node_modules/sucrase/dist/util/getIdentifierNames.js
44094
44094
  var require_getIdentifierNames = __commonJS({
44095
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/getIdentifierNames.js"(exports) {
44095
+ "node_modules/sucrase/dist/util/getIdentifierNames.js"(exports) {
44096
44096
  "use strict";
44097
44097
  Object.defineProperty(exports, "__esModule", { value: true });
44098
44098
  var _types = require_types();
@@ -44109,9 +44109,9 @@ var require_getIdentifierNames = __commonJS({
44109
44109
  }
44110
44110
  });
44111
44111
 
44112
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/NameManager.js
44112
+ // node_modules/sucrase/dist/NameManager.js
44113
44113
  var require_NameManager = __commonJS({
44114
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/NameManager.js"(exports) {
44114
+ "node_modules/sucrase/dist/NameManager.js"(exports) {
44115
44115
  "use strict";
44116
44116
  Object.defineProperty(exports, "__esModule", { value: true });
44117
44117
  function _interopRequireDefault(obj3) {
@@ -44148,9 +44148,9 @@ var require_NameManager = __commonJS({
44148
44148
  }
44149
44149
  });
44150
44150
 
44151
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/ts-interface-checker/dist/util.js
44151
+ // node_modules/ts-interface-checker/dist/util.js
44152
44152
  var require_util2 = __commonJS({
44153
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/ts-interface-checker/dist/util.js"(exports) {
44153
+ "node_modules/ts-interface-checker/dist/util.js"(exports) {
44154
44154
  "use strict";
44155
44155
  var __extends = exports && exports.__extends || /* @__PURE__ */ (function() {
44156
44156
  var extendStatics = function(d2, b2) {
@@ -44175,9 +44175,9 @@ var require_util2 = __commonJS({
44175
44175
  /** @class */
44176
44176
  (function(_super) {
44177
44177
  __extends(VError2, _super);
44178
- function VError2(path28, message) {
44178
+ function VError2(path29, message) {
44179
44179
  var _this = _super.call(this, message) || this;
44180
- _this.path = path28;
44180
+ _this.path = path29;
44181
44181
  Object.setPrototypeOf(_this, VError2.prototype);
44182
44182
  return _this;
44183
44183
  }
@@ -44237,26 +44237,26 @@ var require_util2 = __commonJS({
44237
44237
  (_b = this._messages).push.apply(_b, best._messages);
44238
44238
  }
44239
44239
  };
44240
- DetailContext2.prototype.getError = function(path28) {
44240
+ DetailContext2.prototype.getError = function(path29) {
44241
44241
  var msgParts = [];
44242
44242
  for (var i = this._propNames.length - 1; i >= 0; i--) {
44243
44243
  var p2 = this._propNames[i];
44244
- path28 += typeof p2 === "number" ? "[" + p2 + "]" : p2 ? "." + p2 : "";
44244
+ path29 += typeof p2 === "number" ? "[" + p2 + "]" : p2 ? "." + p2 : "";
44245
44245
  var m = this._messages[i];
44246
44246
  if (m) {
44247
- msgParts.push(path28 + " " + m);
44247
+ msgParts.push(path29 + " " + m);
44248
44248
  }
44249
44249
  }
44250
- return new VError(path28, msgParts.join("; "));
44250
+ return new VError(path29, msgParts.join("; "));
44251
44251
  };
44252
- DetailContext2.prototype.getErrorDetail = function(path28) {
44252
+ DetailContext2.prototype.getErrorDetail = function(path29) {
44253
44253
  var details = [];
44254
44254
  for (var i = this._propNames.length - 1; i >= 0; i--) {
44255
44255
  var p2 = this._propNames[i];
44256
- path28 += typeof p2 === "number" ? "[" + p2 + "]" : p2 ? "." + p2 : "";
44256
+ path29 += typeof p2 === "number" ? "[" + p2 + "]" : p2 ? "." + p2 : "";
44257
44257
  var message = this._messages[i];
44258
44258
  if (message) {
44259
- details.push({ path: path28, message });
44259
+ details.push({ path: path29, message });
44260
44260
  }
44261
44261
  }
44262
44262
  var detail = null;
@@ -44289,9 +44289,9 @@ var require_util2 = __commonJS({
44289
44289
  }
44290
44290
  });
44291
44291
 
44292
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/ts-interface-checker/dist/types.js
44292
+ // node_modules/ts-interface-checker/dist/types.js
44293
44293
  var require_types2 = __commonJS({
44294
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/ts-interface-checker/dist/types.js"(exports) {
44294
+ "node_modules/ts-interface-checker/dist/types.js"(exports) {
44295
44295
  "use strict";
44296
44296
  var __extends = exports && exports.__extends || /* @__PURE__ */ (function() {
44297
44297
  var extendStatics = function(d2, b2) {
@@ -44406,8 +44406,8 @@ var require_types2 = __commonJS({
44406
44406
  return ctx.fail(null, "is not an array", 0);
44407
44407
  }
44408
44408
  for (var i = 0; i < value.length; i++) {
44409
- var ok2 = itemChecker(value[i], ctx);
44410
- if (!ok2) {
44409
+ var ok = itemChecker(value[i], ctx);
44410
+ if (!ok) {
44411
44411
  return ctx.fail(i, null, 1);
44412
44412
  }
44413
44413
  }
@@ -44446,8 +44446,8 @@ var require_types2 = __commonJS({
44446
44446
  return ctx.fail(null, "is not an array", 0);
44447
44447
  }
44448
44448
  for (var i = 0; i < itemCheckers.length; i++) {
44449
- var ok2 = itemCheckers[i](value[i], ctx);
44450
- if (!ok2) {
44449
+ var ok = itemCheckers[i](value[i], ctx);
44450
+ if (!ok) {
44451
44451
  return ctx.fail(i, null, 1);
44452
44452
  }
44453
44453
  }
@@ -44508,8 +44508,8 @@ var require_types2 = __commonJS({
44508
44508
  return function(value, ctx) {
44509
44509
  var ur2 = ctx.unionResolver();
44510
44510
  for (var i = 0; i < itemCheckers.length; i++) {
44511
- var ok2 = itemCheckers[i](value, ur2.createContext());
44512
- if (ok2) {
44511
+ var ok = itemCheckers[i](value, ur2.createContext());
44512
+ if (ok) {
44513
44513
  return true;
44514
44514
  }
44515
44515
  }
@@ -44546,10 +44546,10 @@ var require_types2 = __commonJS({
44546
44546
  return t2.getChecker(suite, strict, allowedProps);
44547
44547
  });
44548
44548
  return function(value, ctx) {
44549
- var ok2 = itemCheckers.every(function(checker) {
44549
+ var ok = itemCheckers.every(function(checker) {
44550
44550
  return checker(value, ctx);
44551
44551
  });
44552
- if (ok2) {
44552
+ if (ok) {
44553
44553
  return true;
44554
44554
  }
44555
44555
  return ctx.fail(null, null, 0);
@@ -44674,8 +44674,8 @@ var require_types2 = __commonJS({
44674
44674
  return ctx.fail(name_1, "is missing", 1);
44675
44675
  }
44676
44676
  } else {
44677
- var ok2 = propCheckers[i](v2, ctx);
44678
- if (!ok2) {
44677
+ var ok = propCheckers[i](v2, ctx);
44678
+ if (!ok) {
44679
44679
  return ctx.fail(name_1, null, 1);
44680
44680
  }
44681
44681
  }
@@ -44815,8 +44815,8 @@ var require_types2 = __commonJS({
44815
44815
  return ctx.fail(p2.name, "is missing", 1);
44816
44816
  }
44817
44817
  } else {
44818
- var ok2 = itemCheckers[i](value[i], ctx);
44819
- if (!ok2) {
44818
+ var ok = itemCheckers[i](value[i], ctx);
44819
+ if (!ok) {
44820
44820
  return ctx.fail(p2.name, null, 1);
44821
44821
  }
44822
44822
  }
@@ -44928,9 +44928,9 @@ var require_types2 = __commonJS({
44928
44928
  }
44929
44929
  });
44930
44930
 
44931
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/ts-interface-checker/dist/index.js
44931
+ // node_modules/ts-interface-checker/dist/index.js
44932
44932
  var require_dist = __commonJS({
44933
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/ts-interface-checker/dist/index.js"(exports) {
44933
+ "node_modules/ts-interface-checker/dist/index.js"(exports) {
44934
44934
  "use strict";
44935
44935
  var __spreadArrays = exports && exports.__spreadArrays || function() {
44936
44936
  for (var s = 0, i = 0, il2 = arguments.length; i < il2; i++) s += arguments[i].length;
@@ -45069,8 +45069,8 @@ var require_dist = __commonJS({
45069
45069
  this.checkerPlain = this.ttype.getChecker(suite, false);
45070
45070
  this.checkerStrict = this.ttype.getChecker(suite, true);
45071
45071
  }
45072
- Checker2.prototype.setReportedPath = function(path28) {
45073
- this._path = path28;
45072
+ Checker2.prototype.setReportedPath = function(path29) {
45073
+ this._path = path29;
45074
45074
  };
45075
45075
  Checker2.prototype.check = function(value) {
45076
45076
  return this._doCheck(this.checkerPlain, value);
@@ -45154,9 +45154,9 @@ var require_dist = __commonJS({
45154
45154
  }
45155
45155
  });
45156
45156
 
45157
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/Options-gen-types.js
45157
+ // node_modules/sucrase/dist/Options-gen-types.js
45158
45158
  var require_Options_gen_types = __commonJS({
45159
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/Options-gen-types.js"(exports) {
45159
+ "node_modules/sucrase/dist/Options-gen-types.js"(exports) {
45160
45160
  "use strict";
45161
45161
  Object.defineProperty(exports, "__esModule", { value: true });
45162
45162
  function _interopRequireWildcard(obj3) {
@@ -45216,9 +45216,9 @@ var require_Options_gen_types = __commonJS({
45216
45216
  }
45217
45217
  });
45218
45218
 
45219
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/Options.js
45219
+ // node_modules/sucrase/dist/Options.js
45220
45220
  var require_Options = __commonJS({
45221
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/Options.js"(exports) {
45221
+ "node_modules/sucrase/dist/Options.js"(exports) {
45222
45222
  "use strict";
45223
45223
  Object.defineProperty(exports, "__esModule", { value: true });
45224
45224
  function _interopRequireDefault(obj3) {
@@ -45235,9 +45235,9 @@ var require_Options = __commonJS({
45235
45235
  }
45236
45236
  });
45237
45237
 
45238
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/traverser/lval.js
45238
+ // node_modules/sucrase/dist/parser/traverser/lval.js
45239
45239
  var require_lval = __commonJS({
45240
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/traverser/lval.js"(exports) {
45240
+ "node_modules/sucrase/dist/parser/traverser/lval.js"(exports) {
45241
45241
  "use strict";
45242
45242
  Object.defineProperty(exports, "__esModule", { value: true });
45243
45243
  var _flow = require_flow();
@@ -45382,9 +45382,9 @@ var require_lval = __commonJS({
45382
45382
  }
45383
45383
  });
45384
45384
 
45385
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/plugins/typescript.js
45385
+ // node_modules/sucrase/dist/parser/plugins/typescript.js
45386
45386
  var require_typescript = __commonJS({
45387
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/plugins/typescript.js"(exports) {
45387
+ "node_modules/sucrase/dist/parser/plugins/typescript.js"(exports) {
45388
45388
  "use strict";
45389
45389
  Object.defineProperty(exports, "__esModule", { value: true });
45390
45390
  var _index = require_tokenizer();
@@ -46695,9 +46695,9 @@ var require_typescript = __commonJS({
46695
46695
  }
46696
46696
  });
46697
46697
 
46698
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/plugins/jsx/index.js
46698
+ // node_modules/sucrase/dist/parser/plugins/jsx/index.js
46699
46699
  var require_jsx = __commonJS({
46700
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/plugins/jsx/index.js"(exports) {
46700
+ "node_modules/sucrase/dist/parser/plugins/jsx/index.js"(exports) {
46701
46701
  "use strict";
46702
46702
  Object.defineProperty(exports, "__esModule", { value: true });
46703
46703
  var _index = require_tokenizer();
@@ -46965,9 +46965,9 @@ var require_jsx = __commonJS({
46965
46965
  }
46966
46966
  });
46967
46967
 
46968
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/plugins/types.js
46968
+ // node_modules/sucrase/dist/parser/plugins/types.js
46969
46969
  var require_types3 = __commonJS({
46970
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/plugins/types.js"(exports) {
46970
+ "node_modules/sucrase/dist/parser/plugins/types.js"(exports) {
46971
46971
  "use strict";
46972
46972
  Object.defineProperty(exports, "__esModule", { value: true });
46973
46973
  var _index = require_tokenizer();
@@ -47000,9 +47000,9 @@ var require_types3 = __commonJS({
47000
47000
  }
47001
47001
  });
47002
47002
 
47003
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/traverser/expression.js
47003
+ // node_modules/sucrase/dist/parser/traverser/expression.js
47004
47004
  var require_expression = __commonJS({
47005
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/traverser/expression.js"(exports) {
47005
+ "node_modules/sucrase/dist/parser/traverser/expression.js"(exports) {
47006
47006
  "use strict";
47007
47007
  Object.defineProperty(exports, "__esModule", { value: true });
47008
47008
  var _flow = require_flow();
@@ -47740,9 +47740,9 @@ var require_expression = __commonJS({
47740
47740
  }
47741
47741
  });
47742
47742
 
47743
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/plugins/flow.js
47743
+ // node_modules/sucrase/dist/parser/plugins/flow.js
47744
47744
  var require_flow = __commonJS({
47745
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/plugins/flow.js"(exports) {
47745
+ "node_modules/sucrase/dist/parser/plugins/flow.js"(exports) {
47746
47746
  "use strict";
47747
47747
  Object.defineProperty(exports, "__esModule", { value: true });
47748
47748
  var _index = require_tokenizer();
@@ -48623,9 +48623,9 @@ var require_flow = __commonJS({
48623
48623
  }
48624
48624
  });
48625
48625
 
48626
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/traverser/statement.js
48626
+ // node_modules/sucrase/dist/parser/traverser/statement.js
48627
48627
  var require_statement = __commonJS({
48628
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/traverser/statement.js"(exports) {
48628
+ "node_modules/sucrase/dist/parser/traverser/statement.js"(exports) {
48629
48629
  "use strict";
48630
48630
  Object.defineProperty(exports, "__esModule", { value: true });
48631
48631
  var _index = require_parser();
@@ -49620,9 +49620,9 @@ var require_statement = __commonJS({
49620
49620
  }
49621
49621
  });
49622
49622
 
49623
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/traverser/index.js
49623
+ // node_modules/sucrase/dist/parser/traverser/index.js
49624
49624
  var require_traverser = __commonJS({
49625
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/traverser/index.js"(exports) {
49625
+ "node_modules/sucrase/dist/parser/traverser/index.js"(exports) {
49626
49626
  "use strict";
49627
49627
  Object.defineProperty(exports, "__esModule", { value: true });
49628
49628
  var _index = require_tokenizer();
@@ -49640,9 +49640,9 @@ var require_traverser = __commonJS({
49640
49640
  }
49641
49641
  });
49642
49642
 
49643
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/index.js
49643
+ // node_modules/sucrase/dist/parser/index.js
49644
49644
  var require_parser = __commonJS({
49645
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/parser/index.js"(exports) {
49645
+ "node_modules/sucrase/dist/parser/index.js"(exports) {
49646
49646
  "use strict";
49647
49647
  Object.defineProperty(exports, "__esModule", { value: true });
49648
49648
  var _base = require_base();
@@ -49669,9 +49669,9 @@ var require_parser = __commonJS({
49669
49669
  }
49670
49670
  });
49671
49671
 
49672
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/isAsyncOperation.js
49672
+ // node_modules/sucrase/dist/util/isAsyncOperation.js
49673
49673
  var require_isAsyncOperation = __commonJS({
49674
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/isAsyncOperation.js"(exports) {
49674
+ "node_modules/sucrase/dist/util/isAsyncOperation.js"(exports) {
49675
49675
  "use strict";
49676
49676
  Object.defineProperty(exports, "__esModule", { value: true });
49677
49677
  var _keywords = require_keywords();
@@ -49700,9 +49700,9 @@ var require_isAsyncOperation = __commonJS({
49700
49700
  }
49701
49701
  });
49702
49702
 
49703
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/TokenProcessor.js
49703
+ // node_modules/sucrase/dist/TokenProcessor.js
49704
49704
  var require_TokenProcessor = __commonJS({
49705
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/TokenProcessor.js"(exports) {
49705
+ "node_modules/sucrase/dist/TokenProcessor.js"(exports) {
49706
49706
  "use strict";
49707
49707
  Object.defineProperty(exports, "__esModule", { value: true });
49708
49708
  function _interopRequireDefault(obj3) {
@@ -49995,9 +49995,9 @@ var require_TokenProcessor = __commonJS({
49995
49995
  }
49996
49996
  });
49997
49997
 
49998
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/getClassInfo.js
49998
+ // node_modules/sucrase/dist/util/getClassInfo.js
49999
49999
  var require_getClassInfo = __commonJS({
50000
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/getClassInfo.js"(exports) {
50000
+ "node_modules/sucrase/dist/util/getClassInfo.js"(exports) {
50001
50001
  "use strict";
50002
50002
  Object.defineProperty(exports, "__esModule", { value: true });
50003
50003
  var _keywords = require_keywords();
@@ -50237,9 +50237,9 @@ var require_getClassInfo = __commonJS({
50237
50237
  }
50238
50238
  });
50239
50239
 
50240
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/elideImportEquals.js
50240
+ // node_modules/sucrase/dist/util/elideImportEquals.js
50241
50241
  var require_elideImportEquals = __commonJS({
50242
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/elideImportEquals.js"(exports) {
50242
+ "node_modules/sucrase/dist/util/elideImportEquals.js"(exports) {
50243
50243
  "use strict";
50244
50244
  Object.defineProperty(exports, "__esModule", { value: true });
50245
50245
  var _types = require_types();
@@ -50263,9 +50263,9 @@ var require_elideImportEquals = __commonJS({
50263
50263
  }
50264
50264
  });
50265
50265
 
50266
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/getDeclarationInfo.js
50266
+ // node_modules/sucrase/dist/util/getDeclarationInfo.js
50267
50267
  var require_getDeclarationInfo = __commonJS({
50268
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/getDeclarationInfo.js"(exports) {
50268
+ "node_modules/sucrase/dist/util/getDeclarationInfo.js"(exports) {
50269
50269
  "use strict";
50270
50270
  Object.defineProperty(exports, "__esModule", { value: true });
50271
50271
  var _tokenizer = require_tokenizer();
@@ -50294,9 +50294,9 @@ var require_getDeclarationInfo = __commonJS({
50294
50294
  }
50295
50295
  });
50296
50296
 
50297
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/isExportFrom.js
50297
+ // node_modules/sucrase/dist/util/isExportFrom.js
50298
50298
  var require_isExportFrom = __commonJS({
50299
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/isExportFrom.js"(exports) {
50299
+ "node_modules/sucrase/dist/util/isExportFrom.js"(exports) {
50300
50300
  "use strict";
50301
50301
  Object.defineProperty(exports, "__esModule", { value: true });
50302
50302
  var _keywords = require_keywords();
@@ -50312,9 +50312,9 @@ var require_isExportFrom = __commonJS({
50312
50312
  }
50313
50313
  });
50314
50314
 
50315
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/removeMaybeImportAttributes.js
50315
+ // node_modules/sucrase/dist/util/removeMaybeImportAttributes.js
50316
50316
  var require_removeMaybeImportAttributes = __commonJS({
50317
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/removeMaybeImportAttributes.js"(exports) {
50317
+ "node_modules/sucrase/dist/util/removeMaybeImportAttributes.js"(exports) {
50318
50318
  "use strict";
50319
50319
  Object.defineProperty(exports, "__esModule", { value: true });
50320
50320
  var _keywords = require_keywords();
@@ -50331,9 +50331,9 @@ var require_removeMaybeImportAttributes = __commonJS({
50331
50331
  }
50332
50332
  });
50333
50333
 
50334
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/shouldElideDefaultExport.js
50334
+ // node_modules/sucrase/dist/util/shouldElideDefaultExport.js
50335
50335
  var require_shouldElideDefaultExport = __commonJS({
50336
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/shouldElideDefaultExport.js"(exports) {
50336
+ "node_modules/sucrase/dist/util/shouldElideDefaultExport.js"(exports) {
50337
50337
  "use strict";
50338
50338
  Object.defineProperty(exports, "__esModule", { value: true });
50339
50339
  var _types = require_types();
@@ -50360,9 +50360,9 @@ var require_shouldElideDefaultExport = __commonJS({
50360
50360
  }
50361
50361
  });
50362
50362
 
50363
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/CJSImportTransformer.js
50363
+ // node_modules/sucrase/dist/transformers/CJSImportTransformer.js
50364
50364
  var require_CJSImportTransformer = __commonJS({
50365
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/CJSImportTransformer.js"(exports) {
50365
+ "node_modules/sucrase/dist/transformers/CJSImportTransformer.js"(exports) {
50366
50366
  "use strict";
50367
50367
  Object.defineProperty(exports, "__esModule", { value: true });
50368
50368
  function _interopRequireDefault(obj3) {
@@ -50503,9 +50503,9 @@ var require_CJSImportTransformer = __commonJS({
50503
50503
  if (shouldElideImport) {
50504
50504
  this.tokens.removeToken();
50505
50505
  } else {
50506
- const path28 = this.tokens.stringValue();
50507
- this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(path28));
50508
- this.tokens.appendCode(this.importProcessor.claimImportCode(path28));
50506
+ const path29 = this.tokens.stringValue();
50507
+ this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(path29));
50508
+ this.tokens.appendCode(this.importProcessor.claimImportCode(path29));
50509
50509
  }
50510
50510
  _removeMaybeImportAttributes.removeMaybeImportAttributes.call(void 0, this.tokens);
50511
50511
  if (this.tokens.matches1(_types.TokenType.semi)) {
@@ -51085,8 +51085,8 @@ var require_CJSImportTransformer = __commonJS({
51085
51085
  }
51086
51086
  if (this.tokens.matchesContextual(_keywords.ContextualKeyword._from)) {
51087
51087
  this.tokens.removeToken();
51088
- const path28 = this.tokens.stringValue();
51089
- this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(path28));
51088
+ const path29 = this.tokens.stringValue();
51089
+ this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(path29));
51090
51090
  _removeMaybeImportAttributes.removeMaybeImportAttributes.call(void 0, this.tokens);
51091
51091
  } else {
51092
51092
  this.tokens.appendCode(exportStatements.join(" "));
@@ -51100,8 +51100,8 @@ var require_CJSImportTransformer = __commonJS({
51100
51100
  while (!this.tokens.matches1(_types.TokenType.string)) {
51101
51101
  this.tokens.removeToken();
51102
51102
  }
51103
- const path28 = this.tokens.stringValue();
51104
- this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(path28));
51103
+ const path29 = this.tokens.stringValue();
51104
+ this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(path29));
51105
51105
  _removeMaybeImportAttributes.removeMaybeImportAttributes.call(void 0, this.tokens);
51106
51106
  if (this.tokens.matches1(_types.TokenType.semi)) {
51107
51107
  this.tokens.removeToken();
@@ -51115,9 +51115,9 @@ var require_CJSImportTransformer = __commonJS({
51115
51115
  }
51116
51116
  });
51117
51117
 
51118
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/ESMImportTransformer.js
51118
+ // node_modules/sucrase/dist/transformers/ESMImportTransformer.js
51119
51119
  var require_ESMImportTransformer = __commonJS({
51120
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/ESMImportTransformer.js"(exports) {
51120
+ "node_modules/sucrase/dist/transformers/ESMImportTransformer.js"(exports) {
51121
51121
  "use strict";
51122
51122
  Object.defineProperty(exports, "__esModule", { value: true });
51123
51123
  function _interopRequireDefault(obj3) {
@@ -51419,9 +51419,9 @@ var require_ESMImportTransformer = __commonJS({
51419
51419
  }
51420
51420
  });
51421
51421
 
51422
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/FlowTransformer.js
51422
+ // node_modules/sucrase/dist/transformers/FlowTransformer.js
51423
51423
  var require_FlowTransformer = __commonJS({
51424
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/FlowTransformer.js"(exports) {
51424
+ "node_modules/sucrase/dist/transformers/FlowTransformer.js"(exports) {
51425
51425
  "use strict";
51426
51426
  Object.defineProperty(exports, "__esModule", { value: true });
51427
51427
  function _interopRequireDefault(obj3) {
@@ -51587,9 +51587,9 @@ var require_FlowTransformer = __commonJS({
51587
51587
  }
51588
51588
  });
51589
51589
 
51590
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/JestHoistTransformer.js
51590
+ // node_modules/sucrase/dist/transformers/JestHoistTransformer.js
51591
51591
  var require_JestHoistTransformer = __commonJS({
51592
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/JestHoistTransformer.js"(exports) {
51592
+ "node_modules/sucrase/dist/transformers/JestHoistTransformer.js"(exports) {
51593
51593
  "use strict";
51594
51594
  Object.defineProperty(exports, "__esModule", { value: true });
51595
51595
  function _interopRequireDefault(obj3) {
@@ -51693,9 +51693,9 @@ var require_JestHoistTransformer = __commonJS({
51693
51693
  }
51694
51694
  });
51695
51695
 
51696
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/NumericSeparatorTransformer.js
51696
+ // node_modules/sucrase/dist/transformers/NumericSeparatorTransformer.js
51697
51697
  var require_NumericSeparatorTransformer = __commonJS({
51698
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/NumericSeparatorTransformer.js"(exports) {
51698
+ "node_modules/sucrase/dist/transformers/NumericSeparatorTransformer.js"(exports) {
51699
51699
  "use strict";
51700
51700
  Object.defineProperty(exports, "__esModule", { value: true });
51701
51701
  function _interopRequireDefault(obj3) {
@@ -51725,9 +51725,9 @@ var require_NumericSeparatorTransformer = __commonJS({
51725
51725
  }
51726
51726
  });
51727
51727
 
51728
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/OptionalCatchBindingTransformer.js
51728
+ // node_modules/sucrase/dist/transformers/OptionalCatchBindingTransformer.js
51729
51729
  var require_OptionalCatchBindingTransformer = __commonJS({
51730
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/OptionalCatchBindingTransformer.js"(exports) {
51730
+ "node_modules/sucrase/dist/transformers/OptionalCatchBindingTransformer.js"(exports) {
51731
51731
  "use strict";
51732
51732
  Object.defineProperty(exports, "__esModule", { value: true });
51733
51733
  function _interopRequireDefault(obj3) {
@@ -51756,9 +51756,9 @@ var require_OptionalCatchBindingTransformer = __commonJS({
51756
51756
  }
51757
51757
  });
51758
51758
 
51759
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/OptionalChainingNullishTransformer.js
51759
+ // node_modules/sucrase/dist/transformers/OptionalChainingNullishTransformer.js
51760
51760
  var require_OptionalChainingNullishTransformer = __commonJS({
51761
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/OptionalChainingNullishTransformer.js"(exports) {
51761
+ "node_modules/sucrase/dist/transformers/OptionalChainingNullishTransformer.js"(exports) {
51762
51762
  "use strict";
51763
51763
  Object.defineProperty(exports, "__esModule", { value: true });
51764
51764
  function _interopRequireDefault(obj3) {
@@ -51894,9 +51894,9 @@ var require_OptionalChainingNullishTransformer = __commonJS({
51894
51894
  }
51895
51895
  });
51896
51896
 
51897
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/ReactDisplayNameTransformer.js
51897
+ // node_modules/sucrase/dist/transformers/ReactDisplayNameTransformer.js
51898
51898
  var require_ReactDisplayNameTransformer = __commonJS({
51899
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/ReactDisplayNameTransformer.js"(exports) {
51899
+ "node_modules/sucrase/dist/transformers/ReactDisplayNameTransformer.js"(exports) {
51900
51900
  "use strict";
51901
51901
  Object.defineProperty(exports, "__esModule", { value: true });
51902
51902
  function _interopRequireDefault(obj3) {
@@ -52022,9 +52022,9 @@ var require_ReactDisplayNameTransformer = __commonJS({
52022
52022
  }
52023
52023
  });
52024
52024
 
52025
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/ReactHotLoaderTransformer.js
52025
+ // node_modules/sucrase/dist/transformers/ReactHotLoaderTransformer.js
52026
52026
  var require_ReactHotLoaderTransformer = __commonJS({
52027
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/ReactHotLoaderTransformer.js"(exports) {
52027
+ "node_modules/sucrase/dist/transformers/ReactHotLoaderTransformer.js"(exports) {
52028
52028
  "use strict";
52029
52029
  Object.defineProperty(exports, "__esModule", { value: true });
52030
52030
  function _interopRequireDefault(obj3) {
@@ -52094,9 +52094,9 @@ ${namesToRegister.map(
52094
52094
  }
52095
52095
  });
52096
52096
 
52097
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/isIdentifier.js
52097
+ // node_modules/sucrase/dist/util/isIdentifier.js
52098
52098
  var require_isIdentifier = __commonJS({
52099
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/isIdentifier.js"(exports) {
52099
+ "node_modules/sucrase/dist/util/isIdentifier.js"(exports) {
52100
52100
  "use strict";
52101
52101
  Object.defineProperty(exports, "__esModule", { value: true });
52102
52102
  var _identifier = require_identifier();
@@ -52169,9 +52169,9 @@ var require_isIdentifier = __commonJS({
52169
52169
  }
52170
52170
  });
52171
52171
 
52172
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/TypeScriptTransformer.js
52172
+ // node_modules/sucrase/dist/transformers/TypeScriptTransformer.js
52173
52173
  var require_TypeScriptTransformer = __commonJS({
52174
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/TypeScriptTransformer.js"(exports) {
52174
+ "node_modules/sucrase/dist/transformers/TypeScriptTransformer.js"(exports) {
52175
52175
  "use strict";
52176
52176
  Object.defineProperty(exports, "__esModule", { value: true });
52177
52177
  function _interopRequireDefault(obj3) {
@@ -52410,9 +52410,9 @@ var require_TypeScriptTransformer = __commonJS({
52410
52410
  }
52411
52411
  });
52412
52412
 
52413
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/RootTransformer.js
52413
+ // node_modules/sucrase/dist/transformers/RootTransformer.js
52414
52414
  var require_RootTransformer = __commonJS({
52415
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/transformers/RootTransformer.js"(exports) {
52415
+ "node_modules/sucrase/dist/transformers/RootTransformer.js"(exports) {
52416
52416
  "use strict";
52417
52417
  Object.defineProperty(exports, "__esModule", { value: true });
52418
52418
  function _interopRequireDefault(obj3) {
@@ -52827,9 +52827,9 @@ var require_RootTransformer = __commonJS({
52827
52827
  }
52828
52828
  });
52829
52829
 
52830
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/lines-and-columns/build/index.js
52830
+ // node_modules/lines-and-columns/build/index.js
52831
52831
  var require_build = __commonJS({
52832
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/lines-and-columns/build/index.js"(exports) {
52832
+ "node_modules/lines-and-columns/build/index.js"(exports) {
52833
52833
  "use strict";
52834
52834
  exports.__esModule = true;
52835
52835
  exports.LinesAndColumns = void 0;
@@ -52896,9 +52896,9 @@ var require_build = __commonJS({
52896
52896
  }
52897
52897
  });
52898
52898
 
52899
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/formatTokens.js
52899
+ // node_modules/sucrase/dist/util/formatTokens.js
52900
52900
  var require_formatTokens = __commonJS({
52901
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/formatTokens.js"(exports) {
52901
+ "node_modules/sucrase/dist/util/formatTokens.js"(exports) {
52902
52902
  "use strict";
52903
52903
  Object.defineProperty(exports, "__esModule", { value: true });
52904
52904
  function _interopRequireDefault(obj3) {
@@ -52969,9 +52969,9 @@ var require_formatTokens = __commonJS({
52969
52969
  }
52970
52970
  });
52971
52971
 
52972
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/getTSImportedNames.js
52972
+ // node_modules/sucrase/dist/util/getTSImportedNames.js
52973
52973
  var require_getTSImportedNames = __commonJS({
52974
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/util/getTSImportedNames.js"(exports) {
52974
+ "node_modules/sucrase/dist/util/getTSImportedNames.js"(exports) {
52975
52975
  "use strict";
52976
52976
  Object.defineProperty(exports, "__esModule", { value: true });
52977
52977
  function _interopRequireDefault(obj3) {
@@ -53036,9 +53036,9 @@ var require_getTSImportedNames = __commonJS({
53036
53036
  }
53037
53037
  });
53038
53038
 
53039
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/index.js
53039
+ // node_modules/sucrase/dist/index.js
53040
53040
  var require_dist2 = __commonJS({
53041
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/sucrase/dist/index.js"(exports) {
53041
+ "node_modules/sucrase/dist/index.js"(exports) {
53042
53042
  "use strict";
53043
53043
  Object.defineProperty(exports, "__esModule", { value: true });
53044
53044
  function _interopRequireDefault(obj3) {
@@ -53151,15 +53151,15 @@ var require_dist2 = __commonJS({
53151
53151
  }
53152
53152
  });
53153
53153
 
53154
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/tailwindcss/dist/chunk-DCG7AFIE.mjs
53154
+ // node_modules/tailwindcss/dist/chunk-DCG7AFIE.mjs
53155
53155
  var o;
53156
53156
  var init_chunk_DCG7AFIE = __esm({
53157
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/tailwindcss/dist/chunk-DCG7AFIE.mjs"() {
53157
+ "node_modules/tailwindcss/dist/chunk-DCG7AFIE.mjs"() {
53158
53158
  o = { inherit: "inherit", current: "currentcolor", transparent: "transparent", black: "#000", white: "#fff", slate: { 50: "oklch(98.4% 0.003 247.858)", 100: "oklch(96.8% 0.007 247.896)", 200: "oklch(92.9% 0.013 255.508)", 300: "oklch(86.9% 0.022 252.894)", 400: "oklch(70.4% 0.04 256.788)", 500: "oklch(55.4% 0.046 257.417)", 600: "oklch(44.6% 0.043 257.281)", 700: "oklch(37.2% 0.044 257.287)", 800: "oklch(27.9% 0.041 260.031)", 900: "oklch(20.8% 0.042 265.755)", 950: "oklch(12.9% 0.042 264.695)" }, gray: { 50: "oklch(98.5% 0.002 247.839)", 100: "oklch(96.7% 0.003 264.542)", 200: "oklch(92.8% 0.006 264.531)", 300: "oklch(87.2% 0.01 258.338)", 400: "oklch(70.7% 0.022 261.325)", 500: "oklch(55.1% 0.027 264.364)", 600: "oklch(44.6% 0.03 256.802)", 700: "oklch(37.3% 0.034 259.733)", 800: "oklch(27.8% 0.033 256.848)", 900: "oklch(21% 0.034 264.665)", 950: "oklch(13% 0.028 261.692)" }, zinc: { 50: "oklch(98.5% 0 none)", 100: "oklch(96.7% 0.001 286.375)", 200: "oklch(92% 0.004 286.32)", 300: "oklch(87.1% 0.006 286.286)", 400: "oklch(70.5% 0.015 286.067)", 500: "oklch(55.2% 0.016 285.938)", 600: "oklch(44.2% 0.017 285.786)", 700: "oklch(37% 0.013 285.805)", 800: "oklch(27.4% 0.006 286.033)", 900: "oklch(21% 0.006 285.885)", 950: "oklch(14.1% 0.005 285.823)" }, neutral: { 50: "oklch(98.5% 0 none)", 100: "oklch(97% 0 none)", 200: "oklch(92.2% 0 none)", 300: "oklch(87% 0 none)", 400: "oklch(70.8% 0 none)", 500: "oklch(55.6% 0 none)", 600: "oklch(43.9% 0 none)", 700: "oklch(37.1% 0 none)", 800: "oklch(26.9% 0 none)", 900: "oklch(20.5% 0 none)", 950: "oklch(14.5% 0 none)" }, stone: { 50: "oklch(98.5% 0.001 106.423)", 100: "oklch(97% 0.001 106.424)", 200: "oklch(92.3% 0.003 48.717)", 300: "oklch(86.9% 0.005 56.366)", 400: "oklch(70.9% 0.01 56.259)", 500: "oklch(55.3% 0.013 58.071)", 600: "oklch(44.4% 0.011 73.639)", 700: "oklch(37.4% 0.01 67.558)", 800: "oklch(26.8% 0.007 34.298)", 900: "oklch(21.6% 0.006 56.043)", 950: "oklch(14.7% 0.004 49.25)" }, mauve: { 50: "oklch(98.5% 0 none)", 100: "oklch(96% 0.003 325.6)", 200: "oklch(92.2% 0.005 325.62)", 300: "oklch(86.5% 0.012 325.68)", 400: "oklch(71.1% 0.019 323.02)", 500: "oklch(54.2% 0.034 322.5)", 600: "oklch(43.5% 0.029 321.78)", 700: "oklch(36.4% 0.029 323.89)", 800: "oklch(26.3% 0.024 320.12)", 900: "oklch(21.2% 0.019 322.12)", 950: "oklch(14.5% 0.008 326)" }, olive: { 50: "oklch(98.8% 0.003 106.5)", 100: "oklch(96.6% 0.005 106.5)", 200: "oklch(93% 0.007 106.5)", 300: "oklch(88% 0.011 106.6)", 400: "oklch(73.7% 0.021 106.9)", 500: "oklch(58% 0.031 107.3)", 600: "oklch(46.6% 0.025 107.3)", 700: "oklch(39.4% 0.023 107.4)", 800: "oklch(28.6% 0.016 107.4)", 900: "oklch(22.8% 0.013 107.4)", 950: "oklch(15.3% 0.006 107.1)" }, mist: { 50: "oklch(98.7% 0.002 197.1)", 100: "oklch(96.3% 0.002 197.1)", 200: "oklch(92.5% 0.005 214.3)", 300: "oklch(87.2% 0.007 219.6)", 400: "oklch(72.3% 0.014 214.4)", 500: "oklch(56% 0.021 213.5)", 600: "oklch(45% 0.017 213.2)", 700: "oklch(37.8% 0.015 216)", 800: "oklch(27.5% 0.011 216.9)", 900: "oklch(21.8% 0.008 223.9)", 950: "oklch(14.8% 0.004 228.8)" }, taupe: { 50: "oklch(98.6% 0.002 67.8)", 100: "oklch(96% 0.002 17.2)", 200: "oklch(92.2% 0.005 34.3)", 300: "oklch(86.8% 0.007 39.5)", 400: "oklch(71.4% 0.014 41.2)", 500: "oklch(54.7% 0.021 43.1)", 600: "oklch(43.8% 0.017 39.3)", 700: "oklch(36.7% 0.016 35.7)", 800: "oklch(26.8% 0.011 36.5)", 900: "oklch(21.4% 0.009 43.1)", 950: "oklch(14.7% 0.004 49.3)" }, red: { 50: "oklch(97.1% 0.013 17.38)", 100: "oklch(93.6% 0.032 17.717)", 200: "oklch(88.5% 0.062 18.334)", 300: "oklch(80.8% 0.114 19.571)", 400: "oklch(70.4% 0.191 22.216)", 500: "oklch(63.7% 0.237 25.331)", 600: "oklch(57.7% 0.245 27.325)", 700: "oklch(50.5% 0.213 27.518)", 800: "oklch(44.4% 0.177 26.899)", 900: "oklch(39.6% 0.141 25.723)", 950: "oklch(25.8% 0.092 26.042)" }, orange: { 50: "oklch(98% 0.016 73.684)", 100: "oklch(95.4% 0.038 75.164)", 200: "oklch(90.1% 0.076 70.697)", 300: "oklch(83.7% 0.128 66.29)", 400: "oklch(75% 0.183 55.934)", 500: "oklch(70.5% 0.213 47.604)", 600: "oklch(64.6% 0.222 41.116)", 700: "oklch(55.3% 0.195 38.402)", 800: "oklch(47% 0.157 37.304)", 900: "oklch(40.8% 0.123 38.172)", 950: "oklch(26.6% 0.079 36.259)" }, amber: { 50: "oklch(98.7% 0.022 95.277)", 100: "oklch(96.2% 0.059 95.617)", 200: "oklch(92.4% 0.12 95.746)", 300: "oklch(87.9% 0.169 91.605)", 400: "oklch(82.8% 0.189 84.429)", 500: "oklch(76.9% 0.188 70.08)", 600: "oklch(66.6% 0.179 58.318)", 700: "oklch(55.5% 0.163 48.998)", 800: "oklch(47.3% 0.137 46.201)", 900: "oklch(41.4% 0.112 45.904)", 950: "oklch(27.9% 0.077 45.635)" }, yellow: { 50: "oklch(98.7% 0.026 102.212)", 100: "oklch(97.3% 0.071 103.193)", 200: "oklch(94.5% 0.129 101.54)", 300: "oklch(90.5% 0.182 98.111)", 400: "oklch(85.2% 0.199 91.936)", 500: "oklch(79.5% 0.184 86.047)", 600: "oklch(68.1% 0.162 75.834)", 700: "oklch(55.4% 0.135 66.442)", 800: "oklch(47.6% 0.114 61.907)", 900: "oklch(42.1% 0.095 57.708)", 950: "oklch(28.6% 0.066 53.813)" }, lime: { 50: "oklch(98.6% 0.031 120.757)", 100: "oklch(96.7% 0.067 122.328)", 200: "oklch(93.8% 0.127 124.321)", 300: "oklch(89.7% 0.196 126.665)", 400: "oklch(84.1% 0.238 128.85)", 500: "oklch(76.8% 0.233 130.85)", 600: "oklch(64.8% 0.2 131.684)", 700: "oklch(53.2% 0.157 131.589)", 800: "oklch(45.3% 0.124 130.933)", 900: "oklch(40.5% 0.101 131.063)", 950: "oklch(27.4% 0.072 132.109)" }, green: { 50: "oklch(98.2% 0.018 155.826)", 100: "oklch(96.2% 0.044 156.743)", 200: "oklch(92.5% 0.084 155.995)", 300: "oklch(87.1% 0.15 154.449)", 400: "oklch(79.2% 0.209 151.711)", 500: "oklch(72.3% 0.219 149.579)", 600: "oklch(62.7% 0.194 149.214)", 700: "oklch(52.7% 0.154 150.069)", 800: "oklch(44.8% 0.119 151.328)", 900: "oklch(39.3% 0.095 152.535)", 950: "oklch(26.6% 0.065 152.934)" }, emerald: { 50: "oklch(97.9% 0.021 166.113)", 100: "oklch(95% 0.052 163.051)", 200: "oklch(90.5% 0.093 164.15)", 300: "oklch(84.5% 0.143 164.978)", 400: "oklch(76.5% 0.177 163.223)", 500: "oklch(69.6% 0.17 162.48)", 600: "oklch(59.6% 0.145 163.225)", 700: "oklch(50.8% 0.118 165.612)", 800: "oklch(43.2% 0.095 166.913)", 900: "oklch(37.8% 0.077 168.94)", 950: "oklch(26.2% 0.051 172.552)" }, teal: { 50: "oklch(98.4% 0.014 180.72)", 100: "oklch(95.3% 0.051 180.801)", 200: "oklch(91% 0.096 180.426)", 300: "oklch(85.5% 0.138 181.071)", 400: "oklch(77.7% 0.152 181.912)", 500: "oklch(70.4% 0.14 182.503)", 600: "oklch(60% 0.118 184.704)", 700: "oklch(51.1% 0.096 186.391)", 800: "oklch(43.7% 0.078 188.216)", 900: "oklch(38.6% 0.063 188.416)", 950: "oklch(27.7% 0.046 192.524)" }, cyan: { 50: "oklch(98.4% 0.019 200.873)", 100: "oklch(95.6% 0.045 203.388)", 200: "oklch(91.7% 0.08 205.041)", 300: "oklch(86.5% 0.127 207.078)", 400: "oklch(78.9% 0.154 211.53)", 500: "oklch(71.5% 0.143 215.221)", 600: "oklch(60.9% 0.126 221.723)", 700: "oklch(52% 0.105 223.128)", 800: "oklch(45% 0.085 224.283)", 900: "oklch(39.8% 0.07 227.392)", 950: "oklch(30.2% 0.056 229.695)" }, sky: { 50: "oklch(97.7% 0.013 236.62)", 100: "oklch(95.1% 0.026 236.824)", 200: "oklch(90.1% 0.058 230.902)", 300: "oklch(82.8% 0.111 230.318)", 400: "oklch(74.6% 0.16 232.661)", 500: "oklch(68.5% 0.169 237.323)", 600: "oklch(58.8% 0.158 241.966)", 700: "oklch(50% 0.134 242.749)", 800: "oklch(44.3% 0.11 240.79)", 900: "oklch(39.1% 0.09 240.876)", 950: "oklch(29.3% 0.066 243.157)" }, blue: { 50: "oklch(97% 0.014 254.604)", 100: "oklch(93.2% 0.032 255.585)", 200: "oklch(88.2% 0.059 254.128)", 300: "oklch(80.9% 0.105 251.813)", 400: "oklch(70.7% 0.165 254.624)", 500: "oklch(62.3% 0.214 259.815)", 600: "oklch(54.6% 0.245 262.881)", 700: "oklch(48.8% 0.243 264.376)", 800: "oklch(42.4% 0.199 265.638)", 900: "oklch(37.9% 0.146 265.522)", 950: "oklch(28.2% 0.091 267.935)" }, indigo: { 50: "oklch(96.2% 0.018 272.314)", 100: "oklch(93% 0.034 272.788)", 200: "oklch(87% 0.065 274.039)", 300: "oklch(78.5% 0.115 274.713)", 400: "oklch(67.3% 0.182 276.935)", 500: "oklch(58.5% 0.233 277.117)", 600: "oklch(51.1% 0.262 276.966)", 700: "oklch(45.7% 0.24 277.023)", 800: "oklch(39.8% 0.195 277.366)", 900: "oklch(35.9% 0.144 278.697)", 950: "oklch(25.7% 0.09 281.288)" }, violet: { 50: "oklch(96.9% 0.016 293.756)", 100: "oklch(94.3% 0.029 294.588)", 200: "oklch(89.4% 0.057 293.283)", 300: "oklch(81.1% 0.111 293.571)", 400: "oklch(70.2% 0.183 293.541)", 500: "oklch(60.6% 0.25 292.717)", 600: "oklch(54.1% 0.281 293.009)", 700: "oklch(49.1% 0.27 292.581)", 800: "oklch(43.2% 0.232 292.759)", 900: "oklch(38% 0.189 293.745)", 950: "oklch(28.3% 0.141 291.089)" }, purple: { 50: "oklch(97.7% 0.014 308.299)", 100: "oklch(94.6% 0.033 307.174)", 200: "oklch(90.2% 0.063 306.703)", 300: "oklch(82.7% 0.119 306.383)", 400: "oklch(71.4% 0.203 305.504)", 500: "oklch(62.7% 0.265 303.9)", 600: "oklch(55.8% 0.288 302.321)", 700: "oklch(49.6% 0.265 301.924)", 800: "oklch(43.8% 0.218 303.724)", 900: "oklch(38.1% 0.176 304.987)", 950: "oklch(29.1% 0.149 302.717)" }, fuchsia: { 50: "oklch(97.7% 0.017 320.058)", 100: "oklch(95.2% 0.037 318.852)", 200: "oklch(90.3% 0.076 319.62)", 300: "oklch(83.3% 0.145 321.434)", 400: "oklch(74% 0.238 322.16)", 500: "oklch(66.7% 0.295 322.15)", 600: "oklch(59.1% 0.293 322.896)", 700: "oklch(51.8% 0.253 323.949)", 800: "oklch(45.2% 0.211 324.591)", 900: "oklch(40.1% 0.17 325.612)", 950: "oklch(29.3% 0.136 325.661)" }, pink: { 50: "oklch(97.1% 0.014 343.198)", 100: "oklch(94.8% 0.028 342.258)", 200: "oklch(89.9% 0.061 343.231)", 300: "oklch(82.3% 0.12 346.018)", 400: "oklch(71.8% 0.202 349.761)", 500: "oklch(65.6% 0.241 354.308)", 600: "oklch(59.2% 0.249 0.584)", 700: "oklch(52.5% 0.223 3.958)", 800: "oklch(45.9% 0.187 3.815)", 900: "oklch(40.8% 0.153 2.432)", 950: "oklch(28.4% 0.109 3.907)" }, rose: { 50: "oklch(96.9% 0.015 12.422)", 100: "oklch(94.1% 0.03 12.58)", 200: "oklch(89.2% 0.058 10.001)", 300: "oklch(81% 0.117 11.638)", 400: "oklch(71.2% 0.194 13.428)", 500: "oklch(64.5% 0.246 16.439)", 600: "oklch(58.6% 0.253 17.585)", 700: "oklch(51.4% 0.222 16.935)", 800: "oklch(45.5% 0.188 13.697)", 900: "oklch(41% 0.159 10.272)", 950: "oklch(27.1% 0.105 12.094)" } };
53159
53159
  }
53160
53160
  });
53161
53161
 
53162
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/tailwindcss/dist/chunk-C2OYBFIH.mjs
53162
+ // node_modules/tailwindcss/dist/chunk-C2OYBFIH.mjs
53163
53163
  function N(e2) {
53164
53164
  return e2.charCodeAt(0) === 35 || U.test(e2) || S.has(e2.toLowerCase());
53165
53165
  }
@@ -53379,7 +53379,7 @@ function h(e2) {
53379
53379
  }
53380
53380
  var S, U, A, E, P, z, I, D, x, W, q2, V, Z, j, K, J, X, te, g, l, f, L, w, ne, _, ye;
53381
53381
  var init_chunk_C2OYBFIH = __esm({
53382
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/tailwindcss/dist/chunk-C2OYBFIH.mjs"() {
53382
+ "node_modules/tailwindcss/dist/chunk-C2OYBFIH.mjs"() {
53383
53383
  init_chunk_DCG7AFIE();
53384
53384
  S = /* @__PURE__ */ new Set(["black", "silver", "gray", "white", "maroon", "red", "purple", "fuchsia", "green", "lime", "olive", "yellow", "navy", "blue", "teal", "aqua", "aliceblue", "antiquewhite", "aqua", "aquamarine", "azure", "beige", "bisque", "black", "blanchedalmond", "blue", "blueviolet", "brown", "burlywood", "cadetblue", "chartreuse", "chocolate", "coral", "cornflowerblue", "cornsilk", "crimson", "cyan", "darkblue", "darkcyan", "darkgoldenrod", "darkgray", "darkgreen", "darkgrey", "darkkhaki", "darkmagenta", "darkolivegreen", "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen", "darkslateblue", "darkslategray", "darkslategrey", "darkturquoise", "darkviolet", "deeppink", "deepskyblue", "dimgray", "dimgrey", "dodgerblue", "firebrick", "floralwhite", "forestgreen", "fuchsia", "gainsboro", "ghostwhite", "gold", "goldenrod", "gray", "green", "greenyellow", "grey", "honeydew", "hotpink", "indianred", "indigo", "ivory", "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", "lightcoral", "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightgrey", "lightpink", "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", "lightslategrey", "lightsteelblue", "lightyellow", "lime", "limegreen", "linen", "magenta", "maroon", "mediumaquamarine", "mediumblue", "mediumorchid", "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen", "mediumturquoise", "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", "navajowhite", "navy", "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "palegoldenrod", "palegreen", "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "pink", "plum", "powderblue", "purple", "rebeccapurple", "red", "rosybrown", "royalblue", "saddlebrown", "salmon", "sandybrown", "seagreen", "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "slategrey", "snow", "springgreen", "steelblue", "tan", "teal", "thistle", "tomato", "turquoise", "violet", "wheat", "white", "whitesmoke", "yellow", "yellowgreen", "transparent", "currentcolor", "canvas", "canvastext", "linktext", "visitedtext", "activetext", "buttonface", "buttontext", "buttonborder", "field", "fieldtext", "highlight", "highlighttext", "selecteditem", "selecteditemtext", "mark", "marktext", "graytext", "accentcolor", "accentcolortext"]);
53385
53385
  U = /^(rgba?|hsla?|hwb|color|(ok)?(lab|lch)|light-dark|color-mix|--alpha)\(/i;
@@ -53426,7 +53426,7 @@ var init_chunk_C2OYBFIH = __esm({
53426
53426
  }
53427
53427
  });
53428
53428
 
53429
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/tailwindcss/dist/chunk-5JIJA4QV.mjs
53429
+ // node_modules/tailwindcss/dist/chunk-5JIJA4QV.mjs
53430
53430
  function h2(n) {
53431
53431
  if (arguments.length === 0) throw new TypeError("`CSS.escape` requires an argument.");
53432
53432
  let e2 = String(n), i = e2.length, r2 = -1, t2, s = "", l2 = e2.charCodeAt(0);
@@ -53460,7 +53460,7 @@ function g2(n, e2) {
53460
53460
  }
53461
53461
  var c, p;
53462
53462
  var init_chunk_5JIJA4QV = __esm({
53463
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/tailwindcss/dist/chunk-5JIJA4QV.mjs"() {
53463
+ "node_modules/tailwindcss/dist/chunk-5JIJA4QV.mjs"() {
53464
53464
  c = /* @__PURE__ */ new Map([["--font", ["--font-weight", "--font-size"]], ["--inset", ["--inset-shadow", "--inset-ring"]], ["--text", ["--text-color", "--text-decoration-color", "--text-decoration-thickness", "--text-indent", "--text-shadow", "--text-underline-offset"]], ["--grid-column", ["--grid-column-start", "--grid-column-end"]], ["--grid-row", ["--grid-row-start", "--grid-row-end"]]]);
53465
53465
  p = class {
53466
53466
  constructor(e2 = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set([])) {
@@ -53580,7 +53580,7 @@ var init_chunk_5JIJA4QV = __esm({
53580
53580
  }
53581
53581
  });
53582
53582
 
53583
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/tailwindcss/dist/lib.mjs
53583
+ // node_modules/tailwindcss/dist/lib.mjs
53584
53584
  function mn(e2) {
53585
53585
  return { kind: "combinator", value: e2 };
53586
53586
  }
@@ -58691,7 +58691,7 @@ async function zf(e2, i = {}) {
58691
58691
  }
58692
58692
  var yr, Cr, vn, Sr, Lt, Vr, wn, Rr, $r, Dt, Pr, zt, Tr, Nr, kn, Kt, Ut, Er, Or, jt, He, ct, pt, _r, Ir, bn, dt, me, mt, Ze, Je, Dr, Ft, Yt, Kr, yn, xn, Ur, Wt, An, ge2, U2, zr, Vn, jr, Mr, $n, Fr, Wr, Br, Yr, Tn, Nn, En, Gr, qr, qt, V2, Rn, Pn, On, In, Dn, Jt, Ln, Qr, Xr, ei, er, zn, jn, Fn, Bn, le, Yn, Gn, qn, Hn, yt, rr, oi, ir, fi, Zn, Jn, Qn, Xn, el, tl, rl, kt, bt, il, nl, nr, ci, gl, hl, vl, wi, ki, bi, Ti, lt, Ni, Ei, $l, Ri, Nl, Pi, Rl, or, Vt, _i, Ul, Fl, Wl, we, Vi, sr, $t, ur, Nt, Ki, fa, Et, fr, pr, Zi, wa, Aa, fn, Va, Ht, ze;
58693
58693
  var init_lib = __esm({
58694
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/tailwindcss/dist/lib.mjs"() {
58694
+ "node_modules/tailwindcss/dist/lib.mjs"() {
58695
58695
  init_chunk_C2OYBFIH();
58696
58696
  init_chunk_DCG7AFIE();
58697
58697
  init_chunk_5JIJA4QV();
@@ -59010,24 +59010,24 @@ var init_lib = __esm({
59010
59010
  }
59011
59011
  });
59012
59012
 
59013
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/tailwindcss/index.css
59013
+ // node_modules/tailwindcss/index.css
59014
59014
  var tailwindcss_default;
59015
59015
  var init_tailwindcss = __esm({
59016
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/tailwindcss/index.css"() {
59016
+ "node_modules/tailwindcss/index.css"() {
59017
59017
  tailwindcss_default = '@layer theme, base, components, utilities;\n\n@layer theme {\n @theme default {\n --font-sans:\n -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",\n "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",\n "Segoe UI Symbol", "Noto Color Emoji";\n --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;\n --font-mono:\n ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",\n "Courier New", monospace;\n\n --color-red-50: oklch(97.1% 0.013 17.38);\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-200: oklch(88.5% 0.062 18.334);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-400: oklch(70.4% 0.191 22.216);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-600: oklch(57.7% 0.245 27.325);\n --color-red-700: oklch(50.5% 0.213 27.518);\n --color-red-800: oklch(44.4% 0.177 26.899);\n --color-red-900: oklch(39.6% 0.141 25.723);\n --color-red-950: oklch(25.8% 0.092 26.042);\n\n --color-orange-50: oklch(98% 0.016 73.684);\n --color-orange-100: oklch(95.4% 0.038 75.164);\n --color-orange-200: oklch(90.1% 0.076 70.697);\n --color-orange-300: oklch(83.7% 0.128 66.29);\n --color-orange-400: oklch(75% 0.183 55.934);\n --color-orange-500: oklch(70.5% 0.213 47.604);\n --color-orange-600: oklch(64.6% 0.222 41.116);\n --color-orange-700: oklch(55.3% 0.195 38.402);\n --color-orange-800: oklch(47% 0.157 37.304);\n --color-orange-900: oklch(40.8% 0.123 38.172);\n --color-orange-950: oklch(26.6% 0.079 36.259);\n\n --color-amber-50: oklch(98.7% 0.022 95.277);\n --color-amber-100: oklch(96.2% 0.059 95.617);\n --color-amber-200: oklch(92.4% 0.12 95.746);\n --color-amber-300: oklch(87.9% 0.169 91.605);\n --color-amber-400: oklch(82.8% 0.189 84.429);\n --color-amber-500: oklch(76.9% 0.188 70.08);\n --color-amber-600: oklch(66.6% 0.179 58.318);\n --color-amber-700: oklch(55.5% 0.163 48.998);\n --color-amber-800: oklch(47.3% 0.137 46.201);\n --color-amber-900: oklch(41.4% 0.112 45.904);\n --color-amber-950: oklch(27.9% 0.077 45.635);\n\n --color-yellow-50: oklch(98.7% 0.026 102.212);\n --color-yellow-100: oklch(97.3% 0.071 103.193);\n --color-yellow-200: oklch(94.5% 0.129 101.54);\n --color-yellow-300: oklch(90.5% 0.182 98.111);\n --color-yellow-400: oklch(85.2% 0.199 91.936);\n --color-yellow-500: oklch(79.5% 0.184 86.047);\n --color-yellow-600: oklch(68.1% 0.162 75.834);\n --color-yellow-700: oklch(55.4% 0.135 66.442);\n --color-yellow-800: oklch(47.6% 0.114 61.907);\n --color-yellow-900: oklch(42.1% 0.095 57.708);\n --color-yellow-950: oklch(28.6% 0.066 53.813);\n\n --color-lime-50: oklch(98.6% 0.031 120.757);\n --color-lime-100: oklch(96.7% 0.067 122.328);\n --color-lime-200: oklch(93.8% 0.127 124.321);\n --color-lime-300: oklch(89.7% 0.196 126.665);\n --color-lime-400: oklch(84.1% 0.238 128.85);\n --color-lime-500: oklch(76.8% 0.233 130.85);\n --color-lime-600: oklch(64.8% 0.2 131.684);\n --color-lime-700: oklch(53.2% 0.157 131.589);\n --color-lime-800: oklch(45.3% 0.124 130.933);\n --color-lime-900: oklch(40.5% 0.101 131.063);\n --color-lime-950: oklch(27.4% 0.072 132.109);\n\n --color-green-50: oklch(98.2% 0.018 155.826);\n --color-green-100: oklch(96.2% 0.044 156.743);\n --color-green-200: oklch(92.5% 0.084 155.995);\n --color-green-300: oklch(87.1% 0.15 154.449);\n --color-green-400: oklch(79.2% 0.209 151.711);\n --color-green-500: oklch(72.3% 0.219 149.579);\n --color-green-600: oklch(62.7% 0.194 149.214);\n --color-green-700: oklch(52.7% 0.154 150.069);\n --color-green-800: oklch(44.8% 0.119 151.328);\n --color-green-900: oklch(39.3% 0.095 152.535);\n --color-green-950: oklch(26.6% 0.065 152.934);\n\n --color-emerald-50: oklch(97.9% 0.021 166.113);\n --color-emerald-100: oklch(95% 0.052 163.051);\n --color-emerald-200: oklch(90.5% 0.093 164.15);\n --color-emerald-300: oklch(84.5% 0.143 164.978);\n --color-emerald-400: oklch(76.5% 0.177 163.223);\n --color-emerald-500: oklch(69.6% 0.17 162.48);\n --color-emerald-600: oklch(59.6% 0.145 163.225);\n --color-emerald-700: oklch(50.8% 0.118 165.612);\n --color-emerald-800: oklch(43.2% 0.095 166.913);\n --color-emerald-900: oklch(37.8% 0.077 168.94);\n --color-emerald-950: oklch(26.2% 0.051 172.552);\n\n --color-teal-50: oklch(98.4% 0.014 180.72);\n --color-teal-100: oklch(95.3% 0.051 180.801);\n --color-teal-200: oklch(91% 0.096 180.426);\n --color-teal-300: oklch(85.5% 0.138 181.071);\n --color-teal-400: oklch(77.7% 0.152 181.912);\n --color-teal-500: oklch(70.4% 0.14 182.503);\n --color-teal-600: oklch(60% 0.118 184.704);\n --color-teal-700: oklch(51.1% 0.096 186.391);\n --color-teal-800: oklch(43.7% 0.078 188.216);\n --color-teal-900: oklch(38.6% 0.063 188.416);\n --color-teal-950: oklch(27.7% 0.046 192.524);\n\n --color-cyan-50: oklch(98.4% 0.019 200.873);\n --color-cyan-100: oklch(95.6% 0.045 203.388);\n --color-cyan-200: oklch(91.7% 0.08 205.041);\n --color-cyan-300: oklch(86.5% 0.127 207.078);\n --color-cyan-400: oklch(78.9% 0.154 211.53);\n --color-cyan-500: oklch(71.5% 0.143 215.221);\n --color-cyan-600: oklch(60.9% 0.126 221.723);\n --color-cyan-700: oklch(52% 0.105 223.128);\n --color-cyan-800: oklch(45% 0.085 224.283);\n --color-cyan-900: oklch(39.8% 0.07 227.392);\n --color-cyan-950: oklch(30.2% 0.056 229.695);\n\n --color-sky-50: oklch(97.7% 0.013 236.62);\n --color-sky-100: oklch(95.1% 0.026 236.824);\n --color-sky-200: oklch(90.1% 0.058 230.902);\n --color-sky-300: oklch(82.8% 0.111 230.318);\n --color-sky-400: oklch(74.6% 0.16 232.661);\n --color-sky-500: oklch(68.5% 0.169 237.323);\n --color-sky-600: oklch(58.8% 0.158 241.966);\n --color-sky-700: oklch(50% 0.134 242.749);\n --color-sky-800: oklch(44.3% 0.11 240.79);\n --color-sky-900: oklch(39.1% 0.09 240.876);\n --color-sky-950: oklch(29.3% 0.066 243.157);\n\n --color-blue-50: oklch(97% 0.014 254.604);\n --color-blue-100: oklch(93.2% 0.032 255.585);\n --color-blue-200: oklch(88.2% 0.059 254.128);\n --color-blue-300: oklch(80.9% 0.105 251.813);\n --color-blue-400: oklch(70.7% 0.165 254.624);\n --color-blue-500: oklch(62.3% 0.214 259.815);\n --color-blue-600: oklch(54.6% 0.245 262.881);\n --color-blue-700: oklch(48.8% 0.243 264.376);\n --color-blue-800: oklch(42.4% 0.199 265.638);\n --color-blue-900: oklch(37.9% 0.146 265.522);\n --color-blue-950: oklch(28.2% 0.091 267.935);\n\n --color-indigo-50: oklch(96.2% 0.018 272.314);\n --color-indigo-100: oklch(93% 0.034 272.788);\n --color-indigo-200: oklch(87% 0.065 274.039);\n --color-indigo-300: oklch(78.5% 0.115 274.713);\n --color-indigo-400: oklch(67.3% 0.182 276.935);\n --color-indigo-500: oklch(58.5% 0.233 277.117);\n --color-indigo-600: oklch(51.1% 0.262 276.966);\n --color-indigo-700: oklch(45.7% 0.24 277.023);\n --color-indigo-800: oklch(39.8% 0.195 277.366);\n --color-indigo-900: oklch(35.9% 0.144 278.697);\n --color-indigo-950: oklch(25.7% 0.09 281.288);\n\n --color-violet-50: oklch(96.9% 0.016 293.756);\n --color-violet-100: oklch(94.3% 0.029 294.588);\n --color-violet-200: oklch(89.4% 0.057 293.283);\n --color-violet-300: oklch(81.1% 0.111 293.571);\n --color-violet-400: oklch(70.2% 0.183 293.541);\n --color-violet-500: oklch(60.6% 0.25 292.717);\n --color-violet-600: oklch(54.1% 0.281 293.009);\n --color-violet-700: oklch(49.1% 0.27 292.581);\n --color-violet-800: oklch(43.2% 0.232 292.759);\n --color-violet-900: oklch(38% 0.189 293.745);\n --color-violet-950: oklch(28.3% 0.141 291.089);\n\n --color-purple-50: oklch(97.7% 0.014 308.299);\n --color-purple-100: oklch(94.6% 0.033 307.174);\n --color-purple-200: oklch(90.2% 0.063 306.703);\n --color-purple-300: oklch(82.7% 0.119 306.383);\n --color-purple-400: oklch(71.4% 0.203 305.504);\n --color-purple-500: oklch(62.7% 0.265 303.9);\n --color-purple-600: oklch(55.8% 0.288 302.321);\n --color-purple-700: oklch(49.6% 0.265 301.924);\n --color-purple-800: oklch(43.8% 0.218 303.724);\n --color-purple-900: oklch(38.1% 0.176 304.987);\n --color-purple-950: oklch(29.1% 0.149 302.717);\n\n --color-fuchsia-50: oklch(97.7% 0.017 320.058);\n --color-fuchsia-100: oklch(95.2% 0.037 318.852);\n --color-fuchsia-200: oklch(90.3% 0.076 319.62);\n --color-fuchsia-300: oklch(83.3% 0.145 321.434);\n --color-fuchsia-400: oklch(74% 0.238 322.16);\n --color-fuchsia-500: oklch(66.7% 0.295 322.15);\n --color-fuchsia-600: oklch(59.1% 0.293 322.896);\n --color-fuchsia-700: oklch(51.8% 0.253 323.949);\n --color-fuchsia-800: oklch(45.2% 0.211 324.591);\n --color-fuchsia-900: oklch(40.1% 0.17 325.612);\n --color-fuchsia-950: oklch(29.3% 0.136 325.661);\n\n --color-pink-50: oklch(97.1% 0.014 343.198);\n --color-pink-100: oklch(94.8% 0.028 342.258);\n --color-pink-200: oklch(89.9% 0.061 343.231);\n --color-pink-300: oklch(82.3% 0.12 346.018);\n --color-pink-400: oklch(71.8% 0.202 349.761);\n --color-pink-500: oklch(65.6% 0.241 354.308);\n --color-pink-600: oklch(59.2% 0.249 0.584);\n --color-pink-700: oklch(52.5% 0.223 3.958);\n --color-pink-800: oklch(45.9% 0.187 3.815);\n --color-pink-900: oklch(40.8% 0.153 2.432);\n --color-pink-950: oklch(28.4% 0.109 3.907);\n\n --color-rose-50: oklch(96.9% 0.015 12.422);\n --color-rose-100: oklch(94.1% 0.03 12.58);\n --color-rose-200: oklch(89.2% 0.058 10.001);\n --color-rose-300: oklch(81% 0.117 11.638);\n --color-rose-400: oklch(71.2% 0.194 13.428);\n --color-rose-500: oklch(64.5% 0.246 16.439);\n --color-rose-600: oklch(58.6% 0.253 17.585);\n --color-rose-700: oklch(51.4% 0.222 16.935);\n --color-rose-800: oklch(45.5% 0.188 13.697);\n --color-rose-900: oklch(41% 0.159 10.272);\n --color-rose-950: oklch(27.1% 0.105 12.094);\n\n --color-slate-50: oklch(98.4% 0.003 247.858);\n --color-slate-100: oklch(96.8% 0.007 247.896);\n --color-slate-200: oklch(92.9% 0.013 255.508);\n --color-slate-300: oklch(86.9% 0.022 252.894);\n --color-slate-400: oklch(70.4% 0.04 256.788);\n --color-slate-500: oklch(55.4% 0.046 257.417);\n --color-slate-600: oklch(44.6% 0.043 257.281);\n --color-slate-700: oklch(37.2% 0.044 257.287);\n --color-slate-800: oklch(27.9% 0.041 260.031);\n --color-slate-900: oklch(20.8% 0.042 265.755);\n --color-slate-950: oklch(12.9% 0.042 264.695);\n\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-gray-100: oklch(96.7% 0.003 264.542);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-300: oklch(87.2% 0.01 258.338);\n --color-gray-400: oklch(70.7% 0.022 261.325);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-gray-600: oklch(44.6% 0.03 256.802);\n --color-gray-700: oklch(37.3% 0.034 259.733);\n --color-gray-800: oklch(27.8% 0.033 256.848);\n --color-gray-900: oklch(21% 0.034 264.665);\n --color-gray-950: oklch(13% 0.028 261.692);\n\n --color-zinc-50: oklch(98.5% 0 none);\n --color-zinc-100: oklch(96.7% 0.001 286.375);\n --color-zinc-200: oklch(92% 0.004 286.32);\n --color-zinc-300: oklch(87.1% 0.006 286.286);\n --color-zinc-400: oklch(70.5% 0.015 286.067);\n --color-zinc-500: oklch(55.2% 0.016 285.938);\n --color-zinc-600: oklch(44.2% 0.017 285.786);\n --color-zinc-700: oklch(37% 0.013 285.805);\n --color-zinc-800: oklch(27.4% 0.006 286.033);\n --color-zinc-900: oklch(21% 0.006 285.885);\n --color-zinc-950: oklch(14.1% 0.005 285.823);\n\n --color-neutral-50: oklch(98.5% 0 none);\n --color-neutral-100: oklch(97% 0 none);\n --color-neutral-200: oklch(92.2% 0 none);\n --color-neutral-300: oklch(87% 0 none);\n --color-neutral-400: oklch(70.8% 0 none);\n --color-neutral-500: oklch(55.6% 0 none);\n --color-neutral-600: oklch(43.9% 0 none);\n --color-neutral-700: oklch(37.1% 0 none);\n --color-neutral-800: oklch(26.9% 0 none);\n --color-neutral-900: oklch(20.5% 0 none);\n --color-neutral-950: oklch(14.5% 0 none);\n\n --color-stone-50: oklch(98.5% 0.001 106.423);\n --color-stone-100: oklch(97% 0.001 106.424);\n --color-stone-200: oklch(92.3% 0.003 48.717);\n --color-stone-300: oklch(86.9% 0.005 56.366);\n --color-stone-400: oklch(70.9% 0.01 56.259);\n --color-stone-500: oklch(55.3% 0.013 58.071);\n --color-stone-600: oklch(44.4% 0.011 73.639);\n --color-stone-700: oklch(37.4% 0.01 67.558);\n --color-stone-800: oklch(26.8% 0.007 34.298);\n --color-stone-900: oklch(21.6% 0.006 56.043);\n --color-stone-950: oklch(14.7% 0.004 49.25);\n\n --color-mauve-50: oklch(98.5% 0 none);\n --color-mauve-100: oklch(96% 0.003 325.6);\n --color-mauve-200: oklch(92.2% 0.005 325.62);\n --color-mauve-300: oklch(86.5% 0.012 325.68);\n --color-mauve-400: oklch(71.1% 0.019 323.02);\n --color-mauve-500: oklch(54.2% 0.034 322.5);\n --color-mauve-600: oklch(43.5% 0.029 321.78);\n --color-mauve-700: oklch(36.4% 0.029 323.89);\n --color-mauve-800: oklch(26.3% 0.024 320.12);\n --color-mauve-900: oklch(21.2% 0.019 322.12);\n --color-mauve-950: oklch(14.5% 0.008 326);\n\n --color-olive-50: oklch(98.8% 0.003 106.5);\n --color-olive-100: oklch(96.6% 0.005 106.5);\n --color-olive-200: oklch(93% 0.007 106.5);\n --color-olive-300: oklch(88% 0.011 106.6);\n --color-olive-400: oklch(73.7% 0.021 106.9);\n --color-olive-500: oklch(58% 0.031 107.3);\n --color-olive-600: oklch(46.6% 0.025 107.3);\n --color-olive-700: oklch(39.4% 0.023 107.4);\n --color-olive-800: oklch(28.6% 0.016 107.4);\n --color-olive-900: oklch(22.8% 0.013 107.4);\n --color-olive-950: oklch(15.3% 0.006 107.1);\n\n --color-mist-50: oklch(98.7% 0.002 197.1);\n --color-mist-100: oklch(96.3% 0.002 197.1);\n --color-mist-200: oklch(92.5% 0.005 214.3);\n --color-mist-300: oklch(87.2% 0.007 219.6);\n --color-mist-400: oklch(72.3% 0.014 214.4);\n --color-mist-500: oklch(56% 0.021 213.5);\n --color-mist-600: oklch(45% 0.017 213.2);\n --color-mist-700: oklch(37.8% 0.015 216);\n --color-mist-800: oklch(27.5% 0.011 216.9);\n --color-mist-900: oklch(21.8% 0.008 223.9);\n --color-mist-950: oklch(14.8% 0.004 228.8);\n\n --color-taupe-50: oklch(98.6% 0.002 67.8);\n --color-taupe-100: oklch(96% 0.002 17.2);\n --color-taupe-200: oklch(92.2% 0.005 34.3);\n --color-taupe-300: oklch(86.8% 0.007 39.5);\n --color-taupe-400: oklch(71.4% 0.014 41.2);\n --color-taupe-500: oklch(54.7% 0.021 43.1);\n --color-taupe-600: oklch(43.8% 0.017 39.3);\n --color-taupe-700: oklch(36.7% 0.016 35.7);\n --color-taupe-800: oklch(26.8% 0.011 36.5);\n --color-taupe-900: oklch(21.4% 0.009 43.1);\n --color-taupe-950: oklch(14.7% 0.004 49.3);\n\n --color-black: #000;\n --color-white: #fff;\n\n --spacing: 0.25rem;\n\n --breakpoint-sm: 40rem;\n --breakpoint-md: 48rem;\n --breakpoint-lg: 64rem;\n --breakpoint-xl: 80rem;\n --breakpoint-2xl: 96rem;\n\n --container-3xs: 16rem;\n --container-2xs: 18rem;\n --container-xs: 20rem;\n --container-sm: 24rem;\n --container-md: 28rem;\n --container-lg: 32rem;\n --container-xl: 36rem;\n --container-2xl: 42rem;\n --container-3xl: 48rem;\n --container-4xl: 56rem;\n --container-5xl: 64rem;\n --container-6xl: 72rem;\n --container-7xl: 80rem;\n\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-3xl: 1.875rem;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --text-4xl: 2.25rem;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --text-5xl: 3rem;\n --text-5xl--line-height: 1;\n --text-6xl: 3.75rem;\n --text-6xl--line-height: 1;\n --text-7xl: 4.5rem;\n --text-7xl--line-height: 1;\n --text-8xl: 6rem;\n --text-8xl--line-height: 1;\n --text-9xl: 8rem;\n --text-9xl--line-height: 1;\n\n --font-weight-thin: 100;\n --font-weight-extralight: 200;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-extrabold: 800;\n --font-weight-black: 900;\n\n --tracking-tighter: -0.05em;\n --tracking-tight: -0.025em;\n --tracking-normal: 0em;\n --tracking-wide: 0.025em;\n --tracking-wider: 0.05em;\n --tracking-widest: 0.1em;\n\n --leading-tight: 1.25;\n --leading-snug: 1.375;\n --leading-normal: 1.5;\n --leading-relaxed: 1.625;\n --leading-loose: 2;\n\n --radius-xs: 0.125rem;\n --radius-sm: 0.25rem;\n --radius-md: 0.375rem;\n --radius-lg: 0.5rem;\n --radius-xl: 0.75rem;\n --radius-2xl: 1rem;\n --radius-3xl: 1.5rem;\n --radius-4xl: 2rem;\n\n --shadow-2xs: 0 1px rgb(0 0 0 / 0.05);\n --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --shadow-md:\n 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --shadow-lg:\n 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --shadow-xl:\n 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n\n --inset-shadow-2xs: inset 0 1px rgb(0 0 0 / 0.05);\n --inset-shadow-xs: inset 0 1px 1px rgb(0 0 0 / 0.05);\n --inset-shadow-sm: inset 0 2px 4px rgb(0 0 0 / 0.05);\n\n --drop-shadow-xs: 0 1px 1px rgb(0 0 0 / 0.05);\n --drop-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.15);\n --drop-shadow-md: 0 3px 3px rgb(0 0 0 / 0.12);\n --drop-shadow-lg: 0 4px 4px rgb(0 0 0 / 0.15);\n --drop-shadow-xl: 0 9px 7px rgb(0 0 0 / 0.1);\n --drop-shadow-2xl: 0 25px 25px rgb(0 0 0 / 0.15);\n\n --text-shadow-2xs: 0px 1px 0px rgb(0 0 0 / 0.15);\n --text-shadow-xs: 0px 1px 1px rgb(0 0 0 / 0.2);\n --text-shadow-sm:\n 0px 1px 0px rgb(0 0 0 / 0.075), 0px 1px 1px rgb(0 0 0 / 0.075),\n 0px 2px 2px rgb(0 0 0 / 0.075);\n --text-shadow-md:\n 0px 1px 1px rgb(0 0 0 / 0.1), 0px 1px 2px rgb(0 0 0 / 0.1),\n 0px 2px 4px rgb(0 0 0 / 0.1);\n --text-shadow-lg:\n 0px 1px 2px rgb(0 0 0 / 0.1), 0px 3px 2px rgb(0 0 0 / 0.1),\n 0px 4px 8px rgb(0 0 0 / 0.1);\n\n --ease-in: cubic-bezier(0.4, 0, 1, 1);\n --ease-out: cubic-bezier(0, 0, 0.2, 1);\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n\n --animate-spin: spin 1s linear infinite;\n --animate-ping: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --animate-bounce: bounce 1s infinite;\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes ping {\n 75%,\n 100% {\n transform: scale(2);\n opacity: 0;\n }\n }\n\n @keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n }\n\n @keyframes bounce {\n 0%,\n 100% {\n transform: translateY(-25%);\n animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\n }\n\n 50% {\n transform: none;\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n }\n\n --blur-xs: 4px;\n --blur-sm: 8px;\n --blur-md: 12px;\n --blur-lg: 16px;\n --blur-xl: 24px;\n --blur-2xl: 40px;\n --blur-3xl: 64px;\n\n --perspective-dramatic: 100px;\n --perspective-near: 300px;\n --perspective-normal: 500px;\n --perspective-midrange: 800px;\n --perspective-distant: 1200px;\n\n --aspect-video: 16 / 9;\n\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: --theme(--font-sans, initial);\n --default-font-feature-settings: --theme(\n --font-sans--font-feature-settings,\n initial\n );\n --default-font-variation-settings: --theme(\n --font-sans--font-variation-settings,\n initial\n );\n --default-mono-font-family: --theme(--font-mono, initial);\n --default-mono-font-feature-settings: --theme(\n --font-mono--font-feature-settings,\n initial\n );\n --default-mono-font-variation-settings: --theme(\n --font-mono--font-variation-settings,\n initial\n );\n }\n\n /* Deprecated */\n @theme default inline reference {\n --blur: 8px;\n --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);\n --drop-shadow: 0 1px 2px rgb(0 0 0 / 0.1), 0 1px 1px rgb(0 0 0 / 0.06);\n --radius: 0.25rem;\n --max-width-prose: 65ch;\n }\n}\n\n@layer base {\n /*\n 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n 2. Remove default margins and padding\n 3. Reset all borders.\n*/\n\n *,\n ::after,\n ::before,\n ::backdrop,\n ::file-selector-button {\n box-sizing: border-box; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 2 */\n border: 0 solid; /* 3 */\n }\n\n /*\n 1. Use a consistent sensible line-height in all browsers.\n 2. Prevent adjustments of font size after orientation changes in iOS.\n 3. Use a more readable tab size.\n 4. Use the user\'s configured `sans` font-family by default.\n 5. Use the user\'s configured `sans` font-feature-settings by default.\n 6. Use the user\'s configured `sans` font-variation-settings by default.\n 7. Disable tap highlights on iOS.\n*/\n\n html,\n :host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n tab-size: 4; /* 3 */\n font-family: --theme(\n --default-font-family,\n -apple-system,\n BlinkMacSystemFont,\n "Segoe UI",\n Roboto,\n "Helvetica Neue",\n "Noto Sans",\n Arial,\n sans-serif,\n "Apple Color Emoji",\n "Segoe UI Emoji",\n "Segoe UI Symbol",\n "Noto Color Emoji"\n ); /* 4 */\n font-feature-settings: --theme(\n --default-font-feature-settings,\n normal\n ); /* 5 */\n font-variation-settings: --theme(\n --default-font-variation-settings,\n normal\n ); /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n }\n\n /*\n 1. Add the correct height in Firefox.\n 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n 3. Reset the default border style to a 1px solid border.\n*/\n\n hr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n }\n\n /*\n Add the correct text decoration in Chrome, Edge, and Safari.\n*/\n\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n\n /*\n Remove the default font size and weight for headings.\n*/\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n\n /*\n Reset links to optimize for opt-in styling instead of opt-out.\n*/\n\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n\n /*\n Add the correct font weight in Edge and Safari.\n*/\n\n b,\n strong {\n font-weight: bolder;\n }\n\n /*\n 1. Use the user\'s configured `mono` font-family by default.\n 2. Use the user\'s configured `mono` font-feature-settings by default.\n 3. Use the user\'s configured `mono` font-variation-settings by default.\n 4. Correct the odd `em` font sizing in all browsers.\n*/\n\n code,\n kbd,\n samp,\n pre {\n font-family: --theme(\n --default-mono-font-family,\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n "Liberation Mono",\n "Courier New",\n monospace\n ); /* 1 */\n font-feature-settings: --theme(\n --default-mono-font-feature-settings,\n normal\n ); /* 2 */\n font-variation-settings: --theme(\n --default-mono-font-variation-settings,\n normal\n ); /* 3 */\n font-size: 1em; /* 4 */\n }\n\n /*\n Add the correct font size in all browsers.\n*/\n\n small {\n font-size: 80%;\n }\n\n /*\n Prevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\n sub,\n sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n\n sub {\n bottom: -0.25em;\n }\n\n sup {\n top: -0.5em;\n }\n\n /*\n 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n 3. Remove gaps between table borders by default.\n*/\n\n table {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n }\n\n /*\n Use the modern Firefox focus style for all focusable elements.\n*/\n\n :-moz-focusring:where(:not(iframe)) {\n outline: auto;\n }\n\n /*\n Add the correct vertical alignment in Chrome and Firefox.\n*/\n\n progress {\n vertical-align: baseline;\n }\n\n /*\n Add the correct display in Chrome and Safari.\n*/\n\n summary {\n display: list-item;\n }\n\n /*\n Make lists unstyled by default.\n*/\n\n ol,\n ul,\n menu {\n list-style: none;\n }\n\n /*\n 1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n 2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\n img,\n svg,\n video,\n canvas,\n audio,\n iframe,\n embed,\n object {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n }\n\n /*\n Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\n img,\n video {\n max-width: 100%;\n height: auto;\n }\n\n /*\n 1. Inherit font styles in all browsers.\n 2. Remove border radius in all browsers.\n 3. Remove background color in all browsers.\n 4. Ensure consistent opacity for disabled states in all browsers.\n*/\n\n button,\n input,\n select,\n optgroup,\n textarea,\n ::file-selector-button {\n font: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n border-radius: 0; /* 2 */\n background-color: transparent; /* 3 */\n opacity: 1; /* 4 */\n }\n\n /*\n Restore default font weight.\n*/\n\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n\n /*\n Restore indentation.\n*/\n\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n\n /*\n Restore space after button.\n*/\n\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n\n /*\n Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n*/\n\n ::placeholder {\n opacity: 1;\n }\n\n /*\n Set the default placeholder color to a semi-transparent version of the current text color in browsers that do not\n crash when using `color-mix(\u2026)` with `currentcolor`. (https://github.com/tailwindlabs/tailwindcss/issues/17194)\n*/\n\n @supports (not (-webkit-appearance: -apple-pay-button)) /* Not Safari */ or\n (contain-intrinsic-size: 1px) /* Safari 17+ */ {\n ::placeholder {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n\n /*\n Prevent resizing textareas horizontally by default.\n*/\n\n textarea {\n resize: vertical;\n }\n\n /*\n Remove the inner padding in Chrome and Safari on macOS.\n*/\n\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n /*\n 1. Ensure date/time inputs have the same height when empty in iOS Safari.\n 2. Ensure text alignment can be changed on date/time inputs in iOS Safari.\n*/\n\n ::-webkit-date-and-time-value {\n min-height: 1lh; /* 1 */\n text-align: inherit; /* 2 */\n }\n\n /*\n Prevent height from changing on date/time inputs in macOS Safari when the input is set to `display: block`.\n*/\n\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n\n /*\n Remove excess padding from pseudo-elements in date/time inputs to ensure consistent height across browsers.\n*/\n\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n\n ::-webkit-datetime-edit,\n ::-webkit-datetime-edit-year-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n\n /*\n Center dropdown marker shown on inputs with paired `<datalist>`s in Chrome. (https://github.com/tailwindlabs/tailwindcss/issues/18499)\n*/\n\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n\n /*\n Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n :-moz-ui-invalid {\n box-shadow: none;\n }\n\n /*\n Correct the inability to style the border radius in iOS Safari.\n*/\n\n button,\n input:where([type="button"], [type="reset"], [type="submit"]),\n ::file-selector-button {\n appearance: button;\n }\n\n /*\n Correct the cursor style of increment and decrement buttons in Safari.\n*/\n\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n\n /*\n Make elements with the HTML hidden attribute stay hidden by default.\n*/\n\n [hidden]:where(:not([hidden="until-found"])) {\n display: none !important;\n }\n}\n\n@layer utilities {\n @tailwind utilities;\n}\n';
59018
59018
  }
59019
59019
  });
59020
59020
 
59021
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-icons/lib/iconsManifest.mjs
59021
+ // node_modules/react-icons/lib/iconsManifest.mjs
59022
59022
  var init_iconsManifest = __esm({
59023
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-icons/lib/iconsManifest.mjs"() {
59023
+ "node_modules/react-icons/lib/iconsManifest.mjs"() {
59024
59024
  }
59025
59025
  });
59026
59026
 
59027
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-icons/lib/iconContext.mjs
59027
+ // node_modules/react-icons/lib/iconContext.mjs
59028
59028
  var import_react, DefaultContext, IconContext;
59029
59029
  var init_iconContext = __esm({
59030
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-icons/lib/iconContext.mjs"() {
59030
+ "node_modules/react-icons/lib/iconContext.mjs"() {
59031
59031
  import_react = __toESM(require_react(), 1);
59032
59032
  DefaultContext = {
59033
59033
  color: void 0,
@@ -59040,7 +59040,7 @@ var init_iconContext = __esm({
59040
59040
  }
59041
59041
  });
59042
59042
 
59043
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-icons/lib/iconBase.mjs
59043
+ // node_modules/react-icons/lib/iconBase.mjs
59044
59044
  function _objectWithoutProperties(e2, t2) {
59045
59045
  if (null == e2) return {};
59046
59046
  var o2, r2, i = _objectWithoutPropertiesLoose(e2, t2);
@@ -59141,23 +59141,23 @@ function IconBase(props) {
59141
59141
  }
59142
59142
  var import_react2, _excluded;
59143
59143
  var init_iconBase = __esm({
59144
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-icons/lib/iconBase.mjs"() {
59144
+ "node_modules/react-icons/lib/iconBase.mjs"() {
59145
59145
  import_react2 = __toESM(require_react(), 1);
59146
59146
  init_iconContext();
59147
59147
  _excluded = ["attr", "size", "title"];
59148
59148
  }
59149
59149
  });
59150
59150
 
59151
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-icons/lib/index.mjs
59151
+ // node_modules/react-icons/lib/index.mjs
59152
59152
  var init_lib2 = __esm({
59153
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-icons/lib/index.mjs"() {
59153
+ "node_modules/react-icons/lib/index.mjs"() {
59154
59154
  init_iconsManifest();
59155
59155
  init_iconBase();
59156
59156
  init_iconContext();
59157
59157
  }
59158
59158
  });
59159
59159
 
59160
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-icons/fi/index.mjs
59160
+ // node_modules/react-icons/fi/index.mjs
59161
59161
  var fi_exports = {};
59162
59162
  __export(fi_exports, {
59163
59163
  FiActivity: () => FiActivity,
@@ -60310,12 +60310,12 @@ function FiActivity(props) {
60310
60310
  return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24", "fill": "none", "stroke": "currentColor", "strokeWidth": "2", "strokeLinecap": "round", "strokeLinejoin": "round" }, "child": [{ "tag": "polyline", "attr": { "points": "22 12 18 12 15 21 9 3 6 12 2 12" }, "child": [] }] })(props);
60311
60311
  }
60312
60312
  var init_fi = __esm({
60313
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-icons/fi/index.mjs"() {
60313
+ "node_modules/react-icons/fi/index.mjs"() {
60314
60314
  init_lib2();
60315
60315
  }
60316
60316
  });
60317
60317
 
60318
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-icons/fa/index.mjs
60318
+ // node_modules/react-icons/fa/index.mjs
60319
60319
  var fa_exports = {};
60320
60320
  __export(fa_exports, {
60321
60321
  Fa500Px: () => Fa500Px,
@@ -66764,12 +66764,12 @@ function FaRegAddressBook(props) {
66764
66764
  return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 448 512" }, "child": [{ "tag": "path", "attr": { "d": "M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z" }, "child": [] }] })(props);
66765
66765
  }
66766
66766
  var init_fa = __esm({
66767
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-icons/fa/index.mjs"() {
66767
+ "node_modules/react-icons/fa/index.mjs"() {
66768
66768
  init_lib2();
66769
66769
  }
66770
66770
  });
66771
66771
 
66772
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-icons/si/index.mjs
66772
+ // node_modules/react-icons/si/index.mjs
66773
66773
  var si_exports = {};
66774
66774
  __export(si_exports, {
66775
66775
  Si1001Tracklists: () => Si1001Tracklists,
@@ -80558,12 +80558,12 @@ function Si1001Tracklists(props) {
80558
80558
  return GenIcon({ "tag": "svg", "attr": { "role": "img", "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "d": "M8.0957 1.334v1.3457H6.7461v1.3457H5.3984V5.371H4.0488v1.3457H2.6992v6.6816H1.3496v1.3477H0v2.4512h1.3496v1.3457h1.3496v1.3457h2.457v-7.836H3.8067V7.8223h1.3497V6.4766h1.3496V5.1309h1.3496V3.7852h8.289v1.3457h1.3496v1.3457h1.3496v1.3457h1.3497v4.2304h-1.3497v7.836h2.457V18.543h1.3497v-1.3457H24V14.746h-1.3496v-1.3477h-1.3496V6.7168h-1.3496V5.3711h-1.3496V4.0254h-1.3477V2.6797h-1.3496V1.334Zm1.3711 8v1.3515H8.1113v3.8165h2.4688v-4.0567h2.9512v4.3477h-1.3555v1.3515h-1.3535v2.4649h2.4668v-2.7051H16v-5.2188h-1.3555V9.334Zm1.3555 10.8691v2.463h2.4668v-2.463z" }, "child": [] }] })(props);
80559
80559
  }
80560
80560
  var init_si = __esm({
80561
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/react-icons/si/index.mjs"() {
80561
+ "node_modules/react-icons/si/index.mjs"() {
80562
80562
  init_lib2();
80563
80563
  }
80564
80564
  });
80565
80565
 
80566
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/clsx/dist/clsx.mjs
80566
+ // node_modules/clsx/dist/clsx.mjs
80567
80567
  var clsx_exports = {};
80568
80568
  __export(clsx_exports, {
80569
80569
  clsx: () => clsx,
@@ -80584,12 +80584,12 @@ function clsx() {
80584
80584
  }
80585
80585
  var clsx_default;
80586
80586
  var init_clsx = __esm({
80587
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/clsx/dist/clsx.mjs"() {
80587
+ "node_modules/clsx/dist/clsx.mjs"() {
80588
80588
  clsx_default = clsx;
80589
80589
  }
80590
80590
  });
80591
80591
 
80592
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/tailwind-merge/dist/bundle-mjs.mjs
80592
+ // node_modules/tailwind-merge/dist/bundle-mjs.mjs
80593
80593
  var bundle_mjs_exports = {};
80594
80594
  __export(bundle_mjs_exports, {
80595
80595
  createTailwindMerge: () => createTailwindMerge,
@@ -80603,7 +80603,7 @@ __export(bundle_mjs_exports, {
80603
80603
  });
80604
80604
  var concatArrays, createClassValidatorObject, createClassPartObject, CLASS_PART_SEPARATOR, EMPTY_CONFLICTS, ARBITRARY_PROPERTY_PREFIX, createClassGroupUtils, getGroupRecursive, getGroupIdForArbitraryProperty, createClassMap, processClassGroups, processClassesRecursively, processClassDefinition, processStringDefinition, processFunctionDefinition, processObjectDefinition, getPart, isThemeGetter, createLruCache, IMPORTANT_MODIFIER, MODIFIER_SEPARATOR, EMPTY_MODIFIERS, createResultObject, createParseClassName, createSortModifiers, createConfigUtils, createPostfixLookupClassGroupIds, SPLIT_CLASSES_REGEX, mergeClassList, twJoin, toValue, createTailwindMerge, fallbackThemeArr, fromTheme, arbitraryValueRegex, arbitraryVariableRegex, fractionRegex, tshirtUnitRegex, lengthUnitRegex, colorFunctionRegex, shadowRegex, imageRegex, isFraction, isNumber, isInteger, isPercent, isTshirtSize, isAny, isLengthOnly, isNever, isShadow, isImage, isAnyNonArbitrary, isNamedContainerQuery, isArbitrarySize, isArbitraryValue, isArbitraryLength, isArbitraryNumber, isArbitraryWeight, isArbitraryFamilyName, isArbitraryPosition, isArbitraryImage, isArbitraryShadow, isArbitraryVariable, isArbitraryVariableLength, isArbitraryVariableFamilyName, isArbitraryVariablePosition, isArbitraryVariableSize, isArbitraryVariableImage, isArbitraryVariableShadow, isArbitraryVariableWeight, getIsArbitraryValue, getIsArbitraryVariable, isLabelPosition, isLabelImage, isLabelSize, isLabelLength, isLabelNumber, isLabelFamilyName, isLabelWeight, isLabelShadow, validators, getDefaultConfig, mergeConfigs, overrideProperty, overrideConfigProperties, mergeConfigProperties, mergeArrayProperties, extendTailwindMerge, twMerge;
80605
80605
  var init_bundle_mjs = __esm({
80606
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/tailwind-merge/dist/bundle-mjs.mjs"() {
80606
+ "node_modules/tailwind-merge/dist/bundle-mjs.mjs"() {
80607
80607
  concatArrays = (array1, array2) => {
80608
80608
  const combinedArray = new Array(array1.length + array2.length);
80609
80609
  for (let i = 0; i < array1.length; i++) {
@@ -80745,9 +80745,9 @@ var init_bundle_mjs = __esm({
80745
80745
  processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);
80746
80746
  }
80747
80747
  };
80748
- getPart = (classPartObject, path28) => {
80748
+ getPart = (classPartObject, path29) => {
80749
80749
  let current = classPartObject;
80750
- const parts = path28.split(CLASS_PART_SEPARATOR);
80750
+ const parts = path29.split(CLASS_PART_SEPARATOR);
80751
80751
  const len = parts.length;
80752
80752
  for (let i = 0; i < len; i++) {
80753
80753
  const part = parts[i];
@@ -83943,7 +83943,7 @@ var init_bundle_mjs = __esm({
83943
83943
  }
83944
83944
  });
83945
83945
 
83946
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/class-variance-authority/dist/index.mjs
83946
+ // node_modules/class-variance-authority/dist/index.mjs
83947
83947
  var dist_exports = {};
83948
83948
  __export(dist_exports, {
83949
83949
  cva: () => cva,
@@ -83951,7 +83951,7 @@ __export(dist_exports, {
83951
83951
  });
83952
83952
  var falsyToString, cx, cva;
83953
83953
  var init_dist = __esm({
83954
- "../../../../../../../../../private/tmp/runner-deps-2169/node_modules/class-variance-authority/dist/index.mjs"() {
83954
+ "node_modules/class-variance-authority/dist/index.mjs"() {
83955
83955
  init_clsx();
83956
83956
  falsyToString = (value) => typeof value === "boolean" ? `${value}` : value === 0 ? "0" : value;
83957
83957
  cx = clsx;
@@ -84224,10 +84224,10 @@ function readSession() {
84224
84224
  return null;
84225
84225
  }
84226
84226
  try {
84227
- const held3 = JSON.parse(raw);
84228
- if (!held3.accessToken || !held3.refreshToken || !held3.subject) return null;
84229
- if (held3.supabaseUrl !== cloudEndpoints().supabaseUrl) return null;
84230
- return { ...held3, version: 1, expiresAt: Number(held3.expiresAt) || 0 };
84227
+ const held4 = JSON.parse(raw);
84228
+ if (!held4.accessToken || !held4.refreshToken || !held4.subject) return null;
84229
+ if (held4.supabaseUrl !== cloudEndpoints().supabaseUrl) return null;
84230
+ return { ...held4, version: 1, expiresAt: Number(held4.expiresAt) || 0 };
84231
84231
  } catch {
84232
84232
  return null;
84233
84233
  }
@@ -84246,9 +84246,9 @@ function clearSession() {
84246
84246
  }
84247
84247
  }
84248
84248
  async function accessToken() {
84249
- const held3 = readSession();
84250
- if (!held3) return { ok: false, reason: "signed-out" };
84251
- if (!expiringSoon(held3)) return { ok: true, token: held3.accessToken, session: held3 };
84249
+ const held4 = readSession();
84250
+ if (!held4) return { ok: false, reason: "signed-out" };
84251
+ if (!expiringSoon(held4)) return { ok: true, token: held4.accessToken, session: held4 };
84252
84252
  return refresh();
84253
84253
  }
84254
84254
  var expiringSoon = (session) => session.expiresAt - REFRESH_MARGIN_MS <= Date.now();
@@ -84333,14 +84333,14 @@ async function takeLock() {
84333
84333
  }
84334
84334
  }
84335
84335
  function stale() {
84336
- let held3;
84336
+ let held4;
84337
84337
  try {
84338
84338
  const pid = Number(fs.readFileSync(lockOwner(), "utf8").trim());
84339
- held3 = Number.isInteger(pid) && pid > 0 ? pid : void 0;
84339
+ held4 = Number.isInteger(pid) && pid > 0 ? pid : void 0;
84340
84340
  } catch {
84341
- held3 = void 0;
84341
+ held4 = void 0;
84342
84342
  }
84343
- if (held3 !== void 0 && !alive(held3)) return true;
84343
+ if (held4 !== void 0 && !alive(held4)) return true;
84344
84344
  try {
84345
84345
  return Date.now() - fs.statSync(lockDir()).mtimeMs > LOCK_STALE_MS;
84346
84346
  } catch {
@@ -84371,8 +84371,8 @@ function useRunnerHome() {
84371
84371
  function machineId() {
84372
84372
  const file2 = path3.join(runnerHome(), "machine.json");
84373
84373
  try {
84374
- const held3 = JSON.parse(fs2.readFileSync(file2, "utf8"));
84375
- if (held3.id && /^[0-9a-f-]{36}$/i.test(held3.id)) return held3.id;
84374
+ const held4 = JSON.parse(fs2.readFileSync(file2, "utf8"));
84375
+ if (held4.id && /^[0-9a-f-]{36}$/i.test(held4.id)) return held4.id;
84376
84376
  } catch {
84377
84377
  }
84378
84378
  const id = crypto.randomUUID();
@@ -84453,7 +84453,7 @@ function status(line) {
84453
84453
  }
84454
84454
 
84455
84455
  // src/protocol.ts
84456
- var VERSION = true ? "0.6.0" : "0.0.0";
84456
+ var VERSION = true ? "0.6.1" : "0.0.0";
84457
84457
  var EXIT_REFUSED = 10;
84458
84458
  var EXIT_OUTDATED = 11;
84459
84459
 
@@ -84660,16 +84660,16 @@ function createEventCollector() {
84660
84660
  let queue = [];
84661
84661
  let said = "";
84662
84662
  const todoCalls = /* @__PURE__ */ new Set();
84663
- const held3 = /* @__PURE__ */ new Map();
84663
+ const held4 = /* @__PURE__ */ new Map();
84664
84664
  let todos = [];
84665
84665
  const close = () => {
84666
84666
  if (said.trim()) queue.push({ kind: "message", data: { text: said.trim() } });
84667
84667
  said = "";
84668
84668
  };
84669
84669
  const release2 = (id, target) => {
84670
- const call = held3.get(id);
84670
+ const call = held4.get(id);
84671
84671
  if (!call) return;
84672
- held3.delete(id);
84672
+ held4.delete(id);
84673
84673
  queue.push({ kind: "tool_call", data: { ...call, ...target ? { target } : {} } });
84674
84674
  };
84675
84675
  return {
@@ -84691,7 +84691,7 @@ function createEventCollector() {
84691
84691
  }
84692
84692
  const target = targetIn(u2);
84693
84693
  const data = { toolCallId: id, title: str(u2.title) || "tool", kind: toolKind(u2.kind), status: str(u2.status) || "pending", ...target ? { target } : {} };
84694
- if (u2.rawInput !== void 0 && !inputTarget(obj(u2.rawInput))) held3.set(id, data);
84694
+ if (u2.rawInput !== void 0 && !inputTarget(obj(u2.rawInput))) held4.set(id, data);
84695
84695
  else queue.push({ kind: "tool_call", data });
84696
84696
  return;
84697
84697
  }
@@ -84761,7 +84761,7 @@ function createEventCollector() {
84761
84761
  /** The turn is over: a half-held message is finished off. */
84762
84762
  end() {
84763
84763
  close();
84764
- for (const id of [...held3.keys()]) release2(id);
84764
+ for (const id of [...held4.keys()]) release2(id);
84765
84765
  },
84766
84766
  /** What arrived since the last call. */
84767
84767
  events() {
@@ -85041,10 +85041,10 @@ function findRollout(threadId) {
85041
85041
  }
85042
85042
  for (const name of names2) {
85043
85043
  if (!name.startsWith("rollout-") || !name.endsWith(tail)) continue;
85044
- const path28 = join(dir, name);
85044
+ const path29 = join(dir, name);
85045
85045
  try {
85046
- const at2 = statSync(path28).mtimeMs;
85047
- if (!newest || at2 > newest.at) newest = { path: path28, at: at2 };
85046
+ const at2 = statSync(path29).mtimeMs;
85047
+ if (!newest || at2 > newest.at) newest = { path: path29, at: at2 };
85048
85048
  } catch {
85049
85049
  }
85050
85050
  }
@@ -85052,11 +85052,11 @@ function findRollout(threadId) {
85052
85052
  return newest?.path;
85053
85053
  }
85054
85054
  function readCodexRunFacts(threadId) {
85055
- const path28 = findRollout(threadId);
85056
- if (!path28) return void 0;
85055
+ const path29 = findRollout(threadId);
85056
+ if (!path29) return void 0;
85057
85057
  let raw;
85058
85058
  try {
85059
- raw = readFileSync(path28, "utf8");
85059
+ raw = readFileSync(path29, "utf8");
85060
85060
  } catch {
85061
85061
  return void 0;
85062
85062
  }
@@ -85164,8 +85164,8 @@ function renderCompleted(item) {
85164
85164
  const changes = Array.isArray(item.changes) ? item.changes : [];
85165
85165
  return changes.map((raw) => {
85166
85166
  const change = obj(raw);
85167
- const path28 = str(change.path);
85168
- return path28 ? `\u23FA ${str(change.kind) || "change"}(${path28})
85167
+ const path29 = str(change.path);
85168
+ return path29 ? `\u23FA ${str(change.kind) || "change"}(${path29})
85169
85169
  ` : "";
85170
85170
  }).join("");
85171
85171
  }
@@ -85413,10 +85413,10 @@ function readKimiRunFacts(sessionId) {
85413
85413
  const total = { input: 0, cacheCreation: 0, cacheRead: 0, output: 0 };
85414
85414
  let model;
85415
85415
  let holding = 0;
85416
- for (const { path: path28, main: main2 } of wireFiles(entry.sessionDir)) {
85416
+ for (const { path: path29, main: main2 } of wireFiles(entry.sessionDir)) {
85417
85417
  let raw;
85418
85418
  try {
85419
- raw = readFileSync2(path28, "utf8");
85419
+ raw = readFileSync2(path29, "utf8");
85420
85420
  } catch {
85421
85421
  continue;
85422
85422
  }
@@ -85605,8 +85605,8 @@ function connect(stdout, stdin, onCall, dialect = {}) {
85605
85605
  call(method, params) {
85606
85606
  if (gone) return Promise.reject(new Error(gone));
85607
85607
  const id = dialect.stringIds ? String(nextId++) : nextId++;
85608
- return new Promise((ok2, fail) => {
85609
- waiting.set(String(id), { ok: ok2, fail });
85608
+ return new Promise((ok, fail) => {
85609
+ waiting.set(String(id), { ok, fail });
85610
85610
  send3({ id, method, params });
85611
85611
  });
85612
85612
  },
@@ -85680,8 +85680,8 @@ var CLIENT_CAPABILITIES = {
85680
85680
  };
85681
85681
  function whereHint(update2, title) {
85682
85682
  const locations = Array.isArray(update2.locations) ? update2.locations : [];
85683
- const path28 = str(obj(locations[0]).path);
85684
- return path28 && !title.includes(path28) ? hint(path28) : "";
85683
+ const path29 = str(obj(locations[0]).path);
85684
+ return path29 && !title.includes(path29) ? hint(path29) : "";
85685
85685
  }
85686
85686
  function saidBy(update2) {
85687
85687
  const content = Array.isArray(update2.content) ? update2.content : [];
@@ -87724,15 +87724,15 @@ function isFilled(harness, { values, secretsSet: secretsSet2 }) {
87724
87724
  return setting?.kind === "secret" ? secretsSet2.includes(key) : Boolean(values[key]);
87725
87725
  };
87726
87726
  }
87727
- function providerFor(harness, held3) {
87727
+ function providerFor(harness, held4) {
87728
87728
  const setting = providerSetting(harness.settings);
87729
87729
  if (!setting) return void 0;
87730
- return pickedProvider(setting, held3.values[setting.key] ?? "", isFilled(harness, held3));
87730
+ return pickedProvider(setting, held4.values[setting.key] ?? "", isFilled(harness, held4));
87731
87731
  }
87732
- function settingArgs(harness, held3) {
87733
- const { values } = held3;
87734
- const ignored = held3.ignored ?? [];
87735
- const picked = providerFor(harness, held3);
87732
+ function settingArgs(harness, held4) {
87733
+ const { values } = held4;
87734
+ const ignored = held4.ignored ?? [];
87735
+ const picked = providerFor(harness, held4);
87736
87736
  const list = providerSetting(harness.settings);
87737
87737
  const byHand = !!list && ignored.includes(list.key);
87738
87738
  const providerArgs = byHand ? [] : picked?.args ?? [];
@@ -87747,9 +87747,9 @@ function settingArgs(harness, held3) {
87747
87747
  });
87748
87748
  return [...providerArgs, ...flags, ...splitCommand(values[RAW_ARGS_KEY] ?? "")];
87749
87749
  }
87750
- function settingEnv(harness, held3, secrets, cwd) {
87751
- const { values } = held3;
87752
- const picked = providerFor(harness, held3);
87750
+ function settingEnv(harness, held4, secrets, cwd) {
87751
+ const { values } = held4;
87752
+ const picked = providerFor(harness, held4);
87753
87753
  const env = { ...harness.env() };
87754
87754
  for (const name of ownedVars(harness)) delete env[name];
87755
87755
  for (const name of Object.values(SESSION_VARS)) delete env[name];
@@ -87776,11 +87776,11 @@ function ownedVars(harness) {
87776
87776
  }
87777
87777
  return [...names2];
87778
87778
  }
87779
- function effectiveValues(harness, held3) {
87780
- const picked = providerFor(harness, held3);
87779
+ function effectiveValues(harness, held4) {
87780
+ const picked = providerFor(harness, held4);
87781
87781
  const out = {};
87782
87782
  for (const setting of harness.settings) {
87783
- const value = held3.values[setting.key];
87783
+ const value = held4.values[setting.key];
87784
87784
  if (!value || setting.kind === "secret") continue;
87785
87785
  if (!shownForProvider(harness.settings, setting.key, picked)) continue;
87786
87786
  out[setting.key] = value;
@@ -87799,7 +87799,6 @@ __export(api_exports, {
87799
87799
  claimJob: () => claimJob,
87800
87800
  commitBoard: () => commitBoard,
87801
87801
  createArtifact: () => createArtifact,
87802
- createTriage: () => createTriage,
87803
87802
  createUpload: () => createUpload,
87804
87803
  createVersion: () => createVersion,
87805
87804
  dispatchReview: () => dispatchReview,
@@ -87811,7 +87810,7 @@ __export(api_exports, {
87811
87810
  listElsewhere: () => listElsewhere,
87812
87811
  listFolders: () => listFolders,
87813
87812
  listJobs: () => listJobs,
87814
- listTriage: () => listTriage,
87813
+ listMachineTasks: () => listMachineTasks,
87815
87814
  listWorkflows: () => listWorkflows,
87816
87815
  markReviewed: () => markReviewed,
87817
87816
  openDiscussion: () => openDiscussion,
@@ -87846,6 +87845,7 @@ __export(api_exports, {
87846
87845
  showAlert: () => showAlert,
87847
87846
  startIdea: () => startIdea,
87848
87847
  startTrial: () => startTrial,
87848
+ stopTask: () => stopTask,
87849
87849
  targetVersion: () => targetVersion,
87850
87850
  upload: () => upload
87851
87851
  });
@@ -87856,25 +87856,25 @@ import path10 from "node:path";
87856
87856
  var file = () => path10.join(runnerHome(), "secrets.json");
87857
87857
  function readAll() {
87858
87858
  try {
87859
- const held3 = JSON.parse(fs8.readFileSync(file(), "utf8"));
87860
- return held3 && typeof held3 === "object" ? held3 : {};
87859
+ const held4 = JSON.parse(fs8.readFileSync(file(), "utf8"));
87860
+ return held4 && typeof held4 === "object" ? held4 : {};
87861
87861
  } catch {
87862
87862
  return {};
87863
87863
  }
87864
87864
  }
87865
87865
  var secretsOf = (runtime) => runtime ? readAll()[runtime] ?? {} : {};
87866
87866
  function keepSecrets(runtime, given) {
87867
- const all2 = readAll();
87868
- const held3 = { ...all2[runtime] };
87867
+ const all = readAll();
87868
+ const held4 = { ...all[runtime] };
87869
87869
  for (const [key, value] of Object.entries(given)) {
87870
- if (value) held3[key] = value;
87871
- else delete held3[key];
87870
+ if (value) held4[key] = value;
87871
+ else delete held4[key];
87872
87872
  }
87873
- if (Object.keys(held3).length) all2[runtime] = held3;
87874
- else delete all2[runtime];
87873
+ if (Object.keys(held4).length) all[runtime] = held4;
87874
+ else delete all[runtime];
87875
87875
  fs8.mkdirSync(runnerHome(), { recursive: true, mode: 448 });
87876
87876
  const temp = `${file()}.${process.pid}.tmp`;
87877
- fs8.writeFileSync(temp, `${JSON.stringify(all2)}
87877
+ fs8.writeFileSync(temp, `${JSON.stringify(all)}
87878
87878
  `, { mode: 384 });
87879
87879
  fs8.renameSync(temp, file());
87880
87880
  }
@@ -87971,7 +87971,9 @@ var showAlert = (machineId2, alert) => request("POST", `/v1/runner/alerts/${q(al
87971
87971
  var readAlert = (alert) => request("POST", `/v1/alerts/${q(alert)}/read`, {});
87972
87972
  var listFolders = (machineId2) => request("GET", `/v1/runner/folders?machine=${q(machineId2)}`);
87973
87973
  var listElsewhere = (machineId2) => request("GET", `/v1/runner/folders?machine=${q(machineId2)}&elsewhere=1`);
87974
- var addFolder = (machineId2, name, path28, project) => request("POST", "/v1/runner/folders", { machineId: machineId2, name, path: path28, ...project ? { project } : {} });
87974
+ var listMachineTasks = (machineId2) => request("GET", `/v1/runner/tasks?machine=${q(machineId2)}`);
87975
+ var stopTask = (task, how) => request("POST", how === "chat" ? `/v1/tasks/${q(task)}/chat/stop` : `/v1/tasks/${q(task)}/stop`, {});
87976
+ var addFolder = (machineId2, name, path29, project) => request("POST", "/v1/runner/folders", { machineId: machineId2, name, path: path29, ...project ? { project } : {} });
87975
87977
  var removeFolder = (machineId2, project) => request("POST", `/v1/runner/folders/${q(project)}/remove`, { machineId: machineId2 });
87976
87978
  var readPlan = () => request("GET", "/v1/billing");
87977
87979
  var startTrial = () => request("POST", "/v1/billing/trial", {});
@@ -87995,11 +87997,9 @@ var readVersion = (artifact, version) => request("GET", `/v1/artifacts/${q(artif
87995
87997
  var createArtifact = (task, name, type) => request("POST", `/v1/tasks/${q(task)}/artifacts`, { type, name });
87996
87998
  var createUpload = (artifact, contentType, size) => request("POST", `/v1/artifacts/${q(artifact)}/uploads`, { content_type: contentType, size });
87997
87999
  var createVersion = (artifact, upload2) => request("POST", `/v1/artifacts/${q(artifact)}/versions`, { upload: upload2 });
87998
- var listTriage = (project, state, after) => request("GET", `/v1/triage?project=${q(project)}&state=${state}&limit=100${after ? `&after=${q(after)}` : ""}`);
87999
- var createTriage = (project, title, text3, task, workflow) => request("POST", "/v1/triage", { project, title, text: text3, source_task: task, workflow });
88000
88000
  var readRejections = (workspace) => request("GET", `/v1/rejections?workspace=${q(workspace)}`);
88001
88001
  var markReviewed = (tasks, triage) => request("POST", "/v1/rejections/reviewed", { tasks, triage });
88002
- var openDiscussion = (project, requestId) => request("POST", "/v1/discussions/external", { project, requestId });
88002
+ var openDiscussion = (project, requestId, host = "claude-code") => request("POST", "/v1/discussions/external", { ...project ? { project } : {}, requestId, host });
88003
88003
  var readDiscussion = (id) => request("GET", `/v1/discussions/${q(id)}`);
88004
88004
  async function saveDraft(id, expectedVersion, ideas) {
88005
88005
  const sent = await send("PUT", `/v1/discussions/${q(id)}/draft`, { expectedVersion, ideas }, true, TIMEOUT_MS);
@@ -88010,7 +88010,7 @@ async function saveDraft(id, expectedVersion, ideas) {
88010
88010
  }
88011
88011
  var setIdeaWorkflow = (id, idea, workflow) => request("PATCH", `/v1/discussions/${q(id)}/ideas/${q(idea)}`, { workflow });
88012
88012
  var dropIdea = (id, idea) => request("DELETE", `/v1/discussions/${q(id)}/ideas/${q(idea)}`);
88013
- var startIdea = (id, idea, expectedVersion) => request("POST", `/v1/discussions/${q(id)}/ideas/${q(idea)}/start`, { expectedVersion });
88013
+ var startIdea = (id, idea, expectedVersion, project) => request("POST", `/v1/discussions/${q(id)}/ideas/${q(idea)}/start`, { expectedVersion, ...project ? { project } : {} });
88014
88014
 
88015
88015
  // src/runtimes.ts
88016
88016
  var HARNESSES2 = Object.fromEntries(RUNTIMES.map((name) => [name, HARNESSES.find((h3) => h3.name === name)]));
@@ -88738,8 +88738,8 @@ function realpath(p2) {
88738
88738
  }
88739
88739
  function readList() {
88740
88740
  try {
88741
- const held3 = JSON.parse(fs10.readFileSync(projectsFile(), "utf8"));
88742
- return Array.isArray(held3.projects) ? held3.projects.filter((p2) => typeof p2 === "string") : [];
88741
+ const held4 = JSON.parse(fs10.readFileSync(projectsFile(), "utf8"));
88742
+ return Array.isArray(held4.projects) ? held4.projects.filter((p2) => typeof p2 === "string") : [];
88743
88743
  } catch {
88744
88744
  return [];
88745
88745
  }
@@ -88825,10 +88825,10 @@ function markUnsent(dir, unsent) {
88825
88825
  var busy = /* @__PURE__ */ new Map();
88826
88826
  function hold(dir) {
88827
88827
  busy.set(dir, (busy.get(dir) ?? 0) + 1);
88828
- let held3 = true;
88828
+ let held4 = true;
88829
88829
  return () => {
88830
- if (!held3) return;
88831
- held3 = false;
88830
+ if (!held4) return;
88831
+ held4 = false;
88832
88832
  const left = busy.get(dir) - 1;
88833
88833
  if (left) busy.set(dir, left);
88834
88834
  else busy.delete(dir);
@@ -88837,8 +88837,8 @@ function hold(dir) {
88837
88837
  function paused(dir) {
88838
88838
  try {
88839
88839
  const file2 = path13.join(projectStateDir(path13.join(akbDir(dir), "kanban")), SESSIONS_FILE);
88840
- const held3 = JSON.parse(fs11.readFileSync(file2, "utf8"));
88841
- return (held3.deliveries ?? []).some((d2) => d2.status === "active");
88840
+ const held4 = JSON.parse(fs11.readFileSync(file2, "utf8"));
88841
+ return (held4.deliveries ?? []).some((d2) => d2.status === "active");
88842
88842
  } catch {
88843
88843
  return false;
88844
88844
  }
@@ -88896,12 +88896,12 @@ async function sweepCache(machineId2, now = Date.now()) {
88896
88896
  }
88897
88897
  }
88898
88898
  for (const dir of allowedProjects()) {
88899
- let held3 = [];
88899
+ let held4 = [];
88900
88900
  try {
88901
- held3 = fs11.readdirSync(akbDir(dir));
88901
+ held4 = fs11.readdirSync(akbDir(dir));
88902
88902
  } catch {
88903
88903
  }
88904
- if (!held3.length) continue;
88904
+ if (!held4.length) continue;
88905
88905
  const gone = access && !access.folders.has(dir);
88906
88906
  if ((idle(dir, now) || gone) && clearAkb(dir)) swept.push(dir);
88907
88907
  }
@@ -88976,8 +88976,8 @@ var home3 = () => runnerHome();
88976
88976
  var reviewedFile = () => path15.join(taskChatsDir(home3()), "reviewed.json");
88977
88977
  function readReviewed() {
88978
88978
  try {
88979
- const held3 = JSON.parse(fs13.readFileSync(reviewedFile(), "utf8"));
88980
- return { checkedAt: Number(held3.checkedAt) || 0, tasks: held3.tasks ?? {} };
88979
+ const held4 = JSON.parse(fs13.readFileSync(reviewedFile(), "utf8"));
88980
+ return { checkedAt: Number(held4.checkedAt) || 0, tasks: held4.tasks ?? {} };
88981
88981
  } catch {
88982
88982
  return { checkedAt: 0, tasks: {} };
88983
88983
  }
@@ -89140,42 +89140,96 @@ async function answerHint(machineId2, hint2) {
89140
89140
  }
89141
89141
 
89142
89142
  // src/flow.ts
89143
- import fs21 from "node:fs";
89144
- import path23 from "node:path";
89143
+ import fs22 from "node:fs";
89144
+ import path24 from "node:path";
89145
89145
 
89146
89146
  // src/akb.ts
89147
89147
  import { spawn as spawn2 } from "node:child_process";
89148
+ import fs16 from "node:fs";
89149
+ import path18 from "node:path";
89150
+ import { fileURLToPath } from "node:url";
89151
+
89152
+ // ../cli/src/lib/machine/settings.ts
89148
89153
  import fs15 from "node:fs";
89149
89154
  import path17 from "node:path";
89150
- import { fileURLToPath } from "node:url";
89155
+
89156
+ // ../cli/src/lib/machine/types.ts
89157
+ var LANGUAGES = ["en", "zh"];
89158
+ var DEFAULT_LANGUAGE = "en";
89159
+ function isLanguage(value) {
89160
+ return typeof value === "string" && LANGUAGES.includes(value);
89161
+ }
89162
+
89163
+ // ../cli/src/lib/machine/settings.ts
89164
+ var settingsFile = () => path17.join(machineHome(), "settings.json");
89165
+ function heldSettings() {
89166
+ let text3;
89167
+ try {
89168
+ text3 = fs15.readFileSync(settingsFile(), "utf8");
89169
+ } catch (err) {
89170
+ if (err.code === "ENOENT") return { unreadable: false, values: {} };
89171
+ return { unreadable: true, values: {} };
89172
+ }
89173
+ try {
89174
+ const parsed = JSON.parse(text3);
89175
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return { unreadable: true, values: {} };
89176
+ return { unreadable: false, values: parsed };
89177
+ } catch {
89178
+ return { unreadable: true, values: {} };
89179
+ }
89180
+ }
89181
+ var held2 = () => heldSettings().values;
89182
+ function readLanguage() {
89183
+ const value = held2().language;
89184
+ return isLanguage(value) ? value : DEFAULT_LANGUAGE;
89185
+ }
89186
+
89187
+ // ../cli/src/lib/agent/language.ts
89188
+ var RUN_LANGUAGE_ENV = "AI4KANBAN_RUN_LANGUAGE";
89189
+ var LINES = {
89190
+ en: "",
89191
+ zh: "\u8BF7\u7528\u4E2D\u6587\u56DE\u590D\u548C\u5199\u4F5C\u3002"
89192
+ };
89193
+ function runLanguage() {
89194
+ const asked = process.env[RUN_LANGUAGE_ENV];
89195
+ return isLanguage(asked) ? asked : readLanguage();
89196
+ }
89197
+ function languageNote(language = runLanguage()) {
89198
+ return LINES[language];
89199
+ }
89200
+ var inLanguage = (prompt, language = runLanguage()) => [prompt, languageNote(language)].filter(Boolean).join("\n\n");
89201
+
89202
+ // src/akb.ts
89151
89203
  var bundledAkb = () => ({
89152
89204
  command: process.execPath,
89153
- args: [path17.join(path17.dirname(fileURLToPath(import.meta.url)), "akb", "bin", "ai4kanban.mjs")]
89205
+ args: [path18.join(path18.dirname(fileURLToPath(import.meta.url)), "akb", "bin", "ai4kanban.mjs")]
89154
89206
  });
89155
89207
  var quote = (s) => /^[\w./:@=-]+$/.test(s) ? s : `"${s}"`;
89156
89208
  function shimDir(akb) {
89157
- const dir = path17.join(runnerHome(), "bin", "akb");
89209
+ const dir = path18.join(runnerHome(), "bin", "akb");
89158
89210
  const line = [akb.command, ...akb.args].map(quote).join(" ");
89159
- const [file2, text3] = process.platform === "win32" ? [path17.join(dir, "akb.cmd"), `@${line} %*\r
89160
- `] : [path17.join(dir, "akb"), `#!/bin/sh
89211
+ const [file2, text3] = process.platform === "win32" ? [path18.join(dir, "akb.cmd"), `@${line} %*\r
89212
+ `] : [path18.join(dir, "akb"), `#!/bin/sh
89161
89213
  exec ${line} "$@"
89162
89214
  `];
89163
89215
  try {
89164
- if (fs15.readFileSync(file2, "utf8") === text3) return dir;
89216
+ if (fs16.readFileSync(file2, "utf8") === text3) return dir;
89165
89217
  } catch {
89166
89218
  }
89167
- fs15.mkdirSync(dir, { recursive: true });
89168
- fs15.writeFileSync(file2, text3, { mode: 493 });
89219
+ fs16.mkdirSync(dir, { recursive: true });
89220
+ fs16.writeFileSync(file2, text3, { mode: 493 });
89169
89221
  return dir;
89170
89222
  }
89171
- function akbEnv(akb, board, task) {
89223
+ function akbEnv(akb, board, task, lang) {
89172
89224
  const env = {};
89173
- for (const [k, v2] of Object.entries(process.env)) if (!k.startsWith("KANBAN_") && k !== "AI4KANBAN_BOARD" && k !== "AI4KANBAN_TASK") env[k] = v2;
89225
+ const dropped = ["AI4KANBAN_BOARD", "AI4KANBAN_TASK", RUN_LANGUAGE_ENV];
89226
+ for (const [k, v2] of Object.entries(process.env)) if (!k.startsWith("KANBAN_") && !dropped.includes(k)) env[k] = v2;
89174
89227
  const key = Object.keys(env).find((k) => k.toUpperCase() === "PATH") ?? "PATH";
89175
- env[key] = [shimDir(akb), env[key]].filter(Boolean).join(path17.delimiter);
89228
+ env[key] = [shimDir(akb), env[key]].filter(Boolean).join(path18.delimiter);
89176
89229
  env.AI4KANBAN_COMMAND = "akb";
89177
89230
  if (board) env.AI4KANBAN_BOARD = board;
89178
89231
  if (task) env.AI4KANBAN_TASK = task;
89232
+ if (lang) env[RUN_LANGUAGE_ENV] = lang;
89179
89233
  return env;
89180
89234
  }
89181
89235
  var KEEP = 256 * 1024;
@@ -89189,7 +89243,7 @@ function runAkb(akb, args, opts) {
89189
89243
  };
89190
89244
  let child;
89191
89245
  try {
89192
- child = spawn2(akb.command, [...akb.args, ...args], { cwd: opts.cwd, env: akbEnv(akb, opts.board, opts.task), stdio: ["ignore", "pipe", "pipe"] });
89246
+ child = spawn2(akb.command, [...akb.args, ...args], { cwd: opts.cwd, env: akbEnv(akb, opts.board, opts.task, opts.lang), stdio: ["ignore", "pipe", "pipe"] });
89193
89247
  } catch (e2) {
89194
89248
  return resolve2({ code: null, out: "", last: e2 instanceof Error ? e2.message : String(e2) });
89195
89249
  }
@@ -89224,7 +89278,7 @@ import crypto2 from "node:crypto";
89224
89278
  import fs19 from "node:fs";
89225
89279
  import path21 from "node:path";
89226
89280
 
89227
- // ../../../../../../../../../private/tmp/runner-deps-2169/node_modules/node-diff3/dist/diff3.mjs
89281
+ // node_modules/node-diff3/dist/diff3.mjs
89228
89282
  function LCS(buffer1, buffer2) {
89229
89283
  let equivalenceClasses = /* @__PURE__ */ Object.create(null);
89230
89284
  for (let j2 = 0; j2 < buffer2.length; j2++) {
@@ -89440,17 +89494,17 @@ function diff3Merge(a3, o2, b2, options) {
89440
89494
  // ../cloud/src/board-files.ts
89441
89495
  var ROOTS = ["todo/", ".archive/", "memory/", "workflows/", "triage/", "assets/", "rules/"];
89442
89496
  var SETTINGS = ["modules.md", "config.md"];
89443
- var isSettingsPath = (path28) => SETTINGS.includes(path28) || /^rules\/(?:workflows\/)?[^/]+\.md$/.test(path28);
89497
+ var isSettingsPath = (path29) => SETTINGS.includes(path29) || /^rules\/(?:workflows\/)?[^/]+\.md$/.test(path29);
89444
89498
  var BOARD_FILE_LIMIT = 256 * 1024;
89445
- function isBoardPath(path28) {
89446
- if (!path28 || path28.length > 500 || path28.startsWith("/") || path28.includes("\\") || path28.includes("\0")) return false;
89447
- if (path28.split("/").some((part) => !part || part === "." || part === "..")) return false;
89448
- if (path28 === "todo/README.md" || path28.split("/").includes(".sync")) return false;
89449
- if (path28.startsWith("workflows/")) return true;
89450
- if (SETTINGS.includes(path28)) return true;
89451
- if (path28.startsWith("rules/")) return isSettingsPath(path28);
89452
- if (path28.startsWith("assets/")) return path28.endsWith(".json");
89453
- return ROOTS.some((root) => path28.startsWith(root)) && path28.endsWith(".md");
89499
+ function isBoardPath(path29) {
89500
+ if (!path29 || path29.length > 500 || path29.startsWith("/") || path29.includes("\\") || path29.includes("\0")) return false;
89501
+ if (path29.split("/").some((part) => !part || part === "." || part === "..")) return false;
89502
+ if (path29 === "todo/README.md" || path29.split("/").includes(".sync")) return false;
89503
+ if (path29.startsWith("workflows/")) return true;
89504
+ if (SETTINGS.includes(path29)) return true;
89505
+ if (path29.startsWith("rules/")) return isSettingsPath(path29);
89506
+ if (path29.startsWith("assets/")) return path29.endsWith(".json");
89507
+ return ROOTS.some((root) => path29.startsWith(root)) && path29.endsWith(".md");
89454
89508
  }
89455
89509
  var cardSlug = (task) => task.toLowerCase().replace(/_/g, "-");
89456
89510
  var assetsFile = (task) => `assets/${task}.json`;
@@ -89479,9 +89533,28 @@ function cardFront(body) {
89479
89533
  return out;
89480
89534
  }
89481
89535
 
89482
- // src/memory-files.ts
89483
- import fs16 from "node:fs";
89484
- import path18 from "node:path";
89536
+ // ../cloud/src/triage-files.ts
89537
+ var ITEM = /^triage\/(?:(dismissed|archived)\/)?([^/]+)\.md$/;
89538
+ function itemAt(path29) {
89539
+ const m = ITEM.exec(path29);
89540
+ if (!m) return null;
89541
+ return { state: m[1] === "dismissed" ? "dismissed" : m[1] === "archived" ? "carded" : "open", name: m[2] };
89542
+ }
89543
+ function stampItem(content, fields) {
89544
+ const lines = content.split("\n");
89545
+ const close = lines.indexOf("---", 1);
89546
+ if (close < 0) return content;
89547
+ const kept3 = lines.slice(1, close).filter((line) => {
89548
+ const key = /^([a-z_]+):/.exec(line);
89549
+ return !key || fields[key[1]] === void 0;
89550
+ });
89551
+ const added = Object.entries(fields).flatMap(([k, v2]) => v2 === null ? [] : [`${k}: ${yamlScalar(v2)}`]);
89552
+ return ["---", ...kept3, ...added, ...lines.slice(close)].join("\n");
89553
+ }
89554
+
89555
+ // ../cli/src/lib/agents/shared-memory.ts
89556
+ import fs17 from "node:fs";
89557
+ import path19 from "node:path";
89485
89558
 
89486
89559
  // ../cli/src/agents/api-designer/AGENT.md
89487
89560
  var AGENT_default = "---\nname: api-designer\ndescription: Writes the caller's documentation for the APIs a card changes.\nakb:\n when: A card adds or changes a surface a user or third party calls directly, such as HTTP routes, WebSocket messages, MCP tools, or CLI commands and flags. Not a protocol between the project's own components.\n i18n:\n zh:\n title: \u63A5\u53E3\u8BBE\u8BA1\u5E08\n description: \u4E3A\u5361\u7247\u6539\u52A8\u7684\u63A5\u53E3\u5199\u51FA\u8C03\u7528\u65B9\u6587\u6863\u3002\n when: \u5361\u7247\u65B0\u589E\u6216\u4FEE\u6539\u7528\u6237\u6216\u7B2C\u4E09\u65B9\u76F4\u63A5\u8C03\u7528\u7684\u63A5\u53E3\u65F6\uFF0C\u5982 HTTP \u8DEF\u7531\u3001WebSocket \u6D88\u606F\u3001MCP \u5DE5\u5177\u3001CLI \u547D\u4EE4\u548C\u53C2\u6570\u3002\u4E0D\u542B\u9879\u76EE\u81EA\u8EAB\u7EC4\u4EF6\u4E4B\u95F4\u7684\u534F\u8BAE\u3002\n---\n\nWrite each surface this card changes as the documentation entry that will be committed, in\nthe project's existing docs style: inputs, outputs, errors and one example call. Use a\n`diff` when an entry already exists, and a `mermaid` `sequenceDiagram` for a message\nexchange. One design, no alternatives, nothing else in the section.\n\n- **Glanceable**: a junior engineer understands each entry in one read. Plain names, short\n lines, no field or error the card does not change.\n";
@@ -90196,7 +90269,7 @@ var names = (value) => [...new Set((Array.isArray(value) ? value : [value]).map(
90196
90269
  var str3 = (value) => typeof value === "string" ? value.trim() : "";
90197
90270
  var map = (value) => value && typeof value === "object" && !Array.isArray(value) ? value : null;
90198
90271
 
90199
- // src/memory-files.ts
90272
+ // ../cli/src/lib/agents/shared-memory.ts
90200
90273
  function sharedMemory(board) {
90201
90274
  const declared = /* @__PURE__ */ new Map();
90202
90275
  const take = (folder, text3, builtIn) => {
@@ -90208,16 +90281,16 @@ function sharedMemory(board) {
90208
90281
  const at2 = /^([^/]+)\/AGENT\.md$/.exec(key);
90209
90282
  if (at2) take(at2[1], text3, true);
90210
90283
  }
90211
- const root = path18.join(board, "agents");
90284
+ const root = path19.join(board, "agents");
90212
90285
  let folders2 = [];
90213
90286
  try {
90214
- folders2 = fs16.readdirSync(root, { withFileTypes: true }).filter((e2) => e2.isDirectory() && !e2.name.startsWith(".")).map((e2) => e2.name);
90287
+ folders2 = fs17.readdirSync(root, { withFileTypes: true }).filter((e2) => e2.isDirectory() && !e2.name.startsWith(".")).map((e2) => e2.name);
90215
90288
  } catch {
90216
90289
  }
90217
90290
  for (const folder of folders2.sort()) {
90218
90291
  let text3 = null;
90219
90292
  try {
90220
- text3 = fs16.readFileSync(path18.join(root, folder, "AGENT.md"), "utf8");
90293
+ text3 = fs17.readFileSync(path19.join(root, folder, "AGENT.md"), "utf8");
90221
90294
  } catch {
90222
90295
  }
90223
90296
  take(folder, text3, false);
@@ -90231,156 +90304,6 @@ function matcher(entry) {
90231
90304
  return (name) => re3.test(name);
90232
90305
  }
90233
90306
 
90234
- // src/triage.ts
90235
- import fs17 from "node:fs";
90236
- import path19 from "node:path";
90237
-
90238
- // ../cli/src/lib/signals/identity.ts
90239
- import { createHash } from "node:crypto";
90240
- var DERIVED = "derived-";
90241
- var derivedSourceId = (seed) => `${DERIVED}${createHash("sha256").update(seed).digest("hex").slice(0, 16)}`;
90242
-
90243
- // src/triage.ts
90244
- var ok = (value) => ({ ok: true, value });
90245
- var triageDir = (board) => path19.join(board, "triage");
90246
- var rejectedDir = (board) => path19.join(board, ".archive", ".sync");
90247
- var SCRATCH = ["dismissed", "archived"];
90248
- var stamp = (at2) => formatStamp(at2 ? new Date(at2) : /* @__PURE__ */ new Date());
90249
- function slugOf(title) {
90250
- return title.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 56).replace(/-+$/, "") || "item";
90251
- }
90252
- function freeName(dir, title) {
90253
- const stem = slugOf(title);
90254
- let name = `${stem}.md`;
90255
- for (let n = 2; fs17.existsSync(path19.join(dir, name)); n++) name = `${stem}-${n}.md`;
90256
- return name;
90257
- }
90258
- function itemText(item, fields = {}) {
90259
- const lines = [
90260
- "---",
90261
- `source_id: ${yamlScalar(derivedSourceId(`${item.title}
90262
- ${item.text.trim()}`))}`,
90263
- `title: ${yamlScalar(item.title)}`,
90264
- `collected_at: ${yamlScalar(stamp(item.created_at))}`,
90265
- `imported_at: ${yamlScalar(stamp(item.created_at))}`,
90266
- ...Object.entries(fields).map(([k, v2]) => `${k}: ${yamlScalar(v2)}`),
90267
- "---"
90268
- ];
90269
- return `${lines.join("\n")}
90270
-
90271
- ${item.text.trim()}
90272
- `;
90273
- }
90274
- function writeItem(dir, item, fields = {}) {
90275
- fs17.mkdirSync(dir, { recursive: true });
90276
- const name = freeName(dir, item.title);
90277
- fs17.writeFileSync(path19.join(dir, name), itemText(item, item.workflow ? { workflow: workflowName(item.workflow), ...fields } : fields));
90278
- return name;
90279
- }
90280
- function readItem(file2) {
90281
- const lines = fs17.readFileSync(file2, "utf8").split("\n");
90282
- if (lines[0]?.trim() !== "---") return null;
90283
- const close = lines.indexOf("---", 1);
90284
- if (close < 0) return null;
90285
- const field = (key) => {
90286
- const said = lines.slice(1, close).map((l2) => new RegExp(`^${key}:\\s*(.*)$`).exec(l2)?.[1]).find((t2) => t2 !== void 0);
90287
- return said === void 0 ? "" : unquote(said).trim();
90288
- };
90289
- const title = field("title");
90290
- const text3 = lines.slice(close + 1).join("\n").trim();
90291
- return title ? { title: title.slice(0, 200), text: text3.slice(0, 6e4), workflow: field("workflow") } : null;
90292
- }
90293
- async function cloudWorkflowOf(local, job, own) {
90294
- if (!local) return ok(job ?? "");
90295
- if (job && workflowName(job) === local) return ok(job);
90296
- if (!local.startsWith("wf-")) return ok(`wf_builtin_${local.replace(/-/g, "_")}`);
90297
- const ids = await own();
90298
- if (!ids.ok) return ids;
90299
- return ok(ids.value.find((id) => workflowFolder(id) === local) ?? local);
90300
- }
90301
- var itemFiles = (dir) => {
90302
- try {
90303
- return fs17.readdirSync(dir, { withFileTypes: true }).filter((e2) => e2.isFile() && e2.name.endsWith(".md")).map((e2) => e2.name);
90304
- } catch {
90305
- return [];
90306
- }
90307
- };
90308
- async function all(read) {
90309
- const out = [];
90310
- let after = null;
90311
- do {
90312
- const page = await read(after);
90313
- if (!page.ok) return page;
90314
- out.push(...page.value.data);
90315
- after = page.value.next;
90316
- } while (after);
90317
- return ok(out);
90318
- }
90319
- async function pullTriage(board, project) {
90320
- const open = await all((after) => listTriage(project, "open", after));
90321
- if (!open.ok) return open;
90322
- const dir = triageDir(board);
90323
- for (const name of itemFiles(dir)) fs17.rmSync(path19.join(dir, name), { force: true });
90324
- for (const sub of SCRATCH) fs17.rmSync(path19.join(dir, sub), { recursive: true, force: true });
90325
- const known = {};
90326
- for (const item of open.value) known[writeItem(dir, item)] = item.id;
90327
- return ok(known);
90328
- }
90329
- async function pushTriage(board, project, task, known, workflow = null) {
90330
- const dir = triageDir(board);
90331
- const out = { ...known };
90332
- let own = null;
90333
- const ownIds = async () => {
90334
- if (own) return own;
90335
- const held3 = await readProject(project);
90336
- if (!held3.ok) return held3;
90337
- const listed2 = await all((after) => listWorkflows(held3.value.workspace ?? "", after));
90338
- own = listed2.ok ? ok(listed2.value.map((w2) => w2.id)) : listed2;
90339
- return own;
90340
- };
90341
- for (const name of itemFiles(dir)) {
90342
- if (out[name]) continue;
90343
- const item = readItem(path19.join(dir, name));
90344
- if (!item) continue;
90345
- const flow = await cloudWorkflowOf(item.workflow, workflow, ownIds);
90346
- if (!flow.ok) return flow;
90347
- const made = await createTriage(project, item.title, item.text, task, flow.value);
90348
- if (!made.ok && made.code === "bad_request") continue;
90349
- if (!made.ok) return made;
90350
- out[name] = made.value.id;
90351
- }
90352
- return ok(out);
90353
- }
90354
- function layOut(board, rejections) {
90355
- const dir = rejectedDir(board);
90356
- fs17.mkdirSync(dir, { recursive: true });
90357
- for (const t2 of rejections.tasks) {
90358
- fs17.writeFileSync(path19.join(dir, `${t2.number}-${slugify(t2.title)}.md`), [
90359
- "---",
90360
- `title: ${yamlScalar(t2.title)}`,
90361
- "status: todo",
90362
- "rejected: true",
90363
- `rejected_reason: ${yamlScalar(t2.reason)}`,
90364
- `rejected_at: ${yamlScalar(stamp(t2.cancelled_at))}`,
90365
- "rejected_by: user",
90366
- "---",
90367
- "",
90368
- t2.request.trim(),
90369
- ""
90370
- ].join("\n"));
90371
- }
90372
- for (const item of rejections.triage) {
90373
- const sub = path19.join(triageDir(board), item.state === "dismissed" ? "dismissed" : "archived");
90374
- const fields = item.state === "dismissed" ? { dismissed_at: stamp(item.dismissed_at), dismissed_by: "user", ...item.dismissed_reason ? { dismissed_reason: item.dismissed_reason } : {} } : {};
90375
- writeItem(sub, item, fields);
90376
- }
90377
- return { tasks: rejections.tasks.map((t2) => t2.id), triage: rejections.triage.map((i) => i.id) };
90378
- }
90379
- function clearLaid(board) {
90380
- fs17.rmSync(rejectedDir(board), { recursive: true, force: true });
90381
- for (const sub of SCRATCH) fs17.rmSync(path19.join(triageDir(board), sub), { recursive: true, force: true });
90382
- }
90383
-
90384
90307
  // src/task-folder.ts
90385
90308
  var TASK_ID = /^[\w-]{1,100}$/;
90386
90309
  var EMPTY = { assets: {} };
@@ -90438,8 +90361,8 @@ function keepOutOfGit(dir, folders2 = SKILL_FOLDERS) {
90438
90361
  if (!missing.length) return;
90439
90362
  const exclude = path21.resolve(dir, inside.stdout.trim());
90440
90363
  fs19.mkdirSync(path21.dirname(exclude), { recursive: true });
90441
- const held3 = fs19.existsSync(exclude) ? fs19.readFileSync(exclude, "utf8") : "";
90442
- fs19.writeFileSync(exclude, `${held3}${held3 && !held3.endsWith("\n") ? "\n" : ""}${missing.join("\n")}
90364
+ const held4 = fs19.existsSync(exclude) ? fs19.readFileSync(exclude, "utf8") : "";
90365
+ fs19.writeFileSync(exclude, `${held4}${held4 && !held4.endsWith("\n") ? "\n" : ""}${missing.join("\n")}
90443
90366
  `);
90444
90367
  }
90445
90368
  var cardFile = (ws) => (ws.number ? findCard(ws.board, ws.number) : null) ?? path21.join(ws.board, "todo", `${ws.number ?? 0}-task.md`);
@@ -90529,7 +90452,7 @@ function filesUnder(dir, base = dir) {
90529
90452
  return e2.isFile() ? [path21.relative(base, full).split(path21.sep).join("/")] : [];
90530
90453
  });
90531
90454
  }
90532
- var kept2 = (p2) => isBoardPath(p2) && !p2.startsWith("triage/");
90455
+ var kept2 = isBoardPath;
90533
90456
  var MEMORY2 = "memory/";
90534
90457
  var rootOf = (ws) => `projects/${ws.project}/`;
90535
90458
  var remoteOf = (ws, shared, p2) => p2.startsWith(MEMORY2) && shared(p2.slice(MEMORY2.length)) ? p2 : rootOf(ws) + p2;
@@ -90551,8 +90474,8 @@ var localFiles = (ws, base) => {
90551
90474
  };
90552
90475
  var SKILL_PATH = /^skills\/([a-z0-9]+(?:-[a-z0-9]+)*)\/((?:[\w.-]+\/)*[\w.-]+)$/;
90553
90476
  function pullTools(ws, record, files) {
90554
- const held3 = record.tools?.skills ?? {};
90555
- const ours = new Set(Object.keys(held3).map((name) => name.split("/")[1]));
90477
+ const held4 = record.tools?.skills ?? {};
90478
+ const ours = new Set(Object.keys(held4).map((name) => name.split("/")[1]));
90556
90479
  const theirs = (skill) => !ours.has(skill) && SKILL_ROOTS.some((root) => fs19.existsSync(path21.join(ws.cwd, root, skill)));
90557
90480
  const kept3 = Object.keys(files).map((name) => SKILL_PATH.exec(name)?.[1]).filter((skill) => skill && !theirs(skill));
90558
90481
  const skills = {};
@@ -90562,10 +90485,10 @@ function pullTools(ws, record, files) {
90562
90485
  skills[name] = hashOf(text3);
90563
90486
  for (const root of SKILL_ROOTS) {
90564
90487
  const file2 = path21.join(ws.cwd, root, at2[1], at2[2]);
90565
- if (held3[name] !== skills[name] || hashFile(file2) !== skills[name]) write(file2, text3);
90488
+ if (held4[name] !== skills[name] || hashFile(file2) !== skills[name]) write(file2, text3);
90566
90489
  }
90567
90490
  }
90568
- for (const name of Object.keys(held3)) {
90491
+ for (const name of Object.keys(held4)) {
90569
90492
  if (skills[name]) continue;
90570
90493
  const [, skill, rest] = SKILL_PATH.exec(name) ?? [];
90571
90494
  if (!skill || !rest) continue;
@@ -90588,8 +90511,8 @@ async function pullWorkflow(ws, record, base) {
90588
90511
  let files = {};
90589
90512
  if (ws.workflow) {
90590
90513
  const root = `workflows/${workflowFolder(ws.workflow)}/`;
90591
- const held3 = rootOf(ws) + root;
90592
- files = Object.fromEntries(Object.entries(base.files).filter(([p2]) => p2.startsWith(held3) && isBoardPath(p2.slice(rootOf(ws).length))).map(([p2, f2]) => [p2.slice(held3.length), f2.content]));
90514
+ const held4 = rootOf(ws) + root;
90515
+ files = Object.fromEntries(Object.entries(base.files).filter(([p2]) => p2.startsWith(held4) && isBoardPath(p2.slice(rootOf(ws).length))).map(([p2, f2]) => [p2.slice(held4.length), f2.content]));
90593
90516
  record.builtin = ws.workflow.startsWith("wf_builtin_");
90594
90517
  let found = Object.keys(files).length > 0;
90595
90518
  if (!found && ws.cloudTask) {
@@ -90671,15 +90594,19 @@ function workflowFile(ws) {
90671
90594
  }
90672
90595
  function assetPath(ws, name, card) {
90673
90596
  if (/^[a-z][\w+.-]*:/i.test(name) || name.startsWith("/") || name.startsWith("#")) return null;
90674
- const held3 = /^\.(assets|mockups)\//.exec(name);
90675
- if (held3) {
90597
+ const held4 = /^\.(assets|mockups)\//.exec(name);
90598
+ if (held4) {
90676
90599
  const state = stateDir(ws);
90677
- const file3 = state && path21.resolve(state, held3[1], name.slice(held3[0].length));
90678
- return file3 && file3.startsWith(path21.join(state, held3[1]) + path21.sep) ? file3 : null;
90600
+ const file3 = state && path21.resolve(state, held4[1], name.slice(held4[0].length));
90601
+ return file3 && file3.startsWith(path21.join(state, held4[1]) + path21.sep) ? file3 : null;
90679
90602
  }
90680
90603
  const file2 = path21.resolve(path21.dirname(card), name);
90681
90604
  return file2.startsWith(ws.board + path21.sep) ? file2 : null;
90682
90605
  }
90606
+ function cardAssetsDir(ws, id) {
90607
+ const state = stateDir(ws);
90608
+ return state && path21.join(state, "assets", String(id));
90609
+ }
90683
90610
  function stateDir(ws) {
90684
90611
  try {
90685
90612
  return projectStateDir(ws.board);
@@ -90689,8 +90616,8 @@ function stateDir(ws) {
90689
90616
  }
90690
90617
  function assetsOf(text3) {
90691
90618
  try {
90692
- const held3 = JSON.parse(text3 ?? "{}");
90693
- return held3 && typeof held3 === "object" && !Array.isArray(held3) ? held3 : {};
90619
+ const held4 = JSON.parse(text3 ?? "{}");
90620
+ return held4 && typeof held4 === "object" && !Array.isArray(held4) ? held4 : {};
90694
90621
  } catch {
90695
90622
  return {};
90696
90623
  }
@@ -90731,9 +90658,6 @@ async function pull(ws) {
90731
90658
  reset(viewOf(ws, base, sharedMemory(ws.board)));
90732
90659
  const assets = await pullAssets(ws, record, assetsOf(assetsListOf(ws, base)));
90733
90660
  if (!assets.ok) return assets;
90734
- const triage = await pullTriage(ws.board, ws.project);
90735
- if (!triage.ok) return triage;
90736
- record.triage = triage.value;
90737
90661
  writeRecord(ws, record);
90738
90662
  writeIndex(ws.board);
90739
90663
  return { ok: true, value: void 0 };
@@ -90780,13 +90704,13 @@ async function pullAssets(ws, record, assets) {
90780
90704
  if (!latest.ok) return latest;
90781
90705
  version = latest.value.latest_version ?? 0;
90782
90706
  }
90783
- const held3 = record.assets[name];
90784
- if (held3?.kind === "html" && held3.artifact === ref.artifact) {
90785
- out[name] = { ...held3, version };
90707
+ const held4 = record.assets[name];
90708
+ if (held4?.kind === "html" && held4.artifact === ref.artifact) {
90709
+ out[name] = { ...held4, version };
90786
90710
  continue;
90787
90711
  }
90788
- if (held3?.artifact === ref.artifact && held3.version === version && hashFile(target) === held3.hash) {
90789
- out[name] = held3;
90712
+ if (held4?.artifact === ref.artifact && held4.version === version && hashFile(target) === held4.hash) {
90713
+ out[name] = held4;
90790
90714
  continue;
90791
90715
  }
90792
90716
  const bytes2 = await readAsset(ref.artifact, version);
@@ -90798,10 +90722,10 @@ async function pullAssets(ws, record, assets) {
90798
90722
  return { ok: true, value: void 0 };
90799
90723
  }
90800
90724
  async function readAsset(artifact, version) {
90801
- const held3 = await readVersion(artifact, version);
90802
- if (!held3.ok) return held3;
90803
- if (held3.value.file) return download(held3.value.file.url);
90804
- const content = held3.value.content;
90725
+ const held4 = await readVersion(artifact, version);
90726
+ if (!held4.ok) return held4;
90727
+ if (held4.value.file) return download(held4.value.file.url);
90728
+ const content = held4.value.content;
90805
90729
  return { ok: true, value: Buffer.from(typeof content === "string" ? content : JSON.stringify(content)) };
90806
90730
  }
90807
90731
  var TYPES = {
@@ -90867,17 +90791,17 @@ async function pushAssets(ws, record, before) {
90867
90791
  for (const [name, ref] of Object.entries(before)) {
90868
90792
  if (!body.includes(name)) continue;
90869
90793
  const target = assetPath(ws, name, file2);
90870
- const held3 = record.assets[name];
90871
- const out = target && held3 && fs19.existsSync(target) ? await sentOf(target) : null;
90794
+ const held4 = record.assets[name];
90795
+ const out = target && held4 && fs19.existsSync(target) ? await sentOf(target) : null;
90872
90796
  const hash = out && hashOf(out.bytes);
90873
- if (out && held3 && held3.kind === "html" !== (out.kind === "html")) continue;
90874
- if (held3 && out && hash !== held3.hash) {
90875
- const sent = await uploadAsset(held3.artifact, out);
90797
+ if (out && held4 && held4.kind === "html" !== (out.kind === "html")) continue;
90798
+ if (held4 && out && hash !== held4.hash) {
90799
+ const sent = await uploadAsset(held4.artifact, out);
90876
90800
  if (!sent.ok) return sent;
90877
- assets[name] = { artifact: held3.artifact, version: sent.value, hash, kind: out.kind };
90878
- refs[name] = { artifact: held3.artifact, version: sent.value };
90801
+ assets[name] = { artifact: held4.artifact, version: sent.value, hash, kind: out.kind };
90802
+ refs[name] = { artifact: held4.artifact, version: sent.value };
90879
90803
  } else {
90880
- if (held3) assets[name] = held3;
90804
+ if (held4) assets[name] = held4;
90881
90805
  refs[name] = ref;
90882
90806
  }
90883
90807
  }
@@ -90900,6 +90824,27 @@ async function pushAssets(ws, record, before) {
90900
90824
  }
90901
90825
  return { ok: true, value: void 0 };
90902
90826
  }
90827
+ function resetSorted(ws) {
90828
+ for (const sub of ["dismissed", "archived"]) fs19.rmSync(path21.join(ws.board, "triage", sub), { recursive: true, force: true });
90829
+ for (const [p2, content] of viewOf(ws, readBase(ws), sharedMemory(ws.board))) {
90830
+ if (/^triage\/(?:dismissed|archived)\//.test(p2)) write(path21.join(ws.board, p2), content);
90831
+ }
90832
+ }
90833
+ function proposeItems(ws, base) {
90834
+ const root = rootOf(ws);
90835
+ for (const p2 of localFiles(ws, base)) {
90836
+ if (itemAt(p2)?.state !== "open" || base.files[root + p2]) continue;
90837
+ const file2 = path21.join(ws.board, p2);
90838
+ const content = fs19.readFileSync(file2, "utf8");
90839
+ const said = (key) => new RegExp(`^${key}:`, "m").test(content.split(/\n---/)[0] ?? "");
90840
+ const fields = {
90841
+ ...ws.cloudTask && !said("source_task") ? { source_task: ws.cloudTask } : {},
90842
+ ...ws.workflow && !said("workflow") ? { workflow: workflowName(ws.workflow) } : {}
90843
+ };
90844
+ const stamped = Object.keys(fields).length ? stampItem(content, fields) : content;
90845
+ if (stamped !== content) write(file2, stamped);
90846
+ }
90847
+ }
90903
90848
  function mergeFile(base, mine, theirs) {
90904
90849
  if (mine === theirs) return { content: mine };
90905
90850
  if (mine === null || theirs === null) return null;
@@ -90919,10 +90864,7 @@ async function send2(ws, job) {
90919
90864
  const assets = await pushAssets(ws, record, assetsOf(assetsListOf(ws, base)));
90920
90865
  if (!assets.ok) return fail(assets.error, false, assets.code);
90921
90866
  writeRecord(ws, record);
90922
- const triage = await pushTriage(ws.board, ws.project, ws.cloudTask, record.triage ?? {}, ws.workflow);
90923
- if (!triage.ok) return fail(triage.error, false, triage.code);
90924
- record.triage = triage.value;
90925
- writeRecord(ws, record);
90867
+ proposeItems(ws, base);
90926
90868
  const shared = sharedMemory(ws.board);
90927
90869
  const local = localFiles(ws, base);
90928
90870
  const localOf = /* @__PURE__ */ new Map();
@@ -90931,10 +90873,10 @@ async function send2(ws, job) {
90931
90873
  const content = fs19.readFileSync(path21.join(ws.board, p2), "utf8");
90932
90874
  const remote = remoteOf(ws, shared, p2);
90933
90875
  localOf.set(remote, p2);
90934
- const held3 = base.files[remote];
90935
- if (held3?.content === content) continue;
90876
+ const held4 = base.files[remote];
90877
+ if (held4?.content === content) continue;
90936
90878
  if (Buffer.byteLength(content) > BOARD_FILE_LIMIT) return fail(`${p2} is over ${BOARD_FILE_LIMIT / 1024} KB; keep large files as assets.`, false, "too_large");
90937
- changes.push({ path: remote, content, base_seq: held3?.seq ?? 0 });
90879
+ changes.push({ path: remote, content, base_seq: held4?.seq ?? 0 });
90938
90880
  }
90939
90881
  for (const p2 of viewOf(ws, base, shared).keys()) {
90940
90882
  const remote = remoteOf(ws, shared, p2);
@@ -90956,7 +90898,7 @@ async function send2(ws, job) {
90956
90898
  continue;
90957
90899
  }
90958
90900
  const p2 = localOf.get(theirs.path) ?? theirs.path;
90959
- const merged = at2 < 0 ? null : mergeFile(base.files[theirs.path]?.content ?? null, changes[at2].content, theirs.content);
90901
+ const merged = at2 < 0 ? null : itemAt(p2) ? { content: theirs.content } : mergeFile(base.files[theirs.path]?.content ?? null, changes[at2].content, theirs.content);
90960
90902
  if (!merged) return fail(`${p2} was changed elsewhere and does not merge.`, true, "version_conflict");
90961
90903
  changes[at2] = { path: theirs.path, content: merged.content, base_seq: theirs.seq };
90962
90904
  if (merged.content === null) fs19.rmSync(path21.join(ws.board, p2), { force: true });
@@ -90975,10 +90917,86 @@ async function send2(ws, job) {
90975
90917
  return { ok: true, changed: true };
90976
90918
  }
90977
90919
 
90978
- // src/built.ts
90920
+ // src/triage.ts
90979
90921
  import fs20 from "node:fs";
90980
90922
  import path22 from "node:path";
90981
90923
 
90924
+ // ../cli/src/lib/signals/identity.ts
90925
+ import { createHash } from "node:crypto";
90926
+ var DERIVED = "derived-";
90927
+ var derivedSourceId = (seed) => `${DERIVED}${createHash("sha256").update(seed).digest("hex").slice(0, 16)}`;
90928
+
90929
+ // src/triage.ts
90930
+ var triageDir = (board) => path22.join(board, "triage");
90931
+ var rejectedDir = (board) => path22.join(board, ".archive", ".sync");
90932
+ var SCRATCH = ["dismissed", "archived"];
90933
+ var stamp = (at2) => formatStamp(at2 ? new Date(at2) : /* @__PURE__ */ new Date());
90934
+ function slugOf(title) {
90935
+ return title.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 56).replace(/-+$/, "") || "item";
90936
+ }
90937
+ function freeName(dir, title) {
90938
+ const stem = slugOf(title);
90939
+ let name = `${stem}.md`;
90940
+ for (let n = 2; fs20.existsSync(path22.join(dir, name)); n++) name = `${stem}-${n}.md`;
90941
+ return name;
90942
+ }
90943
+ function itemText(item, fields = {}) {
90944
+ const lines = [
90945
+ "---",
90946
+ `source_id: ${yamlScalar(derivedSourceId(`${item.title}
90947
+ ${item.text.trim()}`))}`,
90948
+ `title: ${yamlScalar(item.title)}`,
90949
+ `collected_at: ${yamlScalar(stamp(item.created_at))}`,
90950
+ `imported_at: ${yamlScalar(stamp(item.created_at))}`,
90951
+ ...Object.entries(fields).map(([k, v2]) => `${k}: ${yamlScalar(v2)}`),
90952
+ "---"
90953
+ ];
90954
+ return `${lines.join("\n")}
90955
+
90956
+ ${item.text.trim()}
90957
+ `;
90958
+ }
90959
+ function writeItem(dir, item, fields = {}) {
90960
+ fs20.mkdirSync(dir, { recursive: true });
90961
+ const name = freeName(dir, item.title);
90962
+ fs20.writeFileSync(path22.join(dir, name), itemText(item, item.workflow ? { workflow: workflowName(item.workflow), ...fields } : fields));
90963
+ return name;
90964
+ }
90965
+ function layOut(board, rejections) {
90966
+ clearLaid(board);
90967
+ const dir = rejectedDir(board);
90968
+ fs20.mkdirSync(dir, { recursive: true });
90969
+ for (const t2 of rejections.tasks) {
90970
+ fs20.writeFileSync(path22.join(dir, `${t2.number}-${slugify(t2.title)}.md`), [
90971
+ "---",
90972
+ `title: ${yamlScalar(t2.title)}`,
90973
+ "status: todo",
90974
+ "rejected: true",
90975
+ `rejected_reason: ${yamlScalar(t2.reason)}`,
90976
+ `rejected_at: ${yamlScalar(stamp(t2.cancelled_at))}`,
90977
+ "rejected_by: user",
90978
+ "---",
90979
+ "",
90980
+ t2.request.trim(),
90981
+ ""
90982
+ ].join("\n"));
90983
+ }
90984
+ for (const item of rejections.triage) {
90985
+ const sub = path22.join(triageDir(board), item.state === "dismissed" ? "dismissed" : "archived");
90986
+ const fields = item.state === "dismissed" ? { dismissed_at: stamp(item.dismissed_at), dismissed_by: "user", ...item.dismissed_reason ? { dismissed_reason: item.dismissed_reason } : {} } : {};
90987
+ writeItem(sub, item, fields);
90988
+ }
90989
+ return { tasks: rejections.tasks.map((t2) => t2.id), triage: rejections.triage.map((i) => i.id) };
90990
+ }
90991
+ function clearLaid(board) {
90992
+ fs20.rmSync(rejectedDir(board), { recursive: true, force: true });
90993
+ for (const sub of SCRATCH) fs20.rmSync(path22.join(triageDir(board), sub), { recursive: true, force: true });
90994
+ }
90995
+
90996
+ // src/built.ts
90997
+ import fs21 from "node:fs";
90998
+ import path23 from "node:path";
90999
+
90982
91000
  // ../cli/src/lib/agent/workflow-def.ts
90983
91001
  var WORKFLOW_ID = /^[a-z0-9]+(-[a-z0-9]+)*$/;
90984
91002
  var OLD_KEYS = ["stages", "delivers", "helpers", "every"];
@@ -91135,26 +91153,26 @@ function checkWorkflowFiles(value, official = false) {
91135
91153
 
91136
91154
  // src/built.ts
91137
91155
  var isBuilder = (ws) => ws.workflow === BUILDER;
91138
- var draftDir = (ws) => path22.join(ws.board, "workflows", draftFolder(ws.task));
91139
- var draftLine = (ws) => `<!-- workflow folder: ${path22.relative(ws.cwd, draftDir(ws)).split(path22.sep).join("/")}/ -->`;
91156
+ var draftDir = (ws) => path23.join(ws.board, "workflows", draftFolder(ws.task));
91157
+ var draftLine = (ws) => `<!-- workflow folder: ${path23.relative(ws.cwd, draftDir(ws)).split(path23.sep).join("/")}/ -->`;
91140
91158
  var skeleton = (name) => ["---", `name: ${/\s#/.test(name) ? JSON.stringify(name) : yamlScalar(name)}`, "needsArtifact: false", "---", ""].join("\n");
91141
91159
  async function placeDraft(ws, read) {
91142
91160
  const dir = draftDir(ws);
91143
- if (fs20.existsSync(path22.join(dir, WORKFLOW_FILE))) return { ok: true, value: void 0 };
91161
+ if (fs21.existsSync(path23.join(dir, WORKFLOW_FILE))) return { ok: true, value: void 0 };
91144
91162
  const task = await read.readTask(ws.task);
91145
91163
  if (!task.ok) return task;
91146
91164
  let files = { [WORKFLOW_FILE]: skeleton(task.value.title.trim() || "Untitled") };
91147
91165
  const changes = task.value.context?.workflow;
91148
91166
  if (changes) {
91149
- const held3 = await read.readWorkflow(changes);
91150
- if (!held3.ok) return held3;
91151
- files = held3.value.files;
91167
+ const held4 = await read.readWorkflow(changes);
91168
+ if (!held4.ok) return held4;
91169
+ files = held4.value.files;
91152
91170
  }
91153
91171
  for (const [name, text3] of Object.entries(files)) {
91154
- const file2 = path22.resolve(dir, name);
91155
- if (!file2.startsWith(dir + path22.sep)) continue;
91156
- fs20.mkdirSync(path22.dirname(file2), { recursive: true });
91157
- fs20.writeFileSync(file2, text3);
91172
+ const file2 = path23.resolve(dir, name);
91173
+ if (!file2.startsWith(dir + path23.sep)) continue;
91174
+ fs21.mkdirSync(path23.dirname(file2), { recursive: true });
91175
+ fs21.writeFileSync(file2, text3);
91158
91176
  }
91159
91177
  return { ok: true, value: void 0 };
91160
91178
  }
@@ -91166,19 +91184,19 @@ async function builtWorkflow(ws, akb) {
91166
91184
  const dir = draftDir(ws);
91167
91185
  let source;
91168
91186
  try {
91169
- source = fs20.readFileSync(path22.join(dir, WORKFLOW_FILE), "utf8");
91187
+ source = fs21.readFileSync(path23.join(dir, WORKFLOW_FILE), "utf8");
91170
91188
  } catch {
91171
91189
  return fail(`workflows/${id}/${WORKFLOW_FILE} is missing.`);
91172
91190
  }
91173
91191
  const read = parseWorkflowFile(id, source, `workflows/${id}/${WORKFLOW_FILE}`);
91174
91192
  if ("problem" in read) return fail(read.problem);
91175
91193
  const names2 = named(read.def);
91176
- fs20.rmSync(path22.join(dir, "agents"), { recursive: true, force: true });
91194
+ fs21.rmSync(path23.join(dir, "agents"), { recursive: true, force: true });
91177
91195
  for (const name of names2) {
91178
- const from = path22.join(ws.board, "agents", name);
91179
- if (fs20.existsSync(from)) fs20.cpSync(from, path22.join(dir, "agents", name), { recursive: true });
91196
+ const from = path23.join(ws.board, "agents", name);
91197
+ if (fs21.existsSync(from)) fs21.cpSync(from, path23.join(dir, "agents", name), { recursive: true });
91180
91198
  }
91181
- const files = Object.fromEntries(filesUnder(dir).map((f2) => [f2, fs20.readFileSync(path22.join(dir, f2), "utf8")]));
91199
+ const files = Object.fromEntries(filesUnder(dir).map((f2) => [f2, fs21.readFileSync(path23.join(dir, f2), "utf8")]));
91182
91200
  const checked = checkWorkflowFiles(files);
91183
91201
  if (!checked.ok) return fail(`${checked.file} ${checked.reason}.`);
91184
91202
  const run2 = async (args) => answerOf2(await runAkb(akb, [...args, "--json", "--board", ws.board], { cwd: ws.cwd, board: ws.board }));
@@ -91213,7 +91231,7 @@ var SETUP_STEPS = ["project", "agent", "decisions", "modules", "tasks"];
91213
91231
  function reviewOf(file2) {
91214
91232
  let text3;
91215
91233
  try {
91216
- text3 = fs21.readFileSync(file2, "utf8");
91234
+ text3 = fs22.readFileSync(file2, "utf8");
91217
91235
  } catch {
91218
91236
  return void 0;
91219
91237
  }
@@ -91228,8 +91246,8 @@ function reviewOf(file2) {
91228
91246
  }
91229
91247
  function mcpConfig(servers, file2) {
91230
91248
  if (!Object.keys(servers).length) return null;
91231
- fs21.mkdirSync(path23.dirname(file2), { recursive: true });
91232
- fs21.writeFileSync(file2, `${JSON.stringify({ mcpServers: servers }, null, 2)}
91249
+ fs22.mkdirSync(path24.dirname(file2), { recursive: true });
91250
+ fs22.writeFileSync(file2, `${JSON.stringify({ mcpServers: servers }, null, 2)}
91233
91251
  `);
91234
91252
  return file2;
91235
91253
  }
@@ -91263,7 +91281,7 @@ async function stopLeftBehind(akb, ws, id, ms2) {
91263
91281
  var refusal2 = (ran) => ran.last.replace(/^akb( raw)?: /, "").slice(0, 300) || "akb stopped with an error.";
91264
91282
  var firstLine = (text3) => (text3 ?? "").split("\n").map((l2) => l2.trim()).find(Boolean)?.slice(0, 300);
91265
91283
  function logLines(show, event2) {
91266
- let held3 = "";
91284
+ let held4 = "";
91267
91285
  const said = (line) => {
91268
91286
  if (line.startsWith('{"kind":')) {
91269
91287
  let parsed;
@@ -91289,40 +91307,40 @@ function logLines(show, event2) {
91289
91307
  };
91290
91308
  return {
91291
91309
  push: (chunk) => {
91292
- const lines = (held3 + chunk).split("\n");
91293
- held3 = lines.pop();
91310
+ const lines = (held4 + chunk).split("\n");
91311
+ held4 = lines.pop();
91294
91312
  for (const line of lines) {
91295
91313
  const out = said(line);
91296
91314
  if (out) show(out);
91297
91315
  }
91298
91316
  },
91299
91317
  end: () => {
91300
- const out = held3 ? said(held3) : "";
91318
+ const out = held4 ? said(held4) : "";
91301
91319
  if (out) show(out);
91302
91320
  }
91303
91321
  };
91304
91322
  }
91305
- function boardAkb(ws, deps, io, task) {
91323
+ function boardAkb(job, ws, deps, io, task) {
91306
91324
  return async (args, show = false) => {
91307
91325
  const at2 = args.includes("--") ? args.indexOf("--") : args.length;
91308
91326
  const full = [...args.slice(0, at2), "--board", ws.board, ...args.slice(at2)];
91309
91327
  const log = show ? logLines(io.show, io.event) : void 0;
91310
- const ran = await runAkb(deps.akb, full, { cwd: ws.cwd, board: ws.board, task, show: log?.push, track: io.track });
91328
+ const ran = await runAkb(deps.akb, full, { cwd: ws.cwd, board: ws.board, task, lang: job.lang, show: log?.push, track: io.track });
91311
91329
  log?.end();
91312
91330
  return ran;
91313
91331
  };
91314
91332
  }
91315
91333
  async function setUp(job, ws, deps, io) {
91316
- const akb = boardAkb(ws, deps, io);
91334
+ const akb = boardAkb(job, ws, deps, io);
91317
91335
  const runtime = job.runtime;
91318
91336
  const missing = unavailable(runtime, await deps.runtimes());
91319
91337
  if (missing) return missing;
91320
- if (!fs21.existsSync(path23.join(ws.board, "config.md"))) {
91338
+ if (!fs22.existsSync(path24.join(ws.board, "config.md"))) {
91321
91339
  const init = await akb(["raw", "init"]);
91322
91340
  if (init.code !== 0) return refusal2(init);
91323
91341
  for (const step of SETUP_STEPS) await akb(["raw", "setup-done", step]);
91324
91342
  }
91325
- if (SKILL_FOLDERS.some((f2) => !fs21.existsSync(path23.join(ws.cwd, f2, "SKILL.md")))) {
91343
+ if (SKILL_FOLDERS.some((f2) => !fs22.existsSync(path24.join(ws.cwd, f2, "SKILL.md")))) {
91326
91344
  const skill = await runAkb(deps.akb, ["skill", "install", "--dir", ws.cwd], { cwd: ws.cwd, track: io.track });
91327
91345
  if (skill.code !== 0) return refusal2(skill);
91328
91346
  }
@@ -91331,7 +91349,7 @@ async function setUp(job, ws, deps, io) {
91331
91349
  const used = await akb(["agent", "use", runtime]);
91332
91350
  if (used.code !== 0) return refusal2(used);
91333
91351
  const servers = mcpServersOf(ws);
91334
- const mcpFile = path23.join(ws.board, ".sync", `${ws.task}.mcp.json`);
91352
+ const mcpFile = path24.join(ws.board, ".sync", `${ws.task}.mcp.json`);
91335
91353
  const takes = new Set(settingKeys(runtime));
91336
91354
  const given = job.settings ?? {};
91337
91355
  const values = { ...given, model: job.model ?? "" };
@@ -91363,7 +91381,7 @@ async function runReview(job, ws, tasks, deps, io) {
91363
91381
  const since = Date.now();
91364
91382
  const failed = await setUp(job, ws, deps, io);
91365
91383
  if (failed) return { ok: false, reason: failed };
91366
- const akb = boardAkb(ws, deps, io);
91384
+ const akb = boardAkb(job, ws, deps, io);
91367
91385
  const ran = await akb(["review-memory", "--task", ...tasks, "--follow", "--events", "--json"], true);
91368
91386
  if (io.lost()) return { ok: false, reason: "" };
91369
91387
  const answer = answerOf2(ran);
@@ -91378,10 +91396,11 @@ async function reviewRejections(job, ws, deps, io) {
91378
91396
  if (!read.ok) return { runs: [], failure: read.error };
91379
91397
  if (!read.value.tasks.length && !read.value.triage.length) return { runs: [] };
91380
91398
  const since = Date.now();
91381
- const akb = boardAkb(ws, deps, io);
91399
+ const akb = boardAkb(job, ws, deps, io);
91382
91400
  const laid = layOut(ws.board, read.value);
91383
91401
  const ran = await akb(["review-dismissals", "--all", "--follow", "--events", "--json"], true);
91384
91402
  clearLaid(ws.board);
91403
+ resetSorted(ws);
91385
91404
  const runs = (answerOf2(await akb(["run", "list", "--all", "--json"]))?.runs ?? []).filter((r2) => (r2.startedAt ?? 0) >= since);
91386
91405
  if (io.lost()) return { runs };
91387
91406
  if (ran.code !== 0) return { runs, failure: refusal2(ran) };
@@ -91407,7 +91426,7 @@ async function runAgent(job, ws, deps, io) {
91407
91426
  }
91408
91427
  if (name === "reflect" && !tasks?.length) return { ok: true, report: {} };
91409
91428
  const args = workflow ? ["agent", "run", workflowName(workflow), name] : name === "reflect" ? ["reflect", "--cards", ...tasks.map((t2) => String(t2.number))] : [name];
91410
- const akb = boardAkb(ws, deps, io, ws.cloudTask ?? void 0);
91429
+ const akb = boardAkb(job, ws, deps, io, ws.cloudTask ?? void 0);
91411
91430
  await akb(["run", "list", "--all", "--json"]);
91412
91431
  const ran = await akb([...args, "--follow", "--events", "--json"], true);
91413
91432
  if (io.lost()) return { ok: false, reason: "" };
@@ -91418,15 +91437,27 @@ async function runAgent(job, ws, deps, io) {
91418
91437
  }
91419
91438
  function writeTranscript(job, dir) {
91420
91439
  if (!job.transcript) return "";
91421
- const file2 = path23.join(dir, "discussion.md");
91422
- fs21.mkdirSync(dir, { recursive: true });
91423
- fs21.writeFileSync(file2, `${job.transcript}
91440
+ const file2 = path24.join(dir, "discussion.md");
91441
+ fs22.mkdirSync(dir, { recursive: true });
91442
+ fs22.writeFileSync(file2, `${job.transcript}
91424
91443
  `);
91425
91444
  return file2;
91426
91445
  }
91446
+ function pictures(job, ws, id) {
91447
+ const dir = cardAssetsDir(ws, id);
91448
+ if (!job.attachments.length || !dir) return "";
91449
+ fs22.mkdirSync(dir, { recursive: true });
91450
+ return job.attachments.map((a3, i) => {
91451
+ const file2 = `${i + 1}-${path24.basename(a3.name).replace(/[^\w.-]+/g, "-")}`;
91452
+ fs22.writeFileSync(path24.join(dir, file2), Buffer.from(a3.content, "base64"));
91453
+ return `
91454
+ <Asset src=".assets/${id}/${file2}" label="${a3.name.replace(/["<>]/g, "") || file2}" />
91455
+ `;
91456
+ }).join("");
91457
+ }
91427
91458
  function cardFlags(ws, fields) {
91428
91459
  if (!fields) return [];
91429
- const open = (keys) => (keys ?? []).map((k) => Number(/(\d+)$/.exec(k)?.[1])).filter((n) => n > 0 && n !== ws.number && findCard(ws.board, n)?.startsWith(path23.join(ws.board, "todo") + path23.sep));
91460
+ const open = (keys) => (keys ?? []).map((k) => Number(/(\d+)$/.exec(k)?.[1])).filter((n) => n > 0 && n !== ws.number && findCard(ws.board, n)?.startsWith(path24.join(ws.board, "todo") + path24.sep));
91430
91461
  const lists = [["--modules", fields.modules ?? []], ["--related", open(fields.related)], ["--blocked-by", open(fields.blocked_by)]];
91431
91462
  return [
91432
91463
  ...fields.priority ? ["--priority", fields.priority] : [],
@@ -91438,7 +91469,7 @@ async function runFlow(job, ws, deps, io) {
91438
91469
  const { flow } = job;
91439
91470
  const since = Date.now();
91440
91471
  const fail = (reason) => ({ ok: false, reason });
91441
- const akb = boardAkb(ws, deps, io, ws.task);
91472
+ const akb = boardAkb(job, ws, deps, io, ws.task);
91442
91473
  const made = (ran) => {
91443
91474
  const answer = answerOf2(ran);
91444
91475
  return ran.code === 0 && answer?.id ? { ok: true, value: answer.id } : { ok: false, error: answer?.error?.message ?? refusal2(ran), code: answer?.error?.kind };
@@ -91460,13 +91491,13 @@ async function runFlow(job, ws, deps, io) {
91460
91491
  const placed = await placeDraft(ws, deps.api);
91461
91492
  if (!placed.ok) return fail(placed.error);
91462
91493
  }
91463
- const body = path23.join(ws.board, ".sync", `${ws.task}.request.md`);
91464
- fs21.mkdirSync(path23.dirname(body), { recursive: true });
91465
- fs21.writeFileSync(body, `${said.request || title}
91494
+ const body = path24.join(ws.board, ".sync", `${ws.task}.request.md`);
91495
+ fs22.mkdirSync(path24.dirname(body), { recursive: true });
91496
+ if (!ws.number) return fail("This task has no number yet.");
91497
+ fs22.writeFileSync(body, `${said.request || title}
91466
91498
  ${isBuilder(ws) ? `
91467
91499
  ${draftLine(ws)}
91468
- ` : ""}`);
91469
- if (!ws.number) return fail("This task has no number yet.");
91500
+ ` : ""}${pictures(job, ws, ws.number)}`);
91470
91501
  const created = made(await akb([
91471
91502
  "raw",
91472
91503
  "create",
@@ -91481,21 +91512,21 @@ ${draftLine(ws)}
91481
91512
  ...cardFlags(ws, flow.metadata),
91482
91513
  "--json"
91483
91514
  ]));
91484
- fs21.rmSync(body, { force: true });
91515
+ fs22.rmSync(body, { force: true });
91485
91516
  if (!created.ok) return fail(created.error);
91486
91517
  id = created.value;
91487
91518
  }
91488
91519
  if (!id) return fail("This task has no card on this computer.");
91489
91520
  const card = id;
91490
91521
  const key = workKey(ws, card);
91491
- const held3 = working.get(key) ?? 0;
91492
- working.set(key, held3 + 1);
91522
+ const held4 = working.get(key) ?? 0;
91523
+ working.set(key, held4 + 1);
91493
91524
  try {
91494
- if (!held3) await stopRuns(deps.akb, ws, card, 0, deps.stopMs);
91525
+ if (!held4) await stopRuns(deps.akb, ws, card, 0, deps.stopMs);
91495
91526
  if (io.lost()) return fail("");
91496
91527
  return await workOn(card);
91497
91528
  } finally {
91498
- fs21.rmSync(path23.join(ws.board, ".sync", `${ws.task}.discussion`), { recursive: true, force: true });
91529
+ fs22.rmSync(path24.join(ws.board, ".sync", `${ws.task}.discussion`), { recursive: true, force: true });
91499
91530
  const left = working.get(key) - 1;
91500
91531
  if (left) working.set(key, left);
91501
91532
  else working.delete(key);
@@ -91533,7 +91564,7 @@ ${draftLine(ws)}
91533
91564
  }
91534
91565
  function carryArgs(verb) {
91535
91566
  if (!["refine", "resolve", "revise"].includes(verb)) return [];
91536
- const transcript = writeTranscript(job, path23.join(ws.board, ".sync", `${ws.task}.discussion`));
91567
+ const transcript = writeTranscript(job, path24.join(ws.board, ".sync", `${ws.task}.discussion`));
91537
91568
  return [
91538
91569
  ...job.resume ? ["--session", job.resume, ...job.fork ? ["--fork"] : []] : [],
91539
91570
  ...transcript ? ["--transcript", transcript] : []
@@ -91543,16 +91574,16 @@ ${draftLine(ws)}
91543
91574
 
91544
91575
  // src/lock.ts
91545
91576
  import crypto3 from "node:crypto";
91546
- import fs22 from "node:fs";
91577
+ import fs23 from "node:fs";
91547
91578
  import net from "node:net";
91548
- import path24 from "node:path";
91579
+ import path25 from "node:path";
91549
91580
  var RETRY_MS = 5e3;
91550
91581
  var KIND_MS = 1e3;
91551
91582
  var HOLDERS = ["claude-code", "codex", "terminal", "desktop"];
91552
91583
  function lockPath() {
91553
91584
  const home4 = runnerHome();
91554
91585
  if (process.platform === "win32") return `\\\\.\\pipe\\wildcrane-${crypto3.createHash("sha256").update(home4).digest("hex").slice(0, 16)}`;
91555
- return path24.join(home4, "runner.sock");
91586
+ return path25.join(home4, "runner.sock");
91556
91587
  }
91557
91588
  function holdMachine(kind, onHeld, onWaiting) {
91558
91589
  const where = lockPath();
@@ -91567,7 +91598,7 @@ function holdMachine(kind, onHeld, onWaiting) {
91567
91598
  const attempt = () => {
91568
91599
  timer = null;
91569
91600
  if (closed) return;
91570
- if (process.platform !== "win32") fs22.mkdirSync(path24.dirname(where), { recursive: true, mode: 448 });
91601
+ if (process.platform !== "win32") fs23.mkdirSync(path25.dirname(where), { recursive: true, mode: 448 });
91571
91602
  const s = net.createServer((peer) => {
91572
91603
  peers.add(peer);
91573
91604
  peer.on("error", () => {
@@ -91615,7 +91646,7 @@ function holdMachine(kind, onHeld, onWaiting) {
91615
91646
  later(0);
91616
91647
  });
91617
91648
  removeIfStill.once("error", () => {
91618
- fs22.rmSync(where, { force: true });
91649
+ fs23.rmSync(where, { force: true });
91619
91650
  later(50 + Math.random() * 200);
91620
91651
  });
91621
91652
  return;
@@ -91644,13 +91675,13 @@ function holdMachine(kind, onHeld, onWaiting) {
91644
91675
 
91645
91676
  // src/jobs.ts
91646
91677
  import { spawn as spawn3 } from "node:child_process";
91647
- import fs24 from "node:fs";
91648
- import path26 from "node:path";
91678
+ import fs25 from "node:fs";
91679
+ import path27 from "node:path";
91649
91680
 
91650
91681
  // src/ideas.ts
91651
- import fs23 from "node:fs";
91652
- import path25 from "node:path";
91653
- var ideasFileOf = (job) => path25.join(runnerHome(), "ideas", `${job.id}.json`);
91682
+ import fs24 from "node:fs";
91683
+ import path26 from "node:path";
91684
+ var ideasFileOf = (job) => path26.join(runnerHome(), "ideas", `${job.id}.json`);
91654
91685
  async function writeIdeas(job, list) {
91655
91686
  const workflows = [];
91656
91687
  let after = null;
@@ -91661,18 +91692,18 @@ async function writeIdeas(job, list) {
91661
91692
  after = page.value.next;
91662
91693
  } while (after);
91663
91694
  const file2 = ideasFileOf(job);
91664
- fs23.mkdirSync(path25.dirname(file2), { recursive: true });
91665
- fs23.writeFileSync(file2, `${JSON.stringify({ workflows, ideas: job.discussion.ideas }, null, 2)}
91695
+ fs24.mkdirSync(path26.dirname(file2), { recursive: true });
91696
+ fs24.writeFileSync(file2, `${JSON.stringify({ workflows, ideas: job.discussion.ideas }, null, 2)}
91666
91697
  `);
91667
91698
  return { file: file2 };
91668
91699
  }
91669
91700
  function readIdeas(file2) {
91670
91701
  try {
91671
- return JSON.parse(fs23.readFileSync(file2, "utf8")).ideas;
91702
+ return JSON.parse(fs24.readFileSync(file2, "utf8")).ideas;
91672
91703
  } catch {
91673
91704
  return void 0;
91674
91705
  } finally {
91675
- fs23.rmSync(file2, { force: true });
91706
+ fs24.rmSync(file2, { force: true });
91676
91707
  }
91677
91708
  }
91678
91709
 
@@ -91705,32 +91736,32 @@ var defaultDeps = (machineId2) => ({
91705
91736
  akb: bundledAkb(),
91706
91737
  runtimes: detectRuntimes
91707
91738
  });
91708
- var ownFolder = () => path26.join(runnerHome(), "work");
91739
+ var ownFolder = () => path27.join(runnerHome(), "work");
91709
91740
  function folderFor(job) {
91710
91741
  if (!job.projectDir) {
91711
- const cwd = path26.join(ownFolder(), job.id);
91712
- fs24.mkdirSync(cwd, { recursive: true });
91742
+ const cwd = path27.join(ownFolder(), job.id);
91743
+ fs25.mkdirSync(cwd, { recursive: true });
91713
91744
  return { cwd };
91714
91745
  }
91715
91746
  const real = realpath4(job.projectDir);
91716
- if (real && allowedProjects().some((root) => real === root || real.startsWith(root + path26.sep))) return { cwd: real };
91747
+ if (real && allowedProjects().some((root) => real === root || real.startsWith(root + path27.sep))) return { cwd: real };
91717
91748
  return { refused: `This Runner is not allowed to work in ${job.projectDir}.` };
91718
91749
  }
91719
91750
  function realpath4(p2) {
91720
91751
  try {
91721
- return fs24.realpathSync(p2);
91752
+ return fs25.realpathSync(p2);
91722
91753
  } catch {
91723
91754
  return null;
91724
91755
  }
91725
91756
  }
91726
- var attachmentsOf = (job) => path26.join(runnerHome(), "attachments", job.id);
91757
+ var attachmentsOf = (job) => path27.join(runnerHome(), "attachments", job.id);
91727
91758
  function writeAttachments(job) {
91728
91759
  if (!job.attachments.length) return "";
91729
91760
  const dir = attachmentsOf(job);
91730
- fs24.mkdirSync(dir, { recursive: true });
91761
+ fs25.mkdirSync(dir, { recursive: true });
91731
91762
  const files = job.attachments.map((a3) => {
91732
- const file2 = path26.join(dir, path26.basename(a3.name));
91733
- fs24.writeFileSync(file2, Buffer.from(a3.content, "base64"));
91763
+ const file2 = path27.join(dir, path27.basename(a3.name));
91764
+ fs25.writeFileSync(file2, Buffer.from(a3.content, "base64"));
91734
91765
  return file2;
91735
91766
  });
91736
91767
  return `
@@ -91928,12 +91959,12 @@ async function runJob(id, deps, track = () => {
91928
91959
  const claim = await deps.api.claimJob(deps.machineId, id);
91929
91960
  if (!claim.ok || !claim.value.claimed) return;
91930
91961
  const job = claim.value.job;
91931
- const held3 = [];
91962
+ const held4 = [];
91932
91963
  try {
91933
- await runClaimed(job, deps, track, (dir) => held3.push(hold(dir)));
91964
+ await runClaimed(job, deps, track, (dir) => held4.push(hold(dir)));
91934
91965
  } finally {
91935
- for (const release2 of held3) release2();
91936
- fs24.rmSync(attachmentsOf(job), { recursive: true, force: true });
91966
+ for (const release2 of held4) release2();
91967
+ fs25.rmSync(attachmentsOf(job), { recursive: true, force: true });
91937
91968
  }
91938
91969
  }
91939
91970
  async function runClaimed(job, deps, track, keep) {
@@ -91983,9 +92014,9 @@ async function runClaimed(job, deps, track, keep) {
91983
92014
 
91984
92015
  This task came out of a discussion. Read it for what the card leaves out: ${file2}` : "";
91985
92016
  const planned = (resume, fork, said2 = "") => {
91986
- let p2 = deps.plan(job.runtime, prompt + said2, cwd, resume, job.model, settingsOf(job), fork);
91987
- if (ws) p2 = { ...p2, env: { ...p2.env, ...akbEnv(deps.akb, ws.board, ws.task) } };
91988
- if (ideas) p2 = { ...p2, env: { ...p2.env, ...akbEnv(deps.akb, discussed), KANBAN_IDEAS: ideas } };
92017
+ let p2 = deps.plan(job.runtime, job.lang ? inLanguage(prompt + said2, job.lang) : prompt + said2, cwd, resume, job.model, settingsOf(job), fork);
92018
+ if (ws) p2 = { ...p2, env: { ...p2.env, ...akbEnv(deps.akb, ws.board, ws.task, job.lang) } };
92019
+ if (ideas) p2 = { ...p2, env: { ...p2.env, ...akbEnv(deps.akb, discussed, void 0, job.lang), KANBAN_IDEAS: ideas } };
91989
92020
  return p2;
91990
92021
  };
91991
92022
  const carried = !!job.resume && (!job.fork || forks(job.runtime));
@@ -92043,9 +92074,9 @@ This task came out of a discussion. Read it for what the card leaves out: ${file
92043
92074
  stop(child);
92044
92075
  await stream.end();
92045
92076
  if (stream.lost()) return;
92046
- const ok2 = end.ok || stream.asked();
92077
+ const ok = end.ok || stream.asked();
92047
92078
  const said2 = told(stream.asked() ? cutShort(report(plan3, end), stream.said()) : report(plan3, end));
92048
- if (!ok2 || !ws) return finish(deps, id, lease, ok2 ? "done" : "failed", ok2 ? "" : end.error ?? "", said2);
92079
+ if (!ok || !ws) return finish(deps, id, lease, ok ? "done" : "failed", ok ? "" : end.error ?? "", said2);
92049
92080
  return sendBack(deps, id, lease, ws, said2, () => keepChat(job, said2.reply));
92050
92081
  }
92051
92082
  const printed = async (plan3) => {
@@ -92116,11 +92147,11 @@ var stop = (child) => {
92116
92147
  setTimeout(() => child.kill("SIGKILL"), KILL_GRACE_MS).unref();
92117
92148
  };
92118
92149
  var wait2 = (ms2) => new Promise((resolve2) => setTimeout(resolve2, ms2));
92119
- var held2 = (deps, lease) => Date.now() - lease.at < deps.leaseMs;
92150
+ var held3 = (deps, lease) => Date.now() - lease.at < deps.leaseMs;
92120
92151
  async function whileOffline(deps, id, lease, attempt) {
92121
92152
  for (; ; ) {
92122
92153
  const out = await attempt();
92123
- if (!("offline" in out && out.offline) || !held2(deps, lease)) return out;
92154
+ if (!("offline" in out && out.offline) || !held3(deps, lease)) return out;
92124
92155
  await wait2(deps.retryMs);
92125
92156
  const renewed = await deps.api.renewJob(deps.machineId, id);
92126
92157
  if (renewed.ok && renewed.value.renewed) lease.at = Date.now();
@@ -92167,8 +92198,8 @@ async function runTest(job, deps) {
92167
92198
  const report2 = (await deps.runtimes()).find((r2) => r2.name === job.runtime);
92168
92199
  if (!report2?.installed) return finish2("failed", "not_installed");
92169
92200
  if (report2.loggedIn === false) return finish2("failed", "signed_out");
92170
- const cwd = path26.join(ownFolder(), "test");
92171
- fs24.mkdirSync(cwd, { recursive: true });
92201
+ const cwd = path27.join(ownFolder(), "test");
92202
+ fs25.mkdirSync(cwd, { recursive: true });
92172
92203
  const run2 = deps.plan(job.runtime, job.prompt, cwd, null, job.model, settingsOf(job));
92173
92204
  const startedAt = Date.now();
92174
92205
  if (run2.converse) {
@@ -92320,7 +92351,6 @@ function keepPresence(machineId2, pingMs = PING_MS) {
92320
92351
  var HEARTBEAT_MS2 = 5 * 6e4;
92321
92352
  var POLL_MS = 6e4;
92322
92353
  var BACKOFF_MS3 = [1e3, 2e3, 5e3, 1e4, 3e4];
92323
- var MAX_RUNNING = 2;
92324
92354
  function startRunner(options) {
92325
92355
  let registration = null;
92326
92356
  let connected = false;
@@ -92394,8 +92424,8 @@ function startRunner(options) {
92394
92424
  if (closed) return;
92395
92425
  if (!answer.ok) {
92396
92426
  if (answer.code === "runner_elsewhere") {
92397
- const held3 = await readRunner();
92398
- return finish2({ reason: "elsewhere", machine: held3.ok && held3.value.runner?.machineName || "?" });
92427
+ const held4 = await readRunner();
92428
+ return finish2({ reason: "elsewhere", machine: held4.ok && held4.value.runner?.machineName || "?" });
92399
92429
  }
92400
92430
  if (answer.code === "runner_outdated") return finish2({ reason: "outdated" });
92401
92431
  if (answer.code) return finish2({ reason: "refused", message: answer.error });
@@ -92454,7 +92484,7 @@ function startRunner(options) {
92454
92484
  await finishJob(registration.machineId, job.id, "failed", "The Runner restarted while this job was running.");
92455
92485
  continue;
92456
92486
  }
92457
- if (job.state !== "waiting" || running.has(job.id) || running.size >= MAX_RUNNING && !job.test) continue;
92487
+ if (job.state !== "waiting" || running.has(job.id)) continue;
92458
92488
  start(job.id);
92459
92489
  }
92460
92490
  } finally {
@@ -92526,8 +92556,8 @@ function startRunner(options) {
92526
92556
 
92527
92557
  // src/desktop.ts
92528
92558
  import { spawnSync as spawnSync4 } from "node:child_process";
92529
- import fs25 from "node:fs";
92530
- import path27 from "node:path";
92559
+ import fs26 from "node:fs";
92560
+ import path28 from "node:path";
92531
92561
  import readline from "node:readline";
92532
92562
 
92533
92563
  // src/signin.ts
@@ -92535,34 +92565,56 @@ import { spawn as spawn4 } from "node:child_process";
92535
92565
  import crypto4 from "node:crypto";
92536
92566
  import http from "node:http";
92537
92567
  var WAIT_MS = 10 * 60 * 1e3;
92538
- var PAGE = (ok2) => `<!doctype html><meta charset="utf-8"><title>WildCrane</title><body style="font:16px system-ui;margin:4em;text-align:center">${ok2 ? "\u5DF2\u767B\u5F55\uFF0C\u53EF\u4EE5\u5173\u95ED\u6B64\u9875\u9762\u3002<br>Signed in \u2014 you can close this page." : "\u767B\u5F55\u672A\u5B8C\u6210\u3002<br>Sign-in did not finish."}</body>`;
92568
+ var CRANE = "M2 55.75C2 55.69 2.69 55.09 3.55 54.37L5.09 53.1L6.61 53.1L8.13 53.1L12.49 49.87C14.9 48.07 16.83 46.58 16.77 46.53C16.75 46.47 15.56 46.64 14.15 46.89C12.74 47.13 11.55 47.3 11.53 47.24C11.47 47.19 12.02 46.22 12.71 45.06L14.01 42.96L18.21 41.34C20.53 40.45 22.41 39.65 22.41 39.57C22.41 39.49 21.27 38.55 19.92 37.5C15.92 34.4 13.13 31.31 10.86 27.47L10.01 26.01L10.53 26.18C10.84 26.26 12.96 27.2 15.28 28.25C17.6 29.32 19.53 30.12 19.59 30.07C19.64 30.01 17.68 28.69 15.25 27.11C12.8 25.57 10.56 23.97 10.31 23.58C9.15 21.95 7.25 17.5 7.25 16.46C7.25 16.26 10.01 17.95 13.38 20.18C16.77 22.45 19.73 24.38 19.95 24.49C20.42 24.74 20.25 24.57 13.9 19.02L9.18 14.88L8.6 13.36C7.72 10.96 6.97 7.54 6.97 5.77L6.97 4.14L9.4 6.46C12.66 9.61 15.56 12.01 23.57 18.25C27.32 21.18 30.5 23.72 30.64 23.91C30.8 24.08 31.68 26.51 32.6 29.3L34.28 34.35L35.72 35.65C37.54 37.3 37.98 37.47 36.85 36.09L35.96 35.01L37.12 34.71C39.11 34.21 40.16 33.52 42.54 31.12L44.8 28.8L46.02 28.96C46.71 29.07 47.56 29.07 47.95 28.96L48.67 28.8L48.67 28.25L48.67 27.69L49.27 27.69C49.63 27.69 50.1 27.58 50.32 27.42L50.71 27.17L51.01 27.42C51.18 27.56 52.78 27.86 54.58 28.08C56.37 28.3 57.86 28.52 57.94 28.58C58 28.63 56.73 28.85 55.13 29.05C53.53 29.24 50.96 29.77 49.44 30.21C47.92 30.65 46.57 31.01 46.43 31.01C46.29 31.01 44.22 32.97 41.85 35.37C37.57 39.62 34.42 42.14 30.83 44.15L29.14 45.09L25.97 45.73L22.77 46.39L14.59 51.11L6.42 55.86L4.21 55.86C2.99 55.86 2 55.8 2 55.75Z";
92569
+ var CREST = "M44.97 27.45C44.61 26.89 46.57 25.76 47.87 25.76C48.72 25.76 50.6 26.7 50.6 27.14C50.6 27.64 45.27 27.97 44.97 27.45Z";
92570
+ var COPY = {
92571
+ zh: {
92572
+ ok: ["\u5DF2\u767B\u5F55 WildCrane", "\u53EF\u4EE5\u5173\u95ED\u6B64\u9875\u9762\uFF0C\u56DE\u5230 WildCrane \u7EE7\u7EED\u3002"],
92573
+ denied: ["\u767B\u5F55\u672A\u5B8C\u6210", "\u4F60\u53D6\u6D88\u4E86 GitHub \u6388\u6743\u3002\u8BF7\u56DE\u5230 WildCrane \u91CD\u65B0\u767B\u5F55\u3002"],
92574
+ failed: ["\u767B\u5F55\u672A\u5B8C\u6210", "\u767B\u5F55\u65F6\u51FA\u4E86\u70B9\u95EE\u9898\u3002\u8BF7\u56DE\u5230 WildCrane \u91CD\u8BD5\u3002"]
92575
+ },
92576
+ en: {
92577
+ ok: ["Signed in to WildCrane", "You can close this page and return to WildCrane."],
92578
+ denied: ["Sign-in didn't finish", "GitHub access was cancelled. Return to WildCrane to sign in again."],
92579
+ failed: ["Sign-in didn't finish", "Something went wrong while signing in. Return to WildCrane to try again."]
92580
+ }
92581
+ };
92582
+ var langOf = (accept) => /^\s*zh\b/i.test(accept ?? "") ? "zh" : "en";
92583
+ var PAGE = (outcome, lang) => {
92584
+ const [title, body] = COPY[lang][outcome];
92585
+ const ok = outcome === "ok";
92586
+ const icon = ok ? '<polyline points="20 6 9 17 4 12"/>' : '<path d="M18 6 6 18M6 6l12 12"/>';
92587
+ return `<!doctype html><html lang="${lang === "zh" ? "zh-CN" : "en"}"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>${title} \xB7 WildCrane</title><style>*{margin:0;box-sizing:border-box}body{display:flex;flex-direction:column;min-height:100dvh;background:#fff;color:#24231f;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}header{padding:16px 36px 0}main{flex:1;display:flex;align-items:center;justify-content:center;padding:0 36px 64px;text-align:center}.icon{display:flex;margin:0 auto;width:44px;height:44px;border-radius:50%;align-items:center;justify-content:center;background:${ok ? "#e4f3ea" : "#f7ddce"};color:${ok ? "#2f6b46" : "#b83a12"}}h1{margin-top:16px;font-size:24px;font-weight:850;line-height:1.25;letter-spacing:-0.02em}p{margin:8px auto 0;max-width:38ch;font-size:13px;line-height:19px;color:#565550}</style><header><svg viewBox="2 4 56 52" width="23.7" height="22" aria-hidden="true"><path d="${CRANE}" fill="#24231f"/><path d="${CREST}" fill="#dd4f1e"/></svg></header><main><div><span class="icon"><svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${icon}</svg></span><h1>${title}</h1><p>${body}</p></div></main></html>`;
92588
+ };
92539
92589
  async function signIn(options = {}) {
92540
92590
  const verifier = base64url(crypto4.randomBytes(32));
92541
92591
  const challenge = base64url(crypto4.createHash("sha256").update(verifier).digest());
92542
92592
  let finish2 = () => {
92543
92593
  };
92544
- const answered = new Promise((resolve2) => {
92545
- finish2 = (code2, failure2) => resolve2({ code: code2, failure: failure2 });
92546
- });
92547
- const server = http.createServer((req, res) => {
92594
+ const answered = new Promise((resolve2) => finish2 = resolve2);
92595
+ let answering = false;
92596
+ const server = http.createServer(async (req, res) => {
92548
92597
  const asked = new URL(req.url ?? "/", "http://127.0.0.1");
92549
- if (asked.pathname !== "/signed-in") {
92598
+ if (asked.pathname !== "/signed-in" || answering) {
92550
92599
  res.writeHead(404).end();
92551
92600
  return;
92552
92601
  }
92602
+ answering = true;
92553
92603
  const params = asked.searchParams;
92554
- const code2 = params.get("code");
92555
- res.writeHead(200, { "content-type": "text/html; charset=utf-8" });
92556
- res.end(PAGE(!!code2));
92604
+ const code = params.get("code");
92557
92605
  const error = params.get("error");
92558
- finish2(code2, code2 ? void 0 : {
92606
+ const failure2 = code ? await exchange(code, verifier) : {
92559
92607
  why: error === "access_denied" ? "denied" : "other",
92560
92608
  detail: params.get("error_description") || error || "no code came back"
92561
- });
92609
+ };
92610
+ const outcome = !failure2 ? "ok" : failure2.why === "denied" ? "denied" : "failed";
92611
+ res.writeHead(200, { "content-type": "text/html; charset=utf-8" });
92612
+ res.end(PAGE(outcome, langOf(req.headers["accept-language"])));
92613
+ finish2(failure2);
92562
92614
  });
92563
92615
  await new Promise((resolve2) => server.listen(0, "127.0.0.1", resolve2));
92564
92616
  const { port } = server.address();
92565
- const { supabaseUrl, anonKey } = cloudEndpoints();
92617
+ const { supabaseUrl } = cloudEndpoints();
92566
92618
  const url = new URL(`${supabaseUrl}/auth/v1/authorize`);
92567
92619
  url.searchParams.set("provider", "github");
92568
92620
  url.searchParams.set("redirect_to", `http://127.0.0.1:${port}/signed-in`);
@@ -92572,14 +92624,17 @@ async function signIn(options = {}) {
92572
92624
  const onUrl = options.onUrl ?? ((u2) => status(t.signIn(u2)));
92573
92625
  onUrl(url.toString());
92574
92626
  openBrowser(url.toString());
92575
- const timer = setTimeout(() => finish2(null, { why: "timeout", detail: "timed out" }), WAIT_MS);
92576
- const cancel = () => finish2(null, { why: "cancelled", detail: "cancelled" });
92627
+ const timer = setTimeout(() => finish2({ why: "timeout", detail: "timed out" }), WAIT_MS);
92628
+ const cancel = () => finish2({ why: "cancelled", detail: "cancelled" });
92577
92629
  options.signal?.addEventListener("abort", cancel);
92578
- const { code, failure } = await answered;
92630
+ const failure = await answered;
92579
92631
  clearTimeout(timer);
92580
92632
  options.signal?.removeEventListener("abort", cancel);
92581
92633
  server.close();
92582
- if (!code) return failure ?? { why: "other", detail: "no code came back" };
92634
+ return failure;
92635
+ }
92636
+ async function exchange(code, verifier) {
92637
+ const { supabaseUrl, anonKey } = cloudEndpoints();
92583
92638
  let response;
92584
92639
  try {
92585
92640
  response = await fetch(`${supabaseUrl}/auth/v1/token?grant_type=pkce`, {
@@ -92590,7 +92645,7 @@ async function signIn(options = {}) {
92590
92645
  } catch (e2) {
92591
92646
  return { why: "unreachable", detail: e2 instanceof Error ? e2.message : String(e2) };
92592
92647
  }
92593
- const session = response.ok ? sessionFrom(await response.json()) : null;
92648
+ const session = response.ok ? sessionFrom(await response.json().catch(() => ({}))) : null;
92594
92649
  if (!session) return { why: "other", detail: `Cloud answered ${response.status}` };
92595
92650
  writeSession(session);
92596
92651
  return null;
@@ -92682,12 +92737,12 @@ async function runDesktop(tell2) {
92682
92737
  const readProfile2 = async () => {
92683
92738
  const session = readSession();
92684
92739
  const profile = await readProfile();
92685
- const held3 = profile.ok ? profile.value.session : {};
92740
+ const held4 = profile.ok ? profile.value.session : {};
92686
92741
  emit({
92687
92742
  type: "account",
92688
- name: held3.name || held3.handle || session?.name || session?.handle || "",
92689
- email: held3.email || session?.email || "",
92690
- avatar: held3.avatarUrl || session?.avatarUrl || ""
92743
+ name: held4.name || held4.handle || session?.name || session?.handle || "",
92744
+ email: held4.email || session?.email || "",
92745
+ avatar: held4.avatarUrl || session?.avatarUrl || ""
92691
92746
  });
92692
92747
  };
92693
92748
  const readPlan2 = async () => {
@@ -92756,8 +92811,8 @@ async function runDesktop(tell2) {
92756
92811
  const project = command.project;
92757
92812
  const why = refusal(command.path);
92758
92813
  if (why) return emit({ type: "folderRefused", why, project });
92759
- const real = fs25.realpathSync(command.path);
92760
- const added = await addFolder(id, path27.basename(real) || real, real, project);
92814
+ const real = fs26.realpathSync(command.path);
92815
+ const added = await addFolder(id, path28.basename(real) || real, real, project);
92761
92816
  if (!added.ok) {
92762
92817
  const taken = added.code === "folder_taken";
92763
92818
  return emit({ type: "folderRefused", why: taken ? "taken" : "failed", project, ...taken ? { taken: added.project } : {} });
@@ -92766,9 +92821,9 @@ async function runDesktop(tell2) {
92766
92821
  return readFolders();
92767
92822
  }
92768
92823
  case "removeFolder": {
92769
- const held3 = folders2.find((f2) => f2.project === command.project);
92824
+ const held4 = folders2.find((f2) => f2.project === command.project);
92770
92825
  const removed = await removeFolder(id, command.project);
92771
- if (removed.ok && held3) for (const dir of disallow(held3.path)) clearAkb(dir);
92826
+ if (removed.ok && held4) for (const dir of disallow(held4.path)) clearAkb(dir);
92772
92827
  return readFolders();
92773
92828
  }
92774
92829
  case "folderNotify":