@alisio/plugin-telemetry 0.1.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/.agents/skills/telemetry/SKILL.md +52 -0
- package/LICENSE +21 -0
- package/README.md +188 -0
- package/cover.svg +54 -0
- package/dist/commands.d.ts +19 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +298 -0
- package/dist/commands.js.map +1 -0
- package/dist/config.d.ts +145 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +524 -0
- package/dist/config.js.map +1 -0
- package/dist/database.d.ts +16 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +67 -0
- package/dist/database.js.map +1 -0
- package/dist/events.d.ts +135 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +255 -0
- package/dist/events.js.map +1 -0
- package/dist/format.d.ts +36 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +49 -0
- package/dist/format.js.map +1 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +78 -0
- package/dist/index.js.map +1 -0
- package/dist/otlp.d.ts +69 -0
- package/dist/otlp.d.ts.map +1 -0
- package/dist/otlp.js +616 -0
- package/dist/otlp.js.map +1 -0
- package/dist/redact.d.ts +36 -0
- package/dist/redact.d.ts.map +1 -0
- package/dist/redact.js +163 -0
- package/dist/redact.js.map +1 -0
- package/dist/runtime.d.ts +80 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +290 -0
- package/dist/runtime.js.map +1 -0
- package/dist/store.d.ts +188 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +539 -0
- package/dist/store.js.map +1 -0
- package/dist/tools.d.ts +21 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +292 -0
- package/dist/tools.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/package.json +54 -0
package/dist/store.d.ts
ADDED
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The local SQLite store: the primary sink and the source of truth.
|
|
3
|
+
*
|
|
4
|
+
* REMOTE EXPORT NEVER OWNS THE DATA. Every record lands here first; OTLP batches
|
|
5
|
+
* are derived from these rows and tracked in `otlp_batches` so a failed export
|
|
6
|
+
* can be retried idempotently. Remote failures never delete or mutate rows.
|
|
7
|
+
*
|
|
8
|
+
* FULL-TEXT SEARCH IS CONTENT-ONLY AND OPT-IN. The `content_fts` shadow tables
|
|
9
|
+
* can retain fragments after rows are deleted. Deletion therefore also clears
|
|
10
|
+
* the FTS index, runs `optimize`, and vacuums; the README states plainly that
|
|
11
|
+
* forensic traces in a copied file cannot be guaranteed gone.
|
|
12
|
+
*/
|
|
13
|
+
import type { SqlDatabase } from "./database.js";
|
|
14
|
+
import type { TelemetryRecord } from "./events.js";
|
|
15
|
+
export interface TimeRange {
|
|
16
|
+
/** Inclusive ISO timestamp lower bound. */
|
|
17
|
+
from: string;
|
|
18
|
+
/** Inclusive ISO timestamp upper bound. */
|
|
19
|
+
to: string;
|
|
20
|
+
}
|
|
21
|
+
export interface StoreSummary {
|
|
22
|
+
sessions: number;
|
|
23
|
+
runs: number;
|
|
24
|
+
turns: number;
|
|
25
|
+
toolCalls: number;
|
|
26
|
+
toolErrors: number;
|
|
27
|
+
inputTokens: number;
|
|
28
|
+
outputTokens: number;
|
|
29
|
+
cachedInputTokens: number;
|
|
30
|
+
totalTokens: number;
|
|
31
|
+
avgToolDurationMs: number | null;
|
|
32
|
+
maxToolDurationMs: number | null;
|
|
33
|
+
firstAt: string | null;
|
|
34
|
+
lastAt: string | null;
|
|
35
|
+
}
|
|
36
|
+
export interface ModelAggregate {
|
|
37
|
+
model: string;
|
|
38
|
+
turns: number;
|
|
39
|
+
inputTokens: number;
|
|
40
|
+
outputTokens: number;
|
|
41
|
+
cachedInputTokens: number;
|
|
42
|
+
calls: number;
|
|
43
|
+
avgTurnDurationMs: number | null;
|
|
44
|
+
}
|
|
45
|
+
export interface ToolAggregate {
|
|
46
|
+
name: string;
|
|
47
|
+
calls: number;
|
|
48
|
+
errors: number;
|
|
49
|
+
errorRate: number;
|
|
50
|
+
avgDurationMs: number | null;
|
|
51
|
+
maxDurationMs: number | null;
|
|
52
|
+
effects: string[];
|
|
53
|
+
}
|
|
54
|
+
export interface SessionAggregate {
|
|
55
|
+
sessionId: string;
|
|
56
|
+
runs: number;
|
|
57
|
+
turns: number;
|
|
58
|
+
inputTokens: number;
|
|
59
|
+
outputTokens: number;
|
|
60
|
+
lastAt: string | null;
|
|
61
|
+
models: string[];
|
|
62
|
+
}
|
|
63
|
+
export interface SeriesBucket {
|
|
64
|
+
bucketStart: string;
|
|
65
|
+
runs: number;
|
|
66
|
+
turns: number;
|
|
67
|
+
toolCalls: number;
|
|
68
|
+
inputTokens: number;
|
|
69
|
+
outputTokens: number;
|
|
70
|
+
}
|
|
71
|
+
export interface ContentHit {
|
|
72
|
+
id: number;
|
|
73
|
+
kind: string;
|
|
74
|
+
ref: string | null;
|
|
75
|
+
snippet: string;
|
|
76
|
+
createdAt: string;
|
|
77
|
+
}
|
|
78
|
+
export interface BatchRow {
|
|
79
|
+
id: number;
|
|
80
|
+
batchKey: string;
|
|
81
|
+
signal: string;
|
|
82
|
+
payload: string;
|
|
83
|
+
attempts: number;
|
|
84
|
+
createdAt: string;
|
|
85
|
+
}
|
|
86
|
+
export interface RunSnapshot {
|
|
87
|
+
runId: string;
|
|
88
|
+
sessionId: string;
|
|
89
|
+
model: string | null;
|
|
90
|
+
startedAt: string;
|
|
91
|
+
endedAt: string | null;
|
|
92
|
+
status: string;
|
|
93
|
+
inputTokens: number;
|
|
94
|
+
outputTokens: number;
|
|
95
|
+
cachedInputTokens: number;
|
|
96
|
+
totalTokens: number | null;
|
|
97
|
+
truncated: boolean;
|
|
98
|
+
turns: number;
|
|
99
|
+
toolCalls: number;
|
|
100
|
+
toolErrors: number;
|
|
101
|
+
}
|
|
102
|
+
export interface TurnSnapshot {
|
|
103
|
+
runId: string;
|
|
104
|
+
sessionId: string;
|
|
105
|
+
turn: number;
|
|
106
|
+
model: string | null;
|
|
107
|
+
inputTokens: number;
|
|
108
|
+
outputTokens: number;
|
|
109
|
+
cachedInputTokens: number;
|
|
110
|
+
durationMs: number | null;
|
|
111
|
+
createdAt: string;
|
|
112
|
+
}
|
|
113
|
+
export interface ToolSnapshot {
|
|
114
|
+
runId: string;
|
|
115
|
+
callId: string;
|
|
116
|
+
sessionId: string;
|
|
117
|
+
name: string;
|
|
118
|
+
effect: string | null;
|
|
119
|
+
startedAt: string | null;
|
|
120
|
+
finishedAt: string | null;
|
|
121
|
+
durationMs: number | null;
|
|
122
|
+
isError: boolean;
|
|
123
|
+
}
|
|
124
|
+
export interface TelemetrySnapshot {
|
|
125
|
+
runs: RunSnapshot[];
|
|
126
|
+
turns: TurnSnapshot[];
|
|
127
|
+
tools: ToolSnapshot[];
|
|
128
|
+
}
|
|
129
|
+
export interface StoreCounts {
|
|
130
|
+
runs: number;
|
|
131
|
+
turns: number;
|
|
132
|
+
toolCalls: number;
|
|
133
|
+
content: number;
|
|
134
|
+
pendingBatches: number;
|
|
135
|
+
deadBatches: number;
|
|
136
|
+
}
|
|
137
|
+
export interface WindowTotals {
|
|
138
|
+
models: number;
|
|
139
|
+
tools: number;
|
|
140
|
+
sessions: number;
|
|
141
|
+
}
|
|
142
|
+
export interface TranscriptContent {
|
|
143
|
+
runId: string | null;
|
|
144
|
+
sessionId: string;
|
|
145
|
+
kind: string;
|
|
146
|
+
ref: string | null;
|
|
147
|
+
text: string;
|
|
148
|
+
createdAt: string;
|
|
149
|
+
}
|
|
150
|
+
export interface Store {
|
|
151
|
+
migrate(): void;
|
|
152
|
+
writeRecords(records: TelemetryRecord[]): {
|
|
153
|
+
written: number;
|
|
154
|
+
content: number;
|
|
155
|
+
};
|
|
156
|
+
summary(range: TimeRange): StoreSummary;
|
|
157
|
+
models(range: TimeRange, limit: number): ModelAggregate[];
|
|
158
|
+
tools(range: TimeRange, limit: number): ToolAggregate[];
|
|
159
|
+
sessions(range: TimeRange, limit: number): SessionAggregate[];
|
|
160
|
+
series(range: TimeRange, bucketSeconds: number): SeriesBucket[];
|
|
161
|
+
search(query: string, range: TimeRange, limit: number): {
|
|
162
|
+
hits: ContentHit[];
|
|
163
|
+
total: number;
|
|
164
|
+
};
|
|
165
|
+
snapshot(range: TimeRange, limit: number): TelemetrySnapshot;
|
|
166
|
+
totals(range: TimeRange): WindowTotals;
|
|
167
|
+
recordContent(records: TranscriptContent[]): number;
|
|
168
|
+
counts(): StoreCounts;
|
|
169
|
+
pruneBefore(iso: string): {
|
|
170
|
+
runs: number;
|
|
171
|
+
turns: number;
|
|
172
|
+
toolCalls: number;
|
|
173
|
+
content: number;
|
|
174
|
+
};
|
|
175
|
+
optimize(): void;
|
|
176
|
+
enqueueBatch(key: string, signal: string, payload: string, createdAt: string): boolean;
|
|
177
|
+
pendingBatches(limit: number): BatchRow[];
|
|
178
|
+
markBatchSent(id: number, at: string): void;
|
|
179
|
+
markBatchRetry(id: number, error: string, at: string): void;
|
|
180
|
+
markBatchDead(id: number, error: string, at: string): void;
|
|
181
|
+
}
|
|
182
|
+
export declare function createStore(database: SqlDatabase): Store;
|
|
183
|
+
/**
|
|
184
|
+
* Turn free text into a safe FTS5 MATCH expression: each whitespace token is
|
|
185
|
+
* quoted as a phrase, so FTS operators in the query cannot cause a syntax error.
|
|
186
|
+
*/
|
|
187
|
+
export declare function toMatchQuery(query: string): string;
|
|
188
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|