toolCallSyntax/exampleSyntax에서 dialect/exampleDialect로 변경했습니다.PI_OWNED_TOOLS에서 PI_DIALECT로 변경했습니다.onTurnEnd 훅 지원(setOnTurnEnd/onTurnEnd)을 추가했습니다. 다음 모델 요청 전에 현재 메시지로 대기 가능한 턴별 정리 작업을 실행하고 중단되었거나 오류가 발생한 턴의 콜백 실행을 건너뜁니다.toolCallSyntax 옵션을 dialect로 변경했습니다.ToolCallSyntax 타입의 내부 참조를 Dialect 타입으로 변경했습니다.@oh-my-pi/pi-ai/grammar에서 @oh-my-pi/pi-ai/dialect로 변경했습니다.ToolCallSyntax에서 Dialect로 변경했고, Grammar 인터페이스를 DialectDefinition으로 변경했으며, Grammar.syntax를 DialectDefinition.dialect로 변경했습니다.DialectDefinition.renderThinking 및 DialectDefinition.renderTranscript를 추가했으므로 방언 구현은 도구 호출/결과 블록뿐만 아니라 완전한 기본 채팅 트랜스크립트를 직렬화합니다.renderTranscript 메서드를 추가했습니다.renderThinking 메서드를 추가했습니다.createInbandScanner 팩토리 함수를 추가했습니다.getDialectDefinition 함수를 추가했습니다.renderToolCatalog 및 renderInbandToolPrompt 함수를 추가했습니다.renderToolInventory 함수를 추가했습니다.renderToolExamples 함수를 추가했습니다.encodeInbandToolHistory 함수를 추가했습니다.wrapInbandToolStream 함수를 추가했습니다.ThinkingInbandScanner를 추가했습니다.OwnedStream 클래스를 추가했습니다.gemini (```thinking 펜스로 ```tool_code를 미러링), gemma (기본 <|channel>thought…<channel|> 추론 채널), kimi (<think>…</think>), 그리고 pi (<thinking>…</thinking>). 각 스캐너는 이제 추론을 사고 이벤트로 파싱하여 연쇄적 사고가 보이는 응답으로 유출되지 않도록 하며, 모든 방언의 renderThinking은 스캐너를 통해 왕복할 수 있는 실제 채널입니다(통과형 렌더러 없음).@oh-my-pi/pi-ai/grammar에서 @oh-my-pi/pi-ai/dialect로 이동했습니다.stream-markup-healing.ts의 내부 임포트를 새 방언 모듈 경로를 사용하도록 업데이트했습니다.renderToolInventory를 변경했으므로 도구 설명이 최상위 # 헤더를 포함할 때 마크다운 헤더를 한 레벨 낮춥니다. 이제 헤더들이 감싸는 # Tool: <name> 제목 아래에 중첩되므로 형제 섹션처럼 읽히지 않습니다. 이미 ##로 시작하는 설명과 펜스된 코드 블록 내 헤더는 건드리지 않습니다.parseThinking: false를 존중하도록 했습니다. 파싱이 비활성화되면 비공개 추론 마커를 보이는 텍스트에 남깁니다.<thinking> 블록이 더 이상 보이는 응답으로 유출되지 않습니다.<think> 블록이 보존되고, 명시적 추론이 있을 때 중복되지 않으며, 스트림 플러시 시 종료됩니다.src/grammar/factory.ts 제거 (src/dialect/factory.ts로 대체됨)src/grammar/rendering.ts 제거 (기능이 src/dialect/rendering.ts로 이동됨)src/grammar/xml.ts 제거 (src/dialect/xml.ts로 대체됨)ToolCallSyntax/FALLBACK_TOOL_SYNTAX/preferredToolSyntax에서 Dialect/FALLBACK_DIALECT/preferredDialect로 변경했습니다.ToolCallFormat/resolveToolCallSyntax에서 DialectFormat/resolveDialect로 변경했고, 에이전트 옵션을 toolCallSyntax에서 dialect로 변경했습니다./dump 트랜스크립트 출력을 마크다운 역할 제목 대신 선택된 모델의 기본 방언 턴 및 사고 엔벨로프로 메시지를 렌더링하도록 변경했습니다.advisor.syncBacklog 설정(off, 1, 3, 5)을 추가했습니다. 어드바이저 검토 백로그가 임계값 이하로 떨어질 때까지 턴 완료를 일시 중지하며, 최대 30초 대기합니다./advisor on, /advisor off, /advisor status, /advisor dump [raw] 슬래시 명령 서브명령을 추가했습니다.advisor.enabled 및 advisor.subagents 설정을 추가했습니다.++, 성공 색상)를 추가했습니다./dump [raw] 플래그를 추가했습니다./advisor on, /advisor off, /advisor status 슬래시 명령 서브명령을 추가했습니다.advisor 역할에 두 번째 모델을 할당하고 advisor.enabled를 활성화하여 각 주 턴을 자동으로 검토하고 advise 도구를 통해 심각도가 태그된 조언 노트를 주입하도록 합니다. nit은 비중단 보조 큐에 탑승합니다(다음 스텝 경계에서 하나의 카드로 배치됨). concern 또는 blocker는 스티어링 채널을 통해 실행 중인 에이전트를 중단합니다 — 비행 중인 도구를 중단하거나 이미 양보한 에이전트를 재개합니다 — 따라서 높은 심각도의 조언이 즉시 실행됩니다. 조언은 주 트랜스크립트에 별도의 Advisor 카드로 렌더링되며, 어드바이저는 하드 격리된 읽기 전용 read/search/find 액세스를 얻습니다 — 자체 ToolSession에 바인딩되어 읽기가 주의 스냅샷/본 줄 캐시에 절대 닿지 않도록 합니다 — 작업 공간을 조사한 후 의견을 내릴 수 있습니다. 상태 줄은 어드바이저가 활성화되어 있는 동안 모델명 뒤에 ++ 배지(성공 색상에서, 모델명과 구별하여 유지됨)를 표시합니다. /advisor dump는 어드바이저의 자체 트랜스크립트를 클립보드에 복사합니다. 어드바이저는 기본적으로 최상위 세션에만 생성됩니다. advisor.subagents를 활성화하여 생성된 작업/평가 서브에이전트로 확장하세요.hideThinkingBlock이 활성화된 상태에서 숨겨진 사고 블록 대신 애니메이션된 "thinking" 펄스(·‥…‥)를 표시합니다.advise만 발생하며 에이전트가 올바른 궤도에 있을 때 침묵을 선호합니다./dump 기본 출력을 컴팩트 마크다운 형식으로 변경했습니다. 레거시 비압축 형식의 경우 /dump raw를 사용하세요./dump 및 /advisor dump를 컴팩트 트랜스크립트 출력으로 기본값을 변경했고 레거시 비압축 형식을 위해 선택적 raw 플래그를 허용합니다.startup.quiet이 시작 중에 MCP 및 LSP 시작 상태 이벤트를 표시하는 문제를 수정했습니다(#2639).Advisor 그룹을 model 설정 탭에 등록했으므로 어드바이저 설정이 설정 패널에 올바르게 렌더링됩니다./d/project와 같은 MSYS/Git-Bash 드라이브 별칭 및 /mnt/d/project와 같은 WSL 스타일 경로가 bash 도구 cwd 검증 및 브러시 파일 시스템 빌트인 전체에서 일관되게 기본 드라이브 경로로 정규화됩니다(#2634).Full Changelog: v15.13.3...v16.0.0