v2.2.299~307: 아키텍처 수렴 + 채팅 정리 + 벤치마킹 강화 + Claude 구독 엔진
- v2.2.299 아키텍처 수렴: coreChat 통일(엔진 휴리스틱 3벌 제거), 기업 모드 검색 오케스트레이터 승격, lib/execUtil(실행 래퍼 6곳·Python 탐지 3벌 단일화), lib/kstSchedule(워처 4개 nowInKst 통합), estimateTokens 통합, 설정 접근 규칙 명문화 - v2.2.300 채팅 화면 정리: LiveReasoningFilter(스트리밍 중 <think>/Harmony 추론 토큰 단위 차단), 확신도·검토요청 footer 기본 숨김(계산·Reflection 은 유지) - v2.2.301 문맥·의도 이해: [답변 전 이해 원칙] 상시 주입, 워크플로우 의도 브리핑, Report QA 루프(규칙 레지스트리+실측치+회귀 게이트, 블로그_v3 개념 이식) - v2.2.302 /benchmark 비즈니스 렌즈(가격·수익·운영)+빌드 프롬프트 모드+QA 연계 - v2.2.303 handoff 모드(측정치 무손실 인수인계 문서)+/claude(Claude Code 터미널 위임) - v2.2.304 이식성: 지식 경로 두뇌-상대 규약(pickWikiDir 상대 해석), 이사 체크리스트 - v2.2.305 Claude 구독 엔진: claude: 프로바이더(CLI 위임, 모델 드롭다운 자동 노출, coreChat 지원 — 워크플로우·QA도 구독 모델 가능) - v2.2.306 Tone Guard: AI 상투어 금지 레지스트리(상담사 화법 실사례 8종+대조 예시) - v2.2.307 /benchmark 레이아웃 골격(sectionRoles 결정론 분석, 롤링 배너 즉답), 파트별 실패 격리, 합성 타임아웃 120→300초 검증: tsc 무오류 + jest 888 통과 + esbuild 정상 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+27
-4
@@ -143,6 +143,16 @@ export interface IAgentConfig {
|
||||
* 깨끗한 답변에는 안 돈다 (latency 보호). 기본 true. (Phase 1 / Track 2-3)
|
||||
*/
|
||||
criticLoopEnabled: boolean;
|
||||
/**
|
||||
* Report QA Loop — 조사·보고서형 워크플로우 답변에 블로그_v3 방식 품질 루프 적용:
|
||||
* 의도 브리핑(왜 묻는지 분석) → 초안 → QA 채점(규칙 레지스트리+실측치 주입) →
|
||||
* 피드백 재작성 → 회귀 게이트(점수 하락 시 재작성본 폐기). 기본 true. (v2.2.301)
|
||||
*/
|
||||
reportQaEnabled: boolean;
|
||||
/** Report QA 통과 점수 임계 (이 미만이면 재작성). 기본 80. */
|
||||
reportQaThreshold: number;
|
||||
/** Report QA 최대 재작성 횟수 (로컬 모델 latency 보호). 기본 2. */
|
||||
reportQaMaxRevisions: number;
|
||||
/**
|
||||
* Reflection — 업무 turn 의 결정론적 회고(확신도·누락 요소·에스컬레이션)를
|
||||
* <brain>/.astra/growth/reflections.jsonl 에 기록. 성장 추이·반복 실수 집계의
|
||||
@@ -394,8 +404,8 @@ export interface IAgentConfig {
|
||||
// ─── Stream 표시 ───
|
||||
/**
|
||||
* 모델 토큰을 받는 즉시 채팅 버블에 흘려보낼지 여부.
|
||||
* - false(기본): 토큰은 내부에서만 누적, sanitize 끝난 최종 답변만 한 번에 표시 → Harmony/think 마커 누설 원천 차단.
|
||||
* - true: legacy 라이브 스트리밍. 모델 출력에 control token 이 섞여 나오면 잠깐 화면에 보일 수 있음.
|
||||
* - true(기본): 실시간 표시. 추론 구간(<think>/Harmony thought)은 LiveReasoningFilter 가 토큰 단위로 차단.
|
||||
* - false: 토큰은 내부에서만 누적, sanitize 끝난 최종 답변만 한 번에 표시.
|
||||
*/
|
||||
liveStreamTokens: boolean;
|
||||
/**
|
||||
@@ -460,6 +470,15 @@ function toBrainProfile(raw: Partial<BrainProfile> | undefined, fallbackIndex: n
|
||||
}
|
||||
|
||||
// ─── VS Code 설정에서 읽어오는 값 (통합 구현) ───
|
||||
//
|
||||
// [설정 접근 규칙 — 2026-07-11 아키텍처 감사에서 명문화]
|
||||
// IAgentConfig 에 이미 있는 값(엔진 URL·모델·컨텍스트 한계·두뇌 프로필 등
|
||||
// "코어 계약"에 속하는 값)은 반드시 getConfig() 를 통해 읽는다 — 기본값·클램프·
|
||||
// 레거시 마이그레이션이 여기 한 곳에 있기 때문. 반대로 특정 기능 전용 설정
|
||||
// (예: g1nation.stocks.*, dailyBriefing.time)은 그 기능 파일에서
|
||||
// vscode.workspace.getConfiguration('g1nation') 직접 접근이 허용된다 —
|
||||
// 기능 하나 추가할 때마다 이 인터페이스를 비대하게 만들지 않기 위한 의도적 분리.
|
||||
// 판단 기준: "둘 이상의 모듈이 읽는 값인가?" → 그렇다면 IAgentConfig 로 승격할 것.
|
||||
export function getConfig(): IAgentConfig {
|
||||
const cfg = vscode.workspace.getConfiguration('g1nation');
|
||||
|
||||
@@ -535,9 +554,13 @@ export function getConfig(): IAgentConfig {
|
||||
requirementGraphEnabled: cfg.get<boolean>('requirementGraphEnabled', true),
|
||||
requirementCoverageEnabled: cfg.get<boolean>('requirementCoverageEnabled', true),
|
||||
epistemicGuardEnabled: cfg.get<boolean>('epistemicGuardEnabled', true),
|
||||
confidenceEngineEnabled: cfg.get<boolean>('confidenceEngineEnabled', true),
|
||||
escalationEnabled: cfg.get<boolean>('escalationEnabled', true),
|
||||
// v2.2.300: footer 기본 비표시 (사용자 피드백) — 계산·Reflection 은 항상 수행.
|
||||
confidenceEngineEnabled: cfg.get<boolean>('confidenceEngineEnabled', false),
|
||||
escalationEnabled: cfg.get<boolean>('escalationEnabled', false),
|
||||
criticLoopEnabled: cfg.get<boolean>('criticLoopEnabled', true),
|
||||
reportQaEnabled: cfg.get<boolean>('reportQaEnabled', true),
|
||||
reportQaThreshold: Math.max(50, Math.min(95, cfg.get<number>('reportQaThreshold', 80))),
|
||||
reportQaMaxRevisions: Math.max(0, Math.min(5, cfg.get<number>('reportQaMaxRevisions', 2))),
|
||||
reflectionEnabled: cfg.get<boolean>('reflectionEnabled', true),
|
||||
orgMemoryEnabled: cfg.get<boolean>('orgMemoryEnabled', true),
|
||||
actionabilityEnabled: cfg.get<boolean>('actionabilityEnabled', true),
|
||||
|
||||
Reference in New Issue
Block a user