@framers/agentos 0.1.202 → 0.1.203

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.
@@ -18,7 +18,7 @@ import type { MemoryType, EmotionalContext } from '../core/types.js';
18
18
  /**
19
19
  * Why a trace was archived. Enables per-mechanism analytics and filtering.
20
20
  */
21
- export type ArchiveReason = 'temporal_gist' | 'lifecycle_archive' | 'manual_compaction';
21
+ export type ArchiveReason = 'temporal_gist' | 'lifecycle_archive' | 'manual_compaction' | 'perspective_source';
22
22
  /**
23
23
  * Full archived trace record, written to cold storage.
24
24
  *
@@ -1 +1 @@
1
- {"version":3,"file":"IMemoryArchive.d.ts","sourceRoot":"","sources":["../../../src/memory/archive/IMemoryArchive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAMrE;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAMxF;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,eAAe,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,SAAS,EAAE,UAAU,CAAC;IACtB,qCAAqC;IACrC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,+CAA+C;IAC/C,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,kCAAkC;IAClC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEzD;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAErF;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEhC;;;;;;OAMG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAExD;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B"}
1
+ {"version":3,"file":"IMemoryArchive.d.ts","sourceRoot":"","sources":["../../../src/memory/archive/IMemoryArchive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAMrE;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,oBAAoB,CAAC;AAM/G;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,eAAe,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,SAAS,EAAE,UAAU,CAAC;IACtB,qCAAqC;IACrC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,+CAA+C;IAC/C,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,kCAAkC;IAClC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEzD;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAErF;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEhC;;;;;;OAMG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAExD;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"Reconsolidation.d.ts","sourceRoot":"","sources":["../../../../src/memory/mechanisms/retrieval/Reconsolidation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,6BAA6B,EAAqB,MAAM,aAAa,CAAC;AAuBpF;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,QAAQ,EACrB,MAAM,EAAE,6BAA6B,GACpC,IAAI,CAsDN"}
1
+ {"version":3,"file":"Reconsolidation.d.ts","sourceRoot":"","sources":["../../../../src/memory/mechanisms/retrieval/Reconsolidation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,6BAA6B,EAAqB,MAAM,aAAa,CAAC;AAuBpF;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,QAAQ,EACrB,MAAM,EAAE,6BAA6B,GACpC,IAAI,CA0DN"}
@@ -51,7 +51,11 @@ export function applyReconsolidation(trace, currentMood, config) {
51
51
  if (cumulative >= config.maxDriftPerTrace)
52
52
  return;
53
53
  const remaining = config.maxDriftPerTrace - cumulative;
54
- const rate = config.driftRate;
54
+ // Halve drift rate for perspective-encoded traces — they already shifted
55
+ // from objective truth at encoding time; full reconsolidation on retrieval
56
+ // would compound the distortion.
57
+ const perspectiveEncoded = meta.perspectiveEncoded === true;
58
+ const rate = perspectiveEncoded ? config.driftRate * 0.5 : config.driftRate;
55
59
  // Snapshot before drift
56
60
  const before = {
57
61
  valence: trace.emotionalContext.valence,
@@ -1 +1 @@
1
- {"version":3,"file":"Reconsolidation.js","sourceRoot":"","sources":["../../../../src/memory/mechanisms/retrieval/Reconsolidation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Reconsolidation.js","sourceRoot":"","sources":["../../../../src/memory/mechanisms/retrieval/Reconsolidation.ts"],"names":[],"mappings":"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"}
@@ -151,6 +151,12 @@ export interface MechanismMetadata {
151
151
  previousValence: number;
152
152
  previousArousal: number;
153
153
  }>;
154
+ /** PerspectiveObserver: trace was encoded through a persona lens. */
155
+ perspectiveEncoded?: boolean;
156
+ /** PerspectiveObserver: ID of the source objective event. */
157
+ perspectiveSourceEventId?: string;
158
+ /** PerspectiveObserver: SHA-256 of the source objective event content. */
159
+ perspectiveSourceHash?: string;
154
160
  }
155
161
  export interface ResolvedReconsolidationConfig {
156
162
  enabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/memory/mechanisms/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/memory/mechanisms/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * @fileoverview PerspectiveObserver — multi-agent subjective memory encoding.
3
+ *
4
+ * Takes objective events and an array of witnesses, applies gating predicates,
5
+ * then produces per-witness first-person memory traces via LLM rewriting.
6
+ * Each witness's HEXACO traits, current mood, and relationships to entities
7
+ * in the event shape what they notice, feel, and remember.
8
+ *
9
+ * Standalone pipeline stage — sibling to ObservationCompressor and
10
+ * ObservationReflector, not an extension of either.
11
+ *
12
+ * @module agentos/memory/observation/PerspectiveObserver
13
+ * @see {@link ObservationCompressor} for note compression (different job).
14
+ * @see {@link ObservationReflector} for pattern extraction (different job).
15
+ */
16
+ import type { PADState, HexacoTraits } from '../../core/config.js';
17
+ import type { EmotionalContext } from '../../core/types.js';
18
+ /**
19
+ * An objective event witnessed by one or more agents.
20
+ */
21
+ export interface ObservedEvent {
22
+ /** Unique event ID for linking subjective traces back to the source. */
23
+ eventId: string;
24
+ /** Objective event text. */
25
+ content: string;
26
+ /** The player's action text. */
27
+ playerAction: string;
28
+ /** The narrator/system response text. */
29
+ narratorProse: string;
30
+ /** 0-1 importance score. */
31
+ importance: number;
32
+ /** PAD snapshot at the moment of the event. */
33
+ emotionalContext: EmotionalContext;
34
+ /** Entity names involved in the event. */
35
+ entities: string[];
36
+ /** When the event occurred (Unix ms). */
37
+ timestamp: number;
38
+ }
39
+ /**
40
+ * A relationship between a witness and an entity in the event.
41
+ */
42
+ export interface WitnessRelationship {
43
+ entityName: string;
44
+ disposition: 'neutral' | 'friendly' | 'wary' | 'hostile' | 'grateful' | 'fearful';
45
+ trustLevel: number;
46
+ }
47
+ /**
48
+ * An agent witnessing the event.
49
+ */
50
+ export interface Witness {
51
+ agentId: string;
52
+ agentName: string;
53
+ hexaco: HexacoTraits;
54
+ mood: PADState;
55
+ relationships: WitnessRelationship[];
56
+ tier: 'important' | 'combatant' | 'background';
57
+ }
58
+ /**
59
+ * A first-person memory trace produced by perspective rewriting.
60
+ */
61
+ export interface SubjectiveTrace {
62
+ witnessId: string;
63
+ content: string;
64
+ sourceEventId: string;
65
+ originalEventHash: string;
66
+ perspectiveMetadata: {
67
+ hexacoSnapshot: HexacoTraits;
68
+ moodSnapshot: PADState;
69
+ relationshipSnapshot: WitnessRelationship[];
70
+ };
71
+ }
72
+ /**
73
+ * Result of a rewrite batch.
74
+ */
75
+ export interface PerspectiveRewriteResult {
76
+ traces: SubjectiveTrace[];
77
+ fallbacks: Array<{
78
+ witnessId: string;
79
+ reason: string;
80
+ }>;
81
+ llmCallCount: number;
82
+ }
83
+ /**
84
+ * Configuration for PerspectiveObserver.
85
+ */
86
+ export interface PerspectiveObserverConfig {
87
+ /** LLM invoker with (system, user) → response contract. */
88
+ llmInvoker: (system: string, user: string) => Promise<string>;
89
+ /** Minimum importance for perspective encoding. @default 0.3 */
90
+ importanceThreshold?: number;
91
+ /** Max events per LLM call. @default 10 */
92
+ batchSize?: number;
93
+ }
94
+ /**
95
+ * Multi-agent subjective memory encoder.
96
+ *
97
+ * @example
98
+ * ```ts
99
+ * const observer = new PerspectiveObserver({
100
+ * llmInvoker: (sys, usr) => callHaiku(sys, usr),
101
+ * });
102
+ * const result = await observer.rewrite(events, witnesses);
103
+ * for (const trace of result.traces) {
104
+ * await npcBrains.get(trace.witnessId)?.remember(trace.content, {
105
+ * type: 'episodic',
106
+ * tags: ['perspective-encoded'],
107
+ * });
108
+ * }
109
+ * ```
110
+ */
111
+ export declare class PerspectiveObserver {
112
+ private readonly llmInvoker;
113
+ private readonly importanceThreshold;
114
+ private readonly batchSize;
115
+ constructor(config: PerspectiveObserverConfig);
116
+ /**
117
+ * Rewrite objective events from each witness's perspective.
118
+ *
119
+ * Applies gating predicates, batches events per witness, invokes the LLM,
120
+ * and returns per-witness subjective traces. Failures fall back to objective
121
+ * encoding with a reason string.
122
+ *
123
+ * @param events - Objective events to rewrite.
124
+ * @param witnesses - Agents who witnessed the events.
125
+ * @returns Subjective traces + fallback records + LLM call count.
126
+ */
127
+ rewrite(events: ObservedEvent[], witnesses: Witness[]): Promise<PerspectiveRewriteResult>;
128
+ /**
129
+ * Parse LLM response as a JSON array of strings.
130
+ *
131
+ * @param response - Raw LLM response text.
132
+ * @param expectedCount - Number of events in the batch.
133
+ * @returns Parsed string array, or null on failure.
134
+ */
135
+ private parseResponse;
136
+ /** Split an array into chunks of `size`. */
137
+ private chunk;
138
+ }
139
+ //# sourceMappingURL=PerspectiveObserver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerspectiveObserver.d.ts","sourceRoot":"","sources":["../../../../src/memory/pipeline/observation/PerspectiveObserver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAW5D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAClF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,IAAI,EAAE,WAAW,GAAG,WAAW,GAAG,YAAY,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE;QACnB,cAAc,EAAE,YAAY,CAAC;QAC7B,YAAY,EAAE,QAAQ,CAAC;QACvB,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;KAC7C,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,SAAS,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,2DAA2D;IAC3D,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0C;IACrE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,MAAM,EAAE,yBAAyB;IAM7C;;;;;;;;;;OAUG;IACG,OAAO,CACX,MAAM,EAAE,aAAa,EAAE,EACvB,SAAS,EAAE,OAAO,EAAE,GACnB,OAAO,CAAC,wBAAwB,CAAC;IAqFpC;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAarB,4CAA4C;IAC5C,OAAO,CAAC,KAAK;CAOd"}
@@ -0,0 +1,164 @@
1
+ /**
2
+ * @fileoverview PerspectiveObserver — multi-agent subjective memory encoding.
3
+ *
4
+ * Takes objective events and an array of witnesses, applies gating predicates,
5
+ * then produces per-witness first-person memory traces via LLM rewriting.
6
+ * Each witness's HEXACO traits, current mood, and relationships to entities
7
+ * in the event shape what they notice, feel, and remember.
8
+ *
9
+ * Standalone pipeline stage — sibling to ObservationCompressor and
10
+ * ObservationReflector, not an extension of either.
11
+ *
12
+ * @module agentos/memory/observation/PerspectiveObserver
13
+ * @see {@link ObservationCompressor} for note compression (different job).
14
+ * @see {@link ObservationReflector} for pattern extraction (different job).
15
+ */
16
+ import { sha256 } from '../../core/util/crossPlatformCrypto.js';
17
+ import { buildPerspectiveSystemPrompt, buildPerspectiveUserPrompt, } from './perspective-prompt.js';
18
+ // ---------------------------------------------------------------------------
19
+ // Implementation
20
+ // ---------------------------------------------------------------------------
21
+ /**
22
+ * Multi-agent subjective memory encoder.
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * const observer = new PerspectiveObserver({
27
+ * llmInvoker: (sys, usr) => callHaiku(sys, usr),
28
+ * });
29
+ * const result = await observer.rewrite(events, witnesses);
30
+ * for (const trace of result.traces) {
31
+ * await npcBrains.get(trace.witnessId)?.remember(trace.content, {
32
+ * type: 'episodic',
33
+ * tags: ['perspective-encoded'],
34
+ * });
35
+ * }
36
+ * ```
37
+ */
38
+ export class PerspectiveObserver {
39
+ constructor(config) {
40
+ this.llmInvoker = config.llmInvoker;
41
+ this.importanceThreshold = config.importanceThreshold ?? 0.3;
42
+ this.batchSize = config.batchSize ?? 10;
43
+ }
44
+ /**
45
+ * Rewrite objective events from each witness's perspective.
46
+ *
47
+ * Applies gating predicates, batches events per witness, invokes the LLM,
48
+ * and returns per-witness subjective traces. Failures fall back to objective
49
+ * encoding with a reason string.
50
+ *
51
+ * @param events - Objective events to rewrite.
52
+ * @param witnesses - Agents who witnessed the events.
53
+ * @returns Subjective traces + fallback records + LLM call count.
54
+ */
55
+ async rewrite(events, witnesses) {
56
+ const traces = [];
57
+ const fallbacks = [];
58
+ let llmCallCount = 0;
59
+ // Pre-compute event hashes
60
+ const eventHashes = new Map();
61
+ for (const event of events) {
62
+ eventHashes.set(event.eventId, await sha256(event.content));
63
+ }
64
+ for (const witness of witnesses) {
65
+ // Gate: tier
66
+ if (witness.tier !== 'important') {
67
+ fallbacks.push({ witnessId: witness.agentId, reason: `Skipped: tier is '${witness.tier}', not 'important'` });
68
+ continue;
69
+ }
70
+ // Gate: filter events by importance and entity overlap
71
+ const qualifying = events.filter((e) => {
72
+ if (e.importance < this.importanceThreshold)
73
+ return false;
74
+ const witnessEntityNames = new Set(witness.relationships.map((r) => r.entityName.toLowerCase()));
75
+ const eventEntityNames = e.entities.map((n) => n.toLowerCase());
76
+ const hasOverlap = eventEntityNames.some((n) => witnessEntityNames.has(n));
77
+ const witnessNameInEvent = eventEntityNames.includes(witness.agentName.toLowerCase());
78
+ return hasOverlap || witnessNameInEvent;
79
+ });
80
+ if (qualifying.length === 0) {
81
+ const allBelowThreshold = events.every((e) => e.importance < this.importanceThreshold);
82
+ if (allBelowThreshold) {
83
+ fallbacks.push({ witnessId: witness.agentId, reason: 'Skipped: all events below importance threshold' });
84
+ }
85
+ else {
86
+ fallbacks.push({ witnessId: witness.agentId, reason: 'Skipped: no entity overlap with witness relationships' });
87
+ }
88
+ continue;
89
+ }
90
+ // Batch events and invoke LLM per batch
91
+ const systemPrompt = buildPerspectiveSystemPrompt(witness);
92
+ const batches = this.chunk(qualifying, this.batchSize);
93
+ for (const batch of batches) {
94
+ const userPrompt = buildPerspectiveUserPrompt(batch);
95
+ try {
96
+ const response = await this.llmInvoker(systemPrompt, userPrompt);
97
+ llmCallCount++;
98
+ const parsed = this.parseResponse(response, batch.length);
99
+ if (!parsed) {
100
+ const reason = response.trim().startsWith('[')
101
+ ? `Fallback: LLM returned wrong count (expected ${batch.length})`
102
+ : 'Fallback: LLM response failed to parse as JSON array';
103
+ fallbacks.push({ witnessId: witness.agentId, reason });
104
+ continue;
105
+ }
106
+ for (let i = 0; i < parsed.length; i++) {
107
+ const event = batch[i];
108
+ traces.push({
109
+ witnessId: witness.agentId,
110
+ content: parsed[i],
111
+ sourceEventId: event.eventId,
112
+ originalEventHash: eventHashes.get(event.eventId) ?? '',
113
+ perspectiveMetadata: {
114
+ hexacoSnapshot: { ...witness.hexaco },
115
+ moodSnapshot: { ...witness.mood },
116
+ relationshipSnapshot: witness.relationships.map((r) => ({ ...r })),
117
+ },
118
+ });
119
+ }
120
+ }
121
+ catch (err) {
122
+ llmCallCount++;
123
+ fallbacks.push({
124
+ witnessId: witness.agentId,
125
+ reason: `Fallback: ${err instanceof Error ? err.message : String(err)}`,
126
+ });
127
+ }
128
+ }
129
+ }
130
+ return { traces, fallbacks, llmCallCount };
131
+ }
132
+ /**
133
+ * Parse LLM response as a JSON array of strings.
134
+ *
135
+ * @param response - Raw LLM response text.
136
+ * @param expectedCount - Number of events in the batch.
137
+ * @returns Parsed string array, or null on failure.
138
+ */
139
+ parseResponse(response, expectedCount) {
140
+ try {
141
+ const cleaned = response.replace(/^```json?\n?/m, '').replace(/\n?```$/m, '').trim();
142
+ const parsed = JSON.parse(cleaned);
143
+ if (!Array.isArray(parsed))
144
+ return null;
145
+ if (parsed.length !== expectedCount)
146
+ return null;
147
+ if (!parsed.every((item) => typeof item === 'string'))
148
+ return null;
149
+ return parsed;
150
+ }
151
+ catch {
152
+ return null;
153
+ }
154
+ }
155
+ /** Split an array into chunks of `size`. */
156
+ chunk(arr, size) {
157
+ const chunks = [];
158
+ for (let i = 0; i < arr.length; i += size) {
159
+ chunks.push(arr.slice(i, i + size));
160
+ }
161
+ return chunks;
162
+ }
163
+ }
164
+ //# sourceMappingURL=PerspectiveObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerspectiveObserver.js","sourceRoot":"","sources":["../../../../src/memory/pipeline/observation/PerspectiveObserver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @fileoverview Prompt builders for PerspectiveObserver LLM calls.
3
+ *
4
+ * Pure functions that produce the system and user prompts for per-witness
5
+ * first-person memory rewriting. Separated from PerspectiveObserver for
6
+ * testability.
7
+ *
8
+ * @module agentos/memory/observation/perspective-prompt
9
+ * @see {@link PerspectiveObserver} for the consuming class.
10
+ */
11
+ import type { Witness, ObservedEvent } from './PerspectiveObserver.js';
12
+ /**
13
+ * Build the system prompt for a single witness.
14
+ *
15
+ * Encodes the witness's HEXACO personality, current mood, and relationships
16
+ * into instructions for first-person memory rewriting.
17
+ *
18
+ * @param witness - The witness whose perspective shapes the prompt.
19
+ * @returns System prompt string for the LLM call.
20
+ */
21
+ export declare function buildPerspectiveSystemPrompt(witness: Witness): string;
22
+ /**
23
+ * Build the user prompt containing the events to rewrite.
24
+ *
25
+ * @param events - Objective events to rewrite from the witness's perspective.
26
+ * @returns User prompt string listing events as a numbered list.
27
+ */
28
+ export declare function buildPerspectiveUserPrompt(events: ObservedEvent[]): string;
29
+ //# sourceMappingURL=perspective-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perspective-prompt.d.ts","sourceRoot":"","sources":["../../../../src/memory/pipeline/observation/perspective-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEvE;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAiCrE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAK1E"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * @fileoverview Prompt builders for PerspectiveObserver LLM calls.
3
+ *
4
+ * Pure functions that produce the system and user prompts for per-witness
5
+ * first-person memory rewriting. Separated from PerspectiveObserver for
6
+ * testability.
7
+ *
8
+ * @module agentos/memory/observation/perspective-prompt
9
+ * @see {@link PerspectiveObserver} for the consuming class.
10
+ */
11
+ /**
12
+ * Build the system prompt for a single witness.
13
+ *
14
+ * Encodes the witness's HEXACO personality, current mood, and relationships
15
+ * into instructions for first-person memory rewriting.
16
+ *
17
+ * @param witness - The witness whose perspective shapes the prompt.
18
+ * @returns System prompt string for the LLM call.
19
+ */
20
+ export function buildPerspectiveSystemPrompt(witness) {
21
+ const h = witness.hexaco;
22
+ const m = witness.mood;
23
+ const relBlock = witness.relationships.length > 0
24
+ ? witness.relationships
25
+ .map((r) => `- ${r.entityName}: ${r.disposition} (trust: ${r.trustLevel})`)
26
+ .join('\n')
27
+ : '- No known relationships to entities in these events.';
28
+ return `You are encoding memories for ${witness.agentName}. Rewrite each event as this character's first-person memory. What stands out to THEM? What do they notice, feel, emphasize?
29
+
30
+ Personality (HEXACO, 0-1 scale):
31
+ - Honesty: ${h.honesty ?? 0.5} — low: spin things favorably; high: record things as they are
32
+ - Emotionality: ${h.emotionality ?? 0.5} — low: focus on facts; high: focus on feelings and atmosphere
33
+ - Extraversion: ${h.extraversion ?? 0.5} — low: internal monologue; high: focus on social dynamics
34
+ - Agreeableness: ${h.agreeableness ?? 0.5} — low: note conflicts, competition; high: note cooperation
35
+ - Conscientiousness: ${h.conscientiousness ?? 0.5} — low: skip details; high: note commitments, consequences
36
+ - Openness: ${h.openness ?? 0.5} — low: stick to what happened; high: wonder about implications
37
+
38
+ Current mood: valence=${m.valence}, arousal=${m.arousal}, dominance=${m.dominance}
39
+
40
+ Relationships:
41
+ ${relBlock}
42
+
43
+ Rules:
44
+ 1. Write 1-2 sentences per event, first person.
45
+ 2. Personality MUST color the encoding — a suspicious character notices threats, an emotional character remembers how things felt, a conscientious character tracks who promised what.
46
+ 3. Hostile relationships mean interpreting actions with suspicion.
47
+ 4. Friendly relationships mean charitable interpretation.
48
+ 5. Do NOT fabricate events that didn't happen. Rewrite perspective, not facts.
49
+
50
+ Output a JSON array of strings, one per event. No explanation.`;
51
+ }
52
+ /**
53
+ * Build the user prompt containing the events to rewrite.
54
+ *
55
+ * @param events - Objective events to rewrite from the witness's perspective.
56
+ * @returns User prompt string listing events as a numbered list.
57
+ */
58
+ export function buildPerspectiveUserPrompt(events) {
59
+ const list = events
60
+ .map((e, i) => `${i + 1}. ${e.content}`)
61
+ .join('\n');
62
+ return `Events to encode:\n${list}`;
63
+ }
64
+ //# sourceMappingURL=perspective-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perspective-prompt.js","sourceRoot":"","sources":["../../../../src/memory/pipeline/observation/perspective-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH;;;;;;;;GAQG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAAgB;IAC3D,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IACzB,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAEvB,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;QAC/C,CAAC,CAAC,OAAO,CAAC,aAAa;aAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,WAAW,YAAY,CAAC,CAAC,UAAU,GAAG,CAAC;aAC1E,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,uDAAuD,CAAC;IAE5D,OAAO,iCAAiC,OAAO,CAAC,SAAS;;;aAG9C,CAAC,CAAC,OAAO,IAAI,GAAG;kBACX,CAAC,CAAC,YAAY,IAAI,GAAG;kBACrB,CAAC,CAAC,YAAY,IAAI,GAAG;mBACpB,CAAC,CAAC,aAAa,IAAI,GAAG;uBAClB,CAAC,CAAC,iBAAiB,IAAI,GAAG;cACnC,CAAC,CAAC,QAAQ,IAAI,GAAG;;wBAEP,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC,SAAS;;;EAG/E,QAAQ;;;;;;;;;+DASqD,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAuB;IAChE,MAAM,IAAI,GAAG,MAAM;SAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;SACvC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,sBAAsB,IAAI,EAAE,CAAC;AACtC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@framers/agentos",
3
- "version": "0.1.202",
3
+ "version": "0.1.203",
4
4
  "description": "Modular AgentOS orchestration library",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",