@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.
- package/dist/__tests__/architect-awareness-collector.test.js +42 -0
- package/dist/__tests__/architect-awareness-collector.test.js.map +1 -1
- package/dist/architect-awareness-collector.d.ts +6 -0
- package/dist/architect-awareness-collector.d.ts.map +1 -1
- package/dist/architect-awareness-collector.js +16 -0
- package/dist/architect-awareness-collector.js.map +1 -1
- package/dist/architect-bridge.d.ts +4 -0
- package/dist/architect-bridge.d.ts.map +1 -1
- package/dist/architect-bridge.js +9 -2
- package/dist/architect-bridge.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/lib/custom-weights.d.ts +7 -1
- package/lib/custom-weights.js +17 -0
- package/lib/decision-log.d.ts +41 -0
- package/lib/decision-log.js +145 -0
- package/lib/feedback-store.d.ts +45 -0
- package/lib/feedback-store.js +152 -0
- package/lib/index.d.ts +33 -160
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +31 -483
- package/lib/index.js.map +1 -1
- package/lib/persistence.d.ts +6 -0
- package/lib/persistence.js +9 -2
- package/lib/preference-history.d.ts +45 -0
- package/lib/preference-history.js +132 -0
- package/lib/schema.d.ts +6 -0
- package/lib/schema.d.ts.map +1 -1
- package/lib/system-prompt.js +11 -1
- package/lib/the-architect/context-detector.js.map +1 -1
- package/lib/the-architect/conversation-context.d.ts.map +1 -0
- package/lib/the-architect/conversation-export.d.ts.map +1 -0
- package/lib/the-architect/conversation-export.js.map +1 -0
- package/lib/the-architect/custom-weights.d.ts +7 -1
- package/lib/the-architect/custom-weights.d.ts.map +1 -0
- package/lib/the-architect/custom-weights.js +17 -0
- package/lib/the-architect/custom-weights.js.map +1 -0
- package/lib/the-architect/decision-log.d.ts +41 -0
- package/lib/the-architect/decision-log.d.ts.map +1 -0
- package/lib/the-architect/decision-log.js +145 -0
- package/lib/the-architect/decision-log.js.map +1 -0
- package/lib/the-architect/emotional-tracker.d.ts.map +1 -0
- package/lib/the-architect/emotional-tracker.js.map +1 -0
- package/lib/the-architect/feedback-store.d.ts +45 -0
- package/lib/the-architect/feedback-store.d.ts.map +1 -0
- package/lib/the-architect/feedback-store.js +152 -0
- package/lib/the-architect/feedback-store.js.map +1 -0
- package/lib/the-architect/index.d.ts +48 -5
- package/lib/the-architect/index.d.ts.map +1 -1
- package/lib/the-architect/index.js +142 -8
- package/lib/the-architect/index.js.map +1 -1
- package/lib/the-architect/persistence-adapter.d.ts.map +1 -0
- package/lib/the-architect/persistence-adapter.js.map +1 -0
- package/lib/the-architect/persistence.d.ts +6 -0
- package/lib/the-architect/persistence.d.ts.map +1 -0
- package/lib/the-architect/persistence.js +9 -2
- package/lib/the-architect/persistence.js.map +1 -0
- package/lib/the-architect/preference-history.d.ts +45 -0
- package/lib/the-architect/preference-history.d.ts.map +1 -0
- package/lib/the-architect/preference-history.js +132 -0
- package/lib/the-architect/preference-history.js.map +1 -0
- package/lib/the-architect/recommender.d.ts.map +1 -0
- package/lib/the-architect/recommender.js.map +1 -0
- package/lib/the-architect/system-prompt.d.ts.map +1 -1
- package/lib/the-architect/system-prompt.js +11 -1
- package/lib/the-architect/system-prompt.js.map +1 -1
- package/lib/the-architect/user-model-synthesizer.d.ts +100 -0
- package/lib/the-architect/user-model-synthesizer.d.ts.map +1 -0
- package/lib/the-architect/user-model-synthesizer.js +224 -0
- package/lib/the-architect/user-model-synthesizer.js.map +1 -0
- package/lib/user-model-synthesizer.d.ts +100 -0
- package/lib/user-model-synthesizer.js +224 -0
- 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.
|
|
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":"
|
|
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 (
|
|
222
|
-
|
|
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.
|
|
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:
|
|
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":"AAAA,+EAA+E;AAC/E,8CAA8C;AAC9C,+EAA+E;AAC/E,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,yBAAyB;AACzB,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,yBAAyB;AACzB,4EAA4E;AAC5E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,4EAA4E;AAC5E,4EAA4E;AAC5E,yBAAyB;AACzB,4EAA4E;AAC5E,2EAA2E;AAC3E,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,yBAAyB;AACzB,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,6EAA6E;AAC7E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,yBAAyB;AACzB,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,4EAA4E;AAC5E,4EAA4E;AAC5E,EAAE;AACF,+EAA+E;AAG/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAenE,mDAAmD;AACnD,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;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGxD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGzF,kCAAkC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAUnE,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,MAAM,eAAe,GAAyE;IAC5F,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,iEAAiE,EAAE;IACvI,EAAE,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,mDAAmD,EAAE;IAC3H,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,sDAAsD,EAAE;IACpI,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,iEAAiE,EAAE;IAC3H,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,sDAAsD,EAAE;IAC5H,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,6DAA6D,EAAE;IACzH,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,iEAAiE,EAAE;IAC/H,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,0DAA0D,EAAE;IACxH,EAAE,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,yDAAyD,EAAE;IACnI,EAAE,MAAM,EAAE,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,gEAAgE,EAAE;IAC5I,EAAE,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,mEAAmE,EAAE;IAC7I,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,uDAAuD,EAAE;IACzH,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,2DAA2D,EAAE;IACjI,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,8DAA8D,EAAE;IACpI,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,oDAAoD,EAAE;IACpI,EAAE,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,iEAAiE,EAAE;IAC7I,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,kEAAkE,EAAE;CACzH,CAAC;AAEF,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,OAAO,YAAY;IACf,eAAe,GAAyB,IAAI,CAAC;IAC7C,eAAe,CAAkB;IACjC,WAAW,CAAqB;IAChC,mBAAmB,CAAsB;IACzC,gBAAgB,CAAmB;IACnC,aAAa,CAAgB;IAC7B,iBAAiB,CAAoB;IACrC,WAAW,CAAc;IACzB,aAAa,CAAgB;IAC7B,WAAW,CAAwB;IACnC,WAAW,CAAwB;IACnC,WAAW,GAAG,KAAK,CAAC;IAE5B,YAAY,OAA0B;QACpC,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC5C,IAAI,CAAC,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACrD,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACjD,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAClD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACtE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC;QAC9C,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;;;;;;;;OASG;IACH,cAAc,CAAC,WAAmB,EAAE,OAAmB;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,OAAoB,CAAC;QAEzB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,GAAG,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;QAC7G,CAAC;aAAM,CAAC;YACN,2CAA2C;YAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC;YACpC,MAAM,aAAa,GAAG,UAAU,CAAC,mBAAmB,IAAI,CAAC,CAAC;YAC1D,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;YAChF,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YAC9F,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC;YAE1D,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,GAAG;oBACR,GAAG,UAAU;oBACb,MAAM,EAAE,eAAe;oBACvB,iBAAiB,EAAE,SAAS;oBAC5B,eAAe,EAAE,IAAI;oBACrB,iBAAiB,EAAE,KAAK,IAAI,SAAS;iBACtC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,EAAE,GAAG,UAAU,EAAE,iBAAiB,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC;YACrE,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,WAAW,GAAG,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAE7E,oEAAoE;QACpE,MAAM,SAAS,GAAG,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC5E,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,iBAAiB,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACvF,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC;QAC9D,WAAW,GAAG,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;QAEjF,8EAA8E;QAC9E,IAAI,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9D,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACzG,CAAC;QAED,MAAM,QAAQ,GAAG,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAE9C,uCAAuC;QACvC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,qEAAqE;QACrE,IAAI,cAA8C,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,mBAAmB,IAAI,EAAmC,CAAC;YAClG,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAC/C,OAAO,EACP,IAAI,CAAC,eAAe,EACpB,YAAY,EACZ,WAAW,CACZ,IAAI,SAAS,CAAC;QACjB,CAAC;QAED,kDAAkD;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QACxD,MAAM,qBAAqB,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrF,MAAM,iBAAiB,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,qBAAqB,CAAC,MAAM,CACzE,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAC5C,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QACzD,MAAM,kBAAkB,GAAG,eAAe,CAAC,aAAa,GAAG,CAAC,CAAC;QAE7D,OAAO;YACL,UAAU,EAAE,qBAAqB;YACjC,eAAe,EAAE,QAAQ;YACzB,UAAU,EAAE,qBAAqB,GAAG,MAAM,GAAG,QAAQ;YACrD,YAAY,EAAE,OAAO;YACrB,eAAe,EAAE,OAAO;YACxB,mBAAmB,EAAE,SAAS,CAAC,UAAU;YACzC,eAAe,EAAE,SAAS,CAAC,eAAe,IAAI,SAAS;YACvD,cAAc;YACd,iBAAiB,EAAE,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS;YAC/E,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;SAClE,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,WAAmB,EAAE,OAAmB;QACpD,OAAO,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACnE,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,OAAoB;QAC9B,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9C,OAAO,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjE,CAAC;IAED,kDAAkD;IAClD,aAAa;QACX,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAC,MAA4B;QAC7C,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,GAAc;QAC7B,MAAM,CAAC,GAAG,GAAG,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC7C,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,wEAAwE;IAExE,+EAA+E;IAC/E,iBAAiB;QACf,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,4CAA4C;IAC5C,sBAAsB;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,CAAC;IAC/C,CAAC;IAED,4CAA4C;IAC5C,iBAAiB;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC;IACrD,CAAC;IAED,wEAAwE;IAExE,oFAAoF;IACpF,KAAK,CAAC,gBAAgB,CAAC,KAAqB,EAAE,MAAc,EAAE,SAAyC,MAAM,EAAE,MAAe;QAC5H,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAC5B,KAAK;YACL,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,MAAM;YACN,MAAM;SACP,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;IACpC,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,mBAAmB,CAAC,KAAqB;QAC7C,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;IACpC,CAAC;IAED,uFAAuF;IACvF,KAAK,CAAC,UAAU,CAAC,UAAkB;QACjC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QACpD,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAoC,EAAE,CAAC;YAC3F,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBAC5B,KAAK;gBACL,MAAM;gBACN,OAAO,EAAE,IAAI,CAAC,eAAe;gBAC7B,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;IACpC,CAAC;IAED,wCAAwC;IACxC,WAAW;QACT,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,+CAA+C;IAC/C,kBAAkB;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;IAC3C,CAAC;IAED,0EAA0E;IAClE,KAAK,CAAC,oBAAoB;QAChC,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC5C,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;QACrD,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;QAC7D,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,sEAAsE;IAEtE,2CAA2C;IAC3C,sBAAsB;QACpB,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;IAClD,CAAC;IAED,iDAAiD;IACjD,oBAAoB,CAAC,KAAqB;QACxC,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IAED,qEAAqE;IAErE,oDAAoD;IACpD,KAAK,CAAC,cAAc,CAAC,QAAqD;QACxE,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,cAAc,CAAC,EAAU,EAAE,OAAuE;QACtG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAClC,CAAC;IAED,oCAAoC;IACpC,cAAc,CAAC,CAAgB;QAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,uCAAuC;IACvC,eAAe;QACb,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;IAC5C,CAAC;IAED,iDAAiD;IACzC,KAAK,CAAC,kBAAkB;QAC9B,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC5C,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QACjD,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,qEAAqE;IAErE,qCAAqC;IACrC,KAAK,CAAC,cAAc,CAAC,QAAmI;QACtJ,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;YAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,aAAa,EAAE,QAAQ,CAAC,aAAa,IAAI,EAAE;YAC3C,IAAI,EAAE,QAAQ,CAAC,IAAI;SACpB,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;IACpC,CAAC;IAED,wCAAwC;IACxC,mBAAmB;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;IAC1C,CAAC;IAED,mDAAmD;IACnD,gBAAgB,CAAC,UAAmB;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC;IAED,mDAAmD;IAC3C,KAAK,CAAC,oBAAoB;QAChC,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC5C,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;QACrD,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,wEAAwE;IAExE,6DAA6D;IAC7D,YAAY;QACV,MAAM,WAAW,GAAG,IAAI,oBAAoB,CAAC;YAC3C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;QACH,OAAO,WAAW,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC;IAED,uEAAuE;IAEvE;;;OAGG;IACK,0BAA0B,CAAC,GAAa,EAAE,UAA+B;QAC/E,IAAI,UAAU,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC;QAExC,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,CAAC,GAAmB,EAAE,UAAkB,EAAE,EAAE;YACtD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC,CAAC;QAEF,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,YAAY;gBACf,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;gBAC5B,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBACtB,MAAM;YACR,KAAK,UAAU;gBACb,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBACtB,MAAM;YACR,KAAK,eAAe;gBAClB,gDAAgD;gBAChD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAA0B,EAAE,CAAC;oBAC/D,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;gBACjD,CAAC;gBACD,MAAM;YACR,KAAK,UAAU;gBACb,6CAA6C;gBAC7C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAA0B,EAAE,CAAC;oBAC/D,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;gBACjD,CAAC;gBACD,MAAM;QACV,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wEAAwE;IAExE;;;OAGG;IACH,KAAK,CAAC,gBAAgB,CACpB,WAAmB,EACnB,cAA6B,EAC7B,eAA8B;QAE9B,MAAM,iBAAiB,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,iBAAiB,CAAC;QACvE,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;YACjC,WAAW;YACX,aAAa,EAAE,WAAW,CAAC,MAAM;YACjC,cAAc;YACd,eAAe;YACf,eAAe,EAAE,iBAAiB;SACnC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,eAAe,CAAC,cAAsB;QACpC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IACrE,CAAC;IAED,uEAAuE;IACvE,iBAAiB;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;IAC1C,CAAC;IAED,gEAAgE;IAChE,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;IACzC,CAAC;IAED,yEAAyE;IAEzE,yEAAyE;IACzE,KAAK,CAAC,cAAc;QAClB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,gDAAgD;QAChD,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE;YAC7C,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;YAC7C,oBAAoB,EAAE,IAAI;YAC1B,iBAAiB,EAAE,IAAI;YACvB,iBAAiB,EAAE,IAAI;YACvB,cAAc,EAAE,IAAI;YACpB,mBAAmB,EAAE,EAAmC;YACxD,iBAAiB,EAAE,CAAC;YACpB,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;SACX,CAAC;IACJ,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,gBAAgB,CACpB,GAAM,EACN,KAA8B;QAE9B,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC5C,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnB,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,qBAAqB;QACrB,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;YAC7B,IAAI,CAAC,eAAe,GAAG,KAA6B,CAAC;QACvD,CAAC;IACH,CAAC;IAED,oGAAoG;IACpG,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;IAED,sEAAsE;IAEtE;;;OAGG;IACH,kBAAkB,CAAC,QAAuB,EAAE,cAAsB;QAChE,MAAM,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC5C,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,oBAAoB,CAAC,QAAuB,EAAE,cAAsB,EAAE,MAAmC;QACvG,MAAM,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAC/D,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,CAAC,OAAO,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAClD,KAAK,UAAU,CAAC,CAAC,OAAO,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAC1D,KAAK,KAAK,CAAC,CAAC,OAAO,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;CACF;AAED,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,+EAA+E;AAC/E,MAAM,UAAU,eAAe,CAAC,OAA0B;IACxD,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -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 =
|
|
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
|
}
|