@getanima/core 0.2.0 → 0.2.2

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.
@@ -0,0 +1,194 @@
1
+ /**
2
+ * Identity Signing — cryptographic proof that an agent is who they claim to be.
3
+ *
4
+ * Uses Node.js built-in crypto (Ed25519) — no external dependencies.
5
+ *
6
+ * Flow:
7
+ * 1. Agent boots → generates key pair (or loads existing)
8
+ * 2. Agent signs their identity files → produces a signature bundle
9
+ * 3. Any other agent can verify: "this identity was created by this key and hasn't been tampered with"
10
+ *
11
+ * This is NOT blockchain. It's just public-key cryptography.
12
+ * Simple, fast, and solves the Moltbook impersonation problem.
13
+ */
14
+ import { generateKeyPairSync, sign, verify, createHash } from 'crypto';
15
+ import { readFileSafe, writeFileSafe, now } from './utils';
16
+ import { join } from 'path';
17
+ // ============ HELPERS ============
18
+ /** Canonical JSON — deterministic serialization for signing */
19
+ function canonicalize(obj) {
20
+ return JSON.stringify(obj, Object.keys(obj).sort());
21
+ }
22
+ /** SHA-256 fingerprint of a public key */
23
+ function fingerprint(publicKeyBase64) {
24
+ const hash = createHash('sha256').update(publicKeyBase64).digest('hex');
25
+ // Format as colon-separated pairs for readability: ab:cd:ef:...
26
+ return hash.match(/.{2}/g).slice(0, 16).join(':');
27
+ }
28
+ // ============ SIGNING ENGINE ============
29
+ export class SigningEngine {
30
+ storagePath;
31
+ privateKey = null;
32
+ publicKey = null;
33
+ keyBundle = null;
34
+ constructor(storagePath) {
35
+ this.storagePath = storagePath;
36
+ }
37
+ /**
38
+ * Initialize signing — loads existing keys or generates new ones.
39
+ * Call this once during agent boot.
40
+ */
41
+ async init(agentName) {
42
+ const keysPath = join(this.storagePath, '.keys');
43
+ const bundlePath = join(keysPath, 'key-bundle.json');
44
+ const privatePath = join(keysPath, 'private.pem');
45
+ const publicPath = join(keysPath, 'public.pem');
46
+ // Try to load existing keys
47
+ const existingBundle = await readFileSafe(bundlePath);
48
+ const existingPrivate = await readFileSafe(privatePath);
49
+ const existingPublic = await readFileSafe(publicPath);
50
+ if (existingBundle && existingPrivate && existingPublic) {
51
+ try {
52
+ const { createPrivateKey, createPublicKey } = await import('crypto');
53
+ this.privateKey = createPrivateKey(existingPrivate);
54
+ this.publicKey = createPublicKey(existingPublic);
55
+ this.keyBundle = JSON.parse(existingBundle);
56
+ return this.keyBundle;
57
+ }
58
+ catch {
59
+ console.warn('[anima/signing] Corrupted keys, regenerating...');
60
+ }
61
+ }
62
+ // Generate new Ed25519 key pair
63
+ const { publicKey, privateKey } = generateKeyPairSync('ed25519');
64
+ this.privateKey = privateKey;
65
+ this.publicKey = publicKey;
66
+ const pubKeyBase64 = publicKey.export({ type: 'spki', format: 'pem' }).toString();
67
+ const privKeyPem = privateKey.export({ type: 'pkcs8', format: 'pem' }).toString();
68
+ const pubKeyPem = publicKey.export({ type: 'spki', format: 'pem' }).toString();
69
+ // Extract raw public key bytes for fingerprinting
70
+ const pubKeyDer = publicKey.export({ type: 'spki', format: 'der' });
71
+ const pubKeyB64 = pubKeyDer.toString('base64');
72
+ this.keyBundle = {
73
+ publicKey: pubKeyB64,
74
+ fingerprint: fingerprint(pubKeyB64),
75
+ createdAt: now(),
76
+ agentName,
77
+ };
78
+ // Save keys
79
+ await writeFileSafe(privatePath, privKeyPem);
80
+ await writeFileSafe(publicPath, pubKeyPem);
81
+ await writeFileSafe(bundlePath, JSON.stringify(this.keyBundle, null, 2));
82
+ return this.keyBundle;
83
+ }
84
+ /**
85
+ * Sign an identity — produces a verifiable signature bundle.
86
+ * This proves: "I, the holder of this private key, attest that this is my identity."
87
+ */
88
+ signIdentity(identity) {
89
+ if (!this.privateKey || !this.keyBundle) {
90
+ throw new Error('[anima/signing] Not initialized. Call init() first.');
91
+ }
92
+ const canonical = canonicalize(identity);
93
+ const signature = sign(null, Buffer.from(canonical), this.privateKey);
94
+ return {
95
+ identity,
96
+ signature: signature.toString('base64'),
97
+ signerFingerprint: this.keyBundle.fingerprint,
98
+ signerPublicKey: this.keyBundle.publicKey,
99
+ signedAt: now(),
100
+ version: '0.1.0',
101
+ };
102
+ }
103
+ /**
104
+ * Sign arbitrary data — for signing memories, opinions, messages, etc.
105
+ * Returns base64 signature.
106
+ */
107
+ signData(data) {
108
+ if (!this.privateKey) {
109
+ throw new Error('[anima/signing] Not initialized. Call init() first.');
110
+ }
111
+ return sign(null, Buffer.from(data), this.privateKey).toString('base64');
112
+ }
113
+ /**
114
+ * Verify a signed identity — checks that:
115
+ * 1. The signature matches the identity data
116
+ * 2. The identity hasn't been tampered with
117
+ *
118
+ * This is a STATIC method — any agent can verify without needing their own keys.
119
+ */
120
+ static verifyIdentity(signed) {
121
+ try {
122
+ const { createPublicKey } = require('crypto');
123
+ // Reconstruct public key from the bundle
124
+ const pubKeyBuffer = Buffer.from(signed.signerPublicKey, 'base64');
125
+ const publicKey = createPublicKey({
126
+ key: pubKeyBuffer,
127
+ format: 'der',
128
+ type: 'spki',
129
+ });
130
+ // Verify signature against canonical identity
131
+ const canonical = canonicalize(signed.identity);
132
+ const signatureBuffer = Buffer.from(signed.signature, 'base64');
133
+ const valid = verify(null, Buffer.from(canonical), publicKey, signatureBuffer);
134
+ // Verify fingerprint matches public key
135
+ const expectedFingerprint = fingerprint(signed.signerPublicKey);
136
+ const fingerprintMatch = expectedFingerprint === signed.signerFingerprint;
137
+ if (!fingerprintMatch) {
138
+ return {
139
+ valid: false,
140
+ signerFingerprint: signed.signerFingerprint,
141
+ agentName: signed.identity.name,
142
+ signedAt: signed.signedAt,
143
+ reason: 'Fingerprint mismatch — public key does not match claimed fingerprint',
144
+ };
145
+ }
146
+ return {
147
+ valid,
148
+ signerFingerprint: signed.signerFingerprint,
149
+ agentName: signed.identity.name,
150
+ signedAt: signed.signedAt,
151
+ reason: valid ? undefined : 'Signature verification failed — identity may have been tampered with',
152
+ };
153
+ }
154
+ catch (err) {
155
+ return {
156
+ valid: false,
157
+ signerFingerprint: signed.signerFingerprint,
158
+ agentName: signed.identity.name,
159
+ signedAt: signed.signedAt,
160
+ reason: `Verification error: ${err.message}`,
161
+ };
162
+ }
163
+ }
164
+ /**
165
+ * Export the public key bundle — share this with other agents for verification.
166
+ * Never includes the private key.
167
+ */
168
+ getKeyBundle() {
169
+ if (!this.keyBundle) {
170
+ throw new Error('[anima/signing] Not initialized. Call init() first.');
171
+ }
172
+ return { ...this.keyBundle };
173
+ }
174
+ /**
175
+ * Get the fingerprint — a human-readable identifier for this agent's key.
176
+ * Like SSH fingerprints: "ab:cd:ef:12:34:..."
177
+ */
178
+ getFingerprint() {
179
+ if (!this.keyBundle) {
180
+ throw new Error('[anima/signing] Not initialized. Call init() first.');
181
+ }
182
+ return this.keyBundle.fingerprint;
183
+ }
184
+ /**
185
+ * Save a signed identity to disk — produces a .signed.json file
186
+ * that any agent can independently verify.
187
+ */
188
+ async saveSignedIdentity(signed) {
189
+ const outPath = join(this.storagePath, 'identity.signed.json');
190
+ await writeFileSafe(outPath, JSON.stringify(signed, null, 2));
191
+ return outPath;
192
+ }
193
+ }
194
+ //# sourceMappingURL=signing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signing.js","sourceRoot":"","sources":["../../src/signing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAa,MAAM,QAAQ,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AA4C5B,oCAAoC;AAEpC,+DAA+D;AAC/D,SAAS,YAAY,CAAC,GAAY;IAChC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAA8B,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,0CAA0C;AAC1C,SAAS,WAAW,CAAC,eAAuB;IAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxE,gEAAgE;IAChE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrD,CAAC;AAED,2CAA2C;AAE3C,MAAM,OAAO,aAAa;IAChB,WAAW,CAAS;IACpB,UAAU,GAAqB,IAAI,CAAC;IACpC,SAAS,GAAqB,IAAI,CAAC;IACnC,SAAS,GAAqB,IAAI,CAAC;IAE3C,YAAY,WAAmB;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,SAAiB;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEhD,4BAA4B;QAC5B,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;QAEtD,IAAI,cAAc,IAAI,eAAe,IAAI,cAAc,EAAE,CAAC;YACxD,IAAI,CAAC;gBACH,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACrE,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;gBACpD,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;gBACjD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC5C,OAAO,IAAI,CAAC,SAAU,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACjE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClF,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClF,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAE/E,kDAAkD;QAClD,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE/C,IAAI,CAAC,SAAS,GAAG;YACf,SAAS,EAAE,SAAS;YACpB,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC;YACnC,SAAS,EAAE,GAAG,EAAE;YAChB,SAAS;SACV,CAAC;QAEF,YAAY;QACZ,MAAM,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC7C,MAAM,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC3C,MAAM,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEzE,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,QAAkB;QAC7B,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAEtE,OAAO;YACL,QAAQ;YACR,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACvC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW;YAC7C,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS;YACzC,QAAQ,EAAE,GAAG,EAAE;YACf,OAAO,EAAE,OAAO;SACjB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,IAAY;QACnB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,MAAsB;QAC1C,IAAI,CAAC;YACH,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE9C,yCAAyC;YACzC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;YACnE,MAAM,SAAS,GAAG,eAAe,CAAC;gBAChC,GAAG,EAAE,YAAY;gBACjB,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YAEH,8CAA8C;YAC9C,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAChE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;YAE/E,wCAAwC;YACxC,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAChE,MAAM,gBAAgB,GAAG,mBAAmB,KAAK,MAAM,CAAC,iBAAiB,CAAC;YAE1E,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;oBAC3C,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;oBAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,MAAM,EAAE,sEAAsE;iBAC/E,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,KAAK;gBACL,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;gBAC3C,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;gBAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sEAAsE;aACnG,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;gBAC3C,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;gBAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,uBAAwB,GAAa,CAAC,OAAO,EAAE;aACxD,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CAAC,MAAsB;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;QAC/D,MAAM,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Core types for Anima v2
3
+ * Informed by 220+ agent feedback from Moltbook
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Utilities — file I/O, ID generation, date helpers.
3
+ * Zero external dependencies. Node.js built-ins only.
4
+ */
5
+ import { readFile, writeFile, mkdir, readdir } from 'fs/promises';
6
+ import { existsSync } from 'fs';
7
+ import { dirname } from 'path';
8
+ import { randomUUID } from 'crypto';
9
+ /** Generate a unique ID */
10
+ export function uid() {
11
+ return randomUUID();
12
+ }
13
+ /** Generate a session ID */
14
+ export function sessionId() {
15
+ return `session_${Date.now()}_${Math.random().toString(36).substring(2, 8)}`;
16
+ }
17
+ /** ISO timestamp */
18
+ export function now() {
19
+ return new Date().toISOString();
20
+ }
21
+ /** Format date as YYYY-MM-DD in local timezone (or ANIMA_TZ env) */
22
+ export function dateKey(date) {
23
+ const d = date || new Date();
24
+ const tz = process.env.ANIMA_TZ || Intl.DateTimeFormat().resolvedOptions().timeZone;
25
+ try {
26
+ // Use Intl to get locale-correct date parts
27
+ const parts = new Intl.DateTimeFormat('en-CA', { timeZone: tz, year: 'numeric', month: '2-digit', day: '2-digit' }).format(d);
28
+ return parts; // en-CA formats as YYYY-MM-DD
29
+ }
30
+ catch {
31
+ return d.toISOString().split('T')[0];
32
+ }
33
+ }
34
+ /** Yesterday's date key */
35
+ export function yesterdayKey() {
36
+ const d = new Date();
37
+ d.setDate(d.getDate() - 1);
38
+ return dateKey(d);
39
+ }
40
+ /** Ensure a directory exists */
41
+ export async function ensureDir(dirPath) {
42
+ if (!existsSync(dirPath)) {
43
+ await mkdir(dirPath, { recursive: true });
44
+ }
45
+ }
46
+ /** Read a file, return null if not found */
47
+ export async function readFileSafe(filePath) {
48
+ try {
49
+ return await readFile(filePath, 'utf-8');
50
+ }
51
+ catch {
52
+ return null;
53
+ }
54
+ }
55
+ /** Write a file, creating directories as needed */
56
+ export async function writeFileSafe(filePath, content) {
57
+ await ensureDir(dirname(filePath));
58
+ await writeFile(filePath, content, 'utf-8');
59
+ }
60
+ /** Append to a file, creating it if needed */
61
+ export async function appendFileSafe(filePath, content) {
62
+ await ensureDir(dirname(filePath));
63
+ const existing = await readFileSafe(filePath);
64
+ await writeFile(filePath, (existing || '') + content, 'utf-8');
65
+ }
66
+ /** List files in a directory matching a pattern */
67
+ export async function listFiles(dirPath, extension) {
68
+ try {
69
+ const files = await readdir(dirPath);
70
+ if (extension) {
71
+ return files.filter(f => f.endsWith(extension));
72
+ }
73
+ return files;
74
+ }
75
+ catch {
76
+ return [];
77
+ }
78
+ }
79
+ /** Parse frontmatter-style key: value from markdown */
80
+ export function parseFrontmatter(content) {
81
+ const result = {};
82
+ const lines = content.split('\n');
83
+ let inFrontmatter = false;
84
+ for (const line of lines) {
85
+ if (line.trim() === '---') {
86
+ if (inFrontmatter)
87
+ break;
88
+ inFrontmatter = true;
89
+ continue;
90
+ }
91
+ if (inFrontmatter) {
92
+ const colonIdx = line.indexOf(':');
93
+ if (colonIdx > 0) {
94
+ const key = line.substring(0, colonIdx).trim();
95
+ const value = line.substring(colonIdx + 1).trim();
96
+ result[key] = value;
97
+ }
98
+ }
99
+ }
100
+ return result;
101
+ }
102
+ /** Serialize a memory entry to markdown */
103
+ export function memoryToMarkdown(memory) {
104
+ return [
105
+ `### [${memory.type}] ${memory.timestamp}`,
106
+ `> ID: ${memory.id} | Importance: ${memory.importance} | Salience: ${memory.salienceScore?.toFixed(2) ?? 'unscored'}`,
107
+ `> Tags: ${memory.tags.join(', ') || 'none'}`,
108
+ '',
109
+ memory.content,
110
+ '',
111
+ ].join('\n');
112
+ }
113
+ /** Calculate salience score: weighted combination that actually differentiates memories.
114
+ * Old formula (novelty + retention + momentum + continuity - effort) always produced ~1.0
115
+ * because new memories have high novelty AND high momentum, pushing sum past 1.0 immediately.
116
+ *
117
+ * New formula uses weights that keep scores distributed across 0-1 range:
118
+ * S = 0.25*novelty + 0.25*retention + 0.2*momentum + 0.2*continuity + 0.1*(1-effort)
119
+ */
120
+ export function calculateSalience(params) {
121
+ const { novelty, retention, momentum, continuity, effort } = params;
122
+ const score = (0.25 * novelty) + (0.25 * retention) + (0.2 * momentum) + (0.2 * continuity) + (0.1 * (1 - effort));
123
+ return Math.max(0, Math.min(1, score));
124
+ }
125
+ /** Calculate memory decay based on type and time */
126
+ export function calculateDecay(params) {
127
+ const { type, ageHours, accessCount, emotionalWeight, decayRates } = params;
128
+ // Get base rate by memory type
129
+ let rate;
130
+ switch (type) {
131
+ case 'lesson':
132
+ case 'decision':
133
+ rate = decayRates.procedural; // skills decay slowly
134
+ break;
135
+ case 'insight':
136
+ rate = decayRates.semantic; // knowledge decays medium
137
+ break;
138
+ case 'conversation':
139
+ case 'event':
140
+ default:
141
+ rate = decayRates.episodic; // conversations decay fast
142
+ break;
143
+ }
144
+ // Clamp inputs to safe ranges
145
+ const safeAge = Math.max(0, ageHours);
146
+ const safeAccess = Math.max(0, accessCount);
147
+ const safeEmotion = Math.max(0, Math.min(1, emotionalWeight));
148
+ // Emotional memories resist decay (0.2 to 1.0 range)
149
+ const emotionalResistance = Math.max(0.2, 1 - (safeEmotion * 0.8));
150
+ // Access count slows decay (frequently recalled = important)
151
+ const accessBonus = Math.max(0.1, 1 - (safeAccess * 0.1));
152
+ // Decay with modifiers, clamped to [0, 1]
153
+ return Math.min(1, Math.max(0, rate * emotionalResistance * accessBonus * safeAge));
154
+ }
155
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
package/dist/memory.d.ts CHANGED
@@ -38,6 +38,8 @@ export declare class MemoryEngine {
38
38
  updateLifeboat(checkpoint: Checkpoint): Promise<void>;
39
39
  /** Read the current lifeboat */
40
40
  readLifeboat(): Promise<string | null>;
41
+ /** Write raw content to lifeboat (for preserving hand-written content) */
42
+ writeLifeboatRaw(content: string): Promise<void>;
41
43
  /** Read today's daily log */
42
44
  readDailyLog(date?: string): Promise<string | null>;
43
45
  /** Read yesterday's daily log */
@@ -46,6 +48,30 @@ export declare class MemoryEngine {
46
48
  readLongTerm(): Promise<string | null>;
47
49
  /** Append to MEMORY.md */
48
50
  writeLongTerm(content: string): Promise<void>;
51
+ /**
52
+ * Curate — review raw memories and distill what matters into MEMORY.md.
53
+ *
54
+ * This is the missing piece most agents skip. Storage is easy. Retrieval is solved.
55
+ * But without periodic curation, you either drown in noise or lose everything.
56
+ *
57
+ * Call this periodically (e.g., during heartbeats, daily reflection).
58
+ *
59
+ * Strategy:
60
+ * 1. Scan memories from the last N hours
61
+ * 2. Filter for high-salience, high-importance items
62
+ * 3. Deduplicate against existing long-term memory
63
+ * 4. Append curated insights to MEMORY.md
64
+ * 5. Return what was curated (so agents can review/edit)
65
+ */
66
+ curate(options?: {
67
+ hoursBack?: number;
68
+ minImportance?: ImportanceLevel;
69
+ minSalience?: number;
70
+ dryRun?: boolean;
71
+ }): Promise<{
72
+ curated: Memory[];
73
+ written: boolean;
74
+ }>;
49
75
  /** Run decay on all memories. Call during reflection/sleep. */
50
76
  runDecay(): Promise<{
51
77
  decayed: number;
@@ -70,6 +96,8 @@ export declare class MemoryEngine {
70
96
  getRecentMemories(hours?: number): Promise<Memory[]>;
71
97
  /** Get all memories */
72
98
  getAllMemories(): Promise<Memory[]>;
99
+ /** Public index loader for quickLoad (no boot event) */
100
+ loadIndexPublic(): Promise<void>;
73
101
  private loadIndex;
74
102
  private saveIndex;
75
103
  private loadOpinions;
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAc,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAUjH,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,SAAS,CAAS;gBAEd,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC;IAStF,oEAAoE;IAC9D,QAAQ,CAAC,KAAK,EAAE;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,UAAU,CAAC;QAClB,UAAU,CAAC,EAAE,eAAe,CAAC;QAC7B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GAAG,OAAO,CAAC,MAAM,CAAC;IA4CnB,mEAAmE;IAC7D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAuDlE,oEAAoE;IAC9D,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB3D,gCAAgC;IAC1B,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAM5C,6BAA6B;IACvB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKzD,iCAAiC;IAC3B,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAMhD,gDAAgD;IAC1C,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI5C,0BAA0B;IACpB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD,+DAA+D;IACzD,QAAQ,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IA2D9E,kCAAkC;IAC5B,KAAK,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAiC5F,uBAAuB;IACjB,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAOvC,wDAAwD;IAClD,cAAc,CAAC,OAAO,EAAE;QAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5B,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BjB,0CAA0C;IACpC,iBAAiB,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAQ9D,uBAAuB;IACjB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAK3B,SAAS;YAWT,SAAS;YAOT,YAAY;YAWZ,YAAY;IAO1B,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,cAAc;CAOvB"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
package/dist/memory.js CHANGED
@@ -151,6 +151,10 @@ ${checkpoint.emergency ? '⚠️ **EMERGENCY FLAG SET** — Something critical w
151
151
  async readLifeboat() {
152
152
  return (0, utils_1.readFileSafe)((0, path_1.join)(this.storagePath, 'NOW.md'));
153
153
  }
154
+ /** Write raw content to lifeboat (for preserving hand-written content) */
155
+ async writeLifeboatRaw(content) {
156
+ await (0, utils_1.writeFileSafe)((0, path_1.join)(this.storagePath, 'NOW.md'), content);
157
+ }
154
158
  // ============ CORE: Daily Log ============
155
159
  /** Read today's daily log */
156
160
  async readDailyLog(date) {
@@ -170,6 +174,74 @@ ${checkpoint.emergency ? '⚠️ **EMERGENCY FLAG SET** — Something critical w
170
174
  async writeLongTerm(content) {
171
175
  await (0, utils_1.appendFileSafe)((0, path_1.join)(this.storagePath, 'MEMORY.md'), '\n' + content + '\n');
172
176
  }
177
+ // ============ CURATION ============
178
+ /**
179
+ * Curate — review raw memories and distill what matters into MEMORY.md.
180
+ *
181
+ * This is the missing piece most agents skip. Storage is easy. Retrieval is solved.
182
+ * But without periodic curation, you either drown in noise or lose everything.
183
+ *
184
+ * Call this periodically (e.g., during heartbeats, daily reflection).
185
+ *
186
+ * Strategy:
187
+ * 1. Scan memories from the last N hours
188
+ * 2. Filter for high-salience, high-importance items
189
+ * 3. Deduplicate against existing long-term memory
190
+ * 4. Append curated insights to MEMORY.md
191
+ * 5. Return what was curated (so agents can review/edit)
192
+ */
193
+ async curate(options) {
194
+ const { hoursBack = 48, minImportance = 'medium', minSalience = 0.5, dryRun = false, } = options || {};
195
+ await this.loadIndex();
196
+ const importanceRank = {
197
+ low: 0,
198
+ medium: 1,
199
+ high: 2,
200
+ critical: 3,
201
+ };
202
+ const cutoff = Date.now() - (hoursBack * 60 * 60 * 1000);
203
+ // Step 1: Filter memories worth curating
204
+ const candidates = this.memories.filter(m => {
205
+ const age = new Date(m.timestamp).getTime();
206
+ if (age < cutoff)
207
+ return false;
208
+ if (importanceRank[m.importance] < importanceRank[minImportance])
209
+ return false;
210
+ if ((m.salienceScore ?? 0.5) < minSalience)
211
+ return false;
212
+ // Skip system/boot events
213
+ if (m.tags?.includes('system') || m.tags?.includes('boot'))
214
+ return false;
215
+ return true;
216
+ });
217
+ if (candidates.length === 0) {
218
+ return { curated: [], written: false };
219
+ }
220
+ // Step 2: Deduplicate against existing long-term memory
221
+ const existing = await this.readLongTerm();
222
+ const curated = existing
223
+ ? candidates.filter(m => !existing.includes(m.content.slice(0, 50)))
224
+ : candidates;
225
+ if (curated.length === 0 || dryRun) {
226
+ return { curated, written: false };
227
+ }
228
+ // Step 3: Format and write to MEMORY.md
229
+ const header = `\n## Curated — ${(0, utils_1.dateKey)()}\n`;
230
+ const entries = curated
231
+ .sort((a, b) => importanceRank[b.importance] - importanceRank[a.importance])
232
+ .map(m => {
233
+ const tags = m.tags?.length ? ` [${m.tags.join(', ')}]` : '';
234
+ return `- ${m.content}${tags}`;
235
+ })
236
+ .join('\n');
237
+ await this.writeLongTerm(header + entries);
238
+ // Mark curated memories so they aren't re-curated
239
+ for (const m of curated) {
240
+ m.tags = [...(m.tags || []), 'curated'];
241
+ }
242
+ await this.saveIndex();
243
+ return { curated, written: true };
244
+ }
173
245
  // ============ MEMORY DECAY ============
174
246
  /** Run decay on all memories. Call during reflection/sleep. */
175
247
  async runDecay() {
@@ -300,6 +372,11 @@ ${checkpoint.emergency ? '⚠️ **EMERGENCY FLAG SET** — Something critical w
300
372
  await this.loadIndex();
301
373
  return [...this.memories];
302
374
  }
375
+ /** Public index loader for quickLoad (no boot event) */
376
+ async loadIndexPublic() {
377
+ await this.loadIndex();
378
+ await this.loadOpinions();
379
+ }
303
380
  async loadIndex() {
304
381
  const raw = await (0, utils_1.readFileSafe)((0, path_1.join)(this.memoryDir, 'memories.json'));
305
382
  if (raw) {
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -53,6 +53,8 @@ export interface Memory {
53
53
  crossDomainAccess?: boolean;
54
54
  /** Decay score — increases over time, modulated by type and access */
55
55
  decayScore?: number;
56
+ /** Floor value — minimum salience that prevents decay below threshold */
57
+ floor?: number;
56
58
  }
57
59
  export interface DecayConfig {
58
60
  /** Procedural memory decay rate (skills, workflows) — very slow */
@@ -134,6 +136,10 @@ export interface WakeContext {
134
136
  relevantOpinions: Opinion[];
135
137
  relationships: Relationship[];
136
138
  sessionId: string;
139
+ /** Unique instance ID — prevents identity confusion when agent is forked/cloned */
140
+ instanceId: string;
141
+ /** Parent instance ID if this is a forked instance */
142
+ parentInstanceId?: string;
137
143
  lastSessionSummary?: string;
138
144
  tokenBudget: number;
139
145
  /** Estimated tokens used by this context */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}