@mneme-ai/core 2.19.28 → 2.19.30

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 (64) hide show
  1. package/dist/circadian/circadian.test.d.ts +2 -0
  2. package/dist/circadian/circadian.test.d.ts.map +1 -0
  3. package/dist/circadian/circadian.test.js +163 -0
  4. package/dist/circadian/circadian.test.js.map +1 -0
  5. package/dist/circadian/index.d.ts +124 -0
  6. package/dist/circadian/index.d.ts.map +1 -0
  7. package/dist/circadian/index.js +269 -0
  8. package/dist/circadian/index.js.map +1 -0
  9. package/dist/conversation_compiler/conversation_compiler.test.js +17 -0
  10. package/dist/conversation_compiler/conversation_compiler.test.js.map +1 -1
  11. package/dist/conversation_compiler/index.d.ts.map +1 -1
  12. package/dist/conversation_compiler/index.js +28 -16
  13. package/dist/conversation_compiler/index.js.map +1 -1
  14. package/dist/cosmic/aurelian_v1929.test.d.ts +2 -0
  15. package/dist/cosmic/aurelian_v1929.test.d.ts.map +1 -0
  16. package/dist/cosmic/aurelian_v1929.test.js +61 -0
  17. package/dist/cosmic/aurelian_v1929.test.js.map +1 -0
  18. package/dist/cosmic/aurelian_v1930.test.d.ts +2 -0
  19. package/dist/cosmic/aurelian_v1930.test.d.ts.map +1 -0
  20. package/dist/cosmic/aurelian_v1930.test.js +61 -0
  21. package/dist/cosmic/aurelian_v1930.test.js.map +1 -0
  22. package/dist/hive_court/hive_court.test.d.ts +2 -0
  23. package/dist/hive_court/hive_court.test.d.ts.map +1 -0
  24. package/dist/hive_court/hive_court.test.js +193 -0
  25. package/dist/hive_court/hive_court.test.js.map +1 -0
  26. package/dist/hive_court/index.d.ts +126 -0
  27. package/dist/hive_court/index.d.ts.map +1 -0
  28. package/dist/hive_court/index.js +195 -0
  29. package/dist/hive_court/index.js.map +1 -0
  30. package/dist/index.d.ts +5 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +7 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/soul_embalming/index.d.ts +127 -0
  35. package/dist/soul_embalming/index.d.ts.map +1 -0
  36. package/dist/soul_embalming/index.js +184 -0
  37. package/dist/soul_embalming/index.js.map +1 -0
  38. package/dist/soul_embalming/soul_embalming.test.d.ts +2 -0
  39. package/dist/soul_embalming/soul_embalming.test.d.ts.map +1 -0
  40. package/dist/soul_embalming/soul_embalming.test.js +171 -0
  41. package/dist/soul_embalming/soul_embalming.test.js.map +1 -0
  42. package/dist/synapse_fusion/index.d.ts +124 -0
  43. package/dist/synapse_fusion/index.d.ts.map +1 -0
  44. package/dist/synapse_fusion/index.js +0 -0
  45. package/dist/synapse_fusion/index.js.map +1 -0
  46. package/dist/synapse_fusion/synapse_fusion.test.d.ts +2 -0
  47. package/dist/synapse_fusion/synapse_fusion.test.d.ts.map +1 -0
  48. package/dist/synapse_fusion/synapse_fusion.test.js +215 -0
  49. package/dist/synapse_fusion/synapse_fusion.test.js.map +1 -0
  50. package/dist/synapse_genesis/index.d.ts +190 -0
  51. package/dist/synapse_genesis/index.d.ts.map +1 -0
  52. package/dist/synapse_genesis/index.js +334 -0
  53. package/dist/synapse_genesis/index.js.map +1 -0
  54. package/dist/synapse_genesis/synapse_genesis.test.d.ts +2 -0
  55. package/dist/synapse_genesis/synapse_genesis.test.d.ts.map +1 -0
  56. package/dist/synapse_genesis/synapse_genesis.test.js +333 -0
  57. package/dist/synapse_genesis/synapse_genesis.test.js.map +1 -0
  58. package/dist/whats_new.d.ts.map +1 -1
  59. package/dist/whats_new.js +16 -0
  60. package/dist/whats_new.js.map +1 -1
  61. package/dist/wrapper_genesis/index.d.ts.map +1 -1
  62. package/dist/wrapper_genesis/index.js +25 -0
  63. package/dist/wrapper_genesis/index.js.map +1 -1
  64. package/package.json +1 -1
@@ -0,0 +1,334 @@
1
+ /**
2
+ * v2.19.29 — MNEME SYNAPSE GENESIS · HEBBIAN ENGINE (Phase A of SYNAPSE GENESIS)
3
+ *
4
+ * "autonomic ไม่ใช่ 'scheduler เขียนให้ครอบทุก case' — เป็น 'scheduler
5
+ * ที่ เรียน จากทุก case + โต ตลอดเวลา'. Static = limited by author.
6
+ * Genesis = unlimited by definition."
7
+ * — user mandate, 2026-05-17
8
+ *
9
+ * Diagnosis: v2.19.28 AUTONOMIC SCHEDULER ticks 5 organs on hand-coded
10
+ * intervals (breath every 60s, sleep every 30min idle, etc). That is
11
+ * STATIC — every case must be authored in advance. v2.19.29 ships the
12
+ * GENESIS layer: a Hebbian synapse table that grows itself from every
13
+ * observed (event, tool, satisfaction) triple.
14
+ *
15
+ * Hebbian rule (neurons that fire together wire together):
16
+ * weight[s] += satisfaction === "positive" ? 1.0 : -0.5
17
+ * weight[s] *= 0.999 (slow Ebbinghaus decay per tick)
18
+ * if weight[s] > FIRE_THRESHOLD AND !permanent[s]:
19
+ * permanent[s] = true // pathway BORN — autonomic from now on
20
+ *
21
+ * Cold-start safe: first observation establishes a synapse at weight 1.0.
22
+ * Hot-loop safe: every operation is pure-function + HMAC-signed + bounded
23
+ * in O(synapses) time + clamped to [-MAX_WEIGHT, MAX_WEIGHT].
24
+ *
25
+ * Composes onto:
26
+ * - v2.19.28 AUTONOMIC SCHEDULER (synapse fires REPLACE static schedules
27
+ * as the catalog matures; scheduler asks "what should fire now?"
28
+ * and synapse table answers based on learned patterns)
29
+ * - v2.19.22 REFLEX (pheromone trail is the OBSERVATION source)
30
+ * - v2.19.25 SLEEP TRAINING (jaccard fitness loop feeds satisfaction)
31
+ * - v2.19.26 DREAMSPACE (novel events become DREAMSPACE proposals)
32
+ *
33
+ * Honest scope (every claim verifiable at runtime):
34
+ * - PURE FUNCTION reinforceSynapse + decideFire + queryPathways.
35
+ * - HMAC-chained SynapseStore so tampered weights refuse to fire.
36
+ * - Defensive at every boundary: NaN guards, weight clamps, empty-store
37
+ * handling, malformed-event handling. Never throws on bad input.
38
+ * - 24/7 always-active by construction: even with zero observations,
39
+ * decideFire returns "no_synapse_yet" gracefully (never crashes).
40
+ */
41
+ import { createHmac, timingSafeEqual } from "node:crypto";
42
+ const PROTOCOL_VERSION = 1;
43
+ // ─── tunables (every value documented; future tuning is observable) ──
44
+ const POSITIVE_REINFORCEMENT = 1.0;
45
+ const NEGATIVE_REINFORCEMENT = -0.5;
46
+ /** Per-tick decay: 0.999 → ~half-life of 693 ticks (Ebbinghaus-like). */
47
+ const DECAY_PER_TICK = 0.999;
48
+ /** Above this weight, synapse becomes PERMANENT (autonomic fires forever). */
49
+ const FIRE_THRESHOLD = 5.0;
50
+ /** Hard cap on weight magnitude — prevents runaway positive feedback. */
51
+ const MAX_WEIGHT = 100.0;
52
+ /** Below this absolute weight, synapse is pruned (saves memory). */
53
+ const PRUNE_THRESHOLD = 0.01;
54
+ // ─── canonical helpers ───────────────────────────────────────────────
55
+ function canon(v) {
56
+ if (v === null || typeof v !== "object")
57
+ return JSON.stringify(v);
58
+ if (Array.isArray(v))
59
+ return "[" + v.map(canon).join(",") + "]";
60
+ const keys = Object.keys(v).sort();
61
+ return "{" + keys.map((k) => JSON.stringify(k) + ":" + canon(v[k])).join(",") + "}";
62
+ }
63
+ function defaultSecret() {
64
+ return process.env["MNEME_SYNAPSE_GENESIS_SECRET"] || `mneme-synapse-genesis-v${PROTOCOL_VERSION}`;
65
+ }
66
+ function hmacHex(body, secret) {
67
+ return createHmac("sha256", secret).update(canon(body)).digest("hex");
68
+ }
69
+ function safeEqHex(a, b) {
70
+ try {
71
+ return timingSafeEqual(Buffer.from(a, "hex"), Buffer.from(b, "hex"));
72
+ }
73
+ catch {
74
+ return false;
75
+ }
76
+ }
77
+ function clampWeight(x) {
78
+ if (!Number.isFinite(x))
79
+ return 0;
80
+ return Math.max(-MAX_WEIGHT, Math.min(MAX_WEIGHT, x));
81
+ }
82
+ /** Stable composite key for synapse lookup; collision-free over distinct (pattern, tool). */
83
+ export function synapseKey(eventPattern, toolName) {
84
+ return `${eventPattern}::${toolName}`;
85
+ }
86
+ // ─── store lifecycle ─────────────────────────────────────────────────
87
+ export function emptySynapseStore(secret) {
88
+ const body = { v: PROTOCOL_VERSION, weights: [], lastDecayedAtMs: null };
89
+ return { ...body, sig: hmacHex(body, secret ?? defaultSecret()) };
90
+ }
91
+ function reSignStore(store, secret) {
92
+ // Sort weights by key for canonical signing so identical content produces identical sig.
93
+ const sorted = [...store.weights].sort((a, b) => a.key.localeCompare(b.key));
94
+ const body = { v: store.v, weights: sorted, lastDecayedAtMs: store.lastDecayedAtMs };
95
+ return { ...body, sig: hmacHex(body, secret) };
96
+ }
97
+ export function verifyStore(store, secret) {
98
+ const sec = secret ?? defaultSecret();
99
+ const sorted = [...store.weights].sort((a, b) => a.key.localeCompare(b.key));
100
+ const body = { v: store.v, weights: sorted, lastDecayedAtMs: store.lastDecayedAtMs };
101
+ return safeEqHex(hmacHex(body, sec), store.sig);
102
+ }
103
+ /**
104
+ * The Hebbian rule made executable. Defensive at every boundary:
105
+ * - malformed event/tool (empty strings) → no-op (returns store unchanged)
106
+ * - NaN weight → clamped to 0 before update
107
+ * - weight > MAX_WEIGHT → clamped (no runaway)
108
+ * - permanent flag never reverts even if weight decays back below threshold
109
+ */
110
+ export function reinforceSynapse(input) {
111
+ const sec = input.secret ?? defaultSecret();
112
+ const nowMs = input.nowMs ?? input.event.ts;
113
+ // Defensive: reject obviously malformed input — return store unchanged.
114
+ if (!input.event?.pattern || !input.toolCall?.toolName) {
115
+ return {
116
+ store: input.store,
117
+ synapseKey: "",
118
+ born: false,
119
+ becamePermanent: false,
120
+ newWeight: 0,
121
+ };
122
+ }
123
+ const key = synapseKey(input.event.pattern, input.toolCall.toolName);
124
+ const existingIdx = input.store.weights.findIndex((w) => w.key === key);
125
+ const delta = input.satisfaction === "positive"
126
+ ? POSITIVE_REINFORCEMENT
127
+ : input.satisfaction === "negative"
128
+ ? NEGATIVE_REINFORCEMENT
129
+ : 0;
130
+ let updated;
131
+ let born = false;
132
+ let becamePermanent = false;
133
+ if (existingIdx === -1) {
134
+ // Cold-start: first observation establishes synapse.
135
+ updated = {
136
+ key,
137
+ eventPattern: input.event.pattern,
138
+ toolName: input.toolCall.toolName,
139
+ weight: clampWeight(delta),
140
+ observationCount: 1,
141
+ lastObservedAtMs: nowMs,
142
+ permanentSinceWeight: 0,
143
+ permanent: false,
144
+ };
145
+ born = true;
146
+ }
147
+ else {
148
+ const prev = input.store.weights[existingIdx];
149
+ // Apply Ebbinghaus decay per elapsed tick (one tick = one observation interval).
150
+ // We approximate by raising decay to (observations since last) — but since
151
+ // we update each observation, decay factor per call is the constant DECAY_PER_TICK.
152
+ const decayed = clampWeight((Number.isFinite(prev.weight) ? prev.weight : 0) * DECAY_PER_TICK);
153
+ const newWeight = clampWeight(decayed + delta);
154
+ const willBePermanent = prev.permanent || newWeight >= FIRE_THRESHOLD;
155
+ becamePermanent = !prev.permanent && newWeight >= FIRE_THRESHOLD;
156
+ updated = {
157
+ key,
158
+ eventPattern: input.event.pattern,
159
+ toolName: input.toolCall.toolName,
160
+ weight: newWeight,
161
+ observationCount: prev.observationCount + 1,
162
+ lastObservedAtMs: nowMs,
163
+ permanentSinceWeight: willBePermanent && prev.permanentSinceWeight === 0 ? newWeight : prev.permanentSinceWeight,
164
+ permanent: willBePermanent,
165
+ };
166
+ }
167
+ const newWeights = existingIdx === -1
168
+ ? [...input.store.weights, updated]
169
+ : input.store.weights.map((w, i) => (i === existingIdx ? updated : w));
170
+ const newStore = reSignStore({ v: PROTOCOL_VERSION, weights: newWeights, lastDecayedAtMs: nowMs }, sec);
171
+ return { store: newStore, synapseKey: key, born, becamePermanent, newWeight: updated.weight };
172
+ }
173
+ /**
174
+ * Pure decision: given the synapse store + event pattern + tool name,
175
+ * should this synapse fire RIGHT NOW? Never throws. Tampered store returns
176
+ * `shouldFire: false` with reason `tampered_store` (fail-safe).
177
+ *
178
+ * Priority:
179
+ * 1. tampered store → no fire
180
+ * 2. no synapse for this (pattern, tool) → no fire (will become DREAMSPACE candidate)
181
+ * 3. pruned (|weight| < PRUNE_THRESHOLD) → no fire
182
+ * 4. permanent → fire
183
+ * 5. weight >= FIRE_THRESHOLD AND not yet permanent → fire (will mark permanent on next reinforce)
184
+ * 6. else → juvenile; no fire yet
185
+ */
186
+ export function decideFire(input) {
187
+ // 1. Tampered store → fail-safe.
188
+ if (!verifyStore(input.store, input.secret)) {
189
+ return {
190
+ v: PROTOCOL_VERSION,
191
+ shouldFire: false,
192
+ reason: "tampered_store",
193
+ weight: 0,
194
+ permanent: false,
195
+ details: "synapse store HMAC verification failed — refusing to fire from tampered state",
196
+ };
197
+ }
198
+ const key = synapseKey(input.eventPattern, input.toolName);
199
+ const w = input.store.weights.find((x) => x.key === key);
200
+ if (!w) {
201
+ return {
202
+ v: PROTOCOL_VERSION,
203
+ shouldFire: false,
204
+ reason: "no_synapse_yet",
205
+ weight: 0,
206
+ permanent: false,
207
+ details: `no synapse for (${input.eventPattern} → ${input.toolName}); cold-start path`,
208
+ };
209
+ }
210
+ if (Math.abs(w.weight) < PRUNE_THRESHOLD) {
211
+ return {
212
+ v: PROTOCOL_VERSION,
213
+ shouldFire: false,
214
+ reason: "pruned_dead",
215
+ weight: w.weight,
216
+ permanent: w.permanent,
217
+ details: `weight |${w.weight.toFixed(4)}| < prune threshold ${PRUNE_THRESHOLD}; pathway atrophied`,
218
+ };
219
+ }
220
+ if (w.permanent) {
221
+ return {
222
+ v: PROTOCOL_VERSION,
223
+ shouldFire: true,
224
+ reason: "permanent_pathway",
225
+ weight: w.weight,
226
+ permanent: true,
227
+ details: `permanent since weight=${w.permanentSinceWeight.toFixed(2)}; autonomic from now on`,
228
+ };
229
+ }
230
+ if (w.weight >= FIRE_THRESHOLD) {
231
+ return {
232
+ v: PROTOCOL_VERSION,
233
+ shouldFire: true,
234
+ reason: "above_threshold_growing",
235
+ weight: w.weight,
236
+ permanent: false,
237
+ details: `weight ${w.weight.toFixed(2)} >= fire threshold ${FIRE_THRESHOLD}; will mark permanent on next reinforce`,
238
+ };
239
+ }
240
+ return {
241
+ v: PROTOCOL_VERSION,
242
+ shouldFire: false,
243
+ reason: "below_threshold_juvenile",
244
+ weight: w.weight,
245
+ permanent: false,
246
+ details: `weight ${w.weight.toFixed(2)} < fire threshold ${FIRE_THRESHOLD}; needs more positive reinforcement`,
247
+ };
248
+ }
249
+ /**
250
+ * Returns all known synapses keyed by (eventPattern, *) sorted by weight desc.
251
+ * REFLEX / SCHEDULER call this to discover "what should I pre-execute for this event?"
252
+ *
253
+ * Defensive: empty store + unknown pattern → empty array. Never throws.
254
+ */
255
+ export function queryPathways(input) {
256
+ const topN = input.topN ?? 5;
257
+ const includeNeg = input.includeNegative ?? false;
258
+ const matching = input.store.weights.filter((w) => w.eventPattern === input.eventPattern && (includeNeg || w.weight > 0));
259
+ if (matching.length === 0)
260
+ return [];
261
+ const sorted = [...matching].sort((a, b) => b.weight - a.weight || a.toolName.localeCompare(b.toolName));
262
+ const top = sorted.slice(0, topN);
263
+ const maxWeight = Math.max(...top.map((w) => Math.abs(w.weight)));
264
+ return top.map((w) => ({
265
+ toolName: w.toolName,
266
+ weight: w.weight,
267
+ permanent: w.permanent,
268
+ observationCount: w.observationCount,
269
+ relativeConfidence: maxWeight === 0 ? 0 : Math.abs(w.weight) / maxWeight,
270
+ }));
271
+ }
272
+ /** Remove synapses with |weight| < PRUNE_THRESHOLD. Permanent synapses NEVER pruned. */
273
+ export function pruneStore(input) {
274
+ const sec = input.secret ?? defaultSecret();
275
+ const before = input.store.weights.length;
276
+ const kept = input.store.weights.filter((w) => w.permanent || Math.abs(w.weight) >= PRUNE_THRESHOLD);
277
+ const newStore = reSignStore({ v: PROTOCOL_VERSION, weights: kept, lastDecayedAtMs: input.store.lastDecayedAtMs }, sec);
278
+ return { store: newStore, prunedCount: before - kept.length, remainingCount: kept.length };
279
+ }
280
+ export function computeStats(store) {
281
+ if (store.weights.length === 0) {
282
+ return {
283
+ totalSynapses: 0,
284
+ permanentSynapses: 0,
285
+ juvenileSynapses: 0,
286
+ prunableSynapses: 0,
287
+ totalObservations: 0,
288
+ averageWeight: 0,
289
+ maxWeight: 0,
290
+ oldestLastObservedMs: null,
291
+ };
292
+ }
293
+ let permanent = 0, prunable = 0, totalObs = 0, sumW = 0, maxW = 0;
294
+ let oldest = Number.MAX_SAFE_INTEGER;
295
+ for (const w of store.weights) {
296
+ if (w.permanent)
297
+ permanent++;
298
+ if (!w.permanent && Math.abs(w.weight) < PRUNE_THRESHOLD)
299
+ prunable++;
300
+ totalObs += w.observationCount;
301
+ sumW += w.weight;
302
+ if (Math.abs(w.weight) > maxW)
303
+ maxW = Math.abs(w.weight);
304
+ if (w.lastObservedAtMs < oldest)
305
+ oldest = w.lastObservedAtMs;
306
+ }
307
+ return {
308
+ totalSynapses: store.weights.length,
309
+ permanentSynapses: permanent,
310
+ juvenileSynapses: store.weights.length - permanent - prunable,
311
+ prunableSynapses: prunable,
312
+ totalObservations: totalObs,
313
+ averageWeight: sumW / store.weights.length,
314
+ maxWeight: maxW,
315
+ oldestLastObservedMs: oldest === Number.MAX_SAFE_INTEGER ? null : oldest,
316
+ };
317
+ }
318
+ export function formatStatsLine(s) {
319
+ return `🧬 SYNAPSE · ${s.totalSynapses} synapses · 🏛${s.permanentSynapses} permanent · 🐣${s.juvenileSynapses} juvenile · 🍂${s.prunableSynapses} prunable · obs=${s.totalObservations} · maxW=${s.maxWeight.toFixed(1)}`;
320
+ }
321
+ export function formatFireLine(d) {
322
+ const tag = d.shouldFire ? (d.permanent ? "🏛" : "⚡") : "·";
323
+ return `${tag} FIRE · ${d.shouldFire ? "YES" : "no"} · ${d.reason} · w=${d.weight.toFixed(2)}`;
324
+ }
325
+ // ─── tuning constants exposed (for AI introspection) ────────────────
326
+ export const SYNAPSE_TUNABLES = Object.freeze({
327
+ POSITIVE_REINFORCEMENT,
328
+ NEGATIVE_REINFORCEMENT,
329
+ DECAY_PER_TICK,
330
+ FIRE_THRESHOLD,
331
+ MAX_WEIGHT,
332
+ PRUNE_THRESHOLD,
333
+ });
334
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/synapse_genesis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,gBAAgB,GAAG,CAAU,CAAC;AAEpC,wEAAwE;AAExE,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,sBAAsB,GAAG,CAAC,GAAG,CAAC;AACpC,yEAAyE;AACzE,MAAM,cAAc,GAAG,KAAK,CAAC;AAC7B,8EAA8E;AAC9E,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,yEAAyE;AACzE,MAAM,UAAU,GAAG,KAAK,CAAC;AACzB,oEAAoE;AACpE,MAAM,eAAe,GAAG,IAAI,CAAC;AA6C7B,wEAAwE;AAExE,SAAS,KAAK,CAAC,CAAU;IACvB,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAChE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAA4B,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9D,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAE,CAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACnH,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,0BAA0B,gBAAgB,EAAE,CAAC;AACrG,CAAC;AAED,SAAS,OAAO,CAAC,IAAa,EAAE,MAAc;IAC5C,OAAO,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,SAAS,CAAC,CAAS,EAAE,CAAS;IACrC,IAAI,CAAC;QAAC,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAAC,CAAC;IAC7E,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AACzB,CAAC;AAED,SAAS,WAAW,CAAC,CAAS;IAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,UAAU,CAAC,YAAoB,EAAE,QAAgB;IAC/D,OAAO,GAAG,YAAY,KAAK,QAAQ,EAAE,CAAC;AACxC,CAAC;AAED,wEAAwE;AAExE,MAAM,UAAU,iBAAiB,CAAC,MAAe;IAC/C,MAAM,IAAI,GAA8B,EAAE,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IACpG,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,aAAa,EAAE,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,WAAW,CAAC,KAAgC,EAAE,MAAc;IACnE,yFAAyF;IACzF,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;IACrF,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAmB,EAAE,MAAe;IAC9D,MAAM,GAAG,GAAG,MAAM,IAAI,aAAa,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;IACrF,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC;AAwBD;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAqB;IACpD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;IAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5C,wEAAwE;IACxE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACvD,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,KAAK;YACX,eAAe,EAAE,KAAK;YACtB,SAAS,EAAE,CAAC;SACb,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,KAAK,UAAU;QAC7C,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,KAAK,CAAC,YAAY,KAAK,UAAU;YACjC,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,CAAC,CAAC;IACR,IAAI,OAAsB,CAAC;IAC3B,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;QACvB,qDAAqD;QACrD,OAAO,GAAG;YACR,GAAG;YACH,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;YACjC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;YACjC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC;YAC1B,gBAAgB,EAAE,CAAC;YACnB,gBAAgB,EAAE,KAAK;YACvB,oBAAoB,EAAE,CAAC;YACvB,SAAS,EAAE,KAAK;SACjB,CAAC;QACF,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAE,CAAC;QAC/C,iFAAiF;QACjF,2EAA2E;QAC3E,oFAAoF;QACpF,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC;QAC/F,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;QAC/C,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,cAAc,CAAC;QACtE,eAAe,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,cAAc,CAAC;QACjE,OAAO,GAAG;YACR,GAAG;YACH,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;YACjC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;YACjC,MAAM,EAAE,SAAS;YACjB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC;YAC3C,gBAAgB,EAAE,KAAK;YACvB,oBAAoB,EAAE,eAAe,IAAI,IAAI,CAAC,oBAAoB,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB;YAChH,SAAS,EAAE,eAAe;SAC3B,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,WAAW,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;QACnC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,WAAW,CAC1B,EAAE,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,EACpE,GAAG,CACJ,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AAChG,CAAC;AAqBD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,UAAU,CAAC,KAK1B;IACC,iCAAiC;IACjC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,OAAO;YACL,CAAC,EAAE,gBAAgB;YACnB,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,gBAAgB;YACxB,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,+EAA+E;SACzF,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IACzD,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,OAAO;YACL,CAAC,EAAE,gBAAgB;YACnB,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,gBAAgB;YACxB,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,mBAAmB,KAAK,CAAC,YAAY,MAAM,KAAK,CAAC,QAAQ,oBAAoB;SACvF,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,eAAe,EAAE,CAAC;QACzC,OAAO;YACL,CAAC,EAAE,gBAAgB;YACnB,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,OAAO,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,eAAe,qBAAqB;SACnG,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO;YACL,CAAC,EAAE,gBAAgB;YACnB,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,mBAAmB;YAC3B,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,0BAA0B,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB;SAC9F,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;QAC/B,OAAO;YACL,CAAC,EAAE,gBAAgB;YACnB,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,yBAAyB;YACjC,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,cAAc,yCAAyC;SACpH,CAAC;IACJ,CAAC;IACD,OAAO;QACL,CAAC,EAAE,gBAAgB;QACnB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,0BAA0B;QAClC,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,cAAc,qCAAqC;KAC/G,CAAC;AACJ,CAAC;AAaD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAK7B;IACC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;IAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC;IAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAChD,CAAC,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CACtE,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzG,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;QACpC,kBAAkB,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS;KACzE,CAAC,CAAC,CAAC;AACN,CAAC;AAUD,wFAAwF;AACxF,MAAM,UAAU,UAAU,CAAC,KAA+C;IACxE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;IAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,CAAC;IACrG,MAAM,QAAQ,GAAG,WAAW,CAC1B,EAAE,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,EACpF,GAAG,CACJ,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AAC7F,CAAC;AAeD,MAAM,UAAU,YAAY,CAAC,KAAmB;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,aAAa,EAAE,CAAC;YAChB,iBAAiB,EAAE,CAAC;YACpB,gBAAgB,EAAE,CAAC;YACnB,gBAAgB,EAAE,CAAC;YACnB,iBAAiB,EAAE,CAAC;YACpB,aAAa,EAAE,CAAC;YAChB,SAAS,EAAE,CAAC;YACZ,oBAAoB,EAAE,IAAI;SAC3B,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;IAClE,IAAI,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,SAAS;YAAE,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,eAAe;YAAE,QAAQ,EAAE,CAAC;QACrE,QAAQ,IAAI,CAAC,CAAC,gBAAgB,CAAC;QAC/B,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC;QACjB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI;YAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,CAAC,gBAAgB,GAAG,MAAM;YAAE,MAAM,GAAG,CAAC,CAAC,gBAAgB,CAAC;IAC/D,CAAC;IACD,OAAO;QACL,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;QACnC,iBAAiB,EAAE,SAAS;QAC5B,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,SAAS,GAAG,QAAQ;QAC7D,gBAAgB,EAAE,QAAQ;QAC1B,iBAAiB,EAAE,QAAQ;QAC3B,aAAa,EAAE,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM;QAC1C,SAAS,EAAE,IAAI;QACf,oBAAoB,EAAE,MAAM,KAAK,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;KACzE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAe;IAC7C,OAAO,gBAAgB,CAAC,CAAC,aAAa,iBAAiB,CAAC,CAAC,iBAAiB,kBAAkB,CAAC,CAAC,gBAAgB,iBAAiB,CAAC,CAAC,gBAAgB,mBAAmB,CAAC,CAAC,iBAAiB,WAAW,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7N,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,CAAe;IAC5C,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC5D,OAAO,GAAG,GAAG,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AACjG,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5C,sBAAsB;IACtB,sBAAsB;IACtB,cAAc;IACd,cAAc;IACd,UAAU;IACV,eAAe;CAChB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=synapse_genesis.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synapse_genesis.test.d.ts","sourceRoot":"","sources":["../../src/synapse_genesis/synapse_genesis.test.ts"],"names":[],"mappings":""}