@yanib/reverb-application 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.
@@ -0,0 +1,355 @@
1
+ import { contentHash, hashCanonical, } from '@yanib/reverb-domain';
2
+ import { artifactCacheValue, cachedArtifactToFile, failedArtifact, FoundationArtifactParserBoundary, FOUNDATION_PARSER_ID, FOUNDATION_PARSER_VERSION, } from './artifacts.js';
3
+ import { portFailure, portSuccess } from './ports.js';
4
+ function propagated(result) {
5
+ return portFailure(result.failure);
6
+ }
7
+ function elapsedMilliseconds(start, end) {
8
+ return Math.max(0, new Date(end).valueOf() - new Date(start).valueOf());
9
+ }
10
+ function semanticArtifact(artifact) {
11
+ return {
12
+ path: artifact.path,
13
+ sourceBlobId: artifact.sourceBlobId,
14
+ contentHash: artifact.contentHash ?? null,
15
+ size: artifact.size,
16
+ language: artifact.language,
17
+ classification: artifact.classification,
18
+ parseState: artifact.parseState,
19
+ parserId: artifact.parserId,
20
+ parserVersion: artifact.parserVersion,
21
+ configRevision: artifact.configRevision,
22
+ lineCount: artifact.lineCount ?? null,
23
+ };
24
+ }
25
+ export class IndexRepositoryGeneration {
26
+ dependencies;
27
+ constructor(dependencies) {
28
+ this.dependencies = dependencies;
29
+ }
30
+ async execute(request) {
31
+ const startedAt = this.dependencies.clock.now();
32
+ const resolved = await this.dependencies.reader.resolveCommit(request.repositoryId, request.commitSha);
33
+ if (!resolved.ok)
34
+ return propagated(resolved);
35
+ if (resolved.value.sha !== request.commitSha) {
36
+ return portFailure({
37
+ kind: 'incomplete_provider_data',
38
+ code: 'commit_mismatch',
39
+ safeMessage: 'Source reader did not resolve the requested exact commit.',
40
+ retryable: false,
41
+ });
42
+ }
43
+ const existing = await this.dependencies.store.selectGeneration({
44
+ workspaceId: request.workspaceId,
45
+ repositoryId: request.repositoryId,
46
+ commitSha: request.commitSha,
47
+ indexerBundleVersion: request.indexerBundleVersion,
48
+ configRevision: request.configRevision,
49
+ allowPartial: true,
50
+ });
51
+ if (!existing.ok)
52
+ return propagated(existing);
53
+ if (existing.value.state === 'selected') {
54
+ const [artifacts, coverage, diagnostics] = await Promise.all([
55
+ this.dependencies.store.listArtifacts(existing.value.generation.id),
56
+ this.dependencies.store.getGenerationCoverage(existing.value.generation.id),
57
+ this.dependencies.store.getGenerationDiagnostics(existing.value.generation.id),
58
+ ]);
59
+ if (!artifacts.ok)
60
+ return propagated(artifacts);
61
+ if (!coverage.ok)
62
+ return propagated(coverage);
63
+ if (!diagnostics.ok)
64
+ return propagated(diagnostics);
65
+ const artifactResultHash = existing.value.generation.artifactResultHash;
66
+ if (!artifactResultHash) {
67
+ return portFailure({
68
+ kind: 'infrastructure',
69
+ code: 'generation_hash_missing',
70
+ safeMessage: 'Selected generation is missing its result hash.',
71
+ retryable: false,
72
+ });
73
+ }
74
+ return portSuccess({
75
+ generationId: existing.value.generation.id,
76
+ state: existing.value.generation.state,
77
+ artifactCount: artifacts.value.length,
78
+ reusedArtifactCount: artifacts.value.length,
79
+ coverage: coverage.value,
80
+ diagnostics: diagnostics.value,
81
+ artifactResultHash,
82
+ });
83
+ }
84
+ const leaseResult = await this.dependencies.store.beginGeneration({
85
+ generationId: request.generationId,
86
+ workspaceId: request.workspaceId,
87
+ repositoryId: request.repositoryId,
88
+ commitSha: request.commitSha,
89
+ treeHash: resolved.value.treeHash,
90
+ indexerBundleVersion: request.indexerBundleVersion,
91
+ configRevision: request.configRevision,
92
+ registryRevision: request.registryRevision,
93
+ startedAt,
94
+ leaseId: request.leaseId,
95
+ leaseExpiresAt: request.leaseExpiresAt,
96
+ });
97
+ if (!leaseResult.ok)
98
+ return propagated(leaseResult);
99
+ const lease = leaseResult.value;
100
+ const fail = async (failure) => {
101
+ const failedAt = this.dependencies.clock.now();
102
+ await this.dependencies.store.failGeneration(lease, {
103
+ failedAt,
104
+ code: failure.kind === 'cancelled' ? 'cancelled' : 'infrastructure_failure',
105
+ safeMessage: failure.safeMessage,
106
+ });
107
+ this.dependencies.telemetry.emit({
108
+ type: 'generation_failed',
109
+ reason: failure.code,
110
+ durationMs: elapsedMilliseconds(startedAt, failedAt),
111
+ });
112
+ return portFailure(failure);
113
+ };
114
+ const tree = await this.dependencies.reader.listTree(request.repositoryId, request.commitSha);
115
+ if (!tree.ok)
116
+ return fail(tree.failure);
117
+ const previousByBlob = new Map();
118
+ if (request.previousGenerationId) {
119
+ const previousGeneration = await this.dependencies.store.getGeneration(request.previousGenerationId);
120
+ if (previousGeneration.ok &&
121
+ previousGeneration.value.workspaceId === request.workspaceId &&
122
+ previousGeneration.value.repositoryId === request.repositoryId &&
123
+ previousGeneration.value.indexerBundleVersion === request.indexerBundleVersion &&
124
+ previousGeneration.value.configRevision === request.configRevision) {
125
+ const previous = await this.dependencies.store.listArtifacts(request.previousGenerationId);
126
+ if (previous.ok) {
127
+ for (const artifact of previous.value)
128
+ previousByBlob.set(artifact.sourceBlobId, artifact);
129
+ }
130
+ }
131
+ }
132
+ const maximumFileBytes = request.maximumFileBytes ?? 2 * 1024 * 1024;
133
+ const artifacts = [];
134
+ const diagnostics = [];
135
+ let reusedArtifactCount = 0;
136
+ let failedFiles = 0;
137
+ let skippedFiles = 0;
138
+ let parsedFiles = 0;
139
+ let supportedLanguages = 0;
140
+ for (const entry of tree.value.entries) {
141
+ if (request.supersessionKey && this.dependencies.cancellation) {
142
+ const current = await this.dependencies.cancellation.isCurrent(request.supersessionKey);
143
+ if (!current.ok)
144
+ return fail(current.failure);
145
+ if (!current.value) {
146
+ return fail({
147
+ kind: 'cancelled',
148
+ code: 'superseded',
149
+ safeMessage: 'Generation was superseded.',
150
+ retryable: false,
151
+ });
152
+ }
153
+ }
154
+ const previous = previousByBlob.get(entry.objectId);
155
+ if (previous &&
156
+ previous.parserId === FOUNDATION_PARSER_ID &&
157
+ previous.parserVersion === FOUNDATION_PARSER_VERSION &&
158
+ previous.configRevision === request.configRevision) {
159
+ const artifact = cachedArtifactToFile(previous, request.generationId, entry.path, previous.generationId);
160
+ artifacts.push(artifact);
161
+ reusedArtifactCount += 1;
162
+ parsedFiles += artifact.parseState === 'parsed' ? 1 : 0;
163
+ skippedFiles += artifact.parseState === 'skipped' ? 1 : 0;
164
+ supportedLanguages += artifact.language === 'unknown' ? 0 : 1;
165
+ continue;
166
+ }
167
+ const cacheKey = {
168
+ workspaceId: request.workspaceId,
169
+ sourceBlobId: entry.objectId,
170
+ indexerBundleVersion: request.indexerBundleVersion,
171
+ parserId: FOUNDATION_PARSER_ID,
172
+ parserVersion: FOUNDATION_PARSER_VERSION,
173
+ configRevision: request.configRevision,
174
+ };
175
+ const cached = await this.dependencies.cache.get(cacheKey);
176
+ if (!cached.ok)
177
+ return fail(cached.failure);
178
+ if (cached.value) {
179
+ const artifact = cachedArtifactToFile(cached.value.artifact, request.generationId, entry.path, request.previousGenerationId);
180
+ artifacts.push(artifact);
181
+ reusedArtifactCount += 1;
182
+ parsedFiles += artifact.parseState === 'parsed' ? 1 : 0;
183
+ skippedFiles += artifact.parseState === 'skipped' ? 1 : 0;
184
+ supportedLanguages += artifact.language === 'unknown' ? 0 : 1;
185
+ continue;
186
+ }
187
+ let bytes;
188
+ let sourceIncomplete = false;
189
+ let fileSourceFailed = false;
190
+ const needsBlob = entry.kind === 'blob' && (entry.size === undefined || entry.size <= maximumFileBytes);
191
+ if (needsBlob) {
192
+ const blob = await this.dependencies.reader.readBlob(request.repositoryId, request.commitSha, entry.path, maximumFileBytes);
193
+ if (blob.ok) {
194
+ bytes = blob.value.bytes;
195
+ sourceIncomplete = !blob.value.complete;
196
+ fileSourceFailed = !blob.value.complete;
197
+ if (sourceIncomplete)
198
+ diagnostics.push(...blob.value.limitations.map((limitation) => ({
199
+ code: limitation.code,
200
+ severity: 'warning',
201
+ ...(limitation.scope ? { scope: limitation.scope } : {}),
202
+ safeMessage: 'Source blob was incomplete.',
203
+ })));
204
+ }
205
+ else {
206
+ sourceIncomplete = true;
207
+ fileSourceFailed = true;
208
+ diagnostics.push({
209
+ code: 'unreadable_blob',
210
+ severity: 'error',
211
+ scope: entry.path,
212
+ safeMessage: 'Source blob could not be read.',
213
+ });
214
+ }
215
+ }
216
+ const classifyInput = {
217
+ generationId: request.generationId,
218
+ entry,
219
+ ...(bytes ? { bytes } : {}),
220
+ configRevision: request.configRevision,
221
+ maximumBytes: maximumFileBytes,
222
+ };
223
+ let parserFailed = false;
224
+ let classified;
225
+ if (fileSourceFailed) {
226
+ classified = failedArtifact(classifyInput, 'unreadable_blob', 'Source was incomplete and could not be parsed.');
227
+ }
228
+ else {
229
+ try {
230
+ classified = await (this.dependencies.parser ?? new FoundationArtifactParserBoundary()).classify(classifyInput);
231
+ }
232
+ catch {
233
+ parserFailed = true;
234
+ classified = failedArtifact(classifyInput, 'parse_failure', 'Parser failed inside its bounded execution boundary.');
235
+ }
236
+ }
237
+ artifacts.push(classified.artifact);
238
+ diagnostics.push(...classified.diagnostics);
239
+ parsedFiles += classified.artifact.parseState === 'parsed' ? 1 : 0;
240
+ skippedFiles += classified.artifact.parseState === 'skipped' ? 1 : 0;
241
+ supportedLanguages += classified.artifact.language === 'unknown' ? 0 : 1;
242
+ if (fileSourceFailed || parserFailed)
243
+ failedFiles += 1;
244
+ if (!fileSourceFailed && !parserFailed) {
245
+ const cacheArtifact = artifactCacheValue(classified.artifact);
246
+ const cacheWrite = await this.dependencies.cache.put({
247
+ key: cacheKey,
248
+ artifact: cacheArtifact,
249
+ });
250
+ if (!cacheWrite.ok)
251
+ return fail(cacheWrite.failure);
252
+ }
253
+ }
254
+ const completeArtifacts = artifacts.filter((artifact) => artifact.classification === 'source' && artifact.parseState === 'parsed').length;
255
+ const partial = !tree.value.complete ||
256
+ failedFiles > 0 ||
257
+ artifacts.some((artifact) => artifact.classification !== 'source' || artifact.parseState !== 'parsed');
258
+ const coverage = [
259
+ {
260
+ dimension: 'repository',
261
+ state: tree.value.complete && failedFiles === 0 ? 'complete' : 'partial',
262
+ eligible: 1,
263
+ processed: 1,
264
+ skipped: 0,
265
+ failed: tree.value.complete ? 0 : 1,
266
+ ...(!tree.value.complete ? { reason: 'incomplete_tree' } : {}),
267
+ },
268
+ {
269
+ dimension: 'tree',
270
+ state: tree.value.complete ? 'complete' : 'partial',
271
+ eligible: tree.value.entries.length,
272
+ processed: artifacts.length,
273
+ skipped: 0,
274
+ failed: tree.value.complete ? 0 : 1,
275
+ ...(!tree.value.complete ? { reason: 'incomplete_tree' } : {}),
276
+ },
277
+ {
278
+ dimension: 'file',
279
+ state: failedFiles > 0 ? 'partial' : 'complete',
280
+ eligible: tree.value.entries.length,
281
+ processed: artifacts.length - failedFiles,
282
+ skipped: skippedFiles,
283
+ failed: failedFiles,
284
+ },
285
+ {
286
+ dimension: 'language',
287
+ state: supportedLanguages === artifacts.length ? 'complete' : 'partial',
288
+ eligible: artifacts.length,
289
+ processed: supportedLanguages,
290
+ skipped: artifacts.length - supportedLanguages,
291
+ failed: 0,
292
+ ...(supportedLanguages !== artifacts.length
293
+ ? { reason: 'unsupported_language' }
294
+ : {}),
295
+ },
296
+ {
297
+ dimension: 'parser',
298
+ state: completeArtifacts === artifacts.length ? 'complete' : 'partial',
299
+ eligible: artifacts.length,
300
+ processed: parsedFiles,
301
+ skipped: skippedFiles,
302
+ failed: failedFiles,
303
+ },
304
+ {
305
+ dimension: 'adapter',
306
+ state: 'not_analysed',
307
+ eligible: 0,
308
+ processed: 0,
309
+ skipped: 0,
310
+ failed: 0,
311
+ },
312
+ ];
313
+ const artifactResultHash = contentHash(hashCanonical(artifacts
314
+ .map(semanticArtifact)
315
+ .sort((left, right) => String(left.path).localeCompare(String(right.path)))));
316
+ const coverageHash = contentHash(hashCanonical({ coverage, diagnostics }));
317
+ const batchWrite = await this.dependencies.store.putArtifacts(lease, {
318
+ artifacts,
319
+ diagnostics,
320
+ coverage,
321
+ });
322
+ if (!batchWrite.ok)
323
+ return fail(batchWrite.failure);
324
+ const completedAt = this.dependencies.clock.now();
325
+ const state = partial ? 'partial' : 'complete';
326
+ const completed = await this.dependencies.store.completeGeneration(lease, {
327
+ state,
328
+ completedAt,
329
+ selectable: true,
330
+ coverage,
331
+ diagnostics,
332
+ coverageHash,
333
+ artifactResultHash,
334
+ });
335
+ if (!completed.ok)
336
+ return propagated(completed);
337
+ this.dependencies.telemetry.emit({
338
+ type: 'generation_completed',
339
+ state,
340
+ fileCount: artifacts.length,
341
+ reusedCount: reusedArtifactCount,
342
+ durationMs: elapsedMilliseconds(startedAt, completedAt),
343
+ });
344
+ return portSuccess({
345
+ generationId: request.generationId,
346
+ state,
347
+ artifactCount: artifacts.length,
348
+ reusedArtifactCount,
349
+ coverage,
350
+ diagnostics,
351
+ artifactResultHash,
352
+ });
353
+ }
354
+ }
355
+ //# sourceMappingURL=index-generation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-generation.js","sourceRoot":"","sources":["../src/index-generation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export * from './artifacts.js';
2
+ export * from './analyze-pr.js';
3
+ export * from './create-overlay.js';
4
+ export * from './index-generation.js';
5
+ export * from './ports.js';
6
+ export * from './review.js';
7
+ export declare const APPLICATION_PACKAGE_ID = "@yanib/reverb-application";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAE5B,eAAO,MAAM,sBAAsB,8BAA8B,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ export * from './artifacts.js';
2
+ export * from './analyze-pr.js';
3
+ export * from './create-overlay.js';
4
+ export * from './index-generation.js';
5
+ export * from './ports.js';
6
+ export * from './review.js';
7
+ export const APPLICATION_PACKAGE_ID = '@yanib/reverb-application';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAE5B,MAAM,CAAC,MAAM,sBAAsB,GAAG,2BAA2B,CAAC"}