cli-jaw 2.17.50 → 2.17.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/agent/alert-escalation.js +5 -1
- package/dist/src/agent/alert-escalation.js.map +1 -1
- package/dist/src/browser/web-ai/notifications.js +2 -0
- package/dist/src/browser/web-ai/notifications.js.map +1 -1
- package/dist/src/manager/reminders/dispatcher.js +5 -1
- package/dist/src/manager/reminders/dispatcher.js.map +1 -1
- package/dist/src/memory/heartbeat-destination.js +9 -3
- package/dist/src/memory/heartbeat-destination.js.map +1 -1
- package/dist/src/memory/heartbeat-mention-watch.js +14 -0
- package/dist/src/memory/heartbeat-mention-watch.js.map +1 -1
- package/dist/src/memory/heartbeat-run-record.js +56 -0
- package/dist/src/memory/heartbeat-run-record.js.map +1 -0
- package/dist/src/memory/heartbeat.js +320 -24
- package/dist/src/memory/heartbeat.js.map +1 -1
- package/dist/src/messaging/send.js +10 -5
- package/dist/src/messaging/send.js.map +1 -1
- package/dist/src/routes/heartbeat.js +12 -2
- package/dist/src/routes/heartbeat.js.map +1 -1
- package/dist/src/slack/action-runtime.js +15 -8
- package/dist/src/slack/action-runtime.js.map +1 -1
- package/dist/src/slack/mention-watch.js +8 -2
- package/dist/src/slack/mention-watch.js.map +1 -1
- package/dist/src/slack/quote.js +11 -4
- package/dist/src/slack/quote.js.map +1 -1
- package/package.json +1 -1
- package/scripts/promote-to-main.sh +147 -49
- package/scripts/promotion-state.mjs +133 -0
|
@@ -71,7 +71,11 @@ export function initAlertDelivery() {
|
|
|
71
71
|
continue;
|
|
72
72
|
// An operational alert belongs in the channel configured to receive
|
|
73
73
|
// one, not in whichever conversation spoke most recently (#438).
|
|
74
|
-
void sendChannelOutput({
|
|
74
|
+
void sendChannelOutput({
|
|
75
|
+
type: 'text', text, channel: ch,
|
|
76
|
+
preferConfiguredTarget: true,
|
|
77
|
+
allowActiveFallback: false,
|
|
78
|
+
})
|
|
75
79
|
.then((result) => {
|
|
76
80
|
if (!result.ok) {
|
|
77
81
|
console.warn(`[jaw:alert] delivery to ${ch} failed:`, result.error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert-escalation.js","sourceRoot":"","sources":["../../../src/agent/alert-escalation.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"alert-escalation.js","sourceRoot":"","sources":["../../../src/agent/alert-escalation.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,9 @@ export async function drainPendingWebAiNotifications(sender = sendChannelOutput)
|
|
|
12
12
|
text: formatWebAiNotification(event),
|
|
13
13
|
// Drained when a watcher finishes, which can be long after the request
|
|
14
14
|
// that started it — by then last-active names an unrelated thread (#438).
|
|
15
|
+
// Missing configured dest is failed delivery, not last-active.
|
|
15
16
|
preferConfiguredTarget: true,
|
|
17
|
+
allowActiveFallback: false,
|
|
16
18
|
});
|
|
17
19
|
if (result.ok) {
|
|
18
20
|
sent += 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../../src/browser/web-ai/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,yBAAyB,CAAC;AACrF,OAAO,EACH,iBAAiB,EACjB,yBAAyB,GAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAWxD,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAChD,SAAkC,iBAAiB;IAEnD,MAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACzD,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;YACxB,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,uBAAuB,CAAC,KAAK,CAAC;YACpC,uEAAuE;YACvE,0EAA0E;YAC1E,sBAAsB,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../../src/browser/web-ai/notifications.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,11 @@ export async function dispatchReminderNotification(reminder, options = {}) {
|
|
|
32
32
|
// A reminder fires on a schedule, so "the active conversation" at that moment
|
|
33
33
|
// is whoever happened to message the bot last — not the person who set the
|
|
34
34
|
// reminder. Resolve to the configured channel instead (#438).
|
|
35
|
-
const result = await send({
|
|
35
|
+
const result = await send({
|
|
36
|
+
channel: 'active', type: 'text', text: reminderText(reminder),
|
|
37
|
+
preferConfiguredTarget: true,
|
|
38
|
+
allowActiveFallback: false,
|
|
39
|
+
});
|
|
36
40
|
const status = statusFromSendResult(result);
|
|
37
41
|
const error = result.ok ? null : result.error || 'send failed';
|
|
38
42
|
if (status !== 'delivered')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../../src/manager/reminders/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,yBAAyB,CAAC;AAkBrF,SAAS,YAAY,CAAC,QAA2B;IAC7C,MAAM,KAAK,GAAG,CAAC,aAAa,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9C,IAAI,QAAQ,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,QAAQ,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtE,IAAI,QAAQ,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IACzD,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG;YACX,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;YAC9C,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI;YAC3D,QAAQ,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI;SACpE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAuC;IACjE,IAAI,MAAM,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IACjC,OAAO,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAC1F,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,QAAQ,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAC9C,QAA2B,EAC3B,UAAqC,EAAE;IAEvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,iBAAiB,CAAC;IAC/C,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/D,8EAA8E;IAC9E,2EAA2E;IAC3E,8DAA8D;IAC9D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../../src/manager/reminders/dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,7 +49,10 @@ export function resolveHeartbeatBinding(destination) {
|
|
|
49
49
|
const dest = destination;
|
|
50
50
|
const base = targetFromChatId(dest.channel, dest.targetId);
|
|
51
51
|
const threadId = dest.threadId?.trim();
|
|
52
|
-
|
|
52
|
+
// A pure parse proves the destination is well formed, never that the
|
|
53
|
+
// conversation still exists. Saying `unverified` here is what lets a caller
|
|
54
|
+
// tell this result from one that came back through the live check.
|
|
55
|
+
return { state: 'bound', target: threadId ? { ...base, threadId } : base, verification: 'unverified' };
|
|
53
56
|
}
|
|
54
57
|
/** Operator-facing explanation. Never includes tokens or report content. */
|
|
55
58
|
export function heartbeatHoldMessage(reason) {
|
|
@@ -86,8 +89,11 @@ export async function verifyHeartbeatThreadBindingLive(destination, options) {
|
|
|
86
89
|
if (binding.state === 'held')
|
|
87
90
|
return binding;
|
|
88
91
|
const { target } = binding;
|
|
92
|
+
// No live check exists for these shapes: only Slack has threads to read, and a
|
|
93
|
+
// `channel_root` job names the channel itself. `unsupported` says that, rather
|
|
94
|
+
// than leaving a healthy job looking unverified forever.
|
|
89
95
|
if (target.channel !== 'slack' || !target.threadId)
|
|
90
|
-
return binding;
|
|
96
|
+
return { ...binding, verification: 'unsupported' };
|
|
91
97
|
if (!options.token.trim())
|
|
92
98
|
return { state: 'held', reason: 'live_lookup_failed' };
|
|
93
99
|
try {
|
|
@@ -109,7 +115,7 @@ export async function verifyHeartbeatThreadBindingLive(destination, options) {
|
|
|
109
115
|
return { state: 'held', reason: 'live_lookup_failed' };
|
|
110
116
|
}
|
|
111
117
|
return result.messages[0]?.ts === target.threadId
|
|
112
|
-
? binding
|
|
118
|
+
? { ...binding, verification: 'verified' }
|
|
113
119
|
: { state: 'held', reason: 'thread_channel_mismatch' };
|
|
114
120
|
}
|
|
115
121
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat-destination.js","sourceRoot":"","sources":["../../../src/memory/heartbeat-destination.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,6EAA6E;AAC7E,8EAA8E;AAC9E,gFAAgF;AAChF,iFAAiF;AACjF,sEAAsE;AACtE,EAAE;AACF,+EAA+E;AAC/E,2EAA2E;AAC3E,8EAA8E;AAC9E,+EAA+E;AAC/E,wEAAwE;AAExE,OAAO,EAAE,sBAAsB,EAA6B,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"heartbeat-destination.js","sourceRoot":"","sources":["../../../src/memory/heartbeat-destination.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,6 +50,7 @@ export async function runMentionWatchTick(ns, job, watch, deps) {
|
|
|
50
50
|
const result = {
|
|
51
51
|
answered: 0, quiet: 0, failed: 0,
|
|
52
52
|
unreadable: [], unauthorized: [], overflow: [],
|
|
53
|
+
scanIncomplete: false, hitCapReached: false,
|
|
53
54
|
};
|
|
54
55
|
const { allowed, rejected } = authorizedChannels(watch.channelIds, deps.allowlist);
|
|
55
56
|
result.unauthorized = rejected;
|
|
@@ -84,6 +85,9 @@ export async function runMentionWatchTick(ns, job, watch, deps) {
|
|
|
84
85
|
});
|
|
85
86
|
result.unreadable = scan.failed.map(f => f.channelId);
|
|
86
87
|
result.overflow = scan.overflowChannels;
|
|
88
|
+
// Computed by the scanner and, until now, dropped on the floor here.
|
|
89
|
+
result.scanIncomplete = scan.truncated;
|
|
90
|
+
result.hitCapReached = scan.hitCapReached;
|
|
87
91
|
if (scan.overflowChannels.length) {
|
|
88
92
|
log(`mention watch: ${scan.overflowChannels.length} channel(s) past the scanner ceiling were not read: ${scan.overflowChannels.join(', ')}`);
|
|
89
93
|
}
|
|
@@ -98,11 +102,21 @@ export async function runMentionWatchTick(ns, job, watch, deps) {
|
|
|
98
102
|
for (const [channelId, bound] of scan.resumeBounds) {
|
|
99
103
|
setResumeBefore(ns, channelId, bound, now());
|
|
100
104
|
}
|
|
105
|
+
// The answering clock starts HERE, after the scan, for the reason given on
|
|
106
|
+
// `answerBudgetMs`.
|
|
107
|
+
const answeringSince = now();
|
|
101
108
|
for (const hit of scan.hits) {
|
|
102
109
|
if (deps.signal?.aborted) {
|
|
103
110
|
result.stoppedBecause = 'aborted';
|
|
104
111
|
break;
|
|
105
112
|
}
|
|
113
|
+
// Before the answer, never after: checking afterwards would spend a full
|
|
114
|
+
// orchestrator turn to discover the tick was already over. An unanswered
|
|
115
|
+
// hit keeps no receipt, so the next tick has it.
|
|
116
|
+
if (deps.answerBudgetMs !== undefined && now() - answeringSince >= deps.answerBudgetMs) {
|
|
117
|
+
result.stoppedBecause = 'budget';
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
106
120
|
// Re-checked per item, not once for the batch: the previous answer may
|
|
107
121
|
// have taken minutes, and a user who started typing during it outranks
|
|
108
122
|
// the rest of this backlog.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat-mention-watch.js","sourceRoot":"","sources":["../../../src/memory/heartbeat-mention-watch.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,iFAAiF;AACjF,+EAA+E;AAC/E,6EAA6E;AAC7E,EAAE;AACF,uBAAuB;AACvB,EAAE;AACF,iFAAiF;AACjF,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,0CAA0C;AAC1C,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,+EAA+E;AAC/E,kFAAkF;AAClF,4CAA4C;AAE5C,OAAO,EACH,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,eAAe,EACf,YAAY,EACZ,cAAc,GACjB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,iBAAiB,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"heartbeat-mention-watch.js","sourceRoot":"","sources":["../../../src/memory/heartbeat-mention-watch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// ─── Heartbeat run record ────────────────────────────
|
|
2
|
+
// What one tick actually did, kept apart from whether it was delivered.
|
|
3
|
+
//
|
|
4
|
+
// The heartbeat had exactly one durable trace of a tick: `insertHeartbeatAnchor`,
|
|
5
|
+
// written only when a send succeeded. Every other outcome — a held destination, an
|
|
6
|
+
// unreservable grant, a refused mention watch, a thrown runner — produced a log
|
|
7
|
+
// line and nothing else, so a job that failed on every tick for a week was
|
|
8
|
+
// indistinguishable from a job that had nothing to say.
|
|
9
|
+
//
|
|
10
|
+
// The split below is borrowed from openclaw's cron, which separates execution
|
|
11
|
+
// status from delivery status precisely because 'the model finished' and 'the
|
|
12
|
+
// recipient got it' are different claims and conflating them makes a green run
|
|
13
|
+
// meaningless as evidence.
|
|
14
|
+
/** Ticks in a row before a job is called failing.
|
|
15
|
+
*
|
|
16
|
+
* openclaw auto-disables at ten, but its jobs also carry exponential backoff. This
|
|
17
|
+
* scheduler has none, so a five-minute job reaches five in twenty-five minutes, and
|
|
18
|
+
* twenty-five minutes of silent failure is already longer than a heartbeat is useful
|
|
19
|
+
* for. Nothing is disabled at the threshold — the job keeps its timer, exactly as a
|
|
20
|
+
* live destination hold does, because silently stopping a job is the failure #745
|
|
21
|
+
* was about. It becomes VISIBLE. */
|
|
22
|
+
export const HEARTBEAT_FAILURE_HOLD_THRESHOLD = 5;
|
|
23
|
+
/** Fold one tick's outcome into the running record.
|
|
24
|
+
*
|
|
25
|
+
* Three rules, each of which exists because collapsing it produced a wrong answer:
|
|
26
|
+
*
|
|
27
|
+
* - A delivery failure does NOT increment the failure streak. The work succeeded;
|
|
28
|
+
* the transport did not. Counting it as an execution failure makes a flaky
|
|
29
|
+
* channel look like a broken job.
|
|
30
|
+
* - A skip gets its OWN counter rather than being ignored. A job that refuses every
|
|
31
|
+
* tick — an unverifiable workspace, a grant that never reserves — would otherwise
|
|
32
|
+
* sit at zero forever and never become visible, which is the same invisibility
|
|
33
|
+
* this record exists to end.
|
|
34
|
+
* - A superseded run carries both counters through untouched. Letting a late `ok`
|
|
35
|
+
* reset a streak, or a post-abort throw increment one, describes a schedule the
|
|
36
|
+
* operator already replaced. */
|
|
37
|
+
export function foldRunRecord(previous, next) {
|
|
38
|
+
const failures = previous?.consecutiveFailures ?? 0;
|
|
39
|
+
const skips = previous?.consecutiveSkips ?? 0;
|
|
40
|
+
if (next.superseded)
|
|
41
|
+
return { ...next, consecutiveFailures: failures, consecutiveSkips: skips };
|
|
42
|
+
if (next.execution === 'error')
|
|
43
|
+
return { ...next, consecutiveFailures: failures + 1, consecutiveSkips: skips };
|
|
44
|
+
if (next.execution === 'skipped')
|
|
45
|
+
return { ...next, consecutiveFailures: failures, consecutiveSkips: skips + 1 };
|
|
46
|
+
return { ...next, consecutiveFailures: 0, consecutiveSkips: 0 };
|
|
47
|
+
}
|
|
48
|
+
/** Either counter at the threshold. A skip and a crash need different operator
|
|
49
|
+
* responses, which is why they are counted apart — but neither may be invisible. */
|
|
50
|
+
export function isHeartbeatJobFailing(record) {
|
|
51
|
+
if (!record)
|
|
52
|
+
return false;
|
|
53
|
+
return record.consecutiveFailures >= HEARTBEAT_FAILURE_HOLD_THRESHOLD
|
|
54
|
+
|| record.consecutiveSkips >= HEARTBEAT_FAILURE_HOLD_THRESHOLD;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=heartbeat-run-record.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heartbeat-run-record.js","sourceRoot":"","sources":["../../../src/memory/heartbeat-run-record.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,wEAAwE;AACxE,EAAE;AACF,kFAAkF;AAClF,mFAAmF;AACnF,gFAAgF;AAChF,2EAA2E;AAC3E,wDAAwD;AACxD,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,+EAA+E;AAC/E,2BAA2B;AAyB3B;;;;;;;qCAOqC;AACrC,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAElD;;;;;;;;;;;;;mCAamC;AACnC,MAAM,UAAU,aAAa,CACzB,QAAwC,EACxC,IAA0E;IAE1E,MAAM,QAAQ,GAAG,QAAQ,EAAE,mBAAmB,IAAI,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,QAAQ,EAAE,gBAAgB,IAAI,CAAC,CAAC;IAC9C,IAAI,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAChG,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,mBAAmB,EAAE,QAAQ,GAAG,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAC/G,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;IACjH,OAAO,EAAE,GAAG,IAAI,EAAE,mBAAmB,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;AACpE,CAAC;AAED;qFACqF;AACrF,MAAM,UAAU,qBAAqB,CAAC,MAAsC;IACxE,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,MAAM,CAAC,mBAAmB,IAAI,gCAAgC;WAC9D,MAAM,CAAC,gBAAgB,IAAI,gCAAgC,CAAC;AACvE,CAAC"}
|