@agentdock/wire 0.0.29 → 0.0.31
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/envelope.d.ts +6 -6
- package/dist/errorMessage.d.ts +2 -0
- package/dist/errorMessage.d.ts.map +1 -0
- package/dist/errorMessage.js +6 -0
- package/dist/errorMessage.js.map +1 -0
- package/dist/events.d.ts +4 -4
- package/dist/features.d.ts +19 -3
- package/dist/features.d.ts.map +1 -1
- package/dist/features.js +53 -4
- package/dist/features.js.map +1 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/machine.d.ts +27 -6
- package/dist/machine.d.ts.map +1 -1
- package/dist/machine.js +6 -0
- package/dist/machine.js.map +1 -1
- package/dist/messages.d.ts +18 -18
- package/dist/ops.d.ts +8 -8
- package/dist/rpc.d.ts +24 -13
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +7 -0
- package/dist/rpc.js.map +1 -1
- package/dist/semver.d.ts +31 -0
- package/dist/semver.d.ts.map +1 -0
- package/dist/semver.js +60 -0
- package/dist/semver.js.map +1 -0
- package/dist/socketEvents.d.ts +34 -0
- package/dist/socketEvents.d.ts.map +1 -0
- package/dist/socketEvents.js +39 -0
- package/dist/socketEvents.js.map +1 -0
- package/dist/sync.d.ts +62 -40
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +2 -0
- package/dist/sync.js.map +1 -1
- package/dist/telemetry.d.ts +90 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +80 -0
- package/dist/telemetry.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
// ── Telemetry Event Types ──────────────────────────────────
|
|
3
|
+
export const TelemetryEventTypeSchema = z.enum([
|
|
4
|
+
'scanner.format_mismatch',
|
|
5
|
+
'scanner.parse_error',
|
|
6
|
+
'scanner.version_unknown',
|
|
7
|
+
'session.start_failed',
|
|
8
|
+
'session.crash',
|
|
9
|
+
'rpc.call_failed',
|
|
10
|
+
'upgrade.failed',
|
|
11
|
+
'protocol.incompatible',
|
|
12
|
+
]);
|
|
13
|
+
// ── Context Allowlist (per event type) ─────────────────────
|
|
14
|
+
const CONTEXT_ALLOWLIST = {
|
|
15
|
+
'scanner.format_mismatch': [
|
|
16
|
+
'filePath',
|
|
17
|
+
'totalLines',
|
|
18
|
+
'parsedLines',
|
|
19
|
+
'errorCount',
|
|
20
|
+
'unknownLines',
|
|
21
|
+
'samples',
|
|
22
|
+
],
|
|
23
|
+
'scanner.parse_error': ['filePath', 'totalLines', 'errorCount', 'error', 'lineNumber'],
|
|
24
|
+
'scanner.version_unknown': ['detectedVersion', 'supportedRange'],
|
|
25
|
+
'session.start_failed': ['cwd', 'agentBinary', 'exitCode', 'stderr'],
|
|
26
|
+
'session.crash': ['exitCode', 'signal', 'stderr', 'agentType'],
|
|
27
|
+
'rpc.call_failed': ['method', 'error'],
|
|
28
|
+
'upgrade.failed': ['fromVersion', 'toVersion', 'stage', 'error'],
|
|
29
|
+
'protocol.incompatible': ['clientVersion', 'serverVersion', 'minRequired'],
|
|
30
|
+
};
|
|
31
|
+
const SENSITIVE_PATTERN = /\b(?:\d{1,3}\.){3}\d{1,3}\b|[\w.+-]+@[\w.-]+\.\w+|\b(?:Bearer|token|sk-|api[_-]?key)\s*[:=]?\s*\S+/gi;
|
|
32
|
+
function sanitizeValue(val) {
|
|
33
|
+
if (typeof val === 'string') {
|
|
34
|
+
return val.replace(SENSITIVE_PATTERN, '[REDACTED]');
|
|
35
|
+
}
|
|
36
|
+
if (Array.isArray(val)) {
|
|
37
|
+
return val.map(sanitizeValue);
|
|
38
|
+
}
|
|
39
|
+
if (typeof val === 'number' || typeof val === 'boolean' || val === null) {
|
|
40
|
+
return val;
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
export function sanitizeContext(type, ctx) {
|
|
45
|
+
if (!ctx)
|
|
46
|
+
return undefined;
|
|
47
|
+
const allowed = CONTEXT_ALLOWLIST[type];
|
|
48
|
+
if (!allowed)
|
|
49
|
+
return undefined;
|
|
50
|
+
const result = {};
|
|
51
|
+
for (const key of allowed) {
|
|
52
|
+
if (key in ctx) {
|
|
53
|
+
const sanitized = sanitizeValue(ctx[key]);
|
|
54
|
+
if (sanitized !== undefined) {
|
|
55
|
+
result[key] = sanitized;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (typeof result['stderr'] === 'string' && result['stderr'].length > 500) {
|
|
60
|
+
result['stderr'] = result['stderr'].slice(0, 500);
|
|
61
|
+
}
|
|
62
|
+
return Object.keys(result).length > 0 ? result : undefined;
|
|
63
|
+
}
|
|
64
|
+
// ── Telemetry Event Schema ─────────────────────────────────
|
|
65
|
+
export const TelemetryEventSchema = z.object({
|
|
66
|
+
type: TelemetryEventTypeSchema,
|
|
67
|
+
timestamp: z.string(),
|
|
68
|
+
agentType: z.string().optional(),
|
|
69
|
+
agentVersion: z.string().optional(),
|
|
70
|
+
daemonVersion: z.string(),
|
|
71
|
+
code: z.string(),
|
|
72
|
+
message: z.string(),
|
|
73
|
+
context: z.record(z.unknown()).optional(),
|
|
74
|
+
});
|
|
75
|
+
// ── Batch Report Payload ───────────────────────────────────
|
|
76
|
+
export const TelemetryReportPayloadSchema = z.object({
|
|
77
|
+
machineId: z.string(),
|
|
78
|
+
events: z.array(TelemetryEventSchema).max(100),
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
|