@mycodemap/mycodemap 0.4.2 → 0.5.1
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/CHANGELOG.md +105 -3
- package/README.md +192 -53
- package/dist/ai/claude.d.ts +38 -0
- package/dist/ai/claude.d.ts.map +1 -0
- package/dist/ai/claude.js +169 -0
- package/dist/ai/claude.js.map +1 -0
- package/dist/ai/codex.d.ts +38 -0
- package/dist/ai/codex.d.ts.map +1 -0
- package/dist/ai/codex.js +169 -0
- package/dist/ai/codex.js.map +1 -0
- package/dist/ai/factory.d.ts +48 -0
- package/dist/ai/factory.d.ts.map +1 -0
- package/dist/ai/factory.js +95 -0
- package/dist/ai/factory.js.map +1 -0
- package/dist/ai/index.d.ts +12 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +29 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/provider.d.ts +70 -0
- package/dist/ai/provider.d.ts.map +1 -0
- package/dist/ai/provider.js +31 -0
- package/dist/ai/provider.js.map +1 -0
- package/dist/ai/subagent-caller.d.ts +90 -0
- package/dist/ai/subagent-caller.d.ts.map +1 -0
- package/dist/ai/subagent-caller.js +280 -0
- package/dist/ai/subagent-caller.js.map +1 -0
- package/dist/ai/types.d.ts +70 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +5 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/cli/commands/analyze.d.ts +18 -0
- package/dist/cli/commands/analyze.d.ts.map +1 -1
- package/dist/cli/commands/analyze.js +239 -6
- package/dist/cli/commands/analyze.js.map +1 -1
- package/dist/cli/commands/check.d.ts +22 -0
- package/dist/cli/commands/check.d.ts.map +1 -0
- package/dist/cli/commands/check.js +168 -0
- package/dist/cli/commands/check.js.map +1 -0
- package/dist/cli/commands/ci.d.ts +25 -0
- package/dist/cli/commands/ci.d.ts.map +1 -1
- package/dist/cli/commands/ci.js +139 -36
- package/dist/cli/commands/ci.js.map +1 -1
- package/dist/cli/commands/complexity.d.ts.map +1 -1
- package/dist/cli/commands/complexity.js +6 -0
- package/dist/cli/commands/complexity.js.map +1 -1
- package/dist/cli/commands/design.d.ts +52 -0
- package/dist/cli/commands/design.d.ts.map +1 -0
- package/dist/cli/commands/design.js +274 -0
- package/dist/cli/commands/design.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +1 -0
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +121 -8
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/history.d.ts +26 -0
- package/dist/cli/commands/history.d.ts.map +1 -0
- package/dist/cli/commands/history.js +92 -0
- package/dist/cli/commands/history.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +13 -0
- package/dist/cli/commands/mcp.d.ts.map +1 -0
- package/dist/cli/commands/mcp.js +108 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/server.d.ts +9 -0
- package/dist/cli/commands/server.d.ts.map +1 -0
- package/dist/cli/commands/server.js +65 -0
- package/dist/cli/commands/server.js.map +1 -0
- package/dist/cli/commands/ship/pipeline.d.ts.map +1 -1
- package/dist/cli/commands/ship/pipeline.js +8 -1
- package/dist/cli/commands/ship/pipeline.js.map +1 -1
- package/dist/cli/commands/ship/publisher.d.ts +9 -1
- package/dist/cli/commands/ship/publisher.d.ts.map +1 -1
- package/dist/cli/commands/ship/publisher.js +149 -6
- package/dist/cli/commands/ship/publisher.js.map +1 -1
- package/dist/cli/commands/workflow.d.ts.map +1 -1
- package/dist/cli/commands/workflow.js +22 -2
- package/dist/cli/commands/workflow.js.map +1 -1
- package/dist/cli/config-loader.d.ts.map +1 -1
- package/dist/cli/config-loader.js +3 -2
- package/dist/cli/config-loader.js.map +1 -1
- package/dist/cli/contract-checker.d.ts +33 -0
- package/dist/cli/contract-checker.d.ts.map +1 -0
- package/dist/cli/contract-checker.js +719 -0
- package/dist/cli/contract-checker.js.map +1 -0
- package/dist/cli/contract-diff-scope.d.ts +14 -0
- package/dist/cli/contract-diff-scope.d.ts.map +1 -0
- package/dist/cli/contract-diff-scope.js +127 -0
- package/dist/cli/contract-diff-scope.js.map +1 -0
- package/dist/cli/contract-gate-thresholds.d.ts +14 -0
- package/dist/cli/contract-gate-thresholds.d.ts.map +1 -0
- package/dist/cli/contract-gate-thresholds.js +19 -0
- package/dist/cli/contract-gate-thresholds.js.map +1 -0
- package/dist/cli/design-contract-loader.d.ts +15 -0
- package/dist/cli/design-contract-loader.d.ts.map +1 -0
- package/dist/cli/design-contract-loader.js +527 -0
- package/dist/cli/design-contract-loader.js.map +1 -0
- package/dist/cli/design-contract-schema.d.ts +11 -0
- package/dist/cli/design-contract-schema.d.ts.map +1 -0
- package/dist/cli/design-contract-schema.js +75 -0
- package/dist/cli/design-contract-schema.js.map +1 -0
- package/dist/cli/design-handoff-builder.d.ts +15 -0
- package/dist/cli/design-handoff-builder.d.ts.map +1 -0
- package/dist/cli/design-handoff-builder.js +345 -0
- package/dist/cli/design-handoff-builder.js.map +1 -0
- package/dist/cli/design-scope-resolver.d.ts +8 -0
- package/dist/cli/design-scope-resolver.d.ts.map +1 -0
- package/dist/cli/design-scope-resolver.js +760 -0
- package/dist/cli/design-scope-resolver.js.map +1 -0
- package/dist/cli/design-verification-builder.d.ts +8 -0
- package/dist/cli/design-verification-builder.d.ts.map +1 -0
- package/dist/cli/design-verification-builder.js +369 -0
- package/dist/cli/design-verification-builder.js.map +1 -0
- package/dist/cli/index.js +20 -6
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/paths.d.ts.map +1 -1
- package/dist/cli/paths.js +30 -7
- package/dist/cli/paths.js.map +1 -1
- package/dist/cli-new/commands/server.d.ts +13 -0
- package/dist/cli-new/commands/server.d.ts.map +1 -0
- package/dist/cli-new/commands/server.js +90 -0
- package/dist/cli-new/commands/server.js.map +1 -0
- package/dist/core/analyzer.d.ts.map +1 -1
- package/dist/core/analyzer.js +16 -0
- package/dist/core/analyzer.js.map +1 -1
- package/dist/domain/entities/CodeGraph.d.ts +5 -1
- package/dist/domain/entities/CodeGraph.d.ts.map +1 -1
- package/dist/domain/entities/CodeGraph.js +29 -12
- package/dist/domain/entities/CodeGraph.js.map +1 -1
- package/dist/domain/entities/Dependency.d.ts +8 -1
- package/dist/domain/entities/Dependency.d.ts.map +1 -1
- package/dist/domain/entities/Dependency.js +19 -4
- package/dist/domain/entities/Dependency.js.map +1 -1
- package/dist/domain/entities/Symbol.d.ts +2 -1
- package/dist/domain/entities/Symbol.d.ts.map +1 -1
- package/dist/domain/entities/Symbol.js +6 -3
- package/dist/domain/entities/Symbol.js.map +1 -1
- package/dist/generator/ai-overview.d.ts +51 -0
- package/dist/generator/ai-overview.d.ts.map +1 -0
- package/dist/generator/ai-overview.js +160 -0
- package/dist/generator/ai-overview.js.map +1 -0
- package/dist/infrastructure/storage/StorageFactory.d.ts +13 -5
- package/dist/infrastructure/storage/StorageFactory.d.ts.map +1 -1
- package/dist/infrastructure/storage/StorageFactory.js +62 -16
- package/dist/infrastructure/storage/StorageFactory.js.map +1 -1
- package/dist/infrastructure/storage/adapters/FileSystemStorage.d.ts +3 -1
- package/dist/infrastructure/storage/adapters/FileSystemStorage.d.ts.map +1 -1
- package/dist/infrastructure/storage/adapters/FileSystemStorage.js +10 -2
- package/dist/infrastructure/storage/adapters/FileSystemStorage.js.map +1 -1
- package/dist/infrastructure/storage/adapters/KuzuDBStorage.d.ts +3 -1
- package/dist/infrastructure/storage/adapters/KuzuDBStorage.d.ts.map +1 -1
- package/dist/infrastructure/storage/adapters/KuzuDBStorage.js +9 -1
- package/dist/infrastructure/storage/adapters/KuzuDBStorage.js.map +1 -1
- package/dist/infrastructure/storage/adapters/MemoryStorage.d.ts +3 -1
- package/dist/infrastructure/storage/adapters/MemoryStorage.d.ts.map +1 -1
- package/dist/infrastructure/storage/adapters/MemoryStorage.js +9 -1
- package/dist/infrastructure/storage/adapters/MemoryStorage.js.map +1 -1
- package/dist/infrastructure/storage/adapters/Neo4jStorage.d.ts +41 -0
- package/dist/infrastructure/storage/adapters/Neo4jStorage.d.ts.map +1 -0
- package/dist/infrastructure/storage/adapters/Neo4jStorage.js +162 -0
- package/dist/infrastructure/storage/adapters/Neo4jStorage.js.map +1 -0
- package/dist/infrastructure/storage/adapters/SQLiteStorage.d.ts +53 -0
- package/dist/infrastructure/storage/adapters/SQLiteStorage.d.ts.map +1 -0
- package/dist/infrastructure/storage/adapters/SQLiteStorage.js +879 -0
- package/dist/infrastructure/storage/adapters/SQLiteStorage.js.map +1 -0
- package/dist/infrastructure/storage/graph-helpers.d.ts +3 -1
- package/dist/infrastructure/storage/graph-helpers.d.ts.map +1 -1
- package/dist/infrastructure/storage/graph-helpers.js +90 -0
- package/dist/infrastructure/storage/graph-helpers.js.map +1 -1
- package/dist/infrastructure/storage/index.d.ts +1 -1
- package/dist/infrastructure/storage/index.d.ts.map +1 -1
- package/dist/infrastructure/storage/interfaces/StorageBase.d.ts +3 -1
- package/dist/infrastructure/storage/interfaces/StorageBase.d.ts.map +1 -1
- package/dist/infrastructure/storage/interfaces/StorageBase.js.map +1 -1
- package/dist/infrastructure/storage/sqlite/GovernanceGraphCache.d.ts +27 -0
- package/dist/infrastructure/storage/sqlite/GovernanceGraphCache.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite/GovernanceGraphCache.js +246 -0
- package/dist/infrastructure/storage/sqlite/GovernanceGraphCache.js.map +1 -0
- package/dist/infrastructure/storage/sqlite/perf-thresholds.d.ts +25 -0
- package/dist/infrastructure/storage/sqlite/perf-thresholds.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite/perf-thresholds.js +25 -0
- package/dist/infrastructure/storage/sqlite/perf-thresholds.js.map +1 -0
- package/dist/infrastructure/storage/sqlite/schema.d.ts +4 -0
- package/dist/infrastructure/storage/sqlite/schema.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite/schema.js +111 -0
- package/dist/infrastructure/storage/sqlite/schema.js.map +1 -0
- package/dist/interface/types/design-check.d.ts +73 -0
- package/dist/interface/types/design-check.d.ts.map +1 -0
- package/dist/interface/types/design-check.js +4 -0
- package/dist/interface/types/design-check.js.map +1 -0
- package/dist/interface/types/design-contract.d.ts +123 -0
- package/dist/interface/types/design-contract.d.ts.map +1 -0
- package/dist/interface/types/design-contract.js +7 -0
- package/dist/interface/types/design-contract.js.map +1 -0
- package/dist/interface/types/design-handoff.d.ts +68 -0
- package/dist/interface/types/design-handoff.d.ts.map +1 -0
- package/dist/interface/types/design-handoff.js +4 -0
- package/dist/interface/types/design-handoff.js.map +1 -0
- package/dist/interface/types/design-mapping.d.ts +51 -0
- package/dist/interface/types/design-mapping.d.ts.map +1 -0
- package/dist/interface/types/design-mapping.js +4 -0
- package/dist/interface/types/design-mapping.js.map +1 -0
- package/dist/interface/types/design-verification.d.ts +49 -0
- package/dist/interface/types/design-verification.d.ts.map +1 -0
- package/dist/interface/types/design-verification.js +4 -0
- package/dist/interface/types/design-verification.js.map +1 -0
- package/dist/interface/types/history-risk.d.ts +90 -0
- package/dist/interface/types/history-risk.d.ts.map +1 -0
- package/dist/interface/types/history-risk.js +4 -0
- package/dist/interface/types/history-risk.js.map +1 -0
- package/dist/interface/types/index.d.ts +20 -1
- package/dist/interface/types/index.d.ts.map +1 -1
- package/dist/interface/types/storage.d.ts +28 -1
- package/dist/interface/types/storage.d.ts.map +1 -1
- package/dist/orchestrator/adapters/ast-grep-adapter.d.ts +10 -0
- package/dist/orchestrator/adapters/ast-grep-adapter.d.ts.map +1 -1
- package/dist/orchestrator/adapters/ast-grep-adapter.js +46 -17
- package/dist/orchestrator/adapters/ast-grep-adapter.js.map +1 -1
- package/dist/orchestrator/adapters/codemap-adapter.d.ts.map +1 -1
- package/dist/orchestrator/adapters/codemap-adapter.js +2 -22
- package/dist/orchestrator/adapters/codemap-adapter.js.map +1 -1
- package/dist/orchestrator/ai-feed-generator.d.ts +210 -0
- package/dist/orchestrator/ai-feed-generator.d.ts.map +1 -0
- package/dist/orchestrator/ai-feed-generator.js +377 -0
- package/dist/orchestrator/ai-feed-generator.js.map +1 -0
- package/dist/orchestrator/history-risk-service.d.ts +55 -0
- package/dist/orchestrator/history-risk-service.d.ts.map +1 -0
- package/dist/orchestrator/history-risk-service.js +680 -0
- package/dist/orchestrator/history-risk-service.js.map +1 -0
- package/dist/orchestrator/types.d.ts +19 -1
- package/dist/orchestrator/types.d.ts.map +1 -1
- package/dist/orchestrator/types.js +19 -0
- package/dist/orchestrator/types.js.map +1 -1
- package/dist/server/mcp/index.d.ts +4 -0
- package/dist/server/mcp/index.d.ts.map +1 -0
- package/dist/server/mcp/index.js +5 -0
- package/dist/server/mcp/index.js.map +1 -0
- package/dist/server/mcp/server.d.ts +17 -0
- package/dist/server/mcp/server.d.ts.map +1 -0
- package/dist/server/mcp/server.js +84 -0
- package/dist/server/mcp/server.js.map +1 -0
- package/dist/server/mcp/service.d.ts +22 -0
- package/dist/server/mcp/service.d.ts.map +1 -0
- package/dist/server/mcp/service.js +177 -0
- package/dist/server/mcp/service.js.map +1 -0
- package/dist/server/mcp/types.d.ts +56 -0
- package/dist/server/mcp/types.d.ts.map +1 -0
- package/dist/server/mcp/types.js +4 -0
- package/dist/server/mcp/types.js.map +1 -0
- package/docs/AI_ASSISTANT_SETUP.md +1 -1
- package/docs/SETUP_GUIDE.md +6 -6
- package/docs/ai-guide/COMMANDS.md +171 -4
- package/docs/ai-guide/INTEGRATION.md +137 -433
- package/docs/ai-guide/OUTPUT.md +890 -5
- package/docs/ai-guide/PATTERNS.md +54 -14
- package/docs/ai-guide/PROMPTS.md +17 -6
- package/docs/archive/test-report-symbol-search.md +384 -0
- package/docs/archive/test-scenario-4-complexity-analysis.md +460 -0
- package/docs/archive/test_report_scenario5.md +615 -0
- package/docs/archive/test_scenario_3_impact_analysis_report.md +520 -0
- package/docs/backlog.md +177 -0
- package/docs/eatdogfood-reports/2026-04-17-eatdogfood-agent-experience.md +231 -0
- package/docs/exec-plans/completed/2026-04-17-eatdogfood-codemap-cli.md +103 -0
- package/docs/ideation/2026-04-15-executable-architecture-constitution-ideation.md +102 -0
- package/docs/product-specs/DESIGN_CONTRACT_TEMPLATE.md +126 -0
- package/docs/product-specs/MVP3-ARCHITECTURE-COMPARISON.md +11 -10
- package/docs/product-specs/MVP3-ARCHITECTURE-REDESIGN-PRD.md +10 -10
- package/docs/product-specs/MVP3-ARCHITECTURE-REDESIGN-TECH-PRD.md +17 -12
- package/docs/product-specs/README.md +2 -1
- package/docs/rules/README.md +16 -11
- package/docs/rules/architecture-guardrails.md +24 -336
- package/docs/rules/code-quality-redlines.md +25 -311
- package/docs/rules/engineering-with-codex-openai.md +20 -3
- package/docs/rules/validation.md +90 -37
- package/mycodemap.config.schema.json +3 -3
- package/package.json +7 -2
- package/scripts/benchmark-governance-graph.mjs +132 -0
- package/scripts/calibrate-contract-gate.mjs +221 -0
- package/scripts/capability-report.py +255 -0
- package/scripts/experiments/arcadedb-http-smoke.mjs +90 -0
- package/scripts/qa-rule-control.sh +254 -0
- package/scripts/report-high-risk-files.mjs +395 -0
- package/scripts/rule-context.mjs +155 -0
- package/scripts/smoke-sqlite-impact.mjs +85 -0
- package/scripts/sync-analyze-docs.js +1 -0
- package/scripts/tests/test_capability_report.py +89 -0
- package/scripts/tests/test_rule_control_workflow.py +51 -0
- package/scripts/tests/test_validate_rules.py +81 -0
- package/scripts/validate-ai-docs.js +283 -1
- package/scripts/validate-docs.js +479 -25
- package/scripts/validate-rules.py +254 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perf-thresholds.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/storage/sqlite/perf-thresholds.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,wBAAwB,GAAG,cAAc,GAAG,eAAe,CAAC;AAExE,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,6BAA6B,CAAC;IACnD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD,eAAO,MAAM,4BAA4B,OAAQ,CAAC;AAClD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,eAAO,MAAM,wCAAwC,EAAE,6BAIrD,CAAC;AAEH,wBAAgB,iCAAiC,CAC/C,SAAS,EAAE,OAAO,CAAC,2BAA2B,CAAC,GAAG;IAChD,SAAS,EAAE,wBAAwB,CAAC;IACpC,UAAU,CAAC,EAAE,6BAA6B,CAAC;CAC5C,GACA,2BAA2B,CAU7B;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// [META] since:2026-04 | owner:architecture-team | stable:false
|
|
2
|
+
// [WHY] Explicit governance graph eager-cache thresholds keep fallback behavior honest and testable
|
|
3
|
+
export const GOVERNANCE_GRAPH_MAX_FILES = 10_000;
|
|
4
|
+
export const GOVERNANCE_GRAPH_MAX_LOAD_MS = 1_000;
|
|
5
|
+
export const GOVERNANCE_GRAPH_MAX_RSS_MB = 200;
|
|
6
|
+
export const DEFAULT_GOVERNANCE_GRAPH_PERF_THRESHOLDS = Object.freeze({
|
|
7
|
+
maxFiles: GOVERNANCE_GRAPH_MAX_FILES,
|
|
8
|
+
maxLoadMs: GOVERNANCE_GRAPH_MAX_LOAD_MS,
|
|
9
|
+
maxRssMb: GOVERNANCE_GRAPH_MAX_RSS_MB,
|
|
10
|
+
});
|
|
11
|
+
export function createGovernanceGraphRuntimeStats(overrides) {
|
|
12
|
+
return {
|
|
13
|
+
cacheMode: overrides.cacheMode,
|
|
14
|
+
thresholds: overrides.thresholds ?? DEFAULT_GOVERNANCE_GRAPH_PERF_THRESHOLDS,
|
|
15
|
+
moduleCount: overrides.moduleCount ?? 0,
|
|
16
|
+
dependencyCount: overrides.dependencyCount ?? 0,
|
|
17
|
+
loadMs: overrides.loadMs ?? 0,
|
|
18
|
+
rssDeltaMb: overrides.rssDeltaMb ?? 0,
|
|
19
|
+
warning: overrides.warning,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function bytesToMb(bytes) {
|
|
23
|
+
return Math.round((bytes / (1024 * 1024)) * 100) / 100;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=perf-thresholds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perf-thresholds.js","sourceRoot":"","sources":["../../../../src/infrastructure/storage/sqlite/perf-thresholds.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,oGAAoG;AAoBpG,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AACjD,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAClD,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAE/C,MAAM,CAAC,MAAM,wCAAwC,GAAkC,MAAM,CAAC,MAAM,CAAC;IACnG,QAAQ,EAAE,0BAA0B;IACpC,SAAS,EAAE,4BAA4B;IACvC,QAAQ,EAAE,2BAA2B;CACtC,CAAC,CAAC;AAEH,MAAM,UAAU,iCAAiC,CAC/C,SAGC;IAED,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,UAAU,EAAE,SAAS,CAAC,UAAU,IAAI,wCAAwC;QAC5E,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,CAAC;QACvC,eAAe,EAAE,SAAS,CAAC,eAAe,IAAI,CAAC;QAC/C,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC;QAC7B,UAAU,EAAE,SAAS,CAAC,UAAU,IAAI,CAAC;QACrC,OAAO,EAAE,SAAS,CAAC,OAAO;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const CURRENT_SQLITE_SCHEMA_VERSION = "governance-v3";
|
|
2
|
+
export declare const SQLITE_SCHEMA_VERSION_UPSERT_SQL = "\n INSERT INTO metadata (key, value)\n VALUES (?, ?)\n ON CONFLICT(key) DO UPDATE SET value = excluded.value\n";
|
|
3
|
+
export declare const SQLITE_GOVERNANCE_SCHEMA_SQL = "\n CREATE TABLE IF NOT EXISTS metadata (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL\n );\n\n CREATE TABLE IF NOT EXISTS projects (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n root_path TEXT NOT NULL,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n );\n\n CREATE TABLE IF NOT EXISTS modules (\n id TEXT PRIMARY KEY,\n project_id TEXT NOT NULL,\n path TEXT NOT NULL,\n language TEXT NOT NULL,\n lines INTEGER NOT NULL,\n code_lines INTEGER NOT NULL,\n comment_lines INTEGER NOT NULL,\n blank_lines INTEGER NOT NULL\n );\n\n CREATE TABLE IF NOT EXISTS symbols (\n id TEXT PRIMARY KEY,\n module_id TEXT NOT NULL,\n name TEXT NOT NULL,\n kind TEXT NOT NULL,\n signature TEXT,\n file_path TEXT NOT NULL,\n line INTEGER NOT NULL,\n column_number INTEGER NOT NULL,\n end_line INTEGER,\n end_column INTEGER,\n visibility TEXT NOT NULL\n );\n\n CREATE TABLE IF NOT EXISTS dependencies (\n id TEXT PRIMARY KEY,\n source_id TEXT NOT NULL,\n source_entity_type TEXT NOT NULL,\n target_id TEXT NOT NULL,\n target_entity_type TEXT NOT NULL,\n dependency_type TEXT NOT NULL,\n file_path TEXT,\n line INTEGER,\n confidence TEXT\n );\n\n CREATE TABLE IF NOT EXISTS history_snapshots (\n id TEXT PRIMARY KEY,\n project_id TEXT NOT NULL,\n recorded_at TEXT NOT NULL,\n snapshot_source TEXT NOT NULL,\n module_count INTEGER NOT NULL,\n symbol_count INTEGER NOT NULL,\n dependency_count INTEGER NOT NULL\n );\n\n CREATE TABLE IF NOT EXISTS history_relations (\n id TEXT PRIMARY KEY,\n snapshot_id TEXT NOT NULL,\n relation_type TEXT NOT NULL,\n source_id TEXT NOT NULL,\n source_entity_type TEXT NOT NULL,\n target_id TEXT,\n target_entity_type TEXT,\n observed_at TEXT NOT NULL,\n metadata_json TEXT NOT NULL\n );\n\n CREATE TABLE IF NOT EXISTS snapshots (\n id TEXT PRIMARY KEY,\n project_id TEXT NOT NULL,\n graph_json TEXT NOT NULL,\n updated_at TEXT NOT NULL\n );\n\n CREATE INDEX IF NOT EXISTS idx_modules_project_id\n ON modules (project_id);\n CREATE INDEX IF NOT EXISTS idx_modules_path\n ON modules (path);\n CREATE INDEX IF NOT EXISTS idx_symbols_module_id\n ON symbols (module_id);\n CREATE INDEX IF NOT EXISTS idx_symbols_name\n ON symbols (name);\n CREATE INDEX IF NOT EXISTS idx_dependencies_source\n ON dependencies (source_id, dependency_type);\n CREATE INDEX IF NOT EXISTS idx_dependencies_target\n ON dependencies (target_id, dependency_type);\n CREATE INDEX IF NOT EXISTS idx_history_snapshots_project\n ON history_snapshots (project_id, recorded_at DESC);\n CREATE INDEX IF NOT EXISTS idx_history_relations_snapshot\n ON history_relations (snapshot_id);\n CREATE INDEX IF NOT EXISTS idx_history_relations_source\n ON history_relations (source_id, relation_type);\n";
|
|
4
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/storage/sqlite/schema.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,6BAA6B,kBAAkB,CAAC;AAE7D,eAAO,MAAM,gCAAgC,sHAI5C,CAAC;AAEF,eAAO,MAAM,4BAA4B,o1FAkGxC,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// [META] since:2026-04 | owner:architecture-team | stable:false
|
|
2
|
+
// [WHY] SQLite governance schema definition and versioning for Phase 26 normalized storage
|
|
3
|
+
// ============================================
|
|
4
|
+
// SQLite 治理存储 schema 定义与版本管理
|
|
5
|
+
// ============================================
|
|
6
|
+
export const CURRENT_SQLITE_SCHEMA_VERSION = 'governance-v3';
|
|
7
|
+
export const SQLITE_SCHEMA_VERSION_UPSERT_SQL = `
|
|
8
|
+
INSERT INTO metadata (key, value)
|
|
9
|
+
VALUES (?, ?)
|
|
10
|
+
ON CONFLICT(key) DO UPDATE SET value = excluded.value
|
|
11
|
+
`;
|
|
12
|
+
export const SQLITE_GOVERNANCE_SCHEMA_SQL = `
|
|
13
|
+
CREATE TABLE IF NOT EXISTS metadata (
|
|
14
|
+
key TEXT PRIMARY KEY,
|
|
15
|
+
value TEXT NOT NULL
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
CREATE TABLE IF NOT EXISTS projects (
|
|
19
|
+
id TEXT PRIMARY KEY,
|
|
20
|
+
name TEXT NOT NULL,
|
|
21
|
+
root_path TEXT NOT NULL,
|
|
22
|
+
created_at TEXT NOT NULL,
|
|
23
|
+
updated_at TEXT NOT NULL
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
CREATE TABLE IF NOT EXISTS modules (
|
|
27
|
+
id TEXT PRIMARY KEY,
|
|
28
|
+
project_id TEXT NOT NULL,
|
|
29
|
+
path TEXT NOT NULL,
|
|
30
|
+
language TEXT NOT NULL,
|
|
31
|
+
lines INTEGER NOT NULL,
|
|
32
|
+
code_lines INTEGER NOT NULL,
|
|
33
|
+
comment_lines INTEGER NOT NULL,
|
|
34
|
+
blank_lines INTEGER NOT NULL
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
CREATE TABLE IF NOT EXISTS symbols (
|
|
38
|
+
id TEXT PRIMARY KEY,
|
|
39
|
+
module_id TEXT NOT NULL,
|
|
40
|
+
name TEXT NOT NULL,
|
|
41
|
+
kind TEXT NOT NULL,
|
|
42
|
+
signature TEXT,
|
|
43
|
+
file_path TEXT NOT NULL,
|
|
44
|
+
line INTEGER NOT NULL,
|
|
45
|
+
column_number INTEGER NOT NULL,
|
|
46
|
+
end_line INTEGER,
|
|
47
|
+
end_column INTEGER,
|
|
48
|
+
visibility TEXT NOT NULL
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
CREATE TABLE IF NOT EXISTS dependencies (
|
|
52
|
+
id TEXT PRIMARY KEY,
|
|
53
|
+
source_id TEXT NOT NULL,
|
|
54
|
+
source_entity_type TEXT NOT NULL,
|
|
55
|
+
target_id TEXT NOT NULL,
|
|
56
|
+
target_entity_type TEXT NOT NULL,
|
|
57
|
+
dependency_type TEXT NOT NULL,
|
|
58
|
+
file_path TEXT,
|
|
59
|
+
line INTEGER,
|
|
60
|
+
confidence TEXT
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
CREATE TABLE IF NOT EXISTS history_snapshots (
|
|
64
|
+
id TEXT PRIMARY KEY,
|
|
65
|
+
project_id TEXT NOT NULL,
|
|
66
|
+
recorded_at TEXT NOT NULL,
|
|
67
|
+
snapshot_source TEXT NOT NULL,
|
|
68
|
+
module_count INTEGER NOT NULL,
|
|
69
|
+
symbol_count INTEGER NOT NULL,
|
|
70
|
+
dependency_count INTEGER NOT NULL
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
CREATE TABLE IF NOT EXISTS history_relations (
|
|
74
|
+
id TEXT PRIMARY KEY,
|
|
75
|
+
snapshot_id TEXT NOT NULL,
|
|
76
|
+
relation_type TEXT NOT NULL,
|
|
77
|
+
source_id TEXT NOT NULL,
|
|
78
|
+
source_entity_type TEXT NOT NULL,
|
|
79
|
+
target_id TEXT,
|
|
80
|
+
target_entity_type TEXT,
|
|
81
|
+
observed_at TEXT NOT NULL,
|
|
82
|
+
metadata_json TEXT NOT NULL
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
CREATE TABLE IF NOT EXISTS snapshots (
|
|
86
|
+
id TEXT PRIMARY KEY,
|
|
87
|
+
project_id TEXT NOT NULL,
|
|
88
|
+
graph_json TEXT NOT NULL,
|
|
89
|
+
updated_at TEXT NOT NULL
|
|
90
|
+
);
|
|
91
|
+
|
|
92
|
+
CREATE INDEX IF NOT EXISTS idx_modules_project_id
|
|
93
|
+
ON modules (project_id);
|
|
94
|
+
CREATE INDEX IF NOT EXISTS idx_modules_path
|
|
95
|
+
ON modules (path);
|
|
96
|
+
CREATE INDEX IF NOT EXISTS idx_symbols_module_id
|
|
97
|
+
ON symbols (module_id);
|
|
98
|
+
CREATE INDEX IF NOT EXISTS idx_symbols_name
|
|
99
|
+
ON symbols (name);
|
|
100
|
+
CREATE INDEX IF NOT EXISTS idx_dependencies_source
|
|
101
|
+
ON dependencies (source_id, dependency_type);
|
|
102
|
+
CREATE INDEX IF NOT EXISTS idx_dependencies_target
|
|
103
|
+
ON dependencies (target_id, dependency_type);
|
|
104
|
+
CREATE INDEX IF NOT EXISTS idx_history_snapshots_project
|
|
105
|
+
ON history_snapshots (project_id, recorded_at DESC);
|
|
106
|
+
CREATE INDEX IF NOT EXISTS idx_history_relations_snapshot
|
|
107
|
+
ON history_relations (snapshot_id);
|
|
108
|
+
CREATE INDEX IF NOT EXISTS idx_history_relations_source
|
|
109
|
+
ON history_relations (source_id, relation_type);
|
|
110
|
+
`;
|
|
111
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/infrastructure/storage/sqlite/schema.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,2FAA2F;AAC3F,+CAA+C;AAC/C,6BAA6B;AAC7B,+CAA+C;AAE/C,MAAM,CAAC,MAAM,6BAA6B,GAAG,eAAe,CAAC;AAE7D,MAAM,CAAC,MAAM,gCAAgC,GAAG;;;;CAI/C,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkG3C,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { DesignContractRuleSeverity, DesignContractRuleType } from './design-contract.js';
|
|
2
|
+
import type { HistoryConfidence, HistoryFreshness, HistoryRiskLevel, HistoryScopeMode, HistorySignalStatus } from './history-risk.js';
|
|
3
|
+
export type ContractScanMode = 'full' | 'diff';
|
|
4
|
+
export interface ContractCheckWarning {
|
|
5
|
+
code: string;
|
|
6
|
+
message: string;
|
|
7
|
+
details?: Record<string, string | number | boolean | null>;
|
|
8
|
+
}
|
|
9
|
+
export interface ContractViolationRisk {
|
|
10
|
+
status: HistorySignalStatus;
|
|
11
|
+
level: HistoryRiskLevel;
|
|
12
|
+
confidence: HistoryConfidence;
|
|
13
|
+
freshness: HistoryFreshness;
|
|
14
|
+
score: number | null;
|
|
15
|
+
factors: string[];
|
|
16
|
+
analyzed_at: string | null;
|
|
17
|
+
}
|
|
18
|
+
export interface ContractCheckHistoryMetadata {
|
|
19
|
+
status: HistorySignalStatus;
|
|
20
|
+
confidence: HistoryConfidence;
|
|
21
|
+
freshness: HistoryFreshness;
|
|
22
|
+
scope_mode: HistoryScopeMode;
|
|
23
|
+
enriched_file_count: number;
|
|
24
|
+
unavailable_count: number;
|
|
25
|
+
stale_count: number;
|
|
26
|
+
low_confidence_count: number;
|
|
27
|
+
requires_precompute: boolean;
|
|
28
|
+
}
|
|
29
|
+
export type ContractViolationDiagnosticScope = 'line' | 'file' | 'general';
|
|
30
|
+
export type ContractViolationDiagnosticSource = 'dependency-cruiser' | 'custom-evaluator';
|
|
31
|
+
export type ContractViolationDiagnosticCategory = 'dependency' | 'module_boundary' | 'complexity';
|
|
32
|
+
export interface ContractViolationDiagnostic {
|
|
33
|
+
file?: string;
|
|
34
|
+
line?: number;
|
|
35
|
+
column?: number;
|
|
36
|
+
endLine?: number;
|
|
37
|
+
endColumn?: number;
|
|
38
|
+
scope: ContractViolationDiagnosticScope;
|
|
39
|
+
source: ContractViolationDiagnosticSource;
|
|
40
|
+
category: ContractViolationDiagnosticCategory;
|
|
41
|
+
degraded: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface ContractViolation {
|
|
44
|
+
rule: string;
|
|
45
|
+
rule_type: DesignContractRuleType;
|
|
46
|
+
severity: DesignContractRuleSeverity;
|
|
47
|
+
location: string;
|
|
48
|
+
message: string;
|
|
49
|
+
dependency_chain: string[];
|
|
50
|
+
hard_fail: boolean;
|
|
51
|
+
diagnostic?: ContractViolationDiagnostic;
|
|
52
|
+
risk?: ContractViolationRisk;
|
|
53
|
+
}
|
|
54
|
+
export interface ContractCheckSummary {
|
|
55
|
+
total_violations: number;
|
|
56
|
+
error_count: number;
|
|
57
|
+
warn_count: number;
|
|
58
|
+
scanned_file_count: number;
|
|
59
|
+
rule_count: number;
|
|
60
|
+
}
|
|
61
|
+
export interface ContractCheckResult {
|
|
62
|
+
passed: boolean;
|
|
63
|
+
scan_mode: ContractScanMode;
|
|
64
|
+
contract_path: string;
|
|
65
|
+
against_path: string;
|
|
66
|
+
changed_files: string[];
|
|
67
|
+
scanned_files: string[];
|
|
68
|
+
warnings: ContractCheckWarning[];
|
|
69
|
+
violations: ContractViolation[];
|
|
70
|
+
summary: ContractCheckSummary;
|
|
71
|
+
history?: ContractCheckHistoryMetadata;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=design-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-check.d.ts","sourceRoot":"","sources":["../../../src/interface/types/design-check.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC/F,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/C,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,mBAAmB,CAAC;IAC5B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,MAAM,gCAAgC,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAE3E,MAAM,MAAM,iCAAiC,GAAG,oBAAoB,GAAG,kBAAkB,CAAC;AAE1F,MAAM,MAAM,mCAAmC,GAAG,YAAY,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAElG,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,gCAAgC,CAAC;IACxC,MAAM,EAAE,iCAAiC,CAAC;IAC1C,QAAQ,EAAE,mCAAmC,CAAC;IAC9C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,sBAAsB,CAAC;IAClC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,2BAA2B,CAAC;IACzC,IAAI,CAAC,EAAE,qBAAqB,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,OAAO,CAAC,EAAE,4BAA4B,CAAC;CACxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-check.js","sourceRoot":"","sources":["../../../src/interface/types/design-check.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,iHAAiH"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 必填 section
|
|
3
|
+
*/
|
|
4
|
+
export type DesignContractRequiredSectionId = 'goal' | 'constraints' | 'acceptanceCriteria' | 'nonGoals';
|
|
5
|
+
/**
|
|
6
|
+
* 可选 section
|
|
7
|
+
*/
|
|
8
|
+
export type DesignContractOptionalSectionId = 'context' | 'openQuestions' | 'notes';
|
|
9
|
+
/**
|
|
10
|
+
* 全量 section 标识
|
|
11
|
+
*/
|
|
12
|
+
export type DesignContractSectionId = DesignContractRequiredSectionId | DesignContractOptionalSectionId;
|
|
13
|
+
/**
|
|
14
|
+
* 结构化诊断严重级别
|
|
15
|
+
*/
|
|
16
|
+
export type DesignContractDiagnosticSeverity = 'error' | 'warning' | 'info';
|
|
17
|
+
/**
|
|
18
|
+
* 结构化诊断代码
|
|
19
|
+
*/
|
|
20
|
+
export type DesignContractDiagnosticCode = 'file-not-found' | 'missing-section' | 'duplicate-section' | 'empty-section' | 'unknown-section' | 'ambiguous-heading' | 'invalid-frontmatter' | 'invalid-rules-root' | 'invalid-rule-type' | 'missing-rule-field' | 'invalid-rule-severity' | 'unknown-rule-field' | 'unknown-frontmatter-field';
|
|
21
|
+
/**
|
|
22
|
+
* 可执行 rule 严重级别
|
|
23
|
+
*/
|
|
24
|
+
export type DesignContractRuleSeverity = 'error' | 'warn';
|
|
25
|
+
/**
|
|
26
|
+
* 可执行 rule 类型
|
|
27
|
+
*/
|
|
28
|
+
export type DesignContractRuleType = 'layer_direction' | 'forbidden_imports' | 'module_public_api_only' | 'complexity_threshold';
|
|
29
|
+
/**
|
|
30
|
+
* Rule 公共字段
|
|
31
|
+
*/
|
|
32
|
+
export interface DesignContractBaseRule {
|
|
33
|
+
type: DesignContractRuleType;
|
|
34
|
+
name: string;
|
|
35
|
+
severity: DesignContractRuleSeverity;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 分层依赖方向规则
|
|
39
|
+
*/
|
|
40
|
+
export interface LayerDirectionRule extends DesignContractBaseRule {
|
|
41
|
+
type: 'layer_direction';
|
|
42
|
+
from: string;
|
|
43
|
+
to: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 禁止导入规则
|
|
47
|
+
*/
|
|
48
|
+
export interface ForbiddenImportsRule extends DesignContractBaseRule {
|
|
49
|
+
type: 'forbidden_imports';
|
|
50
|
+
module: string;
|
|
51
|
+
forbidden: string[];
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* 模块只能通过 public api 访问
|
|
55
|
+
*/
|
|
56
|
+
export interface ModulePublicApiOnlyRule extends DesignContractBaseRule {
|
|
57
|
+
type: 'module_public_api_only';
|
|
58
|
+
module: string;
|
|
59
|
+
publicApi: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* 复杂度阈值规则
|
|
63
|
+
*/
|
|
64
|
+
export interface ComplexityThresholdRule extends DesignContractBaseRule {
|
|
65
|
+
type: 'complexity_threshold';
|
|
66
|
+
module: string;
|
|
67
|
+
maxCyclomatic?: number;
|
|
68
|
+
maxCognitive?: number;
|
|
69
|
+
minMaintainability?: number;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* 全量可执行规则
|
|
73
|
+
*/
|
|
74
|
+
export type DesignContractRule = LayerDirectionRule | ForbiddenImportsRule | ModulePublicApiOnlyRule | ComplexityThresholdRule;
|
|
75
|
+
/**
|
|
76
|
+
* 原始/归一化 section 内容
|
|
77
|
+
*/
|
|
78
|
+
export interface DesignContractSection {
|
|
79
|
+
id: DesignContractSectionId;
|
|
80
|
+
title: string;
|
|
81
|
+
rawHeading: string;
|
|
82
|
+
content: string[];
|
|
83
|
+
line: number;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 设计契约元数据
|
|
87
|
+
*/
|
|
88
|
+
export interface DesignContractMetadata {
|
|
89
|
+
version: 'v1';
|
|
90
|
+
title?: string;
|
|
91
|
+
sourcePath?: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* 结构化诊断
|
|
95
|
+
*/
|
|
96
|
+
export interface DesignContractDiagnostic {
|
|
97
|
+
code: DesignContractDiagnosticCode;
|
|
98
|
+
severity: DesignContractDiagnosticSeverity;
|
|
99
|
+
message: string;
|
|
100
|
+
section?: DesignContractSectionId;
|
|
101
|
+
heading?: string;
|
|
102
|
+
line?: number;
|
|
103
|
+
suggestion?: string;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* 原始设计契约文档
|
|
107
|
+
*/
|
|
108
|
+
export interface DesignContract {
|
|
109
|
+
metadata: DesignContractMetadata;
|
|
110
|
+
sections: DesignContractSection[];
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* 归一化设计契约(允许带缺失段,供 validator/CLI 决策)
|
|
114
|
+
*/
|
|
115
|
+
export interface NormalizedDesignContract {
|
|
116
|
+
metadata: DesignContractMetadata;
|
|
117
|
+
rules: DesignContractRule[];
|
|
118
|
+
sections: Partial<Record<DesignContractSectionId, DesignContractSection>>;
|
|
119
|
+
orderedSections: DesignContractSection[];
|
|
120
|
+
missingRequiredSections: DesignContractRequiredSectionId[];
|
|
121
|
+
diagnostics: DesignContractDiagnostic[];
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=design-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-contract.d.ts","sourceRoot":"","sources":["../../../src/interface/types/design-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// [META] since:2026-03-25 | owner:architecture-team | stable:false
|
|
2
|
+
// [WHY] Define the formal design-contract types shared by CLI validation and future design-to-agent workflows
|
|
3
|
+
// ============================================
|
|
4
|
+
// Design Contract 类型定义
|
|
5
|
+
// ============================================
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=design-contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-contract.js","sourceRoot":"","sources":["../../../src/interface/types/design-contract.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,8GAA8G;AAC9G,+CAA+C;AAC/C,uBAAuB;AACvB,+CAA+C"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { DesignContractDiagnosticCode, DesignContractSectionId } from './design-contract.js';
|
|
2
|
+
import type { DesignMappingDiagnosticCode } from './design-mapping.js';
|
|
3
|
+
export type DesignHandoffApprovalStatus = 'approved' | 'needs-review';
|
|
4
|
+
export type DesignHandoffDiagnosticSeverity = 'error' | 'warning' | 'info';
|
|
5
|
+
export type DesignHandoffDiagnosticCode = DesignContractDiagnosticCode | DesignMappingDiagnosticCode | 'blocked-mapping' | 'review-required';
|
|
6
|
+
export type DesignHandoffSourceRef = `design:${DesignContractSectionId}` | `candidate:${string}` | `diagnostic:${DesignHandoffDiagnosticCode}`;
|
|
7
|
+
export interface DesignHandoffTraceItem {
|
|
8
|
+
id: string;
|
|
9
|
+
text: string;
|
|
10
|
+
sourceRefs: DesignHandoffSourceRef[];
|
|
11
|
+
}
|
|
12
|
+
export interface DesignHandoffApproval extends DesignHandoffTraceItem {
|
|
13
|
+
status: DesignHandoffApprovalStatus;
|
|
14
|
+
}
|
|
15
|
+
export interface DesignHandoffAssumption extends DesignHandoffTraceItem {
|
|
16
|
+
}
|
|
17
|
+
export interface DesignHandoffOpenQuestion extends DesignHandoffTraceItem {
|
|
18
|
+
}
|
|
19
|
+
export interface DesignHandoffArtifacts {
|
|
20
|
+
stem: string;
|
|
21
|
+
outputDir: string;
|
|
22
|
+
markdownPath: string;
|
|
23
|
+
jsonPath: string;
|
|
24
|
+
}
|
|
25
|
+
export interface DesignHandoffSummary {
|
|
26
|
+
candidateCount: number;
|
|
27
|
+
touchedFileCount: number;
|
|
28
|
+
supportingFileCount: number;
|
|
29
|
+
testCount: number;
|
|
30
|
+
riskCount: number;
|
|
31
|
+
approvalCount: number;
|
|
32
|
+
assumptionCount: number;
|
|
33
|
+
openQuestionCount: number;
|
|
34
|
+
diagnosticCount: number;
|
|
35
|
+
requiresReview: boolean;
|
|
36
|
+
}
|
|
37
|
+
export interface DesignHandoffPayload {
|
|
38
|
+
goal: string[];
|
|
39
|
+
constraints: string[];
|
|
40
|
+
acceptanceCriteria: string[];
|
|
41
|
+
nonGoals: string[];
|
|
42
|
+
touchedFiles: string[];
|
|
43
|
+
supportingFiles: string[];
|
|
44
|
+
tests: string[];
|
|
45
|
+
risks: string[];
|
|
46
|
+
validationChecklist: string[];
|
|
47
|
+
approvals: DesignHandoffApproval[];
|
|
48
|
+
assumptions: DesignHandoffAssumption[];
|
|
49
|
+
openQuestions: DesignHandoffOpenQuestion[];
|
|
50
|
+
}
|
|
51
|
+
export interface DesignHandoffDiagnostic {
|
|
52
|
+
code: DesignHandoffDiagnosticCode;
|
|
53
|
+
severity: DesignHandoffDiagnosticSeverity;
|
|
54
|
+
blocker: boolean;
|
|
55
|
+
message: string;
|
|
56
|
+
sourceRefs: DesignHandoffSourceRef[];
|
|
57
|
+
}
|
|
58
|
+
export interface DesignHandoffResult {
|
|
59
|
+
ok: boolean;
|
|
60
|
+
filePath: string;
|
|
61
|
+
outputDir: string;
|
|
62
|
+
readyForExecution: boolean;
|
|
63
|
+
artifacts: DesignHandoffArtifacts;
|
|
64
|
+
summary: DesignHandoffSummary;
|
|
65
|
+
handoff: DesignHandoffPayload;
|
|
66
|
+
diagnostics: DesignHandoffDiagnostic[];
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=design-handoff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-handoff.d.ts","sourceRoot":"","sources":["../../../src/interface/types/design-handoff.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,4BAA4B,EAC5B,uBAAuB,EACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,MAAM,2BAA2B,GAAG,UAAU,GAAG,cAAc,CAAC;AAEtE,MAAM,MAAM,+BAA+B,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3E,MAAM,MAAM,2BAA2B,GACnC,4BAA4B,GAC5B,2BAA2B,GAC3B,iBAAiB,GACjB,iBAAiB,CAAC;AAEtB,MAAM,MAAM,sBAAsB,GAC9B,UAAU,uBAAuB,EAAE,GACnC,aAAa,MAAM,EAAE,GACrB,cAAc,2BAA2B,EAAE,CAAC;AAEhD,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,sBAAsB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,qBAAsB,SAAQ,sBAAsB;IACnE,MAAM,EAAE,2BAA2B,CAAC;CACrC;AAED,MAAM,WAAW,uBAAwB,SAAQ,sBAAsB;CAAG;AAE1E,MAAM,WAAW,yBAA0B,SAAQ,sBAAsB;CAAG;AAE5E,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,SAAS,EAAE,qBAAqB,EAAE,CAAC;IACnC,WAAW,EAAE,uBAAuB,EAAE,CAAC;IACvC,aAAa,EAAE,yBAAyB,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,2BAA2B,CAAC;IAClC,QAAQ,EAAE,+BAA+B,CAAC;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,sBAAsB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,sBAAsB,CAAC;IAClC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,WAAW,EAAE,uBAAuB,EAAE,CAAC;CACxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-handoff.js","sourceRoot":"","sources":["../../../src/interface/types/design-handoff.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,wHAAwH"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { DesignContractDiagnosticCode, DesignContractSectionId } from './design-contract.js';
|
|
2
|
+
export type DesignMappingCandidateKind = 'file' | 'module' | 'symbol';
|
|
3
|
+
export type DesignMappingEvidenceType = 'path-anchor' | 'module-anchor' | 'symbol-anchor' | 'keyword-match' | 'analyze-find' | 'filesystem-match' | 'dependency-link' | 'impact-read';
|
|
4
|
+
export type DesignMappingRiskLevel = 'high' | 'medium' | 'low';
|
|
5
|
+
export type DesignMappingDiagnosticSeverity = 'error' | 'warning' | 'info';
|
|
6
|
+
export type DesignMappingDiagnosticCode = DesignContractDiagnosticCode | 'invalid-design-contract' | 'no-candidates' | 'over-broad-scope' | 'high-risk-scope';
|
|
7
|
+
export interface DesignMappingConfidence {
|
|
8
|
+
score: number;
|
|
9
|
+
level: 'high' | 'medium' | 'low';
|
|
10
|
+
}
|
|
11
|
+
export interface DesignMappingReason {
|
|
12
|
+
section: DesignContractSectionId;
|
|
13
|
+
matchedText: string;
|
|
14
|
+
evidenceType: DesignMappingEvidenceType;
|
|
15
|
+
detail?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface DesignMappingCandidate {
|
|
18
|
+
kind: DesignMappingCandidateKind;
|
|
19
|
+
path: string;
|
|
20
|
+
symbolName?: string;
|
|
21
|
+
moduleName?: string;
|
|
22
|
+
reasons: DesignMappingReason[];
|
|
23
|
+
dependencies: string[];
|
|
24
|
+
testImpact: string[];
|
|
25
|
+
risk: DesignMappingRiskLevel;
|
|
26
|
+
confidence: DesignMappingConfidence;
|
|
27
|
+
unknowns: string[];
|
|
28
|
+
}
|
|
29
|
+
export interface DesignMappingDiagnostic {
|
|
30
|
+
code: DesignMappingDiagnosticCode;
|
|
31
|
+
severity: DesignMappingDiagnosticSeverity;
|
|
32
|
+
blocker: boolean;
|
|
33
|
+
message: string;
|
|
34
|
+
section?: DesignContractSectionId;
|
|
35
|
+
suggestion?: string;
|
|
36
|
+
candidatePaths?: string[];
|
|
37
|
+
}
|
|
38
|
+
export interface DesignMappingSummary {
|
|
39
|
+
candidateCount: number;
|
|
40
|
+
blocked: boolean;
|
|
41
|
+
unknownCount: number;
|
|
42
|
+
diagnosticCount: number;
|
|
43
|
+
}
|
|
44
|
+
export interface DesignMappingResult {
|
|
45
|
+
ok: boolean;
|
|
46
|
+
filePath: string;
|
|
47
|
+
summary: DesignMappingSummary;
|
|
48
|
+
candidates: DesignMappingCandidate[];
|
|
49
|
+
diagnostics: DesignMappingDiagnostic[];
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=design-mapping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-mapping.d.ts","sourceRoot":"","sources":["../../../src/interface/types/design-mapping.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,4BAA4B,EAC5B,uBAAuB,EACxB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtE,MAAM,MAAM,yBAAyB,GACjC,aAAa,GACb,eAAe,GACf,eAAe,GACf,eAAe,GACf,cAAc,GACd,kBAAkB,GAClB,iBAAiB,GACjB,aAAa,CAAC;AAElB,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE/D,MAAM,MAAM,+BAA+B,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3E,MAAM,MAAM,2BAA2B,GACnC,4BAA4B,GAC5B,yBAAyB,GACzB,eAAe,GACf,kBAAkB,GAClB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,uBAAuB,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,yBAAyB,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,0BAA0B,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,sBAAsB,CAAC;IAC7B,UAAU,EAAE,uBAAuB,CAAC;IACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,2BAA2B,CAAC;IAClC,QAAQ,EAAE,+BAA+B,CAAC;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,UAAU,EAAE,sBAAsB,EAAE,CAAC;IACrC,WAAW,EAAE,uBAAuB,EAAE,CAAC;CACxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-mapping.js","sourceRoot":"","sources":["../../../src/interface/types/design-mapping.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,yGAAyG"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { DesignContractDiagnosticCode, DesignContractSectionId } from './design-contract.js';
|
|
2
|
+
import type { DesignHandoffDiagnosticCode, DesignHandoffSourceRef } from './design-handoff.js';
|
|
3
|
+
import type { DesignMappingDiagnosticCode } from './design-mapping.js';
|
|
4
|
+
export type DesignVerificationStatus = 'satisfied' | 'needs-review' | 'violated' | 'blocked';
|
|
5
|
+
export type DesignDriftKind = 'scope-extra' | 'acceptance-unverified' | 'handoff-missing' | 'blocked-input';
|
|
6
|
+
export type DesignDriftSeverity = 'error' | 'warning' | 'info';
|
|
7
|
+
export type DesignVerificationDiagnosticSeverity = 'error' | 'warning' | 'info';
|
|
8
|
+
export type DesignVerificationDiagnosticCode = DesignContractDiagnosticCode | DesignMappingDiagnosticCode | DesignHandoffDiagnosticCode | 'handoff-missing' | 'handoff-invalid' | 'blocked-input';
|
|
9
|
+
export type DesignVerificationEvidenceRef = DesignHandoffSourceRef | `design:${DesignContractSectionId}` | `diagnostic:${DesignVerificationDiagnosticCode}` | `test:${string}` | `artifact:${string}` | `handoff:${string}`;
|
|
10
|
+
export interface DesignVerificationChecklistItem {
|
|
11
|
+
id: string;
|
|
12
|
+
text: string;
|
|
13
|
+
status: DesignVerificationStatus;
|
|
14
|
+
evidenceRefs: DesignVerificationEvidenceRef[];
|
|
15
|
+
}
|
|
16
|
+
export interface DesignDriftItem {
|
|
17
|
+
kind: DesignDriftKind;
|
|
18
|
+
severity: DesignDriftSeverity;
|
|
19
|
+
message: string;
|
|
20
|
+
sourceRefs: DesignVerificationEvidenceRef[];
|
|
21
|
+
}
|
|
22
|
+
export interface DesignVerificationSummary {
|
|
23
|
+
checklistCount: number;
|
|
24
|
+
satisfiedCount: number;
|
|
25
|
+
needsReviewCount: number;
|
|
26
|
+
violatedCount: number;
|
|
27
|
+
blockedCount: number;
|
|
28
|
+
driftCount: number;
|
|
29
|
+
diagnosticCount: number;
|
|
30
|
+
reviewRequired: boolean;
|
|
31
|
+
blocked: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface DesignVerificationDiagnostic {
|
|
34
|
+
code: DesignVerificationDiagnosticCode;
|
|
35
|
+
severity: DesignVerificationDiagnosticSeverity;
|
|
36
|
+
blocker: boolean;
|
|
37
|
+
message: string;
|
|
38
|
+
sourceRefs: DesignVerificationEvidenceRef[];
|
|
39
|
+
}
|
|
40
|
+
export interface DesignVerificationResult {
|
|
41
|
+
ok: boolean;
|
|
42
|
+
filePath: string;
|
|
43
|
+
readyForExecution: boolean;
|
|
44
|
+
summary: DesignVerificationSummary;
|
|
45
|
+
checklist: DesignVerificationChecklistItem[];
|
|
46
|
+
drift: DesignDriftItem[];
|
|
47
|
+
diagnostics: DesignVerificationDiagnostic[];
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=design-verification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-verification.d.ts","sourceRoot":"","sources":["../../../src/interface/types/design-verification.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,4BAA4B,EAC5B,uBAAuB,EACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,2BAA2B,EAC3B,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,MAAM,wBAAwB,GAChC,WAAW,GACX,cAAc,GACd,UAAU,GACV,SAAS,CAAC;AAEd,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,uBAAuB,GACvB,iBAAiB,GACjB,eAAe,CAAC;AAEpB,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE/D,MAAM,MAAM,oCAAoC,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEhF,MAAM,MAAM,gCAAgC,GACxC,4BAA4B,GAC5B,2BAA2B,GAC3B,2BAA2B,GAC3B,iBAAiB,GACjB,iBAAiB,GACjB,eAAe,CAAC;AAEpB,MAAM,MAAM,6BAA6B,GACrC,sBAAsB,GACtB,UAAU,uBAAuB,EAAE,GACnC,cAAc,gCAAgC,EAAE,GAChD,QAAQ,MAAM,EAAE,GAChB,YAAY,MAAM,EAAE,GACpB,WAAW,MAAM,EAAE,CAAC;AAExB,MAAM,WAAW,+BAA+B;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,wBAAwB,CAAC;IACjC,YAAY,EAAE,6BAA6B,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,6BAA6B,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,gCAAgC,CAAC;IACvC,QAAQ,EAAE,oCAAoC,CAAC;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,6BAA6B,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,yBAAyB,CAAC;IACnC,SAAS,EAAE,+BAA+B,EAAE,CAAC;IAC7C,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,WAAW,EAAE,4BAA4B,EAAE,CAAC;CAC7C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-verification.js","sourceRoot":"","sources":["../../../src/interface/types/design-verification.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,yGAAyG"}
|