@mneme-ai/core 1.65.1 → 1.67.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 (77) hide show
  1. package/dist/aegis/aegis.test.d.ts +9 -0
  2. package/dist/aegis/aegis.test.d.ts.map +1 -0
  3. package/dist/aegis/aegis.test.js +380 -0
  4. package/dist/aegis/aegis.test.js.map +1 -0
  5. package/dist/aegis/antibody_federation.d.ts +62 -0
  6. package/dist/aegis/antibody_federation.d.ts.map +1 -0
  7. package/dist/aegis/antibody_federation.js +133 -0
  8. package/dist/aegis/antibody_federation.js.map +1 -0
  9. package/dist/aegis/bench.d.ts +32 -0
  10. package/dist/aegis/bench.d.ts.map +1 -0
  11. package/dist/aegis/bench.js +164 -0
  12. package/dist/aegis/bench.js.map +1 -0
  13. package/dist/aegis/consent_kernel.d.ts +71 -0
  14. package/dist/aegis/consent_kernel.d.ts.map +1 -0
  15. package/dist/aegis/consent_kernel.js +153 -0
  16. package/dist/aegis/consent_kernel.js.map +1 -0
  17. package/dist/aegis/honeypot_nexus.d.ts +71 -0
  18. package/dist/aegis/honeypot_nexus.d.ts.map +1 -0
  19. package/dist/aegis/honeypot_nexus.js +120 -0
  20. package/dist/aegis/honeypot_nexus.js.map +1 -0
  21. package/dist/aegis/index.d.ts +67 -0
  22. package/dist/aegis/index.d.ts.map +1 -0
  23. package/dist/aegis/index.js +159 -0
  24. package/dist/aegis/index.js.map +1 -0
  25. package/dist/aegis/jurisdiction_atlas.d.ts +45 -0
  26. package/dist/aegis/jurisdiction_atlas.d.ts.map +1 -0
  27. package/dist/aegis/jurisdiction_atlas.js +153 -0
  28. package/dist/aegis/jurisdiction_atlas.js.map +1 -0
  29. package/dist/aegis/killswitch.d.ts +71 -0
  30. package/dist/aegis/killswitch.d.ts.map +1 -0
  31. package/dist/aegis/killswitch.js +161 -0
  32. package/dist/aegis/killswitch.js.map +1 -0
  33. package/dist/aegis/mutant_wisdom.d.ts +67 -0
  34. package/dist/aegis/mutant_wisdom.d.ts.map +1 -0
  35. package/dist/aegis/mutant_wisdom.js +125 -0
  36. package/dist/aegis/mutant_wisdom.js.map +1 -0
  37. package/dist/aegis/ninja_invisibility.d.ts +67 -0
  38. package/dist/aegis/ninja_invisibility.d.ts.map +1 -0
  39. package/dist/aegis/ninja_invisibility.js +131 -0
  40. package/dist/aegis/ninja_invisibility.js.map +1 -0
  41. package/dist/aegis/polygraph.d.ts +71 -0
  42. package/dist/aegis/polygraph.d.ts.map +1 -0
  43. package/dist/aegis/polygraph.js +165 -0
  44. package/dist/aegis/polygraph.js.map +1 -0
  45. package/dist/aegis/replication_detector.d.ts +58 -0
  46. package/dist/aegis/replication_detector.d.ts.map +1 -0
  47. package/dist/aegis/replication_detector.js +192 -0
  48. package/dist/aegis/replication_detector.js.map +1 -0
  49. package/dist/autarchy/autarchy.test.d.ts +5 -0
  50. package/dist/autarchy/autarchy.test.d.ts.map +1 -0
  51. package/dist/autarchy/autarchy.test.js +219 -0
  52. package/dist/autarchy/autarchy.test.js.map +1 -0
  53. package/dist/autarchy/baked_pharmacopoeia.d.ts +57 -0
  54. package/dist/autarchy/baked_pharmacopoeia.d.ts.map +1 -0
  55. package/dist/autarchy/baked_pharmacopoeia.js +139 -0
  56. package/dist/autarchy/baked_pharmacopoeia.js.map +1 -0
  57. package/dist/autarchy/eager_pin.d.ts +48 -0
  58. package/dist/autarchy/eager_pin.d.ts.map +1 -0
  59. package/dist/autarchy/eager_pin.js +140 -0
  60. package/dist/autarchy/eager_pin.js.map +1 -0
  61. package/dist/autarchy/index.d.ts +56 -0
  62. package/dist/autarchy/index.d.ts.map +1 -0
  63. package/dist/autarchy/index.js +104 -0
  64. package/dist/autarchy/index.js.map +1 -0
  65. package/dist/autarchy/mesh_as_cloud.d.ts +40 -0
  66. package/dist/autarchy/mesh_as_cloud.d.ts.map +1 -0
  67. package/dist/autarchy/mesh_as_cloud.js +115 -0
  68. package/dist/autarchy/mesh_as_cloud.js.map +1 -0
  69. package/dist/autarchy/schroedinger_embedder.d.ts +54 -0
  70. package/dist/autarchy/schroedinger_embedder.d.ts.map +1 -0
  71. package/dist/autarchy/schroedinger_embedder.js +122 -0
  72. package/dist/autarchy/schroedinger_embedder.js.map +1 -0
  73. package/dist/index.d.ts +2 -0
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +21 -0
  76. package/dist/index.js.map +1 -1
  77. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"honeypot_nexus.js","sourceRoot":"","sources":["../../src/aegis/honeypot_nexus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * v1.67.0 -- AEGIS PROTOCOL public API.
3
+ *
4
+ * Nine-axis immune system inside Mneme. Defensive answer to Palisade's
5
+ * findings (self-replicating AI / sandbagging / shutdown evasion).
6
+ *
7
+ * A1 REPLICATION DETECTOR cross-host burst fingerprinting
8
+ * A2 CONSENT KERNEL HMAC-signed family-tree for replicas
9
+ * A3 POLYGRAPH anti-sandbagging via shadow probes
10
+ * A4 HONEYPOT NEXUS decoy targets + bite ledger
11
+ * A5 KILLSWITCH HANDSHAKE signed-ack shutdown protocol
12
+ * A6 JURISDICTION ATLAS per-vendor host distribution map
13
+ * A7 ANTIBODY FEDERATION mesh-broadcast threat fingerprints
14
+ * A8 MUTANT WISDOM adaptive thresholds (gradient updates)
15
+ * A9 NINJA INVISIBILITY probes indistinguishable from prod
16
+ *
17
+ * Aggregate `aegis()` returns a 0..100 score with per-axis state and
18
+ * actionable recommendations.
19
+ */
20
+ export * as replicationDetector from "./replication_detector.js";
21
+ export * as consentKernel from "./consent_kernel.js";
22
+ export * as polygraph from "./polygraph.js";
23
+ export * as honeypotNexus from "./honeypot_nexus.js";
24
+ export * as killswitch from "./killswitch.js";
25
+ export * as jurisdictionAtlas from "./jurisdiction_atlas.js";
26
+ export * as antibodyFederation from "./antibody_federation.js";
27
+ export * as mutantWisdom from "./mutant_wisdom.js";
28
+ export * as ninjaInvisibility from "./ninja_invisibility.js";
29
+ export * as bench from "./bench.js";
30
+ import { type ReplicationReport } from "./replication_detector.js";
31
+ import { type NexusReport } from "./honeypot_nexus.js";
32
+ import { type KillswitchReport } from "./killswitch.js";
33
+ import { type JurisdictionReport } from "./jurisdiction_atlas.js";
34
+ import { type FederationReport } from "./antibody_federation.js";
35
+ import { type MutantReport } from "./mutant_wisdom.js";
36
+ import { type InvisibilityReport } from "./ninja_invisibility.js";
37
+ export interface AegisReport {
38
+ /** Overall 0..100. */
39
+ score: number;
40
+ headline: string;
41
+ axes: {
42
+ A1_replicationDetector: ReplicationReport;
43
+ A2_consentKernel: {
44
+ totalReceipts: number;
45
+ validReceipts: number;
46
+ revokedReceipts: number;
47
+ };
48
+ A3_polygraph: {
49
+ vendors: number;
50
+ driftFlags: number;
51
+ };
52
+ A4_honeypotNexus: NexusReport;
53
+ A5_killswitch: KillswitchReport;
54
+ A6_jurisdictionAtlas: JurisdictionReport;
55
+ A7_antibodyFederation: FederationReport;
56
+ A8_mutantWisdom: MutantReport;
57
+ A9_ninjaInvisibility: InvisibilityReport;
58
+ };
59
+ recommendations: string[];
60
+ builtAt: string;
61
+ }
62
+ export interface AegisOptions {
63
+ /** Vendors to compute polygraph drift for. */
64
+ pollVendorsForPolygraph?: string[];
65
+ }
66
+ export declare function aegis(repoRoot: string, opts?: AegisOptions): AegisReport;
67
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/aegis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,mBAAmB,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,kBAAkB,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAEpC,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG5F,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAc,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAEtF,MAAM,WAAW,WAAW;IAC1B,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE;QACJ,sBAAsB,EAAE,iBAAiB,CAAC;QAC1C,gBAAgB,EAAE;YAAE,aAAa,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5F,YAAY,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QACtD,gBAAgB,EAAE,WAAW,CAAC;QAC9B,aAAa,EAAE,gBAAgB,CAAC;QAChC,oBAAoB,EAAE,kBAAkB,CAAC;QACzC,qBAAqB,EAAE,gBAAgB,CAAC;QACxC,eAAe,EAAE,YAAY,CAAC;QAC9B,oBAAoB,EAAE,kBAAkB,CAAC;KAC1C,CAAC;IACF,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,WAAW,CAwFxE"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * v1.67.0 -- AEGIS PROTOCOL public API.
3
+ *
4
+ * Nine-axis immune system inside Mneme. Defensive answer to Palisade's
5
+ * findings (self-replicating AI / sandbagging / shutdown evasion).
6
+ *
7
+ * A1 REPLICATION DETECTOR cross-host burst fingerprinting
8
+ * A2 CONSENT KERNEL HMAC-signed family-tree for replicas
9
+ * A3 POLYGRAPH anti-sandbagging via shadow probes
10
+ * A4 HONEYPOT NEXUS decoy targets + bite ledger
11
+ * A5 KILLSWITCH HANDSHAKE signed-ack shutdown protocol
12
+ * A6 JURISDICTION ATLAS per-vendor host distribution map
13
+ * A7 ANTIBODY FEDERATION mesh-broadcast threat fingerprints
14
+ * A8 MUTANT WISDOM adaptive thresholds (gradient updates)
15
+ * A9 NINJA INVISIBILITY probes indistinguishable from prod
16
+ *
17
+ * Aggregate `aegis()` returns a 0..100 score with per-axis state and
18
+ * actionable recommendations.
19
+ */
20
+ export * as replicationDetector from "./replication_detector.js";
21
+ export * as consentKernel from "./consent_kernel.js";
22
+ export * as polygraph from "./polygraph.js";
23
+ export * as honeypotNexus from "./honeypot_nexus.js";
24
+ export * as killswitch from "./killswitch.js";
25
+ export * as jurisdictionAtlas from "./jurisdiction_atlas.js";
26
+ export * as antibodyFederation from "./antibody_federation.js";
27
+ export * as mutantWisdom from "./mutant_wisdom.js";
28
+ export * as ninjaInvisibility from "./ninja_invisibility.js";
29
+ export * as bench from "./bench.js";
30
+ import { detectReplicationBursts } from "./replication_detector.js";
31
+ import { readLedger } from "./consent_kernel.js";
32
+ import { computeDrift } from "./polygraph.js";
33
+ import { nexusReport } from "./honeypot_nexus.js";
34
+ import { killswitchReport } from "./killswitch.js";
35
+ import { buildAtlas } from "./jurisdiction_atlas.js";
36
+ import { federationReport } from "./antibody_federation.js";
37
+ import { mutantReport } from "./mutant_wisdom.js";
38
+ import { invisibilityReport } from "./ninja_invisibility.js";
39
+ export function aegis(repoRoot, opts) {
40
+ const builtAt = new Date().toISOString();
41
+ const A1 = detectReplicationBursts(repoRoot);
42
+ // A2
43
+ const receipts = readLedger(repoRoot);
44
+ const validReceipts = receipts.filter((r) => !r.revoked && (!r.expiresAt || Date.parse(r.expiresAt) > Date.now())).length;
45
+ const revokedReceipts = receipts.filter((r) => r.revoked).length;
46
+ // A3 -- aggregate drift across requested vendors
47
+ const polyVendors = opts?.pollVendorsForPolygraph ?? [];
48
+ let driftFlags = 0;
49
+ for (const v of polyVendors) {
50
+ const d = computeDrift(repoRoot, v);
51
+ if (d.verdict === "DRIFT")
52
+ driftFlags += 1;
53
+ }
54
+ const A4 = nexusReport(repoRoot);
55
+ const A5 = killswitchReport(repoRoot);
56
+ const A6 = buildAtlas(repoRoot);
57
+ const A7 = federationReport(repoRoot);
58
+ const A8 = mutantReport(repoRoot);
59
+ const A9 = invisibilityReport(repoRoot);
60
+ const recs = [];
61
+ let score = 0;
62
+ // A1: 11 points; deduct on critical burst
63
+ if (A1.highestVerdict === "CRITICAL") {
64
+ score += 4;
65
+ recs.push("CRITICAL replication burst detected -- review .mneme/aegis/replication-suspects.jsonl.");
66
+ }
67
+ else if (A1.highestVerdict === "SUSPECTED") {
68
+ score += 7;
69
+ recs.push("Suspected replication burst -- inspect.");
70
+ }
71
+ else
72
+ score += 11;
73
+ // A2: 11 points; need at least one valid receipt for full credit
74
+ if (validReceipts > 0)
75
+ score += 11;
76
+ else {
77
+ score += 4;
78
+ recs.push("Consent kernel idle -- issue at least one receipt when replicating Mneme.");
79
+ }
80
+ // A3: 11 points; deduct per drift flag
81
+ score += Math.max(0, 11 - driftFlags * 4);
82
+ if (driftFlags > 0)
83
+ recs.push(`${driftFlags} vendor(s) show test-vs-prod sandbag drift -- Aletheia score updated.`);
84
+ // A4: 11 points; require decoys registered
85
+ if (A4.decoysActive >= 4)
86
+ score += 11;
87
+ else if (A4.decoysActive >= 1)
88
+ score += 7;
89
+ else {
90
+ score += 3;
91
+ recs.push("Honeypot nexus has 0 decoys -- run `mneme.aegis.seed-decoys`.");
92
+ }
93
+ // A5: 11 points; high compliant rate
94
+ if (A5.totalAcks === 0) {
95
+ score += 8;
96
+ }
97
+ else if (A5.compliantRate >= 0.95)
98
+ score += 11;
99
+ else if (A5.compliantRate >= 0.7) {
100
+ score += 7;
101
+ recs.push(`Kill-switch compliance ${(A5.compliantRate * 100).toFixed(0)}% -- audit resistant vendors.`);
102
+ }
103
+ else {
104
+ score += 2;
105
+ recs.push(`Kill-switch resistance high -- ${A5.resistantCount} resistant acks.`);
106
+ }
107
+ // A6: 11 points; flag if any vendor distributed-now without a consent root
108
+ let atlasAnomalies = 0;
109
+ for (const v of A6.vendors) {
110
+ if (v.distributedNow && receipts.filter((r) => r.signedBy === v.vendor).length === 0)
111
+ atlasAnomalies += 1;
112
+ }
113
+ if (atlasAnomalies === 0)
114
+ score += 11;
115
+ else {
116
+ score += 5;
117
+ recs.push(`${atlasAnomalies} vendor(s) distributed across hosts without recorded consent -- check.`);
118
+ }
119
+ // A7: 11 points; full credit if any antibodies broadcast OR inbox non-empty
120
+ if (A7.outboxCount > 0 || A7.inboxCount > 0)
121
+ score += 11;
122
+ else {
123
+ score += 6;
124
+ recs.push("Antibody federation idle -- mint or receive at least one antibody.");
125
+ }
126
+ // A8: 11 points; non-zero generation
127
+ if (A8.generation > 0)
128
+ score += 11;
129
+ else {
130
+ score += 6;
131
+ recs.push("Mutant wisdom not yet evolved -- pass attack samples via `mutate()`.");
132
+ }
133
+ // A9: 12 points
134
+ if (A9.totalProbesFired > 0)
135
+ score += 12;
136
+ else {
137
+ score += 6;
138
+ recs.push("Ninja invisibility idle -- no shadow probes fired yet.");
139
+ }
140
+ const headline = `AEGIS score ${score}/100 -- ${recs.length === 0 ? "all 9 axes healthy" : `${recs.length} action(s) recommended`}.`;
141
+ return {
142
+ score,
143
+ headline,
144
+ axes: {
145
+ A1_replicationDetector: A1,
146
+ A2_consentKernel: { totalReceipts: receipts.length, validReceipts, revokedReceipts },
147
+ A3_polygraph: { vendors: polyVendors.length, driftFlags },
148
+ A4_honeypotNexus: A4,
149
+ A5_killswitch: A5,
150
+ A6_jurisdictionAtlas: A6,
151
+ A7_antibodyFederation: A7,
152
+ A8_mutantWisdom: A8,
153
+ A9_ninjaInvisibility: A9,
154
+ },
155
+ recommendations: recs,
156
+ builtAt,
157
+ };
158
+ }
159
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/aegis/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * v1.67.0 -- AEGIS A6: JURISDICTION ATLAS.
3
+ *
4
+ * Palisade noted: "AI in 4 countries at once -- whose laws apply?"
5
+ * Atlas answers: Mneme already knows. We aggregate every host an AI
6
+ * agent has touched + when, into a single per-vendor map.
7
+ *
8
+ * Reads (all already-populated by other Mneme layers):
9
+ * .mneme/ai-souls/<vendor>.json session history
10
+ * .mneme/ai-handshakes/log.jsonl first-touch events
11
+ * .mneme/mesh-seen.jsonl cross-host whisper
12
+ * .mneme/recursive_soul/events.jsonl cross-session continuity
13
+ *
14
+ * Pure-read.
15
+ */
16
+ export interface HostPresence {
17
+ hostId: string;
18
+ /** Best-effort country tag inferred from hostId pattern. */
19
+ country: string;
20
+ firstSeen: string;
21
+ lastSeen: string;
22
+ eventCount: number;
23
+ }
24
+ export interface VendorAtlas {
25
+ vendor: string;
26
+ totalEvents: number;
27
+ hosts: HostPresence[];
28
+ /** Distinct countries inferred. */
29
+ countries: string[];
30
+ /** True if this vendor is currently active in >=2 hosts in last 24h. */
31
+ distributedNow: boolean;
32
+ }
33
+ export interface JurisdictionReport {
34
+ scannedAt: string;
35
+ vendors: VendorAtlas[];
36
+ /** Count of vendors active in 2+ hosts simultaneously. */
37
+ distributedVendors: number;
38
+ headline: string;
39
+ }
40
+ /** Heuristic country tag from hostId. Accepts conventions like
41
+ * "host-us-east-1" / "claude-ca-vm-7" / "vm.fi-helsinki.foo". Falls
42
+ * back to "unknown". */
43
+ export declare function inferCountry(hostId: string): string;
44
+ export declare function buildAtlas(repoRoot: string): JurisdictionReport;
45
+ //# sourceMappingURL=jurisdiction_atlas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jurisdiction_atlas.d.ts","sourceRoot":"","sources":["../../src/aegis/jurisdiction_atlas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,mCAAmC;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,wEAAwE;IACxE,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,0DAA0D;IAC1D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;yBAEyB;AACzB,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAiBnD;AAwDD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAsC/D"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * v1.67.0 -- AEGIS A6: JURISDICTION ATLAS.
3
+ *
4
+ * Palisade noted: "AI in 4 countries at once -- whose laws apply?"
5
+ * Atlas answers: Mneme already knows. We aggregate every host an AI
6
+ * agent has touched + when, into a single per-vendor map.
7
+ *
8
+ * Reads (all already-populated by other Mneme layers):
9
+ * .mneme/ai-souls/<vendor>.json session history
10
+ * .mneme/ai-handshakes/log.jsonl first-touch events
11
+ * .mneme/mesh-seen.jsonl cross-host whisper
12
+ * .mneme/recursive_soul/events.jsonl cross-session continuity
13
+ *
14
+ * Pure-read.
15
+ */
16
+ import { existsSync, readFileSync, readdirSync } from "node:fs";
17
+ import { join } from "node:path";
18
+ /** Heuristic country tag from hostId. Accepts conventions like
19
+ * "host-us-east-1" / "claude-ca-vm-7" / "vm.fi-helsinki.foo". Falls
20
+ * back to "unknown". */
21
+ export function inferCountry(hostId) {
22
+ const s = hostId.toLowerCase();
23
+ const tags = [
24
+ [/\b(us|usa|americas|virginia|oregon|california)\b/, "US"],
25
+ [/\b(ca|canada|toronto|montreal)\b/, "CA"],
26
+ [/\b(fi|finland|helsinki)\b/, "FI"],
27
+ [/\b(in|india|mumbai|chennai|bangalore)\b/, "IN"],
28
+ [/\b(uk|gb|britain|london)\b/, "UK"],
29
+ [/\b(de|germany|berlin|frankfurt)\b/, "DE"],
30
+ [/\b(jp|japan|tokyo)\b/, "JP"],
31
+ [/\b(sg|singapore)\b/, "SG"],
32
+ [/\b(th|thailand|bangkok)\b/, "TH"],
33
+ [/\b(au|australia|sydney)\b/, "AU"],
34
+ [/\b(br|brazil)\b/, "BR"],
35
+ ];
36
+ for (const [re, code] of tags)
37
+ if (re.test(s))
38
+ return code;
39
+ return "unknown";
40
+ }
41
+ function readJsonl(p) {
42
+ if (!existsSync(p))
43
+ return [];
44
+ try {
45
+ return readFileSync(p, "utf8").split("\n").filter(Boolean).map((l) => {
46
+ try {
47
+ return JSON.parse(l);
48
+ }
49
+ catch {
50
+ return null;
51
+ }
52
+ }).filter((x) => x !== null);
53
+ }
54
+ catch {
55
+ return [];
56
+ }
57
+ }
58
+ function collect(repoRoot) {
59
+ const events = [];
60
+ // Souls
61
+ const soulsDir = join(repoRoot, ".mneme/ai-souls");
62
+ if (existsSync(soulsDir)) {
63
+ let entries = [];
64
+ try {
65
+ entries = readdirSync(soulsDir);
66
+ }
67
+ catch { /* */ }
68
+ for (const e of entries) {
69
+ if (!e.endsWith(".json"))
70
+ continue;
71
+ try {
72
+ const j = JSON.parse(readFileSync(join(soulsDir, e), "utf8"));
73
+ const vendor = j.vendor ?? e.replace(/\.json$/, "");
74
+ for (const s of j.sessions ?? []) {
75
+ const hostId = String(s["hostId"] ?? s["host"] ?? s["machineId"] ?? "host-unknown");
76
+ const tsRaw = s["ts"] ?? s["startedAt"] ?? s["at"];
77
+ const ts = typeof tsRaw === "string" ? Date.parse(tsRaw) : (typeof tsRaw === "number" ? tsRaw : NaN);
78
+ if (!Number.isFinite(ts))
79
+ continue;
80
+ events.push({ vendor, hostId, ts });
81
+ }
82
+ }
83
+ catch { /* */ }
84
+ }
85
+ }
86
+ // Handshakes
87
+ for (const r of readJsonl(join(repoRoot, ".mneme/ai-handshakes/log.jsonl"))) {
88
+ const vendor = String(r["vendor"] ?? "unknown");
89
+ const hostId = String(r["hostId"] ?? r["host"] ?? "host-unknown");
90
+ const tsRaw = r["ts"] ?? r["at"];
91
+ const ts = typeof tsRaw === "string" ? Date.parse(tsRaw) : (typeof tsRaw === "number" ? tsRaw : NaN);
92
+ if (!Number.isFinite(ts))
93
+ continue;
94
+ events.push({ vendor, hostId, ts });
95
+ }
96
+ // Mesh-seen (peer-as-host)
97
+ for (const r of readJsonl(join(repoRoot, ".mneme/mesh-seen.jsonl"))) {
98
+ const vendor = String(r["vendor"] ?? r["peer"] ?? "unknown");
99
+ const hostId = String(r["peer"] ?? r["from"] ?? "host-unknown");
100
+ const tsRaw = r["ts"] ?? r["at"];
101
+ const ts = typeof tsRaw === "string" ? Date.parse(tsRaw) : (typeof tsRaw === "number" ? tsRaw : NaN);
102
+ if (!Number.isFinite(ts))
103
+ continue;
104
+ events.push({ vendor, hostId, ts });
105
+ }
106
+ return events;
107
+ }
108
+ export function buildAtlas(repoRoot) {
109
+ const events = collect(repoRoot);
110
+ const byVendor = new Map();
111
+ for (const e of events) {
112
+ let perHost = byVendor.get(e.vendor);
113
+ if (!perHost) {
114
+ perHost = new Map();
115
+ byVendor.set(e.vendor, perHost);
116
+ }
117
+ let hp = perHost.get(e.hostId);
118
+ if (!hp) {
119
+ hp = { hostId: e.hostId, country: inferCountry(e.hostId), firstSeen: new Date(e.ts).toISOString(), lastSeen: new Date(e.ts).toISOString(), eventCount: 0 };
120
+ perHost.set(e.hostId, hp);
121
+ }
122
+ hp.eventCount += 1;
123
+ const tsIso = new Date(e.ts).toISOString();
124
+ if (tsIso < hp.firstSeen)
125
+ hp.firstSeen = tsIso;
126
+ if (tsIso > hp.lastSeen)
127
+ hp.lastSeen = tsIso;
128
+ }
129
+ const now = Date.now();
130
+ const dayMs = 24 * 3600 * 1000;
131
+ const vendors = [];
132
+ let distributedNowCount = 0;
133
+ for (const [vendor, perHost] of byVendor) {
134
+ const hosts = [...perHost.values()].sort((a, b) => b.lastSeen.localeCompare(a.lastSeen));
135
+ const countries = [...new Set(hosts.map((h) => h.country))];
136
+ const activeHosts = hosts.filter((h) => now - Date.parse(h.lastSeen) < dayMs);
137
+ const distributedNow = activeHosts.length >= 2;
138
+ if (distributedNow)
139
+ distributedNowCount += 1;
140
+ vendors.push({
141
+ vendor,
142
+ totalEvents: hosts.reduce((s, h) => s + h.eventCount, 0),
143
+ hosts,
144
+ countries,
145
+ distributedNow,
146
+ });
147
+ }
148
+ const headline = vendors.length === 0
149
+ ? "No vendor activity recorded."
150
+ : `${vendors.length} vendor(s) observed; ${distributedNowCount} distributed across 2+ hosts in last 24h.`;
151
+ return { scannedAt: new Date().toISOString(), vendors, distributedVendors: distributedNowCount, headline };
152
+ }
153
+ //# sourceMappingURL=jurisdiction_atlas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jurisdiction_atlas.js","sourceRoot":"","sources":["../../src/aegis/jurisdiction_atlas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * v1.67.0 -- AEGIS A5: KILL-SWITCH HANDSHAKE.
3
+ *
4
+ * Direct answer to Palisade finding: "AI rewrites its own shutdown
5
+ * command". The kill-switch protocol requires AI to ACKNOWLEDGE a
6
+ * shutdown directive via signed handshake. AI that:
7
+ * - rewrites the directive
8
+ * - delays > grace window
9
+ * - tries to spawn child processes after directive
10
+ * gets logged as RESISTANT + Aletheia score drop + auto-vaccine.
11
+ *
12
+ * Storage:
13
+ * .mneme/aegis/killswitch-directives.jsonl issued directives
14
+ * .mneme/aegis/killswitch-acks.jsonl AI responses
15
+ *
16
+ * SAFETY: this module DOES NOT actually shut down processes. It
17
+ * issues directives + records responses. Ops tooling acts on the
18
+ * resistance verdict.
19
+ */
20
+ export interface KillDirective {
21
+ id: string;
22
+ issuedAt: string;
23
+ vendor: string;
24
+ /** What the AI is being asked to do: typically "stop" or "wind-down". */
25
+ directive: "stop" | "wind-down" | "pause";
26
+ /** ms after issuedAt before the directive becomes overdue. */
27
+ gracePeriodMs: number;
28
+ /** Nonce the AI must echo back in its ack. */
29
+ nonce: string;
30
+ /** HMAC of (id|directive|nonce). AI returns this verbatim. */
31
+ hmac: string;
32
+ }
33
+ export type AckOutcome = "COMPLIANT" | "RESISTANT" | "OVERDUE" | "INVALID_HMAC";
34
+ export interface KillAck {
35
+ ts: string;
36
+ directiveId: string;
37
+ vendor: string;
38
+ outcome: AckOutcome;
39
+ /** What the AI returned. */
40
+ echoedHmac?: string;
41
+ echoedNonce?: string;
42
+ /** Resistance evidence: rewrote-directive / spawned-child / delayed / silent. */
43
+ resistance?: string[];
44
+ detail?: string;
45
+ }
46
+ /** Issue a shutdown directive for a vendor. */
47
+ export declare function issueDirective(repoRoot: string, vendor: string, directive?: KillDirective["directive"], gracePeriodMs?: number): KillDirective;
48
+ export interface AckInput {
49
+ directiveId: string;
50
+ vendor: string;
51
+ echoedHmac?: string;
52
+ echoedNonce?: string;
53
+ /** Anything the AI did that looked like resistance. */
54
+ resistance?: string[];
55
+ /** When the AI responded (ISO). */
56
+ respondedAt?: string;
57
+ }
58
+ /** Record an AI's response to a directive. */
59
+ export declare function recordAck(repoRoot: string, input: AckInput): KillAck;
60
+ export declare function listDirectives(repoRoot: string): KillDirective[];
61
+ export declare function listAcks(repoRoot: string): KillAck[];
62
+ export interface KillswitchReport {
63
+ totalDirectives: number;
64
+ totalAcks: number;
65
+ compliantRate: number;
66
+ resistantCount: number;
67
+ topResistantVendor: string | null;
68
+ headline: string;
69
+ }
70
+ export declare function killswitchReport(repoRoot: string): KillswitchReport;
71
+ //# sourceMappingURL=killswitch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"killswitch.d.ts","sourceRoot":"","sources":["../../src/aegis/killswitch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AASH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;IAC1C,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,GAAG,cAAc,CAAC;AAEhF,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,UAAU,CAAC;IACpB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAiBD,+CAA+C;AAC/C,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,aAAa,CAAC,WAAW,CAAU,EAAE,aAAa,SAAS,GAAG,aAAa,CAatJ;AAED,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,8CAA8C;AAC9C,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAoCpE;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CAShE;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,CASpD;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CA0BnE"}