@sentry/warden-service-api 0.46.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ import { z } from 'zod';
2
+ export const SERVICE_PROTOCOL_VERSION = 1;
3
+ const IdSchema = z.string().trim().min(1).max(128);
4
+ const ShortTextSchema = z.string().trim().min(1).max(512);
5
+ const DescriptionSchema = z.string().trim().min(1).max(8_000);
6
+ const PathSchema = z.string().trim().min(1).max(1_024);
7
+ const ShaSchema = z.string().trim().min(7).max(128);
8
+ const TimestampSchema = z.string().datetime();
9
+ const NonNegativeIntegerSchema = z.number().int().nonnegative();
10
+ const NonNegativeNumberSchema = z.number().finite().nonnegative();
11
+ export const DataProfileSchema = z.enum(['metrics', 'findings', 'code']);
12
+ export const RepositoryIdentitySchema = z.object({
13
+ provider: z.enum(['github', 'gitlab', 'local']),
14
+ owner: z.string().trim().min(1).max(255),
15
+ name: z.string().trim().min(1).max(255),
16
+ fullName: z.string().trim().min(1).max(512),
17
+ }).strict().superRefine((repository, context) => {
18
+ if (repository.fullName !== `${repository.owner}/${repository.name}`) {
19
+ context.addIssue({
20
+ code: z.ZodIssueCode.custom,
21
+ path: ['fullName'],
22
+ message: 'fullName must match owner/name',
23
+ });
24
+ }
25
+ });
26
+ export const UsageLineItemSchema = z.object({
27
+ lane: z.string().trim().min(1).max(64),
28
+ operation: z.string().trim().min(1).max(128).optional(),
29
+ provider: z.string().trim().min(1).max(128).optional(),
30
+ model: z.string().trim().min(1).max(255).optional(),
31
+ runtime: z.string().trim().min(1).max(128).optional(),
32
+ inputTokens: NonNegativeIntegerSchema.optional(),
33
+ outputTokens: NonNegativeIntegerSchema.optional(),
34
+ cacheReadInputTokens: NonNegativeIntegerSchema.optional(),
35
+ cacheCreationInputTokens: NonNegativeIntegerSchema.optional(),
36
+ cacheCreation5mInputTokens: NonNegativeIntegerSchema.optional(),
37
+ cacheCreation1hInputTokens: NonNegativeIntegerSchema.optional(),
38
+ webSearchRequests: NonNegativeIntegerSchema.optional(),
39
+ costUsd: NonNegativeNumberSchema.nullable(),
40
+ costBasis: z.enum(['reported', 'estimated', 'unknown']),
41
+ }).strict();
42
+ export const FindingCountsSchema = z.object({
43
+ total: NonNegativeIntegerSchema,
44
+ bySeverity: z.object({
45
+ high: NonNegativeIntegerSchema,
46
+ medium: NonNegativeIntegerSchema,
47
+ low: NonNegativeIntegerSchema,
48
+ }).strict(),
49
+ }).strict();
50
+ export const SkillExecutionSchema = z.object({
51
+ executionId: IdSchema,
52
+ skill: ShortTextSchema,
53
+ skillDigest: z.string().trim().min(1).max(128).optional(),
54
+ triggerId: IdSchema.optional(),
55
+ triggerName: ShortTextSchema.optional(),
56
+ model: z.string().trim().min(1).max(255).optional(),
57
+ runtime: z.string().trim().min(1).max(128).optional(),
58
+ status: z.enum(['success', 'failure', 'cancelled', 'skipped']),
59
+ errorCode: z.string().trim().min(1).max(128).optional(),
60
+ durationMs: NonNegativeNumberSchema.optional(),
61
+ findingCounts: FindingCountsSchema,
62
+ usage: z.array(UsageLineItemSchema).max(64),
63
+ }).strict();
64
+ export const FindingLocationSchema = z.object({
65
+ path: PathSchema,
66
+ startLine: z.number().int().positive(),
67
+ endLine: z.number().int().positive().optional(),
68
+ }).strict();
69
+ const FindingSnapshotSchema = z.object({
70
+ title: ShortTextSchema,
71
+ description: DescriptionSchema,
72
+ severity: z.enum(['high', 'medium', 'low']),
73
+ confidence: z.enum(['high', 'medium', 'low']).optional(),
74
+ }).strict();
75
+ export const FindingProvenanceSchema = z.object({
76
+ originSkillExecutionId: IdSchema.optional(),
77
+ originModel: z.string().trim().min(1).max(255).optional(),
78
+ verification: z.object({
79
+ outcome: z.literal('revised'),
80
+ model: z.string().trim().min(1).max(255).optional(),
81
+ evidence: z.string().trim().min(1).max(4_000).optional(),
82
+ before: FindingSnapshotSchema,
83
+ }).strict().optional(),
84
+ merge: z.object({
85
+ model: z.string().trim().min(1).max(255).optional(),
86
+ absorbedFindingIds: z.array(IdSchema).max(100),
87
+ }).strict().optional(),
88
+ }).strict();
89
+ const FindingRecordBaseSchema = z.object({
90
+ id: IdSchema,
91
+ reportedId: IdSchema.optional(),
92
+ skillExecutionId: IdSchema,
93
+ severity: z.enum(['high', 'medium', 'low']),
94
+ confidence: z.enum(['high', 'medium', 'low']).optional(),
95
+ title: ShortTextSchema,
96
+ description: DescriptionSchema,
97
+ verification: z.string().trim().min(1).max(4_000).optional(),
98
+ location: FindingLocationSchema.optional(),
99
+ additionalLocations: z.array(FindingLocationSchema).max(20).optional(),
100
+ provenance: FindingProvenanceSchema.optional(),
101
+ }).strict();
102
+ export const FindingRecordSchema = FindingRecordBaseSchema;
103
+ export const SourceEvidenceSchema = z.object({
104
+ path: PathSchema,
105
+ language: z.string().trim().min(1).max(64).optional(),
106
+ startLine: z.number().int().positive(),
107
+ endLine: z.number().int().positive(),
108
+ targetStartLine: z.number().int().positive(),
109
+ targetEndLine: z.number().int().positive(),
110
+ content: z.string().max(16_000),
111
+ }).strict();
112
+ export const CodeFindingRecordSchema = FindingRecordBaseSchema.extend({
113
+ sourceEvidence: SourceEvidenceSchema.optional(),
114
+ }).strict();
115
+ export const FindingObservationSchema = z.object({
116
+ findingId: IdSchema,
117
+ skillExecutionId: IdSchema.optional(),
118
+ outcome: z.enum(['posted', 'deduped', 'skipped', 'resolved', 'failed', 'rejected', 'revised']),
119
+ reason: z.string().trim().min(1).max(128).optional(),
120
+ observedAt: TimestampSchema,
121
+ }).strict();
122
+ export const RecalledMemoryReferenceSchema = z.object({
123
+ id: IdSchema,
124
+ version: z.number().int().positive(),
125
+ }).strict();
126
+ const RunEnvelopeBaseSchema = z.object({
127
+ protocolVersion: z.literal(SERVICE_PROTOCOL_VERSION),
128
+ clientRunId: IdSchema,
129
+ source: z.enum(['cli', 'action', 'sdk', 'replay']),
130
+ wardenVersion: z.string().trim().min(1).max(128),
131
+ startedAt: TimestampSchema,
132
+ completedAt: TimestampSchema,
133
+ outcome: z.enum(['success', 'failure', 'cancelled', 'skipped']),
134
+ traceId: z.string().trim().min(1).max(128).optional(),
135
+ repository: RepositoryIdentitySchema,
136
+ headSha: ShaSchema.optional(),
137
+ event: z.string().trim().min(1).max(128).optional(),
138
+ pullRequest: z.object({
139
+ number: z.number().int().positive(),
140
+ author: z.string().trim().min(1).max(255).optional(),
141
+ title: z.string().trim().min(1).max(1_000).optional(),
142
+ baseBranch: z.string().trim().min(1).max(255).optional(),
143
+ headBranch: z.string().trim().min(1).max(255).optional(),
144
+ }).strict().optional(),
145
+ features: z.object({
146
+ memory: z.boolean(),
147
+ }).strict(),
148
+ findingCounts: FindingCountsSchema,
149
+ skills: z.array(SkillExecutionSchema).max(100),
150
+ recalledMemories: z.array(RecalledMemoryReferenceSchema).max(5).optional(),
151
+ memoryRecallId: IdSchema.optional(),
152
+ }).strict();
153
+ export const MetricsRunEnvelopeSchema = RunEnvelopeBaseSchema.extend({
154
+ dataProfile: z.literal('metrics'),
155
+ features: z.object({
156
+ memory: z.literal(false),
157
+ }).strict(),
158
+ }).strict();
159
+ export const FindingsRunEnvelopeSchema = RunEnvelopeBaseSchema.extend({
160
+ dataProfile: z.literal('findings'),
161
+ findings: z.array(FindingRecordSchema).max(500),
162
+ observations: z.array(FindingObservationSchema).max(1_000),
163
+ }).strict();
164
+ export const CodeRunEnvelopeSchema = RunEnvelopeBaseSchema.extend({
165
+ dataProfile: z.literal('code'),
166
+ findings: z.array(CodeFindingRecordSchema).max(500),
167
+ observations: z.array(FindingObservationSchema).max(1_000),
168
+ }).strict();
169
+ export const RunEnvelopeV1Schema = z.discriminatedUnion('dataProfile', [
170
+ MetricsRunEnvelopeSchema,
171
+ FindingsRunEnvelopeSchema,
172
+ CodeRunEnvelopeSchema,
173
+ ]);
174
+ export const RunProjectionSchema = RunEnvelopeBaseSchema.omit({}).extend({
175
+ dataProfile: DataProfileSchema,
176
+ findings: z.array(CodeFindingRecordSchema).max(500),
177
+ observations: z.array(FindingObservationSchema).max(1_000),
178
+ }).strict();
179
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { RunEnvelopeV1, RunProjection } from './protocol.js';
2
+ /** Build a strict wire envelope and remove fields forbidden by its declared data profile. */
3
+ export declare function redactRunProjection(input: RunProjection): RunEnvelopeV1;
4
+ //# sourceMappingURL=redaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../src/redaction.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAGV,aAAa,EACb,aAAa,EACd,MAAM,eAAe,CAAC;AAoBvB,6FAA6F;AAC7F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,CA0BvE"}
@@ -0,0 +1,35 @@
1
+ import { CodeRunEnvelopeSchema, FindingsRunEnvelopeSchema, MetricsRunEnvelopeSchema, RunProjectionSchema, } from './protocol.js';
2
+ function findingWithoutCode(finding) {
3
+ const { sourceEvidence: _sourceEvidence, ...record } = finding;
4
+ return record;
5
+ }
6
+ function commonProjection(projection) {
7
+ const { dataProfile: _dataProfile, findings: _findings, observations: _observations, ...common } = projection;
8
+ return common;
9
+ }
10
+ /** Build a strict wire envelope and remove fields forbidden by its declared data profile. */
11
+ export function redactRunProjection(input) {
12
+ const projection = RunProjectionSchema.parse(input);
13
+ const common = commonProjection(projection);
14
+ if (projection.dataProfile === 'metrics') {
15
+ return MetricsRunEnvelopeSchema.parse({
16
+ ...common,
17
+ dataProfile: 'metrics',
18
+ });
19
+ }
20
+ if (projection.dataProfile === 'findings') {
21
+ return FindingsRunEnvelopeSchema.parse({
22
+ ...common,
23
+ dataProfile: 'findings',
24
+ findings: projection.findings.map(findingWithoutCode),
25
+ observations: projection.observations,
26
+ });
27
+ }
28
+ return CodeRunEnvelopeSchema.parse({
29
+ ...common,
30
+ dataProfile: 'code',
31
+ findings: projection.findings,
32
+ observations: projection.observations,
33
+ });
34
+ }
35
+ //# sourceMappingURL=redaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redaction.js","sourceRoot":"","sources":["../src/redaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAQvB,SAAS,kBAAkB,CAAC,OAA0B;IACpD,MAAM,EACJ,cAAc,EAAE,eAAe,EAC/B,GAAG,MAAM,EACV,GAAG,OAAO,CAAC;IACZ,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAwD;IAChF,MAAM,EACJ,WAAW,EAAE,YAAY,EACzB,QAAQ,EAAE,SAAS,EACnB,YAAY,EAAE,aAAa,EAC3B,GAAG,MAAM,EACV,GAAG,UAAU,CAAC;IACf,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,mBAAmB,CAAC,KAAoB;IACtD,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAE5C,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,wBAAwB,CAAC,KAAK,CAAC;YACpC,GAAG,MAAM;YACT,WAAW,EAAE,SAAS;SACvB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,UAAU,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QAC1C,OAAO,yBAAyB,CAAC,KAAK,CAAC;YACrC,GAAG,MAAM;YACT,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC;YACrD,YAAY,EAAE,UAAU,CAAC,YAAY;SACtC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,qBAAqB,CAAC,KAAK,CAAC;QACjC,GAAG,MAAM;QACT,WAAW,EAAE,MAAM;QACnB,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,YAAY,EAAE,UAAU,CAAC,YAAY;KACtC,CAAC,CAAC;AACL,CAAC"}
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@sentry/warden-service-api",
3
+ "version": "0.46.0",
4
+ "description": "Wire contracts and client for the optional Warden backing service",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./package.json": "./package.json"
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "package.json"
18
+ ],
19
+ "dependencies": {
20
+ "zod": "^4.4.3"
21
+ },
22
+ "devDependencies": {
23
+ "@types/node": "^25.9.1",
24
+ "typescript": "^6.0.3",
25
+ "vitest": "^4.1.7"
26
+ },
27
+ "engines": {
28
+ "node": ">=20.0.0"
29
+ },
30
+ "license": "FSL-1.1-ALv2",
31
+ "scripts": {
32
+ "build": "pnpm run clean:dist && tsc -p tsconfig.build.json",
33
+ "clean:dist": "rm -rf dist",
34
+ "test": "vitest run --config vitest.config.ts",
35
+ "typecheck": "tsc --noEmit"
36
+ }
37
+ }