@kb-labs/qa-contracts 2.96.0 → 2.100.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/dist/index.d.ts +65 -2
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -122,7 +122,27 @@ interface GateSnapshot extends SnapshotMeta {
|
|
|
122
122
|
kind: 'gate';
|
|
123
123
|
raw: DevkitGateOutput;
|
|
124
124
|
}
|
|
125
|
-
type
|
|
125
|
+
type E2eErrorCategory = 'infra-timeout' | 'assertion-race' | 'ws-flake' | 'unknown';
|
|
126
|
+
interface E2eCaseAttempt {
|
|
127
|
+
status: 'passed' | 'failed';
|
|
128
|
+
retry: number;
|
|
129
|
+
durationMs: number;
|
|
130
|
+
errorCategory?: E2eErrorCategory;
|
|
131
|
+
errorMessage?: string;
|
|
132
|
+
}
|
|
133
|
+
interface E2eCaseResult {
|
|
134
|
+
suite: string;
|
|
135
|
+
spec: string;
|
|
136
|
+
testId: string;
|
|
137
|
+
title: string;
|
|
138
|
+
outcome: 'passed' | 'flaky' | 'failed' | 'skipped';
|
|
139
|
+
attempts: E2eCaseAttempt[];
|
|
140
|
+
}
|
|
141
|
+
interface E2eFlakySnapshot extends SnapshotMeta {
|
|
142
|
+
kind: 'e2e-flaky';
|
|
143
|
+
cases: E2eCaseResult[];
|
|
144
|
+
}
|
|
145
|
+
type AnySnapshot = RunSnapshot | CheckSnapshot | StatsSnapshot | GateSnapshot | E2eFlakySnapshot;
|
|
126
146
|
interface BaselineData {
|
|
127
147
|
timestamp: string;
|
|
128
148
|
git?: SnapshotGit;
|
|
@@ -209,6 +229,48 @@ interface PackageTimeline {
|
|
|
209
229
|
};
|
|
210
230
|
firstFailure?: string;
|
|
211
231
|
}
|
|
232
|
+
interface CaseHistoryEntry {
|
|
233
|
+
timestamp: string;
|
|
234
|
+
gitCommit: string;
|
|
235
|
+
status: 'passed' | 'flaky' | 'failed' | 'skipped';
|
|
236
|
+
retries: number;
|
|
237
|
+
errorCategory?: E2eErrorCategory;
|
|
238
|
+
errorMessage?: string;
|
|
239
|
+
}
|
|
240
|
+
interface CaseTimeline {
|
|
241
|
+
caseKey: string;
|
|
242
|
+
suite: string;
|
|
243
|
+
spec: string;
|
|
244
|
+
testId: string;
|
|
245
|
+
title: string;
|
|
246
|
+
history: CaseHistoryEntry[];
|
|
247
|
+
flakyScore: number;
|
|
248
|
+
currentStreak: {
|
|
249
|
+
status: 'passing' | 'failing';
|
|
250
|
+
count: number;
|
|
251
|
+
};
|
|
252
|
+
firstFailure?: string;
|
|
253
|
+
}
|
|
254
|
+
interface FlakyOverviewEntry {
|
|
255
|
+
case: string;
|
|
256
|
+
flakyScore: number;
|
|
257
|
+
streak: string;
|
|
258
|
+
category: E2eErrorCategory;
|
|
259
|
+
}
|
|
260
|
+
interface FlakyOverviewDelta {
|
|
261
|
+
new: string[];
|
|
262
|
+
fixed: string[];
|
|
263
|
+
unchanged: string[];
|
|
264
|
+
}
|
|
265
|
+
interface FlakyOverview {
|
|
266
|
+
window: number;
|
|
267
|
+
runsAnalyzed: number;
|
|
268
|
+
totalCases: number;
|
|
269
|
+
flakyCases: number;
|
|
270
|
+
delta: FlakyOverviewDelta;
|
|
271
|
+
byCategory: Record<E2eErrorCategory, number>;
|
|
272
|
+
top: FlakyOverviewEntry[];
|
|
273
|
+
}
|
|
212
274
|
|
|
213
275
|
interface QAPluginConfig {
|
|
214
276
|
/** Path or name of the kb-devkit binary. Default: workspace-local then PATH. */
|
|
@@ -3599,6 +3661,7 @@ declare const PATHS: {
|
|
|
3599
3661
|
readonly SNAPSHOTS_CHECK: ".kb/qa/snapshots/check.json";
|
|
3600
3662
|
readonly SNAPSHOTS_STATS: ".kb/qa/snapshots/stats.json";
|
|
3601
3663
|
readonly SNAPSHOTS_GATE: ".kb/qa/snapshots/gate.json";
|
|
3664
|
+
readonly SNAPSHOTS_E2E_FLAKY: ".kb/qa/snapshots/e2e-flaky.json";
|
|
3602
3665
|
readonly BASELINE: ".kb/qa/baseline.json";
|
|
3603
3666
|
};
|
|
3604
3667
|
declare const HISTORY_MAX_ENTRIES = 50;
|
|
@@ -3623,4 +3686,4 @@ declare const QA_ROUTES: {
|
|
|
3623
3686
|
};
|
|
3624
3687
|
type QARoute = typeof QA_ROUTES[keyof typeof QA_ROUTES];
|
|
3625
3688
|
|
|
3626
|
-
export { type AnySnapshot, type BaselineCheckDiff, BaselineCheckDiffSchema, type BaselineData, BaselineDataSchema, type CheckIssueDiff, type CheckSnapshot, CheckSnapshotSchema, DEFAULT_TASKS, type DevkitCheckIssue, DevkitCheckIssueSchema, type DevkitCheckOutput, DevkitCheckOutputSchema, type DevkitCheckPackage, type DevkitGateOutput, DevkitGateOutputSchema, type DevkitGateViolation, type DevkitRunOutput, DevkitRunOutputSchema, type DevkitRunResult, DevkitRunResultSchema, type DevkitRunSummary, type DevkitStatsCategoryBreakdown, type DevkitStatsCoverage, type DevkitStatsIssueType, type DevkitStatsOutput, DevkitStatsOutputSchema, type DevkitStatsSummary, type DevkitStatusOutput, type DevkitStatusPackage, type GateSnapshot, GateSnapshotSchema, HISTORY_MAX_ENTRIES, PATHS, type PackageTaskHistory, type PackageTimeline, type QABaselineDiffResponse, QABaselineDiffResponseSchema, type QABaselineResponse, QABaselineResponseSchema, type QACheckRequest, QACheckRequestSchema, type QACheckResponse, QACheckResponseSchema, type QAGateRequest, QAGateRequestSchema, type QAGateResponse, QAGateResponseSchema, type QAHistoryResponse, QAHistoryResponseSchema, type QAPluginConfig, type QARoute, type QARunRequest, QARunRequestSchema, type QARunResponse, QARunResponseSchema, type QAStatsResponse, QAStatsResponseSchema, type QASummaryResponse, QASummaryResponseSchema, QA_BASE_PATH, QA_DATA_DIR, QA_ROUTES, type RegressionDetection, type RunRegression, type RunSnapshot, RunSnapshotSchema, type SnapshotGit, SnapshotGitSchema, type SnapshotMeta, SnapshotMetaSchema, type StatsSnapshot, StatsSnapshotSchema, TRENDS_WINDOW, type TaskTrend, type TaskTrendChangelog, type TaskTrendPoint, type TrendAnalysis };
|
|
3689
|
+
export { type AnySnapshot, type BaselineCheckDiff, BaselineCheckDiffSchema, type BaselineData, BaselineDataSchema, type CaseHistoryEntry, type CaseTimeline, type CheckIssueDiff, type CheckSnapshot, CheckSnapshotSchema, DEFAULT_TASKS, type DevkitCheckIssue, DevkitCheckIssueSchema, type DevkitCheckOutput, DevkitCheckOutputSchema, type DevkitCheckPackage, type DevkitGateOutput, DevkitGateOutputSchema, type DevkitGateViolation, type DevkitRunOutput, DevkitRunOutputSchema, type DevkitRunResult, DevkitRunResultSchema, type DevkitRunSummary, type DevkitStatsCategoryBreakdown, type DevkitStatsCoverage, type DevkitStatsIssueType, type DevkitStatsOutput, DevkitStatsOutputSchema, type DevkitStatsSummary, type DevkitStatusOutput, type DevkitStatusPackage, type E2eCaseAttempt, type E2eCaseResult, type E2eErrorCategory, type E2eFlakySnapshot, type FlakyOverview, type FlakyOverviewDelta, type FlakyOverviewEntry, type GateSnapshot, GateSnapshotSchema, HISTORY_MAX_ENTRIES, PATHS, type PackageTaskHistory, type PackageTimeline, type QABaselineDiffResponse, QABaselineDiffResponseSchema, type QABaselineResponse, QABaselineResponseSchema, type QACheckRequest, QACheckRequestSchema, type QACheckResponse, QACheckResponseSchema, type QAGateRequest, QAGateRequestSchema, type QAGateResponse, QAGateResponseSchema, type QAHistoryResponse, QAHistoryResponseSchema, type QAPluginConfig, type QARoute, type QARunRequest, QARunRequestSchema, type QARunResponse, QARunResponseSchema, type QAStatsResponse, QAStatsResponseSchema, type QASummaryResponse, QASummaryResponseSchema, QA_BASE_PATH, QA_DATA_DIR, QA_ROUTES, type RegressionDetection, type RunRegression, type RunSnapshot, RunSnapshotSchema, type SnapshotGit, SnapshotGitSchema, type SnapshotMeta, SnapshotMetaSchema, type StatsSnapshot, StatsSnapshotSchema, TRENDS_WINDOW, type TaskTrend, type TaskTrendChangelog, type TaskTrendPoint, type TrendAnalysis };
|
package/dist/index.js
CHANGED
|
@@ -201,6 +201,7 @@ var PATHS = {
|
|
|
201
201
|
SNAPSHOTS_CHECK: ".kb/qa/snapshots/check.json",
|
|
202
202
|
SNAPSHOTS_STATS: ".kb/qa/snapshots/stats.json",
|
|
203
203
|
SNAPSHOTS_GATE: ".kb/qa/snapshots/gate.json",
|
|
204
|
+
SNAPSHOTS_E2E_FLAKY: ".kb/qa/snapshots/e2e-flaky.json",
|
|
204
205
|
BASELINE: ".kb/qa/baseline.json"
|
|
205
206
|
};
|
|
206
207
|
var HISTORY_MAX_ENTRIES = 50;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/rest-api.ts","../src/constants.ts","../src/routes.ts"],"names":[],"mappings":";;;AAIO,IAAM,iBAAA,GAAoB,EAAE,MAAA,CAAO;AAAA,EACxC,MAAA,EAAQ,EAAE,MAAA,EAAO;AAAA,EACjB,MAAA,EAAQ,EAAE,MAAA,EAAO;AAAA,EACjB,OAAA,EAAS,EAAE,MAAA;AACb,CAAC;AAEM,IAAM,kBAAA,GAAqB,EAAE,MAAA,CAAO;AAAA,EACzC,EAAA,EAAI,EAAE,MAAA,EAAO;AAAA,EACb,SAAA,EAAW,EAAE,MAAA,EAAO;AAAA,EACpB,GAAA,EAAK,kBAAkB,QAAA,EAAS;AAAA,EAChC,UAAA,EAAY,EAAE,MAAA,EAAO;AAAA,EACrB,YAAY,CAAA,CAAE,MAAA,CAAO,EAAE,OAAA,EAAS,EAAE,QAAA;AACpC,CAAC;AAGM,IAAM,qBAAA,GAAwB,EAAE,MAAA,CAAO;AAAA,EAC5C,OAAA,EAAS,EAAE,MAAA,EAAO;AAAA,EAClB,IAAA,EAAM,EAAE,MAAA,EAAO;AAAA,EACf,EAAA,EAAI,EAAE,OAAA,EAAQ;AAAA,EACd,MAAA,EAAQ,EAAE,OAAA,EAAQ;AAAA,EAClB,OAAA,EAAS,EAAE,MAAA,EAAO;AAAA,EAClB,QAAA,EAAU,EAAE,MAAA,EAAO;AAAA,EACnB,MAAA,EAAQ,EAAE,MAAA,EAAO;AAAA,EACjB,MAAA,EAAQ,EAAE,MAAA,EAAO;AAAA,EACjB,KAAA,EAAO,EAAE,MAAA;AACX,CAAC;AAEM,IAAM,qBAAA,GAAwB,EAAE,MAAA,CAAO;AAAA,EAC5C,OAAA,EAAS,EAAE,MAAA,EAAO;AAAA,EAClB,EAAA,EAAI,EAAE,OAAA,EAAQ;AAAA,EACd,OAAA,EAAS,CAAA,CAAE,KAAA,CAAM,qBAAqB,CAAA;AAAA,EACtC,OAAA,EAAS,EAAE,MAAA,CAAO;AAAA,IAChB,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,IAChB,MAAA,EAAQ,EAAE,MAAA,EAAO;AAAA,IACjB,MAAA,EAAQ,EAAE,MAAA,EAAO;AAAA,IACjB,MAAA,EAAQ,EAAE,MAAA;AAAO,GAClB;AACH,CAAC;AAGM,IAAM,sBAAA,GAAyB,EAAE,MAAA,CAAO;AAAA,EAC7C,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,EAChB,UAAU,CAAA,CAAE,IAAA,CAAK,CAAC,OAAA,EAAS,SAAA,EAAW,MAAM,CAAC,CAAA;AAAA,EAC7C,OAAA,EAAS,EAAE,MAAA,EAAO;AAAA,EAClB,IAAA,EAAM,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,GAAA,EAAK,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzB,UAAA,EAAY,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACzB,CAAC;AAEM,IAAM,uBAAA,GAA0B,EAAE,MAAA,CAAO;AAAA,EAC9C,EAAA,EAAI,EAAE,OAAA,EAAQ;AAAA,EACd,QAAA,EAAU,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,CAAO;AAAA,IAC1B,EAAA,EAAI,EAAE,OAAA,EAAQ;AAAA,IACd,MAAA,EAAQ,CAAA,CAAE,KAAA,CAAM,sBAAsB,EAAE,QAAA;AAAS,GAClD,CAAC;AACJ,CAAC;AAGM,IAAM,uBAAA,GAA0B,EAAE,MAAA,CAAO;AAAA,EAC9C,EAAA,EAAI,EAAE,OAAA,EAAQ;AAAA,EACd,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,EAChB,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,EAChB,OAAA,EAAS,EAAE,MAAA,CAAO;AAAA,IAChB,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,IAChB,OAAA,EAAS,EAAE,MAAA,EAAO;AAAA,IAClB,OAAA,EAAS,EAAE,MAAA,EAAO;AAAA,IAClB,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,IAChB,YAAA,EAAc,EAAE,MAAA,EAAO;AAAA,IACvB,cAAA,EAAgB,EAAE,MAAA;AAAO,GAC1B,CAAA;AAAA,EACD,WAAA,EAAa,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,CAAO;AAAA,IAC7B,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,IAChB,OAAA,EAAS,EAAE,MAAA,EAAO;AAAA,IAClB,MAAA,EAAQ,EAAE,MAAA,EAAO;AAAA,IACjB,KAAA,EAAO,EAAE,MAAA;AAAO,GACjB,CAAC,CAAA;AAAA,EACF,cAAA,EAAgB,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,CAAO;AAAA,IAChC,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,IAChB,MAAA,EAAQ,EAAE,MAAA,EAAO;AAAA,IACjB,QAAA,EAAU,EAAE,MAAA,EAAO;AAAA,IACnB,QAAA,EAAU,EAAE,MAAA;AAAO,GACpB,CAAC,CAAA;AAAA,EACF,QAAA,EAAU,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,CAAO;AAAA,IAC1B,IAAA,EAAM,EAAE,MAAA,EAAO;AAAA,IACf,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,IAChB,GAAA,EAAK,EAAE,MAAA;AAAO,GACf,CAAC;AACJ,CAAC;AAGM,IAAM,sBAAA,GAAyB,EAAE,MAAA,CAAO;AAAA,EAC7C,EAAA,EAAI,EAAE,OAAA,EAAQ;AAAA,EACd,YAAA,EAAc,EAAE,MAAA,EAAO;AAAA,EACvB,UAAA,EAAY,CAAA,CAAE,KAAA,CAAM,CAAA,CAAE,MAAA,CAAO;AAAA,IAC3B,OAAA,EAAS,EAAE,MAAA,EAAO;AAAA,IAClB,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,IAChB,QAAA,EAAU,EAAE,MAAA,EAAO;AAAA,IACnB,OAAA,EAAS,EAAE,MAAA;AAAO,GACnB,CAAC;AACJ,CAAC;AAIM,IAAM,iBAAA,GAAoB,mBAAmB,MAAA,CAAO;AAAA,EACzD,IAAA,EAAM,CAAA,CAAE,OAAA,CAAQ,KAAK,CAAA;AAAA,EACrB,KAAA,EAAO,CAAA,CAAE,KAAA,CAAM,CAAA,CAAE,QAAQ,CAAA;AAAA,EACzB,GAAA,EAAK;AACP,CAAC;AAEM,IAAM,mBAAA,GAAsB,mBAAmB,MAAA,CAAO;AAAA,EAC3D,IAAA,EAAM,CAAA,CAAE,OAAA,CAAQ,OAAO,CAAA;AAAA,EACvB,GAAA,EAAK;AACP,CAAC;AAEM,IAAM,mBAAA,GAAsB,mBAAmB,MAAA,CAAO;AAAA,EAC3D,IAAA,EAAM,CAAA,CAAE,OAAA,CAAQ,OAAO,CAAA;AAAA,EACvB,GAAA,EAAK;AACP,CAAC;AAEM,IAAM,kBAAA,GAAqB,mBAAmB,MAAA,CAAO;AAAA,EAC1D,IAAA,EAAM,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA;AAAA,EACtB,GAAA,EAAK;AACP,CAAC;AAEM,IAAM,kBAAA,GAAqB,EAAE,MAAA,CAAO;AAAA,EACzC,SAAA,EAAW,EAAE,MAAA,EAAO;AAAA,EACpB,GAAA,EAAK,kBAAkB,QAAA,EAAS;AAAA,EAChC,KAAA,EAAO,uBAAA;AAAA,EACP,KAAA,EAAO;AACT,CAAC;AAIM,IAAM,uBAAA,GAA0B,EAAE,MAAA,CAAO;AAAA,EAC9C,SAAA,EAAW,CAAA,CAAE,KAAA,CAAM,CAAA,CAAE,MAAA,CAAO;AAAA,IAC1B,GAAA,EAAK,EAAE,MAAA,EAAO;AAAA,IACd,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,IAChB,QAAQ,CAAA,CAAE,IAAA,CAAK,CAAC,KAAA,EAAO,OAAA,EAAS,YAAY,CAAC,CAAA;AAAA,IAC7C,QAAA,EAAU,EAAE,MAAA,EAAO;AAAA,IACnB,OAAA,EAAS,EAAE,MAAA;AAAO,GACnB,CAAC,CAAA;AAAA,EACF,WAAA,EAAa,CAAA,CAAE,KAAA,CAAM,CAAA,CAAE,MAAA,CAAO;AAAA,IAC5B,GAAA,EAAK,EAAE,MAAA,EAAO;AAAA,IACd,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,IAChB,QAAQ,CAAA,CAAE,IAAA,CAAK,CAAC,KAAA,EAAO,OAAA,EAAS,YAAY,CAAC,CAAA;AAAA,IAC7C,QAAA,EAAU,EAAE,MAAA,EAAO;AAAA,IACnB,OAAA,EAAS,EAAE,MAAA;AAAO,GACnB,CAAC,CAAA;AAAA,EACF,gBAAA,EAAkB,CAAA,CAAE,KAAA,CAAM,CAAA,CAAE,MAAA,CAAO;AAAA,IACjC,GAAA,EAAK,EAAE,MAAA,EAAO;AAAA,IACd,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,IAChB,QAAQ,CAAA,CAAE,IAAA,CAAK,CAAC,KAAA,EAAO,OAAA,EAAS,YAAY,CAAC,CAAA;AAAA,IAC7C,QAAA,EAAU,EAAE,MAAA,EAAO;AAAA,IACnB,OAAA,EAAS,EAAE,MAAA;AAAO,GACnB,CAAC,CAAA;AAAA,EACF,aAAA,EAAe,EAAE,MAAA,EAAO;AAAA,EACxB,eAAA,EAAiB,EAAE,MAAA,EAAO;AAAA,EAC1B,UAAA,EAAY,EAAE,MAAA,EAAO;AAAA,EACrB,UAAA,EAAY,EAAE,MAAA;AAChB,CAAC;AAKM,IAAM,uBAAA,GAA0B,EAAE,MAAA,CAAO;AAAA,EAC9C,KAAA,EAAO,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,KAAA,EAAO,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,EAAA,EAAI,CAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EACzB,SAAA,EAAW,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,WAAA,EAAa,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,WAAA,EAAa,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,GAAA,EAAK,kBAAkB,QAAA,EAAS;AAAA,EAChC,WAAA,EAAa,EAAE,OAAA,EAAQ;AAAA,EACvB,iBAAA,EAAmB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACvC,eAAA,EAAiB,EAAE,MAAA;AACrB,CAAC;AAIM,IAAM,kBAAA,GAAqB,EAAE,MAAA,CAAO;AAAA,EACzC,OAAO,CAAA,CAAE,KAAA,CAAM,EAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,EACpC,IAAA,EAAM,CAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EAC3B,YAAY,CAAA,CAAE,MAAA,CAAO,EAAE,OAAA,EAAS,EAAE,QAAA;AACpC,CAAC;AAGM,IAAM,mBAAA,GAAsB,EAAE,MAAA,CAAO;AAAA,EAC1C,EAAA,EAAI,EAAE,OAAA,EAAQ;AAAA,EACd,QAAA,EAAU,iBAAA;AAAA,EACV,UAAA,EAAY,EAAE,MAAA;AAChB,CAAC;AAIM,IAAM,oBAAA,GAAuB,EAAE,MAAA,CAAO;AAAA,EAC3C,IAAA,EAAM,CAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EAC3B,YAAY,CAAA,CAAE,MAAA,CAAO,EAAE,OAAA,EAAS,EAAE,QAAA;AACpC,CAAC;AAGM,IAAM,qBAAA,GAAwB,EAAE,MAAA,CAAO;AAAA,EAC5C,EAAA,EAAI,EAAE,OAAA,EAAQ;AAAA,EACd,QAAA,EAAU,mBAAA;AAAA,EACV,UAAA,EAAY,EAAE,MAAA;AAChB,CAAC;AAIM,IAAM,qBAAA,GAAwB,EAAE,MAAA,CAAO;AAAA,EAC5C,QAAA,EAAU,oBAAoB,QAAA;AAChC,CAAC;AAIM,IAAM,mBAAA,GAAsB,EAAE,MAAA,CAAO;AAAA,EAC1C,IAAA,EAAM,CAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACpB,CAAC;AAGM,IAAM,oBAAA,GAAuB,EAAE,MAAA,CAAO;AAAA,EAC3C,EAAA,EAAI,EAAE,OAAA,EAAQ;AAAA,EACd,QAAA,EAAU,kBAAA;AAAA,EACV,UAAA,EAAY,EAAE,MAAA;AAChB,CAAC;AAIM,IAAM,uBAAA,GAA0B,EAAE,MAAA,CAAO;AAAA,EAC9C,SAAA,EAAW,CAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA;AAAA,EACpC,KAAA,EAAO,EAAE,MAAA;AACX,CAAC;AAIM,IAAM,wBAAA,GAA2B,EAAE,MAAA,CAAO;AAAA,EAC/C,QAAA,EAAU,mBAAmB,QAAA;AAC/B,CAAC;AAIM,IAAM,4BAAA,GAA+B,EAAE,KAAA,CAAM;AAAA,EAClD,uBAAA;AAAA,EACA,CAAA,CAAE,MAAA,CAAO,EAAE,KAAA,EAAO,CAAA,CAAE,IAAA,CAAK,CAAC,aAAA,EAAe,UAAA,EAAY,UAAU,CAAC,CAAA,EAAG;AACrE,CAAC;;;ACvPM,IAAM,WAAA,GAAc;AAEpB,IAAM,KAAA,GAAQ;AAAA,EACnB,aAAA,EAAiB,2BAAA;AAAA,EACjB,eAAA,EAAiB,6BAAA;AAAA,EACjB,eAAA,EAAiB,6BAAA;AAAA,EACjB,cAAA,EAAiB,4BAAA;AAAA,EACjB,QAAA,EAAiB;AACnB;AAEO,IAAM,mBAAA,GAAsB;AAC5B,IAAM,aAAA,GAAgB;AACtB,IAAM,aAAA,GAAgB,CAAC,OAAA,EAAS,MAAA,EAAQ,cAAc,MAAM;;;ACZ5D,IAAM,YAAA,GAAe;AAErB,IAAM,SAAA,GAAY;AAAA,EACvB,OAAA,EAAkB,UAAA;AAAA,EAClB,GAAA,EAAkB,MAAA;AAAA,EAClB,KAAA,EAAkB,QAAA;AAAA,EAClB,KAAA,EAAkB,QAAA;AAAA,EAClB,IAAA,EAAkB,OAAA;AAAA,EAClB,OAAA,EAAkB,UAAA;AAAA,EAClB,MAAA,EAAkB,SAAA;AAAA,EAClB,WAAA,EAAkB,cAAA;AAAA,EAClB,QAAA,EAAkB,WAAA;AAAA,EAClB,eAAA,EAAkB,kBAAA;AAAA,EAClB,aAAA,EAAkB,gBAAA;AAAA,EAClB,gBAAA,EAAkB,0BAAA;AAAA,EAClB,KAAA,EAAkB;AACpB","file":"index.js","sourcesContent":["import { z } from 'zod';\n\n// ── Shared schemas ────────────────────────────────────────────────────────────\n\nexport const SnapshotGitSchema = z.object({\n commit: z.string(),\n branch: z.string(),\n message: z.string(),\n});\n\nexport const SnapshotMetaSchema = z.object({\n id: z.string(),\n timestamp: z.string(),\n git: SnapshotGitSchema.optional(),\n durationMs: z.number(),\n runContext: z.record(z.unknown()).optional(),\n});\n\n// DevkitRunOutput\nexport const DevkitRunResultSchema = z.object({\n Package: z.string(),\n Task: z.string(),\n OK: z.boolean(),\n Cached: z.boolean(),\n Elapsed: z.number(),\n ExitCode: z.number(),\n Stdout: z.string(),\n Stderr: z.string(),\n Error: z.string(),\n});\n\nexport const DevkitRunOutputSchema = z.object({\n elapsed: z.string(),\n ok: z.boolean(),\n results: z.array(DevkitRunResultSchema),\n summary: z.object({\n total: z.number(),\n passed: z.number(),\n failed: z.number(),\n cached: z.number(),\n }),\n});\n\n// DevkitCheckOutput\nexport const DevkitCheckIssueSchema = z.object({\n check: z.string(),\n severity: z.enum(['error', 'warning', 'info']),\n message: z.string(),\n file: z.string().optional(),\n fix: z.string().optional(),\n capability: z.string().optional(),\n});\n\nexport const DevkitCheckOutputSchema = z.object({\n ok: z.boolean(),\n packages: z.record(z.object({\n ok: z.boolean(),\n issues: z.array(DevkitCheckIssueSchema).nullable(),\n })),\n});\n\n// DevkitStatsOutput\nexport const DevkitStatsOutputSchema = z.object({\n ok: z.boolean(),\n score: z.number(),\n grade: z.string(),\n summary: z.object({\n total: z.number(),\n healthy: z.number(),\n warning: z.number(),\n error: z.number(),\n total_errors: z.number(),\n total_warnings: z.number(),\n }),\n by_category: z.record(z.object({\n total: z.number(),\n healthy: z.number(),\n issues: z.number(),\n grade: z.string(),\n })),\n issues_by_type: z.record(z.object({\n check: z.string(),\n errors: z.number(),\n warnings: z.number(),\n packages: z.number(),\n })),\n coverage: z.record(z.object({\n pass: z.number(),\n total: z.number(),\n pct: z.number(),\n })),\n});\n\n// DevkitGateOutput\nexport const DevkitGateOutputSchema = z.object({\n ok: z.boolean(),\n staged_files: z.number(),\n violations: z.array(z.object({\n package: z.string(),\n check: z.string(),\n severity: z.string(),\n message: z.string(),\n })),\n});\n\n// ── Snapshot schemas ──────────────────────────────────────────────────────────\n\nexport const RunSnapshotSchema = SnapshotMetaSchema.extend({\n kind: z.literal('run'),\n tasks: z.array(z.string()),\n raw: DevkitRunOutputSchema,\n});\n\nexport const CheckSnapshotSchema = SnapshotMetaSchema.extend({\n kind: z.literal('check'),\n raw: DevkitCheckOutputSchema,\n});\n\nexport const StatsSnapshotSchema = SnapshotMetaSchema.extend({\n kind: z.literal('stats'),\n raw: DevkitStatsOutputSchema,\n});\n\nexport const GateSnapshotSchema = SnapshotMetaSchema.extend({\n kind: z.literal('gate'),\n raw: DevkitGateOutputSchema,\n});\n\nexport const BaselineDataSchema = z.object({\n timestamp: z.string(),\n git: SnapshotGitSchema.optional(),\n check: DevkitCheckOutputSchema,\n stats: DevkitStatsOutputSchema,\n});\n\n// ── Analysis schemas ──────────────────────────────────────────────────────────\n\nexport const BaselineCheckDiffSchema = z.object({\n newIssues: z.array(z.object({\n pkg: z.string(),\n check: z.string(),\n status: z.enum(['new', 'fixed', 'persisting']),\n severity: z.string(),\n message: z.string(),\n })),\n fixedIssues: z.array(z.object({\n pkg: z.string(),\n check: z.string(),\n status: z.enum(['new', 'fixed', 'persisting']),\n severity: z.string(),\n message: z.string(),\n })),\n persistingIssues: z.array(z.object({\n pkg: z.string(),\n check: z.string(),\n status: z.enum(['new', 'fixed', 'persisting']),\n severity: z.string(),\n message: z.string(),\n })),\n newIssueCount: z.number(),\n fixedIssueCount: z.number(),\n scoreDelta: z.number(),\n gradeDelta: z.string(),\n});\n\n// ── Request/Response schemas ──────────────────────────────────────────────────\n\n// GET /summary\nexport const QASummaryResponseSchema = z.object({\n score: z.number().nullable(),\n grade: z.string().nullable(),\n ok: z.boolean().nullable(),\n lastRunAt: z.string().nullable(),\n lastCheckAt: z.string().nullable(),\n lastStatsAt: z.string().nullable(),\n git: SnapshotGitSchema.nullable(),\n hasBaseline: z.boolean(),\n baselineTimestamp: z.string().nullable(),\n runHistoryCount: z.number(),\n});\nexport type QASummaryResponse = z.infer<typeof QASummaryResponseSchema>;\n\n// POST /run\nexport const QARunRequestSchema = z.object({\n tasks: z.array(z.string()).optional(),\n save: z.boolean().optional(),\n runContext: z.record(z.unknown()).optional(),\n});\nexport type QARunRequest = z.infer<typeof QARunRequestSchema>;\n\nexport const QARunResponseSchema = z.object({\n ok: z.boolean(),\n snapshot: RunSnapshotSchema,\n durationMs: z.number(),\n});\nexport type QARunResponse = z.infer<typeof QARunResponseSchema>;\n\n// POST /check\nexport const QACheckRequestSchema = z.object({\n save: z.boolean().optional(),\n runContext: z.record(z.unknown()).optional(),\n});\nexport type QACheckRequest = z.infer<typeof QACheckRequestSchema>;\n\nexport const QACheckResponseSchema = z.object({\n ok: z.boolean(),\n snapshot: CheckSnapshotSchema,\n durationMs: z.number(),\n});\nexport type QACheckResponse = z.infer<typeof QACheckResponseSchema>;\n\n// GET /stats\nexport const QAStatsResponseSchema = z.object({\n snapshot: StatsSnapshotSchema.nullable(),\n});\nexport type QAStatsResponse = z.infer<typeof QAStatsResponseSchema>;\n\n// POST /gate\nexport const QAGateRequestSchema = z.object({\n save: z.boolean().optional(),\n});\nexport type QAGateRequest = z.infer<typeof QAGateRequestSchema>;\n\nexport const QAGateResponseSchema = z.object({\n ok: z.boolean(),\n snapshot: GateSnapshotSchema,\n durationMs: z.number(),\n});\nexport type QAGateResponse = z.infer<typeof QAGateResponseSchema>;\n\n// GET /history\nexport const QAHistoryResponseSchema = z.object({\n snapshots: z.array(RunSnapshotSchema),\n total: z.number(),\n});\nexport type QAHistoryResponse = z.infer<typeof QAHistoryResponseSchema>;\n\n// GET /baseline\nexport const QABaselineResponseSchema = z.object({\n baseline: BaselineDataSchema.nullable(),\n});\nexport type QABaselineResponse = z.infer<typeof QABaselineResponseSchema>;\n\n// GET /baseline/diff\nexport const QABaselineDiffResponseSchema = z.union([\n BaselineCheckDiffSchema,\n z.object({ error: z.enum(['no-baseline', 'no-check', 'no-stats']) }),\n]);\nexport type QABaselineDiffResponse = z.infer<typeof QABaselineDiffResponseSchema>;\n","export const QA_DATA_DIR = '.kb/qa';\n\nexport const PATHS = {\n SNAPSHOTS_RUN: '.kb/qa/snapshots/run.json',\n SNAPSHOTS_CHECK: '.kb/qa/snapshots/check.json',\n SNAPSHOTS_STATS: '.kb/qa/snapshots/stats.json',\n SNAPSHOTS_GATE: '.kb/qa/snapshots/gate.json',\n BASELINE: '.kb/qa/baseline.json',\n} as const;\n\nexport const HISTORY_MAX_ENTRIES = 50;\nexport const TRENDS_WINDOW = 10;\nexport const DEFAULT_TASKS = ['build', 'lint', 'type-check', 'test'] as const;\n","export const QA_BASE_PATH = '/v1/plugins/qa' as const;\n\nexport const QA_ROUTES = {\n SUMMARY: '/summary',\n RUN: '/run',\n CHECK: '/check',\n STATS: '/stats',\n GATE: '/gate',\n HISTORY: '/history',\n TRENDS: '/trends',\n REGRESSIONS: '/regressions',\n BASELINE: '/baseline',\n BASELINE_UPDATE: '/baseline/update',\n BASELINE_DIFF: '/baseline/diff',\n PACKAGE_TIMELINE: '/packages/:name/timeline',\n TASKS: '/tasks',\n} as const;\n\nexport type QARoute = typeof QA_ROUTES[keyof typeof QA_ROUTES];\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/types/rest-api.ts","../src/constants.ts","../src/routes.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { z } from 'zod';\n\n// ── Shared schemas ────────────────────────────────────────────────────────────\n\nexport const SnapshotGitSchema = z.object({\n commit: z.string(),\n branch: z.string(),\n message: z.string(),\n});\n\nexport const SnapshotMetaSchema = z.object({\n id: z.string(),\n timestamp: z.string(),\n git: SnapshotGitSchema.optional(),\n durationMs: z.number(),\n runContext: z.record(z.unknown()).optional(),\n});\n\n// DevkitRunOutput\nexport const DevkitRunResultSchema = z.object({\n Package: z.string(),\n Task: z.string(),\n OK: z.boolean(),\n Cached: z.boolean(),\n Elapsed: z.number(),\n ExitCode: z.number(),\n Stdout: z.string(),\n Stderr: z.string(),\n Error: z.string(),\n});\n\nexport const DevkitRunOutputSchema = z.object({\n elapsed: z.string(),\n ok: z.boolean(),\n results: z.array(DevkitRunResultSchema),\n summary: z.object({\n total: z.number(),\n passed: z.number(),\n failed: z.number(),\n cached: z.number(),\n }),\n});\n\n// DevkitCheckOutput\nexport const DevkitCheckIssueSchema = z.object({\n check: z.string(),\n severity: z.enum(['error', 'warning', 'info']),\n message: z.string(),\n file: z.string().optional(),\n fix: z.string().optional(),\n capability: z.string().optional(),\n});\n\nexport const DevkitCheckOutputSchema = z.object({\n ok: z.boolean(),\n packages: z.record(z.object({\n ok: z.boolean(),\n issues: z.array(DevkitCheckIssueSchema).nullable(),\n })),\n});\n\n// DevkitStatsOutput\nexport const DevkitStatsOutputSchema = z.object({\n ok: z.boolean(),\n score: z.number(),\n grade: z.string(),\n summary: z.object({\n total: z.number(),\n healthy: z.number(),\n warning: z.number(),\n error: z.number(),\n total_errors: z.number(),\n total_warnings: z.number(),\n }),\n by_category: z.record(z.object({\n total: z.number(),\n healthy: z.number(),\n issues: z.number(),\n grade: z.string(),\n })),\n issues_by_type: z.record(z.object({\n check: z.string(),\n errors: z.number(),\n warnings: z.number(),\n packages: z.number(),\n })),\n coverage: z.record(z.object({\n pass: z.number(),\n total: z.number(),\n pct: z.number(),\n })),\n});\n\n// DevkitGateOutput\nexport const DevkitGateOutputSchema = z.object({\n ok: z.boolean(),\n staged_files: z.number(),\n violations: z.array(z.object({\n package: z.string(),\n check: z.string(),\n severity: z.string(),\n message: z.string(),\n })),\n});\n\n// ── Snapshot schemas ──────────────────────────────────────────────────────────\n\nexport const RunSnapshotSchema = SnapshotMetaSchema.extend({\n kind: z.literal('run'),\n tasks: z.array(z.string()),\n raw: DevkitRunOutputSchema,\n});\n\nexport const CheckSnapshotSchema = SnapshotMetaSchema.extend({\n kind: z.literal('check'),\n raw: DevkitCheckOutputSchema,\n});\n\nexport const StatsSnapshotSchema = SnapshotMetaSchema.extend({\n kind: z.literal('stats'),\n raw: DevkitStatsOutputSchema,\n});\n\nexport const GateSnapshotSchema = SnapshotMetaSchema.extend({\n kind: z.literal('gate'),\n raw: DevkitGateOutputSchema,\n});\n\nexport const BaselineDataSchema = z.object({\n timestamp: z.string(),\n git: SnapshotGitSchema.optional(),\n check: DevkitCheckOutputSchema,\n stats: DevkitStatsOutputSchema,\n});\n\n// ── Analysis schemas ──────────────────────────────────────────────────────────\n\nexport const BaselineCheckDiffSchema = z.object({\n newIssues: z.array(z.object({\n pkg: z.string(),\n check: z.string(),\n status: z.enum(['new', 'fixed', 'persisting']),\n severity: z.string(),\n message: z.string(),\n })),\n fixedIssues: z.array(z.object({\n pkg: z.string(),\n check: z.string(),\n status: z.enum(['new', 'fixed', 'persisting']),\n severity: z.string(),\n message: z.string(),\n })),\n persistingIssues: z.array(z.object({\n pkg: z.string(),\n check: z.string(),\n status: z.enum(['new', 'fixed', 'persisting']),\n severity: z.string(),\n message: z.string(),\n })),\n newIssueCount: z.number(),\n fixedIssueCount: z.number(),\n scoreDelta: z.number(),\n gradeDelta: z.string(),\n});\n\n// ── Request/Response schemas ──────────────────────────────────────────────────\n\n// GET /summary\nexport const QASummaryResponseSchema = z.object({\n score: z.number().nullable(),\n grade: z.string().nullable(),\n ok: z.boolean().nullable(),\n lastRunAt: z.string().nullable(),\n lastCheckAt: z.string().nullable(),\n lastStatsAt: z.string().nullable(),\n git: SnapshotGitSchema.nullable(),\n hasBaseline: z.boolean(),\n baselineTimestamp: z.string().nullable(),\n runHistoryCount: z.number(),\n});\nexport type QASummaryResponse = z.infer<typeof QASummaryResponseSchema>;\n\n// POST /run\nexport const QARunRequestSchema = z.object({\n tasks: z.array(z.string()).optional(),\n save: z.boolean().optional(),\n runContext: z.record(z.unknown()).optional(),\n});\nexport type QARunRequest = z.infer<typeof QARunRequestSchema>;\n\nexport const QARunResponseSchema = z.object({\n ok: z.boolean(),\n snapshot: RunSnapshotSchema,\n durationMs: z.number(),\n});\nexport type QARunResponse = z.infer<typeof QARunResponseSchema>;\n\n// POST /check\nexport const QACheckRequestSchema = z.object({\n save: z.boolean().optional(),\n runContext: z.record(z.unknown()).optional(),\n});\nexport type QACheckRequest = z.infer<typeof QACheckRequestSchema>;\n\nexport const QACheckResponseSchema = z.object({\n ok: z.boolean(),\n snapshot: CheckSnapshotSchema,\n durationMs: z.number(),\n});\nexport type QACheckResponse = z.infer<typeof QACheckResponseSchema>;\n\n// GET /stats\nexport const QAStatsResponseSchema = z.object({\n snapshot: StatsSnapshotSchema.nullable(),\n});\nexport type QAStatsResponse = z.infer<typeof QAStatsResponseSchema>;\n\n// POST /gate\nexport const QAGateRequestSchema = z.object({\n save: z.boolean().optional(),\n});\nexport type QAGateRequest = z.infer<typeof QAGateRequestSchema>;\n\nexport const QAGateResponseSchema = z.object({\n ok: z.boolean(),\n snapshot: GateSnapshotSchema,\n durationMs: z.number(),\n});\nexport type QAGateResponse = z.infer<typeof QAGateResponseSchema>;\n\n// GET /history\nexport const QAHistoryResponseSchema = z.object({\n snapshots: z.array(RunSnapshotSchema),\n total: z.number(),\n});\nexport type QAHistoryResponse = z.infer<typeof QAHistoryResponseSchema>;\n\n// GET /baseline\nexport const QABaselineResponseSchema = z.object({\n baseline: BaselineDataSchema.nullable(),\n});\nexport type QABaselineResponse = z.infer<typeof QABaselineResponseSchema>;\n\n// GET /baseline/diff\nexport const QABaselineDiffResponseSchema = z.union([\n BaselineCheckDiffSchema,\n z.object({ error: z.enum(['no-baseline', 'no-check', 'no-stats']) }),\n]);\nexport type QABaselineDiffResponse = z.infer<typeof QABaselineDiffResponseSchema>;\n","export const QA_DATA_DIR = '.kb/qa';\n\nexport const PATHS = {\n SNAPSHOTS_RUN: '.kb/qa/snapshots/run.json',\n SNAPSHOTS_CHECK: '.kb/qa/snapshots/check.json',\n SNAPSHOTS_STATS: '.kb/qa/snapshots/stats.json',\n SNAPSHOTS_GATE: '.kb/qa/snapshots/gate.json',\n SNAPSHOTS_E2E_FLAKY: '.kb/qa/snapshots/e2e-flaky.json',\n BASELINE: '.kb/qa/baseline.json',\n} as const;\n\nexport const HISTORY_MAX_ENTRIES = 50;\nexport const TRENDS_WINDOW = 10;\nexport const DEFAULT_TASKS = ['build', 'lint', 'type-check', 'test'] as const;\n","export const QA_BASE_PATH = '/v1/plugins/qa' as const;\n\nexport const QA_ROUTES = {\n SUMMARY: '/summary',\n RUN: '/run',\n CHECK: '/check',\n STATS: '/stats',\n GATE: '/gate',\n HISTORY: '/history',\n TRENDS: '/trends',\n REGRESSIONS: '/regressions',\n BASELINE: '/baseline',\n BASELINE_UPDATE: '/baseline/update',\n BASELINE_DIFF: '/baseline/diff',\n PACKAGE_TIMELINE: '/packages/:name/timeline',\n TASKS: '/tasks',\n} as const;\n\nexport type QARoute = typeof QA_ROUTES[keyof typeof QA_ROUTES];\n"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kb-labs/qa-contracts",
|
|
3
3
|
"description": "Contracts for KB Labs QA Plugin — types, interfaces, and constants for QA checks, baselines, and history tracking.",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.100.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"tsup": "^8.5.0",
|
|
27
27
|
"typescript": "^5.6.3",
|
|
28
28
|
"vitest": "^3.2.6",
|
|
29
|
-
"@kb-labs/devkit": "2.
|
|
29
|
+
"@kb-labs/devkit": "2.100.0"
|
|
30
30
|
},
|
|
31
31
|
"engines": {
|
|
32
32
|
"node": ">=20.0.0",
|