feat: v2.2.173-193 — 4인 팀 운영 슬래시 13개 + ASTRA 검증 엔진 6종
4인 팀 운영 슬래시 (v2.2.173~189):
- 일과 리듬: /morning, /evening, /weekly, /standup
- 트래커 (event-sourced .astra/*.jsonl): /runway, /customers, /hire
- 작업·결정: /task, /blocked, /onesie, /decisions
- 외부 출력: /draft, /feedback
- 분석: /cohort (MoM 추세)
ASTRA 추론·검색 엔진 (v2.2.183~192):
- v2.2.183 Conflict Surface — scoring.conflictSeverity 를 [CONFLICT WARNINGS] 블록으로
서피스 + 교차-문서 발산(Jaccard) 감지
- v2.2.184 Chain-of-Verification — [VERIFICATION CHECKLIST] 답변 작성 전 그라운딩 자기 점검
(instructional, strictMode 옵션)
- v2.2.185 Actionability Scoring — 최근 슬래시 명령 + 열린 파일 신호로 검색 결과 재가중
- v2.2.186 Temporal Markers + Distillation Loop — LongTerm/Episodic 만료 필터 +
30일+ stale episode → LongTerm 'episode-digest' 승급 (수동 /memory distill + 세션 종료 자동)
- v2.2.187 Hierarchical Context Window + LLM Semantic Re-rank — 3-level 추상도 매칭
+ 토큰 예산 통과 후 LLM 1회로 의도-부합 재정렬 (opt-in)
- v2.2.190 Intent Clarification + Citation Trace — 모호 차원 감지 시 역질문 우선
+ 답변 끝 사용 출처 한 줄 정리
- v2.2.191 Post-hoc Self-Check — 답변 완료 후 별도 LLM 호출 1회로 답함/그라운딩/모순 평가,
footer 한 줄로 표시 (opt-in, semantic re-rank 와 같은 안전 fallback 패턴)
- v2.2.192 Terminology Dictionary — .astra/glossary.md 사용자 편집 파일 + Term Check
지침 통합 + /glossary init/path/reload
- v2.2.193 /help — 카테고리별 명령 목록 + 6종 verification 블록 현재 on/off
신규 모듈:
- src/retrieval/{conflictBlock,coveBlock,actionabilityScoring,hierarchicalLevel,
semanticRerank,intentClarification,citationTrace,terminologyBlock}.ts
- src/memory/distillation.ts + types.ts 에 expiresAt/promoted/episode-digest 추가
- src/agent/postHocSelfCheck.ts
- src/features/{customers,feedback,hire,runway}/*.ts (event-sourced stores)
ASTRA 검증 5종 자동 주입 (buildAstraModeSystemPrompt, casual 모드 제외):
[INTENT CLARIFICATION GUIDANCE] (답변 시작 전) → [TERMINOLOGY DICTIONARY] +
[CONFLICT WARNINGS] + [VERIFICATION CHECKLIST] (작성 중) → [CITATION TRACE] (끝)
+ 6번째: Post-hoc Self-Check footer (답변 완료 후, opt-in)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"version": 1,
|
||||
"generatedAt": "2026-05-26T08:10:10.234Z",
|
||||
"generatedAt": "2026-05-29T06:58:50.872Z",
|
||||
"files": {
|
||||
"src/agent/actions/brainOps.ts": {
|
||||
"mtimeMs": 1779764602582.9768,
|
||||
@@ -135,9 +135,9 @@
|
||||
]
|
||||
},
|
||||
"src/agent/handlePrompt/buildAstraModeSystemPrompt.ts": {
|
||||
"mtimeMs": 1779764602589.828,
|
||||
"size": 5335,
|
||||
"lines": 82,
|
||||
"mtimeMs": 1780033670993.9626,
|
||||
"size": 8427,
|
||||
"lines": 133,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/lib/contextBuilders/localProjectIntent",
|
||||
@@ -298,6 +298,13 @@
|
||||
"src/agent"
|
||||
]
|
||||
},
|
||||
"src/agent/postHocSelfCheck.ts": {
|
||||
"mtimeMs": 1780033021215.5054,
|
||||
"size": 8943,
|
||||
"lines": 230,
|
||||
"role": "Post-hoc Self-Check — 답변 완료 후 LLM 한 번 호출로 3가지 평가. 사용자 제안: \"[Self-Check] 단계 — 이 답변이 사용자 질문에 직접 답하는가 / 규칙 준수 / 논리 모순 없는가\". 기존 CoVe (v2.2.184) 와 차이: - CoVe = 답변 작성 전 모델에게 self-verify 지시 (instructional, 1",
|
||||
"imports": []
|
||||
},
|
||||
"src/agent/sessions/compressSummary.ts": {
|
||||
"mtimeMs": 1779764602596.8809,
|
||||
"size": 2780,
|
||||
@@ -310,9 +317,9 @@
|
||||
]
|
||||
},
|
||||
"src/agent.ts": {
|
||||
"mtimeMs": 1779764602581.5493,
|
||||
"size": 81527,
|
||||
"lines": 1484,
|
||||
"mtimeMs": 1780033640914.1235,
|
||||
"size": 85839,
|
||||
"lines": 1568,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/utils",
|
||||
@@ -383,6 +390,7 @@
|
||||
"src/agent/handlePrompt/buildAstraModeSystemPrompt",
|
||||
"src/agent/handlePrompt/computeBudgetedRequest",
|
||||
"src/agent/handlePrompt/processFinalAnswer",
|
||||
"src/agent/postHocSelfCheck",
|
||||
"src/agent/handlePrompt/applyAutoContinuation",
|
||||
"src/features/approval/approvalQueue",
|
||||
"src/features/providers",
|
||||
@@ -425,9 +433,9 @@
|
||||
]
|
||||
},
|
||||
"src/config.ts": {
|
||||
"mtimeMs": 1779764602599.9685,
|
||||
"size": 22439,
|
||||
"lines": 418,
|
||||
"mtimeMs": 1780033618147.1584,
|
||||
"size": 30668,
|
||||
"lines": 550,
|
||||
"role": "",
|
||||
"imports": []
|
||||
},
|
||||
@@ -850,24 +858,34 @@
|
||||
"imports": []
|
||||
},
|
||||
"src/features/calendar/index.ts": {
|
||||
"mtimeMs": 1779065453871.9966,
|
||||
"size": 593,
|
||||
"lines": 32,
|
||||
"mtimeMs": 1779879082214.362,
|
||||
"size": 711,
|
||||
"lines": 40,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/features/calendar/icsParser",
|
||||
"src/features/calendar/calendarCache",
|
||||
"src/features/calendar/oauth",
|
||||
"src/features/calendar/calendarApi"
|
||||
"src/features/calendar/calendarApi",
|
||||
"src/features/calendar/tasksApi"
|
||||
]
|
||||
},
|
||||
"src/features/calendar/oauth.ts": {
|
||||
"mtimeMs": 1779065453873.0256,
|
||||
"size": 10940,
|
||||
"lines": 235,
|
||||
"mtimeMs": 1779869692244.0415,
|
||||
"size": 10986,
|
||||
"lines": 236,
|
||||
"role": "Google OAuth 2.0 — loopback (Desktop app) 흐름. Google 은 Desktop 앱 OAuth client 에 대해 http://127.0.0.1:<ephemeralport> redirect URI 를 허용한다. 본 모듈은: 1. ephemeral port 에 일회용 HTTP 서버 띄움 2. 사용자 브라우저로 Google 로",
|
||||
"imports": []
|
||||
},
|
||||
"src/features/calendar/tasksApi.ts": {
|
||||
"mtimeMs": 1779879080585.057,
|
||||
"size": 7206,
|
||||
"lines": 169,
|
||||
"role": "Google Tasks API v1 — task create 호출. Calendar / Sheets 와 같은 OAuth 토큰을 공유한다 (scope 에 tasks 포함). Tasks 는 date-only 모델(시간 없음)이라 /meet 의 액션 아이템처럼 \"시간 없이 마감일만 있는 할 일\" 에 자연스럽게 맞는다. 외부 라이브러리 안 씀 — Tasks API",
|
||||
"imports": [
|
||||
"src/features/calendar/calendarApi"
|
||||
]
|
||||
},
|
||||
"src/features/company/agents.ts": {
|
||||
"mtimeMs": 1779764602611.032,
|
||||
"size": 38122,
|
||||
@@ -1090,6 +1108,13 @@
|
||||
"role": "Type definitions for the 1인 기업 (One-Person Company) mode. The mode turns the user into a virtual CEO that dispatches work to a roster of specialist agents. Each turn produces a session directory conta",
|
||||
"imports": []
|
||||
},
|
||||
"src/features/customers/customersStore.ts": {
|
||||
"mtimeMs": 1779952731356.5476,
|
||||
"size": 6815,
|
||||
"lines": 176,
|
||||
"role": "고객사 / MRR / 갱신 트래커. 4인 기업의 수입 쪽 — /runway 가 통장과 burn 을 본다면, 여기는 어디서 돈이 들어오나. Salesforce / HubSpot 같은 CRM 아닌 가벼운 event-sourced 로그. 저장 형식: JSON Lines (.jsonl) — append-only event log. 같은 customer 의 여러 이",
|
||||
"imports": []
|
||||
},
|
||||
"src/features/datacollect/bridgeClient.ts": {
|
||||
"mtimeMs": 1779764602617.1548,
|
||||
"size": 7210,
|
||||
@@ -1119,9 +1144,9 @@
|
||||
"imports": []
|
||||
},
|
||||
"src/features/datacollect/prompts/youtubePrompts.ts": {
|
||||
"mtimeMs": 1779764602619.1604,
|
||||
"size": 18108,
|
||||
"lines": 331,
|
||||
"mtimeMs": 1779852277877.3347,
|
||||
"size": 19109,
|
||||
"lines": 347,
|
||||
"role": "/youtube slash command 의 LLM 입력 빌더 + 자막 변환 헬퍼. - formatHms / fullScriptFromSegments / bucketSegments — segment list 가공 - YoutubeAnalysisMode — info/benchmark/both 라우팅 enum (slashRouter 가 사용) - buildIn",
|
||||
"imports": []
|
||||
},
|
||||
@@ -1133,21 +1158,24 @@
|
||||
"imports": []
|
||||
},
|
||||
"src/features/datacollect/slashRouter.ts": {
|
||||
"mtimeMs": 1779764602621.1665,
|
||||
"size": 63071,
|
||||
"lines": 1132,
|
||||
"mtimeMs": 1780035781878.5417,
|
||||
"size": 226019,
|
||||
"lines": 4090,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/utils",
|
||||
"src/features/datacollect/bridgeClient",
|
||||
"src/features/calendar",
|
||||
"src/sidebar/managers/chronicleProjectStore",
|
||||
"src/memory",
|
||||
"src/config",
|
||||
"src/retrieval/terminologyBlock",
|
||||
"src/features/setup/datacollectSetup",
|
||||
"src/features/datacollect/prompts/synthesisPrompt",
|
||||
"src/features/datacollect/prompts/youtubePrompts",
|
||||
"src/features/datacollect/prompts/wikifyPrompt",
|
||||
"src/features/datacollect/prompts/meetPrompt",
|
||||
"src/features/datacollect/scheduling/calendarHelpers",
|
||||
"src/features/stocks"
|
||||
"src/features/datacollect/scheduling/calendarHelpers"
|
||||
]
|
||||
},
|
||||
"src/features/devilAgent/devilPrompt.ts": {
|
||||
@@ -1176,6 +1204,20 @@
|
||||
"src/features/devilAgent/devilService"
|
||||
]
|
||||
},
|
||||
"src/features/feedback/feedbackStore.ts": {
|
||||
"mtimeMs": 1779931731117.0737,
|
||||
"size": 3406,
|
||||
"lines": 81,
|
||||
"role": "고객 피드백 누적 저장소. 단일 운영자(대표) 모드에서 슬랙·이메일·CS 채널에 흩어진 고객 피드백을 /feedback <텍스트> 한 줄로 모아 둔다. 패턴 분석은 /feedback summary 로 LLM 이 누적 데이터를 보고 카테고리 분포 + 반복 주제를 추출. 저장 형식: JSON Lines (.jsonl) — 한 줄 = 한 entry. 누적·app",
|
||||
"imports": []
|
||||
},
|
||||
"src/features/hire/hireStore.ts": {
|
||||
"mtimeMs": 1779964473915.006,
|
||||
"size": 5586,
|
||||
"lines": 150,
|
||||
"role": "채용 파이프라인 트래커. 4인 → 5인 이상 확장 시점에 후보자가 여러 명, 여러 역할(개발/기획/디자인) 로 들어오기 시작 — 노션·스프레드시트·이메일에 흩어진 정보를 한 명령으로 본다. Event-sourced (customersStore 와 동일 패턴) — append-only 이벤트 로그를 재생해 후보자별 현재 단계 + 노트 누적 도출. 위치: <w",
|
||||
"imports": []
|
||||
},
|
||||
"src/features/projectArchitecture/index.ts": {
|
||||
"mtimeMs": 1778720117531.2734,
|
||||
"size": 25946,
|
||||
@@ -1326,6 +1368,13 @@
|
||||
"role": "Cloud LLM provider routing — model id prefix → provider id 매핑. Prefix 규칙: openrouter:anthropic/claude-3.5-sonnet → { provider: 'openrouter', model: 'anthropic/claude-3.5-sonnet' } anthropic:claude-3-5",
|
||||
"imports": []
|
||||
},
|
||||
"src/features/runway/runwayStore.ts": {
|
||||
"mtimeMs": 1779935315716.9917,
|
||||
"size": 6666,
|
||||
"lines": 173,
|
||||
"role": "Runway / Cash 누적 저장소. 4인 기업 운영의 가장 중요한 숫자 — 현금 잔고 / 월 소진율 / 남은 개월수 — 를 한 명령 (/runway) 로 본다. 회계 시스템은 아니고, 대표가 머리에 가지고 있는 \"지금 통장에 얼마, 한 달에 얼마 나감\" 을 코드 옆에서 잡는 가벼운 트래커. 저장 형식: JSON Lines (.jsonl) — 한 줄 = ",
|
||||
"imports": []
|
||||
},
|
||||
"src/features/secondBrainTrace.ts": {
|
||||
"mtimeMs": 1779411561816.5603,
|
||||
"size": 39429,
|
||||
@@ -1487,14 +1536,16 @@
|
||||
]
|
||||
},
|
||||
"src/features/stocks/slashStocks.ts": {
|
||||
"mtimeMs": 1779764602629.3262,
|
||||
"size": 13533,
|
||||
"lines": 279,
|
||||
"mtimeMs": 1779857133519.0603,
|
||||
"size": 33999,
|
||||
"lines": 621,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/utils",
|
||||
"src/features/stocks/stocksStore",
|
||||
"src/features/stocks/yahooClient",
|
||||
"src/features/stocks/naverFundamentals",
|
||||
"src/core/services",
|
||||
"src/features/stocks/signalClassifier",
|
||||
"src/features/stocks/sheetsSync",
|
||||
"src/features/stocks/llmJudge",
|
||||
@@ -1563,9 +1614,9 @@
|
||||
"imports": []
|
||||
},
|
||||
"src/features/stocks/yahooClient.ts": {
|
||||
"mtimeMs": 1779769686275.8792,
|
||||
"size": 11167,
|
||||
"lines": 243,
|
||||
"mtimeMs": 1779856972057.0444,
|
||||
"size": 16112,
|
||||
"lines": 353,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/utils"
|
||||
@@ -1737,9 +1788,9 @@
|
||||
]
|
||||
},
|
||||
"src/lib/contextBuilders/memoryContext.ts": {
|
||||
"mtimeMs": 1779764602638.9414,
|
||||
"size": 11267,
|
||||
"lines": 233,
|
||||
"mtimeMs": 1780033602782.2012,
|
||||
"size": 18059,
|
||||
"lines": 352,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/agent",
|
||||
@@ -1750,7 +1801,15 @@
|
||||
"src/retrieval/embeddings",
|
||||
"src/retrieval/brainIndex",
|
||||
"src/skills/agentKnowledgeMap",
|
||||
"src/retrieval/knowledgeMix"
|
||||
"src/retrieval/knowledgeMix",
|
||||
"src/retrieval/conflictBlock",
|
||||
"src/retrieval/coveBlock",
|
||||
"src/retrieval/actionabilityScoring",
|
||||
"src/features/datacollect/slashRouter",
|
||||
"src/retrieval/semanticRerank",
|
||||
"src/retrieval/intentClarification",
|
||||
"src/retrieval/citationTrace",
|
||||
"src/retrieval/terminologyBlock"
|
||||
]
|
||||
},
|
||||
"src/lib/contextBuilders/modelCandidates.ts": {
|
||||
@@ -1951,19 +2010,30 @@
|
||||
"src/utils"
|
||||
]
|
||||
},
|
||||
"src/memory/distillation.ts": {
|
||||
"mtimeMs": 1780029994371.4304,
|
||||
"size": 7826,
|
||||
"lines": 200,
|
||||
"role": "Distillation Loop — stale Episodic Memory → Long-Term \"episode-digest\" 승급. 배경: Episodic Memory 가 무한히 누적되면 검색 노이즈. 30일+ 지난 에피소드는 \"지금 이 순간 관련 가능성\" 보다 \"역사적 패턴\" 가치가 커서, 디테일을 압축해 Long-Term 으로 옮기고 원본은 archi",
|
||||
"imports": [
|
||||
"src/memory/EpisodicMemory",
|
||||
"src/memory/LongTermMemory",
|
||||
"src/memory/types"
|
||||
]
|
||||
},
|
||||
"src/memory/EpisodicMemory.ts": {
|
||||
"mtimeMs": 1779411639504.3022,
|
||||
"size": 10940,
|
||||
"lines": 297,
|
||||
"mtimeMs": 1780029951842.101,
|
||||
"size": 13160,
|
||||
"lines": 341,
|
||||
"role": "Episodic Memory (일화 기억) 과거 대화/회의/결정의 맥락 흐름을 저장합니다. 세션 종료 시 자동으로 에피소드를 요약하여 저장합니다. \"왜 이렇게 결정했는지\", \"어떤 흐름으로 진행했는지\" 기록. 저장 위치: {brainPath}/memory/episodes/.json",
|
||||
"imports": [
|
||||
"src/memory/types"
|
||||
]
|
||||
},
|
||||
"src/memory/index.ts": {
|
||||
"mtimeMs": 1779411771475.9016,
|
||||
"size": 6530,
|
||||
"lines": 188,
|
||||
"mtimeMs": 1780030158922.7122,
|
||||
"size": 8053,
|
||||
"lines": 225,
|
||||
"role": "MemoryManager — 5-Layer Cognitive Memory System (통합 진입점) Astra의 모든 메모리 레이어를 통합 관리하는 중앙 매니저입니다. ① Short-Term Memory — 현재 대화 흐름 (FIFO) ② Long-Term Memory — 사용자 취향/규칙/결정 ③ Project Memory — 프로젝트별 지식 ④ Pro",
|
||||
"imports": [
|
||||
"src/config",
|
||||
@@ -1973,13 +2043,14 @@
|
||||
"src/memory/ProceduralMemory",
|
||||
"src/memory/EpisodicMemory",
|
||||
"src/memory/MemoryExtractor",
|
||||
"src/memory/types"
|
||||
"src/memory/types",
|
||||
"src/memory/distillation"
|
||||
]
|
||||
},
|
||||
"src/memory/LongTermMemory.ts": {
|
||||
"mtimeMs": 1779411767886.338,
|
||||
"size": 9226,
|
||||
"lines": 252,
|
||||
"mtimeMs": 1780029930791.1965,
|
||||
"size": 10507,
|
||||
"lines": 281,
|
||||
"role": "Long-Term Memory (장기 기억) 사용자의 취향, 프로젝트 목표, 반복 규칙, 과거 결정 사항을 영구적으로 저장하고 관리합니다. 저장 위치: {brainPath}/memory/longterm.json",
|
||||
"imports": [
|
||||
"src/memory/types"
|
||||
@@ -2025,12 +2096,21 @@
|
||||
]
|
||||
},
|
||||
"src/memory/types.ts": {
|
||||
"mtimeMs": 1778028987419.3413,
|
||||
"size": 3575,
|
||||
"lines": 126,
|
||||
"mtimeMs": 1780029896609.2737,
|
||||
"size": 4799,
|
||||
"lines": 151,
|
||||
"role": "Memory Type Definitions (메모리 타입 정의) Astra의 5-Layer Cognitive Memory System의 모든 타입을 정의합니다. ① Short-Term ② Long-Term ③ Project ④ Procedural ⑤ Episodic",
|
||||
"imports": []
|
||||
},
|
||||
"src/retrieval/actionabilityScoring.ts": {
|
||||
"mtimeMs": 1780029379776.906,
|
||||
"size": 6602,
|
||||
"lines": 156,
|
||||
"role": "Actionability Scoring — 검색 결과를 \"현재 작업 상태\" 신호로 재가중. 기존 TF-IDF (단어 매칭) + recency (시간) 만으로는 \"지금 이 사용자가 하고 있는 작업과 직접 연결 된 문서\" 가 우선되지 않음. 예: 사용자가 /runway 명령을 막 실행했다면 runway / 재무 관련 문서가 같은 키워드 매치 점수여도 더 위로 ",
|
||||
"imports": [
|
||||
"src/retrieval/types"
|
||||
]
|
||||
},
|
||||
"src/retrieval/brainIndex.ts": {
|
||||
"mtimeMs": 1778667252738.4248,
|
||||
"size": 13270,
|
||||
@@ -2042,6 +2122,25 @@
|
||||
"src/utils"
|
||||
]
|
||||
},
|
||||
"src/retrieval/citationTrace.ts": {
|
||||
"mtimeMs": 1780032397612.986,
|
||||
"size": 2348,
|
||||
"lines": 49,
|
||||
"role": "Citation Trace — 답변 끝 에 \"출처:\" 한 줄 명시 지시. CoVe Strict 모드 (v2.2.184) 와 차이: - CoVe Strict: 모든 사실 주장 뒤에 inline [S1] 인용 강제 — verbose, 학술적 - Citation Trace: 답변 끝에 사용된 출처 한 줄 정리 — 가벼움, 항상 ON 권장 둘은 함께 동작 가능. ",
|
||||
"imports": [
|
||||
"src/retrieval/types"
|
||||
]
|
||||
},
|
||||
"src/retrieval/conflictBlock.ts": {
|
||||
"mtimeMs": 1780025261798.6677,
|
||||
"size": 8276,
|
||||
"lines": 204,
|
||||
"role": "Conflict Surface — [CONFLICT WARNINGS] 시스템 프롬프트 블록 생성. 기존 scoring.ts 가 문서당 conflictSeverity(NONE/LOW/MEDIUM/HIGH) 를 이미 계산하지만(반대/논란/vs 등 indicator 단어 카운트), LLM 은 그 사실을 모름. buildAstraModeSystemPrompt 의 ",
|
||||
"imports": [
|
||||
"src/retrieval/types",
|
||||
"src/retrieval/scoring"
|
||||
]
|
||||
},
|
||||
"src/retrieval/contextBudget.ts": {
|
||||
"mtimeMs": 1779764602653.6396,
|
||||
"size": 5276,
|
||||
@@ -2051,6 +2150,15 @@
|
||||
"src/retrieval/types"
|
||||
]
|
||||
},
|
||||
"src/retrieval/coveBlock.ts": {
|
||||
"mtimeMs": 1780028941111.8562,
|
||||
"size": 6062,
|
||||
"lines": 121,
|
||||
"role": "Chain-of-Verification (CoVe) — [VERIFICATION CHECKLIST] 시스템 프롬프트 블록 생성. 배경: 사용자 피드백 \"추론 결과가 나오기 직전, 이 결론이 확보된 지식(제2뇌)에만 근거하고 있는가? 를 스스로 질문하고 검증하는 로직\" — 할루시네이션 방지 + 그라운딩 명확화. 원논문 CoVe 는 2-pass (draft →",
|
||||
"imports": [
|
||||
"src/retrieval/types"
|
||||
]
|
||||
},
|
||||
"src/retrieval/embeddings.ts": {
|
||||
"mtimeMs": 1778667198243.6443,
|
||||
"size": 7294,
|
||||
@@ -2060,10 +2168,19 @@
|
||||
"src/utils"
|
||||
]
|
||||
},
|
||||
"src/retrieval/hierarchicalLevel.ts": {
|
||||
"mtimeMs": 1780030714979.2786,
|
||||
"size": 5908,
|
||||
"lines": 135,
|
||||
"role": "Hierarchical Context Window — 질의·문서의 추상도 레벨 매칭으로 검색 노이즈 감소. 사용자 제안: \"사용자가 '배포해줘' 라고 하면 L1(실행) 우선, '전략 검토' 라고 하면 L3(전략) 우선\". 같은 키워드 매치 점수여도 추상도가 안 맞으면 noise. v1 — 3-level 휴리스틱 (LLM 호출 없음, 결정적): - concr",
|
||||
"imports": [
|
||||
"src/retrieval/types"
|
||||
]
|
||||
},
|
||||
"src/retrieval/index.ts": {
|
||||
"mtimeMs": 1779764602654.6475,
|
||||
"size": 24268,
|
||||
"lines": 514,
|
||||
"mtimeMs": 1780030794352.5571,
|
||||
"size": 26702,
|
||||
"lines": 549,
|
||||
"role": "RetrievalOrchestrator — Unified RAG Pipeline Astra의 모든 검색 소스를 통합 관리하는 오케스트레이터입니다. 검색 흐름: ① Query Planning — 의도 분류 + 검색 전략 결정 ② Parallel Search — Brain + Memory + Project + Episode 동시 검색 ③ Result Fusio",
|
||||
"imports": [
|
||||
"src/config",
|
||||
@@ -2075,9 +2192,18 @@
|
||||
"src/retrieval/contextBudget",
|
||||
"src/retrieval/brainIndex",
|
||||
"src/retrieval/lessonHelpers",
|
||||
"src/retrieval/embeddings"
|
||||
"src/retrieval/embeddings",
|
||||
"src/retrieval/actionabilityScoring",
|
||||
"src/retrieval/hierarchicalLevel"
|
||||
]
|
||||
},
|
||||
"src/retrieval/intentClarification.ts": {
|
||||
"mtimeMs": 1780032375486.0012,
|
||||
"size": 7076,
|
||||
"lines": 141,
|
||||
"role": "Intent Clarification — 모호한 질의에서 추측 답변 대신 질문 던지기 지시. 사용자 피드백: \"ASTRA 는 질문을 받으면 즉시 답변을 생성하려 함. 하지만 '날카로운' 파악을 위해서는 질문 뒤의 '실행 목적' 을 먼저 정의해야\". 예: \"배포해줘\" → 환경 (dev/prod) / 태그 묻기. \"그 부분 고쳐줘\" → 어느 파일/모듈인지 묻기",
|
||||
"imports": []
|
||||
},
|
||||
"src/retrieval/knowledgeMix.ts": {
|
||||
"mtimeMs": 1778821115241.6562,
|
||||
"size": 7786,
|
||||
@@ -2104,6 +2230,22 @@
|
||||
"role": "Scoring Engine — TF-IDF + Bilingual Tokenizer 단순 includes() 키워드 매칭을 넘어서, TF-IDF 가중치 기반의 문서 스코어링을 제공합니다. 한국어/영어 양국어 토크나이저를 포함합니다.",
|
||||
"imports": []
|
||||
},
|
||||
"src/retrieval/semanticRerank.ts": {
|
||||
"mtimeMs": 1780030762153.9978,
|
||||
"size": 8205,
|
||||
"lines": 213,
|
||||
"role": "LLM Semantic Re-ranking — TF-IDF / 임베딩이 놓치는 의도 매치를 작은 LLM 호출 한 번으로 잡는다. 동작: 1. 1차 검색(TF-IDF + embedding + 부스트들) 결과의 상위 K (기본 15) 후보를 추출 2. 가벼운 프롬프트로 LLM 에게 \"이 중 query 의도에 가장 부합하는 순서로 ID 나열\" 요청 3. LLM ",
|
||||
"imports": [
|
||||
"src/retrieval/types"
|
||||
]
|
||||
},
|
||||
"src/retrieval/terminologyBlock.ts": {
|
||||
"mtimeMs": 1780033577419.837,
|
||||
"size": 5735,
|
||||
"lines": 137,
|
||||
"role": "Terminology Dictionary — 프로젝트 표준 용어집을 시스템 프롬프트에 주입. 사용자 제안: \"표준 표기 강제 + 답변 내 표기 일관성 검증\". 예: runway vs 런웨이, P-Reinforce vs p-reinforce, Chronicle vs 크로니클. 설계 — 사용자 편집 markdown 파일: - 위치: <workspace>/.as",
|
||||
"imports": []
|
||||
},
|
||||
"src/retrieval/types.ts": {
|
||||
"mtimeMs": 1779764602656.6587,
|
||||
"size": 2485,
|
||||
@@ -3206,7 +3348,7 @@
|
||||
"imports": []
|
||||
},
|
||||
"docs/records/ConnectAI/chronicle.config.json": {
|
||||
"mtimeMs": 1779783003968.8809,
|
||||
"mtimeMs": 1780037924615.7922,
|
||||
"size": 371,
|
||||
"lines": 11,
|
||||
"role": "JSON configuration",
|
||||
@@ -3387,6 +3529,27 @@
|
||||
"role": "ADR: E:\\Wiki\\connectai 프로젝트에 대한 너의 평가 해줘.",
|
||||
"imports": []
|
||||
},
|
||||
"docs/records/ConnectAI/decisions/ADR-0026-질문이-있어-내가-당근이라는-중고-거래-사이트에서-8tb-hdd를-구매했어-안전거래-escrow-를-사용했어.md": {
|
||||
"mtimeMs": 1780032500203.2405,
|
||||
"size": 2483,
|
||||
"lines": 19,
|
||||
"role": "ADR: 질문이 있어, 내가 당근이라는 중고 거래 사이트에서 8TB HDD를 구매했어. 안전거래 (Escrow)를 사용했어. 일단 물건을 어제 받았고, ...",
|
||||
"imports": []
|
||||
},
|
||||
"docs/records/ConnectAI/decisions/ADR-0027-connectai-프로젝트의-아스트라-대부분-답을-잘-줘-근대-간혹-오타가-발생하거나-상황에-맞지-않는-단어.md": {
|
||||
"mtimeMs": 1780033038688.5405,
|
||||
"size": 1749,
|
||||
"lines": 19,
|
||||
"role": "ADR: connectAI 프로젝트의 아스트라 대부분 답을 잘 줘. 근대 간혹 오타가 발생하거나 상황에 맞지 않는 단어를 간혹 사용해서 혼선을 줄때가 있...",
|
||||
"imports": []
|
||||
},
|
||||
"docs/records/ConnectAI/decisions/ADR-0028-질문이-있어-내가-당근이라는-중고-거래-사이트에서-8tb-hdd를-구매했어-안전거래-escrow-를-사용했어.md": {
|
||||
"mtimeMs": 1780037924606.6091,
|
||||
"size": 2481,
|
||||
"lines": 19,
|
||||
"role": "ADR: 질문이 있어, 내가 당근이라는 중고 거래 사이트에서 8TB HDD를 구매했어. 안전거래 (Escrow)를 사용했어. 일단 물건을 어제 받았고, ...",
|
||||
"imports": []
|
||||
},
|
||||
"docs/records/ConnectAI/development/2026-05-02_answer-format-readability-tuning.md": {
|
||||
"mtimeMs": 1778028987330.4185,
|
||||
"size": 1564,
|
||||
@@ -3618,6 +3781,20 @@
|
||||
"role": "Development Log: /Volumes/Data/project/Antigravity/ConnectAI 코드 리뷰하고 사용자 입장에서 개선이 필요한 부분이 있는지, 제안...",
|
||||
"imports": []
|
||||
},
|
||||
"docs/records/ConnectAI/development/2026-05-29_e-wiki-connectai-프로젝트에-대해서-이야기-하는거야_implementation.md": {
|
||||
"mtimeMs": 1780031872506.9214,
|
||||
"size": 1611,
|
||||
"lines": 28,
|
||||
"role": "Development Log: E:\\Wiki\\connectai 프로젝트에 대해서 이야기 하는거야.",
|
||||
"imports": []
|
||||
},
|
||||
"docs/records/ConnectAI/development/2026-05-29_아스트라를-지금-보다-더-날카롭고-신뢰감이-높은-아이-그리고-나의-의도를-잘-파악하게-하기-위해서는-어떤부분_implementation.md": {
|
||||
"mtimeMs": 1780031951811.4153,
|
||||
"size": 1670,
|
||||
"lines": 22,
|
||||
"role": "Development Log: 아스트라를 지금 보다 더 날카롭고 신뢰감이 높은 아이 그리고 나의 의도를 잘 파악하게 하기 위해서는 어떤부분을 강화하는게 좋을까?",
|
||||
"imports": []
|
||||
},
|
||||
"docs/records/ConnectAI/discussions/2026-05-13_volumes-data-project-antigravity-connectai-이-프로젝트-작업-할-거야.md": {
|
||||
"mtimeMs": 1778720117404.2578,
|
||||
"size": 668,
|
||||
@@ -3710,9 +3887,9 @@
|
||||
"imports": []
|
||||
},
|
||||
"docs/records/ConnectAI/timeline.md": {
|
||||
"mtimeMs": 1779783003962.848,
|
||||
"size": 13603,
|
||||
"lines": 212,
|
||||
"mtimeMs": 1780037924607.6199,
|
||||
"size": 14606,
|
||||
"lines": 227,
|
||||
"role": "Project Timeline",
|
||||
"imports": []
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user