@shiftleftpt/sbd-toe-mcp 0.20.0-beta.20 → 0.20.0-beta.21
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 +33 -1
- package/dist/index.js +41 -8
- package/dist/index.js.map +1 -1
- package/dist/serving/activation-vocabulary.d.ts +90 -0
- package/dist/serving/activation-vocabulary.js +146 -0
- package/dist/serving/activation-vocabulary.js.map +1 -0
- package/dist/serving/selection.d.ts +67 -2
- package/dist/serving/selection.js +155 -15
- package/dist/serving/selection.js.map +1 -1
- package/dist/tools/map-review-scope.d.ts +6 -0
- package/dist/tools/map-review-scope.js +1 -1
- package/dist/tools/map-review-scope.js.map +1 -1
- package/dist/tools/prepare-codegen-context.d.ts +33 -3
- package/dist/tools/prepare-codegen-context.js +170 -118
- package/dist/tools/prepare-codegen-context.js.map +1 -1
- package/dist/tools/select-requirements.d.ts +11 -0
- package/dist/tools/select-requirements.js +45 -5
- package/dist/tools/select-requirements.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 0.20.0-beta.21 — «declarativo primeiro»: o vocabulário publicado.
|
|
3
|
+
*
|
|
4
|
+
* O servidor deixou de adivinhar palavras: PUBLICA a lista fechada de valores que
|
|
5
|
+
* aceita e, para cada valor, o que ele activa. O LLM — que tem o contexto — lê,
|
|
6
|
+
* mapeia e DECLARA; o servidor responde ao declarado, de forma reproduzível.
|
|
7
|
+
*
|
|
8
|
+
* Regra da casa: nada aqui é escrito à mão. Cada entrada é DERIVADA das mesmas
|
|
9
|
+
* tabelas/dados que o motor usa (loader do bundle, mapas de concern→categoria/
|
|
10
|
+
* capítulo, tabela de tecnologias, tabela de padrões de path, activadores
|
|
11
|
+
* declarados de exposure/data_sensitivity, papéis e fases canónicos do bundle) —
|
|
12
|
+
* se o motor mudar, o vocabulário muda com ele, ou o teste parte.
|
|
13
|
+
*/
|
|
14
|
+
import { getOntologyData } from "../tools/ontology-loader.js";
|
|
15
|
+
import { VALID_CONCERNS, CONCERN_TO_V0_CATEGORIES_SUPPLEMENT, EXPOSURE_CONCERNS, SENSITIVITY_CONCERNS } from "../tools/prepare-codegen-context.js";
|
|
16
|
+
import { CONCERN_TO_DOMAIN_CHAPTERS, TECHNOLOGY_TO_CHAPTERS, SES008_TECHNOLOGY } from "./selection.js";
|
|
17
|
+
import { PATTERN_RULES } from "../tools/map-review-scope.js";
|
|
18
|
+
import { servedKgReleaseTag } from "../version-info.js";
|
|
19
|
+
/** Categorias v0 que um concern activa — pela mesma via do motor (loader ⊕ suplemento). */
|
|
20
|
+
export function categoriesForConcernPublished(concern) {
|
|
21
|
+
const ontology = getOntologyData();
|
|
22
|
+
const set = new Set();
|
|
23
|
+
for (const c of ontology.concernsMap[concern] ?? [])
|
|
24
|
+
set.add(c);
|
|
25
|
+
for (const c of CONCERN_TO_V0_CATEGORIES_SUPPLEMENT[concern] ?? [])
|
|
26
|
+
set.add(c);
|
|
27
|
+
return [...set].sort();
|
|
28
|
+
}
|
|
29
|
+
export function buildActivationVocabulary() {
|
|
30
|
+
const ontology = getOntologyData();
|
|
31
|
+
const levels = ["L1", "L2", "L3"];
|
|
32
|
+
const baseline = {};
|
|
33
|
+
for (const level of levels)
|
|
34
|
+
baseline[level] = ontology.requirements.filter((r) => r.type === "base" && r.applicable_levels?.[level] === true).length;
|
|
35
|
+
const concerns = VALID_CONCERNS.map((concern) => {
|
|
36
|
+
const categories = categoriesForConcernPublished(concern);
|
|
37
|
+
const counts = {};
|
|
38
|
+
for (const level of levels)
|
|
39
|
+
counts[level] = ontology.requirements.filter((r) => categories.includes(r.category) && r.applicable_levels?.[level] === true).length;
|
|
40
|
+
return {
|
|
41
|
+
value: concern,
|
|
42
|
+
activates_categories: categories,
|
|
43
|
+
activates_chapters: [...(CONCERN_TO_DOMAIN_CHAPTERS[concern] ?? [])],
|
|
44
|
+
requirements_at: counts
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
const roles = ontology.roles
|
|
48
|
+
.filter((r) => r.canonical)
|
|
49
|
+
.map((r) => ({ value: r.role_id, aliases: [...r.aliases].sort() }))
|
|
50
|
+
.sort((a, b) => a.value.localeCompare(b.value));
|
|
51
|
+
const phases = (ontology.phases ?? [])
|
|
52
|
+
.filter((p) => p.canonical)
|
|
53
|
+
.map((p) => ({ value: p.phase_id, label: p.label, aliases: [...p.aliases].sort() }))
|
|
54
|
+
.sort((a, b) => a.value.localeCompare(b.value));
|
|
55
|
+
return {
|
|
56
|
+
provenance: {
|
|
57
|
+
kg: servedKgReleaseTag(),
|
|
58
|
+
content_type: "derived",
|
|
59
|
+
produced_by: "activation_vocabulary_builder",
|
|
60
|
+
source_data: "data/publish/runtime/{requirements,assignments,roles}.json + ontology concernsMap + tabelas de activação do motor (concern→categoria/capítulo, tecnologia→capítulo, path→capítulo, exposure/data_sensitivity→concern)",
|
|
61
|
+
note: "Derivado, nunca escrito à mão: o mesmo mapa que o motor usa para seleccionar é o que aqui se publica. Contagens por nível vêm do bundle pinado."
|
|
62
|
+
},
|
|
63
|
+
contract: {
|
|
64
|
+
serving_semantics: "declarative-first",
|
|
65
|
+
version: "v1.18-beta",
|
|
66
|
+
note: "Nesta linha (0.20-beta, experiência autorizada pelo lead 2026-09-05) a selecção é função do que o chamador DECLARA. O servidor normaliza o declarado; não decide o que quiseram dizer."
|
|
67
|
+
},
|
|
68
|
+
how_to_use: [
|
|
69
|
+
"1. Tu (LLM) lês o pedido, o código e a conversa — tens o contexto que o servidor nunca terá.",
|
|
70
|
+
"2. Mapeias o que interpretaste para ESTES valores e DECLARAS: risk_level, concerns, exposure, data_sensitivity, technologies, changed_files.",
|
|
71
|
+
"3. Chamas select_sbd_toe_requirements com as declarações; o `task` podes enviá-lo à mesma — fica registado para auditoria e NÃO influencia o resultado.",
|
|
72
|
+
"4. Sem nenhuma declaração o servidor responde needs_input (com este vocabulário e candidatos A CONFIRMAR) — nunca adivinha, nunca devolve zero em silêncio.",
|
|
73
|
+
"5. Queres a baseline do nível, sem contexto? Pede-a explicitamente: mode='baseline'.",
|
|
74
|
+
"6. Queres o comportamento inferencial antigo (investigação/estudo de paráfrase)? mode='discover' — exploratório, marcado como tal na resposta."
|
|
75
|
+
],
|
|
76
|
+
risk_level: {
|
|
77
|
+
values: [...levels],
|
|
78
|
+
baseline_requirements: baseline,
|
|
79
|
+
note: "Filtro de nível sobre os requisitos publicados (applicable_levels). Um capítulo nunca se exclui por nível — a exigência escala."
|
|
80
|
+
},
|
|
81
|
+
concerns: {
|
|
82
|
+
closed_set: true,
|
|
83
|
+
note: "Conjunto fechado. Cada concern activa categorias v0 (baseline cap. 02) e/ou capítulos de domínio. Declara os que a tua leitura do pedido justifica — somam activação, não restringem.",
|
|
84
|
+
values: concerns
|
|
85
|
+
},
|
|
86
|
+
exposure: {
|
|
87
|
+
closed_set: true,
|
|
88
|
+
note: "Activador declarado: a superfície exposta impõe concerns por regra publicada.",
|
|
89
|
+
values: Object.entries(EXPOSURE_CONCERNS).map(([value, list]) => ({
|
|
90
|
+
value,
|
|
91
|
+
activates_concerns: [...list],
|
|
92
|
+
note: `exposure='${value}' activa ${list.join(", ")} por regra declarada.`
|
|
93
|
+
}))
|
|
94
|
+
},
|
|
95
|
+
data_sensitivity: {
|
|
96
|
+
closed_set: true,
|
|
97
|
+
note: "Activador declarado: a natureza dos dados impõe concerns por regra publicada.",
|
|
98
|
+
values: Object.entries(SENSITIVITY_CONCERNS).map(([value, list]) => ({
|
|
99
|
+
value,
|
|
100
|
+
activates_concerns: [...list],
|
|
101
|
+
note: `data_sensitivity='${value}' activa ${list.join(", ")} por regra declarada.`
|
|
102
|
+
}))
|
|
103
|
+
},
|
|
104
|
+
technologies: {
|
|
105
|
+
closed_set: true,
|
|
106
|
+
note: "Conjunto fechado de tecnologias que activam capítulos por TABELA (não por semelhança de texto). O campo livre `stack` só conta quando um destes valores aparece nele como token exacto.",
|
|
107
|
+
values: [
|
|
108
|
+
...Object.entries(TECHNOLOGY_TO_CHAPTERS).map(([value, chapters]) => ({ value, activates_chapters: [...chapters] })),
|
|
109
|
+
{
|
|
110
|
+
value: SES008_TECHNOLOGY,
|
|
111
|
+
activates_chapters: [],
|
|
112
|
+
named_rule: "SES-008-por-tecnologia",
|
|
113
|
+
note: "Não activa capítulos: aciona a regra NOMEADA SES-008 (scope/TTL/revogação de tokens) a qualquer nível — decisão do Author 2026-08-31, agora por tecnologia DECLARADA em vez de casamento de palavras na tarefa."
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
},
|
|
117
|
+
changed_files: {
|
|
118
|
+
closed_set: false,
|
|
119
|
+
note: "Caminhos reais do repositório. A activação é por TABELA de padrões de path publicada abaixo — não há interpretação do conteúdo nem do nome.",
|
|
120
|
+
patterns: PATTERN_RULES.map((r) => ({ pattern: r.pattern, activates_chapters: [...r.bundles] }))
|
|
121
|
+
},
|
|
122
|
+
roles: {
|
|
123
|
+
closed_set: true,
|
|
124
|
+
note: "Papéis canónicos do bundle; os aliases publicados são normalização legítima (ex.: sre → devops-sre).",
|
|
125
|
+
values: roles
|
|
126
|
+
},
|
|
127
|
+
phases: {
|
|
128
|
+
closed_set: true,
|
|
129
|
+
note: "Fases canónicas do bundle; aliases publicados idem (ex.: implement → develop).",
|
|
130
|
+
values: phases
|
|
131
|
+
},
|
|
132
|
+
not_activators: [
|
|
133
|
+
{
|
|
134
|
+
field: "task",
|
|
135
|
+
role: "recorded_context",
|
|
136
|
+
note: "Texto livre. Fica no registo para auditoria e NÃO influencia a selecção no modo declarativo (só em mode='discover', exploratório)."
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
field: "stack",
|
|
140
|
+
role: "recorded_context_with_exact_normalisation",
|
|
141
|
+
note: "Texto livre. Só activa quando contém, como token exacto, um valor de `technologies` — normalizar o declarado é legítimo, adivinhar prosa não."
|
|
142
|
+
}
|
|
143
|
+
]
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=activation-vocabulary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activation-vocabulary.js","sourceRoot":"","sources":["../../src/serving/activation-vocabulary.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,33 @@
|
|
|
1
|
-
import { type ActivationResult, type ActivationTraceEntry, type NormalizedInput } from "../tools/prepare-codegen-context.js";
|
|
1
|
+
import { type ActivationResult, type ActivationTraceEntry, type Concern, type NormalizedInput } from "../tools/prepare-codegen-context.js";
|
|
2
2
|
export type SelectionRiskLevel = "L1" | "L2" | "L3";
|
|
3
|
+
/** Concern → the domain chapter(s) whose catalogue it activates (aligned with the
|
|
4
|
+
* ontology's `activation_examples` and the applicability model; audited table). */
|
|
5
|
+
export declare const CONCERN_TO_DOMAIN_CHAPTERS: Readonly<Partial<Record<Concern, readonly string[]>>>;
|
|
3
6
|
/** Technology vocabulary → chapters (mirrors map_sbd_toe_applicability). */
|
|
4
7
|
export declare const TECHNOLOGY_TO_CHAPTERS: Readonly<Record<string, readonly string[]>>;
|
|
8
|
+
/**
|
|
9
|
+
* 0.20.0-beta.21: a regra do Author sobrevive à mudança de fronteira — passa a ser
|
|
10
|
+
* accionada pela TECNOLOGIA DECLARADA (`technologies: ["jwt"]`, valor publicado no
|
|
11
|
+
* vocabulário) em vez de por regex sobre a prosa da tarefa. Em `discover` o gatilho
|
|
12
|
+
* lexical histórico continua a valer.
|
|
13
|
+
*/
|
|
14
|
+
export declare const SES008_TECHNOLOGY = "jwt";
|
|
5
15
|
/** 0.19.0 (ronda 3): estabilidade da origem — lexical = casamento de termos da
|
|
6
16
|
* redacção (revogável por reescrever a frase); declared = concern explícito, regra
|
|
7
17
|
* nomeada, sinal de contexto declarado ou dado do bundle. */
|
|
18
|
+
/**
|
|
19
|
+
* 0.20.0-beta.21 — modos de selecção («declarativo primeiro», experiência da linha beta
|
|
20
|
+
* autorizada pelo lead 2026-09-05).
|
|
21
|
+
*
|
|
22
|
+
* - `declarative` (DEFAULT): a selecção é função APENAS do que o chamador declarou —
|
|
23
|
+
* risk_level, concerns, exposure, data_sensitivity, changed_files, technologies. O
|
|
24
|
+
* `task` fica registado para auditoria e não influencia o resultado. Sem nenhuma
|
|
25
|
+
* declaração ⇒ `needs_input` (nunca zero, nunca adivinhar).
|
|
26
|
+
* - `baseline`: devolve a baseline do nível por PEDIDO EXPLÍCITO (nunca como fallback).
|
|
27
|
+
* - `discover`: comportamento inferencial histórico, COM os avisos todos, marcado
|
|
28
|
+
* exploratório — instrumento do oráculo histórico e do estudo de paráfrase.
|
|
29
|
+
*/
|
|
30
|
+
export type SelectionMode = "declarative" | "baseline" | "discover";
|
|
8
31
|
export type SelectionBasis = "declared" | "lexical";
|
|
9
32
|
export declare function basisOfSource(source: string): SelectionBasis;
|
|
10
33
|
export interface SelectionTraceEntry {
|
|
@@ -37,6 +60,34 @@ export interface ActivatedChapter {
|
|
|
37
60
|
source: "changed_file" | "technology" | "concern" | "stack";
|
|
38
61
|
trigger: string;
|
|
39
62
|
}
|
|
63
|
+
/** Declarações que a selecção aceita — o vocabulário está em sbd://toe/activation-vocabulary. */
|
|
64
|
+
export interface DeclaredActivators {
|
|
65
|
+
concerns: string[];
|
|
66
|
+
exposure?: string;
|
|
67
|
+
data_sensitivity?: string;
|
|
68
|
+
technologies: string[];
|
|
69
|
+
changed_files: string[];
|
|
70
|
+
}
|
|
71
|
+
/** Resposta a uma chamada sem declarações: pedido de declaração, não resultado. */
|
|
72
|
+
export interface NeedsInput {
|
|
73
|
+
reason: string;
|
|
74
|
+
declared: DeclaredActivators;
|
|
75
|
+
vocabulary_resource: string;
|
|
76
|
+
candidates_to_confirm: {
|
|
77
|
+
note: string;
|
|
78
|
+
from_task_text: string[];
|
|
79
|
+
};
|
|
80
|
+
example: {
|
|
81
|
+
tool: string;
|
|
82
|
+
with: string;
|
|
83
|
+
note: string;
|
|
84
|
+
};
|
|
85
|
+
baseline_escape_hatch: {
|
|
86
|
+
tool: string;
|
|
87
|
+
with: string;
|
|
88
|
+
note: string;
|
|
89
|
+
};
|
|
90
|
+
}
|
|
40
91
|
export interface SelectionResult {
|
|
41
92
|
risk_level: SelectionRiskLevel;
|
|
42
93
|
eligible_count: number;
|
|
@@ -69,6 +120,16 @@ export interface SelectionResult {
|
|
|
69
120
|
activation: ActivationResult;
|
|
70
121
|
input: NormalizedInput;
|
|
71
122
|
notes: string[];
|
|
123
|
+
/** Modo efectivo desta selecção (0.20.0-beta.21). */
|
|
124
|
+
mode: SelectionMode;
|
|
125
|
+
/** Presente quando nada foi declarado no modo declarativo: pedido de declaração + aula. */
|
|
126
|
+
needs_input?: NeedsInput;
|
|
127
|
+
/** O `task` é contexto registado, não motor (excepto em discover). */
|
|
128
|
+
task_record: {
|
|
129
|
+
text: string;
|
|
130
|
+
role: "recorded_context";
|
|
131
|
+
affects_selection: boolean;
|
|
132
|
+
};
|
|
72
133
|
}
|
|
73
134
|
export interface SelectionContextInput {
|
|
74
135
|
task?: string;
|
|
@@ -78,6 +139,8 @@ export interface SelectionContextInput {
|
|
|
78
139
|
data_sensitivity?: string;
|
|
79
140
|
concerns?: string[];
|
|
80
141
|
changed_files?: string[];
|
|
142
|
+
/** 0.20.0-beta.21 — default `declarative`. */
|
|
143
|
+
mode?: SelectionMode;
|
|
81
144
|
technologies?: string[];
|
|
82
145
|
}
|
|
83
146
|
/**
|
|
@@ -85,5 +148,7 @@ export interface SelectionContextInput {
|
|
|
85
148
|
* eligible exclusion is listed with a reason.
|
|
86
149
|
*/
|
|
87
150
|
export declare function runSelection(context: SelectionContextInput): SelectionResult;
|
|
151
|
+
/** Tecnologias declaradas normalizadas: valor do vocabulário fechado, ou token exacto dentro do `stack`. */
|
|
152
|
+
export declare function normalizeDeclaredTechnologies(technologies: readonly string[], stack: string | undefined): string[];
|
|
88
153
|
/** Variant for callers that already ran the activation engine (prepare). */
|
|
89
|
-
export declare function runSelectionWithActivation(input: NormalizedInput, activation: ActivationResult,
|
|
154
|
+
export declare function runSelectionWithActivation(input: NormalizedInput, activation: ActivationResult, technologiesRaw?: readonly string[], mode?: SelectionMode): SelectionResult;
|
|
@@ -24,7 +24,7 @@ import { VALID_CONCERNS, activate, categoriesForConcerns, normalizeInput } from
|
|
|
24
24
|
import { bundlesForChangedFiles } from "../tools/map-review-scope.js";
|
|
25
25
|
/** Concern → the domain chapter(s) whose catalogue it activates (aligned with the
|
|
26
26
|
* ontology's `activation_examples` and the applicability model; audited table). */
|
|
27
|
-
const CONCERN_TO_DOMAIN_CHAPTERS = {
|
|
27
|
+
export const CONCERN_TO_DOMAIN_CHAPTERS = {
|
|
28
28
|
deployment: ["09-containers-imagens", "11-deploy-seguro"],
|
|
29
29
|
iac: ["08-iac-infraestrutura"],
|
|
30
30
|
build: ["07-cicd-seguro"],
|
|
@@ -77,6 +77,13 @@ const SESSION_SIGNAL_PATTERN = /sess[ãa]o|session|login|logout|sign.?in|\bjwt\b
|
|
|
77
77
|
* o filtro de nível continua a mandar em tudo o resto.
|
|
78
78
|
*/
|
|
79
79
|
const SES008_RULE_ID = "SES-008-por-tecnologia";
|
|
80
|
+
/**
|
|
81
|
+
* 0.20.0-beta.21: a regra do Author sobrevive à mudança de fronteira — passa a ser
|
|
82
|
+
* accionada pela TECNOLOGIA DECLARADA (`technologies: ["jwt"]`, valor publicado no
|
|
83
|
+
* vocabulário) em vez de por regex sobre a prosa da tarefa. Em `discover` o gatilho
|
|
84
|
+
* lexical histórico continua a valer.
|
|
85
|
+
*/
|
|
86
|
+
export const SES008_TECHNOLOGY = "jwt";
|
|
80
87
|
const SES008_TECH_PATTERN = /\bjwt\b|token de utilizador|user token|bearer token|refresh token/i;
|
|
81
88
|
const AGENTIC_WAVE_PATTERN = /\bagente|\bagent\b|agêntic|agentic|autonom|kill.?switch|mandate|tool.?call/i;
|
|
82
89
|
const LEXICAL_SOURCES = new Set(["task_term", "alias_expansion", "compound_term", "intent_keyword"]);
|
|
@@ -120,6 +127,7 @@ function activateChapters(input, technologies, activation) {
|
|
|
120
127
|
* eligible exclusion is listed with a reason.
|
|
121
128
|
*/
|
|
122
129
|
export function runSelection(context) {
|
|
130
|
+
const mode = context.mode ?? "declarative";
|
|
123
131
|
const input = normalizeInput({
|
|
124
132
|
task: context.task ?? "",
|
|
125
133
|
risk_level: context.risk_level,
|
|
@@ -129,12 +137,115 @@ export function runSelection(context) {
|
|
|
129
137
|
...(context.concerns ? { concerns: context.concerns } : {}),
|
|
130
138
|
...(context.changed_files ? { changed_files: context.changed_files } : {}),
|
|
131
139
|
});
|
|
132
|
-
|
|
133
|
-
|
|
140
|
+
// No caminho declarativo o motor lexical não corre: nem termos da tarefa, nem
|
|
141
|
+
// aliases sobre a prosa, nem heurísticas de NOME de ficheiro (a tabela de PATHS
|
|
142
|
+
// continua, que essa é dado publicado, não interpretação).
|
|
143
|
+
const activation = activate(input, { declaredOnly: mode !== "discover" });
|
|
144
|
+
return runSelectionWithActivation(input, activation, context.technologies ?? [], mode);
|
|
145
|
+
}
|
|
146
|
+
/** Tecnologias declaradas normalizadas: valor do vocabulário fechado, ou token exacto dentro do `stack`. */
|
|
147
|
+
export function normalizeDeclaredTechnologies(technologies, stack) {
|
|
148
|
+
const out = new Set();
|
|
149
|
+
for (const t of technologies) {
|
|
150
|
+
const key = t.trim().toLowerCase();
|
|
151
|
+
if (key in TECHNOLOGY_TO_CHAPTERS || key === SES008_TECHNOLOGY)
|
|
152
|
+
out.add(key);
|
|
153
|
+
}
|
|
154
|
+
// `stack` é texto livre: só conta quando traz um valor do vocabulário como TOKEN
|
|
155
|
+
// exacto — normalizar o declarado é legítimo, adivinhar prosa não.
|
|
156
|
+
const stackTokens = (stack ?? "").toLowerCase().split(/[^a-z0-9-]+/).filter(Boolean);
|
|
157
|
+
for (const token of stackTokens) {
|
|
158
|
+
if (token in TECHNOLOGY_TO_CHAPTERS || token === SES008_TECHNOLOGY)
|
|
159
|
+
out.add(token);
|
|
160
|
+
}
|
|
161
|
+
return [...out].sort();
|
|
162
|
+
}
|
|
163
|
+
function declaredActivatorsOf(input, technologies) {
|
|
164
|
+
return {
|
|
165
|
+
concerns: [...input.concerns],
|
|
166
|
+
...(input.exposure ? { exposure: input.exposure } : {}),
|
|
167
|
+
...(input.data_sensitivity ? { data_sensitivity: input.data_sensitivity } : {}),
|
|
168
|
+
technologies: [...technologies],
|
|
169
|
+
changed_files: [...input.changed_files],
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
function hasAnyDeclaration(d) {
|
|
173
|
+
return (d.concerns.length > 0 ||
|
|
174
|
+
d.exposure !== undefined ||
|
|
175
|
+
d.data_sensitivity !== undefined ||
|
|
176
|
+
d.technologies.length > 0 ||
|
|
177
|
+
d.changed_files.length > 0);
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* A aula do `needs_input`: vocabulário aplicável + candidatos DERIVADOS do texto da
|
|
181
|
+
* tarefa marcados como SUGESTÃO A CONFIRMAR (nunca selecção) + um exemplo copiável.
|
|
182
|
+
* Os candidatos saem do mesmo motor lexical do `discover` — mas aqui não seleccionam
|
|
183
|
+
* nada: são uma proposta ao LLM, que é quem tem o contexto para confirmar.
|
|
184
|
+
*/
|
|
185
|
+
function buildNeedsInput(input, declared) {
|
|
186
|
+
const exploratory = activate({ ...input, concerns: [] }, { declaredOnly: false });
|
|
187
|
+
const suggested = [...new Set(exploratory.concerns.map(String))].sort();
|
|
188
|
+
const exampleConcerns = suggested.slice(0, 3);
|
|
189
|
+
const level = input.risk_level ?? "L2";
|
|
190
|
+
return {
|
|
191
|
+
reason: "Nenhum activador DECLARADO nesta chamada. O servidor não interpreta prosa: não adivinha o âmbito a partir do `task`, e não devolve zero em silêncio. Declara o que a tua leitura do pedido justifica — tu tens o contexto (código, ticket, conversa) que o servidor nunca terá.",
|
|
192
|
+
declared,
|
|
193
|
+
vocabulary_resource: "sbd://toe/activation-vocabulary",
|
|
194
|
+
candidates_to_confirm: {
|
|
195
|
+
note: "SUGESTÃO A CONFIRMAR, não selecção: derivada do texto do `task` pelo motor exploratório. Confirma (ou corrige) e declara em `concerns` — a decisão é tua.",
|
|
196
|
+
from_task_text: suggested,
|
|
197
|
+
},
|
|
198
|
+
example: {
|
|
199
|
+
tool: "select_sbd_toe_requirements",
|
|
200
|
+
with: exampleConcerns.length > 0
|
|
201
|
+
? `risk_level="${level}", concerns=[${exampleConcerns.join(", ")}]`
|
|
202
|
+
: `risk_level="${level}", concerns=[auth, logging]`,
|
|
203
|
+
note: "Exemplo copiável: lê sbd://toe/activation-vocabulary (via read_sbd_toe_resource), escolhe os valores que a tua leitura justifica e re-chama com eles.",
|
|
204
|
+
},
|
|
205
|
+
baseline_escape_hatch: {
|
|
206
|
+
tool: "select_sbd_toe_requirements",
|
|
207
|
+
with: `risk_level="${level}", mode="baseline"`,
|
|
208
|
+
note: "Queres a baseline completa do nível, sem contexto? Pede-a EXPLICITAMENTE — nunca aparece como fallback.",
|
|
209
|
+
},
|
|
210
|
+
};
|
|
134
211
|
}
|
|
135
212
|
/** Variant for callers that already ran the activation engine (prepare). */
|
|
136
|
-
export function runSelectionWithActivation(input, activation,
|
|
213
|
+
export function runSelectionWithActivation(input, activation, technologiesRaw = [], mode = "declarative") {
|
|
137
214
|
const level = (input.risk_level ?? "L2");
|
|
215
|
+
const declarative = mode !== "discover";
|
|
216
|
+
const technologies = declarative ? normalizeDeclaredTechnologies(technologiesRaw, input.stack) : technologiesRaw;
|
|
217
|
+
const declared = declaredActivatorsOf(input, technologies);
|
|
218
|
+
const taskRecord = {
|
|
219
|
+
text: input.taskTrimmed,
|
|
220
|
+
role: "recorded_context",
|
|
221
|
+
affects_selection: mode === "discover",
|
|
222
|
+
};
|
|
223
|
+
// Sem NADA declarado no caminho declarativo: pedido de declaração, não resultado.
|
|
224
|
+
// (Em `baseline` o chamador pediu explicitamente a baseline do nível — segue.)
|
|
225
|
+
if (mode === "declarative" && !hasAnyDeclaration(declared)) {
|
|
226
|
+
const ontologyForEmpty = getOntologyData();
|
|
227
|
+
const eligible = ontologyForEmpty.requirements.filter((r) => r.type === "base" && r.applicable_levels?.[level] === true).length;
|
|
228
|
+
return {
|
|
229
|
+
risk_level: level,
|
|
230
|
+
eligible_count: eligible,
|
|
231
|
+
selected: [],
|
|
232
|
+
narrowed_out: [],
|
|
233
|
+
excluded_by_level: [],
|
|
234
|
+
basis_summary: { declared: 0, lexical_only: 0, lexical_share: 0 },
|
|
235
|
+
lexical_dominance_warning: null,
|
|
236
|
+
empty_selection_warning: null,
|
|
237
|
+
activated_chapters: [],
|
|
238
|
+
activated_categories: [],
|
|
239
|
+
activation,
|
|
240
|
+
input,
|
|
241
|
+
notes: [
|
|
242
|
+
"needs_input: nenhuma declaração recebida — o servidor responde ao declarado e não interpreta o `task` (modo declarativo, contrato v1.18-beta).",
|
|
243
|
+
],
|
|
244
|
+
mode,
|
|
245
|
+
needs_input: buildNeedsInput(input, declared),
|
|
246
|
+
task_record: taskRecord,
|
|
247
|
+
};
|
|
248
|
+
}
|
|
138
249
|
const ontology = getOntologyData();
|
|
139
250
|
const atLevel = (r) => r.applicable_levels?.[level] === true;
|
|
140
251
|
const activatedChapters = activateChapters(input, technologies, activation);
|
|
@@ -159,6 +270,8 @@ export function runSelectionWithActivation(input, activation, technologies = [])
|
|
|
159
270
|
!domainEligible.includes(r) &&
|
|
160
271
|
AGENTIC_WAVE_PATTERN.test(`${r.name} ${r.description ?? ""}`))
|
|
161
272
|
: [];
|
|
273
|
+
// `mode: "baseline"` — pedido EXPLÍCITO da baseline do nível (nunca fallback).
|
|
274
|
+
const baselineMode = mode === "baseline";
|
|
162
275
|
// Layer 2 — narrowing into the two declared bands.
|
|
163
276
|
const selected = [];
|
|
164
277
|
const narrowedByCategory = new Map();
|
|
@@ -172,7 +285,9 @@ export function runSelectionWithActivation(input, activation, technologies = [])
|
|
|
172
285
|
selection_trace: trace,
|
|
173
286
|
});
|
|
174
287
|
};
|
|
175
|
-
|
|
288
|
+
// R2 existia para remendar o casamento de palavras (SES espúrio do replay DualGauge).
|
|
289
|
+
// Sem motor lexical não há nada a remendar: só corre em `discover`.
|
|
290
|
+
const sessionSignals = mode === "discover" && SESSION_SIGNAL_PATTERN.test(input.task ?? "");
|
|
176
291
|
let r2Applied = false;
|
|
177
292
|
for (const r of baselineEligible) {
|
|
178
293
|
const signal = concernByCategory.get(r.category);
|
|
@@ -181,7 +296,19 @@ export function runSelectionWithActivation(input, activation, technologies = [])
|
|
|
181
296
|
// (exposure/data_sensitivity): o replay DualGauge usa exposure=public e o seu SES
|
|
182
297
|
// espúrio TEM de continuar a cair. concerns=["auth"] do utilizador preserva SES.
|
|
183
298
|
const sesDeclaredBase = activation.trace.some((t) => t.produced === "auth" && t.source === "explicit_concern");
|
|
184
|
-
if (
|
|
299
|
+
if (baselineMode) {
|
|
300
|
+
pushSelected(r, [
|
|
301
|
+
{
|
|
302
|
+
layer: "baseline",
|
|
303
|
+
source: "risk_level",
|
|
304
|
+
trigger: level,
|
|
305
|
+
score: 1,
|
|
306
|
+
reason: `baseline cap. 02 (${level}) devolvida por PEDIDO EXPLÍCITO (mode="baseline") — sem contexto, sem narrowing`,
|
|
307
|
+
},
|
|
308
|
+
]);
|
|
309
|
+
continue;
|
|
310
|
+
}
|
|
311
|
+
if (mode === "discover" && r.category === "SES" && !sessionSignals && !sesDeclaredBase && (signal || activatedCategories.has(r.category))) {
|
|
185
312
|
// R2: SES elegível com sinal de categoria (via auth LEXICAL) e SEM sinal de sessão.
|
|
186
313
|
r2Applied = true;
|
|
187
314
|
const list = narrowedByCategory.get(r.category) ?? [];
|
|
@@ -272,7 +399,9 @@ export function runSelectionWithActivation(input, activation, technologies = [])
|
|
|
272
399
|
}
|
|
273
400
|
// SES-008-por-tecnologia (Author): JWT/user-token signal selects SES-008 at any level.
|
|
274
401
|
let ses008Applied = false;
|
|
275
|
-
|
|
402
|
+
const ses008Declared = technologies.includes(SES008_TECHNOLOGY);
|
|
403
|
+
const ses008Triggered = declarative ? ses008Declared : SES008_TECH_PATTERN.test(input.task ?? "");
|
|
404
|
+
if (ses008Triggered && !selected.some((s) => s.requirement_id === "SES-008")) {
|
|
276
405
|
const r = ontology.requirements.find((x) => x.requirement_id === "SES-008");
|
|
277
406
|
if (r) {
|
|
278
407
|
pushSelected(r, [
|
|
@@ -281,7 +410,9 @@ export function runSelectionWithActivation(input, activation, technologies = [])
|
|
|
281
410
|
source: "named_rule",
|
|
282
411
|
trigger: SES008_RULE_ID,
|
|
283
412
|
score: 0.95,
|
|
284
|
-
reason:
|
|
413
|
+
reason: declarative
|
|
414
|
+
? "regra nomeada SES-008-por-tecnologia (decisão do Author, 2026-08-31): a tecnologia DECLARADA `jwt` activa SES-008 independentemente do nível — a tecnologia impõe a guidance de scope/TTL/revogação"
|
|
415
|
+
: "regra nomeada SES-008-por-tecnologia (decisão do Author, 2026-08-31): o sinal JWT/token de utilizador activa SES-008 independentemente do nível — a tecnologia impõe a guidance de scope/TTL/revogação",
|
|
285
416
|
},
|
|
286
417
|
]);
|
|
287
418
|
ses008Applied = true;
|
|
@@ -299,15 +430,20 @@ export function runSelectionWithActivation(input, activation, technologies = [])
|
|
|
299
430
|
}
|
|
300
431
|
// 0.19.0: basis por entrada (ponto único) + sumário + aviso de dominância lexical.
|
|
301
432
|
for (const sreq of selected) {
|
|
433
|
+
// No caminho declarativo o campo mantém-se por estabilidade de contrato, com
|
|
434
|
+
// valor único `declared`: por construção nenhuma fonte lexical corre.
|
|
302
435
|
for (const t of sreq.selection_trace)
|
|
303
|
-
t.basis = basisOfSource(t.source);
|
|
436
|
+
t.basis = declarative ? "declared" : basisOfSource(t.source);
|
|
304
437
|
}
|
|
305
438
|
const declaredCount = selected.filter((sreq) => sreq.selection_trace.some((t) => t.basis === "declared")).length;
|
|
306
439
|
const lexicalOnlyCount = selected.length - declaredCount;
|
|
307
440
|
const lexicalShare = selected.length > 0 ? lexicalOnlyCount / selected.length : 0;
|
|
308
441
|
const LEXICAL_DOMINANCE_THRESHOLD = 0.5; // declarado: metade da selecção só-lexical dispara o aviso
|
|
309
442
|
const lexicalConcerns = [...new Set(activation.trace.filter((t) => LEXICAL_SOURCES.has(t.source)).map((t) => t.produced))];
|
|
310
|
-
|
|
443
|
+
// 0.20.0-beta.21: os avisos de dominância/vazio existiam para gerir um default
|
|
444
|
+
// inferencial. No caminho declarativo esse default deixou de existir (a ausência
|
|
445
|
+
// de sinal é `needs_input`), logo os avisos perdem OBJECTO — só em `discover`.
|
|
446
|
+
const lexical_dominance_warning = mode === "discover" && lexicalShare > LEXICAL_DOMINANCE_THRESHOLD
|
|
311
447
|
? {
|
|
312
448
|
lexical_share: Math.round(lexicalShare * 100) / 100,
|
|
313
449
|
threshold: LEXICAL_DOMINANCE_THRESHOLD,
|
|
@@ -334,7 +470,7 @@ export function runSelectionWithActivation(input, activation, technologies = [])
|
|
|
334
470
|
.sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]))
|
|
335
471
|
.map(([c]) => c)
|
|
336
472
|
: [];
|
|
337
|
-
const empty_selection_warning = selected.length === 0 && narrowedTotalCount > 0
|
|
473
|
+
const empty_selection_warning = mode === "discover" && selected.length === 0 && narrowedTotalCount > 0
|
|
338
474
|
? {
|
|
339
475
|
note: "SELECÇÃO VAZIA com candidatos elegíveis — isto é um ALARME, não um resultado: a redacção da tarefa não casou nenhum sinal. Re-corre com concerns EXPLÍCITOS (candidatos derivados das categorias arrumadas).",
|
|
340
476
|
narrowed_categories: narrowedCats,
|
|
@@ -370,10 +506,12 @@ export function runSelectionWithActivation(input, activation, technologies = [])
|
|
|
370
506
|
category,
|
|
371
507
|
count: ids.length,
|
|
372
508
|
requirement_ids: ids.sort(),
|
|
373
|
-
basis: "lexical",
|
|
374
|
-
reason:
|
|
375
|
-
?
|
|
376
|
-
:
|
|
509
|
+
basis: (declarative ? "declared" : "lexical"),
|
|
510
|
+
reason: declarative
|
|
511
|
+
? `elegível na baseline ${level} (cap. 02) e não coberta por nenhuma declaração desta chamada (concerns/exposure/data_sensitivity/technologies/changed_files) — exclusão DETERMINÍSTICA e estável à redacção: declara o concern da categoria para a trazer`
|
|
512
|
+
: category === "SES" && r2Applied
|
|
513
|
+
? `${R2_RULE_ID} (decisão pós-P2 2026-08-31): sem sinais de sessão/login/token de utilizador na tarefa, SES-* sai por narrowing declarado (o concernsMap do loader mantém auth → [AUT, ACC, SES]); com esses sinais na tarefa, fica`
|
|
514
|
+
: `elegível na baseline ${level} (cap. 02) sem sinal na tarefa/contexto — exclusão SENSÍVEL À REDACÇÃO da tarefa (não é regra de domínio): reescrever a frase ou declarar concerns explícitos pode trazê-la de volta; nunca em silêncio`,
|
|
377
515
|
}));
|
|
378
516
|
const notes = [];
|
|
379
517
|
if (r1Added > 0) {
|
|
@@ -402,6 +540,8 @@ export function runSelectionWithActivation(input, activation, technologies = [])
|
|
|
402
540
|
activation,
|
|
403
541
|
input,
|
|
404
542
|
notes,
|
|
543
|
+
mode,
|
|
544
|
+
task_record: taskRecord,
|
|
405
545
|
};
|
|
406
546
|
}
|
|
407
547
|
//# sourceMappingURL=selection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection.js","sourceRoot":"","sources":["../../src/serving/selection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"selection.js","sourceRoot":"","sources":["../../src/serving/selection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import type { Affordance } from "../serving/protocol-envelope.js";
|
|
2
2
|
type BundleCategory = "foundation" | "domain" | "operational";
|
|
3
|
+
interface PatternRule {
|
|
4
|
+
pattern: string;
|
|
5
|
+
bundles: string[];
|
|
6
|
+
matches: (normalizedPath: string) => boolean;
|
|
7
|
+
}
|
|
3
8
|
/**
|
|
4
9
|
* Chapters a set of changed files maps to, per the audited PATTERN_RULES table
|
|
5
10
|
* (exported for the MP1 selection engine — the same path→bundle knowledge the
|
|
6
11
|
* review scope uses; single source of truth).
|
|
7
12
|
*/
|
|
8
13
|
export declare function bundlesForChangedFiles(files: readonly string[]): Map<string, string[]>;
|
|
14
|
+
export declare const PATTERN_RULES: PatternRule[];
|
|
9
15
|
interface BundleToReview {
|
|
10
16
|
chapterId: string;
|
|
11
17
|
readableTitle: string;
|
|
@@ -131,7 +131,7 @@ export function bundlesForChangedFiles(files) {
|
|
|
131
131
|
}
|
|
132
132
|
return out;
|
|
133
133
|
}
|
|
134
|
-
const PATTERN_RULES = [
|
|
134
|
+
export const PATTERN_RULES = [
|
|
135
135
|
{
|
|
136
136
|
pattern: "src/config.ts",
|
|
137
137
|
bundles: ["02-requisitos-seguranca", "06-desenvolvimento-seguro", "08-iac-infraestrutura", "10-testes-seguranca"],
|