@aituber-onair/manneri 0.2.0 → 0.3.1

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 (41) hide show
  1. package/README.ja.md +1 -1
  2. package/README.md +1 -1
  3. package/dist/analyzers/KeywordExtractor.js +12 -11
  4. package/dist/analyzers/KeywordExtractor.js.map +1 -1
  5. package/dist/analyzers/PatternDetector.js +17 -10
  6. package/dist/analyzers/PatternDetector.js.map +1 -1
  7. package/dist/analyzers/SimilarityAnalyzer.d.ts +4 -0
  8. package/dist/analyzers/SimilarityAnalyzer.js +18 -8
  9. package/dist/analyzers/SimilarityAnalyzer.js.map +1 -1
  10. package/dist/config/constants.d.ts +41 -0
  11. package/dist/config/constants.js +50 -0
  12. package/dist/config/constants.js.map +1 -0
  13. package/dist/config/defaultPrompts.js +12 -0
  14. package/dist/config/defaultPrompts.js.map +1 -1
  15. package/dist/core/ConversationAnalyzer.d.ts +6 -0
  16. package/dist/core/ConversationAnalyzer.js +45 -12
  17. package/dist/core/ConversationAnalyzer.js.map +1 -1
  18. package/dist/core/ManneriDetector.d.ts +0 -1
  19. package/dist/core/ManneriDetector.js +7 -7
  20. package/dist/core/ManneriDetector.js.map +1 -1
  21. package/dist/generators/PromptGenerator.d.ts +2 -2
  22. package/dist/generators/PromptGenerator.js +2 -1
  23. package/dist/generators/PromptGenerator.js.map +1 -1
  24. package/dist/index.d.ts +3 -3
  25. package/dist/index.js +1 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/persistence/LocalStoragePersistenceProvider.js +3 -2
  28. package/dist/persistence/LocalStoragePersistenceProvider.js.map +1 -1
  29. package/dist/types/index.d.ts +4 -11
  30. package/dist/types/index.js +0 -3
  31. package/dist/types/index.js.map +1 -1
  32. package/dist/types/prompts.d.ts +11 -2
  33. package/dist/types/prompts.js +1 -1
  34. package/dist/types/prompts.js.map +1 -1
  35. package/dist/utils/browserUtils.d.ts +0 -1
  36. package/dist/utils/browserUtils.js +5 -26
  37. package/dist/utils/browserUtils.js.map +1 -1
  38. package/dist/utils/textUtils.d.ts +0 -1
  39. package/dist/utils/textUtils.js +5 -14
  40. package/dist/utils/textUtils.js.map +1 -1
  41. package/package.json +1 -1
package/README.ja.md CHANGED
@@ -56,7 +56,7 @@ if (detector.shouldIntervene(messages)) {
56
56
  ```typescript
57
57
  const detector = new ManneriDetector({
58
58
  similarityThreshold: 0.75, // 類似度閾値 (0-1)
59
- repetitionLimit: 3, // 繰り返し検出回数
59
+ repetitionLimit: 3, // (非推奨) 繰り返し検出回数
60
60
  lookbackWindow: 10, // 分析対象のメッセージ数
61
61
  interventionCooldown: 300000, // 介入間隔(ミリ秒)
62
62
  minMessageLength: 10, // 分析対象の最小文字数
package/README.md CHANGED
@@ -58,7 +58,7 @@ if (detector.shouldIntervene(messages)) {
58
58
  ```typescript
59
59
  const detector = new ManneriDetector({
60
60
  similarityThreshold: 0.75, // Similarity threshold (0-1)
61
- repetitionLimit: 3, // Number of repetitions to detect
61
+ repetitionLimit: 3, // (deprecated) Number of repetitions to detect
62
62
  lookbackWindow: 10, // Number of messages to analyze
63
63
  interventionCooldown: 300000, // Intervention interval (milliseconds)
64
64
  minMessageLength: 10, // Minimum character count for analysis
@@ -1,11 +1,12 @@
1
+ import { KEYWORD_DENSITY_THRESHOLD, MAX_CONTEXT_LENGTH, MAX_CONTEXTS_PER_KEYWORD, MAX_KEYWORDS, MAX_RELATED_KEYWORDS, MAX_TOPIC_CLUSTERS, PERSISTENCE_WINDOW_MS, RECENCY_WINDOW_MS, SEMANTIC_SIMILARITY_THRESHOLD, TOP_KEYWORDS_LIMIT, } from '../config/constants.js';
1
2
  import { tokenize, extractKeywords } from '../utils/textUtils.js';
2
3
  import { measurePerformance } from '../utils/browserUtils.js';
3
4
  export class KeywordExtractor {
4
5
  constructor(options = {}) {
5
6
  this.keywordFrequencies = new Map();
6
7
  this.topicClusters = new Map();
7
- this.maxKeywords = 50;
8
- this.maxContextLength = 100;
8
+ this.maxKeywords = MAX_KEYWORDS;
9
+ this.maxContextLength = MAX_CONTEXT_LENGTH;
9
10
  this.options = {
10
11
  minWordLength: 2,
11
12
  maxNgrams: 3,
@@ -30,7 +31,7 @@ export class KeywordExtractor {
30
31
  }
31
32
  return Array.from(keywordCounts.entries())
32
33
  .sort((a, b) => b[1] - a[1])
33
- .slice(0, 20)
34
+ .slice(0, TOP_KEYWORDS_LIMIT)
34
35
  .map(([keyword]) => keyword);
35
36
  }
36
37
  analyzeKeywordFrequencies(messages) {
@@ -46,7 +47,7 @@ export class KeywordExtractor {
46
47
  data.frequency++;
47
48
  data.lastSeen = Math.max(data.lastSeen, timestamp);
48
49
  data.score = this.calculateKeywordScore(data.frequency, data.firstSeen, data.lastSeen);
49
- if (data.contexts.length < 5) {
50
+ if (data.contexts.length < MAX_CONTEXTS_PER_KEYWORD) {
50
51
  const context = message.content.substring(0, this.maxContextLength);
51
52
  if (!data.contexts.includes(context)) {
52
53
  data.contexts.push(context);
@@ -115,7 +116,7 @@ export class KeywordExtractor {
115
116
  }
116
117
  return Array.from(clusters.values())
117
118
  .sort((a, b) => b.score - a.score)
118
- .slice(0, 10);
119
+ .slice(0, MAX_TOPIC_CLUSTERS);
119
120
  }
120
121
  getTopicInfo(messages) {
121
122
  const clusters = this.analyzeTopicClusters(messages);
@@ -140,7 +141,7 @@ export class KeywordExtractor {
140
141
  for (const [keyword, positions] of keywordPositions) {
141
142
  if (positions.length >= minRepetitions) {
142
143
  const density = this.calculateKeywordDensity(positions, windowSize);
143
- if (density > 0.5) {
144
+ if (density > KEYWORD_DENSITY_THRESHOLD) {
144
145
  repeatedKeywords.push({
145
146
  keyword,
146
147
  positions,
@@ -152,8 +153,8 @@ export class KeywordExtractor {
152
153
  return repeatedKeywords.sort((a, b) => b.density - a.density);
153
154
  }
154
155
  calculateKeywordScore(frequency, firstSeen, lastSeen) {
155
- const recencyFactor = 1 - (Date.now() - lastSeen) / (24 * 60 * 60 * 1000);
156
- const persistenceFactor = (lastSeen - firstSeen) / (60 * 60 * 1000);
156
+ const recencyFactor = 1 - (Date.now() - lastSeen) / RECENCY_WINDOW_MS;
157
+ const persistenceFactor = (lastSeen - firstSeen) / PERSISTENCE_WINDOW_MS;
157
158
  return (frequency *
158
159
  (1 + Math.max(0, recencyFactor)) *
159
160
  (1 + Math.min(1, persistenceFactor / 24)));
@@ -163,12 +164,12 @@ export class KeywordExtractor {
163
164
  for (const freq of frequencies) {
164
165
  if (freq.keyword !== keyword && freq.frequency > 1) {
165
166
  const similarity = this.calculateSemanticSimilarity(keyword, freq.keyword);
166
- if (similarity > 0.3) {
167
+ if (similarity > SEMANTIC_SIMILARITY_THRESHOLD) {
167
168
  related.push(freq.keyword);
168
169
  }
169
170
  }
170
171
  }
171
- return related.slice(0, 5);
172
+ return related.slice(0, MAX_RELATED_KEYWORDS);
172
173
  }
173
174
  calculateSemanticSimilarity(word1, word2) {
174
175
  const tokens1 = tokenize(word1, this.options);
@@ -190,7 +191,7 @@ export class KeywordExtractor {
190
191
  const timeSpan = cluster.lastMessage - cluster.firstMessage;
191
192
  return (keywordCount *
192
193
  messageCount *
193
- (1 + Math.min(1, timeSpan / (60 * 60 * 1000))));
194
+ (1 + Math.min(1, timeSpan / PERSISTENCE_WINDOW_MS)));
194
195
  }
195
196
  calculateKeywordDensity(positions, windowSize) {
196
197
  if (positions.length < 2)
@@ -1 +1 @@
1
- {"version":3,"file":"KeywordExtractor.js","sourceRoot":"","sources":["../../src/analyzers/KeywordExtractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KeywordExtractor.js","sourceRoot":"","sources":["../../src/analyzers/KeywordExtractor.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,EACxB,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,6BAA6B,EAC7B,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAoB9D,MAAM,OAAO,gBAAgB;IAQ3B,YAAY,UAAwC,EAAE;QANrC,uBAAkB,GACjC,IAAI,GAAG,EAAE,CAAC;QACK,kBAAa,GAA8B,IAAI,GAAG,EAAE,CAAC;QACrD,gBAAW,GAAW,YAAY,CAAC;QACnC,qBAAgB,GAAW,kBAAkB,CAAC;QAG7D,IAAI,CAAC,OAAO,GAAG;YACb,aAAa,EAAE,CAAC;YAChB,SAAS,EAAE,CAAC;YACZ,gBAAgB,EAAE,KAAK;YACvB,aAAa,EAAE,KAAK;YACpB,QAAQ,EAAE,MAAM;YAChB,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAED,0BAA0B,CAAC,OAAgB;QACzC,OAAO,kBAAkB,CACvB,iBAAiB,EACjB,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EACpD,KAAK,CACN,CAAC;IACJ,CAAC;IAED,2BAA2B,CAAC,QAAmB;QAC7C,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;YAC1D,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;QAEhD,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;YAClC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;aACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC;aAC5B,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,yBAAyB,CAAC,QAAmB;QAC3C,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAC;QAExD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;YAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YAElD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC7B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACtC,IAAI,CAAC,IAAI;wBAAE,SAAS;oBACpB,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;oBACnD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,qBAAqB,CACrC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,QAAQ,CACd,CAAC;oBAEF,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAAC;wBACpD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;wBACpE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;4BACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC9B,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE;wBACvB,OAAO;wBACP,SAAS,EAAE,CAAC;wBACZ,KAAK,EAAE,CAAC;wBACR,SAAS,EAAE,SAAS;wBACpB,QAAQ,EAAE,SAAS;wBACnB,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;aACpC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;aACjC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IAED,gBAAgB,CACd,cAAyB,EACzB,kBAA6B,EAC7B,SAAS,GAAG,GAAG;QAEf,MAAM,cAAc,GAAG,IAAI,GAAG,CAC5B,IAAI,CAAC,2BAA2B,CAAC,cAAc,CAAC,CACjD,CAAC;QACF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAChC,IAAI,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,CACrD,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,CAAC,GAAG,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAC7D,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,cAAc,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC;QAElE,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAClD,MAAM,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;QAExC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAClC,CAAC;QACF,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,CACrD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAC9B,CAAC;QAEF,OAAO;YACL,QAAQ;YACR,SAAS;YACT,SAAS;SACV,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,QAAmB;QACtC,MAAM,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;QAEjD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;YAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YAElD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAC9C,OAAO,EACP,kBAAkB,CACnB,CAAC;gBACF,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;gBAE1D,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC5B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACxC,IAAI,CAAC,OAAO;wBAAE,SAAS;oBACvB,OAAO,CAAC,YAAY,EAAE,CAAC;oBACvB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;oBAC/D,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE;wBACtB,EAAE,EAAE,SAAS;wBACb,QAAQ,EAAE,eAAe;wBACzB,KAAK,EAAE,CAAC;wBACR,YAAY,EAAE,CAAC;wBACf,YAAY,EAAE,SAAS;wBACvB,WAAW,EAAE,SAAS;qBACvB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;aACjC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;aACjC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAClC,CAAC;IAED,YAAY,CAAC,QAAmB;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAErD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,EAAE,GAAG,CAAC;SAC9C,CAAC,CAAC,CAAC;IACN,CAAC;IAED,oBAAoB,CAClB,QAAmB,EACnB,cAAc,GAAG,CAAC,EAClB,UAAU,GAAG,CAAC;QAEd,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAoB,CAAC;QAErD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAE9D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACpC,CAAC;gBACD,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,MAAM,gBAAgB,GAIjB,EAAE,CAAC;QAER,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,gBAAgB,EAAE,CAAC;YACpD,IAAI,SAAS,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;gBACvC,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBAEpE,IAAI,OAAO,GAAG,yBAAyB,EAAE,CAAC;oBACxC,gBAAgB,CAAC,IAAI,CAAC;wBACpB,OAAO;wBACP,SAAS;wBACT,OAAO;qBACR,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IAEO,qBAAqB,CAC3B,SAAiB,EACjB,SAAiB,EACjB,QAAgB;QAEhB,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,iBAAiB,CAAC;QACtE,MAAM,iBAAiB,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,qBAAqB,CAAC;QAEzE,OAAO,CACL,SAAS;YACT,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;YAChC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,GAAG,EAAE,CAAC,CAAC,CAC1C,CAAC;IACJ,CAAC;IAEO,mBAAmB,CACzB,OAAe,EACf,WAA+B;QAE/B,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;QAE1B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;gBACnD,MAAM,UAAU,GAAG,IAAI,CAAC,2BAA2B,CACjD,OAAO,EACP,IAAI,CAAC,OAAO,CACb,CAAC;gBACF,IAAI,UAAU,GAAG,6BAA6B,EAAE,CAAC;oBAC/C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAChD,CAAC;IAEO,2BAA2B,CAAC,KAAa,EAAE,KAAa;QAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE9C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAE3D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAE9B,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAE1C,OAAO,YAAY,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxC,CAAC;IAEO,iBAAiB,CAAC,QAAkB;QAC1C,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAEO,qBAAqB,CAAC,OAAqB;QACjD,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;QAE5D,OAAO,CACL,YAAY;YACZ,YAAY;YACZ,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,qBAAqB,CAAC,CAAC,CACpD,CAAC;IACJ,CAAC;IAEO,uBAAuB,CAC7B,SAAmB,EACnB,UAAkB;QAElB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QAEnC,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,UAAU,EAAE,CAAC;oBACtC,KAAK,EAAE,CAAC;gBACV,CAAC;qBAAM,CAAC;oBACN,MAAM;gBACR,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,KAAK,GAAG,UAAU,CAAC;YACnC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,UAAU;QACR,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;CACF"}
@@ -1,12 +1,13 @@
1
+ import { MAX_PATTERN_AGE_MS, MAX_PATTERN_LENGTH, MAX_PATTERNS, MIN_PATTERN_LENGTH, MIN_REPEATED_ROLE_FREQUENCY, MIN_SEQUENCE_FREQUENCY, REPEATED_SIMILARITY_THRESHOLD, SEVERITY_HIGH_FREQUENCY, SEVERITY_HIGH_PATTERN_COUNT, SEVERITY_MEDIUM_FREQUENCY, SEVERITY_MEDIUM_PATTERN_COUNT, SIGNATURE_WORD_COUNT, } from '../config/constants.js';
1
2
  import { generateId } from '../utils/browserUtils.js';
2
3
  import { calculateTextSimilarity } from '../utils/textUtils.js';
3
4
  export class PatternDetector {
4
5
  constructor() {
5
6
  this.detectedPatterns = new Map();
6
7
  this.sequenceCache = new Map();
7
- this.maxPatterns = 100;
8
- this.minPatternLength = 2;
9
- this.maxPatternLength = 5;
8
+ this.maxPatterns = MAX_PATTERNS;
9
+ this.minPatternLength = MIN_PATTERN_LENGTH;
10
+ this.maxPatternLength = MAX_PATTERN_LENGTH;
10
11
  }
11
12
  detectPatterns(messages) {
12
13
  this.cleanupOldPatterns();
@@ -60,7 +61,7 @@ export class PatternDetector {
60
61
  }
61
62
  }
62
63
  for (const [patternSignature, sequence] of sequenceMap) {
63
- if (sequence.frequency >= 2) {
64
+ if (sequence.frequency >= MIN_SEQUENCE_FREQUENCY) {
64
65
  const pattern = {
65
66
  id: generateId(),
66
67
  pattern: patternSignature,
@@ -85,7 +86,7 @@ export class PatternDetector {
85
86
  const compareMessage = messages[j];
86
87
  if (currentMessage.role === compareMessage.role) {
87
88
  const similarity = calculateTextSimilarity(currentMessage.content, compareMessage.content);
88
- if (similarity >= 0.8) {
89
+ if (similarity >= REPEATED_SIMILARITY_THRESHOLD) {
89
90
  // Create a unique key for this pair to avoid duplicates
90
91
  const pairKey = `${Math.min(i, j)}_${Math.max(i, j)}`;
91
92
  if (!foundPairs.has(pairKey)) {
@@ -154,12 +155,14 @@ export class PatternDetector {
154
155
  sequenceMap.set(sequence.pattern, { ...sequence });
155
156
  }
156
157
  }
157
- return Array.from(sequenceMap.values()).filter((seq) => seq.frequency >= 3);
158
+ return Array.from(sequenceMap.values()).filter((seq) => seq.frequency >= MIN_REPEATED_ROLE_FREQUENCY);
158
159
  }
159
160
  createPatternSignature(messages) {
160
161
  return messages
161
162
  .map((m) => {
162
- const contentWords = m.content.split(/\s+/).slice(0, 3);
163
+ const contentWords = m.content
164
+ .split(/\s+/)
165
+ .slice(0, SIGNATURE_WORD_COUNT);
163
166
  return `${m.role}:${contentWords.join(' ')}`;
164
167
  })
165
168
  .join('|');
@@ -181,10 +184,14 @@ export class PatternDetector {
181
184
  return 'low';
182
185
  const maxFrequency = Math.max(...patterns.map((p) => p.frequency));
183
186
  const totalPatterns = patterns.length;
184
- if (maxFrequency >= 5 || totalPatterns >= 10)
187
+ if (maxFrequency >= SEVERITY_HIGH_FREQUENCY ||
188
+ totalPatterns >= SEVERITY_HIGH_PATTERN_COUNT) {
185
189
  return 'high';
186
- if (maxFrequency >= 3 || totalPatterns >= 5)
190
+ }
191
+ if (maxFrequency >= SEVERITY_MEDIUM_FREQUENCY ||
192
+ totalPatterns >= SEVERITY_MEDIUM_PATTERN_COUNT) {
187
193
  return 'medium';
194
+ }
188
195
  return 'low';
189
196
  }
190
197
  calculateConfidence(patterns, totalMessages) {
@@ -217,7 +224,7 @@ export class PatternDetector {
217
224
  }
218
225
  cleanupOldPatterns() {
219
226
  const now = Date.now();
220
- const maxAge = 24 * 60 * 60 * 1000; // 24時間
227
+ const maxAge = MAX_PATTERN_AGE_MS;
221
228
  // First, remove old patterns
222
229
  for (const [id, pattern] of this.detectedPatterns) {
223
230
  if (now - pattern.lastSeen > maxAge) {
@@ -1 +1 @@
1
- {"version":3,"file":"PatternDetector.js","sourceRoot":"","sources":["../../src/analyzers/PatternDetector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PatternDetector.js","sourceRoot":"","sources":["../../src/analyzers/PatternDetector.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ export declare class SimilarityAnalyzer {
3
3
  private readonly options;
4
4
  private readonly cache;
5
5
  private readonly cacheTimeout;
6
+ private cacheHits;
7
+ private cacheMisses;
6
8
  constructor(options?: Partial<TextAnalysisOptions>);
7
9
  calculateSimilarity(text1: string, text2: string): number;
8
10
  analyzeSimilarity(currentMessage: Message, previousMessages: Message[], threshold?: number): SimilarityResult;
@@ -19,5 +21,7 @@ export declare class SimilarityAnalyzer {
19
21
  getCacheStats(): {
20
22
  size: number;
21
23
  hitRate: number;
24
+ hits: number;
25
+ misses: number;
22
26
  };
23
27
  }
@@ -1,9 +1,12 @@
1
+ import { CACHE_EVICTION_BATCH, CACHE_TTL_MS, DEFAULT_SIMILARITY_THRESHOLD, MAX_CACHE_SIZE, } from '../config/constants.js';
1
2
  import { calculateTextSimilarity, tokenize, generateNgrams, } from '../utils/textUtils.js';
2
3
  import { measurePerformance } from '../utils/browserUtils.js';
3
4
  export class SimilarityAnalyzer {
4
5
  constructor(options = {}) {
5
6
  this.cache = new Map();
6
- this.cacheTimeout = 300000; // 5 minutes
7
+ this.cacheTimeout = CACHE_TTL_MS;
8
+ this.cacheHits = 0;
9
+ this.cacheMisses = 0;
7
10
  this.options = {
8
11
  minWordLength: 2,
9
12
  maxNgrams: 3,
@@ -17,13 +20,15 @@ export class SimilarityAnalyzer {
17
20
  const cacheKey = this.getCacheKey(text1, text2);
18
21
  const cached = this.cache.get(cacheKey);
19
22
  if (cached !== undefined) {
23
+ this.cacheHits++;
20
24
  return cached;
21
25
  }
26
+ this.cacheMisses++;
22
27
  const similarity = measurePerformance('calculateSimilarity', () => calculateTextSimilarity(text1, text2, this.options), false);
23
28
  this.setCacheValue(cacheKey, similarity);
24
29
  return similarity;
25
30
  }
26
- analyzeSimilarity(currentMessage, previousMessages, threshold = 0.7) {
31
+ analyzeSimilarity(currentMessage, previousMessages, threshold = DEFAULT_SIMILARITY_THRESHOLD) {
27
32
  if (previousMessages.length === 0) {
28
33
  return {
29
34
  score: 0,
@@ -58,7 +63,7 @@ export class SimilarityAnalyzer {
58
63
  matchedMessages,
59
64
  };
60
65
  }
61
- findSimilarMessages(targetMessage, messages, threshold = 0.7, sameRoleOnly = true) {
66
+ findSimilarMessages(targetMessage, messages, threshold = DEFAULT_SIMILARITY_THRESHOLD, sameRoleOnly = true) {
62
67
  const similarMessages = [];
63
68
  const targetContent = targetMessage.content.trim();
64
69
  for (const message of messages) {
@@ -73,7 +78,7 @@ export class SimilarityAnalyzer {
73
78
  }
74
79
  return similarMessages;
75
80
  }
76
- analyzeSequenceSimilarity(messages, sequenceLength = 3, threshold = 0.7) {
81
+ analyzeSequenceSimilarity(messages, sequenceLength = 3, threshold = DEFAULT_SIMILARITY_THRESHOLD) {
77
82
  if (messages.length < sequenceLength * 2) {
78
83
  return [];
79
84
  }
@@ -126,15 +131,15 @@ export class SimilarityAnalyzer {
126
131
  }
127
132
  getCacheKey(text1, text2) {
128
133
  const sortedTexts = [text1, text2].sort();
129
- return `${sortedTexts[0]}||${sortedTexts[1]}`;
134
+ return JSON.stringify(sortedTexts);
130
135
  }
131
136
  setCacheValue(key, value) {
132
137
  this.cache.set(key, value);
133
138
  setTimeout(() => {
134
139
  this.cache.delete(key);
135
140
  }, this.cacheTimeout);
136
- if (this.cache.size > 1000) {
137
- const keysToDelete = Array.from(this.cache.keys()).slice(0, 100);
141
+ if (this.cache.size > MAX_CACHE_SIZE) {
142
+ const keysToDelete = Array.from(this.cache.keys()).slice(0, CACHE_EVICTION_BATCH);
138
143
  for (const k of keysToDelete) {
139
144
  this.cache.delete(k);
140
145
  }
@@ -142,11 +147,16 @@ export class SimilarityAnalyzer {
142
147
  }
143
148
  clearCache() {
144
149
  this.cache.clear();
150
+ this.cacheHits = 0;
151
+ this.cacheMisses = 0;
145
152
  }
146
153
  getCacheStats() {
154
+ const total = this.cacheHits + this.cacheMisses;
147
155
  return {
148
156
  size: this.cache.size,
149
- hitRate: 0,
157
+ hitRate: total > 0 ? this.cacheHits / total : 0,
158
+ hits: this.cacheHits,
159
+ misses: this.cacheMisses,
150
160
  };
151
161
  }
152
162
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SimilarityAnalyzer.js","sourceRoot":"","sources":["../../src/analyzers/SimilarityAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SimilarityAnalyzer.js","sourceRoot":"","sources":["../../src/analyzers/SimilarityAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ export declare const CACHE_TTL_MS: 300000;
2
+ export declare const MAX_CACHE_SIZE: 1000;
3
+ export declare const CACHE_EVICTION_BATCH: 100;
4
+ export declare const DEFAULT_SIMILARITY_THRESHOLD: 0.7;
5
+ export declare const MAX_KEYWORDS: 50;
6
+ export declare const MAX_CONTEXT_LENGTH: 100;
7
+ export declare const MAX_CONTEXTS_PER_KEYWORD: 5;
8
+ export declare const TOP_KEYWORDS_LIMIT: 20;
9
+ export declare const MAX_TOPIC_CLUSTERS: 10;
10
+ export declare const MAX_RELATED_KEYWORDS: 5;
11
+ export declare const SEMANTIC_SIMILARITY_THRESHOLD: 0.3;
12
+ export declare const KEYWORD_DENSITY_THRESHOLD: 0.5;
13
+ export declare const RECENCY_WINDOW_MS: number;
14
+ export declare const PERSISTENCE_WINDOW_MS: number;
15
+ export declare const MAX_PATTERNS: 100;
16
+ export declare const MIN_PATTERN_LENGTH: 2;
17
+ export declare const MAX_PATTERN_LENGTH: 5;
18
+ export declare const REPEATED_SIMILARITY_THRESHOLD: 0.8;
19
+ export declare const MIN_SEQUENCE_FREQUENCY: 2;
20
+ export declare const MIN_REPEATED_ROLE_FREQUENCY: 3;
21
+ export declare const MAX_PATTERN_AGE_MS: number;
22
+ export declare const SEVERITY_HIGH_FREQUENCY: 5;
23
+ export declare const SEVERITY_HIGH_PATTERN_COUNT: 10;
24
+ export declare const SEVERITY_MEDIUM_FREQUENCY: 3;
25
+ export declare const SEVERITY_MEDIUM_PATTERN_COUNT: 5;
26
+ export declare const SIGNATURE_WORD_COUNT: 3;
27
+ export declare const DEFAULT_ANALYZER_SIMILARITY_THRESHOLD: 0.75;
28
+ export declare const DEFAULT_PATTERN_THRESHOLD: 0.8;
29
+ export declare const DEFAULT_KEYWORD_THRESHOLD: 0.7;
30
+ export declare const DEFAULT_ANALYSIS_WINDOW: 10;
31
+ export declare const LOOP_DETECTION_THRESHOLD: 0.8;
32
+ export declare const PATTERN_FREQUENCY_TRIGGER: 3;
33
+ export declare const TOPIC_CONFIDENCE_TRIGGER: 0.8;
34
+ export declare const MAX_INTERVENTION_HISTORY: 100;
35
+ export declare const DEFAULT_CLEANUP_MAX_AGE_MS: number;
36
+ export declare const DEFAULT_STORAGE_KEY: "manneri_data";
37
+ export declare const STORAGE_VERSION: "1.0.0";
38
+ export declare const DEFAULT_TOP_KEYWORDS: 10;
39
+ export declare const SHORT_TEXT_TOKEN_LIMIT: 5;
40
+ export declare const HIGH_JACCARD_THRESHOLD: 0.9;
41
+ export declare const MAX_PROMPT_HISTORY: 50;
@@ -0,0 +1,50 @@
1
+ // SimilarityAnalyzer
2
+ export const CACHE_TTL_MS = 300000;
3
+ export const MAX_CACHE_SIZE = 1000;
4
+ export const CACHE_EVICTION_BATCH = 100;
5
+ export const DEFAULT_SIMILARITY_THRESHOLD = 0.7;
6
+ // KeywordExtractor
7
+ export const MAX_KEYWORDS = 50;
8
+ export const MAX_CONTEXT_LENGTH = 100;
9
+ export const MAX_CONTEXTS_PER_KEYWORD = 5;
10
+ export const TOP_KEYWORDS_LIMIT = 20;
11
+ export const MAX_TOPIC_CLUSTERS = 10;
12
+ export const MAX_RELATED_KEYWORDS = 5;
13
+ export const SEMANTIC_SIMILARITY_THRESHOLD = 0.3;
14
+ export const KEYWORD_DENSITY_THRESHOLD = 0.5;
15
+ export const RECENCY_WINDOW_MS = 24 * 60 * 60 * 1000;
16
+ export const PERSISTENCE_WINDOW_MS = 60 * 60 * 1000;
17
+ // PatternDetector
18
+ export const MAX_PATTERNS = 100;
19
+ export const MIN_PATTERN_LENGTH = 2;
20
+ export const MAX_PATTERN_LENGTH = 5;
21
+ export const REPEATED_SIMILARITY_THRESHOLD = 0.8;
22
+ export const MIN_SEQUENCE_FREQUENCY = 2;
23
+ export const MIN_REPEATED_ROLE_FREQUENCY = 3;
24
+ export const MAX_PATTERN_AGE_MS = 24 * 60 * 60 * 1000;
25
+ export const SEVERITY_HIGH_FREQUENCY = 5;
26
+ export const SEVERITY_HIGH_PATTERN_COUNT = 10;
27
+ export const SEVERITY_MEDIUM_FREQUENCY = 3;
28
+ export const SEVERITY_MEDIUM_PATTERN_COUNT = 5;
29
+ export const SIGNATURE_WORD_COUNT = 3;
30
+ // ConversationAnalyzer
31
+ export const DEFAULT_ANALYZER_SIMILARITY_THRESHOLD = 0.75;
32
+ export const DEFAULT_PATTERN_THRESHOLD = 0.8;
33
+ export const DEFAULT_KEYWORD_THRESHOLD = 0.7;
34
+ export const DEFAULT_ANALYSIS_WINDOW = 10;
35
+ export const LOOP_DETECTION_THRESHOLD = 0.8;
36
+ export const PATTERN_FREQUENCY_TRIGGER = 3;
37
+ export const TOPIC_CONFIDENCE_TRIGGER = 0.8;
38
+ // ManneriDetector
39
+ export const MAX_INTERVENTION_HISTORY = 100;
40
+ export const DEFAULT_CLEANUP_MAX_AGE_MS = 7 * 24 * 60 * 60 * 1000;
41
+ // browserUtils
42
+ export const DEFAULT_STORAGE_KEY = 'manneri_data';
43
+ export const STORAGE_VERSION = '1.0.0';
44
+ // textUtils
45
+ export const DEFAULT_TOP_KEYWORDS = 10;
46
+ export const SHORT_TEXT_TOKEN_LIMIT = 5;
47
+ export const HIGH_JACCARD_THRESHOLD = 0.9;
48
+ // PromptGenerator
49
+ export const MAX_PROMPT_HISTORY = 50;
50
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,MAAM,CAAC,MAAM,YAAY,GAAG,MAAe,CAAC;AAC5C,MAAM,CAAC,MAAM,cAAc,GAAG,IAAa,CAAC;AAC5C,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAY,CAAC;AACjD,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAY,CAAC;AAEzD,mBAAmB;AACnB,MAAM,CAAC,MAAM,YAAY,GAAG,EAAW,CAAC;AACxC,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAY,CAAC;AAC/C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAU,CAAC;AACnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAW,CAAC;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAW,CAAC;AAC9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAU,CAAC;AAC/C,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAY,CAAC;AAC1D,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAY,CAAC;AACtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACrD,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEpD,kBAAkB;AAClB,MAAM,CAAC,MAAM,YAAY,GAAG,GAAY,CAAC;AACzC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAU,CAAC;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAU,CAAC;AAC7C,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAY,CAAC;AAC1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAU,CAAC;AACjD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAU,CAAC;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACtD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAU,CAAC;AAClD,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAW,CAAC;AACvD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAU,CAAC;AACpD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAU,CAAC;AACxD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAU,CAAC;AAE/C,uBAAuB;AACvB,MAAM,CAAC,MAAM,qCAAqC,GAAG,IAAa,CAAC;AACnE,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAY,CAAC;AACtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAY,CAAC;AACtD,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAW,CAAC;AACnD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAY,CAAC;AACrD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAU,CAAC;AACpD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAY,CAAC;AAErD,kBAAkB;AAClB,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAY,CAAC;AACrD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAElE,eAAe;AACf,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAuB,CAAC;AAC3D,MAAM,CAAC,MAAM,eAAe,GAAG,OAAgB,CAAC;AAEhD,YAAY;AACZ,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAW,CAAC;AAChD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAU,CAAC;AACjD,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAY,CAAC;AAEnD,kBAAkB;AAClB,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAW,CAAC"}
@@ -9,6 +9,12 @@ export const DEFAULT_PROMPTS = {
9
9
  '新しいテーマで会話を続けてください。',
10
10
  '会話に変化をもたらすため、違う話題にしてみませんか?',
11
11
  ],
12
+ interventionReasons: {
13
+ similarityHigh: '類似度が高い ({score}%)',
14
+ patternRepetition: 'パターンの繰り返し (最大{count}回)',
15
+ topicBias: '話題の偏り ({count}件)',
16
+ thresholdExceeded: '閾値を超過',
17
+ },
12
18
  },
13
19
  en: {
14
20
  intervention: [
@@ -17,6 +23,12 @@ export const DEFAULT_PROMPTS = {
17
23
  'Please continue the conversation with a new theme.',
18
24
  'How about changing to a different topic to bring variety to the conversation?',
19
25
  ],
26
+ interventionReasons: {
27
+ similarityHigh: 'High similarity ({score}%)',
28
+ patternRepetition: 'Pattern repetition (max {count} times)',
29
+ topicBias: 'Narrow topic focus ({count} topics)',
30
+ thresholdExceeded: 'Threshold exceeded',
31
+ },
20
32
  },
21
33
  };
22
34
  //# sourceMappingURL=defaultPrompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultPrompts.js","sourceRoot":"","sources":["../../src/config/defaultPrompts.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAqB;IAC/C,EAAE,EAAE;QACF,YAAY,EAAE;YACZ,0BAA0B;YAC1B,qBAAqB;YACrB,oBAAoB;YACpB,4BAA4B;SAC7B;KACF;IACD,EAAE,EAAE;QACF,YAAY,EAAE;YACZ,uDAAuD;YACvD,iDAAiD;YACjD,oDAAoD;YACpD,+EAA+E;SAChF;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"defaultPrompts.js","sourceRoot":"","sources":["../../src/config/defaultPrompts.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAqB;IAC/C,EAAE,EAAE;QACF,YAAY,EAAE;YACZ,0BAA0B;YAC1B,qBAAqB;YACrB,oBAAoB;YACpB,4BAA4B;SAC7B;QACD,mBAAmB,EAAE;YACnB,cAAc,EAAE,mBAAmB;YACnC,iBAAiB,EAAE,wBAAwB;YAC3C,SAAS,EAAE,kBAAkB;YAC7B,iBAAiB,EAAE,OAAO;SAC3B;KACF;IACD,EAAE,EAAE;QACF,YAAY,EAAE;YACZ,uDAAuD;YACvD,iDAAiD;YACjD,oDAAoD;YACpD,+EAA+E;SAChF;QACD,mBAAmB,EAAE;YACnB,cAAc,EAAE,4BAA4B;YAC5C,iBAAiB,EAAE,wCAAwC;YAC3D,SAAS,EAAE,qCAAqC;YAChD,iBAAiB,EAAE,oBAAoB;SACxC;KACF;CACF,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { Message, AnalysisResult, TextAnalysisOptions } from '../types/index.js';
2
+ import { type LocalizedPromptOverrides } from '../types/prompts.js';
2
3
  export interface ConversationAnalyzerOptions {
3
4
  similarityThreshold: number;
4
5
  patternThreshold: number;
@@ -9,12 +10,15 @@ export interface ConversationAnalyzerOptions {
9
10
  enableKeywordAnalysis: boolean;
10
11
  enableTopicTracking: boolean;
11
12
  textAnalysisOptions: Partial<TextAnalysisOptions>;
13
+ language?: string;
14
+ customPrompts?: LocalizedPromptOverrides;
12
15
  }
13
16
  export declare class ConversationAnalyzer {
14
17
  private readonly similarityAnalyzer;
15
18
  private readonly keywordExtractor;
16
19
  private readonly patternDetector;
17
20
  private readonly options;
21
+ private prompts;
18
22
  constructor(options?: Partial<ConversationAnalyzerOptions>);
19
23
  analyzeConversation(messages: Message[]): AnalysisResult;
20
24
  private getAnalysisWindow;
@@ -23,6 +27,8 @@ export declare class ConversationAnalyzer {
23
27
  private analyzePatterns;
24
28
  private shouldIntervene;
25
29
  private getInterventionReason;
30
+ private getInterventionReasonTemplates;
31
+ private resolveInterventionReasonTemplate;
26
32
  private createEmptySimilarityResult;
27
33
  analyzeMessageFlow(messages: Message[]): {
28
34
  avgMessageLength: number;