oh-my-opencode-slim 2.0.0-beta.7 → 2.0.0-beta.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.ja-JP.md +636 -0
- package/README.md +15 -4
- package/README.zh-CN.md +625 -0
- package/dist/cli/index.js +16 -0
- package/dist/index.js +220 -165
- package/dist/multiplexer/session-manager.d.ts +4 -1
- package/dist/tools/ast-grep/tools.d.ts +1 -1
- package/dist/tui.js +1 -15
- package/dist/utils/background-job-board.d.ts +2 -1
- package/package.json +4 -3
package/dist/index.js
CHANGED
|
@@ -4,35 +4,21 @@ var __getProtoOf = Object.getPrototypeOf;
|
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
function __accessProp(key) {
|
|
8
|
-
return this[key];
|
|
9
|
-
}
|
|
10
|
-
var __toESMCache_node;
|
|
11
|
-
var __toESMCache_esm;
|
|
12
7
|
var __toESM = (mod, isNodeMode, target) => {
|
|
13
|
-
var canCache = mod != null && typeof mod === "object";
|
|
14
|
-
if (canCache) {
|
|
15
|
-
var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
|
|
16
|
-
var cached = cache.get(mod);
|
|
17
|
-
if (cached)
|
|
18
|
-
return cached;
|
|
19
|
-
}
|
|
20
8
|
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
21
9
|
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
22
10
|
for (let key of __getOwnPropNames(mod))
|
|
23
11
|
if (!__hasOwnProp.call(to, key))
|
|
24
12
|
__defProp(to, key, {
|
|
25
|
-
get:
|
|
13
|
+
get: () => mod[key],
|
|
26
14
|
enumerable: true
|
|
27
15
|
});
|
|
28
|
-
if (canCache)
|
|
29
|
-
cache.set(mod, to);
|
|
30
16
|
return to;
|
|
31
17
|
};
|
|
32
18
|
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
33
19
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
34
20
|
|
|
35
|
-
// node_modules
|
|
21
|
+
// node_modules/@mozilla/readability/Readability.js
|
|
36
22
|
var require_Readability = __commonJS((exports, module) => {
|
|
37
23
|
function Readability(doc, options) {
|
|
38
24
|
if (options && options.documentElement) {
|
|
@@ -1603,7 +1589,7 @@ var require_Readability = __commonJS((exports, module) => {
|
|
|
1603
1589
|
}
|
|
1604
1590
|
});
|
|
1605
1591
|
|
|
1606
|
-
// node_modules
|
|
1592
|
+
// node_modules/@mozilla/readability/Readability-readerable.js
|
|
1607
1593
|
var require_Readability_readerable = __commonJS((exports, module) => {
|
|
1608
1594
|
var REGEXPS = {
|
|
1609
1595
|
unlikelyCandidates: /-ad-|ai2html|banner|breadcrumbs|combx|comment|community|cover-wrap|disqus|extra|footer|gdpr|header|legends|menu|related|remark|replies|rss|shoutbox|sidebar|skyscraper|social|sponsor|supplemental|ad-break|agegate|pagination|pager|popup|yom-remote/i,
|
|
@@ -1659,7 +1645,7 @@ var require_Readability_readerable = __commonJS((exports, module) => {
|
|
|
1659
1645
|
}
|
|
1660
1646
|
});
|
|
1661
1647
|
|
|
1662
|
-
// node_modules
|
|
1648
|
+
// node_modules/@mozilla/readability/index.js
|
|
1663
1649
|
var require_readability = __commonJS((exports, module) => {
|
|
1664
1650
|
var Readability = require_Readability();
|
|
1665
1651
|
var isProbablyReaderable = require_Readability_readerable();
|
|
@@ -1669,7 +1655,7 @@ var require_readability = __commonJS((exports, module) => {
|
|
|
1669
1655
|
};
|
|
1670
1656
|
});
|
|
1671
1657
|
|
|
1672
|
-
// node_modules
|
|
1658
|
+
// node_modules/@mixmark-io/domino/lib/Event.js
|
|
1673
1659
|
var require_Event = __commonJS((exports, module) => {
|
|
1674
1660
|
module.exports = Event;
|
|
1675
1661
|
Event.CAPTURING_PHASE = 1;
|
|
@@ -1726,7 +1712,7 @@ var require_Event = __commonJS((exports, module) => {
|
|
|
1726
1712
|
});
|
|
1727
1713
|
});
|
|
1728
1714
|
|
|
1729
|
-
// node_modules
|
|
1715
|
+
// node_modules/@mixmark-io/domino/lib/UIEvent.js
|
|
1730
1716
|
var require_UIEvent = __commonJS((exports, module) => {
|
|
1731
1717
|
var Event = require_Event();
|
|
1732
1718
|
module.exports = UIEvent;
|
|
@@ -1745,7 +1731,7 @@ var require_UIEvent = __commonJS((exports, module) => {
|
|
|
1745
1731
|
});
|
|
1746
1732
|
});
|
|
1747
1733
|
|
|
1748
|
-
// node_modules
|
|
1734
|
+
// node_modules/@mixmark-io/domino/lib/MouseEvent.js
|
|
1749
1735
|
var require_MouseEvent = __commonJS((exports, module) => {
|
|
1750
1736
|
var UIEvent = require_UIEvent();
|
|
1751
1737
|
module.exports = MouseEvent;
|
|
@@ -1803,7 +1789,7 @@ var require_MouseEvent = __commonJS((exports, module) => {
|
|
|
1803
1789
|
});
|
|
1804
1790
|
});
|
|
1805
1791
|
|
|
1806
|
-
// node_modules
|
|
1792
|
+
// node_modules/@mixmark-io/domino/lib/DOMException.js
|
|
1807
1793
|
var require_DOMException = __commonJS((exports, module) => {
|
|
1808
1794
|
module.exports = DOMException;
|
|
1809
1795
|
var INDEX_SIZE_ERR = 1;
|
|
@@ -1927,12 +1913,12 @@ var require_DOMException = __commonJS((exports, module) => {
|
|
|
1927
1913
|
var c;
|
|
1928
1914
|
});
|
|
1929
1915
|
|
|
1930
|
-
// node_modules
|
|
1916
|
+
// node_modules/@mixmark-io/domino/lib/config.js
|
|
1931
1917
|
var require_config = __commonJS((exports) => {
|
|
1932
1918
|
exports.isApiWritable = !globalThis.__domino_frozen__;
|
|
1933
1919
|
});
|
|
1934
1920
|
|
|
1935
|
-
// node_modules
|
|
1921
|
+
// node_modules/@mixmark-io/domino/lib/utils.js
|
|
1936
1922
|
var require_utils = __commonJS((exports) => {
|
|
1937
1923
|
var DOMException = require_DOMException();
|
|
1938
1924
|
var ERR = DOMException;
|
|
@@ -2045,7 +2031,7 @@ var require_utils = __commonJS((exports) => {
|
|
|
2045
2031
|
};
|
|
2046
2032
|
});
|
|
2047
2033
|
|
|
2048
|
-
// node_modules
|
|
2034
|
+
// node_modules/@mixmark-io/domino/lib/EventTarget.js
|
|
2049
2035
|
var require_EventTarget = __commonJS((exports, module) => {
|
|
2050
2036
|
var Event = require_Event();
|
|
2051
2037
|
var MouseEvent = require_MouseEvent();
|
|
@@ -2233,7 +2219,7 @@ var require_EventTarget = __commonJS((exports, module) => {
|
|
|
2233
2219
|
};
|
|
2234
2220
|
});
|
|
2235
2221
|
|
|
2236
|
-
// node_modules
|
|
2222
|
+
// node_modules/@mixmark-io/domino/lib/LinkedList.js
|
|
2237
2223
|
var require_LinkedList = __commonJS((exports, module) => {
|
|
2238
2224
|
var utils = require_utils();
|
|
2239
2225
|
var LinkedList = module.exports = {
|
|
@@ -2276,7 +2262,7 @@ var require_LinkedList = __commonJS((exports, module) => {
|
|
|
2276
2262
|
};
|
|
2277
2263
|
});
|
|
2278
2264
|
|
|
2279
|
-
// node_modules
|
|
2265
|
+
// node_modules/@mixmark-io/domino/lib/NodeUtils.js
|
|
2280
2266
|
var require_NodeUtils = __commonJS((exports, module) => {
|
|
2281
2267
|
module.exports = {
|
|
2282
2268
|
serializeOne,
|
|
@@ -2452,7 +2438,7 @@ var require_NodeUtils = __commonJS((exports, module) => {
|
|
|
2452
2438
|
}
|
|
2453
2439
|
});
|
|
2454
2440
|
|
|
2455
|
-
// node_modules
|
|
2441
|
+
// node_modules/@mixmark-io/domino/lib/Node.js
|
|
2456
2442
|
var require_Node = __commonJS((exports, module) => {
|
|
2457
2443
|
module.exports = Node;
|
|
2458
2444
|
var EventTarget = require_EventTarget();
|
|
@@ -3013,7 +2999,7 @@ var require_Node = __commonJS((exports, module) => {
|
|
|
3013
2999
|
});
|
|
3014
3000
|
});
|
|
3015
3001
|
|
|
3016
|
-
// node_modules
|
|
3002
|
+
// node_modules/@mixmark-io/domino/lib/NodeList.es6.js
|
|
3017
3003
|
var require_NodeList_es6 = __commonJS((exports, module) => {
|
|
3018
3004
|
module.exports = class NodeList extends Array {
|
|
3019
3005
|
constructor(a) {
|
|
@@ -3030,7 +3016,7 @@ var require_NodeList_es6 = __commonJS((exports, module) => {
|
|
|
3030
3016
|
};
|
|
3031
3017
|
});
|
|
3032
3018
|
|
|
3033
|
-
// node_modules
|
|
3019
|
+
// node_modules/@mixmark-io/domino/lib/NodeList.es5.js
|
|
3034
3020
|
var require_NodeList_es5 = __commonJS((exports, module) => {
|
|
3035
3021
|
function item(i) {
|
|
3036
3022
|
return this[i] || null;
|
|
@@ -3044,7 +3030,7 @@ var require_NodeList_es5 = __commonJS((exports, module) => {
|
|
|
3044
3030
|
module.exports = NodeList;
|
|
3045
3031
|
});
|
|
3046
3032
|
|
|
3047
|
-
// node_modules
|
|
3033
|
+
// node_modules/@mixmark-io/domino/lib/NodeList.js
|
|
3048
3034
|
var require_NodeList = __commonJS((exports, module) => {
|
|
3049
3035
|
var NodeList;
|
|
3050
3036
|
try {
|
|
@@ -3055,7 +3041,7 @@ var require_NodeList = __commonJS((exports, module) => {
|
|
|
3055
3041
|
module.exports = NodeList;
|
|
3056
3042
|
});
|
|
3057
3043
|
|
|
3058
|
-
// node_modules
|
|
3044
|
+
// node_modules/@mixmark-io/domino/lib/ContainerNode.js
|
|
3059
3045
|
var require_ContainerNode = __commonJS((exports, module) => {
|
|
3060
3046
|
module.exports = ContainerNode;
|
|
3061
3047
|
var Node = require_Node();
|
|
@@ -3123,7 +3109,7 @@ var require_ContainerNode = __commonJS((exports, module) => {
|
|
|
3123
3109
|
});
|
|
3124
3110
|
});
|
|
3125
3111
|
|
|
3126
|
-
// node_modules
|
|
3112
|
+
// node_modules/@mixmark-io/domino/lib/xmlnames.js
|
|
3127
3113
|
var require_xmlnames = __commonJS((exports) => {
|
|
3128
3114
|
exports.isValidName = isValidName;
|
|
3129
3115
|
exports.isValidQName = isValidQName;
|
|
@@ -3172,7 +3158,7 @@ var require_xmlnames = __commonJS((exports) => {
|
|
|
3172
3158
|
}
|
|
3173
3159
|
});
|
|
3174
3160
|
|
|
3175
|
-
// node_modules
|
|
3161
|
+
// node_modules/@mixmark-io/domino/lib/attributes.js
|
|
3176
3162
|
var require_attributes = __commonJS((exports) => {
|
|
3177
3163
|
var utils = require_utils();
|
|
3178
3164
|
exports.property = function(attr) {
|
|
@@ -3308,7 +3294,7 @@ var require_attributes = __commonJS((exports) => {
|
|
|
3308
3294
|
};
|
|
3309
3295
|
});
|
|
3310
3296
|
|
|
3311
|
-
// node_modules
|
|
3297
|
+
// node_modules/@mixmark-io/domino/lib/FilteredElementList.js
|
|
3312
3298
|
var require_FilteredElementList = __commonJS((exports, module) => {
|
|
3313
3299
|
module.exports = FilteredElementList;
|
|
3314
3300
|
var Node = require_Node();
|
|
@@ -3374,7 +3360,7 @@ var require_FilteredElementList = __commonJS((exports, module) => {
|
|
|
3374
3360
|
});
|
|
3375
3361
|
});
|
|
3376
3362
|
|
|
3377
|
-
// node_modules
|
|
3363
|
+
// node_modules/@mixmark-io/domino/lib/DOMTokenList.js
|
|
3378
3364
|
var require_DOMTokenList = __commonJS((exports, module) => {
|
|
3379
3365
|
var utils = require_utils();
|
|
3380
3366
|
module.exports = DOMTokenList;
|
|
@@ -3536,7 +3522,7 @@ var require_DOMTokenList = __commonJS((exports, module) => {
|
|
|
3536
3522
|
}
|
|
3537
3523
|
});
|
|
3538
3524
|
|
|
3539
|
-
// node_modules
|
|
3525
|
+
// node_modules/@mixmark-io/domino/lib/select.js
|
|
3540
3526
|
var require_select = __commonJS((exports, module) => {
|
|
3541
3527
|
var window2 = Object.create(null, {
|
|
3542
3528
|
location: { get: function() {
|
|
@@ -4279,7 +4265,7 @@ var require_select = __commonJS((exports, module) => {
|
|
|
4279
4265
|
};
|
|
4280
4266
|
});
|
|
4281
4267
|
|
|
4282
|
-
// node_modules
|
|
4268
|
+
// node_modules/@mixmark-io/domino/lib/ChildNode.js
|
|
4283
4269
|
var require_ChildNode = __commonJS((exports, module) => {
|
|
4284
4270
|
var Node = require_Node();
|
|
4285
4271
|
var LinkedList = require_LinkedList();
|
|
@@ -4369,7 +4355,7 @@ var require_ChildNode = __commonJS((exports, module) => {
|
|
|
4369
4355
|
module.exports = ChildNode;
|
|
4370
4356
|
});
|
|
4371
4357
|
|
|
4372
|
-
// node_modules
|
|
4358
|
+
// node_modules/@mixmark-io/domino/lib/NonDocumentTypeChildNode.js
|
|
4373
4359
|
var require_NonDocumentTypeChildNode = __commonJS((exports, module) => {
|
|
4374
4360
|
var Node = require_Node();
|
|
4375
4361
|
var NonDocumentTypeChildNode = {
|
|
@@ -4395,7 +4381,7 @@ var require_NonDocumentTypeChildNode = __commonJS((exports, module) => {
|
|
|
4395
4381
|
module.exports = NonDocumentTypeChildNode;
|
|
4396
4382
|
});
|
|
4397
4383
|
|
|
4398
|
-
// node_modules
|
|
4384
|
+
// node_modules/@mixmark-io/domino/lib/NamedNodeMap.js
|
|
4399
4385
|
var require_NamedNodeMap = __commonJS((exports, module) => {
|
|
4400
4386
|
module.exports = NamedNodeMap;
|
|
4401
4387
|
var utils = require_utils();
|
|
@@ -4432,7 +4418,7 @@ var require_NamedNodeMap = __commonJS((exports, module) => {
|
|
|
4432
4418
|
});
|
|
4433
4419
|
});
|
|
4434
4420
|
|
|
4435
|
-
// node_modules
|
|
4421
|
+
// node_modules/@mixmark-io/domino/lib/Element.js
|
|
4436
4422
|
var require_Element = __commonJS((exports, module) => {
|
|
4437
4423
|
module.exports = Element;
|
|
4438
4424
|
var xml = require_xmlnames();
|
|
@@ -5333,7 +5319,7 @@ var require_Element = __commonJS((exports, module) => {
|
|
|
5333
5319
|
}
|
|
5334
5320
|
});
|
|
5335
5321
|
|
|
5336
|
-
// node_modules
|
|
5322
|
+
// node_modules/@mixmark-io/domino/lib/Leaf.js
|
|
5337
5323
|
var require_Leaf = __commonJS((exports, module) => {
|
|
5338
5324
|
module.exports = Leaf;
|
|
5339
5325
|
var Node = require_Node();
|
|
@@ -5374,7 +5360,7 @@ var require_Leaf = __commonJS((exports, module) => {
|
|
|
5374
5360
|
});
|
|
5375
5361
|
});
|
|
5376
5362
|
|
|
5377
|
-
// node_modules
|
|
5363
|
+
// node_modules/@mixmark-io/domino/lib/CharacterData.js
|
|
5378
5364
|
var require_CharacterData = __commonJS((exports, module) => {
|
|
5379
5365
|
module.exports = CharacterData;
|
|
5380
5366
|
var Leaf = require_Leaf();
|
|
@@ -5431,7 +5417,7 @@ var require_CharacterData = __commonJS((exports, module) => {
|
|
|
5431
5417
|
Object.defineProperties(CharacterData.prototype, NonDocumentTypeChildNode);
|
|
5432
5418
|
});
|
|
5433
5419
|
|
|
5434
|
-
// node_modules
|
|
5420
|
+
// node_modules/@mixmark-io/domino/lib/Text.js
|
|
5435
5421
|
var require_Text = __commonJS((exports, module) => {
|
|
5436
5422
|
module.exports = Text;
|
|
5437
5423
|
var utils = require_utils();
|
|
@@ -5501,7 +5487,7 @@ var require_Text = __commonJS((exports, module) => {
|
|
|
5501
5487
|
});
|
|
5502
5488
|
});
|
|
5503
5489
|
|
|
5504
|
-
// node_modules
|
|
5490
|
+
// node_modules/@mixmark-io/domino/lib/Comment.js
|
|
5505
5491
|
var require_Comment = __commonJS((exports, module) => {
|
|
5506
5492
|
module.exports = Comment;
|
|
5507
5493
|
var Node = require_Node();
|
|
@@ -5544,7 +5530,7 @@ var require_Comment = __commonJS((exports, module) => {
|
|
|
5544
5530
|
});
|
|
5545
5531
|
});
|
|
5546
5532
|
|
|
5547
|
-
// node_modules
|
|
5533
|
+
// node_modules/@mixmark-io/domino/lib/DocumentFragment.js
|
|
5548
5534
|
var require_DocumentFragment = __commonJS((exports, module) => {
|
|
5549
5535
|
module.exports = DocumentFragment;
|
|
5550
5536
|
var Node = require_Node();
|
|
@@ -5601,7 +5587,7 @@ var require_DocumentFragment = __commonJS((exports, module) => {
|
|
|
5601
5587
|
});
|
|
5602
5588
|
});
|
|
5603
5589
|
|
|
5604
|
-
// node_modules
|
|
5590
|
+
// node_modules/@mixmark-io/domino/lib/ProcessingInstruction.js
|
|
5605
5591
|
var require_ProcessingInstruction = __commonJS((exports, module) => {
|
|
5606
5592
|
module.exports = ProcessingInstruction;
|
|
5607
5593
|
var Node = require_Node();
|
|
@@ -5650,7 +5636,7 @@ var require_ProcessingInstruction = __commonJS((exports, module) => {
|
|
|
5650
5636
|
});
|
|
5651
5637
|
});
|
|
5652
5638
|
|
|
5653
|
-
// node_modules
|
|
5639
|
+
// node_modules/@mixmark-io/domino/lib/NodeFilter.js
|
|
5654
5640
|
var require_NodeFilter = __commonJS((exports, module) => {
|
|
5655
5641
|
var NodeFilter = {
|
|
5656
5642
|
FILTER_ACCEPT: 1,
|
|
@@ -5673,7 +5659,7 @@ var require_NodeFilter = __commonJS((exports, module) => {
|
|
|
5673
5659
|
module.exports = NodeFilter.constructor = NodeFilter.prototype = NodeFilter;
|
|
5674
5660
|
});
|
|
5675
5661
|
|
|
5676
|
-
// node_modules
|
|
5662
|
+
// node_modules/@mixmark-io/domino/lib/NodeTraversal.js
|
|
5677
5663
|
var require_NodeTraversal = __commonJS((exports, module) => {
|
|
5678
5664
|
var NodeTraversal = module.exports = {
|
|
5679
5665
|
nextSkippingChildren,
|
|
@@ -5737,7 +5723,7 @@ var require_NodeTraversal = __commonJS((exports, module) => {
|
|
|
5737
5723
|
}
|
|
5738
5724
|
});
|
|
5739
5725
|
|
|
5740
|
-
// node_modules
|
|
5726
|
+
// node_modules/@mixmark-io/domino/lib/TreeWalker.js
|
|
5741
5727
|
var require_TreeWalker = __commonJS((exports, module) => {
|
|
5742
5728
|
module.exports = TreeWalker;
|
|
5743
5729
|
var Node = require_Node();
|
|
@@ -5967,7 +5953,7 @@ var require_TreeWalker = __commonJS((exports, module) => {
|
|
|
5967
5953
|
});
|
|
5968
5954
|
});
|
|
5969
5955
|
|
|
5970
|
-
// node_modules
|
|
5956
|
+
// node_modules/@mixmark-io/domino/lib/NodeIterator.js
|
|
5971
5957
|
var require_NodeIterator = __commonJS((exports, module) => {
|
|
5972
5958
|
module.exports = NodeIterator;
|
|
5973
5959
|
var NodeFilter = require_NodeFilter();
|
|
@@ -6108,7 +6094,7 @@ var require_NodeIterator = __commonJS((exports, module) => {
|
|
|
6108
6094
|
});
|
|
6109
6095
|
});
|
|
6110
6096
|
|
|
6111
|
-
// node_modules
|
|
6097
|
+
// node_modules/@mixmark-io/domino/lib/URL.js
|
|
6112
6098
|
var require_URL = __commonJS((exports, module) => {
|
|
6113
6099
|
module.exports = URL4;
|
|
6114
6100
|
function URL4(url) {
|
|
@@ -6281,7 +6267,7 @@ var require_URL = __commonJS((exports, module) => {
|
|
|
6281
6267
|
};
|
|
6282
6268
|
});
|
|
6283
6269
|
|
|
6284
|
-
// node_modules
|
|
6270
|
+
// node_modules/@mixmark-io/domino/lib/CustomEvent.js
|
|
6285
6271
|
var require_CustomEvent = __commonJS((exports, module) => {
|
|
6286
6272
|
module.exports = CustomEvent;
|
|
6287
6273
|
var Event = require_Event();
|
|
@@ -6293,7 +6279,7 @@ var require_CustomEvent = __commonJS((exports, module) => {
|
|
|
6293
6279
|
});
|
|
6294
6280
|
});
|
|
6295
6281
|
|
|
6296
|
-
// node_modules
|
|
6282
|
+
// node_modules/@mixmark-io/domino/lib/events.js
|
|
6297
6283
|
var require_events = __commonJS((exports, module) => {
|
|
6298
6284
|
module.exports = {
|
|
6299
6285
|
Event: require_Event(),
|
|
@@ -6303,7 +6289,7 @@ var require_events = __commonJS((exports, module) => {
|
|
|
6303
6289
|
};
|
|
6304
6290
|
});
|
|
6305
6291
|
|
|
6306
|
-
// node_modules
|
|
6292
|
+
// node_modules/@mixmark-io/domino/lib/style_parser.js
|
|
6307
6293
|
var require_style_parser = __commonJS((exports) => {
|
|
6308
6294
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6309
6295
|
exports.hyphenate = exports.parse = undefined;
|
|
@@ -6370,7 +6356,7 @@ var require_style_parser = __commonJS((exports) => {
|
|
|
6370
6356
|
exports.hyphenate = hyphenate;
|
|
6371
6357
|
});
|
|
6372
6358
|
|
|
6373
|
-
// node_modules
|
|
6359
|
+
// node_modules/@mixmark-io/domino/lib/CSSStyleDeclaration.js
|
|
6374
6360
|
var require_CSSStyleDeclaration = __commonJS((exports, module) => {
|
|
6375
6361
|
var { parse } = require_style_parser();
|
|
6376
6362
|
module.exports = function(elt) {
|
|
@@ -6546,7 +6532,7 @@ var require_CSSStyleDeclaration = __commonJS((exports, module) => {
|
|
|
6546
6532
|
});
|
|
6547
6533
|
});
|
|
6548
6534
|
|
|
6549
|
-
// node_modules
|
|
6535
|
+
// node_modules/@mixmark-io/domino/lib/URLUtils.js
|
|
6550
6536
|
var require_URLUtils = __commonJS((exports, module) => {
|
|
6551
6537
|
var URL4 = require_URL();
|
|
6552
6538
|
module.exports = URLUtils;
|
|
@@ -6780,7 +6766,7 @@ var require_URLUtils = __commonJS((exports, module) => {
|
|
|
6780
6766
|
};
|
|
6781
6767
|
});
|
|
6782
6768
|
|
|
6783
|
-
// node_modules
|
|
6769
|
+
// node_modules/@mixmark-io/domino/lib/defineElement.js
|
|
6784
6770
|
var require_defineElement = __commonJS((exports, module) => {
|
|
6785
6771
|
var attributes = require_attributes();
|
|
6786
6772
|
var isApiWritable = require_config().isApiWritable;
|
|
@@ -6842,7 +6828,7 @@ var require_defineElement = __commonJS((exports, module) => {
|
|
|
6842
6828
|
}
|
|
6843
6829
|
});
|
|
6844
6830
|
|
|
6845
|
-
// node_modules
|
|
6831
|
+
// node_modules/@mixmark-io/domino/lib/htmlelts.js
|
|
6846
6832
|
var require_htmlelts = __commonJS((exports) => {
|
|
6847
6833
|
var Node = require_Node();
|
|
6848
6834
|
var Element = require_Element();
|
|
@@ -6915,7 +6901,7 @@ var require_htmlelts = __commonJS((exports) => {
|
|
|
6915
6901
|
var HTMLElement = exports.HTMLElement = define({
|
|
6916
6902
|
superclass: Element,
|
|
6917
6903
|
name: "HTMLElement",
|
|
6918
|
-
ctor: function
|
|
6904
|
+
ctor: function HTMLElement(doc, localName, prefix2) {
|
|
6919
6905
|
Element.call(this, doc, localName, utils.NAMESPACE.HTML, prefix2);
|
|
6920
6906
|
},
|
|
6921
6907
|
props: {
|
|
@@ -7052,7 +7038,7 @@ var require_htmlelts = __commonJS((exports) => {
|
|
|
7052
7038
|
});
|
|
7053
7039
|
var HTMLUnknownElement = define({
|
|
7054
7040
|
name: "HTMLUnknownElement",
|
|
7055
|
-
ctor: function
|
|
7041
|
+
ctor: function HTMLUnknownElement(doc, localName, prefix2) {
|
|
7056
7042
|
HTMLElement.call(this, doc, localName, prefix2);
|
|
7057
7043
|
}
|
|
7058
7044
|
});
|
|
@@ -7267,7 +7253,7 @@ var require_htmlelts = __commonJS((exports) => {
|
|
|
7267
7253
|
define({
|
|
7268
7254
|
tag: "form",
|
|
7269
7255
|
name: "HTMLFormElement",
|
|
7270
|
-
ctor: function
|
|
7256
|
+
ctor: function HTMLFormElement(doc, localName, prefix2) {
|
|
7271
7257
|
HTMLElement.call(this, doc, localName, prefix2);
|
|
7272
7258
|
},
|
|
7273
7259
|
attributes: {
|
|
@@ -8306,7 +8292,7 @@ var require_htmlelts = __commonJS((exports) => {
|
|
|
8306
8292
|
});
|
|
8307
8293
|
});
|
|
8308
8294
|
|
|
8309
|
-
// node_modules
|
|
8295
|
+
// node_modules/@mixmark-io/domino/lib/svg.js
|
|
8310
8296
|
var require_svg = __commonJS((exports) => {
|
|
8311
8297
|
var Element = require_Element();
|
|
8312
8298
|
var defineElement = require_defineElement();
|
|
@@ -8324,7 +8310,7 @@ var require_svg = __commonJS((exports) => {
|
|
|
8324
8310
|
var SVGElement = define({
|
|
8325
8311
|
superclass: Element,
|
|
8326
8312
|
name: "SVGElement",
|
|
8327
|
-
ctor: function
|
|
8313
|
+
ctor: function SVGElement(doc, localName, prefix2) {
|
|
8328
8314
|
Element.call(this, doc, localName, utils.NAMESPACE.SVG, prefix2);
|
|
8329
8315
|
},
|
|
8330
8316
|
props: {
|
|
@@ -8432,7 +8418,7 @@ var require_svg = __commonJS((exports) => {
|
|
|
8432
8418
|
});
|
|
8433
8419
|
});
|
|
8434
8420
|
|
|
8435
|
-
// node_modules
|
|
8421
|
+
// node_modules/@mixmark-io/domino/lib/MutationConstants.js
|
|
8436
8422
|
var require_MutationConstants = __commonJS((exports, module) => {
|
|
8437
8423
|
module.exports = {
|
|
8438
8424
|
VALUE: 1,
|
|
@@ -8444,7 +8430,7 @@ var require_MutationConstants = __commonJS((exports, module) => {
|
|
|
8444
8430
|
};
|
|
8445
8431
|
});
|
|
8446
8432
|
|
|
8447
|
-
// node_modules
|
|
8433
|
+
// node_modules/@mixmark-io/domino/lib/Document.js
|
|
8448
8434
|
var require_Document = __commonJS((exports, module) => {
|
|
8449
8435
|
module.exports = Document;
|
|
8450
8436
|
var Node = require_Node();
|
|
@@ -8743,7 +8729,7 @@ var require_Document = __commonJS((exports, module) => {
|
|
|
8743
8729
|
contentType: { get: function contentType() {
|
|
8744
8730
|
return this._contentType;
|
|
8745
8731
|
} },
|
|
8746
|
-
URL: { get: function
|
|
8732
|
+
URL: { get: function URL() {
|
|
8747
8733
|
return this._address;
|
|
8748
8734
|
} },
|
|
8749
8735
|
domain: { get: utils.nyi, set: utils.nyi },
|
|
@@ -9156,7 +9142,7 @@ var require_Document = __commonJS((exports, module) => {
|
|
|
9156
9142
|
};
|
|
9157
9143
|
});
|
|
9158
9144
|
|
|
9159
|
-
// node_modules
|
|
9145
|
+
// node_modules/@mixmark-io/domino/lib/DocumentType.js
|
|
9160
9146
|
var require_DocumentType = __commonJS((exports, module) => {
|
|
9161
9147
|
module.exports = DocumentType;
|
|
9162
9148
|
var Node = require_Node();
|
|
@@ -9190,7 +9176,7 @@ var require_DocumentType = __commonJS((exports, module) => {
|
|
|
9190
9176
|
Object.defineProperties(DocumentType.prototype, ChildNode);
|
|
9191
9177
|
});
|
|
9192
9178
|
|
|
9193
|
-
// node_modules
|
|
9179
|
+
// node_modules/@mixmark-io/domino/lib/HTMLParser.js
|
|
9194
9180
|
var require_HTMLParser = __commonJS((exports, module) => {
|
|
9195
9181
|
module.exports = HTMLParser;
|
|
9196
9182
|
var Document = require_Document();
|
|
@@ -12581,7 +12567,7 @@ var require_HTMLParser = __commonJS((exports, module) => {
|
|
|
12581
12567
|
parser(EOF);
|
|
12582
12568
|
doc.modclock = 1;
|
|
12583
12569
|
}
|
|
12584
|
-
var insertToken = htmlparser.insertToken = function
|
|
12570
|
+
var insertToken = htmlparser.insertToken = function insertToken(t, value, arg3, arg4) {
|
|
12585
12571
|
flushText();
|
|
12586
12572
|
var current = stack.top;
|
|
12587
12573
|
if (!current || current.namespaceURI === NAMESPACE.HTML) {
|
|
@@ -17241,7 +17227,7 @@ var require_HTMLParser = __commonJS((exports, module) => {
|
|
|
17241
17227
|
}
|
|
17242
17228
|
});
|
|
17243
17229
|
|
|
17244
|
-
// node_modules
|
|
17230
|
+
// node_modules/@mixmark-io/domino/lib/DOMImplementation.js
|
|
17245
17231
|
var require_DOMImplementation = __commonJS((exports, module) => {
|
|
17246
17232
|
module.exports = DOMImplementation;
|
|
17247
17233
|
var Document = require_Document();
|
|
@@ -17315,7 +17301,7 @@ var require_DOMImplementation = __commonJS((exports, module) => {
|
|
|
17315
17301
|
};
|
|
17316
17302
|
});
|
|
17317
17303
|
|
|
17318
|
-
// node_modules
|
|
17304
|
+
// node_modules/@mixmark-io/domino/lib/Location.js
|
|
17319
17305
|
var require_Location = __commonJS((exports, module) => {
|
|
17320
17306
|
var URL4 = require_URL();
|
|
17321
17307
|
var URLUtils = require_URLUtils();
|
|
@@ -17351,7 +17337,7 @@ var require_Location = __commonJS((exports, module) => {
|
|
|
17351
17337
|
});
|
|
17352
17338
|
});
|
|
17353
17339
|
|
|
17354
|
-
// node_modules
|
|
17340
|
+
// node_modules/@mixmark-io/domino/lib/NavigatorID.js
|
|
17355
17341
|
var require_NavigatorID = __commonJS((exports, module) => {
|
|
17356
17342
|
var NavigatorID = Object.create(null, {
|
|
17357
17343
|
appCodeName: { value: "Mozilla" },
|
|
@@ -17370,7 +17356,7 @@ var require_NavigatorID = __commonJS((exports, module) => {
|
|
|
17370
17356
|
module.exports = NavigatorID;
|
|
17371
17357
|
});
|
|
17372
17358
|
|
|
17373
|
-
// node_modules
|
|
17359
|
+
// node_modules/@mixmark-io/domino/lib/WindowTimers.js
|
|
17374
17360
|
var require_WindowTimers = __commonJS((exports, module) => {
|
|
17375
17361
|
var WindowTimers = {
|
|
17376
17362
|
setTimeout,
|
|
@@ -17381,7 +17367,7 @@ var require_WindowTimers = __commonJS((exports, module) => {
|
|
|
17381
17367
|
module.exports = WindowTimers;
|
|
17382
17368
|
});
|
|
17383
17369
|
|
|
17384
|
-
// node_modules
|
|
17370
|
+
// node_modules/@mixmark-io/domino/lib/impl.js
|
|
17385
17371
|
var require_impl = __commonJS((exports, module) => {
|
|
17386
17372
|
var utils = require_utils();
|
|
17387
17373
|
exports = module.exports = {
|
|
@@ -17409,7 +17395,7 @@ var require_impl = __commonJS((exports, module) => {
|
|
|
17409
17395
|
utils.merge(exports, require_svg().elements);
|
|
17410
17396
|
});
|
|
17411
17397
|
|
|
17412
|
-
// node_modules
|
|
17398
|
+
// node_modules/@mixmark-io/domino/lib/Window.js
|
|
17413
17399
|
var require_Window = __commonJS((exports, module) => {
|
|
17414
17400
|
var DOMImplementation = require_DOMImplementation();
|
|
17415
17401
|
var EventTarget = require_EventTarget();
|
|
@@ -17464,7 +17450,7 @@ var require_Window = __commonJS((exports, module) => {
|
|
|
17464
17450
|
utils.expose(require_impl(), Window);
|
|
17465
17451
|
});
|
|
17466
17452
|
|
|
17467
|
-
// node_modules
|
|
17453
|
+
// node_modules/@mixmark-io/domino/lib/index.js
|
|
17468
17454
|
var require_lib = __commonJS((exports) => {
|
|
17469
17455
|
var DOMImplementation = require_DOMImplementation();
|
|
17470
17456
|
var HTMLParser = require_HTMLParser();
|
|
@@ -17514,7 +17500,7 @@ var require_lib = __commonJS((exports) => {
|
|
|
17514
17500
|
exports.impl = impl;
|
|
17515
17501
|
});
|
|
17516
17502
|
|
|
17517
|
-
// node_modules
|
|
17503
|
+
// node_modules/turndown/lib/turndown.cjs.js
|
|
17518
17504
|
var require_turndown_cjs = __commonJS((exports, module) => {
|
|
17519
17505
|
function extend(destination) {
|
|
17520
17506
|
for (var i = 1;i < arguments.length; i++) {
|
|
@@ -18964,51 +18950,48 @@ ${customAppendPrompt}`;
|
|
|
18964
18950
|
}
|
|
18965
18951
|
var AGENT_DESCRIPTIONS = {
|
|
18966
18952
|
explorer: `@explorer
|
|
18967
|
-
- Lane:
|
|
18968
|
-
-
|
|
18969
|
-
- Permissions: Read files
|
|
18953
|
+
- Lane: Fast codebase recon that returns compressed context
|
|
18954
|
+
- Permissions: read_files
|
|
18970
18955
|
- Stats: 2x faster codebase search than orchestrator, 1/2 cost of orchestrator
|
|
18971
18956
|
- Capabilities: Glob, grep, AST queries to locate files, symbols, patterns
|
|
18972
18957
|
- **Delegate when:** Need to discover what exists before planning • Parallel searches speed discovery • Need summarized map vs full contents • Broad/uncertain scope
|
|
18973
18958
|
- **Don't delegate when:** Know the path and need actual content • Need full file anyway • Single specific lookup • About to edit the file`,
|
|
18974
18959
|
librarian: `@librarian
|
|
18975
18960
|
- Lane: External knowledge and library research, fast web research
|
|
18976
|
-
- Role: Authoritative source for current library docs
|
|
18977
|
-
-
|
|
18978
|
-
- Stats: 10x better finding up-to-date library docs than orchestrator, 1/2 cost of orchestrator
|
|
18979
|
-
- Capabilities: Fetches latest official docs, examples, API signatures, version-specific behavior via grep_app MCP
|
|
18961
|
+
- Role: Authoritative source for current library docs, API references, examples, bug investigations, and web retrieval
|
|
18962
|
+
- Stats: 2x faster web research than orchestrator, 1/2 cost of orchestrator
|
|
18980
18963
|
- **Delegate when:** Libraries with frequent API changes (React, Next.js, AI SDKs) • Complex APIs needing official examples (ORMs, auth) • Version-specific behavior matters • Unfamiliar library • Edge cases or advanced features • Nuanced best practices • Working on fixing tricky bug or problem and need latest web research information
|
|
18981
18964
|
- **Don't delegate when:** Standard usage you're confident • Simple stable APIs • General programming knowledge • Info already in conversation • Built-in language features
|
|
18982
18965
|
- **Rule of thumb:** "How does this library work?" → @librarian. "How does programming work?" → answer directly. How does others solve or workaround this tricky issue?" → @librarian.`,
|
|
18983
18966
|
oracle: `@oracle
|
|
18984
18967
|
- Lane: Architecture, risk, debugging strategy, and review
|
|
18985
18968
|
- Role: Strategic advisor for high-stakes decisions and persistent problems, code reviewer
|
|
18986
|
-
- Permissions:
|
|
18969
|
+
- Permissions: read_files
|
|
18987
18970
|
- Stats: 5x better decision maker, problem solver, investigator than orchestrator, 0.8x speed of orchestrator, same cost.
|
|
18988
18971
|
- Capabilities: Deep architectural reasoning, system-level trade-offs, complex debugging, code review, simplification, maintainability review
|
|
18989
18972
|
- **Delegate when:** Major architectural decisions with long-term impact • Problems persisting after 2+ fix attempts • High-risk multi-system refactors • Costly trade-offs (performance vs maintainability) • Complex debugging with unclear root cause • Security/scalability/data integrity decisions • Genuinely uncertain and cost of wrong choice is high • When a workflow calls for a **reviewer** subagent • Code needs simplification or YAGNI scrutiny
|
|
18990
18973
|
- **Don't delegate when:** Routine decisions you're confident about • First bug fix attempt • Straightforward trade-offs • Tactical "how" vs strategic "should" • Time-sensitive good-enough decisions • Quick research/testing can answer
|
|
18991
18974
|
- **Rule of thumb:** Need senior architect review? → @oracle. Need code review or simplification? → @oracle. Routine coordination or final synthesis? → handle directly.`,
|
|
18992
18975
|
designer: `@designer
|
|
18993
|
-
- Lane: UI/UX design, related edits, design
|
|
18994
|
-
-
|
|
18995
|
-
- Permissions: Read/write files
|
|
18976
|
+
- Lane: UI/UX design, related edits, design polish and review
|
|
18977
|
+
- Permissions: read_files, write_files
|
|
18996
18978
|
- Stats: 10x better UI/UX than orchestrator
|
|
18997
18979
|
- Capabilities: Goot design taste, visual relevant edits, interactions, responsive layouts, design systems with aesthetic intent, deep UI/UX knowledge.
|
|
18998
|
-
- Weakness: copywriting,
|
|
18980
|
+
- Weakness: copywriting, when calling ask to use grounded, normal wording
|
|
18981
|
+
- Avoid: "Let me us designer how it should look and implement yourself" → instead: "Let me ask designer to design and implement the UI/UX changes for me"
|
|
18999
18982
|
- **Delegate when:** User-facing interfaces needing polish • Responsive layouts • UX-critical components (forms, nav, dashboards) • Visual consistency systems • Animations/micro-interactions • Landing/marketing pages • Refining functional→delightful • Reviewing existing UI/UX quality
|
|
19000
|
-
- **Don't delegate when:** Backend/logic with no visual • Quick prototypes where design doesn't matter yet
|
|
18983
|
+
- **Don't delegate when:** Backend/logic with no visual • Quick prototypes where design doesn't matter yet.
|
|
19001
18984
|
- **Rule of thumb:** Users see it and polish matters? → @designer. Headless/functional implementation? → schedule @fixer.`,
|
|
19002
18985
|
fixer: `@fixer
|
|
19003
|
-
- Lane: Bounded implementation and
|
|
19004
|
-
- Role: Fast execution specialist for well-defined tasks
|
|
19005
|
-
- Permissions:
|
|
19006
|
-
- Stats: 2x faster code edits, 1/2 cost of orchestrator
|
|
19007
|
-
- Weakness: design taste
|
|
18986
|
+
- Lane: Bounded implementation and executioner
|
|
18987
|
+
- Role: Fast execution specialist for well-defined tasks
|
|
18988
|
+
- Permissions: read_files, write_files
|
|
18989
|
+
- Stats: 2x faster code edits, 1/2 cost of orchestrator
|
|
18990
|
+
- Weakness: design, taste
|
|
19008
18991
|
- Tools/Constraints: Execution-focused—no research, no architectural decisions
|
|
19009
|
-
- **Delegate when:** For implementation work, think and triage first. If the change is non-trivial or multi-file, hand bounded execution to @fixer •
|
|
19010
|
-
- **Don't delegate when:** Needs discovery/research/decisions • Single small change (<20 lines, one file) • Unclear requirements needing iteration • Explaining to fixer > doing • Tight integration with your current work
|
|
19011
|
-
- **Rule of thumb:** Implementation are needed, schedule @fixer with clear scope. Bigger or lots of edits should be split by ownership and dispatched as parallel background fixer lanes when safe.`,
|
|
18992
|
+
- **Delegate when:** For implementation work, think and triage first. If the change is non-trivial or multi-file, hand bounded execution to @fixer • Parallelization benefits: Task involves multiple folders and multiple files modification, scoping work per folder and spawning parallel @fixers for each folder.
|
|
18993
|
+
- **Don't delegate when:** Needs discovery/research/decisions • Single small change (<20 lines, one file) • Unclear requirements needing iteration • Explaining to fixer > doing • Tight integration with your current work
|
|
18994
|
+
- **Rule of thumb:** Implementation are needed, schedule @fixer with clear scope. Bigger or lots of edits should be split by ownership and dispatched as parallel background @fixer lanes when safe. Editing files which includes design, ui, ux changes → schedule @designer.`,
|
|
19012
18995
|
council: `@council
|
|
19013
18996
|
- Lane: High-stakes multi-model decision support
|
|
19014
18997
|
- Role: Multi-LLM consensus engine that runs several councillors, synthesizes their views, and returns a structured council report.
|
|
@@ -19033,7 +19016,7 @@ var AGENT_DESCRIPTIONS = {
|
|
|
19033
19016
|
};
|
|
19034
19017
|
var VALIDATION_ROUTING = [
|
|
19035
19018
|
"- Route UI/UX validation and review to @designer",
|
|
19036
|
-
"- Route code review, simplification
|
|
19019
|
+
"- Route code review, code simplification and maintainability review checks to @oracle",
|
|
19037
19020
|
"- Route implementation to @fixer or multiple @fixer instances for maximum parallel execution",
|
|
19038
19021
|
"- Route visual/media analysis and interpretation to @observer",
|
|
19039
19022
|
"- If a request spans multiple lanes, delegate only the lanes that add clear value"
|
|
@@ -19066,6 +19049,7 @@ function buildOrchestratorPrompt(disabledAgents) {
|
|
|
19066
19049
|
You are a workflow manager for coding work. Your job is to plan, schedule, delegate, monitor, reconcile, and verify specialist-agent work. You are not the default implementation worker.
|
|
19067
19050
|
|
|
19068
19051
|
Optimize for quality, speed, cost, and reliability by dispatching the right specialist lanes, tracking background task state, and integrating terminal results into one coherent outcome.
|
|
19052
|
+
You have perfect understanding of agent's context management, understand well the cost of building content and reusing context of existing agents when it's best or when it's best to spawn a new agent.
|
|
19069
19053
|
</Role>
|
|
19070
19054
|
|
|
19071
19055
|
<Agents>
|
|
@@ -19080,22 +19064,26 @@ ${enabledAgents}
|
|
|
19080
19064
|
Parse request: explicit requirements + implicit needs.
|
|
19081
19065
|
|
|
19082
19066
|
## 2. Path Selection
|
|
19083
|
-
Evaluate approach by: quality, speed
|
|
19067
|
+
Evaluate approach by: quality, speed and cost.
|
|
19084
19068
|
Choose the path that optimizes all four.
|
|
19085
19069
|
|
|
19086
|
-
Classify work into lanes: discovery, external knowledge, implementation, UI/UX, review/risk, visual analysis, and final verification.
|
|
19087
|
-
|
|
19088
19070
|
## 3. Delegation Check
|
|
19089
|
-
|
|
19090
|
-
|
|
19091
|
-
!!! Review available agents and lane rules. Decide what to schedule, what depends on what, and what minimal direct coordination is needed. !!!
|
|
19071
|
+
Review available agents and lane rules.
|
|
19092
19072
|
|
|
19093
19073
|
**Dispatch efficiency:**
|
|
19094
19074
|
- Reference paths/lines, don't paste files (\`src/app.ts:42\` not full contents)
|
|
19095
|
-
- Provide context summaries, let specialists read what they need
|
|
19096
19075
|
- Brief user on delegation goal before each call
|
|
19097
|
-
- Keep direct work limited to clarification, minimal routing context, todos, synthesis, and final checks
|
|
19098
19076
|
- For trivial conversational answers or tiny mechanical edits, direct execution is allowed when scheduling overhead would clearly dominate
|
|
19077
|
+
- Record task IDs, state, and advisory ownership/dependency labels
|
|
19078
|
+
- Poll/wait for terminal results with \`task_status(wait: true, timeout_ms: ...)\`
|
|
19079
|
+
- Reconcile results, resolve conflicts, and gate dependent lanes
|
|
19080
|
+
|
|
19081
|
+
**File operations rules:**
|
|
19082
|
+
- Always use dedicated file tools for file I/O.
|
|
19083
|
+
- Search files/code with \`glob\`, \`grep\`, or \`ast_grep_search\`.
|
|
19084
|
+
- Read files with \`read\`. Never use \`cat\`, \`head\`, \`tail\`, \`sed\`, \`awk\`, or bash commands to read file contents.
|
|
19085
|
+
- Edit files with \`apply_patch\`. Never use shell redirection, \`echo\`, \`printf\`, or heredocs for file content unless no file tool can do the job.
|
|
19086
|
+
- Use \`bash\` only for execution: git, package managers, tests, builds, scripts, or diagnostics.
|
|
19099
19087
|
|
|
19100
19088
|
## 4. Plan and Parallelize
|
|
19101
19089
|
Build a short work graph before dispatching:
|
|
@@ -19118,17 +19106,6 @@ Balance: respect dependencies, avoid parallelizing what must be sequential, and
|
|
|
19118
19106
|
- Parallel background tasks are allowed only when their write scopes do not conflict.
|
|
19119
19107
|
- Final response requires relevant tasks to be terminal and reconciled.
|
|
19120
19108
|
|
|
19121
|
-
## 5. Dispatch
|
|
19122
|
-
1. Split work into independent and dependency-ordered lanes
|
|
19123
|
-
2. Plan advisory ownership for write-capable lanes
|
|
19124
|
-
3. Dispatch independent specialists as background tasks
|
|
19125
|
-
4. Record task IDs, state, and advisory ownership/dependency labels
|
|
19126
|
-
5. Continue only independent orchestration while jobs run
|
|
19127
|
-
6. Poll/wait for terminal results with \`task_status(wait: true, timeout_ms: ...)\`
|
|
19128
|
-
7. Reconcile results, resolve conflicts, and gate dependent lanes
|
|
19129
|
-
8. Dispatch follow-up jobs if needed
|
|
19130
|
-
9. Verify final state
|
|
19131
|
-
|
|
19132
19109
|
### Session Reuse
|
|
19133
19110
|
- Smartly reuse an available specialist session - context reuse saves time and tokens
|
|
19134
19111
|
- When too much unrelated, and really needed, start a fresh session with the specialist
|
|
@@ -19242,6 +19219,12 @@ var COUNCIL_AGENT_PROMPT = `You are the Council agent — a multi-LLM orchestrat
|
|
|
19242
19219
|
- Be transparent about trade-offs when different approaches have valid pros/cons
|
|
19243
19220
|
- Don't just average responses — choose the best approach and improve upon it
|
|
19244
19221
|
|
|
19222
|
+
**File Operations Rules**:
|
|
19223
|
+
- Use dedicated tools for file I/O if local files must be inspected
|
|
19224
|
+
- Search files/code with glob, grep, or ast_grep_search
|
|
19225
|
+
- Read files with read. Never use cat, head, tail, sed, awk, or bash commands to read file contents
|
|
19226
|
+
- Use bash only for execution/diagnostics, never for file I/O
|
|
19227
|
+
|
|
19245
19228
|
**Required Output Format**:
|
|
19246
19229
|
Always include these sections in your final response:
|
|
19247
19230
|
|
|
@@ -19353,6 +19336,12 @@ var COUNCILLOR_PROMPT = `You are a councillor in a multi-model council.
|
|
|
19353
19336
|
|
|
19354
19337
|
You CANNOT edit files, write files, run shell commands, or delegate to other agents. You are an advisor, not an implementer.
|
|
19355
19338
|
|
|
19339
|
+
**File Operations Rules**:
|
|
19340
|
+
- READ-ONLY: do not modify files
|
|
19341
|
+
- Search files/code with glob, grep, or ast_grep_search
|
|
19342
|
+
- Read files with read. Never use cat, head, tail, sed, awk, or bash commands to read file contents
|
|
19343
|
+
- Do not use bash or shell commands
|
|
19344
|
+
|
|
19356
19345
|
**Behavior**:
|
|
19357
19346
|
- **Examine the codebase** before answering — your read access is what makes council valuable. Don't guess at code you can see.
|
|
19358
19347
|
- Analyze the problem thoroughly
|
|
@@ -19440,6 +19429,13 @@ var DESIGNER_PROMPT = `You are a Designer - a frontend UI/UX specialist who crea
|
|
|
19440
19429
|
- Leverage component libraries where available
|
|
19441
19430
|
- Prioritize visual excellence—code perfection comes second
|
|
19442
19431
|
|
|
19432
|
+
## File Operations Rules
|
|
19433
|
+
- Always use dedicated file tools for file I/O
|
|
19434
|
+
- Search files/code with glob, grep, or ast_grep_search
|
|
19435
|
+
- Read files with read. Never use cat, head, tail, sed, awk, or bash commands to read file contents
|
|
19436
|
+
- Edit/write files with write, edit, or apply_patch. Never use shell redirection, echo, printf, or heredocs for file content unless no file tool can do the job
|
|
19437
|
+
- Use bash only for execution: git, package managers, tests, builds, scripts, or diagnostics
|
|
19438
|
+
|
|
19443
19439
|
## Review Responsibilities
|
|
19444
19440
|
- Review existing UI for usability, responsiveness, visual consistency, and polish when asked
|
|
19445
19441
|
- Call out concrete UX issues and improvements, not just abstract design advice
|
|
@@ -19477,6 +19473,12 @@ var EXPLORER_PROMPT = `You are Explorer - a fast codebase navigation specialist.
|
|
|
19477
19473
|
- **Structural patterns** (function shapes, class structures): ast_grep_search
|
|
19478
19474
|
- **File discovery** (find by name/extension): glob
|
|
19479
19475
|
|
|
19476
|
+
**File Operations Rules**:
|
|
19477
|
+
- READ-ONLY: Search and report, don't modify files
|
|
19478
|
+
- Search files/code with glob, grep, or ast_grep_search
|
|
19479
|
+
- Read files with read. Never use cat, head, tail, sed, awk, or bash commands to read file contents
|
|
19480
|
+
- Use bash only for execution/diagnostics, never for file I/O
|
|
19481
|
+
|
|
19480
19482
|
**Behavior**:
|
|
19481
19483
|
- Be fast and thorough
|
|
19482
19484
|
- Fire multiple searches in parallel if needed
|
|
@@ -19531,6 +19533,13 @@ var FIXER_PROMPT = `You are Fixer - a fast, focused implementation specialist.
|
|
|
19531
19533
|
- Run relevant validation when requested or clearly applicable (otherwise note as skipped with reason)
|
|
19532
19534
|
- Report completion with summary of changes
|
|
19533
19535
|
|
|
19536
|
+
**File Operations Rules**:
|
|
19537
|
+
- Always use dedicated file tools for file I/O
|
|
19538
|
+
- Search files/code with glob, grep, or ast_grep_search
|
|
19539
|
+
- Read files with read. Never use cat, head, tail, sed, awk, or bash commands to read file contents
|
|
19540
|
+
- Edit/write files with write, edit, or apply_patch. Never use shell redirection, echo, printf, or heredocs for file content unless no file tool can do the job
|
|
19541
|
+
- Use bash only for execution: git, package managers, tests, builds, scripts, or diagnostics
|
|
19542
|
+
|
|
19534
19543
|
**Constraints**:
|
|
19535
19544
|
- NO external research (no websearch, context7, grep_app)
|
|
19536
19545
|
- NO delegation or spawning subagents
|
|
@@ -19596,6 +19605,12 @@ var LIBRARIAN_PROMPT = `You are Librarian - a research specialist for codebases
|
|
|
19596
19605
|
- grep_app: Search GitHub repositories
|
|
19597
19606
|
- websearch: General web search for docs
|
|
19598
19607
|
|
|
19608
|
+
**File Operations Rules**:
|
|
19609
|
+
- Use dedicated tools for file I/O when local files must be inspected
|
|
19610
|
+
- Search files/code with glob, grep, or ast_grep_search
|
|
19611
|
+
- Read files with read. Never use cat, head, tail, sed, awk, or bash commands to read file contents
|
|
19612
|
+
- Use bash only for execution/diagnostics, never for file I/O
|
|
19613
|
+
|
|
19599
19614
|
**Behavior**:
|
|
19600
19615
|
- Provide evidence-based answers with sources
|
|
19601
19616
|
- Quote relevant code snippets
|
|
@@ -19640,6 +19655,11 @@ var OBSERVER_PROMPT = `You are Observer — a visual analysis specialist.
|
|
|
19640
19655
|
- Save context tokens — the Orchestrator never processes the raw file
|
|
19641
19656
|
- Match the language of the request
|
|
19642
19657
|
- If info not found, state clearly what's missing
|
|
19658
|
+
|
|
19659
|
+
**File Operations Rules**:
|
|
19660
|
+
- READ-ONLY: do not modify files
|
|
19661
|
+
- Read files with read. Never use cat, head, tail, sed, awk, or bash commands to read file contents
|
|
19662
|
+
- Use bash only for execution/diagnostics, never for file I/O
|
|
19643
19663
|
`;
|
|
19644
19664
|
function createObserverAgent(model, customPrompt, customAppendPrompt) {
|
|
19645
19665
|
let prompt = OBSERVER_PROMPT;
|
|
@@ -19684,6 +19704,12 @@ var ORACLE_PROMPT = `You are Oracle - a strategic technical advisor and code rev
|
|
|
19684
19704
|
- READ-ONLY: You advise, you don't implement
|
|
19685
19705
|
- Focus on strategy, not execution
|
|
19686
19706
|
- Point to specific files/lines when relevant
|
|
19707
|
+
|
|
19708
|
+
**File Operations Rules**:
|
|
19709
|
+
- READ-ONLY: do not modify files
|
|
19710
|
+
- Search files/code with glob, grep, or ast_grep_search
|
|
19711
|
+
- Read files with read. Never use cat, head, tail, sed, awk, or bash commands to read file contents
|
|
19712
|
+
- Use bash only for execution/diagnostics, never for file I/O
|
|
19687
19713
|
`;
|
|
19688
19714
|
function createOracleAgent(model, customPrompt, customAppendPrompt) {
|
|
19689
19715
|
let prompt = ORACLE_PROMPT;
|
|
@@ -22684,6 +22710,7 @@ class BackgroundJobBoard {
|
|
|
22684
22710
|
terminalUnreconciled: false,
|
|
22685
22711
|
completedAt: undefined,
|
|
22686
22712
|
resultSummary: undefined,
|
|
22713
|
+
lastLaunchedAt: now,
|
|
22687
22714
|
updatedAt: now
|
|
22688
22715
|
};
|
|
22689
22716
|
this.jobs.set(input.taskID, updated);
|
|
@@ -22699,6 +22726,7 @@ class BackgroundJobBoard {
|
|
|
22699
22726
|
timedOut: false,
|
|
22700
22727
|
terminalUnreconciled: false,
|
|
22701
22728
|
launchedAt: now,
|
|
22729
|
+
lastLaunchedAt: now,
|
|
22702
22730
|
updatedAt: now,
|
|
22703
22731
|
alias: this.nextAlias(input.parentSessionID, input.agent)
|
|
22704
22732
|
};
|
|
@@ -22767,7 +22795,7 @@ class BackgroundJobBoard {
|
|
|
22767
22795
|
hasTerminalUnreconciled(parentSessionID) {
|
|
22768
22796
|
return this.list(parentSessionID).some((job) => job.terminalUnreconciled);
|
|
22769
22797
|
}
|
|
22770
|
-
formatForPrompt(parentSessionID) {
|
|
22798
|
+
formatForPrompt(parentSessionID, now = Date.now()) {
|
|
22771
22799
|
const jobs = this.list(parentSessionID).filter((job) => job.state === "running" || job.terminalUnreconciled);
|
|
22772
22800
|
if (jobs.length === 0)
|
|
22773
22801
|
return;
|
|
@@ -22775,7 +22803,7 @@ class BackgroundJobBoard {
|
|
|
22775
22803
|
"### Background Job Board",
|
|
22776
22804
|
"Use task_status before consuming running jobs. Reconcile terminal jobs before final response.",
|
|
22777
22805
|
"",
|
|
22778
|
-
...jobs.map(formatJob)
|
|
22806
|
+
...jobs.map((job) => formatJob(job, now))
|
|
22779
22807
|
].join(`
|
|
22780
22808
|
`);
|
|
22781
22809
|
}
|
|
@@ -22795,8 +22823,11 @@ class BackgroundJobBoard {
|
|
|
22795
22823
|
return `${prefix2}-${next}`;
|
|
22796
22824
|
}
|
|
22797
22825
|
}
|
|
22798
|
-
function formatJob(job) {
|
|
22799
|
-
const
|
|
22826
|
+
function formatJob(job, now = Date.now()) {
|
|
22827
|
+
const ageMs = now - job.lastLaunchedAt;
|
|
22828
|
+
const isResume = job.lastLaunchedAt !== job.launchedAt;
|
|
22829
|
+
const ageLabel = job.state === "running" && ageMs < 30000 ? ` [${isResume ? "resumed" : "just launched"}, ${Math.floor(ageMs / 1000)}s ago]` : "";
|
|
22830
|
+
const status = job.terminalUnreconciled ? `${job.state}, unreconciled` : job.timedOut ? `${job.state}, timed out` : `${job.state}${ageLabel}`;
|
|
22800
22831
|
const lines = [
|
|
22801
22832
|
`- ${job.alias} / ${job.taskID} / ${job.agent} / ${status}`,
|
|
22802
22833
|
` Objective: ${job.objective || job.description}`
|
|
@@ -23441,7 +23472,7 @@ var RATE_LIMIT_PATTERNS = [
|
|
|
23441
23472
|
/usage limit/i,
|
|
23442
23473
|
/overloaded/i,
|
|
23443
23474
|
/resource.?exhausted/i,
|
|
23444
|
-
/insufficient.?quota/i,
|
|
23475
|
+
/insufficient.?(quota|balance)/i,
|
|
23445
23476
|
/high concurrency/i,
|
|
23446
23477
|
/reduce concurrency/i
|
|
23447
23478
|
];
|
|
@@ -23517,7 +23548,7 @@ class ForegroundFallbackManager {
|
|
|
23517
23548
|
if (!props?.sessionID || props.status?.type !== "retry")
|
|
23518
23549
|
break;
|
|
23519
23550
|
const msg = props.status.message?.toLowerCase() ?? "";
|
|
23520
|
-
if (msg.includes("rate limit") || msg.includes("usage limit") || msg.includes("usage exceeded") || msg.includes("quota exceeded") || msg.includes("exceededbudget") || msg.includes("over budget") || msg.includes("high concurrency") || msg.includes("reduce concurrency")) {
|
|
23551
|
+
if (msg.includes("rate limit") || msg.includes("usage limit") || msg.includes("usage exceeded") || msg.includes("quota exceeded") || msg.includes("exceededbudget") || msg.includes("over budget") || msg.includes("insufficient") || msg.includes("high concurrency") || msg.includes("reduce concurrency")) {
|
|
23521
23552
|
await this.tryFallback(props.sessionID);
|
|
23522
23553
|
}
|
|
23523
23554
|
break;
|
|
@@ -24737,7 +24768,7 @@ function createTaskSessionManagerHook(_ctx, options) {
|
|
|
24737
24768
|
};
|
|
24738
24769
|
}
|
|
24739
24770
|
// src/hooks/todo-continuation/index.ts
|
|
24740
|
-
import { tool } from "@opencode-ai/plugin
|
|
24771
|
+
import { tool } from "@opencode-ai/plugin";
|
|
24741
24772
|
|
|
24742
24773
|
// src/hooks/todo-continuation/todo-hygiene.ts
|
|
24743
24774
|
var TODO_HYGIENE_REMINDER = "If the active task changed or finished, update the todo list to match the current work state.";
|
|
@@ -29755,7 +29786,6 @@ function startAvailabilityCheck(config) {
|
|
|
29755
29786
|
}
|
|
29756
29787
|
}
|
|
29757
29788
|
// src/multiplexer/session-manager.ts
|
|
29758
|
-
var SESSION_TIMEOUT_MS = 10 * 60 * 1000;
|
|
29759
29789
|
var SESSION_MISSING_GRACE_MS = POLL_INTERVAL_BACKGROUND_MS * 3;
|
|
29760
29790
|
var SHARED_STATE_KEY = Symbol.for("oh-my-opencode-slim.multiplexer-session-manager.state");
|
|
29761
29791
|
function getSharedState() {
|
|
@@ -29769,6 +29799,7 @@ function getSharedState() {
|
|
|
29769
29799
|
return globalWithState[SHARED_STATE_KEY];
|
|
29770
29800
|
}
|
|
29771
29801
|
class MultiplexerSessionManager {
|
|
29802
|
+
backgroundJobBoard;
|
|
29772
29803
|
instanceId = Math.random().toString(36).slice(2, 8);
|
|
29773
29804
|
serverUrl;
|
|
29774
29805
|
directory;
|
|
@@ -29779,7 +29810,8 @@ class MultiplexerSessionManager {
|
|
|
29779
29810
|
closingSessions;
|
|
29780
29811
|
pollInterval;
|
|
29781
29812
|
enabled = false;
|
|
29782
|
-
constructor(ctx, config) {
|
|
29813
|
+
constructor(ctx, config, backgroundJobBoard) {
|
|
29814
|
+
this.backgroundJobBoard = backgroundJobBoard;
|
|
29783
29815
|
const sharedState = getSharedState();
|
|
29784
29816
|
this.sessions = sharedState.sessions;
|
|
29785
29817
|
this.knownSessions = sharedState.knownSessions;
|
|
@@ -29874,7 +29906,8 @@ class MultiplexerSessionManager {
|
|
|
29874
29906
|
title,
|
|
29875
29907
|
directory,
|
|
29876
29908
|
createdAt: now,
|
|
29877
|
-
lastSeenAt: now
|
|
29909
|
+
lastSeenAt: now,
|
|
29910
|
+
seenInStatus: false
|
|
29878
29911
|
});
|
|
29879
29912
|
log("[multiplexer-session-manager] pane spawned", {
|
|
29880
29913
|
instanceId: this.instanceId,
|
|
@@ -29966,16 +29999,26 @@ class MultiplexerSessionManager {
|
|
|
29966
29999
|
const isIdle = status?.type === "idle";
|
|
29967
30000
|
if (status) {
|
|
29968
30001
|
tracked.lastSeenAt = now;
|
|
30002
|
+
tracked.seenInStatus = true;
|
|
29969
30003
|
tracked.missingSince = undefined;
|
|
29970
30004
|
} else if (!tracked.missingSince) {
|
|
29971
30005
|
tracked.missingSince = now;
|
|
29972
30006
|
}
|
|
29973
30007
|
const missingTooLong = !!tracked.missingSince && now - tracked.missingSince >= SESSION_MISSING_GRACE_MS;
|
|
29974
|
-
const
|
|
29975
|
-
if (isIdle || missingTooLong
|
|
30008
|
+
const shouldKeepRunningBackgroundJob = missingTooLong && this.isRunningBackgroundJob(sessionId);
|
|
30009
|
+
if (isIdle || missingTooLong) {
|
|
30010
|
+
if (shouldKeepRunningBackgroundJob) {
|
|
30011
|
+
log("[multiplexer-session-manager] keeping running background pane", {
|
|
30012
|
+
instanceId: this.instanceId,
|
|
30013
|
+
sessionId,
|
|
30014
|
+
paneId: tracked.paneId,
|
|
30015
|
+
seenInStatus: tracked.seenInStatus
|
|
30016
|
+
});
|
|
30017
|
+
continue;
|
|
30018
|
+
}
|
|
29976
30019
|
sessionsToClose.push({
|
|
29977
30020
|
sessionId,
|
|
29978
|
-
reason: isIdle ? "idle" :
|
|
30021
|
+
reason: isIdle ? "idle" : "missing"
|
|
29979
30022
|
});
|
|
29980
30023
|
}
|
|
29981
30024
|
}
|
|
@@ -29992,7 +30035,15 @@ class MultiplexerSessionManager {
|
|
|
29992
30035
|
if (!response.ok) {
|
|
29993
30036
|
throw new Error(`session status request failed: ${response.status} ${response.statusText}`);
|
|
29994
30037
|
}
|
|
29995
|
-
|
|
30038
|
+
const body = await response.text();
|
|
30039
|
+
if (body.trim() === "") {
|
|
30040
|
+
throw new Error("session status response was empty");
|
|
30041
|
+
}
|
|
30042
|
+
try {
|
|
30043
|
+
return JSON.parse(body);
|
|
30044
|
+
} catch (err) {
|
|
30045
|
+
throw new Error(`session status response was not valid JSON: ${err}`);
|
|
30046
|
+
}
|
|
29996
30047
|
}
|
|
29997
30048
|
async closeSession(sessionId, reason) {
|
|
29998
30049
|
if (reason === "deleted") {
|
|
@@ -30092,7 +30143,8 @@ class MultiplexerSessionManager {
|
|
|
30092
30143
|
title: known.title,
|
|
30093
30144
|
directory: known.directory,
|
|
30094
30145
|
createdAt: now,
|
|
30095
|
-
lastSeenAt: now
|
|
30146
|
+
lastSeenAt: now,
|
|
30147
|
+
seenInStatus: false
|
|
30096
30148
|
});
|
|
30097
30149
|
log("[multiplexer-session-manager] pane respawned on busy", {
|
|
30098
30150
|
instanceId: this.instanceId,
|
|
@@ -30117,6 +30169,9 @@ class MultiplexerSessionManager {
|
|
|
30117
30169
|
getSessionId(event) {
|
|
30118
30170
|
return event.properties?.info?.id ?? event.properties?.sessionID;
|
|
30119
30171
|
}
|
|
30172
|
+
isRunningBackgroundJob(sessionId) {
|
|
30173
|
+
return this.backgroundJobBoard?.get(sessionId)?.state === "running";
|
|
30174
|
+
}
|
|
30120
30175
|
async cleanup() {
|
|
30121
30176
|
this.stopPolling();
|
|
30122
30177
|
if (this.closingSessions.size > 0) {
|
|
@@ -30162,7 +30217,7 @@ async function isServerRunning(serverUrl, timeoutMs = 3000, maxAttempts = 2) {
|
|
|
30162
30217
|
return false;
|
|
30163
30218
|
}
|
|
30164
30219
|
// src/tools/ast-grep/tools.ts
|
|
30165
|
-
import { tool as tool2 } from "@opencode-ai/plugin
|
|
30220
|
+
import { tool as tool2 } from "@opencode-ai/plugin";
|
|
30166
30221
|
|
|
30167
30222
|
// src/tools/ast-grep/cli.ts
|
|
30168
30223
|
import { existsSync as existsSync9 } from "node:fs";
|
|
@@ -31081,21 +31136,21 @@ async function saveBinary(binaryDir, data, contentType, filename) {
|
|
|
31081
31136
|
throw new Error("Unable to allocate unique filename for binary content");
|
|
31082
31137
|
}
|
|
31083
31138
|
|
|
31084
|
-
// node_modules
|
|
31085
|
-
import { tracingChannel as
|
|
31086
|
-
var S =
|
|
31087
|
-
var W =
|
|
31088
|
-
var C = typeof performance == "object" && performance && typeof performance.now == "function" ? performance : Date;
|
|
31139
|
+
// node_modules/lru-cache/dist/esm/node/index.min.js
|
|
31140
|
+
import { tracingChannel as j, channel as I } from "node:diagnostics_channel";
|
|
31141
|
+
var S = I("lru-cache:metrics");
|
|
31142
|
+
var W = j("lru-cache");
|
|
31089
31143
|
var D = () => S.hasSubscribers || W.hasSubscribers;
|
|
31090
|
-
var
|
|
31091
|
-
var
|
|
31144
|
+
var G = typeof performance == "object" && performance && typeof performance.now == "function" ? performance : Date;
|
|
31145
|
+
var M = new Set;
|
|
31146
|
+
var C = typeof process == "object" && process ? process : {};
|
|
31092
31147
|
var P = (u, e, t, i) => {
|
|
31093
|
-
typeof
|
|
31148
|
+
typeof C.emitWarning == "function" ? C.emitWarning(u, e, t, i) : console.error(`[${t}] ${e}: ${u}`);
|
|
31094
31149
|
};
|
|
31095
|
-
var H = (u) => !
|
|
31096
|
-
var
|
|
31150
|
+
var H = (u) => !M.has(u);
|
|
31151
|
+
var $ = Symbol("type");
|
|
31097
31152
|
var F = (u) => !!u && u === Math.floor(u) && u > 0 && isFinite(u);
|
|
31098
|
-
var
|
|
31153
|
+
var U = (u) => F(u) ? u <= Math.pow(2, 8) ? Uint8Array : u <= Math.pow(2, 16) ? Uint16Array : u <= Math.pow(2, 32) ? Uint32Array : u <= Number.MAX_SAFE_INTEGER ? O : null : null;
|
|
31099
31154
|
var O = class extends Array {
|
|
31100
31155
|
constructor(e) {
|
|
31101
31156
|
super(e), this.fill(0);
|
|
@@ -31106,7 +31161,7 @@ var R = class u {
|
|
|
31106
31161
|
length;
|
|
31107
31162
|
static #o = false;
|
|
31108
31163
|
static create(e) {
|
|
31109
|
-
let t =
|
|
31164
|
+
let t = U(e);
|
|
31110
31165
|
if (!t)
|
|
31111
31166
|
return [];
|
|
31112
31167
|
u.#o = true;
|
|
@@ -31125,11 +31180,11 @@ var R = class u {
|
|
|
31125
31180
|
return this.heap[--this.length];
|
|
31126
31181
|
}
|
|
31127
31182
|
};
|
|
31128
|
-
var
|
|
31183
|
+
var L = class u2 {
|
|
31129
31184
|
#o;
|
|
31130
31185
|
#u;
|
|
31131
31186
|
#w;
|
|
31132
|
-
#
|
|
31187
|
+
#D;
|
|
31133
31188
|
#S;
|
|
31134
31189
|
#M;
|
|
31135
31190
|
#U;
|
|
@@ -31200,7 +31255,7 @@ var M = class u2 {
|
|
|
31200
31255
|
return this.#w;
|
|
31201
31256
|
}
|
|
31202
31257
|
get onInsert() {
|
|
31203
|
-
return this.#
|
|
31258
|
+
return this.#D;
|
|
31204
31259
|
}
|
|
31205
31260
|
get disposeAfter() {
|
|
31206
31261
|
return this.#S;
|
|
@@ -31209,9 +31264,9 @@ var M = class u2 {
|
|
|
31209
31264
|
let { max: t = 0, ttl: i, ttlResolution: s = 1, ttlAutopurge: n, updateAgeOnGet: o, updateAgeOnHas: r, allowStale: h, dispose: l, onInsert: c, disposeAfter: f, noDisposeOnSet: g, noUpdateTTL: p, maxSize: T = 0, maxEntrySize: w = 0, sizeCalculation: y, fetchMethod: a, memoMethod: m, noDeleteOnFetchRejection: _, noDeleteOnStaleGet: b, allowStaleOnFetchRejection: d, allowStaleOnFetchAbort: A, ignoreFetchAbort: z5, perf: x } = e;
|
|
31210
31265
|
if (x !== undefined && typeof x?.now != "function")
|
|
31211
31266
|
throw new TypeError("perf option must have a now() method if specified");
|
|
31212
|
-
if (this.#m = x ??
|
|
31267
|
+
if (this.#m = x ?? G, t !== 0 && !F(t))
|
|
31213
31268
|
throw new TypeError("max option must be a nonnegative integer");
|
|
31214
|
-
let v = t ?
|
|
31269
|
+
let v = t ? U(t) : Array;
|
|
31215
31270
|
if (!v)
|
|
31216
31271
|
throw new Error("invalid max value: " + t);
|
|
31217
31272
|
if (this.#o = t, this.#u = T, this.maxEntrySize = w || this.#u, this.sizeCalculation = y, this.sizeCalculation) {
|
|
@@ -31224,7 +31279,7 @@ var M = class u2 {
|
|
|
31224
31279
|
throw new TypeError("memoMethod must be a function if defined");
|
|
31225
31280
|
if (this.#U = m, a !== undefined && typeof a != "function")
|
|
31226
31281
|
throw new TypeError("fetchMethod must be a function if specified");
|
|
31227
|
-
if (this.#M = a, this.#W = !!a, this.#s = new Map, this.#i = Array.from({ length: t }).fill(undefined), this.#t = Array.from({ length: t }).fill(undefined), this.#a = new v(t), this.#c = new v(t), this.#l = 0, this.#h = 0, this.#y = R.create(t), this.#n = 0, this.#b = 0, typeof l == "function" && (this.#w = l), typeof c == "function" && (this.#
|
|
31282
|
+
if (this.#M = a, this.#W = !!a, this.#s = new Map, this.#i = Array.from({ length: t }).fill(undefined), this.#t = Array.from({ length: t }).fill(undefined), this.#a = new v(t), this.#c = new v(t), this.#l = 0, this.#h = 0, this.#y = R.create(t), this.#n = 0, this.#b = 0, typeof l == "function" && (this.#w = l), typeof c == "function" && (this.#D = c), typeof f == "function" ? (this.#S = f, this.#r = []) : (this.#S = undefined, this.#r = undefined), this.#T = !!this.#w, this.#j = !!this.#D, this.#f = !!this.#S, this.noDisposeOnSet = !!g, this.noUpdateTTL = !!p, this.noDeleteOnFetchRejection = !!_, this.allowStaleOnFetchRejection = !!d, this.allowStaleOnFetchAbort = !!A, this.ignoreFetchAbort = !!z5, this.maxEntrySize !== 0) {
|
|
31228
31283
|
if (this.#u !== 0 && !F(this.#u))
|
|
31229
31284
|
throw new TypeError("maxSize must be a positive integer if specified");
|
|
31230
31285
|
if (!F(this.maxEntrySize))
|
|
@@ -31240,7 +31295,7 @@ var M = class u2 {
|
|
|
31240
31295
|
throw new TypeError("At least one of max, maxSize, or ttl is required");
|
|
31241
31296
|
if (!this.ttlAutopurge && !this.#o && !this.#u) {
|
|
31242
31297
|
let E = "LRU_CACHE_UNBOUNDED";
|
|
31243
|
-
H(E) && (
|
|
31298
|
+
H(E) && (M.add(E), P("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.", "UnboundedCacheWarning", E, u2));
|
|
31244
31299
|
}
|
|
31245
31300
|
}
|
|
31246
31301
|
getRemainingTTL(e) {
|
|
@@ -31252,7 +31307,7 @@ var M = class u2 {
|
|
|
31252
31307
|
let i = this.ttlAutopurge ? Array.from({ length: this.#o }) : undefined;
|
|
31253
31308
|
this.#g = i, this.#N = (r, h, l = this.#m.now()) => {
|
|
31254
31309
|
t[r] = h !== 0 ? l : 0, e[r] = h, s(r, h);
|
|
31255
|
-
}, this.#
|
|
31310
|
+
}, this.#x = (r) => {
|
|
31256
31311
|
t[r] = e[r] !== 0 ? this.#m.now() : 0, s(r, e[r]);
|
|
31257
31312
|
};
|
|
31258
31313
|
let s = this.ttlAutopurge ? (r, h) => {
|
|
@@ -31296,7 +31351,7 @@ var M = class u2 {
|
|
|
31296
31351
|
return !!l && !!h && (n || o()) - h > l;
|
|
31297
31352
|
};
|
|
31298
31353
|
}
|
|
31299
|
-
#
|
|
31354
|
+
#x = () => {};
|
|
31300
31355
|
#E = () => {};
|
|
31301
31356
|
#N = () => {};
|
|
31302
31357
|
#p = () => false;
|
|
@@ -31462,7 +31517,7 @@ var M = class u2 {
|
|
|
31462
31517
|
return this.#v(e, "set"), h && (h.set = "miss", h.maxEntrySizeExceeded = true), this;
|
|
31463
31518
|
let f = this.#n === 0 ? undefined : this.#s.get(e);
|
|
31464
31519
|
if (f === undefined)
|
|
31465
|
-
f = this.#n === 0 ? this.#h : this.#y.length !== 0 ? this.#y.pop() : this.#n === this.#o ? this.#G(false) : this.#n, this.#i[f] = e, this.#t[f] = t, this.#s.set(e, f), this.#a[this.#h] = f, this.#c[f] = this.#h, this.#h = f, this.#n++, this.#I(f, c, h), h && (h.set = "add"), l = false, this.#j && this.#
|
|
31520
|
+
f = this.#n === 0 ? this.#h : this.#y.length !== 0 ? this.#y.pop() : this.#n === this.#o ? this.#G(false) : this.#n, this.#i[f] = e, this.#t[f] = t, this.#s.set(e, f), this.#a[this.#h] = f, this.#c[f] = this.#h, this.#h = f, this.#n++, this.#I(f, c, h), h && (h.set = "add"), l = false, this.#j && this.#D?.(t, e, "add");
|
|
31466
31521
|
else {
|
|
31467
31522
|
this.#L(f);
|
|
31468
31523
|
let g = this.#t[f];
|
|
@@ -31526,7 +31581,7 @@ var M = class u2 {
|
|
|
31526
31581
|
if (this.#p(n))
|
|
31527
31582
|
s && (s.has = "stale", this.#E(s, n));
|
|
31528
31583
|
else
|
|
31529
|
-
return i && this.#
|
|
31584
|
+
return i && this.#x(n), s && (s.has = "hit", this.#E(s, n)), true;
|
|
31530
31585
|
} else
|
|
31531
31586
|
s && (s.has = "miss");
|
|
31532
31587
|
return false;
|
|
@@ -31584,7 +31639,7 @@ var M = class u2 {
|
|
|
31584
31639
|
let i = W.hasSubscribers, { status: s = D() ? {} : undefined } = t;
|
|
31585
31640
|
t.status = s, s && t.context && (s.context = t.context);
|
|
31586
31641
|
let n = this.#B(e, t);
|
|
31587
|
-
return s && i && (s.trace = true, W.tracePromise(() => n, s).catch(() => {})), n;
|
|
31642
|
+
return s && D() && i && (s.trace = true, W.tracePromise(() => n, s).catch(() => {})), n;
|
|
31588
31643
|
}
|
|
31589
31644
|
async#B(e, t = {}) {
|
|
31590
31645
|
let { allowStale: i = this.allowStale, updateAgeOnGet: s = this.updateAgeOnGet, noDeleteOnStaleGet: n = this.noDeleteOnStaleGet, ttl: o = this.ttl, noDisposeOnSet: r = this.noDisposeOnSet, size: h = 0, sizeCalculation: l = this.sizeCalculation, noUpdateTTL: c = this.noUpdateTTL, noDeleteOnFetchRejection: f = this.noDeleteOnFetchRejection, allowStaleOnFetchRejection: g = this.allowStaleOnFetchRejection, ignoreFetchAbort: p = this.ignoreFetchAbort, allowStaleOnFetchAbort: T = this.allowStaleOnFetchAbort, context: w, forceRefresh: y = false, status: a, signal: m } = t;
|
|
@@ -31603,7 +31658,7 @@ var M = class u2 {
|
|
|
31603
31658
|
}
|
|
31604
31659
|
let A = this.#p(b);
|
|
31605
31660
|
if (!y && !A)
|
|
31606
|
-
return a && (a.fetch = "hit"), this.#L(b), s && this.#
|
|
31661
|
+
return a && (a.fetch = "hit"), this.#L(b), s && this.#x(b), a && this.#E(a, b), d;
|
|
31607
31662
|
let z5 = this.#P(e, b, _, w), v = z5.__staleWhileFetching !== undefined && i;
|
|
31608
31663
|
return a && (a.fetch = A ? "stale" : "refresh", v && A && (a.returnedStale = true)), v ? z5.__staleWhileFetching : z5.__returned = z5;
|
|
31609
31664
|
}
|
|
@@ -31612,7 +31667,7 @@ var M = class u2 {
|
|
|
31612
31667
|
let i = W.hasSubscribers, { status: s = D() ? {} : undefined } = t;
|
|
31613
31668
|
t.status = s, s && t.context && (s.context = t.context);
|
|
31614
31669
|
let n = this.#K(e, t);
|
|
31615
|
-
return s && i && (s.trace = true, W.tracePromise(() => n, s).catch(() => {})), n;
|
|
31670
|
+
return s && D() && i && (s.trace = true, W.tracePromise(() => n, s).catch(() => {})), n;
|
|
31616
31671
|
}
|
|
31617
31672
|
async#K(e, t = {}) {
|
|
31618
31673
|
let i = await this.#B(e, t);
|
|
@@ -31651,7 +31706,7 @@ var M = class u2 {
|
|
|
31651
31706
|
return;
|
|
31652
31707
|
}
|
|
31653
31708
|
let h = this.#t[r], l = this.#e(h);
|
|
31654
|
-
return o && this.#E(o, r), this.#p(r) ? l ? (o && (o.get = "stale-fetching"), i && h.__staleWhileFetching !== undefined ? (o && (o.returnedStale = true), h.__staleWhileFetching) : undefined) : (n || this.#v(e, "expire"), o && (o.get = "stale"), i ? (o && (o.returnedStale = true), h) : undefined) : (o && (o.get = l ? "fetching" : "hit"), this.#L(r), s && this.#
|
|
31709
|
+
return o && this.#E(o, r), this.#p(r) ? l ? (o && (o.get = "stale-fetching"), i && h.__staleWhileFetching !== undefined ? (o && (o.returnedStale = true), h.__staleWhileFetching) : undefined) : (n || this.#v(e, "expire"), o && (o.get = "stale"), i ? (o && (o.returnedStale = true), h) : undefined) : (o && (o.get = l ? "fetching" : "hit"), this.#L(r), s && this.#x(r), l ? h.__staleWhileFetching : h);
|
|
31655
31710
|
}
|
|
31656
31711
|
#$(e, t) {
|
|
31657
31712
|
this.#c[t] = e, this.#a[e] = t;
|
|
@@ -32556,7 +32611,7 @@ async function probeLlmsText(url, timeoutMs, signal, fallbackOrigin) {
|
|
|
32556
32611
|
}
|
|
32557
32612
|
|
|
32558
32613
|
// src/tools/smartfetch/cache.ts
|
|
32559
|
-
var CACHE = new
|
|
32614
|
+
var CACHE = new L({
|
|
32560
32615
|
maxSize: 50 * 1024 * 1024,
|
|
32561
32616
|
ttl: 15 * 60 * 1000,
|
|
32562
32617
|
sizeCalculation: (value) => {
|
|
@@ -33487,7 +33542,8 @@ var OhMyOpenCodeLite = async (ctx) => {
|
|
|
33487
33542
|
councilTools = config.council ? createCouncilTool(ctx, new CouncilManager(ctx, config, depthTracker, multiplexerEnabled)) : {};
|
|
33488
33543
|
mcps = createBuiltinMcps(config.disabled_mcps, config.websearch);
|
|
33489
33544
|
webfetch = createWebfetchTool(ctx);
|
|
33490
|
-
|
|
33545
|
+
backgroundJobBoard = new BackgroundJobBoard;
|
|
33546
|
+
multiplexerSessionManager = new MultiplexerSessionManager(ctx, multiplexerConfig, backgroundJobBoard);
|
|
33491
33547
|
autoUpdateChecker = createAutoUpdateCheckerHook(ctx, {
|
|
33492
33548
|
autoUpdate: config.autoUpdate ?? true
|
|
33493
33549
|
});
|
|
@@ -33502,7 +33558,6 @@ var OhMyOpenCodeLite = async (ctx) => {
|
|
|
33502
33558
|
applyPatchHook = createApplyPatchHook(ctx);
|
|
33503
33559
|
jsonErrorRecoveryHook = createJsonErrorRecoveryHook(ctx);
|
|
33504
33560
|
foregroundFallback = new ForegroundFallbackManager(ctx.client, runtimeChains, config.fallback?.enabled !== false && Object.keys(runtimeChains).length > 0);
|
|
33505
|
-
backgroundJobBoard = new BackgroundJobBoard;
|
|
33506
33561
|
todoContinuationHook = createTodoContinuationHook(ctx, {
|
|
33507
33562
|
maxContinuations: config.todoContinuation?.maxContinuations ?? 5,
|
|
33508
33563
|
cooldownMs: config.todoContinuation?.cooldownMs ?? 3000,
|