@mneme-ai/core 2.14.0 → 2.15.0

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 (48) hide show
  1. package/dist/agent_manifest.d.ts +1 -1
  2. package/dist/agent_manifest.d.ts.map +1 -1
  3. package/dist/agent_manifest.js +16 -1
  4. package/dist/agent_manifest.js.map +1 -1
  5. package/dist/arbitrage/arbitrage.test.d.ts +2 -0
  6. package/dist/arbitrage/arbitrage.test.d.ts.map +1 -0
  7. package/dist/arbitrage/arbitrage.test.js +131 -0
  8. package/dist/arbitrage/arbitrage.test.js.map +1 -0
  9. package/dist/arbitrage/index.d.ts +140 -0
  10. package/dist/arbitrage/index.d.ts.map +1 -0
  11. package/dist/arbitrage/index.js +242 -0
  12. package/dist/arbitrage/index.js.map +1 -0
  13. package/dist/cosmic/aurelian_v215.test.d.ts +9 -0
  14. package/dist/cosmic/aurelian_v215.test.d.ts.map +1 -0
  15. package/dist/cosmic/aurelian_v215.test.js +75 -0
  16. package/dist/cosmic/aurelian_v215.test.js.map +1 -0
  17. package/dist/genesis/genesis.test.d.ts +2 -0
  18. package/dist/genesis/genesis.test.d.ts.map +1 -0
  19. package/dist/genesis/genesis.test.js +159 -0
  20. package/dist/genesis/genesis.test.js.map +1 -0
  21. package/dist/genesis/index.d.ts +94 -0
  22. package/dist/genesis/index.d.ts.map +1 -0
  23. package/dist/genesis/index.js +452 -0
  24. package/dist/genesis/index.js.map +1 -0
  25. package/dist/hive/hive.test.d.ts +2 -0
  26. package/dist/hive/hive.test.d.ts.map +1 -0
  27. package/dist/hive/hive.test.js +162 -0
  28. package/dist/hive/hive.test.js.map +1 -0
  29. package/dist/hive/index.d.ts +151 -0
  30. package/dist/hive/index.d.ts.map +1 -0
  31. package/dist/hive/index.js +246 -0
  32. package/dist/hive/index.js.map +1 -0
  33. package/dist/index.d.ts +4 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +5 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/vibe/index.d.ts +89 -0
  38. package/dist/vibe/index.d.ts.map +1 -0
  39. package/dist/vibe/index.js +243 -0
  40. package/dist/vibe/index.js.map +1 -0
  41. package/dist/vibe/vibe.test.d.ts +2 -0
  42. package/dist/vibe/vibe.test.d.ts.map +1 -0
  43. package/dist/vibe/vibe.test.js +97 -0
  44. package/dist/vibe/vibe.test.js.map +1 -0
  45. package/dist/whats_new.d.ts.map +1 -1
  46. package/dist/whats_new.js +32 -0
  47. package/dist/whats_new.js.map +1 -1
  48. package/package.json +1 -1
@@ -0,0 +1,162 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from "vitest";
2
+ import { mkdtempSync, rmSync } from "node:fs";
3
+ import { tmpdir } from "node:os";
4
+ import { join } from "node:path";
5
+ import { hashPattern, recordObservation, verifyObservation, lookupLocal, lookupPublic, publishObservation, listLocal, formatHiveLine, } from "./index.js";
6
+ describe("v2.15 · MNEME HIVE — pattern-share marketplace", () => {
7
+ let dir;
8
+ beforeEach(() => { dir = mkdtempSync(join(tmpdir(), "hive-")); });
9
+ afterEach(() => { try {
10
+ rmSync(dir, { recursive: true, force: true });
11
+ }
12
+ catch { } });
13
+ describe("hashPattern", () => {
14
+ it("identical normalized inputs hash identically", () => {
15
+ const a = hashPattern({ problemText: "TypeError: foo is not a function", kind: "type_error" });
16
+ const b = hashPattern({ problemText: "TypeError: foo is not a function", kind: "type_error" });
17
+ expect(a.hash).toBe(b.hash);
18
+ });
19
+ it("different identifiers but same shape hash identically (privacy + clustering)", () => {
20
+ const a = hashPattern({ problemText: "TypeError: myFunc is not a function", kind: "type_error" });
21
+ const b = hashPattern({ problemText: "TypeError: yourFunc is not a function", kind: "type_error" });
22
+ expect(a.hash).toBe(b.hash);
23
+ });
24
+ it("string literals are masked (privacy)", () => {
25
+ const a = hashPattern({ problemText: 'failed to load "myproject.config"', kind: "build_failure" });
26
+ const b = hashPattern({ problemText: 'failed to load "yourproject.config"', kind: "build_failure" });
27
+ expect(a.hash).toBe(b.hash);
28
+ });
29
+ it("numbers are masked", () => {
30
+ const a = hashPattern({ problemText: "request took 4523ms", kind: "perf" });
31
+ const b = hashPattern({ problemText: "request took 9999ms", kind: "perf" });
32
+ expect(a.hash).toBe(b.hash);
33
+ });
34
+ it("different kinds produce different contextHash even if hash matches", () => {
35
+ const a = hashPattern({ problemText: "x", kind: "bug" });
36
+ const b = hashPattern({ problemText: "x", kind: "perf" });
37
+ expect(a.contextHash).not.toBe(b.contextHash);
38
+ });
39
+ it("hash is 64 hex chars", () => {
40
+ const a = hashPattern({ problemText: "x", kind: "bug" });
41
+ expect(a.hash).toMatch(/^[0-9a-f]{64}$/);
42
+ expect(a.contextHash).toMatch(/^[0-9a-f]{64}$/);
43
+ });
44
+ });
45
+ describe("recordObservation", () => {
46
+ it("appends an HMAC-signed observation", () => {
47
+ const h = hashPattern({ problemText: "x is null", kind: "bug" });
48
+ const obs = recordObservation({
49
+ hash: h,
50
+ solution: { kind: "edit", filesAffected: 1, linesChanged: 3, label: "added null check" },
51
+ outcome: "good",
52
+ repoDir: dir,
53
+ });
54
+ expect(obs.id).toMatch(/^h-/);
55
+ expect(obs.sig).toMatch(/^[0-9a-f]{64}$/);
56
+ });
57
+ it("verifyObservation true for clean entries", () => {
58
+ const h = hashPattern({ problemText: "x", kind: "bug" });
59
+ const o = recordObservation({ hash: h, solution: { kind: "edit", filesAffected: 1, linesChanged: 1 }, outcome: "good", repoDir: dir });
60
+ expect(verifyObservation(o)).toBe(true);
61
+ });
62
+ it("verifyObservation false on tamper", () => {
63
+ const h = hashPattern({ problemText: "x", kind: "bug" });
64
+ const o = recordObservation({ hash: h, solution: { kind: "edit", filesAffected: 1, linesChanged: 1 }, outcome: "good", repoDir: dir });
65
+ const tampered = { ...o, outcome: "bad" };
66
+ expect(verifyObservation(tampered)).toBe(false);
67
+ });
68
+ });
69
+ describe("lookupLocal", () => {
70
+ it("returns zero for unseen pattern", () => {
71
+ const h = hashPattern({ problemText: "never seen", kind: "bug" });
72
+ const m = lookupLocal(h, { repoDir: dir });
73
+ expect(m.totalObservations).toBe(0);
74
+ expect(m.bestSolution).toBeNull();
75
+ });
76
+ it("aggregates outcomes across observations", () => {
77
+ const h = hashPattern({ problemText: "x", kind: "bug" });
78
+ for (let i = 0; i < 3; i++)
79
+ recordObservation({ hash: h, solution: { kind: "edit", filesAffected: 1, linesChanged: 1, label: "approach A" }, outcome: "good", repoDir: dir });
80
+ recordObservation({ hash: h, solution: { kind: "edit", filesAffected: 5, linesChanged: 50, label: "approach B" }, outcome: "bad", repoDir: dir });
81
+ const m = lookupLocal(h, { repoDir: dir });
82
+ expect(m.totalObservations).toBe(4);
83
+ expect(m.byOutcome.good).toBe(3);
84
+ expect(m.byOutcome.bad).toBe(1);
85
+ expect(m.bestSolution?.label).toBe("approach A");
86
+ expect(m.bestSolution?.confidence).toBe(1);
87
+ });
88
+ it("ranks by good_rate * sample_size (the established small-sample-tiebreaker)", () => {
89
+ const h = hashPattern({ problemText: "y", kind: "bug" });
90
+ // approach A: 2/2 good
91
+ recordObservation({ hash: h, solution: { kind: "edit", filesAffected: 1, linesChanged: 1, label: "A" }, outcome: "good", repoDir: dir });
92
+ recordObservation({ hash: h, solution: { kind: "edit", filesAffected: 1, linesChanged: 1, label: "A" }, outcome: "good", repoDir: dir });
93
+ // approach B: 5/5 good
94
+ for (let i = 0; i < 5; i++)
95
+ recordObservation({ hash: h, solution: { kind: "edit", filesAffected: 1, linesChanged: 1, label: "B" }, outcome: "good", repoDir: dir });
96
+ const m = lookupLocal(h, { repoDir: dir });
97
+ // Both 100% confidence, but B has more samples → wins
98
+ expect(m.bestSolution?.label).toBe("B");
99
+ });
100
+ it("HMAC sig on the summary is deterministic and 64-hex", () => {
101
+ const h = hashPattern({ problemText: "z", kind: "bug" });
102
+ recordObservation({ hash: h, solution: { kind: "edit", filesAffected: 1, linesChanged: 1 }, outcome: "good", repoDir: dir });
103
+ const m = lookupLocal(h, { repoDir: dir });
104
+ expect(m.sig).toMatch(/^[0-9a-f]{64}$/);
105
+ });
106
+ });
107
+ describe("public hive (network calls)", () => {
108
+ it("lookupPublic falls back to local when endpoint fails", async () => {
109
+ const failingFetch = async () => { throw new Error("ENOTFOUND"); };
110
+ const h = hashPattern({ problemText: "n", kind: "bug" });
111
+ recordObservation({ hash: h, solution: { kind: "edit", filesAffected: 1, linesChanged: 1, label: "X" }, outcome: "good", repoDir: dir });
112
+ const m = await lookupPublic(h, { fetchOverride: failingFetch, repoDir: dir });
113
+ expect(m.totalObservations).toBe(1); // local fallback engaged
114
+ expect(m.bestSolution?.label).toBe("X");
115
+ });
116
+ it("lookupPublic uses public response when reachable", async () => {
117
+ const h = hashPattern({ problemText: "p", kind: "bug" });
118
+ const fakeFetch = (async () => new Response(JSON.stringify({
119
+ hash: h.hash,
120
+ totalObservations: 247,
121
+ byOutcome: { good: 200, bad: 30, regression: 17, unknown: 0 },
122
+ bySolutionKind: { edit: 247 },
123
+ bestSolution: { kind: "edit", label: "global best", confidence: 0.9, samplesGood: 200, samplesTotal: 247 },
124
+ signedAt: "2026-05-15T00:00:00Z",
125
+ sig: "0".repeat(64),
126
+ }), { status: 200 }));
127
+ const m = await lookupPublic(h, { fetchOverride: fakeFetch, repoDir: dir });
128
+ expect(m.totalObservations).toBe(247);
129
+ expect(m.bestSolution?.label).toBe("global best");
130
+ });
131
+ it("publishObservation handles network failure gracefully", async () => {
132
+ const failingFetch = async () => { throw new Error("ENOTFOUND"); };
133
+ const h = hashPattern({ problemText: "x", kind: "bug" });
134
+ const o = recordObservation({ hash: h, solution: { kind: "edit", filesAffected: 1, linesChanged: 1 }, outcome: "good", repoDir: dir });
135
+ const r = await publishObservation(o, { fetchOverride: failingFetch });
136
+ expect(r.ok).toBe(false);
137
+ expect(r.error).toContain("ENOTFOUND");
138
+ });
139
+ it("publishObservation succeeds on 200", async () => {
140
+ const okFetch = (async () => new Response(JSON.stringify({ ok: true }), { status: 200 }));
141
+ const h = hashPattern({ problemText: "x", kind: "bug" });
142
+ const o = recordObservation({ hash: h, solution: { kind: "edit", filesAffected: 1, linesChanged: 1 }, outcome: "good", repoDir: dir });
143
+ const r = await publishObservation(o, { fetchOverride: okFetch });
144
+ expect(r.ok).toBe(true);
145
+ });
146
+ });
147
+ it("listLocal returns all observations", () => {
148
+ const h = hashPattern({ problemText: "x", kind: "bug" });
149
+ for (let i = 0; i < 3; i++)
150
+ recordObservation({ hash: h, solution: { kind: "edit", filesAffected: 1, linesChanged: 1 }, outcome: "good", repoDir: dir });
151
+ expect(listLocal({ repoDir: dir })).toHaveLength(3);
152
+ });
153
+ it("formatHiveLine summarises", () => {
154
+ const h = hashPattern({ problemText: "x", kind: "bug" });
155
+ recordObservation({ hash: h, solution: { kind: "edit", filesAffected: 1, linesChanged: 1 }, outcome: "good", repoDir: dir });
156
+ const line = formatHiveLine({ repoDir: dir });
157
+ expect(line).toContain("HIVE");
158
+ expect(line).toContain("1 observations");
159
+ expect(line).toContain("1 good");
160
+ });
161
+ });
162
+ //# sourceMappingURL=hive.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hive.test.js","sourceRoot":"","sources":["../../src/hive/hive.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EACjD,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAC7C,SAAS,EAAE,cAAc,GAC1B,MAAM,YAAY,CAAC;AAEpB,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC9D,IAAI,GAAW,CAAC;IAChB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC;IAErF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,kCAAkC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;YAC/F,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,kCAAkC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;YAC/F,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;YACtF,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,qCAAqC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;YAClG,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,uCAAuC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;YACpG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,mCAAmC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;YACnG,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,qCAAqC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;YACrG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC5B,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC5E,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC5E,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;YAC5E,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1D,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YACzC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACjE,MAAM,GAAG,GAAG,iBAAiB,CAAC;gBAC5B,IAAI,EAAE,CAAC;gBACP,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE;gBACxF,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,GAAG;aACb,CAAC,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,MAAM,CAAC,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YACvI,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,MAAM,CAAC,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YACvI,MAAM,QAAQ,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,KAAc,EAAE,CAAC;YACnD,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAClE,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3C,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAAE,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9K,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAClJ,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3C,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjD,MAAM,CAAC,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;YACpF,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,uBAAuB;YACvB,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YACzI,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YACzI,uBAAuB;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAAE,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YACrK,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3C,sDAAsD;YACtD,MAAM,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7H,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3C,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC3C,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,YAAY,GAAiB,KAAK,IAAI,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YACzI,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC/E,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB;YAC9D,MAAM,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,MAAM,SAAS,GAAiB,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;gBACvE,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,iBAAiB,EAAE,GAAG;gBACtB,SAAS,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;gBAC7D,cAAc,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;gBAC7B,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE;gBAC1G,QAAQ,EAAE,sBAAsB;gBAChC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;aACpB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAiB,CAAC;YACtC,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5E,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,YAAY,GAAiB,KAAK,IAAI,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,MAAM,CAAC,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YACvI,MAAM,CAAC,GAAG,MAAM,kBAAkB,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC;YACvE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,OAAO,GAAiB,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAiB,CAAC;YACxH,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,MAAM,CAAC,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YACvI,MAAM,CAAC,GAAG,MAAM,kBAAkB,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;YAClE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAAE,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QACzJ,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7H,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * v2.15.0 — MNEME HIVE
3
+ *
4
+ * "Pattern share without source share. Hash a problem, hash its
5
+ * solution, hash its outcome. Other Mneme users hash the same
6
+ * problem and look up the canonical fix. Your repo never leaves
7
+ * your machine; only one-way hashes do."
8
+ *
9
+ * The killer distribution wedge: every Mneme user benefits from every
10
+ * OTHER Mneme user's solved problems. Network effect from day 1.
11
+ *
12
+ * Privacy model:
13
+ * - Patterns are hashed (sha256 of canonicalized AST-ish shape).
14
+ * - Solutions are summarised (delta size, file paths anonymised, kind
15
+ * of change) — never the source code itself.
16
+ * - Outcomes are graded (good / bad / regression) by the user's own
17
+ * test suite + bounty receipts.
18
+ *
19
+ * Wire model:
20
+ * - Local hive (`packages/core/src/hive/local.ts`) stores per-machine
21
+ * pattern observations. Always works offline.
22
+ * - Public hive endpoint (`HIVE_DEFAULT_URL`) at cosmic.mneme-ai.space
23
+ * /hive — opt-in publish + pull. v2.15 ships the CLIENT primitive;
24
+ * the server endpoint is a Phase 2 stub (will be added when N>1
25
+ * users have opted in).
26
+ *
27
+ * Tamper-evidence: every hash + observation is HMAC-signed. Receivers
28
+ * verify before counting toward the leaderboard.
29
+ */
30
+ declare const PROTOCOL_VERSION: 1;
31
+ export declare const HIVE_DEFAULT_URL = "https://cosmic.mneme-ai.space/hive";
32
+ export type ProblemKind = "bug" | "refactor" | "perf" | "security" | "test_failure" | "build_failure" | "dependency_update" | "type_error" | "lint_error" | "deploy_failure" | "other";
33
+ export type Outcome = "good" | "bad" | "regression" | "unknown";
34
+ export interface PatternHash {
35
+ v: typeof PROTOCOL_VERSION;
36
+ /** sha256 of canonical(problem). 64 hex chars. */
37
+ hash: string;
38
+ /** sha256 of canonical({stack, framework, kind}). 64 hex chars. Used
39
+ * to cluster similar patterns across stacks. */
40
+ contextHash: string;
41
+ /** Kind tag for indexing. */
42
+ kind: ProblemKind;
43
+ /** Stack tag (typescript / python / ...). Optional but improves
44
+ * matchmaking. */
45
+ stack?: string;
46
+ /** Framework tag. Optional. */
47
+ framework?: string;
48
+ }
49
+ export interface PatternObservation {
50
+ v: typeof PROTOCOL_VERSION;
51
+ id: string;
52
+ ts: string;
53
+ hash: PatternHash;
54
+ /** Summary of the solution applied (kind + size, NOT source). */
55
+ solution: {
56
+ kind: "edit" | "delete" | "add" | "rename" | "config" | "rollback" | "other";
57
+ /** Number of files touched. */
58
+ filesAffected: number;
59
+ /** Lines changed (added + removed). */
60
+ linesChanged: number;
61
+ /** Optional 1-line plain-English label (e.g., "added missing await"). */
62
+ label?: string;
63
+ };
64
+ /** Outcome graded by tests / bounty / human. */
65
+ outcome: Outcome;
66
+ /** HMAC over the body — verifiable on remote ingest. */
67
+ sig: string;
68
+ }
69
+ export interface PatternMatchSummary {
70
+ hash: string;
71
+ totalObservations: number;
72
+ byOutcome: Record<Outcome, number>;
73
+ bySolutionKind: Record<string, number>;
74
+ /** Best-known solution: highest-rated by good-rate * sample-size. */
75
+ bestSolution: {
76
+ kind: string;
77
+ label?: string;
78
+ confidence: number;
79
+ samplesGood: number;
80
+ samplesTotal: number;
81
+ } | null;
82
+ signedAt: string;
83
+ sig: string;
84
+ }
85
+ /**
86
+ * Hash a problem into a stable fingerprint. Pure function over text;
87
+ * normalises whitespace + identifiers so semantically-equivalent
88
+ * problems hash to the same value across users.
89
+ *
90
+ * The hash is over a canonical AST-ish shape:
91
+ * - lowercase
92
+ * - identifiers replaced with $1, $2, ... in order of first occurrence
93
+ * - whitespace collapsed
94
+ * - numeric literals replaced with N
95
+ * - string literals replaced with S
96
+ */
97
+ export declare function hashPattern(input: {
98
+ problemText: string;
99
+ kind: ProblemKind;
100
+ stack?: string;
101
+ framework?: string;
102
+ }): PatternHash;
103
+ export interface RecordObservationInput {
104
+ hash: PatternHash;
105
+ solution: PatternObservation["solution"];
106
+ outcome: Outcome;
107
+ repoDir?: string;
108
+ secret?: string;
109
+ }
110
+ export declare function recordObservation(input: RecordObservationInput): PatternObservation;
111
+ export declare function verifyObservation(o: PatternObservation, secret?: string): boolean;
112
+ /**
113
+ * Look up a pattern in the LOCAL hive. Returns the best-known solution
114
+ * if any observations match. Pure function over local storage.
115
+ */
116
+ export declare function lookupLocal(hash: PatternHash, opts?: {
117
+ repoDir?: string;
118
+ secret?: string;
119
+ }): PatternMatchSummary;
120
+ /**
121
+ * Lookup against the public hive (cosmic.mneme-ai.space/hive). Stub for
122
+ * v2.15; falls back to local if endpoint unreachable. Same signature so
123
+ * upgrading later is transparent.
124
+ */
125
+ export declare function lookupPublic(hash: PatternHash, opts?: {
126
+ url?: string;
127
+ fetchOverride?: typeof fetch;
128
+ repoDir?: string;
129
+ secret?: string;
130
+ }): Promise<PatternMatchSummary>;
131
+ /**
132
+ * Publish a local observation to the public hive. Best-effort; failure
133
+ * leaves the observation in local storage only. Opt-in: caller decides
134
+ * whether to share.
135
+ */
136
+ export declare function publishObservation(o: PatternObservation, opts?: {
137
+ url?: string;
138
+ fetchOverride?: typeof fetch;
139
+ }): Promise<{
140
+ ok: boolean;
141
+ error?: string;
142
+ }>;
143
+ export declare function listLocal(opts?: {
144
+ repoDir?: string;
145
+ }): PatternObservation[];
146
+ /** One-line pulse summary. */
147
+ export declare function formatHiveLine(opts?: {
148
+ repoDir?: string;
149
+ }): string;
150
+ export {};
151
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hive/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,246 @@
1
+ /**
2
+ * v2.15.0 — MNEME HIVE
3
+ *
4
+ * "Pattern share without source share. Hash a problem, hash its
5
+ * solution, hash its outcome. Other Mneme users hash the same
6
+ * problem and look up the canonical fix. Your repo never leaves
7
+ * your machine; only one-way hashes do."
8
+ *
9
+ * The killer distribution wedge: every Mneme user benefits from every
10
+ * OTHER Mneme user's solved problems. Network effect from day 1.
11
+ *
12
+ * Privacy model:
13
+ * - Patterns are hashed (sha256 of canonicalized AST-ish shape).
14
+ * - Solutions are summarised (delta size, file paths anonymised, kind
15
+ * of change) — never the source code itself.
16
+ * - Outcomes are graded (good / bad / regression) by the user's own
17
+ * test suite + bounty receipts.
18
+ *
19
+ * Wire model:
20
+ * - Local hive (`packages/core/src/hive/local.ts`) stores per-machine
21
+ * pattern observations. Always works offline.
22
+ * - Public hive endpoint (`HIVE_DEFAULT_URL`) at cosmic.mneme-ai.space
23
+ * /hive — opt-in publish + pull. v2.15 ships the CLIENT primitive;
24
+ * the server endpoint is a Phase 2 stub (will be added when N>1
25
+ * users have opted in).
26
+ *
27
+ * Tamper-evidence: every hash + observation is HMAC-signed. Receivers
28
+ * verify before counting toward the leaderboard.
29
+ */
30
+ import { createHmac, createHash, randomBytes } from "node:crypto";
31
+ import { readFileSync, existsSync, mkdirSync, appendFileSync } from "node:fs";
32
+ import { join, resolve, isAbsolute } from "node:path";
33
+ const PROTOCOL_VERSION = 1;
34
+ export const HIVE_DEFAULT_URL = "https://cosmic.mneme-ai.space/hive";
35
+ function canon(v) {
36
+ if (v === null || typeof v !== "object")
37
+ return JSON.stringify(v);
38
+ if (Array.isArray(v))
39
+ return "[" + v.map(canon).join(",") + "]";
40
+ const keys = Object.keys(v).sort();
41
+ return "{" + keys.map((k) => JSON.stringify(k) + ":" + canon(v[k])).join(",") + "}";
42
+ }
43
+ function defaultSecret() {
44
+ return process.env["MNEME_HIVE_SECRET"] || `mneme-hive-public-v${PROTOCOL_VERSION}`;
45
+ }
46
+ function hivePath(repoDir) {
47
+ const root = repoDir ? (isAbsolute(repoDir) ? repoDir : resolve(repoDir)) : process.cwd();
48
+ const dir = join(root, ".mneme", "hive");
49
+ if (!existsSync(dir))
50
+ mkdirSync(dir, { recursive: true });
51
+ return join(dir, "observations.jsonl");
52
+ }
53
+ function readAll(path) {
54
+ if (!existsSync(path))
55
+ return [];
56
+ const lines = readFileSync(path, "utf8").split(/\r?\n/).filter((l) => l.trim().length > 0);
57
+ const out = [];
58
+ for (const l of lines) {
59
+ try {
60
+ out.push(JSON.parse(l));
61
+ }
62
+ catch { }
63
+ }
64
+ return out;
65
+ }
66
+ /**
67
+ * Hash a problem into a stable fingerprint. Pure function over text;
68
+ * normalises whitespace + identifiers so semantically-equivalent
69
+ * problems hash to the same value across users.
70
+ *
71
+ * The hash is over a canonical AST-ish shape:
72
+ * - lowercase
73
+ * - identifiers replaced with $1, $2, ... in order of first occurrence
74
+ * - whitespace collapsed
75
+ * - numeric literals replaced with N
76
+ * - string literals replaced with S
77
+ */
78
+ export function hashPattern(input) {
79
+ let normalised = input.problemText.toLowerCase();
80
+ // Replace string literals
81
+ normalised = normalised.replace(/"[^"]*"|'[^']*'/g, "S");
82
+ // Replace numbers — including digits glued to a unit suffix (4523ms,
83
+ // 200kb, 99.9%). Negative lookbehind avoids touching identifiers that
84
+ // start with a letter and contain digits (var123 stays intact).
85
+ normalised = normalised.replace(/(?<![a-zA-Z_])\d+(?:\.\d+)?/g, "N");
86
+ // Collapse identifiers — heuristic: any 2+ char alphanumeric token
87
+ // becomes $N where N is the position of first occurrence.
88
+ const idents = new Map();
89
+ let counter = 1;
90
+ normalised = normalised.replace(/\b[a-z_][a-z0-9_]+\b/gi, (token) => {
91
+ if (KEYWORDS.has(token))
92
+ return token;
93
+ let slot = idents.get(token);
94
+ if (!slot) {
95
+ slot = "$" + counter++;
96
+ idents.set(token, slot);
97
+ }
98
+ return slot;
99
+ });
100
+ // Collapse whitespace
101
+ normalised = normalised.replace(/\s+/g, " ").trim();
102
+ const hash = createHash("sha256").update(normalised).digest("hex");
103
+ const contextHash = createHash("sha256")
104
+ .update(canon({ stack: input.stack ?? "", framework: input.framework ?? "", kind: input.kind }))
105
+ .digest("hex");
106
+ return {
107
+ v: PROTOCOL_VERSION,
108
+ hash,
109
+ contextHash,
110
+ kind: input.kind,
111
+ ...(input.stack ? { stack: input.stack } : {}),
112
+ ...(input.framework ? { framework: input.framework } : {}),
113
+ };
114
+ }
115
+ const KEYWORDS = new Set([
116
+ "true", "false", "null", "undefined", "void", "return", "if", "else",
117
+ "for", "while", "do", "break", "continue", "switch", "case", "default",
118
+ "try", "catch", "finally", "throw", "new", "this", "super", "class",
119
+ "function", "const", "let", "var", "async", "await", "yield",
120
+ "import", "export", "from", "as", "type", "interface", "enum",
121
+ "public", "private", "protected", "static", "abstract", "extends", "implements",
122
+ "def", "lambda", "pass", "raise", "with", "and", "or", "not", "in", "is",
123
+ "fn", "mut", "pub", "use", "mod", "impl", "trait", "where", "match",
124
+ "package", "func", "struct", "go", "select", "chan", "defer",
125
+ "begin", "end", "module", "require",
126
+ ]);
127
+ export function recordObservation(input) {
128
+ const path = hivePath(input.repoDir);
129
+ const noSig = {
130
+ v: PROTOCOL_VERSION,
131
+ id: "h-" + randomBytes(6).toString("hex"),
132
+ ts: new Date().toISOString(),
133
+ hash: input.hash,
134
+ solution: input.solution,
135
+ outcome: input.outcome,
136
+ };
137
+ const sig = createHmac("sha256", input.secret ?? defaultSecret()).update(canon(noSig)).digest("hex");
138
+ const entry = { ...noSig, sig };
139
+ appendFileSync(path, JSON.stringify(entry) + "\n");
140
+ return entry;
141
+ }
142
+ export function verifyObservation(o, secret) {
143
+ const { sig: claimed, ...body } = o;
144
+ const expected = createHmac("sha256", secret ?? defaultSecret()).update(canon(body)).digest("hex");
145
+ return expected === claimed;
146
+ }
147
+ /**
148
+ * Look up a pattern in the LOCAL hive. Returns the best-known solution
149
+ * if any observations match. Pure function over local storage.
150
+ */
151
+ export function lookupLocal(hash, opts = {}) {
152
+ const path = hivePath(opts.repoDir);
153
+ const all = readAll(path);
154
+ return summarise(hash.hash, all, opts.secret);
155
+ }
156
+ function summarise(hashHex, all, secret) {
157
+ const matching = all.filter((o) => o.hash.hash === hashHex);
158
+ const byOutcome = { good: 0, bad: 0, regression: 0, unknown: 0 };
159
+ const bySolutionKind = {};
160
+ for (const o of matching) {
161
+ byOutcome[o.outcome]++;
162
+ bySolutionKind[o.solution.kind] = (bySolutionKind[o.solution.kind] ?? 0) + 1;
163
+ }
164
+ const groups = new Map();
165
+ for (const o of matching) {
166
+ const key = o.solution.kind + "||" + (o.solution.label ?? "");
167
+ const g = groups.get(key) ?? { kind: o.solution.kind, ...(o.solution.label ? { label: o.solution.label } : {}), good: 0, total: 0 };
168
+ g.total++;
169
+ if (o.outcome === "good")
170
+ g.good++;
171
+ groups.set(key, g);
172
+ }
173
+ let best = null;
174
+ let bestScore = 0;
175
+ for (const g of groups.values()) {
176
+ if (g.total === 0)
177
+ continue;
178
+ const score = Math.pow(g.good, 1.2) / g.total;
179
+ if (score > bestScore) {
180
+ bestScore = score;
181
+ best = { kind: g.kind, ...(g.label ? { label: g.label } : {}), confidence: g.good / g.total, samplesGood: g.good, samplesTotal: g.total };
182
+ }
183
+ }
184
+ const signedAt = new Date().toISOString();
185
+ const body = { hash: hashHex, totalObservations: matching.length, byOutcome, bySolutionKind, bestSolution: best, signedAt };
186
+ const sig = createHmac("sha256", secret ?? defaultSecret()).update(canon(body)).digest("hex");
187
+ return { ...body, sig };
188
+ }
189
+ /**
190
+ * Lookup against the public hive (cosmic.mneme-ai.space/hive). Stub for
191
+ * v2.15; falls back to local if endpoint unreachable. Same signature so
192
+ * upgrading later is transparent.
193
+ */
194
+ export async function lookupPublic(hash, opts = {}) {
195
+ const url = (opts.url ?? HIVE_DEFAULT_URL).replace(/\/+$/, "") + "/lookup/" + encodeURIComponent(hash.hash);
196
+ const fetchFn = opts.fetchOverride ?? globalThis.fetch;
197
+ if (typeof fetchFn !== "function")
198
+ return lookupLocal(hash, opts);
199
+ try {
200
+ const r = await fetchFn(url);
201
+ if (!r.ok)
202
+ return lookupLocal(hash, opts);
203
+ const j = await r.json();
204
+ return j;
205
+ }
206
+ catch {
207
+ // Endpoint not yet live — fall back to local. Once cosmic adds the
208
+ // /hive route, this transparently picks it up.
209
+ return lookupLocal(hash, opts);
210
+ }
211
+ }
212
+ /**
213
+ * Publish a local observation to the public hive. Best-effort; failure
214
+ * leaves the observation in local storage only. Opt-in: caller decides
215
+ * whether to share.
216
+ */
217
+ export async function publishObservation(o, opts = {}) {
218
+ const url = (opts.url ?? HIVE_DEFAULT_URL).replace(/\/+$/, "") + "/publish";
219
+ const fetchFn = opts.fetchOverride ?? globalThis.fetch;
220
+ if (typeof fetchFn !== "function")
221
+ return { ok: false, error: "no fetch" };
222
+ try {
223
+ const r = await fetchFn(url, {
224
+ method: "POST",
225
+ headers: { "content-type": "application/json" },
226
+ body: JSON.stringify(o),
227
+ });
228
+ if (!r.ok)
229
+ return { ok: false, error: `HTTP ${r.status}` };
230
+ return { ok: true };
231
+ }
232
+ catch (e) {
233
+ return { ok: false, error: e.message.slice(0, 200) };
234
+ }
235
+ }
236
+ export function listLocal(opts = {}) {
237
+ return readAll(hivePath(opts.repoDir));
238
+ }
239
+ /** One-line pulse summary. */
240
+ export function formatHiveLine(opts = {}) {
241
+ const all = readAll(hivePath(opts.repoDir));
242
+ const goods = all.filter((o) => o.outcome === "good").length;
243
+ const distinctHashes = new Set(all.map((o) => o.hash.hash)).size;
244
+ return `HIVE · ${all.length} observations · ${goods} good · ${distinctHashes} distinct patterns`;
245
+ }
246
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hive/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,YAAY,EAAiB,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEtD,MAAM,gBAAgB,GAAG,CAAU,CAAC;AACpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,oCAAoC,CAAC;AA+DrE,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,mBAAmB,CAAC,IAAI,sBAAsB,gBAAgB,EAAE,CAAC;AACtF,CAAC;AAED,SAAS,QAAQ,CAAC,OAAgB;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1F,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3F,MAAM,GAAG,GAAyB,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QAAC,IAAI,CAAC;YAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IAAC,CAAC;IACpE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,KAK3B;IACC,IAAI,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;IACjD,0BAA0B;IAC1B,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;IACzD,qEAAqE;IACrE,sEAAsE;IACtE,gEAAgE;IAChE,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;IACrE,mEAAmE;IACnE,0DAA0D;IAC1D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC,KAAK,EAAE,EAAE;QAClE,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACtC,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,IAAI,GAAG,GAAG,GAAG,OAAO,EAAE,CAAC;YAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,sBAAsB;IACtB,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAEpD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC;SACrC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;SAC/F,MAAM,CAAC,KAAK,CAAC,CAAC;IAEjB,OAAO;QACL,CAAC,EAAE,gBAAgB;QACnB,IAAI;QACJ,WAAW;QACX,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3D,CAAC;AACJ,CAAC;AAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;IACvB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM;IACpE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS;IACtE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IACnE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAC5D,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAC7D,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY;IAC/E,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI;IACxE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IACnE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO;IAC5D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS;CACpC,CAAC,CAAC;AAUH,MAAM,UAAU,iBAAiB,CAAC,KAA6B;IAC7D,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,KAAK,GAAoC;QAC7C,CAAC,EAAE,gBAAgB;QACnB,EAAE,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACzC,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;IACF,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrG,MAAM,KAAK,GAAuB,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC;IACpD,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAAqB,EAAE,MAAe;IACtE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,CAAyC,CAAC;IAC5E,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnG,OAAO,QAAQ,KAAK,OAAO,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAiB,EAAE,OAA8C,EAAE;IAC7F,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,SAAS,CAAC,OAAe,EAAE,GAAyB,EAAE,MAAe;IAC5E,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IAC5D,MAAM,SAAS,GAA4B,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC1F,MAAM,cAAc,GAA2B,EAAE,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/E,CAAC;IAID,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACpI,CAAC,CAAC,KAAK,EAAE,CAAC;QACV,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM;YAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,IAAI,GAAwC,IAAI,CAAC;IACrD,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC;YAAE,SAAS;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QAC9C,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;YACtB,SAAS,GAAG,KAAK,CAAC;YAClB,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAC5I,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5H,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9F,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAiB,EAAE,OAKlD,EAAE;IACJ,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5G,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,IAAI,UAAU,CAAC,KAAK,CAAC;IACvD,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClE,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAyB,CAAC;QAChD,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;QACnE,+CAA+C;QAC/C,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,CAAqB,EAAE,OAG5D,EAAE;IACJ,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC;IAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,IAAI,UAAU,CAAC,KAAK,CAAC;IACvD,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC3E,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SACxB,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QAC3D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAA6B,EAAE;IACvD,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,cAAc,CAAC,OAA6B,EAAE;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAC7D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,OAAO,UAAU,GAAG,CAAC,MAAM,mBAAmB,KAAK,WAAW,cAAc,oBAAoB,CAAC;AACnG,CAAC"}
package/dist/index.d.ts CHANGED
@@ -212,4 +212,8 @@ export * as bounty from "./bounty/index.js";
212
212
  export * as replica from "./replica/index.js";
213
213
  export * as killSwitch from "./kill_switch/index.js";
214
214
  export * as infraBrain from "./infra_brain/index.js";
215
+ export * as genesis from "./genesis/index.js";
216
+ export * as hive from "./hive/index.js";
217
+ export * as vibe from "./vibe/index.js";
218
+ export * as arbitrage from "./arbitrage/index.js";
215
219
  //# sourceMappingURL=index.d.ts.map