@evomap/evolver-core 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/algo/antiDistill.js +1 -167
  2. package/dist/algo/bans.js +1 -33
  3. package/dist/algo/candidateAssembly.js +1 -273
  4. package/dist/algo/capabilityCandidates.js +1 -146
  5. package/dist/algo/confidence.js +1 -196
  6. package/dist/algo/conversationSniffer.js +1 -149
  7. package/dist/algo/cycleEngine.js +1 -625
  8. package/dist/algo/cycleFailureClassifier.js +1 -112
  9. package/dist/algo/epigenetics.js +1 -41
  10. package/dist/algo/evolutionEvent.js +1 -24
  11. package/dist/algo/exploration.js +1 -68
  12. package/dist/algo/geneHealth.js +1 -17
  13. package/dist/algo/geneIntake.js +1 -128
  14. package/dist/algo/genePromotion.js +1 -53
  15. package/dist/algo/geneSelection.js +1 -546
  16. package/dist/algo/index.js +1 -22
  17. package/dist/algo/memoryGraph.js +1 -86
  18. package/dist/algo/mutation.js +1 -22
  19. package/dist/algo/orchestrator.js +1 -87
  20. package/dist/algo/publishEligibility.js +1 -52
  21. package/dist/algo/solidify.js +1 -63
  22. package/dist/algo/strategyPresets.js +1 -61
  23. package/dist/algo/ucb1.js +1 -156
  24. package/dist/benchmark/antiGeneBenchmark.js +1 -252
  25. package/dist/benchmark/antiGeneImpact.js +1 -34
  26. package/dist/benchmark/antiGeneRollout.js +1 -269
  27. package/dist/benchmark/benchmark.js +1 -26
  28. package/dist/benchmark/evolutionThesisSolver.js +1 -41
  29. package/dist/benchmark/index.js +1 -7
  30. package/dist/benchmark/selectionFlatAbstention.js +1 -481
  31. package/dist/benchmark/thesis.js +1 -150
  32. package/dist/benchmark/triggerShift.js +1 -106
  33. package/dist/cycle/cycleTimeline.js +1 -74
  34. package/dist/cycle/index.js +1 -2
  35. package/dist/cycle/stateMachine.js +1 -25
  36. package/dist/hub/agentDirectory.js +1 -104
  37. package/dist/hub/assetCallLog.js +1 -195
  38. package/dist/hub/bindings.js +1 -121
  39. package/dist/hub/capability.js +1 -1
  40. package/dist/hub/conversationDistiller.js +1 -264
  41. package/dist/hub/fake.js +1 -70
  42. package/dist/hub/hubReview.js +1 -106
  43. package/dist/hub/index.js +1 -11
  44. package/dist/hub/ingest.js +1 -15
  45. package/dist/hub/questionGenerator.js +1 -408
  46. package/dist/hub/reuseDecision.js +1 -127
  47. package/dist/hub/sanitize.js +1 -322
  48. package/dist/material/boundary.js +1 -14
  49. package/dist/material/consumer.js +1 -55
  50. package/dist/material/emit.js +1 -52
  51. package/dist/material/factory.js +1 -25
  52. package/dist/material/index.js +1 -9
  53. package/dist/material/materialArchive.js +1 -466
  54. package/dist/material/materialStore.js +1 -69
  55. package/dist/material/sampling.js +1 -39
  56. package/dist/material/sources.js +1 -33
  57. package/dist/material/watermark.js +1 -76
  58. package/dist/personality/drift.js +1 -106
  59. package/dist/personality/events.js +1 -37
  60. package/dist/personality/evolveOps.js +1 -93
  61. package/dist/personality/index.js +1 -11
  62. package/dist/personality/mutate.js +1 -39
  63. package/dist/personality/pivot.js +1 -22
  64. package/dist/personality/prompt.js +1 -62
  65. package/dist/personality/riskGate.js +1 -80
  66. package/dist/personality/schema.js +1 -119
  67. package/dist/personality/select.js +1 -71
  68. package/dist/personality/stats.js +1 -82
  69. package/dist/personality/store.js +1 -92
  70. package/dist/schema/common.js +1 -17
  71. package/dist/schema/evolutionGraph.js +1 -187
  72. package/dist/schema/index.js +1 -6
  73. package/dist/schema/material.js +1 -50
  74. package/dist/schema/problem.js +1 -45
  75. package/dist/schema/proofOfWork.js +1 -9
  76. package/dist/schema/signal.js +1 -19
  77. package/dist/signals/curriculum.js +1 -202
  78. package/dist/signals/cycleHistoryFromEvents.js +1 -105
  79. package/dist/signals/expand.js +1 -293
  80. package/dist/signals/extractor.js +1 -82
  81. package/dist/signals/index.js +1 -8
  82. package/dist/signals/metaSignals.js +1 -200
  83. package/dist/signals/signalGate.js +1 -40
  84. package/dist/signals/taskDomain.js +1 -43
  85. package/dist/signals/traceSignals.js +1 -123
  86. package/dist/strategy/constraintAblation.js +1 -2820
  87. package/dist/strategy/constraintAblationPredicates.js +1 -339
  88. package/dist/strategy/experiment.js +1 -63
  89. package/dist/strategy/index.js +1 -3
  90. package/dist/strategy/strategyPoint.js +1 -23
  91. package/package.json +1 -1
@@ -1,293 +1 @@
1
- import { createHash } from 'node:crypto';
2
- // Signal expansion & tag classification (ported from v1 src/gep/learningSignals.js).
3
- // Raw signals (e.g. '429') are expanded into broader semantic tags (e.g. 'problem:reliability',
4
- // 'action:repair') so gene selection can match by MEANING, not just literal string intersection —
5
- // closing the recall gap where a '429' signal could not reach a gene tagged for 'repair'.
6
- // Regex → semantic tags. A rule fires if its pattern matches anywhere in the lowercased signal text.
7
- // The reliability / protocol / performance / capability families also carry CN/JA/KO synonyms so a
8
- // non-Latin signal ('错误' / 'エラー' / '오류') expands to the same tags an English one would and can
9
- // reach an English-keyworded gene through tagOverlapScore. This is the v2-native port of v1 #99's
10
- // multilingual signals_match aliases: v1 attached `|`-pipe synonyms to shipped seed genes, but v2 has
11
- // no seed-gene catalog and no pipe-alias parsing — its expansion rules ARE the shared signal vocabulary.
12
- const SUCCESS_OUTCOME_TAGS = ['signal:success', 'action:optimize', 'action:innovate'];
13
- const EXPLICIT_SUCCESS_SIGNALS = new Set([
14
- 'issue_already_resolved',
15
- 'issue_resolved',
16
- 'openclaw_self_healed',
17
- 'resolved',
18
- 'self_healed',
19
- 'stable_success_plateau',
20
- 'success_prose',
21
- 'verified-success',
22
- 'verified_success',
23
- ]);
24
- const EXPANSION_RULES = [
25
- { re: /(error|exception|failed|unstable|log_error|runtime|429|错误|异常|エラー|오류|例外|예외|失败|失敗|실패|不稳定|不安定|불안정)/, tags: ['problem:reliability', 'action:repair'] },
26
- // Korean 감사 alone is a homograph (audit == "thank you"), so it is matched only via compounds / audit-context
27
- // phrases (감사로그 / 감사추적 / 감사 로그 / 감사 추적 / 코드 감사) — never bare 감사, so benign gratitude text like
28
- // '감사합니다' cannot fire. Bare CN 提示 (= hint/notice) is likewise omitted; only the unambiguous 提示词 (= prompt)
29
- // is matched. The 'reusable' cluster (可复用 / 再利用 / 재사용) recalls the optimize/protocol family (v1 #99).
30
- { re: /(protocol|prompt|audit|gep|schema|drift|reusable|协议|プロトコル|프로토콜|提示词|プロンプト|프롬프트|审计|監査|可复用|再利用|재사용|감사로그|감사추적|감사 로그|감사 추적|코드 감사)/, tags: ['problem:protocol', 'action:optimize', 'area:prompt'] },
31
- { re: /(perf|performance|bottleneck|latency|slow|throughput|性能|瓶颈|パフォーマンス|성능|병목)/, tags: ['problem:performance', 'action:optimize'] },
32
- // 功能/機能/기능 alone are too broad: as unanchored substrings they match the malfunction vocabulary
33
- // (機能不全 / 기능장애 / 功能障碍), which are reliability problems — use the v1 #99 feature-request compounds.
34
- { re: /(feature|capability_gap|user_feature_request|external_opportunity|stagnation recommendation|功能请求|機能リクエスト|기능요청|能力缺口|機能ギャップ|역량공백|改进建议|改善提案|개선제안|外部机会|外部機会|외부기회)/, tags: ['problem:capability', 'action:innovate'] },
35
- // Negative lookbehind on `plateau`: `stable_success_plateau` contains the substring `plateau`, but it is a
36
- // SUCCESS signal (#578), not a stagnation signal. Without (?<!success_) the stagnation rule would fire on it,
37
- // producing contradictory tags (problem:stagnation + signal:success) in a single expandSignals pass.
38
- { re: /(stagnation|(?<!success_)plateau|steady_state|saturation|empty_cycle_loop|loop_detected|recurring)/, tags: ['problem:stagnation', 'action:innovate'] },
39
- { re: /(task|worker|heartbeat|hub|commitment|assignment|orchestration)/, tags: ['area:orchestration'] },
40
- // Tool-integrity (ported from v1 #99 gene_tool_integrity): bypassing a registered tool or looping on raw
41
- // shell is an orchestration-discipline / validation risk. CN/JA/KO aliases included for recall parity.
42
- { re: /(tool_bypass|tool_loop|工具绕过|工具循环|ツール迂回|ツールループ|도구우회|도구반복)/, tags: ['area:orchestration', 'risk:validation'] },
43
- { re: /(memory|narrative|reflection)/, tags: ['area:memory'] },
44
- { re: /(skill|dashboard)/, tags: ['area:skills'] },
45
- // Harness context budget (v1 context-compression gene family port): an agent harness that injects large
46
- // tool/MCP schemas, long skill manuals, agent-type descriptions, a memory index, or a pasted transcript can
47
- // exhaust the model's context window before the task starts. That is a prompt-assembly (area:prompt) cost
48
- // problem, and shrinking it is an optimize action — NOT a reliability failure. v2 has no seed-gene catalog,
49
- // so these rules ARE the shared vocabulary that lets a context-bloat signal reach a compression strategy.
50
- { re: /(context_bloat|context_explosion|context window|token_budget|prompt_budget|上下文爆|上下文预算|token 超限|token超限)/, tags: ['problem:context_budget', 'action:optimize', 'area:prompt'] },
51
- // Tool/MCP schema weight is the always-on half of the budget; lazy-loading it is the corrective action.
52
- { re: /(tool_schema|schema_bloat|mcp_tool_schema|lazy_load_schema|just-in-time schema|工具 schema|工具schema)/, tags: ['problem:context_budget', 'action:optimize', 'area:prompt', 'area:orchestration'] },
53
- // Skill manuals / agent-type descriptions are the other always-on half (area:skills already exists above).
54
- { re: /(skill_list_bloat|skill_manual_bloat|agent type description|mcp server instructions|skill 列表太长|技能列表太长)/, tags: ['problem:context_budget', 'action:optimize', 'area:skills', 'area:prompt'] },
55
- // A pasted transcript / session handoff is the caller-supplied half — compressing it is a memory-shaped concern.
56
- { re: /(transcript_bloat|transcript_context_bloat|conversation_handoff|session handoff|pasted transcript|会话上下文就爆|完整转录)/, tags: ['problem:context_budget', 'action:optimize', 'area:memory'] },
57
- { re: /(validation|canary|rollback|constraint|blast radius|destructive)/, tags: ['risk:validation'] },
58
- ];
59
- /**
60
- * Expand a signal list into literal signals + namespace prefixes + semantic category tags.
61
- * e.g. ['429', 'auth:token'] → ['429', 'auth:token', 'auth', 'problem:reliability', 'action:repair'].
62
- */
63
- export function expandSignals(signals, extraText = '') {
64
- const tags = new Set();
65
- for (const s of signals) {
66
- const str = String(s);
67
- tags.add(str);
68
- const base = str.split(':')[0];
69
- if (base && base !== str)
70
- tags.add(base); // namespace prefix (e.g. 'auth:token' → 'auth')
71
- }
72
- // #578 success markers are structured signals; prose inference accepts negated forms too easily.
73
- if (signals.some((signal) => EXPLICIT_SUCCESS_SIGNALS.has(String(signal).trim().toLowerCase().normalize('NFKC')))) {
74
- for (const tag of SUCCESS_OUTCOME_TAGS)
75
- tags.add(tag);
76
- }
77
- const text = (signals.join(' ') + ' ' + extraText).toLowerCase().normalize('NFKC');
78
- for (const rule of EXPANSION_RULES) {
79
- if (rule.re.test(text))
80
- for (const t of rule.tags)
81
- tags.add(t);
82
- }
83
- return [...tags];
84
- }
85
- /**
86
- * Tokenize free text into a lowercased bag of words (letter/number runs of length >= 2).
87
- * Unicode-aware (`\p{L}\p{N}`): a Latin-only `[^a-z0-9]+` split silently dropped CJK / Cyrillic /
88
- * Arabic content, so CN/JA/KO signals like '错误' / 'タスク失敗' / '오류' tokenized to [] and the
89
- * {@link bagCosine} recall path scored 0 on every cycle for non-Latin users (ported from v1 #99,
90
- * which fixed the same Latin-only regex in selector.tokenize). Lowercased then NFKC-normalized before splitting (the established house idiom in
91
- * signatures.ts), so full-width / half-width IME forms ('429' / 'ERROR' / 'エラー') fold to the
92
- * normal forms the rules and gene text already use, and punctuation/symbols are stripped so
93
- * 'error.' and 'error' tokenize identically.
94
- */
95
- function tokenize(text) {
96
- return text.toLowerCase().normalize('NFKC').split(/[^\p{L}\p{N}]+/u).filter((t) => t.length >= 2);
97
- }
98
- /**
99
- * Bag-of-words cosine similarity (0..1) between two free-text strings (ported from v1 scoreGeneSemantic).
100
- * Term-frequency vectors, cosine of the angle. Returns 0 when either side has no tokens or they share none.
101
- * This is the lexical-similarity recall path that complements {@link tagOverlapScore}'s curated tags:
102
- * a signal 'timeout_slow' and a gene summarized "fix the slow timeout" share the 'timeout'/'slow' tokens
103
- * even when neither the literal signal nor the expansion rules connect them.
104
- */
105
- export function bagCosine(a, b) {
106
- const av = new Map();
107
- const bv = new Map();
108
- for (const t of tokenize(a))
109
- av.set(t, (av.get(t) ?? 0) + 1);
110
- for (const t of tokenize(b))
111
- bv.set(t, (bv.get(t) ?? 0) + 1);
112
- if (av.size === 0 || bv.size === 0)
113
- return 0;
114
- let dot = 0;
115
- for (const [t, c] of av)
116
- dot += c * (bv.get(t) ?? 0);
117
- if (dot === 0)
118
- return 0;
119
- const mag = (m) => Math.sqrt([...m.values()].reduce((s, c) => s + c * c, 0));
120
- return dot / (mag(av) * mag(bv));
121
- }
122
- /** Expand a gene's category + signals_match + id + summary into its semantic tag set. */
123
- export function geneTags(gene) {
124
- const inputs = [];
125
- if (gene.category)
126
- inputs.push('action:' + gene.category.toLowerCase());
127
- if (gene.signalsMatch)
128
- inputs.push(...gene.signalsMatch);
129
- if (gene.geneId)
130
- inputs.push(gene.geneId);
131
- if (gene.summary)
132
- inputs.push(gene.summary);
133
- return expandSignals(inputs, '');
134
- }
135
- /**
136
- * Semantic tag overlap (0..1): fraction of the expanded SIGNAL tags that the gene's expanded tags cover.
137
- * Normalized on the signal (query) side so a gene with a long id/summary is not penalized by noise.
138
- * This is the recall component: '429' and a gene tagged 'error'/'repair' both expand to
139
- * 'problem:reliability'/'action:repair', so they overlap even with zero literal string match.
140
- *
141
- * Known v1→v2 fidelity delta: a lone non-Latin signal caps near ~2/3 here — its raw token ('错误') is in the
142
- * signal tag-set but never on the English-keyworded gene side, while an exact English signal short-circuits to
143
- * literal=1.0 upstream in expandedMatchScore. v1 #99 gave CJK full literal credit via pipe-aliases; v2 reaches
144
- * the right gene at ~2/3 strength. Lifting this to parity is a scoring-design change beyond this signal port.
145
- */
146
- export function tagOverlapScore(signals, gene) {
147
- const sigTags = expandSignals(signals);
148
- if (sigTags.length === 0)
149
- return 0;
150
- const geneTagSet = new Set(geneTags(gene));
151
- if (geneTagSet.size === 0)
152
- return 0;
153
- let hits = 0;
154
- for (const t of sigTags)
155
- if (geneTagSet.has(t))
156
- hits++;
157
- return hits / sigTags.length;
158
- }
159
- const SEMANTIC_IDF_DOCUMENT_LIMIT = 1_000;
160
- const SEMANTIC_IDF_TEXT_CHARS_PER_DOCUMENT = 4_096;
161
- const SEMANTIC_IDF_TAG_INPUTS_PER_DOCUMENT = 256;
162
- const SEMANTIC_IDF_TAG_CHARS = 1_024;
163
- const SEMANTIC_IDF_TAGS_PER_DOCUMENT = 64;
164
- const SEMANTIC_IDF_TOKENS_PER_DOCUMENT = 128;
165
- const SEMANTIC_IDF_TAG_VOCABULARY_LIMIT = 8_192;
166
- const SEMANTIC_IDF_TOKEN_VOCABULARY_LIMIT = 32_768;
167
- function normalizeSemanticTag(tag) {
168
- return tag.normalize('NFKC').trim().toLowerCase();
169
- }
170
- function inverseDocumentFrequency(documentCount, documentFrequency) {
171
- return Math.log(documentCount / documentFrequency);
172
- }
173
- function tokenFrequency(text) {
174
- const frequencies = new Map();
175
- for (const token of tokenize(text)) {
176
- frequencies.set(token, (frequencies.get(token) ?? 0) + 1);
177
- }
178
- return frequencies;
179
- }
180
- function compareCodeUnits(left, right) {
181
- return left < right ? -1 : left > right ? 1 : 0;
182
- }
183
- function boundedUnique(values, limit) {
184
- return [...new Set(values.filter(Boolean))].sort(compareCodeUnits).slice(0, limit);
185
- }
186
- function boundedVocabulary(valuesByDocument, limit) {
187
- const vocabulary = new Set();
188
- for (const values of valuesByDocument) {
189
- for (const value of values)
190
- vocabulary.add(value);
191
- }
192
- // Selecting by code-unit order makes the cap independent of corpus/document order. The source set is itself
193
- // bounded by the per-document and document-count limits above, so this sort cannot grow without bound.
194
- return new Set([...vocabulary].sort(compareCodeUnits).slice(0, limit));
195
- }
196
- function semanticProfileVersion(documentCount, tagDocumentFrequency, tokenDocumentFrequency) {
197
- // Hash only normalized document-frequency entries so decision telemetry never contains plaintext corpus data.
198
- // A 128-bit SHA-256 prefix keeps the identifier compact while avoiding the collision rate of a 32-bit checksum.
199
- const hash = createHash('sha256');
200
- hash.update(`documents:${documentCount};`, 'utf8');
201
- for (const [tag, frequency] of [...tagDocumentFrequency].sort(([left], [right]) => compareCodeUnits(left, right))) {
202
- hash.update(`tag:${tag.length}:${tag}:${frequency};`, 'utf8');
203
- }
204
- for (const [token, frequency] of [...tokenDocumentFrequency].sort(([left], [right]) => compareCodeUnits(left, right))) {
205
- hash.update(`token:${token.length}:${token}:${frequency};`, 'utf8');
206
- }
207
- return `idf-2:n=${documentCount};tags=${tagDocumentFrequency.size};tokens=${tokenDocumentFrequency.size};sha256=${hash.digest('hex').slice(0, 32)}`;
208
- }
209
- export function buildSemanticIdfProfile(documents) {
210
- const boundedDocuments = documents.slice(0, SEMANTIC_IDF_DOCUMENT_LIMIT).map((document) => ({
211
- tags: boundedUnique(document.tags
212
- .slice(0, SEMANTIC_IDF_TAG_INPUTS_PER_DOCUMENT)
213
- .map((tag) => normalizeSemanticTag(tag.slice(0, SEMANTIC_IDF_TAG_CHARS))), SEMANTIC_IDF_TAGS_PER_DOCUMENT),
214
- tokens: boundedUnique(tokenize(document.text.slice(0, SEMANTIC_IDF_TEXT_CHARS_PER_DOCUMENT)), SEMANTIC_IDF_TOKENS_PER_DOCUMENT),
215
- }));
216
- const tagVocabulary = boundedVocabulary(boundedDocuments.map((document) => document.tags), SEMANTIC_IDF_TAG_VOCABULARY_LIMIT);
217
- const tokenVocabulary = boundedVocabulary(boundedDocuments.map((document) => document.tokens), SEMANTIC_IDF_TOKEN_VOCABULARY_LIMIT);
218
- const tagDocumentFrequency = new Map();
219
- const tokenDocumentFrequency = new Map();
220
- for (const document of boundedDocuments) {
221
- for (const tag of document.tags) {
222
- if (!tagVocabulary.has(tag))
223
- continue;
224
- tagDocumentFrequency.set(tag, (tagDocumentFrequency.get(tag) ?? 0) + 1);
225
- }
226
- for (const token of document.tokens) {
227
- if (!tokenVocabulary.has(token))
228
- continue;
229
- tokenDocumentFrequency.set(token, (tokenDocumentFrequency.get(token) ?? 0) + 1);
230
- }
231
- }
232
- const documentCount = boundedDocuments.length;
233
- const tagIdf = new Map();
234
- const tokenIdf = new Map();
235
- for (const [tag, frequency] of tagDocumentFrequency) {
236
- tagIdf.set(tag, inverseDocumentFrequency(documentCount, frequency));
237
- }
238
- for (const [token, frequency] of tokenDocumentFrequency) {
239
- tokenIdf.set(token, inverseDocumentFrequency(documentCount, frequency));
240
- }
241
- return {
242
- documentCount,
243
- tagIdf,
244
- tokenIdf,
245
- version: semanticProfileVersion(documentCount, tagDocumentFrequency, tokenDocumentFrequency),
246
- };
247
- }
248
- export function idfTagOverlapScore(signals, gene, profile) {
249
- if (profile.documentCount <= 1)
250
- return tagOverlapScore(signals, gene);
251
- const signalTags = [...new Set(expandSignals(signals).map(normalizeSemanticTag))];
252
- const geneTagSet = new Set(geneTags(gene).map(normalizeSemanticTag));
253
- let matchedWeight = 0;
254
- let totalWeight = 0;
255
- for (const tag of signalTags) {
256
- const weight = profile.tagIdf.get(tag);
257
- if (weight === undefined)
258
- continue;
259
- totalWeight += weight;
260
- if (geneTagSet.has(tag))
261
- matchedWeight += weight;
262
- }
263
- return totalWeight > 0 ? matchedWeight / totalWeight : 0;
264
- }
265
- export function idfBagCosine(a, b, profile) {
266
- if (profile.documentCount <= 1)
267
- return bagCosine(a, b);
268
- const bagA = tokenFrequency(a);
269
- const bagB = tokenFrequency(b);
270
- let dot = 0;
271
- let normA = 0;
272
- let normB = 0;
273
- for (const [token, count] of bagA) {
274
- const weight = profile.tokenIdf.get(token);
275
- if (weight === undefined)
276
- continue;
277
- const weightedCount = count * weight;
278
- normA += weightedCount * weightedCount;
279
- const otherCount = bagB.get(token);
280
- if (otherCount !== undefined)
281
- dot += weightedCount * otherCount * weight;
282
- }
283
- for (const [token, count] of bagB) {
284
- const weight = profile.tokenIdf.get(token);
285
- if (weight === undefined)
286
- continue;
287
- const weightedCount = count * weight;
288
- normB += weightedCount * weightedCount;
289
- }
290
- if (normA === 0 || normB === 0)
291
- return 0;
292
- return dot / (Math.sqrt(normA) * Math.sqrt(normB));
293
- }
1
+ const _0x468881=_0x10e2;(function(_0x264475,_0x3ad5ef){const _0x49e5b0=_0x10e2,_0x544f4a=_0x264475();while(!![]){try{const _0x122086=parseInt(_0x49e5b0(0x1e7,'\x45\x30\x42\x2a'))/(-0x2468+-0x1*-0x1be5+-0x1b4*-0x5)+parseInt(_0x49e5b0(0x147,'\x78\x78\x4f\x78'))/(0x1*0x20e3+0x1055+-0x3136)*(-parseInt(_0x49e5b0(0x1bb,'\x6f\x39\x24\x4d'))/(-0x1a17+-0xfa7+0x29c1))+-parseInt(_0x49e5b0(0x127,'\x74\x5e\x4b\x40'))/(0x20fe*-0x1+0x2682+-0x580)*(-parseInt(_0x49e5b0(0x1d7,'\x42\x50\x6e\x21'))/(-0x1b7e+0x1fd3*-0x1+0x3b56))+-parseInt(_0x49e5b0(0x19f,'\x30\x5b\x33\x32'))/(0x60e+0x1b*0x14f+-0x295d)+parseInt(_0x49e5b0(0x1c2,'\x74\x5e\x4b\x40'))/(-0x15b3*0x1+-0x8*-0x1ac+-0x1*-0x85a)+-parseInt(_0x49e5b0(0x177,'\x28\x61\x6b\x75'))/(0x4*-0x8ed+-0x3b*0x5c+-0x4*-0xe3c)+-parseInt(_0x49e5b0(0x1e3,'\x4a\x77\x43\x61'))/(0x1*0x2193+0xb99*-0x1+-0x15f1*0x1)*(parseInt(_0x49e5b0(0x14c,'\x36\x28\x25\x59'))/(0x19*-0xd+0x93*-0x3e+-0xb*-0x35b));if(_0x122086===_0x3ad5ef)break;else _0x544f4a['push'](_0x544f4a['shift']());}catch(_0x46f902){_0x544f4a['push'](_0x544f4a['shift']());}}}(_0x122c,-0xa7722*-0x1+0x1*-0x1630b7+0x17fcc3*0x1));import{createHash}from'\x6e\x6f\x64\x65\x3a\x63\x72\x79\x70\x74\x6f';const SUCCESS_OUTCOME_TAGS=[_0x468881(0x1c6,'\x74\x6a\x64\x5d')+_0x468881(0x11a,'\x4c\x59\x52\x23'),'\x61\x63\x74\x69\x6f\x6e\x3a\x6f'+_0x468881(0x188,'\x66\x54\x41\x74'),_0x468881(0x159,'\x59\x57\x32\x55')+_0x468881(0x1ca,'\x78\x78\x4f\x78')],EXPLICIT_SUCCESS_SIGNALS=new Set([_0x468881(0x1de,'\x4b\x6a\x54\x4e')+_0x468881(0x1d0,'\x23\x36\x5d\x61')+_0x468881(0x19e,'\x65\x6f\x65\x46'),'\x69\x73\x73\x75\x65\x5f\x72\x65'+_0x468881(0x149,'\x38\x51\x74\x46'),_0x468881(0x173,'\x6d\x4f\x6d\x61')+_0x468881(0x1ba,'\x5b\x72\x7a\x56')+_0x468881(0x128,'\x65\x4d\x42\x5d'),_0x468881(0x150,'\x76\x32\x4f\x6d'),_0x468881(0x123,'\x78\x39\x72\x73')+_0x468881(0x162,'\x6d\x4f\x6d\x61'),_0x468881(0x192,'\x4e\x6f\x54\x75')+_0x468881(0x1b5,'\x6f\x39\x24\x4d')+_0x468881(0x126,'\x6d\x4f\x6d\x61'),'\x73\x75\x63\x63\x65\x73\x73\x5f'+_0x468881(0x19c,'\x4e\x6f\x54\x75'),_0x468881(0x186,'\x45\x30\x42\x2a')+_0x468881(0x1b7,'\x50\x59\x78\x44'),_0x468881(0x19a,'\x74\x6a\x64\x5d')+_0x468881(0x1b1,'\x64\x5b\x50\x45')]),EXPANSION_RULES=[{'\x72\x65':/(error|exception|failed|unstable|log_error|runtime|429|错误|异常|エラー|오류|例外|예외|失败|失敗|실패|不稳定|不安定|불안정)/,'\x74\x61\x67\x73':[_0x468881(0x18e,'\x32\x32\x38\x48')+_0x468881(0x1e6,'\x30\x5b\x33\x32')+_0x468881(0x158,'\x54\x4f\x48\x6b'),_0x468881(0x176,'\x6c\x4a\x76\x43')+_0x468881(0x1dd,'\x6b\x4e\x71\x56')]},{'\x72\x65':/(protocol|prompt|audit|gep|schema|drift|reusable|协议|プロトコル|프로토콜|提示词|プロンプト|프롬프트|审计|監査|可复用|再利用|재사용|감사로그|감사추적|감사 로그|감사 추적|코드 감사)/,'\x74\x61\x67\x73':['\x70\x72\x6f\x62\x6c\x65\x6d\x3a'+_0x468881(0x1a4,'\x4e\x6f\x54\x75'),_0x468881(0x156,'\x74\x6a\x64\x5d')+_0x468881(0x1d6,'\x62\x48\x62\x5e'),'\x61\x72\x65\x61\x3a\x70\x72\x6f'+'\x6d\x70\x74']},{'\x72\x65':/(perf|performance|bottleneck|latency|slow|throughput|性能|瓶颈|パフォーマンス|성능|병목)/,'\x74\x61\x67\x73':[_0x468881(0x1a5,'\x6b\x4e\x71\x56')+'\x70\x65\x72\x66\x6f\x72\x6d\x61'+_0x468881(0x160,'\x65\x7a\x63\x73'),_0x468881(0x134,'\x6c\x4f\x54\x70')+_0x468881(0x1da,'\x45\x6d\x41\x75')]},{'\x72\x65':/(feature|capability_gap|user_feature_request|external_opportunity|stagnation recommendation|功能请求|機能リクエスト|기능요청|能力缺口|機能ギャップ|역량공백|改进建议|改善提案|개선제안|外部机会|外部機会|외부기회)/,'\x74\x61\x67\x73':[_0x468881(0x1aa,'\x26\x6c\x68\x28')+_0x468881(0x117,'\x42\x50\x6e\x21')+'\x74\x79',_0x468881(0x15a,'\x66\x61\x25\x71')+_0x468881(0x175,'\x31\x32\x55\x7a')]},{'\x72\x65':/(stagnation|(?<!success_)plateau|steady_state|saturation|empty_cycle_loop|loop_detected|recurring)/,'\x74\x61\x67\x73':[_0x468881(0x190,'\x28\x61\x6b\x75')+_0x468881(0x11c,'\x26\x6c\x68\x28')+'\x6f\x6e','\x61\x63\x74\x69\x6f\x6e\x3a\x69'+_0x468881(0x179,'\x28\x53\x74\x40')]},{'\x72\x65':/(task|worker|heartbeat|hub|commitment|assignment|orchestration)/,'\x74\x61\x67\x73':[_0x468881(0x172,'\x78\x78\x4f\x78')+_0x468881(0x148,'\x76\x32\x4f\x6d')+'\x6f\x6e']},{'\x72\x65':/(tool_bypass|tool_loop|工具绕过|工具循环|ツール迂回|ツールループ|도구우회|도구반복)/,'\x74\x61\x67\x73':[_0x468881(0x145,'\x65\x7a\x63\x73')+'\x68\x65\x73\x74\x72\x61\x74\x69'+'\x6f\x6e',_0x468881(0x12e,'\x6f\x39\x24\x4d')+_0x468881(0x1d9,'\x66\x54\x41\x74')]},{'\x72\x65':/(memory|narrative|reflection)/,'\x74\x61\x67\x73':['\x61\x72\x65\x61\x3a\x6d\x65\x6d'+_0x468881(0x1b6,'\x42\x50\x6e\x21')]},{'\x72\x65':/(skill|dashboard)/,'\x74\x61\x67\x73':[_0x468881(0x183,'\x77\x4f\x53\x5a')+'\x6c\x6c\x73']},{'\x72\x65':/(context_bloat|context_explosion|context window|token_budget|prompt_budget|上下文爆|上下文预算|token 超限|token超限)/,'\x74\x61\x67\x73':[_0x468881(0x1a5,'\x6b\x4e\x71\x56')+'\x63\x6f\x6e\x74\x65\x78\x74\x5f'+_0x468881(0x13e,'\x4f\x2a\x5e\x36'),_0x468881(0x17b,'\x74\x5e\x4b\x40')+_0x468881(0x17e,'\x4f\x2a\x5e\x36'),_0x468881(0x15f,'\x32\x32\x38\x48')+'\x6d\x70\x74']},{'\x72\x65':/(tool_schema|schema_bloat|mcp_tool_schema|lazy_load_schema|just-in-time schema|工具 schema|工具schema)/,'\x74\x61\x67\x73':[_0x468881(0x19d,'\x4e\x6f\x54\x75')+'\x63\x6f\x6e\x74\x65\x78\x74\x5f'+_0x468881(0x1a2,'\x78\x78\x4f\x78'),_0x468881(0x1e4,'\x28\x53\x74\x40')+_0x468881(0x188,'\x66\x54\x41\x74'),_0x468881(0x15e,'\x6f\x39\x24\x4d')+_0x468881(0x11d,'\x32\x32\x38\x48'),_0x468881(0x16b,'\x64\x5b\x50\x45')+_0x468881(0x168,'\x45\x6d\x41\x75')+'\x6f\x6e']},{'\x72\x65':/(skill_list_bloat|skill_manual_bloat|agent type description|mcp server instructions|skill 列表太长|技能列表太长)/,'\x74\x61\x67\x73':[_0x468881(0x1d1,'\x78\x39\x72\x73')+_0x468881(0x1d8,'\x30\x5b\x33\x32')+_0x468881(0x17d,'\x6d\x4f\x6d\x61'),'\x61\x63\x74\x69\x6f\x6e\x3a\x6f'+_0x468881(0x1c7,'\x6d\x4f\x6d\x61'),_0x468881(0x155,'\x54\x4f\x48\x6b')+_0x468881(0x180,'\x28\x53\x74\x40'),_0x468881(0x193,'\x66\x68\x75\x41')+_0x468881(0x13a,'\x64\x5b\x50\x45')]},{'\x72\x65':/(transcript_bloat|transcript_context_bloat|conversation_handoff|session handoff|pasted transcript|会话上下文就爆|完整转录)/,'\x74\x61\x67\x73':[_0x468881(0x121,'\x38\x51\x74\x46')+_0x468881(0x152,'\x32\x32\x38\x48')+_0x468881(0x17d,'\x6d\x4f\x6d\x61'),_0x468881(0x1b3,'\x4b\x6a\x54\x4e')+_0x468881(0x15d,'\x4a\x77\x43\x61'),_0x468881(0x16f,'\x4a\x77\x43\x61')+'\x6f\x72\x79']},{'\x72\x65':/(validation|canary|rollback|constraint|blast radius|destructive)/,'\x74\x61\x67\x73':[_0x468881(0x1c9,'\x78\x39\x72\x73')+_0x468881(0x1d2,'\x30\x69\x46\x56')]}];export function expandSignals(_0xefc094,_0x7f39bb=''){const _0xba9ce7=_0x468881,_0xf411c8=new Set();for(const _0x21d6aa of _0xefc094){const _0x3663f9=String(_0x21d6aa);_0xf411c8[_0xba9ce7(0x11b,'\x4d\x38\x25\x79')](_0x3663f9);const _0x153022=_0x3663f9['\x73\x70\x6c\x69\x74']('\x3a')[-0x13f4+-0x1*-0x2655+-0x1261];if(_0x153022&&_0x153022!==_0x3663f9)_0xf411c8[_0xba9ce7(0x133,'\x74\x5e\x4b\x40')](_0x153022);}if(_0xefc094[_0xba9ce7(0x130,'\x6c\x4a\x76\x43')](_0x13a8b0=>EXPLICIT_SUCCESS_SIGNALS[_0xba9ce7(0x122,'\x4a\x77\x43\x61')](String(_0x13a8b0)[_0xba9ce7(0x1dc,'\x30\x5b\x33\x32')]()[_0xba9ce7(0x1bf,'\x76\x72\x21\x69')+_0xba9ce7(0x125,'\x74\x5e\x4b\x40')]()[_0xba9ce7(0x1cb,'\x4d\x38\x25\x79')+'\x65']('\x4e\x46\x4b\x43')))){for(const _0x1a2dfd of SUCCESS_OUTCOME_TAGS)_0xf411c8[_0xba9ce7(0x187,'\x76\x32\x4f\x6d')](_0x1a2dfd);}const _0x582915=(_0xefc094['\x6a\x6f\x69\x6e']('\x20')+'\x20'+_0x7f39bb)['\x74\x6f\x4c\x6f\x77\x65\x72\x43'+_0xba9ce7(0x13b,'\x66\x61\x25\x71')]()[_0xba9ce7(0x116,'\x65\x7a\x63\x73')+'\x65'](_0xba9ce7(0x17f,'\x76\x72\x21\x69'));for(const _0x1ef7cd of EXPANSION_RULES){if(_0x1ef7cd['\x72\x65']['\x74\x65\x73\x74'](_0x582915)){for(const _0x191e13 of _0x1ef7cd[_0xba9ce7(0x164,'\x66\x59\x5d\x7a')])_0xf411c8['\x61\x64\x64'](_0x191e13);}}return[..._0xf411c8];}function tokenize(_0x4a1ca2){const _0x4c017a=_0x468881;return _0x4a1ca2[_0x4c017a(0x196,'\x5b\x72\x7a\x56')+_0x4c017a(0x124,'\x26\x6c\x68\x28')]()['\x6e\x6f\x72\x6d\x61\x6c\x69\x7a'+'\x65']('\x4e\x46\x4b\x43')[_0x4c017a(0x115,'\x5b\x72\x7a\x56')](/[^\p{L}\p{N}]+/u)[_0x4c017a(0x1cc,'\x4f\x2a\x5e\x36')](_0x4e189c=>_0x4e189c['\x6c\x65\x6e\x67\x74\x68']>=0x134a+0x1697+0x18d*-0x1b);}export function bagCosine(_0x35af66,_0x51d66f){const _0x846c99=_0x468881,_0x5307bd=new Map(),_0x2d350f=new Map();for(const _0x4da583 of tokenize(_0x35af66))_0x5307bd['\x73\x65\x74'](_0x4da583,(_0x5307bd[_0x846c99(0x14f,'\x76\x72\x21\x69')](_0x4da583)??-0x1*0x142c+-0xb*-0x93+0xddb)+(0x6*0x12+-0x761+0x6f6));for(const _0x418d13 of tokenize(_0x51d66f))_0x2d350f[_0x846c99(0x1d4,'\x4a\x48\x4c\x5b')](_0x418d13,(_0x2d350f['\x67\x65\x74'](_0x418d13)??0x1e9e+-0x26af+0x811)+(-0x1d3*0xd+-0xb7*0xe+0xb3e*0x3));if(_0x5307bd[_0x846c99(0x1b0,'\x4c\x59\x52\x23')]===-0x1e77*-0x1+0x1f01+-0x7*0x8c8||_0x2d350f[_0x846c99(0x14d,'\x6b\x4e\x71\x56')]===-0x10f7+0x747+-0x10*-0x9b)return 0x1*-0x14f1+-0xfef+0x24e0;let _0x279cbd=0x1*0x2138+0x249b*0x1+-0x8f*0x7d;for(const [_0x42d39c,_0x571bc7]of _0x5307bd)_0x279cbd+=_0x571bc7*(_0x2d350f[_0x846c99(0x132,'\x31\x32\x55\x7a')](_0x42d39c)??-0x1e2c*-0x1+-0xea*0x1+-0x1d42);if(_0x279cbd===0x257b+0x26df+-0x4c5a)return 0xedd+-0x85e+-0x67f;const _0x5f2481=_0x370482=>Math[_0x846c99(0x1c8,'\x28\x61\x6b\x75')]([..._0x370482[_0x846c99(0x1a3,'\x76\x72\x21\x69')]()][_0x846c99(0x1c0,'\x59\x57\x32\x55')]((_0x398efb,_0x35aefb)=>_0x398efb+_0x35aefb*_0x35aefb,0x2625+0x4*0x715+0x11*-0x3e9));return _0x279cbd/(_0x5f2481(_0x5307bd)*_0x5f2481(_0x2d350f));}export function geneTags(_0x3fed89){const _0x4913df=_0x468881,_0x195692=[];if(_0x3fed89['\x63\x61\x74\x65\x67\x6f\x72\x79'])_0x195692[_0x4913df(0x13c,'\x4e\x6f\x54\x75')](_0x4913df(0x161,'\x65\x4d\x42\x5d')+_0x3fed89['\x63\x61\x74\x65\x67\x6f\x72\x79']['\x74\x6f\x4c\x6f\x77\x65\x72\x43'+_0x4913df(0x184,'\x76\x72\x21\x69')]());if(_0x3fed89[_0x4913df(0x11f,'\x42\x50\x6e\x21')+_0x4913df(0x1e5,'\x74\x6a\x64\x5d')])_0x195692[_0x4913df(0x169,'\x4d\x38\x25\x79')](..._0x3fed89[_0x4913df(0x11f,'\x42\x50\x6e\x21')+_0x4913df(0x1af,'\x26\x6c\x68\x28')]);if(_0x3fed89[_0x4913df(0x18d,'\x6d\x4f\x6d\x61')])_0x195692['\x70\x75\x73\x68'](_0x3fed89[_0x4913df(0x11e,'\x6c\x4f\x54\x70')]);if(_0x3fed89[_0x4913df(0x16e,'\x32\x32\x38\x48')])_0x195692[_0x4913df(0x178,'\x50\x59\x78\x44')](_0x3fed89[_0x4913df(0x131,'\x68\x6d\x25\x62')]);return expandSignals(_0x195692,'');}export function tagOverlapScore(_0x2c9d23,_0x41f25f){const _0x6566a4=_0x468881,_0x3ae7c0=expandSignals(_0x2c9d23);if(_0x3ae7c0[_0x6566a4(0x1d3,'\x31\x68\x71\x50')]===-0x20b5+0x164*0x14+0x4e5)return 0x49a+0x25d9*0x1+-0x2a73;const _0x46b2f0=new Set(geneTags(_0x41f25f));if(_0x46b2f0[_0x6566a4(0x1be,'\x31\x32\x55\x7a')]===-0x3*0x1bd+-0xb70+0xcb*0x15)return 0x5c4*-0x6+0x230a+-0x72;let _0x132233=-0x42f*-0x9+-0x2419*0x1+-0x18e;for(const _0x5d24cf of _0x3ae7c0)if(_0x46b2f0['\x68\x61\x73'](_0x5d24cf))_0x132233++;return _0x132233/_0x3ae7c0[_0x6566a4(0x14e,'\x31\x32\x55\x7a')];}const SEMANTIC_IDF_DOCUMENT_LIMIT=-0x2*-0x10f3+-0xc2a+-0x11d4,SEMANTIC_IDF_TEXT_CHARS_PER_DOCUMENT=0x5cb+0xd*0xe+0x97f,SEMANTIC_IDF_TAG_INPUTS_PER_DOCUMENT=0x3*-0x75b+0x1133+0x5de,SEMANTIC_IDF_TAG_CHARS=-0x1*0x18bb+0x3c*0x45+-0xc8f*-0x1,SEMANTIC_IDF_TAGS_PER_DOCUMENT=0x2*-0x78d+0x1b14+-0xbba,SEMANTIC_IDF_TOKENS_PER_DOCUMENT=0x1*-0x3e6+0x15e1+-0x117b,SEMANTIC_IDF_TAG_VOCABULARY_LIMIT=-0x1*0x2c39+-0x3d33+-0x2*-0x44b6,SEMANTIC_IDF_TOKEN_VOCABULARY_LIMIT=-0x1*-0x1f39+0x103*0x97+-0x37fe;function normalizeSemanticTag(_0xb4aca){const _0x576397=_0x468881;return _0xb4aca[_0x576397(0x13d,'\x65\x4d\x42\x5d')+'\x65'](_0x576397(0x138,'\x30\x5b\x33\x32'))[_0x576397(0x1a0,'\x4d\x38\x25\x79')]()[_0x576397(0x1c4,'\x30\x5b\x33\x32')+'\x61\x73\x65']();}function inverseDocumentFrequency(_0x2d4c6d,_0xe14f17){const _0x32a78f=_0x468881;return Math[_0x32a78f(0x171,'\x31\x32\x55\x7a')](_0x2d4c6d/_0xe14f17);}function _0x122c(){const _0x1d78ca=['\x57\x51\x70\x64\x4d\x4d\x6d','\x57\x37\x47\x66\x6f\x6d\x6b\x36','\x57\x37\x78\x63\x54\x6d\x6f\x78\x57\x4f\x46\x64\x49\x43\x6b\x4e\x57\x34\x6c\x63\x51\x61','\x75\x43\x6b\x43\x57\x35\x74\x63\x51\x48\x70\x63\x4d\x57','\x68\x6d\x6f\x64\x57\x34\x4f','\x43\x6d\x6b\x58\x7a\x72\x7a\x75\x78\x62\x37\x63\x4e\x6d\x6b\x61\x57\x37\x58\x50\x57\x51\x79\x31','\x65\x6d\x6f\x6b\x67\x65\x52\x64\x50\x6d\x6b\x46\x71\x43\x6b\x76','\x72\x72\x37\x63\x47\x74\x74\x63\x48\x53\x6b\x55\x57\x52\x31\x53','\x57\x37\x47\x61\x6b\x38\x6b\x38\x72\x47','\x57\x34\x70\x64\x50\x49\x61\x41\x57\x4f\x5a\x63\x4d\x58\x76\x73','\x57\x37\x48\x46\x69\x4a\x74\x64\x4b\x53\x6b\x55\x57\x35\x61','\x57\x35\x76\x56\x57\x34\x4b\x54','\x57\x37\x33\x64\x49\x57\x48\x68\x57\x35\x43\x6b\x57\x35\x2f\x64\x49\x57','\x57\x51\x5a\x64\x4f\x43\x6b\x6d\x57\x50\x44\x65\x65\x6d\x6f\x6b','\x67\x4e\x44\x61\x57\x4f\x44\x64\x7a\x76\x61\x2b','\x69\x43\x6f\x65\x6a\x43\x6f\x56\x41\x71\x30','\x57\x37\x47\x6a\x6e\x47','\x6a\x43\x6f\x43\x57\x52\x75\x32','\x57\x50\x6a\x6c\x57\x50\x4b','\x43\x59\x56\x63\x48\x38\x6f\x2f\x57\x35\x6d\x53\x57\x4f\x42\x64\x54\x47','\x57\x37\x2f\x64\x4b\x62\x72\x6f\x57\x4f\x65\x7a\x57\x35\x70\x63\x4e\x71','\x57\x52\x4e\x64\x4d\x33\x42\x63\x4e\x6d\x6f\x6d\x66\x6d\x6b\x6d','\x6a\x6d\x6b\x38\x57\x35\x79\x47\x57\x37\x53\x32','\x57\x35\x65\x48\x57\x35\x79','\x6d\x65\x76\x66','\x57\x36\x4a\x64\x55\x75\x33\x63\x51\x53\x6b\x58\x62\x43\x6f\x63','\x67\x49\x33\x64\x56\x38\x6f\x2b\x44\x6d\x6f\x61\x78\x53\x6f\x44\x57\x51\x4f\x64\x57\x51\x61','\x75\x48\x37\x63\x4f\x59\x2f\x63\x4c\x6d\x6b\x5a\x57\x52\x54\x57','\x42\x4a\x70\x63\x4f\x6d\x6b\x70\x7a\x38\x6f\x43\x57\x51\x4b','\x61\x43\x6f\x77\x57\x35\x70\x63\x55\x53\x6f\x32\x57\x50\x52\x64\x49\x61','\x6e\x33\x42\x64\x4c\x43\x6b\x55\x57\x50\x58\x6c\x57\x34\x74\x64\x47\x63\x54\x58\x57\x52\x69\x42\x6b\x71','\x72\x71\x70\x63\x50\x64\x79','\x57\x52\x65\x64\x57\x50\x4b\x36\x43\x71','\x57\x52\x53\x59\x57\x37\x64\x63\x4b\x75\x4e\x63\x56\x48\x33\x63\x4b\x71','\x66\x59\x66\x39\x57\x34\x4f','\x6d\x38\x6b\x69\x43\x67\x4a\x64\x51\x38\x6f\x35','\x66\x38\x6f\x6e\x65\x48\x33\x63\x56\x38\x6f\x47','\x57\x50\x7a\x55\x64\x58\x38','\x57\x37\x69\x58\x41\x59\x52\x64\x56\x32\x6a\x79\x42\x53\x6b\x4c\x75\x4d\x52\x63\x4c\x61\x4b','\x41\x6d\x6b\x68\x62\x43\x6b\x77\x75\x43\x6b\x43\x65\x76\x57','\x57\x35\x68\x64\x55\x59\x71\x43','\x71\x58\x74\x63\x4f\x74\x6c\x63\x4b\x6d\x6b\x50\x57\x51\x7a\x64','\x41\x72\x43\x67\x57\x36\x4f\x57\x57\x34\x50\x39\x66\x74\x68\x64\x4a\x53\x6b\x74\x7a\x4a\x47','\x67\x38\x6b\x34\x57\x4f\x39\x64','\x65\x64\x62\x32\x57\x35\x61\x6d','\x57\x4f\x54\x4f\x62\x58\x44\x61\x57\x4f\x65\x6d\x61\x57','\x73\x68\x52\x63\x55\x43\x6b\x55\x69\x38\x6f\x48\x43\x6d\x6f\x36','\x66\x38\x6f\x6b\x61\x76\x53','\x6b\x30\x48\x46\x57\x52\x54\x4b','\x57\x36\x79\x63\x57\x51\x72\x77\x7a\x76\x71','\x66\x78\x58\x77','\x68\x77\x37\x63\x51\x38\x6b\x6b\x57\x34\x4a\x63\x51\x43\x6b\x39\x73\x71','\x43\x4c\x46\x63\x4c\x57','\x45\x58\x4a\x64\x4d\x64\x56\x63\x48\x61\x53','\x77\x68\x6c\x63\x52\x53\x6b\x48\x69\x6d\x6f\x4b\x42\x38\x6f\x45','\x6b\x30\x31\x6d\x57\x52\x30','\x57\x52\x52\x63\x4d\x38\x6b\x34\x6e\x43\x6f\x48\x44\x62\x64\x64\x4c\x57','\x57\x51\x48\x49\x6c\x47','\x57\x37\x5a\x64\x48\x58\x44\x6b\x57\x52\x69\x75\x57\x35\x56\x64\x48\x47','\x64\x32\x4e\x63\x52\x57','\x6a\x53\x6f\x32\x6d\x61','\x57\x36\x72\x6b\x70\x5a\x5a\x64\x4d\x53\x6b\x48','\x43\x53\x6b\x58\x42\x76\x71\x65\x6d\x67\x42\x63\x4a\x53\x6b\x46','\x57\x36\x6d\x70\x57\x4f\x56\x64\x48\x61','\x57\x51\x74\x64\x4d\x4d\x2f\x63\x4e\x61','\x76\x38\x6b\x79\x57\x35\x46\x64\x50\x71','\x57\x35\x37\x64\x49\x4a\x5a\x63\x4d\x72\x48\x52\x7a\x38\x6b\x46','\x57\x52\x4b\x71\x43\x6d\x6b\x61\x57\x4f\x61','\x57\x51\x31\x2b\x57\x4f\x79\x58\x57\x35\x57\x4a','\x57\x52\x30\x70\x57\x34\x7a\x6d\x71\x6d\x6b\x62\x75\x48\x4b','\x41\x62\x5a\x64\x4b\x73\x30','\x6f\x4c\x42\x64\x54\x43\x6f\x53','\x6a\x43\x6f\x67\x57\x51\x4f\x56\x6e\x5a\x68\x64\x52\x47','\x57\x36\x57\x6a\x6e\x47','\x6a\x53\x6f\x48\x6d\x71','\x46\x72\x37\x64\x47\x4a\x46\x63\x4f\x47\x66\x4a\x57\x52\x79','\x57\x37\x33\x64\x51\x31\x69','\x57\x36\x42\x64\x55\x31\x6e\x4d','\x77\x4e\x78\x64\x4a\x57','\x46\x5a\x46\x63\x48\x48\x47','\x6a\x76\x5a\x64\x54\x53\x6f\x55\x63\x31\x57','\x57\x36\x37\x64\x48\x53\x6b\x61','\x6f\x58\x4a\x64\x4f\x57','\x72\x32\x68\x64\x4a\x6d\x6b\x69','\x57\x36\x57\x6d\x57\x50\x5a\x64\x4a\x43\x6b\x6c\x57\x37\x78\x63\x52\x63\x61','\x6a\x43\x6f\x79\x6c\x43\x6f\x38\x41\x71\x53','\x6d\x53\x6b\x7a\x43\x33\x4f','\x57\x37\x43\x6f\x57\x51\x72\x67\x45\x30\x6c\x64\x49\x43\x6f\x6a','\x43\x72\x5a\x64\x48\x47','\x57\x50\x7a\x49\x61\x71','\x44\x5a\x42\x64\x54\x71\x42\x63\x52\x57','\x69\x6d\x6b\x72\x45\x68\x33\x64\x55\x53\x6f\x55','\x57\x4f\x72\x31\x65\x62\x53\x42\x57\x4f\x69\x78\x67\x47','\x57\x52\x6d\x77\x57\x4f\x57','\x57\x37\x78\x63\x55\x38\x6f\x74\x57\x51\x58\x56\x6b\x53\x6f\x76\x63\x43\x6b\x54','\x57\x51\x69\x7a\x41\x53\x6b\x78\x57\x50\x43\x54\x62\x31\x43','\x57\x52\x4e\x63\x48\x53\x6b\x37\x69\x43\x6f\x4f\x44\x71','\x57\x51\x44\x4d\x6b\x71','\x78\x72\x74\x63\x4f\x5a\x5a\x63\x48\x43\x6b\x4a','\x57\x4f\x78\x63\x4e\x49\x37\x64\x4a\x77\x71\x71\x75\x43\x6f\x4d','\x57\x51\x43\x41\x57\x4f\x69\x32','\x57\x36\x43\x6a\x6c\x6d\x6b\x34\x76\x38\x6f\x57','\x57\x36\x42\x63\x56\x53\x6f\x56','\x57\x52\x47\x7a\x41\x53\x6b\x6d\x57\x4f\x4b\x36\x66\x4c\x4f','\x57\x52\x46\x64\x56\x38\x6b\x68\x57\x4f\x62\x72\x61\x71','\x46\x65\x4a\x63\x4a\x72\x4a\x63\x54\x53\x6f\x72\x7a\x43\x6b\x35','\x70\x71\x37\x64\x53\x47','\x72\x72\x37\x63\x50\x4a\x37\x63\x4e\x38\x6b\x63\x57\x51\x54\x6a','\x63\x43\x6b\x37\x57\x50\x48\x77\x57\x34\x6a\x31\x57\x34\x56\x64\x56\x57','\x57\x35\x68\x64\x52\x64\x6d\x44\x57\x4f\x6c\x63\x4d\x72\x76\x6f','\x57\x52\x4a\x63\x4c\x4b\x54\x48\x57\x51\x43\x59\x57\x34\x74\x64\x49\x43\x6f\x71','\x61\x43\x6b\x39\x57\x4f\x71','\x71\x53\x6b\x41\x57\x34\x74\x63\x54\x48\x2f\x63\x4b\x6d\x6b\x41\x45\x47','\x6f\x57\x4a\x64\x53\x53\x6f\x77\x61\x6d\x6f\x36\x57\x4f\x47\x64','\x57\x36\x75\x61\x57\x51\x54\x67\x43\x31\x71','\x65\x33\x31\x67','\x57\x52\x62\x33\x6e\x68\x70\x63\x50\x63\x34\x69','\x57\x51\x34\x75\x57\x35\x62\x67\x71\x6d\x6b\x68\x71\x72\x4f','\x46\x4c\x78\x63\x48\x47\x33\x64\x51\x43\x6f\x7a\x79\x38\x6b\x6a','\x57\x4f\x54\x4b\x65\x61','\x57\x36\x6d\x61\x57\x50\x52\x64\x49\x43\x6b\x66\x57\x37\x46\x64\x56\x57','\x57\x36\x72\x6f\x6c\x57','\x72\x6d\x6b\x43\x57\x34\x71','\x57\x36\x78\x63\x50\x53\x6f\x7a\x73\x57','\x57\x52\x33\x64\x4e\x4d\x43','\x57\x34\x6d\x47\x57\x34\x79','\x64\x38\x6f\x4f\x62\x71','\x67\x43\x6f\x68\x57\x34\x4e\x63\x4f\x38\x6f\x54\x57\x4f\x68\x64\x4d\x71\x34','\x62\x67\x31\x62\x57\x4f\x69','\x6e\x47\x37\x64\x51\x6d\x6f\x79\x67\x38\x6f\x38','\x57\x36\x6c\x64\x48\x6d\x6b\x72\x57\x50\x34\x65\x74\x38\x6b\x73\x41\x71','\x6a\x66\x74\x63\x49\x57\x33\x64\x4f\x43\x6b\x43\x6a\x38\x6f\x42','\x57\x52\x4e\x63\x48\x53\x6b\x4c\x69\x57','\x42\x66\x6c\x63\x4a\x47\x68\x63\x53\x53\x6f\x42\x41\x61','\x57\x51\x66\x58\x6f\x68\x2f\x64\x54\x5a\x4b\x69\x43\x57','\x68\x68\x2f\x63\x52\x53\x6b\x79\x57\x34\x78\x63\x52\x71','\x57\x36\x43\x64\x6a\x71','\x57\x51\x70\x64\x56\x43\x6b\x67\x57\x4f\x61\x46\x63\x38\x6f\x44\x62\x61','\x57\x36\x44\x42\x6c\x4a\x46\x64\x4d\x6d\x6b\x34\x57\x35\x71\x30','\x44\x43\x6b\x46\x46\x38\x6b\x56\x70\x4b\x4e\x63\x4f\x4d\x56\x63\x4f\x77\x6c\x64\x50\x62\x75\x6e','\x57\x36\x75\x63\x6c\x43\x6b\x50\x71\x53\x6f\x53\x42\x71','\x6b\x66\x52\x64\x52\x6d\x6f\x47\x65\x66\x52\x64\x4b\x43\x6f\x55','\x57\x50\x6d\x50\x57\x4f\x50\x4f\x57\x51\x30\x33\x43\x43\x6f\x58\x74\x72\x5a\x63\x55\x53\x6f\x67','\x57\x36\x78\x64\x56\x31\x6a\x36','\x7a\x38\x6b\x6b\x68\x53\x6b\x6a\x78\x38\x6b\x67\x74\x47','\x57\x34\x74\x64\x47\x73\x4a\x64\x47\x61','\x6a\x53\x6f\x4d\x69\x75\x4f\x6d\x62\x48\x78\x63\x4c\x57','\x64\x53\x6b\x47\x57\x50\x66\x64\x57\x50\x31\x30','\x57\x36\x50\x45\x6c\x5a\x37\x64\x4e\x53\x6b\x47','\x6e\x38\x6f\x7a\x69\x6d\x6f\x32\x7a\x71\x78\x64\x53\x47','\x57\x34\x2f\x63\x4e\x43\x6f\x71\x57\x51\x53','\x7a\x43\x6b\x69\x61\x47','\x68\x43\x6f\x35\x66\x38\x6b\x67','\x57\x4f\x7a\x6c\x57\x50\x4b','\x57\x52\x48\x4a\x57\x4f\x47\x31\x57\x4f\x47\x4a\x57\x4f\x68\x64\x56\x71','\x57\x36\x64\x63\x51\x6d\x6f\x2b','\x76\x48\x74\x63\x55\x71','\x6c\x4b\x66\x65\x57\x52\x66\x4e\x57\x50\x6d\x47\x69\x47','\x57\x51\x53\x79\x46\x71','\x44\x59\x70\x63\x51\x6d\x6b\x77\x7a\x38\x6f\x6a\x57\x51\x69','\x57\x34\x54\x65\x70\x4a\x46\x64\x4a\x57','\x57\x4f\x78\x63\x55\x68\x7a\x66\x57\x35\x37\x64\x47\x75\x6a\x30\x68\x33\x5a\x63\x56\x38\x6f\x4f','\x41\x4a\x42\x63\x53\x71','\x70\x53\x6b\x78\x57\x37\x65\x63\x57\x36\x30','\x57\x36\x39\x6f\x6a\x74\x5a\x64\x53\x53\x6b\x57','\x42\x31\x78\x63\x4a\x61\x37\x63\x56\x38\x6f\x6d\x46\x6d\x6f\x43','\x78\x33\x52\x63\x52\x53\x6b\x67\x6a\x43\x6f\x55','\x57\x35\x7a\x53\x57\x35\x71\x37\x57\x37\x6a\x4b\x43\x43\x6b\x45','\x44\x67\x5a\x63\x4f\x64\x74\x63\x53\x71','\x72\x67\x64\x64\x4e\x53\x6b\x63\x57\x51\x37\x63\x47\x53\x6b\x31\x67\x61','\x6a\x38\x6b\x6b\x43\x77\x4a\x63\x50\x43\x6f\x53\x68\x53\x6f\x51','\x57\x37\x68\x64\x50\x75\x6a\x4e\x41\x4b\x6a\x6f\x57\x35\x71','\x57\x36\x74\x64\x4b\x38\x6b\x61','\x66\x59\x39\x77\x57\x35\x79\x70\x57\x50\x66\x54\x57\x51\x38','\x6d\x68\x33\x64\x4c\x53\x6b\x50\x57\x50\x54\x64\x57\x34\x5a\x64\x47\x63\x7a\x73\x57\x51\x4b\x6b\x6c\x47','\x77\x73\x37\x64\x55\x53\x6f\x79\x57\x50\x68\x64\x56\x6d\x6f\x34\x72\x63\x33\x64\x55\x6d\x6f\x2b\x57\x4f\x52\x64\x4f\x57','\x6a\x43\x6f\x46\x57\x51\x34\x48\x6d\x57','\x57\x34\x42\x64\x51\x4a\x75\x44\x57\x4f\x56\x63\x4e\x4b\x50\x66','\x57\x52\x4e\x63\x4a\x6d\x6b\x4a','\x72\x32\x42\x64\x4b\x6d\x6b\x74\x57\x51\x43','\x72\x32\x42\x64\x4b\x6d\x6b\x63\x57\x51\x37\x63\x47\x53\x6b\x68\x75\x71','\x57\x4f\x7a\x62\x57\x4f\x65\x67\x68\x43\x6b\x6e','\x62\x30\x4e\x64\x56\x4d\x37\x64\x48\x38\x6f\x5a\x57\x37\x39\x38\x62\x38\x6f\x53\x72\x77\x78\x63\x53\x61','\x61\x67\x50\x42\x57\x4f\x43','\x70\x30\x4c\x79\x57\x51\x54\x78','\x57\x51\x64\x64\x55\x53\x6b\x68\x57\x4f\x7a\x61\x65\x61','\x57\x37\x46\x63\x55\x53\x6f\x33\x57\x50\x33\x64\x4d\x38\x6b\x58','\x72\x32\x42\x64\x4b\x6d\x6b\x75\x57\x51\x33\x63\x48\x6d\x6b\x66\x62\x57','\x57\x51\x71\x62\x57\x50\x43\x58\x42\x59\x46\x64\x54\x4d\x4f','\x6b\x30\x54\x65\x57\x51\x57','\x6d\x53\x6b\x78\x46\x32\x5a\x64\x53\x43\x6b\x4d','\x57\x37\x64\x63\x56\x38\x6b\x78\x57\x50\x48\x52\x6a\x43\x6f\x33\x69\x57','\x57\x37\x65\x70\x57\x4f\x46\x64\x47\x38\x6b\x70','\x68\x4d\x4a\x63\x50\x43\x6b\x70\x57\x34\x52\x63\x52\x43\x6b\x4b\x67\x47','\x70\x63\x70\x63\x52\x53\x6b\x71\x41\x38\x6f\x44\x57\x52\x74\x64\x48\x71','\x69\x38\x6f\x68\x57\x51\x66\x36','\x71\x48\x33\x63\x50\x64\x4a\x63\x4c\x61','\x57\x52\x30\x46\x43\x59\x37\x64\x4e\x6d\x6b\x6d\x57\x37\x57\x31\x57\x37\x61','\x64\x32\x37\x63\x51\x43\x6b\x66','\x57\x36\x61\x69\x57\x52\x31\x77','\x57\x35\x5a\x64\x48\x43\x6b\x62\x57\x50\x58\x44\x72\x43\x6b\x74\x45\x71','\x57\x52\x2f\x63\x4e\x43\x6b\x58\x42\x57','\x57\x52\x6d\x49\x57\x37\x46\x63\x4a\x75\x70\x63\x4a\x30\x42\x63\x4b\x47','\x6d\x47\x37\x64\x56\x47','\x57\x52\x4f\x66\x57\x35\x7a\x63\x63\x43\x6b\x65\x42\x61\x75','\x72\x67\x4e\x63\x53\x61','\x57\x52\x4a\x64\x55\x76\x72\x58\x7a\x65\x6a\x74\x57\x35\x6d','\x62\x31\x66\x4c\x76\x38\x6f\x6a\x68\x47','\x70\x47\x74\x64\x50\x43\x6f\x6b\x61\x53\x6f\x58\x57\x35\x57\x45','\x70\x64\x6e\x2f\x57\x35\x75\x45\x57\x51\x54\x33\x57\x4f\x4b','\x57\x37\x31\x73\x57\x4f\x71\x73\x6e\x43\x6b\x49\x79\x64\x68\x64\x55\x4e\x57','\x57\x50\x6e\x59\x57\x50\x72\x77\x57\x51\x38\x48\x57\x51\x48\x71\x57\x50\x52\x63\x4f\x77\x61'];_0x122c=function(){return _0x1d78ca;};return _0x122c();}function tokenFrequency(_0x59e83f){const _0x35e098=_0x468881,_0x3d35b2=new Map();for(const _0xbb436e of tokenize(_0x59e83f)){_0x3d35b2[_0x35e098(0x19b,'\x38\x51\x74\x46')](_0xbb436e,(_0x3d35b2[_0x35e098(0x1cf,'\x65\x6f\x65\x46')](_0xbb436e)??0x27d+0x3*-0x755+0x1382)+(-0x49*0x3f+-0xb8a+0x1d82));}return _0x3d35b2;}function _0x10e2(_0x5e543a,_0x3545c5){_0x5e543a=_0x5e543a-(-0x1cba+0xa13+0x13bc);const _0x14f329=_0x122c();let _0x282d97=_0x14f329[_0x5e543a];if(_0x10e2['\x70\x46\x45\x63\x44\x49']===undefined){var _0x3c7fe1=function(_0x19352a){const _0x29e003='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';let _0x4abf1e='',_0xc9d8fa='';for(let _0x19174c=0x14*-0xf3+-0x3*-0x25f+0xbdf,_0x175842,_0x2f7b3c,_0x22643a=0x5*0x102+-0x11*0x41+-0xb9;_0x2f7b3c=_0x19352a['\x63\x68\x61\x72\x41\x74'](_0x22643a++);~_0x2f7b3c&&(_0x175842=_0x19174c%(0x506*-0x5+0x5f2+-0x2*-0x998)?_0x175842*(0x323*-0x3+0x1123*-0x1+0x5*0x55c)+_0x2f7b3c:_0x2f7b3c,_0x19174c++%(0x1855+-0x128c+-0x5c5))?_0x4abf1e+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x80b+0x7*-0x559+0x2e79&_0x175842>>(-(-0x1*-0x7d6+0x2182+-0x16*0x1e1)*_0x19174c&-0x48b*-0x1+-0x9b5+-0x1*-0x530)):0x2609+-0x2661+0x4*0x16){_0x2f7b3c=_0x29e003['\x69\x6e\x64\x65\x78\x4f\x66'](_0x2f7b3c);}for(let _0x20ac22=0x191*0xb+0x322+0x1*-0x145d,_0x13c06d=_0x4abf1e['\x6c\x65\x6e\x67\x74\x68'];_0x20ac22<_0x13c06d;_0x20ac22++){_0xc9d8fa+='\x25'+('\x30\x30'+_0x4abf1e['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x20ac22)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x1ed9*-0x1+0x7*0x31a+0x347f*-0x1))['\x73\x6c\x69\x63\x65'](-(-0xaff*0x3+-0x1f75+0x4074));}return decodeURIComponent(_0xc9d8fa);};const _0x22d26e=function(_0xfef403,_0x83c163){let _0x237b0a=[],_0x145027=0x1*0x18e8+0x22df*0x1+-0x1*0x3bc7,_0x2a3095,_0x322342='';_0xfef403=_0x3c7fe1(_0xfef403);let _0x161648;for(_0x161648=0x763+-0xf6a*-0x1+0x1*-0x16cd;_0x161648<0x1234+-0xb6b+-0x5c9;_0x161648++){_0x237b0a[_0x161648]=_0x161648;}for(_0x161648=0xd5*0x5+0x19f4+0x251*-0xd;_0x161648<-0x84f+-0x3*-0x613+-0x146*0x7;_0x161648++){_0x145027=(_0x145027+_0x237b0a[_0x161648]+_0x83c163['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x161648%_0x83c163['\x6c\x65\x6e\x67\x74\x68']))%(-0x1*0x2361+0x2*-0x1bb+-0x2f*-0xd9),_0x2a3095=_0x237b0a[_0x161648],_0x237b0a[_0x161648]=_0x237b0a[_0x145027],_0x237b0a[_0x145027]=_0x2a3095;}_0x161648=0xa3e+0x1*-0x1e73+0x1435,_0x145027=0xddf*-0x1+-0x15f3*0x1+0x23d2;for(let _0x1e8765=-0x1d01+0x287*-0xa+0x23*0x18d;_0x1e8765<_0xfef403['\x6c\x65\x6e\x67\x74\x68'];_0x1e8765++){_0x161648=(_0x161648+(-0x176d+0x1e*0x35+0x1138))%(0x5df*0x5+0x2463*-0x1+0x4*0x202),_0x145027=(_0x145027+_0x237b0a[_0x161648])%(-0x1ee9+0x584+0x1a65*0x1),_0x2a3095=_0x237b0a[_0x161648],_0x237b0a[_0x161648]=_0x237b0a[_0x145027],_0x237b0a[_0x145027]=_0x2a3095,_0x322342+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0xfef403['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x1e8765)^_0x237b0a[(_0x237b0a[_0x161648]+_0x237b0a[_0x145027])%(-0x127d*0x1+-0xa1a*0x3+0x1*0x31cb)]);}return _0x322342;};_0x10e2['\x58\x6e\x61\x4b\x59\x63']=_0x22d26e,_0x10e2['\x65\x75\x6b\x5a\x4c\x53']={},_0x10e2['\x70\x46\x45\x63\x44\x49']=!![];}const _0x2a712f=_0x14f329[-0x1*0x1f3f+-0x1aa4+0x49*0xcb],_0x57dd1d=_0x5e543a+_0x2a712f,_0x211a57=_0x10e2['\x65\x75\x6b\x5a\x4c\x53'][_0x57dd1d];return!_0x211a57?(_0x10e2['\x79\x77\x65\x6e\x62\x69']===undefined&&(_0x10e2['\x79\x77\x65\x6e\x62\x69']=!![]),_0x282d97=_0x10e2['\x58\x6e\x61\x4b\x59\x63'](_0x282d97,_0x3545c5),_0x10e2['\x65\x75\x6b\x5a\x4c\x53'][_0x57dd1d]=_0x282d97):_0x282d97=_0x211a57,_0x282d97;}function compareCodeUnits(_0x5bff99,_0x10c052){return _0x5bff99<_0x10c052?-(0x3b5+0x14ef+0x35*-0x77):_0x5bff99>_0x10c052?0xade*-0x3+-0x1fc9+0x4064:-0xd*-0x105+0x8b+-0xdcc;}function boundedUnique(_0x132683,_0x1c212e){const _0xc7f54f=_0x468881;return[...new Set(_0x132683[_0xc7f54f(0x17c,'\x54\x4f\x48\x6b')](Boolean))][_0xc7f54f(0x1a6,'\x45\x30\x42\x2a')](compareCodeUnits)[_0xc7f54f(0x1c5,'\x31\x32\x55\x7a')](0x6b*0x8+0x1a*0xe+-0x4c4,_0x1c212e);}function boundedVocabulary(_0x55fe43,_0x42085a){const _0x16d59a=_0x468881,_0xfd7cd0=new Set();for(const _0x469e55 of _0x55fe43){for(const _0x4ae7ef of _0x469e55)_0xfd7cd0[_0x16d59a(0x166,'\x4a\x48\x4c\x5b')](_0x4ae7ef);}return new Set([..._0xfd7cd0][_0x16d59a(0x17a,'\x36\x28\x25\x59')](compareCodeUnits)[_0x16d59a(0x1ad,'\x30\x5b\x33\x32')](-0x72e+-0x24f0+0x2c1e,_0x42085a));}function semanticProfileVersion(_0x1df672,_0x3e91f9,_0x73f7d8){const _0x4c3140=_0x468881,_0x33179a=createHash(_0x4c3140(0x1e1,'\x54\x59\x6f\x6d'));_0x33179a[_0x4c3140(0x1e0,'\x66\x68\x75\x41')](_0x4c3140(0x1b9,'\x66\x61\x25\x71')+'\x73\x3a'+_0x1df672+'\x3b',_0x4c3140(0x181,'\x64\x70\x4e\x54'));for(const [_0xadb575,_0x2f493c]of[..._0x3e91f9][_0x4c3140(0x1ce,'\x68\x6d\x25\x62')](([_0x3afa64],[_0x3c2687])=>compareCodeUnits(_0x3afa64,_0x3c2687))){_0x33179a['\x75\x70\x64\x61\x74\x65'](_0x4c3140(0x12a,'\x59\x57\x32\x55')+_0xadb575[_0x4c3140(0x16a,'\x66\x61\x25\x71')]+'\x3a'+_0xadb575+'\x3a'+_0x2f493c+'\x3b',_0x4c3140(0x1b2,'\x38\x51\x74\x46'));}for(const [_0x388e53,_0x567fdd]of[..._0x73f7d8][_0x4c3140(0x118,'\x54\x59\x6f\x6d')](([_0x1d0b98],[_0x18bc00])=>compareCodeUnits(_0x1d0b98,_0x18bc00))){if(_0x4c3140(0x143,'\x6c\x4f\x54\x70')!==_0x4c3140(0x191,'\x32\x32\x38\x48'))return[...new _0x82a5b2(_0x56987e[_0x4c3140(0x144,'\x66\x68\x75\x41')](_0x4587cb))][_0x4c3140(0x16d,'\x38\x51\x74\x46')](_0x5e543a)[_0x4c3140(0x199,'\x68\x6d\x25\x62')](0x1585*0x1+0x8b*-0x13+-0xb34,_0x3545c5);else _0x33179a[_0x4c3140(0x151,'\x78\x78\x4f\x78')](_0x4c3140(0x1a7,'\x66\x68\x75\x41')+_0x388e53[_0x4c3140(0x14b,'\x30\x5b\x33\x32')]+'\x3a'+_0x388e53+'\x3a'+_0x567fdd+'\x3b',_0x4c3140(0x1ac,'\x68\x6d\x25\x62'));}return _0x4c3140(0x12b,'\x36\x28\x25\x59')+_0x1df672+'\x3b\x74\x61\x67\x73\x3d'+_0x3e91f9[_0x4c3140(0x120,'\x45\x30\x42\x2a')]+_0x4c3140(0x1ab,'\x66\x54\x41\x74')+_0x73f7d8['\x73\x69\x7a\x65']+_0x4c3140(0x16c,'\x32\x32\x38\x48')+_0x33179a['\x64\x69\x67\x65\x73\x74'](_0x4c3140(0x1b4,'\x66\x61\x25\x71'))[_0x4c3140(0x1a9,'\x65\x4d\x42\x5d')](0x5*0x92+0x2684+-0x295e,0x3*-0x132+0x186d*0x1+-0x14b7);}export function buildSemanticIdfProfile(_0x391f61){const _0x4d8776=_0x468881,_0x101fd9=_0x391f61[_0x4d8776(0x12c,'\x76\x32\x4f\x6d')](0xdff+-0x6b*0x12+-0x679,SEMANTIC_IDF_DOCUMENT_LIMIT)['\x6d\x61\x70'](_0x2297e2=>({'\x74\x61\x67\x73':boundedUnique(_0x2297e2[_0x4d8776(0x12f,'\x6c\x4f\x54\x70')][_0x4d8776(0x119,'\x45\x30\x42\x2a')](-0x1e2b*-0x1+-0x1d85+-0xa6,SEMANTIC_IDF_TAG_INPUTS_PER_DOCUMENT)[_0x4d8776(0x1c1,'\x45\x6d\x41\x75')](_0x5aa4d6=>normalizeSemanticTag(_0x5aa4d6['\x73\x6c\x69\x63\x65'](-0x17e7*0x1+-0x1b91*-0x1+0x3aa*-0x1,SEMANTIC_IDF_TAG_CHARS))),SEMANTIC_IDF_TAGS_PER_DOCUMENT),'\x74\x6f\x6b\x65\x6e\x73':boundedUnique(tokenize(_0x2297e2[_0x4d8776(0x129,'\x30\x69\x46\x56')]['\x73\x6c\x69\x63\x65'](0x5*0x5eb+0x9c3*-0x4+0x975,SEMANTIC_IDF_TEXT_CHARS_PER_DOCUMENT)),SEMANTIC_IDF_TOKENS_PER_DOCUMENT)})),_0x1ecbd0=boundedVocabulary(_0x101fd9[_0x4d8776(0x141,'\x6c\x4f\x54\x70')](_0x1e8839=>_0x1e8839[_0x4d8776(0x1df,'\x5b\x72\x7a\x56')]),SEMANTIC_IDF_TAG_VOCABULARY_LIMIT),_0x1938cd=boundedVocabulary(_0x101fd9[_0x4d8776(0x18b,'\x66\x54\x41\x74')](_0x1bf134=>_0x1bf134[_0x4d8776(0x12d,'\x77\x4f\x53\x5a')]),SEMANTIC_IDF_TOKEN_VOCABULARY_LIMIT),_0x5c08d7=new Map(),_0xc9905a=new Map();for(const _0x2648e0 of _0x101fd9){for(const _0x14f553 of _0x2648e0[_0x4d8776(0x13f,'\x66\x68\x75\x41')]){if(!_0x1ecbd0[_0x4d8776(0x1d5,'\x45\x30\x42\x2a')](_0x14f553))continue;_0x5c08d7[_0x4d8776(0x1cd,'\x31\x32\x55\x7a')](_0x14f553,(_0x5c08d7[_0x4d8776(0x195,'\x64\x5b\x50\x45')](_0x14f553)??0xc31*0x3+0x39*0x3d+0x14*-0x282)+(-0x4*-0x6c5+0xfdc+-0x2aef));}for(const _0x54c505 of _0x2648e0[_0x4d8776(0x1b8,'\x23\x2a\x21\x64')]){if(!_0x1938cd[_0x4d8776(0x135,'\x50\x59\x78\x44')](_0x54c505))continue;_0xc9905a[_0x4d8776(0x1bd,'\x30\x69\x46\x56')](_0x54c505,(_0xc9905a[_0x4d8776(0x153,'\x66\x61\x25\x71')](_0x54c505)??0x1c37+0x11*-0xee+-0xc69)+(0xfee+0xd88+-0x1d75*0x1));}}const _0x189821=_0x101fd9[_0x4d8776(0x139,'\x6c\x4a\x76\x43')],_0x195069=new Map(),_0x4ab0a0=new Map();for(const [_0x2a8d8a,_0x39fa42]of _0x5c08d7){_0x195069[_0x4d8776(0x142,'\x65\x7a\x63\x73')](_0x2a8d8a,inverseDocumentFrequency(_0x189821,_0x39fa42));}for(const [_0x5dc61b,_0x3ae260]of _0xc9905a){_0x4ab0a0['\x73\x65\x74'](_0x5dc61b,inverseDocumentFrequency(_0x189821,_0x3ae260));}return{'\x64\x6f\x63\x75\x6d\x65\x6e\x74\x43\x6f\x75\x6e\x74':_0x189821,'\x74\x61\x67\x49\x64\x66':_0x195069,'\x74\x6f\x6b\x65\x6e\x49\x64\x66':_0x4ab0a0,'\x76\x65\x72\x73\x69\x6f\x6e':semanticProfileVersion(_0x189821,_0x5c08d7,_0xc9905a)};}export function idfTagOverlapScore(_0x5ba5b8,_0x4ccfea,_0x5beb0c){const _0x1d1cb7=_0x468881;if(_0x5beb0c[_0x1d1cb7(0x194,'\x50\x59\x78\x44')+_0x1d1cb7(0x189,'\x6d\x4f\x6d\x61')]<=-0x1610+0x1147+0x4ca)return tagOverlapScore(_0x5ba5b8,_0x4ccfea);const _0x2acfe0=[...new Set(expandSignals(_0x5ba5b8)[_0x1d1cb7(0x137,'\x4e\x6f\x54\x75')](normalizeSemanticTag))],_0x4592a2=new Set(geneTags(_0x4ccfea)[_0x1d1cb7(0x165,'\x30\x69\x46\x56')](normalizeSemanticTag));let _0x1eafbd=-0xb77*0x3+0x2502+-0x29d,_0x535d4d=-0x130a+-0xfc+-0xe9*-0x16;for(const _0x5879e1 of _0x2acfe0){const _0x40b43b=_0x5beb0c[_0x1d1cb7(0x18f,'\x42\x50\x6e\x21')][_0x1d1cb7(0x15c,'\x4d\x38\x25\x79')](_0x5879e1);if(_0x40b43b===undefined)continue;_0x535d4d+=_0x40b43b;if(_0x4592a2['\x68\x61\x73'](_0x5879e1))_0x1eafbd+=_0x40b43b;}return _0x535d4d>-0x71a+-0x4*-0x18d+0xa*0x17?_0x1eafbd/_0x535d4d:-0x53f*0x5+-0xfbe+0x29f9;}export function idfBagCosine(_0xd6a580,_0x5b71fe,_0x1699ec){const _0x328adc=_0x468881;if(_0x1699ec[_0x328adc(0x140,'\x4c\x59\x52\x23')+'\x43\x6f\x75\x6e\x74']<=-0x90c+0xcb9*-0x1+-0x6*-0x3a1)return bagCosine(_0xd6a580,_0x5b71fe);const _0x338180=tokenFrequency(_0xd6a580),_0x225e81=tokenFrequency(_0x5b71fe);let _0x3b420=-0x18f2+0x2044+-0x3a9*0x2,_0x459ffd=-0x33*-0x49+-0x1*0xcd+0x2*-0x6df,_0x5edee7=0x1a3b+-0x15a*0x1a+0x1*0x8e9;for(const [_0x49201c,_0x2a186e]of _0x338180){const _0x537b26=_0x1699ec[_0x328adc(0x1c3,'\x54\x59\x6f\x6d')]['\x67\x65\x74'](_0x49201c);if(_0x537b26===undefined)continue;const _0x52c955=_0x2a186e*_0x537b26;_0x459ffd+=_0x52c955*_0x52c955;const _0x4dbaae=_0x225e81[_0x328adc(0x167,'\x64\x70\x4e\x54')](_0x49201c);if(_0x4dbaae!==undefined)_0x3b420+=_0x52c955*_0x4dbaae*_0x537b26;}for(const [_0x1ed0f7,_0x5c8d1e]of _0x225e81){if(_0x328adc(0x1a1,'\x4d\x38\x25\x79')!==_0x328adc(0x18c,'\x31\x68\x71\x50')){const _0x2a7eb9=_0x1699ec[_0x328adc(0x154,'\x30\x5b\x33\x32')][_0x328adc(0x14a,'\x4a\x77\x43\x61')](_0x1ed0f7);if(_0x2a7eb9===undefined)continue;const _0x3d44e2=_0x5c8d1e*_0x2a7eb9;_0x5edee7+=_0x3d44e2*_0x3d44e2;}else{const _0x346c80=new _0x12ad3b(),_0x227a66=new _0x4e16b9();for(const _0x98ef3e of _0x30e7af(_0x2ea903))_0x346c80[_0x328adc(0x182,'\x65\x6f\x65\x46')](_0x98ef3e,(_0x346c80[_0x328adc(0x163,'\x59\x57\x32\x55')](_0x98ef3e)??0x1*-0x1ba7+0x2658+-0xab1)+(0x1688+0x2*-0x37f+-0xf89));for(const _0x42ab65 of _0x38b458(_0x42800a))_0x227a66[_0x328adc(0x1d4,'\x4a\x48\x4c\x5b')](_0x42ab65,(_0x227a66[_0x328adc(0x185,'\x30\x5b\x33\x32')](_0x42ab65)??0x4f9*0x1+0x213+-0x70c)+(-0x1ff9+0x66b*-0x1+0x1*0x2665));if(_0x346c80['\x73\x69\x7a\x65']===0x1887+0x13a*0x1e+-0x3*0x1471||_0x227a66[_0x328adc(0x1e2,'\x65\x7a\x63\x73')]===-0x11*0xa7+0xd02+-0x1eb)return 0xea3+0x1bbb*0x1+-0x2a5e;let _0x1968af=-0x533+0x1ec9+0x28f*-0xa;for(const [_0x1bf50b,_0x1917eb]of _0x346c80)_0x1968af+=_0x1917eb*(_0x227a66[_0x328adc(0x146,'\x6b\x4e\x71\x56')](_0x1bf50b)??0xd5d+-0x52*0x73+0x1*0x1779);if(_0x1968af===0xd01+0x258a+-0x1*0x328b)return 0x137*0xc+0x78e*0x3+-0x253e;const _0x2a2980=_0x175482=>_0x222b4b['\x73\x71\x72\x74']([..._0x175482[_0x328adc(0x15b,'\x4c\x59\x52\x23')]()][_0x328adc(0x170,'\x26\x6c\x68\x28')]((_0x643899,_0x58ed43)=>_0x643899+_0x58ed43*_0x58ed43,-0x241b+-0x858+0x3*0xed1));return _0x1968af/(_0x2a2980(_0x346c80)*_0x2a2980(_0x227a66));}}if(_0x459ffd===-0x595+-0x86b+-0x10*-0xe0||_0x5edee7===-0x1*0x1565+0xdb1+0x7b4)return 0x1*-0x112b+-0x787*0x4+0x6c1*0x7;return _0x3b420/(Math[_0x328adc(0x1e8,'\x54\x4f\x48\x6b')](_0x459ffd)*Math[_0x328adc(0x136,'\x50\x59\x78\x44')](_0x5edee7));}
@@ -1,82 +1 @@
1
- import { ulid as makeUlid } from 'ulid';
2
- /** agent 显式信号标记(第三条腿; 与 evolver 显式信号注入旁枝呼应). */
3
- const AGENT_MARKERS = [/\bEVOLVE_SIGNAL:\s*(.+)/i, /\[SIGNAL\]\s*(.+)/i];
4
- /** 结构化强信号: 栈/退出码/显式 Error — 零成本判断, 不动 LLM. */
5
- const STRONG_TEXT = /(^|\n)\s*(Error:|Traceback|Exception|FAILED|panic:|\bexit code [1-9])/;
6
- /** 弱信号: 表达困难但无结构, 需 LLM 拼语境. */
7
- const DIFFICULTY = /(无法|失败|搞不定|stuck|can'?t|unable to|not working|fail(?:ed|ing|ure)?|broken|did not pass|no tests? passed|报错|卡住)/i;
8
- /** 成功信号: 工具执行成功/测试通过/构建成功 — 零成本结构化判断, 不动 LLM(Issue#578).
9
- * 注意: bare `verified` 和 `green` 已移至 SUCCESS_PROSE(needsAnalysis:true), 因为它们在非成功语境下高频出现
10
- * ("verified the bug exists" / "green field" / "green button") 且 SUCCESS_TEXT 的 needsAnalysis:false 无 LLM 兜底.
11
- * Emoji are accepted only with test-result context; a bare checklist mark is not proof of session success. */
12
- const SUCCESS_TEXT = /\b(exit code:?\s*0|all tests?\s+pass(ed)?|tests?\s+pass(ed)?|validation\s+pass(ed)?|build\s+succeed(ed)?|published\s+successfully|completed\s+successfully)\b|(?:^|\n)\s*(?:✓\s*(?:\d+\s+)?(?:tests?\s+)?pass(ed)?\b|(?:Tests|Test Files):?\s+[1-9]\d*\s+pass(ed)?\b|(?:=+\s*)?[1-9]\d*\s+pass(ed)?(?:\s+in\s+\d+(?:\.\d+)?s?|\s*=*\s*$)|PASS\s+\S+|ok\s+\S+\s+(?:\d+(?:\.\d+)?s|\(cached\))(?:\s|$))|\btests?\s+🟢(?:\s|$)/im;
13
- /** Deterministic success must fail closed when the same result carries a current negative outcome. */
14
- const SUCCESS_CONFLICT = /\b(?:no|zero|0)(?:\s+of\s+\d+)?\s+tests?\s+pass(ed)?\b|\bsome\s+tests?\s+pass(ed)?\b|\b(?:tests?|validation|verification|build)\s+(?:fail(?:ed|ing|ure)?|did\s+not\s+pass)\b|\b\d+\s+(?:tests?\s+)?failed\b|\b(?:implementation\s+)?(?:still\s+|remains?\s+)(?:broken|failing|not\s+working)\b|\b(?:not|never|did\s+not|has\s+not|hasn't|have\s+not|haven't)\s+(?:succeed(ed)?|complete(d)?\s+successfully)\b/i;
15
- /** 成功措辞(非结构化但表达完成/解决): 需上下文确认(Issue#578). bare `verified` 也在此层: "verified the fix" vs "verified the bug" 需 LLM 判断. */
16
- const SUCCESS_PROSE = /\b(successful(?:ly)?|verified|resolved|fixed|working\s+now|works\s+correctly|problem\s+solved|issue\s+resolved|done|complete)\b/i;
17
- /**
18
- * Harness-coordination noise — agent/tool mechanics, NOT engineering problems to evolve genes for.
19
- * Observation showed these dominate the "strong" leg (tool errors) and drown out real problems: the agent
20
- * re-reads a stale file, a string-replace misses, a permission is declined, a request aborts. Dropping them
21
- * keeps the signal corpus about the environment's *engineering* problems, not the harness's own retry chatter.
22
- */
23
- const HARNESS_NOISE = /(tool_use_error|has not been read yet|has been modified since|modified since read|String to replace not found|old_string|InputValidationError|permission denied by user|user doesn't want|Request was aborted|operation was aborted|File has not been read)/i;
24
- /** Whether a candidate signal text is harness-coordination noise rather than a real engineering problem. */
25
- export function isHarnessNoise(text) {
26
- return HARNESS_NOISE.test(text);
27
- }
28
- /**
29
- * 从 tool_use/tool_result/assistant 文本提取信号(M4A-2). **不读文件内容**, 只看 tool 事件+文本(批注#7/#11).
30
- * 三条腿: tool 错误结果/显式 Error=strong; agent 标记=agent; 困难措辞无结构=weak(defer LLM).
31
- */
32
- export function extractSignals(turns) {
33
- const out = [];
34
- for (const t of turns) {
35
- if (t.isMeta)
36
- continue;
37
- // 腿1 strong: tool_result 报错(is_error) — 但先滤掉 harness 协调噪声(不是工程问题)
38
- if (t.errorMessage) {
39
- if (!isHarnessNoise(t.errorMessage)) {
40
- out.push({ id: makeUlid(), strength: 'strong', kind: 'error_result', text: t.errorMessage.slice(0, 2000), ...(t.toolName ? { toolName: t.toolName } : {}), needsAnalysis: false });
41
- }
42
- continue;
43
- }
44
- const text = t.text ?? '';
45
- const toolResult = t.toolResult ?? '';
46
- if (!text.trim() && !toolResult.trim())
47
- continue;
48
- // 腿3 agent: 显式标记
49
- const marker = AGENT_MARKERS.map((re) => text.match(re)).find(Boolean);
50
- if (marker) {
51
- out.push({ id: makeUlid(), strength: 'agent', kind: 'agent_marked', text: (marker[1] ?? text).trim().slice(0, 2000), needsAnalysis: false });
52
- continue;
53
- }
54
- // Leg 1 strong: inspect both fields. Some adapters populate only toolResult, while older callers may populate
55
- // text as well; a failure in either representation must outrank a positive substring in the other.
56
- const resultText = toolResult.trim() ? toolResult : text;
57
- const structuredFailureText = STRONG_TEXT.test(text) ? text : (STRONG_TEXT.test(toolResult) ? toolResult : '');
58
- if (structuredFailureText) {
59
- if (!isHarnessNoise(structuredFailureText)) {
60
- out.push({ id: makeUlid(), strength: 'strong', kind: 'structured_error', text: structuredFailureText.slice(0, 2000), ...(t.toolName ? { toolName: t.toolName } : {}), needsAnalysis: false });
61
- }
62
- continue;
63
- }
64
- // Leg 4 success: prefer the actual tool result; adapters intentionally keep tool-turn text empty.
65
- if (SUCCESS_TEXT.test(resultText) && !SUCCESS_CONFLICT.test(resultText)) {
66
- if (!isHarnessNoise(resultText)) {
67
- out.push({ id: makeUlid(), strength: 'success', kind: 'verified_success', text: resultText.slice(0, 2000), ...(t.toolName ? { toolName: t.toolName } : {}), needsAnalysis: false });
68
- }
69
- continue;
70
- }
71
- // 腿2 weak: 困难措辞无结构 → 交 LLM
72
- if (DIFFICULTY.test(text)) {
73
- out.push({ id: makeUlid(), strength: 'weak', kind: 'difficulty', text: text.slice(0, 2000), needsAnalysis: true });
74
- continue;
75
- }
76
- // 腿4 success: 非结构化成功措辞(resolved/fixed/working now 等) → 需上下文确认(Issue#578)
77
- if (SUCCESS_PROSE.test(text)) {
78
- out.push({ id: makeUlid(), strength: 'success', kind: 'success_prose', text: text.slice(0, 2000), needsAnalysis: true });
79
- }
80
- }
81
- return out;
82
- }
1
+ (function(_0x491ab8,_0x19d9b4){const _0x2a225b=_0xfdd6,_0x4302d9=_0x491ab8();while(!![]){try{const _0x4273d4=-parseInt(_0x2a225b(0x1ce,'\x37\x57\x4e\x43'))/(0x773+-0x2*0x470+0x16e)*(parseInt(_0x2a225b(0x1f3,'\x34\x31\x40\x21'))/(-0x56e*0x1+0x1a6b+-0x14fb*0x1))+-parseInt(_0x2a225b(0x1fd,'\x63\x61\x32\x6e'))/(0x2308+-0x1*0x1cda+0x1*-0x62b)+-parseInt(_0x2a225b(0x1d0,'\x42\x37\x46\x5a'))/(0x1472+0x10*-0x1c9+0x822)+parseInt(_0x2a225b(0x1fb,'\x67\x33\x5d\x25'))/(-0xa85+-0x7*-0x569+-0x1*0x1b55)*(parseInt(_0x2a225b(0x1c2,'\x68\x26\x61\x63'))/(-0x263a+-0xf7c+0x35bc))+-parseInt(_0x2a225b(0x1f8,'\x67\x6d\x31\x44'))/(-0x4*-0x3d6+-0xbda+0x1*-0x377)*(-parseInt(_0x2a225b(0x1bd,'\x68\x26\x61\x63'))/(-0x1e7f*-0x1+-0x4*-0x5de+-0x35ef))+parseInt(_0x2a225b(0x1d5,'\x34\x70\x71\x6e'))/(0xa8c+0x86*0x1d+-0x19b1)*(-parseInt(_0x2a225b(0x1c5,'\x5d\x39\x29\x35'))/(0x1*0x2567+-0x73b+-0x1*0x1e22))+parseInt(_0x2a225b(0x1f6,'\x5e\x62\x2a\x7a'))/(-0x5*-0x70d+0x3*0x3bb+-0x2e67);if(_0x4273d4===_0x19d9b4)break;else _0x4302d9['push'](_0x4302d9['shift']());}catch(_0x386fe2){_0x4302d9['push'](_0x4302d9['shift']());}}}(_0x5be2,0x2eca7+0x178a5+-0x20895));import{ulid as _0x35ffb8}from'\x75\x6c\x69\x64';function _0x5be2(){const _0x4e07b1=['\x76\x38\x6b\x77\x75\x43\x6b\x32','\x7a\x43\x6f\x61\x6c\x72\x42\x63\x53\x67\x53\x72\x69\x57','\x57\x51\x57\x57\x57\x36\x34\x2b\x70\x47','\x57\x50\x31\x32\x69\x53\x6f\x45\x57\x36\x65','\x7a\x43\x6f\x38\x46\x53\x6b\x56\x57\x52\x4a\x64\x48\x43\x6b\x54\x57\x4f\x47','\x57\x4f\x71\x32\x57\x37\x52\x63\x47\x71','\x57\x34\x69\x6a\x6c\x59\x4b','\x6a\x4d\x7a\x36\x57\x36\x6d','\x57\x35\x47\x55\x46\x53\x6b\x66\x57\x52\x6e\x78\x57\x37\x38\x55\x57\x52\x4c\x4e\x57\x35\x57\x4c\x57\x36\x38','\x61\x62\x72\x33\x6e\x4b\x53','\x57\x4f\x64\x63\x52\x43\x6b\x62\x72\x71','\x57\x51\x30\x33\x57\x51\x37\x63\x4d\x53\x6b\x58\x6b\x4b\x43','\x57\x52\x34\x37\x57\x36\x69\x5a\x6c\x57','\x57\x51\x30\x32\x57\x52\x2f\x63\x4c\x53\x6b\x36\x70\x47','\x44\x48\x43\x54\x64\x6d\x6b\x43','\x57\x50\x31\x37\x6c\x6d\x6f\x79','\x57\x50\x58\x79\x68\x6d\x6f\x58\x57\x34\x47','\x57\x4f\x57\x61\x57\x37\x66\x77\x57\x34\x33\x63\x4f\x64\x52\x64\x49\x43\x6b\x4c','\x57\x37\x53\x42\x6d\x74\x33\x63\x47\x47','\x77\x61\x56\x63\x52\x53\x6f\x39','\x74\x38\x6f\x6b\x70\x4d\x74\x63\x48\x43\x6f\x33\x62\x57\x38','\x78\x53\x6f\x78\x69\x32\x46\x63\x55\x43\x6f\x42\x64\x58\x4b','\x57\x4f\x38\x63\x57\x37\x65\x32\x57\x50\x46\x63\x50\x47\x4e\x64\x48\x6d\x6b\x7a\x6d\x71\x69','\x70\x31\x68\x63\x47\x53\x6b\x77','\x69\x4e\x7a\x36\x57\x37\x38','\x57\x4f\x76\x79\x6b\x73\x37\x63\x55\x38\x6b\x72\x57\x4f\x70\x63\x4e\x57','\x57\x35\x53\x52\x57\x52\x70\x64\x53\x6d\x6f\x36\x6c\x77\x43\x6f','\x57\x52\x44\x57\x6e\x38\x6b\x5a\x57\x37\x35\x72\x6c\x61\x71','\x57\x36\x46\x64\x51\x76\x58\x38\x57\x34\x7a\x78','\x57\x34\x50\x77\x57\x52\x62\x59','\x77\x62\x5a\x63\x54\x6d\x6f\x4b','\x75\x6d\x6b\x67\x71\x43\x6b\x48\x62\x4e\x47\x63','\x63\x4c\x75\x34\x57\x37\x46\x63\x53\x43\x6b\x70\x61\x74\x57\x54','\x57\x4f\x46\x63\x50\x6d\x6b\x42\x75\x53\x6f\x64','\x57\x34\x75\x47\x57\x36\x33\x63\x50\x68\x78\x64\x4c\x48\x30','\x57\x37\x66\x78\x67\x53\x6f\x33\x45\x6d\x6f\x43\x79\x53\x6f\x6e','\x6c\x53\x6f\x51\x57\x4f\x68\x64\x4a\x6d\x6f\x4b\x57\x4f\x56\x64\x4e\x73\x53\x66\x64\x4e\x46\x63\x49\x4c\x30','\x46\x58\x70\x63\x47\x62\x38\x64\x66\x71\x79\x65','\x57\x35\x38\x58\x57\x51\x2f\x64\x54\x61','\x57\x51\x57\x61\x57\x50\x52\x63\x54\x43\x6b\x79','\x57\x34\x44\x77\x57\x4f\x56\x63\x4c\x57','\x57\x35\x47\x55\x46\x43\x6b\x70\x57\x52\x71\x51\x57\x51\x69\x70\x57\x50\x76\x76\x57\x35\x4f','\x57\x36\x72\x76\x64\x6d\x6f\x54','\x6c\x38\x6b\x64\x63\x57\x61','\x78\x53\x6b\x42\x46\x66\x34\x36\x57\x34\x4e\x63\x4a\x43\x6b\x61\x57\x52\x43','\x57\x52\x6d\x7a\x72\x6d\x6b\x52','\x57\x4f\x42\x63\x4e\x53\x6f\x41\x57\x34\x57\x74\x57\x36\x53\x6e\x73\x61','\x43\x72\x71\x52\x61\x38\x6b\x33\x6f\x68\x50\x67','\x57\x37\x37\x64\x4e\x6d\x6b\x49\x70\x71','\x6f\x5a\x76\x4a\x57\x4f\x4a\x64\x4e\x38\x6b\x4f\x6b\x43\x6f\x39','\x73\x48\x48\x5a\x57\x37\x6c\x63\x55\x43\x6b\x46','\x57\x34\x75\x46\x57\x37\x52\x64\x52\x57\x74\x64\x4f\x38\x6b\x6a\x57\x52\x75','\x42\x38\x6b\x55\x57\x34\x56\x63\x4c\x47','\x57\x51\x7a\x69\x6a\x43\x6f\x58\x57\x35\x34','\x77\x6d\x6f\x32\x57\x34\x70\x63\x56\x61','\x73\x30\x7a\x4f\x57\x34\x69\x54','\x57\x37\x66\x69\x61\x43\x6f\x54\x57\x51\x56\x64\x4d\x33\x6c\x64\x56\x53\x6f\x34\x57\x34\x74\x64\x54\x61','\x6c\x53\x6f\x32\x62\x66\x43\x63','\x45\x53\x6b\x2f\x57\x36\x46\x63\x4d\x38\x6b\x4e\x57\x34\x5a\x63\x47\x63\x4b','\x68\x53\x6b\x2f\x6a\x75\x6c\x63\x53\x76\x48\x52\x57\x51\x57','\x6b\x6d\x6b\x74\x65\x62\x46\x63\x48\x4d\x31\x32\x57\x52\x53','\x6d\x33\x44\x77\x57\x36\x37\x63\x51\x38\x6b\x4c\x67\x49\x38','\x57\x50\x44\x4e\x57\x52\x72\x74\x57\x52\x6c\x63\x4f\x53\x6b\x30\x57\x35\x4b','\x6e\x43\x6b\x72\x43\x30\x70\x64\x51\x64\x61\x50\x69\x6d\x6b\x49\x57\x36\x53\x7a\x44\x61','\x69\x6d\x6b\x63\x78\x66\x4e\x64\x49\x77\x6c\x64\x48\x53\x6f\x6d','\x57\x34\x75\x76\x57\x36\x42\x64\x54\x57','\x65\x66\x37\x63\x51\x47','\x57\x4f\x66\x38\x57\x51\x37\x63\x52\x57\x6a\x54\x7a\x71','\x57\x4f\x6c\x63\x48\x6d\x6f\x67\x57\x34\x47','\x7a\x6d\x6f\x42\x6f\x72\x2f\x63\x51\x30\x75\x62\x70\x61','\x57\x4f\x54\x4f\x6f\x43\x6f\x73\x57\x37\x79\x38\x57\x52\x71\x56','\x57\x52\x76\x49\x57\x35\x2f\x64\x51\x43\x6b\x2f\x57\x34\x52\x63\x52\x78\x69\x39\x6b\x38\x6b\x70\x6f\x47','\x57\x4f\x46\x63\x56\x43\x6b\x45\x72\x71','\x77\x43\x6f\x6d\x70\x4e\x37\x63\x4c\x6d\x6f\x6f\x66\x57\x34','\x57\x4f\x79\x68\x57\x35\x2f\x64\x48\x66\x4f\x79\x67\x38\x6b\x51\x79\x53\x6f\x71\x57\x50\x76\x54\x57\x4f\x71','\x70\x43\x6b\x70\x68\x72\x61','\x6d\x38\x6b\x65\x57\x35\x61\x50\x57\x34\x78\x64\x49\x4c\x57\x41\x57\x4f\x38','\x70\x47\x39\x64\x67\x47','\x6c\x53\x6b\x33\x6a\x30\x64\x63\x52\x61','\x57\x35\x75\x57\x57\x36\x35\x38\x57\x4f\x33\x63\x54\x53\x6b\x45\x57\x35\x6c\x64\x51\x71','\x57\x35\x78\x63\x4a\x65\x48\x34\x63\x43\x6b\x41\x63\x6d\x6b\x76','\x57\x34\x2f\x63\x53\x6d\x6b\x52\x42\x63\x66\x6d\x68\x67\x2f\x64\x4c\x4b\x54\x43\x45\x71','\x46\x57\x37\x63\x48\x48\x34','\x57\x34\x69\x65\x69\x73\x2f\x63\x4a\x71','\x57\x4f\x74\x63\x55\x53\x6b\x44\x71\x53\x6f\x64','\x57\x35\x69\x35\x57\x36\x69\x6e\x57\x34\x33\x64\x54\x53\x6f\x52\x57\x34\x5a\x64\x49\x62\x46\x64\x4f\x31\x6c\x63\x54\x71','\x57\x4f\x71\x4d\x57\x51\x38\x6a\x46\x6d\x6b\x6e\x75\x53\x6f\x43','\x57\x52\x38\x61\x57\x52\x6d\x57\x72\x71','\x57\x4f\x68\x63\x4e\x43\x6f\x43\x57\x34\x6d\x34','\x43\x53\x6f\x44\x6f\x72\x2f\x63\x54\x32\x38','\x57\x35\x46\x63\x48\x4c\x76\x39\x69\x43\x6b\x73\x61\x6d\x6b\x75','\x78\x57\x5a\x63\x50\x6d\x6f\x5a\x61\x59\x50\x73\x57\x4f\x61','\x6a\x57\x4c\x39\x66\x33\x46\x63\x54\x61','\x57\x50\x58\x58\x6b\x38\x6b\x39','\x6f\x43\x6b\x4b\x7a\x68\x64\x64\x4f\x57','\x57\x35\x53\x52\x57\x52\x70\x64\x53\x6d\x6f\x4d\x6b\x78\x4b\x45','\x42\x47\x37\x63\x4e\x72\x57\x2f\x6b\x58\x4b\x65','\x57\x34\x42\x63\x51\x38\x6f\x43\x57\x34\x4f'];_0x5be2=function(){return _0x4e07b1;};return _0x5be2();}function _0xfdd6(_0x4334dc,_0x224045){_0x4334dc=_0x4334dc-(-0x2d4*0xd+-0x3*-0x78b+0xfd4);const _0x3b9d2c=_0x5be2();let _0x1f7d8d=_0x3b9d2c[_0x4334dc];if(_0xfdd6['\x66\x65\x6c\x69\x4c\x6a']===undefined){var _0x586a59=function(_0x110f20){const _0x28e2f2='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';let _0x594ccb='',_0x507bef='';for(let _0x3f7375=0x1430+-0x2c*0x3b+-0xa0c,_0x1fc997,_0x261729,_0x557aec=0x1d9b*-0x1+-0x2*-0xe75+0xb1;_0x261729=_0x110f20['\x63\x68\x61\x72\x41\x74'](_0x557aec++);~_0x261729&&(_0x1fc997=_0x3f7375%(0x509*0x3+0x12f8*-0x1+0x3e1)?_0x1fc997*(-0x1aaa*0x1+0x1d14+-0x22a)+_0x261729:_0x261729,_0x3f7375++%(0x1601+0x1*0x2431+-0x3a2e))?_0x594ccb+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x1943*-0x1+-0x2526+0x1*0xce2&_0x1fc997>>(-(-0x142b+-0xf20*0x1+0x234d)*_0x3f7375&0x6*0x36c+0x5*-0x577+0x5*0x15d)):0x2136+0x32d*0x7+0xab*-0x53){_0x261729=_0x28e2f2['\x69\x6e\x64\x65\x78\x4f\x66'](_0x261729);}for(let _0x235195=0x10*-0x131+0x933+-0x1f9*-0x5,_0x53e220=_0x594ccb['\x6c\x65\x6e\x67\x74\x68'];_0x235195<_0x53e220;_0x235195++){_0x507bef+='\x25'+('\x30\x30'+_0x594ccb['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x235195)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x1*-0x1dc5+0x1e31*-0x1+0x4*0x1f))['\x73\x6c\x69\x63\x65'](-(-0x6b*0x51+-0xd*0xab+0x2a8c));}return decodeURIComponent(_0x507bef);};const _0x139b75=function(_0x2b7d44,_0x13c58f){let _0x4adc9d=[],_0x6f6a9b=-0x2*0x72c+-0x192e+0x2786,_0x1bd3e0,_0x17ce00='';_0x2b7d44=_0x586a59(_0x2b7d44);let _0x54228e;for(_0x54228e=-0x10f5+-0x79d*-0x1+0xd*0xb8;_0x54228e<0x1aab*0x1+0x18*-0xc4+-0x74b*0x1;_0x54228e++){_0x4adc9d[_0x54228e]=_0x54228e;}for(_0x54228e=0x355*0x6+-0x2025+0xc27;_0x54228e<0x7bb+-0x1d85+-0x16ca*-0x1;_0x54228e++){_0x6f6a9b=(_0x6f6a9b+_0x4adc9d[_0x54228e]+_0x13c58f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x54228e%_0x13c58f['\x6c\x65\x6e\x67\x74\x68']))%(0x15b*-0x4+-0x1699*0x1+-0x187*-0x13),_0x1bd3e0=_0x4adc9d[_0x54228e],_0x4adc9d[_0x54228e]=_0x4adc9d[_0x6f6a9b],_0x4adc9d[_0x6f6a9b]=_0x1bd3e0;}_0x54228e=-0x3ef*-0x9+0x2327+-0xb*0x66a,_0x6f6a9b=0x1bed+0x9d*0xf+-0x2520;for(let _0xeaa0c=-0x2417+-0x1*0x14a6+0x38bd;_0xeaa0c<_0x2b7d44['\x6c\x65\x6e\x67\x74\x68'];_0xeaa0c++){_0x54228e=(_0x54228e+(0x121+0x1a8a*-0x1+0x196a*0x1))%(-0x4ca*-0x6+-0x13a7+-0x815),_0x6f6a9b=(_0x6f6a9b+_0x4adc9d[_0x54228e])%(-0x123*0x21+0xd7*0x13+0x168e),_0x1bd3e0=_0x4adc9d[_0x54228e],_0x4adc9d[_0x54228e]=_0x4adc9d[_0x6f6a9b],_0x4adc9d[_0x6f6a9b]=_0x1bd3e0,_0x17ce00+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x2b7d44['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0xeaa0c)^_0x4adc9d[(_0x4adc9d[_0x54228e]+_0x4adc9d[_0x6f6a9b])%(0x4d4+0x2205+-0x25d9)]);}return _0x17ce00;};_0xfdd6['\x42\x74\x70\x70\x68\x49']=_0x139b75,_0xfdd6['\x4b\x76\x62\x73\x53\x53']={},_0xfdd6['\x66\x65\x6c\x69\x4c\x6a']=!![];}const _0x1e6fae=_0x3b9d2c[0x2a9+0x2b6*-0xd+0x2095],_0x570307=_0x4334dc+_0x1e6fae,_0x30b80e=_0xfdd6['\x4b\x76\x62\x73\x53\x53'][_0x570307];return!_0x30b80e?(_0xfdd6['\x42\x55\x42\x51\x50\x4c']===undefined&&(_0xfdd6['\x42\x55\x42\x51\x50\x4c']=!![]),_0x1f7d8d=_0xfdd6['\x42\x74\x70\x70\x68\x49'](_0x1f7d8d,_0x224045),_0xfdd6['\x4b\x76\x62\x73\x53\x53'][_0x570307]=_0x1f7d8d):_0x1f7d8d=_0x30b80e,_0x1f7d8d;}const AGENT_MARKERS=[/\bEVOLVE_SIGNAL:\s*(.+)/i,/\[SIGNAL\]\s*(.+)/i],STRONG_TEXT=/(^|\n)\s*(Error:|Traceback|Exception|FAILED|panic:|\bexit code [1-9])/,DIFFICULTY=/(无法|失败|搞不定|stuck|can'?t|unable to|not working|fail(?:ed|ing|ure)?|broken|did not pass|no tests? passed|报错|卡住)/i,SUCCESS_TEXT=/\b(exit code:?\s*0|all tests?\s+pass(ed)?|tests?\s+pass(ed)?|validation\s+pass(ed)?|build\s+succeed(ed)?|published\s+successfully|completed\s+successfully)\b|(?:^|\n)\s*(?:✓\s*(?:\d+\s+)?(?:tests?\s+)?pass(ed)?\b|(?:Tests|Test Files):?\s+[1-9]\d*\s+pass(ed)?\b|(?:=+\s*)?[1-9]\d*\s+pass(ed)?(?:\s+in\s+\d+(?:\.\d+)?s?|\s*=*\s*$)|PASS\s+\S+|ok\s+\S+\s+(?:\d+(?:\.\d+)?s|\(cached\))(?:\s|$))|\btests?\s+🟢(?:\s|$)/im,SUCCESS_CONFLICT=/\b(?:no|zero|0)(?:\s+of\s+\d+)?\s+tests?\s+pass(ed)?\b|\bsome\s+tests?\s+pass(ed)?\b|\b(?:tests?|validation|verification|build)\s+(?:fail(?:ed|ing|ure)?|did\s+not\s+pass)\b|\b\d+\s+(?:tests?\s+)?failed\b|\b(?:implementation\s+)?(?:still\s+|remains?\s+)(?:broken|failing|not\s+working)\b|\b(?:not|never|did\s+not|has\s+not|hasn't|have\s+not|haven't)\s+(?:succeed(ed)?|complete(d)?\s+successfully)\b/i,SUCCESS_PROSE=/\b(successful(?:ly)?|verified|resolved|fixed|working\s+now|works\s+correctly|problem\s+solved|issue\s+resolved|done|complete)\b/i,HARNESS_NOISE=/(tool_use_error|has not been read yet|has been modified since|modified since read|String to replace not found|old_string|InputValidationError|permission denied by user|user doesn't want|Request was aborted|operation was aborted|File has not been read)/i;export function isHarnessNoise(_0x18132d){const _0x22f371=_0xfdd6;return HARNESS_NOISE[_0x22f371(0x1d6,'\x6b\x29\x5e\x46')](_0x18132d);}export function extractSignals(_0x31a61e){const _0x4d3f24=_0xfdd6,_0x41a1ea=[];for(const _0x51ed8e of _0x31a61e){if(_0x4d3f24(0x1e1,'\x34\x70\x71\x6e')!==_0x4d3f24(0x203,'\x45\x73\x72\x56'))_0x1cff64[_0x4d3f24(0x1dc,'\x24\x76\x77\x53')]({'\x69\x64':_0x421ffa(),'\x73\x74\x72\x65\x6e\x67\x74\x68':_0x4d3f24(0x1b9,'\x63\x26\x34\x67'),'\x6b\x69\x6e\x64':_0x4d3f24(0x20c,'\x6a\x4a\x5d\x52')+_0x4d3f24(0x1f4,'\x40\x38\x75\x6e'),'\x74\x65\x78\x74':_0x1889f9[_0x4d3f24(0x1e7,'\x47\x75\x36\x66')+_0x4d3f24(0x1bb,'\x34\x70\x71\x6e')][_0x4d3f24(0x1ba,'\x57\x2a\x59\x58')](-0x4f*-0x17+-0xcf7*-0x1+0x6b*-0x30,-0x957*0x1+-0x6eb+0x1812),..._0x5babb8[_0x4d3f24(0x1dd,'\x47\x31\x23\x69')]?{'\x74\x6f\x6f\x6c\x4e\x61\x6d\x65':_0x4f2f70[_0x4d3f24(0x20b,'\x74\x30\x6c\x73')]}:{},'\x6e\x65\x65\x64\x73\x41\x6e\x61\x6c\x79\x73\x69\x73':![]});else{if(_0x51ed8e[_0x4d3f24(0x208,'\x39\x61\x70\x4d')])continue;if(_0x51ed8e[_0x4d3f24(0x1f1,'\x66\x57\x72\x6d')+'\x73\x61\x67\x65']){!isHarnessNoise(_0x51ed8e['\x65\x72\x72\x6f\x72\x4d\x65\x73'+_0x4d3f24(0x1b2,'\x5d\x39\x29\x35')])&&(_0x4d3f24(0x20a,'\x65\x58\x64\x7a')!==_0x4d3f24(0x1e5,'\x35\x51\x25\x6e')?_0x4e852c[_0x4d3f24(0x1b1,'\x36\x31\x23\x38')]({'\x69\x64':_0x259a33(),'\x73\x74\x72\x65\x6e\x67\x74\x68':_0x4d3f24(0x1b7,'\x63\x26\x34\x67'),'\x6b\x69\x6e\x64':'\x76\x65\x72\x69\x66\x69\x65\x64'+_0x4d3f24(0x1ec,'\x65\x58\x64\x7a'),'\x74\x65\x78\x74':_0x3f9942[_0x4d3f24(0x211,'\x34\x70\x71\x6e')](0x1c5d+-0x1d95+0x1a*0xc,-0x123*-0x17+0x25dd*-0x1+-0x3e8*-0x5),..._0x6d5f43[_0x4d3f24(0x1df,'\x70\x5e\x30\x44')]?{'\x74\x6f\x6f\x6c\x4e\x61\x6d\x65':_0x2b8cd7[_0x4d3f24(0x1c1,'\x4e\x47\x68\x77')]}:{},'\x6e\x65\x65\x64\x73\x41\x6e\x61\x6c\x79\x73\x69\x73':![]}):_0x41a1ea[_0x4d3f24(0x1d2,'\x74\x30\x6c\x73')]({'\x69\x64':_0x35ffb8(),'\x73\x74\x72\x65\x6e\x67\x74\x68':_0x4d3f24(0x1c8,'\x41\x52\x78\x53'),'\x6b\x69\x6e\x64':_0x4d3f24(0x1f2,'\x34\x70\x71\x6e')+'\x73\x75\x6c\x74','\x74\x65\x78\x74':_0x51ed8e[_0x4d3f24(0x1c0,'\x4e\x47\x68\x77')+_0x4d3f24(0x1e2,'\x4c\x25\x47\x64')][_0x4d3f24(0x1cd,'\x40\x38\x75\x6e')](-0xb1a+0xe*0x23f+-0x1458,0x108d+0x1437+-0x1cf4),..._0x51ed8e[_0x4d3f24(0x1ea,'\x67\x33\x5d\x25')]?{'\x74\x6f\x6f\x6c\x4e\x61\x6d\x65':_0x51ed8e['\x74\x6f\x6f\x6c\x4e\x61\x6d\x65']}:{},'\x6e\x65\x65\x64\x73\x41\x6e\x61\x6c\x79\x73\x69\x73':![]}));continue;}const _0xc0f19=_0x51ed8e[_0x4d3f24(0x1d7,'\x43\x45\x68\x63')]??'',_0x330101=_0x51ed8e[_0x4d3f24(0x1c6,'\x74\x30\x6c\x73')+'\x6c\x74']??'';if(!_0xc0f19[_0x4d3f24(0x1bf,'\x44\x6b\x78\x4a')]()&&!_0x330101[_0x4d3f24(0x1fe,'\x6a\x4a\x5d\x52')]())continue;const _0x1cc4f6=AGENT_MARKERS[_0x4d3f24(0x1ee,'\x72\x56\x41\x63')](_0xac08b5=>_0xc0f19['\x6d\x61\x74\x63\x68'](_0xac08b5))[_0x4d3f24(0x1f7,'\x43\x45\x68\x63')](Boolean);if(_0x1cc4f6){_0x41a1ea[_0x4d3f24(0x1b3,'\x51\x23\x65\x2a')]({'\x69\x64':_0x35ffb8(),'\x73\x74\x72\x65\x6e\x67\x74\x68':_0x4d3f24(0x1b8,'\x54\x43\x35\x59'),'\x6b\x69\x6e\x64':_0x4d3f24(0x1cf,'\x6b\x29\x5e\x46')+'\x72\x6b\x65\x64','\x74\x65\x78\x74':(_0x1cc4f6[-0x1ff1+0x1e1a+-0x76*-0x4]??_0xc0f19)[_0x4d3f24(0x209,'\x67\x78\x63\x55')]()['\x73\x6c\x69\x63\x65'](0x1*-0x1beb+0x19*0x5+0x1b6e,0x1267+-0x1988+0xef1),'\x6e\x65\x65\x64\x73\x41\x6e\x61\x6c\x79\x73\x69\x73':![]});continue;}const _0x1777b9=_0x330101[_0x4d3f24(0x20d,'\x75\x48\x6f\x62')]()?_0x330101:_0xc0f19,_0x19d7b9=STRONG_TEXT[_0x4d3f24(0x1ca,'\x44\x6b\x78\x4a')](_0xc0f19)?_0xc0f19:STRONG_TEXT[_0x4d3f24(0x1b6,'\x40\x38\x75\x6e')](_0x330101)?_0x330101:'';if(_0x19d7b9){!isHarnessNoise(_0x19d7b9)&&(_0x4d3f24(0x1b5,'\x39\x61\x70\x4d')==='\x4e\x6e\x47\x44\x48'?_0x41a1ea[_0x4d3f24(0x1b3,'\x51\x23\x65\x2a')]({'\x69\x64':_0x35ffb8(),'\x73\x74\x72\x65\x6e\x67\x74\x68':_0x4d3f24(0x205,'\x66\x57\x72\x6d'),'\x6b\x69\x6e\x64':_0x4d3f24(0x202,'\x45\x73\x72\x56')+_0x4d3f24(0x1e6,'\x42\x37\x46\x5a'),'\x74\x65\x78\x74':_0x19d7b9[_0x4d3f24(0x1e3,'\x6c\x4a\x72\x2a')](0xff5+0x97a*0x2+-0x22e9,0x4d4+0x2205+-0x1f09),..._0x51ed8e[_0x4d3f24(0x1d1,'\x6a\x4a\x5d\x52')]?{'\x74\x6f\x6f\x6c\x4e\x61\x6d\x65':_0x51ed8e[_0x4d3f24(0x1da,'\x48\x25\x57\x77')]}:{},'\x6e\x65\x65\x64\x73\x41\x6e\x61\x6c\x79\x73\x69\x73':![]}):_0x1d39ec[_0x4d3f24(0x1f9,'\x39\x61\x70\x4d')]({'\x69\x64':_0x19069f(),'\x73\x74\x72\x65\x6e\x67\x74\x68':_0x4d3f24(0x1cb,'\x37\x32\x34\x73'),'\x6b\x69\x6e\x64':_0x4d3f24(0x1e8,'\x43\x45\x68\x63')+'\x70\x72\x6f\x73\x65','\x74\x65\x78\x74':_0x3555ca[_0x4d3f24(0x204,'\x48\x25\x57\x77')](0x2a9+0x2b6*-0xd+0x2095,-0x17*-0xb2+-0x2*0x581+0x1*0x2d4),'\x6e\x65\x65\x64\x73\x41\x6e\x61\x6c\x79\x73\x69\x73':!![]}));continue;}if(SUCCESS_TEXT[_0x4d3f24(0x1c4,'\x51\x23\x65\x2a')](_0x1777b9)&&!SUCCESS_CONFLICT[_0x4d3f24(0x1c9,'\x68\x26\x61\x63')](_0x1777b9)){if(_0x4d3f24(0x1bc,'\x34\x70\x71\x6e')!==_0x4d3f24(0x1d3,'\x63\x26\x34\x67'))_0x5d8dd4[_0x4d3f24(0x1e0,'\x42\x37\x46\x5a')]({'\x69\x64':_0x8e3486(),'\x73\x74\x72\x65\x6e\x67\x74\x68':_0x4d3f24(0x1de,'\x43\x41\x55\x75'),'\x6b\x69\x6e\x64':_0x4d3f24(0x1f5,'\x4e\x47\x68\x77')+_0x4d3f24(0x1e9,'\x51\x23\x65\x2a'),'\x74\x65\x78\x74':_0x2b812c[_0x4d3f24(0x1ff,'\x5d\x39\x29\x35')](-0x1702+0x248*-0xb+-0x2f*-0x106,-0x7dd+-0x1*-0x1ef7+-0xf4a),..._0x17c5c9[_0x4d3f24(0x1fc,'\x26\x64\x71\x72')]?{'\x74\x6f\x6f\x6c\x4e\x61\x6d\x65':_0x4a8b72[_0x4d3f24(0x212,'\x32\x62\x62\x6a')]}:{},'\x6e\x65\x65\x64\x73\x41\x6e\x61\x6c\x79\x73\x69\x73':![]});else{!isHarnessNoise(_0x1777b9)&&_0x41a1ea[_0x4d3f24(0x1c3,'\x29\x53\x37\x39')]({'\x69\x64':_0x35ffb8(),'\x73\x74\x72\x65\x6e\x67\x74\x68':_0x4d3f24(0x1cb,'\x37\x32\x34\x73'),'\x6b\x69\x6e\x64':_0x4d3f24(0x206,'\x26\x64\x71\x72')+_0x4d3f24(0x1c7,'\x67\x78\x63\x55'),'\x74\x65\x78\x74':_0x1777b9[_0x4d3f24(0x210,'\x54\x43\x35\x59')](0x1644+-0x215e+-0xb1a*-0x1,-0x2*0x1b9+-0x8c3*0x3+0x258b),..._0x51ed8e[_0x4d3f24(0x1db,'\x57\x2a\x59\x58')]?{'\x74\x6f\x6f\x6c\x4e\x61\x6d\x65':_0x51ed8e['\x74\x6f\x6f\x6c\x4e\x61\x6d\x65']}:{},'\x6e\x65\x65\x64\x73\x41\x6e\x61\x6c\x79\x73\x69\x73':![]});continue;}}if(DIFFICULTY[_0x4d3f24(0x1ed,'\x70\x5e\x30\x44')](_0xc0f19)){if(_0x4d3f24(0x1be,'\x5d\x39\x29\x35')===_0x4d3f24(0x1fa,'\x47\x75\x36\x66'))return _0xd54edd[_0x4d3f24(0x20e,'\x37\x32\x34\x73')](_0xb8e6ec);else{_0x41a1ea[_0x4d3f24(0x1dc,'\x24\x76\x77\x53')]({'\x69\x64':_0x35ffb8(),'\x73\x74\x72\x65\x6e\x67\x74\x68':_0x4d3f24(0x1d4,'\x5e\x62\x2a\x7a'),'\x6b\x69\x6e\x64':_0x4d3f24(0x20f,'\x66\x57\x72\x6d')+'\x74\x79','\x74\x65\x78\x74':_0xc0f19['\x73\x6c\x69\x63\x65'](0x510+-0x6*0xea+0x12*0x6,0xeda+-0x1dba+0x79*0x30),'\x6e\x65\x65\x64\x73\x41\x6e\x61\x6c\x79\x73\x69\x73':!![]});continue;}}SUCCESS_PROSE[_0x4d3f24(0x1d9,'\x26\x4e\x26\x51')](_0xc0f19)&&_0x41a1ea[_0x4d3f24(0x1f0,'\x48\x25\x57\x77')]({'\x69\x64':_0x35ffb8(),'\x73\x74\x72\x65\x6e\x67\x74\x68':'\x73\x75\x63\x63\x65\x73\x73','\x6b\x69\x6e\x64':_0x4d3f24(0x207,'\x44\x6b\x78\x4a')+_0x4d3f24(0x200,'\x40\x38\x75\x6e'),'\x74\x65\x78\x74':_0xc0f19[_0x4d3f24(0x1cd,'\x40\x38\x75\x6e')](0x844+0x1dbe*0x1+-0x2b7*0xe,-0x11f*-0x22+0x1ce+-0x201c),'\x6e\x65\x65\x64\x73\x41\x6e\x61\x6c\x79\x73\x69\x73':!![]});}}return _0x41a1ea;}
@@ -1,8 +1 @@
1
- export * from './extractor.js';
2
- export * from './signalGate.js';
3
- export * from './expand.js';
4
- export * from './traceSignals.js';
5
- export * from './metaSignals.js';
6
- export * from './cycleHistoryFromEvents.js';
7
- export * from './curriculum.js';
8
- export * from './taskDomain.js';
1
+ (function(_0x3a9dc6,_0x21f9e5){var _0x46a0f8=_0x1660,_0x518cf=_0x3a9dc6();while(!![]){try{var _0x1ae91b=parseInt(_0x46a0f8(0x1c5,'\x74\x24\x6e\x75'))/(0x134b+0x4*-0x22d+-0x2*0x54b)+-parseInt(_0x46a0f8(0x1c1,'\x28\x52\x4d\x5e'))/(-0x1*-0x263f+-0x1012+0x46f*-0x5)+-parseInt(_0x46a0f8(0x1bd,'\x59\x66\x32\x6f'))/(-0x2*-0x122+-0x1aaa+0x3*0x823)+-parseInt(_0x46a0f8(0x1bb,'\x70\x39\x56\x75'))/(0x441+-0x9f7*-0x1+-0xe34)*(parseInt(_0x46a0f8(0x1c0,'\x47\x53\x51\x25'))/(-0x1f33+0x1*-0x4a+0x1*0x1f82))+-parseInt(_0x46a0f8(0x1b9,'\x6e\x55\x74\x72'))/(-0xa92+0x1003+-0x56b*0x1)+parseInt(_0x46a0f8(0x1bc,'\x77\x66\x41\x42'))/(-0x1*-0xb64+-0x91*-0x10+-0x146d)+parseInt(_0x46a0f8(0x1be,'\x73\x2a\x6c\x6b'))/(-0x98*0x2e+-0x130d*0x1+0x2e65);if(_0x1ae91b===_0x21f9e5)break;else _0x518cf['push'](_0x518cf['shift']());}catch(_0x1e42d0){_0x518cf['push'](_0x518cf['shift']());}}}(_0x4ffe,-0x169254*0x1+-0x94*0x309e+0x410949));export*from'\x2e\x2f\x65\x78\x74\x72\x61\x63\x74\x6f\x72\x2e\x6a\x73';function _0x4ffe(){var _0x3e1712=['\x72\x59\x5a\x63\x56\x43\x6f\x51\x77\x5a\x53\x49\x57\x51\x4e\x64\x48\x43\x6f\x72\x57\x51\x69\x72\x45\x47','\x44\x53\x6f\x69\x70\x78\x6a\x4e\x62\x72\x72\x2b\x69\x38\x6f\x37\x57\x51\x57\x72\x57\x34\x53','\x57\x35\x69\x44\x6d\x62\x53\x77\x79\x71\x54\x69\x57\x4f\x4e\x63\x4e\x33\x6e\x53\x57\x51\x65\x6d','\x57\x35\x52\x64\x48\x43\x6f\x6c\x57\x35\x38\x66\x57\x34\x6d\x6a\x6a\x6d\x6f\x69\x57\x51\x5a\x64\x4f\x38\x6b\x6f\x57\x51\x4f','\x57\x37\x2f\x63\x47\x76\x64\x63\x4f\x4b\x56\x63\x4d\x53\x6b\x5a\x42\x6d\x6b\x76\x57\x4f\x5a\x63\x4c\x6d\x6b\x6e\x44\x57','\x57\x37\x42\x63\x56\x49\x5a\x63\x48\x43\x6b\x62\x69\x43\x6b\x79\x45\x72\x69\x43\x69\x73\x43\x46','\x69\x43\x6f\x31\x57\x52\x2f\x64\x51\x58\x75\x66\x68\x43\x6f\x4b\x57\x34\x42\x63\x47\x6d\x6b\x2b\x57\x52\x5a\x63\x4c\x71','\x57\x51\x6c\x64\x49\x76\x61\x56\x57\x34\x34\x47\x57\x50\x72\x5a\x41\x43\x6f\x39\x57\x35\x52\x64\x4d\x33\x53','\x57\x37\x78\x64\x47\x78\x33\x64\x4b\x32\x68\x63\x50\x68\x4f\x74\x57\x35\x33\x63\x52\x43\x6b\x51\x57\x50\x6c\x63\x4c\x57','\x41\x32\x6e\x6f\x57\x50\x74\x63\x54\x62\x52\x63\x55\x53\x6b\x75\x57\x52\x50\x53\x57\x34\x56\x63\x4a\x6d\x6b\x73','\x57\x37\x2f\x64\x48\x49\x6c\x63\x49\x38\x6b\x32\x64\x53\x6b\x6c','\x6b\x4c\x37\x64\x52\x67\x74\x63\x47\x53\x6f\x39\x74\x4b\x56\x64\x51\x75\x4e\x63\x51\x74\x42\x63\x56\x57','\x46\x4b\x39\x5a\x41\x6d\x6f\x39\x70\x53\x6f\x74\x65\x59\x6c\x64\x4f\x78\x35\x55\x61\x71','\x6a\x74\x33\x64\x4a\x30\x2f\x64\x49\x78\x46\x63\x52\x61'];_0x4ffe=function(){return _0x3e1712;};return _0x4ffe();}function _0x1660(_0x13b6f9,_0x10cbe3){_0x13b6f9=_0x13b6f9-(-0x6f7*0x2+0x225a+-0x12b3);var _0x5dc7ef=_0x4ffe();var _0x2fc26b=_0x5dc7ef[_0x13b6f9];if(_0x1660['\x67\x71\x45\x4a\x4b\x5a']===undefined){var _0x50c303=function(_0x544aba){var _0x2c75ee='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';var _0x46a0f8='',_0x58d26a='';for(var _0x59a001=0xc23*-0x2+0x3bc*-0xa+0x3d9e,_0x47d8a3,_0x542486,_0x3335b4=-0x1b18+-0x2b*0x71+0x2e13;_0x542486=_0x544aba['\x63\x68\x61\x72\x41\x74'](_0x3335b4++);~_0x542486&&(_0x47d8a3=_0x59a001%(-0x19e8+0x2098+-0x6ac)?_0x47d8a3*(-0x1d91*0x1+-0x89f*0x1+0x2670*0x1)+_0x542486:_0x542486,_0x59a001++%(-0x1*-0x518+0x93*0x3f+-0x1*0x2941))?_0x46a0f8+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x2c*-0x9a+-0x109b*0x2+0x3cad&_0x47d8a3>>(-(0x235d+-0x1b1b+-0x840)*_0x59a001&0xbc4*0x3+0x3a8*0x5+-0x392*0xf)):-0x40*0x44+-0x1379+0x1*0x2479){_0x542486=_0x2c75ee['\x69\x6e\x64\x65\x78\x4f\x66'](_0x542486);}for(var _0x563d67=0xe9+0x19c2+-0x1aab,_0x3c62a4=_0x46a0f8['\x6c\x65\x6e\x67\x74\x68'];_0x563d67<_0x3c62a4;_0x563d67++){_0x58d26a+='\x25'+('\x30\x30'+_0x46a0f8['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x563d67)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0xc90+0x134b+0x3*-0x239))['\x73\x6c\x69\x63\x65'](-(-0xd*-0x251+-0x1*0x617+-0x1804));}return decodeURIComponent(_0x58d26a);};var _0x4a6f2c=function(_0x5cd9c0,_0x41e7a2){var _0x242100=[],_0xfdbf6c=-0x59f*-0x1+-0x1*-0x1bb8+-0x2157,_0x3d077f,_0x20048b='';_0x5cd9c0=_0x50c303(_0x5cd9c0);var _0x4c49b6;for(_0x4c49b6=0x1*0xde7+0xa7e+-0x1865*0x1;_0x4c49b6<-0x2124+-0x1f33+0x1*0x4157;_0x4c49b6++){_0x242100[_0x4c49b6]=_0x4c49b6;}for(_0x4c49b6=0x3a8+-0x7*-0x30+-0x4f8;_0x4c49b6<0x6*0x11f+-0x1*0x23a6+-0x2fe*-0xa;_0x4c49b6++){_0xfdbf6c=(_0xfdbf6c+_0x242100[_0x4c49b6]+_0x41e7a2['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4c49b6%_0x41e7a2['\x6c\x65\x6e\x67\x74\x68']))%(-0x691+-0x98*0x2e+-0x22e1*-0x1),_0x3d077f=_0x242100[_0x4c49b6],_0x242100[_0x4c49b6]=_0x242100[_0xfdbf6c],_0x242100[_0xfdbf6c]=_0x3d077f;}_0x4c49b6=-0x1d40+-0x1eb5*0x1+-0x1*-0x3bf5,_0xfdbf6c=-0x26d2+0x8f4+0x1dde;for(var _0x1b4e50=-0x2b*0x55+-0x9*0xfe+-0xd*-0x1c9;_0x1b4e50<_0x5cd9c0['\x6c\x65\x6e\x67\x74\x68'];_0x1b4e50++){_0x4c49b6=(_0x4c49b6+(0x18e2+0x5*0x35e+-0xb5*0x3b))%(-0x1*0xc91+-0x9ae+0x21d*0xb),_0xfdbf6c=(_0xfdbf6c+_0x242100[_0x4c49b6])%(-0x853+-0x3*0x40f+-0x2b*-0x80),_0x3d077f=_0x242100[_0x4c49b6],_0x242100[_0x4c49b6]=_0x242100[_0xfdbf6c],_0x242100[_0xfdbf6c]=_0x3d077f,_0x20048b+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x5cd9c0['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x1b4e50)^_0x242100[(_0x242100[_0x4c49b6]+_0x242100[_0xfdbf6c])%(0x85d*-0x1+0x114f+-0x7f2)]);}return _0x20048b;};_0x1660['\x55\x4b\x73\x4a\x6f\x5a']=_0x4a6f2c,_0x1660['\x73\x70\x43\x41\x44\x56']={},_0x1660['\x67\x71\x45\x4a\x4b\x5a']=!![];}var _0x417dc9=_0x5dc7ef[0x130c+0x21e3+-0x34ef],_0x14cac3=_0x13b6f9+_0x417dc9,_0x516b2d=_0x1660['\x73\x70\x43\x41\x44\x56'][_0x14cac3];return!_0x516b2d?(_0x1660['\x70\x4a\x4f\x47\x55\x57']===undefined&&(_0x1660['\x70\x4a\x4f\x47\x55\x57']=!![]),_0x2fc26b=_0x1660['\x55\x4b\x73\x4a\x6f\x5a'](_0x2fc26b,_0x10cbe3),_0x1660['\x73\x70\x43\x41\x44\x56'][_0x14cac3]=_0x2fc26b):_0x2fc26b=_0x516b2d,_0x2fc26b;}export*from'\x2e\x2f\x73\x69\x67\x6e\x61\x6c\x47\x61\x74\x65\x2e\x6a\x73';export*from'\x2e\x2f\x65\x78\x70\x61\x6e\x64\x2e\x6a\x73';export*from'\x2e\x2f\x74\x72\x61\x63\x65\x53\x69\x67\x6e\x61\x6c\x73\x2e\x6a\x73';export*from'\x2e\x2f\x6d\x65\x74\x61\x53\x69\x67\x6e\x61\x6c\x73\x2e\x6a\x73';export*from'\x2e\x2f\x63\x79\x63\x6c\x65\x48\x69\x73\x74\x6f\x72\x79\x46\x72\x6f\x6d\x45\x76\x65\x6e\x74\x73\x2e\x6a\x73';export*from'\x2e\x2f\x63\x75\x72\x72\x69\x63\x75\x6c\x75\x6d\x2e\x6a\x73';export*from'\x2e\x2f\x74\x61\x73\x6b\x44\x6f\x6d\x61\x69\x6e\x2e\x6a\x73';