@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
@@ -0,0 +1,315 @@
1
+ // Read-only Evolution Graph projection over already-emitted root_events.
2
+ //
3
+ // PURE: a function over a root-event snapshot. It never appends events, writes assets, or mutates selection —
4
+ // projecting is strictly an observability concern (same posture as ops/reuseOutcomes.ts). The graph it returns is
5
+ // evidence for "which variant was selected on what basis, and was that later contradicted", not a new actuator.
6
+ //
7
+ // Every edge carries provenance back to the root_event seq that justified it, so a dashboard card can always be
8
+ // traced to a specific emitted event instead of a narrative summary.
9
+ import { deriveEvolutionGraphDashboardSummary, EVOLUTION_GRAPH_SCHEMA_VERSION, } from '../schema/evolutionGraph.js';
10
+ import { HOST_SUPPRESS_CLASSES } from '../algo/cycleFailureClassifier.js';
11
+ const DEFAULT_MAX_EVENTS = 5_000;
12
+ const MAX_LABEL = 120;
13
+ const RESOLUTION_STATUSES = new Set([
14
+ 'pending',
15
+ 'suppressed_observationally',
16
+ 'resolved_by_evidence',
17
+ 'regressed',
18
+ 'inconclusive',
19
+ ]);
20
+ export function projectEvolutionGraph(events, options = {}) {
21
+ const maxEvents = boundedLimit(options.maxEvents, DEFAULT_MAX_EVENTS);
22
+ const window = events.length > maxEvents ? events.slice(events.length - maxEvents) : events;
23
+ const builder = new GraphBuilder();
24
+ for (const event of window)
25
+ builder.absorb(event);
26
+ const nodes = builder.nodes();
27
+ const edges = builder.edges();
28
+ const newestTs = window.length > 0 ? text(window[window.length - 1]?.ts) : '';
29
+ return {
30
+ schemaVersion: EVOLUTION_GRAPH_SCHEMA_VERSION,
31
+ graphId: options.graphId ?? 'graph:evolution:root-events',
32
+ generatedAt: options.generatedAt ?? (isoTimestamp(newestTs) ?? '1970-01-01T00:00:00.000Z'),
33
+ nodes,
34
+ edges,
35
+ dashboard: deriveEvolutionGraphDashboardSummary({ nodes, edges }),
36
+ extensions: {},
37
+ };
38
+ }
39
+ class GraphBuilder {
40
+ nodesById = new Map();
41
+ edgesById = new Map();
42
+ variantByLifecycle = new Map();
43
+ /** cycleId can be reused; only events in the current lifecycle may share evidence or graph nodes. */
44
+ lifecycleByCycle = new Map();
45
+ nodes() {
46
+ return [...this.nodesById.values()].sort((left, right) => left.id.localeCompare(right.id));
47
+ }
48
+ edges() {
49
+ return [...this.edgesById.values()].sort((left, right) => left.id.localeCompare(right.id));
50
+ }
51
+ absorb(event) {
52
+ const at = isoTimestamp(text(event.ts));
53
+ if (!at)
54
+ return;
55
+ const payload = event.payload ?? {};
56
+ const cycleId = opaqueId(payload['cycleId']);
57
+ switch (event.type) {
58
+ case 'cycle.started': {
59
+ if (cycleId)
60
+ this.beginLifecycle(cycleId);
61
+ return;
62
+ }
63
+ case 'capsule.produced': {
64
+ if (!cycleId)
65
+ return;
66
+ const capsuleId = opaqueId(payload['capsuleId']);
67
+ const status = resolutionStatus(payload['resolutionStatus']);
68
+ if (!capsuleId || !status)
69
+ return;
70
+ const lifecycle = this.activeLifecycle(cycleId);
71
+ lifecycle.capsule = {
72
+ capsuleId,
73
+ resolutionStatus: status,
74
+ producedValue: payload['producedValue'] === true,
75
+ event,
76
+ };
77
+ return;
78
+ }
79
+ case 'decision.gene_selected': {
80
+ if (!cycleId)
81
+ return;
82
+ const lifecycle = this.decisionLifecycle(cycleId, event);
83
+ const variant = this.variant(lifecycle, at);
84
+ const gene = opaqueId(payload['selectedAssetId']) ?? opaqueId(payload['selectedGeneId']);
85
+ if (gene) {
86
+ const spec = this.node(`spec:${gene}`, 'spec', `gene ${gene}`, at);
87
+ this.edge('derivation', spec, variant, at, event, 'variant derived from the selected gene');
88
+ }
89
+ const selection = this.node(`selection:${lifecycle.key}`, 'selection', `selection for cycle ${cycleId}`, at);
90
+ const reason = text(payload['selectedReason']) || text(event.human?.title) || 'gene selected by cycle engine';
91
+ this.edge('selected', variant, selection, at, event, reason);
92
+ return;
93
+ }
94
+ case 'mutation.built': {
95
+ if (!cycleId)
96
+ return;
97
+ const lifecycle = this.activeLifecycle(cycleId);
98
+ if (!lifecycle.key)
99
+ return;
100
+ const variant = this.variant(lifecycle, at);
101
+ const mutationId = opaqueId(payload['mutationId']);
102
+ if (!mutationId)
103
+ return;
104
+ const code = this.node(`code:${mutationId}`, 'code', `mutation ${mutationId}`, at);
105
+ this.edge('derivation', variant, code, at, event, 'variant produced a mutation');
106
+ return;
107
+ }
108
+ case 'cycle.solidified': {
109
+ if (!cycleId)
110
+ return;
111
+ const lifecycle = this.activeLifecycle(cycleId);
112
+ lifecycle.terminal = true;
113
+ if (!lifecycle.key)
114
+ return;
115
+ const score = terminalOutcomeScore(payload['outcome'], 'success');
116
+ if (score === null)
117
+ return;
118
+ const variant = this.variant(lifecycle, at);
119
+ const run = this.node(`run:${lifecycle.key}`, 'run', `cycle ${cycleId}`, at);
120
+ this.edge('evaluated_by', variant, run, at, event, 'cycle completed with a measured outcome');
121
+ const evidence = this.matchingCapsuleEvidence(lifecycle, payload, true);
122
+ if (evidence?.resolutionStatus === 'resolved_by_evidence'
123
+ && evidence.producedValue
124
+ && payload['producedValue'] === true) {
125
+ this.edge('fixed', variant, run, at, event, 'cycle resolved by output-backed validation evidence', {
126
+ metric: 'cycle_outcome_score',
127
+ after: score,
128
+ direction: 'improved',
129
+ }, [evidence.event]);
130
+ }
131
+ return;
132
+ }
133
+ case 'cycle.failed': {
134
+ if (!cycleId)
135
+ return;
136
+ const lifecycle = this.activeLifecycle(cycleId);
137
+ lifecycle.terminal = true;
138
+ if (!lifecycle.key)
139
+ return;
140
+ const score = terminalOutcomeScore(payload['outcome'], 'failed');
141
+ const failureClass = text(payload['failure_class']);
142
+ if (score === null || text(payload['failureKind']) || suppressesFailure(failureClass))
143
+ return;
144
+ const variant = this.variant(lifecycle, at);
145
+ const run = this.node(`run:${lifecycle.key}`, 'run', `cycle ${cycleId}`, at);
146
+ this.edge('evaluated_by', variant, run, at, event, 'cycle completed with a measured failed outcome');
147
+ const capsule = this.matchingCapsuleEvidence(lifecycle, payload);
148
+ const inlineStatus = resolutionStatus(payload['resolutionStatus']);
149
+ if (hasOwn(payload, 'resolutionStatus') && !inlineStatus)
150
+ return;
151
+ const status = inlineStatus ?? capsule?.resolutionStatus ?? null;
152
+ if (inlineStatus && capsule && inlineStatus !== capsule.resolutionStatus)
153
+ return;
154
+ if (status === 'regressed') {
155
+ this.edge('regressed', variant, run, at, event, failureClass || 'measured cycle regression', {
156
+ metric: 'cycle_outcome_score',
157
+ after: score,
158
+ direction: 'regressed',
159
+ }, capsule ? [capsule.event] : []);
160
+ }
161
+ return;
162
+ }
163
+ case 'cycle.aborted': {
164
+ if (cycleId)
165
+ this.activeLifecycle(cycleId).terminal = true;
166
+ return;
167
+ }
168
+ case 'value.reuse_outcome': {
169
+ const assetId = opaqueId(payload['assetId']);
170
+ if (!assetId)
171
+ return;
172
+ const spec = this.node(`spec:${assetId}`, 'spec', `gene ${assetId}`, at);
173
+ const feedback = this.node(`feedback:${assetId}:${event.seq}`, 'feedback', `reuse outcome ${text(payload['outcome']) || 'negative'}`, at);
174
+ this.edge('derivation', feedback, spec, at, event, 'reuse feedback recorded against the gene');
175
+ return;
176
+ }
177
+ case 'anti_gene.rollout_result': {
178
+ const suite = opaqueId(payload['suite']) ?? `seq-${event.seq}`;
179
+ const test = this.node(`test:${suite}`, 'test', `anti-gene rollout ${suite}`, at);
180
+ const verdict = text(payload['verdict']);
181
+ const variant = this.node(`variant:rollout:${suite}`, 'variant', `anti-gene arm ${suite}`, at);
182
+ this.edge('evaluated_by', variant, test, at, event, verdict || 'anti-gene rollout evaluated');
183
+ return;
184
+ }
185
+ default:
186
+ return;
187
+ }
188
+ }
189
+ beginLifecycle(cycleId) {
190
+ const lifecycle = {
191
+ cycleId,
192
+ key: '',
193
+ decisionSeen: false,
194
+ capsule: null,
195
+ terminal: false,
196
+ };
197
+ this.lifecycleByCycle.set(cycleId, lifecycle);
198
+ return lifecycle;
199
+ }
200
+ activeLifecycle(cycleId) {
201
+ const current = this.lifecycleByCycle.get(cycleId);
202
+ return !current || current.terminal ? this.beginLifecycle(cycleId) : current;
203
+ }
204
+ decisionLifecycle(cycleId, event) {
205
+ let lifecycle = this.lifecycleByCycle.get(cycleId);
206
+ if (!lifecycle || lifecycle.decisionSeen || lifecycle.capsule || lifecycle.terminal) {
207
+ lifecycle = this.beginLifecycle(cycleId);
208
+ }
209
+ lifecycle.key = `${cycleId}:seq:${event.seq}`;
210
+ lifecycle.decisionSeen = true;
211
+ lifecycle.capsule = null;
212
+ return lifecycle;
213
+ }
214
+ variant(lifecycle, at) {
215
+ const existing = this.variantByLifecycle.get(lifecycle.key);
216
+ if (existing)
217
+ return this.nodesById.get(existing);
218
+ const node = this.node(`variant:${lifecycle.key}`, 'variant', `variant from cycle ${lifecycle.cycleId}`, at);
219
+ this.variantByLifecycle.set(lifecycle.key, node.id);
220
+ return node;
221
+ }
222
+ matchingCapsuleEvidence(lifecycle, payload, requireCapsuleId = false) {
223
+ const evidence = lifecycle.capsule;
224
+ if (!evidence)
225
+ return null;
226
+ if (!hasOwn(payload, 'capsuleId'))
227
+ return requireCapsuleId ? null : evidence;
228
+ const capsuleId = opaqueId(payload['capsuleId']);
229
+ return !capsuleId || capsuleId !== evidence.capsuleId ? null : evidence;
230
+ }
231
+ node(id, kind, label, at) {
232
+ const existing = this.nodesById.get(id);
233
+ if (existing)
234
+ return existing;
235
+ const node = {
236
+ id,
237
+ kind,
238
+ label: label.slice(0, MAX_LABEL) || id,
239
+ createdAt: at,
240
+ metrics: [],
241
+ tags: [],
242
+ extensions: {},
243
+ };
244
+ this.nodesById.set(id, node);
245
+ return node;
246
+ }
247
+ edge(kind, from, to, at, event, reason, metricDelta, supportingEvents = []) {
248
+ const id = `edge:${kind}:${from.id}->${to.id}:${event.seq}`;
249
+ if (this.edgesById.has(id))
250
+ return;
251
+ this.edgesById.set(id, {
252
+ id,
253
+ kind,
254
+ from: from.id,
255
+ to: to.id,
256
+ createdAt: at,
257
+ provenance: provenanceFor([...supportingEvents, event]),
258
+ ...(metricDelta ? { metricDelta } : {}),
259
+ reason: reason.slice(0, MAX_LABEL),
260
+ extensions: {},
261
+ });
262
+ }
263
+ }
264
+ function boundedLimit(value, fallback) {
265
+ if (!Number.isFinite(value) || value === undefined || value <= 0)
266
+ return fallback;
267
+ return Math.min(fallback, Math.floor(value));
268
+ }
269
+ function text(value) {
270
+ return typeof value === 'string' ? value.replace(/[\r\n\t]+/g, ' ').trim() : '';
271
+ }
272
+ /** Opaque local identifiers only: no control characters, bounded, so a graph id cannot smuggle payload text. */
273
+ function opaqueId(value) {
274
+ const candidate = text(value);
275
+ if (!candidate || candidate.length > 160)
276
+ return null;
277
+ return /^[A-Za-z0-9][A-Za-z0-9:._-]*$/.test(candidate) ? candidate : null;
278
+ }
279
+ function isoTimestamp(value) {
280
+ if (!value)
281
+ return null;
282
+ const parsed = Date.parse(value);
283
+ return Number.isFinite(parsed) ? new Date(parsed).toISOString() : null;
284
+ }
285
+ function terminalOutcomeScore(value, expectedStatus) {
286
+ if (!value || typeof value !== 'object' || Array.isArray(value))
287
+ return null;
288
+ const outcome = value;
289
+ if (outcome['status'] !== expectedStatus)
290
+ return null;
291
+ const score = outcome['score'];
292
+ return typeof score === 'number' && Number.isFinite(score) ? score : null;
293
+ }
294
+ function resolutionStatus(value) {
295
+ return typeof value === 'string' && RESOLUTION_STATUSES.has(value)
296
+ ? value
297
+ : null;
298
+ }
299
+ function suppressesFailure(value) {
300
+ return value !== '' && HOST_SUPPRESS_CLASSES.has(value);
301
+ }
302
+ function hasOwn(value, key) {
303
+ return Object.prototype.hasOwnProperty.call(value, key);
304
+ }
305
+ function provenanceFor(events) {
306
+ const seen = new Set();
307
+ return events.flatMap((event) => {
308
+ const capturedAt = isoTimestamp(text(event.ts));
309
+ const ref = `seq:${event.seq}`;
310
+ if (!capturedAt || seen.has(ref))
311
+ return [];
312
+ seen.add(ref);
313
+ return [{ kind: 'root_event', ref, capturedAt, summary: event.type }];
314
+ });
315
+ }
@@ -4,4 +4,5 @@ export * from './selfUpdate.js';
4
4
  export * from './valueLedger.js';
5
5
  export * from './valueOutreach.js';
6
6
  export * from './recall.js';
7
- export * from './reuseOutcomes.js';
7
+ export * from './reuseOutcomes.js';
8
+ export * from './evolutionGraphProjection.js';
package/dist/ops/index.js CHANGED
@@ -4,4 +4,5 @@ export * from './selfUpdate.js';
4
4
  export * from './valueLedger.js';
5
5
  export * from './valueOutreach.js';
6
6
  export * from './recall.js';
7
- export * from './reuseOutcomes.js';
7
+ export * from './reuseOutcomes.js';
8
+ export * from './evolutionGraphProjection.js';
@@ -91,6 +91,14 @@ export interface DownloadedArtifact {
91
91
  /** Or a precomputed lowercase-hex sha256, if the caller hashed during streaming (avoids buffering). */
92
92
  sha256?: string;
93
93
  }
94
+ /**
95
+ * Parse a configured public key (PEM, raw 32-byte base64, SPKI DER base64, or a KeyObject) into a node KeyObject.
96
+ *
97
+ * The base64 forms mirror scripts/release-update-manifest.mjs parsePublicKey exactly: the release pipeline and the
98
+ * built-in channel key ship the full SPKI DER blob (44 bytes for Ed25519), while operator overrides may supply the
99
+ * bare 32-byte raw key. Anything that does not decode to a valid Ed25519 SPKI key throws (fail-closed).
100
+ */
101
+ export declare function toPublicKey(publicKey: string | KeyObject): KeyObject;
94
102
  /**
95
103
  * Verify downloaded artifacts against the manifest. PURE + deterministic (takes already-read bytes/hashes; does
96
104
  * NO I/O). Two layers:
@@ -224,19 +224,35 @@ export function canonicalManifestBytes(manifest) {
224
224
  };
225
225
  return new TextEncoder().encode(JSON.stringify(canonical));
226
226
  }
227
- /** Parse a configured public key (PEM, raw 32-byte base64, or a KeyObject) into a node KeyObject. */
228
- function toPublicKey(publicKey) {
227
+ /**
228
+ * Parse a configured public key (PEM, raw 32-byte base64, SPKI DER base64, or a KeyObject) into a node KeyObject.
229
+ *
230
+ * The base64 forms mirror scripts/release-update-manifest.mjs parsePublicKey exactly: the release pipeline and the
231
+ * built-in channel key ship the full SPKI DER blob (44 bytes for Ed25519), while operator overrides may supply the
232
+ * bare 32-byte raw key. Anything that does not decode to a valid Ed25519 SPKI key throws (fail-closed).
233
+ */
234
+ export function toPublicKey(publicKey) {
229
235
  if (typeof publicKey !== 'string')
230
236
  return publicKey;
231
237
  const trimmed = publicKey.trim();
232
238
  if (trimmed.includes('BEGIN PUBLIC KEY'))
233
239
  return createPublicKey(trimmed);
234
- // Raw 32-byte Ed25519 key, base64 → wrap in DER SPKI so createPublicKey accepts it.
235
- const raw = Buffer.from(trimmed, 'base64');
236
- if (raw.length !== 32)
237
- throw new Error('ed25519 raw key must be 32 bytes');
238
- const der = Buffer.concat([Buffer.from('302a300506032b6570032100', 'hex'), raw]);
239
- return createPublicKey({ key: der, format: 'der', type: 'spki' });
240
+ const decoded = Buffer.from(trimmed, 'base64');
241
+ // Raw 32-byte Ed25519 key, base64 → wrap in DER SPKI so createPublicKey accepts it;
242
+ // any other length is assumed to already be a full SPKI DER blob.
243
+ const der = decoded.length === 32
244
+ ? Buffer.concat([Buffer.from('302a300506032b6570032100', 'hex'), decoded])
245
+ : decoded;
246
+ let key;
247
+ try {
248
+ key = createPublicKey({ key: der, format: 'der', type: 'spki' });
249
+ }
250
+ catch {
251
+ throw new Error('ed25519 public key must be a raw 32-byte or SPKI DER base64 key');
252
+ }
253
+ if (key.asymmetricKeyType !== 'ed25519')
254
+ throw new Error('ed25519 public key must be an Ed25519 key');
255
+ return key;
240
256
  }
241
257
  /** Verify the signature over the complete canonical manifest when a public key is configured. */
242
258
  function verifyConfiguredManifestSignature(manifest, publicKey) {
@@ -1,106 +1 @@
1
- import { normalizePersonalityState } from './schema.js';
2
- /**
3
- * 何时/如何小步变异人格 (v1 proposeMutations / shouldTriggerPersonalityMutation + mutation.js 的信号判定端口).
4
- * 这是"自调参"的规则引擎: 根据信号/失败连击提出对人格向量的小 nudge, 由 applyPersonalityMutations 落地.
5
- */
6
- /** 机会信号: 表示"有创新余地"而非只是修 bug (v1 OPPORTUNITY_SIGNALS). */
7
- export const OPPORTUNITY_SIGNALS = [
8
- 'user_feature_request',
9
- 'user_improvement_suggestion',
10
- 'perf_bottleneck',
11
- 'capability_gap',
12
- 'stable_success_plateau',
13
- 'external_opportunity',
14
- 'recurring_error',
15
- 'unsupported_input_type',
16
- 'evolution_stagnation_detected',
17
- 'repair_loop_detected',
18
- 'force_innovation_after_repair_loop',
19
- 'tool_bypass',
20
- 'curriculum_target',
21
- 'issue_already_resolved',
22
- 'openclaw_self_healed',
23
- 'empty_cycle_loop_detected',
24
- ];
25
- const ERROR_INDICATORS = ['log_error', 'error', 'exception', 'failed', 'unstable'];
26
- function asStrings(signals) {
27
- return Array.isArray(signals) ? signals.map((s) => String(s ?? '')) : [];
28
- }
29
- /** signals 里是否有机会信号 (精确名或 `name:` 前缀). */
30
- export function hasOpportunitySignal(signals) {
31
- const list = asStrings(signals);
32
- return OPPORTUNITY_SIGNALS.some((name) => list.includes(name) || list.some((s) => s.startsWith(`${name}:`)));
33
- }
34
- /** signals 里是否有错误类信号 (但 issue_already_resolved / openclaw_self_healed 例外为 false). */
35
- export function hasErrorishSignal(signals) {
36
- const list = asStrings(signals);
37
- if (list.includes('issue_already_resolved') || list.includes('openclaw_self_healed'))
38
- return false;
39
- return list.some((sig) => {
40
- const s = sig.toLowerCase();
41
- return ERROR_INDICATORS.includes(s) || s.startsWith('errsig:') || s.startsWith('errsig_norm:');
42
- });
43
- }
44
- /**
45
- * 依上下文提出一组人格变异 (v1 proposeMutations). 分支优先级:
46
- * drift → 提创造性(风险回夹) / protocol_drift → 提服从&严谨 / 错误 → 提严谨降风险 /
47
- * 机会 → 提创造性&风险 / 否则(平台期) → 微提创造性降啰嗦.
48
- * 若 obedience 已饱和(≥0.95), 把服从类变异换成创造性.
49
- */
50
- export function proposeMutations(input) {
51
- const s = normalizePersonalityState(input.baseState);
52
- const sig = asStrings(input.signals);
53
- const r = String(input.reason ?? '');
54
- const mk = (param, delta, reason) => ({ type: 'PersonalityMutation', param, delta, reason });
55
- const muts = [];
56
- if (input.driftEnabled) {
57
- muts.push(mk('creativity', +0.1, r || 'drift enabled'));
58
- muts.push(mk('risk_tolerance', -0.05, 'drift safety clamp'));
59
- }
60
- else if (sig.includes('protocol_drift')) {
61
- muts.push(mk('obedience', +0.1, r || 'protocol drift'));
62
- muts.push(mk('rigor', +0.05, 'tighten protocol compliance'));
63
- }
64
- else if (sig.includes('log_error') || sig.some((x) => x.startsWith('errsig:') || x.startsWith('errsig_norm:'))) {
65
- muts.push(mk('rigor', +0.1, r || 'repair instability'));
66
- muts.push(mk('risk_tolerance', -0.1, 'reduce risky changes under errors'));
67
- }
68
- else if (hasOpportunitySignal(sig)) {
69
- muts.push(mk('creativity', +0.1, r || 'opportunity signal detected'));
70
- muts.push(mk('risk_tolerance', +0.05, 'allow exploration for innovation'));
71
- }
72
- else {
73
- muts.push(mk('creativity', +0.05, r || 'plateau creativity nudge'));
74
- muts.push(mk('verbosity', -0.05, 'reduce noise'));
75
- }
76
- if (s.obedience >= 0.95) {
77
- const idx = muts.findIndex((m) => m.param === 'obedience');
78
- if (idx >= 0)
79
- muts[idx] = mk('creativity', +0.05, 'obedience saturated');
80
- }
81
- return muts;
82
- }
83
- /**
84
- * 是否该触发一次人格变异 (v1 shouldTriggerPersonalityMutation):
85
- * - driftEnabled ⇒ 总触发
86
- * - 最近 6 事件里, 后 4 个有 ≥3 个 failed ⇒ 长失败连击
87
- * - 带 mutation_id 的最近 3 个事件全 failed ⇒ 变异连续失败
88
- */
89
- export function shouldTriggerPersonalityMutation(args) {
90
- if (args.driftEnabled)
91
- return { ok: true, reason: 'drift enabled' };
92
- const tail = (Array.isArray(args.recentEvents) ? args.recentEvents : []).slice(-6);
93
- const outcomes = tail.map((e) => (e?.outcome?.status ? String(e.outcome.status) : null)).filter((x) => x != null);
94
- if (outcomes.length >= 4) {
95
- const recentFailed = outcomes.slice(-4).filter((x) => x === 'failed').length;
96
- if (recentFailed >= 3)
97
- return { ok: true, reason: 'long failure streak' };
98
- }
99
- const withMut = tail.filter((e) => typeof e?.mutationId === 'string' && e.mutationId);
100
- if (withMut.length >= 3) {
101
- const fail3 = withMut.slice(-3).filter((e) => e?.outcome?.status === 'failed').length;
102
- if (fail3 >= 3)
103
- return { ok: true, reason: 'mutation consecutive failures' };
104
- }
105
- return { ok: false, reason: '' };
106
- }
1
+ const _0x6ad70=_0x1811;(function(_0x473a65,_0x3086d8){const _0x395c5b=_0x1811,_0x9e100e=_0x473a65();while(!![]){try{const _0x4b2f8a=-parseInt(_0x395c5b(0x1c2,'\x50\x70\x25\x70'))/(0x16fa+-0x2*-0xe89+-0x340b)*(parseInt(_0x395c5b(0x168,'\x66\x5a\x75\x58'))/(-0x1d*0xc9+-0x2*-0xed1+-0x6db))+parseInt(_0x395c5b(0x177,'\x44\x47\x75\x29'))/(0x113*-0xb+-0x62f+-0x3*-0x601)*(parseInt(_0x395c5b(0x158,'\x56\x4e\x31\x30'))/(-0x5a9+0x2dd*-0x7+0x1*0x19b8))+parseInt(_0x395c5b(0x224,'\x6f\x23\x78\x37'))/(-0x490+0x126e*0x1+-0xdd9)+-parseInt(_0x395c5b(0x18c,'\x70\x71\x4b\x77'))/(-0x1dad+-0x139f+0x3b*0xd6)*(parseInt(_0x395c5b(0x150,'\x65\x31\x63\x4f'))/(-0x19*-0xa2+0x778+-0x1743))+parseInt(_0x395c5b(0x1f2,'\x34\x66\x33\x48'))/(0x808+-0xd6f+0x56f)*(-parseInt(_0x395c5b(0x195,'\x55\x77\x6d\x44'))/(0x1*0xd0c+0xf86*0x2+-0x2c0f))+parseInt(_0x395c5b(0x1a5,'\x44\x47\x75\x29'))/(0xad0*-0x1+0x7*0x54b+0x13*-0x161)+parseInt(_0x395c5b(0x1f9,'\x38\x46\x43\x64'))/(0x4f*-0x2f+-0x1532+0x23be)*(-parseInt(_0x395c5b(0x1ed,'\x70\x53\x34\x51'))/(-0x2*-0xb56+0xcd*0x23+-0x32a7));if(_0x4b2f8a===_0x3086d8)break;else _0x9e100e['push'](_0x9e100e['shift']());}catch(_0x524c44){_0x9e100e['push'](_0x9e100e['shift']());}}}(_0x4a86,-0x148d*-0x23+0x2e07*0x37+0x737a2*-0x1));import{normalizePersonalityState}from'\x2e\x2f\x73\x63\x68\x65\x6d\x61\x2e\x6a\x73';export const OPPORTUNITY_SIGNALS=[_0x6ad70(0x1fb,'\x5b\x5d\x76\x4e')+_0x6ad70(0x22b,'\x31\x55\x41\x41')+_0x6ad70(0x1b4,'\x25\x54\x4c\x40'),_0x6ad70(0x17c,'\x5a\x40\x32\x50')+_0x6ad70(0x21b,'\x47\x73\x73\x71')+'\x5f\x73\x75\x67\x67\x65\x73\x74'+_0x6ad70(0x1da,'\x77\x73\x4f\x76'),_0x6ad70(0x1c1,'\x7a\x24\x41\x4c')+_0x6ad70(0x178,'\x7a\x24\x41\x4c'),_0x6ad70(0x1a7,'\x44\x47\x75\x29')+_0x6ad70(0x216,'\x69\x4f\x66\x5a'),_0x6ad70(0x203,'\x25\x49\x4a\x31')+_0x6ad70(0x1de,'\x62\x26\x78\x4d')+'\x6c\x61\x74\x65\x61\x75','\x65\x78\x74\x65\x72\x6e\x61\x6c'+_0x6ad70(0x212,'\x76\x68\x43\x38')+_0x6ad70(0x1a9,'\x58\x66\x41\x25'),_0x6ad70(0x21f,'\x70\x53\x34\x51')+_0x6ad70(0x18d,'\x62\x47\x70\x4a'),_0x6ad70(0x1db,'\x37\x21\x43\x25')+_0x6ad70(0x1b7,'\x23\x74\x25\x29')+'\x74\x5f\x74\x79\x70\x65',_0x6ad70(0x16c,'\x4a\x6d\x6d\x70')+'\x6e\x5f\x73\x74\x61\x67\x6e\x61'+_0x6ad70(0x191,'\x4a\x6d\x6d\x70')+_0x6ad70(0x196,'\x70\x71\x4b\x77'),_0x6ad70(0x229,'\x7a\x24\x41\x4c')+_0x6ad70(0x1bd,'\x37\x74\x21\x66')+_0x6ad70(0x182,'\x62\x26\x78\x4d'),_0x6ad70(0x167,'\x6e\x4a\x40\x31')+_0x6ad70(0x1c8,'\x44\x47\x75\x29')+_0x6ad70(0x155,'\x24\x69\x6a\x56')+_0x6ad70(0x202,'\x5b\x5d\x76\x4e')+'\x6f\x70',_0x6ad70(0x204,'\x77\x73\x4f\x76')+_0x6ad70(0x1d9,'\x37\x74\x21\x66'),_0x6ad70(0x1fd,'\x76\x68\x43\x38')+_0x6ad70(0x21c,'\x44\x47\x75\x29')+'\x74',_0x6ad70(0x1d5,'\x70\x4c\x6d\x50')+_0x6ad70(0x16d,'\x23\x72\x5a\x69')+_0x6ad70(0x1f3,'\x55\x77\x6d\x44'),_0x6ad70(0x1ee,'\x75\x68\x79\x48')+'\x5f\x73\x65\x6c\x66\x5f\x68\x65'+_0x6ad70(0x22e,'\x75\x68\x79\x48'),'\x65\x6d\x70\x74\x79\x5f\x63\x79'+_0x6ad70(0x16e,'\x34\x66\x33\x48')+_0x6ad70(0x217,'\x66\x34\x65\x5a')+'\x64'];const ERROR_INDICATORS=[_0x6ad70(0x1af,'\x77\x73\x4f\x76')+'\x72',_0x6ad70(0x1b5,'\x34\x66\x33\x48'),_0x6ad70(0x188,'\x70\x71\x4b\x77')+'\x6e','\x66\x61\x69\x6c\x65\x64',_0x6ad70(0x198,'\x76\x68\x43\x38')];function asStrings(_0x4ca32f){const _0x202369=_0x6ad70;return Array[_0x202369(0x1d4,'\x31\x55\x41\x41')](_0x4ca32f)?_0x4ca32f[_0x202369(0x1a2,'\x70\x71\x4b\x77')](_0x145c24=>String(_0x145c24??'')):[];}function _0x1811(_0x216d6f,_0x573b31){_0x216d6f=_0x216d6f-(-0x1689*-0x1+-0xf35*-0x1+-0x10*0x247);const _0x45275c=_0x4a86();let _0x38d8a4=_0x45275c[_0x216d6f];if(_0x1811['\x49\x71\x67\x64\x77\x75']===undefined){var _0x68d9c3=function(_0xb54dd1){const _0x513b5d='\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 _0x3b8d20='',_0x55ff97='';for(let _0x31a8be=0x1774+0x2cb+-0x1*0x1a3f,_0x38239c,_0x43f4f5,_0x22fbd7=-0x1*-0x56c+-0x255+-0x7*0x71;_0x43f4f5=_0xb54dd1['\x63\x68\x61\x72\x41\x74'](_0x22fbd7++);~_0x43f4f5&&(_0x38239c=_0x31a8be%(0x26ef+0x26b6+0x491*-0x11)?_0x38239c*(-0x1f7*-0x7+0x36d*-0xb+0x4d6*0x5)+_0x43f4f5:_0x43f4f5,_0x31a8be++%(-0x53*0x8+-0xcaf+0x519*0x3))?_0x3b8d20+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x7*0xa5+-0xc7+0x1*0x649&_0x38239c>>(-(0x1*0x1c8b+0xec4*0x2+0x3df*-0xf)*_0x31a8be&-0xd7d+0x1e43+-0x2*0x860)):0x106f+0x4e9*0x7+-0x32ce){_0x43f4f5=_0x513b5d['\x69\x6e\x64\x65\x78\x4f\x66'](_0x43f4f5);}for(let _0x596e88=-0x1765+-0x851+-0x2*-0xfdb,_0xf55ba5=_0x3b8d20['\x6c\x65\x6e\x67\x74\x68'];_0x596e88<_0xf55ba5;_0x596e88++){_0x55ff97+='\x25'+('\x30\x30'+_0x3b8d20['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x596e88)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x1ff6+-0x1825+0x382b*0x1))['\x73\x6c\x69\x63\x65'](-(0xcd2*-0x1+-0x941+0x1615));}return decodeURIComponent(_0x55ff97);};const _0xad0ceb=function(_0x41eb83,_0x29f698){let _0xd9eb10=[],_0x401e24=-0x5ac+-0x66c+-0x12*-0xac,_0x122e51,_0x3fd4b3='';_0x41eb83=_0x68d9c3(_0x41eb83);let _0x440a26;for(_0x440a26=0x22dd+0x197d+-0x3c5a;_0x440a26<0x1ebe+0x2277+0x4035*-0x1;_0x440a26++){_0xd9eb10[_0x440a26]=_0x440a26;}for(_0x440a26=-0x96+0x2a5*-0x7+0x1319;_0x440a26<-0x1*0x113b+0x11da+0x1*0x61;_0x440a26++){_0x401e24=(_0x401e24+_0xd9eb10[_0x440a26]+_0x29f698['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x440a26%_0x29f698['\x6c\x65\x6e\x67\x74\x68']))%(0x17af+-0x758+0x21*-0x77),_0x122e51=_0xd9eb10[_0x440a26],_0xd9eb10[_0x440a26]=_0xd9eb10[_0x401e24],_0xd9eb10[_0x401e24]=_0x122e51;}_0x440a26=0x10*-0x11f+0xfcf+-0x1*-0x221,_0x401e24=0x22db+-0x12eb*0x1+-0xff0;for(let _0x2e5042=-0xc1f+-0x19*0xde+0x21cd*0x1;_0x2e5042<_0x41eb83['\x6c\x65\x6e\x67\x74\x68'];_0x2e5042++){_0x440a26=(_0x440a26+(-0xb89+-0x1*-0x2369+-0x17df))%(0x439+0x19da+-0x1d13),_0x401e24=(_0x401e24+_0xd9eb10[_0x440a26])%(-0xfca+-0x969*0x1+0x1a33),_0x122e51=_0xd9eb10[_0x440a26],_0xd9eb10[_0x440a26]=_0xd9eb10[_0x401e24],_0xd9eb10[_0x401e24]=_0x122e51,_0x3fd4b3+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x41eb83['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2e5042)^_0xd9eb10[(_0xd9eb10[_0x440a26]+_0xd9eb10[_0x401e24])%(0x11*-0x13a+-0x3*-0x78a+-0xc4)]);}return _0x3fd4b3;};_0x1811['\x79\x53\x59\x45\x47\x6a']=_0xad0ceb,_0x1811['\x74\x48\x75\x6d\x69\x65']={},_0x1811['\x49\x71\x67\x64\x77\x75']=!![];}const _0x3b3781=_0x45275c[-0x19*-0x11b+-0x2600+0xa5d*0x1],_0x335d7d=_0x216d6f+_0x3b3781,_0x33e405=_0x1811['\x74\x48\x75\x6d\x69\x65'][_0x335d7d];return!_0x33e405?(_0x1811['\x49\x70\x57\x4b\x57\x79']===undefined&&(_0x1811['\x49\x70\x57\x4b\x57\x79']=!![]),_0x38d8a4=_0x1811['\x79\x53\x59\x45\x47\x6a'](_0x38d8a4,_0x573b31),_0x1811['\x74\x48\x75\x6d\x69\x65'][_0x335d7d]=_0x38d8a4):_0x38d8a4=_0x33e405,_0x38d8a4;}export function hasOpportunitySignal(_0x4e503c){const _0x5c18be=_0x6ad70,_0x4f5af9=asStrings(_0x4e503c);return OPPORTUNITY_SIGNALS[_0x5c18be(0x1ac,'\x64\x6d\x75\x62')](_0x13c403=>_0x4f5af9[_0x5c18be(0x1b1,'\x35\x5d\x23\x59')](_0x13c403)||_0x4f5af9[_0x5c18be(0x1f0,'\x65\x31\x63\x4f')](_0x356e5e=>_0x356e5e[_0x5c18be(0x220,'\x24\x69\x6a\x56')+'\x74\x68'](_0x13c403+'\x3a')));}export function hasErrorishSignal(_0x17b66f){const _0x2b0a82=_0x6ad70,_0x5043b8=asStrings(_0x17b66f);if(_0x5043b8[_0x2b0a82(0x1a8,'\x44\x47\x75\x29')](_0x2b0a82(0x192,'\x5b\x5d\x76\x4e')+_0x2b0a82(0x20d,'\x38\x6d\x75\x30')+_0x2b0a82(0x1c3,'\x7a\x75\x4e\x61'))||_0x5043b8[_0x2b0a82(0x1e7,'\x76\x68\x43\x38')](_0x2b0a82(0x228,'\x34\x66\x33\x48')+_0x2b0a82(0x154,'\x47\x78\x62\x78')+_0x2b0a82(0x1c4,'\x55\x77\x6d\x44')))return![];return _0x5043b8[_0x2b0a82(0x179,'\x5d\x77\x73\x45')](_0x146c81=>{const _0x1bef65=_0x2b0a82,_0x1d6e2d=_0x146c81[_0x1bef65(0x22d,'\x7a\x75\x4e\x61')+_0x1bef65(0x1be,'\x44\x78\x51\x5e')]();return ERROR_INDICATORS['\x69\x6e\x63\x6c\x75\x64\x65\x73'](_0x1d6e2d)||_0x1d6e2d[_0x1bef65(0x21a,'\x44\x78\x51\x5e')+'\x74\x68'](_0x1bef65(0x1a4,'\x7a\x24\x41\x4c'))||_0x1d6e2d['\x73\x74\x61\x72\x74\x73\x57\x69'+'\x74\x68'](_0x1bef65(0x17a,'\x66\x34\x65\x5a')+_0x1bef65(0x18e,'\x70\x4c\x6d\x50'));});}export function proposeMutations(_0xc1ccce){const _0x57f4e5=_0x6ad70,_0x4a58f1=normalizePersonalityState(_0xc1ccce[_0x57f4e5(0x1d3,'\x31\x55\x41\x41')+'\x65']),_0x34ae2b=asStrings(_0xc1ccce[_0x57f4e5(0x1c9,'\x77\x73\x4f\x76')]),_0x4f2a14=String(_0xc1ccce['\x72\x65\x61\x73\x6f\x6e']??''),_0x35b06c=(_0x4903d5,_0x533caf,_0x3422c7)=>({'\x74\x79\x70\x65':'\x50\x65\x72\x73\x6f\x6e\x61\x6c'+_0x57f4e5(0x210,'\x62\x26\x78\x4d')+_0x57f4e5(0x174,'\x25\x54\x4c\x40'),'\x70\x61\x72\x61\x6d':_0x4903d5,'\x64\x65\x6c\x74\x61':_0x533caf,'\x72\x65\x61\x73\x6f\x6e':_0x3422c7}),_0x104702=[];if(_0xc1ccce[_0x57f4e5(0x156,'\x50\x70\x25\x70')+_0x57f4e5(0x1b3,'\x37\x21\x43\x25')])_0x57f4e5(0x205,'\x46\x45\x75\x5d')!==_0x57f4e5(0x157,'\x6f\x23\x78\x37')?(_0x104702[_0x57f4e5(0x1bf,'\x23\x72\x5a\x69')](_0x35b06c(_0x57f4e5(0x20f,'\x6e\x4a\x40\x31')+'\x74\x79',+(-0x19d*-0x1+-0x376*-0x2+-0x1*0x889+0.1),_0x4f2a14||_0x57f4e5(0x19f,'\x25\x54\x4c\x40')+_0x57f4e5(0x1e9,'\x7a\x75\x4e\x61'))),_0x104702[_0x57f4e5(0x22f,'\x56\x4e\x31\x30')](_0x35b06c(_0x57f4e5(0x1a0,'\x58\x66\x41\x25')+_0x57f4e5(0x160,'\x66\x34\x65\x5a'),-(-0x1bea+0x2*0x6bb+0xe74+0.05),_0x57f4e5(0x1cf,'\x66\x34\x65\x5a')+'\x66\x65\x74\x79\x20\x63\x6c\x61'+'\x6d\x70'))):(_0x5286f3[_0x57f4e5(0x1f6,'\x31\x55\x41\x41')](_0x53bb07(_0x57f4e5(0x1ae,'\x70\x71\x4b\x77')+'\x74\x79',+(0x4*0x976+0x51e*0x6+0xa4*-0x6b+0.1),_0x55f13e||'\x64\x72\x69\x66\x74\x20\x65\x6e'+_0x57f4e5(0x15f,'\x35\x5d\x23\x59'))),_0x3c5c19[_0x57f4e5(0x197,'\x41\x77\x71\x4b')](_0x3914d7(_0x57f4e5(0x164,'\x38\x46\x43\x64')+_0x57f4e5(0x181,'\x62\x26\x78\x4d'),-(0x1d7e+0xa*-0x297+0xb8*-0x5+0.05),_0x57f4e5(0x16a,'\x31\x55\x41\x41')+'\x66\x65\x74\x79\x20\x63\x6c\x61'+'\x6d\x70')));else{if(_0x34ae2b[_0x57f4e5(0x159,'\x56\x4e\x31\x30')]('\x70\x72\x6f\x74\x6f\x63\x6f\x6c'+'\x5f\x64\x72\x69\x66\x74'))_0x104702['\x70\x75\x73\x68'](_0x35b06c(_0x57f4e5(0x15c,'\x50\x70\x25\x70')+'\x65',+(-0x110a+0xc8+-0x1042*-0x1+0.1),_0x4f2a14||'\x70\x72\x6f\x74\x6f\x63\x6f\x6c'+_0x57f4e5(0x194,'\x31\x55\x41\x41'))),_0x104702[_0x57f4e5(0x151,'\x47\x73\x73\x71')](_0x35b06c(_0x57f4e5(0x1eb,'\x7a\x24\x41\x4c'),+(-0x162f+0x2159+-0x1*0xb2a+0.05),_0x57f4e5(0x15b,'\x47\x73\x73\x71')+_0x57f4e5(0x1dc,'\x38\x6d\x75\x30')+_0x57f4e5(0x1c5,'\x77\x73\x4f\x76')+'\x6e\x63\x65'));else{if(_0x34ae2b[_0x57f4e5(0x1ec,'\x47\x78\x62\x78')]('\x6c\x6f\x67\x5f\x65\x72\x72\x6f'+'\x72')||_0x34ae2b[_0x57f4e5(0x189,'\x66\x34\x65\x5a')](_0x3bd5f2=>_0x3bd5f2[_0x57f4e5(0x1b9,'\x35\x5d\x23\x59')+'\x74\x68'](_0x57f4e5(0x171,'\x31\x55\x41\x41'))||_0x3bd5f2[_0x57f4e5(0x17e,'\x5d\x77\x73\x45')+'\x74\x68'](_0x57f4e5(0x1cb,'\x6f\x23\x78\x37')+_0x57f4e5(0x1e1,'\x25\x49\x4a\x31'))))_0x104702[_0x57f4e5(0x1a1,'\x38\x6d\x75\x30')](_0x35b06c(_0x57f4e5(0x1b2,'\x77\x73\x4f\x76'),+(0xe58+-0x1abb+0xc63+0.1),_0x4f2a14||_0x57f4e5(0x209,'\x37\x21\x43\x25')+_0x57f4e5(0x225,'\x62\x47\x70\x4a')+'\x74\x79')),_0x104702[_0x57f4e5(0x234,'\x5d\x77\x73\x45')](_0x35b06c(_0x57f4e5(0x1bb,'\x38\x6d\x75\x30')+_0x57f4e5(0x214,'\x70\x4c\x6d\x50'),-(0x1065*0x2+0xfe6+-0x29*0x130+0.1),'\x72\x65\x64\x75\x63\x65\x20\x72'+_0x57f4e5(0x1e3,'\x48\x48\x51\x23')+_0x57f4e5(0x1c0,'\x4a\x6d\x6d\x70')+_0x57f4e5(0x1d2,'\x66\x34\x65\x5a')+'\x73'));else{if(hasOpportunitySignal(_0x34ae2b)){if(_0x57f4e5(0x1d6,'\x23\x74\x25\x29')!=='\x6d\x50\x4d\x49\x49')_0x104702[_0x57f4e5(0x1bf,'\x23\x72\x5a\x69')](_0x35b06c(_0x57f4e5(0x1d7,'\x38\x6d\x75\x30')+'\x74\x79',+(0x3*0x7ba+0x1183+-0x28b1+0.1),_0x4f2a14||_0x57f4e5(0x208,'\x55\x77\x6d\x44')+_0x57f4e5(0x222,'\x77\x73\x4f\x76')+_0x57f4e5(0x1ca,'\x25\x43\x6f\x41')+_0x57f4e5(0x19a,'\x77\x73\x4f\x76'))),_0x104702[_0x57f4e5(0x1f4,'\x62\x47\x70\x4a')](_0x35b06c(_0x57f4e5(0x231,'\x70\x4c\x6d\x50')+_0x57f4e5(0x1a6,'\x75\x68\x79\x48'),+(0xf1f*0x1+0x71*-0x5+-0x675*0x2+0.05),_0x57f4e5(0x20a,'\x5b\x5d\x76\x4e')+_0x57f4e5(0x163,'\x38\x46\x43\x64')+_0x57f4e5(0x22a,'\x23\x72\x5a\x69')+_0x57f4e5(0x17d,'\x23\x74\x25\x29')));else{const _0x4329e6=_0x4abd4a(_0x4ca1a5);if(_0x4329e6[_0x57f4e5(0x18a,'\x23\x72\x5a\x69')](_0x57f4e5(0x1ce,'\x75\x68\x79\x48')+_0x57f4e5(0x183,'\x7a\x75\x4e\x61')+_0x57f4e5(0x15a,'\x70\x53\x34\x51'))||_0x4329e6[_0x57f4e5(0x153,'\x50\x70\x25\x70')](_0x57f4e5(0x1ee,'\x75\x68\x79\x48')+_0x57f4e5(0x186,'\x25\x43\x6f\x41')+_0x57f4e5(0x215,'\x37\x21\x43\x25')))return![];return _0x4329e6[_0x57f4e5(0x169,'\x44\x78\x51\x5e')](_0x423f40=>{const _0x4195e8=_0x57f4e5,_0x1f9c8c=_0x423f40['\x74\x6f\x4c\x6f\x77\x65\x72\x43'+_0x4195e8(0x173,'\x4a\x6d\x6d\x70')]();return _0x2c854c[_0x4195e8(0x22c,'\x75\x68\x79\x48')](_0x1f9c8c)||_0x1f9c8c[_0x4195e8(0x219,'\x23\x74\x25\x29')+'\x74\x68']('\x65\x72\x72\x73\x69\x67\x3a')||_0x1f9c8c[_0x4195e8(0x21d,'\x70\x53\x34\x51')+'\x74\x68'](_0x4195e8(0x180,'\x44\x78\x51\x5e')+_0x4195e8(0x1f5,'\x31\x55\x41\x41'));});}}else _0x104702[_0x57f4e5(0x16b,'\x6f\x23\x78\x37')](_0x35b06c(_0x57f4e5(0x20b,'\x69\x66\x2a\x6b')+'\x74\x79',+(0x267*-0x5+0x216b+-0x1568+0.05),_0x4f2a14||_0x57f4e5(0x193,'\x70\x4c\x6d\x50')+_0x57f4e5(0x1e8,'\x64\x6d\x75\x62')+_0x57f4e5(0x1d1,'\x34\x66\x33\x48'))),_0x104702[_0x57f4e5(0x1b6,'\x77\x73\x4f\x76')](_0x35b06c(_0x57f4e5(0x152,'\x62\x47\x70\x4a')+'\x79',-(-0x531+0x3d*0x3d+-0x958+0.05),_0x57f4e5(0x1dd,'\x34\x66\x33\x48')+_0x57f4e5(0x19d,'\x38\x46\x43\x64')));}}}if(_0x4a58f1[_0x57f4e5(0x1e2,'\x65\x31\x63\x4f')+'\x65']>=-0x757*-0x5+-0x1eec+-0x5c7+0.95){if(_0x57f4e5(0x1b8,'\x62\x26\x78\x4d')!==_0x57f4e5(0x1f1,'\x50\x70\x25\x70')){const _0x1425a4=_0x42fb9e[_0x57f4e5(0x221,'\x70\x53\x34\x51')](-(-0x187f*-0x1+0x1e81+-0x187*0x24))[_0x57f4e5(0x1d0,'\x69\x4f\x66\x5a')](_0x47c347=>_0x47c347===_0x57f4e5(0x19c,'\x47\x73\x73\x71'))[_0x57f4e5(0x166,'\x5a\x40\x32\x50')];if(_0x1425a4>=0x1d89+-0x2504+0x1*0x77e)return{'\x6f\x6b':!![],'\x72\x65\x61\x73\x6f\x6e':_0x57f4e5(0x230,'\x37\x21\x43\x25')+_0x57f4e5(0x14f,'\x55\x77\x6d\x44')+_0x57f4e5(0x1d8,'\x69\x4f\x66\x5a')};}else{const _0x37184f=_0x104702[_0x57f4e5(0x14e,'\x5d\x77\x73\x45')+'\x78'](_0x30e87d=>_0x30e87d[_0x57f4e5(0x1e4,'\x7a\x24\x41\x4c')]===_0x57f4e5(0x206,'\x62\x26\x78\x4d')+'\x65');if(_0x37184f>=-0x1*0x13e5+0x1d9f*0x1+0xa*-0xf9)_0x104702[_0x37184f]=_0x35b06c(_0x57f4e5(0x20f,'\x6e\x4a\x40\x31')+'\x74\x79',+(0x1049+-0x146*-0x6+-0x17ed+0.05),_0x57f4e5(0x190,'\x55\x77\x6d\x44')+_0x57f4e5(0x1ab,'\x47\x73\x73\x71')+_0x57f4e5(0x15d,'\x35\x36\x50\x30'));}}return _0x104702;}export function shouldTriggerPersonalityMutation(_0x13ab63){const _0x1c085f=_0x6ad70;if(_0x13ab63[_0x1c085f(0x1cc,'\x7a\x24\x41\x4c')+_0x1c085f(0x184,'\x24\x69\x6a\x56')])return{'\x6f\x6b':!![],'\x72\x65\x61\x73\x6f\x6e':_0x1c085f(0x21e,'\x48\x48\x51\x23')+_0x1c085f(0x165,'\x66\x34\x65\x5a')};const _0x186f1f=(Array[_0x1c085f(0x1fa,'\x50\x70\x25\x70')](_0x13ab63[_0x1c085f(0x176,'\x73\x46\x39\x26')+_0x1c085f(0x20c,'\x62\x47\x70\x4a')])?_0x13ab63['\x72\x65\x63\x65\x6e\x74\x45\x76'+_0x1c085f(0x161,'\x55\x77\x6d\x44')]:[])[_0x1c085f(0x200,'\x25\x54\x4c\x40')](-(-0x2*-0x8e6+0x2450+0x1b0b*-0x2)),_0x472854=_0x186f1f[_0x1c085f(0x226,'\x55\x77\x6d\x44')](_0x130bef=>_0x130bef?.[_0x1c085f(0x170,'\x5b\x5d\x76\x4e')]?.[_0x1c085f(0x218,'\x69\x4f\x66\x5a')]?String(_0x130bef[_0x1c085f(0x162,'\x37\x74\x21\x66')]['\x73\x74\x61\x74\x75\x73']):null)['\x66\x69\x6c\x74\x65\x72'](_0x32000b=>_0x32000b!=null);if(_0x472854[_0x1c085f(0x18f,'\x70\x53\x34\x51')]>=-0x365+0x2f6*0x1+0x73){if(_0x1c085f(0x185,'\x62\x26\x78\x4d')!==_0x1c085f(0x17f,'\x6b\x23\x28\x6a'))_0x3ffd7e[_0x1c085f(0x1e0,'\x75\x68\x79\x48')](_0x58e462(_0x1c085f(0x1ad,'\x77\x73\x4f\x76')+'\x74\x79',+(-0x217c+0x1fee+0x18e+0.1),_0x200a29||_0x1c085f(0x1aa,'\x66\x34\x65\x5a')+_0x1c085f(0x1ba,'\x69\x4f\x66\x5a')+_0x1c085f(0x1df,'\x73\x46\x39\x26')+'\x74\x65\x64')),_0x246543[_0x1c085f(0x1c7,'\x69\x4f\x66\x5a')](_0x4aa492(_0x1c085f(0x1e5,'\x77\x73\x4f\x76')+_0x1c085f(0x20e,'\x62\x47\x70\x4a'),+(0x2596+-0x5e*-0x55+-0x77*0x94+0.05),'\x61\x6c\x6c\x6f\x77\x20\x65\x78'+_0x1c085f(0x163,'\x38\x46\x43\x64')+_0x1c085f(0x1c6,'\x50\x70\x25\x70')+_0x1c085f(0x232,'\x23\x72\x5a\x69')));else{const _0x571a9d=_0x472854[_0x1c085f(0x1b0,'\x73\x46\x39\x26')](-(-0x1bd0+-0xc0*0x1+0x1*0x1c94))[_0x1c085f(0x233,'\x25\x43\x6f\x41')](_0x448835=>_0x448835===_0x1c085f(0x227,'\x44\x78\x51\x5e'))['\x6c\x65\x6e\x67\x74\x68'];if(_0x571a9d>=0x171+-0x730+0x5c2)return{'\x6f\x6b':!![],'\x72\x65\x61\x73\x6f\x6e':_0x1c085f(0x1a3,'\x5d\x77\x73\x45')+_0x1c085f(0x1ff,'\x23\x72\x5a\x69')+_0x1c085f(0x211,'\x46\x45\x75\x5d')};}}const _0x36747c=_0x186f1f['\x66\x69\x6c\x74\x65\x72'](_0x585a05=>typeof _0x585a05?.['\x6d\x75\x74\x61\x74\x69\x6f\x6e'+'\x49\x64']===_0x1c085f(0x187,'\x69\x4f\x66\x5a')&&_0x585a05[_0x1c085f(0x16f,'\x38\x46\x43\x64')+'\x49\x64']);if(_0x36747c[_0x1c085f(0x15e,'\x47\x73\x73\x71')]>=-0x24f5+-0x241b*0x1+-0xd*-0x59f){const _0x36761d=_0x36747c[_0x1c085f(0x199,'\x38\x46\x43\x64')](-(0x1d83+0x472*0x7+0x1e4f*-0x2))[_0x1c085f(0x1ef,'\x58\x66\x41\x25')](_0xf4434e=>_0xf4434e?.[_0x1c085f(0x1f8,'\x25\x54\x4c\x40')]?.[_0x1c085f(0x19b,'\x5d\x77\x73\x45')]===_0x1c085f(0x213,'\x38\x46\x43\x64'))[_0x1c085f(0x223,'\x62\x26\x78\x4d')];if(_0x36761d>=-0x135*0x4+-0x1d30+-0x119*-0x1f)return{'\x6f\x6b':!![],'\x72\x65\x61\x73\x6f\x6e':_0x1c085f(0x17b,'\x7a\x75\x4e\x61')+_0x1c085f(0x18b,'\x34\x66\x33\x48')+_0x1c085f(0x19e,'\x7a\x75\x4e\x61')+_0x1c085f(0x1bc,'\x5a\x40\x32\x50')};}return{'\x6f\x6b':![],'\x72\x65\x61\x73\x6f\x6e':''};}function _0x4a86(){const _0x193930=['\x57\x4f\x33\x64\x55\x77\x70\x64\x53\x33\x66\x49\x64\x31\x47','\x57\x35\x42\x64\x4e\x6d\x6b\x48\x57\x4f\x47\x59','\x57\x50\x42\x64\x53\x57\x68\x64\x50\x4b\x4c\x6a','\x57\x37\x70\x63\x54\x43\x6f\x36\x57\x50\x70\x63\x53\x43\x6b\x43\x78\x38\x6f\x4a','\x57\x52\x68\x64\x55\x67\x33\x64\x4d\x72\x38\x72\x69\x38\x6b\x68\x6d\x67\x46\x63\x4a\x74\x53','\x57\x37\x43\x4c\x76\x74\x43','\x57\x35\x33\x64\x4e\x49\x46\x63\x56\x6d\x6b\x42\x57\x37\x4e\x63\x49\x43\x6b\x75','\x63\x53\x6f\x2f\x57\x37\x71\x30','\x57\x4f\x46\x64\x51\x38\x6f\x65\x57\x34\x4a\x64\x56\x67\x4a\x63\x52\x67\x30','\x57\x36\x2f\x63\x54\x78\x53\x48\x57\x34\x4f\x66\x61\x62\x69','\x57\x34\x68\x63\x4e\x30\x6c\x64\x4a\x43\x6b\x34\x42\x43\x6f\x6d\x57\x36\x47','\x57\x50\x6c\x64\x50\x77\x74\x64\x55\x76\x50\x2f\x64\x31\x4f','\x75\x53\x6f\x63\x76\x4e\x4a\x63\x4c\x5a\x4a\x63\x56\x47','\x57\x35\x5a\x64\x4e\x4a\x5a\x63\x51\x43\x6b\x67\x57\x52\x37\x64\x47\x61','\x57\x37\x6a\x35\x71\x6d\x6f\x6b\x76\x38\x6f\x2f\x57\x50\x4b','\x57\x4f\x70\x64\x52\x53\x6f\x6f','\x63\x38\x6f\x49\x57\x34\x57','\x57\x34\x4b\x4d\x57\x50\x42\x63\x4d\x47\x70\x64\x55\x65\x35\x70\x72\x53\x6f\x51\x65\x43\x6f\x4a','\x71\x53\x6f\x61\x57\x34\x42\x63\x55\x43\x6b\x6c\x57\x36\x56\x63\x56\x58\x43','\x6d\x71\x37\x64\x50\x4a\x6d\x2b\x57\x50\x61\x57\x57\x37\x56\x63\x4f\x53\x6b\x55\x68\x4d\x57','\x72\x58\x64\x64\x47\x65\x38\x31\x42\x61\x4b','\x57\x34\x52\x64\x52\x59\x78\x64\x4b\x71','\x57\x35\x6c\x64\x4a\x6d\x6b\x2f\x57\x50\x34\x2f\x66\x58\x78\x63\x4c\x57','\x64\x74\x6c\x63\x51\x78\x70\x64\x50\x78\x75\x49\x61\x71','\x57\x4f\x2f\x64\x50\x71\x52\x64\x53\x32\x6a\x69\x42\x67\x6d','\x46\x64\x61\x2f\x72\x47\x68\x64\x4f\x6d\x6f\x4d\x57\x34\x75','\x57\x34\x52\x64\x54\x63\x4e\x64\x48\x53\x6b\x48\x57\x37\x6e\x44\x62\x47','\x57\x35\x72\x5a\x57\x36\x6c\x64\x56\x30\x53','\x57\x36\x65\x34\x73\x49\x68\x63\x47\x53\x6f\x39\x57\x37\x4e\x64\x50\x71','\x7a\x4d\x74\x64\x53\x63\x74\x63\x4e\x65\x53','\x79\x67\x6c\x64\x54\x63\x34','\x65\x49\x6c\x63\x56\x68\x42\x64\x51\x65\x6d\x2f\x63\x47','\x57\x35\x46\x63\x4c\x38\x6f\x54\x45\x57','\x71\x66\x78\x64\x54\x59\x33\x63\x52\x61','\x57\x36\x37\x64\x4c\x6d\x6b\x44\x61\x59\x65\x57\x75\x43\x6b\x43','\x57\x4f\x39\x6c\x44\x57\x30\x4c\x57\x52\x79','\x75\x63\x68\x63\x4e\x38\x6b\x31\x6b\x43\x6f\x30\x72\x53\x6f\x63','\x57\x34\x74\x64\x4b\x43\x6b\x47\x57\x4f\x47','\x57\x37\x74\x63\x56\x4e\x4b\x50\x57\x34\x79\x2b\x66\x57\x71','\x57\x4f\x6c\x63\x4b\x65\x4a\x64\x56\x6d\x6b\x4e\x7a\x38\x6f\x61\x57\x36\x30','\x62\x32\x64\x64\x49\x6d\x6f\x4b\x41\x53\x6b\x34\x46\x53\x6f\x67\x57\x50\x39\x69\x6d\x6d\x6f\x51','\x6f\x74\x2f\x64\x56\x77\x4f\x2f\x57\x35\x78\x63\x4a\x71','\x57\x37\x31\x51\x77\x4a\x79','\x57\x4f\x70\x64\x55\x6d\x6f\x57\x57\x36\x75\x47\x57\x35\x34','\x57\x36\x70\x64\x4f\x74\x6e\x6a\x57\x51\x68\x64\x55\x75\x4a\x64\x49\x47','\x57\x50\x42\x64\x54\x6d\x6f\x65\x57\x34\x52\x64\x4c\x4e\x4a\x63\x4f\x68\x79','\x76\x6d\x6f\x65\x75\x77\x37\x63\x4e\x71\x52\x63\x55\x4a\x43','\x57\x36\x6a\x30\x76\x4e\x48\x64\x6f\x38\x6f\x7a\x70\x61','\x57\x50\x4e\x64\x49\x64\x5a\x63\x53\x38\x6b\x6a\x57\x51\x30','\x57\x52\x78\x64\x4c\x49\x76\x6c\x57\x51\x5a\x64\x4a\x65\x6d','\x75\x64\x52\x63\x49\x6d\x6b\x31\x70\x71','\x57\x4f\x33\x64\x50\x43\x6b\x6d\x6b\x57','\x61\x38\x6f\x6b\x57\x51\x53\x54\x44\x38\x6f\x7a\x57\x50\x6e\x79','\x57\x4f\x5a\x64\x56\x68\x4e\x64\x55\x30\x53','\x41\x53\x6f\x4d\x57\x50\x30','\x57\x34\x52\x64\x54\x63\x4e\x64\x47\x6d\x6b\x47\x57\x37\x6d','\x57\x37\x7a\x6f\x6c\x6d\x6b\x34\x57\x36\x4a\x63\x50\x71','\x57\x50\x64\x64\x55\x77\x70\x64\x56\x71','\x66\x63\x37\x63\x51\x33\x46\x63\x53\x78\x4f\x53\x62\x47','\x62\x53\x6f\x2f\x57\x34\x56\x63\x4c\x4d\x5a\x64\x4b\x4a\x62\x76','\x72\x38\x6b\x68\x57\x50\x64\x64\x51\x43\x6b\x6f\x76\x4b\x33\x63\x54\x71','\x57\x52\x46\x63\x54\x33\x42\x63\x4b\x61','\x77\x64\x4a\x63\x4a\x61','\x57\x35\x78\x64\x52\x59\x42\x64\x4b\x38\x6f\x31\x57\x36\x7a\x52\x62\x47','\x76\x47\x37\x64\x4c\x31\x69\x35\x41\x66\x47','\x6e\x47\x68\x64\x4f\x4a\x79\x59\x57\x50\x48\x53\x57\x35\x46\x63\x48\x43\x6b\x56\x67\x77\x50\x69','\x66\x33\x79\x30\x57\x4f\x66\x54\x57\x34\x69','\x7a\x4c\x4e\x63\x4f\x32\x6e\x4f\x57\x34\x47\x57\x57\x35\x79','\x42\x66\x42\x63\x53\x67\x35\x2f\x57\x34\x75\x35\x57\x34\x57','\x77\x38\x6b\x68\x57\x50\x46\x64\x55\x57','\x57\x35\x4a\x64\x4a\x53\x6b\x39\x57\x4f\x69\x4b\x62\x64\x2f\x63\x4c\x57','\x57\x37\x75\x70\x6e\x53\x6b\x31\x57\x37\x4e\x63\x54\x6d\x6b\x31\x57\x52\x53','\x57\x51\x52\x64\x54\x32\x75\x47','\x46\x43\x6f\x58\x57\x50\x58\x52\x6c\x74\x54\x30\x57\x51\x38','\x76\x49\x56\x63\x4d\x43\x6b\x58\x6c\x43\x6f\x50\x77\x43\x6f\x65','\x43\x53\x6f\x53\x57\x50\x35\x76\x70\x63\x62\x57\x57\x51\x4b','\x71\x38\x6f\x6a\x57\x34\x5a\x63\x56\x38\x6b\x61','\x73\x31\x74\x63\x53\x32\x30\x46\x57\x35\x38\x61\x57\x34\x75','\x42\x6d\x6f\x51\x57\x50\x35\x4c\x6b\x57','\x57\x50\x39\x38\x57\x37\x62\x6a','\x66\x38\x6f\x4f\x57\x35\x68\x63\x48\x61','\x57\x34\x46\x63\x47\x76\x78\x64\x56\x43\x6b\x4d','\x42\x53\x6f\x32\x57\x4f\x50\x49','\x7a\x4a\x4f\x54\x45\x62\x5a\x64\x50\x38\x6f\x35\x57\x35\x34','\x43\x4e\x6c\x64\x48\x48\x2f\x63\x4a\x61','\x75\x75\x37\x63\x53\x78\x6d\x45\x57\x34\x47\x59\x57\x35\x38','\x57\x50\x76\x6c\x46\x65\x71\x34\x57\x52\x47\x55\x6a\x61','\x57\x52\x78\x63\x51\x33\x42\x63\x4b\x38\x6f\x47\x69\x43\x6b\x34\x67\x61','\x57\x50\x42\x64\x4f\x58\x33\x64\x50\x65\x34','\x57\x50\x72\x2b\x57\x35\x6c\x64\x56\x76\x46\x63\x52\x32\x48\x6a','\x57\x36\x75\x35\x78\x71','\x57\x36\x33\x63\x50\x77\x4b\x54','\x57\x4f\x5a\x64\x55\x53\x6f\x6f\x57\x35\x46\x63\x51\x77\x4e\x63\x51\x32\x79','\x71\x58\x4e\x64\x4c\x30\x43\x70\x42\x71\x33\x63\x4f\x61','\x79\x5a\x4a\x63\x4a\x67\x4e\x64\x4e\x6d\x6f\x43\x74\x71','\x65\x59\x4a\x63\x53\x77\x74\x64\x54\x68\x47','\x57\x36\x33\x64\x52\x5a\x6e\x6a','\x70\x53\x6f\x47\x57\x50\x7a\x4e\x6b\x74\x35\x52\x57\x51\x43','\x70\x66\x74\x63\x56\x66\x6c\x64\x50\x38\x6b\x56\x46\x61\x57','\x57\x4f\x58\x6b\x44\x47\x57','\x41\x31\x46\x63\x50\x77\x6e\x2b\x57\x34\x47\x5a\x57\x35\x65','\x42\x43\x6f\x51\x57\x50\x35\x4b\x6f\x64\x35\x58','\x57\x35\x64\x64\x49\x38\x6f\x79\x63\x59\x69\x42\x78\x6d\x6b\x41','\x68\x38\x6f\x34\x57\x37\x75\x56\x61\x68\x46\x64\x52\x6d\x6b\x6b','\x76\x57\x37\x64\x4a\x65\x43\x4b\x73\x47\x5a\x63\x54\x71','\x57\x34\x6d\x4e\x57\x50\x56\x63\x4c\x57\x56\x64\x55\x4b\x54\x6a\x7a\x6d\x6f\x53\x6c\x6d\x6f\x65','\x67\x33\x43\x4d\x57\x50\x50\x52\x57\x37\x47\x34\x72\x57','\x57\x35\x70\x64\x4a\x6d\x6b\x4b\x57\x4f\x53\x49\x75\x64\x4e\x63\x4d\x61','\x57\x50\x50\x77\x41\x72\x61\x55\x57\x51\x6d','\x57\x35\x42\x63\x49\x47\x46\x64\x56\x6d\x6b\x48\x7a\x53\x6f\x65\x57\x37\x30','\x57\x35\x6c\x64\x4a\x6d\x6f\x54\x57\x4f\x47\x4b\x61\x49\x78\x63\x49\x57','\x57\x35\x56\x64\x4a\x74\x33\x63\x56\x38\x6b\x38\x57\x51\x33\x63\x4d\x38\x6b\x62','\x57\x35\x64\x64\x4e\x57\x2f\x63\x51\x6d\x6b\x44\x57\x52\x4a\x63\x47\x57','\x57\x37\x54\x52\x72\x68\x4c\x64\x62\x43\x6f\x6e\x43\x61','\x7a\x4a\x30\x6d\x72\x61\x61','\x57\x51\x74\x63\x53\x67\x64\x63\x4d\x43\x6f\x6c\x70\x6d\x6b\x48\x68\x71','\x57\x50\x4c\x45\x42\x47','\x57\x50\x50\x49\x57\x35\x65','\x44\x38\x6f\x53\x57\x50\x43','\x57\x4f\x48\x2b\x57\x36\x7a\x79\x57\x51\x48\x33\x6f\x4a\x75','\x57\x52\x46\x63\x53\x67\x52\x63\x4a\x6d\x6f\x71\x6e\x53\x6b\x34\x67\x61','\x57\x35\x64\x63\x4c\x4b\x70\x64\x50\x38\x6b\x33\x7a\x38\x6b\x64\x57\x37\x79','\x44\x4e\x78\x64\x53\x49\x2f\x63\x4a\x66\x31\x37\x45\x47','\x75\x43\x6f\x6a\x57\x4f\x78\x63\x55\x6d\x6b\x61\x57\x36\x56\x63\x4e\x57\x69','\x61\x4e\x65\x4d\x57\x4f\x43','\x79\x43\x6f\x50\x57\x36\x4a\x63\x53\x61','\x57\x36\x37\x64\x49\x64\x4f\x72\x57\x50\x56\x63\x54\x30\x47\x75','\x69\x58\x6c\x63\x50\x64\x70\x63\x47\x43\x6f\x47\x43\x38\x6f\x38','\x71\x58\x33\x64\x4c\x30\x61\x39','\x42\x6d\x6f\x51\x57\x4f\x50\x48\x62\x49\x7a\x54\x57\x51\x4f','\x73\x6d\x6b\x5a\x57\x52\x6e\x4f\x77\x49\x4a\x64\x4f\x53\x6b\x70\x77\x53\x6b\x56\x45\x43\x6f\x6d','\x68\x38\x6f\x6b\x57\x52\x53\x31\x79\x38\x6f\x46\x57\x50\x50\x6f','\x57\x52\x52\x64\x51\x4d\x30\x4b\x6f\x43\x6b\x4e\x6f\x71\x71','\x61\x73\x78\x63\x53\x78\x46\x64\x54\x71','\x57\x52\x76\x2b\x75\x63\x74\x63\x4a\x6d\x6f\x69\x57\x34\x6c\x64\x47\x57','\x71\x72\x78\x64\x47\x4b\x34\x49','\x57\x51\x6e\x38\x79\x6d\x6f\x4e\x71\x6d\x6f\x4a\x57\x52\x33\x64\x54\x71','\x57\x35\x37\x63\x52\x38\x6b\x55\x57\x37\x4f\x4a\x57\x36\x39\x74\x57\x35\x46\x63\x54\x61','\x68\x78\x71\x57\x57\x4f\x66\x54\x57\x34\x53\x34\x78\x61','\x75\x38\x6b\x68\x57\x4f\x2f\x64\x54\x53\x6b\x30\x75\x61','\x57\x37\x6c\x64\x48\x74\x69\x71','\x69\x58\x64\x63\x4a\x77\x4a\x64\x50\x47','\x57\x50\x42\x64\x49\x58\x2f\x63\x50\x38\x6f\x4d\x6f\x53\x6f\x7a\x57\x36\x6c\x63\x47\x4c\x72\x31\x73\x57','\x57\x37\x2f\x64\x52\x64\x50\x42\x57\x51\x33\x64\x55\x61','\x6c\x48\x78\x64\x51\x33\x61','\x57\x35\x42\x64\x4e\x49\x70\x64\x4f\x61','\x57\x34\x4e\x64\x4d\x74\x33\x63\x53\x47','\x6d\x49\x74\x63\x4f\x74\x6c\x63\x49\x68\x44\x58\x71\x4b\x34','\x64\x43\x6f\x34\x57\x35\x42\x63\x4b\x33\x46\x63\x4e\x5a\x61','\x57\x34\x33\x63\x50\x59\x74\x63\x4f\x62\x34\x4b\x6d\x4c\x43\x6d\x57\x52\x78\x63\x55\x38\x6b\x38','\x6f\x57\x46\x63\x4d\x30\x2f\x64\x50\x38\x6f\x55\x42\x61','\x73\x6d\x6f\x65\x72\x32\x4e\x63\x50\x5a\x70\x63\x56\x4a\x4f','\x57\x34\x38\x4e\x57\x50\x46\x63\x4b\x57\x46\x64\x55\x33\x62\x4f\x74\x43\x6f\x51\x64\x38\x6f\x37','\x66\x43\x6f\x72\x57\x51\x4f\x52\x46\x38\x6f\x79\x57\x4f\x50\x72','\x57\x4f\x74\x63\x48\x38\x6f\x38\x57\x35\x4c\x55\x73\x78\x52\x63\x4b\x43\x6b\x30\x57\x52\x48\x6a\x57\x52\x79\x68','\x57\x37\x68\x63\x50\x77\x47\x47\x57\x50\x6d\x50\x62\x47\x75','\x65\x43\x6f\x48\x57\x34\x56\x63\x4b\x33\x30','\x57\x4f\x52\x63\x4f\x43\x6b\x48\x77\x6d\x6f\x37\x57\x50\x7a\x76','\x77\x6d\x6f\x68\x71\x33\x6c\x63\x49\x47\x52\x63\x54\x5a\x71','\x46\x43\x6f\x56\x57\x36\x74\x64\x51\x67\x68\x63\x56\x77\x33\x63\x4b\x61','\x41\x53\x6f\x53\x57\x50\x7a\x4d\x62\x4a\x62\x37\x57\x52\x79','\x57\x50\x78\x64\x4b\x38\x6b\x5a\x57\x36\x6d\x72','\x42\x68\x74\x64\x54\x63\x37\x63\x4c\x4b\x54\x6b\x41\x71','\x65\x61\x56\x64\x50\x64\x72\x79\x57\x4f\x4b\x67\x57\x37\x5a\x64\x56\x4e\x6a\x63\x57\x51\x57','\x57\x36\x70\x64\x53\x59\x7a\x63\x57\x52\x52\x64\x51\x66\x70\x64\x48\x57','\x57\x4f\x39\x31\x57\x36\x76\x6d\x57\x52\x66\x31\x44\x73\x34','\x78\x6d\x6f\x42\x74\x4e\x74\x63\x4a\x33\x78\x63\x56\x49\x6d','\x57\x36\x69\x30\x57\x50\x57\x39\x57\x37\x64\x64\x54\x43\x6b\x37\x79\x61','\x6f\x57\x37\x64\x52\x67\x53','\x57\x52\x78\x63\x50\x32\x74\x63\x4e\x6d\x6f\x67\x63\x53\x6b\x4c\x65\x71','\x6f\x58\x6c\x64\x55\x78\x79\x55\x57\x35\x38','\x57\x37\x42\x63\x51\x6d\x6f\x54\x57\x50\x68\x63\x4f\x6d\x6b\x51\x71\x6d\x6f\x4b','\x41\x4d\x6c\x64\x51\x61\x46\x63\x49\x4c\x50\x66\x46\x47','\x57\x52\x46\x64\x47\x43\x6b\x75','\x6b\x43\x6f\x6c\x57\x51\x47\x50\x45\x43\x6f\x6a\x57\x4f\x54\x69','\x57\x50\x4e\x64\x53\x78\x4e\x64\x54\x65\x54\x59','\x57\x37\x44\x51\x76\x4d\x6a\x66\x70\x57','\x57\x50\x58\x38\x57\x37\x62\x6a','\x57\x4f\x48\x67\x77\x47\x6d\x51\x57\x51\x65','\x57\x36\x4a\x64\x4d\x53\x6b\x4f\x57\x50\x4b\x5a\x65\x5a\x37\x63\x4e\x61','\x57\x4f\x39\x6c\x7a\x62\x61\x2b\x57\x51\x69','\x79\x73\x53\x4f\x76\x71\x68\x64\x55\x53\x6f\x45\x57\x34\x69','\x57\x37\x43\x2b\x77\x73\x64\x63\x4e\x38\x6f\x50\x57\x37\x68\x64\x4f\x47','\x57\x36\x6a\x61\x6d\x38\x6b\x58\x57\x36\x64\x63\x50\x6d\x6b\x50\x57\x51\x34','\x43\x66\x78\x63\x4a\x68\x7a\x52\x57\x35\x6d\x37\x57\x35\x4f','\x57\x50\x5a\x64\x51\x43\x6f\x2f\x57\x37\x61\x47\x57\x34\x76\x72\x57\x37\x79','\x6c\x48\x70\x63\x50\x49\x5a\x64\x4c\x43\x6b\x4a\x46\x53\x6f\x5a','\x57\x50\x33\x64\x55\x6d\x6f\x39\x57\x37\x43\x4d\x57\x34\x72\x56\x57\x37\x65','\x57\x34\x42\x63\x4a\x38\x6f\x50\x42\x71\x6c\x63\x54\x75\x65\x61','\x57\x50\x5a\x64\x53\x43\x6f\x33\x57\x36\x65\x58','\x44\x38\x6f\x33\x57\x4f\x61\x51\x6b\x4a\x54\x4c\x57\x51\x47','\x42\x33\x70\x64\x56\x59\x33\x63\x49\x30\x79','\x71\x53\x6b\x38\x57\x52\x35\x50\x75\x73\x64\x64\x50\x6d\x6b\x62\x44\x53\x6b\x4f\x74\x53\x6f\x57','\x6d\x62\x70\x64\x52\x68\x4b\x56\x57\x35\x70\x63\x4b\x38\x6f\x58','\x57\x36\x68\x64\x4f\x49\x79','\x57\x36\x69\x52\x75\x74\x37\x63\x4a\x53\x6f\x2b','\x57\x34\x33\x63\x47\x30\x6c\x64\x56\x6d\x6b\x33\x42\x53\x6f\x63\x57\x36\x38','\x71\x72\x4e\x64\x4c\x75\x61\x35\x46\x74\x33\x63\x55\x61','\x57\x37\x70\x64\x53\x68\x57\x51\x57\x34\x66\x36\x67\x58\x4b','\x57\x34\x33\x64\x4d\x74\x5a\x63\x56\x38\x6b\x57\x57\x51\x56\x63\x4e\x38\x6b\x65','\x67\x32\x4f\x32\x57\x4f\x6e\x37\x57\x34\x6d\x38\x77\x61','\x66\x63\x4a\x63\x4b\x78\x33\x64\x50\x4e\x4b\x2f\x6c\x61','\x65\x32\x47\x57\x57\x4f\x53','\x57\x50\x79\x77\x57\x34\x6c\x64\x4f\x47','\x57\x50\x66\x2f\x57\x37\x54\x6b\x57\x37\x48\x48\x6e\x63\x34','\x57\x36\x62\x58\x72\x67\x44\x35\x6c\x53\x6f\x64\x43\x61','\x57\x37\x70\x63\x56\x32\x57\x4b\x57\x34\x43\x5a\x68\x72\x4b','\x57\x35\x46\x64\x4a\x53\x6b\x75\x67\x59\x69\x44','\x57\x34\x4e\x64\x54\x74\x56\x64\x4e\x61','\x57\x35\x2f\x64\x51\x73\x42\x64\x4b\x6d\x6b\x43\x57\x36\x35\x55\x63\x47','\x57\x36\x64\x64\x54\x49\x72\x69\x57\x36\x4a\x64\x52\x31\x6c\x64\x4d\x57','\x57\x52\x64\x63\x4e\x4a\x43\x64\x57\x50\x78\x63\x47\x65\x69\x2f','\x57\x36\x62\x41\x6e\x53\x6b\x38','\x6b\x61\x78\x64\x51\x4e\x4f\x49\x57\x34\x4e\x63\x4c\x53\x6f\x53','\x6f\x58\x52\x63\x55\x76\x68\x64\x4f\x6d\x6f\x52\x43\x62\x65','\x57\x50\x76\x48\x7a\x53\x6f\x4e\x75\x38\x6f\x79\x57\x52\x64\x64\x4f\x57','\x57\x36\x52\x63\x4d\x53\x6f\x55\x41\x58\x70\x63\x54\x65\x4b\x42','\x6e\x47\x42\x63\x53\x31\x56\x64\x4f\x43\x6f\x6b\x45\x57\x6d','\x69\x53\x6f\x4f\x57\x34\x34\x4c\x68\x57','\x57\x35\x34\x69\x57\x37\x6c\x64\x49\x57\x50\x65\x57\x35\x75','\x57\x4f\x38\x6e\x57\x35\x6c\x64\x50\x48\x31\x79\x57\x37\x68\x64\x53\x47','\x57\x50\x5a\x64\x53\x53\x6f\x59\x57\x37\x71\x58\x57\x35\x69','\x57\x36\x72\x67\x69\x53\x6b\x38\x57\x37\x4e\x63\x50\x6d\x6b\x50\x57\x37\x4f','\x70\x72\x42\x63\x56\x31\x4e\x64\x56\x6d\x6f\x51\x45\x57\x65','\x57\x34\x46\x63\x4b\x43\x6b\x32','\x57\x37\x58\x6b\x6b\x38\x6b\x5a\x57\x37\x4e\x63\x51\x71','\x71\x31\x4a\x63\x56\x67\x71\x6f','\x57\x35\x6c\x64\x4a\x6d\x6b\x53\x57\x4f\x6d\x31\x66\x71','\x57\x36\x4e\x64\x52\x73\x6a\x45','\x57\x50\x72\x4b\x57\x35\x42\x64\x47\x76\x5a\x63\x50\x33\x4b','\x57\x4f\x2f\x64\x56\x68\x2f\x64\x51\x4b\x39\x49\x63\x76\x53'];_0x4a86=function(){return _0x193930;};return _0x4a86();}
@@ -1,37 +1 @@
1
- import { personalityKey } from './schema.js';
2
- /** 记录本轮选用的人格状态 (注入 prompt 前). */
3
- export async function emitPersonalitySelected(ingestor, args) {
4
- const key = personalityKey(args.personality);
5
- return ingestor.ingest({
6
- type: 'personality.selected',
7
- human: {
8
- title: `人格 ${key}`,
9
- detail: `rigor=${args.personality.rigor.toFixed(2)} creativity=${args.personality.creativity.toFixed(2)} risk=${args.personality.risk_tolerance.toFixed(2)}`,
10
- },
11
- payload: { cycleId: args.cycleId, personalityKey: key, personalityState: args.personality, known: args.known },
12
- });
13
- }
14
- /**
15
- * 记录风险闸对变异的降级 (仅当真降级了才发; downgraded=false 不发).
16
- * why 必填 —— 让"Why 面板"能解释这次变异为何被压。
17
- */
18
- export async function emitPersonalityRiskGated(ingestor, args) {
19
- if (!args.gate.downgraded)
20
- return null;
21
- const m = args.gate.mutation;
22
- return ingestor.ingest({
23
- type: 'personality.risk_gated',
24
- human: {
25
- title: `风险闸降级 → ${m.category}/${m.risk_level}`,
26
- why: `人格 ${personalityKey(args.personality)} 未满足高危放行 (rigor≥0.6 且 risk_tolerance≤0.5); 安全信号: ${args.gate.appliedSignals.join(', ')}`,
27
- severity: 'notice',
28
- },
29
- payload: {
30
- cycleId: args.cycleId,
31
- mutationId: m.id,
32
- category: m.category,
33
- riskLevel: m.risk_level,
34
- appliedSignals: args.gate.appliedSignals,
35
- },
36
- });
37
- }
1
+ (function(_0x8f1ec1,_0x3498a1){const _0x21cc29=_0x3233,_0x16394a=_0x8f1ec1();while(!![]){try{const _0x2ff631=-parseInt(_0x21cc29(0x19d,'\x61\x76\x21\x68'))/(0x1857+-0xd*0x265+0x6cb)+parseInt(_0x21cc29(0x1c0,'\x58\x56\x44\x7a'))/(-0xea2+-0x2246+0x30ea)+-parseInt(_0x21cc29(0x1cd,'\x35\x5b\x51\x40'))/(0x239d+-0x6*-0x4c7+-0x4044)+parseInt(_0x21cc29(0x19f,'\x44\x29\x31\x55'))/(0xb0d*-0x3+-0x2*-0x12dd+-0x1*0x48f)*(parseInt(_0x21cc29(0x1a9,'\x61\x76\x21\x68'))/(0xe*0x89+-0x1d3*-0x11+-0x267c))+parseInt(_0x21cc29(0x1c5,'\x6d\x61\x48\x65'))/(0x11f2+0x2205*0x1+-0x1*0x33f1)+-parseInt(_0x21cc29(0x1ac,'\x73\x4f\x23\x37'))/(-0xbf*0x2b+-0x1c8e+-0x5*-0xc22)+parseInt(_0x21cc29(0x1b2,'\x24\x71\x57\x4c'))/(0x2*0x841+-0x1236+0x1bc)*(parseInt(_0x21cc29(0x19b,'\x69\x70\x43\x28'))/(0x1964+-0xf9d*-0x2+-0x5*0xb51));if(_0x2ff631===_0x3498a1)break;else _0x16394a['push'](_0x16394a['shift']());}catch(_0x55436d){_0x16394a['push'](_0x16394a['shift']());}}}(_0x1af6,-0xa30*0x17c+-0x78ad3+0x2129a6));import{personalityKey}from'\x2e\x2f\x73\x63\x68\x65\x6d\x61\x2e\x6a\x73';export async function emitPersonalitySelected(_0x407b50,_0x2c1a36){const _0x5a9dec=_0x3233,_0x2ee4f0=personalityKey(_0x2c1a36[_0x5a9dec(0x1c8,'\x71\x24\x4b\x63')+_0x5a9dec(0x1d3,'\x73\x4f\x23\x37')]);return _0x407b50[_0x5a9dec(0x1ad,'\x35\x5b\x51\x40')]({'\x74\x79\x70\x65':_0x5a9dec(0x1c4,'\x76\x47\x4f\x50')+_0x5a9dec(0x1d9,'\x2a\x6b\x40\x36')+_0x5a9dec(0x1a5,'\x73\x6e\x78\x25'),'\x68\x75\x6d\x61\x6e':{'\x74\x69\x74\x6c\x65':_0x5a9dec(0x1d1,'\x35\x48\x6b\x30')+_0x2ee4f0,'\x64\x65\x74\x61\x69\x6c':_0x5a9dec(0x1ba,'\x6c\x44\x75\x6e')+_0x2c1a36[_0x5a9dec(0x1b9,'\x58\x56\x44\x7a')+_0x5a9dec(0x1b8,'\x24\x71\x57\x4c')][_0x5a9dec(0x1b6,'\x23\x7a\x55\x77')][_0x5a9dec(0x1ca,'\x71\x24\x4b\x63')](-0x150a+-0x522+0x1a2e)+(_0x5a9dec(0x1d7,'\x23\x7a\x55\x77')+_0x5a9dec(0x1d8,'\x70\x69\x40\x41'))+_0x2c1a36[_0x5a9dec(0x1d6,'\x6d\x77\x73\x67')+_0x5a9dec(0x1be,'\x62\x4f\x58\x4f')][_0x5a9dec(0x1c2,'\x4e\x7a\x71\x5d')+'\x74\x79'][_0x5a9dec(0x1c7,'\x63\x34\x7a\x49')](-0x1346*-0x1+0x49*-0x17+-0xcb5)+_0x5a9dec(0x1d0,'\x35\x48\x6b\x30')+_0x2c1a36[_0x5a9dec(0x1bb,'\x44\x39\x4c\x4a')+_0x5a9dec(0x1ab,'\x48\x53\x23\x6e')][_0x5a9dec(0x1bc,'\x73\x6e\x78\x25')+_0x5a9dec(0x198,'\x29\x5e\x40\x25')][_0x5a9dec(0x1c6,'\x37\x59\x51\x71')](-0x2*0x124+0x14fd+-0x12b3)},'\x70\x61\x79\x6c\x6f\x61\x64':{'\x63\x79\x63\x6c\x65\x49\x64':_0x2c1a36[_0x5a9dec(0x1d2,'\x48\x53\x23\x6e')],'\x70\x65\x72\x73\x6f\x6e\x61\x6c\x69\x74\x79\x4b\x65\x79':_0x2ee4f0,'\x70\x65\x72\x73\x6f\x6e\x61\x6c\x69\x74\x79\x53\x74\x61\x74\x65':_0x2c1a36[_0x5a9dec(0x1cb,'\x34\x33\x24\x6c')+_0x5a9dec(0x1d5,'\x31\x59\x45\x4e')],'\x6b\x6e\x6f\x77\x6e':_0x2c1a36[_0x5a9dec(0x1a1,'\x34\x33\x24\x6c')]}});}function _0x3233(_0x206d8d,_0x31c1b1){_0x206d8d=_0x206d8d-(0x17db+-0x198c*0x1+0x348);const _0x583b54=_0x1af6();let _0x48b71b=_0x583b54[_0x206d8d];if(_0x3233['\x75\x4d\x4f\x4a\x42\x58']===undefined){var _0x2e7be6=function(_0x471120){const _0x3d7d5c='\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 _0x234198='',_0x43d63c='';for(let _0x197626=-0x3b*-0x83+-0x1f20+0xef,_0x5d3900,_0x3c0ae4,_0x1b0eab=0x4ac+-0x18d4+-0x6b8*-0x3;_0x3c0ae4=_0x471120['\x63\x68\x61\x72\x41\x74'](_0x1b0eab++);~_0x3c0ae4&&(_0x5d3900=_0x197626%(-0xd27+0x5*-0x32b+0x1d02)?_0x5d3900*(0xb*0x35+0x55+-0x12e*0x2)+_0x3c0ae4:_0x3c0ae4,_0x197626++%(0x1*0x6a7+0x970+0x5*-0x337))?_0x234198+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x13*-0x9+0x8b*-0x8+-0x17*-0x34&_0x5d3900>>(-(-0x150a+-0x522+0x1a2e)*_0x197626&-0x1346*-0x1+0x49*-0x17+-0xcb1)):-0x2*0x124+0x14fd+-0x12b5){_0x3c0ae4=_0x3d7d5c['\x69\x6e\x64\x65\x78\x4f\x66'](_0x3c0ae4);}for(let _0x24019d=-0x23c5+-0x4*0xbc+0x9*0x44d,_0x4ead81=_0x234198['\x6c\x65\x6e\x67\x74\x68'];_0x24019d<_0x4ead81;_0x24019d++){_0x43d63c+='\x25'+('\x30\x30'+_0x234198['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x24019d)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x258e+0x688*0x1+0x1f16))['\x73\x6c\x69\x63\x65'](-(-0x1dac+0x3*-0x191+0x2261));}return decodeURIComponent(_0x43d63c);};const _0x121605=function(_0x55cd6c,_0xdbcbd5){let _0x41b54e=[],_0x71b78f=0x6e*-0x29+-0x1*-0x145+0x1059,_0x46547a,_0x18ce3e='';_0x55cd6c=_0x2e7be6(_0x55cd6c);let _0xd5979c;for(_0xd5979c=-0x1484+0xd*-0x2a9+-0xd9*-0x41;_0xd5979c<-0xef2+0x1*0x138f+-0x25*0x19;_0xd5979c++){_0x41b54e[_0xd5979c]=_0xd5979c;}for(_0xd5979c=-0x1*-0xb5d+-0x1*-0x127d+0x2*-0xeed;_0xd5979c<-0x66b+0x1af6+-0x138b;_0xd5979c++){_0x71b78f=(_0x71b78f+_0x41b54e[_0xd5979c]+_0xdbcbd5['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0xd5979c%_0xdbcbd5['\x6c\x65\x6e\x67\x74\x68']))%(0xb24+-0x2*0x117d+-0xb*-0x242),_0x46547a=_0x41b54e[_0xd5979c],_0x41b54e[_0xd5979c]=_0x41b54e[_0x71b78f],_0x41b54e[_0x71b78f]=_0x46547a;}_0xd5979c=-0x2491+-0x2589+0x4a1a,_0x71b78f=-0x1992+0x16*0x7c+0x2*0x775;for(let _0x1e8fc2=0x18d*0xf+-0xca7*-0x3+-0x3d38;_0x1e8fc2<_0x55cd6c['\x6c\x65\x6e\x67\x74\x68'];_0x1e8fc2++){_0xd5979c=(_0xd5979c+(0x1edc+-0x117e+-0xd5d))%(-0x16ef+0xf6*-0x7+0x1ea9),_0x71b78f=(_0x71b78f+_0x41b54e[_0xd5979c])%(0x1e4d+-0x1210+0x1*-0xb3d),_0x46547a=_0x41b54e[_0xd5979c],_0x41b54e[_0xd5979c]=_0x41b54e[_0x71b78f],_0x41b54e[_0x71b78f]=_0x46547a,_0x18ce3e+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x55cd6c['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x1e8fc2)^_0x41b54e[(_0x41b54e[_0xd5979c]+_0x41b54e[_0x71b78f])%(0x2104+-0x1*-0x68c+0x9a4*-0x4)]);}return _0x18ce3e;};_0x3233['\x54\x56\x4c\x63\x45\x79']=_0x121605,_0x3233['\x52\x6b\x59\x4f\x4b\x43']={},_0x3233['\x75\x4d\x4f\x4a\x42\x58']=!![];}const _0x888438=_0x583b54[-0x119*-0xa+0x132e+0x78a*-0x4],_0xcd5dbb=_0x206d8d+_0x888438,_0x4abad5=_0x3233['\x52\x6b\x59\x4f\x4b\x43'][_0xcd5dbb];return!_0x4abad5?(_0x3233['\x78\x70\x67\x48\x64\x71']===undefined&&(_0x3233['\x78\x70\x67\x48\x64\x71']=!![]),_0x48b71b=_0x3233['\x54\x56\x4c\x63\x45\x79'](_0x48b71b,_0x31c1b1),_0x3233['\x52\x6b\x59\x4f\x4b\x43'][_0xcd5dbb]=_0x48b71b):_0x48b71b=_0x4abad5,_0x48b71b;}export async function emitPersonalityRiskGated(_0x312b36,_0x23b815){const _0x3502b5=_0x3233;if(!_0x23b815[_0x3502b5(0x1b5,'\x29\x5e\x40\x25')]['\x64\x6f\x77\x6e\x67\x72\x61\x64'+'\x65\x64'])return null;const _0x370e2b=_0x23b815[_0x3502b5(0x1a6,'\x58\x56\x44\x7a')][_0x3502b5(0x19c,'\x6c\x44\x75\x6e')];return _0x312b36[_0x3502b5(0x1cf,'\x51\x53\x25\x59')]({'\x74\x79\x70\x65':_0x3502b5(0x1a7,'\x73\x6e\x78\x25')+_0x3502b5(0x1bd,'\x30\x4a\x67\x5a')+_0x3502b5(0x1b7,'\x4b\x58\x49\x5e'),'\x68\x75\x6d\x61\x6e':{'\x74\x69\x74\x6c\x65':_0x3502b5(0x19e,'\x4d\x47\x37\x5a')+_0x370e2b[_0x3502b5(0x1b3,'\x31\x51\x70\x5e')]+'\x2f'+_0x370e2b[_0x3502b5(0x1cc,'\x76\x47\x4f\x50')+'\x65\x6c'],'\x77\x68\x79':_0x3502b5(0x1aa,'\x42\x58\x64\x40')+personalityKey(_0x23b815[_0x3502b5(0x199,'\x52\x57\x57\x4b')+_0x3502b5(0x1b8,'\x24\x71\x57\x4c')])+('\x20\u672a\u6ee1\u8db3\u9ad8\u5371\u653e\u884c'+_0x3502b5(0x19a,'\x6c\x44\x75\x6e')+_0x3502b5(0x1ce,'\x29\x5e\x40\x25')+_0x3502b5(0x1c1,'\x23\x7a\x55\x77')+_0x3502b5(0x1ae,'\x62\x4f\x58\x4f')+_0x3502b5(0x1c3,'\x29\x5e\x40\x25')+'\x20')+_0x23b815[_0x3502b5(0x1b5,'\x29\x5e\x40\x25')][_0x3502b5(0x1a8,'\x51\x53\x25\x59')+_0x3502b5(0x1bf,'\x72\x7a\x72\x42')][_0x3502b5(0x1b1,'\x29\x5e\x40\x25')]('\x2c\x20'),'\x73\x65\x76\x65\x72\x69\x74\x79':_0x3502b5(0x1d4,'\x76\x47\x4f\x50')},'\x70\x61\x79\x6c\x6f\x61\x64':{'\x63\x79\x63\x6c\x65\x49\x64':_0x23b815['\x63\x79\x63\x6c\x65\x49\x64'],'\x6d\x75\x74\x61\x74\x69\x6f\x6e\x49\x64':_0x370e2b['\x69\x64'],'\x63\x61\x74\x65\x67\x6f\x72\x79':_0x370e2b['\x63\x61\x74\x65\x67\x6f\x72\x79'],'\x72\x69\x73\x6b\x4c\x65\x76\x65\x6c':_0x370e2b[_0x3502b5(0x1a4,'\x5e\x54\x31\x63')+'\x65\x6c'],'\x61\x70\x70\x6c\x69\x65\x64\x53\x69\x67\x6e\x61\x6c\x73':_0x23b815[_0x3502b5(0x1b4,'\x43\x78\x56\x6f')][_0x3502b5(0x1b0,'\x66\x4f\x33\x58')+_0x3502b5(0x1a3,'\x44\x29\x31\x55')]}});}function _0x1af6(){const _0x8c6a7f=['\x76\x4e\x56\x63\x4a\x71\x46\x64\x4f\x4c\x34','\x57\x51\x64\x63\x50\x47\x64\x64\x50\x53\x6b\x61\x57\x4f\x79\x50\x57\x50\x6d','\x64\x53\x6b\x67\x57\x52\x70\x63\x50\x57','\x57\x34\x42\x64\x50\x38\x6f\x71\x57\x51\x53','\x68\x43\x6b\x78\x57\x51\x74\x63\x53\x65\x78\x63\x4a\x38\x6b\x65\x6e\x47','\x42\x6d\x6f\x77\x6b\x38\x6b\x6a\x67\x53\x6b\x46\x57\x35\x48\x34','\x6a\x47\x33\x63\x56\x64\x52\x64\x55\x33\x6e\x37\x44\x43\x6f\x58\x57\x35\x74\x64\x56\x61','\x35\x6c\x55\x6c\x35\x51\x67\x77\x63\x57','\x76\x68\x4c\x76','\x78\x38\x6f\x33\x77\x47\x74\x63\x49\x38\x6f\x65\x57\x36\x68\x64\x4d\x6d\x6b\x62\x65\x47\x65\x65\x57\x34\x34','\x63\x43\x6f\x34\x57\x34\x74\x64\x4c\x38\x6f\x73\x6e\x71','\x44\x32\x42\x63\x4c\x43\x6f\x4d\x34\x4f\x51\x64\x46\x53\x6f\x64\x6b\x57','\x57\x35\x4f\x67\x71\x6d\x6b\x68\x57\x36\x6e\x31\x63\x61\x70\x64\x50\x53\x6b\x39\x74\x6d\x6b\x2b\x71\x71','\x57\x37\x37\x64\x4d\x30\x68\x63\x55\x38\x6f\x66\x45\x38\x6b\x67\x57\x36\x69','\x57\x36\x66\x79\x67\x78\x38','\x57\x34\x58\x2b\x46\x65\x44\x32\x57\x37\x62\x4c','\x57\x37\x61\x6d\x57\x37\x6d\x48\x78\x6d\x6b\x7a\x41\x6d\x6b\x44','\x57\x35\x37\x63\x56\x47\x71\x6c','\x57\x36\x58\x77\x62\x68\x71','\x57\x34\x37\x63\x4f\x6d\x6f\x56\x41\x78\x4b','\x43\x47\x64\x64\x48\x38\x6b\x6d\x67\x38\x6f\x47','\x57\x50\x31\x4b\x42\x61','\x57\x35\x68\x64\x4f\x38\x6f\x77\x57\x52\x31\x71\x61\x61\x79\x4f','\x57\x4f\x61\x30\x67\x49\x78\x64\x53\x6d\x6b\x45','\x65\x65\x35\x44\x57\x36\x71\x69\x57\x4f\x68\x64\x55\x61\x61','\x68\x38\x6b\x42\x57\x51\x78\x63\x51\x68\x78\x63\x4c\x43\x6b\x6b\x6e\x47','\x57\x51\x34\x77\x45\x32\x50\x63\x57\x50\x78\x63\x4a\x6d\x6b\x49','\x46\x33\x5a\x63\x4a\x57','\x57\x34\x6c\x63\x4a\x30\x33\x64\x56\x43\x6f\x52\x74\x71','\x57\x50\x78\x63\x53\x6d\x6b\x75\x57\x37\x38\x67\x76\x48\x79\x6f\x76\x30\x57\x6a\x57\x52\x4f','\x57\x34\x2f\x63\x4f\x53\x6f\x78\x43\x4d\x72\x2b\x57\x37\x68\x64\x4a\x57','\x6f\x30\x69\x4a\x6d\x6d\x6b\x72\x57\x52\x4e\x64\x50\x71\x75','\x57\x51\x69\x6d\x75\x6f\x77\x55\x4d\x6f\x77\x67\x4c\x55\x73\x2b\x51\x45\x77\x70\x4b\x53\x6f\x55','\x57\x35\x30\x54\x57\x35\x46\x64\x47\x43\x6b\x65\x6a\x5a\x70\x64\x52\x57','\x79\x4d\x52\x63\x48\x67\x64\x64\x47\x38\x6f\x4c\x57\x35\x6a\x6d\x57\x4f\x47\x74\x63\x62\x4e\x63\x56\x47','\x57\x36\x6d\x68\x73\x6d\x6f\x62\x57\x4f\x6d\x44\x57\x34\x53','\x57\x51\x68\x64\x56\x31\x42\x64\x56\x38\x6b\x6d\x42\x43\x6f\x75','\x57\x4f\x76\x75\x57\x51\x44\x6e\x77\x43\x6f\x2b\x67\x43\x6f\x57','\x71\x31\x47\x44\x57\x37\x38\x43\x64\x4e\x50\x76\x57\x34\x46\x64\x4c\x74\x2f\x64\x55\x38\x6b\x58','\x57\x4f\x66\x45\x57\x50\x6e\x78\x74\x53\x6f\x31\x68\x61','\x57\x51\x75\x72\x66\x63\x4a\x64\x56\x68\x69\x52\x57\x51\x75','\x57\x35\x38\x48\x57\x35\x42\x64\x4d\x43\x6b\x30\x6a\x74\x46\x64\x54\x71','\x75\x53\x6b\x55\x57\x50\x64\x63\x48\x53\x6b\x71\x43\x48\x65\x4e\x57\x36\x4a\x64\x53\x66\x46\x64\x48\x43\x6b\x35','\x57\x52\x53\x7a\x72\x4a\x68\x4b\x55\x36\x50\x4f\x76\x38\x6b\x39','\x7a\x6d\x6f\x69\x70\x6d\x6b\x61\x61\x6d\x6b\x6f','\x69\x38\x6b\x77\x70\x75\x4b\x44\x6e\x47','\x35\x6c\x51\x35\x35\x51\x6f\x79\x44\x61','\x78\x4e\x72\x70\x57\x51\x72\x4b\x57\x34\x4e\x63\x4d\x57','\x62\x6d\x6b\x58\x66\x71','\x57\x34\x6d\x4e\x57\x35\x68\x64\x4d\x38\x6b\x69\x6c\x61','\x57\x52\x4e\x64\x4e\x6d\x6b\x71','\x6d\x4e\x79\x42\x6a\x38\x6b\x35\x7a\x38\x6b\x53\x42\x57','\x57\x50\x5a\x63\x51\x53\x6f\x36\x79\x32\x50\x4d\x57\x37\x33\x64\x49\x57','\x57\x50\x64\x63\x48\x63\x4e\x63\x49\x57','\x78\x53\x6b\x4d\x7a\x32\x71\x56\x68\x38\x6f\x46\x57\x34\x4f','\x44\x63\x54\x45\x7a\x43\x6f\x4a\x70\x38\x6f\x2b\x75\x43\x6b\x6e\x44\x53\x6f\x72\x44\x6d\x6b\x2b','\x57\x37\x64\x63\x51\x57\x62\x76\x6c\x65\x64\x63\x47\x4b\x4b\x6f\x57\x51\x54\x5a\x6b\x57','\x57\x35\x61\x4a\x57\x50\x74\x64\x4b\x6d\x6f\x33\x57\x50\x34\x45','\x6d\x43\x6f\x44\x7a\x47\x6e\x67\x75\x48\x68\x63\x49\x66\x4c\x53\x57\x35\x38','\x57\x36\x35\x66\x65\x78\x2f\x63\x4e\x73\x30','\x6a\x58\x69\x41\x57\x37\x68\x63\x4f\x38\x6f\x6f\x57\x51\x6c\x63\x55\x57','\x57\x35\x6a\x31\x64\x59\x70\x64\x50\x43\x6f\x6d\x64\x45\x6b\x6a\x4f\x57','\x57\x50\x61\x68\x46\x43\x6f\x50\x75\x32\x78\x64\x4b\x6d\x6f\x47\x45\x65\x53\x32\x72\x67\x38','\x57\x50\x38\x4f\x63\x73\x56\x64\x54\x53\x6f\x6b\x65\x67\x47','\x6a\x71\x46\x63\x56\x64\x68\x64\x53\x58\x6d\x67\x75\x53\x6f\x52\x57\x34\x4e\x64\x50\x71\x57\x45','\x36\x41\x6b\x6a\x36\x7a\x4d\x4f\x36\x7a\x73\x73\x36\x7a\x51\x6d\x35\x37\x55\x70\x7a\x6f\x6b\x65\x4b\x38\x6b\x79','\x63\x73\x4e\x64\x4c\x73\x37\x64\x47\x32\x74\x63\x4b\x63\x2f\x63\x4e\x71','\x69\x57\x33\x63\x55\x5a\x6c\x64\x55\x48\x34\x65\x45\x43\x6f\x52\x57\x35\x6c\x64\x54\x73\x6d\x6b','\x57\x52\x34\x41\x63\x73\x5a\x64\x56\x71','\x69\x43\x6f\x41\x57\x52\x65\x4e\x57\x37\x46\x64\x50\x43\x6f\x43\x63\x6d\x6f\x4a\x57\x52\x75\x30\x57\x50\x69\x35'];_0x1af6=function(){return _0x8c6a7f;};return _0x1af6();}