@auxiora/personality 1.3.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/__tests__/architect-awareness-collector.test.js +42 -0
  2. package/dist/__tests__/architect-awareness-collector.test.js.map +1 -1
  3. package/dist/architect-awareness-collector.d.ts +6 -0
  4. package/dist/architect-awareness-collector.d.ts.map +1 -1
  5. package/dist/architect-awareness-collector.js +16 -0
  6. package/dist/architect-awareness-collector.js.map +1 -1
  7. package/dist/architect-bridge.d.ts +4 -0
  8. package/dist/architect-bridge.d.ts.map +1 -1
  9. package/dist/architect-bridge.js +9 -2
  10. package/dist/architect-bridge.js.map +1 -1
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/lib/custom-weights.d.ts +7 -1
  14. package/lib/custom-weights.js +17 -0
  15. package/lib/decision-log.d.ts +41 -0
  16. package/lib/decision-log.js +145 -0
  17. package/lib/feedback-store.d.ts +45 -0
  18. package/lib/feedback-store.js +152 -0
  19. package/lib/index.d.ts +33 -160
  20. package/lib/index.d.ts.map +1 -1
  21. package/lib/index.js +31 -483
  22. package/lib/index.js.map +1 -1
  23. package/lib/persistence.d.ts +6 -0
  24. package/lib/persistence.js +9 -2
  25. package/lib/preference-history.d.ts +45 -0
  26. package/lib/preference-history.js +132 -0
  27. package/lib/schema.d.ts +6 -0
  28. package/lib/schema.d.ts.map +1 -1
  29. package/lib/system-prompt.js +11 -1
  30. package/lib/the-architect/context-detector.js.map +1 -1
  31. package/lib/the-architect/conversation-context.d.ts.map +1 -0
  32. package/lib/the-architect/conversation-export.d.ts.map +1 -0
  33. package/lib/the-architect/conversation-export.js.map +1 -0
  34. package/lib/the-architect/custom-weights.d.ts +7 -1
  35. package/lib/the-architect/custom-weights.d.ts.map +1 -0
  36. package/lib/the-architect/custom-weights.js +17 -0
  37. package/lib/the-architect/custom-weights.js.map +1 -0
  38. package/lib/the-architect/decision-log.d.ts +41 -0
  39. package/lib/the-architect/decision-log.d.ts.map +1 -0
  40. package/lib/the-architect/decision-log.js +145 -0
  41. package/lib/the-architect/decision-log.js.map +1 -0
  42. package/lib/the-architect/emotional-tracker.d.ts.map +1 -0
  43. package/lib/the-architect/emotional-tracker.js.map +1 -0
  44. package/lib/the-architect/feedback-store.d.ts +45 -0
  45. package/lib/the-architect/feedback-store.d.ts.map +1 -0
  46. package/lib/the-architect/feedback-store.js +152 -0
  47. package/lib/the-architect/feedback-store.js.map +1 -0
  48. package/lib/the-architect/index.d.ts +48 -5
  49. package/lib/the-architect/index.d.ts.map +1 -1
  50. package/lib/the-architect/index.js +142 -8
  51. package/lib/the-architect/index.js.map +1 -1
  52. package/lib/the-architect/persistence-adapter.d.ts.map +1 -0
  53. package/lib/the-architect/persistence-adapter.js.map +1 -0
  54. package/lib/the-architect/persistence.d.ts +6 -0
  55. package/lib/the-architect/persistence.d.ts.map +1 -0
  56. package/lib/the-architect/persistence.js +9 -2
  57. package/lib/the-architect/persistence.js.map +1 -0
  58. package/lib/the-architect/preference-history.d.ts +45 -0
  59. package/lib/the-architect/preference-history.d.ts.map +1 -0
  60. package/lib/the-architect/preference-history.js +132 -0
  61. package/lib/the-architect/preference-history.js.map +1 -0
  62. package/lib/the-architect/recommender.d.ts.map +1 -0
  63. package/lib/the-architect/recommender.js.map +1 -0
  64. package/lib/the-architect/system-prompt.d.ts.map +1 -1
  65. package/lib/the-architect/system-prompt.js +11 -1
  66. package/lib/the-architect/system-prompt.js.map +1 -1
  67. package/lib/the-architect/user-model-synthesizer.d.ts +100 -0
  68. package/lib/the-architect/user-model-synthesizer.d.ts.map +1 -0
  69. package/lib/the-architect/user-model-synthesizer.js +224 -0
  70. package/lib/the-architect/user-model-synthesizer.js.map +1 -0
  71. package/lib/user-model-synthesizer.d.ts +100 -0
  72. package/lib/user-model-synthesizer.js +224 -0
  73. package/package.json +4 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback-store.d.ts","sourceRoot":"","sources":["feedback-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAM5D,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,YAAY,GAAG,aAAa,GAAG,WAAW,GAAG,YAAY,CAAC;AAEnG,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,oBAAoB,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,iDAAiD;IACjD,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,mEAAmE;IACnE,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC5C,4BAA4B;IAC5B,aAAa,EAAE,MAAM,CAAC;CACvB;AAqDD,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,UAAU,CAAO;IAEzB,sEAAsE;IACtE,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,IAAI;IAajE;;;;;;OAMG;IACH,WAAW,IAAI,eAAe;IAiE9B,0CAA0C;IAC1C,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,EAAE;IAIpD,0DAA0D;IAC1D,cAAc,CAAC,UAAU,SAAK,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ;IAKrE,uCAAuC;IACvC,SAAS,IAAI,MAAM;IAInB,0CAA0C;IAC1C,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAS/C,+CAA+C;IAC/C,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,152 @@
1
+ // ────────────────────────────────────────────────────────────────────────────
2
+ // Helpers
3
+ // ────────────────────────────────────────────────────────────────────────────
4
+ /** Generate a v4-style UUID without crypto dependency. */
5
+ function generateId() {
6
+ const hex = '0123456789abcdef';
7
+ const segments = [8, 4, 4, 4, 12];
8
+ return segments.map(len => {
9
+ let s = '';
10
+ for (let i = 0; i < len; i++) {
11
+ s += hex[Math.floor(Math.random() * 16)];
12
+ }
13
+ return s;
14
+ }).join('-');
15
+ }
16
+ /**
17
+ * Compute the helpful ratio for a slice of entries.
18
+ * Returns 0 if the slice is empty.
19
+ */
20
+ function helpfulRatio(entries) {
21
+ if (entries.length === 0)
22
+ return 0;
23
+ const helpful = entries.filter(e => e.rating === 'helpful').length;
24
+ return helpful / entries.length;
25
+ }
26
+ /**
27
+ * Compare helpful ratios of first half vs second half.
28
+ * A difference > 0.10 in either direction triggers a trend change.
29
+ */
30
+ function computeTrend(entries) {
31
+ if (entries.length < 2)
32
+ return 'stable';
33
+ const mid = Math.floor(entries.length / 2);
34
+ const firstHalf = entries.slice(0, mid);
35
+ const secondHalf = entries.slice(mid);
36
+ const firstRatio = helpfulRatio(firstHalf);
37
+ const secondRatio = helpfulRatio(secondHalf);
38
+ const diff = secondRatio - firstRatio;
39
+ if (diff > 0.10)
40
+ return 'improving';
41
+ if (diff < -0.10)
42
+ return 'declining';
43
+ return 'stable';
44
+ }
45
+ // ────────────────────────────────────────────────────────────────────────────
46
+ // FeedbackStore
47
+ // ────────────────────────────────────────────────────────────────────────────
48
+ export class FeedbackStore {
49
+ entries = [];
50
+ maxEntries = 500;
51
+ /** Record feedback on a response. Auto-generates id and timestamp. */
52
+ addFeedback(entry) {
53
+ this.entries.push({
54
+ ...entry,
55
+ id: generateId(),
56
+ timestamp: Date.now(),
57
+ });
58
+ // Drop oldest entries when exceeding capacity
59
+ if (this.entries.length > this.maxEntries) {
60
+ this.entries = this.entries.slice(this.entries.length - this.maxEntries);
61
+ }
62
+ }
63
+ /**
64
+ * Analyze all feedback to produce actionable insights.
65
+ * - too_verbose feedback -> suggest lowering verbosity (negative adjustment)
66
+ * - too_brief feedback -> suggest raising verbosity (positive adjustment)
67
+ * - off_target in a domain -> flag as weak domain
68
+ * - wrong_tone -> suggest adjusting warmth up
69
+ */
70
+ getInsights() {
71
+ const suggestedAdjustments = {};
72
+ const weakDomains = [];
73
+ // Count each rating type across all entries
74
+ let tooVerboseCount = 0;
75
+ let tooBriefCount = 0;
76
+ let wrongToneCount = 0;
77
+ // Count off_target per domain
78
+ const offTargetByDomain = new Map();
79
+ for (const entry of this.entries) {
80
+ switch (entry.rating) {
81
+ case 'too_verbose':
82
+ tooVerboseCount++;
83
+ break;
84
+ case 'too_brief':
85
+ tooBriefCount++;
86
+ break;
87
+ case 'wrong_tone':
88
+ wrongToneCount++;
89
+ break;
90
+ case 'off_target': {
91
+ const count = offTargetByDomain.get(entry.domain) ?? 0;
92
+ offTargetByDomain.set(entry.domain, count + 1);
93
+ break;
94
+ }
95
+ }
96
+ }
97
+ // too_verbose (>= 5) -> lower verbosity, capped at -0.3
98
+ if (tooVerboseCount >= 5) {
99
+ const adj = -0.1 * tooVerboseCount;
100
+ suggestedAdjustments.verbosity = Math.max(adj, -0.3);
101
+ }
102
+ // too_brief (>= 5) -> raise verbosity, capped at +0.3
103
+ if (tooBriefCount >= 5) {
104
+ const adj = 0.1 * tooBriefCount;
105
+ suggestedAdjustments.verbosity = Math.min(adj, 0.3);
106
+ }
107
+ // wrong_tone (>= 5) -> adjust warmth up
108
+ if (wrongToneCount >= 5) {
109
+ suggestedAdjustments.warmth = 0.1;
110
+ }
111
+ // off_target in a domain (>= 3) -> weak domain
112
+ for (const [domain, count] of offTargetByDomain) {
113
+ if (count >= 3) {
114
+ weakDomains.push(domain);
115
+ }
116
+ }
117
+ const trend = computeTrend(this.entries);
118
+ return {
119
+ suggestedAdjustments,
120
+ weakDomains,
121
+ trend,
122
+ totalFeedback: this.entries.length,
123
+ };
124
+ }
125
+ /** Get feedback for a specific domain. */
126
+ getForDomain(domain) {
127
+ return this.entries.filter(e => e.domain === domain);
128
+ }
129
+ /** Get the satisfaction trend over the last N entries. */
130
+ getRecentTrend(windowSize = 20) {
131
+ const window = this.entries.slice(-windowSize);
132
+ return computeTrend(window);
133
+ }
134
+ /** Serialize for encrypted storage. */
135
+ serialize() {
136
+ return JSON.stringify({ entries: this.entries });
137
+ }
138
+ /** Deserialize from encrypted storage. */
139
+ static deserialize(data) {
140
+ const store = new FeedbackStore();
141
+ const parsed = JSON.parse(data);
142
+ if (Array.isArray(parsed.entries)) {
143
+ store.entries = parsed.entries;
144
+ }
145
+ return store;
146
+ }
147
+ /** Clear all feedback (user data deletion). */
148
+ clear() {
149
+ this.entries = [];
150
+ }
151
+ }
152
+ //# sourceMappingURL=feedback-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback-store.js","sourceRoot":"","sources":["feedback-store.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,9 @@ import type { ArchitectPreferences } from './persistence.js';
4
4
  import type { EncryptedStorage } from './persistence-adapter.js';
5
5
  import type { WeightPreset } from './custom-weights.js';
6
6
  import type { ChatMessage, ExportedConversation } from './conversation-export.js';
7
+ import type { Decision, DecisionQuery } from './decision-log.js';
8
+ import type { FeedbackRating, FeedbackInsight } from './feedback-store.js';
9
+ import type { UserModel } from './user-model-synthesizer.js';
7
10
  export type { TraitMix, TraitValue, TaskContext, TraitSource, ContextDomain, EmotionalRegister, ContextSignal, PromptOutput, } from '../schema.js';
8
11
  export { ARCHITECT_BASE_PROMPT } from './system-prompt.js';
9
12
  export { CONTEXT_PROFILES } from './context-profiles.js';
@@ -29,6 +32,14 @@ export type { ArchitectPreferences } from './persistence.js';
29
32
  export type { EncryptedStorage } from './persistence-adapter.js';
30
33
  export { InMemoryEncryptedStorage, VaultStorageAdapter } from './persistence-adapter.js';
31
34
  export type { VaultLike } from './persistence-adapter.js';
35
+ export { PreferenceHistory } from './preference-history.js';
36
+ export type { PreferenceEntry, PreferenceConflict } from './preference-history.js';
37
+ export { DecisionLog } from './decision-log.js';
38
+ export type { Decision, DecisionQuery, DecisionStatus } from './decision-log.js';
39
+ export { FeedbackStore } from './feedback-store.js';
40
+ export type { FeedbackRating, FeedbackEntry, FeedbackInsight } from './feedback-store.js';
41
+ export { UserModelSynthesizer } from './user-model-synthesizer.js';
42
+ export type { UserModel, DomainProfile, CommunicationStyle, SatisfactionProfile, CorrectionSummary } from './user-model-synthesizer.js';
32
43
  type Message = {
33
44
  role: string;
34
45
  content: string;
@@ -51,6 +62,9 @@ export declare class TheArchitect {
51
62
  private conversationContext;
52
63
  private emotionalTracker;
53
64
  private customWeights;
65
+ private preferenceHistory;
66
+ private decisionLog;
67
+ private feedbackStore;
54
68
  private persistence?;
55
69
  private preferences?;
56
70
  private initialized;
@@ -109,18 +123,47 @@ export declare class TheArchitect {
109
123
  getConversationSummary(): import("./conversation-context.js").ConversationSummary;
110
124
  /** Get the current emotional trajectory. */
111
125
  getEmotionalState(): import("./emotional-tracker.js").EffectiveEmotion;
112
- /** Set a custom trait weight offset. Persists if storage is available. */
113
- setTraitOverride(trait: keyof TraitMix, offset: number): Promise<void>;
126
+ /** Set a custom trait weight offset. Records in preference history and persists. */
127
+ setTraitOverride(trait: keyof TraitMix, offset: number, source?: 'user' | 'preset' | 'feedback', reason?: string): Promise<void>;
114
128
  /** Remove a custom trait weight override. */
115
129
  removeTraitOverride(trait: keyof TraitMix): Promise<void>;
116
- /** Load a preset weight configuration. */
130
+ /** Load a preset weight configuration. Records each override in preference history. */
117
131
  loadPreset(presetName: string): Promise<void>;
118
132
  /** Returns available weight presets. */
119
133
  listPresets(): Record<string, WeightPreset>;
120
134
  /** Returns current custom weight overrides. */
121
135
  getActiveOverrides(): Partial<Record<keyof TraitMix, number>>;
122
- /** Persist custom weights to encrypted storage. */
136
+ /** Persist custom weights and preference history to encrypted storage. */
123
137
  private persistCustomWeights;
138
+ /** Get conflicts in preference history. */
139
+ getPreferenceConflicts(): import("./preference-history.js").PreferenceConflict[];
140
+ /** Get preference change history for a trait. */
141
+ getPreferenceHistory(trait: keyof TraitMix): import("./preference-history.js").PreferenceEntry[];
142
+ /** Record a decision for cross-session tracking. */
143
+ recordDecision(decision: Omit<Decision, 'id' | 'timestamp' | 'tags'>): Promise<Decision>;
144
+ /** Update a decision's status or outcome. */
145
+ updateDecision(id: string, updates: Partial<Pick<Decision, 'status' | 'outcome' | 'followUpDate'>>): Promise<void>;
146
+ /** Query decisions with filters. */
147
+ queryDecisions(q: DecisionQuery): Decision[];
148
+ /** Get decisions due for follow-up. */
149
+ getDueFollowUps(): Decision[];
150
+ /** Persist decision log to encrypted storage. */
151
+ private persistDecisionLog;
152
+ /** Record feedback on a response. */
153
+ recordFeedback(feedback: {
154
+ domain: ContextDomain;
155
+ rating: FeedbackRating;
156
+ traitSnapshot?: Partial<Record<keyof TraitMix, number>>;
157
+ note?: string;
158
+ }): Promise<void>;
159
+ /** Get actionable feedback insights. */
160
+ getFeedbackInsights(): FeedbackInsight;
161
+ /** Get satisfaction trend over recent feedback. */
162
+ getFeedbackTrend(windowSize?: number): 'improving' | 'declining' | 'stable';
163
+ /** Persist feedback store to encrypted storage. */
164
+ private persistFeedbackStore;
165
+ /** Synthesize a complete user model from all data stores. */
166
+ getUserModel(): UserModel;
124
167
  /**
125
168
  * Apply trajectory-based multipliers on top of standard emotional overrides.
126
169
  * Caps all values at 1.0.
@@ -141,7 +184,7 @@ export declare class TheArchitect {
141
184
  getPreferences(): Promise<ArchitectPreferences>;
142
185
  /** Update a single preference and persist. */
143
186
  updatePreference<K extends keyof ArchitectPreferences>(key: K, value: ArchitectPreferences[K]): Promise<void>;
144
- /** Clear all persisted data: corrections, preferences, usage history. */
187
+ /** Clear all persisted data: corrections, preferences, usage history, and self-awareness stores. */
145
188
  clearAllData(): Promise<void>;
146
189
  /**
147
190
  * Export a conversation with full personality engine metadata.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAMpG,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,YAAY,EACV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,YAAY,GACb,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAMpF,KAAK,OAAO,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AA8BjD;;;;;;GAMG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,eAAe,CAA0C;IAEjE;;;;;;OAMG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,YAAY;IAoBtE;;;OAGG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,WAAW;IAIpE;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,QAAQ;IAK3C,kDAAkD;IAClD,aAAa,IAAI,MAAM;IAIvB;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI;IAItD;;;OAGG;IACH,kBAAkB,IAAI,KAAK,CAAC;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAI1F;;;OAGG;IACH,gBAAgB,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,WAAW,EAAE;IAO/C;;;OAGG;IACH,gBAAgB,CACd,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,aAAa,EAC7B,eAAe,EAAE,aAAa,GAC7B,IAAI;IAWP,yEAAyE;IACzE,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAI7C,uEAAuE;IACvE,iBAAiB,IAAI,MAAM;IAI3B,gEAAgE;IAChE,kBAAkB,IAAI,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;CAG9D;AAMD,wCAAwC;AACxC,wBAAgB,eAAe,IAAI,YAAY,CAE9C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
@@ -84,6 +84,10 @@ import { ConversationContext } from './conversation-context.js';
84
84
  import { EmotionalTracker, estimateIntensity } from './emotional-tracker.js';
85
85
  import { CustomWeights, WEIGHT_PRESETS } from './custom-weights.js';
86
86
  import { ConversationExporter } from './conversation-export.js';
87
+ import { PreferenceHistory } from './preference-history.js';
88
+ import { DecisionLog } from './decision-log.js';
89
+ import { FeedbackStore } from './feedback-store.js';
90
+ import { UserModelSynthesizer } from './user-model-synthesizer.js';
87
91
  // Re-export building blocks for advanced consumers
88
92
  export { ARCHITECT_BASE_PROMPT } from './system-prompt.js';
89
93
  export { CONTEXT_PROFILES } from './context-profiles.js';
@@ -100,6 +104,11 @@ export { CustomWeights, WEIGHT_PRESETS } from './custom-weights.js';
100
104
  export { ConversationExporter } from './conversation-export.js';
101
105
  export { ArchitectPersistence } from './persistence.js';
102
106
  export { InMemoryEncryptedStorage, VaultStorageAdapter } from './persistence-adapter.js';
107
+ // Phase 5: self-awareness modules
108
+ export { PreferenceHistory } from './preference-history.js';
109
+ export { DecisionLog } from './decision-log.js';
110
+ export { FeedbackStore } from './feedback-store.js';
111
+ export { UserModelSynthesizer } from './user-model-synthesizer.js';
103
112
  // ────────────────────────────────────────────────────────────────────────────
104
113
  // Domain metadata
105
114
  // ────────────────────────────────────────────────────────────────────────────
@@ -143,6 +152,9 @@ export class TheArchitect {
143
152
  conversationContext;
144
153
  emotionalTracker;
145
154
  customWeights;
155
+ preferenceHistory;
156
+ decisionLog;
157
+ feedbackStore;
146
158
  persistence;
147
159
  preferences;
148
160
  initialized = false;
@@ -152,6 +164,9 @@ export class TheArchitect {
152
164
  this.conversationContext = new ConversationContext();
153
165
  this.emotionalTracker = new EmotionalTracker();
154
166
  this.customWeights = new CustomWeights();
167
+ this.preferenceHistory = new PreferenceHistory();
168
+ this.decisionLog = new DecisionLog();
169
+ this.feedbackStore = new FeedbackStore();
155
170
  if (storage) {
156
171
  this.persistence = new ArchitectPersistence(storage);
157
172
  }
@@ -173,6 +188,15 @@ export class TheArchitect {
173
188
  if (prefs.customWeights) {
174
189
  this.customWeights = CustomWeights.deserialize(prefs.customWeights);
175
190
  }
191
+ if (prefs.preferenceHistory) {
192
+ this.preferenceHistory = PreferenceHistory.deserialize(prefs.preferenceHistory);
193
+ }
194
+ if (prefs.decisionLog) {
195
+ this.decisionLog = DecisionLog.deserialize(prefs.decisionLog);
196
+ }
197
+ if (prefs.feedbackStore) {
198
+ this.feedbackStore = FeedbackStore.deserialize(prefs.feedbackStore);
199
+ }
176
200
  this.initialized = true;
177
201
  }
178
202
  /**
@@ -218,8 +242,11 @@ export class TheArchitect {
218
242
  this.emotionalTracker.recordEmotion(context.emotionalRegister, intensity, userMessage);
219
243
  const effective = this.emotionalTracker.getEffectiveEmotion();
220
244
  adjustedMix = this.applyTrajectoryMultipliers(adjustedMix, effective.trajectory);
221
- // Apply user's custom trait weight adjustments (additive offsets)
222
- adjustedMix = this.customWeights.apply(adjustedMix);
245
+ // Apply user's custom trait weight adjustments (history-aware when available)
246
+ if (this.preferenceHistory.getTraitHistory('warmth').length > 0 ||
247
+ Object.keys(this.customWeights.getOverrides()).length > 0) {
248
+ adjustedMix = this.customWeights.applyWithHistory(adjustedMix, context.domain, this.preferenceHistory);
249
+ }
223
250
  const modifier = assemblePromptModifier(adjustedMix, context);
224
251
  const sources = getActiveSources(adjustedMix);
225
252
  // Fire-and-forget persistence of usage
@@ -232,6 +259,12 @@ export class TheArchitect {
232
259
  const usageHistory = this.preferences?.contextUsageHistory ?? {};
233
260
  recommendation = this.recommender.shouldRecommend(context, this.correctionStore, usageHistory, userMessage) ?? undefined;
234
261
  }
262
+ // Gather relevant decisions and feedback insights
263
+ const dueFollowUps = this.decisionLog.getDueFollowUps();
264
+ const recentDomainDecisions = this.decisionLog.getRecentForDomain(context.domain, 5);
265
+ const relevantDecisions = [...dueFollowUps, ...recentDomainDecisions.filter(d => !dueFollowUps.some(f => f.id === d.id))];
266
+ const feedbackInsight = this.feedbackStore.getInsights();
267
+ const hasFeedbackInsight = feedbackInsight.totalFeedback > 0;
235
268
  return {
236
269
  basePrompt: ARCHITECT_BASE_PROMPT,
237
270
  contextModifier: modifier,
@@ -241,6 +274,8 @@ export class TheArchitect {
241
274
  emotionalTrajectory: effective.trajectory,
242
275
  escalationAlert: effective.escalationAlert || undefined,
243
276
  recommendation,
277
+ relevantDecisions: relevantDecisions.length > 0 ? relevantDecisions : undefined,
278
+ feedbackInsight: hasFeedbackInsight ? feedbackInsight : undefined,
244
279
  };
245
280
  }
246
281
  /**
@@ -299,9 +334,16 @@ export class TheArchitect {
299
334
  return this.emotionalTracker.getEffectiveEmotion();
300
335
  }
301
336
  // ── Custom weights ───────────────────────────────────────────────────
302
- /** Set a custom trait weight offset. Persists if storage is available. */
303
- async setTraitOverride(trait, offset) {
337
+ /** Set a custom trait weight offset. Records in preference history and persists. */
338
+ async setTraitOverride(trait, offset, source = 'user', reason) {
304
339
  this.customWeights.setOverride(trait, offset);
340
+ this.preferenceHistory.record({
341
+ trait,
342
+ offset,
343
+ context: this.contextOverride,
344
+ source,
345
+ reason,
346
+ });
305
347
  await this.persistCustomWeights();
306
348
  }
307
349
  /** Remove a custom trait weight override. */
@@ -309,9 +351,19 @@ export class TheArchitect {
309
351
  this.customWeights.removeOverride(trait);
310
352
  await this.persistCustomWeights();
311
353
  }
312
- /** Load a preset weight configuration. */
354
+ /** Load a preset weight configuration. Records each override in preference history. */
313
355
  async loadPreset(presetName) {
314
356
  this.customWeights.loadPreset(presetName);
357
+ const overrides = this.customWeights.getOverrides();
358
+ for (const [trait, offset] of Object.entries(overrides)) {
359
+ this.preferenceHistory.record({
360
+ trait,
361
+ offset,
362
+ context: this.contextOverride,
363
+ source: 'preset',
364
+ reason: presetName,
365
+ });
366
+ }
315
367
  await this.persistCustomWeights();
316
368
  }
317
369
  /** Returns available weight presets. */
@@ -322,15 +374,94 @@ export class TheArchitect {
322
374
  getActiveOverrides() {
323
375
  return this.customWeights.getOverrides();
324
376
  }
325
- /** Persist custom weights to encrypted storage. */
377
+ /** Persist custom weights and preference history to encrypted storage. */
326
378
  async persistCustomWeights() {
327
379
  if (!this.persistence)
328
380
  return;
329
381
  const prefs = await this.persistence.load();
330
382
  prefs.customWeights = this.customWeights.serialize();
383
+ prefs.preferenceHistory = this.preferenceHistory.serialize();
331
384
  await this.persistence.save(prefs);
332
385
  this.preferences = prefs;
333
386
  }
387
+ // ── Preference history ─────────────────────────────────────────────
388
+ /** Get conflicts in preference history. */
389
+ getPreferenceConflicts() {
390
+ return this.preferenceHistory.detectConflicts();
391
+ }
392
+ /** Get preference change history for a trait. */
393
+ getPreferenceHistory(trait) {
394
+ return this.preferenceHistory.getTraitHistory(trait);
395
+ }
396
+ // ── Decision log ──────────────────────────────────────────────────
397
+ /** Record a decision for cross-session tracking. */
398
+ async recordDecision(decision) {
399
+ const result = this.decisionLog.addDecision(decision);
400
+ await this.persistDecisionLog();
401
+ return result;
402
+ }
403
+ /** Update a decision's status or outcome. */
404
+ async updateDecision(id, updates) {
405
+ this.decisionLog.updateDecision(id, updates);
406
+ await this.persistDecisionLog();
407
+ }
408
+ /** Query decisions with filters. */
409
+ queryDecisions(q) {
410
+ return this.decisionLog.query(q);
411
+ }
412
+ /** Get decisions due for follow-up. */
413
+ getDueFollowUps() {
414
+ return this.decisionLog.getDueFollowUps();
415
+ }
416
+ /** Persist decision log to encrypted storage. */
417
+ async persistDecisionLog() {
418
+ if (!this.persistence)
419
+ return;
420
+ const prefs = await this.persistence.load();
421
+ prefs.decisionLog = this.decisionLog.serialize();
422
+ await this.persistence.save(prefs);
423
+ this.preferences = prefs;
424
+ }
425
+ // ── Feedback ──────────────────────────────────────────────────────
426
+ /** Record feedback on a response. */
427
+ async recordFeedback(feedback) {
428
+ this.feedbackStore.addFeedback({
429
+ domain: feedback.domain,
430
+ rating: feedback.rating,
431
+ traitSnapshot: feedback.traitSnapshot ?? {},
432
+ note: feedback.note,
433
+ });
434
+ await this.persistFeedbackStore();
435
+ }
436
+ /** Get actionable feedback insights. */
437
+ getFeedbackInsights() {
438
+ return this.feedbackStore.getInsights();
439
+ }
440
+ /** Get satisfaction trend over recent feedback. */
441
+ getFeedbackTrend(windowSize) {
442
+ return this.feedbackStore.getRecentTrend(windowSize);
443
+ }
444
+ /** Persist feedback store to encrypted storage. */
445
+ async persistFeedbackStore() {
446
+ if (!this.persistence)
447
+ return;
448
+ const prefs = await this.persistence.load();
449
+ prefs.feedbackStore = this.feedbackStore.serialize();
450
+ await this.persistence.save(prefs);
451
+ this.preferences = prefs;
452
+ }
453
+ // ── User model ───────────────────────────────────────────────────────
454
+ /** Synthesize a complete user model from all data stores. */
455
+ getUserModel() {
456
+ const synthesizer = new UserModelSynthesizer({
457
+ preferenceHistory: this.preferenceHistory,
458
+ decisionLog: this.decisionLog,
459
+ feedbackStore: this.feedbackStore,
460
+ correctionStore: this.correctionStore,
461
+ preferences: this.preferences,
462
+ });
463
+ return synthesizer.synthesize();
464
+ }
334
465
  // ── Trajectory multipliers ──────────────────────────────────────────
335
466
  /**
336
467
  * Apply trajectory-based multipliers on top of standard emotional overrides.
@@ -418,7 +549,7 @@ export class TheArchitect {
418
549
  totalInteractions: 0,
419
550
  firstUsed: 0,
420
551
  lastUsed: 0,
421
- version: 1,
552
+ version: 2,
422
553
  };
423
554
  }
424
555
  /** Update a single preference and persist. */
@@ -434,7 +565,7 @@ export class TheArchitect {
434
565
  this.contextOverride = value;
435
566
  }
436
567
  }
437
- /** Clear all persisted data: corrections, preferences, usage history. */
568
+ /** Clear all persisted data: corrections, preferences, usage history, and self-awareness stores. */
438
569
  async clearAllData() {
439
570
  this.correctionStore = new CorrectionStore();
440
571
  this.contextOverride = null;
@@ -442,6 +573,9 @@ export class TheArchitect {
442
573
  this.conversationContext.reset();
443
574
  this.emotionalTracker.reset();
444
575
  this.customWeights.clear();
576
+ this.preferenceHistory.clear();
577
+ this.decisionLog.clear();
578
+ this.feedbackStore.clear();
445
579
  if (this.persistence) {
446
580
  await this.persistence.clearAll();
447
581
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence-adapter.d.ts","sourceRoot":"","sources":["persistence-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC;AAED;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,gBAAgB;IAC/D,OAAO,CAAC,KAAK,CAAkC;IAEzC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAG5C;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,mBAAoB,YAAW,gBAAgB;IAC1D,OAAO,CAAC,KAAK,CAAY;gBAEb,KAAK,EAAE,SAAS;IAItB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAG5C;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACtC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence-adapter.js","sourceRoot":"","sources":["persistence-adapter.ts"],"names":[],"mappings":"AAcA;;;GAGG;AACH,MAAM,OAAO,wBAAwB;IAC3B,KAAK,GAAwB,IAAI,GAAG,EAAE,CAAC;IAE/C,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa;QAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF;AAED;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,mBAAmB;IACtB,KAAK,CAAY;IAEzB,YAAY,KAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa;QAClC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF"}
@@ -6,6 +6,12 @@ export interface ArchitectPreferences {
6
6
  corrections: string;
7
7
  /** Serialized CustomWeights (user trait adjustments). */
8
8
  customWeights?: string;
9
+ /** Serialized PreferenceHistory (timestamped preference changes). */
10
+ preferenceHistory?: string;
11
+ /** Serialized DecisionLog (cross-session decision tracking). */
12
+ decisionLog?: string;
13
+ /** Serialized FeedbackStore (response feedback collection). */
14
+ feedbackStore?: string;
9
15
  /** Whether to show the context indicator pill in the chat UI. */
10
16
  showContextIndicator: boolean;
11
17
  /** Whether to show the sources/provenance button in the chat UI. */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["persistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC;IAEpB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,iEAAiE;IACjE,oBAAoB,EAAE,OAAO,CAAC;IAE9B,oEAAoE;IACpE,iBAAiB,EAAE,OAAO,CAAC;IAE3B,oDAAoD;IACpD,iBAAiB,EAAE,OAAO,CAAC;IAE3B,8DAA8D;IAC9D,cAAc,EAAE,aAAa,GAAG,IAAI,CAAC;IAErC,oEAAoE;IACpE,mBAAmB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAEnD,uDAAuD;IACvD,iBAAiB,EAAE,MAAM,CAAC;IAE1B,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAElB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IAEjB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;CACjB;AA4CD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,MAAM,CAAC,WAAW,CAA2B;gBAEzC,OAAO,EAAE,gBAAgB;IAIrC,+EAA+E;IACzE,IAAI,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAU3C,6EAA6E;IACvE,IAAI,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtD,iEAAiE;IAC3D,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvD,oEAAoE;IAC9D,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5D,2EAA2E;IACrE,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IASjE,uDAAuD;IACjD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,8DAA8D;IACxD,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAKlC,sDAAsD;YACxC,OAAO;CAuCtB"}
@@ -2,7 +2,7 @@ import { CorrectionStore } from './correction-store.js';
2
2
  // ────────────────────────────────────────────────────────────────────────────
3
3
  // Constants
4
4
  // ────────────────────────────────────────────────────────────────────────────
5
- const CURRENT_VERSION = 1;
5
+ const CURRENT_VERSION = 2;
6
6
  const ALL_DOMAINS = [
7
7
  'security_review', 'code_engineering', 'architecture_design', 'debugging',
8
8
  'team_leadership', 'one_on_one', 'sales_pitch', 'negotiation',
@@ -107,9 +107,16 @@ export class ArchitectPersistence {
107
107
  for (const domain of ALL_DOMAINS) {
108
108
  prefs.contextUsageHistory[domain] ??= 0;
109
109
  }
110
+ prefs.version = 1;
111
+ }
112
+ // Version 1 → 2: add self-awareness modules (preference history, decision log, feedback store)
113
+ if (prefs.version === 1) {
114
+ prefs.preferenceHistory ??= undefined;
115
+ prefs.decisionLog ??= undefined;
116
+ prefs.feedbackStore ??= undefined;
110
117
  prefs.version = CURRENT_VERSION;
111
- await this.save(prefs);
112
118
  }
119
+ await this.save(prefs);
113
120
  return prefs;
114
121
  }
115
122
  }