@mcp-graph-workflow/mcp-graph 5.1.4 → 5.2.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/api/router.d.ts +1 -0
- package/dist/api/router.d.ts.map +1 -1
- package/dist/api/router.js +3 -2
- package/dist/api/router.js.map +1 -1
- package/dist/api/routes/folder.d.ts +4 -1
- package/dist/api/routes/folder.d.ts.map +1 -1
- package/dist/api/routes/folder.js +20 -1
- package/dist/api/routes/folder.js.map +1 -1
- package/dist/api/routes/gitnexus.d.ts.map +1 -1
- package/dist/api/routes/gitnexus.js +3 -1
- package/dist/api/routes/gitnexus.js.map +1 -1
- package/dist/core/analyzer/ac-parser.d.ts +7 -0
- package/dist/core/analyzer/ac-parser.d.ts.map +1 -0
- package/dist/core/analyzer/ac-parser.js +67 -0
- package/dist/core/analyzer/ac-parser.js.map +1 -0
- package/dist/core/analyzer/ac-validator.d.ts +15 -0
- package/dist/core/analyzer/ac-validator.d.ts.map +1 -0
- package/dist/core/analyzer/ac-validator.js +142 -0
- package/dist/core/analyzer/ac-validator.js.map +1 -0
- package/dist/core/analyzer/definition-of-ready.d.ts +16 -0
- package/dist/core/analyzer/definition-of-ready.d.ts.map +1 -0
- package/dist/core/analyzer/definition-of-ready.js +107 -0
- package/dist/core/analyzer/definition-of-ready.js.map +1 -0
- package/dist/core/analyzer/prd-quality.d.ts +14 -0
- package/dist/core/analyzer/prd-quality.d.ts.map +1 -0
- package/dist/core/analyzer/prd-quality.js +156 -0
- package/dist/core/analyzer/prd-quality.js.map +1 -0
- package/dist/core/analyzer/risk-assessment.d.ts +11 -0
- package/dist/core/analyzer/risk-assessment.d.ts.map +1 -0
- package/dist/core/analyzer/risk-assessment.js +97 -0
- package/dist/core/analyzer/risk-assessment.js.map +1 -0
- package/dist/core/analyzer/scope-analyzer.d.ts +7 -0
- package/dist/core/analyzer/scope-analyzer.d.ts.map +1 -0
- package/dist/core/analyzer/scope-analyzer.js +99 -0
- package/dist/core/analyzer/scope-analyzer.js.map +1 -0
- package/dist/core/config/ai-memory-generator.d.ts.map +1 -1
- package/dist/core/config/ai-memory-generator.js +8 -11
- package/dist/core/config/ai-memory-generator.js.map +1 -1
- package/dist/core/context/context-assembler.d.ts +3 -0
- package/dist/core/context/context-assembler.d.ts.map +1 -1
- package/dist/core/context/context-assembler.js +5 -2
- package/dist/core/context/context-assembler.js.map +1 -1
- package/dist/core/context/rag-context.d.ts +4 -2
- package/dist/core/context/rag-context.d.ts.map +1 -1
- package/dist/core/context/rag-context.js +8 -5
- package/dist/core/context/rag-context.js.map +1 -1
- package/dist/core/designer/adr-validator.d.ts +8 -0
- package/dist/core/designer/adr-validator.d.ts.map +1 -0
- package/dist/core/designer/adr-validator.js +61 -0
- package/dist/core/designer/adr-validator.js.map +1 -0
- package/dist/core/designer/coupling-analyzer.d.ts +7 -0
- package/dist/core/designer/coupling-analyzer.d.ts.map +1 -0
- package/dist/core/designer/coupling-analyzer.js +59 -0
- package/dist/core/designer/coupling-analyzer.js.map +1 -0
- package/dist/core/designer/definition-of-ready.d.ts +8 -0
- package/dist/core/designer/definition-of-ready.d.ts.map +1 -0
- package/dist/core/designer/definition-of-ready.js +146 -0
- package/dist/core/designer/definition-of-ready.js.map +1 -0
- package/dist/core/designer/interface-checker.d.ts +7 -0
- package/dist/core/designer/interface-checker.d.ts.map +1 -0
- package/dist/core/designer/interface-checker.js +53 -0
- package/dist/core/designer/interface-checker.js.map +1 -0
- package/dist/core/designer/tech-risk-assessor.d.ts +7 -0
- package/dist/core/designer/tech-risk-assessor.d.ts.map +1 -0
- package/dist/core/designer/tech-risk-assessor.js +95 -0
- package/dist/core/designer/tech-risk-assessor.js.map +1 -0
- package/dist/core/designer/traceability-matrix.d.ts +8 -0
- package/dist/core/designer/traceability-matrix.d.ts.map +1 -0
- package/dist/core/designer/traceability-matrix.js +67 -0
- package/dist/core/designer/traceability-matrix.js.map +1 -0
- package/dist/core/events/event-types.d.ts +11 -1
- package/dist/core/events/event-types.d.ts.map +1 -1
- package/dist/core/handoff/delivery-checklist.d.ts +10 -0
- package/dist/core/handoff/delivery-checklist.d.ts.map +1 -0
- package/dist/core/handoff/delivery-checklist.js +148 -0
- package/dist/core/handoff/delivery-checklist.js.map +1 -0
- package/dist/core/handoff/doc-completeness.d.ts +7 -0
- package/dist/core/handoff/doc-completeness.d.ts.map +1 -0
- package/dist/core/handoff/doc-completeness.js +19 -0
- package/dist/core/handoff/doc-completeness.js.map +1 -0
- package/dist/core/implementer/definition-of-done.d.ts +11 -0
- package/dist/core/implementer/definition-of-done.d.ts.map +1 -0
- package/dist/core/implementer/definition-of-done.js +158 -0
- package/dist/core/implementer/definition-of-done.js.map +1 -0
- package/dist/core/implementer/sprint-progress.d.ts +11 -0
- package/dist/core/implementer/sprint-progress.d.ts.map +1 -0
- package/dist/core/implementer/sprint-progress.js +80 -0
- package/dist/core/implementer/sprint-progress.js.map +1 -0
- package/dist/core/implementer/tdd-checker.d.ts +15 -0
- package/dist/core/implementer/tdd-checker.d.ts.map +1 -0
- package/dist/core/implementer/tdd-checker.js +132 -0
- package/dist/core/implementer/tdd-checker.js.map +1 -0
- package/dist/core/integrations/gitnexus-launcher.d.ts +5 -0
- package/dist/core/integrations/gitnexus-launcher.d.ts.map +1 -1
- package/dist/core/integrations/gitnexus-launcher.js +30 -3
- package/dist/core/integrations/gitnexus-launcher.js.map +1 -1
- package/dist/core/listener/backlog-health.d.ts +7 -0
- package/dist/core/listener/backlog-health.d.ts.map +1 -0
- package/dist/core/listener/backlog-health.js +64 -0
- package/dist/core/listener/backlog-health.js.map +1 -0
- package/dist/core/listener/feedback-readiness.d.ts +11 -0
- package/dist/core/listener/feedback-readiness.d.ts.map +1 -0
- package/dist/core/listener/feedback-readiness.js +124 -0
- package/dist/core/listener/feedback-readiness.js.map +1 -0
- package/dist/core/planner/lifecycle-phase.d.ts +26 -3
- package/dist/core/planner/lifecycle-phase.d.ts.map +1 -1
- package/dist/core/planner/lifecycle-phase.js +209 -17
- package/dist/core/planner/lifecycle-phase.js.map +1 -1
- package/dist/core/rag/phase-metadata.d.ts +23 -0
- package/dist/core/rag/phase-metadata.d.ts.map +1 -0
- package/dist/core/rag/phase-metadata.js +72 -0
- package/dist/core/rag/phase-metadata.js.map +1 -0
- package/dist/core/rag/phase-summary.d.ts +17 -0
- package/dist/core/rag/phase-summary.d.ts.map +1 -0
- package/dist/core/rag/phase-summary.js +104 -0
- package/dist/core/rag/phase-summary.js.map +1 -0
- package/dist/core/rag/prd-indexer.d.ts +16 -0
- package/dist/core/rag/prd-indexer.d.ts.map +1 -0
- package/dist/core/rag/prd-indexer.js +37 -0
- package/dist/core/rag/prd-indexer.js.map +1 -0
- package/dist/core/reviewer/review-readiness.d.ts +8 -0
- package/dist/core/reviewer/review-readiness.d.ts.map +1 -0
- package/dist/core/reviewer/review-readiness.js +159 -0
- package/dist/core/reviewer/review-readiness.js.map +1 -0
- package/dist/core/store/knowledge-store.d.ts +9 -0
- package/dist/core/store/knowledge-store.d.ts.map +1 -1
- package/dist/core/store/knowledge-store.js +22 -0
- package/dist/core/store/knowledge-store.js.map +1 -1
- package/dist/core/utils/errors.d.ts +7 -0
- package/dist/core/utils/errors.d.ts.map +1 -1
- package/dist/core/utils/errors.js +14 -0
- package/dist/core/utils/errors.js.map +1 -1
- package/dist/core/validator/definition-of-ready.d.ts +8 -0
- package/dist/core/validator/definition-of-ready.d.ts.map +1 -0
- package/dist/core/validator/definition-of-ready.js +155 -0
- package/dist/core/validator/definition-of-ready.js.map +1 -0
- package/dist/core/validator/done-integrity-checker.d.ts +7 -0
- package/dist/core/validator/done-integrity-checker.d.ts.map +1 -0
- package/dist/core/validator/done-integrity-checker.js +38 -0
- package/dist/core/validator/done-integrity-checker.js.map +1 -0
- package/dist/core/validator/status-flow-checker.d.ts +7 -0
- package/dist/core/validator/status-flow-checker.d.ts.map +1 -0
- package/dist/core/validator/status-flow-checker.js +26 -0
- package/dist/core/validator/status-flow-checker.js.map +1 -0
- package/dist/mcp/app-factory.d.ts +1 -0
- package/dist/mcp/app-factory.d.ts.map +1 -1
- package/dist/mcp/app-factory.js +2 -2
- package/dist/mcp/app-factory.js.map +1 -1
- package/dist/mcp/lifecycle-wrapper.d.ts +14 -4
- package/dist/mcp/lifecycle-wrapper.d.ts.map +1 -1
- package/dist/mcp/lifecycle-wrapper.js +104 -5
- package/dist/mcp/lifecycle-wrapper.js.map +1 -1
- package/dist/mcp/server.js +3 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/{stats.d.ts → analyze.d.ts} +2 -2
- package/dist/mcp/tools/analyze.d.ts.map +1 -0
- package/dist/mcp/tools/analyze.js +272 -0
- package/dist/mcp/tools/analyze.js.map +1 -0
- package/dist/mcp/tools/import-prd.d.ts.map +1 -1
- package/dist/mcp/tools/import-prd.js +15 -1
- package/dist/mcp/tools/import-prd.js.map +1 -1
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +6 -10
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/{velocity.d.ts → metrics.d.ts} +2 -2
- package/dist/mcp/tools/metrics.d.ts.map +1 -0
- package/dist/mcp/tools/metrics.js +69 -0
- package/dist/mcp/tools/metrics.js.map +1 -0
- package/dist/mcp/tools/next.d.ts.map +1 -1
- package/dist/mcp/tools/next.js +19 -5
- package/dist/mcp/tools/next.js.map +1 -1
- package/dist/mcp/tools/plan-sprint.d.ts.map +1 -1
- package/dist/mcp/tools/plan-sprint.js +20 -0
- package/dist/mcp/tools/plan-sprint.js.map +1 -1
- package/dist/mcp/tools/rag-context.d.ts.map +1 -1
- package/dist/mcp/tools/rag-context.js +20 -5
- package/dist/mcp/tools/rag-context.js.map +1 -1
- package/dist/mcp/tools/set-phase.d.ts.map +1 -1
- package/dist/mcp/tools/set-phase.js +64 -6
- package/dist/mcp/tools/set-phase.js.map +1 -1
- package/dist/mcp/tools/update-status.d.ts.map +1 -1
- package/dist/mcp/tools/update-status.js +21 -6
- package/dist/mcp/tools/update-status.js.map +1 -1
- package/dist/mcp/tools/{decompose.d.ts → validate-ac.d.ts} +2 -2
- package/dist/mcp/tools/validate-ac.d.ts.map +1 -0
- package/dist/mcp/tools/validate-ac.js +23 -0
- package/dist/mcp/tools/validate-ac.js.map +1 -0
- package/dist/schemas/ac-quality-schema.d.ts +90 -0
- package/dist/schemas/ac-quality-schema.d.ts.map +1 -0
- package/dist/schemas/ac-quality-schema.js +34 -0
- package/dist/schemas/ac-quality-schema.js.map +1 -0
- package/dist/schemas/analyzer-schema.d.ts +160 -0
- package/dist/schemas/analyzer-schema.d.ts.map +1 -0
- package/dist/schemas/analyzer-schema.js +74 -0
- package/dist/schemas/analyzer-schema.js.map +1 -0
- package/dist/schemas/designer-schema.d.ts +259 -0
- package/dist/schemas/designer-schema.d.ts.map +1 -0
- package/dist/schemas/designer-schema.js +102 -0
- package/dist/schemas/designer-schema.js.map +1 -0
- package/dist/schemas/handoff-schema.d.ts +49 -0
- package/dist/schemas/handoff-schema.d.ts.map +1 -0
- package/dist/schemas/handoff-schema.js +28 -0
- package/dist/schemas/handoff-schema.js.map +1 -0
- package/dist/schemas/implementer-schema.d.ts +187 -0
- package/dist/schemas/implementer-schema.d.ts.map +1 -0
- package/dist/schemas/implementer-schema.js +80 -0
- package/dist/schemas/implementer-schema.js.map +1 -0
- package/dist/schemas/knowledge.schema.d.ts +8 -0
- package/dist/schemas/knowledge.schema.d.ts.map +1 -1
- package/dist/schemas/knowledge.schema.js +1 -1
- package/dist/schemas/knowledge.schema.js.map +1 -1
- package/dist/schemas/listener-schema.d.ts +62 -0
- package/dist/schemas/listener-schema.d.ts.map +1 -0
- package/dist/schemas/listener-schema.js +35 -0
- package/dist/schemas/listener-schema.js.map +1 -0
- package/dist/schemas/reviewer-schema.d.ts +34 -0
- package/dist/schemas/reviewer-schema.d.ts.map +1 -0
- package/dist/schemas/reviewer-schema.js +17 -0
- package/dist/schemas/reviewer-schema.js.map +1 -0
- package/dist/schemas/validator-schema.d.ts +79 -0
- package/dist/schemas/validator-schema.d.ts.map +1 -0
- package/dist/schemas/validator-schema.js +43 -0
- package/dist/schemas/validator-schema.js.map +1 -0
- package/dist/web/dashboard/dist/assets/{benchmark-tab-CuZsNkbP.js → benchmark-tab-DE6hAHVG.js} +1 -1
- package/dist/web/dashboard/dist/assets/gitnexus-tab-DsBjJHx8.js +312 -0
- package/dist/web/dashboard/dist/assets/graph-tab-C09DzeZ_.js +1 -0
- package/dist/web/dashboard/dist/assets/{graph-utils-D5iPoiPD.js → graph-utils-D4LFspTf.js} +5 -5
- package/dist/web/dashboard/dist/assets/{index-CN9Wi5mu.js → index-B2fTJ4AS.js} +2 -2
- package/dist/web/dashboard/dist/assets/index-CkqEqKiH.css +1 -0
- package/dist/web/dashboard/dist/assets/{insights-tab-CLA0OIxd.js → insights-tab-Bm7CDckb.js} +1 -1
- package/dist/web/dashboard/dist/assets/{logs-tab-CSYlvuCu.js → logs-tab-Cxpcv_ni.js} +1 -1
- package/dist/web/dashboard/dist/assets/{prd-backlog-tab-BBLpErTk.js → prd-backlog-tab-X84Rj-IB.js} +1 -1
- package/dist/web/dashboard/dist/assets/{serena-tab-BxYP8nU5.js → serena-tab-BunULNvw.js} +1 -1
- package/dist/web/dashboard/dist/index.html +2 -2
- package/package.json +1 -1
- package/dist/mcp/tools/bulk-update-status.d.ts +0 -4
- package/dist/mcp/tools/bulk-update-status.d.ts.map +0 -1
- package/dist/mcp/tools/bulk-update-status.js +0 -22
- package/dist/mcp/tools/bulk-update-status.js.map +0 -1
- package/dist/mcp/tools/decompose.d.ts.map +0 -1
- package/dist/mcp/tools/decompose.js +0 -25
- package/dist/mcp/tools/decompose.js.map +0 -1
- package/dist/mcp/tools/dependencies.d.ts +0 -4
- package/dist/mcp/tools/dependencies.d.ts.map +0 -1
- package/dist/mcp/tools/dependencies.js +0 -47
- package/dist/mcp/tools/dependencies.js.map +0 -1
- package/dist/mcp/tools/stats.d.ts.map +0 -1
- package/dist/mcp/tools/stats.js +0 -46
- package/dist/mcp/tools/stats.js.map +0 -1
- package/dist/mcp/tools/velocity.d.ts.map +0 -1
- package/dist/mcp/tools/velocity.js +0 -25
- package/dist/mcp/tools/velocity.js.map +0 -1
- package/dist/web/dashboard/dist/assets/gitnexus-tab-D7If6lxT.js +0 -312
- package/dist/web/dashboard/dist/assets/graph-tab-Dp7PfUEJ.js +0 -1
- package/dist/web/dashboard/dist/assets/index-BUl7yWBP.css +0 -1
|
@@ -3,14 +3,29 @@ import { NodeStatusSchema } from "../../schemas/node.schema.js";
|
|
|
3
3
|
import { NodeNotFoundError } from "../../core/utils/errors.js";
|
|
4
4
|
import { logger } from "../../core/utils/logger.js";
|
|
5
5
|
export function registerUpdateStatus(server, store) {
|
|
6
|
-
server.tool("update_status", "Update the status of a
|
|
7
|
-
id: z.string().describe("
|
|
6
|
+
server.tool("update_status", "Update the status of one or more nodes. Pass a single ID string or an array of IDs for bulk updates.", {
|
|
7
|
+
id: z.union([z.string(), z.array(z.string())]).describe("Node ID (string) or array of node IDs for bulk update"),
|
|
8
8
|
status: NodeStatusSchema.describe("The new status"),
|
|
9
9
|
}, async ({ id, status }) => {
|
|
10
|
-
|
|
11
|
-
const
|
|
10
|
+
const ids = Array.isArray(id) ? id : [id];
|
|
11
|
+
const isBulk = ids.length > 1;
|
|
12
|
+
logger.debug("tool:update_status", { ids, status, bulk: isBulk });
|
|
13
|
+
if (isBulk) {
|
|
14
|
+
const result = store.bulkUpdateStatus(ids, status);
|
|
15
|
+
logger.info("tool:update_status:ok", { count: ids.length, status, updated: result.updated.length });
|
|
16
|
+
return {
|
|
17
|
+
content: [
|
|
18
|
+
{
|
|
19
|
+
type: "text",
|
|
20
|
+
text: JSON.stringify({ ok: true, ...result }, null, 2),
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
// Single node update
|
|
26
|
+
const updated = store.updateNodeStatus(ids[0], status);
|
|
12
27
|
if (!updated) {
|
|
13
|
-
const err = new NodeNotFoundError(
|
|
28
|
+
const err = new NodeNotFoundError(ids[0]);
|
|
14
29
|
logger.warn("tool:update_status:fail", { error: err.message });
|
|
15
30
|
return {
|
|
16
31
|
content: [
|
|
@@ -19,7 +34,7 @@ export function registerUpdateStatus(server, store) {
|
|
|
19
34
|
isError: true,
|
|
20
35
|
};
|
|
21
36
|
}
|
|
22
|
-
logger.info("tool:update_status:ok", { id, status });
|
|
37
|
+
logger.info("tool:update_status:ok", { id: ids[0], status });
|
|
23
38
|
return {
|
|
24
39
|
content: [
|
|
25
40
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-status.js","sourceRoot":"","sources":["../../../src/mcp/tools/update-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,KAAkB;IACxE,MAAM,CAAC,IAAI,CACT,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"update-status.js","sourceRoot":"","sources":["../../../src/mcp/tools/update-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,KAAkB;IACxE,MAAM,CAAC,IAAI,CACT,eAAe,EACf,sGAAsG,EACtG;QACE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QAChH,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC;KACpD,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACvB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAE9B,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAElE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAoB,CAAC,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACpG,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;qBACvD;iBACF;aACF,CAAC;QACJ,CAAC;QAED,qBAAqB;QACrB,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAoB,CAAC,CAAC;QAErE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE;iBACxE;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC3D;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import type { SqliteStore } from "../../core/store/sqlite-store.js";
|
|
3
|
-
export declare function
|
|
4
|
-
//# sourceMappingURL=
|
|
3
|
+
export declare function registerValidateAc(server: McpServer, store: SqliteStore): void;
|
|
4
|
+
//# sourceMappingURL=validate-ac.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-ac.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/validate-ac.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAIpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAwB9E"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
import { validateAcQuality } from "../../core/analyzer/ac-validator.js";
|
|
3
|
+
import { logger } from "../../core/utils/logger.js";
|
|
4
|
+
export function registerValidateAc(server, store) {
|
|
5
|
+
server.tool("validate_ac", "Validate acceptance criteria quality using INVEST checks (Independent, Negotiable, Valuable, Estimable, Small, Testable). Detects GWT format (EN/PT), vague terms, and testability.", {
|
|
6
|
+
nodeId: z.string().optional().describe("Validate AC for a specific node"),
|
|
7
|
+
all: z.boolean().optional().describe("Validate all nodes with AC (default: true if no nodeId)"),
|
|
8
|
+
}, async ({ nodeId, all }) => {
|
|
9
|
+
logger.debug("tool:validate_ac", { nodeId, all });
|
|
10
|
+
const doc = store.toGraphDocument();
|
|
11
|
+
const report = validateAcQuality(doc, nodeId, all ?? !nodeId);
|
|
12
|
+
logger.info("tool:validate_ac:ok", { nodes: report.nodes.length, score: report.overallScore });
|
|
13
|
+
return {
|
|
14
|
+
content: [
|
|
15
|
+
{
|
|
16
|
+
type: "text",
|
|
17
|
+
text: JSON.stringify({ ok: true, ...report }, null, 2),
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
};
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=validate-ac.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-ac.js","sourceRoot":"","sources":["../../../src/mcp/tools/validate-ac.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,KAAkB;IACtE,MAAM,CAAC,IAAI,CACT,aAAa,EACb,qLAAqL,EACrL;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QACzE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;KAChG,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;QACxB,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9D,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QAC/F,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBACvD;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
export declare const AcFormatSchema: z.ZodEnum<{
|
|
3
|
+
gwt: "gwt";
|
|
4
|
+
free_text: "free_text";
|
|
5
|
+
checklist: "checklist";
|
|
6
|
+
}>;
|
|
7
|
+
export declare const GwtStepSchema: z.ZodObject<{
|
|
8
|
+
keyword: z.ZodString;
|
|
9
|
+
text: z.ZodString;
|
|
10
|
+
}, z.core.$strip>;
|
|
11
|
+
export declare const ParsedAcSchema: z.ZodObject<{
|
|
12
|
+
raw: z.ZodString;
|
|
13
|
+
format: z.ZodEnum<{
|
|
14
|
+
gwt: "gwt";
|
|
15
|
+
free_text: "free_text";
|
|
16
|
+
checklist: "checklist";
|
|
17
|
+
}>;
|
|
18
|
+
steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
19
|
+
keyword: z.ZodString;
|
|
20
|
+
text: z.ZodString;
|
|
21
|
+
}, z.core.$strip>>>;
|
|
22
|
+
isTestable: z.ZodBoolean;
|
|
23
|
+
isMeasurable: z.ZodBoolean;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
export type ParsedAc = z.infer<typeof ParsedAcSchema>;
|
|
26
|
+
export type GwtStep = z.infer<typeof GwtStepSchema>;
|
|
27
|
+
export type AcFormat = z.infer<typeof AcFormatSchema>;
|
|
28
|
+
export declare const InvestCheckSchema: z.ZodObject<{
|
|
29
|
+
criterion: z.ZodString;
|
|
30
|
+
passed: z.ZodBoolean;
|
|
31
|
+
details: z.ZodString;
|
|
32
|
+
}, z.core.$strip>;
|
|
33
|
+
export declare const AcNodeReportSchema: z.ZodObject<{
|
|
34
|
+
nodeId: z.ZodString;
|
|
35
|
+
title: z.ZodString;
|
|
36
|
+
score: z.ZodNumber;
|
|
37
|
+
parsedAcs: z.ZodArray<z.ZodObject<{
|
|
38
|
+
raw: z.ZodString;
|
|
39
|
+
format: z.ZodEnum<{
|
|
40
|
+
gwt: "gwt";
|
|
41
|
+
free_text: "free_text";
|
|
42
|
+
checklist: "checklist";
|
|
43
|
+
}>;
|
|
44
|
+
steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
45
|
+
keyword: z.ZodString;
|
|
46
|
+
text: z.ZodString;
|
|
47
|
+
}, z.core.$strip>>>;
|
|
48
|
+
isTestable: z.ZodBoolean;
|
|
49
|
+
isMeasurable: z.ZodBoolean;
|
|
50
|
+
}, z.core.$strip>>;
|
|
51
|
+
investChecks: z.ZodArray<z.ZodObject<{
|
|
52
|
+
criterion: z.ZodString;
|
|
53
|
+
passed: z.ZodBoolean;
|
|
54
|
+
details: z.ZodString;
|
|
55
|
+
}, z.core.$strip>>;
|
|
56
|
+
vagueTerms: z.ZodArray<z.ZodString>;
|
|
57
|
+
}, z.core.$strip>;
|
|
58
|
+
export declare const AcQualityReportSchema: z.ZodObject<{
|
|
59
|
+
nodes: z.ZodArray<z.ZodObject<{
|
|
60
|
+
nodeId: z.ZodString;
|
|
61
|
+
title: z.ZodString;
|
|
62
|
+
score: z.ZodNumber;
|
|
63
|
+
parsedAcs: z.ZodArray<z.ZodObject<{
|
|
64
|
+
raw: z.ZodString;
|
|
65
|
+
format: z.ZodEnum<{
|
|
66
|
+
gwt: "gwt";
|
|
67
|
+
free_text: "free_text";
|
|
68
|
+
checklist: "checklist";
|
|
69
|
+
}>;
|
|
70
|
+
steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
71
|
+
keyword: z.ZodString;
|
|
72
|
+
text: z.ZodString;
|
|
73
|
+
}, z.core.$strip>>>;
|
|
74
|
+
isTestable: z.ZodBoolean;
|
|
75
|
+
isMeasurable: z.ZodBoolean;
|
|
76
|
+
}, z.core.$strip>>;
|
|
77
|
+
investChecks: z.ZodArray<z.ZodObject<{
|
|
78
|
+
criterion: z.ZodString;
|
|
79
|
+
passed: z.ZodBoolean;
|
|
80
|
+
details: z.ZodString;
|
|
81
|
+
}, z.core.$strip>>;
|
|
82
|
+
vagueTerms: z.ZodArray<z.ZodString>;
|
|
83
|
+
}, z.core.$strip>>;
|
|
84
|
+
overallScore: z.ZodNumber;
|
|
85
|
+
summary: z.ZodString;
|
|
86
|
+
}, z.core.$strip>;
|
|
87
|
+
export type AcQualityReport = z.infer<typeof AcQualityReportSchema>;
|
|
88
|
+
export type AcNodeReport = z.infer<typeof AcNodeReportSchema>;
|
|
89
|
+
export type InvestCheck = z.infer<typeof InvestCheckSchema>;
|
|
90
|
+
//# sourceMappingURL=ac-quality-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ac-quality-schema.d.ts","sourceRoot":"","sources":["../../src/schemas/ac-quality-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,eAAO,MAAM,cAAc;;;;EAA4C,CAAC;AAExE,eAAO,MAAM,aAAa;;;iBAGxB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;iBAMzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAItD,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;iBAO7B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
// ── Parsed AC ──
|
|
3
|
+
export const AcFormatSchema = z.enum(["gwt", "free_text", "checklist"]);
|
|
4
|
+
export const GwtStepSchema = z.object({
|
|
5
|
+
keyword: z.string(),
|
|
6
|
+
text: z.string(),
|
|
7
|
+
});
|
|
8
|
+
export const ParsedAcSchema = z.object({
|
|
9
|
+
raw: z.string(),
|
|
10
|
+
format: AcFormatSchema,
|
|
11
|
+
steps: z.array(GwtStepSchema).optional(),
|
|
12
|
+
isTestable: z.boolean(),
|
|
13
|
+
isMeasurable: z.boolean(),
|
|
14
|
+
});
|
|
15
|
+
// ── AC Quality Report ──
|
|
16
|
+
export const InvestCheckSchema = z.object({
|
|
17
|
+
criterion: z.string(),
|
|
18
|
+
passed: z.boolean(),
|
|
19
|
+
details: z.string(),
|
|
20
|
+
});
|
|
21
|
+
export const AcNodeReportSchema = z.object({
|
|
22
|
+
nodeId: z.string(),
|
|
23
|
+
title: z.string(),
|
|
24
|
+
score: z.number().min(0).max(100),
|
|
25
|
+
parsedAcs: z.array(ParsedAcSchema),
|
|
26
|
+
investChecks: z.array(InvestCheckSchema),
|
|
27
|
+
vagueTerms: z.array(z.string()),
|
|
28
|
+
});
|
|
29
|
+
export const AcQualityReportSchema = z.object({
|
|
30
|
+
nodes: z.array(AcNodeReportSchema),
|
|
31
|
+
overallScore: z.number().min(0).max(100),
|
|
32
|
+
summary: z.string(),
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=ac-quality-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ac-quality-schema.js","sourceRoot":"","sources":["../../src/schemas/ac-quality-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,kBAAkB;AAElB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;AAExE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,MAAM,EAAE,cAAc;IACtB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;IACxC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;IACvB,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE;CAC1B,CAAC,CAAC;AAMH,0BAA0B;AAE1B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACjC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;IAClC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;IACxC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAChC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;IAClC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
export declare const SectionQualitySchema: z.ZodEnum<{
|
|
3
|
+
adequate: "adequate";
|
|
4
|
+
missing: "missing";
|
|
5
|
+
weak: "weak";
|
|
6
|
+
strong: "strong";
|
|
7
|
+
}>;
|
|
8
|
+
export declare const PrdQualitySectionSchema: z.ZodObject<{
|
|
9
|
+
name: z.ZodString;
|
|
10
|
+
quality: z.ZodEnum<{
|
|
11
|
+
adequate: "adequate";
|
|
12
|
+
missing: "missing";
|
|
13
|
+
weak: "weak";
|
|
14
|
+
strong: "strong";
|
|
15
|
+
}>;
|
|
16
|
+
issues: z.ZodArray<z.ZodString>;
|
|
17
|
+
suggestions: z.ZodArray<z.ZodString>;
|
|
18
|
+
}, z.core.$strip>;
|
|
19
|
+
export declare const PrdQualityGradeSchema: z.ZodEnum<{
|
|
20
|
+
A: "A";
|
|
21
|
+
B: "B";
|
|
22
|
+
C: "C";
|
|
23
|
+
D: "D";
|
|
24
|
+
F: "F";
|
|
25
|
+
}>;
|
|
26
|
+
export declare const PrdQualityReportSchema: z.ZodObject<{
|
|
27
|
+
score: z.ZodNumber;
|
|
28
|
+
grade: z.ZodEnum<{
|
|
29
|
+
A: "A";
|
|
30
|
+
B: "B";
|
|
31
|
+
C: "C";
|
|
32
|
+
D: "D";
|
|
33
|
+
F: "F";
|
|
34
|
+
}>;
|
|
35
|
+
sections: z.ZodArray<z.ZodObject<{
|
|
36
|
+
name: z.ZodString;
|
|
37
|
+
quality: z.ZodEnum<{
|
|
38
|
+
adequate: "adequate";
|
|
39
|
+
missing: "missing";
|
|
40
|
+
weak: "weak";
|
|
41
|
+
strong: "strong";
|
|
42
|
+
}>;
|
|
43
|
+
issues: z.ZodArray<z.ZodString>;
|
|
44
|
+
suggestions: z.ZodArray<z.ZodString>;
|
|
45
|
+
}, z.core.$strip>>;
|
|
46
|
+
readyForDesign: z.ZodBoolean;
|
|
47
|
+
summary: z.ZodString;
|
|
48
|
+
}, z.core.$strip>;
|
|
49
|
+
export type PrdQualityReport = z.infer<typeof PrdQualityReportSchema>;
|
|
50
|
+
export type PrdQualitySection = z.infer<typeof PrdQualitySectionSchema>;
|
|
51
|
+
export type SectionQuality = z.infer<typeof SectionQualitySchema>;
|
|
52
|
+
export type PrdQualityGrade = z.infer<typeof PrdQualityGradeSchema>;
|
|
53
|
+
export declare const OrphanNodeSchema: z.ZodObject<{
|
|
54
|
+
id: z.ZodString;
|
|
55
|
+
title: z.ZodString;
|
|
56
|
+
type: z.ZodString;
|
|
57
|
+
reason: z.ZodString;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
export declare const CoverageMatrixSchema: z.ZodObject<{
|
|
60
|
+
requirementsToTasks: z.ZodNumber;
|
|
61
|
+
tasksToAc: z.ZodNumber;
|
|
62
|
+
orphanRequirements: z.ZodNumber;
|
|
63
|
+
orphanTasks: z.ZodNumber;
|
|
64
|
+
}, z.core.$strip>;
|
|
65
|
+
export declare const ScopeAnalysisSchema: z.ZodObject<{
|
|
66
|
+
orphans: z.ZodArray<z.ZodObject<{
|
|
67
|
+
id: z.ZodString;
|
|
68
|
+
title: z.ZodString;
|
|
69
|
+
type: z.ZodString;
|
|
70
|
+
reason: z.ZodString;
|
|
71
|
+
}, z.core.$strip>>;
|
|
72
|
+
cycles: z.ZodArray<z.ZodArray<z.ZodString>>;
|
|
73
|
+
coverage: z.ZodObject<{
|
|
74
|
+
requirementsToTasks: z.ZodNumber;
|
|
75
|
+
tasksToAc: z.ZodNumber;
|
|
76
|
+
orphanRequirements: z.ZodNumber;
|
|
77
|
+
orphanTasks: z.ZodNumber;
|
|
78
|
+
}, z.core.$strip>;
|
|
79
|
+
conflicts: z.ZodArray<z.ZodString>;
|
|
80
|
+
summary: z.ZodString;
|
|
81
|
+
}, z.core.$strip>;
|
|
82
|
+
export type ScopeAnalysis = z.infer<typeof ScopeAnalysisSchema>;
|
|
83
|
+
export type OrphanNode = z.infer<typeof OrphanNodeSchema>;
|
|
84
|
+
export type CoverageMatrix = z.infer<typeof CoverageMatrixSchema>;
|
|
85
|
+
export declare const ReadinessCheckSchema: z.ZodObject<{
|
|
86
|
+
name: z.ZodString;
|
|
87
|
+
passed: z.ZodBoolean;
|
|
88
|
+
details: z.ZodString;
|
|
89
|
+
}, z.core.$strip>;
|
|
90
|
+
export declare const ReadinessReportSchema: z.ZodObject<{
|
|
91
|
+
readyForNextPhase: z.ZodBoolean;
|
|
92
|
+
checks: z.ZodArray<z.ZodObject<{
|
|
93
|
+
name: z.ZodString;
|
|
94
|
+
passed: z.ZodBoolean;
|
|
95
|
+
details: z.ZodString;
|
|
96
|
+
}, z.core.$strip>>;
|
|
97
|
+
blockers: z.ZodArray<z.ZodString>;
|
|
98
|
+
warnings: z.ZodArray<z.ZodString>;
|
|
99
|
+
summary: z.ZodString;
|
|
100
|
+
}, z.core.$strip>;
|
|
101
|
+
export type ReadinessReport = z.infer<typeof ReadinessReportSchema>;
|
|
102
|
+
export type ReadinessCheck = z.infer<typeof ReadinessCheckSchema>;
|
|
103
|
+
export declare const RiskLevelSchema: z.ZodEnum<{
|
|
104
|
+
low: "low";
|
|
105
|
+
medium: "medium";
|
|
106
|
+
high: "high";
|
|
107
|
+
critical: "critical";
|
|
108
|
+
}>;
|
|
109
|
+
export declare const RiskEntrySchema: z.ZodObject<{
|
|
110
|
+
nodeId: z.ZodString;
|
|
111
|
+
title: z.ZodString;
|
|
112
|
+
probability: z.ZodNumber;
|
|
113
|
+
impact: z.ZodNumber;
|
|
114
|
+
score: z.ZodNumber;
|
|
115
|
+
level: z.ZodEnum<{
|
|
116
|
+
low: "low";
|
|
117
|
+
medium: "medium";
|
|
118
|
+
high: "high";
|
|
119
|
+
critical: "critical";
|
|
120
|
+
}>;
|
|
121
|
+
mitigationStatus: z.ZodEnum<{
|
|
122
|
+
partial: "partial";
|
|
123
|
+
mitigated: "mitigated";
|
|
124
|
+
unmitigated: "unmitigated";
|
|
125
|
+
}>;
|
|
126
|
+
suggestedMitigation: z.ZodOptional<z.ZodString>;
|
|
127
|
+
}, z.core.$strip>;
|
|
128
|
+
export declare const RiskMatrixSchema: z.ZodObject<{
|
|
129
|
+
risks: z.ZodArray<z.ZodObject<{
|
|
130
|
+
nodeId: z.ZodString;
|
|
131
|
+
title: z.ZodString;
|
|
132
|
+
probability: z.ZodNumber;
|
|
133
|
+
impact: z.ZodNumber;
|
|
134
|
+
score: z.ZodNumber;
|
|
135
|
+
level: z.ZodEnum<{
|
|
136
|
+
low: "low";
|
|
137
|
+
medium: "medium";
|
|
138
|
+
high: "high";
|
|
139
|
+
critical: "critical";
|
|
140
|
+
}>;
|
|
141
|
+
mitigationStatus: z.ZodEnum<{
|
|
142
|
+
partial: "partial";
|
|
143
|
+
mitigated: "mitigated";
|
|
144
|
+
unmitigated: "unmitigated";
|
|
145
|
+
}>;
|
|
146
|
+
suggestedMitigation: z.ZodOptional<z.ZodString>;
|
|
147
|
+
}, z.core.$strip>>;
|
|
148
|
+
summary: z.ZodObject<{
|
|
149
|
+
total: z.ZodNumber;
|
|
150
|
+
critical: z.ZodNumber;
|
|
151
|
+
high: z.ZodNumber;
|
|
152
|
+
medium: z.ZodNumber;
|
|
153
|
+
low: z.ZodNumber;
|
|
154
|
+
mitigated: z.ZodNumber;
|
|
155
|
+
}, z.core.$strip>;
|
|
156
|
+
}, z.core.$strip>;
|
|
157
|
+
export type RiskMatrix = z.infer<typeof RiskMatrixSchema>;
|
|
158
|
+
export type RiskEntry = z.infer<typeof RiskEntrySchema>;
|
|
159
|
+
export type RiskLevel = z.infer<typeof RiskLevelSchema>;
|
|
160
|
+
//# sourceMappingURL=analyzer-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzer-schema.d.ts","sourceRoot":"","sources":["../../src/schemas/analyzer-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,eAAO,MAAM,oBAAoB;;;;;EAAoD,CAAC;AAEtF,eAAO,MAAM,uBAAuB;;;;;;;;;;iBAKlC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;EAAoC,CAAC;AAEvE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;iBAMjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAIpE,eAAO,MAAM,gBAAgB;;;;;iBAK3B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;iBAK/B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;iBAM9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIlE,eAAO,MAAM,oBAAoB;;;;iBAI/B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;iBAMhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIlE,eAAO,MAAM,eAAe;;;;;EAAgD,CAAC;AAE7E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;iBAS1B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAU3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
// ── PRD Quality ──
|
|
3
|
+
export const SectionQualitySchema = z.enum(["missing", "weak", "adequate", "strong"]);
|
|
4
|
+
export const PrdQualitySectionSchema = z.object({
|
|
5
|
+
name: z.string(),
|
|
6
|
+
quality: SectionQualitySchema,
|
|
7
|
+
issues: z.array(z.string()),
|
|
8
|
+
suggestions: z.array(z.string()),
|
|
9
|
+
});
|
|
10
|
+
export const PrdQualityGradeSchema = z.enum(["A", "B", "C", "D", "F"]);
|
|
11
|
+
export const PrdQualityReportSchema = z.object({
|
|
12
|
+
score: z.number().min(0).max(100),
|
|
13
|
+
grade: PrdQualityGradeSchema,
|
|
14
|
+
sections: z.array(PrdQualitySectionSchema),
|
|
15
|
+
readyForDesign: z.boolean(),
|
|
16
|
+
summary: z.string(),
|
|
17
|
+
});
|
|
18
|
+
// ── Scope Analysis ──
|
|
19
|
+
export const OrphanNodeSchema = z.object({
|
|
20
|
+
id: z.string(),
|
|
21
|
+
title: z.string(),
|
|
22
|
+
type: z.string(),
|
|
23
|
+
reason: z.string(),
|
|
24
|
+
});
|
|
25
|
+
export const CoverageMatrixSchema = z.object({
|
|
26
|
+
requirementsToTasks: z.number().min(0).max(100),
|
|
27
|
+
tasksToAc: z.number().min(0).max(100),
|
|
28
|
+
orphanRequirements: z.number(),
|
|
29
|
+
orphanTasks: z.number(),
|
|
30
|
+
});
|
|
31
|
+
export const ScopeAnalysisSchema = z.object({
|
|
32
|
+
orphans: z.array(OrphanNodeSchema),
|
|
33
|
+
cycles: z.array(z.array(z.string())),
|
|
34
|
+
coverage: CoverageMatrixSchema,
|
|
35
|
+
conflicts: z.array(z.string()),
|
|
36
|
+
summary: z.string(),
|
|
37
|
+
});
|
|
38
|
+
// ── Definition of Ready ──
|
|
39
|
+
export const ReadinessCheckSchema = z.object({
|
|
40
|
+
name: z.string(),
|
|
41
|
+
passed: z.boolean(),
|
|
42
|
+
details: z.string(),
|
|
43
|
+
});
|
|
44
|
+
export const ReadinessReportSchema = z.object({
|
|
45
|
+
readyForNextPhase: z.boolean(),
|
|
46
|
+
checks: z.array(ReadinessCheckSchema),
|
|
47
|
+
blockers: z.array(z.string()),
|
|
48
|
+
warnings: z.array(z.string()),
|
|
49
|
+
summary: z.string(),
|
|
50
|
+
});
|
|
51
|
+
// ── Risk Assessment ──
|
|
52
|
+
export const RiskLevelSchema = z.enum(["low", "medium", "high", "critical"]);
|
|
53
|
+
export const RiskEntrySchema = z.object({
|
|
54
|
+
nodeId: z.string(),
|
|
55
|
+
title: z.string(),
|
|
56
|
+
probability: z.number().min(1).max(5),
|
|
57
|
+
impact: z.number().min(1).max(5),
|
|
58
|
+
score: z.number(),
|
|
59
|
+
level: RiskLevelSchema,
|
|
60
|
+
mitigationStatus: z.enum(["mitigated", "partial", "unmitigated"]),
|
|
61
|
+
suggestedMitigation: z.string().optional(),
|
|
62
|
+
});
|
|
63
|
+
export const RiskMatrixSchema = z.object({
|
|
64
|
+
risks: z.array(RiskEntrySchema),
|
|
65
|
+
summary: z.object({
|
|
66
|
+
total: z.number(),
|
|
67
|
+
critical: z.number(),
|
|
68
|
+
high: z.number(),
|
|
69
|
+
medium: z.number(),
|
|
70
|
+
low: z.number(),
|
|
71
|
+
mitigated: z.number(),
|
|
72
|
+
}),
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=analyzer-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzer-schema.js","sourceRoot":"","sources":["../../src/schemas/analyzer-schema.ts"],"names":[],"mappings":"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"}
|