@kb-labs/qa-entry 2.109.0 → 2.111.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/cli/commands/baseline-diff.d.ts +1 -3
- package/dist/cli/commands/baseline-diff.js +3 -3
- package/dist/cli/commands/baseline-diff.js.map +1 -1
- package/dist/cli/commands/baseline-status.d.ts +1 -3
- package/dist/cli/commands/baseline-status.js +1 -1
- package/dist/cli/commands/baseline-status.js.map +1 -1
- package/dist/cli/commands/baseline-update.d.ts +1 -3
- package/dist/cli/commands/baseline-update.js +1 -1
- package/dist/cli/commands/baseline-update.js.map +1 -1
- package/dist/cli/commands/flags.d.ts +70 -1
- package/dist/cli/commands/flags.js +67 -1
- package/dist/cli/commands/flags.js.map +1 -1
- package/dist/cli/commands/qa-check.d.ts +1 -3
- package/dist/cli/commands/qa-check.js +1 -1
- package/dist/cli/commands/qa-check.js.map +1 -1
- package/dist/cli/commands/qa-ci-evidence-capture.d.ts +29 -0
- package/dist/cli/commands/qa-ci-evidence-capture.js +59 -0
- package/dist/cli/commands/qa-ci-evidence-capture.js.map +1 -0
- package/dist/cli/commands/qa-ci-evidence-sync.d.ts +31 -0
- package/dist/cli/commands/qa-ci-evidence-sync.js +51 -0
- package/dist/cli/commands/qa-ci-evidence-sync.js.map +1 -0
- package/dist/cli/commands/qa-ci-overview.d.ts +21 -0
- package/dist/cli/commands/qa-ci-overview.js +49 -0
- package/dist/cli/commands/qa-ci-overview.js.map +1 -0
- package/dist/cli/commands/qa-e2e-flaky.d.ts +1 -3
- package/dist/cli/commands/qa-e2e-flaky.js +6 -6
- package/dist/cli/commands/qa-e2e-flaky.js.map +1 -1
- package/dist/cli/commands/qa-gate.d.ts +1 -3
- package/dist/cli/commands/qa-gate.js +1 -1
- package/dist/cli/commands/qa-gate.js.map +1 -1
- package/dist/cli/commands/qa-history.d.ts +1 -3
- package/dist/cli/commands/qa-history.js +1 -1
- package/dist/cli/commands/qa-history.js.map +1 -1
- package/dist/cli/commands/qa-regressions.d.ts +1 -3
- package/dist/cli/commands/qa-regressions.js +1 -1
- package/dist/cli/commands/qa-regressions.js.map +1 -1
- package/dist/cli/commands/qa-run.d.ts +1 -3
- package/dist/cli/commands/qa-run.js +1 -1
- package/dist/cli/commands/qa-run.js.map +1 -1
- package/dist/cli/commands/qa-stats.d.ts +1 -3
- package/dist/cli/commands/qa-stats.js +1 -1
- package/dist/cli/commands/qa-stats.js.map +1 -1
- package/dist/cli/commands/qa-trends.d.ts +1 -3
- package/dist/cli/commands/qa-trends.js +1 -1
- package/dist/cli/commands/qa-trends.js.map +1 -1
- package/dist/index.js +99 -3
- package/dist/index.js.map +1 -1
- package/dist/manifest.d.ts +4 -0
- package/dist/manifest.js +99 -3
- package/dist/manifest.js.map +1 -1
- package/dist/manifest.json +245 -12
- package/dist/rest/handlers/ci-overview-handler.d.ts +7 -0
- package/dist/rest/handlers/ci-overview-handler.js +19 -0
- package/dist/rest/handlers/ci-overview-handler.js.map +1 -0
- package/dist/widgets/__federation_expose_QADashboard.js +1 -1
- package/dist/widgets/mf-manifest.json +12 -12
- package/dist/widgets/mf-stats.json +12 -12
- package/dist/widgets/remoteEntry.js +2 -2
- package/package.json +4 -4
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/commands/flags.ts","../src/manifest.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { defineFlags } from '@kb-labs/sdk';\n\nexport const qaRunFlags = defineFlags({\n tasks: {\n type: 'string',\n description: 'Comma-separated tasks to run (default: build,lint,type-check,test)',\n },\n save: {\n type: 'boolean',\n description: 'Save snapshot to history',\n default: true,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaRunFlags = typeof qaRunFlags.infer;\n\nexport const qaCheckFlags = defineFlags({\n save: {\n type: 'boolean',\n description: 'Save snapshot to history',\n default: true,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaCheckFlags = typeof qaCheckFlags.infer;\n\nexport const qaStatsFlags = defineFlags({\n save: {\n type: 'boolean',\n description: 'Save snapshot to history',\n default: true,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaStatsFlags = typeof qaStatsFlags.infer;\n\nexport const qaGateFlags = defineFlags({\n save: {\n type: 'boolean',\n description: 'Save snapshot to history',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaGateFlags = typeof qaGateFlags.infer;\n\nexport const qaHistoryFlags = defineFlags({\n limit: {\n type: 'number',\n description: 'Max entries to show',\n default: 20,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaHistoryFlags = typeof qaHistoryFlags.infer;\n\nexport const qaTrendsFlags = defineFlags({\n window: {\n type: 'number',\n description: 'Number of history entries to analyze',\n default: 10,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaTrendsFlags = typeof qaTrendsFlags.infer;\n\nexport const qaE2eFlakyFlags = defineFlags({\n agent: {\n type: 'boolean',\n description: 'Emit compact machine-readable agent JSON (alias for --json)',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n case: {\n type: 'string',\n description: 'Drill down into one case: \"<suite>/<spec>#<testId>\" (from the overview\\'s \"top\" list)',\n },\n window: {\n type: 'number',\n description: 'Number of e2e-flaky history entries (runs) to analyze',\n default: 10,\n },\n sync: {\n type: 'boolean',\n description: 'Fetch the latest flaky history from the \"ci-data\" branch before analyzing',\n default: false,\n },\n ingest: {\n type: 'string',\n description: 'CI-only: directory of per-shard flaky-report.json files to merge and save as a new snapshot',\n },\n});\nexport type QaE2eFlakyFlags = typeof qaE2eFlakyFlags.infer;\n\nexport const qaRegressionsFlags = defineFlags({\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaRegressionsFlags = typeof qaRegressionsFlags.infer;\n\nexport const baselineUpdateFlags = defineFlags({\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type BaselineUpdateFlags = typeof baselineUpdateFlags.infer;\n\nexport const baselineStatusFlags = defineFlags({\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type BaselineStatusFlags = typeof baselineStatusFlags.infer;\n\nexport const baselineDiffFlags = defineFlags({\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type BaselineDiffFlags = typeof baselineDiffFlags.infer;\n","import {\n combinePermissions,\n kbPlatformPreset,\n defineCommandFlags,\n} from '@kb-labs/sdk';\nimport {\n qaRunFlags,\n qaCheckFlags,\n qaStatsFlags,\n qaGateFlags,\n qaHistoryFlags,\n qaTrendsFlags,\n qaE2eFlakyFlags,\n qaRegressionsFlags,\n baselineUpdateFlags,\n baselineStatusFlags,\n baselineDiffFlags,\n} from './cli/commands/flags.js';\nimport { QA_BASE_PATH, QA_ROUTES } from '@kb-labs/qa-contracts';\n\nconst pluginPermissions = combinePermissions()\n .with(kbPlatformPreset)\n .withFs({\n mode: 'readWrite',\n allow: ['**'],\n })\n .withShell({\n allow: ['kb-devkit', 'git'],\n })\n .withPlatform({\n analytics: true,\n })\n .withQuotas({\n timeoutMs: 600_000,\n memoryMb: 512,\n })\n .build();\n\nexport const manifest = {\n schema: 'kb.plugin/3',\n id: '@kb-labs/qa',\n version: '0.1.0',\n\n configSection: 'qa',\n\n display: {\n name: 'QA Plugin',\n description: 'Smart wrapper around kb-devkit — history, trends, baseline diffing, and health UI',\n tags: ['qa', 'quality', 'baseline', 'regression', 'devkit'],\n },\n\n platform: {\n requires: [],\n optional: ['cache', 'analytics', 'logger'],\n },\n\n cli: {\n groupMeta: [\n { path: 'qa', describe: 'Quality assurance powered by kb-devkit' },\n { path: 'qa baseline', describe: 'Baseline management' },\n ],\n commands: [\n {\n path: 'qa run',\n category: 'Run',\n describe: 'Run devkit tasks and record results',\n operationType: 'execute' as const,\n handler: './cli/commands/qa-run.js#default',\n flags: defineCommandFlags(qaRunFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa check',\n category: 'Run',\n describe: 'Run devkit structural checks',\n operationType: 'analyze' as const,\n handler: './cli/commands/qa-check.js#default',\n flags: defineCommandFlags(qaCheckFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa stats',\n category: 'Run',\n describe: 'Show devkit health score and category breakdown',\n operationType: 'read' as const,\n handler: './cli/commands/qa-stats.js#default',\n flags: defineCommandFlags(qaStatsFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa gate',\n category: 'Run',\n describe: 'Run pre-commit gate check (exits 1 if violations found)',\n operationType: 'analyze' as const,\n handler: './cli/commands/qa-gate.js#default',\n flags: defineCommandFlags(qaGateFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa history',\n category: 'History',\n describe: 'Show QA run history',\n operationType: 'read' as const,\n handler: './cli/commands/qa-history.js#default',\n flags: defineCommandFlags(qaHistoryFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa trends',\n category: 'History',\n describe: 'Show QA quality trends over time',\n operationType: 'read' as const,\n handler: './cli/commands/qa-trends.js#default',\n flags: defineCommandFlags(qaTrendsFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa e2e flaky',\n category: 'History',\n describe: 'Track flaky e2e cases across CI runs (agent-first overview + drill-down)',\n operationType: 'read' as const,\n handler: './cli/commands/qa-e2e-flaky.js#default',\n flags: defineCommandFlags(qaE2eFlakyFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa regressions',\n category: 'History',\n describe: 'Detect regressions since last run',\n operationType: 'read' as const,\n handler: './cli/commands/qa-regressions.js#default',\n flags: defineCommandFlags(qaRegressionsFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa baseline update',\n category: 'Baseline',\n describe: 'Run check + stats and save as new baseline',\n operationType: 'mutate' as const,\n handler: './cli/commands/baseline-update.js#default',\n flags: defineCommandFlags(baselineUpdateFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa baseline status',\n category: 'Baseline',\n describe: 'Show current baseline',\n operationType: 'read' as const,\n handler: './cli/commands/baseline-status.js#default',\n flags: defineCommandFlags(baselineStatusFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa baseline diff',\n category: 'Baseline',\n describe: 'Diff current state against baseline',\n operationType: 'read' as const,\n handler: './cli/commands/baseline-diff.js#default',\n flags: defineCommandFlags(baselineDiffFlags.schema),\n permissions: pluginPermissions,\n },\n ],\n },\n\n rest: {\n basePath: QA_BASE_PATH,\n routes: [\n { method: 'GET', path: QA_ROUTES.SUMMARY, handler: './rest/handlers/summary-handler.js#default' },\n { method: 'POST', path: QA_ROUTES.RUN, handler: './rest/handlers/run-handler.js#default' },\n { method: 'POST', path: QA_ROUTES.CHECK, handler: './rest/handlers/check-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.STATS, handler: './rest/handlers/stats-handler.js#default' },\n { method: 'POST', path: QA_ROUTES.GATE, handler: './rest/handlers/gate-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.HISTORY, handler: './rest/handlers/history-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.TRENDS, handler: './rest/handlers/trends-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.REGRESSIONS, handler: './rest/handlers/regressions-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.BASELINE, handler: './rest/handlers/baseline-handler.js#default' },\n { method: 'POST', path: QA_ROUTES.BASELINE_UPDATE, handler: './rest/handlers/baseline-update-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.BASELINE_DIFF, handler: './rest/handlers/baseline-diff-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.PACKAGE_TIMELINE, handler: './rest/handlers/package-timeline-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.TASKS, handler: './rest/handlers/tasks-handler.js#default' },\n ],\n },\n\n studio: {\n version: 2 as const,\n remoteName: 'qaPlugin',\n pages: [\n {\n id: 'qa.overview',\n title: 'QA',\n icon: 'ExperimentOutlined',\n route: '/p/qa',\n entry: './QADashboard',\n order: 1,\n },\n ],\n menus: [\n {\n id: 'qa',\n label: 'QA',\n icon: 'ExperimentOutlined',\n target: 'qa.overview',\n order: 50,\n },\n ],\n },\n\n permissions: pluginPermissions,\n};\n\nexport default manifest;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/cli/commands/flags.ts","../src/manifest.ts"],"names":[],"mappings":";;;;AAEO,IAAM,aAAa,WAAA,CAAY;AAAA,EACpC,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa;AAAA,GACf;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,0BAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,aAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAC,CAAA;AAGM,IAAM,eAAe,WAAA,CAAY;AAAA,EACtC,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,0BAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,aAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAC,CAAA;AAGM,IAAM,eAAe,WAAA,CAAY;AAAA,EACtC,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,0BAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,aAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAC,CAAA;AAGM,IAAM,cAAc,WAAA,CAAY;AAAA,EACrC,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,0BAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,aAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAC,CAAA;AAGM,IAAM,iBAAiB,WAAA,CAAY;AAAA,EACxC,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,qBAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,aAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAC,CAAA;AAGM,IAAM,gBAAgB,WAAA,CAAY;AAAA,EACvC,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,sCAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,aAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAC,CAAA;AAGM,IAAM,kBAAkB,WAAA,CAAY;AAAA,EACzC,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,6DAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,aAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,CAAA,oFAAA;AAAA,GACf;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,uDAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,2EAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa;AAAA;AAEjB,CAAC,CAAA;AAGM,IAAM,2BAA2B,WAAA,CAAY;AAAA,EAClD,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa;AAAA,GACf;AAAA,EACA,UAAA,EAAY;AAAA,IACV,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa;AAAA,GACf;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,qCAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,UAAA,EAAY;AAAA,IACV,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa;AAAA,GACf;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,qCAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAC,CAAA;AAGM,IAAM,wBAAwB,WAAA,CAAY;AAAA,EAC/C,UAAA,EAAY;AAAA,IACV,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa;AAAA,GACf;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,sCAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,wDAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,gCAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,6BAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAC,CAAA;AAGM,IAAM,oBAAoB,WAAA,CAAY;AAAA,EAC3C,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,8DAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa;AAAA,GACf;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,qDAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAC,CAAA;AAGM,IAAM,qBAAqB,WAAA,CAAY;AAAA,EAC5C,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,aAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAC,CAAA;AAGM,IAAM,sBAAsB,WAAA,CAAY;AAAA,EAC7C,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,aAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAC,CAAA;AAGM,IAAM,sBAAsB,WAAA,CAAY;AAAA,EAC7C,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,aAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAC,CAAA;AAGM,IAAM,oBAAoB,WAAA,CAAY;AAAA,EAC3C,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,aAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAC,CAAA;AC5MD,IAAM,oBAAoB,kBAAA,EAAmB,CAC1C,IAAA,CAAK,gBAAgB,EACrB,MAAA,CAAO;AAAA,EACN,IAAA,EAAM,WAAA;AAAA,EACN,KAAA,EAAO,CAAC,IAAI;AACd,CAAC,EACA,SAAA,CAAU;AAAA,EACT,KAAA,EAAO,CAAC,WAAA,EAAa,KAAA,EAAO,IAAI;AAClC,CAAC,EACA,YAAA,CAAa;AAAA,EACZ,SAAA,EAAW;AACb,CAAC,EACA,UAAA,CAAW;AAAA,EACV,SAAA,EAAW,GAAA;AAAA,EACX,QAAA,EAAU;AACZ,CAAC,EACA,KAAA,EAAM;AAEF,IAAM,QAAA,GAAW;AAAA,EACtB,MAAA,EAAQ,aAAA;AAAA,EACR,EAAA,EAAI,aAAA;AAAA,EACJ,OAAA,EAAS,OAAA;AAAA,EAET,aAAA,EAAe,IAAA;AAAA,EAEf,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,WAAA;AAAA,IACN,WAAA,EAAa,wFAAA;AAAA,IACb,MAAM,CAAC,IAAA,EAAM,SAAA,EAAW,UAAA,EAAY,cAAc,QAAQ;AAAA,GAC5D;AAAA,EAEA,QAAA,EAAU;AAAA,IACR,UAAU,EAAC;AAAA,IACX,QAAA,EAAU,CAAC,OAAA,EAAS,WAAA,EAAa,QAAQ;AAAA,GAC3C;AAAA,EAEA,GAAA,EAAK;AAAA,IACH,SAAA,EAAW;AAAA,MACT,EAAE,IAAA,EAAM,IAAA,EAAM,QAAA,EAAU,wCAAA,EAAyC;AAAA,MACjE,EAAE,IAAA,EAAM,aAAA,EAAe,QAAA,EAAU,qBAAA,EAAsB;AAAA,MACvD,EAAE,IAAA,EAAM,OAAA,EAAS,QAAA,EAAU,sCAAA,EAAuC;AAAA,MAClE,EAAE,IAAA,EAAM,gBAAA,EAAkB,QAAA,EAAU,+BAAA;AAAgC,KACtE;AAAA,IACA,QAAA,EAAU;AAAA,MACR;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,QAAA,EAAU,KAAA;AAAA,QACV,QAAA,EAAU,qCAAA;AAAA,QACV,aAAA,EAAe,SAAA;AAAA,QACf,OAAA,EAAS,kCAAA;AAAA,QACT,KAAA,EAAO,kBAAA,CAAmB,UAAA,CAAW,MAAM,CAAA;AAAA,QAC3C,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,UAAA;AAAA,QACN,QAAA,EAAU,KAAA;AAAA,QACV,QAAA,EAAU,8BAAA;AAAA,QACV,aAAA,EAAe,SAAA;AAAA,QACf,OAAA,EAAS,oCAAA;AAAA,QACT,KAAA,EAAO,kBAAA,CAAmB,YAAA,CAAa,MAAM,CAAA;AAAA,QAC7C,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,UAAA;AAAA,QACN,QAAA,EAAU,KAAA;AAAA,QACV,QAAA,EAAU,iDAAA;AAAA,QACV,aAAA,EAAe,MAAA;AAAA,QACf,OAAA,EAAS,oCAAA;AAAA,QACT,KAAA,EAAO,kBAAA,CAAmB,YAAA,CAAa,MAAM,CAAA;AAAA,QAC7C,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,SAAA;AAAA,QACN,QAAA,EAAU,KAAA;AAAA,QACV,QAAA,EAAU,yDAAA;AAAA,QACV,aAAA,EAAe,SAAA;AAAA,QACf,OAAA,EAAS,mCAAA;AAAA,QACT,KAAA,EAAO,kBAAA,CAAmB,WAAA,CAAY,MAAM,CAAA;AAAA,QAC5C,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,YAAA;AAAA,QACN,QAAA,EAAU,SAAA;AAAA,QACV,QAAA,EAAU,qBAAA;AAAA,QACV,aAAA,EAAe,MAAA;AAAA,QACf,OAAA,EAAS,sCAAA;AAAA,QACT,KAAA,EAAO,kBAAA,CAAmB,cAAA,CAAe,MAAM,CAAA;AAAA,QAC/C,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,WAAA;AAAA,QACN,QAAA,EAAU,SAAA;AAAA,QACV,QAAA,EAAU,kCAAA;AAAA,QACV,aAAA,EAAe,MAAA;AAAA,QACf,OAAA,EAAS,qCAAA;AAAA,QACT,KAAA,EAAO,kBAAA,CAAmB,aAAA,CAAc,MAAM,CAAA;AAAA,QAC9C,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,cAAA;AAAA,QACN,QAAA,EAAU,SAAA;AAAA,QACV,QAAA,EAAU,0EAAA;AAAA,QACV,aAAA,EAAe,MAAA;AAAA,QACf,OAAA,EAAS,wCAAA;AAAA,QACT,KAAA,EAAO,kBAAA,CAAmB,eAAA,CAAgB,MAAM,CAAA;AAAA,QAChD,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,wBAAA;AAAA,QACN,QAAA,EAAU,IAAA;AAAA,QACV,QAAA,EAAU,4DAAA;AAAA,QACV,aAAA,EAAe,SAAA;AAAA,QACf,OAAA,EAAS,kDAAA;AAAA,QACT,KAAA,EAAO,kBAAA,CAAmB,wBAAA,CAAyB,MAAM,CAAA;AAAA,QACzD,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,qBAAA;AAAA,QACN,QAAA,EAAU,IAAA;AAAA,QACV,QAAA,EAAU,uDAAA;AAAA,QACV,aAAA,EAAe,SAAA;AAAA,QACf,OAAA,EAAS,+CAAA;AAAA,QACT,KAAA,EAAO,kBAAA,CAAmB,qBAAA,CAAsB,MAAM,CAAA;AAAA,QACtD,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,QAAA,EAAU,IAAA;AAAA,QACV,QAAA,EAAU,wCAAA;AAAA,QACV,aAAA,EAAe,MAAA;AAAA,QACf,OAAA,EAAS,0CAAA;AAAA,QACT,KAAA,EAAO,kBAAA,CAAmB,iBAAA,CAAkB,MAAM,CAAA;AAAA,QAClD,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,QAAA,EAAU,SAAA;AAAA,QACV,QAAA,EAAU,mCAAA;AAAA,QACV,aAAA,EAAe,MAAA;AAAA,QACf,OAAA,EAAS,0CAAA;AAAA,QACT,KAAA,EAAO,kBAAA,CAAmB,kBAAA,CAAmB,MAAM,CAAA;AAAA,QACnD,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,oBAAA;AAAA,QACN,QAAA,EAAU,UAAA;AAAA,QACV,QAAA,EAAU,4CAAA;AAAA,QACV,aAAA,EAAe,QAAA;AAAA,QACf,OAAA,EAAS,2CAAA;AAAA,QACT,KAAA,EAAO,kBAAA,CAAmB,mBAAA,CAAoB,MAAM,CAAA;AAAA,QACpD,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,oBAAA;AAAA,QACN,QAAA,EAAU,UAAA;AAAA,QACV,QAAA,EAAU,uBAAA;AAAA,QACV,aAAA,EAAe,MAAA;AAAA,QACf,OAAA,EAAS,2CAAA;AAAA,QACT,KAAA,EAAO,kBAAA,CAAmB,mBAAA,CAAoB,MAAM,CAAA;AAAA,QACpD,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,kBAAA;AAAA,QACN,QAAA,EAAU,UAAA;AAAA,QACV,QAAA,EAAU,qCAAA;AAAA,QACV,aAAA,EAAe,MAAA;AAAA,QACf,OAAA,EAAS,yCAAA;AAAA,QACT,KAAA,EAAO,kBAAA,CAAmB,iBAAA,CAAkB,MAAM,CAAA;AAAA,QAClD,WAAA,EAAa;AAAA;AACf;AACF,GACF;AAAA,EAEA,IAAA,EAAM;AAAA,IACJ,QAAA,EAAU,YAAA;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,EAAE,MAAA,EAAQ,KAAA,EAAQ,MAAM,SAAA,CAAU,OAAA,EAAkB,SAAS,4CAAA,EAA6C;AAAA,MAC1G,EAAE,MAAA,EAAQ,MAAA,EAAQ,MAAM,SAAA,CAAU,GAAA,EAAmB,SAAS,wCAAA,EAAyC;AAAA,MACvG,EAAE,MAAA,EAAQ,MAAA,EAAQ,MAAM,SAAA,CAAU,KAAA,EAAmB,SAAS,0CAAA,EAA2C;AAAA,MACzG,EAAE,MAAA,EAAQ,KAAA,EAAQ,MAAM,SAAA,CAAU,KAAA,EAAmB,SAAS,0CAAA,EAA2C;AAAA,MACzG,EAAE,MAAA,EAAQ,MAAA,EAAQ,MAAM,SAAA,CAAU,IAAA,EAAmB,SAAS,yCAAA,EAA0C;AAAA,MACxG,EAAE,MAAA,EAAQ,KAAA,EAAQ,MAAM,SAAA,CAAU,OAAA,EAAmB,SAAS,4CAAA,EAA6C;AAAA,MAC3G,EAAE,MAAA,EAAQ,KAAA,EAAQ,MAAM,SAAA,CAAU,MAAA,EAAmB,SAAS,2CAAA,EAA4C;AAAA,MAC1G,EAAE,MAAA,EAAQ,KAAA,EAAQ,MAAM,SAAA,CAAU,WAAA,EAAmB,SAAS,gDAAA,EAAiD;AAAA,MAC/G,EAAE,MAAA,EAAQ,KAAA,EAAQ,MAAM,SAAA,CAAU,QAAA,EAAmB,SAAS,6CAAA,EAA8C;AAAA,MAC5G,EAAE,MAAA,EAAQ,MAAA,EAAQ,MAAM,SAAA,CAAU,eAAA,EAAmB,SAAS,oDAAA,EAAqD;AAAA,MACnH,EAAE,MAAA,EAAQ,KAAA,EAAQ,MAAM,SAAA,CAAU,aAAA,EAAmB,SAAS,kDAAA,EAAmD;AAAA,MACjH,EAAE,MAAA,EAAQ,KAAA,EAAQ,MAAM,SAAA,CAAU,gBAAA,EAAmB,SAAS,qDAAA,EAAsD;AAAA,MACpH,EAAE,MAAA,EAAQ,KAAA,EAAQ,MAAM,SAAA,CAAU,KAAA,EAAmB,SAAS,0CAAA,EAA2C;AAAA,MACzG,EAAE,MAAA,EAAQ,KAAA,EAAQ,MAAM,SAAA,CAAU,WAAA,EAAmB,SAAS,gDAAA;AAAiD;AACjH,GACF;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,CAAA;AAAA,IACT,UAAA,EAAY,UAAA;AAAA,IACZ,KAAA,EAAO;AAAA,MACL;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,IAAA;AAAA,QACP,IAAA,EAAM,oBAAA;AAAA,QACN,KAAA,EAAO,OAAA;AAAA,QACP,KAAA,EAAO,eAAA;AAAA,QACP,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,KAAA,EAAO;AAAA,MACL;AAAA,QACE,EAAA,EAAI,IAAA;AAAA,QACJ,KAAA,EAAO,IAAA;AAAA,QACP,IAAA,EAAM,oBAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,KAAA,EAAO;AAAA;AACT;AACF,GACF;AAAA,EAEA,WAAA,EAAa;AACf","file":"index.js","sourcesContent":["import { defineFlags } from '@kb-labs/sdk';\n\nexport const qaRunFlags = defineFlags({\n tasks: {\n type: 'string',\n description: 'Comma-separated tasks to run (default: build,lint,type-check,test)',\n },\n save: {\n type: 'boolean',\n description: 'Save snapshot to history',\n default: true,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaRunFlags = typeof qaRunFlags.infer;\n\nexport const qaCheckFlags = defineFlags({\n save: {\n type: 'boolean',\n description: 'Save snapshot to history',\n default: true,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaCheckFlags = typeof qaCheckFlags.infer;\n\nexport const qaStatsFlags = defineFlags({\n save: {\n type: 'boolean',\n description: 'Save snapshot to history',\n default: true,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaStatsFlags = typeof qaStatsFlags.infer;\n\nexport const qaGateFlags = defineFlags({\n save: {\n type: 'boolean',\n description: 'Save snapshot to history',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaGateFlags = typeof qaGateFlags.infer;\n\nexport const qaHistoryFlags = defineFlags({\n limit: {\n type: 'number',\n description: 'Max entries to show',\n default: 20,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaHistoryFlags = typeof qaHistoryFlags.infer;\n\nexport const qaTrendsFlags = defineFlags({\n window: {\n type: 'number',\n description: 'Number of history entries to analyze',\n default: 10,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaTrendsFlags = typeof qaTrendsFlags.infer;\n\nexport const qaE2eFlakyFlags = defineFlags({\n agent: {\n type: 'boolean',\n description: 'Emit compact machine-readable agent JSON (alias for --json)',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n case: {\n type: 'string',\n description: 'Drill down into one case: \"<suite>/<spec>#<testId>\" (from the overview\\'s \"top\" list)',\n },\n window: {\n type: 'number',\n description: 'Number of e2e-flaky history entries (runs) to analyze',\n default: 10,\n },\n sync: {\n type: 'boolean',\n description: 'Fetch the latest flaky history from the \"ci-data\" branch before analyzing',\n default: false,\n },\n ingest: {\n type: 'string',\n description: 'CI-only: directory of per-shard flaky-report.json files to merge and save as a new snapshot',\n },\n});\nexport type QaE2eFlakyFlags = typeof qaE2eFlakyFlags.infer;\n\nexport const qaCiEvidenceCaptureFlags = defineFlags({\n runId: {\n type: 'string',\n description: 'GitHub Actions run ID (defaults to GITHUB_RUN_ID)',\n },\n repository: {\n type: 'string',\n description: 'GitHub repository in owner/name form (defaults to GITHUB_REPOSITORY)',\n },\n output: {\n type: 'string',\n description: 'Path for the immutable dossier JSON',\n default: '.kb/qa/ci/dossier.json',\n },\n excludeJob: {\n type: 'string',\n description: 'Comma-separated job names to exclude from evidence (for example, the collector job itself)',\n },\n json: {\n type: 'boolean',\n description: 'Output the captured dossier as JSON',\n default: false,\n },\n});\nexport type QaCiEvidenceCaptureFlags = typeof qaCiEvidenceCaptureFlags.infer;\n\nexport const qaCiEvidenceSyncFlags = defineFlags({\n repository: {\n type: 'string',\n description: 'GitHub repository in owner/name form (defaults to config or GITHUB_REPOSITORY)',\n },\n workflow: {\n type: 'string',\n description: 'GitHub Actions workflow file or name',\n default: 'e2e-platform.yml',\n },\n limit: {\n type: 'number',\n description: 'Recent workflow runs to inspect for evidence artifacts',\n default: 50,\n },\n output: {\n type: 'string',\n description: 'Local evidence cache directory',\n default: '.kb/qa/ci/evidence',\n },\n json: {\n type: 'boolean',\n description: 'Output sync details as JSON',\n default: false,\n },\n});\nexport type QaCiEvidenceSyncFlags = typeof qaCiEvidenceSyncFlags.infer;\n\nexport const qaCiOverviewFlags = defineFlags({\n input: {\n type: 'string',\n description: 'Dossier JSON file or directory containing dossier.json files',\n default: '.kb/qa/ci',\n },\n output: {\n type: 'string',\n description: 'Optional file to receive the compact agent-ready JSON overview',\n },\n json: {\n type: 'boolean',\n description: 'Output the agent-ready reliability overview as JSON',\n default: false,\n },\n});\nexport type QaCiOverviewFlags = typeof qaCiOverviewFlags.infer;\n\nexport const qaRegressionsFlags = defineFlags({\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaRegressionsFlags = typeof qaRegressionsFlags.infer;\n\nexport const baselineUpdateFlags = defineFlags({\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type BaselineUpdateFlags = typeof baselineUpdateFlags.infer;\n\nexport const baselineStatusFlags = defineFlags({\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type BaselineStatusFlags = typeof baselineStatusFlags.infer;\n\nexport const baselineDiffFlags = defineFlags({\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type BaselineDiffFlags = typeof baselineDiffFlags.infer;\n","import {\n combinePermissions,\n kbPlatformPreset,\n defineCommandFlags,\n} from '@kb-labs/sdk';\nimport {\n qaRunFlags,\n qaCheckFlags,\n qaStatsFlags,\n qaGateFlags,\n qaHistoryFlags,\n qaTrendsFlags,\n qaE2eFlakyFlags,\n qaCiEvidenceCaptureFlags,\n qaCiEvidenceSyncFlags,\n qaCiOverviewFlags,\n qaRegressionsFlags,\n baselineUpdateFlags,\n baselineStatusFlags,\n baselineDiffFlags,\n} from './cli/commands/flags.js';\nimport { QA_BASE_PATH, QA_ROUTES } from '@kb-labs/qa-contracts';\n\nconst pluginPermissions = combinePermissions()\n .with(kbPlatformPreset)\n .withFs({\n mode: 'readWrite',\n allow: ['**'],\n })\n .withShell({\n allow: ['kb-devkit', 'git', 'gh'],\n })\n .withPlatform({\n analytics: true,\n })\n .withQuotas({\n timeoutMs: 600_000,\n memoryMb: 512,\n })\n .build();\n\nexport const manifest = {\n schema: 'kb.plugin/3',\n id: '@kb-labs/qa',\n version: '0.1.0',\n\n configSection: 'qa',\n\n display: {\n name: 'QA Plugin',\n description: 'Smart wrapper around kb-devkit — history, trends, baseline diffing, and health UI',\n tags: ['qa', 'quality', 'baseline', 'regression', 'devkit'],\n },\n\n platform: {\n requires: [],\n optional: ['cache', 'analytics', 'logger'],\n },\n\n cli: {\n groupMeta: [\n { path: 'qa', describe: 'Quality assurance powered by kb-devkit' },\n { path: 'qa baseline', describe: 'Baseline management' },\n { path: 'qa ci', describe: 'CI evidence and reliability analysis' },\n { path: 'qa ci evidence', describe: 'Immutable CI evidence capture' },\n ],\n commands: [\n {\n path: 'qa run',\n category: 'Run',\n describe: 'Run devkit tasks and record results',\n operationType: 'execute' as const,\n handler: './cli/commands/qa-run.js#default',\n flags: defineCommandFlags(qaRunFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa check',\n category: 'Run',\n describe: 'Run devkit structural checks',\n operationType: 'analyze' as const,\n handler: './cli/commands/qa-check.js#default',\n flags: defineCommandFlags(qaCheckFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa stats',\n category: 'Run',\n describe: 'Show devkit health score and category breakdown',\n operationType: 'read' as const,\n handler: './cli/commands/qa-stats.js#default',\n flags: defineCommandFlags(qaStatsFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa gate',\n category: 'Run',\n describe: 'Run pre-commit gate check (exits 1 if violations found)',\n operationType: 'analyze' as const,\n handler: './cli/commands/qa-gate.js#default',\n flags: defineCommandFlags(qaGateFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa history',\n category: 'History',\n describe: 'Show QA run history',\n operationType: 'read' as const,\n handler: './cli/commands/qa-history.js#default',\n flags: defineCommandFlags(qaHistoryFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa trends',\n category: 'History',\n describe: 'Show QA quality trends over time',\n operationType: 'read' as const,\n handler: './cli/commands/qa-trends.js#default',\n flags: defineCommandFlags(qaTrendsFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa e2e flaky',\n category: 'History',\n describe: 'Track flaky e2e cases across CI runs (agent-first overview + drill-down)',\n operationType: 'read' as const,\n handler: './cli/commands/qa-e2e-flaky.js#default',\n flags: defineCommandFlags(qaE2eFlakyFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa ci evidence capture',\n category: 'CI',\n describe: 'Capture a GitHub Actions run dossier (CI producer command)',\n operationType: 'execute' as const,\n handler: './cli/commands/qa-ci-evidence-capture.js#default',\n flags: defineCommandFlags(qaCiEvidenceCaptureFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa ci evidence sync',\n category: 'CI',\n describe: 'Download new CI evidence artifacts into a local cache',\n operationType: 'execute' as const,\n handler: './cli/commands/qa-ci-evidence-sync.js#default',\n flags: defineCommandFlags(qaCiEvidenceSyncFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa ci overview',\n category: 'CI',\n describe: 'Show a compact CI reliability overview',\n operationType: 'read' as const,\n handler: './cli/commands/qa-ci-overview.js#default',\n flags: defineCommandFlags(qaCiOverviewFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa regressions',\n category: 'History',\n describe: 'Detect regressions since last run',\n operationType: 'read' as const,\n handler: './cli/commands/qa-regressions.js#default',\n flags: defineCommandFlags(qaRegressionsFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa baseline update',\n category: 'Baseline',\n describe: 'Run check + stats and save as new baseline',\n operationType: 'mutate' as const,\n handler: './cli/commands/baseline-update.js#default',\n flags: defineCommandFlags(baselineUpdateFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa baseline status',\n category: 'Baseline',\n describe: 'Show current baseline',\n operationType: 'read' as const,\n handler: './cli/commands/baseline-status.js#default',\n flags: defineCommandFlags(baselineStatusFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa baseline diff',\n category: 'Baseline',\n describe: 'Diff current state against baseline',\n operationType: 'read' as const,\n handler: './cli/commands/baseline-diff.js#default',\n flags: defineCommandFlags(baselineDiffFlags.schema),\n permissions: pluginPermissions,\n },\n ],\n },\n\n rest: {\n basePath: QA_BASE_PATH,\n routes: [\n { method: 'GET', path: QA_ROUTES.SUMMARY, handler: './rest/handlers/summary-handler.js#default' },\n { method: 'POST', path: QA_ROUTES.RUN, handler: './rest/handlers/run-handler.js#default' },\n { method: 'POST', path: QA_ROUTES.CHECK, handler: './rest/handlers/check-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.STATS, handler: './rest/handlers/stats-handler.js#default' },\n { method: 'POST', path: QA_ROUTES.GATE, handler: './rest/handlers/gate-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.HISTORY, handler: './rest/handlers/history-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.TRENDS, handler: './rest/handlers/trends-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.REGRESSIONS, handler: './rest/handlers/regressions-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.BASELINE, handler: './rest/handlers/baseline-handler.js#default' },\n { method: 'POST', path: QA_ROUTES.BASELINE_UPDATE, handler: './rest/handlers/baseline-update-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.BASELINE_DIFF, handler: './rest/handlers/baseline-diff-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.PACKAGE_TIMELINE, handler: './rest/handlers/package-timeline-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.TASKS, handler: './rest/handlers/tasks-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.CI_OVERVIEW, handler: './rest/handlers/ci-overview-handler.js#default' },\n ],\n },\n\n studio: {\n version: 2 as const,\n remoteName: 'qaPlugin',\n pages: [\n {\n id: 'qa.overview',\n title: 'QA',\n icon: 'ExperimentOutlined',\n route: '/p/qa',\n entry: './QADashboard',\n order: 1,\n },\n ],\n menus: [\n {\n id: 'qa',\n label: 'QA',\n icon: 'ExperimentOutlined',\n target: 'qa.overview',\n order: 50,\n },\n ],\n },\n\n permissions: pluginPermissions,\n};\n\nexport default manifest;\n"]}
|
package/dist/manifest.d.ts
CHANGED
package/dist/manifest.js
CHANGED
|
@@ -108,6 +108,72 @@ var qaE2eFlakyFlags = defineFlags({
|
|
|
108
108
|
description: "CI-only: directory of per-shard flaky-report.json files to merge and save as a new snapshot"
|
|
109
109
|
}
|
|
110
110
|
});
|
|
111
|
+
var qaCiEvidenceCaptureFlags = defineFlags({
|
|
112
|
+
runId: {
|
|
113
|
+
type: "string",
|
|
114
|
+
description: "GitHub Actions run ID (defaults to GITHUB_RUN_ID)"
|
|
115
|
+
},
|
|
116
|
+
repository: {
|
|
117
|
+
type: "string",
|
|
118
|
+
description: "GitHub repository in owner/name form (defaults to GITHUB_REPOSITORY)"
|
|
119
|
+
},
|
|
120
|
+
output: {
|
|
121
|
+
type: "string",
|
|
122
|
+
description: "Path for the immutable dossier JSON",
|
|
123
|
+
default: ".kb/qa/ci/dossier.json"
|
|
124
|
+
},
|
|
125
|
+
excludeJob: {
|
|
126
|
+
type: "string",
|
|
127
|
+
description: "Comma-separated job names to exclude from evidence (for example, the collector job itself)"
|
|
128
|
+
},
|
|
129
|
+
json: {
|
|
130
|
+
type: "boolean",
|
|
131
|
+
description: "Output the captured dossier as JSON",
|
|
132
|
+
default: false
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
var qaCiEvidenceSyncFlags = defineFlags({
|
|
136
|
+
repository: {
|
|
137
|
+
type: "string",
|
|
138
|
+
description: "GitHub repository in owner/name form (defaults to config or GITHUB_REPOSITORY)"
|
|
139
|
+
},
|
|
140
|
+
workflow: {
|
|
141
|
+
type: "string",
|
|
142
|
+
description: "GitHub Actions workflow file or name",
|
|
143
|
+
default: "e2e-platform.yml"
|
|
144
|
+
},
|
|
145
|
+
limit: {
|
|
146
|
+
type: "number",
|
|
147
|
+
description: "Recent workflow runs to inspect for evidence artifacts",
|
|
148
|
+
default: 50
|
|
149
|
+
},
|
|
150
|
+
output: {
|
|
151
|
+
type: "string",
|
|
152
|
+
description: "Local evidence cache directory",
|
|
153
|
+
default: ".kb/qa/ci/evidence"
|
|
154
|
+
},
|
|
155
|
+
json: {
|
|
156
|
+
type: "boolean",
|
|
157
|
+
description: "Output sync details as JSON",
|
|
158
|
+
default: false
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
var qaCiOverviewFlags = defineFlags({
|
|
162
|
+
input: {
|
|
163
|
+
type: "string",
|
|
164
|
+
description: "Dossier JSON file or directory containing dossier.json files",
|
|
165
|
+
default: ".kb/qa/ci"
|
|
166
|
+
},
|
|
167
|
+
output: {
|
|
168
|
+
type: "string",
|
|
169
|
+
description: "Optional file to receive the compact agent-ready JSON overview"
|
|
170
|
+
},
|
|
171
|
+
json: {
|
|
172
|
+
type: "boolean",
|
|
173
|
+
description: "Output the agent-ready reliability overview as JSON",
|
|
174
|
+
default: false
|
|
175
|
+
}
|
|
176
|
+
});
|
|
111
177
|
var qaRegressionsFlags = defineFlags({
|
|
112
178
|
json: {
|
|
113
179
|
type: "boolean",
|
|
@@ -140,7 +206,7 @@ var pluginPermissions = combinePermissions().with(kbPlatformPreset).withFs({
|
|
|
140
206
|
mode: "readWrite",
|
|
141
207
|
allow: ["**"]
|
|
142
208
|
}).withShell({
|
|
143
|
-
allow: ["kb-devkit", "git"]
|
|
209
|
+
allow: ["kb-devkit", "git", "gh"]
|
|
144
210
|
}).withPlatform({
|
|
145
211
|
analytics: true
|
|
146
212
|
}).withQuotas({
|
|
@@ -164,7 +230,9 @@ var manifest = {
|
|
|
164
230
|
cli: {
|
|
165
231
|
groupMeta: [
|
|
166
232
|
{ path: "qa", describe: "Quality assurance powered by kb-devkit" },
|
|
167
|
-
{ path: "qa baseline", describe: "Baseline management" }
|
|
233
|
+
{ path: "qa baseline", describe: "Baseline management" },
|
|
234
|
+
{ path: "qa ci", describe: "CI evidence and reliability analysis" },
|
|
235
|
+
{ path: "qa ci evidence", describe: "Immutable CI evidence capture" }
|
|
168
236
|
],
|
|
169
237
|
commands: [
|
|
170
238
|
{
|
|
@@ -230,6 +298,33 @@ var manifest = {
|
|
|
230
298
|
flags: defineCommandFlags(qaE2eFlakyFlags.schema),
|
|
231
299
|
permissions: pluginPermissions
|
|
232
300
|
},
|
|
301
|
+
{
|
|
302
|
+
path: "qa ci evidence capture",
|
|
303
|
+
category: "CI",
|
|
304
|
+
describe: "Capture a GitHub Actions run dossier (CI producer command)",
|
|
305
|
+
operationType: "execute",
|
|
306
|
+
handler: "./cli/commands/qa-ci-evidence-capture.js#default",
|
|
307
|
+
flags: defineCommandFlags(qaCiEvidenceCaptureFlags.schema),
|
|
308
|
+
permissions: pluginPermissions
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
path: "qa ci evidence sync",
|
|
312
|
+
category: "CI",
|
|
313
|
+
describe: "Download new CI evidence artifacts into a local cache",
|
|
314
|
+
operationType: "execute",
|
|
315
|
+
handler: "./cli/commands/qa-ci-evidence-sync.js#default",
|
|
316
|
+
flags: defineCommandFlags(qaCiEvidenceSyncFlags.schema),
|
|
317
|
+
permissions: pluginPermissions
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
path: "qa ci overview",
|
|
321
|
+
category: "CI",
|
|
322
|
+
describe: "Show a compact CI reliability overview",
|
|
323
|
+
operationType: "read",
|
|
324
|
+
handler: "./cli/commands/qa-ci-overview.js#default",
|
|
325
|
+
flags: defineCommandFlags(qaCiOverviewFlags.schema),
|
|
326
|
+
permissions: pluginPermissions
|
|
327
|
+
},
|
|
233
328
|
{
|
|
234
329
|
path: "qa regressions",
|
|
235
330
|
category: "History",
|
|
@@ -283,7 +378,8 @@ var manifest = {
|
|
|
283
378
|
{ method: "POST", path: QA_ROUTES.BASELINE_UPDATE, handler: "./rest/handlers/baseline-update-handler.js#default" },
|
|
284
379
|
{ method: "GET", path: QA_ROUTES.BASELINE_DIFF, handler: "./rest/handlers/baseline-diff-handler.js#default" },
|
|
285
380
|
{ method: "GET", path: QA_ROUTES.PACKAGE_TIMELINE, handler: "./rest/handlers/package-timeline-handler.js#default" },
|
|
286
|
-
{ method: "GET", path: QA_ROUTES.TASKS, handler: "./rest/handlers/tasks-handler.js#default" }
|
|
381
|
+
{ method: "GET", path: QA_ROUTES.TASKS, handler: "./rest/handlers/tasks-handler.js#default" },
|
|
382
|
+
{ method: "GET", path: QA_ROUTES.CI_OVERVIEW, handler: "./rest/handlers/ci-overview-handler.js#default" }
|
|
287
383
|
]
|
|
288
384
|
},
|
|
289
385
|
studio: {
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/commands/flags.ts","../src/manifest.ts"],"names":[],"mappings":"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","file":"manifest.js","sourcesContent":["import { defineFlags } from '@kb-labs/sdk';\n\nexport const qaRunFlags = defineFlags({\n tasks: {\n type: 'string',\n description: 'Comma-separated tasks to run (default: build,lint,type-check,test)',\n },\n save: {\n type: 'boolean',\n description: 'Save snapshot to history',\n default: true,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaRunFlags = typeof qaRunFlags.infer;\n\nexport const qaCheckFlags = defineFlags({\n save: {\n type: 'boolean',\n description: 'Save snapshot to history',\n default: true,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaCheckFlags = typeof qaCheckFlags.infer;\n\nexport const qaStatsFlags = defineFlags({\n save: {\n type: 'boolean',\n description: 'Save snapshot to history',\n default: true,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaStatsFlags = typeof qaStatsFlags.infer;\n\nexport const qaGateFlags = defineFlags({\n save: {\n type: 'boolean',\n description: 'Save snapshot to history',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaGateFlags = typeof qaGateFlags.infer;\n\nexport const qaHistoryFlags = defineFlags({\n limit: {\n type: 'number',\n description: 'Max entries to show',\n default: 20,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaHistoryFlags = typeof qaHistoryFlags.infer;\n\nexport const qaTrendsFlags = defineFlags({\n window: {\n type: 'number',\n description: 'Number of history entries to analyze',\n default: 10,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaTrendsFlags = typeof qaTrendsFlags.infer;\n\nexport const qaE2eFlakyFlags = defineFlags({\n agent: {\n type: 'boolean',\n description: 'Emit compact machine-readable agent JSON (alias for --json)',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n case: {\n type: 'string',\n description: 'Drill down into one case: \"<suite>/<spec>#<testId>\" (from the overview\\'s \"top\" list)',\n },\n window: {\n type: 'number',\n description: 'Number of e2e-flaky history entries (runs) to analyze',\n default: 10,\n },\n sync: {\n type: 'boolean',\n description: 'Fetch the latest flaky history from the \"ci-data\" branch before analyzing',\n default: false,\n },\n ingest: {\n type: 'string',\n description: 'CI-only: directory of per-shard flaky-report.json files to merge and save as a new snapshot',\n },\n});\nexport type QaE2eFlakyFlags = typeof qaE2eFlakyFlags.infer;\n\nexport const qaRegressionsFlags = defineFlags({\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaRegressionsFlags = typeof qaRegressionsFlags.infer;\n\nexport const baselineUpdateFlags = defineFlags({\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type BaselineUpdateFlags = typeof baselineUpdateFlags.infer;\n\nexport const baselineStatusFlags = defineFlags({\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type BaselineStatusFlags = typeof baselineStatusFlags.infer;\n\nexport const baselineDiffFlags = defineFlags({\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type BaselineDiffFlags = typeof baselineDiffFlags.infer;\n","import {\n combinePermissions,\n kbPlatformPreset,\n defineCommandFlags,\n} from '@kb-labs/sdk';\nimport {\n qaRunFlags,\n qaCheckFlags,\n qaStatsFlags,\n qaGateFlags,\n qaHistoryFlags,\n qaTrendsFlags,\n qaE2eFlakyFlags,\n qaRegressionsFlags,\n baselineUpdateFlags,\n baselineStatusFlags,\n baselineDiffFlags,\n} from './cli/commands/flags.js';\nimport { QA_BASE_PATH, QA_ROUTES } from '@kb-labs/qa-contracts';\n\nconst pluginPermissions = combinePermissions()\n .with(kbPlatformPreset)\n .withFs({\n mode: 'readWrite',\n allow: ['**'],\n })\n .withShell({\n allow: ['kb-devkit', 'git'],\n })\n .withPlatform({\n analytics: true,\n })\n .withQuotas({\n timeoutMs: 600_000,\n memoryMb: 512,\n })\n .build();\n\nexport const manifest = {\n schema: 'kb.plugin/3',\n id: '@kb-labs/qa',\n version: '0.1.0',\n\n configSection: 'qa',\n\n display: {\n name: 'QA Plugin',\n description: 'Smart wrapper around kb-devkit — history, trends, baseline diffing, and health UI',\n tags: ['qa', 'quality', 'baseline', 'regression', 'devkit'],\n },\n\n platform: {\n requires: [],\n optional: ['cache', 'analytics', 'logger'],\n },\n\n cli: {\n groupMeta: [\n { path: 'qa', describe: 'Quality assurance powered by kb-devkit' },\n { path: 'qa baseline', describe: 'Baseline management' },\n ],\n commands: [\n {\n path: 'qa run',\n category: 'Run',\n describe: 'Run devkit tasks and record results',\n operationType: 'execute' as const,\n handler: './cli/commands/qa-run.js#default',\n flags: defineCommandFlags(qaRunFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa check',\n category: 'Run',\n describe: 'Run devkit structural checks',\n operationType: 'analyze' as const,\n handler: './cli/commands/qa-check.js#default',\n flags: defineCommandFlags(qaCheckFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa stats',\n category: 'Run',\n describe: 'Show devkit health score and category breakdown',\n operationType: 'read' as const,\n handler: './cli/commands/qa-stats.js#default',\n flags: defineCommandFlags(qaStatsFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa gate',\n category: 'Run',\n describe: 'Run pre-commit gate check (exits 1 if violations found)',\n operationType: 'analyze' as const,\n handler: './cli/commands/qa-gate.js#default',\n flags: defineCommandFlags(qaGateFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa history',\n category: 'History',\n describe: 'Show QA run history',\n operationType: 'read' as const,\n handler: './cli/commands/qa-history.js#default',\n flags: defineCommandFlags(qaHistoryFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa trends',\n category: 'History',\n describe: 'Show QA quality trends over time',\n operationType: 'read' as const,\n handler: './cli/commands/qa-trends.js#default',\n flags: defineCommandFlags(qaTrendsFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa e2e flaky',\n category: 'History',\n describe: 'Track flaky e2e cases across CI runs (agent-first overview + drill-down)',\n operationType: 'read' as const,\n handler: './cli/commands/qa-e2e-flaky.js#default',\n flags: defineCommandFlags(qaE2eFlakyFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa regressions',\n category: 'History',\n describe: 'Detect regressions since last run',\n operationType: 'read' as const,\n handler: './cli/commands/qa-regressions.js#default',\n flags: defineCommandFlags(qaRegressionsFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa baseline update',\n category: 'Baseline',\n describe: 'Run check + stats and save as new baseline',\n operationType: 'mutate' as const,\n handler: './cli/commands/baseline-update.js#default',\n flags: defineCommandFlags(baselineUpdateFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa baseline status',\n category: 'Baseline',\n describe: 'Show current baseline',\n operationType: 'read' as const,\n handler: './cli/commands/baseline-status.js#default',\n flags: defineCommandFlags(baselineStatusFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa baseline diff',\n category: 'Baseline',\n describe: 'Diff current state against baseline',\n operationType: 'read' as const,\n handler: './cli/commands/baseline-diff.js#default',\n flags: defineCommandFlags(baselineDiffFlags.schema),\n permissions: pluginPermissions,\n },\n ],\n },\n\n rest: {\n basePath: QA_BASE_PATH,\n routes: [\n { method: 'GET', path: QA_ROUTES.SUMMARY, handler: './rest/handlers/summary-handler.js#default' },\n { method: 'POST', path: QA_ROUTES.RUN, handler: './rest/handlers/run-handler.js#default' },\n { method: 'POST', path: QA_ROUTES.CHECK, handler: './rest/handlers/check-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.STATS, handler: './rest/handlers/stats-handler.js#default' },\n { method: 'POST', path: QA_ROUTES.GATE, handler: './rest/handlers/gate-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.HISTORY, handler: './rest/handlers/history-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.TRENDS, handler: './rest/handlers/trends-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.REGRESSIONS, handler: './rest/handlers/regressions-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.BASELINE, handler: './rest/handlers/baseline-handler.js#default' },\n { method: 'POST', path: QA_ROUTES.BASELINE_UPDATE, handler: './rest/handlers/baseline-update-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.BASELINE_DIFF, handler: './rest/handlers/baseline-diff-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.PACKAGE_TIMELINE, handler: './rest/handlers/package-timeline-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.TASKS, handler: './rest/handlers/tasks-handler.js#default' },\n ],\n },\n\n studio: {\n version: 2 as const,\n remoteName: 'qaPlugin',\n pages: [\n {\n id: 'qa.overview',\n title: 'QA',\n icon: 'ExperimentOutlined',\n route: '/p/qa',\n entry: './QADashboard',\n order: 1,\n },\n ],\n menus: [\n {\n id: 'qa',\n label: 'QA',\n icon: 'ExperimentOutlined',\n target: 'qa.overview',\n order: 50,\n },\n ],\n },\n\n permissions: pluginPermissions,\n};\n\nexport default manifest;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/cli/commands/flags.ts","../src/manifest.ts"],"names":[],"mappings":"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","file":"manifest.js","sourcesContent":["import { defineFlags } from '@kb-labs/sdk';\n\nexport const qaRunFlags = defineFlags({\n tasks: {\n type: 'string',\n description: 'Comma-separated tasks to run (default: build,lint,type-check,test)',\n },\n save: {\n type: 'boolean',\n description: 'Save snapshot to history',\n default: true,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaRunFlags = typeof qaRunFlags.infer;\n\nexport const qaCheckFlags = defineFlags({\n save: {\n type: 'boolean',\n description: 'Save snapshot to history',\n default: true,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaCheckFlags = typeof qaCheckFlags.infer;\n\nexport const qaStatsFlags = defineFlags({\n save: {\n type: 'boolean',\n description: 'Save snapshot to history',\n default: true,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaStatsFlags = typeof qaStatsFlags.infer;\n\nexport const qaGateFlags = defineFlags({\n save: {\n type: 'boolean',\n description: 'Save snapshot to history',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaGateFlags = typeof qaGateFlags.infer;\n\nexport const qaHistoryFlags = defineFlags({\n limit: {\n type: 'number',\n description: 'Max entries to show',\n default: 20,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaHistoryFlags = typeof qaHistoryFlags.infer;\n\nexport const qaTrendsFlags = defineFlags({\n window: {\n type: 'number',\n description: 'Number of history entries to analyze',\n default: 10,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaTrendsFlags = typeof qaTrendsFlags.infer;\n\nexport const qaE2eFlakyFlags = defineFlags({\n agent: {\n type: 'boolean',\n description: 'Emit compact machine-readable agent JSON (alias for --json)',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n case: {\n type: 'string',\n description: 'Drill down into one case: \"<suite>/<spec>#<testId>\" (from the overview\\'s \"top\" list)',\n },\n window: {\n type: 'number',\n description: 'Number of e2e-flaky history entries (runs) to analyze',\n default: 10,\n },\n sync: {\n type: 'boolean',\n description: 'Fetch the latest flaky history from the \"ci-data\" branch before analyzing',\n default: false,\n },\n ingest: {\n type: 'string',\n description: 'CI-only: directory of per-shard flaky-report.json files to merge and save as a new snapshot',\n },\n});\nexport type QaE2eFlakyFlags = typeof qaE2eFlakyFlags.infer;\n\nexport const qaCiEvidenceCaptureFlags = defineFlags({\n runId: {\n type: 'string',\n description: 'GitHub Actions run ID (defaults to GITHUB_RUN_ID)',\n },\n repository: {\n type: 'string',\n description: 'GitHub repository in owner/name form (defaults to GITHUB_REPOSITORY)',\n },\n output: {\n type: 'string',\n description: 'Path for the immutable dossier JSON',\n default: '.kb/qa/ci/dossier.json',\n },\n excludeJob: {\n type: 'string',\n description: 'Comma-separated job names to exclude from evidence (for example, the collector job itself)',\n },\n json: {\n type: 'boolean',\n description: 'Output the captured dossier as JSON',\n default: false,\n },\n});\nexport type QaCiEvidenceCaptureFlags = typeof qaCiEvidenceCaptureFlags.infer;\n\nexport const qaCiEvidenceSyncFlags = defineFlags({\n repository: {\n type: 'string',\n description: 'GitHub repository in owner/name form (defaults to config or GITHUB_REPOSITORY)',\n },\n workflow: {\n type: 'string',\n description: 'GitHub Actions workflow file or name',\n default: 'e2e-platform.yml',\n },\n limit: {\n type: 'number',\n description: 'Recent workflow runs to inspect for evidence artifacts',\n default: 50,\n },\n output: {\n type: 'string',\n description: 'Local evidence cache directory',\n default: '.kb/qa/ci/evidence',\n },\n json: {\n type: 'boolean',\n description: 'Output sync details as JSON',\n default: false,\n },\n});\nexport type QaCiEvidenceSyncFlags = typeof qaCiEvidenceSyncFlags.infer;\n\nexport const qaCiOverviewFlags = defineFlags({\n input: {\n type: 'string',\n description: 'Dossier JSON file or directory containing dossier.json files',\n default: '.kb/qa/ci',\n },\n output: {\n type: 'string',\n description: 'Optional file to receive the compact agent-ready JSON overview',\n },\n json: {\n type: 'boolean',\n description: 'Output the agent-ready reliability overview as JSON',\n default: false,\n },\n});\nexport type QaCiOverviewFlags = typeof qaCiOverviewFlags.infer;\n\nexport const qaRegressionsFlags = defineFlags({\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type QaRegressionsFlags = typeof qaRegressionsFlags.infer;\n\nexport const baselineUpdateFlags = defineFlags({\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type BaselineUpdateFlags = typeof baselineUpdateFlags.infer;\n\nexport const baselineStatusFlags = defineFlags({\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type BaselineStatusFlags = typeof baselineStatusFlags.infer;\n\nexport const baselineDiffFlags = defineFlags({\n json: {\n type: 'boolean',\n description: 'Output JSON',\n default: false,\n },\n});\nexport type BaselineDiffFlags = typeof baselineDiffFlags.infer;\n","import {\n combinePermissions,\n kbPlatformPreset,\n defineCommandFlags,\n} from '@kb-labs/sdk';\nimport {\n qaRunFlags,\n qaCheckFlags,\n qaStatsFlags,\n qaGateFlags,\n qaHistoryFlags,\n qaTrendsFlags,\n qaE2eFlakyFlags,\n qaCiEvidenceCaptureFlags,\n qaCiEvidenceSyncFlags,\n qaCiOverviewFlags,\n qaRegressionsFlags,\n baselineUpdateFlags,\n baselineStatusFlags,\n baselineDiffFlags,\n} from './cli/commands/flags.js';\nimport { QA_BASE_PATH, QA_ROUTES } from '@kb-labs/qa-contracts';\n\nconst pluginPermissions = combinePermissions()\n .with(kbPlatformPreset)\n .withFs({\n mode: 'readWrite',\n allow: ['**'],\n })\n .withShell({\n allow: ['kb-devkit', 'git', 'gh'],\n })\n .withPlatform({\n analytics: true,\n })\n .withQuotas({\n timeoutMs: 600_000,\n memoryMb: 512,\n })\n .build();\n\nexport const manifest = {\n schema: 'kb.plugin/3',\n id: '@kb-labs/qa',\n version: '0.1.0',\n\n configSection: 'qa',\n\n display: {\n name: 'QA Plugin',\n description: 'Smart wrapper around kb-devkit — history, trends, baseline diffing, and health UI',\n tags: ['qa', 'quality', 'baseline', 'regression', 'devkit'],\n },\n\n platform: {\n requires: [],\n optional: ['cache', 'analytics', 'logger'],\n },\n\n cli: {\n groupMeta: [\n { path: 'qa', describe: 'Quality assurance powered by kb-devkit' },\n { path: 'qa baseline', describe: 'Baseline management' },\n { path: 'qa ci', describe: 'CI evidence and reliability analysis' },\n { path: 'qa ci evidence', describe: 'Immutable CI evidence capture' },\n ],\n commands: [\n {\n path: 'qa run',\n category: 'Run',\n describe: 'Run devkit tasks and record results',\n operationType: 'execute' as const,\n handler: './cli/commands/qa-run.js#default',\n flags: defineCommandFlags(qaRunFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa check',\n category: 'Run',\n describe: 'Run devkit structural checks',\n operationType: 'analyze' as const,\n handler: './cli/commands/qa-check.js#default',\n flags: defineCommandFlags(qaCheckFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa stats',\n category: 'Run',\n describe: 'Show devkit health score and category breakdown',\n operationType: 'read' as const,\n handler: './cli/commands/qa-stats.js#default',\n flags: defineCommandFlags(qaStatsFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa gate',\n category: 'Run',\n describe: 'Run pre-commit gate check (exits 1 if violations found)',\n operationType: 'analyze' as const,\n handler: './cli/commands/qa-gate.js#default',\n flags: defineCommandFlags(qaGateFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa history',\n category: 'History',\n describe: 'Show QA run history',\n operationType: 'read' as const,\n handler: './cli/commands/qa-history.js#default',\n flags: defineCommandFlags(qaHistoryFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa trends',\n category: 'History',\n describe: 'Show QA quality trends over time',\n operationType: 'read' as const,\n handler: './cli/commands/qa-trends.js#default',\n flags: defineCommandFlags(qaTrendsFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa e2e flaky',\n category: 'History',\n describe: 'Track flaky e2e cases across CI runs (agent-first overview + drill-down)',\n operationType: 'read' as const,\n handler: './cli/commands/qa-e2e-flaky.js#default',\n flags: defineCommandFlags(qaE2eFlakyFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa ci evidence capture',\n category: 'CI',\n describe: 'Capture a GitHub Actions run dossier (CI producer command)',\n operationType: 'execute' as const,\n handler: './cli/commands/qa-ci-evidence-capture.js#default',\n flags: defineCommandFlags(qaCiEvidenceCaptureFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa ci evidence sync',\n category: 'CI',\n describe: 'Download new CI evidence artifacts into a local cache',\n operationType: 'execute' as const,\n handler: './cli/commands/qa-ci-evidence-sync.js#default',\n flags: defineCommandFlags(qaCiEvidenceSyncFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa ci overview',\n category: 'CI',\n describe: 'Show a compact CI reliability overview',\n operationType: 'read' as const,\n handler: './cli/commands/qa-ci-overview.js#default',\n flags: defineCommandFlags(qaCiOverviewFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa regressions',\n category: 'History',\n describe: 'Detect regressions since last run',\n operationType: 'read' as const,\n handler: './cli/commands/qa-regressions.js#default',\n flags: defineCommandFlags(qaRegressionsFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa baseline update',\n category: 'Baseline',\n describe: 'Run check + stats and save as new baseline',\n operationType: 'mutate' as const,\n handler: './cli/commands/baseline-update.js#default',\n flags: defineCommandFlags(baselineUpdateFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa baseline status',\n category: 'Baseline',\n describe: 'Show current baseline',\n operationType: 'read' as const,\n handler: './cli/commands/baseline-status.js#default',\n flags: defineCommandFlags(baselineStatusFlags.schema),\n permissions: pluginPermissions,\n },\n {\n path: 'qa baseline diff',\n category: 'Baseline',\n describe: 'Diff current state against baseline',\n operationType: 'read' as const,\n handler: './cli/commands/baseline-diff.js#default',\n flags: defineCommandFlags(baselineDiffFlags.schema),\n permissions: pluginPermissions,\n },\n ],\n },\n\n rest: {\n basePath: QA_BASE_PATH,\n routes: [\n { method: 'GET', path: QA_ROUTES.SUMMARY, handler: './rest/handlers/summary-handler.js#default' },\n { method: 'POST', path: QA_ROUTES.RUN, handler: './rest/handlers/run-handler.js#default' },\n { method: 'POST', path: QA_ROUTES.CHECK, handler: './rest/handlers/check-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.STATS, handler: './rest/handlers/stats-handler.js#default' },\n { method: 'POST', path: QA_ROUTES.GATE, handler: './rest/handlers/gate-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.HISTORY, handler: './rest/handlers/history-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.TRENDS, handler: './rest/handlers/trends-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.REGRESSIONS, handler: './rest/handlers/regressions-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.BASELINE, handler: './rest/handlers/baseline-handler.js#default' },\n { method: 'POST', path: QA_ROUTES.BASELINE_UPDATE, handler: './rest/handlers/baseline-update-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.BASELINE_DIFF, handler: './rest/handlers/baseline-diff-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.PACKAGE_TIMELINE, handler: './rest/handlers/package-timeline-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.TASKS, handler: './rest/handlers/tasks-handler.js#default' },\n { method: 'GET', path: QA_ROUTES.CI_OVERVIEW, handler: './rest/handlers/ci-overview-handler.js#default' },\n ],\n },\n\n studio: {\n version: 2 as const,\n remoteName: 'qaPlugin',\n pages: [\n {\n id: 'qa.overview',\n title: 'QA',\n icon: 'ExperimentOutlined',\n route: '/p/qa',\n entry: './QADashboard',\n order: 1,\n },\n ],\n menus: [\n {\n id: 'qa',\n label: 'QA',\n icon: 'ExperimentOutlined',\n target: 'qa.overview',\n order: 50,\n },\n ],\n },\n\n permissions: pluginPermissions,\n};\n\nexport default manifest;\n"]}
|