@songsid/agend 2.3.0-beta.12 → 2.3.0-beta.13
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 +6 -0
- package/README.zh-TW.md +6 -0
- package/dist/config.d.ts +12 -0
- package/dist/config.js +13 -4
- package/dist/config.js.map +1 -1
- package/dist/fleet-manager.d.ts +36 -1
- package/dist/fleet-manager.js +128 -30
- package/dist/fleet-manager.js.map +1 -1
- package/dist/general-knowledge/skills/fleet-config/SKILL.md +2 -0
- package/dist/general-knowledge/skills/web-appearance/SKILL.md +20 -3
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +23 -5
- package/dist/outbound-schemas.d.ts +14 -1
- package/dist/outbound-schemas.js +8 -2
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/public-web-gateway.js +4 -0
- package/dist/public-web-gateway.js.map +1 -1
- package/dist/restart-progress.d.ts +16 -1
- package/dist/restart-progress.js +74 -15
- package/dist/restart-progress.js.map +1 -1
- package/dist/settings-api.js +4 -1
- package/dist/settings-api.js.map +1 -1
- package/dist/settings-confirmation.d.ts +3 -1
- package/dist/settings-confirmation.js +2 -0
- package/dist/settings-confirmation.js.map +1 -1
- package/dist/settings-effect.js +2 -1
- package/dist/settings-effect.js.map +1 -1
- package/dist/settings-http-confirmation.d.ts +11 -0
- package/dist/settings-http-confirmation.js +10 -0
- package/dist/settings-http-confirmation.js.map +1 -1
- package/dist/ui/chat-effects.js +10 -3
- package/dist/ui/chat-strings.js +2 -0
- package/dist/ui/effects-waker.js +70 -0
- package/dist/ui/fleet-canvas-layout.js +10 -4
- package/dist/ui/fleet-canvas.js +32 -2
- package/dist/ui/fleet-route-scene.js +207 -0
- package/dist/ui/fleet-route-worker.js +21 -0
- package/dist/ui/fleet-route.js +88 -0
- package/dist/ui/fleet-traffic.js +27 -11
- package/dist/ui/fleet-usage.js +35 -1
- package/dist/ui/panel-chat.js +43 -23
- package/dist/ui/panel-fleet.js +3 -3
- package/dist/ui/settings-appearance.js +2 -1
- package/dist/ui/settings-apply.js +3 -3
- package/dist/ui/settings-confirm.js +7 -2
- package/dist/ui/settings-owner-effects.js +6 -4
- package/dist/ui/shared/app-i18n.js +4 -0
- package/dist/ui/shared/app-prefs.js +12 -0
- package/dist/ui/shared/app-shell.js +38 -2
- package/dist/ui/shared/app-themes.js +116 -1
- package/dist/ui/shared/app.css +47 -3
- package/dist/ui/shared/card-strings.js +4 -0
- package/dist/ui/shared/identity-card.js +24 -6
- package/dist/ui/shared/identity-color.js +11 -7
- package/dist/ui/shared/ui-icons.js +2 -0
- package/dist/ui/shared/ui-menu.js +9 -3
- package/dist/ui/shared/web-authorize.js +47 -0
- package/dist/web-api.js +18 -1
- package/dist/web-api.js.map +1 -1
- package/dist/web-appearance.js +3 -1
- package/dist/web-appearance.js.map +1 -1
- package/dist/web-effect.d.ts +1 -1
- package/dist/web-host-guard.d.ts +11 -0
- package/dist/web-host-guard.js +11 -0
- package/dist/web-host-guard.js.map +1 -1
- package/dist/web-libavoid.d.ts +14 -0
- package/dist/web-libavoid.js +46 -0
- package/dist/web-libavoid.js.map +1 -0
- package/dist/web-owner-css-store.d.ts +3 -2
- package/dist/web-owner-css-store.js +9 -4
- package/dist/web-owner-css-store.js.map +1 -1
- package/dist/web-prefs.js +13 -0
- package/dist/web-prefs.js.map +1 -1
- package/dist/web-settings-tools.d.ts +5 -0
- package/dist/web-settings-tools.js +34 -6
- package/dist/web-settings-tools.js.map +1 -1
- package/dist/web-theme.d.ts +29 -0
- package/dist/web-theme.js +89 -1
- package/dist/web-theme.js.map +1 -1
- package/dist/yaml-shared-nodes.d.ts +25 -0
- package/dist/yaml-shared-nodes.js +185 -0
- package/dist/yaml-shared-nodes.js.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
// #2208: a hand-written fleet.yaml (or classicBot.yaml) may share one value between two places — an anchor `&admins`
|
|
2
|
+
// and an alias `*admins`. Read naively, both places become the same JS object, and a document edit goes through the
|
|
3
|
+
// shared node: an edit meant for one connection either fails ("Expected YAML collection") or changes the other
|
|
4
|
+
// connection too, outside what the change was confirmed for. Two rules close that:
|
|
5
|
+
// - a parsed value is unshared at load (unshareParsed): every place holds its own copy, so an edit in memory changes
|
|
6
|
+
// one place;
|
|
7
|
+
// - before a document write, the place written is unshared (detachForWrite): an alias on the way becomes a copy of
|
|
8
|
+
// what it pointed to, and an anchor on the way gives every other alias of it its own copy. Anchors and aliases the
|
|
9
|
+
// write does not touch stay as the operator wrote them.
|
|
10
|
+
import { isAlias, isCollection, isMap, isNode, isPair, isSeq, visit } from "yaml";
|
|
11
|
+
/** At most this many values after the aliases are expanded: an alias "bomb" fails the load instead of filling memory. */
|
|
12
|
+
export const UNSHARE_MAX_VALUES = 200_000;
|
|
13
|
+
/**
|
|
14
|
+
* A deep copy of a parsed YAML value in which no object or array appears twice: what an anchor and its aliases shared
|
|
15
|
+
* becomes separate, equal copies. Values that are not plain objects or arrays (a js-yaml Date) are kept as they are.
|
|
16
|
+
* Throws on a value that contains itself (a recursive alias) and past UNSHARE_MAX_VALUES values.
|
|
17
|
+
*/
|
|
18
|
+
export function unshareParsed(value, label = "the YAML file") {
|
|
19
|
+
const ancestors = new Set();
|
|
20
|
+
let count = 0;
|
|
21
|
+
const copy = (v) => {
|
|
22
|
+
if (++count > UNSHARE_MAX_VALUES)
|
|
23
|
+
throw new Error(`${label} expands to more than ${UNSHARE_MAX_VALUES} values through its aliases`);
|
|
24
|
+
if (v === null || typeof v !== "object")
|
|
25
|
+
return v;
|
|
26
|
+
const proto = Object.getPrototypeOf(v);
|
|
27
|
+
if (!Array.isArray(v) && proto !== Object.prototype && proto !== null)
|
|
28
|
+
return v;
|
|
29
|
+
if (ancestors.has(v))
|
|
30
|
+
throw new Error(`${label} has a value that contains itself (a recursive alias)`);
|
|
31
|
+
ancestors.add(v);
|
|
32
|
+
try {
|
|
33
|
+
if (Array.isArray(v))
|
|
34
|
+
return v.map(copy);
|
|
35
|
+
const out = proto === null ? Object.create(null) : {};
|
|
36
|
+
for (const [k, x] of Object.entries(v))
|
|
37
|
+
Object.defineProperty(out, k, { value: copy(x), enumerable: true, writable: true, configurable: true });
|
|
38
|
+
return out;
|
|
39
|
+
}
|
|
40
|
+
finally {
|
|
41
|
+
ancestors.delete(v);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
return copy(value);
|
|
45
|
+
}
|
|
46
|
+
/** A copy of `node` (an alias: of what it points to) holding no anchor and no alias. */
|
|
47
|
+
function materialize(doc, node, depth = 0) {
|
|
48
|
+
if (depth > 64)
|
|
49
|
+
throw new Error("fleet.yaml nests its aliases too deeply");
|
|
50
|
+
const source = isAlias(node) ? node.resolve(doc) : node;
|
|
51
|
+
if (!source)
|
|
52
|
+
throw new Error(`fleet.yaml has an alias without its anchor (*${isAlias(node) ? node.source : "?"})`);
|
|
53
|
+
const copy = source.clone();
|
|
54
|
+
const strip = (n) => {
|
|
55
|
+
if (isAlias(n))
|
|
56
|
+
return materialize(doc, n, depth + 1);
|
|
57
|
+
if (!isNode(n))
|
|
58
|
+
return n;
|
|
59
|
+
delete n.anchor;
|
|
60
|
+
if (isCollection(n)) {
|
|
61
|
+
n.items = n.items.map(item => {
|
|
62
|
+
if (!isPair(item))
|
|
63
|
+
return strip(item);
|
|
64
|
+
item.key = strip(item.key);
|
|
65
|
+
item.value = strip(item.value);
|
|
66
|
+
return item;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return n;
|
|
70
|
+
};
|
|
71
|
+
return strip(copy);
|
|
72
|
+
}
|
|
73
|
+
/** Every alias outside `target` that points to it gets its own copy of it; then `target` drops its anchor. */
|
|
74
|
+
function unshareAnchor(doc, target) {
|
|
75
|
+
if (!target.anchor)
|
|
76
|
+
return;
|
|
77
|
+
let inside = false;
|
|
78
|
+
visit(doc, {
|
|
79
|
+
Alias(_key, alias, path) {
|
|
80
|
+
if (alias.resolve(doc) !== target)
|
|
81
|
+
return undefined;
|
|
82
|
+
if (path.includes(target)) {
|
|
83
|
+
inside = true;
|
|
84
|
+
return undefined;
|
|
85
|
+
} // the anchor's own content (recursive)
|
|
86
|
+
return materialize(doc, target);
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
if (!inside)
|
|
90
|
+
delete target.anchor;
|
|
91
|
+
}
|
|
92
|
+
function child(node, key) {
|
|
93
|
+
if (isMap(node))
|
|
94
|
+
return node.get(key, true);
|
|
95
|
+
if (isSeq(node) && typeof key === "number")
|
|
96
|
+
return node.get(key, true);
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Make a write at `path` change that place only. Along the path, an alias is replaced by a copy of what it points to
|
|
101
|
+
* and an anchor's other aliases each get a copy; at the end, the same for every anchor inside what is written over.
|
|
102
|
+
* Call it before every setIn / deleteIn / in-place scalar change on the document.
|
|
103
|
+
*/
|
|
104
|
+
export function detachForWrite(doc, path) {
|
|
105
|
+
let parent = null;
|
|
106
|
+
let node = doc.contents;
|
|
107
|
+
for (let depth = 0;; depth++) {
|
|
108
|
+
if (isAlias(node) && (isMap(parent) || isSeq(parent))) { // (the root is never an alias: it comes first)
|
|
109
|
+
const copy = materialize(doc, node);
|
|
110
|
+
parent.set(path[depth - 1], copy);
|
|
111
|
+
node = copy;
|
|
112
|
+
}
|
|
113
|
+
if (isNode(node))
|
|
114
|
+
unshareAnchor(doc, node);
|
|
115
|
+
if (depth === path.length) {
|
|
116
|
+
if (isNode(node)) {
|
|
117
|
+
const anchored = [];
|
|
118
|
+
visit(node, { Node(_key, n) { if (n !== node && n.anchor)
|
|
119
|
+
anchored.push(n); } });
|
|
120
|
+
for (const n of anchored)
|
|
121
|
+
unshareAnchor(doc, n);
|
|
122
|
+
}
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const next = child(node, path[depth]);
|
|
126
|
+
if (next === undefined)
|
|
127
|
+
return;
|
|
128
|
+
parent = node;
|
|
129
|
+
node = next;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
const isPlain = (v) => v !== null && typeof v === "object" && !Array.isArray(v);
|
|
133
|
+
const same = (a, b) => JSON.stringify(a) === JSON.stringify(b);
|
|
134
|
+
const named = (at) => (at.length ? at.join(".") : "(the whole file)");
|
|
135
|
+
/** The deepest first place where two values differ, or null. */
|
|
136
|
+
function firstDifference(before, after, at) {
|
|
137
|
+
if (same(before, after))
|
|
138
|
+
return null;
|
|
139
|
+
if (Array.isArray(before) && Array.isArray(after) && before.length === after.length) {
|
|
140
|
+
for (let i = 0; i < before.length; i++) {
|
|
141
|
+
const found = firstDifference(before[i], after[i], [...at, i]);
|
|
142
|
+
if (found)
|
|
143
|
+
return found;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
if (isPlain(before) && isPlain(after)) {
|
|
147
|
+
for (const key of new Set([...Object.keys(before), ...Object.keys(after)])) {
|
|
148
|
+
const found = firstDifference(before[key], after[key], [...at, key]);
|
|
149
|
+
if (found)
|
|
150
|
+
return found;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return named(at);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* The first place (as a dotted path, as deep as it goes) where `after` differs from `before` outside every path in
|
|
157
|
+
* `written`, or null.
|
|
158
|
+
* A write at a path covers it and everything under it.
|
|
159
|
+
*/
|
|
160
|
+
export function changedOutside(before, after, written, at = []) {
|
|
161
|
+
const covered = written.some(w => w.length <= at.length && w.every((k, i) => String(k) === String(at[i])));
|
|
162
|
+
if (covered)
|
|
163
|
+
return null;
|
|
164
|
+
const leadsTo = written.some(w => w.length > at.length && at.every((k, i) => String(k) === String(w[i])));
|
|
165
|
+
if (!leadsTo)
|
|
166
|
+
return firstDifference(before, after, at);
|
|
167
|
+
if (Array.isArray(before) && Array.isArray(after)) {
|
|
168
|
+
for (let i = 0; i < Math.max(before.length, after.length); i++) {
|
|
169
|
+
const found = changedOutside(before[i], after[i], written, [...at, i]);
|
|
170
|
+
if (found)
|
|
171
|
+
return found;
|
|
172
|
+
}
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
if (isPlain(before) && isPlain(after)) {
|
|
176
|
+
for (const key of new Set([...Object.keys(before), ...Object.keys(after)])) {
|
|
177
|
+
const found = changedOutside(before[key], after[key], written, [...at, key]);
|
|
178
|
+
if (found)
|
|
179
|
+
return found;
|
|
180
|
+
}
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
return same(before, after) ? null : named(at);
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=yaml-shared-nodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml-shared-nodes.js","sourceRoot":"","sources":["../src/yaml-shared-nodes.ts"],"names":[],"mappings":"AAAA,qHAAqH;AACrH,oHAAoH;AACpH,+GAA+G;AAC/G,mFAAmF;AACnF,uHAAuH;AACvH,iBAAiB;AACjB,qHAAqH;AACrH,uHAAuH;AACvH,4DAA4D;AAC5D,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAA4B,MAAM,MAAM,CAAC;AAK5G,yHAAyH;AACzH,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAE1C;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAI,KAAQ,EAAE,KAAK,GAAG,eAAe;IAChE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,IAAI,GAAG,CAAC,CAAU,EAAW,EAAE;QACnC,IAAI,EAAE,KAAK,GAAG,kBAAkB;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,yBAAyB,kBAAkB,6BAA6B,CAAC,CAAC;QACpI,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC;QAChF,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,uDAAuD,CAAC,CAAC;QACvG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,GAAG,GAA4B,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;gBAAE,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YAChJ,OAAO,GAAG,CAAC;QACb,CAAC;gBAAS,CAAC;YAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;IACpC,CAAC,CAAC;IACF,OAAO,IAAI,CAAC,KAAK,CAAM,CAAC;AAC1B,CAAC;AAED,wFAAwF;AACxF,SAAS,WAAW,CAAC,GAAiB,EAAE,IAAU,EAAE,KAAK,GAAG,CAAC;IAC3D,IAAI,KAAK,GAAG,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpE,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACnH,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAU,CAAC;IACpC,MAAM,KAAK,GAAG,CAAC,CAAU,EAAW,EAAE;QACpC,IAAI,OAAO,CAAC,CAAC,CAAC;YAAE,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACzB,OAAQ,CAAyB,CAAC,MAAM,CAAC;QACzC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,CAAC,CAAC,KAAK,GAAI,CAAC,CAAC,KAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3D,OAAO,IAAI,CAAC;YACd,CAAC,CAAmB,CAAC;QACvB,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAS,CAAC;AAC7B,CAAC;AAED,8GAA8G;AAC9G,SAAS,aAAa,CAAC,GAAiB,EAAE,MAAY;IACpD,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO;IAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,CAAC,GAAe,EAAE;QACrB,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI;YACrB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAe,CAAC,KAAK,MAAM;gBAAE,OAAO,SAAS,CAAC;YAChE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAAC,MAAM,GAAG,IAAI,CAAC;gBAAC,OAAO,SAAS,CAAC;YAAC,CAAC,CAAM,uCAAuC;YAC5G,OAAO,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC;KACF,CAAC,CAAC;IACH,IAAI,CAAC,MAAM;QAAE,OAAQ,MAA8B,CAAC,MAAM,CAAC;AAC7D,CAAC;AAED,SAAS,KAAK,CAAC,IAAa,EAAE,GAAoB;IAChD,IAAI,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACvE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,GAAiB,EAAE,IAAU;IAC1D,IAAI,MAAM,GAAY,IAAI,CAAC;IAC3B,IAAI,IAAI,GAAY,GAAG,CAAC,QAAQ,CAAC;IACjC,KAAK,IAAI,KAAK,GAAG,CAAC,GAAI,KAAK,EAAE,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAoB,+CAA+C;YACzH,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAClC,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC;YAAE,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1B,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjB,MAAM,QAAQ,GAAW,EAAE,CAAC;gBAC5B,KAAK,CAAC,IAAY,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM;wBAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACzF,KAAK,MAAM,CAAC,IAAI,QAAQ;oBAAE,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAClD,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO;QAC/B,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,GAAG,IAAI,CAAC;IAC7B,CAAC;AACH,CAAC;AAGD,MAAM,OAAO,GAAG,CAAC,CAAO,EAA6B,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjH,MAAM,IAAI,GAAG,CAAC,CAAO,EAAE,CAAO,EAAW,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACpF,MAAM,KAAK,GAAG,CAAC,EAAkC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAEtG,gEAAgE;AAChE,SAAS,eAAe,CAAC,MAAY,EAAE,KAAW,EAAE,EAA0B;IAC5E,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAAC,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAAC,CAAC;IACtI,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,KAAK,MAAM,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;YAAC,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAChG,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,MAAY,EAAE,KAAW,EAAE,OAA4B,EAAE,KAA6B,EAAE;IACrH,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3G,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1G,IAAI,CAAC,OAAO;QAAE,OAAO,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IACxD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/D,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACvE,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,KAAK,MAAM,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;YAC7E,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAChD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@songsid/agend",
|
|
3
|
-
"version": "2.3.0-beta.
|
|
3
|
+
"version": "2.3.0-beta.13",
|
|
4
4
|
"description": "Multi-agent fleet daemon — run coding CLIs (Claude, Muse, Codex, OpenCode) from Discord or Telegram",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -67,6 +67,7 @@
|
|
|
67
67
|
"ejs": "^5.0.1",
|
|
68
68
|
"grammy": "^1.44.0",
|
|
69
69
|
"js-yaml": "^4.1.1",
|
|
70
|
+
"libavoid-js": "0.4.5",
|
|
70
71
|
"pino": "^10.3.1",
|
|
71
72
|
"pino-pretty": "^13.1.3",
|
|
72
73
|
"smol-toml": "1.9.0",
|