@evomap/evolver-core 2.0.0-beta.9 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/dist/algo/antiDistill.js +1 -167
  2. package/dist/algo/bans.js +1 -33
  3. package/dist/algo/candidateAssembly.d.ts +7 -2
  4. package/dist/algo/candidateAssembly.js +1 -205
  5. package/dist/algo/capabilityCandidates.js +1 -136
  6. package/dist/algo/confidence.js +1 -196
  7. package/dist/algo/conversationSniffer.js +1 -149
  8. package/dist/algo/cycleEngine.d.ts +23 -2
  9. package/dist/algo/cycleEngine.js +1 -425
  10. package/dist/algo/cycleFailureClassifier.js +1 -112
  11. package/dist/algo/epigenetics.js +1 -41
  12. package/dist/algo/evolutionEvent.js +1 -24
  13. package/dist/algo/exploration.d.ts +7 -0
  14. package/dist/algo/exploration.js +1 -55
  15. package/dist/algo/geneHealth.d.ts +2 -2
  16. package/dist/algo/geneHealth.js +1 -16
  17. package/dist/algo/geneIntake.js +1 -128
  18. package/dist/algo/genePromotion.js +1 -53
  19. package/dist/algo/geneSelection.d.ts +63 -5
  20. package/dist/algo/geneSelection.js +1 -246
  21. package/dist/algo/index.d.ts +2 -0
  22. package/dist/algo/index.js +1 -20
  23. package/dist/algo/memoryGraph.js +1 -86
  24. package/dist/algo/mutation.js +1 -22
  25. package/dist/algo/orchestrator.d.ts +8 -1
  26. package/dist/algo/orchestrator.js +1 -75
  27. package/dist/algo/publishEligibility.d.ts +34 -0
  28. package/dist/algo/publishEligibility.js +1 -0
  29. package/dist/algo/solidify.js +1 -63
  30. package/dist/algo/strategyPresets.js +1 -61
  31. package/dist/algo/ucb1.d.ts +53 -0
  32. package/dist/algo/ucb1.js +1 -0
  33. package/dist/assetstore/assetSidecarRecords.d.ts +7 -2
  34. package/dist/assetstore/assetSidecarRecords.js +238 -0
  35. package/dist/assetstore/assetSidecarRecovery.js +2 -2
  36. package/dist/assetstore/assetStoreHealth.d.ts +6 -0
  37. package/dist/assetstore/assetStoreHealth.js +56 -14
  38. package/dist/assetstore/assetStoreStorage.d.ts +1 -1
  39. package/dist/assetstore/assetStoreStorage.js +27 -9
  40. package/dist/assetstore/assetSyncLedger.d.ts +86 -0
  41. package/dist/assetstore/assetSyncLedger.js +683 -4
  42. package/dist/assetstore/index.d.ts +1 -0
  43. package/dist/assetstore/index.js +1 -0
  44. package/dist/assetstore/localAssetStoreSnapshot.d.ts +51 -0
  45. package/dist/assetstore/localAssetStoreSnapshot.js +329 -0
  46. package/dist/assetstore/localJsonl.d.ts +4 -2
  47. package/dist/assetstore/localJsonl.js +89 -9
  48. package/dist/assetstore/provenance.d.ts +80 -4
  49. package/dist/assetstore/provenance.js +313 -5
  50. package/dist/assetstore/provider.d.ts +58 -1
  51. package/dist/assetstore/provider.js +97 -6
  52. package/dist/benchmark/antiGeneBenchmark.d.ts +2 -0
  53. package/dist/benchmark/antiGeneBenchmark.js +1 -251
  54. package/dist/benchmark/antiGeneImpact.js +1 -34
  55. package/dist/benchmark/antiGeneRollout.d.ts +2 -0
  56. package/dist/benchmark/antiGeneRollout.js +1 -268
  57. package/dist/benchmark/benchmark.js +1 -26
  58. package/dist/benchmark/evolutionThesisSolver.js +1 -41
  59. package/dist/benchmark/index.d.ts +2 -1
  60. package/dist/benchmark/index.js +1 -6
  61. package/dist/benchmark/selectionFlatAbstention.d.ts +152 -0
  62. package/dist/benchmark/selectionFlatAbstention.js +1 -0
  63. package/dist/benchmark/thesis.js +1 -150
  64. package/dist/benchmark/triggerShift.js +1 -106
  65. package/dist/bootstrap/envFingerprint.d.ts +9 -0
  66. package/dist/bootstrap/envFingerprint.js +5 -0
  67. package/dist/bootstrap/index.d.ts +2 -1
  68. package/dist/bootstrap/index.js +2 -1
  69. package/dist/bootstrap/v1EnvCompat.d.ts +111 -0
  70. package/dist/bootstrap/v1EnvCompat.js +280 -0
  71. package/dist/cycle/cycleTimeline.js +1 -74
  72. package/dist/cycle/index.js +1 -2
  73. package/dist/cycle/stateMachine.js +1 -25
  74. package/dist/events/eventArchive.d.ts +2 -0
  75. package/dist/events/eventArchive.js +13 -3
  76. package/dist/events/eventSchema.d.ts +7 -7
  77. package/dist/events/eventStore.d.ts +2 -0
  78. package/dist/events/eventStore.js +5 -1
  79. package/dist/events/ingest.d.ts +1 -0
  80. package/dist/events/ingest.js +1 -0
  81. package/dist/events/paths.d.ts +3 -1
  82. package/dist/events/paths.js +4 -0
  83. package/dist/events/public.d.ts +2 -2
  84. package/dist/events/public.js +2 -2
  85. package/dist/events/reports.d.ts +2 -0
  86. package/dist/events/reports.js +4 -0
  87. package/dist/exec/autoExec.d.ts +43 -2
  88. package/dist/exec/autoExec.js +76 -9
  89. package/dist/exec/autonomousCycle.d.ts +22 -4
  90. package/dist/exec/autonomousCycle.js +64 -13
  91. package/dist/exec/claudeBridge.d.ts +32 -7
  92. package/dist/exec/claudeBridge.js +281 -29
  93. package/dist/exec/prompt.js +5 -1
  94. package/dist/exec/runnerRegistry.d.ts +68 -26
  95. package/dist/exec/runnerRegistry.js +307 -72
  96. package/dist/exec/selfPr.js +1 -7
  97. package/dist/feedback/envelope.d.ts +61 -0
  98. package/dist/feedback/envelope.js +168 -0
  99. package/dist/feedback/index.d.ts +1 -0
  100. package/dist/feedback/index.js +1 -0
  101. package/dist/hooks/hooks.js +1 -0
  102. package/dist/hub/agentDirectory.js +1 -104
  103. package/dist/hub/assetCallLog.d.ts +35 -1
  104. package/dist/hub/assetCallLog.js +1 -72
  105. package/dist/hub/bindings.d.ts +8 -1
  106. package/dist/hub/bindings.js +1 -110
  107. package/dist/hub/capability.d.ts +90 -3
  108. package/dist/hub/capability.js +1 -1
  109. package/dist/hub/conversationDistiller.js +1 -264
  110. package/dist/hub/fake.d.ts +2 -2
  111. package/dist/hub/fake.js +1 -70
  112. package/dist/hub/hubReview.js +1 -106
  113. package/dist/hub/index.js +1 -11
  114. package/dist/hub/ingest.js +1 -15
  115. package/dist/hub/questionGenerator.d.ts +5 -1
  116. package/dist/hub/questionGenerator.js +1 -406
  117. package/dist/hub/reuseDecision.js +1 -127
  118. package/dist/hub/sanitize.js +1 -322
  119. package/dist/index.d.ts +3 -1
  120. package/dist/index.js +4 -1
  121. package/dist/mailbox/dispatch.d.ts +1 -1
  122. package/dist/mailbox/dispatch.js +22 -6
  123. package/dist/mailbox/envelope.d.ts +7 -1
  124. package/dist/mailbox/envelope.js +9 -2
  125. package/dist/mailbox/ipcServer.d.ts +10 -2
  126. package/dist/mailbox/ipcServer.js +163 -13
  127. package/dist/mailbox/store.d.ts +89 -3
  128. package/dist/mailbox/store.js +895 -41
  129. package/dist/material/boundary.js +1 -14
  130. package/dist/material/consumer.js +1 -55
  131. package/dist/material/emit.js +1 -52
  132. package/dist/material/factory.js +1 -25
  133. package/dist/material/index.js +1 -9
  134. package/dist/material/materialArchive.js +1 -466
  135. package/dist/material/materialStore.js +1 -69
  136. package/dist/material/sampling.js +1 -39
  137. package/dist/material/sources.js +1 -33
  138. package/dist/material/watermark.js +1 -76
  139. package/dist/ops/evolutionGraphProjection.d.ts +20 -0
  140. package/dist/ops/evolutionGraphProjection.js +315 -0
  141. package/dist/ops/index.d.ts +2 -1
  142. package/dist/ops/index.js +2 -1
  143. package/dist/ops/selfUpdate.d.ts +8 -0
  144. package/dist/ops/selfUpdate.js +24 -8
  145. package/dist/personality/drift.js +1 -106
  146. package/dist/personality/events.js +1 -37
  147. package/dist/personality/evolveOps.js +1 -93
  148. package/dist/personality/index.js +1 -11
  149. package/dist/personality/mutate.js +1 -39
  150. package/dist/personality/pivot.js +1 -22
  151. package/dist/personality/prompt.js +1 -62
  152. package/dist/personality/riskGate.js +1 -80
  153. package/dist/personality/schema.d.ts +16 -16
  154. package/dist/personality/schema.js +1 -119
  155. package/dist/personality/select.js +1 -71
  156. package/dist/personality/stats.js +1 -82
  157. package/dist/personality/store.js +1 -92
  158. package/dist/schema/common.js +1 -17
  159. package/dist/schema/evolutionGraph.d.ts +784 -0
  160. package/dist/schema/evolutionGraph.js +1 -0
  161. package/dist/schema/index.d.ts +1 -0
  162. package/dist/schema/index.js +1 -5
  163. package/dist/schema/material.js +1 -50
  164. package/dist/schema/problem.js +1 -45
  165. package/dist/schema/proofOfWork.js +1 -9
  166. package/dist/schema/signal.d.ts +3 -3
  167. package/dist/schema/signal.js +1 -19
  168. package/dist/signals/curriculum.d.ts +55 -0
  169. package/dist/signals/curriculum.js +1 -0
  170. package/dist/signals/cycleHistoryFromEvents.js +1 -96
  171. package/dist/signals/expand.d.ts +15 -1
  172. package/dist/signals/expand.js +1 -125
  173. package/dist/signals/extractor.d.ts +2 -2
  174. package/dist/signals/extractor.js +1 -57
  175. package/dist/signals/index.d.ts +3 -1
  176. package/dist/signals/index.js +1 -6
  177. package/dist/signals/metaSignals.d.ts +4 -0
  178. package/dist/signals/metaSignals.js +1 -158
  179. package/dist/signals/signalGate.js +1 -40
  180. package/dist/signals/taskDomain.d.ts +22 -0
  181. package/dist/signals/taskDomain.js +1 -0
  182. package/dist/signals/traceSignals.js +1 -123
  183. package/dist/strategy/constraintAblation.js +1 -3074
  184. package/dist/strategy/constraintAblationPredicates.d.ts +31 -0
  185. package/dist/strategy/constraintAblationPredicates.js +1 -0
  186. package/dist/strategy/experiment.js +1 -63
  187. package/dist/strategy/index.js +1 -3
  188. package/dist/strategy/strategyPoint.js +1 -23
  189. package/dist/trace/index.d.ts +3 -1
  190. package/dist/trace/index.js +3 -1
  191. package/dist/trace/learningTrace.d.ts +209 -0
  192. package/dist/trace/learningTrace.js +276 -0
  193. package/dist/trace/proxyTurns.d.ts +31 -0
  194. package/dist/trace/proxyTurns.js +137 -0
  195. package/dist/verify/sandboxRunner.d.ts +28 -0
  196. package/dist/verify/sandboxRunner.js +218 -19
  197. package/dist/verify/sandboxedValidation.d.ts +9 -0
  198. package/dist/verify/sandboxedValidation.js +113 -13
  199. package/dist/verify/validation.d.ts +11 -1
  200. package/dist/verify/validation.js +31 -0
  201. package/package.json +5 -2
@@ -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')]);
@@ -1,41 +1 @@
1
- // Epigenetic per-environment gene suppression (ported from v1 src/gep/epigenetics.js, adapted to v2's
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
- import { ulid as makeUlid } from 'ulid';
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};}
@@ -1,3 +1,4 @@
1
+ import type { SelectionPolicy, Ucb1History } from './ucb1.js';
1
2
  export type PlateauSeverity = 'suggested' | 'required';
2
3
  export interface PlateauState {
3
4
  active: boolean;
@@ -6,12 +7,16 @@ export interface PlateauState {
6
7
  }
7
8
  /** Exploration control fed into selection. Absent → pure deterministic top-score selection. */
8
9
  export interface ExplorationInput {
10
+ /** Selection policy requested by the composition layer. Default preserves legacy engine-health + drift. */
11
+ policy?: SelectionPolicy;
9
12
  /** Force drift on even without a plateau (e.g. an explicit explore policy). */
10
13
  driftEnabled?: boolean;
11
14
  /** Plateau detected upstream; an active plateau forces drift intensity up. */
12
15
  plateau?: PlateauState;
13
16
  /** Total attempts across the candidate pool (drives the maturity decay of the drift offset). */
14
17
  totalAttempts?: number;
18
+ /** Event-log-derived state for UCB1. Undefined means fail-safe to legacy drift. */
19
+ ucb1History?: Ucb1History;
15
20
  }
16
21
  /**
17
22
  * Adaptive drift intensity (ported v1): 1/sqrt(Ne) + an offset that decays from 0.3 → 0.02 as the pool
@@ -25,6 +30,8 @@ export interface DriftDecision {
25
30
  index: number;
26
31
  intensity: number;
27
32
  }
33
+ /** Deterministic top-N window shared by legacy random drift and UCB1. */
34
+ export declare function explorationWindowSize(eligibleCount: number, exp: ExplorationInput | undefined): number;
28
35
  /**
29
36
  * Pick which ranked candidate to take among `eligibleCount` above-floor candidates.
30
37
  * No exploration → deterministic top (index 0). With exploration → compute intensity (an active plateau
@@ -1,55 +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 maturityThreshold = ne * MATURITY_ATTEMPTS_PER_GENE;
19
- const maturity = maturityThreshold > 0 ? Math.min(1, totalAttempts / maturityThreshold) : 0;
20
- const offset = DRIFT_OFFSET_MAX - (DRIFT_OFFSET_MAX - DRIFT_OFFSET_MIN) * maturity;
21
- return Math.min(1, 1 / Math.sqrt(ne) + offset);
22
- }
23
- /** Detect a plateau from recent cycle outcomes: count the trailing run of consecutive non-success. */
24
- export function detectPlateau(recentOutcomes) {
25
- let count = 0;
26
- for (let i = recentOutcomes.length - 1; i >= 0; i--) {
27
- if (recentOutcomes[i] === 'success')
28
- break;
29
- count++;
30
- }
31
- if (count >= PLATEAU_FORCE)
32
- return { active: true, severity: 'required', count };
33
- if (count >= PLATEAU_SUGGEST)
34
- return { active: true, severity: 'suggested', count };
35
- return { active: false, severity: 'suggested', count };
36
- }
37
- /**
38
- * Pick which ranked candidate to take among `eligibleCount` above-floor candidates.
39
- * No exploration → deterministic top (index 0). With exploration → compute intensity (an active plateau
40
- * forces it to 0.7/1.0); with probability = intensity, pick a random candidate from the top-N (N grows
41
- * with intensity). rng() is called at most twice; pass a seeded rng for deterministic tests.
42
- */
43
- export function driftSelect(eligibleCount, exp, rng) {
44
- if (!exp || (!exp.driftEnabled && !exp.plateau?.active) || eligibleCount <= 1) {
45
- return { driftMode: 'deterministic', index: 0, intensity: 0 };
46
- }
47
- let intensity = computeDriftIntensity(eligibleCount, exp.totalAttempts ?? 0);
48
- if (exp.plateau?.active)
49
- intensity = Math.max(intensity, exp.plateau.severity === 'required' ? 1.0 : 0.7);
50
- if (rng() >= intensity)
51
- return { driftMode: 'deterministic', index: 0, intensity };
52
- const topN = Math.min(eligibleCount, Math.max(2, Math.ceil(eligibleCount * intensity)));
53
- const index = Math.min(topN - 1, Math.max(0, Math.floor(rng() * topN)));
54
- return { driftMode: exp.plateau?.active ? 'plateau_drift' : 'drift', index, intensity };
55
- }
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();}
@@ -12,10 +12,10 @@ export interface GeneHealthWeights {
12
12
  reuse: number;
13
13
  antiPattern: number;
14
14
  }
15
- export declare const HEALTH_WEIGHTS_VERSION = "gh-1";
15
+ export declare const HEALTH_WEIGHTS_VERSION = "gh-2";
16
16
  export declare const DEFAULT_HEALTH_WEIGHTS: GeneHealthWeights;
17
17
  /**
18
- * gene 健康分 = w1·successRate + w2·reuse归一 − w3·antiPattern密度.
18
+ * gene 健康分 = successRate·(w1 + w2·reuse归一) − w3·antiPattern密度.
19
19
  * 输入 = M3-6 聚合视图(不内联 learning_history) + anti_patterns 数 + 复用计数.
20
20
  */
21
21
  export declare function geneHealthScore(view: GeneLearningView, opts?: {
@@ -1,16 +1 @@
1
- export const HEALTH_WEIGHTS_VERSION = 'gh-1';
2
- export const DEFAULT_HEALTH_WEIGHTS = { successRate: 0.6, reuse: 0.3, 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 健康分 = w1·successRate + 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 score = w.successRate * view.successRate + w.reuse * reuseScore(reuseCount) - w.antiPattern * antiPatternPenalty;
15
- return { geneId: view.geneId, successRate: view.successRate, reuseCount, antiPatternPenalty, score };
16
- }
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();}