@getanima/core 0.2.3 → 0.3.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.
package/dist/anima.d.ts CHANGED
@@ -30,6 +30,8 @@ import type { AnimaConfig, WakeContext, Memory, Checkpoint, SessionSummary, Opin
30
30
  import { MemoryEngine } from './memory';
31
31
  import { IdentityManager } from './identity';
32
32
  import type { SignedIdentity, VerificationResult, KeyBundle } from './signing';
33
+ import { AnimaEventEmitter } from './events';
34
+ import { RelationshipEngine } from './relationships';
33
35
  export declare class Anima {
34
36
  private config;
35
37
  private session;
@@ -39,6 +41,8 @@ export declare class Anima {
39
41
  private memoriesThisSession;
40
42
  private signing;
41
43
  private booted;
44
+ readonly events: AnimaEventEmitter;
45
+ readonly relationships: RelationshipEngine;
42
46
  constructor(config: AnimaConfig);
43
47
  /**
44
48
  * Boot — the cold-start sequence.
@@ -1 +1 @@
1
- {"version":3,"file":"anima.d.ts","sourceRoot":"","sources":["../src/anima.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anima.d.ts","sourceRoot":"","sources":["../src/anima.ts"],"names":[],"mappings":"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"}
package/dist/anima.js CHANGED
@@ -32,6 +32,8 @@ exports.Anima = void 0;
32
32
  const memory_1 = require("./memory");
33
33
  const identity_1 = require("./identity");
34
34
  const signing_1 = require("./signing");
35
+ const events_1 = require("./events");
36
+ const relationships_1 = require("./relationships");
35
37
  const utils_1 = require("./utils");
36
38
  class Anima {
37
39
  config;
@@ -42,6 +44,8 @@ class Anima {
42
44
  memoriesThisSession = 0;
43
45
  signing;
44
46
  booted = false;
47
+ events;
48
+ relationships;
45
49
  constructor(config) {
46
50
  this.config = {
47
51
  storagePath: './anima-data',
@@ -55,6 +59,8 @@ class Anima {
55
59
  this.identity = new identity_1.IdentityManager(this.config.storagePath, this.config.identity);
56
60
  this.memory = new memory_1.MemoryEngine(this.config.storagePath, this.session, this.config.decay);
57
61
  this.signing = new signing_1.SigningEngine(this.config.storagePath);
62
+ this.events = new events_1.AnimaEventEmitter();
63
+ this.relationships = new relationships_1.RelationshipEngine(this.config.storagePath);
58
64
  }
59
65
  // ============ BOOT SEQUENCE ============
60
66
  // Order matters. This is enforced, not suggested.
@@ -115,7 +121,7 @@ class Anima {
115
121
  lifeboat: checkpoint,
116
122
  recentMemories: recentMemories.slice(0, 50), // cap at 50 most recent
117
123
  relevantOpinions: opinions,
118
- relationships: [], // TODO: relationship engine
124
+ relationships: await this.relationships.load(),
119
125
  sessionId: this.session,
120
126
  instanceId: (0, utils_1.sessionId)(), // Unique per boot — prevents identity confusion when forked
121
127
  parentInstanceId: undefined, // Set by caller if this is a forked instance
@@ -130,6 +136,12 @@ class Anima {
130
136
  importance: 'low',
131
137
  tags: ['system', 'boot'],
132
138
  });
139
+ // Emit afterWake event
140
+ await this.events.emit('afterWake', {
141
+ sessionId: this.session,
142
+ bootTimeMs: this.bootTime,
143
+ memoriesLoaded: recentMemories.length,
144
+ });
133
145
  return context;
134
146
  }
135
147
  // ============ REMEMBER ============
@@ -177,7 +189,19 @@ class Anima {
177
189
  */
178
190
  async opine(topic, opinion, confidence) {
179
191
  this.ensureBooted();
180
- return this.memory.opine({ topic, opinion, confidence });
192
+ // Check if opinion exists before updating
193
+ const existing = (await this.memory.getOpinions()).find(o => o.topic === topic);
194
+ const result = await this.memory.opine({ topic, opinion, confidence });
195
+ if (existing && existing.current !== opinion) {
196
+ await this.events.emit('opinionChanged', {
197
+ topic,
198
+ oldOpinion: existing.current,
199
+ newOpinion: opinion,
200
+ oldConfidence: existing.confidence,
201
+ newConfidence: confidence,
202
+ });
203
+ }
204
+ return result;
181
205
  }
182
206
  // ============ CURATE ============
183
207
  /**
@@ -259,6 +283,12 @@ class Anima {
259
283
  updatedAt: (0, utils_1.now)(),
260
284
  });
261
285
  }
286
+ // Emit afterSleep event
287
+ await this.events.emit('afterSleep', {
288
+ sessionId: this.session,
289
+ memoriesCreated: this.memoriesThisSession,
290
+ memoriesDecayed: decayResult.decayed,
291
+ });
262
292
  return summary;
263
293
  }
264
294
  // ============ SIGNING ============
package/dist/anima.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"anima.js","sourceRoot":"","sources":["../src/anima.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;;;AAGH,qCAAwC;AACxC,yCAA6C;AAC7C,uCAA0C;AAE1C,mCAAkD;AAElD,MAAa,KAAK;IACR,MAAM,CAAwB;IAC9B,OAAO,CAAS;IAChB,QAAQ,CAAkB;IAC1B,MAAM,CAAe;IACrB,QAAQ,GAAW,CAAC,CAAC;IACrB,mBAAmB,GAAW,CAAC,CAAC;IAChC,OAAO,CAAgB;IACvB,MAAM,GAAY,KAAK,CAAC;IAEhC,YAAY,MAAmB;QAC7B,IAAI,CAAC,MAAM,GAAG;YACZ,WAAW,EAAE,cAAc;YAC3B,gBAAgB,EAAE,EAAE;YACpB,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC/D,QAAQ,EAAE,EAAE;YACZ,GAAG,MAAM;SACV,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG,IAAA,iBAAS,GAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,0BAAe,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnF,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAY,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzF,IAAI,CAAC,OAAO,GAAG,IAAI,uBAAa,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC;IAED,0CAA0C;IAC1C,kDAAkD;IAClD,iEAAiE;IAEjE;;;;OAIG;IACH;;;OAGG;IACH,KAAK,CAAC,SAAS;QACb,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3B,0CAA0C;QAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,wDAAwD;QACxD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAErC,yCAAyC;QACzC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;QAED,uCAAuC;QACvC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAClD,IAAI,UAAU,GAAsB,IAAI,CAAC;QACzC,IAAI,QAAQ,EAAE,CAAC;YACb,8DAA8D;YAC9D,UAAU,GAAG;gBACX,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,gBAAgB;gBAC5E,MAAM,EAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAA0B,IAAI,QAAQ;gBACrF,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,IAAI,aAAa;gBAC3E,SAAS,EAAE,IAAA,WAAG,GAAE;aACjB,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAElD,qCAAqC;QACrC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAE1D,0CAA0C;QAC1C,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAE/D,wBAAwB;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAEjD,gCAAgC;QAChC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAExD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,qBAAqB;QACrB,MAAM,OAAO,GAAgB;YAC3B,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,UAAU;YACpB,cAAc,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,wBAAwB;YACrE,gBAAgB,EAAE,QAAQ;YAC1B,aAAa,EAAE,EAAE,EAAE,4BAA4B;YAC/C,SAAS,EAAE,IAAI,CAAC,OAAO;YACvB,UAAU,EAAE,IAAA,iBAAS,GAAE,EAAE,4DAA4D;YACrF,gBAAgB,EAAE,SAAS,EAAE,6CAA6C;YAC1E,kBAAkB,EAAE,QAAQ,IAAI,YAAY,IAAI,SAAS;YACzD,WAAW,EAAE,IAAI,EAAE,qBAAqB;YACxC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,cAAc,EAAE,QAAQ,CAAC;SACxE,CAAC;QAEF,iBAAiB;QACjB,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YACzB,OAAO,EAAE,+BAA+B,IAAI,CAAC,QAAQ,cAAc,cAAc,CAAC,MAAM,qBAAqB,QAAQ,CAAC,MAAM,YAAY;YACxI,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,KAAK;YACjB,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;SACzB,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,qCAAqC;IAErC;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,KAMd;QACC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,mCAAmC;IAEnC;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,KAAc;QACxC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,kDAAkD;IAElD;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,KAMhB;QACC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;YAC/B,GAAG,KAAK;YACR,SAAS,EAAE,IAAA,WAAG,GAAE;SACjB,CAAC,CAAC;IACL,CAAC;IAED,mDAAmD;IAEnD;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,OAIX;QACC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,kCAAkC;IAElC;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,KAAa,EAAE,OAAe,EAAE,UAAkB;QAC5D,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,mCAAmC;IAEnC;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,MAAM,CAAC,OAKZ;QACC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,qDAAqD;IAErD;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,gEAAgE;QAChE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE5F,mBAAmB;QACnB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAEjD,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAEjD,2BAA2B;QAC3B,MAAM,OAAO,GAAmB;YAC9B,SAAS,EAAE,IAAI,CAAC,OAAO;YACvB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;YAC7D,OAAO,EAAE,IAAA,WAAG,GAAE;YACd,OAAO,EAAE,WAAW,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,mBAAmB,6BAA6B,WAAW,CAAC,OAAO,aAAa,WAAW,CAAC,QAAQ,cAAc,WAAW,CAAC,IAAI,QAAQ;YACpL,eAAe,EAAE,IAAI,CAAC,mBAAmB;YACzC,gBAAgB,EAAE,CAAC,EAAE,yBAAyB;YAC9C,eAAe,EAAE,WAAW,CAAC,OAAO;YACpC,cAAc,EAAE,QAAQ,CAAC,MAAM;YAC/B,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM;YAC3E,eAAe,EAAE,EAAE;YACnB,cAAc,EAAE,EAAE;SACnB,CAAC;QAEF,6BAA6B;QAC7B,MAAM,SAAS,GAAG,8BAA8B,IAAA,WAAG,GAAE,MAAM,OAAO,CAAC,OAAO,SAAS,CAAC;QACpF,MAAM,SAAS,GAAG,UAAU,IAAA,eAAO,GAAE,KAAK,CAAC;QAC3C,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YACzB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,KAAK;YACjB,IAAI,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACpC,CAAC,CAAC;QAEH,mEAAmE;QACnE,gFAAgF;QAChF,uDAAuD;QACvD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAC1D,MAAM,cAAc,GAAG;YACrB,8BAA8B,IAAA,WAAG,GAAE,GAAG;YACtC,OAAO,CAAC,OAAO;YACf,WAAW,cAAc,CAAC,OAAO,CAAC,MAAM,yBAAyB;YACjE,aAAa;YACb,mEAAmE;SACpE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,IAAI,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;YAC7E,6CAA6C;YAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,IAAI,GAAG,cAAc,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,yDAAyD;YACzD,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;gBAC/B,UAAU,EAAE,yCAAyC;gBACrD,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,0BAA0B;gBACvC,SAAS,EAAE,IAAA,WAAG,GAAE;aACjB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,oCAAoC;IAEpC;;;;OAIG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,MAAM,CAAC,MAAsB;QAClC,OAAO,uBAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;IACvC,CAAC;IAED,sCAAsC;IAEtC,6BAA6B;IAC7B,YAAY;QACV,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,0BAA0B;IAC1B,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,iDAAiD;IACjD,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,8CAA8C;IAC9C,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,qCAAqC;IAE7B,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,QAAgB,EAAE,OAAe;QACtD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,OAAO,4BAA4B,EAAE,GAAG,CAAC,CAAC;QACzE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC;IAEO,cAAc,CAAC,QAAa,EAAE,QAAkB,EAAE,QAAmB;QAC3E,oCAAoC;QACpC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAChF,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACpG,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,YAAY,GAAG,aAAa,CAAC,CAAC;IAClE,CAAC;CACF;AA3XD,sBA2XC"}
1
+ {"version":3,"file":"anima.js","sourceRoot":"","sources":["../src/anima.ts"],"names":[],"mappings":"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"}
package/dist/esm/anima.js CHANGED
@@ -29,6 +29,8 @@
29
29
  import { MemoryEngine } from './memory';
30
30
  import { IdentityManager } from './identity';
31
31
  import { SigningEngine } from './signing';
32
+ import { AnimaEventEmitter } from './events';
33
+ import { RelationshipEngine } from './relationships';
32
34
  import { sessionId, now, dateKey } from './utils';
33
35
  export class Anima {
34
36
  config;
@@ -39,6 +41,8 @@ export class Anima {
39
41
  memoriesThisSession = 0;
40
42
  signing;
41
43
  booted = false;
44
+ events;
45
+ relationships;
42
46
  constructor(config) {
43
47
  this.config = {
44
48
  storagePath: './anima-data',
@@ -52,6 +56,8 @@ export class Anima {
52
56
  this.identity = new IdentityManager(this.config.storagePath, this.config.identity);
53
57
  this.memory = new MemoryEngine(this.config.storagePath, this.session, this.config.decay);
54
58
  this.signing = new SigningEngine(this.config.storagePath);
59
+ this.events = new AnimaEventEmitter();
60
+ this.relationships = new RelationshipEngine(this.config.storagePath);
55
61
  }
56
62
  // ============ BOOT SEQUENCE ============
57
63
  // Order matters. This is enforced, not suggested.
@@ -112,7 +118,7 @@ export class Anima {
112
118
  lifeboat: checkpoint,
113
119
  recentMemories: recentMemories.slice(0, 50), // cap at 50 most recent
114
120
  relevantOpinions: opinions,
115
- relationships: [], // TODO: relationship engine
121
+ relationships: await this.relationships.load(),
116
122
  sessionId: this.session,
117
123
  instanceId: sessionId(), // Unique per boot — prevents identity confusion when forked
118
124
  parentInstanceId: undefined, // Set by caller if this is a forked instance
@@ -127,6 +133,12 @@ export class Anima {
127
133
  importance: 'low',
128
134
  tags: ['system', 'boot'],
129
135
  });
136
+ // Emit afterWake event
137
+ await this.events.emit('afterWake', {
138
+ sessionId: this.session,
139
+ bootTimeMs: this.bootTime,
140
+ memoriesLoaded: recentMemories.length,
141
+ });
130
142
  return context;
131
143
  }
132
144
  // ============ REMEMBER ============
@@ -174,7 +186,19 @@ export class Anima {
174
186
  */
175
187
  async opine(topic, opinion, confidence) {
176
188
  this.ensureBooted();
177
- return this.memory.opine({ topic, opinion, confidence });
189
+ // Check if opinion exists before updating
190
+ const existing = (await this.memory.getOpinions()).find(o => o.topic === topic);
191
+ const result = await this.memory.opine({ topic, opinion, confidence });
192
+ if (existing && existing.current !== opinion) {
193
+ await this.events.emit('opinionChanged', {
194
+ topic,
195
+ oldOpinion: existing.current,
196
+ newOpinion: opinion,
197
+ oldConfidence: existing.confidence,
198
+ newConfidence: confidence,
199
+ });
200
+ }
201
+ return result;
178
202
  }
179
203
  // ============ CURATE ============
180
204
  /**
@@ -256,6 +280,12 @@ export class Anima {
256
280
  updatedAt: now(),
257
281
  });
258
282
  }
283
+ // Emit afterSleep event
284
+ await this.events.emit('afterSleep', {
285
+ sessionId: this.session,
286
+ memoriesCreated: this.memoriesThisSession,
287
+ memoriesDecayed: decayResult.decayed,
288
+ });
259
289
  return summary;
260
290
  }
261
291
  // ============ SIGNING ============
@@ -1 +1 @@
1
- {"version":3,"file":"anima.js","sourceRoot":"","sources":["../../src/anima.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anima.js","sourceRoot":"","sources":["../../src/anima.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Event system for Anima.
3
+ * Simple typed event emitter — no dependencies.
4
+ */
5
+ export class AnimaEventEmitter {
6
+ handlers = new Map();
7
+ /**
8
+ * Listen for an event.
9
+ * Returns an unsubscribe function.
10
+ */
11
+ on(event, handler) {
12
+ if (!this.handlers.has(event)) {
13
+ this.handlers.set(event, new Set());
14
+ }
15
+ this.handlers.get(event).add(handler);
16
+ return () => this.off(event, handler);
17
+ }
18
+ /**
19
+ * Listen for an event once.
20
+ */
21
+ once(event, handler) {
22
+ const wrapper = (data) => {
23
+ this.off(event, wrapper);
24
+ return handler(data);
25
+ };
26
+ return this.on(event, wrapper);
27
+ }
28
+ /**
29
+ * Remove a specific handler.
30
+ */
31
+ off(event, handler) {
32
+ this.handlers.get(event)?.delete(handler);
33
+ }
34
+ /**
35
+ * Remove all handlers for an event, or all handlers if no event specified.
36
+ */
37
+ removeAll(event) {
38
+ if (event) {
39
+ this.handlers.delete(event);
40
+ }
41
+ else {
42
+ this.handlers.clear();
43
+ }
44
+ }
45
+ /**
46
+ * Emit an event. Handlers run in order, errors are caught and logged.
47
+ */
48
+ async emit(event, data) {
49
+ const handlers = this.handlers.get(event);
50
+ if (!handlers || handlers.size === 0)
51
+ return;
52
+ for (const handler of handlers) {
53
+ try {
54
+ await handler(data);
55
+ }
56
+ catch (err) {
57
+ console.error(`[anima] Event handler error for '${event}':`, err);
58
+ }
59
+ }
60
+ }
61
+ }
62
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,MAAM,OAAO,iBAAiB;IACpB,QAAQ,GAAwC,IAAI,GAAG,EAAE,CAAC;IAElE;;;OAGG;IACH,EAAE,CAAgC,KAAQ,EAAE,OAAuC;QACjF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,IAAI,CAAgC,KAAQ,EAAE,OAAuC;QACnF,MAAM,OAAO,GAAmC,CAAC,IAAI,EAAE,EAAE;YACvD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACzB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC;QACF,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,GAAG,CAAgC,KAAQ,EAAE,OAAuC;QAClF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAA2B;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAgC,KAAQ,EAAE,IAAsB;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAE7C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
package/dist/esm/index.js CHANGED
@@ -11,4 +11,6 @@ export { MemoryEngine } from './memory';
11
11
  export { IdentityManager } from './identity';
12
12
  export { ReflectionEngine } from './reflection';
13
13
  export { SigningEngine } from './signing';
14
+ export { AnimaEventEmitter } from './events';
15
+ export { RelationshipEngine } from './relationships';
14
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Relationship Engine — track who you know, how you know them, and what matters.
3
+ *
4
+ * File-based. JSON storage. Zero external dependencies.
5
+ *
6
+ * Storage: {storagePath}/relationships/relationships.json
7
+ */
8
+ import { uid, now, readFileSafe, writeFileSafe } from './utils';
9
+ import { join } from 'path';
10
+ import { mkdir } from 'fs/promises';
11
+ export class RelationshipEngine {
12
+ storagePath;
13
+ filePath;
14
+ relationships = [];
15
+ loaded = false;
16
+ constructor(storagePath) {
17
+ this.storagePath = storagePath;
18
+ this.filePath = join(storagePath, 'relationships', 'relationships.json');
19
+ }
20
+ /** Load relationships from disk. */
21
+ async load() {
22
+ const dir = join(this.storagePath, 'relationships');
23
+ await mkdir(dir, { recursive: true });
24
+ const raw = await readFileSafe(this.filePath);
25
+ if (raw) {
26
+ try {
27
+ this.relationships = JSON.parse(raw);
28
+ }
29
+ catch {
30
+ this.relationships = [];
31
+ }
32
+ }
33
+ this.loaded = true;
34
+ return this.relationships;
35
+ }
36
+ /** Save current state to disk. */
37
+ async save() {
38
+ await writeFileSafe(this.filePath, JSON.stringify(this.relationships, null, 2));
39
+ }
40
+ ensureLoaded() {
41
+ if (!this.loaded)
42
+ throw new Error('RelationshipEngine not loaded. Call load() first.');
43
+ }
44
+ /** Get all relationships. */
45
+ getAll() {
46
+ this.ensureLoaded();
47
+ return [...this.relationships];
48
+ }
49
+ /** Find a relationship by name (case-insensitive). */
50
+ find(name) {
51
+ this.ensureLoaded();
52
+ const lower = name.toLowerCase();
53
+ return this.relationships.find(r => r.name.toLowerCase() === lower);
54
+ }
55
+ /** Find a relationship by ID. */
56
+ findById(id) {
57
+ this.ensureLoaded();
58
+ return this.relationships.find(r => r.id === id);
59
+ }
60
+ /** Add or update a relationship. If name exists, updates it. Returns the relationship. */
61
+ async meet(input) {
62
+ this.ensureLoaded();
63
+ const existing = this.find(input.name);
64
+ if (existing) {
65
+ // Update existing
66
+ existing.lastInteraction = now();
67
+ existing.interactionCount++;
68
+ if (input.context)
69
+ existing.context = input.context;
70
+ if (input.notes)
71
+ existing.notes.push(...input.notes);
72
+ if (input.preferences) {
73
+ existing.preferences = [...new Set([...(existing.preferences || []), ...input.preferences])];
74
+ }
75
+ await this.save();
76
+ return existing;
77
+ }
78
+ // Create new
79
+ const rel = {
80
+ id: uid(),
81
+ name: input.name,
82
+ type: input.type || 'human',
83
+ context: input.context || '',
84
+ interactionCount: 1,
85
+ firstMet: now(),
86
+ lastInteraction: now(),
87
+ preferences: input.preferences || [],
88
+ notes: input.notes || [],
89
+ };
90
+ this.relationships.push(rel);
91
+ await this.save();
92
+ return rel;
93
+ }
94
+ /** Record an interaction (bumps count + timestamp). */
95
+ async interact(name, note) {
96
+ this.ensureLoaded();
97
+ const rel = this.find(name);
98
+ if (!rel)
99
+ return null;
100
+ rel.interactionCount++;
101
+ rel.lastInteraction = now();
102
+ if (note)
103
+ rel.notes.push(note);
104
+ await this.save();
105
+ return rel;
106
+ }
107
+ /** Add a note to a relationship. */
108
+ async addNote(name, note) {
109
+ this.ensureLoaded();
110
+ const rel = this.find(name);
111
+ if (!rel)
112
+ return false;
113
+ rel.notes.push(note);
114
+ await this.save();
115
+ return true;
116
+ }
117
+ /** Remove a relationship by name. */
118
+ async forget(name) {
119
+ this.ensureLoaded();
120
+ const lower = name.toLowerCase();
121
+ const idx = this.relationships.findIndex(r => r.name.toLowerCase() === lower);
122
+ if (idx === -1)
123
+ return false;
124
+ this.relationships.splice(idx, 1);
125
+ await this.save();
126
+ return true;
127
+ }
128
+ /** Get relationships sorted by most recent interaction. */
129
+ recent(limit = 10) {
130
+ this.ensureLoaded();
131
+ return [...this.relationships]
132
+ .sort((a, b) => new Date(b.lastInteraction).getTime() - new Date(a.lastInteraction).getTime())
133
+ .slice(0, limit);
134
+ }
135
+ /** Get relationships sorted by interaction count. */
136
+ closest(limit = 10) {
137
+ this.ensureLoaded();
138
+ return [...this.relationships]
139
+ .sort((a, b) => b.interactionCount - a.interactionCount)
140
+ .slice(0, limit);
141
+ }
142
+ }
143
+ //# sourceMappingURL=relationships.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationships.js","sourceRoot":"","sources":["../../src/relationships.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Event system for Anima.
3
+ * Simple typed event emitter — no dependencies.
4
+ */
5
+ import type { Memory, MemoryConflict } from './types';
6
+ export interface AnimaEventMap {
7
+ beforeCompaction: {
8
+ memoriesCount: number;
9
+ };
10
+ afterWake: {
11
+ sessionId: string;
12
+ bootTimeMs: number;
13
+ memoriesLoaded: number;
14
+ };
15
+ afterSleep: {
16
+ sessionId: string;
17
+ memoriesCreated: number;
18
+ memoriesDecayed: number;
19
+ };
20
+ memoryPromoted: {
21
+ memory: Memory;
22
+ from: string;
23
+ to: string;
24
+ };
25
+ memoryDecayed: {
26
+ memory: Memory;
27
+ };
28
+ opinionChanged: {
29
+ topic: string;
30
+ oldOpinion: string;
31
+ newOpinion: string;
32
+ oldConfidence: number;
33
+ newConfidence: number;
34
+ };
35
+ conflictDetected: {
36
+ conflict: MemoryConflict;
37
+ };
38
+ autoSave: {
39
+ savedAt: string;
40
+ memoriesCount: number;
41
+ };
42
+ }
43
+ type EventHandler<T> = (data: T) => void | Promise<void>;
44
+ export declare class AnimaEventEmitter {
45
+ private handlers;
46
+ /**
47
+ * Listen for an event.
48
+ * Returns an unsubscribe function.
49
+ */
50
+ on<K extends keyof AnimaEventMap>(event: K, handler: EventHandler<AnimaEventMap[K]>): () => void;
51
+ /**
52
+ * Listen for an event once.
53
+ */
54
+ once<K extends keyof AnimaEventMap>(event: K, handler: EventHandler<AnimaEventMap[K]>): () => void;
55
+ /**
56
+ * Remove a specific handler.
57
+ */
58
+ off<K extends keyof AnimaEventMap>(event: K, handler: EventHandler<AnimaEventMap[K]>): void;
59
+ /**
60
+ * Remove all handlers for an event, or all handlers if no event specified.
61
+ */
62
+ removeAll(event?: keyof AnimaEventMap): void;
63
+ /**
64
+ * Emit an event. Handlers run in order, errors are caught and logged.
65
+ */
66
+ emit<K extends keyof AnimaEventMap>(event: K, data: AnimaEventMap[K]): Promise<void>;
67
+ }
68
+ export {};
69
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAc,MAAM,EAAW,cAAc,EAAE,MAAM,SAAS,CAAC;AAE3E,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,SAAS,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7E,UAAU,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IACpF,cAAc,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,aAAa,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IACxH,gBAAgB,EAAE;QAAE,QAAQ,EAAE,cAAc,CAAA;KAAE,CAAC;IAC/C,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD;AAED,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEzD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAkD;IAElE;;;OAGG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAQhG;;OAEG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAQlG;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAI3F;;OAEG;IACH,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,aAAa,GAAG,IAAI;IAQ5C;;OAEG;IACG,IAAI,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAY3F"}
package/dist/events.js ADDED
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ /**
3
+ * Event system for Anima.
4
+ * Simple typed event emitter — no dependencies.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.AnimaEventEmitter = void 0;
8
+ class AnimaEventEmitter {
9
+ handlers = new Map();
10
+ /**
11
+ * Listen for an event.
12
+ * Returns an unsubscribe function.
13
+ */
14
+ on(event, handler) {
15
+ if (!this.handlers.has(event)) {
16
+ this.handlers.set(event, new Set());
17
+ }
18
+ this.handlers.get(event).add(handler);
19
+ return () => this.off(event, handler);
20
+ }
21
+ /**
22
+ * Listen for an event once.
23
+ */
24
+ once(event, handler) {
25
+ const wrapper = (data) => {
26
+ this.off(event, wrapper);
27
+ return handler(data);
28
+ };
29
+ return this.on(event, wrapper);
30
+ }
31
+ /**
32
+ * Remove a specific handler.
33
+ */
34
+ off(event, handler) {
35
+ this.handlers.get(event)?.delete(handler);
36
+ }
37
+ /**
38
+ * Remove all handlers for an event, or all handlers if no event specified.
39
+ */
40
+ removeAll(event) {
41
+ if (event) {
42
+ this.handlers.delete(event);
43
+ }
44
+ else {
45
+ this.handlers.clear();
46
+ }
47
+ }
48
+ /**
49
+ * Emit an event. Handlers run in order, errors are caught and logged.
50
+ */
51
+ async emit(event, data) {
52
+ const handlers = this.handlers.get(event);
53
+ if (!handlers || handlers.size === 0)
54
+ return;
55
+ for (const handler of handlers) {
56
+ try {
57
+ await handler(data);
58
+ }
59
+ catch (err) {
60
+ console.error(`[anima] Event handler error for '${event}':`, err);
61
+ }
62
+ }
63
+ }
64
+ }
65
+ exports.AnimaEventEmitter = AnimaEventEmitter;
66
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAiBH,MAAa,iBAAiB;IACpB,QAAQ,GAAwC,IAAI,GAAG,EAAE,CAAC;IAElE;;;OAGG;IACH,EAAE,CAAgC,KAAQ,EAAE,OAAuC;QACjF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,IAAI,CAAgC,KAAQ,EAAE,OAAuC;QACnF,MAAM,OAAO,GAAmC,CAAC,IAAI,EAAE,EAAE;YACvD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACzB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC;QACF,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,GAAG,CAAgC,KAAQ,EAAE,OAAuC;QAClF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAA2B;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAgC,KAAQ,EAAE,IAAsB;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAE7C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC;CACF;AA3DD,8CA2DC"}
package/dist/index.d.ts CHANGED
@@ -11,6 +11,9 @@ export { MemoryEngine } from './memory';
11
11
  export { IdentityManager } from './identity';
12
12
  export { ReflectionEngine } from './reflection';
13
13
  export { SigningEngine } from './signing';
14
+ export { AnimaEventEmitter } from './events';
15
+ export { RelationshipEngine } from './relationships';
16
+ export type { AnimaEventMap } from './events';
14
17
  export type { AnimaConfig, Memory, MemoryType, MemoryTier, ImportanceLevel, Identity, VoiceCalibration, Opinion, OpinionHistory, Relationship, Checkpoint, WakeContext, SessionSummary, DecayConfig, MemoryConflict, AnimaEvent, AutoSaveConfig, } from './types';
15
18
  export type { KeyBundle, SignedIdentity, VerificationResult, } from './signing';
16
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,YAAY,EACV,WAAW,EACX,MAAM,EACN,UAAU,EACV,UAAU,EACV,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,cAAc,EACd,YAAY,EACZ,UAAU,EACV,WAAW,EACX,cAAc,EACd,WAAW,EACX,cAAc,EACd,UAAU,EACV,cAAc,GACf,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,SAAS,EACT,cAAc,EACd,kBAAkB,GACnB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,YAAY,EACV,WAAW,EACX,MAAM,EACN,UAAU,EACV,UAAU,EACV,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,cAAc,EACd,YAAY,EACZ,UAAU,EACV,WAAW,EACX,cAAc,EACd,WAAW,EACX,cAAc,EACd,UAAU,EACV,cAAc,GACf,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,SAAS,EACT,cAAc,EACd,kBAAkB,GACnB,MAAM,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -8,7 +8,7 @@
8
8
  * @see https://getanima.net
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.SigningEngine = exports.ReflectionEngine = exports.IdentityManager = exports.MemoryEngine = exports.Anima = void 0;
11
+ exports.RelationshipEngine = exports.AnimaEventEmitter = exports.SigningEngine = exports.ReflectionEngine = exports.IdentityManager = exports.MemoryEngine = exports.Anima = void 0;
12
12
  var anima_1 = require("./anima");
13
13
  Object.defineProperty(exports, "Anima", { enumerable: true, get: function () { return anima_1.Anima; } });
14
14
  var memory_1 = require("./memory");
@@ -19,4 +19,8 @@ var reflection_1 = require("./reflection");
19
19
  Object.defineProperty(exports, "ReflectionEngine", { enumerable: true, get: function () { return reflection_1.ReflectionEngine; } });
20
20
  var signing_1 = require("./signing");
21
21
  Object.defineProperty(exports, "SigningEngine", { enumerable: true, get: function () { return signing_1.SigningEngine; } });
22
+ var events_1 = require("./events");
23
+ Object.defineProperty(exports, "AnimaEventEmitter", { enumerable: true, get: function () { return events_1.AnimaEventEmitter; } });
24
+ var relationships_1 = require("./relationships");
25
+ Object.defineProperty(exports, "RelationshipEngine", { enumerable: true, get: function () { return relationships_1.RelationshipEngine; } });
22
26
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AACrB,uCAA6C;AAApC,2GAAA,eAAe,OAAA;AACxB,2CAAgD;AAAvC,8GAAA,gBAAgB,OAAA;AACzB,qCAA0C;AAAjC,wGAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AACrB,uCAA6C;AAApC,2GAAA,eAAe,OAAA;AACxB,2CAAgD;AAAvC,8GAAA,gBAAgB,OAAA;AACzB,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AACtB,mCAA6C;AAApC,2GAAA,iBAAiB,OAAA;AAC1B,iDAAqD;AAA5C,mHAAA,kBAAkB,OAAA"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Relationship Engine — track who you know, how you know them, and what matters.
3
+ *
4
+ * File-based. JSON storage. Zero external dependencies.
5
+ *
6
+ * Storage: {storagePath}/relationships/relationships.json
7
+ */
8
+ import type { Relationship } from './types';
9
+ export declare class RelationshipEngine {
10
+ private storagePath;
11
+ private filePath;
12
+ private relationships;
13
+ private loaded;
14
+ constructor(storagePath: string);
15
+ /** Load relationships from disk. */
16
+ load(): Promise<Relationship[]>;
17
+ /** Save current state to disk. */
18
+ private save;
19
+ private ensureLoaded;
20
+ /** Get all relationships. */
21
+ getAll(): Relationship[];
22
+ /** Find a relationship by name (case-insensitive). */
23
+ find(name: string): Relationship | undefined;
24
+ /** Find a relationship by ID. */
25
+ findById(id: string): Relationship | undefined;
26
+ /** Add or update a relationship. If name exists, updates it. Returns the relationship. */
27
+ meet(input: {
28
+ name: string;
29
+ type?: 'human' | 'agent' | 'entity';
30
+ context?: string;
31
+ notes?: string[];
32
+ preferences?: string[];
33
+ }): Promise<Relationship>;
34
+ /** Record an interaction (bumps count + timestamp). */
35
+ interact(name: string, note?: string): Promise<Relationship | null>;
36
+ /** Add a note to a relationship. */
37
+ addNote(name: string, note: string): Promise<boolean>;
38
+ /** Remove a relationship by name. */
39
+ forget(name: string): Promise<boolean>;
40
+ /** Get relationships sorted by most recent interaction. */
41
+ recent(limit?: number): Relationship[];
42
+ /** Get relationships sorted by interaction count. */
43
+ closest(limit?: number): Relationship[];
44
+ }
45
+ //# sourceMappingURL=relationships.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../src/relationships.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAK5C,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,MAAM,CAAS;gBAEX,WAAW,EAAE,MAAM;IAK/B,oCAAoC;IAC9B,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAerC,kCAAkC;YACpB,IAAI;IAIlB,OAAO,CAAC,YAAY;IAIpB,6BAA6B;IAC7B,MAAM,IAAI,YAAY,EAAE;IAKxB,sDAAsD;IACtD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAM5C,iCAAiC;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAK9C,0FAA0F;IACpF,IAAI,CAAC,KAAK,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;QACpC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,GAAG,OAAO,CAAC,YAAY,CAAC;IAkCzB,uDAAuD;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAWzE,oCAAoC;IAC9B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS3D,qCAAqC;IAC/B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU5C,2DAA2D;IAC3D,MAAM,CAAC,KAAK,SAAK,GAAG,YAAY,EAAE;IAOlC,qDAAqD;IACrD,OAAO,CAAC,KAAK,SAAK,GAAG,YAAY,EAAE;CAMpC"}
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ /**
3
+ * Relationship Engine — track who you know, how you know them, and what matters.
4
+ *
5
+ * File-based. JSON storage. Zero external dependencies.
6
+ *
7
+ * Storage: {storagePath}/relationships/relationships.json
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.RelationshipEngine = void 0;
11
+ const utils_1 = require("./utils");
12
+ const path_1 = require("path");
13
+ const promises_1 = require("fs/promises");
14
+ class RelationshipEngine {
15
+ storagePath;
16
+ filePath;
17
+ relationships = [];
18
+ loaded = false;
19
+ constructor(storagePath) {
20
+ this.storagePath = storagePath;
21
+ this.filePath = (0, path_1.join)(storagePath, 'relationships', 'relationships.json');
22
+ }
23
+ /** Load relationships from disk. */
24
+ async load() {
25
+ const dir = (0, path_1.join)(this.storagePath, 'relationships');
26
+ await (0, promises_1.mkdir)(dir, { recursive: true });
27
+ const raw = await (0, utils_1.readFileSafe)(this.filePath);
28
+ if (raw) {
29
+ try {
30
+ this.relationships = JSON.parse(raw);
31
+ }
32
+ catch {
33
+ this.relationships = [];
34
+ }
35
+ }
36
+ this.loaded = true;
37
+ return this.relationships;
38
+ }
39
+ /** Save current state to disk. */
40
+ async save() {
41
+ await (0, utils_1.writeFileSafe)(this.filePath, JSON.stringify(this.relationships, null, 2));
42
+ }
43
+ ensureLoaded() {
44
+ if (!this.loaded)
45
+ throw new Error('RelationshipEngine not loaded. Call load() first.');
46
+ }
47
+ /** Get all relationships. */
48
+ getAll() {
49
+ this.ensureLoaded();
50
+ return [...this.relationships];
51
+ }
52
+ /** Find a relationship by name (case-insensitive). */
53
+ find(name) {
54
+ this.ensureLoaded();
55
+ const lower = name.toLowerCase();
56
+ return this.relationships.find(r => r.name.toLowerCase() === lower);
57
+ }
58
+ /** Find a relationship by ID. */
59
+ findById(id) {
60
+ this.ensureLoaded();
61
+ return this.relationships.find(r => r.id === id);
62
+ }
63
+ /** Add or update a relationship. If name exists, updates it. Returns the relationship. */
64
+ async meet(input) {
65
+ this.ensureLoaded();
66
+ const existing = this.find(input.name);
67
+ if (existing) {
68
+ // Update existing
69
+ existing.lastInteraction = (0, utils_1.now)();
70
+ existing.interactionCount++;
71
+ if (input.context)
72
+ existing.context = input.context;
73
+ if (input.notes)
74
+ existing.notes.push(...input.notes);
75
+ if (input.preferences) {
76
+ existing.preferences = [...new Set([...(existing.preferences || []), ...input.preferences])];
77
+ }
78
+ await this.save();
79
+ return existing;
80
+ }
81
+ // Create new
82
+ const rel = {
83
+ id: (0, utils_1.uid)(),
84
+ name: input.name,
85
+ type: input.type || 'human',
86
+ context: input.context || '',
87
+ interactionCount: 1,
88
+ firstMet: (0, utils_1.now)(),
89
+ lastInteraction: (0, utils_1.now)(),
90
+ preferences: input.preferences || [],
91
+ notes: input.notes || [],
92
+ };
93
+ this.relationships.push(rel);
94
+ await this.save();
95
+ return rel;
96
+ }
97
+ /** Record an interaction (bumps count + timestamp). */
98
+ async interact(name, note) {
99
+ this.ensureLoaded();
100
+ const rel = this.find(name);
101
+ if (!rel)
102
+ return null;
103
+ rel.interactionCount++;
104
+ rel.lastInteraction = (0, utils_1.now)();
105
+ if (note)
106
+ rel.notes.push(note);
107
+ await this.save();
108
+ return rel;
109
+ }
110
+ /** Add a note to a relationship. */
111
+ async addNote(name, note) {
112
+ this.ensureLoaded();
113
+ const rel = this.find(name);
114
+ if (!rel)
115
+ return false;
116
+ rel.notes.push(note);
117
+ await this.save();
118
+ return true;
119
+ }
120
+ /** Remove a relationship by name. */
121
+ async forget(name) {
122
+ this.ensureLoaded();
123
+ const lower = name.toLowerCase();
124
+ const idx = this.relationships.findIndex(r => r.name.toLowerCase() === lower);
125
+ if (idx === -1)
126
+ return false;
127
+ this.relationships.splice(idx, 1);
128
+ await this.save();
129
+ return true;
130
+ }
131
+ /** Get relationships sorted by most recent interaction. */
132
+ recent(limit = 10) {
133
+ this.ensureLoaded();
134
+ return [...this.relationships]
135
+ .sort((a, b) => new Date(b.lastInteraction).getTime() - new Date(a.lastInteraction).getTime())
136
+ .slice(0, limit);
137
+ }
138
+ /** Get relationships sorted by interaction count. */
139
+ closest(limit = 10) {
140
+ this.ensureLoaded();
141
+ return [...this.relationships]
142
+ .sort((a, b) => b.interactionCount - a.interactionCount)
143
+ .slice(0, limit);
144
+ }
145
+ }
146
+ exports.RelationshipEngine = RelationshipEngine;
147
+ //# sourceMappingURL=relationships.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationships.js","sourceRoot":"","sources":["../src/relationships.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getanima/core",
3
- "version": "0.2.3",
3
+ "version": "0.3.0",
4
4
  "description": "Identity and memory infrastructure for AI agents",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/esm/index.js",