feat(commands,audit): add /context command and proactive compaction audit events
This commit is contained in:
@@ -16,6 +16,8 @@ import type {
|
||||
SessionMessageEvent,
|
||||
SessionDeleteEvent,
|
||||
SessionCompactEvent,
|
||||
SessionCheckpointEvent,
|
||||
SessionAutoCompactEvent,
|
||||
UserActionEvent,
|
||||
CronTriggerEvent,
|
||||
WebhookReceiveEvent,
|
||||
@@ -175,6 +177,16 @@ export class AuditLogger {
|
||||
this.write({ level: 'debug', event_type: 'session.compact', event: event as unknown as Record<string, unknown> });
|
||||
}
|
||||
|
||||
sessionCheckpoint(event: SessionCheckpointEvent): void {
|
||||
if (!this.shouldLog('sessions', 'debug')) {return;}
|
||||
this.write({ level: 'debug', event_type: 'session.checkpoint', event: event as unknown as Record<string, unknown> });
|
||||
}
|
||||
|
||||
sessionAutoCompact(event: SessionAutoCompactEvent): void {
|
||||
if (!this.shouldLog('sessions', 'debug')) {return;}
|
||||
this.write({ level: 'debug', event_type: 'session.auto_compact', event: event as unknown as Record<string, unknown> });
|
||||
}
|
||||
|
||||
userAction(event: UserActionEvent): void {
|
||||
if (!this.shouldLog('sessions', 'info')) {return;}
|
||||
this.write({ level: 'info', event_type: 'user.action', event: event as unknown as Record<string, unknown> });
|
||||
|
||||
+17
-1
@@ -10,7 +10,7 @@ export type AuditEventType =
|
||||
// Skills installer
|
||||
| 'skills.installer.execution_blocked' | 'skills.installer.command_result' | 'skills.registry_install'
|
||||
// Session lifecycle
|
||||
| 'session.create' | 'session.message' | 'session.delete' | 'session.transfer' | 'session.compact' | 'user.action'
|
||||
| 'session.create' | 'session.message' | 'session.delete' | 'session.transfer' | 'session.compact' | 'session.checkpoint' | 'session.auto_compact' | 'user.action'
|
||||
// Automation - Cron
|
||||
| 'cron.trigger' | 'cron.sent' | 'cron.add' | 'cron.remove'
|
||||
// Automation - Webhook
|
||||
@@ -182,6 +182,22 @@ export interface SessionCompactEvent {
|
||||
tokens_after: number;
|
||||
}
|
||||
|
||||
export interface SessionCheckpointEvent {
|
||||
session_id: string;
|
||||
namespace: string;
|
||||
chars_written: number;
|
||||
usage_pct: number;
|
||||
}
|
||||
|
||||
export interface SessionAutoCompactEvent {
|
||||
session_id: string;
|
||||
usage_pct_before: number;
|
||||
usage_pct_after: number;
|
||||
compacted: boolean;
|
||||
tokens_before: number;
|
||||
tokens_after: number;
|
||||
}
|
||||
|
||||
export interface UserActionEvent {
|
||||
session_id: string;
|
||||
channel: string;
|
||||
|
||||
Reference in New Issue
Block a user