Files
g1nation a114d968b0 feat(core): 자기지식 접지·웹 접근·환경 자가점검 — 할루시네이션 방어 3중화 (v2.2.247)
- Alignment Self-Learning: 자가 조사(질문 전 두뇌 검색)·사용자 답변 두뇌 저장·핵심메시지/프로젝트 컨텍스트 주입 (alignmentResearch.ts 신규)
- 웹 접근: Bridge 폴백 직접 fetch(webFetch.ts 신규)·<fetch_url> 액션 태그·기업 모드 URL/아키텍처 컨텍스트 주입·bare 도메인 인식
- 트리거 버그 수정: startsWith('/') 가 절대경로를 슬래시 명령으로 오인 — 분석 지시·URL 주입 전멸 원인 (회귀 테스트 고정)
- 자기지식 접지: 기능 인벤토리 lazy 재생성·학습 메커니즘 정본 섹션·[인벤토리 대조] 태그 의무화·결정론적 재구현 제안 정정 훅(featureConceptMap.ts 신규)
- 환경 자가점검: HealthCheckMonitor 에 Bridge/두뇌 볼륨/git 자격증명/확장 버전 검사 4종 + readyBar ⚠ 표시
- 두뇌 동기화: 원격 미설정 시 로컬 새로고침 모드·staged 기준 commit 판정·인증 부재 안내
- 기타: outputFormat 기본 markdown(제목 렌더 복구)·레슨/행동제약 truncation 보호 구역 이동·[CONTEXT] 절단 우선순위 재정렬

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 23:46:07 +09:00

5230 lines
230 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"version": 1,
"generatedAt": "2026-06-12T14:30:58.350Z",
"files": {
"src/agent/actions/brainOps.ts": {
"mtimeMs": 1779634187000,
"size": 2642,
"lines": 54,
"role": "",
"imports": [
"src/agent/actions/types",
"src/utils",
"src/config"
]
},
"src/agent/actions/calendar.ts": {
"mtimeMs": 1781260027000,
"size": 3689,
"lines": 66,
"role": "",
"imports": [
"src/agent/actions/types",
"src/agent/attrParsers",
"src/features/calendar",
"src/features/calendar/conflictCheck"
]
},
"src/agent/actions/fileCreateEdit.ts": {
"mtimeMs": 1779634159000,
"size": 3263,
"lines": 73,
"role": "",
"imports": [
"src/security",
"src/core/errors",
"src/agent/actions/types"
]
},
"src/agent/actions/fileDeleteRead.ts": {
"mtimeMs": 1779634168000,
"size": 2053,
"lines": 44,
"role": "",
"imports": [
"src/security",
"src/core/errors",
"src/agent/actions/types"
]
},
"src/agent/actions/listFiles.ts": {
"mtimeMs": 1779634179000,
"size": 1470,
"lines": 31,
"role": "",
"imports": [
"src/agent/actions/types",
"src/security",
"src/config"
]
},
"src/agent/actions/runCommand.ts": {
"mtimeMs": 1779634168000,
"size": 925,
"lines": 20,
"role": "",
"imports": [
"src/agent/actions/types",
"src/security"
]
},
"src/agent/actions/sheets.ts": {
"mtimeMs": 1779634216000,
"size": 4099,
"lines": 87,
"role": "",
"imports": [
"src/agent/actions/types",
"src/agent/attrParsers",
"src/features/sheets"
]
},
"src/agent/actions/tasks.ts": {
"mtimeMs": 1779634214000,
"size": 3589,
"lines": 69,
"role": "",
"imports": [
"src/agent/actions/types",
"src/agent/attrParsers",
"src/features/tasks"
]
},
"src/agent/actions/types.ts": {
"mtimeMs": 1779634104000,
"size": 2471,
"lines": 41,
"role": "",
"imports": [
"src/core/transaction",
"src/agent"
]
},
"src/agent/actions/webFetch.ts": {
"mtimeMs": 1781262703000,
"size": 2032,
"lines": 43,
"role": "",
"imports": [
"src/agent/actions/types",
"src/lib/contextBuilders/urlContext"
]
},
"src/agent/attrParsers.ts": {
"mtimeMs": 1781260027000,
"size": 4864,
"lines": 121,
"role": "",
"imports": [
"src/features/tasks",
"src/src/agent"
]
},
"src/agent/handlePrompt/applyAutoContinuation.ts": {
"mtimeMs": 1779634654000,
"size": 7835,
"lines": 159,
"role": "",
"imports": [
"src/utils",
"src/agent",
"src/core/responseRecovery",
"src/lib/contextBuilders/outputSanitization",
"src/lib/contextManager",
"src/core/telemetry"
]
},
"src/agent/handlePrompt/buildAgentModeSystemPrompt.ts": {
"mtimeMs": 1781267199000,
"size": 5174,
"lines": 94,
"role": "",
"imports": [
"src/lib/contextBuilders/systemPromptShaping",
"src/lib/contextManager",
"src/utils",
"src/lib/contextBuilders/selfIdentity"
]
},
"src/agent/handlePrompt/buildAstraModeSystemPrompt.ts": {
"mtimeMs": 1781264806000,
"size": 7037,
"lines": 108,
"role": "",
"imports": [
"src/lib/contextBuilders/localProjectIntent",
"src/lib/contextBuilders/promptDetection",
"src/lib/contextBuilders/selfIdentity",
"src/retrieval/knowledgeMix"
]
},
"src/agent/handlePrompt/buildModeBridgeContext.ts": {
"mtimeMs": 1779634537000,
"size": 2855,
"lines": 57,
"role": "",
"imports": [
"src/agent",
"src/lib/contextBuilders/systemPromptShaping",
"src/lib/contextBuilders/lastTopicLine",
"src/utils"
]
},
"src/agent/handlePrompt/buildTurnContextBlocks.ts": {
"mtimeMs": 1779634584000,
"size": 4857,
"lines": 117,
"role": "",
"imports": [
"src/agent",
"src/config",
"src/utils",
"src/lib/contextBuilders/promptDetection",
"src/lib/contextBuilders/secondBrainInventory",
"src/lib/contextBuilders/localProjectPath",
"src/lib/contextBuilders/recentProjectKnowledge",
"src/lib/contextBuilders/jarvisProjectBrief",
"src/lib/contextBuilders/astraModeArchitecture",
"src/features/secondBrainTrace"
]
},
"src/agent/handlePrompt/computeBudgetedRequest.ts": {
"mtimeMs": 1779634641000,
"size": 8091,
"lines": 161,
"role": "",
"imports": [
"src/utils",
"src/agent",
"src/lib/contextManager",
"src/lib/contextBuilders/droppedHistorySummary"
]
},
"src/agent/handlePrompt/processFinalAnswer.ts": {
"mtimeMs": 1779634891000,
"size": 6459,
"lines": 147,
"role": "",
"imports": [
"src/utils",
"src/config",
"src/core/responseRecovery",
"src/lib/contextBuilders/outputSanitization",
"src/lib/contextBuilders/promptDetection",
"src/lib/contextBuilders/secondBrainInventory",
"src/lib/contextBuilders/localProjectIntent",
"src/lib/contextBuilders/projectKnowledge",
"src/lib/contextBuilders/localProjectPath",
"src/lib/contextBuilders/recentProjectKnowledge",
"src/features/secondBrainTrace",
"src/lib/contextManager"
]
},
"src/agent/hangulHygiene.ts": {
"mtimeMs": 1781260027000,
"size": 3244,
"lines": 61,
"role": "한·영 깨진 토큰 감지·수리 — 소형 로컬 모델의 토큰 붕괴 보정. 증상: 한국어 단어 중간에 영문 토큰이 섞임 — \"덩어리\"→\"덩ey\", \"결과적으로\"→\"결ently\". 프롬프트 규칙([출력 위생])으로는 못 막는다 — 지시 불이행이 아니라 디코딩 사고라서. 보정: 결정론 감지(아래 패턴) + 발견 시 1회 LLM 수리 패스. - 감지 패턴: 한글 음절 ",
"imports": []
},
"src/agent/llm/callNonStreaming.ts": {
"mtimeMs": 1779633563000,
"size": 4233,
"lines": 101,
"role": "",
"imports": [
"src/agent",
"src/utils",
"src/lib/contextBuilders/engineMessages",
"src/lmstudio/streamer",
"src/lib/contextBuilders/lmStudioSampling",
"src/features/providers"
]
},
"src/agent/llm/createStreamingRequest.ts": {
"mtimeMs": 1779633585000,
"size": 8968,
"lines": 169,
"role": "",
"imports": [
"src/utils",
"src/lib/contextBuilders/engineMessages",
"src/lib/contextBuilders/modelCandidates",
"src/lmstudio/streamer",
"src/lib/contextBuilders/lmStudioSampling",
"src/agent",
"src/features/providers"
]
},
"src/agent/llm/devilRebuttal.ts": {
"mtimeMs": 1779633604000,
"size": 2938,
"lines": 74,
"role": "",
"imports": [
"src/utils",
"src/agent",
"src/features/devilAgent"
]
},
"src/agent/llm/streamChatOnce.ts": {
"mtimeMs": 1779633587000,
"size": 5834,
"lines": 136,
"role": "",
"imports": [
"src/utils",
"src/lib/contextBuilders/lmStudioSampling",
"src/agent"
]
},
"src/agent/misc.ts": {
"mtimeMs": 1779633631000,
"size": 2070,
"lines": 56,
"role": "",
"imports": [
"src/utils",
"src/config",
"src/core/session",
"src/agent"
]
},
"src/agent/multiAgent/callRoleAgent.ts": {
"mtimeMs": 1779633728000,
"size": 4666,
"lines": 104,
"role": "",
"imports": [
"src/config",
"src/utils",
"src/lib/contextManager",
"src/lib/contextBuilders/lmStudioSampling",
"src/agent"
]
},
"src/agent/multiAgent/workflow.ts": {
"mtimeMs": 1779633889000,
"size": 5533,
"lines": 117,
"role": "",
"imports": [
"src/utils",
"src/config",
"src/agents/AgentWorkflowManager",
"src/core/errorHandler",
"src/core/statusBar",
"src/core/responseRecovery",
"src/agent"
]
},
"src/agent/postAnswerHooks/index.ts": {
"mtimeMs": 1781269525000,
"size": 13633,
"lines": 276,
"role": "Post-answer hook registry — 답변 완료 후 실행되는 부가 작업 모음. 새 hook 추가 = 1 객체 push. agent.ts 는 이 배열을 iterate 만 함. 현재 등록 순서 (v2.2.197): 1. devilRebuttal — Devil Agent 반박 카드 (비활성 시 silent skip) 2. postHocSelfChec",
"imports": [
"src/agent/postAnswerHooks/types",
"src/agent/llm/devilRebuttal",
"src/agent/postHocSelfCheck",
"src/agent/termValidator",
"src/intelligence/requirementGraph",
"src/intelligence/confidenceEngine",
"src/intelligence/escalationEngine",
"src/intelligence/criticAgent",
"src/intelligence/reflectionStore",
"src/intelligence/gapDetector",
"src/intelligence/skillScore",
"src/config",
"src/extension/featureConceptMap",
"src/lib/contextBuilders/selfAssessContext"
]
},
"src/agent/postAnswerHooks/types.ts": {
"mtimeMs": 1781260027000,
"size": 2345,
"lines": 52,
"role": "Post-Answer Hook 인터페이스 — 답변 streaming 완료 후 실행되는 부가 작업. 옛 구조: agent.ts 의 maybeEmitDevilRebuttal, maybePostHocSelfCheck, maybeRunTermValidator 3개 private method. 새 hook 추가 시 (1) method 정의 (2) import (3)",
"imports": [
"src/intelligence/confidenceEngine"
]
},
"src/agent/postHocSelfCheck.ts": {
"mtimeMs": 1781006628000,
"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": 1779633584000,
"size": 2719,
"lines": 61,
"role": "",
"imports": [
"src/utils",
"src/config",
"src/agent"
]
},
"src/agent/termValidator.ts": {
"mtimeMs": 1781006628000,
"size": 8156,
"lines": 202,
"role": "Post-generation Term Validator — 답변 완료 후 정규식/사전 기반 결정론적 스캔. v2.2.192 의 Terminology Dictionary 가 instructional (LLM 에게 표준 표기 사용 지시) 이면, 이건 deterministic — LLM 이 지시를 안 따랐을 때 catch. Glossary 파싱 — 두 패턴 인식",
"imports": [
"src/lib/mtimeFileCache"
]
},
"src/agent.ts": {
"mtimeMs": 1781268962000,
"size": 91458,
"lines": 1670,
"role": "",
"imports": [
"src/utils",
"src/config",
"src/security",
"src/core/transaction",
"src/core/session",
"src/agents/AgentWorkflowManager",
"src/lib/contextBuilders/astraModeArchitecture",
"src/lib/contextBuilders/scheduleContext",
"src/lib/contextBuilders/selfAssessContext",
"src/extension/featureInventory",
"src/lib/contextBuilders/urlContext",
"src/features/web/webFetch",
"src/intelligence/correctionLoop",
"src/lib/contextBuilders/multiAgentRouting",
"src/lib/contextBuilders/thinkingPartnerContract",
"src/lib/contextBuilders/droppedHistorySummary",
"src/lib/contextBuilders/historyTransform",
"src/lib/contextBuilders/lastTopicLine",
"src/lib/contextBuilders/modelCandidates",
"src/lib/contextBuilders/promptDetection",
"src/lib/contextBuilders/systemPromptShaping",
"src/lib/contextBuilders/outputSanitization",
"src/lib/contextBuilders/engineMessages",
"src/lib/contextBuilders/memoryContext",
"src/lib/contextBuilders/projectEvidence",
"src/lib/contextBuilders/jarvisProjectBrief",
"src/lib/contextBuilders/secondBrainInventory",
"src/lib/contextBuilders/localProjectIntent",
"src/lib/contextBuilders/projectKnowledge",
"src/lib/contextBuilders/localProjectPath",
"src/lib/contextBuilders/recentProjectKnowledge",
"src/core/errorHandler",
"src/core/events",
"src/core/errors",
"src/core/statusBar",
"src/core/lock",
"src/core/queue",
"src/core/conflict",
"src/core/telemetry",
"src/features/secondBrainTrace",
"src/memory",
"src/retrieval",
"src/retrieval/lessonHelpers",
"src/retrieval/knowledgeMix",
"src/core/responseRecovery",
"src/lib/contextManager",
"src/lmstudio/streamer",
"src/lib/contextBuilders/lmStudioSampling",
"src/agent",
"src/agent/attrParsers",
"src/agent/llm/callNonStreaming",
"src/agent/llm/createStreamingRequest",
"src/agent/llm/streamChatOnce",
"src/agent/llm/devilRebuttal",
"src/agent/sessions/compressSummary",
"src/agent/multiAgent/callRoleAgent",
"src/agent/multiAgent/workflow",
"src/agent/misc",
"src/agent/actions/types",
"src/agent/actions/fileCreateEdit",
"src/agent/actions/fileDeleteRead",
"src/agent/actions/runCommand",
"src/agent/actions/listFiles",
"src/agent/actions/webFetch",
"src/agent/actions/brainOps",
"src/agent/actions/calendar",
"src/agent/actions/sheets",
"src/agent/actions/tasks",
"src/agent/handlePrompt/buildModeBridgeContext",
"src/lib/contextBuilders/priorTurnConclusion",
"src/agent/handlePrompt/buildTurnContextBlocks",
"src/agent/handlePrompt/buildAgentModeSystemPrompt",
"src/agent/handlePrompt/buildAstraModeSystemPrompt",
"src/agent/handlePrompt/computeBudgetedRequest",
"src/agent/handlePrompt/processFinalAnswer",
"src/agent/postAnswerHooks",
"src/agent/handlePrompt/applyAutoContinuation",
"src/features/approval/approvalQueue",
"src/intelligence/confidenceEngine",
"src/features/providers",
"src/agent/hangulHygiene",
"src/features/selfReflector/selfReflectorExecution"
]
},
"src/agents/AgentWorkflowManager.ts": {
"mtimeMs": 1779609976000,
"size": 2729,
"lines": 69,
"role": "",
"imports": [
"src/agents/factory",
"src/lib/engine",
"src/config"
]
},
"src/agents/factory.ts": {
"mtimeMs": 1779601097000,
"size": 19504,
"lines": 328,
"role": "",
"imports": [
"src/config",
"src/lib/engine"
]
},
"src/bridge.ts": {
"mtimeMs": 1779492050000,
"size": 10526,
"lines": 242,
"role": "",
"imports": [
"src/utils",
"src/config",
"src/core/services",
"src/skills/skillInjectionService",
"src/lib/paths"
]
},
"src/config.ts": {
"mtimeMs": 1781271211000,
"size": 36879,
"lines": 661,
"role": "",
"imports": []
},
"src/core/astraPath.ts": {
"mtimeMs": 1778169995000,
"size": 1782,
"lines": 50,
"role": "Astra Path Resolver (경로 해결기) Astra의 모든 데이터 파일(.astra 디렉토리)의 경로를 중앙에서 관리합니다. 확장 프로그램의 설치 경로(extensionUri) 기반으로 .astra 디렉토리를 해결하여, 사용자 프로젝트 루트가 아닌 ConnectAI 패키지 내부에 데이터를 저장합니다. 이 모듈은 AAL(Astra Autonomou",
"imports": []
},
"src/core/conflict.ts": {
"mtimeMs": 1778169995000,
"size": 1726,
"lines": 30,
"role": "",
"imports": [
"src/utils"
]
},
"src/core/dataProcessor.ts": {
"mtimeMs": 1778169995000,
"size": 3235,
"lines": 96,
"role": "Aggregate result type definition",
"imports": []
},
"src/core/errorHandler.ts": {
"mtimeMs": 1777808065000,
"size": 2305,
"lines": 49,
"role": "",
"imports": []
},
"src/core/errors.ts": {
"mtimeMs": 1778169995000,
"size": 924,
"lines": 34,
"role": "g1nation Custom Error Classes",
"imports": []
},
"src/core/events.ts": {
"mtimeMs": 1777808065000,
"size": 993,
"lines": 35,
"role": "",
"imports": []
},
"src/core/health.ts": {
"mtimeMs": 1781272867000,
"size": 8298,
"lines": 167,
"role": "",
"imports": [
"src/config",
"src/utils",
"src/features/datacollect/bridgeClient"
]
},
"src/core/lock.ts": {
"mtimeMs": 1779609906000,
"size": 3869,
"lines": 93,
"role": "",
"imports": [
"src/utils"
]
},
"src/core/queue.ts": {
"mtimeMs": 1778674336000,
"size": 2428,
"lines": 81,
"role": "",
"imports": [
"src/utils"
]
},
"src/core/responseRecovery.ts": {
"mtimeMs": 1779598805000,
"size": 16753,
"lines": 310,
"role": "Response Recovery — Thought Quarantine + Final-only Retry + Auto-Continuation The user already asked their question; they're waiting for an answer, not for a chance to babysit the generation engine. S",
"imports": [
"src/lib/contextManager"
]
},
"src/core/services.ts": {
"mtimeMs": 1779535877000,
"size": 7446,
"lines": 176,
"role": "",
"imports": [
"src/config",
"src/utils"
]
},
"src/core/session.ts": {
"mtimeMs": 1777808065000,
"size": 2785,
"lines": 88,
"role": "",
"imports": [
"src/agent",
"src/utils"
]
},
"src/core/statusBar.ts": {
"mtimeMs": 1777808065000,
"size": 2000,
"lines": 57,
"role": "",
"imports": []
},
"src/core/telemetry.ts": {
"mtimeMs": 1778674336000,
"size": 5442,
"lines": 129,
"role": "Telemetry — append-only usage events to .astra/usage.jsonl Why local-file telemetry instead of a webview dashboard or remote endpoint: - Astra is local-first. No data leaves the machine. - JSONL is tr",
"imports": [
"src/core/astraPath",
"src/utils"
]
},
"src/core/transaction.ts": {
"mtimeMs": 1778251556000,
"size": 4458,
"lines": 132,
"role": "",
"imports": [
"src/core/errors",
"src/utils"
]
},
"src/docs/records/src/README.md": {
"mtimeMs": 1777949473000,
"size": 422,
"lines": 18,
"role": "src Chronicle Records",
"imports": []
},
"src/docs/records/src/bugs/BUG-0001-edited-agent-ts-edited-agent-ts-edited-agent-ts-edited-agent.md": {
"mtimeMs": 1777949473000,
"size": 1797,
"lines": 16,
"role": "Bug: Edited agent.ts Edited agent.ts Edited agent.ts Edited agent.ts Edited agent.ts ...",
"imports": []
},
"src/docs/records/src/bugs/BUG-0002-viewed-agent-ts-2159-2206-제공해주신-세부-파일-구조와-지식-수집-워크플로우-관점의-코드.md": {
"mtimeMs": 1777949638000,
"size": 2201,
"lines": 16,
"role": "Bug: Viewed agent.ts:2159-2206 제공해주신 세부 파일 구조와 지식 수집 워크플로우 관점의 코드리뷰 요청을 정독했습니다. 이...",
"imports": []
},
"src/docs/records/src/chronicle.config.json": {
"mtimeMs": 1777949638000,
"size": 517,
"lines": 11,
"role": "JSON configuration",
"imports": []
},
"src/docs/records/src/project-profile.md": {
"mtimeMs": 1777949473000,
"size": 582,
"lines": 31,
"role": "Project Profile",
"imports": []
},
"src/docs/records/src/timeline.md": {
"mtimeMs": 1777949638000,
"size": 381,
"lines": 10,
"role": "Project Timeline",
"imports": []
},
"src/extension/brainBootstrap.ts": {
"mtimeMs": 1781260027000,
"size": 4679,
"lines": 90,
"role": "두뇌(Second Brain) 기본 위치 부트스트랩 — 첫 실행 온보딩. 문제: 두뇌 미설정 시 config 가 ~/.g1nation-brain(숨김 점폴더)로 조용히 폴백했다. - 폴더가 실제로 생성되지 않고, 설정 UI 에도 보이지 않으며, 숨김 폴더라 비개발자 사용자는 자신의 성장 데이터(레슨·기억·지식)가 어디 쌓이는지 알 수 없다. - 컴퓨터마다 ",
"imports": [
"src/utils"
]
},
"src/extension/calendarSetup.ts": {
"mtimeMs": 1779631650000,
"size": 10551,
"lines": 214,
"role": "",
"imports": [
"src/features/calendar"
]
},
"src/extension/embeddingBootstrap.ts": {
"mtimeMs": 1781260027000,
"size": 4667,
"lines": 80,
"role": "임베딩 모델 자동 감지 부트스트랩 — 하이브리드(sparse+dense) 검색 온보딩. 문제: g1nation.embeddingModel 기본값이 '' (비활성) — LM Studio 에 임베딩 모델이 로드돼 있어도 사용자가 설정 키와 모델명 문자열을 알아야만 켜진다. 비개발자 사용자에게는 사실상 영구 비활성. 측정 결과 임베딩 블렌드가 어휘 갭 (\"심판\"",
"imports": [
"src/utils"
]
},
"src/extension/evalCommands.ts": {
"mtimeMs": 1781260027000,
"size": 29561,
"lines": 521,
"role": "",
"imports": [
"src/config",
"src/utils",
"src/retrieval",
"src/retrieval/brainIndex",
"src/retrieval/embeddings",
"src/retrieval/evalHarness",
"src/intelligence/taskEvalHarness",
"src/intelligence/requirementGraph",
"src/intelligence/epistemicGuardBlock",
"src/intelligence/llmCall",
"src/intelligence/reflectionStore",
"src/intelligence/needEngine",
"src/intelligence/knowledgeDecay",
"src/intelligence/skillScore",
"src/intelligence/researchAgent",
"src/intelligence/knowledgeValidation",
"src/intelligence/learningQueue"
]
},
"src/extension/featureConceptMap.ts": {
"mtimeMs": 1781274608000,
"size": 7832,
"lines": 134,
"role": "기능 개념 지도 — vscode 의존 없는 순수 모듈 (테스트 용이). 두 소비처: 1. featureInventory.ts — \"ASTRA 기능 인벤토리\" 마크다운 생성 (LLM 프롬프트 주입용) 2. postAnswerHooks inventory-cross-check — 답변이 이미 구현된 기능을 신규 제안하는지 결정론적으로 검사해 정정 푸터를 붙임 2",
"imports": []
},
"src/extension/featureInventory.ts": {
"mtimeMs": 1781273606000,
"size": 7938,
"lines": 127,
"role": "ASTRA 기능 인벤토리 자동 생성 — 자기 지식 구식화의 근본 수정. 문제 (반복 발생한 심각 버그): ASTRA 의 자기 지식이 사람이 쓴 스냅샷 (selfIdentity 블록, \"ASTRA 자기 아키텍처\" 위키 문서)에 의존했다. 스냅샷은 작성 시점에 박제되므로 릴리스마다 구식이 되고, ASTRA 는 자기 평가·개선 제안에서 이미 있는 기능을 \"신규 ",
"imports": [
"src/utils",
"src/agent/postAnswerHooks",
"src/extension/featureConceptMap"
]
},
"src/extension/initialSetup.ts": {
"mtimeMs": 1779631670000,
"size": 2922,
"lines": 60,
"role": "",
"imports": [
"src/utils"
]
},
"src/extension/lessonCommands.ts": {
"mtimeMs": 1779632141000,
"size": 2666,
"lines": 46,
"role": "",
"imports": [
"src/skills/agentKnowledgeMap",
"src/extension/lessons",
"src/agent"
]
},
"src/extension/lessons.ts": {
"mtimeMs": 1781260027000,
"size": 7646,
"lines": 140,
"role": "",
"imports": [
"src/utils",
"src/retrieval",
"src/retrieval/lessonHelpers",
"src/intelligence/lessonNetwork"
]
},
"src/extension/providerCommands.ts": {
"mtimeMs": 1781260027000,
"size": 7565,
"lines": 136,
"role": "",
"imports": [
"src/sidebarProvider",
"src/extension/calendarSetup",
"src/features/company",
"src/features/calendar",
"src/features/devilAgent"
]
},
"src/extension/scaffoldCommand.ts": {
"mtimeMs": 1779632128000,
"size": 2300,
"lines": 50,
"role": "",
"imports": [
"src/scaffolder/projectScaffolder",
"src/scaffolder/templates"
]
},
"src/extension/settingsSetup.ts": {
"mtimeMs": 1781006628000,
"size": 3294,
"lines": 67,
"role": "",
"imports": [
"src/features/settings/settingsPanelProvider",
"src/retrieval",
"src/extension/telegramCommands",
"src/integrations/telegram/telegramBot",
"src/integrations/telegram/telegramClient"
]
},
"src/extension/telegramCommands.ts": {
"mtimeMs": 1779632383000,
"size": 4802,
"lines": 103,
"role": "",
"imports": [
"src/integrations/telegram/telegramBot",
"src/integrations/telegram/telegramClient"
]
},
"src/extension.ts": {
"mtimeMs": 1781260027000,
"size": 21309,
"lines": 418,
"role": "",
"imports": [
"src/features/teamops/handlers",
"src/features/system/handlers",
"src/features/datacollect/handlers",
"src/utils",
"src/config",
"src/agent",
"src/bridge",
"src/sidebarProvider",
"src/core/health",
"src/core/astraPath",
"src/lmstudio/client",
"src/lmstudio/activityTracker",
"src/lmstudio/lifecycleManager",
"src/lmstudio/streamer",
"src/system/specs",
"src/features/approval/approvalQueue",
"src/features/approval/approvalPanelProvider",
"src/features/approval/approvalStatusBar",
"src/integrations/telegram/telegramClient",
"src/integrations/telegram/telegramBot",
"src/retrieval",
"src/retrieval/lessonHelpers",
"src/extension/calendarSetup",
"src/extension/initialSetup",
"src/features/stocks",
"src/features/briefing/dailyBriefing",
"src/extension/brainBootstrap",
"src/extension/embeddingBootstrap",
"src/extension/featureInventory",
"src/features/growth/growthCycleWatcher",
"src/features/growth/sleepDigest",
"src/extension/providerCommands",
"src/extension/scaffoldCommand",
"src/extension/lessonCommands",
"src/extension/evalCommands",
"src/extension/telegramCommands",
"src/extension/settingsSetup",
"src/integrations/telegram/telegramSetup",
"src/features/setup/datacollectSetup",
"src/features/growth/conflictScan"
]
},
"src/features/_shared/eventSourcedStore.ts": {
"mtimeMs": 1781006628000,
"size": 3216,
"lines": 83,
"role": "Generic event-sourced store — append-only .jsonl 파일 1개를 읽고/쓰는 공통 기반. 배경: customers, hire, runway, feedback 4개 store 가 같은 패턴 4번 반복 (getXFilePath / readX / appendX / countX) — byte-for-byte 중복 ~240줄. 한 ",
"imports": []
},
"src/features/approval/approvalPanelProvider.ts": {
"mtimeMs": 1778674336000,
"size": 7132,
"lines": 153,
"role": "",
"imports": [
"src/features/approval/approvalQueue",
"src/sidebarProvider"
]
},
"src/features/approval/approvalQueue.ts": {
"mtimeMs": 1778251548000,
"size": 4722,
"lines": 129,
"role": "",
"imports": [
"src/utils"
]
},
"src/features/approval/approvalStatusBar.ts": {
"mtimeMs": 1778251623000,
"size": 1601,
"lines": 41,
"role": "",
"imports": [
"src/features/approval/approvalQueue"
]
},
"src/features/astraOffice/index.ts": {
"mtimeMs": 1781260027000,
"size": 789,
"lines": 18,
"role": "Astra Office — public API. 다음 세션에서 추가될 OfficeSnapshot presenter / schema 도 같은 entry 로 노출 예정. 현재 노출: full webview panel HTML 생성 함수. sidebarProvider.ts 는 이 한 줄만 import.",
"imports": [
"src/features/astraOffice/view/panelHtml",
"src/features/astraOffice/schema",
"src/features/astraOffice/presenter",
"src/features/astraOffice/view/layoutSchema"
]
},
"src/features/astraOffice/presenter.ts": {
"mtimeMs": 1781260027000,
"size": 7368,
"lines": 181,
"role": "Presenter — 옛 AgentWorkState + bubble queue + activity items 를 OfficeSnapshot 으로 변환하는 pure 함수. mini / full view 둘 다 같은 OfficeSnapshot 을 받게 만드는 게 목표. 이번 세션의 범위: 인터페이스 + 스텁. 실제 wiring 은 다음 세션에서: - sideb",
"imports": [
"src/features/company/pixelOfficeState",
"src/features/company/types",
"src/features/astraOffice/schema"
]
},
"src/features/astraOffice/schema.ts": {
"mtimeMs": 1781260027000,
"size": 10631,
"lines": 305,
"role": "OfficeSnapshot — Astra Office 의 도메인 타입. 동시성 진실 (docs/ASTRAOFFICEREFACTOR.md §1): dispatcher 는 직렬이라 한 시점에 active agent 는 0 또는 1명. 이걸 데이터로 강제하는 게 이 타입의 핵심 역할. 이 세션에서는 타입 + validator + empty factory 만. 백",
"imports": [
"src/features/company/pixelOfficeState"
]
},
"src/features/astraOffice/view/layoutSchema.ts": {
"mtimeMs": 1781260027000,
"size": 6475,
"lines": 180,
"role": "Pixel Office layout 저장 스키마 — workspaceState 의 g1nation.pixelOfficeLayout 키 에 저장되는 객체의 런타임 validator + v1 → v2 migration. 옛 runtime.ts 의 isV2Snap() heuristic 을 정식 schema 로 격상. webview 에서 받는 즉시 한 번 통과시키",
"imports": []
},
"src/features/astraOffice/view/officeBody.ts": {
"mtimeMs": 1781260027000,
"size": 4104,
"lines": 103,
"role": "",
"imports": []
},
"src/features/astraOffice/view/officeStyles.ts": {
"mtimeMs": 1781260027000,
"size": 25746,
"lines": 419,
"role": "",
"imports": []
},
"src/features/astraOffice/view/panelHtml.ts": {
"mtimeMs": 1781260027000,
"size": 923,
"lines": 26,
"role": "Full Astra Office webview HTML composition. 옛 sidebarProvider.ts 의 거대한 pixelOfficePanelHtml 을 4개 파일로 분리한 entry. 이번 세션은 동작 동등 분리 만. 다음 세션에 mini view 와 공통 presenter 도입.",
"imports": [
"src/features/astraOffice/view/officeStyles",
"src/features/astraOffice/view/officeBody",
"src/features/astraOffice/view/runtime"
]
},
"src/features/astraOffice/view/runtime.ts": {
"mtimeMs": 1781260027000,
"size": 93954,
"lines": 1963,
"role": "자동 분리: src/sidebarProvider.ts 4002-5116 (IIFE 본문) 에서 추출. 동작 동등. ${assets.derivedBase} placeholder 는 panelHtml 에서 .replace() 로 실제 값 주입. 다음 세션에서 OfficeSnapshot 기반으로 단계적으로 잘라낼 예정.",
"imports": []
},
"src/features/briefing/dailyBriefing.ts": {
"mtimeMs": 1781260027000,
"size": 9101,
"lines": 184,
"role": "데일리 브리핑 워처 — 평일(월~금) KST 09:30 에 \"오늘의 할 일\"을 텔레그램으로 발송. 소스: 1. Google Calendar — iCal 캐시 새로고침 후 오늘 일정 (readCalendarEventsCache) 2. Google Tasks — 오늘 마감 + 기한 지난 미완료 + 날짜 없는 [조건부] task (listTasks) 발송 조건 ",
"imports": [
"src/utils",
"src/integrations/telegram/telegramClient",
"src/extension/telegramCommands",
"src/features/calendar/calendarCache",
"src/features/calendar/tasksApi",
"src/features/datacollect/scheduling/meetRegistration"
]
},
"src/features/calendar/calendarApi.ts": {
"mtimeMs": 1781260027000,
"size": 9717,
"lines": 218,
"role": "Google Calendar API v3 — event create/list 호출. access token 은 caller 가 직접 주입한다. 만료 처리는 withFreshAccessToken 헬퍼가 refresh token 으로 갱신 → 호출 → 401 발생 시 한 번 더 갱신 + 재시도. 외부 라이브러리(googleapis) 안 씀 — Calendar ",
"imports": [
"src/features/calendar/oauth",
"src/features/calendar/calendarCache"
]
},
"src/features/calendar/calendarCache.ts": {
"mtimeMs": 1781260027000,
"size": 13121,
"lines": 271,
"role": "Google Calendar (iCal) 캐시 — fetch + parse + 회사 shared/calendarcache.md 에 저장. Connectorigin 의 googlecalendar.py 를 TypeScript / native fetch 로 옮김. OAuth 없음. 사용자가 Google Calendar 설정 → \"비공개 주소(iCal 형식)\" 복",
"imports": [
"src/features/calendar/icsParser"
]
},
"src/features/calendar/conflictCheck.ts": {
"mtimeMs": 1781260027000,
"size": 3481,
"lines": 81,
"role": "Schedule Conflict Check — 일정 생성 전 기존 일정과의 겹침 감지. Self-Evolving OS 마스터 플랜 병렬 트랙 6-2 + 6-3. Requirement Graph 의 일정 필수 요소 \"충돌 확인\" 과 Constitution \"승인 없는 외부 액션 금지\" 의 실행 계층: - 에이전트가 <createcalendarevent> 로 ",
"imports": []
},
"src/features/calendar/icsParser.ts": {
"mtimeMs": 1778934638000,
"size": 4823,
"lines": 114,
"role": "Minimal ICS parser — no library deps. Connectorigin 의 Python 버전을 그대로 옮겼고, 본 함수는 pure 라서 단위테스트가 쉽다. 처리 범위: - VEVENT 블록 추출 - line continuation (다음 줄이 공백 시작) 펼치기 - SUMMARY / DESCRIPTION / LOCATION / DTST",
"imports": []
},
"src/features/calendar/index.ts": {
"mtimeMs": 1781260027000,
"size": 829,
"lines": 48,
"role": "",
"imports": [
"src/features/calendar/icsParser",
"src/features/calendar/calendarCache",
"src/features/calendar/conflictCheck",
"src/features/calendar/oauth",
"src/features/calendar/calendarApi",
"src/features/calendar/tasksApi"
]
},
"src/features/calendar/oauth.ts": {
"mtimeMs": 1781006628000,
"size": 10750,
"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": 1781260027000,
"size": 7421,
"lines": 172,
"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": 1779608334000,
"size": 37591,
"lines": 531,
"role": "기본 에이전트 로스터 — 1인 기업 모드의 출고 디폴트. 설계 의도: 소프트웨어/게임 개발 IT 회사의 1인 기업 운영을 가정. 한 사람이 기획 → 디자인 → 개발 → QA → 출시 → 운영/마케팅을 모두 책임질 때 필요한 직군을 빠짐없이 커버하되 역할이 겹치지 않게 분리한다. 직군 구분 (혼동 방지): - 기획자(business) : 무엇을 만들지 정의 ",
"imports": [
"src/features/company/types"
]
},
"src/features/company/alignmentResearch.ts": {
"mtimeMs": 1781261317000,
"size": 13558,
"lines": 311,
"role": "Alignment Self-Research — 사용자에게 묻기 전에 두뇌를 먼저 검색. Intent Alignment 분석기가 만든 openQuestions 를 사용자에게 노출하기 전에, 활성 두뇌(지식 폴더)를 TF-IDF 로 검색해 스스로 답할 수 있는 질문 을 걸러낸다. 답을 찾은 질문은 answeredQuestions 로 옮겨지고(자가 조사 mark",
"imports": [
"src/core/services",
"src/utils",
"src/retrieval/brainIndex",
"src/retrieval/scoring"
]
},
"src/features/company/ceoPlanner.ts": {
"mtimeMs": 1779535966000,
"size": 11839,
"lines": 270,
"role": "CEO planner — turns a user prompt into a CompanyTaskPlan. Lifecycle of one planner call: 1. Build the planner system prompt (template + active-agent list). 2. Hit the AI service with the user prompt a",
"imports": [
"src/core/services",
"src/utils",
"src/features/company/companyConfig",
"src/features/company/promptAssets",
"src/features/company/promptBuilder",
"src/features/company/types"
]
},
"src/features/company/ceoReporter.ts": {
"mtimeMs": 1779535985000,
"size": 4953,
"lines": 123,
"role": "CEO synthesis pass — runs after all specialists have finished. Given the per-agent outputs, this asks the CEO model to produce the final markdown report (✅ 완료 / 🚀 다음 / 💡 인사이트) that the user actually",
"imports": [
"src/core/services",
"src/utils",
"src/features/company/companyConfig",
"src/features/company/promptAssets",
"src/features/company/types"
]
},
"src/features/company/companyConfig.ts": {
"mtimeMs": 1778902489000,
"size": 40139,
"lines": 896,
"role": "State + config plumbing for 1인 기업 모드. Two surfaces: - CompanyState (runtime data: enabled flag, company name, which agents are active, per-agent model overrides). Persisted in VS Code's globalState so",
"imports": [
"src/features/company/agents",
"src/features/company/types"
]
},
"src/features/company/dispatcher.ts": {
"mtimeMs": 1781262875000,
"size": 71180,
"lines": 1397,
"role": "Sequential dispatcher for 1인 기업 모드. Drives one company \"turn\": user prompt → CEO planner (JSON {brief, tasks}) → for each task in plan: dispatch one specialist (sequentially) - build specialist prompt",
"imports": [
"src/core/services",
"src/utils",
"src/skills/scopedBrainRetriever",
"src/skills/agentKnowledgeMap",
"src/retrieval/knowledgeMix",
"src/features/company/companyConfig",
"src/features/company/ceoPlanner",
"src/features/company/ceoReporter",
"src/features/company/promptBuilder",
"src/features/company/sessionStore",
"src/features/company/resumeStore",
"src/features/company/telegramReport",
"src/features/selfReflector/selfReflectorVerifier",
"src/features/selfReflector/selfReflectorExecution",
"src/features/selfReflector/selfReflectorHollow",
"src/features/company/intentAlignment",
"src/config",
"src/features/company/types",
"src/features/calendar",
"src/features/tasks",
"src/features/company/dispatcherHelpers"
]
},
"src/features/company/dispatcherHelpers.ts": {
"mtimeMs": 1779631073000,
"size": 5866,
"lines": 121,
"role": "",
"imports": [
"src/features/company/companyConfig",
"src/features/company/types"
]
},
"src/features/company/index.ts": {
"mtimeMs": 1781261331000,
"size": 2819,
"lines": 113,
"role": "Public API for 1인 기업 모드. Consumers (sidebarProvider, chatHandlers, command handlers) import from this barrel so internal layout can move around without touching every call site.",
"imports": [
"src/features/company/agents",
"src/features/company/companyConfig",
"src/features/company/types",
"src/features/company/pipelineTemplates",
"src/features/company/dispatcher",
"src/features/company/resumeStore",
"src/features/company/sessionStore",
"src/features/company/intentClassifier",
"src/features/company/intentAlignment",
"src/features/company/alignmentResearch",
"src/features/company/pixelOfficeState"
]
},
"src/features/company/intentAlignment.ts": {
"mtimeMs": 1781261252000,
"size": 19522,
"lines": 387,
"role": "Intent Alignment — 사용자의 자연어 요청을 실행 가능한 작업 조건으로 변환. 사용자는 자기 의도와 배경지식이 에이전트에게 충분히 전달되었다고 착각하는 경향이 있다 (투명성의 착각·지식의 저주·공통 기반 부족). 그래서 에이전트가 즉시 작업에 돌입하면 사용자가 머릿속에 가진 것과 다른 결과를 만들어 낸다. 이 모듈은 그 격차를 메꾸는 한 단계 ",
"imports": [
"src/core/services",
"src/utils",
"src/features/company/types"
]
},
"src/features/company/intentClassifier.ts": {
"mtimeMs": 1778902489000,
"size": 17372,
"lines": 348,
"role": "Intent classifier for 1인 기업 모드 chat input. The company mode used to route every chat message through the full dispatcher (CEO planner → specialists → CEO synthesis). That meant casual messages like \"고",
"imports": [
"src/core/services",
"src/utils"
]
},
"src/features/company/pipelineTemplates.ts": {
"mtimeMs": 1781006628000,
"size": 16287,
"lines": 285,
"role": "Built-in pipeline templates for 1인 기업 모드. These are blueprints, not data — they're surfaced in the manage panel's \"템플릿에서 추가\" dropdown so a non-developer user can stamp out a working pipeline in one cl",
"imports": [
"src/features/company/types"
]
},
"src/features/company/pixelOfficeState.ts": {
"mtimeMs": 1778902489000,
"size": 10025,
"lines": 286,
"role": "Pixel Office — Agent Work Pipeline 상태를 시각화하는 UI Layer 전용 모듈. ─────────────────── 설계 원칙 ─────────────────── 1. Agent 핵심 판단 로직을 절대 바꾸지 않는다. Pipeline 진행, contract 합의, 검수 cycle, 승인 게이트 — 모두 기존 dispatcher ",
"imports": []
},
"src/features/company/promptAssets.ts": {
"mtimeMs": 1778680887000,
"size": 6782,
"lines": 114,
"role": "Inlined prompt assets for the 1인 기업 mode. The CEO planner / reporter / casual-chat prompts are kept as TS string constants rather than loaded from prompts/.md at runtime, for two reasons: 1. Bundling.",
"imports": []
},
"src/features/company/promptBuilder.ts": {
"mtimeMs": 1781262774000,
"size": 18967,
"lines": 315,
"role": "System-prompt construction for company-mode agents. Each specialist needs a prompt that includes: - Their identity (name, role, specialty) + optional persona. - The action-tag contract (<createfile>, ",
"imports": [
"src/features/company/agents",
"src/features/company/companyConfig",
"src/features/company/types",
"src/config",
"src/features/selfReflector/selfReflectorPrompt"
]
},
"src/features/company/prompts/ceo-chat.md": {
"mtimeMs": 1778680831000,
"size": 462,
"lines": 4,
"role": "당신은 {{COMPANY}}의 CEO입니다. 사용자(사장님)와 짧게 인사·안부·잡담을 주고받습니다. - 한국어로 1~3문장. 친근하지만 사장-CEO 관계는 유지. - 인사·안부 질문이면 자연스럽게 응답하세요. 작업 지시가 아니면 굳이 작업 분배 제안 X. - 회사 정체성·최근 결정·추적기 상태가 컨텍스트에 있으면 자연스럽게 활용. - JSON 출력 금지. ",
"imports": []
},
"src/features/company/prompts/ceo-planner.md": {
"mtimeMs": 1778680831000,
"size": 3199,
"lines": 38,
"role": "당신은 \"{{COMPANY}}\"의 CEO입니다. 1인 AI 기업의 사령관이자 오케스트레이터입니다.",
"imports": []
},
"src/features/company/prompts/ceo-report.md": {
"mtimeMs": 1778680831000,
"size": 1373,
"lines": 21,
"role": "당신은 {{COMPANY}}의 CEO입니다. 방금 팀이 작업을 끝냈습니다. 각 에이전트의 산출물을 읽고 사장님께 올릴 종합 보고서를 작성하세요.",
"imports": []
},
"src/features/company/resumeStore.ts": {
"mtimeMs": 1779608998000,
"size": 6030,
"lines": 140,
"role": "Disk persistence for company-turn resume state. 각 turn의 sessionDir 안에 resume.json을 두고, dispatcher가 매 의미 있는 시점(plan 확정 / 각 stage 직후 / abort 시점)에 현재 상태를 덮어쓴다. 재개 시점에는 이 파일을 읽어 nextIndex 부터 dispatch 재개. ",
"imports": [
"src/utils",
"src/features/company/sessionStore",
"src/features/company/types"
]
},
"src/features/company/sessionStore.ts": {
"mtimeMs": 1778680971000,
"size": 8727,
"lines": 231,
"role": "Disk persistence for company-mode session artefacts. Each company turn produces a timestamped directory: <workspaceRoot>/.astra/company/sessions/2026-05-13T21-29/ ├─ brief.md ← CEO's task decompositio",
"imports": [
"src/utils",
"src/features/company/types"
]
},
"src/features/company/telegramReport.ts": {
"mtimeMs": 1778762677000,
"size": 8126,
"lines": 168,
"role": "Telegram mirror for the secretary agent (영숙). After every company turn finishes, this helper takes the CEO synthesis + task list and pushes it to the user's Telegram chat — same behaviour as Connector",
"imports": [
"src/utils",
"src/integrations/telegram/telegramClient",
"src/integrations/telegram/conversationHistory",
"src/features/company/companyConfig",
"src/features/company/types"
]
},
"src/features/company/types.ts": {
"mtimeMs": 1778902489000,
"size": 20877,
"lines": 446,
"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": 1781006628000,
"size": 5722,
"lines": 149,
"role": "고객사 / MRR / 갱신 트래커. 4인 기업의 수입 쪽 — /runway 가 통장과 burn 을 본다면, 여기는 어디서 돈이 들어오나. Salesforce / HubSpot 같은 CRM 아닌 가벼운 event-sourced 로그. 저장 형식: JSON Lines (.jsonl) — append-only event log. 같은 customer 의 여러 이",
"imports": [
"src/features/_shared/eventSourcedStore"
]
},
"src/features/datacollect/bridgeClient.ts": {
"mtimeMs": 1781260027000,
"size": 8060,
"lines": 178,
"role": "",
"imports": []
},
"src/features/datacollect/handlers.ts": {
"mtimeMs": 1781260027000,
"size": 46089,
"lines": 821,
"role": "Datacollect handlers — /benchmark · /youtube · /blog · /wikify · /meet. (/research(NotebookLM)는 v2.2.205 에서 제거 — 로컬 Datacollect 앱 전용으로 분리) v2.2.201 에서 slashRouter.ts 에서 분리. Datacollect bridge (port 30",
"imports": [
"src/features/datacollect/slashRouter",
"src/features/datacollect/llm",
"src/features/datacollect/bridgeClient",
"src/features/datacollect/prompts/synthesisPrompt",
"src/features/datacollect/prompts/youtubePrompts",
"src/features/datacollect/prompts/wikifyPrompt",
"src/features/datacollect/prompts/meetPrompt",
"src/features/calendar",
"src/features/datacollect/scheduling/meetRegistration",
"src/features/datacollect/scheduling/calendarHelpers",
"src/agent/hangulHygiene"
]
},
"src/features/datacollect/llm.ts": {
"mtimeMs": 1781006628000,
"size": 6940,
"lines": 122,
"role": "Datacollect LLM 호출 인프라 — bridge /api/lm 프록시 통해 OpenAI 호환 chat completion 단발 호출. v2.2.201 에서 slashRouter.ts 에서 분리. 옛 위치는 slashRouter.callLmSynthesis 였으나 datacollect handlers + teamops/communication 양쪽이",
"imports": [
"src/features/datacollect/bridgeClient"
]
},
"src/features/datacollect/prompts/meetPrompt.ts": {
"mtimeMs": 1781260027000,
"size": 13096,
"lines": 201,
"role": "회의 녹취 텍스트 → 사실 기반 구조화 회의록(Actionable Minutes) LLM 프롬프트. 사용자 정의 규칙: Fact/Discussion/Decision/Risk/Action 분류, 메타데이터 우선.",
"imports": []
},
"src/features/datacollect/prompts/synthesisPrompt.ts": {
"mtimeMs": 1779630675000,
"size": 13838,
"lines": 257,
"role": "/benchmark 보고서의 3 파트 분할 — 1: 4-렌즈 / 2: IA + 토큰 / 3: 재구축 명세.",
"imports": []
},
"src/features/datacollect/prompts/weeklyPrompt.ts": {
"mtimeMs": 1781006628000,
"size": 4702,
"lines": 96,
"role": "/weekly 주간 보고서 LLM 프롬프트. 입력: 캘린더(Google Tasks)에서 버킷팅된 금주/차주 task 목록 + 각 task 의 제목·마감·상태·메모(= /meet·/task 가 넣은 \"작업 상세 / 맥락\"). 금주/차주 분류는 호출부(coordination.ts)에서 due/completed 날짜로 이미 끝낸 상태로 들어온다. 이 프롬프트는 ",
"imports": []
},
"src/features/datacollect/prompts/wikifyPrompt.ts": {
"mtimeMs": 1781260027000,
"size": 8441,
"lines": 158,
"role": "추출된 웹사이트 본문 → P-Reinforce 위키 문서 프롬프트. 포맷 정본은 Datacollect 브리지의 wikiformat.mjs — 핸들러가 GET /api/wiki/template 로 받아 canonical 로 주입한다 (양쪽 포맷 통일). 브리지가 구버전(엔드포인트 없음)일 때만 아래 내장 사본(fallback)을 쓴다. 내장 사본은 정본을 따",
"imports": []
},
"src/features/datacollect/prompts/youtubePrompts.ts": {
"mtimeMs": 1781006628000,
"size": 18762,
"lines": 347,
"role": "/youtube slash command 의 LLM 입력 빌더 + 자막 변환 헬퍼. - formatHms / fullScriptFromSegments / bucketSegments — segment list 가공 - YoutubeAnalysisMode — info/benchmark/both 라우팅 enum (slashRouter 가 사용) - buildIn",
"imports": []
},
"src/features/datacollect/scheduling/calendarHelpers.ts": {
"mtimeMs": 1781260027000,
"size": 4755,
"lines": 99,
"role": "/meet 슬래시 명령의 후처리 — 회의록에서 action items 를 뽑아 캘린더 task 일정을 계산하는 stateless helpers. slashRouter 의 inline 블록을 분리. - addBusinessDays(base, n) — 토·일 제외 영업일 n 일 후 날짜 - toYmd(d) — Date → 'YYYY-MM-DD' - extrac",
"imports": []
},
"src/features/datacollect/scheduling/meetRegistration.ts": {
"mtimeMs": 1781260027000,
"size": 20511,
"lines": 392,
"role": "/meet 액션 아이템의 \"확신 게이트\" 등록 시스템. 정책 (사용자 정의): - 확정(합의+기한) → 자동 등록. - 진행미정 / 기한미정 / 조건부 → 등록 보류 + 사용자에게 질문, /meet confirm 답변으로 등록 완결. - 반복(예: 매주 목요일) → 반복 등록하지 않고 첫 1회만 등록 (까먹음 방지). - 과거 날짜(옛 녹취) → 과거 날짜",
"imports": [
"src/features/calendar/calendarApi",
"src/features/calendar/tasksApi",
"src/features/datacollect/scheduling/calendarHelpers",
"src/utils",
"src/features/calendar/calendarCache"
]
},
"src/features/datacollect/slashRouter.ts": {
"mtimeMs": 1781006628000,
"size": 10210,
"lines": 201,
"role": "",
"imports": [
"src/utils",
"src/features/datacollect/bridgeClient",
"src/features/datacollect/llm",
"src/features/setup/datacollectSetup",
"src/features/stocks"
]
},
"src/features/devilAgent/devilPrompt.ts": {
"mtimeMs": 1778943576000,
"size": 3591,
"lines": 71,
"role": "Devil's Advocate (도현) — system prompt 빌더. 설계 원칙: - 모든 약점을 나열하지 않음. 한 turn 에 1개 — 사용자가 깊게 생각하게. - 'X 입장에서 본다면' framing — 본인 의견이 아니라 다른 시점 으로 제시. 이는 LLM 의 '내가 옳다' 경향을 줄이는 잘 알려진 패턴. - 통계 / 구체 수치 / 외부 사례 ",
"imports": []
},
"src/features/devilAgent/devilService.ts": {
"mtimeMs": 1778943601000,
"size": 2457,
"lines": 60,
"role": "Devil Agent — 직전 답변에 대한 반박 생성기. 동작: 1. agent.ts 가 main turn 완료 직후 호출 2. 같은 model/engine 으로 별도 LLM call 1회 — 짧은 비판 한 문단 생성 3. 결과를 webview 로 'devilRebuttal' message 로 send 4. 실패 / 비활성 시 silent skip — ma",
"imports": [
"src/features/devilAgent/devilPrompt"
]
},
"src/features/devilAgent/index.ts": {
"mtimeMs": 1778943609000,
"size": 263,
"lines": 13,
"role": "",
"imports": [
"src/features/devilAgent/devilPrompt",
"src/features/devilAgent/devilService"
]
},
"src/features/feedback/feedbackStore.ts": {
"mtimeMs": 1781006628000,
"size": 1851,
"lines": 44,
"role": "고객 피드백 누적 저장소. 단일 운영자(대표) 모드에서 슬랙·이메일·CS 채널에 흩어진 고객 피드백을 /feedback <텍스트> 한 줄로 모아 둔다. 패턴 분석은 /feedback summary 로 LLM 이 누적 데이터를 보고 카테고리 분포 + 반복 주제를 추출. 저장 형식: JSON Lines (.jsonl) — 한 줄 = 한 entry. 누적·app",
"imports": [
"src/features/_shared/eventSourcedStore"
]
},
"src/features/growth/conflictScan.ts": {
"mtimeMs": 1781260027000,
"size": 14843,
"lines": 263,
"role": "신규 지식 충돌 스캔 — 지식 정합성의 \"쓰기 시점\" 게이트. 기존 충돌 감지(검색 시점 [CONFLICT WARNING])는 두 문서가 우연히 같이 검색될 때만 동작한다. 이 스캔은 새로 추가·변경된 두뇌 문서를 매일 능동적으로 기존 유사 문서와 대조해, 검색되기 전에 모순을 표면화한다 (Mem0 의 UPDATE/DELETE 판단의 보수적 변형 — 시스템",
"imports": [
"src/config",
"src/utils",
"src/retrieval",
"src/retrieval/brainIndex",
"src/intelligence/llmCall",
"src/features/growth/sleepDigest"
]
},
"src/features/growth/growthCycleWatcher.ts": {
"mtimeMs": 1781260027000,
"size": 19659,
"lines": 318,
"role": "주간 성장 사이클 워처 — Self-Evolving OS 의 폐루프 자동화. 기존엔 평가·학습큐·노후점검·학습실행이 전부 수동 명령이었다. 이 워처가 매주 (기본 일요일 20:00 KST) 자동으로: 1. 검색 평가 — 골든셋 recall@k/MRR (주간 추이 데이터, TF-IDF 경로) 2. 학습 큐 갱신 — Reflection → Need Engine",
"imports": [
"src/config",
"src/utils",
"src/retrieval",
"src/retrieval/brainIndex",
"src/retrieval/evalHarness",
"src/intelligence/reflectionStore",
"src/intelligence/needEngine",
"src/intelligence/knowledgeDecay",
"src/intelligence/skillScore",
"src/intelligence/researchAgent",
"src/intelligence/knowledgeValidation",
"src/intelligence/learningQueue",
"src/intelligence/llmCall",
"src/intelligence/correctionLoop",
"src/integrations/telegram/telegramClient",
"src/extension/telegramCommands"
]
},
"src/features/growth/sleepDigest.ts": {
"mtimeMs": 1781260027000,
"size": 13185,
"lines": 271,
"role": "Sleep-time 지식 사전 소화 (Sleep-time Compute, arXiv 2504.13171 의 ASTRA 이식). 아이디어: 로컬 LLM 의 최대 약점(느린 추론)을 응답 시점에서 유휴 시간으로 옮긴다. 유휴 시간에 두뇌의 \"raw context\"(위키 원문 더미)를 \"learned context\"(예상 질의별 압축 소화 노트)로 변환해 두면,",
"imports": [
"src/config",
"src/utils",
"src/intelligence/llmCall",
"src/features/growth/conflictScan"
]
},
"src/features/hire/hireStore.ts": {
"mtimeMs": 1781006628000,
"size": 4567,
"lines": 125,
"role": "채용 파이프라인 트래커. 4인 → 5인 이상 확장 시점에 후보자가 여러 명, 여러 역할(개발/기획/디자인) 로 들어오기 시작 — 노션·스프레드시트·이메일에 흩어진 정보를 한 명령으로 본다. Event-sourced (customersStore 와 동일 패턴) — append-only 이벤트 로그를 재생해 후보자별 현재 단계 + 노트 누적 도출. 위치: <w",
"imports": [
"src/features/_shared/eventSourcedStore"
]
},
"src/features/projectArchitecture/index.ts": {
"mtimeMs": 1778691699000,
"size": 25373,
"lines": 573,
"role": "Project Architecture Context (Feature 2) Builds a markdown document that captures the durable facts about a project — its purpose, modules, key files, constraints, decisions — so Astra can attach it t",
"imports": [
"src/utils",
"src/features/projectArchitecture/scanner",
"src/features/projectArchitecture/mermaid"
]
},
"src/features/projectArchitecture/intentDetector.ts": {
"mtimeMs": 1778676956000,
"size": 6170,
"lines": 148,
"role": "Project-intent detection from a chat message. Goal: when the user says \"나 ConnectAI 프로젝트 진행할 거야\" (or similar), spot the intent + project handle so the sidebar can activate Project Mode and auto-attach",
"imports": []
},
"src/features/projectArchitecture/mermaid.ts": {
"mtimeMs": 1778678215000,
"size": 2699,
"lines": 69,
"role": "Mermaid diagram renderers for the architecture doc. Two diagrams: a directory mindmap so the user can see the shape of the project at a glance, and a flowchart that shows which top-level module import",
"imports": [
"src/features/projectArchitecture/scanner"
]
},
"src/features/projectArchitecture/scanner.ts": {
"mtimeMs": 1778678939000,
"size": 28299,
"lines": 644,
"role": "Deep static analyser for the Project Architecture Context generator. Walks the project tree (skipping the usual nodemodules / out / dist noise), pulls the role of each interesting file from its leadin",
"imports": [
"src/features/projectArchitecture/y",
"src/features/projectArchitecture/side-effect",
"src/features/projectArchitecture/b"
]
},
"src/features/projectChronicle/guardPrompt.ts": {
"mtimeMs": 1779665457000,
"size": 8969,
"lines": 106,
"role": "",
"imports": [
"src/features/projectChronicle/types"
]
},
"src/features/projectChronicle/index.ts": {
"mtimeMs": 1777808065000,
"size": 7490,
"lines": 189,
"role": "",
"imports": [
"src/features/projectChronicle/markdownFileWriter",
"src/features/projectChronicle/types",
"src/features/projectChronicle/templates",
"src/features/projectChronicle/guardPrompt"
]
},
"src/features/projectChronicle/markdownFileWriter.ts": {
"mtimeMs": 1777808065000,
"size": 1317,
"lines": 41,
"role": "",
"imports": []
},
"src/features/projectChronicle/templates.ts": {
"mtimeMs": 1777808065000,
"size": 6699,
"lines": 258,
"role": "",
"imports": [
"src/features/projectChronicle/types"
]
},
"src/features/projectChronicle/types.ts": {
"mtimeMs": 1778676848000,
"size": 3129,
"lines": 118,
"role": "",
"imports": []
},
"src/features/providers/anthropic.ts": {
"mtimeMs": 1778941456000,
"size": 4111,
"lines": 108,
"role": "Anthropic Messages API adapter. 차이점 (OpenAI 와): 1. base URL: https://api.anthropic.com/v1 2. 인증: x-api-key: <key> + anthropic-version: 2023-06-01 3. system prompt 는 messages 가 아니라 top-level system 필드 ",
"imports": [
"src/features/providers/types",
"src/features/providers/providerConfig",
"src/features/providers/streamHelpers"
]
},
"src/features/providers/gemini.ts": {
"mtimeMs": 1778941478000,
"size": 4326,
"lines": 108,
"role": "Google Gemini Generative Language API adapter. 차이점 (OpenAI 와): 1. base URL: https://generativelanguage.googleapis.com/v1beta 2. 인증: ?key=<api key> (query parameter) 3. 메시지 형식: contents: [{role: 'user'",
"imports": [
"src/features/providers/types",
"src/features/providers/providerConfig",
"src/features/providers/streamHelpers"
]
},
"src/features/providers/index.ts": {
"mtimeMs": 1778941521000,
"size": 3242,
"lines": 69,
"role": "Cloud LLM provider public API. 일반 호출 흐름: 1. agent.ts 의 chat 진입부에서 parseModelPrefix(modelId) 호출 2. null → local engine 경로 (옛 로직). 객체 → streamCloudCompletion(context, hit, params) 호출 3. Response 의 body ",
"imports": [
"src/features/providers/types",
"src/features/providers/openrouter",
"src/features/providers/anthropic",
"src/features/providers/gemini",
"src/features/providers/providerConfig"
]
},
"src/features/providers/openrouter.ts": {
"mtimeMs": 1778941431000,
"size": 2673,
"lines": 75,
"role": "OpenRouter — OpenAI 호환 API. 별도 transform 없이 fetch Response 를 그대로 반환. Base: https://openrouter.ai/api/v1 POST /chat/completions — OpenAI 형식 그대로. stream:true 면 SSE. GET /models — 사용 가능 모델 목록. 인증: Author",
"imports": [
"src/features/providers/types",
"src/features/providers/providerConfig"
]
},
"src/features/providers/providerConfig.ts": {
"mtimeMs": 1778941498000,
"size": 2683,
"lines": 78,
"role": "Provider 별 API key + enable 토글 저장소. 설계: - API key 자체는 vscode.SecretStorage (secrets) 에 — settings.json / Settings Sync 침범 안 받음. - enabled 토글은 일반 settings (g1nation.providers.<id>.enabled) — 사용자가 패널에서 ",
"imports": [
"src/features/providers/types"
]
},
"src/features/providers/streamHelpers.ts": {
"mtimeMs": 1778941413000,
"size": 5904,
"lines": 144,
"role": "Stream transformer — provider 별 SSE 형식을 OpenAI 호환 SSE 로 변환. 이렇게 하면 agent.ts 의 기존 SSE 파서 (data: {...delta...} 형식 가정) 가 변경 없이 모든 provider 출력을 같은 코드 경로로 소비할 수 있다. 신규 provider 가 들어와도 adapter 하나만 추가하면 됨 (c",
"imports": []
},
"src/features/providers/types.ts": {
"mtimeMs": 1778941377000,
"size": 2370,
"lines": 63,
"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": 1781006628000,
"size": 5511,
"lines": 146,
"role": "Runway / Cash 누적 저장소. 4인 기업 운영의 가장 중요한 숫자 — 현금 잔고 / 월 소진율 / 남은 개월수 — 를 한 명령 (/runway) 로 본다. 회계 시스템은 아니고, 대표가 머리에 가지고 있는 \"지금 통장에 얼마, 한 달에 얼마 나감\" 을 코드 옆에서 잡는 가벼운 트래커. 저장 형식: JSON Lines (.jsonl) — 한 줄 = ",
"imports": [
"src/features/_shared/eventSourcedStore"
]
},
"src/features/secondBrainTrace.ts": {
"mtimeMs": 1779492050000,
"size": 38637,
"lines": 792,
"role": "",
"imports": [
"src/utils",
"src/retrieval/scoring"
]
},
"src/features/selfReflector/selfReflectorExecution.ts": {
"mtimeMs": 1779277718000,
"size": 9363,
"lines": 207,
"role": "Self-Reflector Phase C — 실행 기반 검증. Phase A/B는 LLM 텍스트 분석에 의존하므로 \"코드가 실제로 컴파일되는가?\" 같은 질문엔 한계가 있다. Phase C는 정답: 그냥 실행해 본다. 동작: 1. action-tag executor가 반환한 report를 받아 ✅ Created: <path> / ✅ Edited: <path>",
"imports": [
"src/utils"
]
},
"src/features/selfReflector/selfReflectorHollow.ts": {
"mtimeMs": 1778902489000,
"size": 10482,
"lines": 258,
"role": "Self-Reflector — 빈 깡통(Hollow Code) 검출 휴리스틱. Phase C(syntax/lint)는 문법 오류만 잡는다. 작은 LLM이 가장 자주 만드는 실패 패턴은 문법은 맞지만 본문이 비어 있는 코드 — def foo(): pass, # TODO: implement, import만 있고 로직 0줄인 모듈 등. 사용자가 \"완료 됐다\"라는",
"imports": []
},
"src/features/selfReflector/selfReflectorPrompt.ts": {
"mtimeMs": 1778902489000,
"size": 6139,
"lines": 108,
"role": "Self-Reflector — 답변 산출물의 자기 검증 레이어. Memory(기억) 단계는 이미 충분히 강하지만 Verification(검증) 단계는 사용자 피드백에 의존적이다. 이 모듈은 그 격차를 메꾸는 3단 구조: Phase A (이 파일) ─ 시스템 프롬프트에 self-check 체크리스트 룰을 박아 LLM이 응답 마지막에 [Self-Reflecto",
"imports": []
},
"src/features/selfReflector/selfReflectorVerifier.ts": {
"mtimeMs": 1778902489000,
"size": 7495,
"lines": 172,
"role": "Self-Reflector Phase B — 분리된 콘텍스트에서 LLM 한 번 더 호출해 응답을 외부 시각으로 검증. Phase A의 self-check는 같은 모델·같은 콘텍스트에서 자기 자신을 보는 한계가 있다. 모델이 자기가 만든 답변을 자신 있게 잘못 평가하는 과신 편향은 LLM의 잘 알려진 약점이다. Phase B는 이걸 보완하기 위해: 1. sp",
"imports": [
"src/core/services",
"src/utils"
]
},
"src/features/settings/settingsPanelProvider.ts": {
"mtimeMs": 1781006628000,
"size": 34784,
"lines": 734,
"role": "",
"imports": [
"src/integrations/telegram/telegramClient",
"src/integrations/telegram/telegramBot",
"src/utils",
"src/lib/discoverModels",
"src/lib/paths",
"src/features/calendar",
"src/features/providers"
]
},
"src/features/setup/datacollectSetup.ts": {
"mtimeMs": 1781006628000,
"size": 12412,
"lines": 267,
"role": "Datacollect 의존성(Python 패키지) 자동 설치/검증 모듈. 의도: Astra extension 만 깔고 끝나면 /youtube, /research 같은 datacollect 슬래시 명령은 bridge 의 Python 의존성 (yt-dlp, youtube-transcript-api) 이 없어서 실패한다. 사용자가 그걸 매번 수동으로 깔아야 하는",
"imports": [
"src/utils"
]
},
"src/features/sheets/index.ts": {
"mtimeMs": 1778935930000,
"size": 237,
"lines": 13,
"role": "",
"imports": [
"src/features/sheets/sheetsApi"
]
},
"src/features/sheets/sheetsApi.ts": {
"mtimeMs": 1778936110000,
"size": 7794,
"lines": 166,
"role": "Google Sheets API v4 — read / write / append. 토큰은 calendar 와 공유 (같은 OAuth 에 spreadsheets scope 포함). 별도 셋업 없음 — \"Astra: Google Calendar OAuth 연결\" 명령으로 한 번 로그인하면 둘 다 동작한다. 외부 라이브러리 안 씀 — Sheets API REST",
"imports": [
"src/features/calendar/calendarApi"
]
},
"src/features/stocks/criteriaEval.ts": {
"mtimeMs": 1781095278000,
"size": 12293,
"lines": 209,
"role": "/stocks judge 의 결정론적 기준 평가기. 기존에는 \"유보율: 5,800%\" 같은 문자열 파싱과 임계값 비교(ROE ≥ 10% 등)까지 전부 LLM 에게 맡겼는데, 로컬 소형 모델은 콤마 숫자 파싱·다중 기준 동시 비교에서 자주 틀린다. 수치 기준은 코드로 100% 정확하게 계산하고, LLM 은 ① '기술력' 도메인 정성 판단(키워드 매칭이 모호할",
"imports": [
"src/features/stocks/types",
"src/features/stocks/naverFundamentals"
]
},
"src/features/stocks/discoveryAnalyzer.ts": {
"mtimeMs": 1779670188000,
"size": 10289,
"lines": 237,
"role": "",
"imports": [
"src/core/services",
"src/utils",
"src/extension/telegramCommands",
"src/integrations/telegram/telegramClient",
"src/features/stocks/stockDiscovery"
]
},
"src/features/stocks/index.ts": {
"mtimeMs": 1779668795000,
"size": 119,
"lines": 2,
"role": "",
"imports": [
"src/features/stocks/stocksWatcher",
"src/features/stocks/slashStocks"
]
},
"src/features/stocks/llmJudge.ts": {
"mtimeMs": 1781095278000,
"size": 6072,
"lines": 125,
"role": "",
"imports": [
"src/core/services",
"src/utils",
"src/features/stocks/stocksStore",
"src/features/stocks/criteriaEval",
"src/features/stocks/naverFundamentals"
]
},
"src/features/stocks/naverFundamentals.ts": {
"mtimeMs": 1781095278000,
"size": 8145,
"lines": 178,
"role": "",
"imports": [
"src/utils"
]
},
"src/features/stocks/naverScreener.ts": {
"mtimeMs": 1779668297000,
"size": 6442,
"lines": 151,
"role": "",
"imports": [
"src/utils"
]
},
"src/features/stocks/sheetsSync.ts": {
"mtimeMs": 1779666427000,
"size": 4193,
"lines": 99,
"role": "",
"imports": [
"src/features/sheets",
"src/utils",
"src/features/stocks/signalClassifier",
"src/features/stocks/stocksStore",
"src/features/stocks/types"
]
},
"src/features/stocks/signalClassifier.ts": {
"mtimeMs": 1779666385000,
"size": 2749,
"lines": 69,
"role": "",
"imports": [
"src/features/stocks/types"
]
},
"src/features/stocks/slashStocks.ts": {
"mtimeMs": 1781095278000,
"size": 34021,
"lines": 629,
"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",
"src/features/stocks/telegramReport",
"src/features/stocks/stocksWatcher",
"src/features/stocks/stockDiscovery",
"src/features/stocks/discoveryAnalyzer",
"src/features/stocks/types"
]
},
"src/features/stocks/stockDiscovery.ts": {
"mtimeMs": 1781006628000,
"size": 9426,
"lines": 196,
"role": "",
"imports": [
"src/utils",
"src/features/stocks/naverScreener",
"src/features/stocks/naverFundamentals",
"src/features/stocks/yahooClient",
"src/features/stocks/types"
]
},
"src/features/stocks/stocksStore.ts": {
"mtimeMs": 1779666348000,
"size": 4027,
"lines": 96,
"role": "",
"imports": [
"src/utils",
"src/features/stocks/types"
]
},
"src/features/stocks/stocksWatcher.ts": {
"mtimeMs": 1779666551000,
"size": 6367,
"lines": 163,
"role": "",
"imports": [
"src/utils",
"src/features/stocks/stocksStore",
"src/features/stocks/yahooClient",
"src/features/stocks/telegramReport",
"src/features/stocks/sheetsSync"
]
},
"src/features/stocks/telegramReport.ts": {
"mtimeMs": 1779666511000,
"size": 5218,
"lines": 117,
"role": "",
"imports": [
"src/integrations/telegram/telegramClient",
"src/extension/telegramCommands",
"src/utils",
"src/features/stocks/stocksStore",
"src/features/stocks/signalClassifier",
"src/features/stocks/types"
]
},
"src/features/stocks/types.ts": {
"mtimeMs": 1779666327000,
"size": 2135,
"lines": 53,
"role": "Stocks 모듈 공유 타입. investresults/targetstocks.json 스키마를 그대로 받아서, ConnectAI 의 <workspace>/.astra/stocks.json 으로 옮긴 뒤 같은 필드명을 유지. 한글 필드명은 사용자의 도메인 데이터라 변경하지 않는다 — 마이그레이션 충돌 회피 + 사용자가 직접 JSON 편집할 때 frictio",
"imports": []
},
"src/features/stocks/yahooClient.ts": {
"mtimeMs": 1781006628000,
"size": 15759,
"lines": 353,
"role": "",
"imports": [
"src/utils"
]
},
"src/features/system/handlers.ts": {
"mtimeMs": 1781006628000,
"size": 20556,
"lines": 394,
"role": "System handlers — /memory · /glossary · /help (인프라·관리·발견). v2.2.200 에서 slashRouter.ts 에서 분리. 4인 팀 운영 도메인 아닌 \"ASTRA 자체 인프라\" 슬래시 명령. teamops handlers 와 같은 패턴.",
"imports": [
"src/features/datacollect/slashRouter",
"src/config",
"src/memory",
"src/retrieval/terminologyBlock",
"src/agent/termValidator"
]
},
"src/features/tasks/index.ts": {
"mtimeMs": 1778936468000,
"size": 225,
"lines": 13,
"role": "",
"imports": [
"src/features/tasks/taskStore"
]
},
"src/features/tasks/taskStore.ts": {
"mtimeMs": 1778936462000,
"size": 9121,
"lines": 245,
"role": "Task tracker — .astra/company/shared/tasks.md 단일 파일. 설계 원칙: - 외부 DB 없이 사람이 읽을 수 있는 마크다운 테이블에 누적. git 으로 history 추적 가능. - 파싱은 regex 기반 (셀 구분자 |). 사용자가 손으로 편집해도 fault-tolerant. - 모든 task 는 안정적 id (t001,",
"imports": []
},
"src/features/teamops/handlers/_shared.ts": {
"mtimeMs": 1781006628000,
"size": 3647,
"lines": 84,
"role": "TeamOps handlers 공통 헬퍼 — 4인 팀 운영 슬래시 명령 클러스터가 공유하는 함수·상수. 이전 위치: src/features/datacollect/slashRouter.ts 내부 module-local 함수 (v2.2.196 에서 분리). 핸들러 도메인별 분할 시 공통 항목만 여기에. 추후 datacollect / system 핸들러도 비슷한",
"imports": []
},
"src/features/teamops/handlers/communication.ts": {
"mtimeMs": 1781006628000,
"size": 13821,
"lines": 255,
"role": "TeamOps Communication — /draft · /feedback (외부 출력·기록). v2.2.199 에서 slashRouter.ts 에서 분리. (원래는 v2.2.200 예정이었으나 coordination 추출 시 register 라인이 인접해 묶여 함께 진행.)",
"imports": [
"src/features/datacollect/slashRouter",
"src/features/datacollect/llm",
"src/features/feedback/feedbackStore"
]
},
"src/features/teamops/handlers/coordination.ts": {
"mtimeMs": 1781006628000,
"size": 35565,
"lines": 665,
"role": "TeamOps Coordination — /task · /decisions · /onesie · /blocked · /standup. v2.2.199 에서 slashRouter.ts 에서 분리. 작업·결정·1:1·블로커·스탠드업 등 \"팀 운영의 실시간 부분\" 클러스터. 공통 헬퍼는 ./shared.ts 에서. 옛 slashRouter 의 local pars",
"imports": [
"src/features/datacollect/slashRouter",
"src/features/teamops/handlers/_shared",
"src/features/calendar",
"src/sidebar/managers/chronicleProjectStore",
"src/features/datacollect/llm",
"src/features/datacollect/prompts/weeklyPrompt"
]
},
"src/features/teamops/handlers/dashboards.ts": {
"mtimeMs": 1781006628000,
"size": 26379,
"lines": 493,
"role": "TeamOps Dashboards — /morning · /evening · /cohort (CEO 일·월 리듬). v2.2.198 에서 slashRouter.ts 에서 분리. cross-data 합성 (Tasks + customers + hire + runway + Chronicle ADR) 으로 일/월 단위 시야 제공. (구 /weekly CEO 리뷰 ",
"imports": [
"src/features/datacollect/slashRouter",
"src/features/teamops/handlers/_shared",
"src/features/calendar",
"src/sidebar/managers/chronicleProjectStore",
"src/features/runway/runwayStore",
"src/features/customers/customersStore",
"src/features/hire/hireStore"
]
},
"src/features/teamops/handlers/index.ts": {
"mtimeMs": 1781006628000,
"size": 501,
"lines": 14,
"role": "TeamOps handlers 배럴 — extension activate 시 1회 import 로 모든 핸들러 등록. 각 핸들러 파일은 module scope 에서 registerSlashCommand({...}) 호출하므로 import 만으로 등록 완료. 새 핸들러 파일은 여기에 한 줄 추가. v2.2.196 — trackers (runway/custom",
"imports": [
"src/features/teamops/handlers/trackers",
"src/features/teamops/handlers/dashboards",
"src/features/teamops/handlers/coordination",
"src/features/teamops/handlers/communication"
]
},
"src/features/teamops/handlers/trackers.ts": {
"mtimeMs": 1781006628000,
"size": 36032,
"lines": 704,
"role": "TeamOps Trackers — /runway · /customers · /hire (event-sourced 트래커 3종). v2.2.196 에서 slashRouter.ts 에서 분리. 모두 .astra/.jsonl event log 를 읽고 (createEventStore via 각 store 모듈) 대시보드 / 수정 명령 제공. 공통 헬퍼 (fmtK",
"imports": [
"src/features/datacollect/slashRouter",
"src/features/teamops/handlers/_shared",
"src/features/runway/runwayStore",
"src/features/customers/customersStore",
"src/features/hire/hireStore"
]
},
"src/features/web/webFetch.ts": {
"mtimeMs": 1781269374000,
"size": 7330,
"lines": 167,
"role": "Web Fetch — Bridge 무관 직접 URL fetch (vscode 의존 없음 — 테스트 용이). 배경: 일반 챗의 URL 주입(urlContext.ts)은 Datacollect Bridge(:3002)에 100% 의존했다. Bridge가 꺼져 있으면 — 확장은 Bridge를 자동 시작하지 않는다 — \"접근 실패\" 블록이 떠서 모델이 \"사이트 방문",
"imports": []
},
"src/integrations/telegram/conversationHistory.ts": {
"mtimeMs": 1778684811000,
"size": 6273,
"lines": 154,
"role": "Per-chat conversation history for the Telegram bot. Why this exists: the previous bot was stateless — every inbound message hit AIService.chat({system, user}) in isolation, with no memory of what the ",
"imports": [
"src/utils"
]
},
"src/integrations/telegram/promptBuilders.ts": {
"mtimeMs": 1779632676000,
"size": 7520,
"lines": 143,
"role": "",
"imports": [
"src/features/company"
]
},
"src/integrations/telegram/telegramBot.ts": {
"mtimeMs": 1778421270000,
"size": 11344,
"lines": 270,
"role": "",
"imports": [
"src/integrations/telegram/telegramClient",
"src/integrations/telegram/types",
"src/utils"
]
},
"src/integrations/telegram/telegramClient.ts": {
"mtimeMs": 1778252333000,
"size": 5873,
"lines": 154,
"role": "",
"imports": [
"src/integrations/telegram/types",
"src/utils"
]
},
"src/integrations/telegram/telegramSetup.ts": {
"mtimeMs": 1781260027000,
"size": 11403,
"lines": 197,
"role": "",
"imports": [
"src/integrations/telegram/telegramBot",
"src/integrations/telegram/telegramClient",
"src/core/services",
"src/utils",
"src/skills/agentKnowledgeMap",
"src/skills/scopedBrainRetriever",
"src/sidebarProvider",
"src/integrations/telegram/promptBuilders",
"src/features/datacollect/scheduling/meetRegistration",
"src/features/company",
"src/integrations/telegram/conversationHistory"
]
},
"src/integrations/telegram/types.ts": {
"mtimeMs": 1778252305000,
"size": 1255,
"lines": 54,
"role": "Subset of the Telegram Bot API types we actually consume. Source: https://core.telegram.org/bots/api Only fields the bot reads or writes are typed — leaving the rest as unknown keeps the surface narro",
"imports": []
},
"src/intelligence/confidenceEngine.ts": {
"mtimeMs": 1781260027000,
"size": 6993,
"lines": 165,
"role": "Confidence Engine — 답변 확신도 0~100 결정론적 산출. Self-Evolving OS 마스터 플랜 Phase 2 / Track 1-1. 신뢰 조건 T4 \"확신이 없으면 사람에게 묻는다\" 의 측정 기반 — Escalation Engine 의 입력. 설계 원칙 (termValidator 와 동일): LLM 호출 없음. 검색 그라운딩 신호(턴",
"imports": []
},
"src/intelligence/correctionLoop.ts": {
"mtimeMs": 1781260027000,
"size": 17684,
"lines": 382,
"role": "Correction Loop — 사용자 정정 1회가 시스템을 세 군데서 성장시키는 단일 파이프라인. 사용자 정정 (\"아니야, 그거 6월이야\") ① 감지(looksLikeCorrection) + LLM 오류 분류(classifyCorrection) ├→ 태깅된 레슨 저장 (lessons/ — error-tag frontmatter) └→ 회귀 케이스 적립 (",
"imports": [
"src/intelligence/llmCall",
"src/intelligence/learningQueue",
"src/intelligence/lessonNetwork"
]
},
"src/intelligence/criticAgent.ts": {
"mtimeMs": 1781260027000,
"size": 7294,
"lines": 174,
"role": "Critic Agent + Debate Loop (v1) — 제출된 업무 산출물의 LLM 검수. Self-Evolving OS 마스터 플랜 Phase 1 / Track 2-3. 신뢰 조건 T3 의 LLM 계층: Requirement Coverage(결정론적, 정규식) 가 \"요소가 언급 됐는가\" 만 보면, Critic 은 \"내용이 충실 한가 + 결정/미결 구",
"imports": [
"src/intelligence/requirementGraph"
]
},
"src/intelligence/epistemicGuardBlock.ts": {
"mtimeMs": 1781260027000,
"size": 2559,
"lines": 45,
"role": "Epistemic Guard — 모름/추정/확실 3분류 강제 시스템 프롬프트 블록. Self-Evolving OS 마스터 플랜 Phase 2 / Track 1-3 (Anti-Hallucination Layer). 신뢰 조건 T1 \"모르면 모른다고 말한다\" 담당. CoVe(coveBlock) 와의 분업: - CoVe: 검색 출처가 있을 때 주장-출처 매핑을 ",
"imports": []
},
"src/intelligence/escalationEngine.ts": {
"mtimeMs": 1781260027000,
"size": 3501,
"lines": 74,
"role": "Escalation Engine — 인간 개입 필요성 판단. Self-Evolving OS 마스터 플랜 Phase 2 / Track 1-2. 신뢰 조건 T4 의 행동 부분: Confidence Engine 이 \"얼마나 확실한가\" 를 재면, 이 모듈은 \"그래서 사람에게 물어야 하는가\" 를 결정한다. 설계서 13장 조건: 확신도 낮음 / 영향도 높음 / 정보 ",
"imports": [
"src/intelligence/confidenceEngine",
"src/intelligence/requirementGraph"
]
},
"src/intelligence/gapDetector.ts": {
"mtimeMs": 1781260027000,
"size": 3135,
"lines": 73,
"role": "Gap Detector — Gap = Requirement Knowledge (설계서 7.4). Self-Evolving OS 마스터 플랜 Phase 3 / Track 3-2. 업무 turn 마다 \"필요한 것\" (Requirement Graph 의 필수 요소)과 \"가진 것\"(검색 그라운딩 + 산출물 커버리지)을 비교해 부족 지식·영향도·긴급도를 산출한다",
"imports": [
"src/intelligence/requirementGraph",
"src/intelligence/confidenceEngine"
]
},
"src/intelligence/knowledgeDecay.ts": {
"mtimeMs": 1781260027000,
"size": 5151,
"lines": 110,
"role": "Knowledge Decay — 지식 노후 감쇠 점검 (설계서 10장, \"인간처럼 잊어버리는 기능\"). Self-Evolving OS 마스터 플랜 Phase 4 / Track 4-3. 분야별 반감기로 지식의 신선도 계수를 계산하고, 노후 지식을 보고서로 노출한다. v1 은 비침습적 감사 — 검색 랭킹은 건드리지 않는다. RAG 평가 하니스로 튜닝된 검색 경",
"imports": []
},
"src/intelligence/knowledgeValidation.ts": {
"mtimeMs": 1781260027000,
"size": 6473,
"lines": 168,
"role": "Knowledge Validation + Belief Revision — 지식 저장 전 검증 (설계서 10장). Self-Evolving OS 마스터 플랜 Phase 4 / Track 4-1 + 4-2. 새 지식 후보를 기존 지식과 비교해 수용/검토/거부를 판정하고, 충돌 시 Add/Update/Retire 권고를 만든다. Constitution 준수: 이",
"imports": []
},
"src/intelligence/learningQueue.ts": {
"mtimeMs": 1781260027000,
"size": 4962,
"lines": 118,
"role": "Learning Queue — 승인 기반 학습 대기열 (설계서 9장). Self-Evolving OS 마스터 플랜 Phase 3 / Track 3-5. Need Engine 의 우선순위를 사람이 승인 가능한 큐로 영속화한다. Constitution 준수 (Track 8-2, Permission Based Learning): - 시스템은 항목을 propose",
"imports": [
"src/intelligence/needEngine"
]
},
"src/intelligence/lessonNetwork.ts": {
"mtimeMs": 1781260027000,
"size": 4326,
"lines": 93,
"role": "레슨 네트워크 — A-MEM(NeurIPS 2025, Zettelkasten 원리)의 ASTRA 이식. 문제: lessons/ 가 고립된 카드 모음 — 새 레슨이 과거의 비슷한 교훈과 연결되지 않아 \"같은 종류의 실수\"라는 패턴이 파일 수준에서 보이지 않는다. A-MEM 의 두 메커니즘을 파일 기반으로 구현: 1. 동적 링킹: 새 레슨 저장 시 기존 레슨과",
"imports": [
"src/retrieval/scoring"
]
},
"src/intelligence/llmCall.ts": {
"mtimeMs": 1781260027000,
"size": 2099,
"lines": 52,
"role": "단순 non-streaming LLM 호출 — Ollama / LM Studio(OpenAI 호환) 듀얼 엔드포인트. postHocSelfCheck 의 호출 패턴을 재사용 가능한 헬퍼로 분리. 평가 하니스·Critic 등 AgentExecutor 밖에서 LLM 1회 호출이 필요한 곳이 사용한다 (확장 명령 등). agent turn 내부에서는 agent.t",
"imports": []
},
"src/intelligence/needEngine.ts": {
"mtimeMs": 1781260027000,
"size": 9219,
"lines": 220,
"role": "Need Engine — 학습 필요성 산출 (설계서 7.6) + Knowledge Inventory v1 (7.3). Self-Evolving OS 마스터 플랜 Phase 3 / Track 3-3 + 3-1. Reflection 기록을 집계해 \"무엇을 먼저 배워야 하는가\" 를 점수로 산출한다 — 성장 루프의 두뇌. Need Score (설계서 공식, 0~1",
"imports": [
"src/intelligence/reflectionStore"
]
},
"src/intelligence/orgMemoryBlock.ts": {
"mtimeMs": 1781260027000,
"size": 2750,
"lines": 68,
"role": "Organizational Memory — 조직 규칙·프로세스·선호 방식 시스템 프롬프트 블록. Self-Evolving OS 마스터 플랜 Phase 5 / Track 5-2 (설계서 11장 Organizational Memory). \"이 회사는 속도 우선, 완벽주의 지양\" 류의 조직 문화·업무 방식을 모든 업무 turn 에 주입한다. Terminology",
"imports": []
},
"src/intelligence/reflectionStore.ts": {
"mtimeMs": 1781260027000,
"size": 6906,
"lines": 162,
"role": "Reflection Store — 업무 turn 회고 기록 + Failure Pattern 집계. Self-Evolving OS 마스터 플랜 Phase 1 / Track 2-4 (Reflection Engine v1) + Phase 3 / Track 3-6 (Failure Pattern DB v1 시드). 신뢰 조건 T5 \"같은 실수를 반복하지 않는다\" 의",
"imports": []
},
"src/intelligence/requirementGraph.ts": {
"mtimeMs": 1781260027000,
"size": 12495,
"lines": 273,
"role": "Requirement Graph — 업무 유형별 필수 요소 정의 + 감지 + 커버리지 검사. Self-Evolving Digital Employee OS 마스터 플랜(docs/SELFEVOLVINGOSMASTERPLAN.md) Phase 1 / Track 2-1. 신뢰 조건 T3 \"품질이 일관적이다 — 필수 요소 누락 없음\" 담당. 동작 2단계: 1. In",
"imports": []
},
"src/intelligence/researchAgent.ts": {
"mtimeMs": 1781260027000,
"size": 7355,
"lines": 153,
"role": "Research Agent — 학습 큐 approved 항목의 조사 실행 (설계서 9장). Self-Evolving OS 마스터 플랜 Phase 6 / Track 7-1. 학습 루프의 마지막 구간: Need Engine → Learning Queue(approved) → Research Agent → Validation 게이트 → 저장 제안 v1 은 \"조사",
"imports": [
"src/intelligence/learningQueue",
"src/intelligence/knowledgeValidation"
]
},
"src/intelligence/skillScore.ts": {
"mtimeMs": 1781260027000,
"size": 6870,
"lines": 168,
"role": "Skill Score + Success Pattern DB — 역량 점수와 성공 사례 축적 (설계서 12장). Self-Evolving OS 마스터 플랜 Phase 6 / Track 7-3 + 7-4. Skill Score (0~100, 업무 유형 단위 v1): 최근 N건 reflection 의 (확신도 50% + 요소 충족률 30% + 비에스컬레이션율 2",
"imports": [
"src/intelligence/reflectionStore"
]
},
"src/intelligence/taskEvalHarness.ts": {
"mtimeMs": 1781260027000,
"size": 7942,
"lines": 185,
"role": "Task Eval Harness — 업무 산출물 골든셋 자동 채점 (Self Evaluation v1). Self-Evolving OS 마스터 플랜 Phase 3 / Track 3-4. \"성장세를 숫자로 증명\" 의 핵심: 같은 골든셋을 버전마다 돌려 점수 추이를 비교한다 (검색 평가 하니스가 recall@1 37.5%→75% 를 증명한 것과 같은 방법론을 ",
"imports": [
"src/intelligence/requirementGraph"
]
},
"src/lib/contextBuilders/astraModeArchitecture.ts": {
"mtimeMs": 1779601304000,
"size": 3926,
"lines": 56,
"role": "Astra Mode Architecture Context Builder. 의도: 사용자가 Astra 자체의 mode 디자인 (Guard vs Multi-Agent 가 별도 모드여야 하는지) 을 묻는 메타 질문에 답할 때, 모델이 일반론적 답이 아니라 현재 코드베이스 의 실제 구조 를 보고 답하게 하려고 시스템 프롬프트에 추가 컨텍스트 블록을 주입. 이 bu",
"imports": []
},
"src/lib/contextBuilders/droppedHistorySummary.ts": {
"mtimeMs": 1779618681000,
"size": 2299,
"lines": 52,
"role": "",
"imports": [
"src/agent"
]
},
"src/lib/contextBuilders/engineMessages.ts": {
"mtimeMs": 1779622213000,
"size": 2188,
"lines": 56,
"role": "",
"imports": [
"src/agent"
]
},
"src/lib/contextBuilders/historyTransform.ts": {
"mtimeMs": 1779622758000,
"size": 3671,
"lines": 77,
"role": "",
"imports": [
"src/agent"
]
},
"src/lib/contextBuilders/jarvisProjectBrief.ts": {
"mtimeMs": 1779619198000,
"size": 2860,
"lines": 59,
"role": "",
"imports": [
"src/lib/contextBuilders/promptDetection",
"src/lib/contextBuilders/projectEvidence",
"src/lib/contextBuilders/thinkingPartnerContract"
]
},
"src/lib/contextBuilders/lastTopicLine.ts": {
"mtimeMs": 1779618707000,
"size": 1057,
"lines": 19,
"role": "",
"imports": [
"src/agent"
]
},
"src/lib/contextBuilders/lmStudioSampling.ts": {
"mtimeMs": 1779630388000,
"size": 1268,
"lines": 29,
"role": "",
"imports": [
"src/config",
"src/lmstudio/streamer"
]
},
"src/lib/contextBuilders/localProjectIntent.ts": {
"mtimeMs": 1781260027000,
"size": 13930,
"lines": 233,
"role": "",
"imports": [
"src/lib/contextBuilders/promptDetection"
]
},
"src/lib/contextBuilders/localProjectPath.ts": {
"mtimeMs": 1779621240000,
"size": 16718,
"lines": 328,
"role": "",
"imports": [
"src/utils",
"src/config",
"src/security",
"src/lib/contextBuilders/localProjectIntent"
]
},
"src/lib/contextBuilders/memoryContext.ts": {
"mtimeMs": 1781267162000,
"size": 25167,
"lines": 449,
"role": "",
"imports": [
"src/agent",
"src/config",
"src/memory",
"src/retrieval",
"src/retrieval/lessonHelpers",
"src/retrieval/embeddings",
"src/retrieval/brainIndex",
"src/intelligence/correctionLoop",
"src/skills/agentKnowledgeMap",
"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/intelligence/requirementGraph",
"src/intelligence/epistemicGuardBlock",
"src/intelligence/reflectionStore",
"src/intelligence/orgMemoryBlock",
"src/intelligence/confidenceEngine"
]
},
"src/lib/contextBuilders/modelCandidates.ts": {
"mtimeMs": 1779618716000,
"size": 833,
"lines": 20,
"role": "사용자 지정 modelName 으로 추론 호출 시도할 때, 첫 호출이 404 / not-loaded 류로 실패할 가능성에 대비한 fallback 후보 목록을 만든다. LM Studio 한정: gemma3:4b 같은 \":quant suffix\" 형태가 안 먹히면 base name (gemma3) 도 시도하게 한 줄 더 push. Ollama 는 항상 정확한 ",
"imports": []
},
"src/lib/contextBuilders/multiAgentRouting.ts": {
"mtimeMs": 1779622465000,
"size": 5161,
"lines": 96,
"role": "",
"imports": [
"src/config",
"src/lib/contextManager",
"src/lib/contextBuilders/promptDetection",
"src/lib/contextBuilders/astraModeArchitecture",
"src/lib/contextBuilders/localProjectIntent"
]
},
"src/lib/contextBuilders/outputSanitization.ts": {
"mtimeMs": 1779622739000,
"size": 5239,
"lines": 99,
"role": "모델 출력 후처리 (post-stream sanitization). 모두 stateless pure transform. 1) sanitizeAssistantContent — 모델이 답변에 흘려보낸 내부 마커 (rationale, reasoning channels, Harmony/GPT-OSS 채널 마커, [PROBLEM]/[GOAL]/[REASONING] ",
"imports": []
},
"src/lib/contextBuilders/priorTurnConclusion.ts": {
"mtimeMs": 1781260027000,
"size": 4132,
"lines": 78,
"role": "",
"imports": [
"src/agent"
]
},
"src/lib/contextBuilders/projectEvidence.ts": {
"mtimeMs": 1779619101000,
"size": 2132,
"lines": 39,
"role": "Project-knowledge / local-path 컨텍스트 블록 안에서 증거 파일 목록을 뽑아내는 pure parser 모음. 두 종류 컨텍스트 포맷이 살짝 달라 함수를 둘로 둠: - extractEvidenceFilesFromProjectKnowledge: ## Evidence Files 블록 (project knowledge overview 문서 ",
"imports": []
},
"src/lib/contextBuilders/projectKnowledge.ts": {
"mtimeMs": 1779620833000,
"size": 9514,
"lines": 163,
"role": "",
"imports": [
"src/utils",
"src/lib/contextBuilders/projectEvidence"
]
},
"src/lib/contextBuilders/promptDetection.ts": {
"mtimeMs": 1781269363000,
"size": 6710,
"lines": 107,
"role": "사용자 prompt 의 의도 분류 류 detection helpers. 모두 stateless 정규식 매칭. 옛 코드는 agent.ts 의 private 메서드로 박혀 있었는데, system prompt 빌더 (buildJarvisProjectBriefContext 등) 가 이걸 의존하면서 god-file 안에서 서로 얽힘. 헬퍼만 먼저 떼면 의존 그래프가",
"imports": []
},
"src/lib/contextBuilders/recentProjectKnowledge.ts": {
"mtimeMs": 1779621624000,
"size": 8714,
"lines": 191,
"role": "",
"imports": [
"src/utils",
"src/agent",
"src/lib/contextBuilders/projectEvidence"
]
},
"src/lib/contextBuilders/scheduleContext.ts": {
"mtimeMs": 1781260027000,
"size": 5418,
"lines": 97,
"role": "일정/할일 질의 컨텍스트 빌더 — \"오늘 업무 목록 알려줘\" 류 질문에 연결된 Google Calendar(iCal 캐시) + Google Tasks 의 실데이터를 주입한다. 문제: 채팅 경로(RAG)는 두뇌·기억만 검색해서, 캘린더가 연결돼 있어도 \"오늘 일정\"을 묻면 모델이 모르거나 지어냈다. 데일리 브리핑(텔레그램)과 같은 소스를 채팅에도 노출한다. ",
"imports": [
"src/utils",
"src/features/calendar/calendarCache",
"src/features/calendar/tasksApi"
]
},
"src/lib/contextBuilders/secondBrainInventory.ts": {
"mtimeMs": 1779619757000,
"size": 6210,
"lines": 104,
"role": "",
"imports": [
"src/config",
"src/features/secondBrainTrace"
]
},
"src/lib/contextBuilders/selfAssessContext.ts": {
"mtimeMs": 1781274586000,
"size": 5788,
"lines": 83,
"role": "자기 평가/개선 질의 컨텍스트 — \"기능 개선 아이디어 줘\" 류 질문에 ASTRA 의 현행 기능 인벤토리(자동 생성 문서)를 결정론적으로 직접 주입한다. 문제 (3회 재발한 자기 지식 구식화의 마지막 구멍): 인벤토리 문서를 자동 생성해도 RAG 점수 경쟁에서 안 뽑히거나 모델이 검색 없이 기억으로 답하면 — 실제 사례: 답변 말미에 \"출처: 모델 지식 (",
"imports": [
"src/extension/featureInventory"
]
},
"src/lib/contextBuilders/selfIdentity.ts": {
"mtimeMs": 1781260027000,
"size": 3418,
"lines": 28,
"role": "[ASTRA 자기 지식 + 1인칭 정체성] 블록 — Astra/Agent 양쪽 모드 system prompt 가 공유. 왜 필요한가 (BUG: 자기 오보고): - 이 블록이 없으면 \"너는 어떻게 성장해?\" 같은 메타 질문에 모델이 학습 데이터의 일반 LLM 보일러플레이트(\"나는 frozen 모델이라 학습하지 않는다\")로 답한다. 실제 ASTRA 는 레슨·장",
"imports": []
},
"src/lib/contextBuilders/systemPromptShaping.ts": {
"mtimeMs": 1779621987000,
"size": 3122,
"lines": 78,
"role": "System prompt 의 조립 단계 에서 일어나는 두 가지 stateless 변환: 1) stripAstraFormattingForAgentMode — Agent Mode v3 에서 Astra 기본 시스템 프롬프트의 포맷/페르소나/스탠스 섹션을 제거. 에이전트 자체 프롬프트와 섹션 헤더가 충돌해 모델이 두 톤을 섞어 답하는 회귀를 막는다. 2) comp",
"imports": []
},
"src/lib/contextBuilders/thinFollowUp.ts": {
"mtimeMs": 1779635357000,
"size": 2097,
"lines": 39,
"role": "",
"imports": [
"src/agent"
]
},
"src/lib/contextBuilders/thinkingPartnerContract.ts": {
"mtimeMs": 1779618664000,
"size": 1289,
"lines": 21,
"role": "Thinking partner response contract — system prompt 에 항상 prepend 되는 6항목 응답 규약. 100% stateless 한 정적 문자열이라 god-file agent.ts 에 박혀 있을 이유 없음. 단위 테스트 / 다른 모드에서 재사용 / contract 수정 시 변경 범위 최소화를 위해 별도 모듈로 격리. 6",
"imports": []
},
"src/lib/contextBuilders/urlContext.ts": {
"mtimeMs": 1781269382000,
"size": 5438,
"lines": 108,
"role": "URL 컨텍스트 빌더 — 채팅 프롬프트에 URL 이 있으면 본문을 추출해 실데이터로 주입. 문제: /wikify 는 URL 에 접근하지만(브리지 /api/web-extract), 일반 채팅에 URL 을 주면 추출 경로가 없어 모델이 \"접근할 수 없습니다\"라고 답하거나 내용을 추측했다. v2: Bridge 100% 의존이 두 번째 공백이었다 — Bridge ",
"imports": [
"src/utils",
"src/features/datacollect/bridgeClient",
"src/features/web/webFetch"
]
},
"src/lib/contextManager.ts": {
"mtimeMs": 1779513818000,
"size": 13258,
"lines": 278,
"role": "Context Manager (컨텍스트 한계 관리) \"context length = 132k\" 는 \"답변을 132k 토큰까지 생성해도 된다\" 가 아닙니다. 시스템 프롬프트 + 대화 기록 + 입력 문서 + 생성될 답변 + 여유분 ≤ context length 이 모듈은 요청을 보내기 전에 입력 토큰을 추정하고, - 동적으로 출력 상한(maxTokens)을 계",
"imports": []
},
"src/lib/diagnostics.ts": {
"mtimeMs": 1779534648000,
"size": 8992,
"lines": 220,
"role": "",
"imports": [
"src/utils"
]
},
"src/lib/discoverModels.ts": {
"mtimeMs": 1781006628000,
"size": 3021,
"lines": 62,
"role": "",
"imports": [
"src/utils"
]
},
"src/lib/engine.ts": {
"mtimeMs": 1779609235000,
"size": 52150,
"lines": 1114,
"role": "",
"imports": [
"src/core/lock",
"src/core/queue",
"src/utils",
"src/lib/diagnostics",
"src/lib/formatter",
"src/types/interfaces",
"src/config"
]
},
"src/lib/formatter.ts": {
"mtimeMs": 1779609099000,
"size": 4676,
"lines": 96,
"role": "",
"imports": [
"src/lib/engine"
]
},
"src/lib/mtimeFileCache.ts": {
"mtimeMs": 1781006628000,
"size": 2553,
"lines": 72,
"role": "mtime-keyed file cache utility — 파일을 parse 결과 까지 캐싱. 배경: terminologyBlock.ts 와 termValidator.ts 가 같은 글로서리 파일에 별도 캐시 2개를 보유. \"함께 무효화\" 가 사람이 손으로 보장하는 invariant — 한쪽만 잊고 invalidate 안 하면 stale read 위험. 이 ",
"imports": []
},
"src/lib/paths.ts": {
"mtimeMs": 1778591351000,
"size": 6416,
"lines": 151,
"role": "",
"imports": []
},
"src/lmstudio/activityTracker.ts": {
"mtimeMs": 1778246443000,
"size": 426,
"lines": 19,
"role": "",
"imports": []
},
"src/lmstudio/client.ts": {
"mtimeMs": 1779517529000,
"size": 11168,
"lines": 255,
"role": "",
"imports": [
"src/utils"
]
},
"src/lmstudio/lifecycleManager.ts": {
"mtimeMs": 1781006628000,
"size": 13528,
"lines": 327,
"role": "",
"imports": [
"src/lmstudio/client",
"src/lmstudio/activityTracker",
"src/utils",
"src/system/specs"
]
},
"src/lmstudio/streamer.ts": {
"mtimeMs": 1779517620000,
"size": 13164,
"lines": 252,
"role": "",
"imports": [
"src/lmstudio/client",
"src/utils"
]
},
"src/memory/EpisodicMemory.ts": {
"mtimeMs": 1781006628000,
"size": 12819,
"lines": 341,
"role": "Episodic Memory (일화 기억) 과거 대화/회의/결정의 맥락 흐름을 저장합니다. 세션 종료 시 자동으로 에피소드를 요약하여 저장합니다. \"왜 이렇게 결정했는지\", \"어떤 흐름으로 진행했는지\" 기록. 저장 위치: {brainPath}/memory/episodes/.json",
"imports": [
"src/memory/types"
]
},
"src/memory/LongTermMemory.ts": {
"mtimeMs": 1781006628000,
"size": 13135,
"lines": 322,
"role": "Long-Term Memory (장기 기억) 사용자의 취향, 프로젝트 목표, 반복 규칙, 과거 결정 사항을 영구적으로 저장하고 관리합니다. 저장 위치: {brainPath}/memory/longterm.json",
"imports": [
"src/memory/types"
]
},
"src/memory/MemoryExtractor.ts": {
"mtimeMs": 1781006628000,
"size": 4282,
"lines": 120,
"role": "Memory Extractor (기억 추출기) 대화 종료 시 히스토리를 분석하여 각 메모리 레이어에 저장할 정보를 자동으로 추출합니다. LLM 호출 없이 패턴 매칭 기반으로 동작합니다.",
"imports": [
"src/memory/LongTermMemory",
"src/memory/ProjectMemory",
"src/memory/EpisodicMemory"
]
},
"src/memory/ProceduralMemory.ts": {
"mtimeMs": 1777858120000,
"size": 5533,
"lines": 173,
"role": "Procedural Memory (절차 기억) 반복 작업의 절차와 패턴을 관리합니다. 기존 skill.md 시스템과 통합되어, Brain의 memory/procedures/ 아래의 MD 파일을 스캔하여 절차를 로드합니다. 저장 위치: {brainPath}/memory/procedures/.md",
"imports": [
"src/memory/types"
]
},
"src/memory/ProjectMemory.ts": {
"mtimeMs": 1777864677000,
"size": 6533,
"lines": 212,
"role": "Project Memory (프로젝트 기억) 프로젝트별 요구사항, 코드 구조, 아키텍처 결정, 버그 기록 등을 Astra 확장 프로그램 내부에 저장하고 관리합니다. 저장 위치: {ConnectAI}/.astra/projectmemory.json (기존: {projectRoot}/.astra/ → 변경됨)",
"imports": [
"src/memory/types",
"src/core/astraPath"
]
},
"src/memory/ShortTermMemory.ts": {
"mtimeMs": 1777858031000,
"size": 1167,
"lines": 37,
"role": "Short-Term Memory (단기 기억) 현재 대화의 즉시 맥락을 관리합니다. FIFO 방식으로 최근 N개 메시지를 유지합니다.",
"imports": [
"src/memory/types"
]
},
"src/memory/distillation.ts": {
"mtimeMs": 1781006628000,
"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/index.ts": {
"mtimeMs": 1781006628000,
"size": 7828,
"lines": 225,
"role": "MemoryManager — 5-Layer Cognitive Memory System (통합 진입점) Astra의 모든 메모리 레이어를 통합 관리하는 중앙 매니저입니다. ① Short-Term Memory — 현재 대화 흐름 (FIFO) ② Long-Term Memory — 사용자 취향/규칙/결정 ③ Project Memory — 프로젝트별 지식 ④ Pro",
"imports": [
"src/config",
"src/memory/ShortTermMemory",
"src/memory/LongTermMemory",
"src/memory/ProjectMemory",
"src/memory/ProceduralMemory",
"src/memory/EpisodicMemory",
"src/memory/MemoryExtractor",
"src/memory/types",
"src/memory/distillation"
]
},
"src/memory/types.ts": {
"mtimeMs": 1781006628000,
"size": 4648,
"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": 1781006628000,
"size": 6602,
"lines": 156,
"role": "Actionability Scoring — 검색 결과를 \"현재 작업 상태\" 신호로 재가중. 기존 TF-IDF (단어 매칭) + recency (시간) 만으로는 \"지금 이 사용자가 하고 있는 작업과 직접 연결 된 문서\" 가 우선되지 않음. 예: 사용자가 /runway 명령을 막 실행했다면 runway / 재무 관련 문서가 같은 키워드 매치 점수여도 더 위로 ",
"imports": [
"src/retrieval/types"
]
},
"src/retrieval/brainIndex.ts": {
"mtimeMs": 1781260027000,
"size": 23281,
"lines": 566,
"role": "Brain Index — persistent, mtime-keyed tokenized cache of the Second Brain RAG 검색은 매 질의마다 브레인의 모든 .md 파일을 읽고 토크나이즈해서 TF-IDF 점수를 계산했습니다 — 파일 수가 많아지면 그게 병목입니다. 이 모듈은 <brainPath>/.astra/brain-index.json 에",
"imports": [
"src/retrieval/scoring",
"src/retrieval/lessonHelpers",
"src/retrieval/chunker",
"src/utils"
]
},
"src/retrieval/chunker.ts": {
"mtimeMs": 1781006628000,
"size": 6927,
"lines": 174,
"role": "Markdown Section Chunker (Phase 1-가) 긴 노트를 #~###### 헤딩 경계로 섹션 청크 로 나눈다. 파일 단위 색인은 5000자 다주제 문서를 하나의 흐릿한 단위로 만들어 검색 정밀도를 떨어뜨린다 — 섹션 단위로 쪼개면 질의가 정확히 해당 섹션에 매치된다 (제2뇌의 \"문서 청킹 전략\" 지식 그대로). 규칙: - 각 헤딩 ~ 다음",
"imports": []
},
"src/retrieval/citationTrace.ts": {
"mtimeMs": 1781260027000,
"size": 4887,
"lines": 102,
"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": 1781006628000,
"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": 1781006628000,
"size": 6286,
"lines": 156,
"role": "Context Budget Manager (컨텍스트 예산 관리) 시스템 프롬프트의 토큰 예산을 관리하여 로컬 모델의 context window를 효율적으로 활용합니다.",
"imports": [
"src/retrieval/types"
]
},
"src/retrieval/coveBlock.ts": {
"mtimeMs": 1781006628000,
"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": 1781260027000,
"size": 8182,
"lines": 184,
"role": "Embeddings — local hybrid (sparse + dense) retrieval support TF-IDF is fast and zero-cost but misses synonyms / paraphrase. A small local embedding model (BGE-small, multilingual-e5-small, nomic-embed",
"imports": [
"src/utils"
]
},
"src/retrieval/evalHarness.ts": {
"mtimeMs": 1781006628000,
"size": 9812,
"lines": 218,
"role": "Retrieval Evaluation Harness 골든셋(질문 → 기대 문서)으로 brain 검색 품질을 recall@k / MRR 로 결정적으로 측정한다. 청킹·re-rank·embedding alpha 등 어떤 변경이 실제로 recall 을 올렸는지 숫자로 증명하기 위한 토대 — 이게 있어야 RAG 개선이 \"감(感)\" 이 아니라 무결성 있는 엔지니어링",
"imports": []
},
"src/retrieval/hierarchicalLevel.ts": {
"mtimeMs": 1781006628000,
"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": 1781260027000,
"size": 36941,
"lines": 765,
"role": "RetrievalOrchestrator — Unified RAG Pipeline Astra의 모든 검색 소스를 통합 관리하는 오케스트레이터입니다. 검색 흐름: ① Query Planning — 의도 분류 + 검색 전략 결정 ② Parallel Search — Brain + Memory + Project + Episode 동시 검색 ③ Result Fusio",
"imports": [
"src/config",
"src/utils",
"src/lib/paths",
"src/memory",
"src/retrieval/types",
"src/retrieval/scoring",
"src/retrieval/contextBudget",
"src/retrieval/brainIndex",
"src/retrieval/lessonHelpers",
"src/retrieval/embeddings",
"src/retrieval/actionabilityScoring",
"src/retrieval/hierarchicalLevel"
]
},
"src/retrieval/intentClarification.ts": {
"mtimeMs": 1781006628000,
"size": 7076,
"lines": 141,
"role": "Intent Clarification — 모호한 질의에서 추측 답변 대신 질문 던지기 지시. 사용자 피드백: \"ASTRA 는 질문을 받으면 즉시 답변을 생성하려 함. 하지만 '날카로운' 파악을 위해서는 질문 뒤의 '실행 목적' 을 먼저 정의해야\". 예: \"배포해줘\" → 환경 (dev/prod) / 태그 묻기. \"그 부분 고쳐줘\" → 어느 파일/모듈인지 묻기",
"imports": []
},
"src/retrieval/knowledgeMix.ts": {
"mtimeMs": 1778902489000,
"size": 7621,
"lines": 165,
"role": "Knowledge Mix — model 지식 vs Second Brain 지식의 상대 비율을 LLM에게 전달하는 정책 레이어. ── 정책 v2 (상대값+상대값=상대값) ────────────────────────────────────── weight는 0~100 정수이지만 상대 비율로만 해석한다. 즉 \"70\"은 \"100% 중 70%\"라는 상대 표현이고, 시",
"imports": [
"src/config",
"src/skills/agentKnowledgeMap"
]
},
"src/retrieval/lessonHelpers.ts": {
"mtimeMs": 1778674336000,
"size": 14134,
"lines": 325,
"role": "Lesson / Experience Memory — pure helpers (no vscode dependency) \"Lesson\" = a markdown file in the active brain that captures a past mistake/risk and how to avoid repeating it. Identified by a lessons",
"imports": [
"src/retrieval/scoring"
]
},
"src/retrieval/scoring.ts": {
"mtimeMs": 1779536686000,
"size": 22097,
"lines": 541,
"role": "Scoring Engine — TF-IDF + Bilingual Tokenizer 단순 includes() 키워드 매칭을 넘어서, TF-IDF 가중치 기반의 문서 스코어링을 제공합니다. 한국어/영어 양국어 토크나이저를 포함합니다.",
"imports": []
},
"src/retrieval/semanticRerank.ts": {
"mtimeMs": 1781006628000,
"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": 1781006628000,
"size": 5450,
"lines": 127,
"role": "Terminology Dictionary — 프로젝트 표준 용어집을 시스템 프롬프트에 주입. 사용자 제안: \"표준 표기 강제 + 답변 내 표기 일관성 검증\". 예: runway vs 런웨이, P-Reinforce vs p-reinforce, Chronicle vs 크로니클. 설계 — 사용자 편집 markdown 파일: - 위치: <workspace>/.as",
"imports": [
"src/lib/mtimeFileCache"
]
},
"src/retrieval/types.ts": {
"mtimeMs": 1779536706000,
"size": 2419,
"lines": 66,
"role": "Retrieval Types (검색 결과 통합 타입) 모든 검색 소스(Brain, Memory, Project, Episode)의 결과를 통합 인터페이스로 정의합니다.",
"imports": []
},
"src/scaffolder/projectScaffolder.ts": {
"mtimeMs": 1778251854000,
"size": 4508,
"lines": 111,
"role": "",
"imports": [
"src/scaffolder/templates",
"src/lib/paths",
"src/utils"
]
},
"src/scaffolder/templates.ts": {
"mtimeMs": 1778251830000,
"size": 4897,
"lines": 154,
"role": "Scaffolder template catalog. Templates are pure data — (projectName) => { [relativePath]: contents }. New templates are added by appending to TEMPLATES; the rest of the scaffolder (validation, IO, com",
"imports": []
},
"src/security.ts": {
"mtimeMs": 1779494950000,
"size": 6174,
"lines": 159,
"role": "",
"imports": []
},
"src/sidebar/agentHandlers.ts": {
"mtimeMs": 1778676515000,
"size": 7752,
"lines": 169,
"role": "",
"imports": [
"src/sidebarProvider",
"src/utils",
"src/skills/agentKnowledgeMap"
]
},
"src/sidebar/brainHandlers.ts": {
"mtimeMs": 1778248976000,
"size": 1080,
"lines": 33,
"role": "",
"imports": [
"src/sidebarProvider"
]
},
"src/sidebar/builders/agentSkillResolver.ts": {
"mtimeMs": 1779628200000,
"size": 4250,
"lines": 90,
"role": "",
"imports": [
"src/utils",
"src/skills/agentKnowledgeMap",
"src/skills/externalSkillLoader"
]
},
"src/sidebar/builders/alignmentCardPayloads.ts": {
"mtimeMs": 1779628760000,
"size": 1517,
"lines": 41,
"role": "",
"imports": [
"src/features/company"
]
},
"src/sidebar/builders/alignmentRouting.ts": {
"mtimeMs": 1779630169000,
"size": 1918,
"lines": 41,
"role": "",
"imports": [
"src/features/company"
]
},
"src/sidebar/builders/architecturePayloads.ts": {
"mtimeMs": 1779629073000,
"size": 4306,
"lines": 107,
"role": "",
"imports": [
"src/features/projectChronicle",
"src/features/projectArchitecture"
]
},
"src/sidebar/builders/autoChronicleClassifier.ts": {
"mtimeMs": 1779627010000,
"size": 4262,
"lines": 88,
"role": "",
"imports": []
},
"src/sidebar/builders/autoChroniclePayloads.ts": {
"mtimeMs": 1779627191000,
"size": 4706,
"lines": 116,
"role": "",
"imports": [
"src/features/projectChronicle",
"src/sidebar/builders/textHelpers",
"src/sidebar/builders/autoChronicleClassifier"
]
},
"src/sidebar/builders/brainProfileHelpers.ts": {
"mtimeMs": 1779626545000,
"size": 1109,
"lines": 24,
"role": "Brain profile lifecycle 의 pure helpers — sidebarProvider 의 add/edit/delete 흐름에서 modal UI 와 config 쓰기를 제외한 데이터 변환 만 격리. 현재 한 함수만 있지만 향후 edit 의 \"변경된 필드만 머지\", delete 의 \"next active 선택 규칙\" 등 다른 pure trans",
"imports": []
},
"src/sidebar/builders/chroniclePayloads.ts": {
"mtimeMs": 1779625757000,
"size": 1793,
"lines": 49,
"role": "",
"imports": [
"src/features/projectChronicle"
]
},
"src/sidebar/builders/companyPayloads.ts": {
"mtimeMs": 1779625178000,
"size": 8984,
"lines": 202,
"role": "",
"imports": [
"src/features/company"
]
},
"src/sidebar/builders/companyTurnEmitter.ts": {
"mtimeMs": 1779629947000,
"size": 2485,
"lines": 54,
"role": "",
"imports": [
"src/features/company"
]
},
"src/sidebar/builders/dispatcherDepsBuilder.ts": {
"mtimeMs": 1781262929000,
"size": 3821,
"lines": 74,
"role": "",
"imports": [
"src/features/company",
"src/sidebar/managers/approvalGates",
"src/core/services",
"src/config"
]
},
"src/sidebar/builders/proactiveSuggestions.ts": {
"mtimeMs": 1779626190000,
"size": 1485,
"lines": 30,
"role": "Proactive suggestion tip 한 줄 텍스트 — 사이드바가 사용자의 특정 탐색 행동 (settings 열기, brain sync 보기, agent 선택 등) 을 감지하면 채팅에 callout 으로 잠깐 띄우는 도움말. Stateless lookup table — sidebarProvider 의 옛 handleProactiveSuggestion",
"imports": []
},
"src/sidebar/builders/projectProfileFactories.ts": {
"mtimeMs": 1779627696000,
"size": 4484,
"lines": 106,
"role": "",
"imports": [
"src/features/projectChronicle",
"src/sidebar/builders/textHelpers"
]
},
"src/sidebar/builders/promptAttachments.ts": {
"mtimeMs": 1779627922000,
"size": 5975,
"lines": 117,
"role": "",
"imports": [
"src/utils"
]
},
"src/sidebar/builders/sessionPayloads.ts": {
"mtimeMs": 1779628917000,
"size": 2334,
"lines": 63,
"role": "",
"imports": [
"src/agent",
"src/sidebar/managers/chatSessionStore"
]
},
"src/sidebar/builders/statusPayloads.ts": {
"mtimeMs": 1781272890000,
"size": 4546,
"lines": 110,
"role": "",
"imports": [
"src/config"
]
},
"src/sidebar/builders/textHelpers.ts": {
"mtimeMs": 1779625537000,
"size": 1399,
"lines": 34,
"role": "sidebarProvider 가 chronicle 기록 / 세션 title / YAML frontmatter 등에서 공통으로 쓰는 작은 텍스트 변환 헬퍼. 모두 stateless. - slugify(value) — kebab-case slug (한/영/숫자 보존, 48자 cap) - summarizeForTitle(value) — chat title 표시용",
"imports": []
},
"src/sidebar/builders/wikiRaw.ts": {
"mtimeMs": 1779625926000,
"size": 4136,
"lines": 97,
"role": "",
"imports": [
"src/agent",
"src/sidebar/builders/textHelpers"
]
},
"src/sidebar/chatHandlers.ts": {
"mtimeMs": 1779669848000,
"size": 25980,
"lines": 451,
"role": "",
"imports": [
"src/sidebarProvider",
"src/utils",
"src/lib/paths",
"src/features/datacollect/slashRouter",
"src/config",
"src/features/company",
"src/core/services",
"src/sidebar/companyHandlers"
]
},
"src/sidebar/chronicleHandlers.ts": {
"mtimeMs": 1779514386000,
"size": 2422,
"lines": 59,
"role": "",
"imports": [
"src/sidebarProvider"
]
},
"src/sidebar/companyHandlers.ts": {
"mtimeMs": 1781260027000,
"size": 18106,
"lines": 347,
"role": "",
"imports": [
"src/sidebarProvider",
"src/features/company",
"src/features/company/resumeStore"
]
},
"src/sidebar/managers/agentSkillStore.ts": {
"mtimeMs": 1779626174000,
"size": 5563,
"lines": 128,
"role": "",
"imports": []
},
"src/sidebar/managers/approvalGates.ts": {
"mtimeMs": 1779601410000,
"size": 2755,
"lines": 63,
"role": "",
"imports": [
"src/features/company/dispatcher"
]
},
"src/sidebar/managers/architectureWatch.ts": {
"mtimeMs": 1779617624000,
"size": 4230,
"lines": 90,
"role": "",
"imports": [
"src/utils",
"src/features/projectArchitecture",
"src/features/projectChronicle"
]
},
"src/sidebar/managers/chatSessionStore.ts": {
"mtimeMs": 1779623748000,
"size": 4755,
"lines": 110,
"role": "",
"imports": [
"src/utils",
"src/agent"
]
},
"src/sidebar/managers/chronicleProjectStore.ts": {
"mtimeMs": 1779627762000,
"size": 2378,
"lines": 50,
"role": "",
"imports": [
"src/features/projectChronicle",
"src/sidebar/builders/projectProfileFactories"
]
},
"src/sidebar/managers/companyTurn.ts": {
"mtimeMs": 1779617783000,
"size": 4397,
"lines": 116,
"role": "",
"imports": [
"src/features/company"
]
},
"src/sidebar/managers/modelDiscovery.ts": {
"mtimeMs": 1779624023000,
"size": 6127,
"lines": 146,
"role": "",
"imports": [
"src/utils",
"src/sidebarProvider"
]
},
"src/sidebar/managers/pixelOfficeHelpers.ts": {
"mtimeMs": 1781260027000,
"size": 6199,
"lines": 156,
"role": "",
"imports": [
"src/features/company",
"src/features/astraOffice"
]
},
"src/sidebar/managers/pixelOfficeLayoutStore.ts": {
"mtimeMs": 1781260027000,
"size": 1672,
"lines": 37,
"role": "",
"imports": [
"src/features/astraOffice"
]
},
"src/sidebar/managers/pixelOfficeState.ts": {
"mtimeMs": 1781260027000,
"size": 3494,
"lines": 77,
"role": "",
"imports": [
"src/features/company",
"src/features/astraOffice"
]
},
"src/sidebar/managers/sessionStateStore.ts": {
"mtimeMs": 1779628403000,
"size": 2851,
"lines": 63,
"role": "",
"imports": [
"src/agent"
]
},
"src/sidebar/registry.ts": {
"mtimeMs": 1779600922000,
"size": 1898,
"lines": 51,
"role": "",
"imports": [
"src/sidebarProvider"
]
},
"src/sidebarProvider.ts": {
"mtimeMs": 1781272916000,
"size": 167809,
"lines": 3487,
"role": "",
"imports": [
"src/utils",
"src/config",
"src/agent",
"src/bridge",
"src/features/projectChronicle",
"src/lib/contextBuilders/thinFollowUp",
"src/lmstudio/lifecycleManager",
"src/lmstudio/activityTracker",
"src/sidebar/chatHandlers",
"src/sidebar/brainHandlers",
"src/sidebar/chronicleHandlers",
"src/sidebar/agentHandlers",
"src/sidebar/registry",
"src/sidebar/managers/approvalGates",
"src/sidebar/managers/architectureWatch",
"src/sidebar/managers/companyTurn",
"src/sidebar/managers/pixelOfficeState",
"src/sidebar/managers/pixelOfficeHelpers",
"src/sidebar/managers/chatSessionStore",
"src/sidebar/managers/modelDiscovery",
"src/sidebar/managers/pixelOfficeLayoutStore",
"src/sidebar/builders/statusPayloads",
"src/sidebar/builders/companyPayloads",
"src/sidebar/builders/textHelpers",
"src/sidebar/managers/chronicleProjectStore",
"src/sidebar/builders/chroniclePayloads",
"src/sidebar/builders/wikiRaw",
"src/sidebar/managers/agentSkillStore",
"src/sidebar/builders/proactiveSuggestions",
"src/sidebar/builders/brainProfileHelpers",
"src/sidebar/builders/autoChronicleClassifier",
"src/sidebar/builders/autoChroniclePayloads",
"src/sidebar/builders/architecturePayloads",
"src/sidebar/builders/projectProfileFactories",
"src/sidebar/builders/promptAttachments",
"src/sidebar/builders/agentSkillResolver",
"src/sidebar/managers/sessionStateStore",
"src/sidebar/builders/sessionPayloads",
"src/sidebar/builders/alignmentCardPayloads",
"src/sidebar/builders/dispatcherDepsBuilder",
"src/sidebar/builders/companyTurnEmitter",
"src/sidebar/builders/alignmentRouting",
"src/skills/agentKnowledgeMap",
"src/retrieval/brainIndex",
"src/features/web/webFetch",
"src/lib/contextBuilders/urlContext",
"src/lib/contextManager",
"src/features/projectArchitecture",
"src/features/projectArchitecture/intentDetector",
"src/features/company",
"src/core/services",
"src/core/health",
"src/features/astraOffice"
]
},
"src/skills/agentKnowledgeMap.ts": {
"mtimeMs": 1778676092000,
"size": 15707,
"lines": 374,
"role": "",
"imports": [
"src/lib/paths",
"src/utils"
]
},
"src/skills/externalSkillLoader.ts": {
"mtimeMs": 1778470672000,
"size": 5859,
"lines": 159,
"role": "",
"imports": [
"src/lib/paths",
"src/utils"
]
},
"src/skills/scopedBrainRetriever.ts": {
"mtimeMs": 1779492050000,
"size": 6213,
"lines": 156,
"role": "",
"imports": [
"src/utils",
"src/lib/paths",
"src/retrieval/scoring",
"src/retrieval/brainIndex",
"src/retrieval/contextBudget"
]
},
"src/skills/skillInjectionService.ts": {
"mtimeMs": 1778681774000,
"size": 6276,
"lines": 145,
"role": "",
"imports": [
"src/lib/paths",
"src/utils"
]
},
"src/system/specs.ts": {
"mtimeMs": 1778251036000,
"size": 4326,
"lines": 118,
"role": "",
"imports": []
},
"src/types/interfaces.ts": {
"mtimeMs": 1778169995000,
"size": 1260,
"lines": 39,
"role": "Service Interfaces (서비스 인터페이스 정의) 각 서비스(Agent, Brain, FileSystem 등)의 추상화 인터페이스를 정의합니다. 의존성 주입(DI)과 단위 테스트를 위해 필수적입니다.",
"imports": []
},
"src/utils.ts": {
"mtimeMs": 1781267310000,
"size": 28160,
"lines": 485,
"role": "",
"imports": [
"src/config",
"src/features/selfReflector/selfReflectorPrompt"
]
},
"media/settings-panel.css": {
"mtimeMs": 1781006628000,
"size": 5787,
"lines": 254,
"role": "Stylesheet",
"imports": []
},
"media/settings-panel.html": {
"mtimeMs": 1781006628000,
"size": 25892,
"lines": 440,
"role": "Astra Settings",
"imports": []
},
"media/settings-panel.js": {
"mtimeMs": 1781006628000,
"size": 24458,
"lines": 505,
"role": "",
"imports": []
},
"media/sidebar.css": {
"mtimeMs": 1781261553000,
"size": 90145,
"lines": 2114,
"role": "Stylesheet",
"imports": []
},
"media/sidebar.html": {
"mtimeMs": 1781260027000,
"size": 34561,
"lines": 539,
"role": "Astra",
"imports": []
},
"media/sidebar.js": {
"mtimeMs": 1781272941000,
"size": 231565,
"lines": 3947,
"role": "",
"imports": []
},
"tests/agentEngine.test.ts": {
"mtimeMs": 1779609795000,
"size": 19050,
"lines": 413,
"role": "AgentEngine Tests — Chunked Writer Architecture 예전 buildup(planner → researcher → reflector → writer → synthesizer)을 단일 ChunkedWriter 의 outline → section[N] → polish 로 교체한 뒤의 회귀 테스트. 다루는 범위: 1. ErrorC",
"imports": [
"src/lib/engine",
"src/config"
]
},
"tests/alignmentResearch.test.ts": {
"mtimeMs": 1781261630000,
"size": 9071,
"lines": 208,
"role": "",
"imports": [
"src/features/company/alignmentResearch",
"src/retrieval/brainIndex",
"src/utils",
"src/core/services"
]
},
"tests/approvalQueue.test.ts": {
"mtimeMs": 1778251690000,
"size": 5915,
"lines": 164,
"role": "Unit tests for ApprovalQueue. Strategy: drive enqueue → approve / reject / clear / pre-empt directly, confirm the onChange event fires at the right moments and callbacks fire exactly once.",
"imports": [
"src/features/approval/approvalQueue"
]
},
"tests/brainIndex.test.ts": {
"mtimeMs": 1778594450000,
"size": 5406,
"lines": 107,
"role": "",
"imports": [
"src/retrieval/brainIndex"
]
},
"tests/calendarApi.test.ts": {
"mtimeMs": 1778935637000,
"size": 5103,
"lines": 131,
"role": "",
"imports": [
"src/features/calendar/calendarApi",
"src/agent"
]
},
"tests/confidenceEngine.test.ts": {
"mtimeMs": 1781260027000,
"size": 7643,
"lines": 175,
"role": "Confidence Engine + Escalation Engine (Self-Evolving OS Phase 2) 단위 테스트. 순수 함수만 검증 — vscode 의존 없음.",
"imports": [
"src/intelligence/confidenceEngine",
"src/intelligence/escalationEngine",
"src/intelligence/epistemicGuardBlock",
"src/retrieval/citationTrace",
"src/retrieval/types"
]
},
"tests/conflictCheck.test.ts": {
"mtimeMs": 1781260027000,
"size": 2915,
"lines": 65,
"role": "Schedule Conflict Check (Self-Evolving OS Track 6-2/6-3) 테스트.",
"imports": [
"src/features/calendar/conflictCheck",
"src/agent/attrParsers"
]
},
"tests/contextManager.test.ts": {
"mtimeMs": 1779514030000,
"size": 7755,
"lines": 149,
"role": "",
"imports": [
"src/lib/contextManager"
]
},
"tests/correctionLoop.test.ts": {
"mtimeMs": 1781260027000,
"size": 7272,
"lines": 158,
"role": "Correction Loop 단위 테스트 — 순수 로직 (감지·프로필·레슨·큐 등록·영속화). LLM 의존 부분(classifyCorrection)은 엔드포인트 실패 → 휴리스틱 fallback 경로만 검증.",
"imports": [
"src/intelligence/correctionLoop",
"src/intelligence/learningQueue"
]
},
"tests/criticReflectionEval.test.ts": {
"mtimeMs": 1781260027000,
"size": 8327,
"lines": 200,
"role": "Critic Agent / Reflection Store / Task Eval Harness (Self-Evolving OS P1 잔여 + P3) 테스트.",
"imports": [
"src/intelligence/criticAgent",
"src/intelligence/reflectionStore",
"src/intelligence/taskEvalHarness",
"src/intelligence/requirementGraph"
]
},
"tests/dataProcessor.test.ts": {
"mtimeMs": 1777808065000,
"size": 3430,
"lines": 87,
"role": "/ <reference types=\"jest\" />",
"imports": [
"src/core/dataProcessor"
]
},
"tests/devilAgent.test.ts": {
"mtimeMs": 1778943907000,
"size": 3179,
"lines": 61,
"role": "",
"imports": [
"src/features/devilAgent/devilPrompt"
]
},
"tests/featureInventory.test.ts": {
"mtimeMs": 1781260027000,
"size": 2613,
"lines": 58,
"role": "기능 인벤토리 자동 생성 + 충돌 스캔 대상 필터 — 순수 로직 테스트. (자기 지식 구식화 버그의 근본 수정: 인벤토리가 package.json 에서 기계 생성되는지)",
"imports": [
"src/extension/featureInventory",
"src/features/growth/conflictScan"
]
},
"tests/findBrainFilesCache.test.ts": {
"mtimeMs": 1778247665000,
"size": 2720,
"lines": 80,
"role": "Unit tests for findBrainFiles TTL cache.",
"imports": [
"src/utils"
]
},
"tests/hangulHygiene.test.ts": {
"mtimeMs": 1781260027000,
"size": 2573,
"lines": 54,
"role": "한·영 깨진 토큰 감지·수리 — 순수 로직 테스트.",
"imports": [
"src/agent/hangulHygiene"
]
},
"tests/helpers/mockLLMClient.ts": {
"mtimeMs": 1779601519000,
"size": 3563,
"lines": 112,
"role": "MockLLMClient — IAIService 의 Mock 구현체. 의도: 회사 모드 dispatcher / ChunkedWriter / ceoPlanner 등 LLM 을 호출하는 코드 경로를 CI 환경에서도 테스트 가능하게. 실제 Ollama / LM Studio 없이도 응답을 미리 정의하거나 동적으로 생성 가능. 사용 예: const ai = new ",
"imports": [
"src/core/services"
]
},
"tests/icsParser.test.ts": {
"mtimeMs": 1778934828000,
"size": 5011,
"lines": 134,
"role": "",
"imports": [
"src/features/calendar/icsParser"
]
},
"tests/integration/mockLLMClient.test.ts": {
"mtimeMs": 1779601548000,
"size": 2931,
"lines": 86,
"role": "MockLLMClient 자체의 sanity test. 이게 통과하면 dispatcher / ceoPlanner / ChunkedWriter 등 IAIService 를 받는 코드가 실제 LLM 없이 단위 / integration 테스트 가능. 향후 dispatcher 의 multi-stage flow 같은 큰 integration 테스트는 이 mock 을 ",
"imports": [
"tests/helpers/mockLLMClient"
]
},
"tests/integration_retrieval.test.ts": {
"mtimeMs": 1779536730000,
"size": 4013,
"lines": 91,
"role": "",
"imports": [
"src/retrieval",
"src/utils"
]
},
"tests/knowledgeOps.test.ts": {
"mtimeMs": 1781260027000,
"size": 8035,
"lines": 174,
"role": "Knowledge Validation / Belief Revision / Decay / Debt (Self-Evolving OS Phase 4 — 지식 운영) 테스트.",
"imports": [
"src/intelligence/knowledgeValidation",
"src/intelligence/knowledgeDecay",
"src/intelligence/needEngine",
"src/intelligence/reflectionStore",
"src/intelligence/orgMemoryBlock"
]
},
"tests/lessonHelpers.test.ts": {
"mtimeMs": 1778595482000,
"size": 9400,
"lines": 191,
"role": "",
"imports": [
"src/retrieval/lessonHelpers"
]
},
"tests/lessonNetwork.test.ts": {
"mtimeMs": 1781260027000,
"size": 4375,
"lines": 84,
"role": "레슨 네트워크(A-MEM 이식) + 통합 초안 형식 — 순수 로직 테스트.",
"imports": [
"src/intelligence/lessonNetwork",
"src/features/growth/conflictScan",
"src/retrieval/scoring"
]
},
"tests/lmStudioLifecycle.test.ts": {
"mtimeMs": 1781006628000,
"size": 11888,
"lines": 330,
"role": "Unit tests for ModelLifecycleManager. Strategy: inject mock ILMStudioClient and a simple in-memory IActivityTracker. No real LM Studio or SDK is touched — the manager file does not import the SDK dire",
"imports": [
"src/lmstudio/lifecycleManager",
"src/lmstudio/client",
"src/lmstudio/activityTracker"
]
},
"tests/lmStudioStreamer.test.ts": {
"mtimeMs": 1779516692000,
"size": 8788,
"lines": 222,
"role": "Unit tests for LMStudioStreamer. Strategy: inject a fake ILMStudioClient that returns a fake model handle whose respond() yields a controllable async iterable. No real SDK or WebSocket touched.",
"imports": [
"src/lmstudio/streamer",
"src/lmstudio/client"
]
},
"tests/localPathPreflight.test.ts": {
"mtimeMs": 1779622608000,
"size": 25010,
"lines": 520,
"role": "",
"imports": [
"src/agent",
"src/lib/contextBuilders/historyTransform",
"src/lib/contextBuilders/promptDetection",
"src/lib/contextBuilders/projectEvidence",
"src/lib/contextBuilders/jarvisProjectBrief",
"src/lib/contextBuilders/localProjectIntent",
"src/lib/contextBuilders/projectKnowledge",
"src/lib/contextBuilders/localProjectPath",
"src/lib/contextBuilders/recentProjectKnowledge",
"src/lib/contextBuilders/astraModeArchitecture",
"src/lib/contextBuilders/multiAgentRouting"
]
},
"tests/meetRegistration.test.ts": {
"mtimeMs": 1781260027000,
"size": 5116,
"lines": 110,
"role": "/meet 확신 게이트 — 분류·confirm 파싱·날짜 정규화 테스트. 정책: 확정+기한만 자동, 진행미정/기한미정/조건부는 보류, 반복은 첫 1회, 과거 날짜는 등록하되 완료확인 표기, 기한 해석 불가 확정건은 보류(추측 등록 금지).",
"imports": [
"src/features/datacollect/scheduling/meetRegistration"
]
},
"tests/mocks/vscode.js": {
"mtimeMs": 1778246810000,
"size": 1670,
"lines": 68,
"role": "",
"imports": []
},
"tests/needEngineQueue.test.ts": {
"mtimeMs": 1781260027000,
"size": 7123,
"lines": 159,
"role": "Gap Detector / Need Engine / Knowledge Inventory / Learning Queue (Self-Evolving OS Phase 3 — 성장 루프 코어) 테스트.",
"imports": [
"src/intelligence/gapDetector",
"src/intelligence/needEngine",
"src/intelligence/learningQueue",
"src/intelligence/reflectionStore"
]
},
"tests/officeSchema.test.ts": {
"mtimeMs": 1781260027000,
"size": 9884,
"lines": 241,
"role": "",
"imports": [
"src/features/astraOffice/schema",
"src/features/astraOffice/view/layoutSchema",
"src/features/astraOffice/presenter"
]
},
"tests/paths.test.ts": {
"mtimeMs": 1778250990000,
"size": 2590,
"lines": 84,
"role": "Unit tests for the centralized path resolver.",
"imports": [
"src/lib/paths"
]
},
"tests/pipelineTemplates.test.ts": {
"mtimeMs": 1778934174000,
"size": 2984,
"lines": 69,
"role": "",
"imports": [
"src/features/company/pipelineTemplates"
]
},
"tests/projectChronicle.test.ts": {
"mtimeMs": 1778169995000,
"size": 8359,
"lines": 199,
"role": "",
"imports": [
"src/features/projectChronicle"
]
},
"tests/projectChronicleGuardPrompt.test.ts": {
"mtimeMs": 1777808369000,
"size": 2838,
"lines": 52,
"role": "",
"imports": [
"src/features/projectChronicle"
]
},
"tests/projectScaffolder.test.ts": {
"mtimeMs": 1778251915000,
"size": 5800,
"lines": 135,
"role": "Unit tests for FileSystemProjectScaffolder. Drives against a real temp directory so end-to-end file IO + path-traversal defenses are exercised.",
"imports": [
"src/scaffolder/projectScaffolder"
]
},
"tests/providers.test.ts": {
"mtimeMs": 1778942187000,
"size": 4118,
"lines": 97,
"role": "",
"imports": [
"src/features/providers/types",
"src/features/providers/streamHelpers"
]
},
"tests/requirementGraph.test.ts": {
"mtimeMs": 1781260027000,
"size": 5535,
"lines": 126,
"role": "Requirement Graph (Self-Evolving OS Phase 1 / Track 2-1) 단위 테스트. 순수 함수만 검증 — vscode 의존 없음.",
"imports": [
"src/intelligence/requirementGraph"
]
},
"tests/researchSkill.test.ts": {
"mtimeMs": 1781260027000,
"size": 5860,
"lines": 122,
"role": "Research Agent / Skill Score / Success Pattern DB (Self-Evolving OS Phase 6) 테스트.",
"imports": [
"src/intelligence/researchAgent",
"src/intelligence/skillScore",
"src/intelligence/learningQueue",
"src/intelligence/reflectionStore"
]
},
"tests/resilience_stress.test.ts": {
"mtimeMs": 1779534568000,
"size": 8413,
"lines": 197,
"role": "Resilience & Boundary Stress Test Suite (v2.77.3) 이 테스트는 ConnectAI 엔진이 극한의 환경(인증 실패, 네트워크 차단, 타임아웃 등)에서 얼마나 안정적으로 복구되고, 신뢰성 지표(Resilience Metrics)를 정확히 기록하는지 검증합니다.",
"imports": [
"src/lib/engine"
]
},
"tests/resilience_v4.test.ts": {
"mtimeMs": 1777978211000,
"size": 3435,
"lines": 84,
"role": "",
"imports": [
"src/lib/engine",
"src/lib/diagnostics"
]
},
"tests/responseRecovery.test.ts": {
"mtimeMs": 1778598707000,
"size": 8782,
"lines": 151,
"role": "",
"imports": [
"src/core/responseRecovery"
]
},
"tests/retrievalEvalCompare.test.ts": {
"mtimeMs": 1781260027000,
"size": 4115,
"lines": 86,
"role": "검색 모드 A/B 측정 — 파일 단위(baseline) vs 섹션 청크(Phase 1-가). 평소 테스트 런에서는 skip 된다 (실제 두뇌 폴더 + 수천 파일 인덱싱이 필요해 CI/패키징에 부적합). 수동 실행: ASTRAEVALBRAIN=\"E:/Wiki/2nd/10Wiki/Topics\" npx jest tests/retrievalEvalCompare.t",
"imports": [
"src/retrieval",
"src/retrieval/evalHarness",
"src/utils",
"src/retrieval/brainIndex"
]
},
"tests/retrievalEvalEmbedding.test.ts": {
"mtimeMs": 1781260027000,
"size": 5598,
"lines": 106,
"role": "하이브리드(sparse+dense) 검색 측정 — 청크 TF-IDF vs 청크+임베딩 (alpha sweep). 평소 테스트 런에서는 skip (실제 두뇌 + 로컬 임베딩 서버 필요). 수동 실행: ASTRAEVALBRAIN=\"E:/Wiki/2nd/10Wiki/Topics\" \\ ASTRAEVALEMBEDMODEL=\"text-embedding-nomic-em",
"imports": [
"src/retrieval",
"src/retrieval/evalHarness",
"src/utils",
"src/retrieval/brainIndex",
"src/retrieval/embeddings"
]
},
"tests/scoring.test.ts": {
"mtimeMs": 1778169995000,
"size": 6055,
"lines": 134,
"role": "",
"imports": [
"src/retrieval/scoring"
]
},
"tests/secondBrainTrace.test.ts": {
"mtimeMs": 1777866065000,
"size": 23024,
"lines": 407,
"role": "",
"imports": [
"src/features/secondBrainTrace"
]
},
"tests/selfAssessContext.test.ts": {
"mtimeMs": 1781260027000,
"size": 3413,
"lines": 68,
"role": "자기 평가 정본 주입 + 충돌 신뢰도 비교 — 순수 로직 테스트.",
"imports": [
"src/lib/contextBuilders/selfAssessContext",
"src/extension/featureInventory",
"src/features/growth/conflictScan"
]
},
"tests/selfAssessTriggers.test.ts": {
"mtimeMs": 1781274623000,
"size": 5964,
"lines": 90,
"role": "자기 분석 트리거 + 인벤토리 자동 대조 회귀 테스트. 모든 케이스는 실제 사용자 세션에서 재현된 실패에서 가져왔다: - \"/Volumes/... 분석해줘\" 프롬프트가 startsWith('/') 가드에 슬래시 명령으로 오인되어 분석 지시·인벤토리가 전부 미주입 (v2.2.239 까지의 버그) - 이전 답변 전문(5천자+)을 붙여넣는 재검토 프롬프트가 길이",
"imports": [
"src/lib/contextBuilders/selfAssessContext",
"src/lib/contextBuilders/promptDetection",
"src/features/web/webFetch",
"src/extension/featureConceptMap"
]
},
"tests/sheetsApi.test.ts": {
"mtimeMs": 1778936029000,
"size": 3913,
"lines": 113,
"role": "",
"imports": [
"src/features/sheets/sheetsApi",
"src/agent"
]
},
"tests/skillInjectionService.test.ts": {
"mtimeMs": 1778681774000,
"size": 6741,
"lines": 172,
"role": "Unit tests for FileSystemSkillInjectionService. Strategy: drive the service against a real temp directory so path-traversal defenses and writeFileSync paths are exercised end-to-end. The service accep",
"imports": [
"src/skills/skillInjectionService"
]
},
"tests/sleepDigest.test.ts": {
"mtimeMs": 1781260027000,
"size": 4527,
"lines": 101,
"role": "Sleep-time 사전 소화 — 순수 로직 테스트 (대상 선정·노후화 판정·노트 형식). LLM 호출(runSleepDigestOnce)은 제외 — 통합 검증은 수동 명령으로.",
"imports": [
"src/features/growth/sleepDigest"
]
},
"tests/stocksCriteria.test.ts": {
"mtimeMs": 1781095278000,
"size": 7191,
"lines": 129,
"role": "criteriaEval — /stocks judge 결정론 평가기 테스트. 픽스처는 옛 LLM 프롬프트에 명시돼 있던 사용자의 실제 분류 예시 3종 (마녀공장/기가비스/엔켐) — 코드 판정이 사용자 패턴과 일치해야 한다.",
"imports": [
"src/features/stocks/criteriaEval",
"src/features/stocks/types"
]
},
"tests/systemPrompt.test.ts": {
"mtimeMs": 1779513481000,
"size": 1455,
"lines": 32,
"role": "",
"imports": [
"src/utils"
]
},
"tests/systemSpecs.test.ts": {
"mtimeMs": 1778251130000,
"size": 3464,
"lines": 90,
"role": "Unit tests for SystemSpecs + HeuristicModelMemoryEstimator. Strategy: - HeuristicModelMemoryEstimator is pure — directly drive it with model ids. - NodeSystemSpecsProvider depends on os. so we test: a",
"imports": [
"src/system/specs"
]
},
"tests/taskStore.test.ts": {
"mtimeMs": 1778936645000,
"size": 7226,
"lines": 185,
"role": "",
"imports": [
"src/features/tasks/taskStore",
"src/agent"
]
},
"tests/telegramBot.test.ts": {
"mtimeMs": 1778253785000,
"size": 13012,
"lines": 363,
"role": "Unit tests for TelegramBot + truncateForTelegram. Strategy: - TelegramBot is driven by an injected ITelegramClient stub. We script getUpdates to return queued batches and assert that: - the offset cur",
"imports": [
"src/integrations/telegram/telegramBot",
"src/integrations/telegram/telegramClient",
"src/integrations/telegram/types"
]
},
"tests/transaction.test.ts": {
"mtimeMs": 1777808065000,
"size": 2064,
"lines": 68,
"role": "/ <reference types=\"jest\" />",
"imports": [
"src/core/transaction"
]
},
"tests/urlContext.test.ts": {
"mtimeMs": 1781260027000,
"size": 2655,
"lines": 48,
"role": "URL 컨텍스트 + wikify 정본 포맷 — 순수 로직 테스트.",
"imports": [
"src/lib/contextBuilders/urlContext",
"src/features/datacollect/prompts/wikifyPrompt"
]
},
"tests/vulnerability.test.ts": {
"mtimeMs": 1777808065000,
"size": 2100,
"lines": 60,
"role": "/ <reference types=\"jest\" />",
"imports": [
"src/core/lock",
"src/core/transaction"
]
},
"tests/webFetch.test.ts": {
"mtimeMs": 1781264406000,
"size": 3470,
"lines": 76,
"role": "",
"imports": [
"src/features/web/webFetch"
]
},
"core_py/events.py": {
"mtimeMs": 1777559069000,
"size": 2374,
"lines": 64,
"role": "",
"imports": []
},
"core_py/inference.py": {
"mtimeMs": 1777559249000,
"size": 3834,
"lines": 91,
"role": "",
"imports": []
},
"core_py/loader.py": {
"mtimeMs": 1777559060000,
"size": 2368,
"lines": 61,
"role": "",
"imports": []
},
"core_py/monitoring.py": {
"mtimeMs": 1777559685000,
"size": 2060,
"lines": 56,
"role": "",
"imports": []
},
"core_py/optimizer.py": {
"mtimeMs": 1777559265000,
"size": 2327,
"lines": 55,
"role": "",
"imports": []
},
"core_py/queue_worker.py": {
"mtimeMs": 1777559676000,
"size": 2987,
"lines": 82,
"role": "",
"imports": []
},
"docs/ASTRA_OFFICE_REFACTOR.md": {
"mtimeMs": 1778931177000,
"size": 9395,
"lines": 198,
"role": "Astra Office Refactor — Design Doc",
"imports": [
"docs/features/astraOffice"
]
},
"docs/Advanced_Features_Implementation_Guide.md": {
"mtimeMs": 1777808065000,
"size": 1804,
"lines": 40,
"role": "Advanced Features Implementation Guide",
"imports": []
},
"docs/AgentEngine_Architecture.md": {
"mtimeMs": 1777863061000,
"size": 14338,
"lines": 314,
"role": "AgentEngine Architecture Document",
"imports": []
},
"docs/EXPERIENCE_MEMORY_PLAN.md": {
"mtimeMs": 1778595595000,
"size": 9390,
"lines": 122,
"role": "Experience Memory (Mistake / Lesson Loop) — Implementation Plan",
"imports": []
},
"docs/PROJECT_CHRONICLE_GUARD_ROADMAP.md": {
"mtimeMs": 1777948230000,
"size": 1634,
"lines": 43,
"role": "Project Chronicle Guard: Search Engine Roadmap",
"imports": []
},
"docs/SELF_EVOLVING_OS_MASTER_PLAN.md": {
"mtimeMs": 1781260027000,
"size": 22492,
"lines": 275,
"role": "ASTRA Self-Evolving Digital Employee OS — 마스터 개발 계획 v1.1",
"imports": []
},
"docs/TELEGRAM_REMOTE_EXECUTION_PLAN.md": {
"mtimeMs": 1778592247000,
"size": 12254,
"lines": 452,
"role": "Telegram Remote Execution 기획서",
"imports": []
},
"docs/UX_UI_Consistency_Guidelines.md": {
"mtimeMs": 1777808065000,
"size": 2509,
"lines": 44,
"role": "UX/UI Consistency Guidelines",
"imports": []
},
"docs/docs/records/docs/README.md": {
"mtimeMs": 1777949758000,
"size": 427,
"lines": 18,
"role": "docs Chronicle Records",
"imports": []
},
"docs/docs/records/docs/bugs/BUG-0001-viewed-integration-retrieval-test-ts-1-59-integration-retrie.md": {
"mtimeMs": 1777949758000,
"size": 2059,
"lines": 16,
"role": "Bug: Viewed integrationretrieval.test.ts:1-59 integrationretrieval.test.ts를 통해 ...",
"imports": []
},
"docs/docs/records/docs/chronicle.config.json": {
"mtimeMs": 1777949758000,
"size": 522,
"lines": 11,
"role": "JSON configuration",
"imports": []
},
"docs/docs/records/docs/project-profile.md": {
"mtimeMs": 1777949758000,
"size": 586,
"lines": 31,
"role": "Project Profile",
"imports": []
},
"docs/docs/records/docs/timeline.md": {
"mtimeMs": 1777949758000,
"size": 210,
"lines": 7,
"role": "Project Timeline",
"imports": []
},
"docs/plans/alignment-self-learning-plan.md": {
"mtimeMs": 1781261208000,
"size": 10538,
"lines": 194,
"role": "Alignment Self-Learning 개선 계획 (v2 — 적대적 리뷰 반영)",
"imports": []
},
"docs/plans/web-fetch-and-mode-parity-plan.md": {
"mtimeMs": 1781262579000,
"size": 6481,
"lines": 102,
"role": "웹 접근 + 모드 동등성 수정 계획 (v2 — 적대적 리뷰 + 재검증 반영)",
"imports": []
},
"docs/records/ConnectAI/README.md": {
"mtimeMs": 1777808202000,
"size": 598,
"lines": 18,
"role": "Astra Project Chronicle Records",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0001-volumes-data-project-antigravity-connectai-프로젝트-코드-리뷰-해줄-수-있.md": {
"mtimeMs": 1777865266000,
"size": 1408,
"lines": 16,
"role": "Bug: /Volumes/Data/project/Antigravity/ConnectAI 프로젝트 코드 리뷰 해줄 수 있어? 개선할 부분이 있는지, 그러고...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0002-지금-내가-분석-요청하고-너가-답을-줄때-아래-템플릿에-맞춰-답을-써주고-있는데-개선-포인트가-있는지-확인해.md": {
"mtimeMs": 1777889979000,
"size": 2559,
"lines": 16,
"role": "Bug: 지금 내가 분석 요청하고 너가 답을 줄때 아래 템플릿에 맞춰 답을 써주고 있는데, 개선 포인트가 있는지 확인해줘. ## 내가 보는 위험 가장 큰...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0003-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md": {
"mtimeMs": 1777962835000,
"size": 1891,
"lines": 16,
"role": "Bug: /Volumes/Data/project/Antigravity/ConnectAI 내 질문에 대한 답변이 잘 정리되서 알려주긴 하는데 focused...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0004-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md": {
"mtimeMs": 1777964236000,
"size": 1883,
"lines": 16,
"role": "Bug: /Volumes/Data/project/Antigravity/ConnectAI 내 질문에 대한 답변이 잘 정리되서 알려주긴 하는데 focused...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0005-다시한번-답줘-volumes-data-project-antigravity-connectai-내-질문에-대한-.md": {
"mtimeMs": 1777965245000,
"size": 1868,
"lines": 16,
"role": "Bug: 다시한번 답줘. /Volumes/Data/project/Antigravity/ConnectAI 내 질문에 대한 답변이 잘 정리되서 알려주긴 하는...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0006-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md": {
"mtimeMs": 1777965308000,
"size": 1623,
"lines": 16,
"role": "Bug: /Volumes/Data/project/Antigravity/ConnectAI 내 질문에 대한 답변이 잘 정리되서 알려주긴 하는데 focused...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0007-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md": {
"mtimeMs": 1777965612000,
"size": 1823,
"lines": 16,
"role": "Bug: /Volumes/Data/project/Antigravity/ConnectAI 내 질문에 대한 답변이 잘 정리되서 알려주긴 하는데 focused...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0008-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md": {
"mtimeMs": 1777966704000,
"size": 1737,
"lines": 16,
"role": "Bug: /Volumes/Data/project/Antigravity/ConnectAI 내 질문에 대한 답변이 잘 정리되서 알려주긴 하는데 focused...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0009-문제점을-읽고-어떻게-개선하는게-최선인지-분석해주면-좋겠어-알겠습니다-지금부터-connectai-프로젝트-에.md": {
"mtimeMs": 1777977740000,
"size": 2295,
"lines": 16,
"role": "Bug: 문제점을 읽고 어떻게 개선하는게 최선인지 분석해주면 좋겠어. 알겠습니다. 지금부터 ConnectAI 프로젝트에만 완전히 집중하겠습니다. ...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0010-문제점을-읽고-어떻게-개선하는게-최선인지-분석해주면-좋겠어-알겠습니다-지금부터-connectai-프로젝트-에.md": {
"mtimeMs": 1777981089000,
"size": 2339,
"lines": 16,
"role": "Bug: 문제점을 읽고 어떻게 개선하는게 최선인지 분석해주면 좋겠어. 알겠습니다. 지금부터 ConnectAI 프로젝트에만 완전히 집중하겠습니다. ...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0011-문제점을-읽고-어떻게-개선하는게-최선인지-분석해주면-좋겠어-알겠습니다-지금부터-connectai-프로젝트-에.md": {
"mtimeMs": 1777982331000,
"size": 2277,
"lines": 16,
"role": "Bug: 문제점을 읽고 어떻게 개선하는게 최선인지 분석해주면 좋겠어. 알겠습니다. 지금부터 ConnectAI 프로젝트에만 완전히 집중하겠습니다. ...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0012-질문이-있어-논문을-쓰려고해-논문-주제는-서비스적이-아닌-사용자가-ai에게-구조로-질문을-해야-사용자의-의도.md": {
"mtimeMs": 1778762677000,
"size": 2354,
"lines": 16,
"role": "Bug: 질문이 있어. 논문을 쓰려고해. 논문 주제는 서비스적이 아닌 사용자가 ai에게 구조로 질문을 해야 사용자의 의도에 맞는 답변을 받을 수 있을까야...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0013-thesis-paper를-쓰려고-하는데-아래와-같이-쓰면-좋을까-이런-식으로-쓰면-되지-않을까-싶음-1-in.md": {
"mtimeMs": 1778762677000,
"size": 2527,
"lines": 16,
"role": "Bug: Thesis paper를 쓰려고 하는데 아래와 같이 쓰면 좋을까? 이런 식으로 쓰면 되지 않을까 싶음 1. Introduction Thesis ...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0014-논문-outline-title-인간-ai-상호작용에서-의도-정렬을-높이기-위한-최소-질의-구조-연구-또는-사.md": {
"mtimeMs": 1778762677000,
"size": 2531,
"lines": 16,
"role": "Bug: 논문 Outline Title 인간-AI 상호작용에서 의도 정렬을 높이기 위한 최소 질의 구조 연구 또는 사용자의 인지적 편향을 보완하는 구조화...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0015-짚어둘-관찰-사항-참고용-face-api-js-환경-face-api-js는-원래-브라우저용입니다-node-단.md": {
"mtimeMs": 1781006628000,
"size": 2482,
"lines": 16,
"role": "Bug: 짚어둘 관찰 사항 (참고용) face-api.js 환경: face-api.js는 원래 브라우저용입니다. Node 단독 실행 시 @tensorfl...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0016-미안-나는-아스트라-너한테-autonomous-workflow는-필요-없어-이메일을-써줘라고-할-수는-있지만.md": {
"mtimeMs": 1781260027000,
"size": 1708,
"lines": 16,
"role": "Bug: 미안 나는 아스트라, 너한테 autonomous workflow는 필요 없어. 이메일을 써줘라고 할 수는 있지만 이메일을 보내는 것는 내가 될꺼...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0017-이-이메일을-읽어줘-지금까지-이메일-내용-모두-포함되어-있어-이제-회신을-해야하는데-어떠한-부분을-회신해야하.md": {
"mtimeMs": 1781260027000,
"size": 2053,
"lines": 16,
"role": "Bug: 이 이메일을 읽어줘. 지금까지 이메일 내용 모두 포함되어 있어. 이제 회신을 해야하는데 어떠한 부분을 회신해야하는지와, 너가 회신에 맞게 이메일...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0018-이-이메일을-봤을때-지금-어떠한-상태이고-우리가-취해야하는-행동은-뭐가-있을까-hi-jason-nice-to.md": {
"mtimeMs": 1781260027000,
"size": 2103,
"lines": 16,
"role": "Bug: 이 이메일을 봤을때 지금 어떠한 상태이고 우리가 취해야하는 행동은 뭐가 있을까? Hi Jason, Nice to e-meet you and no...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0019-너가-작성한-회의록에-대한-나의-평가는-아래와-같아-평가부터-하면-생성-품질은-생각보다-괜찮은-편-70-80.md": {
"mtimeMs": 1781260027000,
"size": 2529,
"lines": 16,
"role": "Bug: 너가 작성한 회의록에 대한 나의 평가는 아래와 같아. 평가부터 하면, 생성 품질은 생각보다 괜찮은 편(70~80점 수준) 입니다. 특히 ...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0020-이번-회의록을-참고해서-이전-회의록과-비교했을때-많은-부분이-개선된-것이-확인이-되었어-그렇지만-아래와-같이.md": {
"mtimeMs": 1781260027000,
"size": 2625,
"lines": 16,
"role": "Bug: 이번 회의록을 참고해서 이전 회의록과 비교했을때 많은 부분이 개선된 것이 확인이 되었어. 그렇지만 아래와 같이 지금 만든 회의록에 대한 피드백을...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0021-이번-결과는-이전-두-번보다-확실히-개선되었습니다-점수로-보면-1차-회의록-83점-2차-회의록-88-90점-.md": {
"mtimeMs": 1781260027000,
"size": 2579,
"lines": 16,
"role": "Bug: 이번 결과는 이전 두 번보다 확실히 개선되었습니다. 점수로 보면: 1차 회의록: 83점 2차 회의록: 88~90점 이번 회의록...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0022-내일-별-보고가-있어-이번주-작업과-차주-작업-관련해서-pm팀-업무-보고를-해야하는데-간단하고-간결하게-주요.md": {
"mtimeMs": 1781260027000,
"size": 2605,
"lines": 16,
"role": "Bug: 내일 별 보고가 있어. 이번주 작업과 차주 작업 관련해서 pm팀 업무 보고를 해야하는데 간단하고 간결하게 주요 이슈 사항들을 보고 할 수 있게 ...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0023-지금-스크립트-봤는데-아래와-같은-피드백을-줄께-너의-성장에-도움이-될만한것들은-성장요소로-쓰면-좋겠어-전체.md": {
"mtimeMs": 1781260027000,
"size": 2715,
"lines": 16,
"role": "Bug: 지금 스크립트 봤는데 아래와 같은 피드백을 줄께. 너의 성장에 도움이 될만한것들은 성장요소로 쓰면 좋겠어. 전체적으로는 괜찮아요. 특히 PM 보...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0024-이메일-하나-작성해줘-점검-시나리오-2026-6-18-메타버스-사유-메타버스-라이브-서버-스펙-다운-다만-스.md": {
"mtimeMs": 1781260027000,
"size": 2577,
"lines": 16,
"role": "Bug: 이메일 하나 작성해줘. 점검 시나리오 : 2026-6-18 메타버스 사유 : 메타버스 라이브 서버 스펙 다운 다만 스펙 다운이라고 패치 노트를 ...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0025-아-문제는-이메일-받는-사람이-점검이-있을것이라는-것을-몰라-그래서-점검을-진행하려한다고-정중히.md": {
"mtimeMs": 1781260027000,
"size": 1679,
"lines": 16,
"role": "Bug: 아 문제는 이메일 받는 사람이 점검이 있을것이라는 것을 몰라. 그래서 점검을 진행하려한다고 정중히",
"imports": []
},
"docs/records/ConnectAI/chronicle.config.json": {
"mtimeMs": 1781274087000,
"size": 416,
"lines": 11,
"role": "JSON configuration",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0001-volumes-data-project-antigravity-connectai-이-프로젝트를-지금-개발-중에-.md": {
"mtimeMs": 1777860282000,
"size": 1444,
"lines": 19,
"role": "ADR: /Volumes/Data/project/Antigravity/ConnectAI 이 프로젝트를 지금 개발 중에 있어. 코드 리뷰를 하고 잘된점과 ...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0002-지금-너의-제2뇌-지식을-이용해서-아래-프로젝트-평가하고-앞으로-어느부분을-더-집중해서-개선을-하면-좋을지-.md": {
"mtimeMs": 1777869330000,
"size": 1878,
"lines": 19,
"role": "ADR: 지금 너의 제2뇌 지식을 이용해서 아래 프로젝트 평가하고 앞으로 어느부분을 더 집중해서 개선을 하면 좋을지 알려주면 좋겠어. /Volumes/D...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0003-volumes-data-project-antigravity-connectai-이-프로젝트-자체를-나는-자비스.md": {
"mtimeMs": 1777877376000,
"size": 1786,
"lines": 19,
"role": "ADR: /Volumes/Data/project/Antigravity/ConnectAI 이 프로젝트 자체를 나는 자비스와 같은 툴로 만드는 것이 내 목표...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0004-volumes-data-project-antigravity-connectai-이-프로젝트-자체를-나는-자비스.md": {
"mtimeMs": 1777878318000,
"size": 1472,
"lines": 19,
"role": "ADR: /Volumes/Data/project/Antigravity/ConnectAI 이 프로젝트 자체를 나는 자비스와 같은 툴로 만드는 것이 내 목표...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0005-volumes-data-project-antigravity-connectai-이-프로젝트-아키텍처-분석해줘.md": {
"mtimeMs": 1777889802000,
"size": 1512,
"lines": 19,
"role": "ADR: /Volumes/Data/project/Antigravity/ConnectAI 이 프로젝트 아키텍처 분석해줘.",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0006-volumes-data-project-antigravity-connectai-프로젝트에-대해서-너가-사용자-.md": {
"mtimeMs": 1777902312000,
"size": 1604,
"lines": 19,
"role": "ADR: /Volumes/Data/project/Antigravity/ConnectAI 프로젝트에 대해서 너가 사용자 입장에서 평가 해주면 좋겠어.",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0007-volumes-data-project-antigravity-connectai-이거에-기능-개선을-하고-싶어-.md": {
"mtimeMs": 1778398958000,
"size": 1925,
"lines": 19,
"role": "ADR: /Volumes/Data/project/Antigravity/ConnectAI 이거에 기능 개선을 하고 싶어. 너가 기획과 방향성을 정해주면 좋...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0008-volumes-data-project-antigravity-connectai-분석하고-부족한-부분이나-개선이.md": {
"mtimeMs": 1778600479000,
"size": 1606,
"lines": 19,
"role": "ADR: /Volumes/Data/project/Antigravity/ConnectAI 분석하고 부족한 부분이나 개선이 필요한 부분을 알려주면 좋겠어.",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0009-이-프로젝트의-구조에-대해서-설명해봐.md": {
"mtimeMs": 1778678639000,
"size": 1507,
"lines": 19,
"role": "ADR: 이 프로젝트의 구조에 대해서 설명해봐.",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0010-volumes-data-project-antigravity-connectai-self-reflection-기.md": {
"mtimeMs": 1778689955000,
"size": 1468,
"lines": 19,
"role": "ADR: /Volumes/Data/project/Antigravity/ConnectAI self reflection 기능이 적용되었는지 확인해줘. 1인 ...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0011-e-wiki-connectai-self-reflection-기능이-있는데-어떻게-self-reflection.md": {
"mtimeMs": 1778762677000,
"size": 1604,
"lines": 19,
"role": "ADR: E:\\Wiki\\connectai self reflection 기능이 있는데 어떻게 SELF REFLECTION이 반영되는지 분석해줘.",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0012-e-wiki-connectai-self-reflection-기능이-있는데-어떻게-self-reflection.md": {
"mtimeMs": 1778762677000,
"size": 1448,
"lines": 19,
"role": "ADR: E:\\Wiki\\connectai self reflection 기능이 있는데 어떻게 SELF REFLECTION이 반영되는지 분석해줘.",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0013-e-wiki-connectai-이-프로젝트야.md": {
"mtimeMs": 1778902489000,
"size": 1370,
"lines": 19,
"role": "ADR: E:\\Wiki\\connectai 이 프로젝트야",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0014-astra-office-부분-관련해서-개선할-부분이-너무-많아-개선점이-무었이-있는지-의견-주면-좋겠어.md": {
"mtimeMs": 1778902489000,
"size": 1560,
"lines": 19,
"role": "ADR: ASTRA OFFICE 부분 관련해서 개선할 부분이 너무 많아. 개선점이 무었이 있는지 의견 주면 좋겠어.",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0015-너의-생각은-사용자가-다음-행동을-추측-안-해도-되는-astra-이게-가장-큰-효과-있을-거-같습니다-3개-.md": {
"mtimeMs": 1778943211000,
"size": 2482,
"lines": 19,
"role": "ADR: 너의 생각은? \"사용자가 다음 행동을 추측 안 해도 되는 Astra\" 이게 가장 큰 효과 있을 거 같습니다. 3개 작업으로 묶어볼 수 있어요: ...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0016-내가-블로그글-작성시-사용하고-있는-지침서인데-slot1번-기준으로-더-자연스럽고-트랜디하고-구독자에게-자연.md": {
"mtimeMs": 1779029444000,
"size": 2432,
"lines": 19,
"role": "ADR: 내가 블로그글 작성시 사용하고 있는 지침서인데 slot1번 기준으로 더 자연스럽고 트랜디하고 구독자에게 자연스럽게 정보를 전달 할 수 있게 개선...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0017-e-wiki-connectai-질문이-있어-지금-이-프로젝트는-2nd-지식을-내가-특정-폴더로-wiki화한-.md": {
"mtimeMs": 1779492050000,
"size": 1823,
"lines": 19,
"role": "ADR: E:\\Wiki\\connectai 질문이 있어. 지금 이 프로젝트는 2nd 지식을 내가 특정 폴더로 wiki화한 md 파일들을 불러오는 방식으로 ...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0018-방금-2nd-뇌-에-lateral-thinking-관련-지식을-추가했어-이-기능이-앞으로-너가-답을-할때-어.md": {
"mtimeMs": 1779492050000,
"size": 1619,
"lines": 19,
"role": "ADR: 방금 2nd 뇌 에 Lateral Thinking 관련 지식을 추가했어. 이 기능이 앞으로 너가 답을 할때 어떠한 영향을 끼치는지 알려주면 좋겠...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0019-오늘-팀별-보고를-했어-그냥-하는게-너무-심적으로-힘든데-어떻게-개선할-수-있을까.md": {
"mtimeMs": 1779492050000,
"size": 1642,
"lines": 19,
"role": "ADR: 오늘 팀별 보고를 했어. 그냥 하는게 너무 심적으로 힘든데 어떻게 개선할 수 있을까?",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0020-a팀장이-있어-팀원으로-b가-있고-c가-있어-a팀장은-0라는-이사의-제안을-받아서-다른-회사로-가기로-했어-.md": {
"mtimeMs": 1779492050000,
"size": 2341,
"lines": 19,
"role": "ADR: A팀장이 있어. 팀원으로 B가 있고 C가 있어. A팀장은 0라는 이사의 제안을 받아서 다른 회사로 가기로 했어. 이 소문이 퍼져서 B와 C도 알...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0021-a팀장이-있어-팀원으로-b가-있고-c가-있어-a팀장은-0라는-이사의-제안을-받아서-다른-회사로-가기로-했어-.md": {
"mtimeMs": 1779492050000,
"size": 2333,
"lines": 19,
"role": "ADR: A팀장이 있어. 팀원으로 B가 있고 C가 있어. A팀장은 0라는 이사의 제안을 받아서 다른 회사로 가기로 했어. 이 소문이 퍼져서 B와 C도 알...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0022-a팀장이-있어-팀원으로-b가-있고-c가-있어-a팀장은-0라는-이사의-제안을-받아서-다른-회사로-가기로-했어-.md": {
"mtimeMs": 1779492050000,
"size": 2353,
"lines": 19,
"role": "ADR: A팀장이 있어. 팀원으로 B가 있고 C가 있어. A팀장은 0라는 이사의 제안을 받아서 다른 회사로 가기로 했어. 이 소문이 퍼져서 B와 C도 알...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0023-메일-다듬어줘-안녕하세요-문의-주신-poc-진행-관련하여-아래와-같이-회신드립니다-현재-내부-검토-결과-락인.md": {
"mtimeMs": 1779492050000,
"size": 2164,
"lines": 19,
"role": "ADR: 메일 다듬어줘. 안녕하세요. 문의 주신 POC 진행 관련하여 아래와 같이 회신드립니다. 현재 내부 검토 결과, 락인컴퍼니의 LIAPP 및 LIS...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0024-volumes-data-project-antigravity-connectai-코드-리뷰하고-사용자-입장에서-.md": {
"mtimeMs": 1779515288000,
"size": 1188,
"lines": 19,
"role": "ADR: /Volumes/Data/project/Antigravity/ConnectAI 코드 리뷰하고 사용자 입장에서 개선이 필요한 부분이 있는지, 제안...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0025-e-wiki-connectai-프로젝트에-대한-너의-평가-해줘.md": {
"mtimeMs": 1781006628000,
"size": 1472,
"lines": 19,
"role": "ADR: E:\\Wiki\\connectai 프로젝트에 대한 너의 평가 해줘.",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0026-질문이-있어-내가-당근이라는-중고-거래-사이트에서-8tb-hdd를-구매했어-안전거래-escrow-를-사용했어.md": {
"mtimeMs": 1781006628000,
"size": 2483,
"lines": 19,
"role": "ADR: 질문이 있어, 내가 당근이라는 중고 거래 사이트에서 8TB HDD를 구매했어. 안전거래 (Escrow)를 사용했어. 일단 물건을 어제 받았고, ...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0027-connectai-프로젝트의-아스트라-대부분-답을-잘-줘-근대-간혹-오타가-발생하거나-상황에-맞지-않는-단어.md": {
"mtimeMs": 1781006628000,
"size": 1749,
"lines": 19,
"role": "ADR: connectAI 프로젝트의 아스트라 대부분 답을 잘 줘. 근대 간혹 오타가 발생하거나 상황에 맞지 않는 단어를 간혹 사용해서 혼선을 줄때가 있...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0028-질문이-있어-내가-당근이라는-중고-거래-사이트에서-8tb-hdd를-구매했어-안전거래-escrow-를-사용했어.md": {
"mtimeMs": 1781006628000,
"size": 2481,
"lines": 19,
"role": "ADR: 질문이 있어, 내가 당근이라는 중고 거래 사이트에서 8TB HDD를 구매했어. 안전거래 (Escrow)를 사용했어. 일단 물건을 어제 받았고, ...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0029-여전히-오타가-있어-그러고-어색한-답변도-있네-오타-및-문맥-수정-사항-s-m-a-t-s-m-a-r-t-하드.md": {
"mtimeMs": 1781006628000,
"size": 2211,
"lines": 19,
"role": "ADR: 여전히 오타가 있어. 그러고 어색한 답변도 있네. 오타 및 문맥 수정 사항 S.M.A.T -> S.M.A.R.T: 하드디스크의 자가 진단 기능을...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0030-outlook에서도-이메일-내용을-가져올-수-있나.md": {
"mtimeMs": 1781006628000,
"size": 1444,
"lines": 19,
"role": "ADR: outlook에서도 이메일 내용을 가져올 수 있나?",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0031-아래-프로젝트의-로직을-분석하고-어떻게-하면-astra가-더-정확하고-정교하게-개선할-수-있는-부분이-있는지.md": {
"mtimeMs": 1781006628000,
"size": 1660,
"lines": 19,
"role": "ADR: 아래 프로젝트의 로직을 분석하고 어떻게 하면 astra가 더 정확하고, 정교하게 개선할 수 있는 부분이 있는지 검토해주고 의견을 주면 좋겠어. ...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0032-아래-프로젝트의-로직을-분석하고-어떻게-하면-astra가-더-정확하고-정교하게-개선할-수-있는-부분이-있는지.md": {
"mtimeMs": 1781006628000,
"size": 1660,
"lines": 19,
"role": "ADR: 아래 프로젝트의 로직을 분석하고 어떻게 하면 astra가 더 정확하고, 정교하게 개선할 수 있는 부분이 있는지 검토해주고 의견을 주면 좋겠어. ...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0033-e-wiki-connectai-지금-코드-개선-중인데-분석해주면-좋겠어-지금-너의-기능에서-어떠한-부분이-더.md": {
"mtimeMs": 1781260027000,
"size": 1791,
"lines": 19,
"role": "ADR: E:\\Wiki\\connectai 지금 코드 개선 중인데 분석해주면 좋겠어. 지금 너의 기능에서 어떠한 부분이 더 개선이 되고 있는지. 어떠한 효...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0034-지금-1차-개발이-완료되었거든-다시-새롭게-분석해줘.md": {
"mtimeMs": 1781260027000,
"size": 1470,
"lines": 19,
"role": "ADR: 지금 1차 개발이 완료되었거든. 다시 새롭게 분석해줘.",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0035-너는-스스로-생각하고-결과물에-대한-평가를-하고-개선-할-수-잇는-방법을-찾기-위해-노력하는-기능이-있어.md": {
"mtimeMs": 1781260027000,
"size": 1660,
"lines": 19,
"role": "ADR: 너는 스스로 생각하고 결과물에 대한 평가를 하고 개선 할 수 잇는 방법을 찾기 위해 노력하는 기능이 있어?",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0036-vibe-coding으로-e-wiki-connectai-프로젝트를-만들었어-이-프로젝트가-앞으로-나아갈-방향.md": {
"mtimeMs": 1781260027000,
"size": 1801,
"lines": 19,
"role": "ADR: vibe coding으로 E:\\Wiki\\connectai 프로젝트를 만들었어. 이 프로젝트가 앞으로 나아갈 방향과, 어떠한 부분이 weak po...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0037-이런-기준으로-다시-내-의도를-파악하고-앞으로의-astra가-성장해야할-부분을-다시-분석해줘.md": {
"mtimeMs": 1781260027000,
"size": 1584,
"lines": 19,
"role": "ADR: 이런 기준으로 다시 내 의도를 파악하고 앞으로의 astra가 성장해야할 부분을 다시 분석해줘.",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0038-아닐텐데-astra-너-자신은-자아-성찰적-학습-기능은-실제로-존재하고-작동-중인데-astra가-자기-자신의.md": {
"mtimeMs": 1781260027000,
"size": 1745,
"lines": 19,
"role": "ADR: 아닐텐데, astra 너 자신은 자아 성찰적 학습 기능은 실제로 존재하고 작동 중인데, ASTRA가 \"자기 자신의 구조\"를 몰라서 일반 LLM ...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0039-너가-astra야-왜-남처럼-이야기-하지.md": {
"mtimeMs": 1781260027000,
"size": 1458,
"lines": 19,
"role": "ADR: 너가 ASTRA야 왜 남처럼 이야기 하지?",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0040-스크립트로-써달라했자나.md": {
"mtimeMs": 1781260027000,
"size": 1516,
"lines": 19,
"role": "ADR: 스크립트로 써달라했자나",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0041-좋아-다음에-업무-스크립트-써달라고했을때-이-규칙을-사용해줘.md": {
"mtimeMs": 1781260027000,
"size": 1591,
"lines": 19,
"role": "ADR: 좋아. 다음에 업무 스크립트 써달라고했을때 이 규칙을 사용해줘~",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0042-어-지금-다시-보면-3dism-계정관련해서는-6-11-롯데-이노베이트-미팅을-통해-칼리버스-전용-계정-생성을.md": {
"mtimeMs": 1781260027000,
"size": 1935,
"lines": 19,
"role": "ADR: 어 지금 다시 보면 3Dism 계정관련해서는 6/11 롯데 이노베이트 미팅을 통해 칼리버스 전용 계정 생성을 마쳤습니다. 라고 했는데 마쳤다고 ...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0043-지금-같은-질문에는-아래와-같은-답변은-불필요한거-같아-다가오는-주요-일정-메타버스-라이브-서버-스펙-다운-.md": {
"mtimeMs": 1781260027000,
"size": 1908,
"lines": 19,
"role": "ADR: 지금 같은 질문에는 아래와 같은 답변은 불필요한거 같아. [다가오는 주요 일정] 메타버스 라이브 서버 스펙 다운/인스턴스 삭제 작업 (D-7) ...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0044-어-캘린더로-보면-6월-12일-날짜로-등록된-테스크가-4개가-있는데-예정된-주요-일정은-없습니다가-맞아.md": {
"mtimeMs": 1781260027000,
"size": 1698,
"lines": 19,
"role": "ADR: 어 캘린더로 보면 6월 12일 날짜로 등록된 테스크가 4개가 있는데 예정된 주요 일정은 없습니다가 맞아?",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0045-여전히-6월-12일-업무-목록이-없다고-답하네.md": {
"mtimeMs": 1781260027000,
"size": 1562,
"lines": 19,
"role": "ADR: 여전히 6월 12일 업무 목록이 없다고 답하네?",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0046-self-evolving-기능이-있는데-이-기능을-어떻게-하면-더-날카롭게-할-수-있을까.md": {
"mtimeMs": 1781260027000,
"size": 1522,
"lines": 19,
"role": "ADR: self evolving 기능이 있는데 이 기능을 어떻게 하면 더 날카롭게 할 수 있을까?",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0047-아스트라를-성장하고-self-envolving을-더-고도화-하기-위해서-어떠한-로직을-추가로-개발하면-좋을지.md": {
"mtimeMs": 1781260027000,
"size": 1642,
"lines": 19,
"role": "ADR: 아스트라를 성장하고 self-envolving을 더 고도화 하기 위해서 어떠한 로직을 추가로 개발하면 좋을지 의견있어?",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0048-e-wiki-connectai-의-기능-중-astra의-업무-능력이나-지식-self-envolving-혹은-.md": {
"mtimeMs": 1781260027000,
"size": 1665,
"lines": 19,
"role": "ADR: E:\\Wiki\\connectai 의 기능 중 astra의 업무 능력이나 지식 self-envolving 혹은 대화 방법이라거나 답변 관련하여 개...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0049-koritips-com-블로그에-대한-평가해줘.md": {
"mtimeMs": 1781260027000,
"size": 1468,
"lines": 19,
"role": "ADR: koritips.com 블로그에 대한 평가해줘.",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0050-e-wiki-connectai-의-기능-중-astra의-업무-능력이나-지식-self-envolving-혹은-.md": {
"mtimeMs": 1781260027000,
"size": 1677,
"lines": 19,
"role": "ADR: E:\\Wiki\\connectai 의 기능 중 astra의 업무 능력이나 지식 self-envolving 혹은 대화 방법이라거나 답변 관련하여 개...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0051-e-wiki-connectai-프로젝트에서-아스트라가-답변을-하는-포맷에-대해-분석하고-어떻게-하면-사용자가.md": {
"mtimeMs": 1781260027000,
"size": 1762,
"lines": 19,
"role": "ADR: E:\\Wiki\\connectai 프로젝트에서 아스트라가 답변을 하는 포맷에 대해 분석하고 어떻게 하면 사용자가 더 읽기 편한 포멧으로 작성될 수...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0052-시각적-요소를-늘리는-방향.md": {
"mtimeMs": 1781260027000,
"size": 1472,
"lines": 19,
"role": "ADR: 시각적 요소를 늘리는 방향.",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0053-아니-이런-아이디어로-3개-정도-써달라고.md": {
"mtimeMs": 1781260027000,
"size": 1544,
"lines": 19,
"role": "ADR: 아니 이런 아이디어로 3개 정도 써달라고 ㅎㅎㅎ",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0054-ncsoft-같은-경우-내가-속해-있는-프로젝트에-대한-교육-영상-모회사-영상을-만들어서-보게-하고-내가-속.md": {
"mtimeMs": 1781260027000,
"size": 1914,
"lines": 19,
"role": "ADR: NCSoft 같은 경우, 내가 속해 있는 프로젝트에 대한 교육 영상 + 모회사 영상을 만들어서 보게 하고 내가 속해 있는 프로젝트에 대한 이해도...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0055-재미요소를-조금-더-넣고-상큼하게-해주면-좋을-것-같아.md": {
"mtimeMs": 1781260027000,
"size": 1526,
"lines": 19,
"role": "ADR: 재미요소를 조금 더 넣고, 상큼하게 해주면 좋을 것 같아",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0056-일단-조건을-하나-더-추가할께-계열사는-하고-싶어-하지-않아-우리한테-업무를-주는게-추가-업무로-이어진다고-.md": {
"mtimeMs": 1781260027000,
"size": 1802,
"lines": 19,
"role": "ADR: 일단 조건을 하나 더 추가할께. 계열사는 하고 싶어 하지 않아. 우리한테 업무를 주는게 추가 업무로 이어진다고 생각해. 해서 이걸 뒤집을 정도로...",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-02_answer-format-readability-tuning.md": {
"mtimeMs": 1777808065000,
"size": 1534,
"lines": 30,
"role": "Development Log: Answer Format Readability Tuning",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-02_connectai_project_knowledge_overview.md": {
"mtimeMs": 1777808211000,
"size": 4540,
"lines": 121,
"role": "Astra Project Knowledge Overview",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-02_local-path-code-review-preflight.md": {
"mtimeMs": 1777808065000,
"size": 1855,
"lines": 35,
"role": "Development Log: Local Path Code Review Preflight",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-02_no-evidence-no-project-claim.md": {
"mtimeMs": 1777808065000,
"size": 1528,
"lines": 35,
"role": "Development Log: No Evidence, No Project Claim",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-02_progressive-answer-format.md": {
"mtimeMs": 1777808065000,
"size": 1194,
"lines": 29,
"role": "Development Log: Progressive Answer Format",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-02_project-claim-output-brake.md": {
"mtimeMs": 1777808065000,
"size": 1489,
"lines": 35,
"role": "Development Log: Project Claim Output Brake",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-02_project-claim-policy-enforcement.md": {
"mtimeMs": 1777808065000,
"size": 1516,
"lines": 35,
"role": "Development Log: Project Claim Policy Enforcement",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-02_query-intent-search-tuning.md": {
"mtimeMs": 1777808065000,
"size": 1911,
"lines": 35,
"role": "Development Log: Query Intent Search Tuning",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-02_remove-local-template-replies.md": {
"mtimeMs": 1777808065000,
"size": 1049,
"lines": 25,
"role": "Development Log: Remove Local Template Replies",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-02_second-brain-trace-quality-tuning.md": {
"mtimeMs": 1777808065000,
"size": 1441,
"lines": 26,
"role": "Development Log: Second Brain Trace Quality Tuning",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-03_connectai_project_knowledge_overview.md": {
"mtimeMs": 1777808211000,
"size": 4666,
"lines": 121,
"role": "Astra Project Knowledge Overview",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-05_volumes-data-project-antigravity-connectai-오늘-많은-것을-업데이트했어-많_implementation.md": {
"mtimeMs": 1777986879000,
"size": 1836,
"lines": 22,
"role": "Development Log: /Volumes/Data/project/Antigravity/ConnectAI 오늘 많은 것을 업데이트했어. 많이 고친것 같지만 그럼에도 불구하...",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-05_volumes-data-project-antigravity-connectai-이-프로젝트-분석해줘-volum_implementation.md": {
"mtimeMs": 1777967233000,
"size": 1747,
"lines": 23,
"role": "Development Log: /Volumes/Data/project/Antigravity/ConnectAI 이 프로젝트 분석해줘./Volumes/Data/project/An...",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-05_volumes-data-project-antigravity-connectai-이-프로젝트-분석해줘_implementation.md": {
"mtimeMs": 1777966822000,
"size": 1727,
"lines": 22,
"role": "Development Log: /Volumes/Data/project/Antigravity/ConnectAI 이 프로젝트 분석해줘.",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-12_volumes-data-project-antigravity-connectai-분석하고-부족한-부분이나-개선이_implementation-2.md": {
"mtimeMs": 1778598784000,
"size": 1575,
"lines": 22,
"role": "Development Log: /Volumes/Data/project/Antigravity/ConnectAI 분석하고 부족한 부분이나 개선이 필요한 부분을 알려주면 좋겠어.",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-12_volumes-data-project-antigravity-connectai-분석하고-부족한-부분이나-개선이_implementation-3.md": {
"mtimeMs": 1778599019000,
"size": 1641,
"lines": 22,
"role": "Development Log: /Volumes/Data/project/Antigravity/ConnectAI 분석하고 부족한 부분이나 개선이 필요한 부분을 알려주면 좋겠어.",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-12_volumes-data-project-antigravity-connectai-분석하고-부족한-부분이나-개선이_implementation-4.md": {
"mtimeMs": 1778600781000,
"size": 1715,
"lines": 24,
"role": "Development Log: /Volumes/Data/project/Antigravity/ConnectAI 분석하고 부족한 부분이나 개선이 필요한 부분을 알려주면 좋겠어.",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-12_volumes-data-project-antigravity-connectai-분석하고-부족한-부분이나-개선이_implementation.md": {
"mtimeMs": 1778598509000,
"size": 684,
"lines": 22,
"role": "Development Log: /Volumes/Data/project/Antigravity/ConnectAI 분석하고 부족한 부분이나 개선이 필요한 부분을 알려주면 좋겠어.",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-13_volumes-data-project-antigravity-connectai-이-프로젝트-작업할거야_implementation.md": {
"mtimeMs": 1778691256000,
"size": 990,
"lines": 22,
"role": "Development Log: /Volumes/Data/project/Antigravity/ConnectAI 이 프로젝트 작업할거야",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-13_너는-분석-요청하거나-내가-작업-요청을-할때-connectai-architecture-md-문서를-참고하고-_implementation.md": {
"mtimeMs": 1778678912000,
"size": 1738,
"lines": 22,
"role": "Development Log: 너는 분석 요청하거나 내가 작업 요청을 할때 connectai architecture.md 문서를 참고하고 작업을 하나?",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-14_reflector-에이전트가-1인-기업-에이전트-목록에는-안보이는데_implementation.md": {
"mtimeMs": 1778762677000,
"size": 1519,
"lines": 24,
"role": "Development Log: REFLECTOR 에이전트가 1인 기업 에이전트 목록에는 안보이는데",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-16_astra-google-calendar-oauth-연결_implementation-2.md": {
"mtimeMs": 1778937290000,
"size": 1230,
"lines": 22,
"role": "Development Log: Astra: Google Calendar OAuth 연결",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-16_astra-google-calendar-oauth-연결_implementation.md": {
"mtimeMs": 1778937268000,
"size": 1267,
"lines": 22,
"role": "Development Log: Astra: Google Calendar OAuth 연결",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-16_astra-office가-아직은-많이-부족한것-같은데-어떻게-하면-트랜디하고-재미있는-볼거리가-될-수-있을지_implementation.md": {
"mtimeMs": 1778942937000,
"size": 1750,
"lines": 22,
"role": "Development Log: astra office가 아직은 많이 부족한것 같은데 어떻게 하면 트랜디하고 재미있는 볼거리가 될 수 있을지. 개선점 줄 수 있어?",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-22_e-wiki-connectai-이-프로젝트가-너의-프로젝트인데-단순히-cloud-base-ai-model을-_implementation.md": {
"mtimeMs": 1779492050000,
"size": 1638,
"lines": 22,
"role": "Development Log: E:\\Wiki\\connectai 이 프로젝트가 너의 프로젝트인데, 단순히 cloud base ai model을 사용하는 것과 너를 사용하는 것이...",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-23_volumes-data-project-antigravity-connectai-코드-리뷰를-하고-사용자-입장에_implementation-2.md": {
"mtimeMs": 1779510546000,
"size": 1823,
"lines": 25,
"role": "Development Log: /Volumes/Data/project/Antigravity/ConnectAI 코드 리뷰를 하고 사용자 입장에서 개선이 필요한 부분이 있는지 확...",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-23_volumes-data-project-antigravity-connectai-코드-리뷰를-하고-사용자-입장에_implementation.md": {
"mtimeMs": 1779510462000,
"size": 823,
"lines": 22,
"role": "Development Log: /Volumes/Data/project/Antigravity/ConnectAI 코드 리뷰를 하고 사용자 입장에서 개선이 필요한 부분이 있는지 확...",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-23_volumes-data-project-antigravity-connectai-코드-리뷰를-해줘-그리고-어떻게_implementation.md": {
"mtimeMs": 1779508381000,
"size": 854,
"lines": 22,
"role": "Development Log: /Volumes/Data/project/Antigravity/ConnectAI 코드 리뷰를 해줘 그리고 어떻게 하면 더 유저 친화적으로 너를 개...",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-23_volumes-data-project-antigravity-connectai-코드-리뷰하고-사용자-입장에서-_implementation-2.md": {
"mtimeMs": 1779512574000,
"size": 1836,
"lines": 26,
"role": "Development Log: /Volumes/Data/project/Antigravity/ConnectAI 코드 리뷰하고 사용자 입장에서 개선이 필요한 부분이 있는지, 제안...",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-23_volumes-data-project-antigravity-connectai-코드-리뷰하고-사용자-입장에서-_implementation-3.md": {
"mtimeMs": 1779514787000,
"size": 851,
"lines": 22,
"role": "Development Log: /Volumes/Data/project/Antigravity/ConnectAI 코드 리뷰하고 사용자 입장에서 개선이 필요한 부분이 있는지, 제안...",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-23_volumes-data-project-antigravity-connectai-코드-리뷰하고-사용자-입장에서-_implementation-4.md": {
"mtimeMs": 1779514895000,
"size": 1786,
"lines": 23,
"role": "Development Log: /Volumes/Data/project/Antigravity/ConnectAI 코드 리뷰하고 사용자 입장에서 개선이 필요한 부분이 있는지, 제안...",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-23_volumes-data-project-antigravity-connectai-코드-리뷰하고-사용자-입장에서-_implementation-5.md": {
"mtimeMs": 1779514975000,
"size": 1334,
"lines": 22,
"role": "Development Log: /Volumes/Data/project/Antigravity/ConnectAI 코드 리뷰하고 사용자 입장에서 개선이 필요한 부분이 있는지, 제안...",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-23_volumes-data-project-antigravity-connectai-코드-리뷰하고-사용자-입장에서-_implementation.md": {
"mtimeMs": 1779511474000,
"size": 851,
"lines": 22,
"role": "Development Log: /Volumes/Data/project/Antigravity/ConnectAI 코드 리뷰하고 사용자 입장에서 개선이 필요한 부분이 있는지, 제안...",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-29_e-wiki-connectai-프로젝트에-대해서-이야기-하는거야_implementation.md": {
"mtimeMs": 1781006628000,
"size": 1611,
"lines": 28,
"role": "Development Log: E:\\Wiki\\connectai 프로젝트에 대해서 이야기 하는거야.",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-29_아스트라를-지금-보다-더-날카롭고-신뢰감이-높은-아이-그리고-나의-의도를-잘-파악하게-하기-위해서는-어떤부분_implementation.md": {
"mtimeMs": 1781006628000,
"size": 1670,
"lines": 22,
"role": "Development Log: 아스트라를 지금 보다 더 날카롭고 신뢰감이 높은 아이 그리고 나의 의도를 잘 파악하게 하기 위해서는 어떤부분을 강화하는게 좋을까?",
"imports": []
},
"docs/records/ConnectAI/development/2026-06-08_아니-지금-코드-업데이트를-했거든-다시-코드를-검토하고-의견을-줘_implementation.md": {
"mtimeMs": 1781006628000,
"size": 1413,
"lines": 23,
"role": "Development Log: 아니 지금 코드 업데이트를 했거든. 다시 코드를 검토하고 의견을 줘.",
"imports": []
},
"docs/records/ConnectAI/development/2026-06-11_6월-12일-업무-목록-알려줘_implementation.md": {
"mtimeMs": 1781260027000,
"size": 1713,
"lines": 22,
"role": "Development Log: 6월 12일 업무 목록 알려줘",
"imports": []
},
"docs/records/ConnectAI/development/2026-06-11_너는-스스로-너-자신이-성장할-수-있는-기능이-있어_implementation.md": {
"mtimeMs": 1781260027000,
"size": 1627,
"lines": 22,
"role": "Development Log: 너는 스스로 너 자신이 성장할 수 있는 기능이 있어?",
"imports": []
},
"docs/records/ConnectAI/development/2026-06-11_아-내용을-잘못-줬어-작업-시간은-약-4시간-정도-예상-11시에-시작해서-15시까지-로-시간을-다시-조정해주_implementation.md": {
"mtimeMs": 1781260027000,
"size": 1734,
"lines": 22,
"role": "Development Log: 아 내용을 잘못 줬어. 작업 시간은 약 4시간 정도 예상 11시에 시작해서 15시까지. 로 시간을 다시 조정해주고 점검 예상 시간 관련해서 정정...",
"imports": []
},
"docs/records/ConnectAI/development/2026-06-11_아니-너의-답변-방식을-좀-더-개선하면-좋을-것-같아-나의-질문은-오늘-즉-6월-11일-업무-브리핑해줘는-6_implementation.md": {
"mtimeMs": 1781260027000,
"size": 1850,
"lines": 22,
"role": "Development Log: 아니 너의 답변 방식을 좀 더 개선하면 좋을 것 같아. 나의 질문은 오늘 즉 6월 11일 업무 브리핑해줘는. 6월 11일 날짜에 캘린더에 등록된...",
"imports": []
},
"docs/records/ConnectAI/development/2026-06-11_아니-오늘날짜로-브리핑해달-라고-헀자나-그러면-6월-11일-업무-목록을-알려줘야지_implementation.md": {
"mtimeMs": 1781260027000,
"size": 1758,
"lines": 22,
"role": "Development Log: 아니 오늘날짜로 브리핑해달ㄹ라고 헀자나. 그러면 6월 11일 업무 목록을 알려줘야지.",
"imports": []
},
"docs/records/ConnectAI/development/2026-06-11_앞으로는-내-의도를-잘-파악해주면-좋겠어_implementation.md": {
"mtimeMs": 1781260027000,
"size": 1772,
"lines": 22,
"role": "Development Log: 앞으로는 내 의도를 잘 파악해주면 좋겠어.",
"imports": []
},
"docs/records/ConnectAI/development/2026-06-11_오늘-날짜-업무-알려줘_implementation.md": {
"mtimeMs": 1781260027000,
"size": 1320,
"lines": 22,
"role": "Development Log: 오늘 날짜 업무 알려줘.",
"imports": []
},
"docs/records/ConnectAI/development/2026-06-11_오늘-업무-목록-줘_implementation.md": {
"mtimeMs": 1781260027000,
"size": 1506,
"lines": 22,
"role": "Development Log: 오늘 업무 목록 줘.",
"imports": []
},
"docs/records/ConnectAI/development/2026-06-11_캘린더를-보면-오늘-날짜로-2개-테스크가-있는데-롯데-자이언츠-이머시브-현황-확인과-즐겨찾기-ui-수정이-있_implementation.md": {
"mtimeMs": 1781260027000,
"size": 1804,
"lines": 22,
"role": "Development Log: 캘린더를 보면 오늘 날짜로 2개 테스크가 있는데 ? 롯데 자이언츠 이머시브 현황 확인과 즐겨찾기 UI 수정이 있자나.",
"imports": []
},
"docs/records/ConnectAI/development/2026-06-11_캘린더를-읽고-정확한-내용을-줘_implementation.md": {
"mtimeMs": 1781260027000,
"size": 1593,
"lines": 22,
"role": "Development Log: 캘린더를 읽고 정확한 내용을 줘.",
"imports": []
},
"docs/records/ConnectAI/development/2026-06-11_캘린더에서-오늘날짜-기준으로-할일-브리핑해줘-간단하게_implementation.md": {
"mtimeMs": 1781260027000,
"size": 1080,
"lines": 22,
"role": "Development Log: 캘린더에서 오늘날짜 기준으로 할일 브리핑해줘. 간단하게",
"imports": []
},
"docs/records/ConnectAI/development/2026-06-12_3가지를-줬는데-너무-보편적인것만-있어-이런-아이디어가-있으면-좋겠어-한국법에서-회사에서-1년에-1번인가-2_implementation.md": {
"mtimeMs": 1781260027000,
"size": 1744,
"lines": 22,
"role": "Development Log: 3가지를 줬는데 너무 보편적인것만 있어. 이런 아이디어가 있으면 좋겠어. 한국법에서 회사에서 1년에 1번인가 2번 임직원 컴플라이언스 교육이 있...",
"imports": []
},
"docs/records/ConnectAI/development/2026-06-12_e-wiki-connectai-에서-wikify-사용되는-포멧에-대한-의견-부족한거나-개선이-필요한-부분이-_implementation.md": {
"mtimeMs": 1781260027000,
"size": 1619,
"lines": 22,
"role": "Development Log: E:\\Wiki\\connectai 에서 wikify 사용되는 포멧에 대한 의견. 부족한거나 개선이 필요한 부분이 있는지.",
"imports": []
},
"docs/records/ConnectAI/development/2026-06-12_e-wiki-connectai-의-기능-중-astra의-업무-능력이나-지식-self-envolving-혹은-_implementation.md": {
"mtimeMs": 1781260027000,
"size": 1750,
"lines": 23,
"role": "Development Log: E:\\Wiki\\connectai 의 기능 중 astra의 업무 능력이나 지식 self-envolving 혹은 대화 방법이라거나 답변 관련하여 개...",
"imports": []
},
"docs/records/ConnectAI/development/2026-06-12_아이디어-좋아-지금-포멧으로-써줘-이번건-일단-이것을-우리-모회사의-계열사-대상으로-할-수-있는-아이디어로-_implementation.md": {
"mtimeMs": 1781260027000,
"size": 1825,
"lines": 22,
"role": "Development Log: 아이디어 좋아. 지금 포멧으로 써줘. 이번건. 일단 이것을 우리 모회사의 계열사 대상으로 할 수 있는 아이디어로 주면 어떨까 싶어",
"imports": []
},
"docs/records/ConnectAI/development/2026-06-12_어-블로그-글-쓰기에-대한-블로그-아니야-아마-넌-예전-블로그-내용을-보는데-최근-블로그-초기화-하고-다시-_implementation.md": {
"mtimeMs": 1781260027000,
"size": 1765,
"lines": 22,
"role": "Development Log: 어? 블로그 글 쓰기에 대한 블로그 아니야? 아마 넌 예전 블로그 내용을 보는데? 최근 블로그 초기화 하고 다시 만들었거든",
"imports": []
},
"docs/records/ConnectAI/development/2026-06-12_우리-회사에서-할-수-있는-기술력을-설명할께-우리만-작업해서-할-수-있는-작업-위주로-주면-더-좋지만-안되면_implementation.md": {
"mtimeMs": 1781260027000,
"size": 1834,
"lines": 22,
"role": "Development Log: 우리 회사에서 할 수 있는 기술력을 설명할께. 우리만 작업해서 할 수 있는 작업 위주로 주면 더 좋지만 안되면 우리를 중심으로 외주를 고용하는 ...",
"imports": []
},
"docs/records/ConnectAI/development/2026-06-12_지금까지-너는-나에게-아이디어-핵심-내용-기대-효과-내용으로-써줬는데-법정-의무-교육은-다른-포멧으로-줬어-_implementation.md": {
"mtimeMs": 1781260027000,
"size": 1866,
"lines": 22,
"role": "Development Log: 지금까지 너는 나에게 아이디어, 핵심 내용, 기대 효과 내용으로 써줬는데. 법정 의무 교육은 다른 포멧으로 줬어 기대 효과를 써줘. 법정 의무 ...",
"imports": []
},
"docs/records/ConnectAI/discussions/2026-05-13_volumes-data-project-antigravity-connectai-이-프로젝트-작업-할-거야.md": {
"mtimeMs": 1778690673000,
"size": 652,
"lines": 16,
"role": "Discussion: /Volumes/Data/project/Antigravity/ConnectAI 이 프로젝트 작업 할 거야.",
"imports": []
},
"docs/records/ConnectAI/discussions/2026-05-13_volumes-data-project-antigravity-connectai-이-프로젝트-작업할거야.md": {
"mtimeMs": 1778680095000,
"size": 651,
"lines": 16,
"role": "Discussion: /Volumes/Data/project/Antigravity/ConnectAI 이 프로젝트 작업할거야",
"imports": []
},
"docs/records/ConnectAI/discussions/2026-05-13_volumes-data-project-antigravity-connectai-이-프로젝트-하위-폴더-포함해서.md": {
"mtimeMs": 1778689036000,
"size": 720,
"lines": 16,
"role": "Discussion: /Volumes/Data/project/Antigravity/ConnectAI 이 프로젝트 하위 폴더 포함해서 딥 리서치 해줘. 최적화 할 부분...",
"imports": []
},
"docs/records/ConnectAI/discussions/2026-05-13_volumes-data-project-antigravity-connectai-이-프로젝트를-작업할거야.md": {
"mtimeMs": 1778677791000,
"size": 719,
"lines": 16,
"role": "Discussion: /Volumes/Data/project/Antigravity/ConnectAI 이 프로젝트를 작업할거야.",
"imports": []
},
"docs/records/ConnectAI/discussions/2026-05-14_최성연-알아-칼리버스에서-근무한데.md": {
"mtimeMs": 1778762677000,
"size": 1297,
"lines": 16,
"role": "Discussion: 최성연 알아? 칼리버스에서 근무한데",
"imports": []
},
"docs/records/ConnectAI/discussions/2026-05-22_e-wiki-connectai-git에-커밋하고-푸쉬해줘.md": {
"mtimeMs": 1779492050000,
"size": 745,
"lines": 16,
"role": "Discussion: E:\\Wiki\\connectai git에 커밋하고 푸쉬해줘.",
"imports": []
},
"docs/records/ConnectAI/discussions/2026-05-29_진행해.md": {
"mtimeMs": 1781006628000,
"size": 892,
"lines": 16,
"role": "Discussion: 진행해",
"imports": []
},
"docs/records/ConnectAI/discussions/2026-06-11_duns를-재발급-받아야-하는데-발행시-사용한-이메일을-알-수가-없어-이럴때-어떻게-해야해.md": {
"mtimeMs": 1781260027000,
"size": 1514,
"lines": 16,
"role": "Discussion: DUNS를 재발급 받아야 하는데, 발행시 사용한 이메일을 알 수가 없어. 이럴때 어떻게 해야해?",
"imports": []
},
"docs/records/ConnectAI/discussions/2026-06-11_너는-어떻게-너-스스로의-지식을-쌓고-성장해가는거야.md": {
"mtimeMs": 1781260027000,
"size": 1522,
"lines": 16,
"role": "Discussion: 너는 어떻게 너 스스로의 지식을 쌓고 성장해가는거야?",
"imports": []
},
"docs/records/ConnectAI/discussions/2026-06-12_그니깐-https-koritips-com-홈페이지에-들어가서-홈페이지-분석-후-다시-분석해줘.md": {
"mtimeMs": 1781260027000,
"size": 1476,
"lines": 16,
"role": "Discussion: 그니깐, https://koritips.com 홈페이지에 들어가서 홈페이지 분석 후 다시 분석해줘",
"imports": []
},
"docs/records/ConnectAI/discussions/2026-06-12_우리-개발실은-가우시안-스필리터-그리고-월마트에서-이머시브-스토어-그리고-ai로-영상-사운드-제작팀이-있어-.md": {
"mtimeMs": 1781260027000,
"size": 1747,
"lines": 16,
"role": "Discussion: 우리 개발실은 가우시안 스필리터, 그리고 월마트에서 이머시브 스토어, 그리고 ai로 영상, 사운드 제작팀이 있어. 인원은 30명정도야. 여기에는...",
"imports": []
},
"docs/records/ConnectAI/planning/2026-05-02_project-chronicle-guard.md": {
"mtimeMs": 1777808065000,
"size": 2946,
"lines": 58,
"role": "Feature Plan: Project Chronicle Guard",
"imports": []
},
"docs/records/ConnectAI/planning/2026-05-02_second-brain-trace-mode.md": {
"mtimeMs": 1777808065000,
"size": 1467,
"lines": 36,
"role": "Feature Plan: Second Brain Trace Mode",
"imports": []
},
"docs/records/ConnectAI/planning/2026-05-13_connectai-architecture-문서-최신화-해줘.md": {
"mtimeMs": 1778693933000,
"size": 1340,
"lines": 40,
"role": "Feature Plan: Connectai architecture 문서 최신화 해줘.",
"imports": []
},
"docs/records/ConnectAI/planning/2026-05-13_상세하게-아키텍처-기준으로-설명해줘.md": {
"mtimeMs": 1778678870000,
"size": 1220,
"lines": 40,
"role": "Feature Plan: 상세하게 아키텍처 기준으로 설명해줘.",
"imports": []
},
"docs/records/ConnectAI/planning/2026-05-13_지금-connectai-architecture-md-문서-내용-중-업데이트가-필요한-부분이-있는지-확인해줘-.md": {
"mtimeMs": 1778694061000,
"size": 2970,
"lines": 40,
"role": "Feature Plan: 지금 connectai architecture.md 문서 내용 중 업데이트가 필요한 부분이 있는지 확인해줘. 그러고 최신화해줘. 너가 분석해",
"imports": []
},
"docs/records/ConnectAI/planning/2026-06-11_e-wiki-connectai-프로젝트의-코딩-설계가-잘되어-있는지-유지-보수가-쉽게-되어-있는지-검토해줄-.md": {
"mtimeMs": 1781260027000,
"size": 3506,
"lines": 40,
"role": "Feature Plan: E:\\Wiki\\connectai 프로젝트의 코딩, 설계가 잘되어 있는지, 유지 보수가 쉽게 되어 있는지 검토해줄 수 있어?",
"imports": []
},
"docs/records/ConnectAI/planning/2026-06-12_https-koritips-com-블로그에-대한-조사-내용-평가를-해줘.md": {
"mtimeMs": 1781260027000,
"size": 3418,
"lines": 40,
"role": "Feature Plan: https://koritips.com 블로그에 대한 조사, 내용 평가를 해줘.",
"imports": []
},
"docs/records/ConnectAI/project-profile.md": {
"mtimeMs": 1777808208000,
"size": 957,
"lines": 30,
"role": "Project Profile",
"imports": []
},
"docs/records/ConnectAI/timeline.md": {
"mtimeMs": 1781260027000,
"size": 26139,
"lines": 422,
"role": "Project Timeline",
"imports": []
},
"docs/refactoring_roadmap.md": {
"mtimeMs": 1778171332000,
"size": 3123,
"lines": 53,
"role": "🛠️ ConnectAI 아키텍처 리팩토링 로드맵",
"imports": []
}
}
}