@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.
@@ -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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"}
@@ -64,6 +64,19 @@ export interface PrepareCodegenContextInput {
64
64
  data_sensitivity?: "low" | "personal" | "regulated" | "secrets";
65
65
  concerns?: string[];
66
66
  changed_files?: string[];
67
+ /**
68
+ * 0.20.0-beta.21 — semântica da SELECÇÃO (não confundir com `mode`, que é
69
+ * codegen/review/test-plan): `declarative` (default) responde ao declarado e não
70
+ * interpreta o `task`; `discover` corre o motor inferencial histórico, marcado
71
+ * exploratório. Vocabulário: sbd://toe/activation-vocabulary.
72
+ */
73
+ selection_mode?: "declarative" | "discover";
74
+ /**
75
+ * 0.20.0-beta.21 — tecnologias DECLARADAS do vocabulário fechado
76
+ * (sbd://toe/activation-vocabulary): activam capítulos por tabela publicada.
77
+ * Substituem o casamento de substring sobre o texto livre de `stack`.
78
+ */
79
+ technologies?: string[];
67
80
  regulatory_frameworks?: string[];
68
81
  include_regulatory_overlay?: boolean;
69
82
  detail?: CodegenDetailLevel;
@@ -77,7 +90,7 @@ export interface PrepareCodegenContextInput {
77
90
  include_relations?: boolean;
78
91
  debug?: boolean;
79
92
  }
80
- export type PrepareCodegenStatus = "ready_for_codegen" | "needs_clarification" | "needs_decomposition" | "unsupported_scope";
93
+ export type PrepareCodegenStatus = "ready_for_codegen" | "needs_clarification" | "needs_input" | "needs_decomposition" | "unsupported_scope";
81
94
  export interface ActivationTraceEntry {
82
95
  /** Triggered by: explicit concern, task term, changed file, framework hint, semantic alias, compound term, or intent keyword. */
83
96
  source: "explicit_concern" | "task_term" | "compound_term" | "alias_expansion" | "intent_keyword" | "changed_file" | "regulatory_framework" | "risk_level" | "exposure" | "data_sensitivity" | "context_chapter" | "scope_gate";
@@ -308,7 +321,7 @@ export interface PrepareCodegenContextResultReady {
308
321
  };
309
322
  }
310
323
  export interface PrepareCodegenContextResultBlocked {
311
- status: "needs_clarification" | "needs_decomposition" | "unsupported_scope";
324
+ status: "needs_clarification" | "needs_decomposition" | "unsupported_scope" | "needs_input";
312
325
  /** 0.19.4: presente quando o bloqueio é o TECTO DE REQUISITOS por detail (a
313
326
  * promessa de tokens do nível dieted): limite derivado da medição, projecção
314
327
  * de custo, e lotes de divisão ensinados (concerns por área, estimados). */
@@ -784,6 +797,21 @@ export interface PrepareCodegenContextResultReadyDieted {
784
797
  export type PrepareCodegenContextResult = PrepareCodegenContextResultReady | PrepareCodegenContextResultReadyDieted | PrepareCodegenContextResultBlocked;
785
798
  export declare const VALID_CONCERNS: readonly ["auth", "logging", "validation", "api", "config", "integrity", "distribution", "ide", "requirements", "architecture", "iac", "encryption", "secrets", "build", "supply_chain", "testing", "threat_modeling", "monitoring", "release", "deployment", "integration", "files", "privacy", "agents"];
786
799
  export type Concern = (typeof VALID_CONCERNS)[number];
800
+ /**
801
+ * Supplements the legacy `ontology.concernsMap` (which only knows the original
802
+ * 12 concerns) with mappings for the WP5 concerns that target runtime v0
803
+ * categories. Keys are concerns added by this module. The categories map to
804
+ * existing runtime v0 categories so the v0 requirement filter still works.
805
+ */
806
+ /**
807
+ * Declared context activators (G-mp1a/D3). Module scope + exported since
808
+ * 0.20.0-beta.21 (declarative-first): `sbd://toe/activation-vocabulary` publishes
809
+ * them — the vocabulary IS the contract, so it is derived from these tables and
810
+ * never restated by hand.
811
+ */
812
+ export declare const EXPOSURE_CONCERNS: Readonly<Record<string, readonly Concern[]>>;
813
+ export declare const SENSITIVITY_CONCERNS: Readonly<Record<string, readonly Concern[]>>;
814
+ export declare const CONCERN_TO_V0_CATEGORIES_SUPPLEMENT: Readonly<Record<Concern, string[]>>;
787
815
  export interface NormalizedInput {
788
816
  task: string;
789
817
  taskTrimmed: string;
@@ -820,7 +848,9 @@ export interface ActivationResult {
820
848
  /** Per-slice-family aggregated score. */
821
849
  sliceFamilyScores: Map<string, number>;
822
850
  }
823
- export declare function activate(input: NormalizedInput): ActivationResult;
851
+ export declare function activate(input: NormalizedInput, options?: {
852
+ declaredOnly?: boolean;
853
+ }): ActivationResult;
824
854
  export declare function categoriesForConcerns(concerns: Concern[]): Set<string>;
825
855
  /**
826
856
  * Conditions under which a conditional instruction slot is included inline at
@@ -33,7 +33,7 @@ import { servedKgReleaseTag } from "../version-info.js";
33
33
  import { expandQueryWithAliases } from "../backend/semantic-index-gateway.js";
34
34
  import { requirementCategoryOf } from "../serving/requirement-id.js";
35
35
  import { prepareCodegenAffordances } from "../serving/affordances.js";
36
- import { runSelectionWithActivation } from "../serving/selection.js";
36
+ import { runSelection, runSelectionWithActivation, normalizeDeclaredTechnologies } from "../serving/selection.js";
37
37
  import { REQUIREMENT_CEILING_BY_DETAIL, COST_PER_REQ_TK, BASE_TK, PAYLOAD_PROMISE_TK, projectedCostTk } from "../serving/payload-ceilings.js";
38
38
  const EVIDENCE_PATTERN_CAP = 25;
39
39
  /**
@@ -275,7 +275,24 @@ const TASK_TERM_TO_CONCERNS = [
275
275
  * categories. Keys are concerns added by this module. The categories map to
276
276
  * existing runtime v0 categories so the v0 requirement filter still works.
277
277
  */
278
- const CONCERN_TO_V0_CATEGORIES_SUPPLEMENT = {
278
+ /**
279
+ * Declared context activators (G-mp1a/D3). Module scope + exported since
280
+ * 0.20.0-beta.21 (declarative-first): `sbd://toe/activation-vocabulary` publishes
281
+ * them — the vocabulary IS the contract, so it is derived from these tables and
282
+ * never restated by hand.
283
+ */
284
+ export const EXPOSURE_CONCERNS = {
285
+ internal: ["auth", "logging"],
286
+ authenticated: ["auth", "logging"],
287
+ public: ["auth", "logging", "api", "validation", "architecture"]
288
+ };
289
+ export const SENSITIVITY_CONCERNS = {
290
+ // v1.8.0: personal/regulated data now also activates the PRI catalogue (privacy).
291
+ personal: ["encryption", "validation", "logging", "privacy"],
292
+ regulated: ["encryption", "validation", "logging", "privacy"],
293
+ secrets: ["secrets"]
294
+ };
295
+ export const CONCERN_TO_V0_CATEGORIES_SUPPLEMENT = {
279
296
  // Existing concerns intentionally left empty — fall back to ontology.concernsMap.
280
297
  auth: [],
281
298
  logging: [],
@@ -589,7 +606,8 @@ function recordActivation(trace, concerns, scores, rejected, entry, targetConcer
589
606
  trace.push(entry);
590
607
  }
591
608
  }
592
- export function activate(input) {
609
+ export function activate(input, options = {}) {
610
+ const declaredOnly = options.declaredOnly ?? false;
593
611
  const trace = [];
594
612
  const rejected = [];
595
613
  const notes = [];
@@ -616,110 +634,118 @@ export function activate(input) {
616
634
  reason: `Concern '${unknown}' is not in the WP5/WP6 lexicon (${VALID_CONCERNS.join(", ")}).`
617
635
  });
618
636
  }
619
- // 2) Alias expansion + direct task-term matches.
620
- const { expanded, appliedAliases } = expandTaskText(input.taskLower);
621
- for (const alias of appliedAliases) {
622
- notes.push(`alias_expansion: '${alias.pt}' -> [${alias.en.join(", ")}]`);
623
- }
624
- // 2a) Compound phrases (run first — they encode canonical multi-domain asks).
625
- // Whole-word match prevents accidental hits inside larger tokens.
626
- for (const [phrase, mapped] of COMPOUND_TERM_TO_CONCERNS) {
627
- if (!taskMatchesKeyword(expanded, phrase))
628
- continue;
629
- for (const concern of mapped) {
630
- recordActivation(trace, concerns, concernScores, rejected, {
631
- source: "compound_term",
632
- produced: concern,
633
- trigger: phrase,
634
- score: 0.7,
635
- confidence: "semantic",
636
- reason: `Compound phrase '${phrase}' activates ${concern}.`
637
- }, concern, { capDuplicates: true });
638
- }
639
- }
640
- // 2b) Single-token task terms. Whole-word matching prevents false positives
641
- // like `test` inside `latest` or `log` inside `logical`.
642
- for (const [term, mapped] of TASK_TERM_TO_CONCERNS) {
643
- if (!taskMatchesKeyword(expanded, term))
644
- continue;
645
- const viaAlias = !taskMatchesKeyword(input.taskLower, term) &&
646
- appliedAliases.some((alias) => alias.en.includes(term));
647
- for (const concern of mapped) {
648
- recordActivation(trace, concerns, concernScores, rejected, {
649
- source: viaAlias ? "alias_expansion" : "task_term",
650
- produced: concern,
651
- trigger: term,
652
- score: viaAlias ? 0.6 : 0.8,
653
- confidence: viaAlias ? "semantic" : "deterministic",
654
- reason: viaAlias
655
- ? `Task text matches '${term}' after PT/EN alias expansion.`
656
- : `Task text contains '${term}'.`
657
- }, concern, { capDuplicates: true });
637
+ // 0.20.0-beta.21 — DECLARATIVO PRIMEIRO: tudo o que se segue até ao bloco 4 é
638
+ // INFERÊNCIA SOBRE PROSA/PATHS (termos da tarefa, aliases, compostos, homónimo
639
+ // da imagem, intenções, e as heurísticas de NOME de ficheiro). No caminho
640
+ // declarativo (default nesta linha) NÃO corre: o servidor responde ao que lhe
641
+ // declararam. Fica disponível em mode="discover" — instrumento de investigação
642
+ // (oráculo histórico + estudo de paráfrase), marcado exploratório na resposta.
643
+ if (!declaredOnly) {
644
+ // 2) Alias expansion + direct task-term matches.
645
+ const { expanded, appliedAliases } = expandTaskText(input.taskLower);
646
+ for (const alias of appliedAliases) {
647
+ notes.push(`alias_expansion: '${alias.pt}' -> [${alias.en.join(", ")}]`);
658
648
  }
659
- }
660
- // 2b-bis) R-image (vaga v1.8.0, 2026-08-31): "image"/"imagem" é homónimo —
661
- // imagem de container vs ficheiro de imagem (finding do replay DualGauge).
662
- // Desambiguação DECLARADA por contexto: image+docker/registry/container → sentido
663
- // container (deployment/distribution); image+file/upload/photo → FIL (files);
664
- // ambos os contextos → ambos; nenhum → sentido histórico (deployment/distribution).
665
- if (taskMatchesKeyword(expanded, "image")) {
666
- const containerCtx = /docker|registry|container|kubernetes|k8s|\boci\b/.test(expanded);
667
- const fileCtx = /upload|file|photo|picture|png|jpe?g|gif|avatar|galeria|gallery|perfil|profile/.test(expanded);
668
- const senses = [];
669
- if (fileCtx) {
670
- senses.push({ concern: "files", reason: "R-image: 'image' em contexto file/upload/photo → ficheiro de imagem (FIL)" });
649
+ // 2a) Compound phrases (run first — they encode canonical multi-domain asks).
650
+ // Whole-word match prevents accidental hits inside larger tokens.
651
+ for (const [phrase, mapped] of COMPOUND_TERM_TO_CONCERNS) {
652
+ if (!taskMatchesKeyword(expanded, phrase))
653
+ continue;
654
+ for (const concern of mapped) {
655
+ recordActivation(trace, concerns, concernScores, rejected, {
656
+ source: "compound_term",
657
+ produced: concern,
658
+ trigger: phrase,
659
+ score: 0.7,
660
+ confidence: "semantic",
661
+ reason: `Compound phrase '${phrase}' activates ${concern}.`
662
+ }, concern, { capDuplicates: true });
663
+ }
671
664
  }
672
- if (containerCtx || !fileCtx) {
673
- senses.push({ concern: "deployment", reason: containerCtx ? "R-image: 'image' em contexto docker/registry/container → imagem de container" : "R-image: 'image' sem contexto discriminante → sentido histórico (deployment)" }, { concern: "distribution", reason: containerCtx ? "R-image: 'image' em contexto docker/registry/container → distribuição de imagem" : "R-image: 'image' sem contexto discriminante → sentido histórico (distribution)" });
665
+ // 2b) Single-token task terms. Whole-word matching prevents false positives
666
+ // like `test` inside `latest` or `log` inside `logical`.
667
+ for (const [term, mapped] of TASK_TERM_TO_CONCERNS) {
668
+ if (!taskMatchesKeyword(expanded, term))
669
+ continue;
670
+ const viaAlias = !taskMatchesKeyword(input.taskLower, term) &&
671
+ appliedAliases.some((alias) => alias.en.includes(term));
672
+ for (const concern of mapped) {
673
+ recordActivation(trace, concerns, concernScores, rejected, {
674
+ source: viaAlias ? "alias_expansion" : "task_term",
675
+ produced: concern,
676
+ trigger: term,
677
+ score: viaAlias ? 0.6 : 0.8,
678
+ confidence: viaAlias ? "semantic" : "deterministic",
679
+ reason: viaAlias
680
+ ? `Task text matches '${term}' after PT/EN alias expansion.`
681
+ : `Task text contains '${term}'.`
682
+ }, concern, { capDuplicates: true });
683
+ }
674
684
  }
675
- for (const { concern, reason } of senses) {
676
- recordActivation(trace, concerns, concernScores, rejected, { source: "task_term", produced: concern, trigger: "image", score: 0.8, confidence: "deterministic", reason }, concern, { capDuplicates: true });
685
+ // 2b-bis) R-image (vaga v1.8.0, 2026-08-31): "image"/"imagem" é homónimo —
686
+ // imagem de container vs ficheiro de imagem (finding do replay DualGauge).
687
+ // Desambiguação DECLARADA por contexto: image+docker/registry/container → sentido
688
+ // container (deployment/distribution); image+file/upload/photo → FIL (files);
689
+ // ambos os contextos → ambos; nenhum → sentido histórico (deployment/distribution).
690
+ if (taskMatchesKeyword(expanded, "image")) {
691
+ const containerCtx = /docker|registry|container|kubernetes|k8s|\boci\b/.test(expanded);
692
+ const fileCtx = /upload|file|photo|picture|png|jpe?g|gif|avatar|galeria|gallery|perfil|profile/.test(expanded);
693
+ const senses = [];
694
+ if (fileCtx) {
695
+ senses.push({ concern: "files", reason: "R-image: 'image' em contexto file/upload/photo → ficheiro de imagem (FIL)" });
696
+ }
697
+ if (containerCtx || !fileCtx) {
698
+ senses.push({ concern: "deployment", reason: containerCtx ? "R-image: 'image' em contexto docker/registry/container → imagem de container" : "R-image: 'image' sem contexto discriminante → sentido histórico (deployment)" }, { concern: "distribution", reason: containerCtx ? "R-image: 'image' em contexto docker/registry/container → distribuição de imagem" : "R-image: 'image' sem contexto discriminante → sentido histórico (distribution)" });
699
+ }
700
+ for (const { concern, reason } of senses) {
701
+ recordActivation(trace, concerns, concernScores, rejected, { source: "task_term", produced: concern, trigger: "image", score: 0.8, confidence: "deterministic", reason }, concern, { capDuplicates: true });
702
+ }
677
703
  }
678
- }
679
- // 2c) Whole-word intent classification (codegen-specific; stricter than the
680
- // gateway's substring matcher to avoid PT/EN false positives).
681
- for (const intentEntry of CODEGEN_INTENTS) {
682
- const matchedKeyword = intentEntry.keywords.find((keyword) => taskMatchesKeyword(expanded, keyword));
683
- if (!matchedKeyword)
684
- continue;
685
- for (const concern of intentEntry.concerns) {
686
- recordActivation(trace, concerns, concernScores, rejected, {
687
- source: "intent_keyword",
688
- produced: concern,
689
- trigger: intentEntry.intent,
690
- score: 0.5,
691
- confidence: "semantic",
692
- reason: `Intent '${intentEntry.intent}' matched keyword '${matchedKeyword}'.`
693
- }, concern, { capDuplicates: false });
704
+ // 2c) Whole-word intent classification (codegen-specific; stricter than the
705
+ // gateway's substring matcher to avoid PT/EN false positives).
706
+ for (const intentEntry of CODEGEN_INTENTS) {
707
+ const matchedKeyword = intentEntry.keywords.find((keyword) => taskMatchesKeyword(expanded, keyword));
708
+ if (!matchedKeyword)
709
+ continue;
710
+ for (const concern of intentEntry.concerns) {
711
+ recordActivation(trace, concerns, concernScores, rejected, {
712
+ source: "intent_keyword",
713
+ produced: concern,
714
+ trigger: intentEntry.intent,
715
+ score: 0.5,
716
+ confidence: "semantic",
717
+ reason: `Intent '${intentEntry.intent}' matched keyword '${matchedKeyword}'.`
718
+ }, concern, { capDuplicates: false });
719
+ }
694
720
  }
695
- }
696
- // 3) Changed-file path heuristics.
697
- for (const file of input.changed_files) {
698
- const lower = file.toLowerCase();
699
- const fileHits = [];
700
- if (/route|router|controller|handler|endpoint/.test(lower))
701
- fileHits.push("api");
702
- if (/auth|session|jwt|login/.test(lower))
703
- fileHits.push("auth");
704
- if (/log|logger/.test(lower))
705
- fileHits.push("logging");
706
- if (/config|env|settings/.test(lower))
707
- fileHits.push("config");
708
- if (/secret|credential/.test(lower))
709
- fileHits.push("secrets");
710
- if (/test|spec/.test(lower))
711
- fileHits.push("testing");
712
- if (/dockerfile|docker-compose|k8s|kubernetes|terraform/.test(lower))
713
- fileHits.push("deployment");
714
- for (const concern of fileHits) {
715
- recordActivation(trace, concerns, concernScores, rejected, {
716
- source: "changed_file",
717
- produced: concern,
718
- trigger: file,
719
- score: 0.5,
720
- confidence: "semantic",
721
- reason: `Changed file path matches '${concern}' heuristics.`
722
- }, concern, { capDuplicates: true });
721
+ // 3) Changed-file path heuristics.
722
+ for (const file of input.changed_files) {
723
+ const lower = file.toLowerCase();
724
+ const fileHits = [];
725
+ if (/route|router|controller|handler|endpoint/.test(lower))
726
+ fileHits.push("api");
727
+ if (/auth|session|jwt|login/.test(lower))
728
+ fileHits.push("auth");
729
+ if (/log|logger/.test(lower))
730
+ fileHits.push("logging");
731
+ if (/config|env|settings/.test(lower))
732
+ fileHits.push("config");
733
+ if (/secret|credential/.test(lower))
734
+ fileHits.push("secrets");
735
+ if (/test|spec/.test(lower))
736
+ fileHits.push("testing");
737
+ if (/dockerfile|docker-compose|k8s|kubernetes|terraform/.test(lower))
738
+ fileHits.push("deployment");
739
+ for (const concern of fileHits) {
740
+ recordActivation(trace, concerns, concernScores, rejected, {
741
+ source: "changed_file",
742
+ produced: concern,
743
+ trigger: file,
744
+ score: 0.5,
745
+ confidence: "semantic",
746
+ reason: `Changed file path matches '${concern}' heuristics.`
747
+ }, concern, { capDuplicates: true });
748
+ }
723
749
  }
724
750
  }
725
751
  // 4) Slice families (ranked by max contributing concern score).
@@ -747,11 +773,6 @@ export function activate(input) {
747
773
  // rule (each with its own trace source), because the reference selection
748
774
  // semantics says an authenticated/public surface must be auditable and a
749
775
  // personal/regulated data context must carry crypto+masking+validation.
750
- const EXPOSURE_CONCERNS = {
751
- internal: ["auth", "logging"],
752
- authenticated: ["auth", "logging"],
753
- public: ["auth", "logging", "api", "validation", "architecture"]
754
- };
755
776
  if (input.exposure && EXPOSURE_CONCERNS[input.exposure]) {
756
777
  for (const concern of EXPOSURE_CONCERNS[input.exposure] ?? []) {
757
778
  recordActivation(trace, concerns, concernScores, rejected, {
@@ -764,12 +785,6 @@ export function activate(input) {
764
785
  }, concern, { capDuplicates: true });
765
786
  }
766
787
  }
767
- const SENSITIVITY_CONCERNS = {
768
- // v1.8.0: personal/regulated data now also activates the PRI catalogue (privacy).
769
- personal: ["encryption", "validation", "logging", "privacy"],
770
- regulated: ["encryption", "validation", "logging", "privacy"],
771
- secrets: ["secrets"]
772
- };
773
788
  if (input.data_sensitivity && SENSITIVITY_CONCERNS[input.data_sensitivity]) {
774
789
  for (const concern of SENSITIVITY_CONCERNS[input.data_sensitivity] ?? []) {
775
790
  recordActivation(trace, concerns, concernScores, rejected, {
@@ -877,13 +892,19 @@ function gateBeforeActivation(input) {
877
892
  }
878
893
  function gateAfterActivation(args) {
879
894
  const { input, activation, estimatedRequirements } = args;
895
+ const declaredSurfaces = args.declaredSurfaces === true;
880
896
  const reasons = [];
881
897
  const suggestions = [];
882
898
  // P3 do ciclo MP1 (2026-08-31): o gate conta SUPERFÍCIES (famílias dos concerns
883
899
  // primários de cada sinal), não o total de famílias activadas — concerns de
884
900
  // suporte de um mesmo sinal (mtls→secrets, mensageria→logging) não pedem
885
901
  // decomposição. GC-10 é o caso de referência: 1 integração legítima.
886
- if (activation.decompositionFamilies.length > 3) {
902
+ // 0.20.0-beta.21 («declarativo primeiro»): o gate de decomposição nasceu para travar
903
+ // pedidos VAGOS cuja prosa activava meio catálogo. Quando as famílias vêm de
904
+ // DECLARAÇÕES explícitas, bloquear contradiz o contrato — o chamador não foi vago,
905
+ // foi preciso. O guarda do tamanho da resposta passa a ser (e já era) o tecto de
906
+ // requisitos por detail (0.19.4). Em `discover` a regra mantém-se tal e qual.
907
+ if (!declaredSurfaces && activation.decompositionFamilies.length > 3) {
887
908
  reasons.push(`Pedido activa ${activation.decompositionFamilies.length} superfícies (famílias primárias: ${activation.decompositionFamilies.join(", ")}) — máximo recomendado: 3. Concerns de suporte do mesmo sinal não contam.`);
888
909
  suggestions.push("Reparte por slice family. Cada PR/PR-step deve ficar em 1–3 slices.");
889
910
  }
@@ -896,7 +917,7 @@ function gateAfterActivation(args) {
896
917
  // D1 (G-mp1a): with the requirement-count cap gone, the no-signal guard is the
897
918
  // vagueness catch-all. The informational risk_level trace entry must not defeat
898
919
  // it — only real signals (concerns) count.
899
- if (activation.concerns.length === 0 && input.tokenCount >= 4) {
920
+ if (!declaredSurfaces && activation.concerns.length === 0 && input.tokenCount >= 4) {
900
921
  return {
901
922
  status: "needs_clarification",
902
923
  reasons: [
@@ -2153,7 +2174,34 @@ function prepareCodegenContextCore(raw) {
2153
2174
  if (preGate && preGate.status !== "ready_for_codegen") {
2154
2175
  return blocked(input, raw, preGate.status, preGate.reasons, preGate.suggestions, [], { rejected: [], notes: [] });
2155
2176
  }
2156
- const activation = activate(input);
2177
+ // 0.20.0-beta.21 — «declarativo primeiro»: por defeito o prepare responde ao
2178
+ // DECLARADO. Sem nenhuma declaração não adivinha a partir do `task`: devolve
2179
+ // needs_input com o vocabulário e a receita (o gateway semântico e o
2180
+ // classificador de intenção vivem no bloco lexical, que aqui não corre).
2181
+ const selectionMode = raw.selection_mode === "discover" ? "discover" : "declarative";
2182
+ const declaredTechnologies = normalizeDeclaredTechnologies(Array.isArray(raw.technologies) ? raw.technologies.filter((t) => typeof t === "string") : [], input.stack);
2183
+ const declarativeSelection = selectionMode !== "discover";
2184
+ const hasDeclaredActivator = input.concerns.length > 0 ||
2185
+ input.exposure !== undefined ||
2186
+ input.data_sensitivity !== undefined ||
2187
+ input.changed_files.length > 0 ||
2188
+ declaredTechnologies.length > 0;
2189
+ if (declarativeSelection && !hasDeclaredActivator) {
2190
+ const probe = runSelection({ risk_level: input.risk_level ?? "L2", task: input.task });
2191
+ const ni = probe.needs_input;
2192
+ return blocked(input, raw, "needs_input", [
2193
+ "Nenhum activador DECLARADO nesta chamada (concerns/exposure/data_sensitivity/technologies/changed_files).",
2194
+ "Contrato v1.18-beta: o servidor responde ao declarado e NÃO interpreta o `task` — que fica registado para auditoria."
2195
+ ], [
2196
+ `Lê o vocabulário fechado: read_sbd_toe_resource(uri="sbd://toe/activation-vocabulary").`,
2197
+ `Re-chama declarando, por exemplo: ${ni?.example.with ?? 'risk_level="L2", concerns=[auth, logging]'}.`,
2198
+ ...(ni && ni.candidates_to_confirm.from_task_text.length > 0
2199
+ ? [`SUGESTÃO A CONFIRMAR (não é selecção), derivada do texto: [${ni.candidates_to_confirm.from_task_text.join(", ")}] — confirma e declara.`]
2200
+ : []),
2201
+ `Queres o comportamento inferencial antigo? selection_mode="discover" (exploratório).`
2202
+ ], []);
2203
+ }
2204
+ const activation = activate(input, { declaredOnly: declarativeSelection });
2157
2205
  // (c) The scope gate measures the request's FOCUS, not its full semantic
2158
2206
  // expansion: explicit concerns when given, else the concerns activated by
2159
2207
  // deterministic sources (explicit input + direct lexicon task terms). Semantic
@@ -2173,7 +2221,7 @@ function prepareCodegenContextCore(raw) {
2173
2221
  void focusConcerns; // kept for the debug notes below; the gate no longer counts requirements
2174
2222
  // MP1 selection (G-mp1a O2): the engine composes baseline ∪ context and narrows
2175
2223
  // by the task's declared signals — this is the requirement set served.
2176
- const selection = runSelectionWithActivation(input, activation);
2224
+ const selection = runSelectionWithActivation(input, activation, selectionMode === "discover" ? (raw.technologies ?? []) : declaredTechnologies, selectionMode);
2177
2225
  const estimatedRequirements = selection.selected.length;
2178
2226
  // 0.19.4 («a promessa do minimal», lead opção 2): tecto de requisitos por-id
2179
2227
  // por nível de detail, derivado da medição (~68 tk/req min/std, ~29 ultrathin)
@@ -2232,7 +2280,11 @@ function prepareCodegenContextCore(raw) {
2232
2280
  const postGate = gateAfterActivation({
2233
2281
  input,
2234
2282
  activation,
2235
- estimatedRequirements
2283
+ estimatedRequirements,
2284
+ // Só é "declarado" quando o chamador declarou mesmo: no caminho declarativo a
2285
+ // ausência de declarações já devolveu needs_input antes de chegar aqui, logo
2286
+ // este ponto implica declaração real. Em discover o gate mantém-se inteiro.
2287
+ declaredSurfaces: declarativeSelection && hasDeclaredActivator
2236
2288
  });
2237
2289
  if (postGate && postGate.status !== "ready_for_codegen") {
2238
2290
  return blocked(input, raw, postGate.status, postGate.reasons, postGate.suggestions, activation.trace, { rejected: activation.rejected, notes: activation.notes });