wildcrane-runner 0.6.6 → 0.6.8
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/README.md +8 -2
- package/dist/akb/dist/kanban.mjs +2098 -2309
- package/dist/akb/package.json +1 -1
- package/dist/launcher.mjs +65 -17
- package/dist/runner.mjs +858 -482
- package/package.json +1 -1
package/dist/runner.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// wildcrane-runner 0.6.
|
|
1
|
+
// wildcrane-runner 0.6.8 — 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;
|
|
@@ -49,9 +49,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
49
49
|
mod
|
|
50
50
|
));
|
|
51
51
|
|
|
52
|
-
//
|
|
52
|
+
// node_modules/react/cjs/react.production.js
|
|
53
53
|
var require_react_production = __commonJS({
|
|
54
|
-
"
|
|
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
|
-
//
|
|
504
|
+
// node_modules/react/cjs/react.development.js
|
|
505
505
|
var require_react_development = __commonJS({
|
|
506
|
-
"
|
|
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
|
-
//
|
|
1501
|
+
// node_modules/react/index.js
|
|
1502
1502
|
var require_react = __commonJS({
|
|
1503
|
-
"
|
|
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
|
-
//
|
|
1513
|
+
// node_modules/react/cjs/react-jsx-runtime.production.js
|
|
1514
1514
|
var require_react_jsx_runtime_production = __commonJS({
|
|
1515
|
-
"
|
|
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
|
-
//
|
|
1543
|
+
// node_modules/react/cjs/react-jsx-runtime.development.js
|
|
1544
1544
|
var require_react_jsx_runtime_development = __commonJS({
|
|
1545
|
-
"
|
|
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
|
-
//
|
|
1814
|
+
// node_modules/react/jsx-runtime.js
|
|
1815
1815
|
var require_jsx_runtime = __commonJS({
|
|
1816
|
-
"
|
|
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
|
-
//
|
|
1826
|
+
// node_modules/react-dom/cjs/react-dom.production.js
|
|
1827
1827
|
var require_react_dom_production = __commonJS({
|
|
1828
|
-
"
|
|
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
|
-
//
|
|
1983
|
+
// node_modules/react-dom/cjs/react-dom.development.js
|
|
1984
1984
|
var require_react_dom_development = __commonJS({
|
|
1985
|
-
"
|
|
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
|
-
//
|
|
2238
|
+
// node_modules/react-dom/index.js
|
|
2239
2239
|
var require_react_dom = __commonJS({
|
|
2240
|
-
"
|
|
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
|
-
//
|
|
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
|
-
"
|
|
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
|
-
//
|
|
7515
|
+
// node_modules/react-dom/cjs/react-dom-server.node.production.js
|
|
7516
7516
|
var require_react_dom_server_node_production = __commonJS({
|
|
7517
|
-
"
|
|
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 crypto6 = __require("crypto");
|
|
@@ -7572,13 +7572,13 @@ var require_react_dom_server_node_production = __commonJS({
|
|
|
7572
7572
|
var target = currentView;
|
|
7573
7573
|
0 < writtenBytes && (target = currentView.subarray(writtenBytes));
|
|
7574
7574
|
target = textEncoder.encodeInto(chunk, target);
|
|
7575
|
-
var
|
|
7575
|
+
var read2 = target.read;
|
|
7576
7576
|
writtenBytes += target.written;
|
|
7577
|
-
|
|
7577
|
+
read2 < chunk.length && (writeToDestination(
|
|
7578
7578
|
destination,
|
|
7579
7579
|
currentView.subarray(0, writtenBytes)
|
|
7580
7580
|
), currentView = new Uint8Array(4096), writtenBytes = textEncoder.encodeInto(
|
|
7581
|
-
chunk.slice(
|
|
7581
|
+
chunk.slice(read2),
|
|
7582
7582
|
currentView
|
|
7583
7583
|
).written);
|
|
7584
7584
|
4096 === writtenBytes && (writeToDestination(destination, currentView), currentView = new Uint8Array(4096), writtenBytes = 0);
|
|
@@ -13686,9 +13686,9 @@ A.finished.finally(function(){document.__reactViewTransition===A&&(document.__re
|
|
|
13686
13686
|
}
|
|
13687
13687
|
});
|
|
13688
13688
|
|
|
13689
|
-
//
|
|
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
|
-
"
|
|
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
|
-
//
|
|
21199
|
+
// node_modules/react-dom/cjs/react-dom-server.node.development.js
|
|
21200
21200
|
var require_react_dom_server_node_development = __commonJS({
|
|
21201
|
-
"
|
|
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) {
|
|
@@ -21328,13 +21328,13 @@ var require_react_dom_server_node_development = __commonJS({
|
|
|
21328
21328
|
var target = currentView;
|
|
21329
21329
|
0 < writtenBytes && (target = currentView.subarray(writtenBytes));
|
|
21330
21330
|
target = textEncoder.encodeInto(chunk, target);
|
|
21331
|
-
var
|
|
21331
|
+
var read2 = target.read;
|
|
21332
21332
|
writtenBytes += target.written;
|
|
21333
|
-
|
|
21333
|
+
read2 < chunk.length && (writeToDestination(
|
|
21334
21334
|
destination,
|
|
21335
21335
|
currentView.subarray(0, writtenBytes)
|
|
21336
21336
|
), currentView = new Uint8Array(4096), writtenBytes = textEncoder.encodeInto(
|
|
21337
|
-
chunk.slice(
|
|
21337
|
+
chunk.slice(read2),
|
|
21338
21338
|
currentView
|
|
21339
21339
|
).written);
|
|
21340
21340
|
4096 === writtenBytes && (writeToDestination(destination, currentView), currentView = new Uint8Array(4096), writtenBytes = 0);
|
|
@@ -29495,9 +29495,9 @@ A.finished.finally(function(){document.__reactViewTransition===A&&(document.__re
|
|
|
29495
29495
|
}
|
|
29496
29496
|
});
|
|
29497
29497
|
|
|
29498
|
-
//
|
|
29498
|
+
// node_modules/react-dom/server.node.js
|
|
29499
29499
|
var require_server_node = __commonJS({
|
|
29500
|
-
"
|
|
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
|
-
//
|
|
29521
|
+
// node_modules/sucrase/dist/parser/tokenizer/keywords.js
|
|
29522
29522
|
var require_keywords = __commonJS({
|
|
29523
|
-
"
|
|
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
|
-
//
|
|
29614
|
+
// node_modules/sucrase/dist/parser/tokenizer/types.js
|
|
29615
29615
|
var require_types = __commonJS({
|
|
29616
|
-
"
|
|
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
|
-
//
|
|
30098
|
+
// node_modules/sucrase/dist/parser/tokenizer/state.js
|
|
30099
30099
|
var require_state = __commonJS({
|
|
30100
|
-
"
|
|
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
|
-
//
|
|
30239
|
+
// node_modules/sucrase/dist/parser/util/charcodes.js
|
|
30240
30240
|
var require_charcodes = __commonJS({
|
|
30241
|
-
"
|
|
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
|
-
//
|
|
30462
|
+
// node_modules/sucrase/dist/parser/traverser/base.js
|
|
30463
30463
|
var require_base = __commonJS({
|
|
30464
|
-
"
|
|
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
|
-
//
|
|
30525
|
+
// node_modules/sucrase/dist/parser/traverser/util.js
|
|
30526
30526
|
var require_util = __commonJS({
|
|
30527
|
-
"
|
|
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
|
-
//
|
|
30611
|
+
// node_modules/sucrase/dist/parser/util/whitespace.js
|
|
30612
30612
|
var require_whitespace = __commonJS({
|
|
30613
|
-
"
|
|
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
|
-
//
|
|
30666
|
+
// node_modules/sucrase/dist/parser/util/identifier.js
|
|
30667
30667
|
var require_identifier = __commonJS({
|
|
30668
|
-
"
|
|
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
|
-
//
|
|
30704
|
+
// node_modules/sucrase/dist/parser/tokenizer/readWordTree.js
|
|
30705
30705
|
var require_readWordTree = __commonJS({
|
|
30706
|
-
"
|
|
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
|
-
//
|
|
40013
|
+
// node_modules/sucrase/dist/parser/tokenizer/readWord.js
|
|
40014
40014
|
var require_readWord = __commonJS({
|
|
40015
|
-
"
|
|
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
|
-
//
|
|
40076
|
+
// node_modules/sucrase/dist/parser/tokenizer/index.js
|
|
40077
40077
|
var require_tokenizer = __commonJS({
|
|
40078
|
-
"
|
|
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
|
-
//
|
|
40830
|
+
// node_modules/sucrase/dist/util/getImportExportSpecifierInfo.js
|
|
40831
40831
|
var require_getImportExportSpecifierInfo = __commonJS({
|
|
40832
|
-
"
|
|
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
|
-
//
|
|
40884
|
+
// node_modules/sucrase/dist/parser/plugins/jsx/xhtml.js
|
|
40885
40885
|
var require_xhtml = __commonJS({
|
|
40886
|
-
"
|
|
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
|
-
//
|
|
41147
|
+
// node_modules/sucrase/dist/util/getJSXPragmaInfo.js
|
|
41148
41148
|
var require_getJSXPragmaInfo = __commonJS({
|
|
41149
|
-
"
|
|
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
|
-
//
|
|
41168
|
+
// node_modules/sucrase/dist/transformers/Transformer.js
|
|
41169
41169
|
var require_Transformer = __commonJS({
|
|
41170
|
-
"
|
|
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
|
-
//
|
|
41189
|
+
// node_modules/sucrase/dist/transformers/JSXTransformer.js
|
|
41190
41190
|
var require_JSXTransformer = __commonJS({
|
|
41191
|
-
"
|
|
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 [
|
|
41260
|
-
prefix += `var ${resolvedName} = require("${
|
|
41259
|
+
for (const [path36, resolvedName] of Object.entries(this.cjsAutomaticModuleNameResolutions)) {
|
|
41260
|
+
prefix += `var ${resolvedName} = require("${path36}");`;
|
|
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
|
|
41454
|
-
if (!this.cjsAutomaticModuleNameResolutions[
|
|
41455
|
-
this.cjsAutomaticModuleNameResolutions[
|
|
41453
|
+
const path36 = this.jsxImportSource + importPathSuffix;
|
|
41454
|
+
if (!this.cjsAutomaticModuleNameResolutions[path36]) {
|
|
41455
|
+
this.cjsAutomaticModuleNameResolutions[path36] = this.importProcessor.getFreeIdentifierForPath(path36);
|
|
41456
41456
|
}
|
|
41457
|
-
return `${this.cjsAutomaticModuleNameResolutions[
|
|
41457
|
+
return `${this.cjsAutomaticModuleNameResolutions[path36]}.${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
|
-
//
|
|
41790
|
+
// node_modules/sucrase/dist/util/getNonTypeIdentifiers.js
|
|
41791
41791
|
var require_getNonTypeIdentifiers = __commonJS({
|
|
41792
|
-
"
|
|
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
|
-
//
|
|
41831
|
+
// node_modules/sucrase/dist/CJSImportProcessor.js
|
|
41832
41832
|
var require_CJSImportProcessor = __commonJS({
|
|
41833
|
-
"
|
|
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 [
|
|
41893
|
+
for (const [path36, 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(
|
|
41903
|
+
this.importsToReplace.set(path36, "");
|
|
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 [
|
|
41911
|
+
for (const [path36, 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(
|
|
41921
|
+
this.importsToReplace.set(path36, `require('${path36}');`);
|
|
41922
41922
|
continue;
|
|
41923
41923
|
}
|
|
41924
|
-
const primaryImportName = this.getFreeIdentifierForPath(
|
|
41924
|
+
const primaryImportName = this.getFreeIdentifierForPath(path36);
|
|
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(
|
|
41929
|
+
secondaryImportName = wildcardNames.length > 0 ? wildcardNames[0] : this.getFreeIdentifierForPath(path36);
|
|
41930
41930
|
}
|
|
41931
|
-
let requireCode = `var ${primaryImportName} = require('${
|
|
41931
|
+
let requireCode = `var ${primaryImportName} = require('${path36}');`;
|
|
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(
|
|
41959
|
+
this.importsToReplace.set(path36, 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(
|
|
41969
|
-
const components =
|
|
41968
|
+
getFreeIdentifierForPath(path36) {
|
|
41969
|
+
const components = path36.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
|
|
42015
|
-
const importInfo = this.getImportInfo(
|
|
42014
|
+
const path36 = this.tokens.stringValueAtIndex(index);
|
|
42015
|
+
const importInfo = this.getImportInfo(path36);
|
|
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
|
|
42083
|
-
const importInfo = this.getImportInfo(
|
|
42082
|
+
const path36 = this.tokens.stringValueAtIndex(index);
|
|
42083
|
+
const importInfo = this.getImportInfo(path36);
|
|
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
|
|
42099
|
-
const importInfo = this.getImportInfo(
|
|
42098
|
+
const path36 = this.tokens.stringValueAtIndex(index);
|
|
42099
|
+
const importInfo = this.getImportInfo(path36);
|
|
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(
|
|
42140
|
-
const existingInfo = this.importInfoByPath.get(
|
|
42139
|
+
getImportInfo(path36) {
|
|
42140
|
+
const existingInfo = this.importInfoByPath.get(path36);
|
|
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(
|
|
42153
|
+
this.importInfoByPath.set(path36, 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
|
-
//
|
|
42199
|
+
// node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js
|
|
42200
42200
|
var require_sourcemap_codec_umd = __commonJS({
|
|
42201
|
-
"
|
|
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);
|
|
@@ -42699,9 +42699,9 @@ var require_sourcemap_codec_umd = __commonJS({
|
|
|
42699
42699
|
}
|
|
42700
42700
|
});
|
|
42701
42701
|
|
|
42702
|
-
//
|
|
42702
|
+
// node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js
|
|
42703
42703
|
var require_resolve_uri_umd = __commonJS({
|
|
42704
|
-
"
|
|
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
|
|
42734
|
-
return makeUrl("file:", "", match[1] || "", "", isAbsolutePath(
|
|
42733
|
+
const path36 = match[2];
|
|
42734
|
+
return makeUrl("file:", "", match[1] || "", "", isAbsolutePath(path36) ? path36 : "/" + path36, match[3] || "", match[4] || "");
|
|
42735
42735
|
}
|
|
42736
|
-
function makeUrl(scheme, user, host, port,
|
|
42736
|
+
function makeUrl(scheme, user, host, port, path36, query, hash) {
|
|
42737
42737
|
return {
|
|
42738
42738
|
scheme,
|
|
42739
42739
|
user,
|
|
42740
42740
|
host,
|
|
42741
42741
|
port,
|
|
42742
|
-
path:
|
|
42742
|
+
path: path36,
|
|
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(
|
|
42773
|
-
if (
|
|
42774
|
-
return
|
|
42775
|
-
const index =
|
|
42776
|
-
return
|
|
42772
|
+
function stripPathFilename(path36) {
|
|
42773
|
+
if (path36.endsWith("/.."))
|
|
42774
|
+
return path36;
|
|
42775
|
+
const index = path36.lastIndexOf("/");
|
|
42776
|
+
return path36.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
|
|
42814
|
+
let path36 = "";
|
|
42815
42815
|
for (let i = 1; i < pointer; i++) {
|
|
42816
|
-
|
|
42816
|
+
path36 += "/" + pieces[i];
|
|
42817
42817
|
}
|
|
42818
|
-
if (!
|
|
42819
|
-
|
|
42818
|
+
if (!path36 || addTrailingSlash && !path36.endsWith("/..")) {
|
|
42819
|
+
path36 += "/";
|
|
42820
42820
|
}
|
|
42821
|
-
url.path =
|
|
42821
|
+
url.path = path36;
|
|
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
|
|
42863
|
-
if (!
|
|
42862
|
+
const path36 = url.path.slice(1);
|
|
42863
|
+
if (!path36)
|
|
42864
42864
|
return queryHash || ".";
|
|
42865
|
-
if (isRelative(base || input) && !isRelative(
|
|
42866
|
-
return "./" +
|
|
42865
|
+
if (isRelative(base || input) && !isRelative(path36)) {
|
|
42866
|
+
return "./" + path36 + queryHash;
|
|
42867
42867
|
}
|
|
42868
|
-
return
|
|
42868
|
+
return path36 + 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
|
-
//
|
|
42881
|
+
// node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js
|
|
42882
42882
|
var require_trace_mapping_umd = __commonJS({
|
|
42883
|
-
"
|
|
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());
|
|
@@ -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(
|
|
42968
|
-
if (!
|
|
42969
|
-
const index =
|
|
42970
|
-
return
|
|
42967
|
+
function stripFilename(path36) {
|
|
42968
|
+
if (!path36) return "";
|
|
42969
|
+
const index = path36.lastIndexOf("/");
|
|
42970
|
+
return path36.slice(0, index + 1);
|
|
42971
42971
|
}
|
|
42972
42972
|
function resolver(mapUrl, sourceRoot) {
|
|
42973
42973
|
const from = stripFilename(mapUrl);
|
|
@@ -43418,9 +43418,9 @@ var require_trace_mapping_umd = __commonJS({
|
|
|
43418
43418
|
}
|
|
43419
43419
|
});
|
|
43420
43420
|
|
|
43421
|
-
//
|
|
43421
|
+
// node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js
|
|
43422
43422
|
var require_gen_mapping_umd = __commonJS({
|
|
43423
|
-
"
|
|
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());
|
|
@@ -43769,9 +43769,9 @@ var require_gen_mapping_umd = __commonJS({
|
|
|
43769
43769
|
}
|
|
43770
43770
|
});
|
|
43771
43771
|
|
|
43772
|
-
//
|
|
43772
|
+
// node_modules/sucrase/dist/computeSourceMap.js
|
|
43773
43773
|
var require_computeSourceMap = __commonJS({
|
|
43774
|
-
"
|
|
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
|
-
//
|
|
43835
|
+
// node_modules/sucrase/dist/HelperManager.js
|
|
43836
43836
|
var require_HelperManager = __commonJS({
|
|
43837
|
-
"
|
|
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
|
-
//
|
|
44024
|
+
// node_modules/sucrase/dist/identifyShadowedGlobals.js
|
|
44025
44025
|
var require_identifyShadowedGlobals = __commonJS({
|
|
44026
|
-
"
|
|
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
|
-
//
|
|
44093
|
+
// node_modules/sucrase/dist/util/getIdentifierNames.js
|
|
44094
44094
|
var require_getIdentifierNames = __commonJS({
|
|
44095
|
-
"
|
|
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
|
-
//
|
|
44112
|
+
// node_modules/sucrase/dist/NameManager.js
|
|
44113
44113
|
var require_NameManager = __commonJS({
|
|
44114
|
-
"
|
|
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
|
-
//
|
|
44151
|
+
// node_modules/ts-interface-checker/dist/util.js
|
|
44152
44152
|
var require_util2 = __commonJS({
|
|
44153
|
-
"
|
|
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(
|
|
44178
|
+
function VError2(path36, message) {
|
|
44179
44179
|
var _this = _super.call(this, message) || this;
|
|
44180
|
-
_this.path =
|
|
44180
|
+
_this.path = path36;
|
|
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(
|
|
44240
|
+
DetailContext2.prototype.getError = function(path36) {
|
|
44241
44241
|
var msgParts = [];
|
|
44242
44242
|
for (var i = this._propNames.length - 1; i >= 0; i--) {
|
|
44243
44243
|
var p2 = this._propNames[i];
|
|
44244
|
-
|
|
44244
|
+
path36 += typeof p2 === "number" ? "[" + p2 + "]" : p2 ? "." + p2 : "";
|
|
44245
44245
|
var m = this._messages[i];
|
|
44246
44246
|
if (m) {
|
|
44247
|
-
msgParts.push(
|
|
44247
|
+
msgParts.push(path36 + " " + m);
|
|
44248
44248
|
}
|
|
44249
44249
|
}
|
|
44250
|
-
return new VError(
|
|
44250
|
+
return new VError(path36, msgParts.join("; "));
|
|
44251
44251
|
};
|
|
44252
|
-
DetailContext2.prototype.getErrorDetail = function(
|
|
44252
|
+
DetailContext2.prototype.getErrorDetail = function(path36) {
|
|
44253
44253
|
var details = [];
|
|
44254
44254
|
for (var i = this._propNames.length - 1; i >= 0; i--) {
|
|
44255
44255
|
var p2 = this._propNames[i];
|
|
44256
|
-
|
|
44256
|
+
path36 += typeof p2 === "number" ? "[" + p2 + "]" : p2 ? "." + p2 : "";
|
|
44257
44257
|
var message = this._messages[i];
|
|
44258
44258
|
if (message) {
|
|
44259
|
-
details.push({ path:
|
|
44259
|
+
details.push({ path: path36, 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
|
-
//
|
|
44292
|
+
// node_modules/ts-interface-checker/dist/types.js
|
|
44293
44293
|
var require_types2 = __commonJS({
|
|
44294
|
-
"
|
|
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) {
|
|
@@ -44928,9 +44928,9 @@ var require_types2 = __commonJS({
|
|
|
44928
44928
|
}
|
|
44929
44929
|
});
|
|
44930
44930
|
|
|
44931
|
-
//
|
|
44931
|
+
// node_modules/ts-interface-checker/dist/index.js
|
|
44932
44932
|
var require_dist = __commonJS({
|
|
44933
|
-
"
|
|
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(
|
|
45073
|
-
this._path =
|
|
45072
|
+
Checker2.prototype.setReportedPath = function(path36) {
|
|
45073
|
+
this._path = path36;
|
|
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
|
-
//
|
|
45157
|
+
// node_modules/sucrase/dist/Options-gen-types.js
|
|
45158
45158
|
var require_Options_gen_types = __commonJS({
|
|
45159
|
-
"
|
|
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
|
-
//
|
|
45219
|
+
// node_modules/sucrase/dist/Options.js
|
|
45220
45220
|
var require_Options = __commonJS({
|
|
45221
|
-
"
|
|
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
|
-
//
|
|
45238
|
+
// node_modules/sucrase/dist/parser/traverser/lval.js
|
|
45239
45239
|
var require_lval = __commonJS({
|
|
45240
|
-
"
|
|
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
|
-
//
|
|
45385
|
+
// node_modules/sucrase/dist/parser/plugins/typescript.js
|
|
45386
45386
|
var require_typescript = __commonJS({
|
|
45387
|
-
"
|
|
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
|
-
//
|
|
46698
|
+
// node_modules/sucrase/dist/parser/plugins/jsx/index.js
|
|
46699
46699
|
var require_jsx = __commonJS({
|
|
46700
|
-
"
|
|
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
|
-
//
|
|
46968
|
+
// node_modules/sucrase/dist/parser/plugins/types.js
|
|
46969
46969
|
var require_types3 = __commonJS({
|
|
46970
|
-
"
|
|
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
|
-
//
|
|
47003
|
+
// node_modules/sucrase/dist/parser/traverser/expression.js
|
|
47004
47004
|
var require_expression = __commonJS({
|
|
47005
|
-
"
|
|
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
|
-
//
|
|
47743
|
+
// node_modules/sucrase/dist/parser/plugins/flow.js
|
|
47744
47744
|
var require_flow = __commonJS({
|
|
47745
|
-
"
|
|
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
|
-
//
|
|
48626
|
+
// node_modules/sucrase/dist/parser/traverser/statement.js
|
|
48627
48627
|
var require_statement = __commonJS({
|
|
48628
|
-
"
|
|
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
|
-
//
|
|
49623
|
+
// node_modules/sucrase/dist/parser/traverser/index.js
|
|
49624
49624
|
var require_traverser = __commonJS({
|
|
49625
|
-
"
|
|
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
|
-
//
|
|
49643
|
+
// node_modules/sucrase/dist/parser/index.js
|
|
49644
49644
|
var require_parser = __commonJS({
|
|
49645
|
-
"
|
|
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
|
-
//
|
|
49672
|
+
// node_modules/sucrase/dist/util/isAsyncOperation.js
|
|
49673
49673
|
var require_isAsyncOperation = __commonJS({
|
|
49674
|
-
"
|
|
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
|
-
//
|
|
49703
|
+
// node_modules/sucrase/dist/TokenProcessor.js
|
|
49704
49704
|
var require_TokenProcessor = __commonJS({
|
|
49705
|
-
"
|
|
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
|
-
//
|
|
49998
|
+
// node_modules/sucrase/dist/util/getClassInfo.js
|
|
49999
49999
|
var require_getClassInfo = __commonJS({
|
|
50000
|
-
"
|
|
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
|
-
//
|
|
50240
|
+
// node_modules/sucrase/dist/util/elideImportEquals.js
|
|
50241
50241
|
var require_elideImportEquals = __commonJS({
|
|
50242
|
-
"
|
|
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
|
-
//
|
|
50266
|
+
// node_modules/sucrase/dist/util/getDeclarationInfo.js
|
|
50267
50267
|
var require_getDeclarationInfo = __commonJS({
|
|
50268
|
-
"
|
|
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
|
-
//
|
|
50297
|
+
// node_modules/sucrase/dist/util/isExportFrom.js
|
|
50298
50298
|
var require_isExportFrom = __commonJS({
|
|
50299
|
-
"
|
|
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
|
-
//
|
|
50315
|
+
// node_modules/sucrase/dist/util/removeMaybeImportAttributes.js
|
|
50316
50316
|
var require_removeMaybeImportAttributes = __commonJS({
|
|
50317
|
-
"
|
|
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
|
-
//
|
|
50334
|
+
// node_modules/sucrase/dist/util/shouldElideDefaultExport.js
|
|
50335
50335
|
var require_shouldElideDefaultExport = __commonJS({
|
|
50336
|
-
"
|
|
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
|
-
//
|
|
50363
|
+
// node_modules/sucrase/dist/transformers/CJSImportTransformer.js
|
|
50364
50364
|
var require_CJSImportTransformer = __commonJS({
|
|
50365
|
-
"
|
|
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
|
|
50507
|
-
this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(
|
|
50508
|
-
this.tokens.appendCode(this.importProcessor.claimImportCode(
|
|
50506
|
+
const path36 = this.tokens.stringValue();
|
|
50507
|
+
this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(path36));
|
|
50508
|
+
this.tokens.appendCode(this.importProcessor.claimImportCode(path36));
|
|
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
|
|
51089
|
-
this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(
|
|
51088
|
+
const path36 = this.tokens.stringValue();
|
|
51089
|
+
this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(path36));
|
|
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
|
|
51104
|
-
this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(
|
|
51103
|
+
const path36 = this.tokens.stringValue();
|
|
51104
|
+
this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(path36));
|
|
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
|
-
//
|
|
51118
|
+
// node_modules/sucrase/dist/transformers/ESMImportTransformer.js
|
|
51119
51119
|
var require_ESMImportTransformer = __commonJS({
|
|
51120
|
-
"
|
|
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
|
-
//
|
|
51422
|
+
// node_modules/sucrase/dist/transformers/FlowTransformer.js
|
|
51423
51423
|
var require_FlowTransformer = __commonJS({
|
|
51424
|
-
"
|
|
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
|
-
//
|
|
51590
|
+
// node_modules/sucrase/dist/transformers/JestHoistTransformer.js
|
|
51591
51591
|
var require_JestHoistTransformer = __commonJS({
|
|
51592
|
-
"
|
|
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
|
-
//
|
|
51696
|
+
// node_modules/sucrase/dist/transformers/NumericSeparatorTransformer.js
|
|
51697
51697
|
var require_NumericSeparatorTransformer = __commonJS({
|
|
51698
|
-
"
|
|
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
|
-
//
|
|
51728
|
+
// node_modules/sucrase/dist/transformers/OptionalCatchBindingTransformer.js
|
|
51729
51729
|
var require_OptionalCatchBindingTransformer = __commonJS({
|
|
51730
|
-
"
|
|
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
|
-
//
|
|
51759
|
+
// node_modules/sucrase/dist/transformers/OptionalChainingNullishTransformer.js
|
|
51760
51760
|
var require_OptionalChainingNullishTransformer = __commonJS({
|
|
51761
|
-
"
|
|
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
|
-
//
|
|
51897
|
+
// node_modules/sucrase/dist/transformers/ReactDisplayNameTransformer.js
|
|
51898
51898
|
var require_ReactDisplayNameTransformer = __commonJS({
|
|
51899
|
-
"
|
|
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
|
-
//
|
|
52025
|
+
// node_modules/sucrase/dist/transformers/ReactHotLoaderTransformer.js
|
|
52026
52026
|
var require_ReactHotLoaderTransformer = __commonJS({
|
|
52027
|
-
"
|
|
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
|
-
//
|
|
52097
|
+
// node_modules/sucrase/dist/util/isIdentifier.js
|
|
52098
52098
|
var require_isIdentifier = __commonJS({
|
|
52099
|
-
"
|
|
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
|
-
//
|
|
52172
|
+
// node_modules/sucrase/dist/transformers/TypeScriptTransformer.js
|
|
52173
52173
|
var require_TypeScriptTransformer = __commonJS({
|
|
52174
|
-
"
|
|
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
|
-
//
|
|
52413
|
+
// node_modules/sucrase/dist/transformers/RootTransformer.js
|
|
52414
52414
|
var require_RootTransformer = __commonJS({
|
|
52415
|
-
"
|
|
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
|
-
//
|
|
52830
|
+
// node_modules/lines-and-columns/build/index.js
|
|
52831
52831
|
var require_build = __commonJS({
|
|
52832
|
-
"
|
|
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
|
-
//
|
|
52899
|
+
// node_modules/sucrase/dist/util/formatTokens.js
|
|
52900
52900
|
var require_formatTokens = __commonJS({
|
|
52901
|
-
"
|
|
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
|
-
//
|
|
52972
|
+
// node_modules/sucrase/dist/util/getTSImportedNames.js
|
|
52973
52973
|
var require_getTSImportedNames = __commonJS({
|
|
52974
|
-
"
|
|
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
|
-
//
|
|
53039
|
+
// node_modules/sucrase/dist/index.js
|
|
53040
53040
|
var require_dist2 = __commonJS({
|
|
53041
|
-
"
|
|
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
|
-
//
|
|
53154
|
+
// node_modules/tailwindcss/dist/chunk-DCG7AFIE.mjs
|
|
53155
53155
|
var o;
|
|
53156
53156
|
var init_chunk_DCG7AFIE = __esm({
|
|
53157
|
-
"
|
|
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
|
-
//
|
|
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
|
-
"
|
|
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
|
-
//
|
|
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
|
-
"
|
|
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
|
-
//
|
|
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
|
-
"
|
|
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
|
-
//
|
|
59013
|
+
// node_modules/tailwindcss/index.css
|
|
59014
59014
|
var tailwindcss_default;
|
|
59015
59015
|
var init_tailwindcss = __esm({
|
|
59016
|
-
"
|
|
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
|
-
//
|
|
59021
|
+
// node_modules/react-icons/lib/iconsManifest.mjs
|
|
59022
59022
|
var init_iconsManifest = __esm({
|
|
59023
|
-
"
|
|
59023
|
+
"node_modules/react-icons/lib/iconsManifest.mjs"() {
|
|
59024
59024
|
}
|
|
59025
59025
|
});
|
|
59026
59026
|
|
|
59027
|
-
//
|
|
59027
|
+
// node_modules/react-icons/lib/iconContext.mjs
|
|
59028
59028
|
var import_react, DefaultContext, IconContext;
|
|
59029
59029
|
var init_iconContext = __esm({
|
|
59030
|
-
"
|
|
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
|
-
//
|
|
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
|
-
"
|
|
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
|
-
//
|
|
59151
|
+
// node_modules/react-icons/lib/index.mjs
|
|
59152
59152
|
var init_lib2 = __esm({
|
|
59153
|
-
"
|
|
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
|
-
//
|
|
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
|
-
"
|
|
60313
|
+
"node_modules/react-icons/fi/index.mjs"() {
|
|
60314
60314
|
init_lib2();
|
|
60315
60315
|
}
|
|
60316
60316
|
});
|
|
60317
60317
|
|
|
60318
|
-
//
|
|
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
|
-
"
|
|
66767
|
+
"node_modules/react-icons/fa/index.mjs"() {
|
|
66768
66768
|
init_lib2();
|
|
66769
66769
|
}
|
|
66770
66770
|
});
|
|
66771
66771
|
|
|
66772
|
-
//
|
|
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
|
-
"
|
|
80561
|
+
"node_modules/react-icons/si/index.mjs"() {
|
|
80562
80562
|
init_lib2();
|
|
80563
80563
|
}
|
|
80564
80564
|
});
|
|
80565
80565
|
|
|
80566
|
-
//
|
|
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
|
-
"
|
|
80587
|
+
"node_modules/clsx/dist/clsx.mjs"() {
|
|
80588
80588
|
clsx_default = clsx;
|
|
80589
80589
|
}
|
|
80590
80590
|
});
|
|
80591
80591
|
|
|
80592
|
-
//
|
|
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
|
-
"
|
|
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,
|
|
80748
|
+
getPart = (classPartObject, path36) => {
|
|
80749
80749
|
let current = classPartObject;
|
|
80750
|
-
const parts =
|
|
80750
|
+
const parts = path36.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
|
-
//
|
|
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
|
-
"
|
|
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;
|
|
@@ -84435,11 +84435,12 @@ function status(line) {
|
|
|
84435
84435
|
}
|
|
84436
84436
|
|
|
84437
84437
|
// src/protocol.ts
|
|
84438
|
-
var VERSION = true ? "0.6.
|
|
84439
|
-
var AKB_VERSION = true ? "0.11.
|
|
84440
|
-
var AKB_CONTRACT = true ?
|
|
84438
|
+
var VERSION = true ? "0.6.8" : "0.0.0";
|
|
84439
|
+
var AKB_VERSION = true ? "0.11.7" : "0.0.0";
|
|
84440
|
+
var AKB_CONTRACT = true ? 3 : 0;
|
|
84441
84441
|
var EXIT_REFUSED = 10;
|
|
84442
84442
|
var EXIT_OUTDATED = 11;
|
|
84443
|
+
var EXIT_UPDATE = 12;
|
|
84443
84444
|
|
|
84444
84445
|
// src/runtimes.ts
|
|
84445
84446
|
import { spawn as spawn2 } from "node:child_process";
|
|
@@ -85291,10 +85292,10 @@ function findRollout(threadId) {
|
|
|
85291
85292
|
}
|
|
85292
85293
|
for (const name of names2) {
|
|
85293
85294
|
if (!name.startsWith("rollout-") || !name.endsWith(tail)) continue;
|
|
85294
|
-
const
|
|
85295
|
+
const path36 = join(dir, name);
|
|
85295
85296
|
try {
|
|
85296
|
-
const at2 = statSync(
|
|
85297
|
-
if (!newest2 || at2 > newest2.at) newest2 = { path:
|
|
85297
|
+
const at2 = statSync(path36).mtimeMs;
|
|
85298
|
+
if (!newest2 || at2 > newest2.at) newest2 = { path: path36, at: at2 };
|
|
85298
85299
|
} catch {
|
|
85299
85300
|
}
|
|
85300
85301
|
}
|
|
@@ -85302,11 +85303,11 @@ function findRollout(threadId) {
|
|
|
85302
85303
|
return newest2?.path;
|
|
85303
85304
|
}
|
|
85304
85305
|
function readCodexRunFacts(threadId) {
|
|
85305
|
-
const
|
|
85306
|
-
if (!
|
|
85306
|
+
const path36 = findRollout(threadId);
|
|
85307
|
+
if (!path36) return void 0;
|
|
85307
85308
|
let raw;
|
|
85308
85309
|
try {
|
|
85309
|
-
raw = readFileSync(
|
|
85310
|
+
raw = readFileSync(path36, "utf8");
|
|
85310
85311
|
} catch {
|
|
85311
85312
|
return void 0;
|
|
85312
85313
|
}
|
|
@@ -85414,8 +85415,8 @@ function renderCompleted(item) {
|
|
|
85414
85415
|
const changes = Array.isArray(item.changes) ? item.changes : [];
|
|
85415
85416
|
return changes.map((raw) => {
|
|
85416
85417
|
const change = obj(raw);
|
|
85417
|
-
const
|
|
85418
|
-
return
|
|
85418
|
+
const path36 = str(change.path);
|
|
85419
|
+
return path36 ? `\u23FA ${str(change.kind) || "change"}(${path36})
|
|
85419
85420
|
` : "";
|
|
85420
85421
|
}).join("");
|
|
85421
85422
|
}
|
|
@@ -85663,10 +85664,10 @@ function readKimiRunFacts(sessionId) {
|
|
|
85663
85664
|
const total = { input: 0, cacheCreation: 0, cacheRead: 0, output: 0 };
|
|
85664
85665
|
let model;
|
|
85665
85666
|
let holding = 0;
|
|
85666
|
-
for (const { path:
|
|
85667
|
+
for (const { path: path36, main: main2 } of wireFiles(entry.sessionDir)) {
|
|
85667
85668
|
let raw;
|
|
85668
85669
|
try {
|
|
85669
|
-
raw = readFileSync2(
|
|
85670
|
+
raw = readFileSync2(path36, "utf8");
|
|
85670
85671
|
} catch {
|
|
85671
85672
|
continue;
|
|
85672
85673
|
}
|
|
@@ -85922,8 +85923,8 @@ function createTail(log) {
|
|
|
85922
85923
|
// ../cli/package.json
|
|
85923
85924
|
var package_default = {
|
|
85924
85925
|
name: "wildcrane",
|
|
85925
|
-
version: "0.11.
|
|
85926
|
-
akbContract:
|
|
85926
|
+
version: "0.11.7",
|
|
85927
|
+
akbContract: 3,
|
|
85927
85928
|
description: "WildCrane's `akb` command \u2014 scaffold the Markdown board under docs/kanban/, put an agent on a card, and carry the flows the agent works by.",
|
|
85928
85929
|
keywords: [
|
|
85929
85930
|
"kanban",
|
|
@@ -85984,8 +85985,8 @@ var CLIENT_CAPABILITIES = {
|
|
|
85984
85985
|
};
|
|
85985
85986
|
function whereHint(update2, title) {
|
|
85986
85987
|
const locations = Array.isArray(update2.locations) ? update2.locations : [];
|
|
85987
|
-
const
|
|
85988
|
-
return
|
|
85988
|
+
const path36 = str(obj(locations[0]).path);
|
|
85989
|
+
return path36 && !title.includes(path36) ? hint(path36) : "";
|
|
85989
85990
|
}
|
|
85990
85991
|
function saidBy(update2) {
|
|
85991
85992
|
const content = Array.isArray(update2.content) ? update2.content : [];
|
|
@@ -86455,8 +86456,8 @@ async function tokensOf(rpc, sessionId) {
|
|
|
86455
86456
|
}
|
|
86456
86457
|
async function contextOf(rpc, sessionId) {
|
|
86457
86458
|
try {
|
|
86458
|
-
const
|
|
86459
|
-
const state = obj(
|
|
86459
|
+
const read2 = await rpc.call("session/read", { sessionId, messageLimit: 1 });
|
|
86460
|
+
const state = obj(read2.projection);
|
|
86460
86461
|
const used = num(state.contextUsed);
|
|
86461
86462
|
const limit = num(state.contextWindow);
|
|
86462
86463
|
return used > 0 ? { used, limit: limit > 0 ? limit : void 0 } : void 0;
|
|
@@ -88313,7 +88314,7 @@ var listFolders = (machineId2) => request("GET", `/v1/runner/folders?machine=${q
|
|
|
88313
88314
|
var listElsewhere = (machineId2) => request("GET", `/v1/runner/folders?machine=${q(machineId2)}&elsewhere=1`);
|
|
88314
88315
|
var listMachineTasks = (machineId2) => request("GET", `/v1/runner/tasks?machine=${q(machineId2)}`);
|
|
88315
88316
|
var stopTask = (task, how) => request("POST", how === "chat" ? `/v1/tasks/${q(task)}/chat/stop` : `/v1/tasks/${q(task)}/stop`, {});
|
|
88316
|
-
var addFolder = (machineId2, name,
|
|
88317
|
+
var addFolder = (machineId2, name, path36, project) => request("POST", "/v1/runner/folders", { machineId: machineId2, name, path: path36, ...project ? { project } : {} });
|
|
88317
88318
|
var removeFolder = (machineId2, project) => request("POST", `/v1/runner/folders/${q(project)}/remove`, { machineId: machineId2 });
|
|
88318
88319
|
var readBoard = (project, since) => request("GET", `/v1/projects/${q(project)}/board${since === null ? "" : `?since=${since}`}`);
|
|
88319
88320
|
async function commitBoard(project, job, machine, files) {
|
|
@@ -88391,6 +88392,7 @@ function plan(runtime, prompt, cwd, resume, model, given = {}, fork = false, lin
|
|
|
88391
88392
|
stdout: child.stdout,
|
|
88392
88393
|
stdin: child.stdin,
|
|
88393
88394
|
prompt,
|
|
88395
|
+
restartPrompt: prompt,
|
|
88394
88396
|
cwd,
|
|
88395
88397
|
resumeId: resume ?? void 0,
|
|
88396
88398
|
log: () => {
|
|
@@ -88833,9 +88835,9 @@ async function askDueAgents(machineId2, now = Date.now()) {
|
|
|
88833
88835
|
if (!folders2.ok) return false;
|
|
88834
88836
|
let started = false;
|
|
88835
88837
|
for (const { project } of folders2.value.folders) {
|
|
88836
|
-
const
|
|
88837
|
-
if (!
|
|
88838
|
-
for (const agent of
|
|
88838
|
+
const read2 = await readAgents(machineId2, project);
|
|
88839
|
+
if (!read2.ok) continue;
|
|
88840
|
+
for (const agent of read2.value.agents.filter((a3) => agentDue(a3, now))) {
|
|
88839
88841
|
const asked = await requestAgent(machineId2, project, agent.name, agent.workflow ?? null, agent.lastSuccess);
|
|
88840
88842
|
if (!asked.ok) console.error(`runner: ${agent.name} was not started on ${project}: ${asked.error}`);
|
|
88841
88843
|
else if (asked.value.job) started = true;
|
|
@@ -89382,11 +89384,11 @@ function keepCloudChat(task, messages) {
|
|
|
89382
89384
|
fs17.writeFileSync(file2, lines.map((l2) => `${JSON.stringify(l2)}
|
|
89383
89385
|
`).join(""));
|
|
89384
89386
|
}
|
|
89385
|
-
async function keepDecisions(task,
|
|
89387
|
+
async function keepDecisions(task, read2) {
|
|
89386
89388
|
const comments = [];
|
|
89387
89389
|
let after = null;
|
|
89388
89390
|
do {
|
|
89389
|
-
const page = await
|
|
89391
|
+
const page = await read2(task, after);
|
|
89390
89392
|
if (!page.ok) return;
|
|
89391
89393
|
for (const d2 of page.value.data) {
|
|
89392
89394
|
if (d2.comment.trim()) comments.push({ id: d2.id, role: "user", text: d2.comment, at: Date.parse(d2.created_at) || Date.now() });
|
|
@@ -89460,22 +89462,22 @@ import path24 from "node:path";
|
|
|
89460
89462
|
// ../cloud/src/board-files.ts
|
|
89461
89463
|
var ROOTS = ["todo/", ".archive/", "memory/", "workflows/", "triage/", "assets/", "rules/"];
|
|
89462
89464
|
var SETTINGS = ["modules.md", "config.md"];
|
|
89463
|
-
var isSettingsPath = (
|
|
89465
|
+
var isSettingsPath = (path36) => SETTINGS.includes(path36) || /^rules\/(?:workflows\/)?[^/]+\.md$/.test(path36);
|
|
89464
89466
|
var BOARD_FILE_LIMIT = 256 * 1024;
|
|
89465
|
-
function isBoardPath(
|
|
89466
|
-
if (!
|
|
89467
|
-
if (
|
|
89468
|
-
if (
|
|
89469
|
-
if (
|
|
89470
|
-
if (SETTINGS.includes(
|
|
89471
|
-
if (
|
|
89472
|
-
if (
|
|
89473
|
-
return ROOTS.some((root) =>
|
|
89467
|
+
function isBoardPath(path36) {
|
|
89468
|
+
if (!path36 || path36.length > 500 || path36.startsWith("/") || path36.includes("\\") || path36.includes("\0")) return false;
|
|
89469
|
+
if (path36.split("/").some((part) => !part || part === "." || part === "..")) return false;
|
|
89470
|
+
if (path36 === "todo/README.md" || path36.split("/").includes(".sync")) return false;
|
|
89471
|
+
if (path36.startsWith("workflows/")) return true;
|
|
89472
|
+
if (SETTINGS.includes(path36)) return true;
|
|
89473
|
+
if (path36.startsWith("rules/")) return isSettingsPath(path36);
|
|
89474
|
+
if (path36.startsWith("assets/")) return path36.endsWith(".json");
|
|
89475
|
+
return ROOTS.some((root) => path36.startsWith(root)) && path36.endsWith(".md");
|
|
89474
89476
|
}
|
|
89475
89477
|
var CARD = /^(?:todo|\.archive)\/(?:[^/]+\/)*(\d+)-[^/]*\.md$/;
|
|
89476
89478
|
var ROOT = /^(?:todo|\.archive)\/(?:[^/]+\/)*(\d+)-[^/]+\/root\.md$/;
|
|
89477
|
-
function numberOfCard(
|
|
89478
|
-
const n = ROOT.exec(
|
|
89479
|
+
function numberOfCard(path36) {
|
|
89480
|
+
const n = ROOT.exec(path36)?.[1] ?? CARD.exec(path36)?.[1];
|
|
89479
89481
|
return n ? Number(n) : null;
|
|
89480
89482
|
}
|
|
89481
89483
|
var cardSlug = (task) => task.toLowerCase().replace(/_/g, "-");
|
|
@@ -89512,7 +89514,7 @@ import crypto3 from "node:crypto";
|
|
|
89512
89514
|
import fs20 from "node:fs";
|
|
89513
89515
|
import path23 from "node:path";
|
|
89514
89516
|
|
|
89515
|
-
//
|
|
89517
|
+
// node_modules/node-diff3/dist/diff3.mjs
|
|
89516
89518
|
function LCS(buffer1, buffer2) {
|
|
89517
89519
|
let equivalenceClasses = /* @__PURE__ */ Object.create(null);
|
|
89518
89520
|
for (let j2 = 0; j2 < buffer2.length; j2++) {
|
|
@@ -89749,8 +89751,8 @@ function unquote2(v2) {
|
|
|
89749
89751
|
|
|
89750
89752
|
// ../cloud/src/triage-files.ts
|
|
89751
89753
|
var ITEM = /^triage\/(?:(dismissed|archived)\/)?([^/]+)\.md$/;
|
|
89752
|
-
function itemAt(
|
|
89753
|
-
const m = ITEM.exec(
|
|
89754
|
+
function itemAt(path36) {
|
|
89755
|
+
const m = ITEM.exec(path36);
|
|
89754
89756
|
if (!m) return null;
|
|
89755
89757
|
return { state: m[1] === "dismissed" ? "dismissed" : m[1] === "archived" ? "carded" : "open", name: m[2] };
|
|
89756
89758
|
}
|
|
@@ -90490,8 +90492,8 @@ function sharedMemory(board) {
|
|
|
90490
90492
|
const declared = /* @__PURE__ */ new Map();
|
|
90491
90493
|
const take = (folder, text3, builtIn) => {
|
|
90492
90494
|
if (text3 === null || declared.has(folder)) return;
|
|
90493
|
-
const
|
|
90494
|
-
if ("agent" in
|
|
90495
|
+
const read2 = parseSpecAgent(text3, folder, () => null, builtIn);
|
|
90496
|
+
if ("agent" in read2 && read2.agent.name === folder) declared.set(folder, read2.agent.memoryFiles.workspace);
|
|
90495
90497
|
};
|
|
90496
90498
|
for (const [key, text3] of Object.entries(BUNDLED_AGENT_FILES)) {
|
|
90497
90499
|
const at2 = /^([^/]+)\/AGENT\.md$/.exec(key);
|
|
@@ -90748,10 +90750,10 @@ async function pullWorkflow(ws, record, base) {
|
|
|
90748
90750
|
record.builtin = ws.workflow.startsWith("wf_builtin_");
|
|
90749
90751
|
let found = Object.keys(files).length > 0;
|
|
90750
90752
|
if (!found && ws.cloudTask) {
|
|
90751
|
-
const
|
|
90752
|
-
if (!
|
|
90753
|
-
if (
|
|
90754
|
-
files =
|
|
90753
|
+
const read2 = await readTaskWorkflow(ws.cloudTask);
|
|
90754
|
+
if (!read2.ok && read2.code !== "not_found") return read2;
|
|
90755
|
+
if (read2.ok) {
|
|
90756
|
+
files = read2.value.files;
|
|
90755
90757
|
found = true;
|
|
90756
90758
|
if (!record.builtin) {
|
|
90757
90759
|
for (const [name, text3] of Object.entries(files)) if (isBoardPath(root + name)) write(path23.join(ws.board, root, name), text3);
|
|
@@ -90866,12 +90868,12 @@ var readHead = (ws) => readBase(ws).head_seq;
|
|
|
90866
90868
|
var pullChanges = (ws) => inFolder(ws.cwd, async () => {
|
|
90867
90869
|
const base = readBase(ws);
|
|
90868
90870
|
if (base.head_seq === null) return { ok: true, value: void 0 };
|
|
90869
|
-
const
|
|
90870
|
-
if (!
|
|
90871
|
+
const read2 = await readBoard(ws.project, base.head_seq);
|
|
90872
|
+
if (!read2.ok) return read2;
|
|
90871
90873
|
const shared = sharedMemory(ws.board);
|
|
90872
90874
|
const root = rootOf(ws);
|
|
90873
90875
|
let skipped = false;
|
|
90874
|
-
for (const f2 of
|
|
90876
|
+
for (const f2 of read2.value.files) {
|
|
90875
90877
|
const p2 = f2.path.startsWith(root) ? f2.path.slice(root.length) : f2.path;
|
|
90876
90878
|
const isShared = p2.startsWith(MEMORY2) && shared(p2.slice(MEMORY2.length));
|
|
90877
90879
|
if (kept3(p2) && isShared === !f2.path.startsWith(root)) {
|
|
@@ -90887,7 +90889,7 @@ var pullChanges = (ws) => inFolder(ws.cwd, async () => {
|
|
|
90887
90889
|
if (f2.content === null) delete base.files[f2.path];
|
|
90888
90890
|
else base.files[f2.path] = { seq: f2.seq, content: f2.content };
|
|
90889
90891
|
}
|
|
90890
|
-
if (!skipped) base.head_seq =
|
|
90892
|
+
if (!skipped) base.head_seq = read2.value.head_seq;
|
|
90891
90893
|
writeBase(ws, base);
|
|
90892
90894
|
writeIndex(ws.board);
|
|
90893
90895
|
return { ok: true, value: void 0 };
|
|
@@ -90900,14 +90902,14 @@ async function readCloud(ws) {
|
|
|
90900
90902
|
if (!project.ok) return project;
|
|
90901
90903
|
base.workspace = project.value.workspace ?? null;
|
|
90902
90904
|
}
|
|
90903
|
-
const
|
|
90904
|
-
if (!
|
|
90905
|
+
const read2 = await readBoard(ws.project, base.head_seq);
|
|
90906
|
+
if (!read2.ok) return read2;
|
|
90905
90907
|
if (base.head_seq === null) base.files = {};
|
|
90906
|
-
for (const f2 of
|
|
90908
|
+
for (const f2 of read2.value.files) {
|
|
90907
90909
|
if (f2.content === null) delete base.files[f2.path];
|
|
90908
90910
|
else base.files[f2.path] = { seq: f2.seq, content: f2.content };
|
|
90909
90911
|
}
|
|
90910
|
-
base.head_seq =
|
|
90912
|
+
base.head_seq = read2.value.head_seq;
|
|
90911
90913
|
base.project = ws.project;
|
|
90912
90914
|
writeBase(ws, base);
|
|
90913
90915
|
const reset = (view2) => {
|
|
@@ -91231,8 +91233,8 @@ function watchBoards(machineId2, ms, lookMs = LOOK_MS, pullMs = PULL_MS, busyMs
|
|
|
91231
91233
|
if (closed) return;
|
|
91232
91234
|
if (busy(ws.cwd)) return void afterJob.add(ws.cwd);
|
|
91233
91235
|
afterJob.delete(ws.cwd);
|
|
91234
|
-
const
|
|
91235
|
-
if (!
|
|
91236
|
+
const read2 = await pullChanges(ws);
|
|
91237
|
+
if (!read2.ok && read2.code) console.error(`runner: the board in ${ws.cwd} was not read: ${read2.error}`);
|
|
91236
91238
|
};
|
|
91237
91239
|
const send3 = async (ws) => {
|
|
91238
91240
|
const sent = await pushBoard(ws, machineId2);
|
|
@@ -91392,8 +91394,8 @@ async function answerHint(machineId2, hint2) {
|
|
|
91392
91394
|
}
|
|
91393
91395
|
|
|
91394
91396
|
// src/flow.ts
|
|
91395
|
-
import
|
|
91396
|
-
import
|
|
91397
|
+
import fs27 from "node:fs";
|
|
91398
|
+
import path30 from "node:path";
|
|
91397
91399
|
|
|
91398
91400
|
// ../cli/src/lib/question-block.ts
|
|
91399
91401
|
var MODES = ["single", "multi"];
|
|
@@ -91632,10 +91634,152 @@ function clearLaid(board) {
|
|
|
91632
91634
|
for (const sub of SCRATCH) fs23.rmSync(path26.join(triageDir(board), sub), { recursive: true, force: true });
|
|
91633
91635
|
}
|
|
91634
91636
|
|
|
91635
|
-
// src/
|
|
91637
|
+
// src/kanban-skill.ts
|
|
91636
91638
|
import fs24 from "node:fs";
|
|
91637
91639
|
import path27 from "node:path";
|
|
91638
91640
|
|
|
91641
|
+
// ../skill/SKILL.md
|
|
91642
|
+
var SKILL_default = '---\nname: kanban\ndescription: Manage the file-based task board with akb. Use for creating and planning tasks, revising or implementing cards, and managing background runs; also for "what\'s running".\n---\n\n# Kanban board\n\nThe board is worked only through `akb`. Find the command for the job in `akb help` and run\nit; never do its work by hand or from memory.\n\n- **`--print` does it here**: `akb card revise 12 --print "drop the export"` prints the whole\n flow for that card on this board; follow it to its closing steps. Without `--print` the\n same command starts a separate agent.\n- **Keys**: never read or write API keys; the user sets them with `akb agent set apiKey`.\n';
|
|
91643
|
+
|
|
91644
|
+
// src/kanban-skill.ts
|
|
91645
|
+
var CONTENT = `${SKILL_default.trimEnd()}
|
|
91646
|
+
|
|
91647
|
+
<!-- ai4kanban managed -->
|
|
91648
|
+
`;
|
|
91649
|
+
var MANAGED = /^<!-- ai4kanban \S+ -->$/m;
|
|
91650
|
+
function prepareKanbanSkill(root) {
|
|
91651
|
+
for (const folder of SKILL_FOLDERS) {
|
|
91652
|
+
const dir = path27.join(root, folder);
|
|
91653
|
+
const file2 = path27.join(dir, "SKILL.md");
|
|
91654
|
+
try {
|
|
91655
|
+
let linked = false;
|
|
91656
|
+
let at2 = root;
|
|
91657
|
+
for (const name of `${folder}/SKILL.md`.split("/")) {
|
|
91658
|
+
at2 = path27.join(at2, name);
|
|
91659
|
+
if (fs24.lstatSync(at2, { throwIfNoEntry: false })?.isSymbolicLink()) linked = true;
|
|
91660
|
+
}
|
|
91661
|
+
const held4 = fs24.existsSync(file2) ? fs24.readFileSync(file2, "utf8") : null;
|
|
91662
|
+
const exists = fs24.lstatSync(dir, { throwIfNoEntry: false }) !== void 0;
|
|
91663
|
+
if (linked || exists && !MANAGED.test(held4 ?? "")) {
|
|
91664
|
+
if (!held4?.trim()) throw new Error("\u7528\u6237\u81EA\u6709\u76EE\u5F55\u6216\u7B26\u53F7\u94FE\u63A5\u4E2D\u7F3A\u5C11\u53EF\u8BFB\u7684 SKILL.md");
|
|
91665
|
+
continue;
|
|
91666
|
+
}
|
|
91667
|
+
if (held4 !== CONTENT) {
|
|
91668
|
+
fs24.mkdirSync(dir, { recursive: true });
|
|
91669
|
+
fs24.writeFileSync(file2, CONTENT);
|
|
91670
|
+
}
|
|
91671
|
+
} catch (e2) {
|
|
91672
|
+
throw new Error(`\u65E0\u6CD5\u51C6\u5907 ${folder}\uFF1A${e2 instanceof Error ? e2.message : String(e2)}`);
|
|
91673
|
+
}
|
|
91674
|
+
}
|
|
91675
|
+
}
|
|
91676
|
+
|
|
91677
|
+
// ../cli/src/lib/skill/hook.ts
|
|
91678
|
+
import { spawnSync as spawnSync5 } from "node:child_process";
|
|
91679
|
+
import fs25 from "node:fs";
|
|
91680
|
+
import path28 from "node:path";
|
|
91681
|
+
var MARKER = "# ai4kanban commit guard";
|
|
91682
|
+
var MARKER_LINE = new RegExp(`^${MARKER}\\b`, "m");
|
|
91683
|
+
var CHECK = [
|
|
91684
|
+
"try{",
|
|
91685
|
+
'const[top,branch]=require("child_process")',
|
|
91686
|
+
'.execFileSync("git",["rev-parse","--show-toplevel","--abbrev-ref","HEAD"],{encoding:"utf8"}).trim().split("\\n");',
|
|
91687
|
+
'if(/\\/\\.akb\\/worktrees\\//.test(top+"/"))process.exit(0);',
|
|
91688
|
+
'const d=(JSON.parse(require("fs").readFileSync(process.argv[1],"utf8")).deliveries||[])',
|
|
91689
|
+
'.find((x)=>x&&x.status==="active"&&x.commitMode==="auto"&&x.targetBranch===branch&&(!x.landing||x.landing.status!=="landed"));',
|
|
91690
|
+
"if(!d)process.exit(0);",
|
|
91691
|
+
"process.stderr.write(",
|
|
91692
|
+
'"ai4kanban: delivery "+d.deliveryId+" is landing #"+d.cardId+" on "+branch+", so a commit here moves the target under it\\n"',
|
|
91693
|
+
'+" \u2014 commit on another branch, or `git commit --no-verify` to commit anyway.\\n");',
|
|
91694
|
+
"process.exit(1);",
|
|
91695
|
+
"}catch(e){process.exit(0)}"
|
|
91696
|
+
].join("");
|
|
91697
|
+
var quoted = (p2) => `"${p2.replace(/(["$`\\])/g, "\\$1")}"`;
|
|
91698
|
+
var guardLine = (sessions) => `if command -v node >/dev/null 2>&1; then node -e '${CHECK}' ${quoted(sessions)} || exit 1; fi`;
|
|
91699
|
+
function hookScript(sessions) {
|
|
91700
|
+
return [
|
|
91701
|
+
"#!/bin/sh",
|
|
91702
|
+
`${MARKER} ${SKILL_VERSION} \u2014 \u7531 Runner \u7BA1\u7406\uFF0C\u4FEE\u6539\u4F1A\u88AB\u8986\u76D6\u3002`,
|
|
91703
|
+
"#",
|
|
91704
|
+
"# Refuses a commit on the branch a delivery is landing on, and nothing else. Anything",
|
|
91705
|
+
"# it cannot judge lets the commit through. `git commit --no-verify` gets past it, and",
|
|
91706
|
+
"# deleting this file turns it off.",
|
|
91707
|
+
guardLine(sessions),
|
|
91708
|
+
"exit 0",
|
|
91709
|
+
""
|
|
91710
|
+
].join("\n");
|
|
91711
|
+
}
|
|
91712
|
+
var read = (file2) => {
|
|
91713
|
+
try {
|
|
91714
|
+
return fs25.readFileSync(file2, "utf8");
|
|
91715
|
+
} catch {
|
|
91716
|
+
return null;
|
|
91717
|
+
}
|
|
91718
|
+
};
|
|
91719
|
+
function hooksDir(root) {
|
|
91720
|
+
const out = spawnSync5("git", ["rev-parse", "--git-path", "hooks"], {
|
|
91721
|
+
cwd: root,
|
|
91722
|
+
encoding: "utf8",
|
|
91723
|
+
windowsHide: true
|
|
91724
|
+
});
|
|
91725
|
+
if (out.error || out.status !== 0 || !out.stdout.trim()) return null;
|
|
91726
|
+
return path28.resolve(root, out.stdout.trim());
|
|
91727
|
+
}
|
|
91728
|
+
function hasOwnHooksPath(root) {
|
|
91729
|
+
const out = spawnSync5("git", ["config", "--get", "core.hooksPath"], {
|
|
91730
|
+
cwd: root,
|
|
91731
|
+
encoding: "utf8",
|
|
91732
|
+
windowsHide: true
|
|
91733
|
+
});
|
|
91734
|
+
return !out.error && out.status === 0 && !!out.stdout.trim();
|
|
91735
|
+
}
|
|
91736
|
+
var sessionsPath = (root, board) => path28.join(projectStateDir(board, root), SESSIONS_FILE);
|
|
91737
|
+
function readCommitHook(root, board = path28.join(root, "docs", "kanban")) {
|
|
91738
|
+
const dir = hooksDir(root);
|
|
91739
|
+
if (!dir) return { state: "no-git" };
|
|
91740
|
+
const where = shown(root, path28.join(dir, "pre-commit"));
|
|
91741
|
+
const line = guardLine(sessionsPath(root, board));
|
|
91742
|
+
if (hasOwnHooksPath(root)) return { state: "hooks-path", path: where, line };
|
|
91743
|
+
const file2 = path28.join(dir, "pre-commit");
|
|
91744
|
+
if (fs25.lstatSync(file2, { throwIfNoEntry: false })?.isSymbolicLink()) return { state: "foreign", path: where, line };
|
|
91745
|
+
const text3 = read(file2);
|
|
91746
|
+
if (text3 === null) return { state: "absent", path: where };
|
|
91747
|
+
return MARKER_LINE.test(text3) ? { state: "ours", path: where } : { state: "foreign", path: where, line };
|
|
91748
|
+
}
|
|
91749
|
+
var shown = (root, p2) => (path28.relative(root, p2) || p2).split(path28.sep).join("/");
|
|
91750
|
+
function installCommitHook(root, board = path28.join(root, "docs", "kanban")) {
|
|
91751
|
+
try {
|
|
91752
|
+
return placeCommitHook(root, board);
|
|
91753
|
+
} catch (e2) {
|
|
91754
|
+
return { note: `\u63D0\u4EA4\u4FDD\u62A4\u65E0\u6CD5\u51C6\u5907\uFF1A${e2 instanceof Error ? e2.message : String(e2)}` };
|
|
91755
|
+
}
|
|
91756
|
+
}
|
|
91757
|
+
function placeCommitHook(root, board) {
|
|
91758
|
+
const hook = readCommitHook(root, board);
|
|
91759
|
+
if (hook.state === "no-git") return {};
|
|
91760
|
+
if (hook.state === "hooks-path" || hook.state === "foreign") {
|
|
91761
|
+
const why = hook.state === "foreign" ? `${hook.path} is a hook the board did not write, so no commit guard was installed` : `this repository runs its hooks from \`core.hooksPath\`, so no commit guard was installed`;
|
|
91762
|
+
return {
|
|
91763
|
+
note: `${why} \u2014 add this line to ${hook.path} to refuse a commit on the branch a delivery is landing on:
|
|
91764
|
+
${hook.line}`
|
|
91765
|
+
};
|
|
91766
|
+
}
|
|
91767
|
+
const file2 = path28.join(root, hook.path);
|
|
91768
|
+
try {
|
|
91769
|
+
fs25.mkdirSync(path28.dirname(file2), { recursive: true });
|
|
91770
|
+
const text3 = hookScript(sessionsPath(root, board));
|
|
91771
|
+
if (read(file2) !== text3) fs25.writeFileSync(file2, text3, { mode: 493 });
|
|
91772
|
+
fs25.chmodSync(file2, 493);
|
|
91773
|
+
} catch (e2) {
|
|
91774
|
+
return { note: `${hook.path} could not be written \u2014 ${e2 instanceof Error ? e2.message : String(e2)}` };
|
|
91775
|
+
}
|
|
91776
|
+
return { wrote: { path: hook.path, refreshed: hook.state === "ours" } };
|
|
91777
|
+
}
|
|
91778
|
+
|
|
91779
|
+
// src/built.ts
|
|
91780
|
+
import fs26 from "node:fs";
|
|
91781
|
+
import path29 from "node:path";
|
|
91782
|
+
|
|
91639
91783
|
// ../cli/src/lib/spec-agent-names.ts
|
|
91640
91784
|
var LEGACY_SPEC_AGENT_NAMES = {
|
|
91641
91785
|
"recommend-tech-stack": "tech-stack-advisor",
|
|
@@ -91731,13 +91875,13 @@ function folderPath(file2, top) {
|
|
|
91731
91875
|
return [parts[1], parts.slice(2).join("/")];
|
|
91732
91876
|
}
|
|
91733
91877
|
function mcpProblem(text3) {
|
|
91734
|
-
let
|
|
91878
|
+
let read2;
|
|
91735
91879
|
try {
|
|
91736
|
-
|
|
91880
|
+
read2 = JSON.parse(text3);
|
|
91737
91881
|
} catch {
|
|
91738
91882
|
return "is not JSON";
|
|
91739
91883
|
}
|
|
91740
|
-
const servers =
|
|
91884
|
+
const servers = read2?.mcpServers;
|
|
91741
91885
|
if (!servers || typeof servers !== "object" || Array.isArray(servers)) return "must hold `mcpServers`, an object of name \u2192 server";
|
|
91742
91886
|
for (const [name, server] of Object.entries(servers)) {
|
|
91743
91887
|
const { command, args, ...rest } = server ?? {};
|
|
@@ -91784,9 +91928,9 @@ function checkWorkflowFiles(value, official = false) {
|
|
|
91784
91928
|
}
|
|
91785
91929
|
const source = value[WORKFLOW_FILE];
|
|
91786
91930
|
if (source === void 0) return fail(WORKFLOW_FILE, "is missing");
|
|
91787
|
-
const
|
|
91788
|
-
if ("problem" in
|
|
91789
|
-
const def =
|
|
91931
|
+
const read2 = parseWorkflowFile("workflow", source, WORKFLOW_FILE);
|
|
91932
|
+
if ("problem" in read2) return fail(WORKFLOW_FILE, read2.problem.replace(`${WORKFLOW_FILE}: `, ""));
|
|
91933
|
+
const def = read2.def;
|
|
91790
91934
|
const agents = /* @__PURE__ */ new Map();
|
|
91791
91935
|
for (const [name, own] of folders2) {
|
|
91792
91936
|
const from = `agents/${name}/AGENT.md`;
|
|
@@ -91810,26 +91954,26 @@ function checkWorkflowFiles(value, official = false) {
|
|
|
91810
91954
|
|
|
91811
91955
|
// src/built.ts
|
|
91812
91956
|
var isBuilder = (ws) => ws.workflow === BUILDER;
|
|
91813
|
-
var draftDir = (ws) =>
|
|
91814
|
-
var draftLine = (ws) => `<!-- workflow folder: ${
|
|
91957
|
+
var draftDir = (ws) => path29.join(ws.board, "workflows", draftFolder(ws.task));
|
|
91958
|
+
var draftLine = (ws) => `<!-- workflow folder: ${path29.relative(ws.cwd, draftDir(ws)).split(path29.sep).join("/")}/ -->`;
|
|
91815
91959
|
var skeleton = (name) => ["---", `name: ${/\s#/.test(name) ? JSON.stringify(name) : yamlScalar(name)}`, "needsArtifact: false", "---", ""].join("\n");
|
|
91816
|
-
async function placeDraft(ws,
|
|
91960
|
+
async function placeDraft(ws, read2) {
|
|
91817
91961
|
const dir = draftDir(ws);
|
|
91818
|
-
if (
|
|
91819
|
-
const task = await
|
|
91962
|
+
if (fs26.existsSync(path29.join(dir, WORKFLOW_FILE))) return { ok: true, value: void 0 };
|
|
91963
|
+
const task = await read2.readTask(ws.task);
|
|
91820
91964
|
if (!task.ok) return task;
|
|
91821
91965
|
let files = { [WORKFLOW_FILE]: skeleton(task.value.title.trim() || "Untitled") };
|
|
91822
91966
|
const changes = task.value.context?.workflow;
|
|
91823
91967
|
if (changes) {
|
|
91824
|
-
const held4 = await
|
|
91968
|
+
const held4 = await read2.readWorkflow(changes);
|
|
91825
91969
|
if (!held4.ok) return held4;
|
|
91826
91970
|
files = held4.value.files;
|
|
91827
91971
|
}
|
|
91828
91972
|
for (const [name, text3] of Object.entries(files)) {
|
|
91829
|
-
const file2 =
|
|
91830
|
-
if (!file2.startsWith(dir +
|
|
91831
|
-
|
|
91832
|
-
|
|
91973
|
+
const file2 = path29.resolve(dir, name);
|
|
91974
|
+
if (!file2.startsWith(dir + path29.sep)) continue;
|
|
91975
|
+
fs26.mkdirSync(path29.dirname(file2), { recursive: true });
|
|
91976
|
+
fs26.writeFileSync(file2, text3);
|
|
91833
91977
|
}
|
|
91834
91978
|
return { ok: true, value: void 0 };
|
|
91835
91979
|
}
|
|
@@ -91841,19 +91985,19 @@ async function builtWorkflow(ws, akb) {
|
|
|
91841
91985
|
const dir = draftDir(ws);
|
|
91842
91986
|
let source;
|
|
91843
91987
|
try {
|
|
91844
|
-
source =
|
|
91988
|
+
source = fs26.readFileSync(path29.join(dir, WORKFLOW_FILE), "utf8");
|
|
91845
91989
|
} catch {
|
|
91846
91990
|
return fail(`workflows/${id}/${WORKFLOW_FILE} is missing.`);
|
|
91847
91991
|
}
|
|
91848
|
-
const
|
|
91849
|
-
if ("problem" in
|
|
91850
|
-
const names2 = named(
|
|
91851
|
-
|
|
91992
|
+
const read2 = parseWorkflowFile(id, source, `workflows/${id}/${WORKFLOW_FILE}`);
|
|
91993
|
+
if ("problem" in read2) return fail(read2.problem);
|
|
91994
|
+
const names2 = named(read2.def);
|
|
91995
|
+
fs26.rmSync(path29.join(dir, "agents"), { recursive: true, force: true });
|
|
91852
91996
|
for (const name of names2) {
|
|
91853
|
-
const from =
|
|
91854
|
-
if (
|
|
91997
|
+
const from = path29.join(ws.board, "agents", name);
|
|
91998
|
+
if (fs26.existsSync(from)) fs26.cpSync(from, path29.join(dir, "agents", name), { recursive: true });
|
|
91855
91999
|
}
|
|
91856
|
-
const files = Object.fromEntries(filesUnder(dir).map((f2) => [f2,
|
|
92000
|
+
const files = Object.fromEntries(filesUnder(dir).map((f2) => [f2, fs26.readFileSync(path29.join(dir, f2), "utf8")]));
|
|
91857
92001
|
const checked = checkWorkflowFiles(files);
|
|
91858
92002
|
if (!checked.ok) return fail(`${checked.file} ${checked.reason}.`);
|
|
91859
92003
|
const run2 = async (args) => answerOf2(await runAkb(akb, [...args, "--json", "--board", ws.board], { cwd: ws.cwd, board: ws.board }));
|
|
@@ -91888,7 +92032,7 @@ function spentBy(runs) {
|
|
|
91888
92032
|
}
|
|
91889
92033
|
function reviewOf2(file2) {
|
|
91890
92034
|
try {
|
|
91891
|
-
const meta = parseFrontmatter(
|
|
92035
|
+
const meta = parseFrontmatter(fs27.readFileSync(file2, "utf8")).meta;
|
|
91892
92036
|
return meta ? reviewOf(meta) : null;
|
|
91893
92037
|
} catch {
|
|
91894
92038
|
return null;
|
|
@@ -91896,8 +92040,8 @@ function reviewOf2(file2) {
|
|
|
91896
92040
|
}
|
|
91897
92041
|
function mcpConfig(servers, file2) {
|
|
91898
92042
|
if (!Object.keys(servers).length) return null;
|
|
91899
|
-
|
|
91900
|
-
|
|
92043
|
+
fs27.mkdirSync(path30.dirname(file2), { recursive: true });
|
|
92044
|
+
fs27.writeFileSync(file2, `${JSON.stringify({ mcpServers: servers }, null, 2)}
|
|
91901
92045
|
`);
|
|
91902
92046
|
return file2;
|
|
91903
92047
|
}
|
|
@@ -91918,21 +92062,25 @@ async function stopRuns(akb, ws, id, since, ms) {
|
|
|
91918
92062
|
while (Date.now() < until) {
|
|
91919
92063
|
const runs = answerOf2(await call(["run", "list", "--card", String(id), "--all", "--json"]))?.runs;
|
|
91920
92064
|
const live = (runs ?? []).filter((r2) => r2.status === "running" && (r2.startedAt ?? 0) >= since);
|
|
91921
|
-
if (!
|
|
92065
|
+
if (!runs) return false;
|
|
92066
|
+
if (!live.length) return true;
|
|
91922
92067
|
for (const r2 of live) await call(["run", "stop", r2.sessionId]);
|
|
91923
92068
|
await wait(250);
|
|
91924
92069
|
}
|
|
92070
|
+
return false;
|
|
91925
92071
|
}
|
|
91926
92072
|
var working = /* @__PURE__ */ new Map();
|
|
91927
92073
|
var workKey = (ws, id) => `${ws.board}#${id}`;
|
|
91928
92074
|
async function stopLeftBehind(akb, ws, id, ms) {
|
|
91929
|
-
if (!working.has(workKey(ws, id))
|
|
92075
|
+
if (!working.has(workKey(ws, id)) && !await stopRuns(akb, ws, id, 0, ms)) {
|
|
92076
|
+
throw new Error("\u672A\u80FD\u505C\u6B62\u4E0A\u6B21\u8FD0\u884C\uFF0C\u8BF7\u7B49\u5F85\u5176\u505C\u6B62\u540E\u7EED\u8DD1\u3002");
|
|
92077
|
+
}
|
|
91930
92078
|
}
|
|
91931
92079
|
function deliveryEnding(ws, id) {
|
|
91932
92080
|
if (!id) return null;
|
|
91933
92081
|
let held4;
|
|
91934
92082
|
try {
|
|
91935
|
-
held4 = JSON.parse(
|
|
92083
|
+
held4 = JSON.parse(fs27.readFileSync(path30.join(ws.board, "deliveries", `${path30.basename(id)}.json`), "utf8"));
|
|
91936
92084
|
} catch {
|
|
91937
92085
|
return null;
|
|
91938
92086
|
}
|
|
@@ -91944,16 +92092,16 @@ function deliveryEnding(ws, id) {
|
|
|
91944
92092
|
return null;
|
|
91945
92093
|
}
|
|
91946
92094
|
function checkoutsOf(ws, id) {
|
|
91947
|
-
const dir =
|
|
92095
|
+
const dir = path30.join(ws.board, "deliveries");
|
|
91948
92096
|
let names2;
|
|
91949
92097
|
try {
|
|
91950
|
-
names2 =
|
|
92098
|
+
names2 = fs27.readdirSync(dir).filter((n) => n.endsWith(".json"));
|
|
91951
92099
|
} catch {
|
|
91952
92100
|
return [];
|
|
91953
92101
|
}
|
|
91954
92102
|
return names2.flatMap((n) => {
|
|
91955
92103
|
try {
|
|
91956
|
-
const held4 = JSON.parse(
|
|
92104
|
+
const held4 = JSON.parse(fs27.readFileSync(path30.join(dir, n), "utf8"));
|
|
91957
92105
|
return held4.cardId === id && held4.worktree && held4.deliveryId ? [held4.deliveryId] : [];
|
|
91958
92106
|
} catch {
|
|
91959
92107
|
return [];
|
|
@@ -92012,33 +92160,29 @@ function boardAkb(job, ws, deps, io, task) {
|
|
|
92012
92160
|
return ran;
|
|
92013
92161
|
};
|
|
92014
92162
|
}
|
|
92015
|
-
function skillStale(dir, version) {
|
|
92016
|
-
try {
|
|
92017
|
-
const text3 = fs25.readFileSync(path28.join(dir, "SKILL.md"), "utf8");
|
|
92018
|
-
return !fs25.lstatSync(dir).isSymbolicLink() && /<!-- ai4kanban (\S+) -->\s*$/.exec(text3)?.[1] !== version;
|
|
92019
|
-
} catch {
|
|
92020
|
-
return true;
|
|
92021
|
-
}
|
|
92022
|
-
}
|
|
92023
92163
|
async function setUp(job, ws, deps, io) {
|
|
92024
92164
|
const akb = boardAkb(job, ws, deps, io);
|
|
92025
92165
|
const runtime = job.runtime;
|
|
92026
92166
|
const missing = unavailable(runtime, await deps.runtimes());
|
|
92027
92167
|
if (missing) return missing;
|
|
92028
|
-
if (!
|
|
92168
|
+
if (!fs27.existsSync(path30.join(ws.board, "config.md"))) {
|
|
92029
92169
|
const init = await akb(["raw", "init"]);
|
|
92030
92170
|
if (init.code !== 0) return refusal(init);
|
|
92031
92171
|
}
|
|
92032
|
-
|
|
92033
|
-
|
|
92034
|
-
|
|
92172
|
+
try {
|
|
92173
|
+
prepareKanbanSkill(ws.cwd);
|
|
92174
|
+
} catch (e2) {
|
|
92175
|
+
return e2 instanceof Error ? e2.message : String(e2);
|
|
92035
92176
|
}
|
|
92177
|
+
const hook = installCommitHook(ws.cwd, ws.board);
|
|
92178
|
+
if (hook.note) io.show(`${hook.note}
|
|
92179
|
+
`);
|
|
92036
92180
|
const pulled = await pull(ws, deps.machineId);
|
|
92037
92181
|
if (!pulled.ok) return pulled.error;
|
|
92038
92182
|
const used = await akb(["agent", "use", runtime]);
|
|
92039
92183
|
if (used.code !== 0) return refusal(used);
|
|
92040
92184
|
const servers = mcpServersOf(ws);
|
|
92041
|
-
const mcpFile =
|
|
92185
|
+
const mcpFile = path30.join(ws.board, ".sync", `${ws.task}.mcp.json`);
|
|
92042
92186
|
const takes = new Set(settingKeys(runtime));
|
|
92043
92187
|
const given = job.settings ?? {};
|
|
92044
92188
|
const values = { ...given, model: job.model ?? "" };
|
|
@@ -92081,13 +92225,13 @@ async function runReview(job, ws, tasks, deps, io) {
|
|
|
92081
92225
|
async function reviewRejections(job, ws, deps, io) {
|
|
92082
92226
|
const workspace = workspaceOf(ws);
|
|
92083
92227
|
if (!workspace) return { runs: [] };
|
|
92084
|
-
const
|
|
92085
|
-
if (!
|
|
92086
|
-
if (!
|
|
92228
|
+
const read2 = await deps.api.readRejections(workspace);
|
|
92229
|
+
if (!read2.ok) return { runs: [], failure: read2.error };
|
|
92230
|
+
if (!read2.value.tasks.length && !read2.value.triage.length) return { runs: [] };
|
|
92087
92231
|
const since = Date.now();
|
|
92088
92232
|
const akb = boardAkb(job, ws, deps, io);
|
|
92089
92233
|
return withBoard(ws, async (push2) => {
|
|
92090
|
-
const laid = layOut(ws.board,
|
|
92234
|
+
const laid = layOut(ws.board, read2.value);
|
|
92091
92235
|
const ran = await akb(["review-dismissals", "--follow", "--events", "--json"], true);
|
|
92092
92236
|
clearLaid(ws.board);
|
|
92093
92237
|
resetSorted(ws);
|
|
@@ -92106,12 +92250,12 @@ async function learnRejections(job, ws, deps, io) {
|
|
|
92106
92250
|
return runs;
|
|
92107
92251
|
}
|
|
92108
92252
|
async function scheduledEnv(ws, deps) {
|
|
92109
|
-
const
|
|
92110
|
-
if (!
|
|
92111
|
-
console.error(`runner: scheduled agents not read: ${
|
|
92253
|
+
const read2 = await deps.api.readAgents(deps.machineId, ws.project);
|
|
92254
|
+
if (!read2.ok) {
|
|
92255
|
+
console.error(`runner: scheduled agents not read: ${read2.error}`);
|
|
92112
92256
|
return {};
|
|
92113
92257
|
}
|
|
92114
|
-
const names2 =
|
|
92258
|
+
const names2 = read2.value.agents.filter((a3) => a3.workflow).map((a3) => a3.name);
|
|
92115
92259
|
return { [SCHEDULED_AGENTS_ENV]: [...new Set(names2)].join(",") };
|
|
92116
92260
|
}
|
|
92117
92261
|
async function runAgent(job, ws, deps, io) {
|
|
@@ -92138,19 +92282,19 @@ async function runAgent(job, ws, deps, io) {
|
|
|
92138
92282
|
}
|
|
92139
92283
|
function writeTranscript(job, dir) {
|
|
92140
92284
|
if (!job.transcript) return "";
|
|
92141
|
-
const file2 =
|
|
92142
|
-
|
|
92143
|
-
|
|
92285
|
+
const file2 = path30.join(dir, "discussion.md");
|
|
92286
|
+
fs27.mkdirSync(dir, { recursive: true });
|
|
92287
|
+
fs27.writeFileSync(file2, `${job.transcript}
|
|
92144
92288
|
`);
|
|
92145
92289
|
return file2;
|
|
92146
92290
|
}
|
|
92147
92291
|
function pictures(job, ws, id) {
|
|
92148
92292
|
const dir = cardAssetsDir(ws, id);
|
|
92149
92293
|
if (!job.attachments.length || !dir) return "";
|
|
92150
|
-
|
|
92294
|
+
fs27.mkdirSync(dir, { recursive: true });
|
|
92151
92295
|
return job.attachments.map((a3, i) => {
|
|
92152
|
-
const file2 = `${i + 1}-${
|
|
92153
|
-
|
|
92296
|
+
const file2 = `${i + 1}-${path30.basename(a3.name).replace(/[^\w.-]+/g, "-")}`;
|
|
92297
|
+
fs27.writeFileSync(path30.join(dir, file2), Buffer.from(a3.content, "base64"));
|
|
92154
92298
|
return `
|
|
92155
92299
|
<Asset src=".assets/${id}/${file2}" label="${a3.name.replace(/["<>]/g, "") || file2}" />
|
|
92156
92300
|
`;
|
|
@@ -92158,7 +92302,7 @@ function pictures(job, ws, id) {
|
|
|
92158
92302
|
}
|
|
92159
92303
|
function cardFlags(ws, fields) {
|
|
92160
92304
|
if (!fields) return [];
|
|
92161
|
-
const open = (keys) => (keys ?? []).map((k) => Number(/(\d+)$/.exec(k)?.[1])).filter((n) => n > 0 && n !== ws.number && findCard(ws.board, n)?.startsWith(
|
|
92305
|
+
const open = (keys) => (keys ?? []).map((k) => Number(/(\d+)$/.exec(k)?.[1])).filter((n) => n > 0 && n !== ws.number && findCard(ws.board, n)?.startsWith(path30.join(ws.board, "todo") + path30.sep));
|
|
92162
92306
|
const lists = [["--modules", fields.modules ?? []], ["--related", open(fields.related)], ["--blocked-by", open(fields.blocked_by)]];
|
|
92163
92307
|
return [
|
|
92164
92308
|
...fields.priority ? ["--priority", fields.priority] : [],
|
|
@@ -92192,10 +92336,10 @@ async function runFlow(job, ws, deps, io) {
|
|
|
92192
92336
|
const placed = await placeDraft(ws, deps.api);
|
|
92193
92337
|
if (!placed.ok) return fail(placed.error);
|
|
92194
92338
|
}
|
|
92195
|
-
const body =
|
|
92196
|
-
|
|
92339
|
+
const body = path30.join(ws.board, ".sync", `${ws.task}.request.md`);
|
|
92340
|
+
fs27.mkdirSync(path30.dirname(body), { recursive: true });
|
|
92197
92341
|
if (!ws.number) return fail("This task has no number yet.");
|
|
92198
|
-
|
|
92342
|
+
fs27.writeFileSync(body, `${said.request || title}
|
|
92199
92343
|
${isBuilder(ws) ? `
|
|
92200
92344
|
${draftLine(ws)}
|
|
92201
92345
|
` : ""}${pictures(job, ws, ws.number)}`);
|
|
@@ -92213,7 +92357,7 @@ ${draftLine(ws)}
|
|
|
92213
92357
|
...cardFlags(ws, flow.metadata),
|
|
92214
92358
|
"--json"
|
|
92215
92359
|
]));
|
|
92216
|
-
|
|
92360
|
+
fs27.rmSync(body, { force: true });
|
|
92217
92361
|
if (!created.ok) return fail(created.error);
|
|
92218
92362
|
id = created.value;
|
|
92219
92363
|
}
|
|
@@ -92223,19 +92367,27 @@ ${draftLine(ws)}
|
|
|
92223
92367
|
const held4 = working.get(key) ?? 0;
|
|
92224
92368
|
working.set(key, held4 + 1);
|
|
92225
92369
|
try {
|
|
92226
|
-
if (!held4
|
|
92370
|
+
if (!held4 && !await stopRuns(deps.akb, ws, card, 0, deps.stopMs)) {
|
|
92371
|
+
return fail("\u672A\u80FD\u505C\u6B62\u4E0A\u6B21\u8FD0\u884C\uFF0C\u8BF7\u7B49\u5F85\u5176\u505C\u6B62\u540E\u7EED\u8DD1\u3002");
|
|
92372
|
+
}
|
|
92227
92373
|
if (io.lost()) return fail("");
|
|
92228
92374
|
return await workOn(card);
|
|
92229
92375
|
} finally {
|
|
92230
|
-
|
|
92376
|
+
fs27.rmSync(path30.join(ws.board, ".sync", `${ws.task}.discussion`), { recursive: true, force: true });
|
|
92231
92377
|
const left = working.get(key) - 1;
|
|
92232
92378
|
if (left) working.set(key, left);
|
|
92233
92379
|
else working.delete(key);
|
|
92234
92380
|
}
|
|
92235
92381
|
async function workOn(id2) {
|
|
92236
|
-
io.onStop(() =>
|
|
92382
|
+
io.onStop(async () => {
|
|
92383
|
+
await stopRuns(deps.akb, ws, id2, since, deps.stopMs);
|
|
92384
|
+
});
|
|
92237
92385
|
const verb = flow.verb === "create" ? flow.skip_plan ? "implement" : "refine" : flow.verb;
|
|
92238
92386
|
const text3 = flow.verb === "create" ? "" : (flow.text ?? "").trim();
|
|
92387
|
+
if (flow.resume && verb === "refine") {
|
|
92388
|
+
const review2 = reviewOf2(cardFile(ws));
|
|
92389
|
+
if (review2) return { ok: true, report: { card: id2, ...review2 === true ? {} : { review: review2 } } };
|
|
92390
|
+
}
|
|
92239
92391
|
if (verb === "revise" && !text3) return fail("Say what to change.");
|
|
92240
92392
|
let note = verb === "resolve" || verb === "revise" ? text3 : "";
|
|
92241
92393
|
if (verb === "implement" && flow.resume) {
|
|
@@ -92281,7 +92433,7 @@ ${draftLine(ws)}
|
|
|
92281
92433
|
}
|
|
92282
92434
|
function carryArgs(verb) {
|
|
92283
92435
|
if (!["refine", "resolve", "revise", "implement"].includes(verb)) return [];
|
|
92284
|
-
const transcript = writeTranscript(job,
|
|
92436
|
+
const transcript = writeTranscript(job, path30.join(ws.board, ".sync", `${ws.task}.discussion`));
|
|
92285
92437
|
return [
|
|
92286
92438
|
...job.resume ? ["--session", job.resume, ...job.fork ? ["--fork"] : []] : [],
|
|
92287
92439
|
...transcript ? ["--transcript", transcript] : []
|
|
@@ -92289,18 +92441,55 @@ ${draftLine(ws)}
|
|
|
92289
92441
|
}
|
|
92290
92442
|
}
|
|
92291
92443
|
|
|
92444
|
+
// src/recovery.ts
|
|
92445
|
+
import fs28 from "node:fs";
|
|
92446
|
+
import path31 from "node:path";
|
|
92447
|
+
var PREPARE_REASON = "Runner update prepare.";
|
|
92448
|
+
var UPDATE_REASON = "Runner update checkpoint.";
|
|
92449
|
+
var UNCERTAIN = "\u66F4\u65B0\u4E2D\u65AD\u65F6\u6709\u64CD\u4F5C\u7ED3\u679C\u5C1A\u672A\u786E\u8BA4\uFF0C\u8BF7\u68C0\u67E5\u5DF2\u6709\u7ED3\u679C\u540E\u518D\u7EED\u8DD1\u3002";
|
|
92450
|
+
var fileOf = (id) => path31.join(runnerHome(), "checkpoints", `${encodeURIComponent(id)}.json`);
|
|
92451
|
+
function readCheckpoint(id) {
|
|
92452
|
+
try {
|
|
92453
|
+
const held4 = JSON.parse(fs28.readFileSync(fileOf(id), "utf8"));
|
|
92454
|
+
if (!held4 || !Array.isArray(held4.pending) || !held4.pending.every((id2) => typeof id2 === "string")) throw new Error("\u8FDB\u5EA6\u683C\u5F0F\u9519\u8BEF");
|
|
92455
|
+
return held4;
|
|
92456
|
+
} catch (e2) {
|
|
92457
|
+
if (e2.code === "ENOENT") return null;
|
|
92458
|
+
return { updating: true, started: true, pending: ["unknown"] };
|
|
92459
|
+
}
|
|
92460
|
+
}
|
|
92461
|
+
function saveCheckpoint(id, checkpoint) {
|
|
92462
|
+
const file2 = fileOf(id);
|
|
92463
|
+
fs28.mkdirSync(path31.dirname(file2), { recursive: true, mode: 448 });
|
|
92464
|
+
fs28.writeFileSync(`${file2}.tmp`, JSON.stringify(checkpoint), { mode: 384 });
|
|
92465
|
+
fs28.renameSync(`${file2}.tmp`, file2);
|
|
92466
|
+
}
|
|
92467
|
+
function clearCheckpoint(id) {
|
|
92468
|
+
fs28.rmSync(fileOf(id), { force: true });
|
|
92469
|
+
}
|
|
92470
|
+
function checkpointEvent(checkpoint, event2) {
|
|
92471
|
+
if (event2.kind === "tool_call") {
|
|
92472
|
+
const { toolCallId, status: status2, kind } = event2.data;
|
|
92473
|
+
if (["completed", "failed"].includes(status2)) checkpoint.pending = checkpoint.pending.filter((id) => id !== toolCallId);
|
|
92474
|
+
if (!["read", "search", "fetch"].includes(kind) && !["completed", "failed"].includes(status2) && !checkpoint.pending.includes(toolCallId)) checkpoint.pending.push(toolCallId);
|
|
92475
|
+
}
|
|
92476
|
+
if (event2.kind === "tool_call_update" && ["completed", "failed"].includes(event2.data.status)) {
|
|
92477
|
+
checkpoint.pending = checkpoint.pending.filter((id) => id !== event2.data.toolCallId);
|
|
92478
|
+
}
|
|
92479
|
+
}
|
|
92480
|
+
|
|
92292
92481
|
// src/lock.ts
|
|
92293
92482
|
import crypto4 from "node:crypto";
|
|
92294
|
-
import
|
|
92483
|
+
import fs29 from "node:fs";
|
|
92295
92484
|
import net from "node:net";
|
|
92296
|
-
import
|
|
92485
|
+
import path32 from "node:path";
|
|
92297
92486
|
var RETRY_MS = 5e3;
|
|
92298
92487
|
var KIND_MS = 1e3;
|
|
92299
92488
|
var HOLDERS = ["claude-code", "codex", "terminal"];
|
|
92300
92489
|
function lockPath() {
|
|
92301
92490
|
const home4 = runnerHome();
|
|
92302
92491
|
if (process.platform === "win32") return `\\\\.\\pipe\\wildcrane-${crypto4.createHash("sha256").update(home4).digest("hex").slice(0, 16)}`;
|
|
92303
|
-
return
|
|
92492
|
+
return path32.join(home4, "runner.sock");
|
|
92304
92493
|
}
|
|
92305
92494
|
function holdMachine(kind, onHeld, onWaiting) {
|
|
92306
92495
|
const where = lockPath();
|
|
@@ -92315,7 +92504,7 @@ function holdMachine(kind, onHeld, onWaiting) {
|
|
|
92315
92504
|
const attempt = () => {
|
|
92316
92505
|
timer = null;
|
|
92317
92506
|
if (closed) return;
|
|
92318
|
-
if (process.platform !== "win32")
|
|
92507
|
+
if (process.platform !== "win32") fs29.mkdirSync(path32.dirname(where), { recursive: true, mode: 448 });
|
|
92319
92508
|
const s = net.createServer((peer) => {
|
|
92320
92509
|
peers.add(peer);
|
|
92321
92510
|
peer.on("error", () => {
|
|
@@ -92363,7 +92552,7 @@ function holdMachine(kind, onHeld, onWaiting) {
|
|
|
92363
92552
|
later(0);
|
|
92364
92553
|
});
|
|
92365
92554
|
removeIfStill.once("error", () => {
|
|
92366
|
-
|
|
92555
|
+
fs29.rmSync(where, { force: true });
|
|
92367
92556
|
later(50 + Math.random() * 200);
|
|
92368
92557
|
});
|
|
92369
92558
|
return;
|
|
@@ -92393,31 +92582,31 @@ function holdMachine(kind, onHeld, onWaiting) {
|
|
|
92393
92582
|
|
|
92394
92583
|
// src/jobs.ts
|
|
92395
92584
|
import { spawn as spawn4 } from "node:child_process";
|
|
92396
|
-
import
|
|
92397
|
-
import
|
|
92585
|
+
import fs32 from "node:fs";
|
|
92586
|
+
import path35 from "node:path";
|
|
92398
92587
|
|
|
92399
92588
|
// ../cli/src/lib/agent/catalog.ts
|
|
92400
|
-
import
|
|
92401
|
-
import
|
|
92589
|
+
import fs30 from "node:fs";
|
|
92590
|
+
import path33 from "node:path";
|
|
92402
92591
|
var CATALOGUE = "https://models.dev/api.json";
|
|
92403
92592
|
var FRESH_FOR_MS = 24 * 60 * 6e4;
|
|
92404
92593
|
var ANSWER_BY_MS = 2e4;
|
|
92405
92594
|
function cacheFile() {
|
|
92406
|
-
return
|
|
92595
|
+
return path33.join(machineHome(), "models-dev.json");
|
|
92407
92596
|
}
|
|
92408
92597
|
var held2;
|
|
92409
92598
|
function readCache() {
|
|
92410
92599
|
const file2 = cacheFile();
|
|
92411
92600
|
let stamp2;
|
|
92412
92601
|
try {
|
|
92413
|
-
const stat =
|
|
92602
|
+
const stat = fs30.statSync(file2);
|
|
92414
92603
|
stamp2 = `${stat.mtimeMs}:${stat.size}`;
|
|
92415
92604
|
} catch {
|
|
92416
92605
|
return void 0;
|
|
92417
92606
|
}
|
|
92418
92607
|
if (held2?.stamp === stamp2) return held2.cached;
|
|
92419
92608
|
try {
|
|
92420
|
-
const data = JSON.parse(
|
|
92609
|
+
const data = JSON.parse(fs30.readFileSync(file2, "utf8"));
|
|
92421
92610
|
if (!data || typeof data.limits !== "object" || !data.limits) return void 0;
|
|
92422
92611
|
const cached2 = {
|
|
92423
92612
|
fetchedAt: typeof data.fetchedAt === "number" ? data.fetchedAt : 0,
|
|
@@ -92456,8 +92645,8 @@ function refreshCatalog() {
|
|
|
92456
92645
|
const limits = limitsIn(await answer.json());
|
|
92457
92646
|
if (Object.keys(limits).length === 0) return;
|
|
92458
92647
|
const file2 = cacheFile();
|
|
92459
|
-
|
|
92460
|
-
|
|
92648
|
+
fs30.mkdirSync(path33.dirname(file2), { recursive: true });
|
|
92649
|
+
fs30.writeFileSync(file2, JSON.stringify({ fetchedAt: Date.now(), limits }));
|
|
92461
92650
|
} catch {
|
|
92462
92651
|
}
|
|
92463
92652
|
})();
|
|
@@ -92501,9 +92690,9 @@ function contextLimit(harness, model) {
|
|
|
92501
92690
|
}
|
|
92502
92691
|
|
|
92503
92692
|
// src/ideas.ts
|
|
92504
|
-
import
|
|
92505
|
-
import
|
|
92506
|
-
var ideasFileOf = (job) =>
|
|
92693
|
+
import fs31 from "node:fs";
|
|
92694
|
+
import path34 from "node:path";
|
|
92695
|
+
var ideasFileOf = (job) => path34.join(runnerHome(), "ideas", `${job.id}.json`);
|
|
92507
92696
|
async function writeIdeas(job, list) {
|
|
92508
92697
|
const workflows = [];
|
|
92509
92698
|
let after = null;
|
|
@@ -92514,18 +92703,18 @@ async function writeIdeas(job, list) {
|
|
|
92514
92703
|
after = page.value.next;
|
|
92515
92704
|
} while (after);
|
|
92516
92705
|
const file2 = ideasFileOf(job);
|
|
92517
|
-
|
|
92518
|
-
|
|
92706
|
+
fs31.mkdirSync(path34.dirname(file2), { recursive: true });
|
|
92707
|
+
fs31.writeFileSync(file2, `${JSON.stringify({ workflows, ideas: job.discussion.ideas }, null, 2)}
|
|
92519
92708
|
`);
|
|
92520
92709
|
return { file: file2 };
|
|
92521
92710
|
}
|
|
92522
92711
|
function readIdeas(file2) {
|
|
92523
92712
|
try {
|
|
92524
|
-
return JSON.parse(
|
|
92713
|
+
return JSON.parse(fs31.readFileSync(file2, "utf8")).ideas;
|
|
92525
92714
|
} catch {
|
|
92526
92715
|
return void 0;
|
|
92527
92716
|
} finally {
|
|
92528
|
-
|
|
92717
|
+
fs31.rmSync(file2, { force: true });
|
|
92529
92718
|
}
|
|
92530
92719
|
}
|
|
92531
92720
|
|
|
@@ -92561,32 +92750,32 @@ var defaultDeps = (machineId2) => ({
|
|
|
92561
92750
|
akb: currentAkb,
|
|
92562
92751
|
runtimes: detectRuntimes
|
|
92563
92752
|
});
|
|
92564
|
-
var ownFolder = () =>
|
|
92753
|
+
var ownFolder = () => path35.join(runnerHome(), "work");
|
|
92565
92754
|
function folderFor(job) {
|
|
92566
92755
|
if (!job.projectDir) {
|
|
92567
|
-
const cwd =
|
|
92568
|
-
|
|
92756
|
+
const cwd = path35.join(ownFolder(), job.id);
|
|
92757
|
+
fs32.mkdirSync(cwd, { recursive: true });
|
|
92569
92758
|
return { cwd };
|
|
92570
92759
|
}
|
|
92571
92760
|
const real = realpath4(job.projectDir);
|
|
92572
|
-
if (real && allowedProjects().some((root) => real === root || real.startsWith(root +
|
|
92761
|
+
if (real && allowedProjects().some((root) => real === root || real.startsWith(root + path35.sep))) return { cwd: real };
|
|
92573
92762
|
return { refused: `This Runner is not allowed to work in ${job.projectDir}.` };
|
|
92574
92763
|
}
|
|
92575
92764
|
function realpath4(p2) {
|
|
92576
92765
|
try {
|
|
92577
|
-
return
|
|
92766
|
+
return fs32.realpathSync(p2);
|
|
92578
92767
|
} catch {
|
|
92579
92768
|
return null;
|
|
92580
92769
|
}
|
|
92581
92770
|
}
|
|
92582
|
-
var attachmentsOf = (job) =>
|
|
92771
|
+
var attachmentsOf = (job) => path35.join(runnerHome(), "attachments", job.id);
|
|
92583
92772
|
function writeAttachments(job) {
|
|
92584
92773
|
if (!job.attachments.length) return "";
|
|
92585
92774
|
const dir = attachmentsOf(job);
|
|
92586
|
-
|
|
92775
|
+
fs32.mkdirSync(dir, { recursive: true });
|
|
92587
92776
|
const files = job.attachments.map((a3) => {
|
|
92588
|
-
const file2 =
|
|
92589
|
-
|
|
92777
|
+
const file2 = path35.join(dir, path35.basename(a3.name));
|
|
92778
|
+
fs32.writeFileSync(file2, Buffer.from(a3.content, "base64"));
|
|
92590
92779
|
return file2;
|
|
92591
92780
|
});
|
|
92592
92781
|
return `
|
|
@@ -92615,8 +92804,10 @@ function toWire(events, first) {
|
|
|
92615
92804
|
endLog();
|
|
92616
92805
|
return out;
|
|
92617
92806
|
}
|
|
92807
|
+
var leaseNow = () => ({ at: Date.now(), monotonic: performance.now() });
|
|
92618
92808
|
function streamOut(deps, id, lease) {
|
|
92619
92809
|
const wire = [];
|
|
92810
|
+
let firstSeq = null;
|
|
92620
92811
|
let pending = [];
|
|
92621
92812
|
let size = 0;
|
|
92622
92813
|
let lost = false;
|
|
@@ -92628,10 +92819,16 @@ function streamOut(deps, id, lease) {
|
|
|
92628
92819
|
};
|
|
92629
92820
|
const stored = new Promise((resolve2) => ended2 = resolve2);
|
|
92630
92821
|
const children = /* @__PURE__ */ new Set();
|
|
92822
|
+
const killed = /* @__PURE__ */ new Set();
|
|
92631
92823
|
const kill = (child) => {
|
|
92632
92824
|
if (!child.pid) return;
|
|
92633
|
-
child.
|
|
92634
|
-
|
|
92825
|
+
const exited = new Promise((resolve2) => child.once("close", () => resolve2()));
|
|
92826
|
+
killed.add(exited);
|
|
92827
|
+
void exited.then(() => killed.delete(exited));
|
|
92828
|
+
signalTree(child, "SIGTERM");
|
|
92829
|
+
const timer = setTimeout(() => signalTree(child, "SIGKILL"), KILL_GRACE_MS);
|
|
92830
|
+
timer.unref();
|
|
92831
|
+
void exited.then(() => clearTimeout(timer));
|
|
92635
92832
|
};
|
|
92636
92833
|
let halt = null;
|
|
92637
92834
|
let stopping = Promise.resolve();
|
|
@@ -92650,11 +92847,18 @@ function streamOut(deps, id, lease) {
|
|
|
92650
92847
|
const loseLease = () => {
|
|
92651
92848
|
if (lost) return stopping;
|
|
92652
92849
|
lost = true;
|
|
92850
|
+
lease.lost = true;
|
|
92653
92851
|
for (const child of children) kill(child);
|
|
92654
|
-
|
|
92852
|
+
stopping = Promise.all([halt?.(), ...killed]).then(() => {
|
|
92853
|
+
});
|
|
92655
92854
|
return stopping;
|
|
92656
92855
|
};
|
|
92856
|
+
const valid = () => {
|
|
92857
|
+
if (!held3(deps, lease)) void loseLease();
|
|
92858
|
+
return !lost;
|
|
92859
|
+
};
|
|
92657
92860
|
const send3 = () => {
|
|
92861
|
+
if (!valid()) return;
|
|
92658
92862
|
const ws = log.ws;
|
|
92659
92863
|
if (!ws || ws.readyState !== WebSocket.OPEN || log.after === null) return;
|
|
92660
92864
|
const after = log.after;
|
|
@@ -92678,15 +92882,17 @@ function streamOut(deps, id, lease) {
|
|
|
92678
92882
|
};
|
|
92679
92883
|
const flush = () => {
|
|
92680
92884
|
flushedAt = Date.now();
|
|
92681
|
-
if (pending.length)
|
|
92682
|
-
|
|
92885
|
+
if (firstSeq !== null && pending.length) {
|
|
92886
|
+
wire.push(...toWire(pending, firstSeq + wire.length));
|
|
92887
|
+
pending = [];
|
|
92888
|
+
}
|
|
92683
92889
|
size = 0;
|
|
92684
92890
|
send3();
|
|
92685
92891
|
};
|
|
92686
92892
|
const connect2 = async () => {
|
|
92687
92893
|
log.retry = void 0;
|
|
92688
92894
|
const ws = await deps.api.openLog(deps.machineId, id).catch(() => null);
|
|
92689
|
-
if (closed) return ws?.close();
|
|
92895
|
+
if (closed || !valid()) return ws?.close();
|
|
92690
92896
|
if (!ws) return reconnect();
|
|
92691
92897
|
log.ws = ws;
|
|
92692
92898
|
log.heard = Date.now();
|
|
@@ -92701,6 +92907,7 @@ function streamOut(deps, id, lease) {
|
|
|
92701
92907
|
if (said.type === "hello") {
|
|
92702
92908
|
log.tries = 0;
|
|
92703
92909
|
log.after = Number.isInteger(said.after) ? said.after : -1;
|
|
92910
|
+
firstSeq ??= log.after + 1;
|
|
92704
92911
|
log.watched = said.watched === true;
|
|
92705
92912
|
flush();
|
|
92706
92913
|
} else if (said.type === "watched") {
|
|
@@ -92725,6 +92932,7 @@ function streamOut(deps, id, lease) {
|
|
|
92725
92932
|
};
|
|
92726
92933
|
void connect2();
|
|
92727
92934
|
const event2 = (e2) => {
|
|
92935
|
+
if (!valid()) return;
|
|
92728
92936
|
if (e2.kind === "message") messages.push(e2.data.text);
|
|
92729
92937
|
pending.push(e2);
|
|
92730
92938
|
size += JSON.stringify(e2.data).length;
|
|
@@ -92740,11 +92948,19 @@ function streamOut(deps, id, lease) {
|
|
|
92740
92948
|
drop(ws);
|
|
92741
92949
|
ws.close();
|
|
92742
92950
|
}, deps.logPingMs);
|
|
92951
|
+
const expiry = setInterval(valid, Math.min(1e3, deps.leaseMs));
|
|
92952
|
+
let renewing = false;
|
|
92743
92953
|
const renewer = setInterval(async () => {
|
|
92744
|
-
|
|
92954
|
+
if (renewing || !valid()) return;
|
|
92955
|
+
renewing = true;
|
|
92956
|
+
const requestedAt = leaseNow();
|
|
92957
|
+
const renewed = await deps.api.renewJob(deps.machineId, id).catch(() => null).finally(() => {
|
|
92958
|
+
renewing = false;
|
|
92959
|
+
});
|
|
92960
|
+
if (!valid() || closed || !renewed) return;
|
|
92745
92961
|
if (renewed.ok && !renewed.value.renewed) return void loseLease();
|
|
92746
92962
|
if (!renewed.ok) return;
|
|
92747
|
-
lease
|
|
92963
|
+
Object.assign(lease, requestedAt);
|
|
92748
92964
|
if (renewed.value.stop) ask();
|
|
92749
92965
|
if (log.ws?.readyState === WebSocket.OPEN) log.ws.send(JSON.stringify({ type: "alive" }));
|
|
92750
92966
|
}, deps.renewMs);
|
|
@@ -92754,7 +92970,7 @@ function streamOut(deps, id, lease) {
|
|
|
92754
92970
|
if (text3) event2({ kind: "log", data: { text: text3 } });
|
|
92755
92971
|
},
|
|
92756
92972
|
adopt: (child) => {
|
|
92757
|
-
if (
|
|
92973
|
+
if (!valid() || asked) return kill(child);
|
|
92758
92974
|
children.add(child);
|
|
92759
92975
|
child.on("close", () => children.delete(child));
|
|
92760
92976
|
},
|
|
@@ -92765,7 +92981,7 @@ function streamOut(deps, id, lease) {
|
|
|
92765
92981
|
/** What stopping the job's board runs is still doing. */
|
|
92766
92982
|
halted: () => stopping,
|
|
92767
92983
|
stop: loseLease,
|
|
92768
|
-
lost: () =>
|
|
92984
|
+
lost: () => !valid(),
|
|
92769
92985
|
asked: () => asked,
|
|
92770
92986
|
whenAsked: askedOnce,
|
|
92771
92987
|
/** The agent's messages so far. */
|
|
@@ -92775,6 +92991,7 @@ function streamOut(deps, id, lease) {
|
|
|
92775
92991
|
clearInterval(flusher);
|
|
92776
92992
|
clearInterval(pinger);
|
|
92777
92993
|
clearInterval(renewer);
|
|
92994
|
+
clearInterval(expiry);
|
|
92778
92995
|
ending = !lost;
|
|
92779
92996
|
flush();
|
|
92780
92997
|
if (ending) {
|
|
@@ -92787,27 +93004,41 @@ function streamOut(deps, id, lease) {
|
|
|
92787
93004
|
const ws = log.ws;
|
|
92788
93005
|
log.ws = null;
|
|
92789
93006
|
ws?.close();
|
|
93007
|
+
await stopping;
|
|
92790
93008
|
}
|
|
92791
93009
|
};
|
|
92792
93010
|
}
|
|
92793
93011
|
async function runJob(id, deps, track = () => {
|
|
92794
|
-
}) {
|
|
93012
|
+
}, stopped2 = () => false) {
|
|
93013
|
+
const lease = leaseNow();
|
|
92795
93014
|
const claim = await deps.api.claimJob(deps.machineId, id);
|
|
92796
|
-
if (!claim.ok || !claim.value.claimed) return;
|
|
93015
|
+
if (!claim.ok || !claim.value.claimed || stopped2() || !held3(deps, lease)) return;
|
|
92797
93016
|
const job = claim.value.job;
|
|
92798
|
-
const
|
|
93017
|
+
const releases = [];
|
|
92799
93018
|
try {
|
|
92800
|
-
await runClaimed(job, { ...deps, akb: deps.akb() }, track, (dir) =>
|
|
93019
|
+
await runClaimed(job, { ...deps, akb: deps.akb() }, track, (dir) => releases.push(hold(dir)), lease);
|
|
92801
93020
|
} finally {
|
|
92802
|
-
for (const release2 of
|
|
92803
|
-
|
|
93021
|
+
for (const release2 of releases) release2();
|
|
93022
|
+
fs32.rmSync(attachmentsOf(job), { recursive: true, force: true });
|
|
92804
93023
|
}
|
|
92805
93024
|
}
|
|
92806
|
-
async function runClaimed(job, deps, track, keep2) {
|
|
93025
|
+
async function runClaimed(job, deps, track, keep2, lease) {
|
|
92807
93026
|
const id = job.id;
|
|
93027
|
+
const checkpoint = readCheckpoint(id) ?? { pending: [] };
|
|
93028
|
+
const recovering = checkpoint.updating === true;
|
|
93029
|
+
const persist = () => {
|
|
93030
|
+
checkpoint.updating ||= readCheckpoint(id)?.updating;
|
|
93031
|
+
saveCheckpoint(id, checkpoint);
|
|
93032
|
+
};
|
|
93033
|
+
if (recovering && !checkpoint.completed && (checkpoint.pending.length || checkpoint.opaque || !job.flow && checkpoint.started && !checkpoint.session)) {
|
|
93034
|
+
await deps.api.finishJob(deps.machineId, id, "failed", UNCERTAIN);
|
|
93035
|
+
return;
|
|
93036
|
+
}
|
|
93037
|
+
if (recovering && checkpoint.session) job = { ...job, resume: checkpoint.session, fork: false };
|
|
93038
|
+
if (!recovering) persist();
|
|
92808
93039
|
if (job.secret) return runSecret(job, deps);
|
|
92809
93040
|
if (job.test) return runTest(job, deps);
|
|
92810
|
-
if (job.agent) return runAgentJob(job, deps, track, keep2);
|
|
93041
|
+
if (job.agent) return runAgentJob(job, deps, track, keep2, lease, checkpoint, persist);
|
|
92811
93042
|
const task = job.task ?? job.review?.tasks[0] ?? null;
|
|
92812
93043
|
const folder = task && !job.projectDir ? null : folderFor(job);
|
|
92813
93044
|
if (folder && "refused" in folder) {
|
|
@@ -92818,6 +93049,7 @@ async function runClaimed(job, deps, track, keep2) {
|
|
|
92818
93049
|
let cwd = folder?.cwd ?? "";
|
|
92819
93050
|
let run2 = null;
|
|
92820
93051
|
let fresh = null;
|
|
93052
|
+
let missingSessionOnly = false;
|
|
92821
93053
|
let ideas = null;
|
|
92822
93054
|
let discussed;
|
|
92823
93055
|
try {
|
|
@@ -92830,6 +93062,11 @@ async function runClaimed(job, deps, track, keep2) {
|
|
|
92830
93062
|
if (!pulled.ok) throw new Error(pulled.error);
|
|
92831
93063
|
}
|
|
92832
93064
|
}
|
|
93065
|
+
if (checkpoint.completed) {
|
|
93066
|
+
const done = checkpoint.completed;
|
|
93067
|
+
if (done.outcome === "failed" || !ws) return finish(deps, id, lease, done.outcome, done.reason, done.report);
|
|
93068
|
+
return sendBack(deps, id, lease, ws, done.report, () => keepChat(job, done.report.reply));
|
|
93069
|
+
}
|
|
92833
93070
|
if (job.flow && !ws) throw new Error("This job names no task.");
|
|
92834
93071
|
if (job.discussion && job.projectDir && folder) {
|
|
92835
93072
|
const board = openDiscussionFolder(job, folder.cwd);
|
|
@@ -92839,7 +93076,7 @@ async function runClaimed(job, deps, track, keep2) {
|
|
|
92839
93076
|
discussed = board.board;
|
|
92840
93077
|
}
|
|
92841
93078
|
if (job.discussion) {
|
|
92842
|
-
const wrote = await writeIdeas({ ...job, discussion: job.discussion }, deps.api.listWorkflows);
|
|
93079
|
+
const wrote = recovering && fs32.existsSync(ideasFileOf(job)) ? { file: ideasFileOf(job) } : await writeIdeas({ ...job, discussion: job.discussion }, deps.api.listWorkflows);
|
|
92843
93080
|
if ("error" in wrote) throw new Error(wrote.error);
|
|
92844
93081
|
ideas = wrote.file;
|
|
92845
93082
|
}
|
|
@@ -92852,11 +93089,12 @@ async function runClaimed(job, deps, track, keep2) {
|
|
|
92852
93089
|
This task came out of a discussion. Read it for what the card leaves out: ${file2}` : "";
|
|
92853
93090
|
const promptOf = (said2) => {
|
|
92854
93091
|
const lines = (head2 + said2).trim();
|
|
93092
|
+
const prompt = recovering && checkpoint.started ? "Runner \u66F4\u65B0\u540E\u7EE7\u7EED\u4E4B\u524D\u4E2D\u65AD\u7684\u4EFB\u52A1\u3002\u5148\u6838\u5BF9\u5DF2\u6709\u8FDB\u5EA6\u548C\u7ED3\u679C\uFF0C\u4FDD\u7559\u5B8C\u6210\u7684\u5DE5\u4F5C\uFF0C\u4E0D\u8981\u91CD\u590D\u5DF2\u7ECF\u6267\u884C\u7684\u64CD\u4F5C\u3002" : job.prompt;
|
|
92855
93093
|
return lines ? `${lines}
|
|
92856
93094
|
|
|
92857
93095
|
---
|
|
92858
93096
|
|
|
92859
|
-
${
|
|
93097
|
+
${prompt}` : prompt;
|
|
92860
93098
|
};
|
|
92861
93099
|
const planned = (resume, fork, said2 = "") => {
|
|
92862
93100
|
let p2 = deps.plan(job.runtime, promptOf(said2), cwd, resume, job.model, settingsOf(job), fork, job.languageLine ?? "");
|
|
@@ -92870,18 +93108,42 @@ ${job.prompt}` : job.prompt;
|
|
|
92870
93108
|
};
|
|
92871
93109
|
const carried = !!job.resume && (!job.fork || forks(job.runtime));
|
|
92872
93110
|
run2 = carried ? planned(job.resume, !!job.fork) : planned(null, false, transcript);
|
|
92873
|
-
if (carried && transcript) fresh = () => planned(null, false, transcript);
|
|
93111
|
+
if (!recovering && carried && transcript) fresh = () => planned(null, false, transcript);
|
|
93112
|
+
if (!recovering && carried && (job.chat || job.discussion)) {
|
|
93113
|
+
fresh = () => planned(null, false, transcript);
|
|
93114
|
+
missingSessionOnly = true;
|
|
93115
|
+
}
|
|
92874
93116
|
}
|
|
92875
93117
|
} catch (e2) {
|
|
92876
93118
|
await deps.api.finishJob(deps.machineId, id, "failed", e2 instanceof Error ? e2.message : String(e2));
|
|
92877
93119
|
return;
|
|
92878
93120
|
}
|
|
92879
|
-
|
|
93121
|
+
if (!held3(deps, lease)) return;
|
|
92880
93122
|
const stream = streamOut(deps, id, lease);
|
|
92881
|
-
const
|
|
93123
|
+
const remember = (event2) => {
|
|
93124
|
+
if (stream.lost()) return;
|
|
93125
|
+
checkpointEvent(checkpoint, event2);
|
|
93126
|
+
const session = run2?.session();
|
|
93127
|
+
if (session) checkpoint.session = session;
|
|
93128
|
+
persist();
|
|
93129
|
+
stream.event(event2);
|
|
93130
|
+
};
|
|
93131
|
+
const complete = (outcome, report2, reason) => {
|
|
93132
|
+
if (stream.lost()) return;
|
|
93133
|
+
checkpoint.completed = { outcome, report: report2, reason };
|
|
93134
|
+
checkpoint.session = report2.session ?? checkpoint.session;
|
|
93135
|
+
persist();
|
|
93136
|
+
};
|
|
93137
|
+
let savedIdeas;
|
|
93138
|
+
const told = (said2) => {
|
|
93139
|
+
if (ideas) savedIdeas ??= readIdeas(ideas);
|
|
93140
|
+
return savedIdeas ? { ...said2, ideas: savedIdeas } : said2;
|
|
93141
|
+
};
|
|
92882
93142
|
track(stream.stop);
|
|
92883
|
-
const io = { show: stream.out, event:
|
|
93143
|
+
const io = { show: stream.out, event: remember, track: stream.adopt, onStop: stream.onStop, lost: stream.lost };
|
|
92884
93144
|
if (job.review) {
|
|
93145
|
+
checkpoint.started = true;
|
|
93146
|
+
persist();
|
|
92885
93147
|
for (const task2 of job.review.tasks) {
|
|
92886
93148
|
const chat = await deps.api.readChat(task2);
|
|
92887
93149
|
if (chat.ok) keepCloudChat(task2, chat.value.messages);
|
|
@@ -92896,13 +93158,17 @@ ${job.prompt}` : job.prompt;
|
|
|
92896
93158
|
const marks = reviewMarks(tasks);
|
|
92897
93159
|
const refs = tasks.map((c2) => `${c2.task}:${c2.number}`);
|
|
92898
93160
|
const ended3 = refs.length ? await runReview(job, ws, refs, deps, io) : { ok: true, report: {} };
|
|
93161
|
+
if (ended3.ok) complete("done", ended3.report);
|
|
92899
93162
|
await stream.end();
|
|
92900
93163
|
if (stream.lost()) return;
|
|
92901
93164
|
if (!ended3.ok) return finish(deps, id, lease, "failed", ended3.reason);
|
|
92902
93165
|
return sendBack(deps, id, lease, ws, ended3.report, () => markReviewed2(marks));
|
|
92903
93166
|
}
|
|
92904
93167
|
if (!run2) {
|
|
93168
|
+
checkpoint.started = true;
|
|
93169
|
+
persist();
|
|
92905
93170
|
const ended3 = await runFlow(job, ws, deps, io);
|
|
93171
|
+
if (ended3.ok) complete("done", ended3.report);
|
|
92906
93172
|
const stopped2 = !ended3.ok && (stream.asked() || ended3.stopped === true);
|
|
92907
93173
|
if (stopped2 && stream.asked()) await stream.halted();
|
|
92908
93174
|
await stream.end();
|
|
@@ -92911,10 +93177,14 @@ ${job.prompt}` : job.prompt;
|
|
|
92911
93177
|
if (!ended3.ok) return finish(deps, id, lease, "failed", ended3.reason);
|
|
92912
93178
|
return sendBack(deps, id, lease, ws, ended3.report, () => keepChat(job, ended3.report.reply));
|
|
92913
93179
|
}
|
|
93180
|
+
checkpoint.started = true;
|
|
93181
|
+
checkpoint.opaque = !run2.converse && !run2.renderer?.events;
|
|
93182
|
+
checkpoint.session = run2.session() ?? checkpoint.session;
|
|
93183
|
+
persist();
|
|
92914
93184
|
if (run2.converse) {
|
|
92915
93185
|
const plan3 = run2;
|
|
92916
93186
|
const converse = run2.converse;
|
|
92917
|
-
const child = spawn4(plan3.command, plan3.args, { cwd, env: plan3.env, stdio: ["pipe", "pipe", "pipe"] });
|
|
93187
|
+
const child = spawn4(plan3.command, plan3.args, { cwd, env: plan3.env, detached: process.platform !== "win32", stdio: ["pipe", "pipe", "pipe"] });
|
|
92918
93188
|
stream.adopt(child);
|
|
92919
93189
|
child.stdin.on("error", () => {
|
|
92920
93190
|
});
|
|
@@ -92922,11 +93192,12 @@ ${job.prompt}` : job.prompt;
|
|
|
92922
93192
|
child.stderr.on("data", (chunk) => stream.out(quietLines(plan3, chunk)));
|
|
92923
93193
|
const spawned = new Promise((resolve2) => child.on("error", (e2) => resolve2(e2.message)));
|
|
92924
93194
|
const end = await Promise.race([
|
|
92925
|
-
converse(child,
|
|
93195
|
+
converse(child, remember),
|
|
92926
93196
|
spawned.then((error) => ({ ok: false, error })),
|
|
92927
93197
|
// Killed, the turn ends with what it said so far; one that never does is not waited on.
|
|
92928
93198
|
stream.whenAsked.then(() => wait2(KILL_GRACE_MS * 2)).then(() => ({ ok: true }))
|
|
92929
93199
|
]);
|
|
93200
|
+
if (!stream.asked()) complete(end.ok ? "done" : "failed", told(report(job, plan3, end)), end.ok ? void 0 : end.error);
|
|
92930
93201
|
stop(child);
|
|
92931
93202
|
await stream.end();
|
|
92932
93203
|
if (stream.lost()) return;
|
|
@@ -92936,7 +93207,7 @@ ${job.prompt}` : job.prompt;
|
|
|
92936
93207
|
return sendBack(deps, id, lease, ws, said2, () => keepChat(job, said2.reply));
|
|
92937
93208
|
}
|
|
92938
93209
|
const printed = async (plan3) => {
|
|
92939
|
-
const child = spawn4(plan3.command, plan3.args, { cwd, env: plan3.env, stdio: ["pipe", "pipe", "pipe"] });
|
|
93210
|
+
const child = spawn4(plan3.command, plan3.args, { cwd, env: plan3.env, detached: process.platform !== "win32", stdio: ["pipe", "pipe", "pipe"] });
|
|
92940
93211
|
stream.adopt(child);
|
|
92941
93212
|
child.stdin.on("error", () => {
|
|
92942
93213
|
});
|
|
@@ -92945,30 +93216,47 @@ ${job.prompt}` : job.prompt;
|
|
|
92945
93216
|
else child.stdin.end();
|
|
92946
93217
|
child.stdout.setEncoding("utf8");
|
|
92947
93218
|
const structured = !!renderer2.events;
|
|
93219
|
+
let stderr = "";
|
|
93220
|
+
let acted = false;
|
|
92948
93221
|
const fromAgent = (text3) => {
|
|
92949
|
-
if (!structured)
|
|
92950
|
-
|
|
93222
|
+
if (!structured) {
|
|
93223
|
+
if (text3.trim()) acted = true;
|
|
93224
|
+
stream.out(text3);
|
|
93225
|
+
}
|
|
93226
|
+
for (const e2 of renderer2.events?.() ?? []) {
|
|
93227
|
+
if (e2.kind === "message" || e2.kind === "tool_call" || e2.kind === "tool_call_update") acted = true;
|
|
93228
|
+
remember(e2);
|
|
93229
|
+
}
|
|
92951
93230
|
};
|
|
92952
93231
|
child.stdout.on("data", (chunk) => {
|
|
92953
93232
|
fromAgent(renderer2.push(chunk));
|
|
92954
93233
|
if (plan3.stdin && renderer2.result() !== void 0 && !child.stdin.writableEnded) child.stdin.end();
|
|
92955
93234
|
});
|
|
92956
93235
|
child.stderr.setEncoding("utf8");
|
|
92957
|
-
child.stderr.on("data", (chunk) =>
|
|
93236
|
+
child.stderr.on("data", (chunk) => {
|
|
93237
|
+
stderr = (stderr + chunk).slice(-EVENT_CHARS);
|
|
93238
|
+
stream.out(quietLines(plan3, chunk));
|
|
93239
|
+
});
|
|
92958
93240
|
const ended3 = await new Promise((resolve2) => {
|
|
92959
93241
|
child.on("error", (e2) => resolve2({ code: null, error: e2.message }));
|
|
92960
93242
|
child.on("close", (code) => resolve2({ code }));
|
|
92961
93243
|
});
|
|
92962
93244
|
fromAgent(renderer2.flush());
|
|
92963
|
-
return ended3;
|
|
93245
|
+
return { ...ended3, stderr, acted };
|
|
92964
93246
|
};
|
|
92965
93247
|
let plan2 = run2;
|
|
92966
93248
|
let ended2 = await printed(plan2);
|
|
92967
|
-
if (fresh && ended2.code !== 0 && plan2.renderer.result() === void 0 && !
|
|
93249
|
+
if (fresh && ended2.code !== 0 && plan2.renderer.result() === void 0 && !ended2.acted && (!missingSessionOnly || sessionMissing(`${ended2.stderr}
|
|
93250
|
+
${plan2.renderer.failure?.() ?? ""}`)) && !stream.asked() && !stream.lost()) {
|
|
92968
93251
|
plan2 = fresh();
|
|
93252
|
+
run2 = plan2;
|
|
92969
93253
|
ended2 = await printed(plan2);
|
|
92970
93254
|
}
|
|
92971
93255
|
const renderer = plan2.renderer;
|
|
93256
|
+
if (!stream.asked()) {
|
|
93257
|
+
const reason = ended2.error ?? renderer.failure?.() ?? (ended2.code === 0 ? void 0 : `Exited with code ${ended2.code}.`);
|
|
93258
|
+
complete(reason ? "failed" : "done", told(report(job, plan2)), reason);
|
|
93259
|
+
}
|
|
92972
93260
|
await stream.end();
|
|
92973
93261
|
if (stream.lost()) return;
|
|
92974
93262
|
const failure = stream.asked() ? void 0 : ended2.error ?? renderer.failure?.() ?? (ended2.code === 0 ? void 0 : `Exited with code ${ended2.code}.`);
|
|
@@ -92976,7 +93264,7 @@ ${job.prompt}` : job.prompt;
|
|
|
92976
93264
|
if (failure || !ws) return finish(deps, id, lease, failure ? "failed" : "done", failure, said);
|
|
92977
93265
|
return sendBack(deps, id, lease, ws, said, () => keepChat(job, said.reply));
|
|
92978
93266
|
}
|
|
92979
|
-
async function runAgentJob(job, deps, track, keep2) {
|
|
93267
|
+
async function runAgentJob(job, deps, track, keep2, lease, checkpoint, persist) {
|
|
92980
93268
|
const folder = job.projectDir ? folderFor(job) : { refused: "This project has no folder on this computer." };
|
|
92981
93269
|
let ws;
|
|
92982
93270
|
try {
|
|
@@ -92987,10 +93275,23 @@ async function runAgentJob(job, deps, track, keep2) {
|
|
|
92987
93275
|
await deps.api.finishJob(deps.machineId, job.id, "failed", e2 instanceof Error ? e2.message : String(e2));
|
|
92988
93276
|
return;
|
|
92989
93277
|
}
|
|
92990
|
-
|
|
93278
|
+
if (!held3(deps, lease)) return;
|
|
93279
|
+
if (checkpoint.completed) return sendBack(deps, job.id, lease, ws, checkpoint.completed.report, () => {
|
|
93280
|
+
});
|
|
93281
|
+
checkpoint.started = true;
|
|
93282
|
+
persist();
|
|
92991
93283
|
const stream = streamOut(deps, job.id, lease);
|
|
92992
93284
|
track(stream.stop);
|
|
92993
|
-
const ended2 = await runAgent(job, ws, deps, { show: stream.out, event:
|
|
93285
|
+
const ended2 = await runAgent(job, ws, deps, { show: stream.out, event: (event2) => {
|
|
93286
|
+
if (stream.lost()) return;
|
|
93287
|
+
checkpointEvent(checkpoint, event2);
|
|
93288
|
+
persist();
|
|
93289
|
+
stream.event(event2);
|
|
93290
|
+
}, track: stream.adopt, onStop: stream.onStop, lost: stream.lost });
|
|
93291
|
+
if (ended2.ok && !stream.lost()) {
|
|
93292
|
+
checkpoint.completed = { outcome: "done", report: ended2.report };
|
|
93293
|
+
persist();
|
|
93294
|
+
}
|
|
92994
93295
|
await stream.end();
|
|
92995
93296
|
if (stream.lost()) return;
|
|
92996
93297
|
if (!ended2.ok) return finish(deps, job.id, lease, "failed", ended2.reason);
|
|
@@ -92998,29 +93299,53 @@ async function runAgentJob(job, deps, track, keep2) {
|
|
|
92998
93299
|
}
|
|
92999
93300
|
var quietLines = (plan2, chunk) => chunk.split("\n").filter((line) => line && !plan2.quiet(line)).map((line) => `${line}
|
|
93000
93301
|
`).join("");
|
|
93302
|
+
var sessionMissing = (text3) => /\b(?:session|conversation|thread)\b[^\n]*(?:\bnot found\b|\bdoes not exist\b)/i.test(text3) || /\bno (?:conversation|session|thread) found\b/i.test(text3);
|
|
93303
|
+
function signalTree(child, signal) {
|
|
93304
|
+
if (!child.pid) return;
|
|
93305
|
+
if (process.platform === "win32") {
|
|
93306
|
+
const kill = spawn4("taskkill", ["/PID", String(child.pid), "/T", "/F"], { stdio: "ignore" });
|
|
93307
|
+
kill.on("error", () => child.kill(signal));
|
|
93308
|
+
return;
|
|
93309
|
+
}
|
|
93310
|
+
try {
|
|
93311
|
+
process.kill(-child.pid, signal);
|
|
93312
|
+
} catch {
|
|
93313
|
+
child.kill(signal);
|
|
93314
|
+
}
|
|
93315
|
+
}
|
|
93001
93316
|
var stop = (child) => {
|
|
93002
93317
|
if (!child.pid) return;
|
|
93003
|
-
child
|
|
93004
|
-
setTimeout(() => child
|
|
93318
|
+
signalTree(child, "SIGTERM");
|
|
93319
|
+
const timer = setTimeout(() => signalTree(child, "SIGKILL"), KILL_GRACE_MS);
|
|
93320
|
+
timer.unref();
|
|
93321
|
+
child.once("close", () => clearTimeout(timer));
|
|
93005
93322
|
};
|
|
93006
93323
|
var wait2 = (ms) => new Promise((resolve2) => setTimeout(resolve2, ms));
|
|
93007
|
-
var held3 = (deps, lease) =>
|
|
93324
|
+
var held3 = (deps, lease) => {
|
|
93325
|
+
if (Math.max(Date.now() - lease.at, performance.now() - lease.monotonic) >= deps.leaseMs) lease.lost = true;
|
|
93326
|
+
return !lease.lost;
|
|
93327
|
+
};
|
|
93008
93328
|
async function whileOffline(deps, id, lease, attempt) {
|
|
93009
|
-
|
|
93329
|
+
while (held3(deps, lease)) {
|
|
93010
93330
|
const out = await attempt();
|
|
93011
93331
|
if (!("offline" in out && out.offline) || !held3(deps, lease)) return out;
|
|
93012
93332
|
await wait2(deps.retryMs);
|
|
93333
|
+
if (!held3(deps, lease)) return null;
|
|
93334
|
+
const requestedAt = leaseNow();
|
|
93013
93335
|
const renewed = await deps.api.renewJob(deps.machineId, id);
|
|
93014
|
-
if (
|
|
93336
|
+
if (!held3(deps, lease)) return null;
|
|
93337
|
+
if (renewed.ok && renewed.value.renewed) Object.assign(lease, requestedAt);
|
|
93015
93338
|
if (renewed.ok && !renewed.value.renewed) return out;
|
|
93016
93339
|
}
|
|
93340
|
+
return null;
|
|
93017
93341
|
}
|
|
93018
93342
|
async function ended(deps, id, lease, outcome, reason = "", report2) {
|
|
93019
93343
|
const sent = await whileOffline(deps, id, lease, async () => {
|
|
93020
93344
|
const done = await deps.api.finishJob(deps.machineId, id, outcome, reason, report2);
|
|
93021
93345
|
return { offline: !done.ok && !done.code, finished: done.ok && done.value.finished };
|
|
93022
93346
|
});
|
|
93023
|
-
|
|
93347
|
+
if (sent?.finished) clearCheckpoint(id);
|
|
93348
|
+
return sent?.finished ?? false;
|
|
93024
93349
|
}
|
|
93025
93350
|
async function finish(deps, id, lease, outcome, reason = "", report2) {
|
|
93026
93351
|
await ended(deps, id, lease, outcome, reason, report2);
|
|
@@ -93031,6 +93356,7 @@ async function sendBack(deps, id, lease, ws, said, landed = () => {
|
|
|
93031
93356
|
if (built && !built.ok) return finish(deps, id, lease, "failed", built.reason, said);
|
|
93032
93357
|
const report2 = built ? { ...said, workflow: { files: built.files } } : said;
|
|
93033
93358
|
const pushed = await whileOffline(deps, id, lease, () => push(ws, { id, machineId: deps.machineId }));
|
|
93359
|
+
if (!pushed) return;
|
|
93034
93360
|
if (pushed.ok) {
|
|
93035
93361
|
if (await ended(deps, id, lease, "done", "", report2)) landed();
|
|
93036
93362
|
return;
|
|
@@ -93055,12 +93381,12 @@ async function runTest(job, deps) {
|
|
|
93055
93381
|
const report2 = (await deps.runtimes()).find((r2) => r2.name === job.runtime);
|
|
93056
93382
|
if (!report2?.installed) return finish2("failed", "not_installed");
|
|
93057
93383
|
if (report2.loggedIn === false) return finish2("failed", "signed_out");
|
|
93058
|
-
const cwd =
|
|
93059
|
-
|
|
93384
|
+
const cwd = path35.join(ownFolder(), "test");
|
|
93385
|
+
fs32.mkdirSync(cwd, { recursive: true });
|
|
93060
93386
|
const run2 = deps.plan(job.runtime, job.prompt, cwd, null, job.model, settingsOf(job));
|
|
93061
93387
|
const startedAt = Date.now();
|
|
93062
93388
|
if (run2.converse) {
|
|
93063
|
-
const child = spawn4(run2.command, run2.args, { cwd, env: run2.env, stdio: ["pipe", "pipe", "ignore"] });
|
|
93389
|
+
const child = spawn4(run2.command, run2.args, { cwd, env: run2.env, detached: process.platform !== "win32", stdio: ["pipe", "pipe", "ignore"] });
|
|
93064
93390
|
child.stdin.on("error", () => {
|
|
93065
93391
|
});
|
|
93066
93392
|
let timer;
|
|
@@ -93080,7 +93406,7 @@ async function runTest(job, deps) {
|
|
|
93080
93406
|
const renderer = run2.renderer;
|
|
93081
93407
|
const ended2 = await new Promise((resolve2) => {
|
|
93082
93408
|
let said = "";
|
|
93083
|
-
const child = spawn4(run2.command, run2.args, { cwd, env: run2.env, stdio: ["pipe", "pipe", "pipe"] });
|
|
93409
|
+
const child = spawn4(run2.command, run2.args, { cwd, env: run2.env, detached: process.platform !== "win32", stdio: ["pipe", "pipe", "pipe"] });
|
|
93084
93410
|
const timer = setTimeout(() => {
|
|
93085
93411
|
child.kill("SIGTERM");
|
|
93086
93412
|
setTimeout(() => child.kill("SIGKILL"), KILL_GRACE_MS).unref();
|
|
@@ -93214,6 +93540,7 @@ function startRunner(options) {
|
|
|
93214
93540
|
let registration = null;
|
|
93215
93541
|
let connected = false;
|
|
93216
93542
|
let closed = false;
|
|
93543
|
+
let preparing = false;
|
|
93217
93544
|
let attempts = 0;
|
|
93218
93545
|
let live = null;
|
|
93219
93546
|
let presence = null;
|
|
@@ -93221,7 +93548,10 @@ function startRunner(options) {
|
|
|
93221
93548
|
let timer = null;
|
|
93222
93549
|
let reading = false;
|
|
93223
93550
|
let readAgain = false;
|
|
93551
|
+
let readDone = Promise.resolve();
|
|
93552
|
+
const jobs = /* @__PURE__ */ new Set();
|
|
93224
93553
|
const running = /* @__PURE__ */ new Map();
|
|
93554
|
+
const attempted = /* @__PURE__ */ new Set();
|
|
93225
93555
|
let stop2 = () => {
|
|
93226
93556
|
};
|
|
93227
93557
|
const stopped2 = new Promise((resolve2) => stop2 = resolve2);
|
|
@@ -93354,19 +93684,31 @@ function startRunner(options) {
|
|
|
93354
93684
|
});
|
|
93355
93685
|
};
|
|
93356
93686
|
const readJobs = async () => {
|
|
93357
|
-
if (closed || !registration) return;
|
|
93687
|
+
if (closed || preparing || !registration) return;
|
|
93358
93688
|
if (reading) {
|
|
93359
93689
|
readAgain = true;
|
|
93360
93690
|
return;
|
|
93361
93691
|
}
|
|
93362
93692
|
reading = true;
|
|
93693
|
+
let readEnded = () => {
|
|
93694
|
+
};
|
|
93695
|
+
readDone = new Promise((resolve2) => readEnded = resolve2);
|
|
93363
93696
|
try {
|
|
93364
93697
|
const list = await listJobs(registration.machineId);
|
|
93365
|
-
if (!list.ok) return;
|
|
93698
|
+
if (!list.ok || closed) return;
|
|
93699
|
+
const listed2 = new Set(list.value.jobs.map((job) => job.id));
|
|
93700
|
+
for (const id of attempted) if (!listed2.has(id) && !running.has(id)) attempted.delete(id);
|
|
93366
93701
|
for (const job of list.value.jobs) {
|
|
93367
|
-
if (
|
|
93368
|
-
|
|
93369
|
-
|
|
93702
|
+
if (closed || preparing) break;
|
|
93703
|
+
if (job.state === "claimed" && !running.has(job.id) && !attempted.has(job.id)) {
|
|
93704
|
+
const failure = await stopLeftOn(job);
|
|
93705
|
+
if (closed || preparing) break;
|
|
93706
|
+
const checkpoint = readCheckpoint(job.id);
|
|
93707
|
+
const uncertain = checkpoint?.updating && !checkpoint.completed && (checkpoint.pending.length > 0 || checkpoint.opaque || !job.flow && checkpoint.started && !checkpoint.session);
|
|
93708
|
+
if (checkpoint?.updating) status(uncertain ? UNCERTAIN : "\u6B63\u5728\u6062\u590D\u66F4\u65B0\u524D\u7684\u4EFB\u52A1\u2026");
|
|
93709
|
+
const reason = failure ?? (uncertain ? UNCERTAIN : checkpoint?.updating ? UPDATE_REASON : "The Runner restarted while this job was running.");
|
|
93710
|
+
const recovered = await finishJob(registration.machineId, job.id, "failed", reason, checkpoint?.session ? { session: checkpoint.session } : void 0);
|
|
93711
|
+
if (recovered.ok && reason === UPDATE_REASON) readAgain = true;
|
|
93370
93712
|
continue;
|
|
93371
93713
|
}
|
|
93372
93714
|
if (job.state !== "waiting" || running.has(job.id)) continue;
|
|
@@ -93374,6 +93716,7 @@ function startRunner(options) {
|
|
|
93374
93716
|
}
|
|
93375
93717
|
} finally {
|
|
93376
93718
|
reading = false;
|
|
93719
|
+
readEnded();
|
|
93377
93720
|
if (readAgain) {
|
|
93378
93721
|
readAgain = false;
|
|
93379
93722
|
void readJobs();
|
|
@@ -93384,12 +93727,12 @@ function startRunner(options) {
|
|
|
93384
93727
|
if (!job.flow || !job.task) return;
|
|
93385
93728
|
try {
|
|
93386
93729
|
const folder = job.projectDir ? folderFor(job) : null;
|
|
93387
|
-
if (folder && "refused" in folder) return;
|
|
93730
|
+
if (folder && "refused" in folder) return folder.refused;
|
|
93388
93731
|
const ws = openTaskFolder(job, folder?.cwd ?? null);
|
|
93389
93732
|
const card = akbCardOf(ws);
|
|
93390
93733
|
if (card) await stopLeftBehind(deps().akb(), ws, card, deps().stopMs);
|
|
93391
93734
|
} catch (e2) {
|
|
93392
|
-
|
|
93735
|
+
return e2 instanceof Error ? e2.message : String(e2);
|
|
93393
93736
|
}
|
|
93394
93737
|
};
|
|
93395
93738
|
let reviewing = false;
|
|
@@ -93405,33 +93748,57 @@ function startRunner(options) {
|
|
|
93405
93748
|
}
|
|
93406
93749
|
};
|
|
93407
93750
|
const start = (id) => {
|
|
93751
|
+
attempted.add(id);
|
|
93408
93752
|
running.set(id, null);
|
|
93409
93753
|
status(idle2());
|
|
93410
|
-
|
|
93754
|
+
const job = runJob(id, deps(), (halt) => {
|
|
93755
|
+
running.set(id, halt);
|
|
93756
|
+
if (closed) void halt();
|
|
93757
|
+
}, () => closed).catch(() => {
|
|
93411
93758
|
}).finally(() => {
|
|
93759
|
+
jobs.delete(job);
|
|
93412
93760
|
running.delete(id);
|
|
93413
93761
|
if (closed) return;
|
|
93414
93762
|
boards?.look();
|
|
93415
93763
|
status(idle2());
|
|
93416
93764
|
void readJobs();
|
|
93417
93765
|
});
|
|
93766
|
+
jobs.add(job);
|
|
93418
93767
|
};
|
|
93419
|
-
const close = async (release2 = true) => {
|
|
93768
|
+
const close = async (release2 = true, updating = false) => {
|
|
93420
93769
|
if (closed) return;
|
|
93770
|
+
if (updating) {
|
|
93771
|
+
preparing = true;
|
|
93772
|
+
await readDone;
|
|
93773
|
+
for (const id of running.keys()) {
|
|
93774
|
+
const prepared = await finishJob(registration.machineId, id, "failed", PREPARE_REASON);
|
|
93775
|
+
if (!prepared.ok || !prepared.value.prepared && !prepared.value.finished) {
|
|
93776
|
+
preparing = false;
|
|
93777
|
+
void readJobs();
|
|
93778
|
+
throw new Error("\u66F4\u65B0\u6682\u7F13\uFF1A\u672A\u80FD\u4FDD\u5B58\u4E91\u7AEF\u4EFB\u52A1\uFF0C\u7A0D\u540E\u91CD\u8BD5\u3002");
|
|
93779
|
+
}
|
|
93780
|
+
}
|
|
93781
|
+
}
|
|
93421
93782
|
closed = true;
|
|
93422
|
-
|
|
93423
|
-
|
|
93783
|
+
if (updating) {
|
|
93784
|
+
for (const id of running.keys()) {
|
|
93785
|
+
const checkpoint = readCheckpoint(id) ?? { pending: [] };
|
|
93786
|
+
saveCheckpoint(id, { ...checkpoint, updating: true });
|
|
93787
|
+
}
|
|
93788
|
+
}
|
|
93424
93789
|
if (timer) clearTimeout(timer);
|
|
93425
93790
|
if (agentsTimer) clearTimeout(agentsTimer);
|
|
93426
93791
|
clearInterval(sweepTimer);
|
|
93427
93792
|
live?.close();
|
|
93428
93793
|
presence?.close();
|
|
93429
93794
|
boards?.close();
|
|
93430
|
-
const stops = Promise.all([...running.values()].map((halt) => halt?.()));
|
|
93795
|
+
const stops = Promise.all([readDone, ...jobs, ...[...running.values()].map((halt) => halt?.())]);
|
|
93431
93796
|
let timeout;
|
|
93432
|
-
|
|
93797
|
+
if (updating) await stops;
|
|
93798
|
+
else await Promise.race([stops, new Promise((resolve2) => timeout = setTimeout(resolve2, (options.deps?.stopMs ?? STOP_MS) + 1e3))]);
|
|
93433
93799
|
clearTimeout(timeout);
|
|
93434
|
-
if (release2 && !
|
|
93800
|
+
if (release2 && !lock.waited() && registration) await release(registration.machineId);
|
|
93801
|
+
lock.release();
|
|
93435
93802
|
};
|
|
93436
93803
|
removeLegacy();
|
|
93437
93804
|
pruneChats();
|
|
@@ -93439,7 +93806,7 @@ function startRunner(options) {
|
|
|
93439
93806
|
status(t.waitingHere(holder));
|
|
93440
93807
|
options.onWaiting?.(holder);
|
|
93441
93808
|
});
|
|
93442
|
-
return { stopped: stopped2, close: () => close(true), renew: () => schedule(0) };
|
|
93809
|
+
return { stopped: stopped2, close: () => close(true), update: () => close(false, true), renew: () => schedule(0) };
|
|
93443
93810
|
}
|
|
93444
93811
|
|
|
93445
93812
|
// src/signin.ts
|
|
@@ -93558,12 +93925,21 @@ async function main() {
|
|
|
93558
93925
|
const id = machineId();
|
|
93559
93926
|
const runner = startRunner({
|
|
93560
93927
|
registration: async () => ({ machineId: id, machineName: machineName(), version: VERSION, runtimes: await detectRuntimes(true) }),
|
|
93561
|
-
kind: "terminal",
|
|
93928
|
+
kind: process.env.WILDCRANE_RUNNER_KIND === "codex" ? "codex" : process.env.WILDCRANE_RUNNER_KIND === "claude-code" ? "claude-code" : "terminal",
|
|
93562
93929
|
onConnected: () => tell({ type: "connected" }),
|
|
93563
93930
|
onWaiting: () => tell({ type: "waiting" }),
|
|
93564
93931
|
// Tests shorten the job poll, which stands in when Realtime is out of reach.
|
|
93565
93932
|
pollMs: Number(process.env.WILDCRANE_POLL_MS) || void 0
|
|
93566
93933
|
});
|
|
93934
|
+
process.on("message", (message) => {
|
|
93935
|
+
if (message.type === "renew") return runner.renew();
|
|
93936
|
+
if (message.type !== "update") return;
|
|
93937
|
+
status("\u6B63\u5728\u66F4\u65B0 Runner\uFF0C\u91CD\u542F\u540E\u81EA\u52A8\u6062\u590D\u4EFB\u52A1\u2026");
|
|
93938
|
+
void runner.update().then(() => process.exit(EXIT_UPDATE)).catch((error) => {
|
|
93939
|
+
status(String(error));
|
|
93940
|
+
tell({ type: "update-deferred" });
|
|
93941
|
+
});
|
|
93942
|
+
});
|
|
93567
93943
|
for (const signal of ["SIGINT", "SIGTERM"]) {
|
|
93568
93944
|
process.on(signal, async () => {
|
|
93569
93945
|
await runner.close();
|