@kb-labs/qa-contracts 2.119.0-canary.f8394d5fd → 2.119.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.js.map +1 -1
- package/package.json +3 -3
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":"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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 CI_OVERVIEW: '/ci/overview',\n} as const;\n\nexport type QARoute = typeof QA_ROUTES[keyof typeof QA_ROUTES];\n"]}
|
|
1
|
+
{"version":3,"sources":["../../home/runner/work/kb-labs/kb-labs/plugins/qa/contracts/src/types/rest-api.ts","../../home/runner/work/kb-labs/kb-labs/plugins/qa/contracts/src/constants.ts","../../home/runner/work/kb-labs/kb-labs/plugins/qa/contracts/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 CI_OVERVIEW: '/ci/overview',\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.119.0
|
|
4
|
+
"version": "2.119.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -26,10 +26,10 @@
|
|
|
26
26
|
"tsup": "^8.5.0",
|
|
27
27
|
"typescript": "^5.6.3",
|
|
28
28
|
"vitest": "^3.2.6",
|
|
29
|
-
"@kb-labs/devkit": "2.119.0
|
|
29
|
+
"@kb-labs/devkit": "2.119.0"
|
|
30
30
|
},
|
|
31
31
|
"engines": {
|
|
32
|
-
"node": ">=
|
|
32
|
+
"node": ">=24.0.0",
|
|
33
33
|
"pnpm": ">=9.0.0"
|
|
34
34
|
},
|
|
35
35
|
"sideEffects": false,
|