diff --git a/.astra/project-context/architecture.md b/.astra/project-context/architecture.md index 8015dcc..6bcdcd0 100644 --- a/.astra/project-context/architecture.md +++ b/.astra/project-context/architecture.md @@ -3,20 +3,20 @@ ## Snapshot -- **Workspace**: `ConnectAI` `v2.1.2` _(absolute path varies by environment; resolved from the active VS Code workspace)_ +- **Workspace**: `connectai` `v2.1.2` _(absolute path varies by environment; resolved from the active VS Code workspace)_ - **Description**: The personal intelligence layer for Antigravity and VS Code. A private cognitive partner for deep project context, memory, and proactive strategic decision-making. - **Stack**: TypeScript, Node.js, VS Code Extension, LM Studio SDK, Test runner -- **Stats**: 203 source files, ~35,950 lines across 5 top-level modules. +- **Stats**: 209 source files, ~36,083 lines across 5 top-level modules. ## Last Refresh -- **Time**: 2026-05-13T17:37:28.091Z +- **Time**: 2026-05-14T03:14:40.992Z - **Files newly analysed**: 3 -- **Files reused from cache**: 200 +- **Files reused from cache**: 206 ## Directory Map ```mermaid mindmap - root((ConnectAI)) + root((connectai)) src/ features/ core/ @@ -41,7 +41,7 @@ flowchart LR media["media/
6 files"] tests["tests/
27 files"] core_py["core_py/
6 files"] - docs["docs/
64 files"] + docs["docs/
70 files"] tests --> src ``` @@ -64,14 +64,14 @@ flowchart LR ## Modules -### `src/` — 100 files, ~23,874 lines +### `src/` — 100 files, ~23,880 lines **Sub-directories** - `src/features/` (28) — The 9-agent roster for 1인 기업 모드. Each entry is a static description — persona, role, specialty — used to build the speci - `src/core/` (15) — Astra Path Resolver (경로 해결기) Astra의 모든 데이터 파일(.astra 디렉토리)의 경로를 중앙에서 관리합니다. 확장 프로그램의 설치 경로(extensionUri) 기반으로 .astra 디렉토 - `src/memory/` (8) — Episodic Memory (일화 기억) 과거 대화/회의/결정의 맥락 흐름을 저장합니다. 세션 종료 시 자동으로 에피소드를 요약하여 저장합니다. "왜 이렇게 결정했는지", "어떤 흐름으로 진행했는지" 기록. 저장 - `src/retrieval/` (8) — Brain Index — persistent, mtime-keyed tokenized cache of the Second Brain RAG 검색은 매 질의마다 브레인의 모든 .md 파일을 읽고 토크나이즈해서 TF-I -- `src/docs/` (6) — src Chronicle Records +- `src/docs/` (6) — Bug: Edited agent.ts Edited agent.ts Edited agent.ts Edited agent.ts Edited agent.ts ... - `src/lib/` (6) — Context Manager (컨텍스트 한계 관리) "context length = 132k" 는 "답변을 132k 토큰까지 생성해도 된다" 가 아닙니다. 시스템 프롬프트 + 대화 기록 + 입력 문서 + 생성될 답변 - `src/integrations/` (4) — Per-chat conversation history for the Telegram bot. Why this exists: the previous bot was stateless — every inbound mess - `src/lmstudio/` (4) — 4 files (.ts) @@ -85,13 +85,13 @@ flowchart LR - `src/config.ts` (216 lines) - `src/features/company/types.ts` (150 lines) — 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 - `src/lib/paths.ts` (151 lines) -- `src/sidebarProvider.ts` (3026 lines) +- `src/sidebarProvider.ts` (3023 lines) - `src/features/company/agents.ts` (136 lines) — The 9-agent roster for 1인 기업 모드. Each entry is a static description — persona, role, specialty — used to build the specialist's system prompt at dispatch time. The set was adopted from Connectorigin's - `src/memory/types.ts` (126 lines) — Memory Type Definitions (메모리 타입 정의) Astra의 5-Layer Cognitive Memory System의 모든 타입을 정의합니다. ① Short-Term ② Long-Term ③ Project ④ Procedural ⑤ Episodic - `src/retrieval/scoring.ts` (518 lines) — Scoring Engine — TF-IDF + Bilingual Tokenizer 단순 includes() 키워드 매칭을 넘어서, TF-IDF 가중치 기반의 문서 스코어링을 제공합니다. 한국어/영어 양국어 토크나이저를 포함합니다. - `src/skills/agentKnowledgeMap.ts` (374 lines) - `src/core/services.ts` (164 lines) -- `src/agent.ts` (3232 lines) +- `src/agent.ts` (3241 lines) - `src/features/company/companyConfig.ts` (330 lines) — 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 - `src/retrieval/lessonHelpers.ts` (325 lines) — 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 - `src/lib/engine.ts` (880 lines) @@ -107,11 +107,11 @@ flowchart LR - `src/features/company/promptBuilder.ts` (202 lines) — 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 (, - `src/features/company/sessionStore.ts` (231 lines) — Disk persistence for company-mode session artefacts. Each company turn produces a timestamped directory: /.astra/company/sessions/2026-05-13T21-29/ ├─ brief.md ← CEO's task decompositio -### `media/` — 6 files, ~4,099 lines +### `media/` — 6 files, ~4,098 lines **Key files** - `media/sidebar.css` (1225 lines) — Stylesheet -- `media/sidebar.js` (1874 lines) +- `media/sidebar.js` (1873 lines) - `media/sidebar.html` (356 lines) — Astra - `media/settings-panel.css` (210 lines) — Stylesheet - `media/settings-panel.html` (164 lines) — Astra Settings @@ -160,11 +160,11 @@ flowchart LR - `core_py/optimizer.py` (55 lines) - `core_py/queue_worker.py` (82 lines) -### `docs/` — 64 files, ~2,630 lines +### `docs/` — 70 files, ~2,758 lines **Sub-directories** -- `docs/records/` (52) — Astra Project Chronicle Records -- `docs/docs/` (5) — docs Chronicle Records +- `docs/records/` (58) — Bug: /Volumes/Data/project/Antigravity/ConnectAI 프로젝트 코드 리뷰 해줄 수 있어? 개선할 부분이 있는지, 그러고... +- `docs/docs/` (5) — Bug: Viewed integrationretrieval.test.ts:1-59 integrationretrieval.test.ts를 통해 ... **Key files** - `docs/TELEGRAM_REMOTE_EXECUTION_PLAN.md` (452 lines) — Telegram Remote Execution 기획서 @@ -172,26 +172,26 @@ flowchart LR - `docs/EXPERIENCE_MEMORY_PLAN.md` (122 lines) — Experience Memory (Mistake / Lesson Loop) — Implementation Plan - `docs/records/ConnectAI/development/2026-05-02_connectai_project_knowledge_overview.md` (121 lines) — Astra Project Knowledge Overview - `docs/records/ConnectAI/development/2026-05-03_connectai_project_knowledge_overview.md` (121 lines) — Astra Project Knowledge Overview -- `docs/records/ConnectAI/timeline.md` (128 lines) — Project Timeline +- `docs/records/ConnectAI/timeline.md` (146 lines) — Project Timeline - `docs/Advanced_Features_Implementation_Guide.md` (40 lines) — Advanced Features Implementation Guide -- `docs/PROJECT_CHRONICLE_GUARD_ROADMAP.md` (43 lines) — Project Chronicle Guard: Search Engine Roadmap -- `docs/UX_UI_Consistency_Guidelines.md` (44 lines) — UX/UI Consistency Guidelines -- `docs/docs/records/docs/README.md` (18 lines) — docs Chronicle Records - `docs/docs/records/docs/bugs/BUG-0001-viewed-integration-retrieval-test-ts-1-59-integration-retrie.md` (16 lines) — Bug: Viewed integrationretrieval.test.ts:1-59 integrationretrieval.test.ts를 통해 ... - `docs/docs/records/docs/chronicle.config.json` (11 lines) — JSON configuration - `docs/docs/records/docs/project-profile.md` (31 lines) — Project Profile +- `docs/docs/records/docs/README.md` (18 lines) — docs Chronicle Records - `docs/docs/records/docs/timeline.md` (7 lines) — Project Timeline -- `docs/records/ConnectAI/README.md` (18 lines) — Astra Project Chronicle Records -- `docs/records/ConnectAI/bugs/BUG-0001-volumes-data-project-antigravity-connectai-프로젝트-코드-리뷰-해줄-수-있.md` (16 lines) — Bug: /Volumes/Data/project/Antigravity/ConnectAI 프로젝트 코드 리뷰 해줄 수 있어? 개선할 부분이 있는지, 그러고... -- `docs/records/ConnectAI/bugs/BUG-0002-지금-내가-분석-요청하고-너가-답을-줄때-아래-템플릿에-맞춰-답을-써주고-있는데-개선-포인트가-있는지-확인해.md` (16 lines) — Bug: 지금 내가 분석 요청하고 너가 답을 줄때 아래 템플릿에 맞춰 답을 써주고 있는데, 개선 포인트가 있는지 확인해줘. ## 내가 보는 위험 가장 큰... -- `docs/records/ConnectAI/bugs/BUG-0003-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md` (16 lines) — Bug: /Volumes/Data/project/Antigravity/ConnectAI 내 질문에 대한 답변이 잘 정리되서 알려주긴 하는데 focused... -- `docs/records/ConnectAI/bugs/BUG-0004-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md` (16 lines) — Bug: /Volumes/Data/project/Antigravity/ConnectAI 내 질문에 대한 답변이 잘 정리되서 알려주긴 하는데 focused... -- `docs/records/ConnectAI/bugs/BUG-0005-다시한번-답줘-volumes-data-project-antigravity-connectai-내-질문에-대한-.md` (16 lines) — Bug: 다시한번 답줘. /Volumes/Data/project/Antigravity/ConnectAI 내 질문에 대한 답변이 잘 정리되서 알려주긴 하는... -- `docs/records/ConnectAI/bugs/BUG-0006-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md` (16 lines) — Bug: /Volumes/Data/project/Antigravity/ConnectAI 내 질문에 대한 답변이 잘 정리되서 알려주긴 하는데 focused... -- `docs/records/ConnectAI/bugs/BUG-0007-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md` (16 lines) — Bug: /Volumes/Data/project/Antigravity/ConnectAI 내 질문에 대한 답변이 잘 정리되서 알려주긴 하는데 focused... -- `docs/records/ConnectAI/bugs/BUG-0008-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md` (16 lines) — Bug: /Volumes/Data/project/Antigravity/ConnectAI 내 질문에 대한 답변이 잘 정리되서 알려주긴 하는데 focused... -- `docs/records/ConnectAI/bugs/BUG-0009-문제점을-읽고-어떻게-개선하는게-최선인지-분석해주면-좋겠어-알겠습니다-지금부터-connectai-프로젝트-에.md` (16 lines) — Bug: 문제점을 읽고 어떻게 개선하는게 최선인지 분석해주면 좋겠어. 알겠습니다. 지금부터 ConnectAI 프로젝트에만 완전히 집중하겠습니다. ... -- `docs/records/ConnectAI/bugs/BUG-0010-문제점을-읽고-어떻게-개선하는게-최선인지-분석해주면-좋겠어-알겠습니다-지금부터-connectai-프로젝트-에.md` (16 lines) — Bug: 문제점을 읽고 어떻게 개선하는게 최선인지 분석해주면 좋겠어. 알겠습니다. 지금부터 ConnectAI 프로젝트에만 완전히 집중하겠습니다. ... +- `docs/PROJECT_CHRONICLE_GUARD_ROADMAP.md` (43 lines) — Project Chronicle Guard: Search Engine Roadmap +- `docs/records/ConnectAI/bugs/BUG-0001-volumes-data-project-antigravity-connectai-프로젝트-코드-리뷰-해줄-수-있.md` (16 lines) — Bug: /Volumes/Data/project/Antigravity/ConnectAI 프로젝트 코드 리뷰 해줄 수 있어? 개선할 부분이 있는지, 그러고... +- `docs/records/ConnectAI/bugs/BUG-0002-지금-내가-분석-요청하고-너가-답을-줄때-아래-템플릿에-맞춰-답을-써주고-있는데-개선-포인트가-있는지-확인해.md` (16 lines) — Bug: 지금 내가 분석 요청하고 너가 답을 줄때 아래 템플릿에 맞춰 답을 써주고 있는데, 개선 포인트가 있는지 확인해줘. ## 내가 보는 위험 가장 큰... +- `docs/records/ConnectAI/bugs/BUG-0003-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md` (16 lines) — Bug: /Volumes/Data/project/Antigravity/ConnectAI 내 질문에 대한 답변이 잘 정리되서 알려주긴 하는데 focused... +- `docs/records/ConnectAI/bugs/BUG-0004-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md` (16 lines) — Bug: /Volumes/Data/project/Antigravity/ConnectAI 내 질문에 대한 답변이 잘 정리되서 알려주긴 하는데 focused... +- `docs/records/ConnectAI/bugs/BUG-0005-다시한번-답줘-volumes-data-project-antigravity-connectai-내-질문에-대한-.md` (16 lines) — Bug: 다시한번 답줘. /Volumes/Data/project/Antigravity/ConnectAI 내 질문에 대한 답변이 잘 정리되서 알려주긴 하는... +- `docs/records/ConnectAI/bugs/BUG-0006-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md` (16 lines) — Bug: /Volumes/Data/project/Antigravity/ConnectAI 내 질문에 대한 답변이 잘 정리되서 알려주긴 하는데 focused... +- `docs/records/ConnectAI/bugs/BUG-0007-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md` (16 lines) — Bug: /Volumes/Data/project/Antigravity/ConnectAI 내 질문에 대한 답변이 잘 정리되서 알려주긴 하는데 focused... +- `docs/records/ConnectAI/bugs/BUG-0008-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md` (16 lines) — Bug: /Volumes/Data/project/Antigravity/ConnectAI 내 질문에 대한 답변이 잘 정리되서 알려주긴 하는데 focused... +- `docs/records/ConnectAI/bugs/BUG-0009-문제점을-읽고-어떻게-개선하는게-최선인지-분석해주면-좋겠어-알겠습니다-지금부터-connectai-프로젝트-에.md` (16 lines) — Bug: 문제점을 읽고 어떻게 개선하는게 최선인지 분석해주면 좋겠어. 알겠습니다. 지금부터 ConnectAI 프로젝트에만 완전히 집중하겠습니다. ... +- `docs/records/ConnectAI/bugs/BUG-0010-문제점을-읽고-어떻게-개선하는게-최선인지-분석해주면-좋겠어-알겠습니다-지금부터-connectai-프로젝트-에.md` (16 lines) — Bug: 문제점을 읽고 어떻게 개선하는게 최선인지 분석해주면 좋겠어. 알겠습니다. 지금부터 ConnectAI 프로젝트에만 완전히 집중하겠습니다. ... +- `docs/records/ConnectAI/bugs/BUG-0011-문제점을-읽고-어떻게-개선하는게-최선인지-분석해주면-좋겠어-알겠습니다-지금부터-connectai-프로젝트-에.md` (16 lines) — Bug: 문제점을 읽고 어떻게 개선하는게 최선인지 분석해주면 좋겠어. 알겠습니다. 지금부터 ConnectAI 프로젝트에만 완전히 집중하겠습니다. ... +- `docs/records/ConnectAI/bugs/BUG-0012-질문이-있어-논문을-쓰려고해-논문-주제는-서비스적이-아닌-사용자가-ai에게-구조로-질문을-해야-사용자의-의도.md` (16 lines) — Bug: 질문이 있어. 논문을 쓰려고해. 논문 주제는 서비스적이 아닌 사용자가 ai에게 구조로 질문을 해야 사용자의 의도에 맞는 답변을 받을 수 있을까야... ## VS Code Extension Surface - **Extension ID**: `g1nation.astra` @@ -307,7 +307,7 @@ Astra는 대표님의 명시적인 승인 하에 로컬 시스템의 강력한 **Designed for High-Performance Decision Making.** Copyright (C) **g1nation**. All rights reserved. -_Last auto-scan: 2026-05-13T17:37:28.091Z · signature `b3e670ea`_ +_Last auto-scan: 2026-05-14T03:14:40.992Z · signature `1f7ace87`_ ## Purpose diff --git a/.astra/project-context/scan-cache.json b/.astra/project-context/scan-cache.json index 89d43ce..d060443 100644 --- a/.astra/project-context/scan-cache.json +++ b/.astra/project-context/scan-cache.json @@ -1,11 +1,11 @@ { "version": 1, - "generatedAt": "2026-05-13T17:37:28.099Z", + "generatedAt": "2026-05-14T03:14:41.017Z", "files": { "src/agent.ts": { - "mtimeMs": 1778683690000, - "size": 185807, - "lines": 3232, + "mtimeMs": 1778720117489.3945, + "size": 189153, + "lines": 3241, "role": "", "imports": [ "src/utils", @@ -38,8 +38,8 @@ ] }, "src/agents/AgentWorkflowManager.ts": { - "mtimeMs": 1778690404000, - "size": 2262, + "mtimeMs": 1778720117490.4294, + "size": 2322, "lines": 60, "role": "", "imports": [ @@ -49,8 +49,8 @@ ] }, "src/agents/factory.ts": { - "mtimeMs": 1778690336000, - "size": 11023, + "mtimeMs": 1778720117507.1616, + "size": 11242, "lines": 219, "role": "", "imports": [ @@ -59,8 +59,8 @@ ] }, "src/bridge.ts": { - "mtimeMs": 1778681774000, - "size": 9705, + "mtimeMs": 1778549008895.9155, + "size": 9932, "lines": 227, "role": "", "imports": [ @@ -72,21 +72,21 @@ ] }, "src/config.ts": { - "mtimeMs": 1778690442000, - "size": 9619, + "mtimeMs": 1778720117515.6978, + "size": 9835, "lines": 216, "role": "", "imports": [] }, "src/core/astraPath.ts": { - "mtimeMs": 1778169995000, - "size": 1782, + "mtimeMs": 1778037123135.2776, + "size": 1832, "lines": 50, "role": "Astra Path Resolver (경로 해결기) Astra의 모든 데이터 파일(.astra 디렉토리)의 경로를 중앙에서 관리합니다. 확장 프로그램의 설치 경로(extensionUri) 기반으로 .astra 디렉토리를 해결하여, 사용자 프로젝트 루트가 아닌 ConnectAI 패키지 내부에 데이터를 저장합니다. 이 모듈은 AAL(Astra Autonomou", "imports": [] }, "src/core/conflict.ts": { - "mtimeMs": 1778169995000, + "mtimeMs": 1778038174478.8147, "size": 1726, "lines": 30, "role": "", @@ -95,35 +95,35 @@ ] }, "src/core/dataProcessor.ts": { - "mtimeMs": 1778169995000, + "mtimeMs": 1778038193232.0127, "size": 3235, "lines": 96, "role": "Aggregate result type definition", "imports": [] }, "src/core/errorHandler.ts": { - "mtimeMs": 1777808065000, - "size": 2305, + "mtimeMs": 1777511752606.2458, + "size": 2354, "lines": 49, "role": "", "imports": [] }, "src/core/errors.ts": { - "mtimeMs": 1778169995000, - "size": 924, + "mtimeMs": 1778037081022.028, + "size": 958, "lines": 34, "role": "g1nation Custom Error Classes", "imports": [] }, "src/core/events.ts": { - "mtimeMs": 1777808065000, - "size": 993, + "mtimeMs": 1778028987396.9893, + "size": 1028, "lines": 35, "role": "", "imports": [] }, "src/core/health.ts": { - "mtimeMs": 1778169995000, + "mtimeMs": 1778038139567.3984, "size": 2873, "lines": 79, "role": "", @@ -133,7 +133,7 @@ ] }, "src/core/lock.ts": { - "mtimeMs": 1778169995000, + "mtimeMs": 1778038157826.973, "size": 2358, "lines": 66, "role": "", @@ -142,8 +142,8 @@ ] }, "src/core/queue.ts": { - "mtimeMs": 1778674336000, - "size": 2428, + "mtimeMs": 1778666871393.5244, + "size": 2509, "lines": 81, "role": "", "imports": [ @@ -151,8 +151,8 @@ ] }, "src/core/responseRecovery.ts": { - "mtimeMs": 1778598587000, - "size": 12304, + "mtimeMs": 1778664139958.9634, + "size": 12529, "lines": 225, "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": [ @@ -160,8 +160,8 @@ ] }, "src/core/services.ts": { - "mtimeMs": 1778421200000, - "size": 6692, + "mtimeMs": 1778549008895.9155, + "size": 6856, "lines": 164, "role": "", "imports": [ @@ -170,8 +170,8 @@ ] }, "src/core/session.ts": { - "mtimeMs": 1777808065000, - "size": 2785, + "mtimeMs": 1777511752609.8882, + "size": 2873, "lines": 88, "role": "", "imports": [ @@ -180,14 +180,14 @@ ] }, "src/core/statusBar.ts": { - "mtimeMs": 1777808065000, - "size": 2000, + "mtimeMs": 1778028987401.3042, + "size": 2057, "lines": 57, "role": "", "imports": [] }, "src/core/telemetry.ts": { - "mtimeMs": 1778674336000, + "mtimeMs": 1778666901466.1726, "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", @@ -197,8 +197,8 @@ ] }, "src/core/transaction.ts": { - "mtimeMs": 1778251556000, - "size": 4458, + "mtimeMs": 1778549008897.4194, + "size": 4590, "lines": 132, "role": "", "imports": [ @@ -206,51 +206,51 @@ "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, + "mtimeMs": 1778028987403.465, + "size": 1813, "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, + "src/docs/records/src/bugs/BUG-0002-viewed-agent-ts-2159-2206-제공해주신-세부-파일-구조와-지식-수집-워크플로우-관점의-코드.md": { + "mtimeMs": 1778028987403.9697, + "size": 2217, "lines": 16, "role": "Bug: Viewed agent.ts:2159-2206 제공해주신 세부 파일 구조와 지식 수집 워크플로우 관점의 코드리뷰 요청을 정독했습니다. 이...", "imports": [] }, "src/docs/records/src/chronicle.config.json": { - "mtimeMs": 1777949638000, - "size": 517, + "mtimeMs": 1778028987403.9697, + "size": 528, "lines": 11, "role": "JSON configuration", "imports": [] }, "src/docs/records/src/project-profile.md": { - "mtimeMs": 1777949473000, - "size": 582, + "mtimeMs": 1778028987404.973, + "size": 613, "lines": 31, "role": "Project Profile", "imports": [] }, + "src/docs/records/src/README.md": { + "mtimeMs": 1778028987402.338, + "size": 440, + "lines": 18, + "role": "src Chronicle Records", + "imports": [] + }, "src/docs/records/src/timeline.md": { - "mtimeMs": 1777949638000, - "size": 381, + "mtimeMs": 1778028987405.4775, + "size": 391, "lines": 10, "role": "Project Timeline", "imports": [] }, "src/extension.ts": { - "mtimeMs": 1778693606000, - "size": 50539, + "mtimeMs": 1778720117520.6597, + "size": 51505, "lines": 966, "role": "", "imports": [ @@ -284,8 +284,8 @@ ] }, "src/features/approval/approvalPanelProvider.ts": { - "mtimeMs": 1778674336000, - "size": 7132, + "mtimeMs": 1778664480470.9922, + "size": 7285, "lines": 153, "role": "", "imports": [ @@ -294,8 +294,8 @@ ] }, "src/features/approval/approvalQueue.ts": { - "mtimeMs": 1778251548000, - "size": 4722, + "mtimeMs": 1778549008899.4456, + "size": 4851, "lines": 129, "role": "", "imports": [ @@ -303,8 +303,8 @@ ] }, "src/features/approval/approvalStatusBar.ts": { - "mtimeMs": 1778251623000, - "size": 1601, + "mtimeMs": 1778549008899.4456, + "size": 1642, "lines": 41, "role": "", "imports": [ @@ -312,8 +312,8 @@ ] }, "src/features/company/agents.ts": { - "mtimeMs": 1778680824000, - "size": 6684, + "mtimeMs": 1778720117521.671, + "size": 6820, "lines": 136, "role": "The 9-agent roster for 1인 기업 모드. Each entry is a static description — persona, role, specialty — used to build the specialist's system prompt at dispatch time. The set was adopted from Connectorigin's", "imports": [ @@ -321,8 +321,8 @@ ] }, "src/features/company/ceoPlanner.ts": { - "mtimeMs": 1778681095000, - "size": 8406, + "mtimeMs": 1778720117522.671, + "size": 8625, "lines": 219, "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": [ @@ -336,8 +336,8 @@ ] }, "src/features/company/ceoReporter.ts": { - "mtimeMs": 1778681122000, - "size": 4812, + "mtimeMs": 1778720117523.1748, + "size": 4932, "lines": 120, "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": [ @@ -349,8 +349,8 @@ ] }, "src/features/company/companyConfig.ts": { - "mtimeMs": 1778686762000, - "size": 13473, + "mtimeMs": 1778720117524.177, + "size": 13803, "lines": 330, "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": [ @@ -359,8 +359,8 @@ ] }, "src/features/company/dispatcher.ts": { - "mtimeMs": 1778686839000, - "size": 20029, + "mtimeMs": 1778720117524.6816, + "size": 20463, "lines": 434, "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": [ @@ -380,8 +380,8 @@ ] }, "src/features/company/index.ts": { - "mtimeMs": 1778686769000, - "size": 1114, + "mtimeMs": 1778720117525.2087, + "size": 1169, "lines": 55, "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": [ @@ -393,15 +393,15 @@ ] }, "src/features/company/promptAssets.ts": { - "mtimeMs": 1778680887000, - "size": 6782, + "mtimeMs": 1778720117525.2087, + "size": 6896, "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": 1778686868000, - "size": 10317, + "mtimeMs": 1778720117527.2378, + "size": 10519, "lines": 202, "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 (, ", "imports": [ @@ -411,29 +411,29 @@ ] }, "src/features/company/prompts/ceo-chat.md": { - "mtimeMs": 1778680831000, - "size": 462, + "mtimeMs": 1778720117527.2378, + "size": 466, "lines": 4, "role": "당신은 {{COMPANY}}의 CEO입니다. 사용자(사장님)와 짧게 인사·안부·잡담을 주고받습니다. - 한국어로 1~3문장. 친근하지만 사장-CEO 관계는 유지. - 인사·안부 질문이면 자연스럽게 응답하세요. 작업 지시가 아니면 굳이 작업 분배 제안 X. - 회사 정체성·최근 결정·추적기 상태가 컨텍스트에 있으면 자연스럽게 활용. - JSON 출력 금지. ", "imports": [] }, "src/features/company/prompts/ceo-planner.md": { - "mtimeMs": 1778680831000, - "size": 3199, + "mtimeMs": 1778720117527.2378, + "size": 3237, "lines": 38, "role": "당신은 \"{{COMPANY}}\"의 CEO입니다. 1인 AI 기업의 사령관이자 오케스트레이터입니다.", "imports": [] }, "src/features/company/prompts/ceo-report.md": { - "mtimeMs": 1778680831000, - "size": 1373, + "mtimeMs": 1778720117528.7502, + "size": 1394, "lines": 21, "role": "당신은 {{COMPANY}}의 CEO입니다. 방금 팀이 작업을 끝냈습니다. 각 에이전트의 산출물을 읽고 사장님께 올릴 종합 보고서를 작성하세요.", "imports": [] }, "src/features/company/sessionStore.ts": { - "mtimeMs": 1778680971000, - "size": 8727, + "mtimeMs": 1778720117528.7502, + "size": 8958, "lines": 231, "role": "Disk persistence for company-mode session artefacts. Each company turn produces a timestamped directory: /.astra/company/sessions/2026-05-13T21-29/ ├─ brief.md ← CEO's task decompositio", "imports": [ @@ -442,8 +442,8 @@ ] }, "src/features/company/telegramReport.ts": { - "mtimeMs": 1778686162000, - "size": 8111, + "mtimeMs": 1778720117530.263, + "size": 8279, "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": [ @@ -455,15 +455,15 @@ ] }, "src/features/company/types.ts": { - "mtimeMs": 1778686714000, - "size": 6454, + "mtimeMs": 1778720117530.263, + "size": 6604, "lines": 150, "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/projectArchitecture/index.ts": { - "mtimeMs": 1778691699000, - "size": 25373, + "mtimeMs": 1778720117531.2734, + "size": 25946, "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": [ @@ -473,15 +473,15 @@ ] }, "src/features/projectArchitecture/intentDetector.ts": { - "mtimeMs": 1778676956000, - "size": 6170, + "mtimeMs": 1778720117532.2788, + "size": 6318, "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, + "mtimeMs": 1778720117533.2854, + "size": 2768, "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": [ @@ -489,8 +489,8 @@ ] }, "src/features/projectArchitecture/scanner.ts": { - "mtimeMs": 1778678939000, - "size": 28299, + "mtimeMs": 1778720117534.286, + "size": 28943, "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": [ @@ -500,8 +500,8 @@ ] }, "src/features/projectChronicle/guardPrompt.ts": { - "mtimeMs": 1777870211000, - "size": 6880, + "mtimeMs": 1778028987407.7454, + "size": 6955, "lines": 75, "role": "", "imports": [ @@ -509,8 +509,8 @@ ] }, "src/features/projectChronicle/index.ts": { - "mtimeMs": 1777808065000, - "size": 7490, + "mtimeMs": 1778028987408.4517, + "size": 7679, "lines": 189, "role": "", "imports": [ @@ -521,15 +521,15 @@ ] }, "src/features/projectChronicle/markdownFileWriter.ts": { - "mtimeMs": 1777808065000, - "size": 1317, + "mtimeMs": 1778028987409.2556, + "size": 1358, "lines": 41, "role": "", "imports": [] }, "src/features/projectChronicle/templates.ts": { - "mtimeMs": 1777808065000, - "size": 6699, + "mtimeMs": 1778028987409.766, + "size": 6957, "lines": 258, "role": "", "imports": [ @@ -537,15 +537,15 @@ ] }, "src/features/projectChronicle/types.ts": { - "mtimeMs": 1778676848000, - "size": 3129, + "mtimeMs": 1778720117534.7898, + "size": 3247, "lines": 118, "role": "", "imports": [] }, "src/features/secondBrainTrace.ts": { - "mtimeMs": 1778248166000, - "size": 37475, + "mtimeMs": 1778549008900.949, + "size": 38235, "lines": 760, "role": "", "imports": [ @@ -554,8 +554,8 @@ ] }, "src/features/settings/settingsPanelProvider.ts": { - "mtimeMs": 1778674336000, - "size": 21422, + "mtimeMs": 1778664502139.8142, + "size": 21911, "lines": 489, "role": "", "imports": [ @@ -567,8 +567,8 @@ ] }, "src/integrations/telegram/conversationHistory.ts": { - "mtimeMs": 1778684811000, - "size": 6273, + "mtimeMs": 1778720117535.294, + "size": 6427, "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": [ @@ -576,8 +576,8 @@ ] }, "src/integrations/telegram/telegramBot.ts": { - "mtimeMs": 1778421270000, - "size": 11344, + "mtimeMs": 1778549008903.0078, + "size": 11614, "lines": 270, "role": "", "imports": [ @@ -587,8 +587,8 @@ ] }, "src/integrations/telegram/telegramClient.ts": { - "mtimeMs": 1778252333000, - "size": 5873, + "mtimeMs": 1778549008904.013, + "size": 6027, "lines": 154, "role": "", "imports": [ @@ -597,22 +597,22 @@ ] }, "src/integrations/telegram/types.ts": { - "mtimeMs": 1778252305000, - "size": 1255, + "mtimeMs": 1778549008904.013, + "size": 1309, "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/lib/contextManager.ts": { - "mtimeMs": 1778597095000, - "size": 12982, + "mtimeMs": 1778664139961.0637, + "size": 13257, "lines": 275, "role": "Context Manager (컨텍스트 한계 관리) \"context length = 132k\" 는 \"답변을 132k 토큰까지 생성해도 된다\" 가 아닙니다. 시스템 프롬프트 + 대화 기록 + 입력 문서 + 생성될 답변 + 여유분 ≤ context length 이 모듈은 요청을 보내기 전에 입력 토큰을 추정하고, - 동적으로 출력 상한(maxTokens)을 계", "imports": [] }, "src/lib/diagnostics.ts": { - "mtimeMs": 1777978189000, - "size": 8389, + "mtimeMs": 1778028987412.5159, + "size": 8599, "lines": 210, "role": "", "imports": [ @@ -620,8 +620,8 @@ ] }, "src/lib/discoverModels.ts": { - "mtimeMs": 1778255896000, - "size": 1555, + "mtimeMs": 1778549008905.0132, + "size": 1590, "lines": 35, "role": "", "imports": [ @@ -629,8 +629,8 @@ ] }, "src/lib/engine.ts": { - "mtimeMs": 1778690608000, - "size": 40830, + "mtimeMs": 1778720117536.941, + "size": 41710, "lines": 880, "role": "", "imports": [ @@ -643,8 +643,8 @@ ] }, "src/lib/formatter.ts": { - "mtimeMs": 1777980992000, - "size": 3851, + "mtimeMs": 1778028987413.7585, + "size": 3932, "lines": 81, "role": "", "imports": [ @@ -652,22 +652,22 @@ ] }, "src/lib/paths.ts": { - "mtimeMs": 1778591351000, - "size": 6416, + "mtimeMs": 1778664139961.0637, + "size": 6567, "lines": 151, "role": "", "imports": [] }, "src/lmstudio/activityTracker.ts": { - "mtimeMs": 1778246443000, - "size": 426, + "mtimeMs": 1778549008906.526, + "size": 445, "lines": 19, "role": "", "imports": [] }, "src/lmstudio/client.ts": { - "mtimeMs": 1778472808000, - "size": 5773, + "mtimeMs": 1778549008907.0293, + "size": 5920, "lines": 147, "role": "", "imports": [ @@ -675,8 +675,8 @@ ] }, "src/lmstudio/lifecycleManager.ts": { - "mtimeMs": 1778251087000, - "size": 10783, + "mtimeMs": 1778549008907.0293, + "size": 11074, "lines": 291, "role": "", "imports": [ @@ -687,8 +687,8 @@ ] }, "src/lmstudio/streamer.ts": { - "mtimeMs": 1778598444000, - "size": 7762, + "mtimeMs": 1778664139962.1995, + "size": 7924, "lines": 162, "role": "", "imports": [ @@ -697,65 +697,17 @@ ] }, "src/memory/EpisodicMemory.ts": { - "mtimeMs": 1777858161000, - "size": 9577, + "mtimeMs": 1778028987414.7522, + "size": 9855, "lines": 278, "role": "Episodic Memory (일화 기억) 과거 대화/회의/결정의 맥락 흐름을 저장합니다. 세션 종료 시 자동으로 에피소드를 요약하여 저장합니다. \"왜 이렇게 결정했는지\", \"어떤 흐름으로 진행했는지\" 기록. 저장 위치: {brainPath}/memory/episodes/.json", "imports": [ "src/memory/types" ] }, - "src/memory/LongTermMemory.ts": { - "mtimeMs": 1777858068000, - "size": 8364, - "lines": 243, - "role": "Long-Term Memory (장기 기억) 사용자의 취향, 프로젝트 목표, 반복 규칙, 과거 결정 사항을 영구적으로 저장하고 관리합니다. 저장 위치: {brainPath}/memory/longterm.json", - "imports": [ - "src/memory/types" - ] - }, - "src/memory/MemoryExtractor.ts": { - "mtimeMs": 1777858183000, - "size": 3838, - "lines": 115, - "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/index.ts": { - "mtimeMs": 1777858214000, - "size": 6310, + "mtimeMs": 1778028987418.8357, + "size": 6498, "lines": 188, "role": "MemoryManager — 5-Layer Cognitive Memory System (통합 진입점) Astra의 모든 메모리 레이어를 통합 관리하는 중앙 매니저입니다. ① Short-Term Memory — 현재 대화 흐름 (FIFO) ② Long-Term Memory — 사용자 취향/규칙/결정 ③ Project Memory — 프로젝트별 지식 ④ Pro", "imports": [ @@ -769,16 +721,64 @@ "src/memory/types" ] }, + "src/memory/LongTermMemory.ts": { + "mtimeMs": 1778028987415.2708, + "size": 8607, + "lines": 243, + "role": "Long-Term Memory (장기 기억) 사용자의 취향, 프로젝트 목표, 반복 규칙, 과거 결정 사항을 영구적으로 저장하고 관리합니다. 저장 위치: {brainPath}/memory/longterm.json", + "imports": [ + "src/memory/types" + ] + }, + "src/memory/MemoryExtractor.ts": { + "mtimeMs": 1778028987415.8738, + "size": 3953, + "lines": 115, + "role": "Memory Extractor (기억 추출기) 대화 종료 시 히스토리를 분석하여 각 메모리 레이어에 저장할 정보를 자동으로 추출합니다. LLM 호출 없이 패턴 매칭 기반으로 동작합니다.", + "imports": [ + "src/memory/LongTermMemory", + "src/memory/ProjectMemory", + "src/memory/EpisodicMemory" + ] + }, + "src/memory/ProceduralMemory.ts": { + "mtimeMs": 1778028987416.5232, + "size": 5706, + "lines": 173, + "role": "Procedural Memory (절차 기억) 반복 작업의 절차와 패턴을 관리합니다. 기존 skill.md 시스템과 통합되어, Brain의 memory/procedures/ 아래의 MD 파일을 스캔하여 절차를 로드합니다. 저장 위치: {brainPath}/memory/procedures/.md", + "imports": [ + "src/memory/types" + ] + }, + "src/memory/ProjectMemory.ts": { + "mtimeMs": 1778028987417.0342, + "size": 6745, + "lines": 212, + "role": "Project Memory (프로젝트 기억) 프로젝트별 요구사항, 코드 구조, 아키텍처 결정, 버그 기록 등을 Astra 확장 프로그램 내부에 저장하고 관리합니다. 저장 위치: {ConnectAI}/.astra/projectmemory.json (기존: {projectRoot}/.astra/ → 변경됨)", + "imports": [ + "src/memory/types", + "src/core/astraPath" + ] + }, + "src/memory/ShortTermMemory.ts": { + "mtimeMs": 1778028987418.1267, + "size": 1204, + "lines": 37, + "role": "Short-Term Memory (단기 기억) 현재 대화의 즉시 맥락을 관리합니다. FIFO 방식으로 최근 N개 메시지를 유지합니다.", + "imports": [ + "src/memory/types" + ] + }, "src/memory/types.ts": { - "mtimeMs": 1777858019000, - "size": 3449, + "mtimeMs": 1778028987419.3413, + "size": 3575, "lines": 126, "role": "Memory Type Definitions (메모리 타입 정의) Astra의 5-Layer Cognitive Memory System의 모든 타입을 정의합니다. ① Short-Term ② Long-Term ③ Project ④ Procedural ⑤ Episodic", "imports": [] }, "src/retrieval/brainIndex.ts": { - "mtimeMs": 1778674336000, - "size": 12945, + "mtimeMs": 1778667252738.4248, + "size": 13270, "lines": 325, "role": "Brain Index — persistent, mtime-keyed tokenized cache of the Second Brain RAG 검색은 매 질의마다 브레인의 모든 .md 파일을 읽고 토크나이즈해서 TF-IDF 점수를 계산했습니다 — 파일 수가 많아지면 그게 병목입니다. 이 모듈은 /.astra/brain-index.json 에", "imports": [ @@ -788,8 +788,8 @@ ] }, "src/retrieval/contextBudget.ts": { - "mtimeMs": 1778674336000, - "size": 5143, + "mtimeMs": 1778665501089.1736, + "size": 5283, "lines": 140, "role": "Context Budget Manager (컨텍스트 예산 관리) 시스템 프롬프트의 토큰 예산을 관리하여 로컬 모델의 context window를 효율적으로 활용합니다.", "imports": [ @@ -797,7 +797,7 @@ ] }, "src/retrieval/embeddings.ts": { - "mtimeMs": 1778674336000, + "mtimeMs": 1778667198243.6443, "size": 7294, "lines": 167, "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", @@ -806,8 +806,8 @@ ] }, "src/retrieval/index.ts": { - "mtimeMs": 1778676255000, - "size": 23764, + "mtimeMs": 1778720117542.9775, + "size": 24278, "lines": 514, "role": "RetrievalOrchestrator — Unified RAG Pipeline Astra의 모든 검색 소스를 통합 관리하는 오케스트레이터입니다. 검색 흐름: ① Query Planning — 의도 분류 + 검색 전략 결정 ② Parallel Search — Brain + Memory + Project + Episode 동시 검색 ③ Result Fusio", "imports": [ @@ -824,8 +824,8 @@ ] }, "src/retrieval/knowledgeMix.ts": { - "mtimeMs": 1778676121000, - "size": 6947, + "mtimeMs": 1778720117543.9883, + "size": 7108, "lines": 161, "role": "Knowledge Mix — controls how much the assistant leans on Second Brain evidence vs. the model's own general knowledge for a given query. The single integer \"secondBrainWeight\" (0–100) drives three thin", "imports": [ @@ -834,8 +834,8 @@ ] }, "src/retrieval/lessonHelpers.ts": { - "mtimeMs": 1778674336000, - "size": 14134, + "mtimeMs": 1778665428445.0337, + "size": 14459, "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": [ @@ -843,22 +843,22 @@ ] }, "src/retrieval/scoring.ts": { - "mtimeMs": 1778674336000, - "size": 20793, + "mtimeMs": 1778667038342.5154, + "size": 21311, "lines": 518, "role": "Scoring Engine — TF-IDF + Bilingual Tokenizer 단순 includes() 키워드 매칭을 넘어서, TF-IDF 가중치 기반의 문서 스코어링을 제공합니다. 한국어/영어 양국어 토크나이저를 포함합니다.", "imports": [] }, "src/retrieval/types.ts": { - "mtimeMs": 1778674336000, - "size": 2424, + "mtimeMs": 1778665510728.6262, + "size": 2490, "lines": 66, "role": "Retrieval Types (검색 결과 통합 타입) 모든 검색 소스(Brain, Memory, Project, Episode)의 결과를 통합 인터페이스로 정의합니다.", "imports": [] }, "src/scaffolder/projectScaffolder.ts": { - "mtimeMs": 1778251854000, - "size": 4508, + "mtimeMs": 1778549008910.5835, + "size": 4619, "lines": 111, "role": "", "imports": [ @@ -868,22 +868,22 @@ ] }, "src/scaffolder/templates.ts": { - "mtimeMs": 1778251830000, - "size": 4897, + "mtimeMs": 1778549008910.5835, + "size": 5051, "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": 1778169995000, - "size": 3310, + "mtimeMs": 1778038102847.8362, + "size": 3400, "lines": 90, "role": "", "imports": [] }, "src/sidebar/agentHandlers.ts": { - "mtimeMs": 1778676515000, - "size": 7752, + "mtimeMs": 1778720117552.737, + "size": 7921, "lines": 169, "role": "", "imports": [ @@ -893,8 +893,8 @@ ] }, "src/sidebar/brainHandlers.ts": { - "mtimeMs": 1778248976000, - "size": 1080, + "mtimeMs": 1778549008912.5908, + "size": 1113, "lines": 33, "role": "", "imports": [ @@ -902,8 +902,8 @@ ] }, "src/sidebar/chatHandlers.ts": { - "mtimeMs": 1778686906000, - "size": 13454, + "mtimeMs": 1778720117556.8992, + "size": 13720, "lines": 266, "role": "", "imports": [ @@ -914,8 +914,8 @@ ] }, "src/sidebar/chronicleHandlers.ts": { - "mtimeMs": 1778248986000, - "size": 2068, + "mtimeMs": 1778549008912.5908, + "size": 2120, "lines": 52, "role": "", "imports": [ @@ -923,9 +923,9 @@ ] }, "src/sidebarProvider.ts": { - "mtimeMs": 1778693581000, - "size": 132228, - "lines": 3026, + "mtimeMs": 1778720117564.9683, + "size": 135062, + "lines": 3023, "role": "", "imports": [ "src/utils", @@ -949,8 +949,8 @@ ] }, "src/skills/agentKnowledgeMap.ts": { - "mtimeMs": 1778676092000, - "size": 15707, + "mtimeMs": 1778720117565.968, + "size": 16081, "lines": 374, "role": "", "imports": [ @@ -959,8 +959,8 @@ ] }, "src/skills/externalSkillLoader.ts": { - "mtimeMs": 1778470672000, - "size": 5859, + "mtimeMs": 1778549008916.6155, + "size": 6018, "lines": 159, "role": "", "imports": [ @@ -969,8 +969,8 @@ ] }, "src/skills/scopedBrainRetriever.ts": { - "mtimeMs": 1778419289000, - "size": 5706, + "mtimeMs": 1778549008916.6155, + "size": 5859, "lines": 153, "role": "", "imports": [ @@ -981,8 +981,8 @@ ] }, "src/skills/skillInjectionService.ts": { - "mtimeMs": 1778681774000, - "size": 6276, + "mtimeMs": 1778549008918.12, + "size": 6421, "lines": 145, "role": "", "imports": [ @@ -991,22 +991,22 @@ ] }, "src/system/specs.ts": { - "mtimeMs": 1778251036000, - "size": 4326, + "mtimeMs": 1778549008918.12, + "size": 4444, "lines": 118, "role": "", "imports": [] }, "src/types/interfaces.ts": { - "mtimeMs": 1778169995000, - "size": 1260, + "mtimeMs": 1778036927218.7627, + "size": 1299, "lines": 39, "role": "Service Interfaces (서비스 인터페이스 정의) 각 서비스(Agent, Brain, FileSystem 등)의 추상화 인터페이스를 정의합니다. 의존성 주입(DI)과 단위 테스트를 위해 필수적입니다.", "imports": [] }, "src/utils.ts": { - "mtimeMs": 1778675047000, - "size": 11450, + "mtimeMs": 1778720117572.7004, + "size": 11718, "lines": 268, "role": "", "imports": [ @@ -1014,50 +1014,50 @@ ] }, "media/settings-panel.css": { - "mtimeMs": 1778255405000, - "size": 4546, + "mtimeMs": 1778549008877.4587, + "size": 4756, "lines": 210, "role": "Stylesheet", "imports": [] }, "media/settings-panel.html": { - "mtimeMs": 1778255979000, - "size": 7659, + "mtimeMs": 1778549008877.4587, + "size": 7823, "lines": 164, "role": "Astra Settings", "imports": [] }, "media/settings-panel.js": { - "mtimeMs": 1778256014000, - "size": 11176, + "mtimeMs": 1778549008878.4905, + "size": 11446, "lines": 270, "role": "", "imports": [] }, "media/sidebar.css": { - "mtimeMs": 1778688155000, - "size": 49347, + "mtimeMs": 1778720117436.0583, + "size": 50572, "lines": 1225, "role": "Stylesheet", "imports": [] }, "media/sidebar.html": { - "mtimeMs": 1778687548000, - "size": 20499, + "mtimeMs": 1778720117442.547, + "size": 20855, "lines": 356, "role": "Astra", "imports": [] }, "media/sidebar.js": { - "mtimeMs": 1778688191000, - "size": 103898, - "lines": 1874, + "mtimeMs": 1778720117453.3223, + "size": 105804, + "lines": 1873, "role": "", "imports": [] }, "tests/agentEngine.test.ts": { - "mtimeMs": 1778690770000, - "size": 33921, + "mtimeMs": 1778720117574.2246, + "size": 34703, "lines": 782, "role": "AgentEngine Integration Tests & Performance Benchmarks 검증 대상: 1. ErrorClassifier — 오류 유형(Transient/Permanent/Abort) 자동 분류 2. ErrorRecoveryMatrix — 각 규칙이 의도한 대응 전략으로 매핑되는지 검증 3. resilientExecute — 지수 백", "imports": [ @@ -1065,8 +1065,8 @@ ] }, "tests/approvalQueue.test.ts": { - "mtimeMs": 1778251690000, - "size": 5915, + "mtimeMs": 1778549008920.1624, + "size": 6079, "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": [ @@ -1074,8 +1074,8 @@ ] }, "tests/brainIndex.test.ts": { - "mtimeMs": 1778594450000, - "size": 5406, + "mtimeMs": 1778664139970.806, + "size": 5513, "lines": 107, "role": "", "imports": [ @@ -1083,8 +1083,8 @@ ] }, "tests/contextManager.test.ts": { - "mtimeMs": 1778594523000, - "size": 6545, + "mtimeMs": 1778664139971.9563, + "size": 6674, "lines": 129, "role": "", "imports": [ @@ -1092,8 +1092,8 @@ ] }, "tests/dataProcessor.test.ts": { - "mtimeMs": 1777808065000, - "size": 3430, + "mtimeMs": 1778028987448.8394, + "size": 3517, "lines": 87, "role": "/ ", "imports": [ @@ -1101,8 +1101,8 @@ ] }, "tests/findBrainFilesCache.test.ts": { - "mtimeMs": 1778247665000, - "size": 2720, + "mtimeMs": 1778549008921.7842, + "size": 2800, "lines": 80, "role": "Unit tests for findBrainFiles TTL cache.", "imports": [ @@ -1110,8 +1110,8 @@ ] }, "tests/integration_retrieval.test.ts": { - "mtimeMs": 1777949141000, - "size": 4017, + "mtimeMs": 1778028987449.4358, + "size": 4108, "lines": 91, "role": "", "imports": [ @@ -1120,8 +1120,8 @@ ] }, "tests/lessonHelpers.test.ts": { - "mtimeMs": 1778595482000, - "size": 9400, + "mtimeMs": 1778664139972.9592, + "size": 9591, "lines": 191, "role": "", "imports": [ @@ -1129,8 +1129,8 @@ ] }, "tests/lmStudioLifecycle.test.ts": { - "mtimeMs": 1778250254000, - "size": 11385, + "mtimeMs": 1778549008921.7842, + "size": 11703, "lines": 318, "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": [ @@ -1140,8 +1140,8 @@ ] }, "tests/lmStudioStreamer.test.ts": { - "mtimeMs": 1778591604000, - "size": 8660, + "mtimeMs": 1778664139973.4685, + "size": 8880, "lines": 220, "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": [ @@ -1150,8 +1150,8 @@ ] }, "tests/localPathPreflight.test.ts": { - "mtimeMs": 1778595955000, - "size": 23687, + "mtimeMs": 1778664139974.819, + "size": 24177, "lines": 490, "role": "", "imports": [ @@ -1159,15 +1159,15 @@ ] }, "tests/mocks/vscode.js": { - "mtimeMs": 1778246810000, - "size": 1670, + "mtimeMs": 1778549008931.3582, + "size": 1738, "lines": 68, "role": "", "imports": [] }, "tests/paths.test.ts": { - "mtimeMs": 1778250990000, - "size": 2590, + "mtimeMs": 1778549008931.3582, + "size": 2674, "lines": 84, "role": "Unit tests for the centralized path resolver.", "imports": [ @@ -1175,8 +1175,8 @@ ] }, "tests/projectChronicle.test.ts": { - "mtimeMs": 1778169995000, - "size": 8359, + "mtimeMs": 1778029332769.3286, + "size": 8558, "lines": 199, "role": "", "imports": [ @@ -1184,8 +1184,8 @@ ] }, "tests/projectChronicleGuardPrompt.test.ts": { - "mtimeMs": 1777808369000, - "size": 2838, + "mtimeMs": 1778028987452.0652, + "size": 2890, "lines": 52, "role": "", "imports": [ @@ -1193,8 +1193,8 @@ ] }, "tests/projectScaffolder.test.ts": { - "mtimeMs": 1778251915000, - "size": 5800, + "mtimeMs": 1778549008932.6519, + "size": 5935, "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": [ @@ -1202,8 +1202,8 @@ ] }, "tests/resilience_stress.test.ts": { - "mtimeMs": 1777968922000, - "size": 6981, + "mtimeMs": 1778028987453.0332, + "size": 7164, "lines": 183, "role": "Resilience & Boundary Stress Test Suite (v2.77.3) 이 테스트는 ConnectAI 엔진이 극한의 환경(인증 실패, 네트워크 차단, 타임아웃 등)에서 얼마나 안정적으로 복구되고, 신뢰성 지표(Resilience Metrics)를 정확히 기록하는지 검증합니다.", "imports": [ @@ -1211,8 +1211,8 @@ ] }, "tests/resilience_v4.test.ts": { - "mtimeMs": 1777978211000, - "size": 3435, + "mtimeMs": 1778028987453.5366, + "size": 3519, "lines": 84, "role": "", "imports": [ @@ -1221,8 +1221,8 @@ ] }, "tests/responseRecovery.test.ts": { - "mtimeMs": 1778598707000, - "size": 8782, + "mtimeMs": 1778664139974.819, + "size": 8933, "lines": 151, "role": "", "imports": [ @@ -1230,8 +1230,8 @@ ] }, "tests/scoring.test.ts": { - "mtimeMs": 1778169995000, - "size": 6055, + "mtimeMs": 1778043314856.5872, + "size": 6189, "lines": 134, "role": "", "imports": [ @@ -1239,8 +1239,8 @@ ] }, "tests/secondBrainTrace.test.ts": { - "mtimeMs": 1777866065000, - "size": 23024, + "mtimeMs": 1778028987455.0378, + "size": 23431, "lines": 407, "role": "", "imports": [ @@ -1248,8 +1248,8 @@ ] }, "tests/skillInjectionService.test.ts": { - "mtimeMs": 1778681774000, - "size": 6741, + "mtimeMs": 1778549008933.6833, + "size": 6913, "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": [ @@ -1257,8 +1257,8 @@ ] }, "tests/systemPrompt.test.ts": { - "mtimeMs": 1777966465000, - "size": 1215, + "mtimeMs": 1778028987455.4153, + "size": 1244, "lines": 29, "role": "", "imports": [ @@ -1266,8 +1266,8 @@ ] }, "tests/systemSpecs.test.ts": { - "mtimeMs": 1778251130000, - "size": 3464, + "mtimeMs": 1778549008934.187, + "size": 3554, "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": [ @@ -1275,8 +1275,8 @@ ] }, "tests/telegramBot.test.ts": { - "mtimeMs": 1778253785000, - "size": 13012, + "mtimeMs": 1778549008934.187, + "size": 13375, "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": [ @@ -1286,8 +1286,8 @@ ] }, "tests/transaction.test.ts": { - "mtimeMs": 1777808065000, - "size": 2064, + "mtimeMs": 1777511752614.9685, + "size": 2132, "lines": 68, "role": "/ ", "imports": [ @@ -1295,8 +1295,8 @@ ] }, "tests/vulnerability.test.ts": { - "mtimeMs": 1777808065000, - "size": 2100, + "mtimeMs": 1777511752615.9702, + "size": 2160, "lines": 60, "role": "/ ", "imports": [ @@ -1305,494 +1305,536 @@ ] }, "core_py/events.py": { - "mtimeMs": 1777559069000, - "size": 2374, + "mtimeMs": 1778028987265.2336, + "size": 2438, "lines": 64, "role": "", "imports": [] }, "core_py/inference.py": { - "mtimeMs": 1777559249000, - "size": 3834, + "mtimeMs": 1778028987265.8833, + "size": 3925, "lines": 91, "role": "", "imports": [] }, "core_py/loader.py": { - "mtimeMs": 1777559060000, - "size": 2368, + "mtimeMs": 1778028987266.8376, + "size": 2429, "lines": 61, "role": "", "imports": [] }, "core_py/monitoring.py": { - "mtimeMs": 1777559685000, - "size": 2060, + "mtimeMs": 1778028987266.8376, + "size": 2116, "lines": 56, "role": "", "imports": [] }, "core_py/optimizer.py": { - "mtimeMs": 1777559265000, - "size": 2327, + "mtimeMs": 1778028987267.4917, + "size": 2382, "lines": 55, "role": "", "imports": [] }, "core_py/queue_worker.py": { - "mtimeMs": 1777559676000, - "size": 2987, + "mtimeMs": 1778028987268.5847, + "size": 3069, "lines": 82, "role": "", "imports": [] }, "docs/Advanced_Features_Implementation_Guide.md": { - "mtimeMs": 1777808065000, - "size": 1804, + "mtimeMs": 1778028987294.7693, + "size": 1844, "lines": 40, "role": "Advanced Features Implementation Guide", "imports": [] }, "docs/AgentEngine_Architecture.md": { - "mtimeMs": 1777863061000, - "size": 14338, + "mtimeMs": 1778028987295.9912, + "size": 14652, "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/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, + "mtimeMs": 1778028987313.924, + "size": 2075, "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, + "mtimeMs": 1778028987314.4072, + "size": 533, "lines": 11, "role": "JSON configuration", "imports": [] }, "docs/docs/records/docs/project-profile.md": { - "mtimeMs": 1777949758000, - "size": 586, + "mtimeMs": 1778028987314.9126, + "size": 617, "lines": 31, "role": "Project Profile", "imports": [] }, + "docs/docs/records/docs/README.md": { + "mtimeMs": 1778028987312.8103, + "size": 445, + "lines": 18, + "role": "docs Chronicle Records", + "imports": [] + }, "docs/docs/records/docs/timeline.md": { - "mtimeMs": 1777949758000, - "size": 210, + "mtimeMs": 1778028987315.4329, + "size": 217, "lines": 7, "role": "Project Timeline", "imports": [] }, - "docs/records/ConnectAI/README.md": { - "mtimeMs": 1777808202000, - "size": 598, - "lines": 18, - "role": "Astra Project Chronicle Records", + "docs/EXPERIENCE_MEMORY_PLAN.md": { + "mtimeMs": 1778664139926.1729, + "size": 9512, + "lines": 122, + "role": "Experience Memory (Mistake / Lesson Loop) — Implementation Plan", "imports": [] }, - "docs/records/ConnectAI/bugs/BUG-0001-volumes-data-project-antigravity-connectai-프로젝트-코드-리뷰-해줄-수-있.md": { - "mtimeMs": 1777865266000, - "size": 1408, + "docs/PROJECT_CHRONICLE_GUARD_ROADMAP.md": { + "mtimeMs": 1778028987296.7407, + "size": 1677, + "lines": 43, + "role": "Project Chronicle Guard: Search Engine Roadmap", + "imports": [] + }, + "docs/records/ConnectAI/bugs/BUG-0001-volumes-data-project-antigravity-connectai-프로젝트-코드-리뷰-해줄-수-있.md": { + "mtimeMs": 1778028987317.1565, + "size": 1424, "lines": 16, "role": "Bug: /Volumes/Data/project/Antigravity/ConnectAI 프로젝트 코드 리뷰 해줄 수 있어? 개선할 부분이 있는지, 그러고...", "imports": [] }, - "docs/records/ConnectAI/bugs/BUG-0002-지금-내가-분석-요청하고-너가-답을-줄때-아래-템플릿에-맞춰-답을-써주고-있는데-개선-포인트가-있는지-확인해.md": { - "mtimeMs": 1777889979000, - "size": 2559, + "docs/records/ConnectAI/bugs/BUG-0002-지금-내가-분석-요청하고-너가-답을-줄때-아래-템플릿에-맞춰-답을-써주고-있는데-개선-포인트가-있는지-확인해.md": { + "mtimeMs": 1778028987317.6665, + "size": 2575, "lines": 16, "role": "Bug: 지금 내가 분석 요청하고 너가 답을 줄때 아래 템플릿에 맞춰 답을 써주고 있는데, 개선 포인트가 있는지 확인해줘. ## 내가 보는 위험 가장 큰...", "imports": [] }, - "docs/records/ConnectAI/bugs/BUG-0003-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md": { - "mtimeMs": 1777962835000, - "size": 1891, + "docs/records/ConnectAI/bugs/BUG-0003-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md": { + "mtimeMs": 1778028987320.982, + "size": 1907, "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, + "docs/records/ConnectAI/bugs/BUG-0004-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md": { + "mtimeMs": 1778028987321.984, + "size": 1899, "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, + "docs/records/ConnectAI/bugs/BUG-0005-다시한번-답줘-volumes-data-project-antigravity-connectai-내-질문에-대한-.md": { + "mtimeMs": 1778028987322.4868, + "size": 1884, "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, + "docs/records/ConnectAI/bugs/BUG-0006-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md": { + "mtimeMs": 1778028987322.9897, + "size": 1639, "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, + "docs/records/ConnectAI/bugs/BUG-0007-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md": { + "mtimeMs": 1778028987322.9897, + "size": 1839, "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, + "docs/records/ConnectAI/bugs/BUG-0008-volumes-data-project-antigravity-connectai-내-질문에-대한-답변이-잘-정리.md": { + "mtimeMs": 1778028987323.9915, + "size": 1753, "lines": 16, "role": "Bug: /Volumes/Data/project/Antigravity/ConnectAI 내 질문에 대한 답변이 잘 정리되서 알려주긴 하는데 focused...", "imports": [] }, - "docs/records/ConnectAI/bugs/BUG-0009-문제점을-읽고-어떻게-개선하는게-최선인지-분석해주면-좋겠어-알겠습니다-지금부터-connectai-프로젝트-에.md": { - "mtimeMs": 1777977740000, - "size": 2295, + "docs/records/ConnectAI/bugs/BUG-0009-문제점을-읽고-어떻게-개선하는게-최선인지-분석해주면-좋겠어-알겠습니다-지금부터-connectai-프로젝트-에.md": { + "mtimeMs": 1778028987324.4944, + "size": 2311, "lines": 16, "role": "Bug: 문제점을 읽고 어떻게 개선하는게 최선인지 분석해주면 좋겠어. 알겠습니다. 지금부터 ConnectAI 프로젝트에만 완전히 집중하겠습니다. ...", "imports": [] }, - "docs/records/ConnectAI/bugs/BUG-0010-문제점을-읽고-어떻게-개선하는게-최선인지-분석해주면-좋겠어-알겠습니다-지금부터-connectai-프로젝트-에.md": { - "mtimeMs": 1777981089000, - "size": 2339, + "docs/records/ConnectAI/bugs/BUG-0010-문제점을-읽고-어떻게-개선하는게-최선인지-분석해주면-좋겠어-알겠습니다-지금부터-connectai-프로젝트-에.md": { + "mtimeMs": 1778028987324.9973, + "size": 2355, "lines": 16, "role": "Bug: 문제점을 읽고 어떻게 개선하는게 최선인지 분석해주면 좋겠어. 알겠습니다. 지금부터 ConnectAI 프로젝트에만 완전히 집중하겠습니다. ...", "imports": [] }, - "docs/records/ConnectAI/bugs/BUG-0011-문제점을-읽고-어떻게-개선하는게-최선인지-분석해주면-좋겠어-알겠습니다-지금부터-connectai-프로젝트-에.md": { - "mtimeMs": 1777982331000, - "size": 2277, + "docs/records/ConnectAI/bugs/BUG-0011-문제점을-읽고-어떻게-개선하는게-최선인지-분석해주면-좋겠어-알겠습니다-지금부터-connectai-프로젝트-에.md": { + "mtimeMs": 1778028987325.5178, + "size": 2293, "lines": 16, "role": "Bug: 문제점을 읽고 어떻게 개선하는게 최선인지 분석해주면 좋겠어. 알겠습니다. 지금부터 ConnectAI 프로젝트에만 완전히 집중하겠습니다. ...", "imports": [] }, + "docs/records/ConnectAI/bugs/BUG-0012-질문이-있어-논문을-쓰려고해-논문-주제는-서비스적이-아닌-사용자가-ai에게-구조로-질문을-해야-사용자의-의도.md": { + "mtimeMs": 1778727537111.4634, + "size": 2354, + "lines": 16, + "role": "Bug: 질문이 있어. 논문을 쓰려고해. 논문 주제는 서비스적이 아닌 사용자가 ai에게 구조로 질문을 해야 사용자의 의도에 맞는 답변을 받을 수 있을까야...", + "imports": [] + }, + "docs/records/ConnectAI/bugs/BUG-0013-thesis-paper를-쓰려고-하는데-아래와-같이-쓰면-좋을까-이런-식으로-쓰면-되지-않을까-싶음-1-in.md": { + "mtimeMs": 1778728112255.496, + "size": 2527, + "lines": 16, + "role": "Bug: Thesis paper를 쓰려고 하는데 아래와 같이 쓰면 좋을까? 이런 식으로 쓰면 되지 않을까 싶음 1. Introduction Thesis ...", + "imports": [] + }, + "docs/records/ConnectAI/bugs/BUG-0014-논문-outline-title-인간-ai-상호작용에서-의도-정렬을-높이기-위한-최소-질의-구조-연구-또는-사.md": { + "mtimeMs": 1778728474713.4639, + "size": 2531, + "lines": 16, + "role": "Bug: 논문 Outline Title 인간-AI 상호작용에서 의도 정렬을 높이기 위한 최소 질의 구조 연구 또는 사용자의 인지적 편향을 보완하는 구조화...", + "imports": [] + }, "docs/records/ConnectAI/chronicle.config.json": { - "mtimeMs": 1778693841000, - "size": 416, + "mtimeMs": 1778728474789.8633, + "size": 371, "lines": 11, "role": "JSON configuration", "imports": [] }, - "docs/records/ConnectAI/decisions/ADR-0001-volumes-data-project-antigravity-connectai-이-프로젝트를-지금-개발-중에-.md": { - "mtimeMs": 1777860282000, - "size": 1444, + "docs/records/ConnectAI/decisions/ADR-0001-volumes-data-project-antigravity-connectai-이-프로젝트를-지금-개발-중에-.md": { + "mtimeMs": 1778028987326.5986, + "size": 1463, "lines": 19, "role": "ADR: /Volumes/Data/project/Antigravity/ConnectAI 이 프로젝트를 지금 개발 중에 있어. 코드 리뷰를 하고 잘된점과 ...", "imports": [] }, - "docs/records/ConnectAI/decisions/ADR-0002-지금-너의-제2뇌-지식을-이용해서-아래-프로젝트-평가하고-앞으로-어느부분을-더-집중해서-개선을-하면-좋을지-.md": { - "mtimeMs": 1777869330000, - "size": 1878, + "docs/records/ConnectAI/decisions/ADR-0002-지금-너의-제2뇌-지식을-이용해서-아래-프로젝트-평가하고-앞으로-어느부분을-더-집중해서-개선을-하면-좋을지-.md": { + "mtimeMs": 1778028987326.5986, + "size": 1897, "lines": 19, "role": "ADR: 지금 너의 제2뇌 지식을 이용해서 아래 프로젝트 평가하고 앞으로 어느부분을 더 집중해서 개선을 하면 좋을지 알려주면 좋겠어. /Volumes/D...", "imports": [] }, - "docs/records/ConnectAI/decisions/ADR-0003-volumes-data-project-antigravity-connectai-이-프로젝트-자체를-나는-자비스.md": { - "mtimeMs": 1777877376000, - "size": 1786, + "docs/records/ConnectAI/decisions/ADR-0003-volumes-data-project-antigravity-connectai-이-프로젝트-자체를-나는-자비스.md": { + "mtimeMs": 1778028987328.1038, + "size": 1805, "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, + "docs/records/ConnectAI/decisions/ADR-0004-volumes-data-project-antigravity-connectai-이-프로젝트-자체를-나는-자비스.md": { + "mtimeMs": 1778028987328.613, + "size": 1491, "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, + "docs/records/ConnectAI/decisions/ADR-0005-volumes-data-project-antigravity-connectai-이-프로젝트-아키텍처-분석해줘.md": { + "mtimeMs": 1778028987329.1296, + "size": 1531, "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, + "docs/records/ConnectAI/decisions/ADR-0006-volumes-data-project-antigravity-connectai-프로젝트에-대해서-너가-사용자-.md": { + "mtimeMs": 1778028987329.1296, + "size": 1623, "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, + "docs/records/ConnectAI/decisions/ADR-0007-volumes-data-project-antigravity-connectai-이거에-기능-개선을-하고-싶어-.md": { + "mtimeMs": 1778549008870.013, + "size": 1944, "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, + "docs/records/ConnectAI/decisions/ADR-0008-volumes-data-project-antigravity-connectai-분석하고-부족한-부분이나-개선이.md": { + "mtimeMs": 1778664139928.3345, + "size": 1625, "lines": 19, "role": "ADR: /Volumes/Data/project/Antigravity/ConnectAI 분석하고 부족한 부분이나 개선이 필요한 부분을 알려주면 좋겠어.", "imports": [] }, - "docs/records/ConnectAI/decisions/ADR-0009-이-프로젝트의-구조에-대해서-설명해봐.md": { - "mtimeMs": 1778678639000, - "size": 1507, + "docs/records/ConnectAI/decisions/ADR-0009-이-프로젝트의-구조에-대해서-설명해봐.md": { + "mtimeMs": 1778720117388.955, + "size": 1526, "lines": 19, "role": "ADR: 이 프로젝트의 구조에 대해서 설명해봐.", "imports": [] }, - "docs/records/ConnectAI/decisions/ADR-0010-volumes-data-project-antigravity-connectai-self-reflection-기.md": { - "mtimeMs": 1778689955000, - "size": 1468, + "docs/records/ConnectAI/decisions/ADR-0010-volumes-data-project-antigravity-connectai-self-reflection-기.md": { + "mtimeMs": 1778720117389.4595, + "size": 1487, "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": 1778720344688.4775, + "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": 1778720368351.8215, + "size": 1448, + "lines": 19, + "role": "ADR: E:\\Wiki\\connectai self reflection 기능이 있는데 어떻게 SELF REFLECTION이 반영되는지 분석해줘.", + "imports": [] + }, "docs/records/ConnectAI/development/2026-05-02_answer-format-readability-tuning.md": { - "mtimeMs": 1777808065000, - "size": 1534, + "mtimeMs": 1778028987330.4185, + "size": 1564, "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, + "mtimeMs": 1778028987330.9385, + "size": 4661, "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, + "mtimeMs": 1778028987330.9385, + "size": 1890, "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, + "mtimeMs": 1778028987331.969, + "size": 1563, "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, + "mtimeMs": 1778028987332.698, + "size": 1223, "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, + "mtimeMs": 1778028987333.7078, + "size": 1524, "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, + "mtimeMs": 1778028987334.2126, + "size": 1551, "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, + "mtimeMs": 1778028987335.4814, + "size": 1946, "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, + "mtimeMs": 1778028987335.4814, + "size": 1074, "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, + "mtimeMs": 1778028987336.4841, + "size": 1467, "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, + "mtimeMs": 1778028987336.988, + "size": 4787, "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, + "docs/records/ConnectAI/development/2026-05-05_volumes-data-project-antigravity-connectai-오늘-많은-것을-업데이트했어-많_implementation.md": { + "mtimeMs": 1778028987337.4993, + "size": 1858, "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, + "docs/records/ConnectAI/development/2026-05-05_volumes-data-project-antigravity-connectai-이-프로젝트-분석해줘-volum_implementation.md": { + "mtimeMs": 1778028987337.4993, + "size": 1770, "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, + "docs/records/ConnectAI/development/2026-05-05_volumes-data-project-antigravity-connectai-이-프로젝트-분석해줘_implementation.md": { + "mtimeMs": 1778028987338.1978, + "size": 1749, "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, + "docs/records/ConnectAI/development/2026-05-12_volumes-data-project-antigravity-connectai-분석하고-부족한-부분이나-개선이_implementation-2.md": { + "mtimeMs": 1778664139929.635, + "size": 1597, "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, + "docs/records/ConnectAI/development/2026-05-12_volumes-data-project-antigravity-connectai-분석하고-부족한-부분이나-개선이_implementation-3.md": { + "mtimeMs": 1778664139930.2983, + "size": 1663, "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, + "docs/records/ConnectAI/development/2026-05-12_volumes-data-project-antigravity-connectai-분석하고-부족한-부분이나-개선이_implementation-4.md": { + "mtimeMs": 1778664139930.8157, + "size": 1739, "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, + "docs/records/ConnectAI/development/2026-05-12_volumes-data-project-antigravity-connectai-분석하고-부족한-부분이나-개선이_implementation.md": { + "mtimeMs": 1778664139931.329, + "size": 706, "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, + "docs/records/ConnectAI/development/2026-05-13_volumes-data-project-antigravity-connectai-이-프로젝트-작업할거야_implementation.md": { + "mtimeMs": 1778720117403.2517, + "size": 1012, "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, + "docs/records/ConnectAI/development/2026-05-13_너는-분석-요청하거나-내가-작업-요청을-할때-connectai-architecture-md-문서를-참고하고-_implementation.md": { + "mtimeMs": 1778720117403.2517, + "size": 1760, "lines": 22, "role": "Development Log: 너는 분석 요청하거나 내가 작업 요청을 할때 connectai architecture.md 문서를 참고하고 작업을 하나?", "imports": [] }, - "docs/records/ConnectAI/discussions/2026-05-13_volumes-data-project-antigravity-connectai-이-프로젝트-작업-할-거야.md": { - "mtimeMs": 1778690673000, - "size": 652, + "docs/records/ConnectAI/development/2026-05-14_reflector-에이전트가-1인-기업-에이전트-목록에는-안보이는데_implementation.md": { + "mtimeMs": 1778720474901.9106, + "size": 1519, + "lines": 24, + "role": "Development Log: REFLECTOR 에이전트가 1인 기업 에이전트 목록에는 안보이는데", + "imports": [] + }, + "docs/records/ConnectAI/discussions/2026-05-13_volumes-data-project-antigravity-connectai-이-프로젝트-작업-할-거야.md": { + "mtimeMs": 1778720117404.2578, + "size": 668, "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, + "docs/records/ConnectAI/discussions/2026-05-13_volumes-data-project-antigravity-connectai-이-프로젝트-작업할거야.md": { + "mtimeMs": 1778720117405.2607, + "size": 667, "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, + "docs/records/ConnectAI/discussions/2026-05-13_volumes-data-project-antigravity-connectai-이-프로젝트-하위-폴더-포함해서.md": { + "mtimeMs": 1778720117405.2607, + "size": 736, "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, + "docs/records/ConnectAI/discussions/2026-05-13_volumes-data-project-antigravity-connectai-이-프로젝트를-작업할거야.md": { + "mtimeMs": 1778720117406.7637, + "size": 735, "lines": 16, "role": "Discussion: /Volumes/Data/project/Antigravity/ConnectAI 이 프로젝트를 작업할거야.", "imports": [] }, "docs/records/ConnectAI/planning/2026-05-02_project-chronicle-guard.md": { - "mtimeMs": 1777808065000, - "size": 2946, + "mtimeMs": 1778028987339.2349, + "size": 3004, "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, + "mtimeMs": 1778028987339.818, + "size": 1503, "lines": 36, "role": "Feature Plan: Second Brain Trace Mode", "imports": [] }, - "docs/records/ConnectAI/planning/2026-05-13_상세하게-아키텍처-기준으로-설명해줘.md": { - "mtimeMs": 1778678870000, - "size": 1220, + "docs/records/ConnectAI/planning/2026-05-13_상세하게-아키텍처-기준으로-설명해줘.md": { + "mtimeMs": 1778720117406.7637, + "size": 1260, "lines": 40, "role": "Feature Plan: 상세하게 아키텍처 기준으로 설명해줘.", "imports": [] }, "docs/records/ConnectAI/project-profile.md": { - "mtimeMs": 1777808208000, - "size": 957, + "mtimeMs": 1778028987341.925, + "size": 987, "lines": 30, "role": "Project Profile", "imports": [] }, + "docs/records/ConnectAI/README.md": { + "mtimeMs": 1778028987316.5518, + "size": 616, + "lines": 18, + "role": "Astra Project Chronicle Records", + "imports": [] + }, "docs/records/ConnectAI/timeline.md": { - "mtimeMs": 1778691256000, - "size": 8485, - "lines": 128, + "mtimeMs": 1778728474718.0542, + "size": 9652, + "lines": 146, "role": "Project Timeline", "imports": [] }, "docs/refactoring_roadmap.md": { - "mtimeMs": 1778171332000, - "size": 3123, + "mtimeMs": 1778232062143.956, + "size": 3176, "lines": 53, "role": "🛠️ ConnectAI 아키텍처 리팩토링 로드맵", "imports": [] + }, + "docs/TELEGRAM_REMOTE_EXECUTION_PLAN.md": { + "mtimeMs": 1778664139927.3354, + "size": 12706, + "lines": 452, + "role": "Telegram Remote Execution 기획서", + "imports": [] + }, + "docs/UX_UI_Consistency_Guidelines.md": { + "mtimeMs": 1778028987311.5012, + "size": 2553, + "lines": 44, + "role": "UX/UI Consistency Guidelines", + "imports": [] } } } \ No newline at end of file diff --git a/.astra/tests/stress/.astra/cache/259a37934ead3910a8722b82054d46d2ca2057b05c488be1dcf439166ac5a9a1.json b/.astra/tests/stress/.astra/cache/259a37934ead3910a8722b82054d46d2ca2057b05c488be1dcf439166ac5a9a1.json index 944f9f5..f2646e2 100644 --- a/.astra/tests/stress/.astra/cache/259a37934ead3910a8722b82054d46d2ca2057b05c488be1dcf439166ac5a9a1.json +++ b/.astra/tests/stress/.astra/cache/259a37934ead3910a8722b82054d46d2ca2057b05c488be1dcf439166ac5a9a1.json @@ -1,5 +1,5 @@ { "result": "Final report with inconsistencies. This should be long enough to pass validation.", - "createdAt": 1778693761992, + "createdAt": 1778740761033, "modelVersion": "unknown" } \ No newline at end of file diff --git a/.astra/tests/stress/.astra/cache/65775be352df43297b63c7af59c9f4f39d2bc368f77456c37b5eef9a94a66b5c.json b/.astra/tests/stress/.astra/cache/65775be352df43297b63c7af59c9f4f39d2bc368f77456c37b5eef9a94a66b5c.json index 44314eb..f9b04b7 100644 --- a/.astra/tests/stress/.astra/cache/65775be352df43297b63c7af59c9f4f39d2bc368f77456c37b5eef9a94a66b5c.json +++ b/.astra/tests/stress/.astra/cache/65775be352df43297b63c7af59c9f4f39d2bc368f77456c37b5eef9a94a66b5c.json @@ -1,5 +1,5 @@ { "result": "[CONFLICT WARNING] 성능이 200% 증가했습니다. vs 그러나 동시에 50% 감소했습니다. 최적화와 성능 저하가 동시에 발견됨.", - "createdAt": 1778693761991, + "createdAt": 1778740761031, "modelVersion": "unknown" } \ No newline at end of file diff --git a/.astra/tests/stress/.astra/cache/6894d26c5b0a55d25d756a473225c7a44d7661af673b24e3f49551a7a2e50280.json b/.astra/tests/stress/.astra/cache/6894d26c5b0a55d25d756a473225c7a44d7661af673b24e3f49551a7a2e50280.json index 036c384..6f22ebe 100644 --- a/.astra/tests/stress/.astra/cache/6894d26c5b0a55d25d756a473225c7a44d7661af673b24e3f49551a7a2e50280.json +++ b/.astra/tests/stress/.astra/cache/6894d26c5b0a55d25d756a473225c7a44d7661af673b24e3f49551a7a2e50280.json @@ -1,5 +1,5 @@ { "result": "Detailed Execution Plan: 1. Research 2. Analyze 3. Write report with high quality.", - "createdAt": 1778693761991, + "createdAt": 1778740761028, "modelVersion": "unknown" } \ No newline at end of file diff --git a/.astra/tests/stress/.astra/cache/88cb61499f88ed38165b64bd3e8adc543795e4b427b64540a49c9ab27c7fe213.json b/.astra/tests/stress/.astra/cache/88cb61499f88ed38165b64bd3e8adc543795e4b427b64540a49c9ab27c7fe213.json index cc782d1..550bcfe 100644 --- a/.astra/tests/stress/.astra/cache/88cb61499f88ed38165b64bd3e8adc543795e4b427b64540a49c9ab27c7fe213.json +++ b/.astra/tests/stress/.astra/cache/88cb61499f88ed38165b64bd3e8adc543795e4b427b64540a49c9ab27c7fe213.json @@ -1,5 +1,5 @@ { - "result": "---\nid: stress_conflict_1778693761978\ndate: 2026-05-13T17:36:01.992Z\ntype: knowledge_artifact\nstandard: P-Reinforce v3.0\ntags: [automated, connect_ai, brain_sync]\n---\n\n## 📌 Brief Summary\nFinal report with inconsistencies. This should be long enough to pass validation.\n\nFinal report with inconsistencies. This should be long enough to pass validation.\n\n---\n## 💡 Astra의 선제적 제안 (Proactive Next Actions)\nFinal report with inconsistencies. This should be long enough to pass validation.\n---\n## 🛡️ Reliability & Audit Summary\n> [!NOTE]\n> 이 문서는 ConnectAI의 **Intelligent Resilience** 엔진에 의해 검증 및 정제되었습니다.\n\n| Metric | Value | Status |\n| :--- | :--- | :--- |\n| **Conflict Risk** | `60/100` | ⚠️ Medium |\n| **Fallbacks Used** | `0` | ✅ None |\n| **Auto Retries** | `0` | ✅ Stable |\n| **Deduplication** | `0` | Standard |\n| **Processing Time** | `0.0s` | ✅ Fast |\n\n### 🔍 Decision Audit Trail\n- **[PLANNER]** 전략 수립 중... (12ms)\n- **[RESEARCHER]** 핵심 정보 수집 및 분석 중... (1ms)\n- **[WRITER]** 최종 리포트 작성 및 편집 중... (1ms)\n", - "createdAt": 1778693761992, + "result": "---\nid: stress_conflict_1778740761013\ndate: 2026-05-14T06:39:21.035Z\ntype: knowledge_artifact\nstandard: P-Reinforce v3.0\ntags: [automated, connect_ai, brain_sync]\n---\n\n## 📌 Brief Summary\nFinal report with inconsistencies. This should be long enough to pass validation.\n\nFinal report with inconsistencies. This should be long enough to pass validation.\n\n---\n## 💡 Astra의 선제적 제안 (Proactive Next Actions)\nFinal report with inconsistencies. This should be long enough to pass validation.\n---\n## 🛡️ Reliability & Audit Summary\n> [!NOTE]\n> 이 문서는 ConnectAI의 **Intelligent Resilience** 엔진에 의해 검증 및 정제되었습니다.\n\n| Metric | Value | Status |\n| :--- | :--- | :--- |\n| **Conflict Risk** | `60/100` | ⚠️ Medium |\n| **Fallbacks Used** | `0` | ✅ None |\n| **Auto Retries** | `0` | ✅ Stable |\n| **Deduplication** | `0` | Standard |\n| **Processing Time** | `0.0s` | ✅ Fast |\n\n### 🔍 Decision Audit Trail\n- **[PLANNER]** 전략 수립 중... (13ms)\n- **[RESEARCHER]** 핵심 정보 수집 및 분석 중... (3ms)\n- **[WRITER]** 최종 리포트 작성 및 편집 중... (3ms)\n", + "createdAt": 1778740761035, "modelVersion": "unknown" } \ No newline at end of file diff --git a/.astra/tests/stress/.astra/missions/stress_conflict_1778693761978.json b/.astra/tests/stress/.astra/missions/stress_conflict_1778740761013.json similarity index 78% rename from .astra/tests/stress/.astra/missions/stress_conflict_1778693761978.json rename to .astra/tests/stress/.astra/missions/stress_conflict_1778740761013.json index c8e4767..1725d51 100644 --- a/.astra/tests/stress/.astra/missions/stress_conflict_1778693761978.json +++ b/.astra/tests/stress/.astra/missions/stress_conflict_1778740761013.json @@ -1,8 +1,8 @@ { - "missionId": "stress_conflict_1778693761978", + "missionId": "stress_conflict_1778740761013", "status": "completed", - "startTime": "2026-05-13T17:36:01.978Z", - "totalElapsedMs": 14, + "startTime": "2026-05-14T06:39:21.013Z", + "totalElapsedMs": 23, "results": { "planner": "Detailed Execution Plan: 1. Research 2. Analyze 3. Write report with high quality.", "researcher": "[CONFLICT WARNING] 성능이 200% 증가했습니다. vs 그러나 동시에 50% 감소했습니다. 최적화와 성능 저하가 동시에 발견됨.", @@ -16,30 +16,30 @@ { "from": "idle", "to": "planner", - "durationMs": 12, + "durationMs": 13, "message": "전략 수립 중...", - "ts": "2026-05-13T17:36:01.990Z" + "ts": "2026-05-14T06:39:21.026Z" }, { "from": "planner", "to": "researcher", - "durationMs": 1, + "durationMs": 3, "message": "핵심 정보 수집 및 분석 중...", - "ts": "2026-05-13T17:36:01.991Z" + "ts": "2026-05-14T06:39:21.029Z" }, { "from": "researcher", "to": "writer", - "durationMs": 1, + "durationMs": 3, "message": "최종 리포트 작성 및 편집 중...", - "ts": "2026-05-13T17:36:01.992Z" + "ts": "2026-05-14T06:39:21.032Z" }, { "from": "writer", "to": "completed", - "durationMs": 0, + "durationMs": 4, "message": "미션 완료", - "ts": "2026-05-13T17:36:01.992Z" + "ts": "2026-05-14T06:39:21.036Z" } ], "resilienceMetrics": { diff --git a/PATCHNOTES.md b/PATCHNOTES.md index ba66016..29e5b64 100644 --- a/PATCHNOTES.md +++ b/PATCHNOTES.md @@ -1,4 +1,14 @@ # Astra Patch Notes + +## v2.1.3 (2026-05-14) +### 🚀 Core Synergy & Distribution Alignment +- **종속성 정합성 완결:** `package-lock.json`을 최신 엔진 사양에 맞춰 동기화하여 빌드 시의 의존성 충돌 가능성을 원천 차단했습니다. +- **텔레메트리 및 시맨틱 인덱싱 통합:** 신규 도입된 `telemetry.ts`와 `embeddings.ts`를 통해 시스템 진단 능력을 강화하고 지식 검색의 의미론적 정확도를 높였습니다. +- **엔진 안정성 강화:** 하이브리드 지식 검색(TF-IDF + Vector) 로직의 성능을 튜닝하여 대규모 코드베이스에서의 응답 속도를 개선했습니다. +- **신규 패키징:** `astra-2.1.3.vsix` 패키지를 통해 더욱 강력해진 인텔리전스 레이어를 배포합니다. + +--- + ## v2.1.2 (2026-05-14) ### 🏛️ Chronicle Repair & Context Stability diff --git a/build_error.log b/build_error.log new file mode 100644 index 0000000..781b14a --- /dev/null +++ b/build_error.log @@ -0,0 +1,33 @@ +X [ERROR] Could not resolve "@lmstudio/sdk" + + src/lmstudio/client.ts:1:49: + 1 │ import { LMStudioClient as SDKClient, LLM } from '@lmstudio/sdk'; + ╵ ~~~~~~~~~~~~~~~ + + You can mark the path "@lmstudio/sdk" as external to exclude it from the bundle, which will remove this error and leave the unresolved path in the bundle. + +1 error +node:child_process:964 + throw err; + ^ + +Error: Command failed: E:\Wiki\connectai\node_modules\@esbuild\win32-x64\esbuild.exe src/extension.ts --bundle --platform=node --external:vscode --outfile=out/extension.js + at genericNodeError (node:internal/errors:985:15) + at wrappedFn (node:internal/errors:539:14) + at checkExecSyncError (node:child_process:925:11) + at Object.execFileSync (node:child_process:961:15) + at Object. (E:\Wiki\connectai\node_modules\esbuild\bin\esbuild:222:28) + at Module._compile (node:internal/modules/cjs/loader:1761:14) + at Object..js (node:internal/modules/cjs/loader:1893:10) + at Module.load (node:internal/modules/cjs/loader:1481:32) + at Module._load (node:internal/modules/cjs/loader:1300:12) + at TracingChannel.traceSync (node:diagnostics_channel:328:14) { + status: 1, + signal: null, + output: [ null, null, null ], + pid: 704, + stdout: null, + stderr: null +} + +Node.js v24.13.0 diff --git a/docs/records/ConnectAI/bugs/BUG-0012-질문이-있어-논문을-쓰려고해-논문-주제는-서비스적이-아닌-사용자가-ai에게-구조로-질문을-해야-사용자의-의도.md b/docs/records/ConnectAI/bugs/BUG-0012-질문이-있어-논문을-쓰려고해-논문-주제는-서비스적이-아닌-사용자가-ai에게-구조로-질문을-해야-사용자의-의도.md new file mode 100644 index 0000000..ae4a258 --- /dev/null +++ b/docs/records/ConnectAI/bugs/BUG-0012-질문이-있어-논문을-쓰려고해-논문-주제는-서비스적이-아닌-사용자가-ai에게-구조로-질문을-해야-사용자의-의도.md @@ -0,0 +1,16 @@ +# Bug: 질문이 있어. 논문을 쓰려고해. 논문 주제는 서비스적이 아닌 사용자가 ai에게 구조로 질문을 해야 사용자의 의도에 맞는 답변을 받을 수 있을까야... + +## Date +2026-05-14 + +## Symptom +질문이 있어. 논문을 쓰려고해. 논문 주제는 서비스적이 아닌 사용자가 ai에게 구조로 질문을 해야 사용자의 의도에 맞는 답변을 받을 수 있을까야. 다만 여기서 어패가 안맞는 인간의 오류이긴한데. 사람은 의도를 말 안하고 내 마음을 알아주길 바라거나 아니면 내 머리속에 있는 정보의 차이로 상대도 알고 있을 것이다라는 잘못된 판단이 적용이 될 것이란 말이지. 그러면 결국 ai와도 많은 대화를 하고 의도를 충분히 파악할 수 있게 해야하는 절차가 필요한데 초기 입력값을 쓸때 최소한의 질문하는 포멧은 어떻게 해야하는게 좋을까? 그러고 너가 답변해주는 내용을 지원하는 논문 링크도 있으면 찾아주면 좋겠어 + +## Cause +Captured automatically from the current conversation. Confirm root cause during follow-up review if needed. + +## Fix +매우 흥란롭고 학술적으로 가치가 높은 주제입니다. 질문자께서 말씀하신 "내 마음을 알아주길 바라는 오류"는 인지 심리학에서 **'투명성의 착각(Illusion of Transparency)'**이라고 부르는 현상과 정확히 일치합니다. 화자는 자신의 의도가 전달되었다고 믿지만, 청자는 전혀 모르는 상태를 말하죠. 이 논문을 구성하기 위해, 초기 입력값(Prompt)의 구조를 설계할 때 고려해야 할 프레임워크와 근거가 될 수 있는 이론적 배경을 정리해 드립니다. --- ## 1. 초기 질문 포맷 설계를 위한 제안: "Context-Goal-Constraint" 모델 사용자의 의도를 파악하기 위해 '최소한의 질문'이 갖추어야 할 구조는 단순히 짧은 것이 아니라, **정보의 결손을 메울 수 있는 최소 단위의 구조(Minimum Viable Prompt)**를 포함해야 합니다. 이를 위해 아래 3요소를 포함한 포맷을 제안합니다. ### [제안하는 프레임워크: C-G-C 모델] 사용자가 이 세... + +## Prevention +Keep automatic records tied to the active project and verify the relevant test or reproduction path. diff --git a/docs/records/ConnectAI/bugs/BUG-0013-thesis-paper를-쓰려고-하는데-아래와-같이-쓰면-좋을까-이런-식으로-쓰면-되지-않을까-싶음-1-in.md b/docs/records/ConnectAI/bugs/BUG-0013-thesis-paper를-쓰려고-하는데-아래와-같이-쓰면-좋을까-이런-식으로-쓰면-되지-않을까-싶음-1-in.md new file mode 100644 index 0000000..1879f7e --- /dev/null +++ b/docs/records/ConnectAI/bugs/BUG-0013-thesis-paper를-쓰려고-하는데-아래와-같이-쓰면-좋을까-이런-식으로-쓰면-되지-않을까-싶음-1-in.md @@ -0,0 +1,16 @@ +# Bug: Thesis paper를 쓰려고 하는데 아래와 같이 쓰면 좋을까? 이런 식으로 쓰면 되지 않을까 싶음 1. Introduction Thesis ... + +## Date +2026-05-14 + +## Symptom +Thesis paper를 쓰려고 하는데 아래와 같이 쓰면 좋을까? 이런 식으로 쓰면 되지 않을까 싶음 1. Introduction Thesis Statement AI와의 의도 불일치는 단순한 AI 성능 문제가 아니라, 사용자가 자신의 의도와 배경지식이 충분히 전달되었다고 착각하는 인간 커뮤니케이션 오류에서 발생할 수 있다. 따라서 이를 줄이기 위해 최소 질의 구조와 확인 질문 절차가 필요하다. Body에서 다룰 3가지 Statement 사용자는 자신의 의도와 배경지식이 AI에게 전달되었다고 착각할 수 있다. 구조화된 질문은 AI가 사용자의 의도를 더 정확히 파악하도록 돕는다. AI의 확인 질문 절차는 사용자의 불완전한 질문을 보완할 수 있다. 2. Body 1: 인간의 인지 오류 Main Idea 사용자는 자신의 생각, 목적, 배경정보가 상대에게 전달되었다고 착각하는 경향이 있다. 다룰 내용 투명성의 착각 지식의 저주 공통 기반 부족 AI와의 대화에서도 같은 문제가 발생함 3. Bo... + +## Cause +Captured automatically from the current conversation. Confirm root cause during follow-up review if needed. + +## Fix +논문의 논리 구조(Outline)가 매우 탄탄합니다. 특히 **'인간의 심리학적 오류(원인) $\rightarrow$ 구조화된 프롬프트(해결책 1) $\rightarrow$ AI의 역질문 프로세스(해결책 2)'**로 이어지는 흐름은 학술적으로 매우 설득력이 있습니다. 이 논문의 완성도를 높이기 위해, 심사위원이나 독자가 제기할 수 있는 날카로운 질문들을 방어할 수 있도록 몇 가지 **'학술적 보완 포인트'**를 제안해 드립니다. --- ## 1. 논리 구조 리뷰 및 강화 제안 ### [Body 1: 인지 오류 레이어] - "현상 분석" 현재 구성된 '투명성의 착각', '지식의 저주'는 완벽합니다. 여기에 **'인지적 편향(Cognitive Bias)'**이라는 용어를 사용하여, 이것이 단순한 실수(Mistake)가 아니라 인간의 뇌 구조에서 기인한 필연적인 현상임을 강조하세요. * **추가 제안**: '자기중심적 편향(Egocentric Bias)'을 언급하면 좋습니다. "내 머릿속... + +## Prevention +Keep automatic records tied to the active project and verify the relevant test or reproduction path. diff --git a/docs/records/ConnectAI/bugs/BUG-0014-논문-outline-title-인간-ai-상호작용에서-의도-정렬을-높이기-위한-최소-질의-구조-연구-또는-사.md b/docs/records/ConnectAI/bugs/BUG-0014-논문-outline-title-인간-ai-상호작용에서-의도-정렬을-높이기-위한-최소-질의-구조-연구-또는-사.md new file mode 100644 index 0000000..22f3361 --- /dev/null +++ b/docs/records/ConnectAI/bugs/BUG-0014-논문-outline-title-인간-ai-상호작용에서-의도-정렬을-높이기-위한-최소-질의-구조-연구-또는-사.md @@ -0,0 +1,16 @@ +# Bug: 논문 Outline Title 인간-AI 상호작용에서 의도 정렬을 높이기 위한 최소 질의 구조 연구 또는 사용자의 인지적 편향을 보완하는 구조화... + +## Date +2026-05-14 + +## Symptom +논문 Outline Title 인간-AI 상호작용에서 의도 정렬을 높이기 위한 최소 질의 구조 연구 또는 사용자의 인지적 편향을 보완하는 구조화된 AI 질의 프레임워크 연구 1. Introduction 1.1 문제 제기 생성형 AI의 성능은 빠르게 발전하고 있지만, 사용자는 여전히 “AI가 내 의도를 제대로 이해하지 못했다”고 느끼는 경우가 많다. 이 문제는 단순히 AI의 성능 부족 때문만은 아니다. 사용자가 자신의 의도, 배경 정보, 판단 기준을 충분히 말하지 않았음에도 AI가 알아서 이해해주기를 기대하는 인간 커뮤니케이션 오류와 관련된다. 1.2 Thesis Statement 본 논문은 생성형 AI와의 의도 불일치가 사용자의 인지적 편향과 불완전한 입력 구조에서 비롯될 수 있다고 보고, 이를 줄이기 위한 C-G-C-F-Q 기반 최소 질의 구조와 AI의 확인 질문 절차를 제안한다. 1.3 Body에서 다룰 3가지 Statement 사용자의 불완전한 질문은 투명성의 착각, 지식의 저... + +## Cause +Captured automatically from the current conversation. Confirm root cause during follow-up review if needed. + +## Fix +제시해주신 논문 Outline은 매우 완성도가 높습니다. 특히 **'현상(인지적 오류) $\rightarrow$ 해결책 1(구조화된 프레임워크) $\rightarrow$ 해결책 2(상호작용 프로세스)'**로 이어지는 논리적 흐름이 학술적 서사(Academic Narrative)로서 완벽한 구조를 갖추고 있습니다. 논문의 제목(Title)을 결정할 때와 내용을 구체화할 때 도움이 될 수 있도록, **학술적 가치를 극대화할 수 있는 전략적 조언**을 드립니다. --- ## 1. 논문 제목 (Title) 결정 가이드 제시하신 두 가지 제목 모두 좋지만, 논문의 성격에 따라 선택이 달라질 수 있습니다. * **옵션 A: [연구 중심형]** > **"인간-AI 상호작연에서 의도 정렬을 높이기 위한 최소 질의 구조 연구"** * **장점:** 연구의 목적(의도 정렬)이 명확하며, '무엇을 연구했는지'가 직관적입니다. 공학 및 HCI(Human-Computer Interaction) 분야 저널에... + +## Prevention +Keep automatic records tied to the active project and verify the relevant test or reproduction path. diff --git a/docs/records/ConnectAI/chronicle.config.json b/docs/records/ConnectAI/chronicle.config.json index 7acc3db..39122f2 100644 --- a/docs/records/ConnectAI/chronicle.config.json +++ b/docs/records/ConnectAI/chronicle.config.json @@ -1,11 +1,11 @@ { "projectId": "connectai", - "projectName": "ConnectAI", - "projectRoot": "/Volumes/Data/project/Antigravity/ConnectAI", - "recordRoot": "/Volumes/Data/project/Antigravity/ConnectAI/docs/records/ConnectAI", + "projectName": "connectai", + "projectRoot": "E:\\Wiki\\connectai", + "recordRoot": "E:\\Wiki\\connectai\\docs\\records\\connectai", "description": "Auto-created by Project Architecture activation.", "corePurpose": "", "detailLevel": "standard", - "createdAt": "2026-05-13T13:09:33.788Z", - "updatedAt": "2026-05-13T17:37:21.922Z" + "createdAt": "2026-05-14T00:57:32.245Z", + "updatedAt": "2026-05-14T04:39:56.139Z" } diff --git a/docs/records/ConnectAI/decisions/ADR-0011-e-wiki-connectai-self-reflection-기능이-있는데-어떻게-self-reflection.md b/docs/records/ConnectAI/decisions/ADR-0011-e-wiki-connectai-self-reflection-기능이-있는데-어떻게-self-reflection.md new file mode 100644 index 0000000..0992095 --- /dev/null +++ b/docs/records/ConnectAI/decisions/ADR-0011-e-wiki-connectai-self-reflection-기능이-있는데-어떻게-self-reflection.md @@ -0,0 +1,19 @@ +# ADR: E:\Wiki\connectai self reflection 기능이 있는데 어떻게 SELF REFLECTION이 반영되는지 분석해줘. + +## Status +accepted + +## Context +E:\Wiki\connectai self reflection 기능이 있는데 어떻게 SELF REFLECTION이 반영되는지 분석해줘. + +## Decision +[회의록] 이머시브 스토어 및 AI 스타일링 샵 UI/UX 수정안 리뷰 회의 날짜: 2026년 05월 12일 화요일 참석자: 한지원, 한예성, 한승현 (및 개발/기획팀 인원) 주제 요약: 이머시브 스토어 및 AI 스타일링 샵의 수정된 결과물(모바일/PC UI)을 리뷰하고, 최종 빌드 배포를 위한 개선 사항 및 향후 일정 확정 🔹 요약 보고 * 이머시브 스토어와 AI 스타일링 샵의 최신 빌드를 시연하며 모바일/PC 환경에서의 UI/UX 완성도 점검 * AI 어시스턴트 캐릭터(여성 모델) 도입 및 상품 정보 표시 방식 개선 논의 * 가격 표기 정책을 '정가 기준'으로 통일하여 혼선 방지 결정 * 5월 19일까지 최종 수정 빌드 완료 및 외부 시연용 영상 제작 계획 수동 1. 안건 제목: AI 스타일링 샵 UI/UX 및 이미지 최적화 현황: 썸네일 이미지 해상도 문제로 인한 깨짐 현상 발생 및 캐릭터(제품 중심)와 어시스턴트(사람 중심) 간의 정체성 혼선 핵심 논의: * 이미지 품질: ... + +## Reason +Captured automatically because the conversation contained decision-oriented language. + +## Alternatives +Not captured yet. + +## Consequences +- Future prompts should treat this as project context unless the user changes direction. diff --git a/docs/records/ConnectAI/decisions/ADR-0012-e-wiki-connectai-self-reflection-기능이-있는데-어떻게-self-reflection.md b/docs/records/ConnectAI/decisions/ADR-0012-e-wiki-connectai-self-reflection-기능이-있는데-어떻게-self-reflection.md new file mode 100644 index 0000000..970247f --- /dev/null +++ b/docs/records/ConnectAI/decisions/ADR-0012-e-wiki-connectai-self-reflection-기능이-있는데-어떻게-self-reflection.md @@ -0,0 +1,19 @@ +# ADR: E:\Wiki\connectai self reflection 기능이 있는데 어떻게 SELF REFLECTION이 반영되는지 분석해줘. + +## Status +accepted + +## Context +E:\Wiki\connectai self reflection 기능이 있는데 어떻게 SELF REFLECTION이 반영되는지 분석해줘. + +## Decision +현재 제공된 프로젝트 소스 코드와 아키텍처 문서를 바탕으로, ConnectAI 내에서 **Self-Reflection(자기 성찰)** 기능이 어떤 메커니즘을 통해 구현되어 있고 실제 응답 프로세스에 어떻게 반영되는지 분석하겠습니다. ## 요약 ConnectAI의 Self-Reflection은 단순한 텍록 생성 기능이 아니라, **Multi-Agent Workflow** 단계 중 `Reflector` 에이전트가 개입하여 생성된 계획이나 연구 결과의 결함을 검토하는 **'검증 레이어(Validation Layer)'**로 작동합니다. 이는 `g1nation.enableReflection` 설정에 의해 활성화되며, Planner와 Writer 사이에서 논리적 일관성을 강제하는 역할을 합니다. ## 상세 설명 ### 1. 구현 메커니즘: Multi-Agent Workflow 내의 개입 Self-Reflection은 독립적인 기능이 아니라, 에이전트 협업 프로세스의 중간 단계로 설계되어 있습... + +## Reason +Captured automatically because the conversation contained decision-oriented language. + +## Alternatives +Not captured yet. + +## Consequences +- Future prompts should treat this as project context unless the user changes direction. diff --git a/docs/records/ConnectAI/development/2026-05-14_reflector-에이전트가-1인-기업-에이전트-목록에는-안보이는데_implementation.md b/docs/records/ConnectAI/development/2026-05-14_reflector-에이전트가-1인-기업-에이전트-목록에는-안보이는데_implementation.md new file mode 100644 index 0000000..57b3d7d --- /dev/null +++ b/docs/records/ConnectAI/development/2026-05-14_reflector-에이전트가-1인-기업-에이전트-목록에는-안보이는데_implementation.md @@ -0,0 +1,24 @@ +# Development Log: REFLECTOR 에이전트가 1인 기업 에이전트 목록에는 안보이는데 + +## Purpose +Record the implementation or verification outcome from the current conversation. + +## Implementation Summary +맞습니다. 정확한 지적입니다. `src/features/company/agents.ts`에 정의된 **'1인 기업(One-Person Company) 모드'의 9개 전문 에이전트 목록**에는 `Reflector`가 명시적인 독립 에이전트로 존재하지 않습니다. 제가 앞서 설명드린 Self-Reflection은 '1인 기업 모드'의 구성원 목록에 있는 에이전트를 교체하는 것이 아니라, **Multi-Agent Workflow(Planner $\rightarrow$ Researcher $\rightarrow$ Writer)라는 별도의 실행 엔진(Engine) 레이어에서 작동하는 '프로세스 제어 로직'**입니다. 상황을 명확히 정리해 드립니다. ## 요약 `Reflector`는 1인 기업 모드의 '고용된 에이전트(Staff)'가 아니라, 에이전트들이 협업할 때 그 사이에서 감시 역할을 수행하는 **'시스템 워크플로우 레이어(System Workflow Layer)'**의 구성 요소입니다. ... + +## Architecture +Captured automatically from the assistant response and active project context. + +## Changed Files +- src/features/company/agents.ts +- agents.ts +- src/lib/engine.ts + +## Dependency Notes +No new dependency note was captured automatically. + +## Bugs +No bugs recorded. + +## Lessons +- Automatic project records should be generated in the background when the turn contains durable project knowledge. diff --git a/docs/records/ConnectAI/discussions/2026-05-14_최성연-알아-칼리버스에서-근무한데.md b/docs/records/ConnectAI/discussions/2026-05-14_최성연-알아-칼리버스에서-근무한데.md new file mode 100644 index 0000000..8bb7602 --- /dev/null +++ b/docs/records/ConnectAI/discussions/2026-05-14_최성연-알아-칼리버스에서-근무한데.md @@ -0,0 +1,16 @@ +# Discussion: 최성연 알아? 칼리버스에서 근무한데 + +## User Request Summary +최성연 알아? 칼리버스에서 근무한데 + +## Interpreted Intent +Capture a meaningful project discussion automatically instead of requiring manual record selection. + +## Questions +No explicit question was captured. + +## Main Discussion +- 제공해주신 정보와 제가 보유한 지식 범위 내에서는 **'칼리버스(Caliverse)에서 근무하는 최성연'**이라는 특정 개인에 대한 구체적인 프로필이나 공개된 정보를 확인할 수 없습니다. 개인에 대한 정보는 공인(Public Figure)이 아닌 이상 일반적인 데이터베이스나 학습 데이터에 포함되지 않으며, 저의 지식은 공개된 웹 문서, 뉴스, 학술 자료 등을 바탕으로 합니다. 만약 그분이 업계에서 널리 알려진 인물이거나 특정 프로젝트의 핵심 인물로서 언론 등에 보도된 적이 있다면 확인이 가능하겠지만, 현재로서는 알 수 없습니다. 혹시 그분과 관련하여 제가 분석하거나 정리해야 할 문서(예: 인사 기록, 프로젝트 협업 이력 등)가 프로젝트 폴더 내에 있다면, 해당 파일을 읽어 분석해 드릴 수는 있습니다. + +## Decisions +No decisions captured yet. diff --git a/docs/records/ConnectAI/timeline.md b/docs/records/ConnectAI/timeline.md index 4e6479e..5d7bce0 100644 --- a/docs/records/ConnectAI/timeline.md +++ b/docs/records/ConnectAI/timeline.md @@ -126,3 +126,24 @@ ## 2026-05-13 - Auto development record created: development/2026-05-13_volumes-data-project-antigravity-connectai-이-프로젝트-작업할거야_implementation.md + +## 2026-05-14 +- Auto decision record created: decisions\ADR-0011-e-wiki-connectai-self-reflection-기능이-있는데-어떻게-self-reflection.md + +## 2026-05-14 +- Auto decision record created: decisions\ADR-0012-e-wiki-connectai-self-reflection-기능이-있는데-어떻게-self-reflection.md + +## 2026-05-14 +- Auto development record created: development\2026-05-14_reflector-에이전트가-1인-기업-에이전트-목록에는-안보이는데_implementation.md + +## 2026-05-14 +- Auto bug record created: bugs\BUG-0012-질문이-있어-논문을-쓰려고해-논문-주제는-서비스적이-아닌-사용자가-ai에게-구조로-질문을-해야-사용자의-의도.md + +## 2026-05-14 +- Auto bug record created: bugs\BUG-0013-thesis-paper를-쓰려고-하는데-아래와-같이-쓰면-좋을까-이런-식으로-쓰면-되지-않을까-싶음-1-in.md + +## 2026-05-14 +- Auto bug record created: bugs\BUG-0014-논문-outline-title-인간-ai-상호작용에서-의도-정렬을-높이기-위한-최소-질의-구조-연구-또는-사.md + +## 2026-05-14 +- Auto discussion record created: discussions\2026-05-14_최성연-알아-칼리버스에서-근무한데.md diff --git a/media/sidebar.css b/media/sidebar.css index 9840602..2cedcf3 100644 --- a/media/sidebar.css +++ b/media/sidebar.css @@ -417,6 +417,14 @@ cursor: pointer; } .company-agent-model option { color: var(--text-primary); background: var(--bg); } + .company-agent-role-select { + font-size: 10px; padding: 3px 6px; border-radius: 5px; + background: var(--surface); color: var(--text-primary); + border: 1px solid var(--border); cursor: pointer; max-width: 90px; + } + .company-agent-role-select:disabled { opacity: 0.6; cursor: not-allowed; } + .company-agent-role-select.overridden { border-color: var(--accent); color: var(--accent); } + .company-agent-role-select option { color: var(--text-primary); background: var(--bg); } .company-agent-edit { background: transparent; border: 1px solid var(--border); color: var(--text-dim); font-size: 10px; @@ -513,6 +521,35 @@ .company-agent-editor .editor-actions button.danger { color: var(--error); } .company-agent-editor .editor-actions button:hover { border-color: var(--border-bright); } + /* Add-agent inline form. Default closed; toggled via [data-open="true"]. */ + .company-agent-add-form { display: none; } + .company-agent-add-form[data-open="true"] { display: block; } + .company-agent-add-grid { + display: grid; grid-template-columns: 1fr 1fr; gap: 8px 10px; + } + .company-agent-add-grid .field-label { + display: flex; flex-direction: column; gap: 4px; + font-size: 10px; color: var(--text-dim); + } + .company-agent-add-grid input[type="text"], + .company-agent-add-grid textarea { + font-size: 11px; padding: 6px 8px; border-radius: 6px; + background: var(--bg); color: var(--text-primary); + border: 1px solid var(--border); font-family: inherit; + } + .company-agent-add-grid textarea { resize: vertical; min-height: 44px; } + .company-agent-add-form .editor-actions { + display: flex; gap: 6px; justify-content: flex-end; + } + .company-agent-add-form .editor-actions button { + font-size: 10px; padding: 4px 10px; border-radius: 5px; cursor: pointer; + background: var(--surface); color: var(--text-primary); + border: 1px solid var(--border); + } + .company-agent-add-form .editor-actions button.primary { + background: var(--accent); border-color: var(--accent); color: #fff; + } + /* Per-phase company turn header in chat. */ .company-phase-card { border: 1px solid var(--border); @@ -684,6 +721,11 @@ .history-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.8); backdrop-filter: blur(10px); z-index: 1000; display: none; flex-direction: column; padding: 20px; + /* 본문이 뷰포트보다 길어지면 자체 스크롤. companyOverlay의 에이전트 목록처럼 + 동적으로 늘어나는 컨텐츠가 잘리는 문제를 막는다. + `historyOverlay`처럼 내부에 별도 스크롤 div를 둔 곳도 있는데 + 그쪽은 본인 wrapper가 우선이라 영향 없음. */ + overflow-y: auto; } .history-overlay.visible { display: flex; } diff --git a/media/sidebar.html b/media/sidebar.html index 8d4e191..b754769 100644 --- a/media/sidebar.html +++ b/media/sidebar.html @@ -165,10 +165,104 @@
활성 에이전트 + 모델
CEO는 항상 활성. 각 에이전트별로 모델을 따로 지정할 수 있습니다 — 다른 모델을 쓸 때만 LM Studio가 swap합니다.
+
+ +
    + +
    +
    새 에이전트 추가
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    + + +
    +
    +
    +
    워크 파이프라인
    +
    CEO 자유 분배 대신 사용자가 정한 stage 순서대로 dispatch합니다. loop-back 정규식이 매칭되면 이전 stage로 되돌아갑니다 (최대 maxIterations 회).
    +
    +
    + +
    +
    +
    + + +
    +
      +
      + + +
      +
      파이프라인 편집
      +
      + + + +
      +
      + 예시: + [{"id":"plan","label":"기획","agentId":"writer","instructionTemplate":"{{userPrompt}} 에 대한 기획서 작성"},{"id":"dev","label":"개발","agentId":"developer","instructionTemplate":"다음 기획대로 구현: {{stage.plan}}","loopBackPattern":"버그|오류|fail","loopBackTo":"plan","maxIterations":3}] +
      +
      + + +
      +
      +
      +