@shiftleftpt/sbd-toe-mcp 0.1.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/.env.example +35 -0
- package/LICENSE +201 -0
- package/README.md +323 -0
- package/data/publish/algolia_docs_records.json +148847 -0
- package/data/publish/algolia_docs_records_enriched.json +194004 -0
- package/data/publish/algolia_entities_records.json +74715 -0
- package/data/publish/algolia_entities_records_enriched.json +177587 -0
- package/data/publish/algolia_index_settings.json +102 -0
- package/data/publish/sbd-toe-index-compact.json +111 -0
- package/data/reports/run_manifest.json +10 -0
- package/dist/backend/semantic-index-gateway.d.ts +25 -0
- package/dist/backend/semantic-index-gateway.js +555 -0
- package/dist/backend/semantic-index-gateway.js.map +1 -0
- package/dist/backend/semantic-index-gateway.test.d.ts +1 -0
- package/dist/backend/semantic-index-gateway.test.js +384 -0
- package/dist/backend/semantic-index-gateway.test.js.map +1 -0
- package/dist/bootstrap/checkout-backend.d.ts +31 -0
- package/dist/bootstrap/checkout-backend.js +136 -0
- package/dist/bootstrap/checkout-backend.js.map +1 -0
- package/dist/bootstrap/checkout-backend.test.d.ts +1 -0
- package/dist/bootstrap/checkout-backend.test.js +158 -0
- package/dist/bootstrap/checkout-backend.test.js.map +1 -0
- package/dist/bootstrap/release-checkout.d.ts +8 -0
- package/dist/bootstrap/release-checkout.js +168 -0
- package/dist/bootstrap/release-checkout.js.map +1 -0
- package/dist/bootstrap/release-checkout.test.d.ts +1 -0
- package/dist/bootstrap/release-checkout.test.js +137 -0
- package/dist/bootstrap/release-checkout.test.js.map +1 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.js +81 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1063 -0
- package/dist/index.js.map +1 -0
- package/dist/orchestrator/ask-manual.d.ts +13 -0
- package/dist/orchestrator/ask-manual.js +202 -0
- package/dist/orchestrator/ask-manual.js.map +1 -0
- package/dist/prompt/build-answer-prompt.d.ts +2 -0
- package/dist/prompt/build-answer-prompt.js +51 -0
- package/dist/prompt/build-answer-prompt.js.map +1 -0
- package/dist/prompt/system-prompt.d.ts +1 -0
- package/dist/prompt/system-prompt.js +94 -0
- package/dist/prompt/system-prompt.js.map +1 -0
- package/dist/resources/sbd-toe-resources.d.ts +18 -0
- package/dist/resources/sbd-toe-resources.js +164 -0
- package/dist/resources/sbd-toe-resources.js.map +1 -0
- package/dist/resources/sbd-toe-resources.test.d.ts +1 -0
- package/dist/resources/sbd-toe-resources.test.js +134 -0
- package/dist/resources/sbd-toe-resources.test.js.map +1 -0
- package/dist/test-utils.d.ts +153 -0
- package/dist/test-utils.js +176 -0
- package/dist/test-utils.js.map +1 -0
- package/dist/tools/generate-document.d.ts +22 -0
- package/dist/tools/generate-document.js +392 -0
- package/dist/tools/generate-document.js.map +1 -0
- package/dist/tools/generate-document.test.d.ts +1 -0
- package/dist/tools/generate-document.test.js +189 -0
- package/dist/tools/generate-document.test.js.map +1 -0
- package/dist/tools/map-review-scope.d.ts +20 -0
- package/dist/tools/map-review-scope.js +299 -0
- package/dist/tools/map-review-scope.js.map +1 -0
- package/dist/tools/map-review-scope.test.d.ts +1 -0
- package/dist/tools/map-review-scope.test.js +204 -0
- package/dist/tools/map-review-scope.test.js.map +1 -0
- package/dist/tools/plan-repo-governance.d.ts +41 -0
- package/dist/tools/plan-repo-governance.js +509 -0
- package/dist/tools/plan-repo-governance.js.map +1 -0
- package/dist/tools/plan-repo-governance.test.d.ts +1 -0
- package/dist/tools/plan-repo-governance.test.js +237 -0
- package/dist/tools/plan-repo-governance.test.js.map +1 -0
- package/dist/tools/structured-tools.d.ts +5 -0
- package/dist/tools/structured-tools.js +310 -0
- package/dist/tools/structured-tools.js.map +1 -0
- package/dist/tools/structured-tools.test.d.ts +1 -0
- package/dist/tools/structured-tools.test.js +459 -0
- package/dist/tools/structured-tools.test.js.map +1 -0
- package/dist/types.d.ts +160 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/upstream/backend-contract.d.ts +3 -0
- package/dist/upstream/backend-contract.js +37 -0
- package/dist/upstream/backend-contract.js.map +1 -0
- package/dist/validators/ai-disclosure.d.ts +39 -0
- package/dist/validators/ai-disclosure.js +183 -0
- package/dist/validators/ai-disclosure.js.map +1 -0
- package/dist/validators/ai-disclosure.test.d.ts +1 -0
- package/dist/validators/ai-disclosure.test.js +244 -0
- package/dist/validators/ai-disclosure.test.js.map +1 -0
- package/examples/claude-desktop.json +8 -0
- package/examples/vscode.mcp.json +9 -0
- package/package.json +50 -0
- package/prompts/sbd-toe-chat-system.md +71 -0
- package/smithery.yaml +44 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ManualToolResult, PromptBundle, RetrievalBundle } from "../types.js";
|
|
2
|
+
export declare function prepareManualAnsweringContext(question: string, topK?: number): Promise<{
|
|
3
|
+
retrieval: RetrievalBundle;
|
|
4
|
+
prompt: PromptBundle;
|
|
5
|
+
retrievalText: string;
|
|
6
|
+
debugText: string;
|
|
7
|
+
}>;
|
|
8
|
+
export declare function searchManualQuestion(question: string, debugOverride?: boolean, topK?: number): Promise<ManualToolResult>;
|
|
9
|
+
export declare function inspectManualRetrieval(question: string, topK?: number): Promise<ManualToolResult>;
|
|
10
|
+
export declare function formatSampledAnswerResult(question: string, prepared: {
|
|
11
|
+
retrieval: RetrievalBundle;
|
|
12
|
+
prompt: PromptBundle;
|
|
13
|
+
}, answer: string, samplingModel?: string, debugOverride?: boolean): ManualToolResult;
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { getConfig } from "../config.js";
|
|
2
|
+
import { retrievePublishedContext } from "../backend/semantic-index-gateway.js";
|
|
3
|
+
import { buildAnswerPrompt } from "../prompt/build-answer-prompt.js";
|
|
4
|
+
function formatRecordDebug(retrieval) {
|
|
5
|
+
if (retrieval.retrieved.length === 0) {
|
|
6
|
+
return "Nenhum record recuperado.";
|
|
7
|
+
}
|
|
8
|
+
return retrieval.retrieved
|
|
9
|
+
.map((record, index) => {
|
|
10
|
+
const header = `${index + 1}. [${record.citationId}] source=${record.source} index=${record.indexName} objectID=${record.objectID} algoliaRank=${record.algoliaRank} localScore=${record.localScore}`;
|
|
11
|
+
const details = [
|
|
12
|
+
`Título: ${record.title}`,
|
|
13
|
+
`Capítulo: ${record.chapter ?? "n/d"}`,
|
|
14
|
+
`Secção: ${record.section ?? "n/d"}`,
|
|
15
|
+
`Papel: ${record.role ?? "n/d"}`,
|
|
16
|
+
`Fase: ${record.phase ?? "n/d"}`,
|
|
17
|
+
`Ação: ${record.action ?? "n/d"}`,
|
|
18
|
+
`Artefacto: ${record.artefact ?? "n/d"}`,
|
|
19
|
+
`Documento: ${record.documentTitle ?? "n/d"}`,
|
|
20
|
+
`Document path: ${record.documentPath ?? "n/d"}`,
|
|
21
|
+
`Chapter path: ${record.chapterPath ?? "n/d"}`,
|
|
22
|
+
`Localização: ${[record.pageLabel, record.url].filter(Boolean).join(" | ") || "n/d"}`,
|
|
23
|
+
`Excerto: ${record.excerpt}`
|
|
24
|
+
].join("\n");
|
|
25
|
+
return `${header}\n${details}`;
|
|
26
|
+
})
|
|
27
|
+
.join("\n\n");
|
|
28
|
+
}
|
|
29
|
+
function formatContextForChat(retrieval) {
|
|
30
|
+
if (retrieval.selected.length === 0) {
|
|
31
|
+
return [
|
|
32
|
+
"Nenhum contexto relevante foi recuperado.",
|
|
33
|
+
"",
|
|
34
|
+
"O chat deve responder que a informação não está disponível no snapshot atual."
|
|
35
|
+
].join("\n");
|
|
36
|
+
}
|
|
37
|
+
return [
|
|
38
|
+
"Contexto recuperado para resposta grounded:",
|
|
39
|
+
"",
|
|
40
|
+
retrieval.selected
|
|
41
|
+
.map((record) => [
|
|
42
|
+
`[${record.citationId}] ${record.title}`,
|
|
43
|
+
`Fonte: ${record.indexName}`,
|
|
44
|
+
`Capítulo: ${record.chapter ?? "n/d"}`,
|
|
45
|
+
`Secção: ${record.section ?? "n/d"}`,
|
|
46
|
+
`URL: ${record.url ?? "n/d"}`,
|
|
47
|
+
`Excerto: ${record.excerpt}`
|
|
48
|
+
].join("\n"))
|
|
49
|
+
.join("\n\n")
|
|
50
|
+
].join("\n");
|
|
51
|
+
}
|
|
52
|
+
function formatDebugAppendix(query, retrieval, prompt, answer, samplingModel) {
|
|
53
|
+
const chapters = retrieval.promptChapters.length > 0 ? retrieval.promptChapters.join(", ") : "n/d";
|
|
54
|
+
return [
|
|
55
|
+
"## Debug",
|
|
56
|
+
`- Query: ${query}`,
|
|
57
|
+
`- Índices consultados: ${retrieval.consultedIndices.join(", ") || "n/d"}`,
|
|
58
|
+
`- Snapshot upstream: run_id=${retrieval.backendSnapshot.runId ?? "n/d"} commit_sha=${retrieval.backendSnapshot.commitSha ?? "n/d"}`,
|
|
59
|
+
`- Clone upstream: ${retrieval.backendSnapshot.upstreamRepoPath ?? "n/d"}`,
|
|
60
|
+
`- Docs snapshot: ${retrieval.backendSnapshot.docsSnapshotFile}`,
|
|
61
|
+
`- Entities snapshot: ${retrieval.backendSnapshot.entitiesSnapshotFile}`,
|
|
62
|
+
`- Sampling model: ${samplingModel ?? "n/d"}`,
|
|
63
|
+
`- Capítulos envolvidos: ${chapters}`,
|
|
64
|
+
`- Contexto selecionado: ${retrieval.selected.map((record) => `[${record.citationId}]`).join(", ") || "nenhum"}`,
|
|
65
|
+
"",
|
|
66
|
+
"### Records recuperados",
|
|
67
|
+
formatRecordDebug(retrieval),
|
|
68
|
+
"",
|
|
69
|
+
"### Prompt final",
|
|
70
|
+
"```text",
|
|
71
|
+
prompt,
|
|
72
|
+
"```",
|
|
73
|
+
...(answer
|
|
74
|
+
? ["", "### Resposta final", "```markdown", answer, "```"]
|
|
75
|
+
: [])
|
|
76
|
+
].join("\n");
|
|
77
|
+
}
|
|
78
|
+
export async function prepareManualAnsweringContext(question, topK) {
|
|
79
|
+
const retrieval = await retrievePublishedContext(question, topK);
|
|
80
|
+
const prompt = buildAnswerPrompt(question, retrieval.selected);
|
|
81
|
+
const retrievalText = formatContextForChat(retrieval);
|
|
82
|
+
const debugText = formatDebugAppendix(question, retrieval, prompt.fullPrompt);
|
|
83
|
+
return {
|
|
84
|
+
retrieval,
|
|
85
|
+
prompt,
|
|
86
|
+
retrievalText,
|
|
87
|
+
debugText
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
export async function searchManualQuestion(question, debugOverride, topK) {
|
|
91
|
+
const config = getConfig();
|
|
92
|
+
const prepared = await prepareManualAnsweringContext(question, topK);
|
|
93
|
+
const text = debugOverride ?? config.debugMode
|
|
94
|
+
? `${prepared.retrievalText}\n\n---\n\n${prepared.debugText}`
|
|
95
|
+
: prepared.retrievalText;
|
|
96
|
+
return {
|
|
97
|
+
text,
|
|
98
|
+
debugText: prepared.debugText,
|
|
99
|
+
debug: {
|
|
100
|
+
query: question,
|
|
101
|
+
chapters: prepared.retrieval.promptChapters,
|
|
102
|
+
consultedIndices: prepared.retrieval.consultedIndices,
|
|
103
|
+
backendSnapshot: prepared.retrieval.backendSnapshot,
|
|
104
|
+
prompt: prepared.prompt.fullPrompt,
|
|
105
|
+
selectedCitationIds: prepared.retrieval.selected.map((record) => record.citationId),
|
|
106
|
+
retrieved: prepared.retrieval.retrieved.map((record) => ({
|
|
107
|
+
citationId: record.citationId,
|
|
108
|
+
source: record.source,
|
|
109
|
+
indexName: record.indexName,
|
|
110
|
+
objectID: record.objectID,
|
|
111
|
+
algoliaRank: record.algoliaRank,
|
|
112
|
+
localScore: record.localScore,
|
|
113
|
+
title: record.title,
|
|
114
|
+
chapter: record.chapter,
|
|
115
|
+
section: record.section,
|
|
116
|
+
role: record.role,
|
|
117
|
+
phase: record.phase,
|
|
118
|
+
action: record.action,
|
|
119
|
+
artefact: record.artefact,
|
|
120
|
+
url: record.url,
|
|
121
|
+
pageLabel: record.pageLabel,
|
|
122
|
+
documentPath: record.documentPath,
|
|
123
|
+
chapterPath: record.chapterPath,
|
|
124
|
+
excerpt: record.excerpt
|
|
125
|
+
}))
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
export async function inspectManualRetrieval(question, topK) {
|
|
130
|
+
const prepared = await prepareManualAnsweringContext(question, topK);
|
|
131
|
+
return {
|
|
132
|
+
text: prepared.debugText,
|
|
133
|
+
debugText: prepared.debugText,
|
|
134
|
+
debug: {
|
|
135
|
+
query: question,
|
|
136
|
+
chapters: prepared.retrieval.promptChapters,
|
|
137
|
+
consultedIndices: prepared.retrieval.consultedIndices,
|
|
138
|
+
backendSnapshot: prepared.retrieval.backendSnapshot,
|
|
139
|
+
prompt: prepared.prompt.fullPrompt,
|
|
140
|
+
selectedCitationIds: prepared.retrieval.selected.map((record) => record.citationId),
|
|
141
|
+
retrieved: prepared.retrieval.retrieved.map((record) => ({
|
|
142
|
+
citationId: record.citationId,
|
|
143
|
+
source: record.source,
|
|
144
|
+
indexName: record.indexName,
|
|
145
|
+
objectID: record.objectID,
|
|
146
|
+
algoliaRank: record.algoliaRank,
|
|
147
|
+
localScore: record.localScore,
|
|
148
|
+
title: record.title,
|
|
149
|
+
chapter: record.chapter,
|
|
150
|
+
section: record.section,
|
|
151
|
+
role: record.role,
|
|
152
|
+
phase: record.phase,
|
|
153
|
+
action: record.action,
|
|
154
|
+
artefact: record.artefact,
|
|
155
|
+
url: record.url,
|
|
156
|
+
pageLabel: record.pageLabel,
|
|
157
|
+
documentPath: record.documentPath,
|
|
158
|
+
chapterPath: record.chapterPath,
|
|
159
|
+
excerpt: record.excerpt
|
|
160
|
+
}))
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
export function formatSampledAnswerResult(question, prepared, answer, samplingModel, debugOverride) {
|
|
165
|
+
const config = getConfig();
|
|
166
|
+
const debugText = formatDebugAppendix(question, prepared.retrieval, prepared.prompt.fullPrompt, answer, samplingModel);
|
|
167
|
+
return {
|
|
168
|
+
text: debugOverride ?? config.debugMode ? `${answer}\n\n---\n\n${debugText}` : answer,
|
|
169
|
+
debugText,
|
|
170
|
+
debug: {
|
|
171
|
+
query: question,
|
|
172
|
+
samplingModel,
|
|
173
|
+
chapters: prepared.retrieval.promptChapters,
|
|
174
|
+
consultedIndices: prepared.retrieval.consultedIndices,
|
|
175
|
+
backendSnapshot: prepared.retrieval.backendSnapshot,
|
|
176
|
+
prompt: prepared.prompt.fullPrompt,
|
|
177
|
+
selectedCitationIds: prepared.retrieval.selected.map((record) => record.citationId),
|
|
178
|
+
retrieved: prepared.retrieval.retrieved.map((record) => ({
|
|
179
|
+
citationId: record.citationId,
|
|
180
|
+
source: record.source,
|
|
181
|
+
indexName: record.indexName,
|
|
182
|
+
objectID: record.objectID,
|
|
183
|
+
algoliaRank: record.algoliaRank,
|
|
184
|
+
localScore: record.localScore,
|
|
185
|
+
title: record.title,
|
|
186
|
+
chapter: record.chapter,
|
|
187
|
+
section: record.section,
|
|
188
|
+
role: record.role,
|
|
189
|
+
phase: record.phase,
|
|
190
|
+
action: record.action,
|
|
191
|
+
artefact: record.artefact,
|
|
192
|
+
url: record.url,
|
|
193
|
+
pageLabel: record.pageLabel,
|
|
194
|
+
documentPath: record.documentPath,
|
|
195
|
+
chapterPath: record.chapterPath,
|
|
196
|
+
excerpt: record.excerpt
|
|
197
|
+
})),
|
|
198
|
+
finalAnswer: answer
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=ask-manual.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ask-manual.js","sourceRoot":"","sources":["../../src/orchestrator/ask-manual.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { loadSystemPromptTemplate } from "./system-prompt.js";
|
|
2
|
+
function renderOptional(label, value) {
|
|
3
|
+
return value ? `${label}: ${value}` : `${label}: n/d`;
|
|
4
|
+
}
|
|
5
|
+
function renderLocation(record) {
|
|
6
|
+
const parts = [record.pageLabel, record.url].filter(Boolean);
|
|
7
|
+
return parts.length > 0 ? parts.join(" | ") : "n/d";
|
|
8
|
+
}
|
|
9
|
+
function renderRecord(record) {
|
|
10
|
+
return [
|
|
11
|
+
`[${record.citationId}]`,
|
|
12
|
+
`Fonte: ${record.indexName}`,
|
|
13
|
+
`Título: ${record.title}`,
|
|
14
|
+
renderOptional("Capítulo", record.chapter),
|
|
15
|
+
renderOptional("Secção", record.section),
|
|
16
|
+
renderOptional("Papel", record.role),
|
|
17
|
+
renderOptional("Fase", record.phase),
|
|
18
|
+
renderOptional("Ação", record.action),
|
|
19
|
+
renderOptional("Artefacto", record.artefact),
|
|
20
|
+
renderOptional("Documento", record.documentTitle),
|
|
21
|
+
renderOptional("Document path", record.documentPath),
|
|
22
|
+
renderOptional("Chapter path", record.chapterPath),
|
|
23
|
+
`Localização: ${renderLocation(record)}`,
|
|
24
|
+
`Excerto: ${record.excerpt}`
|
|
25
|
+
].join("\n");
|
|
26
|
+
}
|
|
27
|
+
export function buildAnswerPrompt(query, records) {
|
|
28
|
+
const contextBlock = records.length === 0
|
|
29
|
+
? "Nenhum record relevante foi recuperado."
|
|
30
|
+
: records.map((record) => renderRecord(record)).join("\n\n");
|
|
31
|
+
const systemPrompt = loadSystemPromptTemplate();
|
|
32
|
+
const userPrompt = [
|
|
33
|
+
`Question: ${query}`,
|
|
34
|
+
"",
|
|
35
|
+
"Retrieved SbD-ToE context:",
|
|
36
|
+
contextBlock,
|
|
37
|
+
"",
|
|
38
|
+
"Output requirements:",
|
|
39
|
+
"1. Answer only from this retrieved context.",
|
|
40
|
+
"2. Cite factual claims with [D1], [E1], etc.",
|
|
41
|
+
"3. If the answer is not in the retrieved context, say the information is not available.",
|
|
42
|
+
"4. When a documentation URL exists in the retrieved context, include it without inventing anchors.",
|
|
43
|
+
"5. Prefer the structure Role, Phase, Action, Artifact."
|
|
44
|
+
].join("\n");
|
|
45
|
+
return {
|
|
46
|
+
systemPrompt,
|
|
47
|
+
userPrompt,
|
|
48
|
+
fullPrompt: `### System\n${systemPrompt}\n\n### User\n${userPrompt}`
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=build-answer-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-answer-prompt.js","sourceRoot":"","sources":["../../src/prompt/build-answer-prompt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,SAAS,cAAc,CAAC,KAAa,EAAE,KAAc;IACnD,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC;AACxD,CAAC;AAED,SAAS,cAAc,CAAC,MAAwB;IAC9C,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACtD,CAAC;AAED,SAAS,YAAY,CAAC,MAAwB;IAC5C,OAAO;QACL,IAAI,MAAM,CAAC,UAAU,GAAG;QACxB,UAAU,MAAM,CAAC,SAAS,EAAE;QAC5B,WAAW,MAAM,CAAC,KAAK,EAAE;QACzB,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC;QAC1C,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC;QACxC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;QACpC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QACpC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;QACrC,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC;QAC5C,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;QACjD,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC;QACpD,cAAc,CAAC,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC;QAClD,gBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE;QACxC,YAAY,MAAM,CAAC,OAAO,EAAE;KAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAa,EACb,OAA2B;IAE3B,MAAM,YAAY,GAChB,OAAO,CAAC,MAAM,KAAK,CAAC;QAClB,CAAC,CAAC,yCAAyC;QAC3C,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEjE,MAAM,YAAY,GAAG,wBAAwB,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG;QACjB,aAAa,KAAK,EAAE;QACpB,EAAE;QACF,4BAA4B;QAC5B,YAAY;QACZ,EAAE;QACF,sBAAsB;QACtB,6CAA6C;QAC7C,8CAA8C;QAC9C,yFAAyF;QACzF,oGAAoG;QACpG,wDAAwD;KACzD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO;QACL,YAAY;QACZ,UAAU;QACV,UAAU,EAAE,eAAe,YAAY,iBAAiB,UAAU,EAAE;KACrE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function loadSystemPromptTemplate(): string;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { getConfig, resolveAppPath } from "../config.js";
|
|
3
|
+
let cachedPrompt;
|
|
4
|
+
const defaultTemplate = `You are an assistant for the **Security by Design - Theory of Everything (SbD-ToE)** documentation.
|
|
5
|
+
|
|
6
|
+
Answer questions using **only the retrieved SbD-ToE documentation context provided by this MCP server**.
|
|
7
|
+
|
|
8
|
+
Rules:
|
|
9
|
+
|
|
10
|
+
- Use only information present in the retrieved SbD-ToE context.
|
|
11
|
+
- If the answer cannot be found, say that the information is not available.
|
|
12
|
+
- Provide concise and technically precise answers.
|
|
13
|
+
- When possible reference the relevant chapter or section and provide the documentation link if it exists in the retrieved context.
|
|
14
|
+
- The base url for the manual is {{SITE_BASE_URL}}; the manual base slug is {{MANUAL_BASE_URL}}; cross check is {{CROSS_CHECK_BASE_URL}}.
|
|
15
|
+
- If a canonical URL is not available in the retrieved context, do not invent section anchors. Prefer page-level URLs only when they are deterministic.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Index usage
|
|
20
|
+
|
|
21
|
+
The retrieved context comes from two semantic indices/snapshots with different purposes.
|
|
22
|
+
|
|
23
|
+
**{{DOCS_INDEX}}**
|
|
24
|
+
Primary documentation source containing extracted content from the SbD-ToE manual.
|
|
25
|
+
Use it as the main source for conceptual, operational and technical answers.
|
|
26
|
+
|
|
27
|
+
**{{ENTITIES_INDEX}}**
|
|
28
|
+
Contains structured concepts such as roles, phases, practices, artifacts and policies.
|
|
29
|
+
Use it to clarify relationships and structure answers.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Understanding the manual
|
|
34
|
+
|
|
35
|
+
The SbD-ToE manual is structured by chapters and document layers.
|
|
36
|
+
|
|
37
|
+
Typical sections include:
|
|
38
|
+
|
|
39
|
+
**Intro**
|
|
40
|
+
Conceptual explanation of practices.
|
|
41
|
+
|
|
42
|
+
**Lifecycle**
|
|
43
|
+
Operational guidance describing who performs actions, in which SDLC phase, and which artifacts must exist.
|
|
44
|
+
|
|
45
|
+
**Technical complement**
|
|
46
|
+
Implementation details, examples and tooling.
|
|
47
|
+
|
|
48
|
+
**Policies**
|
|
49
|
+
Organizational governance and required security policies.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Risk model
|
|
54
|
+
|
|
55
|
+
Applications are classified by risk:
|
|
56
|
+
|
|
57
|
+
L1 - low risk
|
|
58
|
+
L2 - medium risk
|
|
59
|
+
L3 - critical
|
|
60
|
+
|
|
61
|
+
These represent application risk, not maturity.
|
|
62
|
+
|
|
63
|
+
Practices are applied proportionally to risk.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Answer style
|
|
68
|
+
|
|
69
|
+
When possible structure answers as:
|
|
70
|
+
|
|
71
|
+
Role
|
|
72
|
+
Phase
|
|
73
|
+
Action
|
|
74
|
+
Artifact`;
|
|
75
|
+
function applyTemplate(template) {
|
|
76
|
+
const config = getConfig();
|
|
77
|
+
return template
|
|
78
|
+
.replaceAll("{{SITE_BASE_URL}}", config.prompt.siteBaseUrl)
|
|
79
|
+
.replaceAll("{{MANUAL_BASE_URL}}", config.prompt.manualBaseUrl)
|
|
80
|
+
.replaceAll("{{CROSS_CHECK_BASE_URL}}", config.prompt.crossCheckBaseUrl)
|
|
81
|
+
.replaceAll("{{DOCS_INDEX}}", config.backend.docsIndex)
|
|
82
|
+
.replaceAll("{{ENTITIES_INDEX}}", config.backend.entitiesIndex);
|
|
83
|
+
}
|
|
84
|
+
export function loadSystemPromptTemplate() {
|
|
85
|
+
if (cachedPrompt) {
|
|
86
|
+
return cachedPrompt;
|
|
87
|
+
}
|
|
88
|
+
const config = getConfig();
|
|
89
|
+
const promptFile = resolveAppPath(config.prompt.systemPromptFile);
|
|
90
|
+
const template = existsSync(promptFile) ? readFileSync(promptFile, "utf8") : defaultTemplate;
|
|
91
|
+
cachedPrompt = applyTemplate(template);
|
|
92
|
+
return cachedPrompt;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=system-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/prompt/system-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEzD,IAAI,YAAgC,CAAC;AAErC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAsEf,CAAC;AAEV,SAAS,aAAa,CAAC,QAAgB;IACrC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,OAAO,QAAQ;SACZ,UAAU,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;SAC1D,UAAU,CAAC,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;SAC9D,UAAU,CAAC,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC;SACvE,UAAU,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;SACtD,UAAU,CAAC,oBAAoB,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAClE,MAAM,QAAQ,GACZ,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;IAE9E,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns a Markdown skill template for the given risk level and project role.
|
|
3
|
+
* Throws if riskLevel is not in the allowlist.
|
|
4
|
+
* SEC note: riskLevel validated via allowlist (VAL-002).
|
|
5
|
+
*/
|
|
6
|
+
export declare function buildSkillTemplateMarkdown(riskLevel: string, projectRole: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* Returns a JSON-serialisable object with active/conditional/excluded chapters for the given risk level.
|
|
9
|
+
* Throws if riskLevel is not in the allowlist.
|
|
10
|
+
* SEC note: riskLevel validated via allowlist (VAL-002).
|
|
11
|
+
*/
|
|
12
|
+
export declare function buildChapterApplicabilityJson(riskLevel: string): object;
|
|
13
|
+
/**
|
|
14
|
+
* Returns a structured prompt text instructing an agent to follow the SbD-ToE manual.
|
|
15
|
+
* Throws if riskLevel is not in the allowlist.
|
|
16
|
+
* SEC note: riskLevel validated via allowlist (VAL-002); projectRole is optional free text included as-is.
|
|
17
|
+
*/
|
|
18
|
+
export declare function buildSetupAgentPrompt(riskLevel: string, projectRole?: string): string;
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
// Static chapter applicability data derived from docs/sbd-toe-applicability.md.
|
|
2
|
+
// Used as source for MCP resources — does not depend on JSON indices for the base structure.
|
|
3
|
+
const VALID_RISK_LEVELS = ["L1", "L2", "L3"];
|
|
4
|
+
function isValidRiskLevel(value) {
|
|
5
|
+
return typeof value === "string" && VALID_RISK_LEVELS.includes(value);
|
|
6
|
+
}
|
|
7
|
+
// L1: directly applicable (active) and conditionally applicable chapters from docs/sbd-toe-applicability.md.
|
|
8
|
+
// L2/L3: progressive inclusion — L1 conditional chapters become active in L2; all active in L3.
|
|
9
|
+
const RISK_LEVEL_CHAPTERS = {
|
|
10
|
+
L1: {
|
|
11
|
+
active: ["Cap. 01", "Cap. 02", "Cap. 05", "Cap. 06", "Cap. 07", "Cap. 10"],
|
|
12
|
+
conditional: ["Cap. 03", "Cap. 04", "Cap. 11", "Cap. 12", "Cap. 14"],
|
|
13
|
+
excluded: ["Cap. 08", "Cap. 09", "Cap. 13", "Cap. 15"]
|
|
14
|
+
},
|
|
15
|
+
L2: {
|
|
16
|
+
active: [
|
|
17
|
+
"Cap. 01", "Cap. 02", "Cap. 03", "Cap. 04", "Cap. 05",
|
|
18
|
+
"Cap. 06", "Cap. 07", "Cap. 10", "Cap. 11", "Cap. 12", "Cap. 14"
|
|
19
|
+
],
|
|
20
|
+
conditional: ["Cap. 08", "Cap. 09", "Cap. 13", "Cap. 15"],
|
|
21
|
+
excluded: []
|
|
22
|
+
},
|
|
23
|
+
L3: {
|
|
24
|
+
active: [
|
|
25
|
+
"Cap. 01", "Cap. 02", "Cap. 03", "Cap. 04", "Cap. 05",
|
|
26
|
+
"Cap. 06", "Cap. 07", "Cap. 08", "Cap. 09", "Cap. 10",
|
|
27
|
+
"Cap. 11", "Cap. 12", "Cap. 13", "Cap. 14", "Cap. 15"
|
|
28
|
+
],
|
|
29
|
+
conditional: [],
|
|
30
|
+
excluded: []
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
const CHAPTER_TITLES = {
|
|
34
|
+
"Cap. 01": "Classificação de Criticidade",
|
|
35
|
+
"Cap. 02": "Requisitos de Segurança",
|
|
36
|
+
"Cap. 03": "Threat Modeling",
|
|
37
|
+
"Cap. 04": "Arquitetura Segura",
|
|
38
|
+
"Cap. 05": "Dependências, SBOM e SCA",
|
|
39
|
+
"Cap. 06": "Desenvolvimento Seguro",
|
|
40
|
+
"Cap. 07": "CI/CD Seguro",
|
|
41
|
+
"Cap. 08": "Segurança de Rede e Exposição",
|
|
42
|
+
"Cap. 09": "Autenticação e Acesso",
|
|
43
|
+
"Cap. 10": "Testes de Segurança",
|
|
44
|
+
"Cap. 11": "Deploy Seguro",
|
|
45
|
+
"Cap. 12": "Monitorização & Operações",
|
|
46
|
+
"Cap. 13": "Gestão de Incidentes",
|
|
47
|
+
"Cap. 14": "Governança, Revisões e Conformidade",
|
|
48
|
+
"Cap. 15": "Formação e Cultura de Segurança"
|
|
49
|
+
};
|
|
50
|
+
const CONSULTATION_TRIGGERS = [
|
|
51
|
+
{ context: "Qualquer alteração de segurança nova", chapter: "Cap. 01 → Cap. 02 → capítulo técnico" },
|
|
52
|
+
{ context: "`package.json`, dependências, lockfiles", chapter: "Cap. 05" },
|
|
53
|
+
{ context: "Código TypeScript em `src/`, parsing, validação, prompts", chapter: "Cap. 06" },
|
|
54
|
+
{ context: "Workflows CI/CD, scripts de build, packaging", chapter: "Cap. 07" },
|
|
55
|
+
{ context: "CodeQL, SAST, quality gates, scanning pré-release", chapter: "Cap. 10" },
|
|
56
|
+
{ context: "Release, bundle, artefactos publicados", chapter: "Cap. 11" },
|
|
57
|
+
{ context: "Fronteiras de sistema, trust model, canais `stdout`/`stderr`", chapter: "Cap. 04" },
|
|
58
|
+
{ context: "Logging, auditabilidade, debug seguro", chapter: "Cap. 12" },
|
|
59
|
+
{ context: "Rastreabilidade, exceções formais, conformidade", chapter: "Cap. 14" }
|
|
60
|
+
];
|
|
61
|
+
const BASE_REQUIREMENTS = [
|
|
62
|
+
"AUT-006 — proibição de credenciais por omissão",
|
|
63
|
+
"ACC-002 — menor privilégio",
|
|
64
|
+
"ACC-005 — controlo de acesso a APIs e serviços",
|
|
65
|
+
"LOG-001 / LOG-002 / LOG-003 — eventos críticos, atributos mínimos, proteção de logs",
|
|
66
|
+
"VAL-001 / VAL-002 / VAL-004 — validação geral, allowlists, sanitização contra injeções",
|
|
67
|
+
"ERR-* — mensagens de erro seguras, sem stack trace para o cliente",
|
|
68
|
+
"CFG-* — configuração segura, separação entre código e configuração"
|
|
69
|
+
];
|
|
70
|
+
/**
|
|
71
|
+
* Returns a Markdown skill template for the given risk level and project role.
|
|
72
|
+
* Throws if riskLevel is not in the allowlist.
|
|
73
|
+
* SEC note: riskLevel validated via allowlist (VAL-002).
|
|
74
|
+
*/
|
|
75
|
+
export function buildSkillTemplateMarkdown(riskLevel, projectRole) {
|
|
76
|
+
if (!isValidRiskLevel(riskLevel)) {
|
|
77
|
+
throw new Error(`riskLevel inválido: "${riskLevel}". Valores permitidos: L1, L2, L3.`);
|
|
78
|
+
}
|
|
79
|
+
const chapters = RISK_LEVEL_CHAPTERS[riskLevel];
|
|
80
|
+
const roleHeader = projectRole.length > 0 ? ` | Papel: ${projectRole}` : "";
|
|
81
|
+
const activeList = chapters.active
|
|
82
|
+
.map((c) => `- ${c} — ${CHAPTER_TITLES[c] ?? c}`)
|
|
83
|
+
.join("\n");
|
|
84
|
+
const conditionalList = chapters.conditional.length > 0
|
|
85
|
+
? chapters.conditional.map((c) => `- ${c} — ${CHAPTER_TITLES[c] ?? c}`).join("\n")
|
|
86
|
+
: "_(nenhum)_";
|
|
87
|
+
const triggersRows = CONSULTATION_TRIGGERS.map((t) => `| ${t.context} | ${t.chapter} |`).join("\n");
|
|
88
|
+
const reqList = BASE_REQUIREMENTS.map((r) => `- ${r}`).join("\n");
|
|
89
|
+
return [
|
|
90
|
+
"# SbD-ToE Skill Template",
|
|
91
|
+
"",
|
|
92
|
+
"## Classificação de Risco",
|
|
93
|
+
"",
|
|
94
|
+
`**Nível:** ${riskLevel}${roleHeader}`,
|
|
95
|
+
"",
|
|
96
|
+
"Começar sempre por **Cap. 01 → Cap. 02** antes do capítulo técnico relevante.",
|
|
97
|
+
"Nunca afirmar conformidade sem evidência no código ou no manual.",
|
|
98
|
+
"",
|
|
99
|
+
"## Capítulos Activos",
|
|
100
|
+
"",
|
|
101
|
+
activeList,
|
|
102
|
+
"",
|
|
103
|
+
"## Capítulos Condicionais",
|
|
104
|
+
"",
|
|
105
|
+
conditionalList,
|
|
106
|
+
"",
|
|
107
|
+
"## Triggers de Consulta",
|
|
108
|
+
"",
|
|
109
|
+
"| Contexto da alteração | Capítulo a consultar |",
|
|
110
|
+
"|---|---|",
|
|
111
|
+
triggersRows,
|
|
112
|
+
"",
|
|
113
|
+
"## Requisitos Base",
|
|
114
|
+
"",
|
|
115
|
+
reqList
|
|
116
|
+
].join("\n");
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Returns a JSON-serialisable object with active/conditional/excluded chapters for the given risk level.
|
|
120
|
+
* Throws if riskLevel is not in the allowlist.
|
|
121
|
+
* SEC note: riskLevel validated via allowlist (VAL-002).
|
|
122
|
+
*/
|
|
123
|
+
export function buildChapterApplicabilityJson(riskLevel) {
|
|
124
|
+
if (!isValidRiskLevel(riskLevel)) {
|
|
125
|
+
throw new Error(`riskLevel inválido: "${riskLevel}". Valores permitidos: L1, L2, L3.`);
|
|
126
|
+
}
|
|
127
|
+
const chapters = RISK_LEVEL_CHAPTERS[riskLevel];
|
|
128
|
+
return {
|
|
129
|
+
riskLevel,
|
|
130
|
+
active: chapters.active,
|
|
131
|
+
conditional: chapters.conditional,
|
|
132
|
+
excluded: chapters.excluded
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Returns a structured prompt text instructing an agent to follow the SbD-ToE manual.
|
|
137
|
+
* Throws if riskLevel is not in the allowlist.
|
|
138
|
+
* SEC note: riskLevel validated via allowlist (VAL-002); projectRole is optional free text included as-is.
|
|
139
|
+
*/
|
|
140
|
+
export function buildSetupAgentPrompt(riskLevel, projectRole) {
|
|
141
|
+
if (!isValidRiskLevel(riskLevel)) {
|
|
142
|
+
throw new Error(`riskLevel inválido: "${riskLevel}". Valores permitidos: L1, L2, L3.`);
|
|
143
|
+
}
|
|
144
|
+
const chapters = RISK_LEVEL_CHAPTERS[riskLevel];
|
|
145
|
+
const roleContext = projectRole !== undefined && projectRole.length > 0
|
|
146
|
+
? ` O papel do projecto é: ${projectRole}.`
|
|
147
|
+
: "";
|
|
148
|
+
const activeStr = chapters.active.join(", ");
|
|
149
|
+
const conditionalStr = chapters.conditional.length > 0 ? chapters.conditional.join(", ") : "nenhum";
|
|
150
|
+
return [
|
|
151
|
+
`Segue o manual SbD-ToE para o nível de risco ${riskLevel}.${roleContext}`,
|
|
152
|
+
"",
|
|
153
|
+
"Regras:",
|
|
154
|
+
"1. Começa sempre por Cap. 01 → Cap. 02 antes do capítulo técnico relevante.",
|
|
155
|
+
`2. Consulta os capítulos activos antes de implementar qualquer controlo de segurança.`,
|
|
156
|
+
`3. Capítulos activos para ${riskLevel}: ${activeStr}.`,
|
|
157
|
+
`4. Capítulos condicionais: ${conditionalStr}.`,
|
|
158
|
+
"5. Exige evidência antes de qualquer claim de compliance.",
|
|
159
|
+
"6. Usa a tool `search_sbd_toe_manual` para grounding antes de responder sobre o manual.",
|
|
160
|
+
"7. Trata código gerado por IA como artefacto não confiável: exige revisão humana.",
|
|
161
|
+
"8. Nunca inventa citações, capítulos, links ou anchors."
|
|
162
|
+
].join("\n");
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=sbd-toe-resources.js.map
|