@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.
- package/dist/algo/antiDistill.js +1 -167
- package/dist/algo/bans.js +1 -33
- package/dist/algo/candidateAssembly.js +1 -273
- package/dist/algo/capabilityCandidates.js +1 -146
- package/dist/algo/confidence.js +1 -196
- package/dist/algo/conversationSniffer.js +1 -149
- package/dist/algo/cycleEngine.js +1 -625
- package/dist/algo/cycleFailureClassifier.js +1 -112
- package/dist/algo/epigenetics.js +1 -41
- package/dist/algo/evolutionEvent.js +1 -24
- package/dist/algo/exploration.js +1 -68
- package/dist/algo/geneHealth.js +1 -17
- package/dist/algo/geneIntake.js +1 -128
- package/dist/algo/genePromotion.js +1 -53
- package/dist/algo/geneSelection.js +1 -546
- package/dist/algo/index.js +1 -22
- package/dist/algo/memoryGraph.js +1 -86
- package/dist/algo/mutation.js +1 -22
- package/dist/algo/orchestrator.js +1 -87
- package/dist/algo/publishEligibility.js +1 -52
- package/dist/algo/solidify.js +1 -63
- package/dist/algo/strategyPresets.js +1 -61
- package/dist/algo/ucb1.js +1 -156
- package/dist/benchmark/antiGeneBenchmark.js +1 -252
- package/dist/benchmark/antiGeneImpact.js +1 -34
- package/dist/benchmark/antiGeneRollout.js +1 -269
- package/dist/benchmark/benchmark.js +1 -26
- package/dist/benchmark/evolutionThesisSolver.js +1 -41
- package/dist/benchmark/index.js +1 -7
- package/dist/benchmark/selectionFlatAbstention.js +1 -481
- package/dist/benchmark/thesis.js +1 -150
- package/dist/benchmark/triggerShift.js +1 -106
- package/dist/cycle/cycleTimeline.js +1 -74
- package/dist/cycle/index.js +1 -2
- package/dist/cycle/stateMachine.js +1 -25
- package/dist/hub/agentDirectory.js +1 -104
- package/dist/hub/assetCallLog.js +1 -195
- package/dist/hub/bindings.js +1 -121
- package/dist/hub/capability.js +1 -1
- package/dist/hub/conversationDistiller.js +1 -264
- package/dist/hub/fake.js +1 -70
- package/dist/hub/hubReview.js +1 -106
- package/dist/hub/index.js +1 -11
- package/dist/hub/ingest.js +1 -15
- package/dist/hub/questionGenerator.js +1 -408
- package/dist/hub/reuseDecision.js +1 -127
- package/dist/hub/sanitize.js +1 -322
- package/dist/material/boundary.js +1 -14
- package/dist/material/consumer.js +1 -55
- package/dist/material/emit.js +1 -52
- package/dist/material/factory.js +1 -25
- package/dist/material/index.js +1 -9
- package/dist/material/materialArchive.js +1 -466
- package/dist/material/materialStore.js +1 -69
- package/dist/material/sampling.js +1 -39
- package/dist/material/sources.js +1 -33
- package/dist/material/watermark.js +1 -76
- package/dist/personality/drift.js +1 -106
- package/dist/personality/events.js +1 -37
- package/dist/personality/evolveOps.js +1 -93
- package/dist/personality/index.js +1 -11
- package/dist/personality/mutate.js +1 -39
- package/dist/personality/pivot.js +1 -22
- package/dist/personality/prompt.js +1 -62
- package/dist/personality/riskGate.js +1 -80
- package/dist/personality/schema.js +1 -119
- package/dist/personality/select.js +1 -71
- package/dist/personality/stats.js +1 -82
- package/dist/personality/store.js +1 -92
- package/dist/schema/common.js +1 -17
- package/dist/schema/evolutionGraph.js +1 -187
- package/dist/schema/index.js +1 -6
- package/dist/schema/material.js +1 -50
- package/dist/schema/problem.js +1 -45
- package/dist/schema/proofOfWork.js +1 -9
- package/dist/schema/signal.js +1 -19
- package/dist/signals/curriculum.js +1 -202
- package/dist/signals/cycleHistoryFromEvents.js +1 -105
- package/dist/signals/expand.js +1 -293
- package/dist/signals/extractor.js +1 -82
- package/dist/signals/index.js +1 -8
- package/dist/signals/metaSignals.js +1 -200
- package/dist/signals/signalGate.js +1 -40
- package/dist/signals/taskDomain.js +1 -43
- package/dist/signals/traceSignals.js +1 -123
- package/dist/strategy/constraintAblation.js +1 -2820
- package/dist/strategy/constraintAblationPredicates.js +1 -339
- package/dist/strategy/experiment.js +1 -63
- package/dist/strategy/index.js +1 -3
- package/dist/strategy/strategyPoint.js +1 -23
- package/package.json +1 -1
|
@@ -1,112 +1 @@
|
|
|
1
|
-
// Local root-cause triage for cycle failures (ported from v1 src/gep/issueReporter.js: classifyFailure, V1 PR #279).
|
|
2
|
-
//
|
|
3
|
-
// V1 #279 split signal-side (zero-blast cycles no longer feed failure-loop) from issue-reporter-side (triage host vs.
|
|
4
|
-
// evolver faults before opening a public issue). V2 #216 already ported the signal-side via the inert-gene path
|
|
5
|
-
// (producedValue===false → 'inert' in confidence/inertBan). This module is the missing issue-reporter half: it
|
|
6
|
-
// classifies a cycle failure into one of four buckets so downstream consumers (CLI/issue-reporter, hub UI, telemetry)
|
|
7
|
-
// can split confidently-host-side failures from genuine local-gene failures.
|
|
8
|
-
//
|
|
9
|
-
// Pure function — same input shape V1 used (signals, recentEvents, sessionLog). Inert-handling in cycleEngine
|
|
10
|
-
// (#216) is untouched; if the cycle engine threads context here at the failed-write site, the classification is
|
|
11
|
-
// written to the cycle.failed event payload as `failure_class`. Otherwise it is purely opt-in / advisory.
|
|
12
|
-
import { isDistilledGeneId } from './geneIntake.js';
|
|
13
|
-
// "[NO SESSION LOGS FOUND]" et al. — the host gave evolver nothing to evolve from.
|
|
14
|
-
const HOST_NO_TRANSCRIPT_RE = /\[no session logs? found\]|no session log|no transcript/i;
|
|
15
|
-
// Interactive runner gates can stop execution before the provider is invoked. They still belong to the
|
|
16
|
-
// host_provider_error compatibility bucket because the local gene never had a chance to run.
|
|
17
|
-
const HOST_RUNNER_ERR_RE = /Workspace Trust Required/i;
|
|
18
|
-
// Host LLM-provider errors. None of these strings are emitted by evolver core (v1 #279 verified the same;
|
|
19
|
-
// keeping the regex byte-for-byte equivalent), so their presence means the host Agent's provider call failed.
|
|
20
|
-
const HOST_PROVIDER_ERR_RE = /\bLLM ERROR\b|\bMaxTokens\b|field MaxTokens|max_tokens[^\n]{0,24}invalid|insufficient_quota|invalid_api_key|\brate limit(?:ed| exceeded)?\b|quota exceeded|context length exceeded|maximum context length|disabled Claude subscription access|Use an Anthropic API key|not authenticated|authentication required|login required|not logged in/i;
|
|
21
|
-
// Locality prefixes a "locally-generated" gene id can carry:
|
|
22
|
-
// - `gene_distilled_` — the namespace V2 mints for every intaken gene (geneIntake.DISTILLED_ID_PREFIX,
|
|
23
|
-
// surfaced via isDistilledGeneId). NB this is a NAMESPACE marker now, not a provenance tag: the authoritative
|
|
24
|
-
// source is generation_meta (V1 #302, read via geneGenerationSource), but this call site only has a gene id, so
|
|
25
|
-
// it falls back to the prefix. Without this the whole `local_gene_no_blast` bucket never fired for real V2 genes.
|
|
26
|
-
// - `gene_auto_` — V1-only legacy form (V2 never produces it); kept so V1-shaped inputs still match.
|
|
27
|
-
// - `sha256:` — a content asset_id (not a logical gene id); kept for back-compat / loose callers.
|
|
28
|
-
function isLocalGeneratedGene(geneId) {
|
|
29
|
-
return isDistilledGeneId(geneId) || /^sha256:/.test(geneId) || /^gene_auto_/.test(geneId);
|
|
30
|
-
}
|
|
31
|
-
function eventBlast(e) {
|
|
32
|
-
return e.blast_radius ?? e.blastRadius;
|
|
33
|
-
}
|
|
34
|
-
function isZeroBlast(e) {
|
|
35
|
-
const br = eventBlast(e);
|
|
36
|
-
return Boolean(e.meta?.empty_cycle) || (br !== undefined && br.files === 0 && br.lines === 0);
|
|
37
|
-
}
|
|
38
|
-
// NB: blast={files:0,lines:0} only means "real no-op" when it came from a git_diff proof. solidify.ts forces
|
|
39
|
-
// blast to {0,0} for non-git_diff proofs (artifact_hash/external_receipt/tool_call_trace), where it signals
|
|
40
|
-
// "blast unknown", not "no change". The cycleEngine guard only forwards blastRadius for git_diff proofs, so by
|
|
41
|
-
// the time we see a defined br here it is a true measured zero. If a caller ever passes a non-git_diff blast
|
|
42
|
-
// directly, this would mis-classify a productive run as no-op — keep the git_diff guard at the call site.
|
|
43
|
-
function blastIsZero(br) {
|
|
44
|
-
return br !== undefined && br.files === 0 && br.lines === 0;
|
|
45
|
-
}
|
|
46
|
-
function localNoBlastReason(geneId) {
|
|
47
|
-
return {
|
|
48
|
-
failureClass: 'local_gene_no_blast',
|
|
49
|
-
reason: `locally-generated gene ${geneId.slice(0, 20)}… produces no blast radius`,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Triage a cycle failure into a root-cause bucket. Default-open: if no rule fires, returns 'unclassified',
|
|
54
|
-
* which means "treat this as a real evolver bug" (so unclassified faults are never hidden).
|
|
55
|
-
*
|
|
56
|
-
* Pure — does not read filesystem, env, or events store.
|
|
57
|
-
*/
|
|
58
|
-
export function classifyCycleFailure(opts) {
|
|
59
|
-
const signals = Array.isArray(opts?.signals) ? opts.signals : [];
|
|
60
|
-
const events = Array.isArray(opts?.recentEvents) ? opts.recentEvents : [];
|
|
61
|
-
const hasSessionLog = typeof opts?.sessionLog === 'string';
|
|
62
|
-
const log = hasSessionLog ? opts.sessionLog : undefined;
|
|
63
|
-
// (a) No transcript -> the host gave evolver nothing to evolve from.
|
|
64
|
-
if (hasSessionLog && (!log.trim() || HOST_NO_TRANSCRIPT_RE.test(log))) {
|
|
65
|
-
return { failureClass: 'host_no_transcript', reason: 'no session transcript to evolve from' };
|
|
66
|
-
}
|
|
67
|
-
// (b) Host runner preflight or LLM-provider error surfaced in the transcript.
|
|
68
|
-
const runner = hasSessionLog ? log.match(HOST_RUNNER_ERR_RE) : null;
|
|
69
|
-
if (runner) {
|
|
70
|
-
return { failureClass: 'host_provider_error', reason: `host runner error: ${String(runner[0]).slice(0, 60)}` };
|
|
71
|
-
}
|
|
72
|
-
const prov = hasSessionLog ? log.match(HOST_PROVIDER_ERR_RE) : null;
|
|
73
|
-
if (prov) {
|
|
74
|
-
return { failureClass: 'host_provider_error', reason: `host LLM-provider error: ${String(prov[0]).slice(0, 60)}` };
|
|
75
|
-
}
|
|
76
|
-
// (c-v2) V2 hard-bans/filters local no-op genes instead of emitting a soft ban_gene signal. Use the current
|
|
77
|
-
// failed gene + current blast radius when the engine supplies them, while keeping the legacy ban_gene branch below.
|
|
78
|
-
const currentGeneId = typeof opts?.geneId === 'string' ? opts.geneId : undefined;
|
|
79
|
-
if (currentGeneId && isLocalGeneratedGene(currentGeneId)) {
|
|
80
|
-
if (blastIsZero(opts?.blastRadius))
|
|
81
|
-
return localNoBlastReason(currentGeneId);
|
|
82
|
-
const failedForGene = events.filter((e) => e.outcome?.status === 'failed' && (e.gene === undefined || e.gene === currentGeneId));
|
|
83
|
-
if (failedForGene.length > 0 && failedForGene.every(isZeroBlast))
|
|
84
|
-
return localNoBlastReason(currentGeneId);
|
|
85
|
-
}
|
|
86
|
-
if (!currentGeneId) {
|
|
87
|
-
const failedLocalEvents = events.filter((e) => e.outcome?.status === 'failed' && typeof e.gene === 'string' && isLocalGeneratedGene(e.gene));
|
|
88
|
-
for (const e of failedLocalEvents) {
|
|
89
|
-
if (e.gene && isZeroBlast(e))
|
|
90
|
-
return localNoBlastReason(e.gene);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
// (c) The banned gene is locally generated AND every recent failing cycle changed nothing — a no-op gene,
|
|
94
|
-
// not an evolver bug. (V2 #216 already drops such genes via the inert ban; this is the issue-reporter
|
|
95
|
-
// analogue, classifying after a failure_loop fires anyway.)
|
|
96
|
-
const banned = signals.find((s) => typeof s === 'string' && s.startsWith('ban_gene:'));
|
|
97
|
-
if (banned) {
|
|
98
|
-
const geneId = banned.replace('ban_gene:', '');
|
|
99
|
-
const failed = events.filter((e) => e?.outcome?.status === 'failed');
|
|
100
|
-
const allZeroBlast = failed.length > 0 && failed.every(isZeroBlast);
|
|
101
|
-
if (isLocalGeneratedGene(geneId) && allZeroBlast) {
|
|
102
|
-
return localNoBlastReason(geneId);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
return { failureClass: 'unclassified', reason: '' };
|
|
106
|
-
}
|
|
107
|
-
/** Buckets we are confident are host-side; everything else is default-open (filed / surfaced). */
|
|
108
|
-
export const HOST_SUPPRESS_CLASSES = new Set([
|
|
109
|
-
'host_no_transcript',
|
|
110
|
-
'host_provider_error',
|
|
111
|
-
'local_gene_no_blast',
|
|
112
|
-
]);
|
|
1
|
+
const _0x4867ec=_0x3c4b;(function(_0x5a4f69,_0x3bdb48){const _0x2cc607=_0x3c4b,_0x335ac2=_0x5a4f69();while(!![]){try{const _0x3cecd5=parseInt(_0x2cc607(0x11c,'\x5b\x5b\x31\x52'))/(-0xf9f+-0x2197+0x3137)+-parseInt(_0x2cc607(0x141,'\x67\x71\x5d\x5b'))/(0x198e+0x8a*0x25+-0x9*0x50e)*(parseInt(_0x2cc607(0x152,'\x7a\x75\x6a\x36'))/(-0x1*-0xf1b+-0x1d1+0x21*-0x67))+parseInt(_0x2cc607(0x147,'\x35\x30\x28\x49'))/(0x1*0x26cd+-0x195c+0xd6d*-0x1)+parseInt(_0x2cc607(0x12f,'\x4d\x4a\x53\x71'))/(0x6e+0x2*-0x1051+-0x71*-0x49)*(-parseInt(_0x2cc607(0x10f,'\x69\x71\x4f\x70'))/(0x1453+0xa3*-0x1d+-0x1d6))+-parseInt(_0x2cc607(0x154,'\x49\x4c\x24\x5e'))/(0xa87+-0x4*-0x6d3+-0x25cc)*(-parseInt(_0x2cc607(0xf8,'\x4a\x75\x21\x44'))/(-0x1*-0xe3+0xef*0x25+0x18a*-0x17))+parseInt(_0x2cc607(0xe5,'\x40\x5d\x78\x6b'))/(-0x3e*0x1c+-0xc*0x27c+0x1*0x24a1)+-parseInt(_0x2cc607(0x122,'\x29\x46\x56\x61'))/(0x225+-0x1283+0x1068);if(_0x3cecd5===_0x3bdb48)break;else _0x335ac2['push'](_0x335ac2['shift']());}catch(_0x442abb){_0x335ac2['push'](_0x335ac2['shift']());}}}(_0x5a6f,-0xfc09+0xc1*0x8c9+0xd9cf));import{isDistilledGeneId}from'\x2e\x2f\x67\x65\x6e\x65\x49\x6e\x74\x61\x6b\x65\x2e\x6a\x73';const HOST_NO_TRANSCRIPT_RE=/\[no session logs? found\]|no session log|no transcript/i,HOST_RUNNER_ERR_RE=/Workspace Trust Required/i,HOST_PROVIDER_ERR_RE=/\bLLM ERROR\b|\bMaxTokens\b|field MaxTokens|max_tokens[^\n]{0,24}invalid|insufficient_quota|invalid_api_key|\brate limit(?:ed| exceeded)?\b|quota exceeded|context length exceeded|maximum context length|disabled Claude subscription access|Use an Anthropic API key|not authenticated|authentication required|login required|not logged in/i;function isLocalGeneratedGene(_0x4abef8){const _0x1e8623=_0x3c4b;return isDistilledGeneId(_0x4abef8)||/^sha256:/[_0x1e8623(0x10a,'\x51\x55\x28\x69')](_0x4abef8)||/^gene_auto_/[_0x1e8623(0x14c,'\x48\x44\x79\x67')](_0x4abef8);}function eventBlast(_0xc6b41f){const _0x4bf379=_0x3c4b;return _0xc6b41f[_0x4bf379(0x110,'\x50\x32\x73\x5d')+_0x4bf379(0x144,'\x58\x47\x61\x25')]??_0xc6b41f[_0x4bf379(0x119,'\x78\x56\x71\x79')+_0x4bf379(0xf3,'\x6b\x6f\x7a\x46')];}function isZeroBlast(_0x40948f){const _0x1b0a90=_0x3c4b,_0x593a26=eventBlast(_0x40948f);return Boolean(_0x40948f[_0x1b0a90(0x115,'\x52\x77\x70\x29')]?.[_0x1b0a90(0x106,'\x76\x43\x36\x40')+_0x1b0a90(0x14a,'\x4c\x41\x21\x59')])||_0x593a26!==undefined&&_0x593a26['\x66\x69\x6c\x65\x73']===0x98e*-0x1+-0x2239+0x2bc7&&_0x593a26[_0x1b0a90(0xfe,'\x44\x5b\x4d\x72')]===0x13bd+-0xfa*0x19+0x18f*0x3;}function blastIsZero(_0x43795b){const _0x37904d=_0x3c4b;return _0x43795b!==undefined&&_0x43795b[_0x37904d(0x114,'\x6c\x38\x38\x79')]===0x1f*-0x3e+-0x2*0x33e+0xdfe&&_0x43795b['\x6c\x69\x6e\x65\x73']===0x17ce+0x3*0x887+-0x3163;}function _0x5a6f(){const _0x254461=['\x57\x52\x74\x64\x51\x6d\x6b\x36\x77\x72\x6a\x79\x65\x53\x6b\x54','\x67\x74\x6d\x51\x65\x48\x68\x63\x55\x68\x5a\x63\x55\x57','\x57\x34\x34\x45\x66\x66\x4c\x35\x69\x62\x71\x4c','\x78\x43\x6f\x76\x57\x4f\x57\x35\x57\x34\x4c\x52\x6f\x47\x47','\x65\x66\x6d\x73\x70\x48\x54\x73\x6a\x43\x6f\x34','\x66\x72\x72\x63\x66\x30\x69','\x57\x52\x56\x64\x4f\x53\x6b\x4e\x73\x61','\x6b\x43\x6f\x39\x6b\x57\x2f\x64\x4c\x47','\x57\x52\x4e\x64\x4a\x43\x6f\x36\x57\x35\x66\x77\x57\x36\x56\x63\x4c\x71','\x57\x35\x4e\x64\x48\x43\x6f\x74\x57\x51\x65','\x76\x75\x30\x79\x72\x72\x61\x63\x62\x65\x4c\x34\x6a\x53\x6b\x6c\x64\x47','\x71\x6d\x6b\x30\x72\x6d\x6b\x56\x57\x52\x4e\x64\x50\x43\x6b\x58\x57\x4f\x6d','\x78\x74\x4a\x63\x4b\x38\x6f\x32\x57\x4f\x70\x63\x47\x4e\x53\x2b','\x57\x50\x74\x63\x50\x49\x37\x64\x53\x53\x6b\x65\x41\x6d\x6f\x46\x57\x51\x79','\x57\x50\x78\x64\x53\x49\x52\x64\x54\x6d\x6b\x64\x44\x61','\x57\x4f\x2f\x64\x53\x38\x6f\x32\x6c\x38\x6f\x51\x57\x51\x39\x5a\x57\x34\x43','\x63\x77\x76\x2b\x74\x30\x52\x63\x4d\x38\x6b\x75\x6d\x47','\x57\x50\x48\x79\x57\x50\x44\x4e','\x64\x57\x54\x51\x62\x4c\x76\x74\x68\x57','\x57\x51\x69\x62\x57\x36\x33\x63\x55\x43\x6f\x37\x57\x36\x74\x63\x52\x74\x71','\x57\x36\x4e\x64\x4c\x53\x6f\x6e\x57\x50\x6c\x64\x55\x61','\x57\x51\x64\x64\x47\x53\x6f\x67\x6d\x49\x33\x63\x4e\x47','\x57\x50\x6c\x64\x4b\x47\x42\x64\x47\x53\x6b\x55\x6d\x47','\x57\x34\x47\x52\x57\x4f\x4c\x34\x57\x37\x70\x64\x4b\x53\x6f\x63\x6d\x57','\x69\x4e\x39\x69\x62\x71','\x57\x36\x37\x63\x54\x38\x6f\x38\x67\x71\x6d\x79\x75\x38\x6b\x41\x57\x4f\x78\x63\x49\x53\x6f\x75\x57\x34\x43\x49','\x57\x50\x70\x64\x4c\x47\x68\x64\x49\x38\x6b\x63\x6d\x47','\x57\x4f\x58\x68\x73\x71\x30\x5a\x74\x65\x6d\x34\x71\x76\x70\x64\x51\x38\x6f\x4f\x57\x37\x53','\x65\x6d\x6f\x39\x57\x37\x4a\x63\x4f\x66\x42\x64\x4d\x72\x6d','\x73\x58\x76\x79\x57\x4f\x7a\x4c\x57\x37\x78\x63\x48\x59\x6a\x6f\x57\x36\x65\x32','\x64\x38\x6b\x4f\x76\x38\x6b\x5a\x57\x52\x56\x64\x4e\x53\x6b\x30\x57\x4f\x69','\x66\x30\x4b\x45\x57\x34\x79','\x57\x52\x68\x64\x4d\x53\x6f\x76\x6b\x64\x46\x63\x50\x53\x6b\x4f\x57\x34\x38','\x57\x52\x6d\x71\x65\x66\x76\x43\x70\x38\x6b\x46\x57\x50\x4b','\x57\x35\x4c\x2f\x57\x52\x4b\x39\x6c\x77\x4a\x64\x56\x38\x6f\x47\x57\x52\x72\x53\x57\x36\x64\x63\x4c\x38\x6b\x6d','\x46\x38\x6b\x5a\x57\x34\x4f\x5a\x41\x53\x6f\x76\x57\x50\x35\x49','\x41\x74\x50\x66\x74\x38\x6f\x69\x77\x38\x6f\x6c\x44\x61','\x57\x4f\x78\x64\x51\x49\x34','\x78\x38\x6f\x73\x61\x53\x6f\x71\x72\x31\x34\x53','\x72\x6d\x6f\x63\x62\x43\x6f\x68','\x57\x4f\x34\x48\x57\x37\x48\x36','\x79\x43\x6f\x7a\x44\x67\x4f\x5a\x57\x36\x5a\x64\x50\x53\x6b\x2b','\x57\x51\x78\x64\x4e\x43\x6f\x39\x57\x34\x66\x71\x57\x36\x4e\x63\x4e\x4b\x34','\x7a\x49\x79\x72\x68\x6d\x6f\x46\x73\x43\x6f\x43\x44\x61','\x42\x78\x75\x32\x57\x50\x62\x35\x57\x34\x56\x64\x4d\x47','\x73\x71\x35\x77\x46\x78\x79\x73\x79\x53\x6f\x66\x6d\x6d\x6b\x34\x77\x43\x6f\x6e\x70\x71','\x57\x50\x78\x64\x53\x4a\x4e\x64\x51\x43\x6b\x79\x79\x61','\x57\x4f\x4c\x66\x71\x71\x31\x69\x6c\x58\x4b\x44\x42\x75\x6d','\x61\x78\x4b\x54\x57\x4f\x48\x32\x57\x4f\x4e\x63\x53\x38\x6f\x35','\x57\x34\x4c\x30\x57\x35\x4f','\x57\x4f\x4f\x38\x57\x37\x47','\x57\x35\x46\x64\x51\x78\x42\x63\x53\x6d\x6f\x35\x72\x57','\x57\x52\x47\x30\x57\x52\x35\x57\x57\x52\x71','\x6d\x77\x37\x63\x4d\x48\x4f\x30\x57\x52\x43','\x6d\x53\x6f\x6d\x78\x47','\x57\x37\x7a\x4b\x57\x34\x42\x64\x54\x38\x6b\x49\x64\x53\x6b\x66\x61\x4e\x66\x59\x70\x38\x6b\x37\x57\x50\x43','\x57\x37\x66\x6c\x41\x73\x4f\x6d\x57\x52\x6c\x64\x55\x33\x57','\x73\x71\x48\x6c\x57\x50\x4a\x64\x53\x53\x6f\x63\x72\x61','\x57\x35\x37\x63\x50\x38\x6b\x52\x71\x43\x6b\x36\x57\x37\x50\x2f\x57\x34\x70\x63\x51\x43\x6b\x6b\x42\x73\x53','\x74\x43\x6f\x34\x57\x34\x2f\x64\x4e\x43\x6f\x6d','\x75\x49\x33\x63\x48\x62\x6a\x50\x57\x50\x4f\x61\x57\x50\x38','\x63\x38\x6b\x4c\x78\x38\x6b\x53\x57\x51\x52\x64\x51\x61','\x57\x35\x4e\x64\x52\x32\x4e\x63\x53\x6d\x6f\x64\x72\x43\x6b\x4e\x57\x50\x38','\x70\x38\x6f\x4e\x6a\x58\x37\x64\x49\x47','\x6c\x6d\x6f\x6d\x74\x58\x2f\x63\x51\x43\x6f\x53\x57\x36\x78\x64\x4a\x71','\x68\x43\x6b\x49\x71\x6d\x6b\x51\x57\x51\x46\x63\x53\x4c\x6d','\x57\x34\x78\x64\x53\x4e\x56\x63\x51\x53\x6f\x56\x76\x53\x6b\x4e\x57\x50\x4b','\x75\x43\x6f\x53\x57\x35\x4a\x63\x4e\x30\x6c\x64\x48\x57','\x76\x53\x6f\x76\x67\x43\x6f\x45','\x44\x4d\x75\x31','\x61\x62\x66\x34\x64\x78\x65','\x57\x4f\x68\x64\x4f\x59\x78\x64\x50\x71','\x61\x6d\x6b\x4c\x71\x53\x6b\x4a\x57\x51\x43','\x66\x62\x44\x7a','\x72\x63\x66\x38\x57\x35\x4b\x57\x57\x52\x37\x63\x4b\x43\x6f\x6d\x57\x37\x38\x4d\x57\x36\x34','\x69\x38\x6b\x62\x6f\x6d\x6f\x46\x6e\x43\x6f\x78','\x6e\x33\x76\x75','\x71\x43\x6f\x69\x57\x50\x79\x47','\x57\x36\x52\x63\x56\x38\x6b\x65\x57\x50\x68\x64\x55\x64\x37\x63\x55\x71\x47','\x75\x43\x6f\x53\x57\x34\x56\x63\x47\x4c\x4e\x64\x4b\x57','\x75\x53\x6f\x39\x57\x34\x4a\x64\x4d\x38\x6f\x41','\x57\x52\x74\x64\x4b\x38\x6f\x41\x70\x47','\x77\x43\x6f\x58\x57\x34\x4a\x64\x4d\x57','\x77\x43\x6f\x76\x57\x50\x57\x53\x57\x4f\x76\x6c\x64\x32\x47','\x57\x35\x43\x7a\x75\x65\x48\x35\x68\x48\x38\x4b','\x79\x74\x57\x6a\x73\x6d\x6f\x69\x77\x47','\x57\x36\x66\x74\x42\x5a\x71\x75','\x64\x38\x6b\x4c\x77\x6d\x6b\x46\x57\x51\x4a\x64\x51\x43\x6b\x37\x57\x4f\x6d','\x6b\x58\x64\x63\x4c\x4e\x5a\x63\x4d\x53\x6f\x38\x67\x4e\x69','\x64\x64\x6d\x4e\x65\x47','\x6d\x38\x6f\x4b\x6d\x71','\x61\x66\x71\x7a\x57\x35\x57\x38\x57\x35\x65','\x57\x51\x46\x64\x4b\x38\x6f\x68\x6c\x57','\x72\x38\x6b\x72\x57\x37\x30\x35\x73\x61','\x57\x34\x2f\x64\x50\x68\x6d','\x57\x37\x78\x64\x56\x53\x6b\x76\x57\x4f\x64\x64\x4f\x47','\x46\x67\x69\x56\x57\x4f\x58\x53\x57\x4f\x4a\x64\x49\x32\x79','\x57\x52\x43\x76\x7a\x48\x71\x6b\x57\x50\x6c\x64\x4f\x4e\x69','\x57\x36\x6a\x6d\x68\x78\x72\x70\x6d\x38\x6b\x68\x57\x50\x38','\x57\x50\x50\x79\x57\x4f\x44\x57','\x57\x4f\x4a\x64\x4f\x58\x74\x64\x52\x53\x6b\x7a\x77\x6d\x6f\x70\x57\x37\x61','\x62\x67\x71\x4f\x57\x50\x39\x57\x57\x51\x78\x63\x47\x43\x6f\x49','\x72\x49\x68\x63\x49\x58\x6a\x30','\x57\x35\x79\x52\x57\x4f\x35\x51','\x7a\x74\x4b\x65\x74\x38\x6f\x7a\x45\x53\x6f\x7a\x45\x71','\x34\x4f\x6b\x44\x42\x53\x6b\x6b\x45\x43\x6f\x31\x57\x35\x4e\x64\x4d\x72\x57','\x44\x33\x38\x31\x57\x4f\x48\x68\x57\x35\x4a\x64\x4a\x77\x79','\x57\x50\x4a\x63\x50\x49\x44\x6f\x57\x34\x6c\x64\x4d\x43\x6f\x34\x6a\x57','\x57\x4f\x78\x64\x56\x43\x6f\x52\x62\x6d\x6b\x54\x57\x4f\x7a\x72\x57\x36\x38','\x68\x76\x69\x76\x6f\x71','\x76\x4a\x75\x4a\x67\x71\x2f\x63\x55\x43\x6b\x7a\x70\x53\x6f\x53\x57\x51\x52\x64\x4a\x71','\x64\x4c\x75\x66\x6c\x5a\x7a\x39\x6d\x53\x6f\x4c','\x57\x50\x5a\x63\x4b\x53\x6b\x78\x57\x36\x6c\x63\x53\x38\x6f\x2b\x57\x52\x52\x64\x4e\x77\x43\x7a\x61\x38\x6b\x67\x57\x50\x65','\x76\x53\x6f\x67\x68\x38\x6f\x46\x74\x76\x43','\x78\x43\x6f\x76\x57\x4f\x57\x35\x57\x52\x7a\x6a\x67\x72\x4f','\x74\x63\x33\x63\x49\x72\x62\x5a\x57\x4f\x79','\x70\x6d\x6f\x50\x57\x50\x39\x49\x6c\x43\x6b\x2f\x57\x34\x54\x68\x57\x36\x4a\x63\x4f\x38\x6b\x39\x72\x49\x69','\x57\x52\x78\x64\x53\x53\x6b\x36','\x57\x50\x70\x64\x4c\x47\x68\x64\x49\x57'];_0x5a6f=function(){return _0x254461;};return _0x5a6f();}function localNoBlastReason(_0x4f12ec){const _0x39297d=_0x3c4b;return{'\x66\x61\x69\x6c\x75\x72\x65\x43\x6c\x61\x73\x73':_0x39297d(0xee,'\x41\x33\x6a\x54')+_0x39297d(0x112,'\x4c\x41\x21\x59')+'\x61\x73\x74','\x72\x65\x61\x73\x6f\x6e':_0x39297d(0x101,'\x6e\x6e\x6f\x36')+_0x39297d(0x135,'\x5b\x5b\x31\x52')+'\x64\x20\x67\x65\x6e\x65\x20'+_0x4f12ec[_0x39297d(0xe9,'\x44\x5b\x4d\x72')](-0x9f8*0x2+0xe0*-0x19+0x29d0,0x1b63+-0x26c4+0x7*0x1a3)+(_0x39297d(0x117,'\x52\x77\x70\x29')+'\x65\x73\x20\x6e\x6f\x20\x62\x6c'+_0x39297d(0x150,'\x48\x4d\x6c\x61')+'\x75\x73')};}export function classifyCycleFailure(_0x367621){const _0x47438f=_0x3c4b,_0x36af9f=Array[_0x47438f(0x137,'\x4d\x4a\x53\x71')](_0x367621?.['\x73\x69\x67\x6e\x61\x6c\x73'])?_0x367621[_0x47438f(0xef,'\x78\x73\x4c\x50')]:[],_0x12a920=Array[_0x47438f(0xe7,'\x6c\x23\x74\x63')](_0x367621?.[_0x47438f(0x126,'\x49\x50\x43\x23')+_0x47438f(0x14d,'\x35\x30\x28\x49')])?_0x367621[_0x47438f(0xea,'\x6c\x38\x38\x79')+_0x47438f(0x11b,'\x7a\x75\x6a\x36')]:[],_0x3231e0=typeof _0x367621?.[_0x47438f(0x14f,'\x6a\x45\x68\x4e')+'\x6f\x67']===_0x47438f(0x13a,'\x51\x55\x28\x69'),_0x3cc2e9=_0x3231e0?_0x367621[_0x47438f(0x13c,'\x52\x77\x70\x29')+'\x6f\x67']:undefined;if(_0x3231e0&&(!_0x3cc2e9[_0x47438f(0xfb,'\x6e\x6e\x6f\x36')]()||HOST_NO_TRANSCRIPT_RE[_0x47438f(0x12e,'\x66\x50\x5b\x31')](_0x3cc2e9)))return{'\x66\x61\x69\x6c\x75\x72\x65\x43\x6c\x61\x73\x73':_0x47438f(0x120,'\x6e\x6e\x6f\x36')+'\x74\x72\x61\x6e\x73\x63\x72\x69'+'\x70\x74','\x72\x65\x61\x73\x6f\x6e':_0x47438f(0x149,'\x48\x4d\x6c\x61')+_0x47438f(0x102,'\x49\x4c\x24\x5e')+_0x47438f(0x10e,'\x6b\x6f\x7a\x46')+'\x20\x65\x76\x6f\x6c\x76\x65\x20'+_0x47438f(0xf2,'\x48\x44\x79\x67')};const _0x5f1a18=_0x3231e0?_0x3cc2e9[_0x47438f(0x10d,'\x43\x29\x7a\x44')](HOST_RUNNER_ERR_RE):null;if(_0x5f1a18)return{'\x66\x61\x69\x6c\x75\x72\x65\x43\x6c\x61\x73\x73':_0x47438f(0x118,'\x6b\x6f\x7a\x46')+_0x47438f(0x127,'\x49\x4c\x24\x5e')+_0x47438f(0xf7,'\x4d\x4a\x53\x71'),'\x72\x65\x61\x73\x6f\x6e':_0x47438f(0x125,'\x4d\x49\x5d\x32')+_0x47438f(0x131,'\x5e\x47\x52\x55')+_0x47438f(0xdf,'\x52\x77\x70\x29')+String(_0x5f1a18[-0x263b*-0x1+-0x1c04+0x5*-0x20b])[_0x47438f(0x12c,'\x72\x5e\x25\x35')](-0x1ab1+-0x2f*0x6d+0x175a*0x2,0x412*-0x5+-0x2056+-0x4*-0xd3b)};const _0x18b7a9=_0x3231e0?_0x3cc2e9[_0x47438f(0xf6,'\x4e\x35\x30\x21')](HOST_PROVIDER_ERR_RE):null;if(_0x18b7a9)return{'\x66\x61\x69\x6c\x75\x72\x65\x43\x6c\x61\x73\x73':_0x47438f(0xec,'\x4a\x61\x78\x30')+_0x47438f(0x11d,'\x7a\x75\x6a\x36')+_0x47438f(0xe4,'\x41\x33\x6a\x54'),'\x72\x65\x61\x73\x6f\x6e':_0x47438f(0x11a,'\x76\x62\x4a\x67')+_0x47438f(0x130,'\x4e\x35\x30\x21')+_0x47438f(0x132,'\x4c\x41\x21\x59')+'\x20'+String(_0x18b7a9[0x1df+-0x2*-0x1190+-0x24ff])['\x73\x6c\x69\x63\x65'](0x1a1f+-0x23*-0x97+-0x2ec4,-0x752*0x5+-0x1*-0x63d+0x1e99*0x1)};const _0x18577a=typeof _0x367621?.[_0x47438f(0xe3,'\x55\x76\x37\x70')]===_0x47438f(0xfd,'\x67\x71\x5d\x5b')?_0x367621[_0x47438f(0x13f,'\x36\x77\x66\x31')]:undefined;if(_0x18577a&&isLocalGeneratedGene(_0x18577a)){if('\x66\x69\x53\x79\x56'!==_0x47438f(0xf4,'\x4d\x4a\x53\x71'))return _0x20b5e6[_0x47438f(0x145,'\x51\x55\x28\x69')+_0x47438f(0x111,'\x6f\x5b\x21\x46')]??_0x480d79[_0x47438f(0x116,'\x48\x4d\x6c\x61')+_0x47438f(0x108,'\x72\x5e\x25\x35')];else{if(blastIsZero(_0x367621?.[_0x47438f(0x143,'\x4e\x35\x30\x21')+_0x47438f(0x123,'\x4d\x49\x5d\x32')]))return localNoBlastReason(_0x18577a);const _0xaf0b14=_0x12a920[_0x47438f(0xe1,'\x4a\x61\x78\x30')](_0x83f423=>_0x83f423['\x6f\x75\x74\x63\x6f\x6d\x65']?.['\x73\x74\x61\x74\x75\x73']===_0x47438f(0x13b,'\x36\x77\x66\x31')&&(_0x83f423[_0x47438f(0xff,'\x51\x55\x28\x69')]===undefined||_0x83f423[_0x47438f(0x124,'\x36\x77\x66\x31')]===_0x18577a));if(_0xaf0b14[_0x47438f(0x121,'\x6c\x38\x38\x79')]>0x1650+-0x83f+-0x1*0xe11&&_0xaf0b14[_0x47438f(0x104,'\x69\x71\x4f\x70')](isZeroBlast))return localNoBlastReason(_0x18577a);}}if(!_0x18577a){const _0x539ac2=_0x12a920[_0x47438f(0x103,'\x48\x4d\x6c\x61')](_0x5e6f19=>_0x5e6f19[_0x47438f(0x12d,'\x6a\x45\x68\x4e')]?.[_0x47438f(0xf1,'\x67\x71\x5d\x5b')]===_0x47438f(0x11f,'\x48\x44\x79\x67')&&typeof _0x5e6f19[_0x47438f(0x107,'\x49\x50\x43\x23')]===_0x47438f(0x153,'\x4c\x41\x21\x59')&&isLocalGeneratedGene(_0x5e6f19[_0x47438f(0xf5,'\x4c\x41\x21\x59')]));for(const _0x46bcfe of _0x539ac2){if(_0x46bcfe[_0x47438f(0x13d,'\x33\x28\x74\x4a')]&&isZeroBlast(_0x46bcfe))return localNoBlastReason(_0x46bcfe[_0x47438f(0x12b,'\x4d\x49\x5d\x32')]);}}const _0x5b3653=_0x36af9f['\x66\x69\x6e\x64'](_0x2b68cd=>typeof _0x2b68cd===_0x47438f(0x109,'\x58\x47\x61\x25')&&_0x2b68cd[_0x47438f(0x113,'\x4a\x75\x21\x44')+'\x74\x68'](_0x47438f(0x105,'\x4e\x35\x30\x21')+'\x3a'));if(_0x5b3653){if('\x56\x62\x4e\x6c\x66'!==_0x47438f(0x139,'\x66\x50\x5b\x31')){const _0x1ac574=_0x5b3653[_0x47438f(0x151,'\x6b\x6f\x7a\x46')](_0x47438f(0x134,'\x76\x62\x4a\x67')+'\x3a',''),_0x17d064=_0x12a920[_0x47438f(0xf9,'\x4c\x4f\x4e\x37')](_0x1255a8=>_0x1255a8?.[_0x47438f(0x14b,'\x48\x44\x79\x67')]?.[_0x47438f(0x133,'\x4c\x41\x21\x59')]===_0x47438f(0xeb,'\x4e\x35\x30\x21')),_0x25d986=_0x17d064['\x6c\x65\x6e\x67\x74\x68']>0x1e9d+-0xcf8+-0x11a5&&_0x17d064[_0x47438f(0xed,'\x72\x5e\x25\x35')](isZeroBlast);if(isLocalGeneratedGene(_0x1ac574)&&_0x25d986){if(_0x47438f(0xe2,'\x4f\x58\x75\x6d')===_0x47438f(0x10b,'\x29\x46\x56\x61'))return localNoBlastReason(_0x1ac574);else{if(_0xe375ea[_0x47438f(0x100,'\x44\x5b\x4d\x72')]&&_0x189a51(_0x53dd1c))return _0x185c1d(_0x221c00[_0x47438f(0xf5,'\x4c\x41\x21\x59')]);}}}else return{'\x66\x61\x69\x6c\x75\x72\x65\x43\x6c\x61\x73\x73':_0x47438f(0x129,'\x7a\x75\x6a\x36')+_0x47438f(0x155,'\x4a\x75\x21\x44')+_0x47438f(0x10c,'\x52\x28\x34\x77'),'\x72\x65\x61\x73\x6f\x6e':_0x47438f(0x128,'\x6e\x6e\x6f\x36')+_0x47438f(0x14e,'\x2a\x4b\x6c\x5d')+_0x47438f(0xfc,'\x43\x29\x7a\x44')+'\x20'+_0x2c833f(_0x176548[-0x8*0x40d+-0x6d*0x23+-0xfc5*-0x3])[_0x47438f(0x12a,'\x4d\x4a\x53\x71')](0x227f+0x15b2+-0x3831*0x1,-0xbb1*-0x2+0xc*-0x3+-0x1702)};}return{'\x66\x61\x69\x6c\x75\x72\x65\x43\x6c\x61\x73\x73':_0x47438f(0xe6,'\x69\x71\x4f\x70')+_0x47438f(0x136,'\x6f\x5b\x21\x46'),'\x72\x65\x61\x73\x6f\x6e':''};}function _0x3c4b(_0x2685e7,_0x27c6a2){_0x2685e7=_0x2685e7-(0x1*0x577+0x1324+0xe*-0x1b2);const _0x56ac48=_0x5a6f();let _0x46ef9d=_0x56ac48[_0x2685e7];if(_0x3c4b['\x78\x42\x68\x62\x71\x6f']===undefined){var _0x50584b=function(_0x1e947e){const _0x3c802a='\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 _0x393896='',_0x24e4fa='';for(let _0x175aae=-0x251*-0xb+0x1d*-0x137+0x1a0*0x6,_0x14fcdc,_0x30b5c2,_0x450420=-0x43*-0x56+0x16fe+-0x2d80;_0x30b5c2=_0x1e947e['\x63\x68\x61\x72\x41\x74'](_0x450420++);~_0x30b5c2&&(_0x14fcdc=_0x175aae%(-0x46*-0x49+0x197b+0x1d*-0x191)?_0x14fcdc*(-0x1c29+0x1c05*-0x1+-0x2*-0x1c37)+_0x30b5c2:_0x30b5c2,_0x175aae++%(0x318+-0x13f3+-0x1*-0x10df))?_0x393896+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x1ed*0x5+-0xb3*0xe+0x128&_0x14fcdc>>(-(0x1880+-0x29a+0xc*-0x1d3)*_0x175aae&-0x13*-0xba+0x1*-0x574+-0x1*0x854)):0x1b*0x3e+0x1f1e+-0x25a8){_0x30b5c2=_0x3c802a['\x69\x6e\x64\x65\x78\x4f\x66'](_0x30b5c2);}for(let _0x3320d1=-0xa*-0x52+-0x2*0xc83+0x15d2,_0x50ccc7=_0x393896['\x6c\x65\x6e\x67\x74\x68'];_0x3320d1<_0x50ccc7;_0x3320d1++){_0x24e4fa+='\x25'+('\x30\x30'+_0x393896['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3320d1)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x35*-0x9+-0xccf+0xebc))['\x73\x6c\x69\x63\x65'](-(0x17ab+-0xd7a+-0xa2f));}return decodeURIComponent(_0x24e4fa);};const _0x4ee96f=function(_0x75f49f,_0x511d68){let _0x60207=[],_0x2c4c52=-0x65d*-0x1+0x1a93+0xf8*-0x22,_0x2c7524,_0x501524='';_0x75f49f=_0x50584b(_0x75f49f);let _0x4494dd;for(_0x4494dd=-0xe74+0x10be+-0x24a;_0x4494dd<0x1da4+0x7*-0x2bb+-0x1*0x987;_0x4494dd++){_0x60207[_0x4494dd]=_0x4494dd;}for(_0x4494dd=0x11d6+-0xdfa*-0x2+-0x2dca;_0x4494dd<-0x1a77+-0x6e6*0x2+0x2943;_0x4494dd++){_0x2c4c52=(_0x2c4c52+_0x60207[_0x4494dd]+_0x511d68['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4494dd%_0x511d68['\x6c\x65\x6e\x67\x74\x68']))%(0x360+-0x20e+-0x52),_0x2c7524=_0x60207[_0x4494dd],_0x60207[_0x4494dd]=_0x60207[_0x2c4c52],_0x60207[_0x2c4c52]=_0x2c7524;}_0x4494dd=0x15b2+0x35*0xbb+-0x407*0xf,_0x2c4c52=-0x5f8*0x5+-0x7b1+-0x1*-0x2589;for(let _0x5e598f=-0x2*-0xffb+0x2*0x74f+0x10f*-0x2c;_0x5e598f<_0x75f49f['\x6c\x65\x6e\x67\x74\x68'];_0x5e598f++){_0x4494dd=(_0x4494dd+(0xf29+-0x6*-0x4a9+-0x158f*0x2))%(-0x11c+-0x48b*-0x7+-0x1db1),_0x2c4c52=(_0x2c4c52+_0x60207[_0x4494dd])%(0x54c+-0x1*0x653+0x207),_0x2c7524=_0x60207[_0x4494dd],_0x60207[_0x4494dd]=_0x60207[_0x2c4c52],_0x60207[_0x2c4c52]=_0x2c7524,_0x501524+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x75f49f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5e598f)^_0x60207[(_0x60207[_0x4494dd]+_0x60207[_0x2c4c52])%(0x98e*-0x1+-0x2239+0x2cc7)]);}return _0x501524;};_0x3c4b['\x4d\x47\x6f\x6c\x64\x49']=_0x4ee96f,_0x3c4b['\x64\x76\x6d\x46\x4c\x6a']={},_0x3c4b['\x78\x42\x68\x62\x71\x6f']=!![];}const _0x2aee3d=_0x56ac48[0x13bd+-0xfa*0x19+0x18f*0x3],_0x24adb7=_0x2685e7+_0x2aee3d,_0x4cbdab=_0x3c4b['\x64\x76\x6d\x46\x4c\x6a'][_0x24adb7];return!_0x4cbdab?(_0x3c4b['\x54\x67\x74\x61\x4a\x61']===undefined&&(_0x3c4b['\x54\x67\x74\x61\x4a\x61']=!![]),_0x46ef9d=_0x3c4b['\x4d\x47\x6f\x6c\x64\x49'](_0x46ef9d,_0x27c6a2),_0x3c4b['\x64\x76\x6d\x46\x4c\x6a'][_0x24adb7]=_0x46ef9d):_0x46ef9d=_0x4cbdab,_0x46ef9d;}export const HOST_SUPPRESS_CLASSES=new Set(['\x68\x6f\x73\x74\x5f\x6e\x6f\x5f'+_0x4867ec(0xf0,'\x4a\x61\x78\x30')+'\x70\x74',_0x4867ec(0x138,'\x56\x41\x62\x62')+_0x4867ec(0x148,'\x29\x46\x56\x61')+_0x4867ec(0xfa,'\x33\x28\x74\x4a'),'\x6c\x6f\x63\x61\x6c\x5f\x67\x65'+_0x4867ec(0x112,'\x4c\x41\x21\x59')+_0x4867ec(0xe0,'\x35\x30\x28\x49')]);
|
package/dist/algo/epigenetics.js
CHANGED
|
@@ -1,41 +1 @@
|
|
|
1
|
-
|
|
2
|
-
// derive-from-events model). A gene that fails in the CURRENT environment class (but works elsewhere)
|
|
3
|
-
// should be penalized HERE only, not globally — its global health is untouched. v1 stored marks on the
|
|
4
|
-
// gene asset; v2 derives the penalty from recent per-(gene, env) outcomes at selection time, so no asset
|
|
5
|
-
// mutation and no schema churn. The penalty is subtracted from the gene's selection score; a gene that
|
|
6
|
-
// fails hard in this env falls in ranking (and below the floor → innovate) without being globally banned.
|
|
7
|
-
import { envFingerprintKey } from '../bootstrap/envFingerprint.js';
|
|
8
|
-
export { envFingerprintKey };
|
|
9
|
-
const MIN_ENV_ATTEMPTS = 3; // need this many attempts of the gene in this env before the penalty engages
|
|
10
|
-
const SUPPRESS_FAIL_RATE = 0.7; // fail rate (in this env) at/above which the penalty starts
|
|
11
|
-
const MAX_PENALTY = 0.5; // cap (subtracted from a [0,1]-ish score)
|
|
12
|
-
/**
|
|
13
|
-
* Epigenetic penalty in [0, MAX_PENALTY] for `geneId` in the current `envKey`, from recent per-env outcomes.
|
|
14
|
-
* 0 when there is not enough evidence (< MIN_ENV_ATTEMPTS) or the in-env fail rate is below SUPPRESS_FAIL_RATE;
|
|
15
|
-
* scales linearly from 0 at SUPPRESS_FAIL_RATE up to MAX_PENALTY at a 100% in-env fail rate.
|
|
16
|
-
*/
|
|
17
|
-
export function epigeneticPenaltyForIds(ids, envKey, outcomes) {
|
|
18
|
-
if (!envKey)
|
|
19
|
-
return 0;
|
|
20
|
-
const idSet = new Set(ids.filter((id) => id.length > 0));
|
|
21
|
-
if (idSet.size === 0)
|
|
22
|
-
return 0;
|
|
23
|
-
let attempts = 0;
|
|
24
|
-
let fails = 0;
|
|
25
|
-
for (const o of outcomes) {
|
|
26
|
-
if (!idSet.has(o.geneId) || o.envKey !== envKey)
|
|
27
|
-
continue;
|
|
28
|
-
attempts += 1;
|
|
29
|
-
if (o.status === 'failed')
|
|
30
|
-
fails += 1;
|
|
31
|
-
}
|
|
32
|
-
if (attempts < MIN_ENV_ATTEMPTS)
|
|
33
|
-
return 0;
|
|
34
|
-
const failRate = fails / attempts;
|
|
35
|
-
if (failRate < SUPPRESS_FAIL_RATE)
|
|
36
|
-
return 0;
|
|
37
|
-
return Math.min(MAX_PENALTY, MAX_PENALTY * ((failRate - SUPPRESS_FAIL_RATE) / (1 - SUPPRESS_FAIL_RATE)));
|
|
38
|
-
}
|
|
39
|
-
export function epigeneticPenalty(geneId, envKey, outcomes) {
|
|
40
|
-
return epigeneticPenaltyForIds([geneId], envKey, outcomes);
|
|
41
|
-
}
|
|
1
|
+
function _0x250e(){const _0x1e4c11=['\x6b\x68\x35\x51\x57\x35\x30\x4b\x7a\x71\x30\x47\x57\x35\x47','\x57\x52\x4a\x64\x53\x6d\x6b\x38\x57\x4f\x75\x47\x76\x43\x6b\x32\x45\x63\x43\x45\x71\x61','\x57\x51\x54\x36\x61\x58\x6c\x64\x49\x32\x78\x64\x51\x76\x58\x34\x57\x51\x46\x63\x4b\x78\x48\x4c','\x6a\x38\x6f\x49\x6b\x53\x6f\x4f\x6f\x4b\x53\x58\x57\x50\x46\x63\x4d\x73\x46\x63\x4e\x76\x75\x43','\x78\x6d\x6f\x6e\x57\x51\x56\x63\x54\x53\x6b\x75\x44\x53\x6b\x50\x57\x35\x2f\x63\x47\x71','\x57\x35\x2f\x64\x54\x67\x70\x64\x4f\x6d\x6b\x56\x63\x57','\x63\x30\x71\x37','\x6e\x66\x68\x64\x47\x75\x56\x63\x47\x43\x6b\x65','\x57\x4f\x4a\x63\x52\x64\x70\x63\x56\x6d\x6f\x35\x77\x57\x72\x30\x6a\x31\x4e\x64\x47\x53\x6f\x41','\x46\x6d\x6b\x4c\x57\x37\x74\x63\x4a\x6d\x6f\x4c\x57\x36\x4f\x62\x57\x36\x64\x64\x4d\x61\x42\x64\x48\x6d\x6f\x31','\x57\x36\x72\x6c\x57\x50\x35\x45\x57\x37\x78\x64\x4e\x47','\x57\x4f\x46\x64\x50\x65\x37\x63\x51\x38\x6f\x37\x57\x35\x61','\x74\x53\x6f\x65\x6a\x48\x2f\x63\x49\x76\x74\x64\x48\x4a\x72\x64\x57\x50\x62\x41','\x71\x43\x6f\x67\x6c\x72\x52\x63\x48\x59\x64\x64\x51\x64\x44\x69\x57\x4f\x39\x30\x6d\x57','\x6e\x53\x6b\x52\x57\x52\x42\x64\x54\x38\x6f\x71\x67\x47','\x6a\x6d\x6f\x47\x6a\x6d\x6f\x52\x6f\x75\x72\x67\x57\x52\x74\x63\x53\x58\x70\x63\x4e\x78\x71','\x78\x6d\x6f\x6d\x57\x51\x4a\x64\x4b\x43\x6f\x43\x68\x53\x6b\x36\x57\x36\x70\x63\x4e\x4c\x42\x64\x53\x31\x4f','\x79\x53\x6f\x5a\x57\x36\x37\x63\x55\x38\x6b\x62\x75\x6d\x6b\x62\x57\x37\x42\x64\x4d\x53\x6f\x76\x57\x34\x4b\x6a','\x57\x52\x68\x63\x47\x53\x6b\x30\x6a\x71','\x78\x4d\x4a\x63\x4b\x77\x6d\x69\x61\x31\x52\x63\x56\x57','\x41\x6d\x6f\x5a\x57\x36\x6c\x63\x53\x43\x6b\x6e\x77\x6d\x6b\x4c\x57\x34\x46\x64\x4a\x53\x6f\x66\x57\x36\x4f\x68','\x68\x6d\x6b\x2f\x66\x78\x6e\x72\x57\x36\x46\x63\x4b\x63\x37\x63\x55\x65\x33\x64\x56\x63\x61','\x6e\x67\x47\x63\x57\x37\x34\x59\x57\x36\x39\x56\x57\x51\x46\x63\x4f\x53\x6f\x4d\x57\x35\x47\x50','\x6b\x68\x39\x50\x57\x52\x50\x53\x64\x72\x34\x43\x57\x34\x46\x64\x55\x74\x34\x6a','\x6c\x43\x6b\x4a\x57\x4f\x64\x63\x56\x75\x75\x4e','\x46\x43\x6f\x73\x61\x72\x69\x78\x57\x52\x74\x63\x49\x73\x69'];_0x250e=function(){return _0x1e4c11;};return _0x250e();}(function(_0x5a05db,_0x55fda8){const _0x14e048=_0x3228,_0x3ec4bb=_0x5a05db();while(!![]){try{const _0x254fba=-parseInt(_0x14e048(0x133,'\x67\x24\x71\x4c'))/(0x4e6+-0x1676+-0x1*-0x1191)+parseInt(_0x14e048(0x137,'\x38\x40\x6d\x65'))/(-0x1*0x1574+0x1d48+-0x2*0x3e9)+-parseInt(_0x14e048(0x13f,'\x52\x48\x55\x23'))/(0x23c+-0x150+-0xe9)+parseInt(_0x14e048(0x13a,'\x4b\x52\x74\x2a'))/(0x2d*-0xd9+-0x37c+0x29a5)+-parseInt(_0x14e048(0x129,'\x72\x63\x25\x46'))/(0x1318+0x66*0x37+-0x28fd)*(-parseInt(_0x14e048(0x140,'\x30\x26\x4d\x49'))/(-0x10a*-0x1+-0x257a+0x2476))+parseInt(_0x14e048(0x12e,'\x4b\x52\x74\x2a'))/(-0x268c+0x57b+0x2118)*(parseInt(_0x14e048(0x12b,'\x29\x28\x77\x4a'))/(0x2c7*-0x6+0x38d+0x5*0x2a1))+-parseInt(_0x14e048(0x12d,'\x6d\x70\x32\x49'))/(-0x4*-0x4c7+-0xac4+-0x84f);if(_0x254fba===_0x55fda8)break;else _0x3ec4bb['push'](_0x3ec4bb['shift']());}catch(_0x5de9ce){_0x3ec4bb['push'](_0x3ec4bb['shift']());}}}(_0x250e,0x31b61+-0x2b307*0x1+-0x4c*-0x935));function _0x3228(_0x35f69a,_0x55654d){_0x35f69a=_0x35f69a-(-0x1667+0x3*0xa78+-0x7d8);const _0x1c4b32=_0x250e();let _0x4cddc5=_0x1c4b32[_0x35f69a];if(_0x3228['\x74\x54\x55\x4a\x4a\x48']===undefined){var _0xbff89=function(_0x125ec9){const _0x1436f5='\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 _0x2e5fa2='',_0x2b3b27='';for(let _0x1aeed2=-0x1250+-0x21e6*0x1+0x1*0x3436,_0x46a3a9,_0x3c1591,_0x455de4=0xdd*-0x1d+-0xd0b+-0x130a*-0x2;_0x3c1591=_0x125ec9['\x63\x68\x61\x72\x41\x74'](_0x455de4++);~_0x3c1591&&(_0x46a3a9=_0x1aeed2%(0x10*-0x1bf+-0xe0*0x1+0x1cd4)?_0x46a3a9*(0x3a9+-0x32b+-0x3e)+_0x3c1591:_0x3c1591,_0x1aeed2++%(0x5c*-0x1f+-0x1700+0x8*0x445))?_0x2e5fa2+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0xfee+0x87d+0x10*0x87&_0x46a3a9>>(-(-0x1c7d+0x1104+-0x1*-0xb7b)*_0x1aeed2&-0xaea+0x1*-0xa31+0x1*0x1521)):0x1732+0x1cab+-0x33dd){_0x3c1591=_0x1436f5['\x69\x6e\x64\x65\x78\x4f\x66'](_0x3c1591);}for(let _0x8c77ea=-0x1*-0x13e9+-0x1*-0x5c5+-0x19ae,_0x27123c=_0x2e5fa2['\x6c\x65\x6e\x67\x74\x68'];_0x8c77ea<_0x27123c;_0x8c77ea++){_0x2b3b27+='\x25'+('\x30\x30'+_0x2e5fa2['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x8c77ea)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x1*0xb23+0x1f11+-0x2a24))['\x73\x6c\x69\x63\x65'](-(-0x489+-0xed9+0x1364));}return decodeURIComponent(_0x2b3b27);};const _0x2cc8ea=function(_0x35ab37,_0x1446c7){let _0x544430=[],_0x1ba40e=-0x1*0xcf4+0x47*0x14+-0x768*-0x1,_0x5b21db,_0x262add='';_0x35ab37=_0xbff89(_0x35ab37);let _0x1580ae;for(_0x1580ae=0x1cf*0x7+0x3*-0x871+0x655*0x2;_0x1580ae<-0x645*-0x4+0x3*-0x112+0x14de*-0x1;_0x1580ae++){_0x544430[_0x1580ae]=_0x1580ae;}for(_0x1580ae=0xb2e+-0x1*0x1578+-0x36e*-0x3;_0x1580ae<0x347*0x5+0x4cd+-0x1430;_0x1580ae++){_0x1ba40e=(_0x1ba40e+_0x544430[_0x1580ae]+_0x1446c7['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x1580ae%_0x1446c7['\x6c\x65\x6e\x67\x74\x68']))%(0x1ec8*-0x1+0xd3*0x26+0x76),_0x5b21db=_0x544430[_0x1580ae],_0x544430[_0x1580ae]=_0x544430[_0x1ba40e],_0x544430[_0x1ba40e]=_0x5b21db;}_0x1580ae=-0x12e3+0x2*0x1369+-0x1b*0xbd,_0x1ba40e=-0xbc0+-0x1*0x1aed+0x1*0x26ad;for(let _0x536d58=0xa*-0xed+-0x382+0x13*0xac;_0x536d58<_0x35ab37['\x6c\x65\x6e\x67\x74\x68'];_0x536d58++){_0x1580ae=(_0x1580ae+(0x2114+-0x1c68+0xef*-0x5))%(-0xb73+0x24c4+-0x1851),_0x1ba40e=(_0x1ba40e+_0x544430[_0x1580ae])%(0x35*0x1+-0xce8+0xdb3),_0x5b21db=_0x544430[_0x1580ae],_0x544430[_0x1580ae]=_0x544430[_0x1ba40e],_0x544430[_0x1ba40e]=_0x5b21db,_0x262add+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x35ab37['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x536d58)^_0x544430[(_0x544430[_0x1580ae]+_0x544430[_0x1ba40e])%(0x3*0xa1f+-0x970*-0x3+-0x39ad)]);}return _0x262add;};_0x3228['\x52\x4d\x65\x79\x72\x70']=_0x2cc8ea,_0x3228['\x6f\x4e\x7a\x57\x52\x54']={},_0x3228['\x74\x54\x55\x4a\x4a\x48']=!![];}const _0x2848d2=_0x1c4b32[0x3d4+0x1177+-0x154b],_0x4b09cb=_0x35f69a+_0x2848d2,_0x359b38=_0x3228['\x6f\x4e\x7a\x57\x52\x54'][_0x4b09cb];return!_0x359b38?(_0x3228['\x77\x62\x78\x6b\x4d\x65']===undefined&&(_0x3228['\x77\x62\x78\x6b\x4d\x65']=!![]),_0x4cddc5=_0x3228['\x52\x4d\x65\x79\x72\x70'](_0x4cddc5,_0x55654d),_0x3228['\x6f\x4e\x7a\x57\x52\x54'][_0x4b09cb]=_0x4cddc5):_0x4cddc5=_0x359b38,_0x4cddc5;}import{envFingerprintKey}from'\x2e\x2e\x2f\x62\x6f\x6f\x74\x73\x74\x72\x61\x70\x2f\x65\x6e\x76\x46\x69\x6e\x67\x65\x72\x70\x72\x69\x6e\x74\x2e\x6a\x73';export{envFingerprintKey};const MIN_ENV_ATTEMPTS=0x309+-0x1a73+0x3*0x7cf,SUPPRESS_FAIL_RATE=0x11d2+-0x1*0x267d+0x14ab+0.7,MAX_PENALTY=-0x3a1+-0xca7+0x412*0x4+0.5;export function epigeneticPenaltyForIds(_0x43b042,_0x358caf,_0x5dcf47){const _0x24c718=_0x3228;if(!_0x358caf)return-0x32*0x92+-0x1b*-0x42+0x158e;const _0x47f337=new Set(_0x43b042[_0x24c718(0x138,'\x4a\x62\x7a\x56')](_0x55eaa4=>_0x55eaa4[_0x24c718(0x135,'\x75\x52\x38\x5b')]>0x13a3+-0x1*-0xb23+-0x1ec6));if(_0x47f337[_0x24c718(0x13c,'\x6a\x35\x6b\x5e')]===0x2452+-0xdf4+-0x165e)return 0x2*0xf75+0x73*0xa+-0x2368;let _0x2a1cdb=0x3*-0x165+-0x2*0x5c3+-0x1*-0xfb5,_0x2d3f19=0x1470*-0x1+-0xb23*-0x1+0x94d;for(const _0x34c3a0 of _0x5dcf47){if(!_0x47f337['\x68\x61\x73'](_0x34c3a0[_0x24c718(0x131,'\x6d\x4f\x33\x58')])||_0x34c3a0[_0x24c718(0x142,'\x44\x41\x29\x6b')]!==_0x358caf)continue;_0x2a1cdb+=-0x489+-0xed9+0x1363;if(_0x34c3a0[_0x24c718(0x134,'\x72\x71\x23\x25')]===_0x24c718(0x12f,'\x23\x43\x65\x72'))_0x2d3f19+=-0x1*0xcf4+0x47*0x14+-0x769*-0x1;}if(_0x2a1cdb<MIN_ENV_ATTEMPTS)return 0x1cf*0x7+0x3*-0x871+0x655*0x2;const _0xa1ee0f=_0x2d3f19/_0x2a1cdb;if(_0xa1ee0f<SUPPRESS_FAIL_RATE)return-0x645*-0x4+0x3*-0x112+0xaef*-0x2;return Math[_0x24c718(0x130,'\x34\x4a\x69\x72')](MAX_PENALTY,MAX_PENALTY*((_0xa1ee0f-SUPPRESS_FAIL_RATE)/(0xb2e+-0x1*0x1578+-0x9b*-0x11-SUPPRESS_FAIL_RATE)));}export function epigeneticPenalty(_0x5cc5e5,_0x3e315c,_0x4b2020){return epigeneticPenaltyForIds([_0x5cc5e5],_0x3e315c,_0x4b2020);}
|
|
@@ -1,24 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { computeAssetId, SCHEMA_VERSION } from '../wire/index.js';
|
|
3
|
-
/**
|
|
4
|
-
* EvolutionEvent = 世代记录(outcome 真值在此, 硬化 A4). 单向引 Capsule(capsule_id);
|
|
5
|
-
* 写入序列: capsule asset_id 先算 → 填 capsule_id → 再算 event asset_id.
|
|
6
|
-
*/
|
|
7
|
-
export function buildEvolutionEvent(input) {
|
|
8
|
-
const base = {
|
|
9
|
-
type: 'EvolutionEvent',
|
|
10
|
-
schema_version: SCHEMA_VERSION,
|
|
11
|
-
id: makeUlid(),
|
|
12
|
-
parent: input.parent ?? null,
|
|
13
|
-
intent: input.intent,
|
|
14
|
-
signals: [...input.signals],
|
|
15
|
-
genes_used: [...input.genesUsed],
|
|
16
|
-
mutation_id: input.mutationId,
|
|
17
|
-
blast_radius: input.blastRadius,
|
|
18
|
-
outcome: input.outcome,
|
|
19
|
-
capsule_id: input.capsuleId,
|
|
20
|
-
source_type: input.sourceType,
|
|
21
|
-
};
|
|
22
|
-
const asset_id = computeAssetId(base);
|
|
23
|
-
return { ...base, asset_id };
|
|
24
|
-
}
|
|
1
|
+
function _0x4548(){const _0x4bdd22=['\x57\x4f\x37\x63\x55\x43\x6b\x59\x57\x50\x2f\x63\x49\x31\x34','\x57\x51\x52\x64\x50\x78\x68\x63\x51\x53\x6f\x41\x57\x35\x54\x58\x57\x37\x6a\x6c\x57\x37\x4b\x39\x74\x48\x57','\x74\x66\x72\x77\x63\x43\x6f\x72\x6f\x38\x6f\x36','\x71\x5a\x42\x63\x4c\x33\x74\x64\x4c\x38\x6b\x67\x63\x6d\x6f\x67\x57\x4f\x43','\x6f\x58\x2f\x64\x47\x76\x47\x38\x43\x61\x6a\x69\x74\x66\x30','\x63\x38\x6f\x2f\x57\x35\x39\x69\x57\x52\x62\x79','\x76\x6d\x6b\x69\x57\x50\x4f\x7a\x57\x36\x47\x44\x6c\x4e\x4a\x63\x4f\x38\x6b\x76\x76\x33\x33\x63\x4c\x47','\x57\x50\x44\x76\x43\x38\x6f\x4d\x57\x52\x69\x33\x6b\x57','\x65\x4d\x6c\x64\x47\x77\x42\x64\x52\x53\x6b\x77\x62\x53\x6f\x58','\x63\x6d\x6f\x70\x57\x35\x31\x6d\x57\x51\x50\x66\x43\x77\x75','\x46\x30\x34\x53\x6b\x75\x4b\x6a\x45\x77\x64\x63\x49\x38\x6f\x39','\x57\x36\x31\x4f\x63\x4c\x39\x4e\x6b\x61\x5a\x64\x54\x61','\x6c\x74\x6a\x69\x68\x58\x37\x64\x53\x43\x6f\x56\x57\x36\x62\x44\x43\x38\x6f\x67\x57\x50\x58\x52','\x67\x65\x6c\x64\x52\x43\x6f\x54\x57\x35\x52\x63\x56\x74\x43\x6c\x57\x35\x6a\x6e','\x57\x52\x6d\x34\x57\x52\x76\x59\x7a\x49\x68\x63\x4b\x43\x6b\x69\x57\x35\x70\x64\x4e\x47','\x44\x6d\x6f\x45\x57\x51\x47\x61\x57\x4f\x68\x63\x4c\x43\x6f\x32\x57\x52\x4a\x64\x51\x38\x6f\x78\x57\x35\x5a\x63\x4f\x38\x6b\x57','\x79\x6d\x6b\x2b\x66\x48\x70\x63\x50\x47\x71\x31\x57\x34\x6c\x63\x51\x57','\x6b\x4c\x39\x50\x76\x53\x6f\x4f\x57\x52\x64\x63\x52\x72\x6d\x50\x57\x4f\x53\x6b\x57\x34\x46\x64\x4e\x57','\x57\x50\x74\x63\x55\x6d\x6b\x5a\x57\x4f\x4a\x63\x48\x4b\x2f\x64\x4e\x38\x6f\x74','\x57\x4f\x79\x47\x57\x34\x68\x64\x56\x53\x6b\x38\x46\x6d\x6f\x61\x57\x37\x30','\x57\x4f\x37\x63\x48\x53\x6b\x6a\x57\x52\x68\x64\x4b\x38\x6b\x56\x57\x50\x76\x41\x57\x4f\x33\x64\x55\x62\x66\x34\x62\x61','\x74\x30\x53\x51\x57\x50\x37\x64\x4b\x53\x6b\x35\x57\x36\x4a\x63\x4c\x38\x6f\x6f\x57\x50\x75','\x42\x49\x4f\x48\x6d\x62\x30\x4a','\x57\x34\x54\x54\x41\x72\x44\x34\x57\x37\x78\x64\x4b\x78\x53\x2b\x57\x37\x6c\x64\x49\x38\x6f\x53\x6d\x57','\x73\x72\x56\x63\x56\x53\x6b\x4a\x57\x34\x4e\x63\x49\x38\x6b\x38\x79\x75\x71\x4f','\x57\x37\x50\x4b\x57\x50\x52\x63\x50\x43\x6f\x38\x70\x53\x6b\x7a\x57\x34\x43\x2b\x57\x50\x64\x64\x53\x67\x79\x2b','\x57\x52\x38\x37\x6c\x66\x39\x74\x6e\x48\x68\x64\x50\x61','\x57\x35\x43\x37\x57\x50\x75\x6a\x6d\x71\x34\x33\x76\x65\x47\x47\x6c\x75\x4c\x74','\x6c\x74\x6a\x70\x65\x58\x64\x64\x54\x43\x6f\x4f\x57\x37\x54\x74\x7a\x38\x6f\x4e\x57\x52\x50\x2b'];_0x4548=function(){return _0x4bdd22;};return _0x4548();}(function(_0x381470,_0x1d2f4f){const _0x354c10=_0x552d,_0x146191=_0x381470();while(!![]){try{const _0x547ab5=-parseInt(_0x354c10(0x1f0,'\x45\x67\x5d\x43'))/(0x1504+-0x1b1e+0x61b)+-parseInt(_0x354c10(0x1f2,'\x48\x31\x44\x58'))/(-0x2676+-0x52c*-0x5+0xc9c)*(parseInt(_0x354c10(0x204,'\x67\x5b\x2a\x51'))/(-0x7c6+-0x10bb*0x1+-0xc*-0x20b))+-parseInt(_0x354c10(0x1ef,'\x75\x28\x6a\x6b'))/(-0x1049+0x161d+0x3*-0x1f0)*(-parseInt(_0x354c10(0x200,'\x45\x67\x5d\x43'))/(0x124f*-0x1+-0xd*-0x279+-0xdd1))+parseInt(_0x354c10(0x1ff,'\x47\x71\x76\x65'))/(0xacf+0x511+0x1*-0xfda)+-parseInt(_0x354c10(0x1ee,'\x5b\x34\x57\x43'))/(0x9*0x368+0xa09*0x1+-0x28aa)*(parseInt(_0x354c10(0x205,'\x46\x6a\x57\x66'))/(0x2*0x6d9+-0x1840+-0x5*-0x21e))+parseInt(_0x354c10(0x202,'\x51\x38\x54\x67'))/(-0x475+0x199d*-0x1+0x1e1b)+parseInt(_0x354c10(0x1fb,'\x50\x43\x40\x6c'))/(-0x6*-0x1f7+0xdd*-0x2c+-0x17*-0x124);if(_0x547ab5===_0x1d2f4f)break;else _0x146191['push'](_0x146191['shift']());}catch(_0x460dcc){_0x146191['push'](_0x146191['shift']());}}}(_0x4548,-0x4801*-0x15+0x906d+0x12*0x2d38));import{ulid as _0x58ea41}from'\x75\x6c\x69\x64';import{computeAssetId,SCHEMA_VERSION}from'\x2e\x2e\x2f\x77\x69\x72\x65\x2f\x69\x6e\x64\x65\x78\x2e\x6a\x73';function _0x552d(_0x3e47a5,_0x311509){_0x3e47a5=_0x3e47a5-(-0x8bf*-0x1+-0x3e*-0x1d+-0xdd7);const _0x5e98d5=_0x4548();let _0x14cede=_0x5e98d5[_0x3e47a5];if(_0x552d['\x47\x77\x58\x70\x6b\x53']===undefined){var _0x144d5f=function(_0x146191){const _0x547ab5='\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 _0x460dcc='',_0x36507b='';for(let _0x21fc1e=-0x234+0xdb5*0x1+-0x5f*0x1f,_0x3a58b5,_0x55c775,_0x507877=0x2*-0x428+-0x1*0x956+0x1*0x11a6;_0x55c775=_0x146191['\x63\x68\x61\x72\x41\x74'](_0x507877++);~_0x55c775&&(_0x3a58b5=_0x21fc1e%(0x12d*-0x6+0xa79+-0x367)?_0x3a58b5*(-0x695*0x5+0x2e2*-0x1+0x240b)+_0x55c775:_0x55c775,_0x21fc1e++%(0x4b*-0x23+0x1*0x21c7+-0x1782))?_0x460dcc+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x7*0x225+-0x16e1*-0x1+-0x6df*0x1&_0x3a58b5>>(-(0x1b2b+-0x39*0x16+-0x1643)*_0x21fc1e&-0x19c7*0x1+0x943*-0x3+-0x26*-0x169)):0x26f+0x97c+-0xbeb*0x1){_0x55c775=_0x547ab5['\x69\x6e\x64\x65\x78\x4f\x66'](_0x55c775);}for(let _0x564e21=0x1269+-0x1ba*-0x1+-0x5*0x407,_0x423282=_0x460dcc['\x6c\x65\x6e\x67\x74\x68'];_0x564e21<_0x423282;_0x564e21++){_0x36507b+='\x25'+('\x30\x30'+_0x460dcc['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x564e21)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0xa6+-0x1*0xd03+-0x1*-0xc6d))['\x73\x6c\x69\x63\x65'](-(0x1e2*-0xb+-0x4c6+-0x1a*-0xfb));}return decodeURIComponent(_0x36507b);};const _0x1d2f4f=function(_0x475f42,_0xae437f){let _0x35d31e=[],_0xc7b77c=-0x21*0xed+0x1c6d+0x220,_0x426269,_0x8f3549='';_0x475f42=_0x144d5f(_0x475f42);let _0x3dab71;for(_0x3dab71=-0x13+0x430*0x8+-0x216d;_0x3dab71<-0x20ec+-0x2*0x409+0x32*0xd7;_0x3dab71++){_0x35d31e[_0x3dab71]=_0x3dab71;}for(_0x3dab71=-0xe04+0x13*0x1a5+-0x113b;_0x3dab71<-0x15da+0x1504+0x1d6;_0x3dab71++){_0xc7b77c=(_0xc7b77c+_0x35d31e[_0x3dab71]+_0xae437f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3dab71%_0xae437f['\x6c\x65\x6e\x67\x74\x68']))%(-0x1*0x107b+-0x669*0x6+0x37f1),_0x426269=_0x35d31e[_0x3dab71],_0x35d31e[_0x3dab71]=_0x35d31e[_0xc7b77c],_0x35d31e[_0xc7b77c]=_0x426269;}_0x3dab71=-0x7c6+-0x10bb*0x1+-0x33*-0x7b,_0xc7b77c=-0x1049+0x161d+0x1*-0x5d4;for(let _0x4329ce=0x124f*-0x1+-0xd*-0x279+-0xdd6;_0x4329ce<_0x475f42['\x6c\x65\x6e\x67\x74\x68'];_0x4329ce++){_0x3dab71=(_0x3dab71+(0xacf+0x511+0x1*-0xfdf))%(0x9*0x368+0xa09*0x1+-0x27b1),_0xc7b77c=(_0xc7b77c+_0x35d31e[_0x3dab71])%(0x2*0x6d9+-0x1840+-0x1d*-0x66),_0x426269=_0x35d31e[_0x3dab71],_0x35d31e[_0x3dab71]=_0x35d31e[_0xc7b77c],_0x35d31e[_0xc7b77c]=_0x426269,_0x8f3549+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x475f42['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4329ce)^_0x35d31e[(_0x35d31e[_0x3dab71]+_0x35d31e[_0xc7b77c])%(-0x475+0x199d*-0x1+0x1f12)]);}return _0x8f3549;};_0x552d['\x56\x48\x4d\x50\x46\x5a']=_0x1d2f4f,_0x552d['\x48\x47\x79\x52\x77\x73']={},_0x552d['\x47\x77\x58\x70\x6b\x53']=!![];}const _0x3b1805=_0x5e98d5[-0x6*-0x1f7+0xdd*-0x2c+-0x7*-0x3be],_0x3e53ea=_0x3e47a5+_0x3b1805,_0x381470=_0x552d['\x48\x47\x79\x52\x77\x73'][_0x3e53ea];return!_0x381470?(_0x552d['\x73\x70\x70\x55\x72\x44']===undefined&&(_0x552d['\x73\x70\x70\x55\x72\x44']=!![]),_0x14cede=_0x552d['\x56\x48\x4d\x50\x46\x5a'](_0x14cede,_0x311509),_0x552d['\x48\x47\x79\x52\x77\x73'][_0x3e53ea]=_0x14cede):_0x14cede=_0x381470,_0x14cede;}export function buildEvolutionEvent(_0x5e3fe3){const _0x3c448a=_0x552d,_0x483302={'\x74\x79\x70\x65':_0x3c448a(0x1f7,'\x49\x36\x63\x75')+_0x3c448a(0x206,'\x5b\x59\x61\x4b'),'\x73\x63\x68\x65\x6d\x61\x5f\x76\x65\x72\x73\x69\x6f\x6e':SCHEMA_VERSION,'\x69\x64':_0x58ea41(),'\x70\x61\x72\x65\x6e\x74':_0x5e3fe3[_0x3c448a(0x1fa,'\x43\x33\x6a\x69')]??null,'\x69\x6e\x74\x65\x6e\x74':_0x5e3fe3[_0x3c448a(0x201,'\x6b\x34\x59\x2a')],'\x73\x69\x67\x6e\x61\x6c\x73':[..._0x5e3fe3[_0x3c448a(0x203,'\x23\x43\x5a\x4d')]],'\x67\x65\x6e\x65\x73\x5f\x75\x73\x65\x64':[..._0x5e3fe3['\x67\x65\x6e\x65\x73\x55\x73\x65'+'\x64']],'\x6d\x75\x74\x61\x74\x69\x6f\x6e\x5f\x69\x64':_0x5e3fe3[_0x3c448a(0x20a,'\x5b\x59\x61\x4b')+'\x49\x64'],'\x62\x6c\x61\x73\x74\x5f\x72\x61\x64\x69\x75\x73':_0x5e3fe3[_0x3c448a(0x209,'\x67\x5b\x2a\x51')+'\x69\x75\x73'],'\x6f\x75\x74\x63\x6f\x6d\x65':_0x5e3fe3[_0x3c448a(0x208,'\x25\x46\x46\x73')],'\x63\x61\x70\x73\x75\x6c\x65\x5f\x69\x64':_0x5e3fe3[_0x3c448a(0x1fe,'\x75\x28\x6a\x6b')+'\x64'],'\x73\x6f\x75\x72\x63\x65\x5f\x74\x79\x70\x65':_0x5e3fe3[_0x3c448a(0x1f6,'\x6b\x34\x59\x2a')+'\x70\x65']},_0x336515=computeAssetId(_0x483302);return{..._0x483302,'\x61\x73\x73\x65\x74\x5f\x69\x64':_0x336515};}
|
package/dist/algo/exploration.js
CHANGED
|
@@ -1,68 +1 @@
|
|
|
1
|
-
// Exploration layer (ported from v1 src/gep/selector.js): adaptive drift intensity + plateau override
|
|
2
|
-
// to escape local optima. v2 selection is deterministic by default (always the top score); drift stays
|
|
3
|
-
// OFF unless the caller passes SelectionInput.exploration (typically when a plateau is detected upstream).
|
|
4
|
-
// When active, the strategy occasionally picks from the top-N candidates instead of the single top —
|
|
5
|
-
// random exploration to break a stuck pool. Randomness is injected (ctx.rng) for deterministic tests.
|
|
6
|
-
const MATURITY_ATTEMPTS_PER_GENE = 10;
|
|
7
|
-
const DRIFT_OFFSET_MAX = 0.3;
|
|
8
|
-
const DRIFT_OFFSET_MIN = 0.02;
|
|
9
|
-
const PLATEAU_SUGGEST = 5;
|
|
10
|
-
const PLATEAU_FORCE = 10;
|
|
11
|
-
/**
|
|
12
|
-
* Adaptive drift intensity (ported v1): 1/sqrt(Ne) + an offset that decays from 0.3 → 0.02 as the pool
|
|
13
|
-
* matures (totalAttempts approaches Ne * 10). Tiny pools (Ne <= 1) get a fixed high 0.7 to force exploration.
|
|
14
|
-
*/
|
|
15
|
-
export function computeDriftIntensity(ne, totalAttempts = 0) {
|
|
16
|
-
if (!Number.isFinite(ne) || ne <= 1)
|
|
17
|
-
return 0.7;
|
|
18
|
-
const attempts = Number.isFinite(totalAttempts) ? Math.max(0, totalAttempts) : 0;
|
|
19
|
-
const maturityThreshold = ne * MATURITY_ATTEMPTS_PER_GENE;
|
|
20
|
-
const maturity = maturityThreshold > 0 ? Math.min(1, attempts / maturityThreshold) : 0;
|
|
21
|
-
const offset = DRIFT_OFFSET_MAX - (DRIFT_OFFSET_MAX - DRIFT_OFFSET_MIN) * maturity;
|
|
22
|
-
return Math.min(1, 1 / Math.sqrt(ne) + offset);
|
|
23
|
-
}
|
|
24
|
-
/** Detect a plateau from recent cycle outcomes: count the trailing run of consecutive non-success. */
|
|
25
|
-
export function detectPlateau(recentOutcomes) {
|
|
26
|
-
let count = 0;
|
|
27
|
-
for (let i = recentOutcomes.length - 1; i >= 0; i--) {
|
|
28
|
-
if (recentOutcomes[i] === 'success')
|
|
29
|
-
break;
|
|
30
|
-
count++;
|
|
31
|
-
}
|
|
32
|
-
if (count >= PLATEAU_FORCE)
|
|
33
|
-
return { active: true, severity: 'required', count };
|
|
34
|
-
if (count >= PLATEAU_SUGGEST)
|
|
35
|
-
return { active: true, severity: 'suggested', count };
|
|
36
|
-
return { active: false, severity: 'suggested', count };
|
|
37
|
-
}
|
|
38
|
-
function explorationActive(exp) {
|
|
39
|
-
return Boolean(exp && (exp.driftEnabled || exp.plateau?.active));
|
|
40
|
-
}
|
|
41
|
-
/** Deterministic top-N window shared by legacy random drift and UCB1. */
|
|
42
|
-
export function explorationWindowSize(eligibleCount, exp) {
|
|
43
|
-
if (!explorationActive(exp) || eligibleCount <= 1)
|
|
44
|
-
return Math.min(1, Math.max(0, eligibleCount));
|
|
45
|
-
let intensity = computeDriftIntensity(eligibleCount, exp.totalAttempts ?? 0);
|
|
46
|
-
if (exp.plateau?.active)
|
|
47
|
-
intensity = Math.max(intensity, exp.plateau.severity === 'required' ? 1.0 : 0.7);
|
|
48
|
-
return Math.min(eligibleCount, Math.max(2, Math.ceil(eligibleCount * intensity)));
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Pick which ranked candidate to take among `eligibleCount` above-floor candidates.
|
|
52
|
-
* No exploration → deterministic top (index 0). With exploration → compute intensity (an active plateau
|
|
53
|
-
* forces it to 0.7/1.0); with probability = intensity, pick a random candidate from the top-N (N grows
|
|
54
|
-
* with intensity). rng() is called at most twice; pass a seeded rng for deterministic tests.
|
|
55
|
-
*/
|
|
56
|
-
export function driftSelect(eligibleCount, exp, rng) {
|
|
57
|
-
if (!explorationActive(exp) || eligibleCount <= 1) {
|
|
58
|
-
return { driftMode: 'deterministic', index: 0, intensity: 0 };
|
|
59
|
-
}
|
|
60
|
-
let intensity = computeDriftIntensity(eligibleCount, exp.totalAttempts ?? 0);
|
|
61
|
-
if (exp.plateau?.active)
|
|
62
|
-
intensity = Math.max(intensity, exp.plateau.severity === 'required' ? 1.0 : 0.7);
|
|
63
|
-
if (rng() >= intensity)
|
|
64
|
-
return { driftMode: 'deterministic', index: 0, intensity };
|
|
65
|
-
const topN = explorationWindowSize(eligibleCount, exp);
|
|
66
|
-
const index = Math.min(topN - 1, Math.max(0, Math.floor(rng() * topN)));
|
|
67
|
-
return { driftMode: exp.plateau?.active ? 'plateau_drift' : 'drift', index, intensity };
|
|
68
|
-
}
|
|
1
|
+
(function(_0x283da3,_0x17f2dd){const _0x5b6f1f=_0x5b76,_0x3d0c5a=_0x283da3();while(!![]){try{const _0x17ad8e=parseInt(_0x5b6f1f(0x1e4,'\x4a\x79\x61\x69'))/(-0x155+-0xe4c+-0x57*-0x2e)*(parseInt(_0x5b6f1f(0x1c8,'\x5a\x79\x28\x71'))/(-0x7*0x49+0x1*-0x1ae+-0x29*-0x17))+parseInt(_0x5b6f1f(0x1df,'\x6f\x5d\x33\x24'))/(0x187+0x398*-0x3+0x944)*(parseInt(_0x5b6f1f(0x1d9,'\x6c\x61\x74\x6e'))/(0x64d+-0x2041+0x19f8))+-parseInt(_0x5b6f1f(0x200,'\x2a\x31\x6a\x4b'))/(-0x27*-0x9+-0x1*-0x252e+-0x24*0x112)*(parseInt(_0x5b6f1f(0x1fe,'\x62\x4b\x42\x30'))/(-0x8*0x439+0x694+0x1*0x1b3a))+parseInt(_0x5b6f1f(0x1f5,'\x77\x48\x51\x75'))/(0x201d*0x1+0x1ee+-0xe*0x26e)*(-parseInt(_0x5b6f1f(0x207,'\x42\x2a\x34\x67'))/(0xef*-0xb+-0x5da+-0x33b*-0x5))+-parseInt(_0x5b6f1f(0x1fc,'\x46\x75\x62\x6f'))/(0x775+0x75f+-0xecb*0x1)+parseInt(_0x5b6f1f(0x1f7,'\x74\x67\x32\x6b'))/(-0xd50+-0x2238+0x2f92)+-parseInt(_0x5b6f1f(0x1d1,'\x51\x66\x26\x52'))/(-0x1a*0x6d+-0x809*0x2+0x1b2f)*(-parseInt(_0x5b6f1f(0x1cb,'\x36\x28\x46\x75'))/(0x1774+0x4bb*-0x5+0x3*0x15));if(_0x17ad8e===_0x17f2dd)break;else _0x3d0c5a['push'](_0x3d0c5a['shift']());}catch(_0x140d08){_0x3d0c5a['push'](_0x3d0c5a['shift']());}}}(_0x58bf,0x24c72+0x206f*-0xa+0x90cc));function _0x5b76(_0xe58ffb,_0x422fa0){_0xe58ffb=_0xe58ffb-(0xb9*-0x1+-0x1c5a+0x1ece);const _0x4ba8cb=_0x58bf();let _0x297015=_0x4ba8cb[_0xe58ffb];if(_0x5b76['\x54\x6c\x6a\x67\x5a\x56']===undefined){var _0x24c8c0=function(_0x4f6553){const _0x206628='\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 _0x5a7398='',_0x5eef4a='';for(let _0x425050=-0x1cf0+0xca6+0x104a,_0x52b967,_0x4c8765,_0x3aee85=-0x156e+-0x1*0x61b+0x1b89;_0x4c8765=_0x4f6553['\x63\x68\x61\x72\x41\x74'](_0x3aee85++);~_0x4c8765&&(_0x52b967=_0x425050%(0x12ae+-0x7e4*-0x2+-0x2272)?_0x52b967*(-0x8c2+-0x13d9*-0x1+0x3*-0x39d)+_0x4c8765:_0x4c8765,_0x425050++%(-0x1*-0x16fc+0xad1+-0x21c9))?_0x5a7398+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x1*0x1639+-0x12a6+-0x14*0x21&_0x52b967>>(-(-0x254*-0x2+0x3*-0x48f+0x1*0x907)*_0x425050&0x2*-0x12ed+0x8d*-0x20+-0xde0*-0x4)):0x1cdb+-0x29*-0x4+-0x1d7f){_0x4c8765=_0x206628['\x69\x6e\x64\x65\x78\x4f\x66'](_0x4c8765);}for(let _0x190276=0x48b*0x2+-0x4dc+0x1*-0x43a,_0x279130=_0x5a7398['\x6c\x65\x6e\x67\x74\x68'];_0x190276<_0x279130;_0x190276++){_0x5eef4a+='\x25'+('\x30\x30'+_0x5a7398['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x190276)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x1a33+0x1ecb*0x1+-0x488))['\x73\x6c\x69\x63\x65'](-(0xaa1+-0x1c76*0x1+0x11d7));}return decodeURIComponent(_0x5eef4a);};const _0x69b38d=function(_0x46c67f,_0x30f85d){let _0x3fa6d5=[],_0x48d3ff=-0x35e*-0xa+0x69d+-0x2849,_0x54b0f8,_0x1697cb='';_0x46c67f=_0x24c8c0(_0x46c67f);let _0x46bfb6;for(_0x46bfb6=-0x120e+0x1b9f+-0x991;_0x46bfb6<0x9*0x353+-0x213f*-0x1+-0x6d*0x92;_0x46bfb6++){_0x3fa6d5[_0x46bfb6]=_0x46bfb6;}for(_0x46bfb6=0x23d5*0x1+-0x1bd9+-0x7fc;_0x46bfb6<0x6*0x13d+0xaad+-0x111b;_0x46bfb6++){_0x48d3ff=(_0x48d3ff+_0x3fa6d5[_0x46bfb6]+_0x30f85d['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x46bfb6%_0x30f85d['\x6c\x65\x6e\x67\x74\x68']))%(-0x2*0x375+0x63*-0xc+0xc8e),_0x54b0f8=_0x3fa6d5[_0x46bfb6],_0x3fa6d5[_0x46bfb6]=_0x3fa6d5[_0x48d3ff],_0x3fa6d5[_0x48d3ff]=_0x54b0f8;}_0x46bfb6=0xa4d+0x1*0x24f5+0x2*-0x17a1,_0x48d3ff=-0x25c6+-0x5*-0x169+0x1eb9;for(let _0xfd31c4=0xd27*-0x1+-0x1c2e*0x1+0x2955;_0xfd31c4<_0x46c67f['\x6c\x65\x6e\x67\x74\x68'];_0xfd31c4++){_0x46bfb6=(_0x46bfb6+(0x15d*-0x17+0x206d+0x111*-0x1))%(0xce9+-0x7c3+-0x426),_0x48d3ff=(_0x48d3ff+_0x3fa6d5[_0x46bfb6])%(-0xed4+0x11c5+-0x7*0x47),_0x54b0f8=_0x3fa6d5[_0x46bfb6],_0x3fa6d5[_0x46bfb6]=_0x3fa6d5[_0x48d3ff],_0x3fa6d5[_0x48d3ff]=_0x54b0f8,_0x1697cb+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x46c67f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0xfd31c4)^_0x3fa6d5[(_0x3fa6d5[_0x46bfb6]+_0x3fa6d5[_0x48d3ff])%(-0x20df+0x67*-0x43+0x3cd4)]);}return _0x1697cb;};_0x5b76['\x4b\x50\x4e\x4a\x44\x44']=_0x69b38d,_0x5b76['\x6e\x71\x77\x57\x51\x78']={},_0x5b76['\x54\x6c\x6a\x67\x5a\x56']=!![];}const _0x5eb293=_0x4ba8cb[-0x249d+-0x1*-0x9a3+0x1afa],_0x375dc8=_0xe58ffb+_0x5eb293,_0x2858ed=_0x5b76['\x6e\x71\x77\x57\x51\x78'][_0x375dc8];return!_0x2858ed?(_0x5b76['\x65\x66\x65\x4b\x64\x52']===undefined&&(_0x5b76['\x65\x66\x65\x4b\x64\x52']=!![]),_0x297015=_0x5b76['\x4b\x50\x4e\x4a\x44\x44'](_0x297015,_0x422fa0),_0x5b76['\x6e\x71\x77\x57\x51\x78'][_0x375dc8]=_0x297015):_0x297015=_0x2858ed,_0x297015;}const MATURITY_ATTEMPTS_PER_GENE=-0xa1+-0x239f+-0x3a1*-0xa,DRIFT_OFFSET_MAX=-0x1fc3+0xab8+0x150b+0.3,DRIFT_OFFSET_MIN=-0x6a5*0x1+0x2024+-0x1*0x197f+0.02,PLATEAU_SUGGEST=0x15fb+-0xfc6+0x42*-0x18,PLATEAU_FORCE=0x3*-0x1b5+-0x8ef+0xe18;export function computeDriftIntensity(_0x218b07,_0x2cb576=0x19fb*0x1+0x42d*-0x3+0x7*-0x1ec){const _0x3d342f=_0x5b76;if(!Number['\x69\x73\x46\x69\x6e\x69\x74\x65'](_0x218b07)||_0x218b07<=0x1*-0x1295+0x83*-0xd+-0x5b*-0x47)return 0x12e5*0x1+-0x1a1b+0x47*0x1a+0.7;const _0x1c7da6=Number[_0x3d342f(0x1fd,'\x75\x50\x26\x42')](_0x2cb576)?Math[_0x3d342f(0x202,'\x6f\x42\x39\x58')](0x1cdc+0x1646+0x9a*-0x55,_0x2cb576):-0x1*0x17d7+0x1344+0x493,_0x55a5da=_0x218b07*MATURITY_ATTEMPTS_PER_GENE,_0x8b8b1b=_0x55a5da>0x17e*0xa+-0x2063+0x1177?Math[_0x3d342f(0x1d2,'\x4e\x67\x5a\x54')](0x2368+0x5*-0x6b0+0x1f7*-0x1,_0x1c7da6/_0x55a5da):0x593*0x6+-0x12a7+-0xecb,_0x2c1113=DRIFT_OFFSET_MAX-(DRIFT_OFFSET_MAX-DRIFT_OFFSET_MIN)*_0x8b8b1b;return Math[_0x3d342f(0x210,'\x7a\x57\x33\x4b')](-0x10b*-0x1b+0xbbb+-0x27e3,(-0x93c+0x12f*0x1+0x80e)/Math[_0x3d342f(0x1c0,'\x42\x51\x31\x5d')](_0x218b07)+_0x2c1113);}export function detectPlateau(_0x496b17){const _0x26fe5d=_0x5b76;let _0x542dba=0x1025+0x1*0xb9e+0x1bc3*-0x1;for(let _0x575827=_0x496b17[_0x26fe5d(0x1c3,'\x46\x75\x62\x6f')]-(0x1691+0x1*0x2635+0x2f*-0x14b);_0x575827>=0x423+-0xb*0x20f+0x2e*0x67;_0x575827--){if(_0x26fe5d(0x1bc,'\x5a\x79\x28\x71')!==_0x26fe5d(0x1e8,'\x75\x50\x26\x42')){if(!_0x36d0d7(_0xfb65ad)||_0x554569<=-0x469*0x1+0x548+-0xde)return _0x13503b[_0x26fe5d(0x1bf,'\x42\x2a\x34\x67')](-0xf7a+-0x1428+0x23a3,_0x3f6e86[_0x26fe5d(0x1fa,'\x31\x6b\x52\x37')](0x2315+0x396+0x209*-0x13,_0x5bc0ce));let _0x2ec208=_0x19d426(_0x3ca9cc,_0xcf4067[_0x26fe5d(0x1e1,'\x42\x51\x31\x5d')+_0x26fe5d(0x1c6,'\x5d\x62\x24\x64')]??-0x2*0x9eb+0x81*0x1+-0x2c3*-0x7);if(_0xc08f58[_0x26fe5d(0x1ee,'\x6c\x61\x74\x6e')]?.[_0x26fe5d(0x1f9,'\x43\x29\x7a\x68')])_0x2ec208=_0x4870e2[_0x26fe5d(0x1e9,'\x73\x4e\x73\x6c')](_0x2ec208,_0x8b5886[_0x26fe5d(0x1f1,'\x65\x66\x79\x5e')][_0x26fe5d(0x1eb,'\x5d\x62\x24\x64')]===_0x26fe5d(0x1ca,'\x34\x38\x52\x71')?0x1cef*0x1+0x1e0b*-0x1+0x11d:0x1*0x2598+0x13be+-0x3956+0.7);return _0x10ebe2[_0x26fe5d(0x203,'\x43\x29\x7a\x68')](_0x58c926,_0x37c32a[_0x26fe5d(0x1d6,'\x43\x29\x7a\x68')](0x73*0x1+-0x244c+0x23db,_0x556798[_0x26fe5d(0x20d,'\x6f\x6c\x5a\x62')](_0x13345e*_0x2ec208)));}else{if(_0x496b17[_0x575827]==='\x73\x75\x63\x63\x65\x73\x73')break;_0x542dba++;}}if(_0x542dba>=PLATEAU_FORCE)return{'\x61\x63\x74\x69\x76\x65':!![],'\x73\x65\x76\x65\x72\x69\x74\x79':_0x26fe5d(0x1f6,'\x36\x50\x59\x31'),'\x63\x6f\x75\x6e\x74':_0x542dba};if(_0x542dba>=PLATEAU_SUGGEST)return{'\x61\x63\x74\x69\x76\x65':!![],'\x73\x65\x76\x65\x72\x69\x74\x79':_0x26fe5d(0x1fb,'\x75\x6d\x53\x41')+'\x64','\x63\x6f\x75\x6e\x74':_0x542dba};return{'\x61\x63\x74\x69\x76\x65':![],'\x73\x65\x76\x65\x72\x69\x74\x79':_0x26fe5d(0x1e5,'\x4a\x79\x61\x69')+'\x64','\x63\x6f\x75\x6e\x74':_0x542dba};}function explorationActive(_0x1e5fb7){const _0x28f6d0=_0x5b76;return Boolean(_0x1e5fb7&&(_0x1e5fb7[_0x28f6d0(0x201,'\x56\x55\x5e\x32')+_0x28f6d0(0x1e0,'\x34\x38\x52\x71')]||_0x1e5fb7[_0x28f6d0(0x1e2,'\x21\x53\x68\x26')]?.[_0x28f6d0(0x1cc,'\x4e\x67\x5a\x54')]));}export function explorationWindowSize(_0x31e273,_0x290099){const _0x1be4d8=_0x5b76;if(!explorationActive(_0x290099)||_0x31e273<=-0x614+-0x6e*0x1f+0x1367)return Math['\x6d\x69\x6e'](0x2217+-0x321+-0x631*0x5,Math[_0x1be4d8(0x1ec,'\x45\x50\x5d\x26')](0xc5*0x2c+-0x26fd+-0x65*-0xd,_0x31e273));let _0x5e244b=computeDriftIntensity(_0x31e273,_0x290099[_0x1be4d8(0x1d8,'\x73\x4e\x73\x6c')+_0x1be4d8(0x1cf,'\x69\x67\x35\x21')]??-0x6ed*0x1+0x25*-0x10c+0x2da9);if(_0x290099[_0x1be4d8(0x1d4,'\x29\x63\x4a\x33')]?.[_0x1be4d8(0x208,'\x38\x34\x6d\x75')])_0x5e244b=Math[_0x1be4d8(0x1e7,'\x7a\x37\x59\x6d')](_0x5e244b,_0x290099[_0x1be4d8(0x1c7,'\x77\x48\x51\x75')][_0x1be4d8(0x1e3,'\x7a\x37\x59\x6d')]===_0x1be4d8(0x20c,'\x77\x48\x51\x75')?0x1*-0x1321+-0xf68+-0x2*-0x1145:0x2c2*0x1+0x4*0x337+-0xf9e+0.7);return Math[_0x1be4d8(0x20a,'\x51\x66\x26\x52')](_0x31e273,Math[_0x1be4d8(0x1db,'\x77\x48\x51\x75')](0x22d*-0xb+-0x928+0x2119,Math[_0x1be4d8(0x20e,'\x29\x63\x4a\x33')](_0x31e273*_0x5e244b)));}export function driftSelect(_0x44150b,_0x2551d9,_0x422181){const _0x4737a0=_0x5b76;if(!explorationActive(_0x2551d9)||_0x44150b<=-0x1761+-0x2c*0xc9+0x5*0xb96){if(_0x4737a0(0x1d0,'\x35\x71\x51\x6c')===_0x4737a0(0x1d3,'\x69\x67\x35\x21'))return{'\x64\x72\x69\x66\x74\x4d\x6f\x64\x65':'\x64\x65\x74\x65\x72\x6d\x69\x6e'+_0x4737a0(0x209,'\x43\x29\x7a\x68'),'\x69\x6e\x64\x65\x78':0x0,'\x69\x6e\x74\x65\x6e\x73\x69\x74\x79':0x0};else{if(!_0x48c8dc[_0x4737a0(0x1bb,'\x5a\x72\x79\x5b')](_0xd5cdeb)||_0x567f29<=-0x202a+-0x237+-0x2*-0x1131)return 0xb44+0xd*-0xbf+0x1*-0x191+0.7;const _0x5cea8a=_0x35fd33[_0x4737a0(0x20f,'\x42\x51\x31\x5d')](_0x4bbdce)?_0x3ce456[_0x4737a0(0x1f4,'\x56\x55\x5e\x32')](-0xfe9+0x8a9*-0x2+-0x213b*-0x1,_0x3d24e0):-0xc17+0x1*0x12cd+-0x6b6,_0x2746cb=_0x2d98a6*_0x1ac3c5,_0x22eb23=_0x2746cb>0x307*0x1+0x224b+-0x2552?_0x2af327[_0x4737a0(0x1ce,'\x45\x50\x5d\x26')](0x2061+0x1*-0x8b3+-0x17ad,_0x5cea8a/_0x2746cb):-0x8fa*-0x3+-0x26ea+0xbfc,_0x3843f7=_0x4acf84-(_0x18ee15-_0x377aa4)*_0x22eb23;return _0x35b288[_0x4737a0(0x1de,'\x7a\x37\x59\x6d')](0x2*0x45d+0xe6f+-0x1728,(0x2*-0xc5f+0xa7f*-0x1+-0x2b6*-0xd)/_0x274ed6['\x73\x71\x72\x74'](_0x42ea7d)+_0x3843f7);}}let _0x3f180c=computeDriftIntensity(_0x44150b,_0x2551d9[_0x4737a0(0x204,'\x6c\x32\x66\x49')+_0x4737a0(0x1be,'\x40\x75\x55\x55')]??0x4af+0x16ad+-0x1b5c);if(_0x2551d9[_0x4737a0(0x1c4,'\x31\x6b\x52\x37')]?.[_0x4737a0(0x1f3,'\x6a\x29\x7a\x65')])_0x3f180c=Math[_0x4737a0(0x1e7,'\x7a\x37\x59\x6d')](_0x3f180c,_0x2551d9[_0x4737a0(0x1dc,'\x6b\x52\x37\x58')][_0x4737a0(0x1e6,'\x62\x4b\x42\x30')]===_0x4737a0(0x1d5,'\x51\x66\x26\x52')?-0x19c2+-0x15a6+0x2f69:0x1f3*-0xd+-0x1*-0x224a+-0x1*0x8f3+0.7);if(_0x422181()>=_0x3f180c)return{'\x64\x72\x69\x66\x74\x4d\x6f\x64\x65':_0x4737a0(0x1cd,'\x6c\x61\x74\x6e')+_0x4737a0(0x1f8,'\x74\x67\x32\x6b'),'\x69\x6e\x64\x65\x78':0x0,'\x69\x6e\x74\x65\x6e\x73\x69\x74\x79':_0x3f180c};const _0x2b712b=explorationWindowSize(_0x44150b,_0x2551d9),_0x4013df=Math[_0x4737a0(0x1f2,'\x6a\x29\x7a\x65')](_0x2b712b-(0x1b21+0x2366+-0x3e86),Math[_0x4737a0(0x1c2,'\x6f\x5d\x33\x24')](0xa3d+-0x62*-0x3a+-0x2071,Math[_0x4737a0(0x1ef,'\x6f\x5d\x33\x24')](_0x422181()*_0x2b712b)));return{'\x64\x72\x69\x66\x74\x4d\x6f\x64\x65':_0x2551d9[_0x4737a0(0x1da,'\x5d\x62\x24\x64')]?.[_0x4737a0(0x20b,'\x62\x4b\x42\x30')]?_0x4737a0(0x1f0,'\x4e\x67\x5a\x54')+_0x4737a0(0x1ea,'\x38\x34\x6d\x75'):_0x4737a0(0x211,'\x36\x6e\x46\x77'),'\x69\x6e\x64\x65\x78':_0x4013df,'\x69\x6e\x74\x65\x6e\x73\x69\x74\x79':_0x3f180c};}function _0x58bf(){const _0x348643=['\x57\x51\x37\x63\x55\x61\x61\x77\x57\x35\x74\x63\x4e\x38\x6b\x59\x43\x61','\x57\x52\x4e\x63\x4c\x32\x31\x68\x57\x51\x4a\x64\x49\x6d\x6b\x77\x57\x36\x54\x66\x6a\x78\x5a\x64\x4f\x47','\x57\x51\x4a\x64\x4f\x38\x6f\x71\x6b\x73\x72\x30\x57\x36\x56\x64\x48\x47','\x61\x71\x56\x64\x54\x58\x78\x64\x4c\x63\x62\x31\x57\x50\x53','\x57\x35\x76\x79\x68\x6d\x6f\x6f\x57\x4f\x2f\x64\x4b\x5a\x30','\x57\x36\x6d\x41\x57\x52\x4f\x44\x46\x72\x68\x63\x4a\x67\x38\x6d\x57\x35\x33\x63\x4b\x38\x6f\x62','\x57\x50\x61\x45\x57\x51\x56\x64\x52\x74\x53\x4f\x57\x35\x4a\x63\x55\x47','\x57\x4f\x30\x2b\x6c\x61','\x66\x78\x58\x51','\x57\x50\x33\x63\x4d\x66\x56\x63\x49\x43\x6b\x4e\x6c\x76\x62\x36','\x57\x50\x4a\x63\x4d\x38\x6b\x77\x63\x6d\x6b\x56\x57\x51\x62\x48\x57\x52\x4b','\x72\x58\x52\x64\x51\x53\x6f\x54\x57\x37\x6a\x78\x57\x52\x66\x4d\x57\x50\x62\x72\x57\x4f\x6d','\x61\x67\x43\x4a\x57\x36\x35\x7a\x61\x61\x4b','\x67\x38\x6f\x4b\x57\x50\x74\x64\x4d\x38\x6f\x72\x57\x37\x4b','\x65\x77\x7a\x57\x63\x62\x4b','\x57\x50\x5a\x64\x4a\x77\x34','\x75\x76\x64\x64\x54\x57\x42\x64\x54\x48\x71','\x6f\x53\x6f\x59\x57\x52\x37\x63\x4d\x43\x6b\x42\x43\x6d\x6b\x56\x57\x4f\x4f','\x57\x50\x30\x77\x57\x36\x48\x6b','\x57\x34\x2f\x64\x4a\x53\x6b\x4f\x65\x47','\x77\x64\x75\x33\x77\x30\x68\x63\x52\x4d\x69\x44','\x7a\x32\x61\x38','\x57\x50\x61\x35\x57\x37\x39\x30\x71\x61','\x57\x4f\x70\x63\x49\x53\x6f\x36\x6d\x43\x6f\x6b\x64\x59\x2f\x63\x4c\x47','\x78\x76\x6a\x50\x57\x34\x46\x63\x51\x71','\x61\x57\x74\x63\x54\x66\x5a\x63\x53\x62\x50\x51\x57\x50\x76\x78\x42\x38\x6f\x4e','\x46\x64\x4e\x64\x51\x43\x6f\x49\x44\x57','\x76\x78\x38\x4f','\x71\x4a\x43\x64\x72\x47','\x57\x50\x33\x63\x4d\x53\x6f\x58\x6a\x38\x6b\x59\x57\x51\x35\x74\x57\x52\x46\x64\x56\x57','\x57\x50\x46\x64\x51\x5a\x71','\x57\x36\x42\x64\x47\x5a\x65\x72\x57\x36\x5a\x63\x4b\x47','\x63\x58\x4a\x63\x4b\x43\x6b\x62\x57\x36\x53\x39\x70\x57','\x57\x35\x2f\x64\x56\x38\x6f\x79\x57\x51\x37\x63\x48\x6d\x6f\x53\x6b\x61','\x57\x36\x4e\x63\x55\x32\x75\x77\x6b\x47','\x6f\x6d\x6f\x37\x57\x51\x37\x63\x4d\x6d\x6b\x78\x79\x38\x6b\x2f','\x67\x57\x71\x51\x57\x50\x4e\x64\x4b\x30\x7a\x33\x57\x50\x6d\x68\x57\x52\x68\x63\x4d\x43\x6b\x6c','\x73\x73\x31\x57\x67\x59\x35\x53\x57\x37\x74\x64\x51\x47','\x76\x67\x74\x63\x4b\x43\x6f\x50\x63\x68\x4a\x64\x4d\x4d\x30','\x64\x59\x74\x64\x4e\x38\x6f\x77\x57\x4f\x4c\x4a\x46\x5a\x31\x33\x57\x52\x71\x48\x57\x4f\x6d','\x76\x53\x6f\x52\x79\x48\x72\x59\x71\x47','\x65\x43\x6f\x58\x57\x4f\x38\x4f\x57\x37\x31\x6e\x57\x37\x4f\x6b','\x71\x53\x6f\x65\x41\x61','\x57\x4f\x48\x65\x63\x43\x6f\x7a\x57\x4f\x30','\x57\x37\x4a\x64\x50\x38\x6f\x75\x43\x38\x6f\x6c','\x57\x34\x64\x63\x4c\x74\x62\x35\x57\x34\x35\x54\x6c\x6d\x6b\x45\x43\x47','\x77\x53\x6f\x48\x45\x61','\x57\x52\x4c\x64\x6f\x38\x6f\x30\x57\x52\x43','\x57\x35\x5a\x64\x48\x38\x6b\x47\x63\x53\x6b\x4e\x57\x51\x35\x4a','\x57\x4f\x70\x64\x47\x78\x66\x76\x57\x35\x44\x2b\x64\x6d\x6b\x6d','\x66\x78\x72\x38','\x57\x34\x76\x41\x57\x37\x52\x63\x56\x4e\x50\x46\x57\x34\x74\x63\x4e\x78\x50\x51\x57\x4f\x79\x6e','\x65\x5a\x6e\x74\x57\x4f\x4f\x67\x6d\x6d\x6f\x44\x46\x47','\x71\x43\x6b\x4b\x57\x51\x57\x37\x57\x36\x6a\x70\x57\x36\x71\x43','\x57\x37\x5a\x63\x55\x4e\x71\x77\x70\x6d\x6b\x46\x57\x35\x30','\x6a\x43\x6f\x32\x57\x52\x43','\x57\x34\x4a\x63\x49\x58\x47\x48\x57\x35\x61\x34\x66\x61','\x45\x53\x6b\x4e\x57\x37\x37\x64\x4d\x53\x6f\x62\x6e\x53\x6b\x4f\x57\x52\x4e\x63\x4d\x53\x6b\x64\x57\x36\x58\x4c','\x57\x50\x4a\x63\x4a\x65\x53','\x57\x34\x56\x63\x55\x33\x30\x2b\x63\x47\x79\x67\x57\x4f\x52\x64\x48\x65\x30\x73','\x72\x67\x33\x63\x48\x43\x6f\x34','\x72\x73\x4b\x66\x75\x30\x70\x63\x48\x4d\x69\x6d','\x57\x52\x56\x64\x56\x6d\x6b\x75\x57\x36\x56\x63\x4b\x72\x79\x4b','\x57\x4f\x42\x63\x47\x66\x70\x64\x4a\x43\x6f\x4a\x57\x36\x5a\x63\x47\x58\x71','\x61\x6d\x6f\x73\x57\x34\x76\x54\x77\x30\x7a\x48','\x71\x53\x6f\x57\x57\x34\x50\x62\x75\x77\x62\x35\x6d\x47','\x71\x31\x42\x64\x54\x71\x52\x64\x53\x48\x48\x54\x57\x4f\x4b','\x57\x50\x4a\x63\x48\x66\x30','\x57\x52\x78\x64\x54\x53\x6f\x4b\x6b\x61\x6d','\x63\x4a\x31\x46','\x68\x53\x6f\x31\x57\x4f\x4e\x64\x4c\x6d\x6f\x74','\x57\x37\x2f\x63\x53\x32\x6d\x68\x6b\x38\x6b\x78\x57\x35\x57\x78','\x71\x53\x6f\x6d\x46\x47','\x6f\x74\x31\x47\x61\x59\x37\x64\x4d\x53\x6b\x39\x68\x53\x6b\x4d\x77\x59\x4a\x63\x4d\x61','\x62\x43\x6f\x34\x57\x50\x4f\x35\x57\x36\x50\x62\x57\x36\x79','\x57\x50\x5a\x64\x50\x49\x6e\x48\x73\x57','\x72\x38\x6f\x4b\x44\x57\x4c\x48\x72\x53\x6b\x50\x57\x37\x79','\x57\x52\x78\x63\x4c\x43\x6b\x78\x6a\x6d\x6b\x5a\x57\x51\x2f\x63\x55\x47','\x68\x4e\x2f\x64\x4a\x61','\x65\x4e\x78\x64\x4c\x4d\x61\x78\x63\x61','\x57\x50\x4b\x6e\x57\x52\x4f','\x45\x38\x6b\x4a\x57\x37\x33\x64\x4d\x38\x6f\x61\x6e\x43\x6b\x47\x57\x4f\x6c\x63\x4d\x6d\x6b\x69\x57\x34\x48\x4b','\x57\x34\x74\x63\x52\x71\x42\x63\x4c\x6d\x6b\x39\x57\x35\x48\x4c\x6b\x61','\x66\x74\x56\x64\x56\x73\x47\x34\x64\x43\x6f\x36\x77\x5a\x42\x64\x50\x71\x61','\x74\x33\x2f\x63\x56\x4e\x6a\x52','\x67\x78\x7a\x57\x63\x61\x58\x79','\x66\x48\x78\x63\x49\x61'];_0x58bf=function(){return _0x348643;};return _0x58bf();}
|
package/dist/algo/geneHealth.js
CHANGED
|
@@ -1,17 +1 @@
|
|
|
1
|
-
export const HEALTH_WEIGHTS_VERSION = '
|
|
2
|
-
export const DEFAULT_HEALTH_WEIGHTS = { successRate: 0.6, reuse: 0.1, antiPattern: 0.4 };
|
|
3
|
-
/** reuseCount 归一(对数压缩, 复用越多分越高但边际递减). */
|
|
4
|
-
function reuseScore(count) {
|
|
5
|
-
return count <= 0 ? 0 : Math.min(1, Math.log10(count + 1) / 2); // 100 次≈封顶
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* gene 健康分 = successRate·(w1 + w2·reuse归一) − w3·antiPattern密度.
|
|
9
|
-
* 输入 = M3-6 聚合视图(不内联 learning_history) + anti_patterns 数 + 复用计数.
|
|
10
|
-
*/
|
|
11
|
-
export function geneHealthScore(view, opts = {}, w = DEFAULT_HEALTH_WEIGHTS) {
|
|
12
|
-
const reuseCount = opts.reuseCount ?? view.total;
|
|
13
|
-
const antiPatternPenalty = Math.min(1, (opts.antiPatternCount ?? 0) / 5); // 5+ anti-pattern 封顶惩罚
|
|
14
|
-
const confidenceAdjustedSuccess = view.successRate * (w.successRate + w.reuse * reuseScore(reuseCount));
|
|
15
|
-
const score = confidenceAdjustedSuccess - w.antiPattern * antiPatternPenalty;
|
|
16
|
-
return { geneId: view.geneId, successRate: view.successRate, reuseCount, antiPatternPenalty, score };
|
|
17
|
-
}
|
|
1
|
+
const _0x4003db=_0x59c6;(function(_0x5c44a9,_0x3d552f){const _0x599ba8=_0x59c6,_0x2c2751=_0x5c44a9();while(!![]){try{const _0x35a799=parseInt(_0x599ba8(0x14c,'\x42\x50\x7a\x6d'))/(0x7*0x1e3+0x5c6+-0x12fa)+-parseInt(_0x599ba8(0x13d,'\x4d\x67\x42\x63'))/(-0xd5+0xf5+-0x1e)+-parseInt(_0x599ba8(0x159,'\x48\x47\x49\x4c'))/(-0x10ab+0x789+0x1*0x925)*(parseInt(_0x599ba8(0x13f,'\x30\x41\x6b\x46'))/(-0x7*-0x1b3+0x8*-0x39c+0xe5*0x13))+parseInt(_0x599ba8(0x14f,'\x26\x34\x73\x25'))/(0x31+-0xb49*-0x1+-0xb75)+-parseInt(_0x599ba8(0x147,'\x24\x5a\x73\x70'))/(-0x10*0x7a+0x1*0x18fd+-0x1157*0x1)+-parseInt(_0x599ba8(0x158,'\x52\x59\x67\x76'))/(-0x3d*0x7a+-0x12dc+0x2ff5)+parseInt(_0x599ba8(0x150,'\x48\x47\x49\x4c'))/(0x75*-0x47+0x101*0x1d+-0x35e*-0x1)*(parseInt(_0x599ba8(0x157,'\x34\x49\x74\x52'))/(-0x1*-0x127b+0x2*-0x1069+-0x4*-0x398));if(_0x35a799===_0x3d552f)break;else _0x2c2751['push'](_0x2c2751['shift']());}catch(_0x17cdf5){_0x2c2751['push'](_0x2c2751['shift']());}}}(_0x15ce,-0x915c4*-0x1+0x9*0x6ed6+-0x2f9e2));function _0x59c6(_0x3fce89,_0x36bc4c){_0x3fce89=_0x3fce89-(-0x1147+0x3*-0x56f+-0x1168*-0x2);const _0x5a472a=_0x15ce();let _0x3a102c=_0x5a472a[_0x3fce89];if(_0x59c6['\x67\x68\x71\x65\x64\x77']===undefined){var _0x1e1b96=function(_0x2d4672){const _0x2b55f3='\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 _0x1b57e0='',_0x38e300='';for(let _0x2851aa=0x1*-0x89+-0x4c*-0x2b+-0xc3b*0x1,_0x1a6c47,_0x54b7c8,_0x3e5f6c=-0x359*-0x9+-0xb73+-0x12ae;_0x54b7c8=_0x2d4672['\x63\x68\x61\x72\x41\x74'](_0x3e5f6c++);~_0x54b7c8&&(_0x1a6c47=_0x2851aa%(-0x88a+-0x1263*-0x1+-0x9d5)?_0x1a6c47*(0x6f*0x1+0x13ca+0x1*-0x13f9)+_0x54b7c8:_0x54b7c8,_0x2851aa++%(-0x277*-0x1+0x7c0+0xa33*-0x1))?_0x1b57e0+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x2aa+0x31*0x99+-0x19a0&_0x1a6c47>>(-(0x1337+0x2510+-0x3845)*_0x2851aa&0x1475*-0x1+0x713*-0x5+0x37da)):-0x22c7+-0x117e*0x2+0x45c3){_0x54b7c8=_0x2b55f3['\x69\x6e\x64\x65\x78\x4f\x66'](_0x54b7c8);}for(let _0x3e3462=-0x26*-0x67+0xf*0x169+-0x1eb*0x13,_0xc724a9=_0x1b57e0['\x6c\x65\x6e\x67\x74\x68'];_0x3e3462<_0xc724a9;_0x3e3462++){_0x38e300+='\x25'+('\x30\x30'+_0x1b57e0['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3e3462)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x1aed+0x11cd+-0x30*-0x31))['\x73\x6c\x69\x63\x65'](-(-0x55d*0x2+0x144f+-0x993));}return decodeURIComponent(_0x38e300);};const _0x20393c=function(_0x441df2,_0x255d23){let _0x3b33ca=[],_0x35fa75=0x2343+0x1*-0x40d+-0x1f36,_0x5716b4,_0x4a5b87='';_0x441df2=_0x1e1b96(_0x441df2);let _0x2fec78;for(_0x2fec78=-0x11ef+-0xaa0+0x1c8f;_0x2fec78<-0xa96+0x637*-0x3+0x1e3b;_0x2fec78++){_0x3b33ca[_0x2fec78]=_0x2fec78;}for(_0x2fec78=-0x1547+0x286+0x12c1;_0x2fec78<-0x1fd7+0x2617+-0x540;_0x2fec78++){_0x35fa75=(_0x35fa75+_0x3b33ca[_0x2fec78]+_0x255d23['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2fec78%_0x255d23['\x6c\x65\x6e\x67\x74\x68']))%(0x1e4*-0x5+0x1891+0xe1d*-0x1),_0x5716b4=_0x3b33ca[_0x2fec78],_0x3b33ca[_0x2fec78]=_0x3b33ca[_0x35fa75],_0x3b33ca[_0x35fa75]=_0x5716b4;}_0x2fec78=-0x1427*0x1+0x1df1+-0x9ca*0x1,_0x35fa75=0x1bf6+0x1*-0xbb3+0x1043*-0x1;for(let _0x3d76da=0x6e0+0x247f+-0x2b5f;_0x3d76da<_0x441df2['\x6c\x65\x6e\x67\x74\x68'];_0x3d76da++){_0x2fec78=(_0x2fec78+(0x155*0x11+-0x57d*0x1+-0x1127*0x1))%(-0x214c+-0x1525+0x3771),_0x35fa75=(_0x35fa75+_0x3b33ca[_0x2fec78])%(-0xc1c+0x299*-0xa+0x2716),_0x5716b4=_0x3b33ca[_0x2fec78],_0x3b33ca[_0x2fec78]=_0x3b33ca[_0x35fa75],_0x3b33ca[_0x35fa75]=_0x5716b4,_0x4a5b87+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x441df2['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3d76da)^_0x3b33ca[(_0x3b33ca[_0x2fec78]+_0x3b33ca[_0x35fa75])%(-0x15bf+-0x198b+0x304a)]);}return _0x4a5b87;};_0x59c6['\x43\x5a\x49\x6f\x67\x70']=_0x20393c,_0x59c6['\x6d\x73\x43\x58\x55\x4b']={},_0x59c6['\x67\x68\x71\x65\x64\x77']=!![];}const _0xbe18a=_0x5a472a[0x1b19+0x1d1e*0x1+-0x1*0x3837],_0x2eacaa=_0x3fce89+_0xbe18a,_0x30dbc5=_0x59c6['\x6d\x73\x43\x58\x55\x4b'][_0x2eacaa];return!_0x30dbc5?(_0x59c6['\x67\x74\x65\x78\x4c\x4a']===undefined&&(_0x59c6['\x67\x74\x65\x78\x4c\x4a']=!![]),_0x3a102c=_0x59c6['\x43\x5a\x49\x6f\x67\x70'](_0x3a102c,_0x36bc4c),_0x59c6['\x6d\x73\x43\x58\x55\x4b'][_0x2eacaa]=_0x3a102c):_0x3a102c=_0x30dbc5,_0x3a102c;}export const HEALTH_WEIGHTS_VERSION=_0x4003db(0x155,'\x26\x34\x73\x25');export const DEFAULT_HEALTH_WEIGHTS={'\x73\x75\x63\x63\x65\x73\x73\x52\x61\x74\x65':0.6,'\x72\x65\x75\x73\x65':0.1,'\x61\x6e\x74\x69\x50\x61\x74\x74\x65\x72\x6e':0.4};function reuseScore(_0x19cc79){const _0x4a3825=_0x4003db;return _0x19cc79<=0x1be+0xd29*0x1+-0xee7?-0xaed+-0x14a1+0xfc7*0x2:Math[_0x4a3825(0x156,'\x2a\x21\x47\x62')](0x485+0x1a5a+-0x1ede,Math[_0x4a3825(0x14d,'\x4a\x34\x64\x25')](_0x19cc79+(-0x1483+0x1fcd+0x6b*-0x1b))/(0x5*0x322+-0x1163*0x1+0x1bb));}export function geneHealthScore(_0x22b7f1,_0x1443a6={},_0x1d4355=DEFAULT_HEALTH_WEIGHTS){const _0x60ba61=_0x4003db,_0x21246e=_0x1443a6['\x72\x65\x75\x73\x65\x43\x6f\x75'+'\x6e\x74']??_0x22b7f1['\x74\x6f\x74\x61\x6c'],_0x22c425=Math[_0x60ba61(0x13c,'\x42\x70\x35\x46')](0x11cd+-0x3*0xa97+0xdf9,(_0x1443a6[_0x60ba61(0x14e,'\x35\x23\x24\x45')+_0x60ba61(0x14a,'\x6c\x72\x6a\x35')]??0x144f+0x1665+-0x2ab4)/(0x2343+0x1*-0x40d+-0x1f31)),_0x18eedd=_0x22b7f1['\x73\x75\x63\x63\x65\x73\x73\x52'+_0x60ba61(0x154,'\x5d\x44\x74\x5e')]*(_0x1d4355[_0x60ba61(0x153,'\x48\x47\x49\x4c')+_0x60ba61(0x141,'\x24\x5a\x73\x70')]+_0x1d4355[_0x60ba61(0x15a,'\x35\x23\x24\x45')]*reuseScore(_0x21246e)),_0x2aac73=_0x18eedd-_0x1d4355['\x61\x6e\x74\x69\x50\x61\x74\x74'+_0x60ba61(0x142,'\x46\x47\x57\x51')]*_0x22c425;return{'\x67\x65\x6e\x65\x49\x64':_0x22b7f1[_0x60ba61(0x13e,'\x63\x6a\x28\x64')],'\x73\x75\x63\x63\x65\x73\x73\x52\x61\x74\x65':_0x22b7f1[_0x60ba61(0x149,'\x70\x4b\x79\x44')+'\x61\x74\x65'],'\x72\x65\x75\x73\x65\x43\x6f\x75\x6e\x74':_0x21246e,'\x61\x6e\x74\x69\x50\x61\x74\x74\x65\x72\x6e\x50\x65\x6e\x61\x6c\x74\x79':_0x22c425,'\x73\x63\x6f\x72\x65':_0x2aac73};}function _0x15ce(){const _0x4ee90d=['\x6e\x53\x6b\x32\x57\x35\x46\x64\x4a\x43\x6f\x35','\x76\x43\x6f\x46\x57\x36\x54\x44\x68\x38\x6f\x38\x7a\x43\x6f\x78','\x42\x65\x78\x63\x50\x53\x6f\x75\x57\x52\x78\x64\x53\x64\x48\x4c\x57\x52\x42\x63\x47\x65\x75\x54','\x57\x35\x33\x63\x55\x48\x52\x64\x50\x38\x6b\x51\x6a\x4d\x75','\x43\x43\x6f\x75\x78\x4a\x33\x64\x47\x68\x34\x53','\x57\x34\x61\x69\x6f\x65\x79\x68\x44\x65\x4b\x4d\x74\x74\x46\x63\x53\x4b\x6d\x34','\x57\x50\x42\x63\x4f\x58\x64\x64\x53\x6d\x6b\x55\x6c\x75\x78\x63\x54\x57','\x64\x57\x68\x63\x4f\x47','\x70\x58\x2f\x63\x55\x6d\x6f\x76','\x42\x4c\x66\x48','\x73\x53\x6b\x70\x69\x63\x6a\x36\x57\x36\x46\x64\x49\x53\x6b\x6b\x6d\x4e\x5a\x63\x4d\x43\x6f\x52\x61\x71','\x69\x65\x2f\x64\x4d\x64\x56\x64\x49\x43\x6f\x69\x57\x50\x6c\x64\x4c\x78\x69\x51\x44\x43\x6f\x67','\x57\x35\x70\x63\x50\x71\x64\x64\x4e\x38\x6b\x69\x64\x67\x69','\x72\x53\x6f\x75\x57\x36\x50\x68\x6b\x47','\x6a\x6d\x6f\x72\x77\x71','\x57\x34\x31\x6b\x64\x4d\x53\x44\x68\x73\x54\x64\x65\x38\x6f\x6e\x57\x36\x52\x63\x52\x57','\x57\x34\x52\x63\x52\x68\x78\x64\x4a\x66\x64\x63\x4a\x57','\x6b\x4b\x4c\x46\x57\x50\x6d\x4e\x72\x43\x6b\x56\x71\x6d\x6b\x4d\x6c\x53\x6f\x32\x57\x51\x52\x63\x50\x47','\x57\x51\x38\x44\x57\x4f\x4a\x63\x4b\x43\x6f\x37\x73\x43\x6b\x65','\x57\x37\x6e\x57\x72\x61','\x57\x52\x61\x32\x62\x71','\x6a\x4c\x33\x64\x53\x77\x6e\x6a\x6d\x43\x6b\x58\x57\x36\x42\x64\x53\x6d\x6f\x61\x78\x38\x6b\x77','\x57\x34\x69\x37\x57\x50\x70\x64\x48\x67\x7a\x4c\x64\x53\x6b\x4c\x73\x4a\x64\x63\x49\x33\x48\x49','\x43\x38\x6f\x43\x61\x43\x6b\x52\x57\x51\x4e\x63\x52\x43\x6f\x31\x57\x37\x66\x62\x57\x34\x52\x64\x52\x4e\x61\x61','\x42\x30\x74\x63\x4f\x6d\x6f\x71\x57\x52\x70\x64\x54\x47\x62\x67\x57\x4f\x56\x63\x4a\x65\x71\x32','\x57\x51\x61\x31\x66\x48\x42\x64\x52\x61\x43\x2b\x57\x50\x6c\x64\x53\x38\x6b\x59\x57\x37\x42\x64\x53\x73\x79','\x66\x53\x6b\x36\x57\x36\x33\x63\x56\x4e\x74\x63\x52\x38\x6b\x42\x57\x4f\x4e\x63\x4b\x4a\x6e\x42\x57\x34\x30\x36','\x69\x78\x52\x63\x54\x38\x6b\x34\x6f\x4e\x54\x2b\x57\x36\x6d','\x43\x6d\x6f\x46\x57\x36\x46\x64\x4f\x4b\x43\x68\x57\x51\x33\x64\x4e\x47','\x57\x52\x66\x6f\x57\x52\x78\x63\x4d\x38\x6f\x46\x76\x53\x6b\x51\x57\x50\x6e\x45\x57\x51\x70\x63\x4a\x38\x6b\x74','\x57\x34\x65\x36\x57\x50\x70\x64\x47\x32\x50\x4d\x63\x6d\x6b\x78\x73\x71\x56\x63\x50\x4d\x76\x79'];_0x15ce=function(){return _0x4ee90d;};return _0x15ce();}
|
package/dist/algo/geneIntake.js
CHANGED
|
@@ -1,128 +1 @@
|
|
|
1
|
-
// Gene intake — the structural part of skill distillation (ported from v1 src/gep/skillDistiller.js).
|
|
2
|
-
// v2's solidify produces Capsules but never Genes, so the reusable gene pool is otherwise static (only
|
|
3
|
-
// seeded/imported). This is the safe INTAKE gate for a distilled/proposed gene before it joins the pool:
|
|
4
|
-
// normalize defaults, validate structure + the gep-sdk schema, recompute asset_id, and reject a gene whose
|
|
5
|
-
// signals fully overlap an existing one (dedup, so the pool does not grow redundant). The gene's CONTENT
|
|
6
|
-
// is generated upstream (the agent runtime / a distillation prompt — generative, out of core scope); this
|
|
7
|
-
// slice is the structural gate. Pairs with capabilityCandidates (which proposes what to distill).
|
|
8
|
-
import { computeAssetId, validateWire, SCHEMA_VERSION, normalizeRoutingHint, normalizeToolPolicy, normalizeGenerationMeta, stripGeneHints, } from '../wire/index.js';
|
|
9
|
-
const VALID_CATEGORIES = ['repair', 'optimize', 'innovate', 'explore'];
|
|
10
|
-
const DEFAULT_FORBIDDEN_PATHS = ['.git', 'node_modules'];
|
|
11
|
-
const DEFAULT_MAX_FILES = 12;
|
|
12
|
-
/** Id prefix every distilled (skill-derived) gene carries. Recognised via {@link isDistilledGeneId}. */
|
|
13
|
-
const DISTILLED_ID_PREFIX = 'gene_distilled_';
|
|
14
|
-
/**
|
|
15
|
-
* True when a gene id is in the `gene_distilled_` namespace. NB this prefix is now a NAMESPACE marker, NOT a
|
|
16
|
-
* provenance tag: v1 used it to mean "skill-derived" (auto-evolved genes were `gene_auto_`), but v2's intakeGene
|
|
17
|
-
* tags EVERY intaken gene this way regardless of origin. The authoritative provenance is {@link geneGenerationSource};
|
|
18
|
-
* this prefix check remains as a back-compat fallback for legacy pooled genes that predate generation_meta, and for
|
|
19
|
-
* call sites that only have a gene id (not the full record).
|
|
20
|
-
*/
|
|
21
|
-
export function isDistilledGeneId(id) {
|
|
22
|
-
return typeof id === 'string' && id.startsWith(DISTILLED_ID_PREFIX);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* The authoritative gene-generation source: read `generation_meta.source` from a gene-shaped record (V1 #302). Falls
|
|
26
|
-
* back to the id-prefix namespace when the record carries no generation_meta (legacy pooled genes predate the field),
|
|
27
|
-
* returning 'distilled' for a `gene_distilled_` id and 'manual' otherwise — so the fallback never claims a higher
|
|
28
|
-
* provenance tier than the prefix can vouch for. `null` means "undetermined" (no record, no recognizable id).
|
|
29
|
-
*/
|
|
30
|
-
export function geneGenerationSource(gene, geneId) {
|
|
31
|
-
const meta = gene?.['generation_meta'];
|
|
32
|
-
if (meta && typeof meta === 'object') {
|
|
33
|
-
const src = meta['source'];
|
|
34
|
-
if (typeof src === 'string' && (src === 'evolved' || src === 'distilled' || src === 'manual'))
|
|
35
|
-
return src;
|
|
36
|
-
}
|
|
37
|
-
// Legacy fallback: a `gene_distilled_` id is at best a distilled gene (v2 minted it for ALL intake sources, so it
|
|
38
|
-
// cannot be trusted as "evolved"); any other id is treated as manual (human-authored / externally seeded).
|
|
39
|
-
const id = geneId ?? (typeof gene?.['id'] === 'string' ? String(gene['id']) : null);
|
|
40
|
-
if (id && isDistilledGeneId(id))
|
|
41
|
-
return 'distilled';
|
|
42
|
-
if (id)
|
|
43
|
-
return 'manual';
|
|
44
|
-
return null;
|
|
45
|
-
}
|
|
46
|
-
function fnv1a(s) {
|
|
47
|
-
let h = 2166136261;
|
|
48
|
-
for (let i = 0; i < s.length; i++) {
|
|
49
|
-
h ^= s.charCodeAt(i);
|
|
50
|
-
h = Math.imul(h, 16777619);
|
|
51
|
-
}
|
|
52
|
-
return (h >>> 0).toString(16).padStart(8, '0');
|
|
53
|
-
}
|
|
54
|
-
const clean = (xs) => (xs ?? []).map((s) => String(s).trim()).filter((s) => s.length > 0);
|
|
55
|
-
/** Returns the id of an existing gene whose signals are a superset of `signals` (i.e. the candidate is redundant), else null. */
|
|
56
|
-
function fullyOverlaps(signals, existing) {
|
|
57
|
-
const newSet = signals.map((s) => s.toLowerCase());
|
|
58
|
-
for (const eg of existing) {
|
|
59
|
-
const egSet = new Set((eg.signals_match ?? []).map((s) => String(s).toLowerCase()));
|
|
60
|
-
if (egSet.size === 0)
|
|
61
|
-
continue;
|
|
62
|
-
if (newSet.every((s) => egSet.has(s)))
|
|
63
|
-
return eg.id ?? '?';
|
|
64
|
-
}
|
|
65
|
-
return null;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Validate + normalize a distilled/proposed gene for pool insertion. On success returns the canonical Gene
|
|
69
|
-
* (defaults filled, asset_id computed); otherwise the structural / dedup / schema errors.
|
|
70
|
-
*/
|
|
71
|
-
export function intakeGene(candidate, existing = []) {
|
|
72
|
-
const errors = [];
|
|
73
|
-
const signals = clean(candidate.signals_match);
|
|
74
|
-
const strategy = clean(candidate.strategy);
|
|
75
|
-
if (signals.length === 0)
|
|
76
|
-
errors.push('signals_match is empty');
|
|
77
|
-
if (strategy.length === 0)
|
|
78
|
-
errors.push('strategy is empty');
|
|
79
|
-
if (signals.length > 0) {
|
|
80
|
-
const dup = fullyOverlaps(signals, existing);
|
|
81
|
-
if (dup)
|
|
82
|
-
errors.push(`signals_match fully overlaps existing gene: ${dup}`);
|
|
83
|
-
}
|
|
84
|
-
if (errors.length > 0)
|
|
85
|
-
return { ok: false, errors };
|
|
86
|
-
const category = VALID_CATEGORIES.includes(candidate.category) ? candidate.category : 'optimize';
|
|
87
|
-
const id = candidate.id && candidate.id.startsWith(DISTILLED_ID_PREFIX) ? candidate.id : `${DISTILLED_ID_PREFIX}${fnv1a(signals.join('|'))}`;
|
|
88
|
-
// v2-delta EvoX hints (v1 PR #93): normalized so a candidate carrying them lands canonical, dropped to
|
|
89
|
-
// absent when malformed/empty. The router / tool-gate reads absent === "no opinion".
|
|
90
|
-
const routingHint = normalizeRoutingHint(candidate.routing_hint);
|
|
91
|
-
const toolPolicy = normalizeToolPolicy(candidate.tool_policy);
|
|
92
|
-
// v2-delta provenance + quality metadata (v1 #302): normalized so a candidate carrying it lands canonical,
|
|
93
|
-
// dropped to absent when malformed/no-recognized-source.
|
|
94
|
-
const generationMeta = normalizeGenerationMeta(candidate.generation_meta);
|
|
95
|
-
const gene = {
|
|
96
|
-
type: 'Gene',
|
|
97
|
-
schema_version: SCHEMA_VERSION,
|
|
98
|
-
id,
|
|
99
|
-
category,
|
|
100
|
-
signals_match: signals,
|
|
101
|
-
strategy,
|
|
102
|
-
constraints: {
|
|
103
|
-
max_files: candidate.constraints?.max_files ?? DEFAULT_MAX_FILES,
|
|
104
|
-
forbidden_paths: [...(candidate.constraints?.forbidden_paths ?? DEFAULT_FORBIDDEN_PATHS)],
|
|
105
|
-
},
|
|
106
|
-
validation: candidate.validation ? [...candidate.validation] : [],
|
|
107
|
-
summary: candidate.summary ?? `Strategy for: ${signals.slice(0, 3).join(', ')}`,
|
|
108
|
-
...(candidate.preconditions ? { preconditions: [...candidate.preconditions] } : {}),
|
|
109
|
-
...(routingHint ? { routing_hint: routingHint } : {}),
|
|
110
|
-
...(toolPolicy ? { tool_policy: toolPolicy } : {}),
|
|
111
|
-
...(generationMeta ? { generation_meta: generationMeta } : {}),
|
|
112
|
-
asset_id: '',
|
|
113
|
-
};
|
|
114
|
-
// asset_id folds in the hints + generation_meta (intake's own canonical shape — gep-sdk canonicalize hashes every
|
|
115
|
-
// own key). NB: this is NOT byte-equal to what v1's createGene would hash for the same logical gene — v1 always emits
|
|
116
|
-
// routing_hint/tool_policy:null plus empty epigenetic_marks/learning_history/anti_patterns/preconditions that
|
|
117
|
-
// v2 intake omits, so the canonical shapes differ. Self-consistent here; not a cross-impl parity guarantee.
|
|
118
|
-
gene.asset_id = computeAssetId(gene) ?? '';
|
|
119
|
-
// Structural gate validates the gep-sdk-known CORE. routing_hint / tool_policy / generation_meta are v2-delta
|
|
120
|
-
// (pending a gene-schema bump), so strip them before the check — else additionalProperties:false rejects the
|
|
121
|
-
// gene at intake. The full hinted gene stays schema-invalid until the SDK catches up — surfaced by the advisory
|
|
122
|
-
// validateWire preview (evolver_gep_build) and enforced by the hub on receipt, NOT by a local egress gate
|
|
123
|
-
// (the publish/egress path is sanitize-only). Same v2-delta contract Capsule's proof_of_work had pre-1.11.0.
|
|
124
|
-
const v = validateWire(stripGeneHints(gene));
|
|
125
|
-
if (!v.ok)
|
|
126
|
-
return { ok: false, errors: v.errors };
|
|
127
|
-
return { ok: true, gene, errors: [] };
|
|
128
|
-
}
|
|
1
|
+
const _0xda0382=_0x4baf;(function(_0x33e5a7,_0x2c9f64){const _0x467fac=_0x4baf,_0x1d54fe=_0x33e5a7();while(!![]){try{const _0x17ad2f=parseInt(_0x467fac(0x149,'\x43\x59\x78\x4b'))/(0x1037+-0x139*-0x5+0x1*-0x1653)+-parseInt(_0x467fac(0x15e,'\x5d\x5e\x21\x41'))/(-0x1*-0x17d5+0xc*0x22e+-0x31fb)+parseInt(_0x467fac(0x13a,'\x28\x73\x76\x23'))/(-0x3*-0xba5+-0x1ae5+-0x807)+-parseInt(_0x467fac(0x11b,'\x6a\x5a\x36\x47'))/(-0x1be6+0xe*-0x1d9+0x35c8)+-parseInt(_0x467fac(0xf4,'\x75\x62\x69\x77'))/(0x907+-0x2551*-0x1+-0x3b*0xc9)*(parseInt(_0x467fac(0xfd,'\x71\x6d\x37\x66'))/(-0x5c6+0x17*-0x56+0xd86))+parseInt(_0x467fac(0x146,'\x75\x62\x69\x77'))/(-0xd*0x1c+-0xb0*-0x15+0x13*-0xaf)+-parseInt(_0x467fac(0x117,'\x7a\x55\x25\x5a'))/(-0x1fef+-0x2604+0x45fb)*(-parseInt(_0x467fac(0x100,'\x5e\x58\x64\x54'))/(-0x136f+0x7bf*0x5+-0x1343));if(_0x17ad2f===_0x2c9f64)break;else _0x1d54fe['push'](_0x1d54fe['shift']());}catch(_0x193c74){_0x1d54fe['push'](_0x1d54fe['shift']());}}}(_0x3e55,-0x2568b+0x1086e7+-0x2e95d));function _0x3e55(){const _0x541a38=['\x57\x35\x76\x52\x42\x74\x34','\x67\x53\x6f\x71\x57\x37\x44\x4f\x57\x4f\x39\x76\x57\x34\x34\x35\x6e\x30\x4e\x64\x47\x77\x6a\x74','\x43\x53\x6f\x30\x6b\x5a\x54\x47','\x41\x6d\x6f\x6a\x71\x57\x2f\x63\x4e\x38\x6b\x67\x6b\x59\x65','\x57\x34\x35\x50\x43\x64\x50\x6a\x45\x43\x6f\x55\x57\x50\x34','\x69\x6d\x6f\x41\x75\x6d\x6b\x62','\x65\x61\x78\x63\x4d\x38\x6b\x6b\x66\x4c\x78\x64\x53\x61','\x68\x59\x65\x6c\x70\x57','\x57\x52\x74\x64\x4a\x6d\x6f\x69\x77\x67\x76\x63\x66\x4b\x37\x63\x4f\x38\x6f\x63\x7a\x75\x56\x64\x56\x57','\x57\x34\x66\x4c\x6b\x33\x4f\x7a\x57\x51\x31\x31\x57\x37\x4f','\x41\x38\x6f\x46\x57\x52\x68\x64\x4a\x31\x71','\x62\x58\x4e\x63\x48\x43\x6b\x74\x68\x4b\x56\x64\x50\x72\x69','\x6e\x67\x33\x63\x47\x6d\x6f\x46\x57\x51\x66\x59\x57\x4f\x4a\x63\x4b\x57','\x68\x58\x54\x62\x46\x53\x6f\x37\x6f\x53\x6f\x59','\x57\x36\x2f\x64\x49\x73\x4b\x53\x57\x36\x4f\x65\x57\x37\x52\x64\x48\x43\x6f\x44\x57\x51\x50\x4e\x57\x4f\x71\x63','\x57\x36\x33\x63\x49\x33\x6e\x49\x45\x78\x76\x35','\x6d\x4e\x61\x79\x57\x52\x38','\x57\x34\x76\x56\x6b\x32\x57\x59\x57\x52\x54\x39\x57\x36\x61','\x57\x52\x68\x64\x52\x53\x6b\x2f\x75\x6d\x6b\x54\x45\x58\x69\x38\x57\x34\x46\x64\x55\x32\x70\x64\x54\x48\x79','\x71\x53\x6b\x69\x57\x52\x7a\x37\x57\x35\x43\x77\x57\x50\x4b\x79','\x75\x38\x6f\x35\x57\x35\x4a\x63\x4e\x38\x6b\x77\x57\x35\x4b','\x78\x30\x68\x64\x4c\x76\x4a\x63\x54\x73\x71','\x57\x51\x68\x64\x49\x53\x6f\x43\x57\x50\x6d','\x45\x53\x6f\x42\x57\x4f\x68\x64\x50\x6d\x6b\x39\x71\x72\x52\x64\x4e\x71','\x61\x43\x6f\x66\x63\x31\x6a\x2b\x76\x6d\x6b\x75\x57\x37\x71','\x68\x63\x76\x6a\x71\x6d\x6f\x50\x6f\x38\x6f\x54\x57\x34\x30','\x57\x36\x52\x63\x52\x43\x6f\x39\x61\x43\x6f\x31\x6a\x4c\x47\x54','\x43\x53\x6f\x64\x57\x36\x5a\x63\x50\x38\x6b\x57','\x57\x36\x6a\x45\x57\x37\x56\x63\x55\x68\x62\x47\x57\x35\x7a\x50','\x57\x35\x78\x64\x48\x4a\x35\x7a','\x57\x37\x35\x71\x57\x37\x37\x63\x56\x57','\x57\x34\x7a\x45\x70\x58\x72\x76\x57\x51\x79\x47\x57\x36\x34','\x66\x38\x6f\x58\x72\x38\x6b\x44','\x57\x34\x50\x4c\x6b\x33\x47\x59\x57\x51\x65','\x57\x50\x4e\x63\x56\x38\x6b\x31\x41\x63\x6e\x70\x57\x50\x30\x78','\x57\x52\x35\x31\x70\x59\x78\x64\x49\x57','\x70\x6d\x6f\x75\x76\x43\x6b\x67\x74\x38\x6b\x57\x63\x63\x6d','\x6b\x4d\x57\x66\x57\x51\x6d','\x6e\x38\x6b\x44\x45\x62\x68\x63\x4b\x43\x6b\x48','\x57\x36\x4e\x63\x55\x6d\x6f\x4e\x64\x38\x6f\x53\x6a\x57','\x57\x51\x78\x63\x4d\x58\x52\x64\x4b\x47','\x57\x35\x5a\x64\x4e\x62\x46\x63\x55\x71\x37\x63\x4c\x71\x70\x64\x54\x57','\x57\x34\x31\x56\x57\x34\x42\x63\x52\x43\x6f\x36\x6f\x57','\x6f\x32\x4f\x74','\x57\x35\x48\x77\x6c\x62\x4c\x43\x57\x36\x4f\x31\x57\x34\x71','\x57\x52\x2f\x64\x4b\x6d\x6f\x6c\x57\x50\x34\x44\x57\x34\x38\x6f\x63\x47','\x57\x34\x50\x59\x57\x35\x56\x63\x51\x53\x6f\x4e','\x57\x37\x56\x63\x47\x48\x4e\x63\x53\x6d\x6f\x61\x57\x37\x5a\x63\x4e\x38\x6f\x49','\x45\x38\x6b\x71\x57\x50\x78\x63\x4c\x63\x62\x2b','\x70\x38\x6b\x6b\x57\x37\x64\x63\x4c\x61\x39\x2b\x74\x63\x52\x63\x4b\x57\x79\x57\x57\x34\x75','\x57\x52\x4a\x63\x4a\x68\x6e\x35\x57\x51\x48\x73\x57\x51\x57','\x7a\x6d\x6b\x62\x57\x4f\x4e\x63\x4d\x4a\x50\x58','\x57\x34\x37\x64\x4f\x75\x34','\x6b\x43\x6b\x69\x7a\x61\x33\x63\x4e\x53\x6b\x51','\x57\x35\x71\x67\x57\x37\x39\x4d\x44\x31\x4f','\x57\x50\x52\x63\x47\x68\x68\x64\x54\x65\x4a\x64\x4a\x31\x2f\x64\x4f\x43\x6b\x69\x44\x43\x6b\x30\x57\x35\x6c\x64\x4e\x71','\x66\x73\x31\x63\x41\x38\x6f\x4d\x70\x53\x6f\x54\x57\x34\x30','\x57\x36\x37\x63\x49\x38\x6b\x6e','\x57\x4f\x6c\x63\x51\x43\x6b\x75\x69\x68\x78\x64\x4d\x58\x31\x65','\x6a\x31\x47\x50\x57\x52\x56\x63\x49\x43\x6b\x42\x6a\x6d\x6f\x52','\x57\x37\x70\x63\x49\x38\x6b\x46\x65\x49\x71\x66\x43\x76\x6d','\x43\x59\x33\x64\x49\x53\x6b\x6e\x57\x36\x69\x49\x57\x35\x33\x63\x55\x73\x4e\x63\x4e\x53\x6b\x6f\x57\x35\x72\x37','\x61\x4a\x62\x71\x42\x43\x6f\x37\x69\x43\x6f\x77\x57\x34\x65','\x57\x37\x68\x63\x4b\x76\x35\x4d\x43\x4d\x79','\x74\x48\x42\x63\x47\x58\x6c\x63\x55\x74\x7a\x58\x6d\x6d\x6f\x7a\x6b\x43\x6b\x70\x57\x36\x42\x63\x52\x71','\x57\x35\x42\x63\x51\x43\x6f\x37\x63\x43\x6f\x53\x6b\x4b\x75\x58','\x57\x52\x33\x64\x4d\x53\x6f\x62\x57\x50\x57\x32\x57\x34\x4f','\x65\x43\x6f\x69\x66\x4c\x72\x38','\x71\x38\x6b\x66\x57\x52\x53\x34\x57\x35\x62\x61\x57\x50\x75\x7a','\x57\x36\x42\x63\x4c\x53\x6b\x73\x66\x64\x75\x65','\x57\x34\x6a\x4c\x57\x50\x4c\x49\x57\x4f\x7a\x67\x43\x48\x43','\x57\x36\x2f\x63\x4e\x43\x6b\x75\x62\x74\x6d\x63','\x57\x36\x50\x42\x73\x53\x6f\x43\x57\x36\x6a\x6a\x57\x37\x47\x4f','\x57\x35\x78\x64\x49\x64\x69','\x57\x52\x7a\x49\x6e\x63\x6c\x64\x4b\x59\x30','\x57\x34\x72\x56\x41\x5a\x39\x73\x44\x43\x6f\x57','\x6d\x6d\x6f\x56\x6f\x43\x6f\x50\x42\x6d\x6f\x42\x72\x59\x6d','\x57\x36\x66\x4c\x6b\x33\x4f','\x57\x51\x78\x63\x55\x6d\x6f\x4b\x67\x6d\x6f\x53\x6e\x47','\x41\x38\x6f\x46\x57\x52\x75','\x57\x35\x39\x32\x57\x4f\x57','\x57\x51\x48\x51\x70\x74\x4e\x64\x4b\x59\x30\x4c\x57\x50\x4b','\x77\x4b\x74\x63\x4a\x6d\x6b\x64\x42\x6d\x6b\x58\x57\x36\x64\x63\x54\x57','\x57\x37\x42\x63\x49\x4b\x6e\x4a\x71\x33\x66\x33\x57\x36\x47','\x57\x37\x53\x64\x61\x6d\x6f\x65\x57\x52\x65\x77\x57\x52\x47\x2f\x57\x4f\x56\x63\x55\x48\x5a\x63\x55\x4c\x65','\x68\x38\x6f\x44\x57\x37\x50\x54\x57\x4f\x62\x76\x57\x34\x34\x46\x62\x4b\x4a\x64\x49\x76\x6e\x7a','\x6c\x4e\x61\x7a\x57\x51\x78\x63\x52\x57','\x66\x64\x58\x62\x43\x38\x6f\x47\x69\x6d\x6f\x4b','\x57\x52\x68\x64\x49\x43\x6f\x68\x75\x77\x66\x61\x65\x66\x74\x63\x4a\x43\x6f\x54\x44\x75\x33\x64\x4d\x71','\x57\x34\x62\x6a\x67\x43\x6f\x4b\x74\x6d\x6f\x72','\x57\x50\x4b\x48\x57\x37\x46\x63\x53\x6d\x6f\x41\x57\x51\x6c\x64\x54\x6d\x6b\x36','\x57\x4f\x52\x63\x4f\x43\x6b\x78\x6a\x5a\x5a\x64\x4b\x47\x4c\x69','\x44\x73\x5a\x63\x50\x38\x6f\x76\x57\x52\x50\x43\x57\x52\x4e\x63\x50\x57','\x57\x37\x76\x4b\x6d\x59\x6d','\x57\x4f\x2f\x64\x4d\x61\x7a\x4b\x57\x34\x46\x64\x4b\x76\x6c\x64\x52\x71','\x64\x31\x78\x64\x4e\x30\x4e\x64\x4f\x67\x4f\x4c\x6f\x47','\x42\x38\x6f\x30\x6f\x57\x54\x38\x57\x50\x4a\x64\x52\x43\x6b\x2b','\x64\x43\x6f\x32\x75\x38\x6b\x78\x57\x51\x52\x64\x50\x72\x6a\x66','\x74\x38\x6b\x78\x57\x52\x57\x2b\x57\x34\x57\x2f\x57\x50\x75\x6f','\x57\x35\x68\x63\x49\x76\x30\x35\x57\x4f\x42\x63\x48\x68\x6c\x64\x4b\x4d\x57\x49\x57\x4f\x5a\x63\x47\x57','\x57\x34\x37\x64\x4e\x64\x42\x63\x52\x58\x78\x63\x4d\x61\x4e\x64\x54\x71','\x57\x50\x4e\x63\x48\x78\x33\x64\x56\x65\x33\x64\x49\x4c\x56\x64\x56\x53\x6b\x56\x71\x43\x6b\x75\x57\x36\x56\x64\x54\x47','\x57\x34\x47\x68\x57\x35\x76\x35\x43\x75\x53\x5a','\x6b\x4e\x4a\x63\x4e\x6d\x6f\x6c\x57\x52\x72\x37','\x46\x6d\x6b\x67\x43\x53\x6b\x47\x79\x6d\x6b\x43\x62\x63\x69','\x57\x34\x31\x30\x57\x34\x68\x63\x54\x53\x6f\x33\x6f\x71','\x74\x38\x6f\x4a\x57\x37\x78\x63\x4d\x38\x6b\x44\x57\x34\x52\x64\x54\x47','\x74\x43\x6f\x42\x67\x71\x4c\x61','\x57\x51\x33\x63\x4a\x32\x39\x39','\x6c\x6d\x6f\x55\x43\x74\x61\x61\x73\x43\x6f\x74','\x65\x65\x78\x64\x4b\x65\x2f\x64\x52\x68\x61','\x57\x4f\x30\x57\x57\x36\x56\x63\x54\x6d\x6f\x43\x57\x51\x42\x64\x50\x38\x6b\x51','\x64\x65\x37\x64\x4e\x75\x74\x64\x52\x4d\x47\x59\x64\x61'];_0x3e55=function(){return _0x541a38;};return _0x3e55();}import{computeAssetId,validateWire,SCHEMA_VERSION,normalizeRoutingHint,normalizeToolPolicy,normalizeGenerationMeta,stripGeneHints}from'\x2e\x2e\x2f\x77\x69\x72\x65\x2f\x69\x6e\x64\x65\x78\x2e\x6a\x73';const VALID_CATEGORIES=['\x72\x65\x70\x61\x69\x72',_0xda0382(0x123,'\x6a\x5a\x36\x47'),_0xda0382(0xf9,'\x57\x46\x7a\x78'),_0xda0382(0x160,'\x31\x58\x5b\x6e')],DEFAULT_FORBIDDEN_PATHS=[_0xda0382(0xf5,'\x57\x57\x5e\x5d'),_0xda0382(0x136,'\x45\x51\x6b\x63')+_0xda0382(0x131,'\x75\x54\x36\x57')],DEFAULT_MAX_FILES=0x4e+0x3*-0x613+-0xdb*-0x15,DISTILLED_ID_PREFIX=_0xda0382(0x112,'\x6f\x44\x72\x55')+_0xda0382(0x105,'\x5a\x64\x24\x53');export function isDistilledGeneId(_0x13a94f){const _0x55bbd4=_0xda0382;return typeof _0x13a94f===_0x55bbd4(0x148,'\x47\x61\x4a\x56')&&_0x13a94f[_0x55bbd4(0x147,'\x31\x58\x5b\x6e')+'\x74\x68'](DISTILLED_ID_PREFIX);}export function geneGenerationSource(_0x5e9331,_0x2792ec){const _0x3ffc1a=_0xda0382,_0x336f9c=_0x5e9331?.[_0x3ffc1a(0xf6,'\x50\x63\x32\x33')+_0x3ffc1a(0x118,'\x47\x61\x4a\x56')];if(_0x336f9c&&typeof _0x336f9c===_0x3ffc1a(0x106,'\x43\x59\x78\x4b')){if(_0x3ffc1a(0x124,'\x55\x67\x6f\x7a')!==_0x3ffc1a(0x103,'\x79\x23\x62\x61')){const _0x4b1e44=_0x5d98c3?.[_0x3ffc1a(0x107,'\x24\x59\x5e\x38')+_0x3ffc1a(0x102,'\x55\x67\x6f\x7a')];if(_0x4b1e44&&typeof _0x4b1e44===_0x3ffc1a(0x150,'\x55\x4a\x78\x28')){const _0x3b0e23=_0x4b1e44[_0x3ffc1a(0x13f,'\x28\x74\x36\x61')];if(typeof _0x3b0e23===_0x3ffc1a(0x139,'\x41\x51\x52\x4d')&&(_0x3b0e23===_0x3ffc1a(0x154,'\x31\x24\x76\x4c')||_0x3b0e23===_0x3ffc1a(0x138,'\x79\x26\x41\x7a')+'\x64'||_0x3b0e23==='\x6d\x61\x6e\x75\x61\x6c'))return _0x3b0e23;}const _0x4eef54=_0x2359d2??(typeof _0x39263d?.['\x69\x64']===_0x3ffc1a(0x13e,'\x25\x42\x5e\x44')?_0x5d71fc(_0x13c6d1['\x69\x64']):null);if(_0x4eef54&&_0x528e5a(_0x4eef54))return _0x3ffc1a(0x114,'\x72\x5e\x7a\x78')+'\x64';if(_0x4eef54)return _0x3ffc1a(0x153,'\x57\x57\x5e\x5d');return null;}else{const _0x59f3af=_0x336f9c[_0x3ffc1a(0x101,'\x64\x50\x72\x28')];if(typeof _0x59f3af===_0x3ffc1a(0x133,'\x64\x50\x72\x28')&&(_0x59f3af===_0x3ffc1a(0x13b,'\x7a\x55\x25\x5a')||_0x59f3af===_0x3ffc1a(0x143,'\x6f\x5a\x41\x4d')+'\x64'||_0x59f3af===_0x3ffc1a(0xff,'\x75\x62\x69\x77')))return _0x59f3af;}}const _0xa6ac1c=_0x2792ec??(typeof _0x5e9331?.['\x69\x64']===_0x3ffc1a(0x11d,'\x55\x67\x6f\x7a')?String(_0x5e9331['\x69\x64']):null);if(_0xa6ac1c&&isDistilledGeneId(_0xa6ac1c))return _0x3ffc1a(0x141,'\x31\x58\x5b\x6e')+'\x64';if(_0xa6ac1c)return _0x3ffc1a(0x12f,'\x25\x42\x5e\x44');return null;}function _0x4baf(_0x19c6b3,_0x16e2b1){_0x19c6b3=_0x19c6b3-(0x1cd*-0x1+-0x608*0x3+0x1d*0xb8);const _0x564f1f=_0x3e55();let _0x13387b=_0x564f1f[_0x19c6b3];if(_0x4baf['\x6a\x74\x52\x78\x44\x59']===undefined){var _0x33dd01=function(_0x6816f9){const _0x522b76='\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 _0x372e7f='',_0x2212ee='';for(let _0x165639=-0xd8e+-0x2*0xb4d+0x2428,_0x2c5b84,_0x40b17a,_0xf7c89a=0x17b7+0x1789+0x3*-0xfc0;_0x40b17a=_0x6816f9['\x63\x68\x61\x72\x41\x74'](_0xf7c89a++);~_0x40b17a&&(_0x2c5b84=_0x165639%(-0x2*-0xc5b+0xde1*-0x1+-0xad1)?_0x2c5b84*(0x1c91+0x1*0x1cbe+-0x657*0x9)+_0x40b17a:_0x40b17a,_0x165639++%(-0x2a*0x13+-0xd0*-0x2f+0x230e*-0x1))?_0x372e7f+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x1677+-0x685*0x2+0x2480&_0x2c5b84>>(-(0x1*0x2bb+-0x5bb*0x1+0x302)*_0x165639&0x22b2+-0x1d*0x124+-0x198)):-0x11*0xa4+-0xb17+0x15fb){_0x40b17a=_0x522b76['\x69\x6e\x64\x65\x78\x4f\x66'](_0x40b17a);}for(let _0x1f51fd=0x7f*-0x1c+-0x258e+0x3372,_0x9b1c89=_0x372e7f['\x6c\x65\x6e\x67\x74\x68'];_0x1f51fd<_0x9b1c89;_0x1f51fd++){_0x2212ee+='\x25'+('\x30\x30'+_0x372e7f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x1f51fd)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0xc79+0x1aae+-0xe25))['\x73\x6c\x69\x63\x65'](-(-0x14*-0x2a+0x2517+0x1*-0x285d));}return decodeURIComponent(_0x2212ee);};const _0x567689=function(_0x2d5ff6,_0x369f92){let _0x739124=[],_0x415690=-0x5e+0x2062*0x1+0x3*-0xaac,_0x1c7431,_0x2b9f0c='';_0x2d5ff6=_0x33dd01(_0x2d5ff6);let _0x40d205;for(_0x40d205=0xaa4+0x62a*-0x3+0x7da;_0x40d205<-0xe1c+0x88f*0x1+-0xd*-0x81;_0x40d205++){_0x739124[_0x40d205]=_0x40d205;}for(_0x40d205=0x1a9*-0x12+0x11f9+-0x1*-0xbe9;_0x40d205<0x77*0xf+-0x2533+-0x23b*-0xe;_0x40d205++){_0x415690=(_0x415690+_0x739124[_0x40d205]+_0x369f92['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x40d205%_0x369f92['\x6c\x65\x6e\x67\x74\x68']))%(0x3a6*-0x1+-0x1457*0x1+-0x18fd*-0x1),_0x1c7431=_0x739124[_0x40d205],_0x739124[_0x40d205]=_0x739124[_0x415690],_0x739124[_0x415690]=_0x1c7431;}_0x40d205=0x1*-0x1951+0x1271*-0x1+0x2bc2,_0x415690=0x1*0x1c7b+0x2523+-0x419e;for(let _0x4a1fde=-0x9*0x2f1+0x21e*-0x9+0x2d87;_0x4a1fde<_0x2d5ff6['\x6c\x65\x6e\x67\x74\x68'];_0x4a1fde++){_0x40d205=(_0x40d205+(0x20d0+-0xc42+-0x148d))%(0x407*-0x2+0xef*0x19+0x4c3*-0x3),_0x415690=(_0x415690+_0x739124[_0x40d205])%(-0x1*-0x1711+-0x312*-0x3+-0x33*0x9d),_0x1c7431=_0x739124[_0x40d205],_0x739124[_0x40d205]=_0x739124[_0x415690],_0x739124[_0x415690]=_0x1c7431,_0x2b9f0c+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x2d5ff6['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4a1fde)^_0x739124[(_0x739124[_0x40d205]+_0x739124[_0x415690])%(0x24*-0x56+0x8b9+-0x3*-0x175)]);}return _0x2b9f0c;};_0x4baf['\x45\x74\x4e\x71\x51\x66']=_0x567689,_0x4baf['\x4f\x71\x41\x5a\x43\x75']={},_0x4baf['\x6a\x74\x52\x78\x44\x59']=!![];}const _0x3414d1=_0x564f1f[-0x5ae*-0x5+0x18ee+-0xd55*0x4],_0x122b70=_0x19c6b3+_0x3414d1,_0x333581=_0x4baf['\x4f\x71\x41\x5a\x43\x75'][_0x122b70];return!_0x333581?(_0x4baf['\x76\x41\x4b\x68\x6b\x5a']===undefined&&(_0x4baf['\x76\x41\x4b\x68\x6b\x5a']=!![]),_0x13387b=_0x4baf['\x45\x74\x4e\x71\x51\x66'](_0x13387b,_0x16e2b1),_0x4baf['\x4f\x71\x41\x5a\x43\x75'][_0x122b70]=_0x13387b):_0x13387b=_0x333581,_0x13387b;}function fnv1a(_0x8a51f0){const _0x40b040=_0xda0382;let _0x3c873a=0x3cccc*0xa4d+-0x280b4405*0x2+0xaa0e9473;for(let _0x158abd=0x2155+-0x185d+-0x52*0x1c;_0x158abd<_0x8a51f0[_0x40b040(0x12a,'\x6f\x44\x72\x55')];_0x158abd++){_0x3c873a^=_0x8a51f0[_0x40b040(0x120,'\x78\x5b\x44\x28')+'\x41\x74'](_0x158abd),_0x3c873a=Math[_0x40b040(0x126,'\x4c\x36\x4b\x4d')](_0x3c873a,0x2cd515+0x35e9a*0xe+0xa40012);}return(_0x3c873a>>>0x1c40+0x624+-0x2264)[_0x40b040(0x132,'\x71\x6d\x37\x66')](0xdef+-0x1a62+0xc83)[_0x40b040(0xf8,'\x79\x23\x62\x61')](-0xf*-0x61+-0x2128+-0x1b81*-0x1,'\x30');}const clean=_0x3a2867=>(_0x3a2867??[])[_0xda0382(0x13d,'\x6e\x4c\x46\x42')](_0x1d9e67=>String(_0x1d9e67)[_0xda0382(0x109,'\x31\x24\x76\x4c')]())[_0xda0382(0x14e,'\x55\x4a\x78\x28')](_0x361dee=>_0x361dee[_0xda0382(0x13c,'\x41\x51\x52\x4d')]>0x12b*-0x20+0x1*0xe69+0x16f7);function fullyOverlaps(_0x29d160,_0x1d88c2){const _0x5c113a=_0xda0382,_0x350927=_0x29d160[_0x5c113a(0x158,'\x28\x73\x76\x23')](_0x5cd37d=>_0x5cd37d['\x74\x6f\x4c\x6f\x77\x65\x72\x43'+'\x61\x73\x65']());for(const _0x462c74 of _0x1d88c2){const _0x975a0f=new Set((_0x462c74['\x73\x69\x67\x6e\x61\x6c\x73\x5f'+_0x5c113a(0x10b,'\x79\x23\x62\x61')]??[])[_0x5c113a(0x159,'\x54\x52\x6d\x5b')](_0x15b07f=>String(_0x15b07f)[_0x5c113a(0x15b,'\x75\x48\x33\x35')+_0x5c113a(0x134,'\x35\x23\x44\x68')]()));if(_0x975a0f[_0x5c113a(0x129,'\x57\x46\x7a\x78')]===0x23c4+0x11c6+-0x358a)continue;if(_0x350927[_0x5c113a(0x12c,'\x57\x57\x5e\x5d')](_0xe49ccc=>_0x975a0f['\x68\x61\x73'](_0xe49ccc)))return _0x462c74['\x69\x64']??'\x3f';}return null;}export function intakeGene(_0x901e2c,_0x3bee72=[]){const _0x43130b=_0xda0382,_0x5a294e=[],_0x2d8ee8=clean(_0x901e2c[_0x43130b(0x108,'\x43\x59\x78\x4b')+_0x43130b(0x113,'\x28\x73\x76\x23')]),_0x340628=clean(_0x901e2c[_0x43130b(0x163,'\x24\x59\x5e\x38')]);if(_0x2d8ee8[_0x43130b(0x130,'\x6a\x5a\x36\x47')]===0x37a*0x2+0x6d*-0x7+0x71*-0x9)_0x5a294e[_0x43130b(0x11f,'\x45\x51\x6b\x63')](_0x43130b(0x15a,'\x57\x57\x5e\x5d')+_0x43130b(0x14d,'\x5d\x5e\x21\x41')+_0x43130b(0x157,'\x6a\x5a\x36\x47'));if(_0x340628[_0x43130b(0x162,'\x26\x68\x70\x23')]===0xc1*-0x2f+0x1*-0x17d5+0x3b44)_0x5a294e[_0x43130b(0x12e,'\x35\x23\x44\x68')](_0x43130b(0x115,'\x75\x62\x69\x77')+_0x43130b(0x151,'\x42\x58\x29\x68')+'\x79');if(_0x2d8ee8[_0x43130b(0x162,'\x26\x68\x70\x23')]>-0x2b*0x29+0x15a*-0x3+0xaf1){const _0x364d92=fullyOverlaps(_0x2d8ee8,_0x3bee72);if(_0x364d92)_0x5a294e[_0x43130b(0x104,'\x7a\x55\x25\x5a')](_0x43130b(0x135,'\x52\x4e\x23\x47')+_0x43130b(0x128,'\x52\x4e\x23\x47')+_0x43130b(0x11c,'\x5d\x5e\x21\x41')+_0x43130b(0xf3,'\x6f\x5a\x41\x4d')+_0x43130b(0x12b,'\x29\x6d\x43\x5a')+_0x43130b(0x110,'\x31\x58\x5b\x6e')+_0x364d92);}if(_0x5a294e[_0x43130b(0x14b,'\x45\x51\x6b\x63')]>-0x1c5b+0x3*-0x175+0x20ba)return{'\x6f\x6b':![],'\x65\x72\x72\x6f\x72\x73':_0x5a294e};const _0x5258a3=VALID_CATEGORIES['\x69\x6e\x63\x6c\x75\x64\x65\x73'](_0x901e2c[_0x43130b(0x121,'\x5b\x78\x40\x6f')])?_0x901e2c[_0x43130b(0x144,'\x4a\x6c\x69\x6d')]:_0x43130b(0x10d,'\x31\x24\x76\x4c'),_0x2114a0=_0x901e2c['\x69\x64']&&_0x901e2c['\x69\x64'][_0x43130b(0x145,'\x55\x4a\x78\x28')+'\x74\x68'](DISTILLED_ID_PREFIX)?_0x901e2c['\x69\x64']:''+DISTILLED_ID_PREFIX+fnv1a(_0x2d8ee8[_0x43130b(0x10e,'\x5e\x58\x64\x54')]('\x7c')),_0x510f76=normalizeRoutingHint(_0x901e2c['\x72\x6f\x75\x74\x69\x6e\x67\x5f'+_0x43130b(0x119,'\x35\x23\x44\x68')]),_0x589e1c=normalizeToolPolicy(_0x901e2c[_0x43130b(0x15c,'\x47\x61\x4a\x56')+_0x43130b(0x152,'\x4c\x36\x4b\x4d')]),_0x15eae0=normalizeGenerationMeta(_0x901e2c['\x67\x65\x6e\x65\x72\x61\x74\x69'+_0x43130b(0xfe,'\x28\x74\x36\x61')]),_0x5aa5b9={'\x74\x79\x70\x65':_0x43130b(0x156,'\x6f\x44\x72\x55'),'\x73\x63\x68\x65\x6d\x61\x5f\x76\x65\x72\x73\x69\x6f\x6e':SCHEMA_VERSION,'\x69\x64':_0x2114a0,'\x63\x61\x74\x65\x67\x6f\x72\x79':_0x5258a3,'\x73\x69\x67\x6e\x61\x6c\x73\x5f\x6d\x61\x74\x63\x68':_0x2d8ee8,'\x73\x74\x72\x61\x74\x65\x67\x79':_0x340628,'\x63\x6f\x6e\x73\x74\x72\x61\x69\x6e\x74\x73':{'\x6d\x61\x78\x5f\x66\x69\x6c\x65\x73':_0x901e2c[_0x43130b(0x11a,'\x6f\x44\x72\x55')+'\x6e\x74\x73']?.[_0x43130b(0x122,'\x31\x58\x5b\x6e')+'\x73']??DEFAULT_MAX_FILES,'\x66\x6f\x72\x62\x69\x64\x64\x65\x6e\x5f\x70\x61\x74\x68\x73':[..._0x901e2c[_0x43130b(0x155,'\x61\x42\x4a\x56')+_0x43130b(0x142,'\x55\x4a\x78\x28')]?.[_0x43130b(0xfc,'\x71\x6d\x37\x66')+_0x43130b(0x116,'\x31\x58\x5b\x6e')]??DEFAULT_FORBIDDEN_PATHS]},'\x76\x61\x6c\x69\x64\x61\x74\x69\x6f\x6e':_0x901e2c[_0x43130b(0x125,'\x32\x7a\x72\x58')+'\x6f\x6e']?[..._0x901e2c[_0x43130b(0x12d,'\x5e\x58\x64\x54')+'\x6f\x6e']]:[],'\x73\x75\x6d\x6d\x61\x72\x79':_0x901e2c[_0x43130b(0x10f,'\x72\x5e\x7a\x78')]??_0x43130b(0x14a,'\x6a\x5a\x36\x47')+_0x43130b(0x11e,'\x43\x59\x78\x4b')+_0x2d8ee8[_0x43130b(0x14c,'\x5b\x78\x40\x6f')](0xfc8*-0x1+-0x3ef+-0x7*-0x2d1,0x88+0x10fa+-0x117f)[_0x43130b(0x127,'\x32\x7a\x72\x58')]('\x2c\x20'),..._0x901e2c[_0x43130b(0x14f,'\x54\x52\x6d\x5b')+_0x43130b(0x15f,'\x35\x23\x44\x68')]?{'\x70\x72\x65\x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\x73':[..._0x901e2c[_0x43130b(0xf7,'\x43\x59\x78\x4b')+_0x43130b(0x137,'\x64\x50\x72\x28')]]}:{},..._0x510f76?{'\x72\x6f\x75\x74\x69\x6e\x67\x5f\x68\x69\x6e\x74':_0x510f76}:{},..._0x589e1c?{'\x74\x6f\x6f\x6c\x5f\x70\x6f\x6c\x69\x63\x79':_0x589e1c}:{},..._0x15eae0?{'\x67\x65\x6e\x65\x72\x61\x74\x69\x6f\x6e\x5f\x6d\x65\x74\x61':_0x15eae0}:{},'\x61\x73\x73\x65\x74\x5f\x69\x64':''};_0x5aa5b9[_0x43130b(0xfa,'\x5d\x5e\x21\x41')]=computeAssetId(_0x5aa5b9)??'';const _0x26bf65=validateWire(stripGeneHints(_0x5aa5b9));if(!_0x26bf65['\x6f\x6b'])return{'\x6f\x6b':![],'\x65\x72\x72\x6f\x72\x73':_0x26bf65['\x65\x72\x72\x6f\x72\x73']};return{'\x6f\x6b':!![],'\x67\x65\x6e\x65':_0x5aa5b9,'\x65\x72\x72\x6f\x72\x73':[]};}
|