@shiftleftpt/sbd-toe-mcp 0.6.2 → 0.7.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/assets/agent-guide.md +22 -19
- package/data/publish/algolia_entities_records_enriched.json +25370 -2
- package/data/publish/canonical_controls.json +1239 -0
- package/data/publish/canonical_requirements_s7.json +1859 -0
- package/data/publish/canonical_roles_s5.json +138 -0
- package/data/publish/lifecycle_user_stories.json +6558 -0
- package/data/publish/mitigated_threats.json +6945 -0
- package/data/publish/practice_assignments.json +16266 -0
- package/data/publish/sbdtoe-ontology.yaml +696 -0
- package/dist/backend/semantic-index-gateway.js +1 -1
- package/dist/index.js +276 -115
- package/dist/index.js.map +1 -1
- package/dist/resources/sbd-toe-resources.js +6 -1
- package/dist/resources/sbd-toe-resources.js.map +1 -1
- package/dist/tools/consult-security-requirements.d.ts +38 -0
- package/dist/tools/consult-security-requirements.js +115 -0
- package/dist/tools/consult-security-requirements.js.map +1 -0
- package/dist/tools/get-guide-by-role.d.ts +38 -0
- package/dist/tools/get-guide-by-role.js +109 -0
- package/dist/tools/get-guide-by-role.js.map +1 -0
- package/dist/tools/get-threat-landscape.d.ts +44 -0
- package/dist/tools/get-threat-landscape.js +116 -0
- package/dist/tools/get-threat-landscape.js.map +1 -0
- package/dist/tools/map-review-scope.js +5 -0
- package/dist/tools/map-review-scope.js.map +1 -1
- package/dist/tools/ontology-loader.d.ts +104 -0
- package/dist/tools/ontology-loader.js +206 -0
- package/dist/tools/ontology-loader.js.map +1 -0
- package/dist/tools/plan-repo-governance.d.ts +25 -38
- package/dist/tools/plan-repo-governance.js +71 -498
- package/dist/tools/plan-repo-governance.js.map +1 -1
- package/dist/tools/resolve-entities.d.ts +26 -0
- package/dist/tools/resolve-entities.js +143 -0
- package/dist/tools/resolve-entities.js.map +1 -0
- package/package.json +4 -1
- package/dist/tools/generate-document.d.ts +0 -22
- package/dist/tools/generate-document.js +0 -392
- package/dist/tools/generate-document.js.map +0 -1
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* get_threat_landscape
|
|
3
|
+
*
|
|
4
|
+
* Deterministic threat resolution for a given application context using the
|
|
5
|
+
* SbD-ToE ontology threats pipeline.
|
|
6
|
+
*
|
|
7
|
+
* Algorithm (from mcp_ontology_integration.md §4 — threats pipeline):
|
|
8
|
+
* 1. Run consult pipeline to get active requirements (risk_level + optional concerns)
|
|
9
|
+
* 2. Collect active source chapters from filtered requirements
|
|
10
|
+
* 3. For each threat: derive relevance by matching threat.chapter_id chapter number
|
|
11
|
+
* against active source chapters → confidence "derived"
|
|
12
|
+
*
|
|
13
|
+
* NOTE (§10, constraint 3): threat.associated_controls are file paths, not IDs.
|
|
14
|
+
* Relevance is derived via chapter_id and active domains — not control ID matching.
|
|
15
|
+
*
|
|
16
|
+
* All data is read from data/publish/ — nothing is invented.
|
|
17
|
+
*/
|
|
18
|
+
import { getOntologyData } from "./ontology-loader.js";
|
|
19
|
+
import { _resolveConsultResult } from "./consult-security-requirements.js";
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
// Helpers
|
|
22
|
+
// ---------------------------------------------------------------------------
|
|
23
|
+
/**
|
|
24
|
+
* Extract chapter number prefix from a chapter_id like "02-requisitos-seguranca" → "02" → 2.
|
|
25
|
+
* Returns NaN if the format is not recognized.
|
|
26
|
+
*/
|
|
27
|
+
function chapterNumber(chapterId) {
|
|
28
|
+
const match = /^(\d+)/.exec(chapterId);
|
|
29
|
+
return match?.[1] !== undefined ? parseInt(match[1], 10) : NaN;
|
|
30
|
+
}
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
// Internal (exported for testability)
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
export function _resolveThreatLandscape(args, ontologyData) {
|
|
35
|
+
const { threats: allThreats, controls: allControls } = ontologyData;
|
|
36
|
+
// Run consult pipeline to get filtered requirements
|
|
37
|
+
const consult = _resolveConsultResult(args, ontologyData);
|
|
38
|
+
// Collect active source chapter numbers from requirements
|
|
39
|
+
const activeChapterNumbers = new Set(consult.requirements.map((r) => r.source_chapter).filter((n) => !isNaN(n)));
|
|
40
|
+
// Collect active domains for heuristic fallback
|
|
41
|
+
const activeDomains = new Set(consult.active_domains);
|
|
42
|
+
// Build control lookup by chapter_id slug for mitigated_by resolution.
|
|
43
|
+
// Uses all controls (not just active ones) — chapter_ids is the authoritative
|
|
44
|
+
// structural mapping from the knowledge-graph pipeline.
|
|
45
|
+
const controlsByChapter = new Map();
|
|
46
|
+
for (const ctrl of allControls) {
|
|
47
|
+
for (const chId of ctrl.chapter_ids ?? []) {
|
|
48
|
+
const list = controlsByChapter.get(chId) ?? [];
|
|
49
|
+
list.push({ control_id: ctrl.control_id, name: ctrl.name, domain: ctrl.domain });
|
|
50
|
+
controlsByChapter.set(chId, list);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Filter threats and resolve mitigated_by
|
|
54
|
+
const threats = [];
|
|
55
|
+
for (const threat of allThreats) {
|
|
56
|
+
const chId = threat.chapter_id ?? "";
|
|
57
|
+
const chNum = chapterNumber(chId);
|
|
58
|
+
const mitigated_by = controlsByChapter.get(chId) ?? [];
|
|
59
|
+
const threatId = threat.mitigated_threat_id ?? threat.object_id ?? "";
|
|
60
|
+
const threatName = threat.threat_label_raw ?? "";
|
|
61
|
+
if (!isNaN(chNum) && activeChapterNumbers.has(chNum)) {
|
|
62
|
+
threats.push({
|
|
63
|
+
...threat,
|
|
64
|
+
id: threatId,
|
|
65
|
+
name: threatName,
|
|
66
|
+
mitigation_confidence: "derived",
|
|
67
|
+
mitigated_by
|
|
68
|
+
});
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
// Heuristic fallback: threat chapter_id contains a domain keyword
|
|
72
|
+
const lowerChId = chId.toLowerCase();
|
|
73
|
+
let heuristicMatch = false;
|
|
74
|
+
for (const domain of activeDomains) {
|
|
75
|
+
if (lowerChId.includes(domain.replace(/_/g, "-"))) {
|
|
76
|
+
heuristicMatch = true;
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (heuristicMatch) {
|
|
81
|
+
threats.push({
|
|
82
|
+
...threat,
|
|
83
|
+
id: threatId,
|
|
84
|
+
name: threatName,
|
|
85
|
+
mitigation_confidence: "heuristic",
|
|
86
|
+
mitigated_by
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Sort: derived first, then heuristic; within group by chapter_id
|
|
91
|
+
threats.sort((a, b) => {
|
|
92
|
+
if (a.mitigation_confidence !== b.mitigation_confidence) {
|
|
93
|
+
return a.mitigation_confidence === "derived" ? -1 : 1;
|
|
94
|
+
}
|
|
95
|
+
return (a.chapter_id ?? "").localeCompare(b.chapter_id ?? "");
|
|
96
|
+
});
|
|
97
|
+
return {
|
|
98
|
+
risk_level: consult.risk_level,
|
|
99
|
+
threats,
|
|
100
|
+
meta: {
|
|
101
|
+
threatCount: threats.length,
|
|
102
|
+
activeChapters: [...activeChapterNumbers].sort((a, b) => a - b).map(String),
|
|
103
|
+
concernsApplied: consult.meta.concernsApplied,
|
|
104
|
+
note: "Threats resolved deterministically from the SbD-ToE ontology via chapter matching. " +
|
|
105
|
+
"associated_controls are file paths — relevance derived via chapter_id (§10 constraint 3). " +
|
|
106
|
+
"confidence: 'derived' = chapter number match; 'heuristic' = domain keyword match."
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
// ---------------------------------------------------------------------------
|
|
111
|
+
// Public handler
|
|
112
|
+
// ---------------------------------------------------------------------------
|
|
113
|
+
export function handleGetThreatLandscape(args) {
|
|
114
|
+
return _resolveThreatLandscape(args, getOntologyData());
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=get-threat-landscape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-threat-landscape.js","sourceRoot":"","sources":["../../src/tools/get-threat-landscape.ts"],"names":[],"mappings":"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"}
|
|
@@ -117,6 +117,11 @@ const PATTERN_RULES = [
|
|
|
117
117
|
bundles: ["07-cicd-seguro", "10-testes-seguranca", "11-deploy-seguro"],
|
|
118
118
|
matches: (p) => p.startsWith(".github/workflows/")
|
|
119
119
|
},
|
|
120
|
+
{
|
|
121
|
+
pattern: ".github/**/*.yml / .github/**/*.yaml",
|
|
122
|
+
bundles: ["07-cicd-seguro", "10-testes-seguranca"],
|
|
123
|
+
matches: (p) => p.startsWith(".github/") && (p.endsWith(".yml") || p.endsWith(".yaml"))
|
|
124
|
+
},
|
|
120
125
|
{
|
|
121
126
|
pattern: "package.json / *-lock.json / yarn.lock",
|
|
122
127
|
bundles: ["05-dependencias-sbom-sca"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-review-scope.js","sourceRoot":"","sources":["../../src/tools/map-review-scope.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"map-review-scope.js","sourceRoot":"","sources":["../../src/tools/map-review-scope.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ontology-loader
|
|
3
|
+
*
|
|
4
|
+
* Loads and caches the SbD-ToE ontology and entity data from data/publish/.
|
|
5
|
+
* Single source of truth for ontology-driven tools.
|
|
6
|
+
*
|
|
7
|
+
* As of kg v1.4.0, all entity types (including requirement and control) are
|
|
8
|
+
* present in algolia_entities_records_enriched.json with normalised record_type.
|
|
9
|
+
* The individual entity files (canonical_requirements_s7.json, etc.) are no
|
|
10
|
+
* longer required.
|
|
11
|
+
*
|
|
12
|
+
* Files consumed:
|
|
13
|
+
* data/publish/sbdtoe-ontology.yaml — domain_mapping, rules, pipelines
|
|
14
|
+
* data/publish/algolia_entities_records_enriched.json — all entity types by record_type
|
|
15
|
+
*
|
|
16
|
+
* All data is read from the published artefacts — nothing is invented.
|
|
17
|
+
*/
|
|
18
|
+
export interface Requirement {
|
|
19
|
+
requirement_id: string;
|
|
20
|
+
type: string;
|
|
21
|
+
category: string;
|
|
22
|
+
name: string;
|
|
23
|
+
applicable_levels: {
|
|
24
|
+
L1: boolean;
|
|
25
|
+
L2: boolean;
|
|
26
|
+
L3: boolean;
|
|
27
|
+
};
|
|
28
|
+
source_chapter: number;
|
|
29
|
+
source_file?: string;
|
|
30
|
+
domain?: string | null;
|
|
31
|
+
}
|
|
32
|
+
export interface Control {
|
|
33
|
+
control_id: string;
|
|
34
|
+
name: string;
|
|
35
|
+
name_en?: string;
|
|
36
|
+
domain: string;
|
|
37
|
+
control_type: string;
|
|
38
|
+
abstraction_level: string;
|
|
39
|
+
applicable_lifecycle_phases: string[];
|
|
40
|
+
source_practice_ids: string[];
|
|
41
|
+
/** Chapter slugs this control covers (e.g. ["06-desenvolvimento-seguro"]) */
|
|
42
|
+
chapter_ids?: string[];
|
|
43
|
+
description?: string;
|
|
44
|
+
aliases?: string[];
|
|
45
|
+
}
|
|
46
|
+
export interface CanonicalRole {
|
|
47
|
+
role_id: string;
|
|
48
|
+
aliases: string[];
|
|
49
|
+
canonical: boolean;
|
|
50
|
+
source: string;
|
|
51
|
+
}
|
|
52
|
+
export interface Threat {
|
|
53
|
+
mitigated_threat_id?: string;
|
|
54
|
+
object_id?: string;
|
|
55
|
+
threat_label_raw?: string;
|
|
56
|
+
essence?: string;
|
|
57
|
+
chapter_id?: string;
|
|
58
|
+
category?: string | null;
|
|
59
|
+
cwe?: string | null;
|
|
60
|
+
cvss_score?: number | null;
|
|
61
|
+
associated_controls: string[];
|
|
62
|
+
mitigation_summary?: string;
|
|
63
|
+
confidence?: number;
|
|
64
|
+
}
|
|
65
|
+
export interface PracticeAssignment {
|
|
66
|
+
id: string;
|
|
67
|
+
chapter_id: string;
|
|
68
|
+
practice_id: string;
|
|
69
|
+
role: string;
|
|
70
|
+
phase: string;
|
|
71
|
+
risk_level: string;
|
|
72
|
+
action: string;
|
|
73
|
+
artifacts: string[];
|
|
74
|
+
user_story_id?: string;
|
|
75
|
+
}
|
|
76
|
+
export interface UserStory {
|
|
77
|
+
id?: string;
|
|
78
|
+
us_id?: string;
|
|
79
|
+
title: string;
|
|
80
|
+
chapter_id?: string;
|
|
81
|
+
practice_id?: string;
|
|
82
|
+
/** Canonical role IDs (from kg enrichment) */
|
|
83
|
+
roles_normalized?: string[];
|
|
84
|
+
/** Legacy alias kept for compatibility */
|
|
85
|
+
related_roles?: string[];
|
|
86
|
+
risk_levels?: string[];
|
|
87
|
+
acceptance_criteria?: string;
|
|
88
|
+
bdd?: string[];
|
|
89
|
+
goal?: string;
|
|
90
|
+
summary?: string;
|
|
91
|
+
}
|
|
92
|
+
export interface OntologyData {
|
|
93
|
+
domainMapping: Record<string, string[]>;
|
|
94
|
+
concernsMap: Record<string, string[]>;
|
|
95
|
+
requirements: Requirement[];
|
|
96
|
+
controls: Control[];
|
|
97
|
+
roles: CanonicalRole[];
|
|
98
|
+
threats: Threat[];
|
|
99
|
+
assignments: PracticeAssignment[];
|
|
100
|
+
userStories: UserStory[];
|
|
101
|
+
}
|
|
102
|
+
export declare function getOntologyData(): OntologyData;
|
|
103
|
+
/** Resolve a role input string to a canonical role_id, using aliases. */
|
|
104
|
+
export declare function resolveRoleId(input: string, roles: CanonicalRole[]): string | undefined;
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ontology-loader
|
|
3
|
+
*
|
|
4
|
+
* Loads and caches the SbD-ToE ontology and entity data from data/publish/.
|
|
5
|
+
* Single source of truth for ontology-driven tools.
|
|
6
|
+
*
|
|
7
|
+
* As of kg v1.4.0, all entity types (including requirement and control) are
|
|
8
|
+
* present in algolia_entities_records_enriched.json with normalised record_type.
|
|
9
|
+
* The individual entity files (canonical_requirements_s7.json, etc.) are no
|
|
10
|
+
* longer required.
|
|
11
|
+
*
|
|
12
|
+
* Files consumed:
|
|
13
|
+
* data/publish/sbdtoe-ontology.yaml — domain_mapping, rules, pipelines
|
|
14
|
+
* data/publish/algolia_entities_records_enriched.json — all entity types by record_type
|
|
15
|
+
*
|
|
16
|
+
* All data is read from the published artefacts — nothing is invented.
|
|
17
|
+
*/
|
|
18
|
+
import { readFileSync } from "node:fs";
|
|
19
|
+
import { parse as parseYaml } from "yaml";
|
|
20
|
+
import { resolveAppPath } from "../config.js";
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
// Cache
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
let _cache;
|
|
25
|
+
function loadOntologyYaml() {
|
|
26
|
+
const path = resolveAppPath("data/publish/sbdtoe-ontology.yaml");
|
|
27
|
+
return parseYaml(readFileSync(path, "utf-8"));
|
|
28
|
+
}
|
|
29
|
+
function loadEnrichedEntities() {
|
|
30
|
+
const path = resolveAppPath("data/publish/algolia_entities_records_enriched.json");
|
|
31
|
+
const raw = JSON.parse(readFileSync(path, "utf-8"));
|
|
32
|
+
return Array.isArray(raw.items) ? raw.items : [];
|
|
33
|
+
}
|
|
34
|
+
function isRecord(v) {
|
|
35
|
+
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
36
|
+
}
|
|
37
|
+
function strOf(rec, key) {
|
|
38
|
+
const v = rec[key];
|
|
39
|
+
return typeof v === "string" ? v : "";
|
|
40
|
+
}
|
|
41
|
+
function numOf(rec, key) {
|
|
42
|
+
const v = rec[key];
|
|
43
|
+
return typeof v === "number" ? v : NaN;
|
|
44
|
+
}
|
|
45
|
+
function arrStr(rec, key) {
|
|
46
|
+
const v = rec[key];
|
|
47
|
+
if (!Array.isArray(v))
|
|
48
|
+
return [];
|
|
49
|
+
return v.filter((x) => typeof x === "string");
|
|
50
|
+
}
|
|
51
|
+
export function getOntologyData() {
|
|
52
|
+
if (_cache)
|
|
53
|
+
return _cache;
|
|
54
|
+
// Ontology YAML — domain_mapping is the primary join key
|
|
55
|
+
const ontology = loadOntologyYaml();
|
|
56
|
+
const domainMapping = {};
|
|
57
|
+
for (const [cat, domains] of Object.entries(ontology.domain_mapping ?? {})) {
|
|
58
|
+
if (Array.isArray(domains))
|
|
59
|
+
domainMapping[cat] = domains.map(String);
|
|
60
|
+
}
|
|
61
|
+
// Concerns → categories (static, matches ontology spec §3.3)
|
|
62
|
+
const concernsMap = {
|
|
63
|
+
auth: ["AUT", "ACC", "SES"],
|
|
64
|
+
logging: ["LOG"],
|
|
65
|
+
validation: ["VAL", "ERR"],
|
|
66
|
+
api: ["API"],
|
|
67
|
+
config: ["CFG"],
|
|
68
|
+
integrity: ["INT"],
|
|
69
|
+
distribution: ["DST"],
|
|
70
|
+
ide: ["IDE"],
|
|
71
|
+
requirements: ["REQ"],
|
|
72
|
+
architecture: ["ARC"],
|
|
73
|
+
iac: ["IAC"],
|
|
74
|
+
encryption: ["ENC"],
|
|
75
|
+
};
|
|
76
|
+
// Load all entities from the enriched index (kg v1.4.0+)
|
|
77
|
+
const allItems = loadEnrichedEntities();
|
|
78
|
+
const requirements = [];
|
|
79
|
+
const controls = [];
|
|
80
|
+
const roles = [];
|
|
81
|
+
const threats = [];
|
|
82
|
+
const assignments = [];
|
|
83
|
+
const userStories = [];
|
|
84
|
+
for (const item of allItems) {
|
|
85
|
+
if (!isRecord(item))
|
|
86
|
+
continue;
|
|
87
|
+
const rt = strOf(item, "record_type");
|
|
88
|
+
if (rt === "requirement") {
|
|
89
|
+
const levels = item["applicable_levels"];
|
|
90
|
+
const rSrcFile = strOf(item, "source_file");
|
|
91
|
+
requirements.push({
|
|
92
|
+
requirement_id: strOf(item, "requirement_id"),
|
|
93
|
+
type: strOf(item, "type"),
|
|
94
|
+
category: strOf(item, "category"),
|
|
95
|
+
name: strOf(item, "name"),
|
|
96
|
+
applicable_levels: isRecord(levels)
|
|
97
|
+
? { L1: levels["L1"] === true, L2: levels["L2"] === true, L3: levels["L3"] === true }
|
|
98
|
+
: { L1: false, L2: false, L3: false },
|
|
99
|
+
source_chapter: numOf(item, "source_chapter"),
|
|
100
|
+
...(rSrcFile ? { source_file: rSrcFile } : {}),
|
|
101
|
+
domain: typeof item["domain"] === "string" ? item["domain"] : null,
|
|
102
|
+
});
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
if (rt === "control") {
|
|
106
|
+
const cNameEn = strOf(item, "name_en");
|
|
107
|
+
const cDesc = strOf(item, "description");
|
|
108
|
+
controls.push({
|
|
109
|
+
control_id: strOf(item, "control_id"),
|
|
110
|
+
name: strOf(item, "name"),
|
|
111
|
+
...(cNameEn ? { name_en: cNameEn } : {}),
|
|
112
|
+
domain: strOf(item, "domain"),
|
|
113
|
+
control_type: strOf(item, "control_type"),
|
|
114
|
+
abstraction_level: strOf(item, "abstraction_level"),
|
|
115
|
+
applicable_lifecycle_phases: arrStr(item, "applicable_lifecycle_phases"),
|
|
116
|
+
source_practice_ids: arrStr(item, "source_practice_ids"),
|
|
117
|
+
chapter_ids: arrStr(item, "chapter_ids"),
|
|
118
|
+
...(cDesc ? { description: cDesc } : {}),
|
|
119
|
+
aliases: arrStr(item, "aliases"),
|
|
120
|
+
});
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
if (rt === "role") {
|
|
124
|
+
// entity_id is the canonical role identifier in the enriched index
|
|
125
|
+
const entityId = strOf(item, "entity_id");
|
|
126
|
+
if (!entityId)
|
|
127
|
+
continue;
|
|
128
|
+
roles.push({
|
|
129
|
+
role_id: entityId,
|
|
130
|
+
aliases: arrStr(item, "aliases"),
|
|
131
|
+
canonical: true,
|
|
132
|
+
source: strOf(item, "source_document_id"),
|
|
133
|
+
});
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
if (rt === "threat") {
|
|
137
|
+
const tMtId = strOf(item, "mitigated_threat_id");
|
|
138
|
+
const tObjId = strOf(item, "object_id");
|
|
139
|
+
const tLabel = strOf(item, "threat_label_raw");
|
|
140
|
+
const tEss = strOf(item, "essence");
|
|
141
|
+
const tChId = strOf(item, "chapter_id");
|
|
142
|
+
const tMitSum = strOf(item, "mitigation_summary");
|
|
143
|
+
threats.push({
|
|
144
|
+
...(tMtId ? { mitigated_threat_id: tMtId } : {}),
|
|
145
|
+
...(tObjId ? { object_id: tObjId } : {}),
|
|
146
|
+
...(tLabel ? { threat_label_raw: tLabel } : {}),
|
|
147
|
+
...(tEss ? { essence: tEss } : {}),
|
|
148
|
+
...(tChId ? { chapter_id: tChId } : {}),
|
|
149
|
+
category: typeof item["category"] === "string" ? item["category"] : null,
|
|
150
|
+
cwe: typeof item["cwe"] === "string" ? item["cwe"] : null,
|
|
151
|
+
cvss_score: typeof item["cvss_score"] === "number" ? item["cvss_score"] : null,
|
|
152
|
+
associated_controls: arrStr(item, "associated_controls"),
|
|
153
|
+
...(tMitSum ? { mitigation_summary: tMitSum } : {}),
|
|
154
|
+
...(typeof item["confidence"] === "number" ? { confidence: item["confidence"] } : {}),
|
|
155
|
+
});
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
if (rt === "assignment") {
|
|
159
|
+
assignments.push({
|
|
160
|
+
id: strOf(item, "id"),
|
|
161
|
+
chapter_id: strOf(item, "chapter_id"),
|
|
162
|
+
practice_id: strOf(item, "practice_id"),
|
|
163
|
+
role: strOf(item, "role"),
|
|
164
|
+
phase: strOf(item, "phase"),
|
|
165
|
+
risk_level: strOf(item, "risk_level"),
|
|
166
|
+
action: strOf(item, "action"),
|
|
167
|
+
artifacts: arrStr(item, "artifacts"),
|
|
168
|
+
...(strOf(item, "user_story_id") ? { user_story_id: strOf(item, "user_story_id") } : {}),
|
|
169
|
+
});
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
if (rt === "user_story") {
|
|
173
|
+
const usId = strOf(item, "id");
|
|
174
|
+
const usUsId = strOf(item, "us_id");
|
|
175
|
+
const usChId = strOf(item, "chapter_id");
|
|
176
|
+
const usPrId = strOf(item, "practice_id");
|
|
177
|
+
const usAc = strOf(item, "acceptance_criteria");
|
|
178
|
+
const usGoal = strOf(item, "goal");
|
|
179
|
+
const usSumm = strOf(item, "summary");
|
|
180
|
+
userStories.push({
|
|
181
|
+
...(usId ? { id: usId } : {}),
|
|
182
|
+
...(usUsId ? { us_id: usUsId } : {}),
|
|
183
|
+
title: strOf(item, "title"),
|
|
184
|
+
...(usChId ? { chapter_id: usChId } : {}),
|
|
185
|
+
...(usPrId ? { practice_id: usPrId } : {}),
|
|
186
|
+
roles_normalized: arrStr(item, "roles_normalized"),
|
|
187
|
+
risk_levels: arrStr(item, "risk_levels"),
|
|
188
|
+
...(usAc ? { acceptance_criteria: usAc } : {}),
|
|
189
|
+
bdd: arrStr(item, "bdd"),
|
|
190
|
+
...(usGoal ? { goal: usGoal } : {}),
|
|
191
|
+
...(usSumm ? { summary: usSumm } : {}),
|
|
192
|
+
});
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
_cache = { domainMapping, concernsMap, requirements, controls, roles, threats, assignments, userStories };
|
|
197
|
+
return _cache;
|
|
198
|
+
}
|
|
199
|
+
/** Resolve a role input string to a canonical role_id, using aliases. */
|
|
200
|
+
export function resolveRoleId(input, roles) {
|
|
201
|
+
const normalized = input.toLowerCase().replace(/[\s/]+/g, "-");
|
|
202
|
+
return roles.find((r) => r.role_id === normalized ||
|
|
203
|
+
r.role_id.replace(/_/g, "-") === normalized ||
|
|
204
|
+
r.aliases.some((a) => a.toLowerCase().replace(/[\s/]+/g, "-") === normalized))?.role_id;
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=ontology-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ontology-loader.js","sourceRoot":"","sources":["../../src/tools/ontology-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,41 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
/**
|
|
2
|
+
* plan_sbd_toe_repo_governance
|
|
3
|
+
*
|
|
4
|
+
* Returns the list of artefacts/documents identified in the SbD-ToE manual,
|
|
5
|
+
* grouped by chapter, with their risk level applicability.
|
|
6
|
+
* Optionally filtered by riskLevel (L1/L2/L3).
|
|
7
|
+
*
|
|
8
|
+
* All data comes from the entities index — nothing is invented.
|
|
9
|
+
* Document templates are not provided by the manual; the LLM may generate
|
|
10
|
+
* them if asked, using the artefact list as a guide.
|
|
11
|
+
*/
|
|
12
|
+
import type { SnapshotCache } from "../backend/semantic-index-gateway.js";
|
|
13
|
+
export interface ManualArtefact {
|
|
14
|
+
artefactId: string;
|
|
15
|
+
chapterId: string;
|
|
16
|
+
riskLevels: string[];
|
|
13
17
|
}
|
|
14
|
-
interface
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
tooling?: string[];
|
|
18
|
+
export interface ArtefactsByChapter {
|
|
19
|
+
chapterId: string;
|
|
20
|
+
artefacts: ManualArtefact[];
|
|
18
21
|
}
|
|
19
|
-
interface
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
export interface PlanRepoGovernanceResult {
|
|
23
|
+
riskLevel: string | null;
|
|
24
|
+
totalArtefacts: number;
|
|
25
|
+
byChapter: ArtefactsByChapter[];
|
|
26
|
+
note: string;
|
|
23
27
|
}
|
|
24
|
-
|
|
25
|
-
area: string;
|
|
26
|
-
risk: string;
|
|
27
|
-
mitigation: string;
|
|
28
|
-
}
|
|
29
|
-
export declare function handlePlanRepoGovernance(args: Record<string, unknown>): {
|
|
30
|
-
applicableControls: Control[];
|
|
31
|
-
mandatoryControls: string[];
|
|
32
|
-
recommendedControls: string[];
|
|
33
|
-
baselineCheckpoints: BaselineCheckpoint[];
|
|
34
|
-
evidenceChecklist: EvidenceItem[];
|
|
35
|
-
gaps: Gap[];
|
|
36
|
-
platformSpecific: {
|
|
37
|
-
recommendations: string;
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
export type { Control, BaselineCheckpoint, EvidenceItem, Gap };
|
|
41
|
-
export type { Scale, EnforcementLevel };
|
|
28
|
+
export declare function handlePlanRepoGovernance(args: Record<string, unknown>, cache: SnapshotCache): PlanRepoGovernanceResult;
|