feat(observer): emit chain_ref in primary_rationale

This commit is contained in:
Дмитрий
2026-05-21 04:48:21 +03:00
parent 28671cb012
commit f943b229c0
2 changed files with 28 additions and 0 deletions
+9
View File
@@ -16,6 +16,14 @@
*/
import { detectChoiceProvenance, detectAskUserQuestionChoice } from './observer-choice-detector.mjs';
import { loadChainMap, chainsFor } from './observer-chain-detector.mjs';
let CHAIN_MAP = null;
try {
CHAIN_MAP = loadChainMap();
} catch {
CHAIN_MAP = new Map(); // битый/отсутствующий JSON -> chainsFor вернёт null, observer не падает
}
const SUPERPOWERS_PREFIX = 'superpowers:';
@@ -694,6 +702,7 @@ export function parseTranscript(transcriptText, fallbackSessionId = null) {
return {
step: 1,
node_chosen: skills.length > 0 ? skills[0] : 'direct',
chain_ref: chainsFor(skills.length > 0 ? skills[0] : 'direct', CHAIN_MAP),
triggers_matched: merge(extractTriggers(turn), tag ? tag.triggers : []),
candidates_considered: merge(extractCandidates(turn), tag ? tag.candidates : []),
boundaries_applied: merge(extractBoundaries(turn), tag ? tag.boundaries : []),