File size: 1,463 Bytes
ce72224
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/**

 * Example Plugin: Analytics

 * 

 * Dieses Plugin tracked User-Behavior und sammelt Stats

 */

const analytics = {
  sessionStart: null,
  messagesCount: 0,
  totalTokens: 0,
  totalTime: 0,
  averageResponseTime: 0,
  messageHistory: [],
}

export function onPluginInit(context) {
  analytics.sessionStart = new Date()
  context.log('📊 Analytics Plugin started')
  context.log(`Session ID: ${analytics.sessionStart.getTime()}`)
}

export function onMessageSent(context, { message, systemPrompt }) {
  analytics.messagesCount++
  analytics.messageHistory.push({
    type: 'user',
    content: message,
    timestamp: new Date(),
  })
  
  context.log(`Message #${analytics.messagesCount}`)
}

export function onResponseReceived(context, { content, stats }) {
  analytics.totalTokens += stats.tokens
  analytics.totalTime += stats.time
  analytics.averageResponseTime = analytics.totalTime / analytics.messagesCount
  
  analytics.messageHistory.push({
    type: 'assistant',
    content: content.substring(0, 100),
    timestamp: new Date(),
    tokens: stats.tokens,
    responseTime: stats.time,
  })
  
  context.log(`📈 Stats:`)
  context.log(`   Messages: ${analytics.messagesCount}`)
  context.log(`   Total Tokens: ${analytics.totalTokens}`)
  context.log(`   Avg Time: ${analytics.averageResponseTime.toFixed(2)}s`)
  
  // Mache diese Daten global verfügbar
  window.analytics = analytics
}