From b2cc5b9a96dc720835d62888d7decd1ff05a0614 Mon Sep 17 00:00:00 2001 From: g1nation Date: Thu, 11 Jun 2026 13:42:24 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20.astra=20=EB=9F=B0=ED=83=80=EC=9E=84?= =?UTF-8?q?=20=EC=83=81=ED=83=9C=C2=B7chronicle=20=EA=B8=B0=EB=A1=9D=20?= =?UTF-8?q?=EB=8F=99=EA=B8=B0=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- .astra/project-context/architecture.md | 77 ++-- .astra/project-context/scan-cache.json | 404 +++++++++++++++--- ...cde86955f34dda22a6e02b95c9adc0a456927.json | 2 +- ...c10d377a9fef641dd359504b8d53aecd0a4c3.json | 4 +- .../tests/engine/.astra/missions/wiki_on.json | 6 +- ...b3d9d44f32b0e4cd024b2e055db3a0d34417e.json | 2 +- ...973124fb64ba505f767c53a783833bbc3fa6a.json | 2 +- ...0e6575e54853929e991e579e318f2f5a19030.json | 2 +- ...b73b3a5a01af5d82391ec29a25bd72b8239a5.json | 2 +- ...son => stress_conflict_1781152593224.json} | 20 +- docs/records/ConnectAI/chronicle.config.json | 2 +- ...ํ•ด์ฃผ๋ฉด-์ข‹๊ฒ ์–ด-์ง€๊ธˆ-๋„ˆ์˜-๊ธฐ๋Šฅ์—์„œ-์–ด๋– ํ•œ-๋ถ€๋ถ„์ด-๋”.md | 19 + docs/records/ConnectAI/timeline.md | 3 + 13 files changed, 427 insertions(+), 118 deletions(-) rename .astra/tests/stress/.astra/missions/{stress_conflict_1781085029821.json => stress_conflict_1781152593224.json} (75%) create mode 100644 docs/records/ConnectAI/decisions/ADR-0033-e-wiki-connectai-์ง€๊ธˆ-์ฝ”๋“œ-๊ฐœ์„ -์ค‘์ธ๋ฐ-๋ถ„์„ํ•ด์ฃผ๋ฉด-์ข‹๊ฒ ์–ด-์ง€๊ธˆ-๋„ˆ์˜-๊ธฐ๋Šฅ์—์„œ-์–ด๋– ํ•œ-๋ถ€๋ถ„์ด-๋”.md diff --git a/.astra/project-context/architecture.md b/.astra/project-context/architecture.md index 730404c..0aad35e 100644 --- a/.astra/project-context/architecture.md +++ b/.astra/project-context/architecture.md @@ -3,15 +3,15 @@ ## Snapshot -- **Workspace**: `connectai` `v2.2.210` _(absolute path varies by environment; resolved from the active VS Code workspace)_ +- **Workspace**: `connectai` `v2.2.212` _(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**: 441 source files, ~71,522 lines across 5 top-level modules. +- **Stats**: 469 source files, ~76,324 lines across 5 top-level modules. ## Last Refresh -- **Time**: 2026-06-09T02:20:50.409Z -- **Files newly analysed**: 3 -- **Files reused from cache**: 438 +- **Time**: 2026-06-11T04:29:35.678Z +- **Files newly analysed**: 5 +- **Files reused from cache**: 464 ## Directory Map ```mermaid @@ -23,7 +23,7 @@ mindmap agent/ lib/ retrieval/ - core/ + intelligence/ media/ tests/ helpers/ @@ -40,11 +40,11 @@ mindmap > Arrows: which top-level module imports from which. ```mermaid flowchart LR - src["src/
280 files"] + src["src/
298 files"] media["media/
6 files"] - tests["tests/
37 files"] + tests["tests/
45 files"] core_py["core_py/
6 files"] - docs["docs/
112 files"] + docs["docs/
114 files"] tests --> src ``` @@ -67,26 +67,26 @@ flowchart LR ## Modules -### `src/` โ€” 280 files, ~53,526 lines +### `src/` โ€” 298 files, ~56,880 lines **Sub-directories** -- `src/features/` (103) โ€” Astra Office โ€” public API. ๋‹ค์Œ ์„ธ์…˜์—์„œ ์ถ”๊ฐ€๋  OfficeSnapshot presenter / schema ๋„ ๊ฐ™์€ entry ๋กœ ๋…ธ์ถœ ์˜ˆ์ •. ํ˜„์žฌ ๋…ธ์ถœ: full webview panel H +- `src/features/` (105) โ€” Astra Office โ€” public API. ๋‹ค์Œ ์„ธ์…˜์—์„œ ์ถ”๊ฐ€๋  OfficeSnapshot presenter / schema ๋„ ๊ฐ™์€ entry ๋กœ ๋…ธ์ถœ ์˜ˆ์ •. ํ˜„์žฌ ๋…ธ์ถœ: full webview panel H - `src/sidebar/` (35) โ€” Brain profile lifecycle ์˜ pure helpers โ€” sidebarProvider ์˜ add/edit/delete ํ๋ฆ„์—์„œ modal UI ์™€ config ์“ฐ๊ธฐ๋ฅผ ์ œ์™ธํ•œ ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜ ๋งŒ ๊ฒฉ๋ฆฌ. ํ˜„ - `src/agent/` (29) โ€” Post-answer hook registry โ€” ๋‹ต๋ณ€ ์™„๋ฃŒ ํ›„ ์‹คํ–‰๋˜๋Š” ๋ถ€๊ฐ€ ์ž‘์—… ๋ชจ์Œ. ์ƒˆ hook ์ถ”๊ฐ€ = 1 ๊ฐ์ฒด push. agent.ts ๋Š” ์ด ๋ฐฐ์—ด์„ iterate ๋งŒ ํ•จ. ํ˜„์žฌ ๋“ฑ๋ก ์ˆœ์„œ (v2.2.1 - `src/lib/` (29) โ€” Astra Mode Architecture Context Builder. ์˜๋„: ์‚ฌ์šฉ์ž๊ฐ€ Astra ์ž์ฒด์˜ mode ๋””์ž์ธ (Guard vs Multi-Agent ๊ฐ€ ๋ณ„๋„ ๋ชจ๋“œ์—ฌ์•ผ ํ•˜๋Š”์ง€) ์„ ๋ฌป๋Š” ๋ฉ”ํƒ€ ์งˆ๋ฌธ์— ๋‹ตํ•  - `src/retrieval/` (18) โ€” Actionability Scoring โ€” ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ "ํ˜„์žฌ ์ž‘์—… ์ƒํƒœ" ์‹ ํ˜ธ๋กœ ์žฌ๊ฐ€์ค‘. ๊ธฐ์กด TF-IDF (๋‹จ์–ด ๋งค์นญ) + recency (์‹œ๊ฐ„) ๋งŒ์œผ๋กœ๋Š” "์ง€๊ธˆ ์ด ์‚ฌ์šฉ์ž๊ฐ€ ํ•˜๊ณ  ์žˆ๋Š” ์ž‘์—…๊ณผ ์ง์ ‘ ์—ฐ๊ฒฐ ๋œ ๋ฌธ์„œ +- `src/intelligence/` (16) โ€” Confidence Engine โ€” ๋‹ต๋ณ€ ํ™•์‹ ๋„ 0~100 ๊ฒฐ์ •๋ก ์  ์‚ฐ์ถœ. Self-Evolving OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ Phase 2 / Track 1-1. ์‹ ๋ขฐ ์กฐ๊ฑด T4 "ํ™•์‹ ์ด ์—†์œผ๋ฉด ์‚ฌ๋žŒ์—๊ฒŒ ๋ฌป๋Š”๋‹ค" ์˜ ์ธก์ • - `src/core/` (15) โ€” Astra Path Resolver (๊ฒฝ๋กœ ํ•ด๊ฒฐ๊ธฐ) Astra์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ํŒŒ์ผ(.astra ๋””๋ ‰ํ† ๋ฆฌ)์˜ ๊ฒฝ๋กœ๋ฅผ ์ค‘์•™์—์„œ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์˜ ์„ค์น˜ ๊ฒฝ๋กœ(extensionUri) ๊ธฐ๋ฐ˜์œผ๋กœ .astra ๋””๋ ‰ํ†  - `src/extension/` (9) โ€” 9 files (.ts) - `src/memory/` (9) โ€” Distillation Loop โ€” stale Episodic Memory โ†’ Long-Term "episode-digest" ์Šน๊ธ‰. ๋ฐฐ๊ฒฝ: Episodic Memory ๊ฐ€ ๋ฌดํ•œํžˆ ๋ˆ„์ ๋˜๋ฉด ๊ฒ€์ƒ‰ ๋…ธ์ด์ฆˆ. 30์ผ+ ์ง€ - `src/docs/` (6) โ€” Bug: Edited agent.ts Edited agent.ts Edited agent.ts Edited agent.ts Edited agent.ts ... - `src/integrations/` (6) โ€” 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) -- `src/skills/` (4) โ€” 4 files (.ts) **Key files** - `src/utils.ts` (472 lines) -- `src/config.ts` (585 lines) -- `src/agent.ts` (1503 lines) +- `src/config.ts` (637 lines) +- `src/agent.ts` (1514 lines) - `src/features/company/types.ts` (446 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/core/services.ts` (176 lines) - `src/sidebarProvider.ts` (3180 lines) @@ -98,17 +98,17 @@ flowchart LR - `src/skills/agentKnowledgeMap.ts` (374 lines) - `src/features/datacollect/slashRouter.ts` (201 lines) - `src/retrieval/types.ts` (66 lines) โ€” Retrieval Types (๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ํ†ตํ•ฉ ํƒ€์ž…) ๋ชจ๋“  ๊ฒ€์ƒ‰ ์†Œ์Šค(Brain, Memory, Project, Episode)์˜ ๊ฒฐ๊ณผ๋ฅผ ํ†ตํ•ฉ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. +- `src/intelligence/requirementGraph.ts` (273 lines) โ€” Requirement Graph โ€” ์—…๋ฌด ์œ ํ˜•๋ณ„ ํ•„์ˆ˜ ์š”์†Œ ์ •์˜ + ๊ฐ์ง€ + ์ปค๋ฒ„๋ฆฌ์ง€ ๊ฒ€์‚ฌ. Self-Evolving Digital Employee OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ(docs/SELFEVOLVINGOSMASTERPLAN.md) Phase 1 / Track 2-1. ์‹ ๋ขฐ ์กฐ๊ฑด T3 "ํ’ˆ์งˆ์ด ์ผ๊ด€์ ์ด๋‹ค โ€” ํ•„์ˆ˜ ์š”์†Œ ๋ˆ„๋ฝ ์—†์Œ" ๋‹ด๋‹น. ๋™์ž‘ 2๋‹จ๊ณ„: 1. In - `src/memory/types.ts` (151 lines) โ€” Memory Type Definitions (๋ฉ”๋ชจ๋ฆฌ ํƒ€์ž… ์ •์˜) Astra์˜ 5-Layer Cognitive Memory System์˜ ๋ชจ๋“  ํƒ€์ž…์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. โ‘  Short-Term โ‘ก Long-Term โ‘ข Project โ‘ฃ Procedural โ‘ค Episodic - `src/retrieval/scoring.ts` (541 lines) โ€” Scoring Engine โ€” TF-IDF + Bilingual Tokenizer ๋‹จ์ˆœ includes() ํ‚ค์›Œ๋“œ ๋งค์นญ์„ ๋„˜์–ด์„œ, TF-IDF ๊ฐ€์ค‘์น˜ ๊ธฐ๋ฐ˜์˜ ๋ฌธ์„œ ์Šค์ฝ”์–ด๋ง์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•œ๊ตญ์–ด/์˜์–ด ์–‘๊ตญ์–ด ํ† ํฌ๋‚˜์ด์ €๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. - `src/features/stocks/types.ts` (53 lines) โ€” Stocks ๋ชจ๋“ˆ ๊ณต์œ  ํƒ€์ž…. investresults/targetstocks.json ์Šคํ‚ค๋งˆ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฐ›์•„์„œ, ConnectAI ์˜ /.astra/stocks.json ์œผ๋กœ ์˜ฎ๊ธด ๋’ค ๊ฐ™์€ ํ•„๋“œ๋ช…์„ ์œ ์ง€. ํ•œ๊ธ€ ํ•„๋“œ๋ช…์€ ์‚ฌ์šฉ์ž์˜ ๋„๋ฉ”์ธ ๋ฐ์ดํ„ฐ๋ผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค โ€” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ถฉ๋Œ ํšŒํ”ผ + ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ JSON ํŽธ์ง‘ํ•  ๋•Œ frictio - `src/lib/contextBuilders/promptDetection.ts` (85 lines) โ€” ์‚ฌ์šฉ์ž prompt ์˜ ์˜๋„ ๋ถ„๋ฅ˜ ๋ฅ˜ detection helpers. ๋ชจ๋‘ stateless ์ •๊ทœ์‹ ๋งค์นญ. ์˜› ์ฝ”๋“œ๋Š” agent.ts ์˜ private ๋ฉ”์„œ๋“œ๋กœ ๋ฐ•ํ˜€ ์žˆ์—ˆ๋Š”๋ฐ, system prompt ๋นŒ๋” (buildJarvisProjectBriefContext ๋“ฑ) ๊ฐ€ ์ด๊ฑธ ์˜์กดํ•˜๋ฉด์„œ god-file ์•ˆ์—์„œ ์„œ๋กœ ์–ฝํž˜. ํ—ฌํผ๋งŒ ๋จผ์ € ๋–ผ๋ฉด ์˜์กด ๊ทธ๋ž˜ํ”„๊ฐ€ - `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/intelligence/confidenceEngine.ts` (165 lines) โ€” Confidence Engine โ€” ๋‹ต๋ณ€ ํ™•์‹ ๋„ 0~100 ๊ฒฐ์ •๋ก ์  ์‚ฐ์ถœ. Self-Evolving OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ Phase 2 / Track 1-1. ์‹ ๋ขฐ ์กฐ๊ฑด T4 "ํ™•์‹ ์ด ์—†์œผ๋ฉด ์‚ฌ๋žŒ์—๊ฒŒ ๋ฌป๋Š”๋‹ค" ์˜ ์ธก์ • ๊ธฐ๋ฐ˜ โ€” Escalation Engine ์˜ ์ž…๋ ฅ. ์„ค๊ณ„ ์›์น™ (termValidator ์™€ ๋™์ผ): LLM ํ˜ธ์ถœ ์—†์Œ. ๊ฒ€์ƒ‰ ๊ทธ๋ผ์šด๋”ฉ ์‹ ํ˜ธ(ํ„ด - `src/retrieval/brainIndex.ts` (536 lines) โ€” Brain Index โ€” persistent, mtime-keyed tokenized cache of the Second Brain RAG ๊ฒ€์ƒ‰์€ ๋งค ์งˆ์˜๋งˆ๋‹ค ๋ธŒ๋ ˆ์ธ์˜ ๋ชจ๋“  .md ํŒŒ์ผ์„ ์ฝ๊ณ  ํ† ํฌ๋‚˜์ด์ฆˆํ•ด์„œ TF-IDF ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ–ˆ์Šต๋‹ˆ๋‹ค โ€” ํŒŒ์ผ ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋ฉด ๊ทธ๊ฒŒ ๋ณ‘๋ชฉ์ž…๋‹ˆ๋‹ค. ์ด ๋ชจ๋“ˆ์€ /.astra/brain-index.json ์— - `src/security.ts` (159 lines) - `src/features/secondBrainTrace.ts` (792 lines) -- `src/features/providers/types.ts` (63 lines) โ€” Cloud LLM provider routing โ€” model id prefix โ†’ provider id ๋งคํ•‘. Prefix ๊ทœ์น™: openrouter:anthropic/claude-3.5-sonnet โ†’ { provider: 'openrouter', model: 'anthropic/claude-3.5-sonnet' } anthropic:claude-3-5 -- `src/integrations/telegram/telegramBot.ts` (270 lines) -- `src/lib/contextBuilders/localProjectIntent.ts` (233 lines) +- `src/intelligence/reflectionStore.ts` (162 lines) โ€” Reflection Store โ€” ์—…๋ฌด turn ํšŒ๊ณ  ๊ธฐ๋ก + Failure Pattern ์ง‘๊ณ„. Self-Evolving OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ Phase 1 / Track 2-4 (Reflection Engine v1) + Phase 3 / Track 3-6 (Failure Pattern DB v1 ์‹œ๋“œ). ์‹ ๋ขฐ ์กฐ๊ฑด T5 "๊ฐ™์€ ์‹ค์ˆ˜๋ฅผ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š๋Š”๋‹ค" ์˜ ### `media/` โ€” 6 files, ~7,785 lines @@ -120,7 +120,7 @@ flowchart LR - `media/settings-panel.js` (505 lines) - `media/settings-panel.css` (254 lines) โ€” Stylesheet -### `tests/` โ€” 37 files, ~5,875 lines +### `tests/` โ€” 45 files, ~7,027 lines *Depends on*: `src/` **Sub-directories** @@ -131,29 +131,29 @@ flowchart LR **Key files** - `tests/helpers/mockLLMClient.ts` (112 lines) โ€” MockLLMClient โ€” IAIService ์˜ Mock ๊ตฌํ˜„์ฒด. ์˜๋„: ํšŒ์‚ฌ ๋ชจ๋“œ dispatcher / ChunkedWriter / ceoPlanner ๋“ฑ LLM ์„ ํ˜ธ์ถœํ•˜๋Š” ์ฝ”๋“œ ๊ฒฝ๋กœ๋ฅผ CI ํ™˜๊ฒฝ์—์„œ๋„ ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅํ•˜๊ฒŒ. ์‹ค์ œ Ollama / LM Studio ์—†์ด๋„ ์‘๋‹ต์„ ๋ฏธ๋ฆฌ ์ •์˜ํ•˜๊ฑฐ๋‚˜ ๋™์ ์œผ๋กœ ์ƒ์„ฑ ๊ฐ€๋Šฅ. ์‚ฌ์šฉ ์˜ˆ: const ai = new - `tests/agentEngine.test.ts` (413 lines) โ€” AgentEngine Tests โ€” Chunked Writer Architecture ์˜ˆ์ „ buildup(planner โ†’ researcher โ†’ reflector โ†’ writer โ†’ synthesizer)์„ ๋‹จ์ผ ChunkedWriter ์˜ outline โ†’ section[N] โ†’ polish ๋กœ ๊ต์ฒดํ•œ ๋’ค์˜ ํšŒ๊ท€ ํ…Œ์ŠคํŠธ. ๋‹ค๋ฃจ๋Š” ๋ฒ”์œ„: 1. ErrorC -- `tests/lmStudioLifecycle.test.ts` (326 lines) โ€” 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 +- `tests/lmStudioLifecycle.test.ts` (330 lines) โ€” 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 - `tests/localPathPreflight.test.ts` (520 lines) - `tests/telegramBot.test.ts` (363 lines) โ€” 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 +- `tests/criticReflectionEval.test.ts` (200 lines) โ€” Critic Agent / Reflection Store / Task Eval Harness (Self-Evolving OS P1 ์ž”์—ฌ + P3) ํ…Œ์ŠคํŠธ. - `tests/lmStudioStreamer.test.ts` (222 lines) โ€” 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. - `tests/secondBrainTrace.test.ts` (407 lines) - `tests/approvalQueue.test.ts` (164 lines) โ€” 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. +- `tests/confidenceEngine.test.ts` (175 lines) โ€” Confidence Engine + Escalation Engine (Self-Evolving OS Phase 2) ๋‹จ์œ„ ํ…Œ์ŠคํŠธ. ์ˆœ์ˆ˜ ํ•จ์ˆ˜๋งŒ ๊ฒ€์ฆ โ€” vscode ์˜์กด ์—†์Œ. +- `tests/knowledgeOps.test.ts` (174 lines) โ€” Knowledge Validation / Belief Revision / Decay / Debt (Self-Evolving OS Phase 4 โ€” ์ง€์‹ ์šด์˜) ํ…Œ์ŠคํŠธ. +- `tests/needEngineQueue.test.ts` (159 lines) โ€” Gap Detector / Need Engine / Knowledge Inventory / Learning Queue (Self-Evolving OS Phase 3 โ€” ์„ฑ์žฅ ๋ฃจํ”„ ์ฝ”์–ด) ํ…Œ์ŠคํŠธ. - `tests/projectScaffolder.test.ts` (135 lines) โ€” Unit tests for FileSystemProjectScaffolder. Drives against a real temp directory so end-to-end file IO + path-traversal defenses are exercised. +- `tests/requirementGraph.test.ts` (126 lines) โ€” Requirement Graph (Self-Evolving OS Phase 1 / Track 2-1) ๋‹จ์œ„ ํ…Œ์ŠคํŠธ. ์ˆœ์ˆ˜ ํ•จ์ˆ˜๋งŒ ๊ฒ€์ฆ โ€” vscode ์˜์กด ์—†์Œ. +- `tests/researchSkill.test.ts` (122 lines) โ€” Research Agent / Skill Score / Success Pattern DB (Self-Evolving OS Phase 6) ํ…Œ์ŠคํŠธ. - `tests/resilience_stress.test.ts` (197 lines) โ€” Resilience & Boundary Stress Test Suite (v2.77.3) ์ด ํ…Œ์ŠคํŠธ๋Š” ConnectAI ์—”์ง„์ด ๊ทนํ•œ์˜ ํ™˜๊ฒฝ(์ธ์ฆ ์‹คํŒจ, ๋„คํŠธ์›Œํฌ ์ฐจ๋‹จ, ํƒ€์ž„์•„์›ƒ ๋“ฑ)์—์„œ ์–ผ๋งˆ๋‚˜ ์•ˆ์ •์ ์œผ๋กœ ๋ณต๊ตฌ๋˜๊ณ , ์‹ ๋ขฐ์„ฑ ์ง€ํ‘œ(Resilience Metrics)๋ฅผ ์ •ํ™•ํžˆ ๊ธฐ๋กํ•˜๋Š”์ง€ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. - `tests/skillInjectionService.test.ts` (172 lines) โ€” 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 +- `tests/stocksCriteria.test.ts` (129 lines) โ€” criteriaEval โ€” /stocks judge ๊ฒฐ์ •๋ก  ํ‰๊ฐ€๊ธฐ ํ…Œ์ŠคํŠธ. ํ”ฝ์Šค์ฒ˜๋Š” ์˜› LLM ํ”„๋กฌํ”„ํŠธ์— ๋ช…์‹œ๋ผ ์žˆ๋˜ ์‚ฌ์šฉ์ž์˜ ์‹ค์ œ ๋ถ„๋ฅ˜ ์˜ˆ์‹œ 3์ข… (๋งˆ๋…€๊ณต์žฅ/๊ธฐ๊ฐ€๋น„์Šค/์—”์ผ) โ€” ์ฝ”๋“œ ํŒ์ •์ด ์‚ฌ์šฉ์ž ํŒจํ„ด๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•œ๋‹ค. +- `tests/conflictCheck.test.ts` (63 lines) โ€” Schedule Conflict Check (Self-Evolving OS Track 6-2/6-3) ํ…Œ์ŠคํŠธ. - `tests/dataProcessor.test.ts` (87 lines) โ€” / - `tests/findBrainFilesCache.test.ts` (80 lines) โ€” Unit tests for findBrainFiles TTL cache. - `tests/integration/mockLLMClient.test.ts` (86 lines) โ€” MockLLMClient ์ž์ฒด์˜ sanity test. ์ด๊ฒŒ ํ†ต๊ณผํ•˜๋ฉด dispatcher / ceoPlanner / ChunkedWriter ๋“ฑ IAIService ๋ฅผ ๋ฐ›๋Š” ์ฝ”๋“œ๊ฐ€ ์‹ค์ œ LLM ์—†์ด ๋‹จ์œ„ / integration ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ. ํ–ฅํ›„ dispatcher ์˜ multi-stage flow ๊ฐ™์€ ํฐ integration ํ…Œ์ŠคํŠธ๋Š” ์ด mock ์„ - `tests/officeSchema.test.ts` (241 lines) - `tests/paths.test.ts` (84 lines) โ€” Unit tests for the centralized path resolver. - `tests/systemSpecs.test.ts` (90 lines) โ€” Unit tests for SystemSpecs + HeuristicModelMemoryEstimator. Strategy: - HeuristicModelMemoryEstimator is pure โ€” directly drive it with model ids. - NodeSystemSpecsProvider depends on os. so we test: a -- `tests/transaction.test.ts` (68 lines) โ€” / -- `tests/vulnerability.test.ts` (60 lines) โ€” / -- `tests/brainIndex.test.ts` (107 lines) -- `tests/calendarApi.test.ts` (131 lines) -- `tests/contextManager.test.ts` (149 lines) -- `tests/icsParser.test.ts` (134 lines) -- `tests/lessonHelpers.test.ts` (191 lines) -- `tests/projectChronicle.test.ts` (199 lines) ### `core_py/` โ€” 6 files, ~409 lines @@ -165,17 +165,18 @@ flowchart LR - `core_py/optimizer.py` (55 lines) - `core_py/queue_worker.py` (82 lines) -### `docs/` โ€” 112 files, ~3,927 lines +### `docs/` โ€” 114 files, ~4,223 lines **Sub-directories** -- `docs/records/` (99) โ€” Bug: /Volumes/Data/project/Antigravity/ConnectAI ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ํ•ด์ค„ ์ˆ˜ ์žˆ์–ด? ๊ฐœ์„ ํ•  ๋ถ€๋ถ„์ด ์žˆ๋Š”์ง€, ๊ทธ๋Ÿฌ๊ณ ... +- `docs/records/` (100) โ€” Bug: /Volumes/Data/project/Antigravity/ConnectAI ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ํ•ด์ค„ ์ˆ˜ ์žˆ์–ด? ๊ฐœ์„ ํ•  ๋ถ€๋ถ„์ด ์žˆ๋Š”์ง€, ๊ทธ๋Ÿฌ๊ณ ... - `docs/docs/` (5) โ€” Bug: Viewed integrationretrieval.test.ts:1-59 integrationretrieval.test.ts๋ฅผ ํ†ตํ•ด ... - `docs/Meeting/` (0) **Key files** - `docs/TELEGRAM_REMOTE_EXECUTION_PLAN.md` (452 lines) โ€” Telegram Remote Execution ๊ธฐํš์„œ - `docs/AgentEngine_Architecture.md` (314 lines) โ€” AgentEngine Architecture Document -- `docs/records/ConnectAI/timeline.md` (248 lines) โ€” Project Timeline +- `docs/records/ConnectAI/timeline.md` (251 lines) โ€” Project Timeline +- `docs/SELF_EVOLVING_OS_MASTER_PLAN.md` (274 lines) โ€” ASTRA Self-Evolving Digital Employee OS โ€” ๋งˆ์Šคํ„ฐ ๊ฐœ๋ฐœ ๊ณ„ํš v1.1 - `docs/ASTRA_OFFICE_REFACTOR.md` (198 lines) โ€” Astra Office Refactor โ€” Design Doc - `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 @@ -197,14 +198,18 @@ flowchart LR - `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 ํ”„๋กœ์ ํŠธ์—๋งŒ ์™„์ „ํžˆ ์ง‘์ค‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ... ## VS Code Extension Surface - **Extension ID**: `g1nation.astra` - **Activation events**: `onStartupFinished` -- **Commands** (31): +- **Commands** (36): - `g1nation.newChat` โ€” Astra: New Chat - `g1nation.eval.retrieval` โ€” Astra: ๊ฒ€์ƒ‰ ํ‰๊ฐ€ ์‹คํ–‰ (recall@k / MRR) + - `g1nation.eval.tasks` โ€” Astra: ์—…๋ฌด ํ‰๊ฐ€ ์‹คํ–‰ (ํšŒ์˜๋ก ๊ณจ๋“ ์…‹) + - `g1nation.growth.report` โ€” Astra: ์„ฑ์žฅ ๋ฆฌํฌํŠธ (Reflection ์ถ”์ด) + - `g1nation.growth.learningQueue` โ€” Astra: ํ•™์Šต ํ ๊ฐฑ์‹  (Need Engine) + - `g1nation.knowledge.decayAudit` โ€” Astra: ์ง€์‹ ๋…ธํ›„ ์ ๊ฒ€ (Knowledge Decay) + - `g1nation.research.runQueue` โ€” Astra: ํ•™์Šต ์‹คํ–‰ (Research Agent โ€” ์Šน์ธ๋œ ํ ํ•ญ๋ชฉ) - `g1nation.embeddings.backfill` โ€” Astra: ๋‘๋‡Œ ์ž„๋ฒ ๋”ฉ ์ „์ฒด ์ƒ‰์ธ - `g1nation.exportChat` โ€” Astra: Export Chat as Markdown - `g1nation.explainSelection` โ€” Astra: Explain Selected Code @@ -234,7 +239,7 @@ flowchart LR - `g1nation.calendar.refresh` โ€” Astra: Google Calendar ์ƒˆ๋กœ๊ณ ์นจ ๐Ÿ“… - `g1nation.calendar.connectOAuth` โ€” Astra: Google Calendar OAuth ์—ฐ๊ฒฐ (์“ฐ๊ธฐ) ๐Ÿ” - `g1nation.devilAgent.toggle` โ€” Astra: Toggle Devil Agent ๐ŸŽญ -- **Configuration** (129 settings): +- **Configuration** (138 settings): - `g1nation.multiAgentEnabled` *(boolean)* _(default: `false`)_ โ€” Enable Multi-Agent Workflow (Planner -> Researcher -> Writer) for complex tasks. - `g1nation.datacollectBridgeTarget` *(string)* _(default: `"local"`)_ - `g1nation.datacollectBridgeUrl` *(string)* _(default: `"http://127.0.0.1:3002"`)_ โ€” [local ํƒ€๊นƒ] Wiki/Datacollect MCP Bridge URL. /benchmark, /youtube, /wikify chat slash commands route here. The Bridge must be running (`npm run bridge` in the Datacollect project). @@ -247,6 +252,7 @@ flowchart LR - `g1nation.chatTemperature` *(number)* _(default: `0.3`)_ - `g1nation.meetUsesTasks` *(boolean)* _(default: `true`)_ - `g1nation.meetUsesCalendar` *(boolean)* _(default: `false`)_ + - `g1nation.meetVerifyPass` *(boolean)* _(default: `false`)_ - `g1nation.teamVoiceGuide` *(string)* _(default: `""`)_ - `g1nation.memoryEnabled` *(boolean)* _(default: `true`)_ โ€” Enable layered memory injection before each model response. - `g1nation.memoryShortTermMessages` *(number)* _(default: `8`)_ โ€” Number of recent conversation messages included as short-term memory. @@ -294,8 +300,7 @@ flowchart LR - `g1nation.skillKnowledgeMapPath` *(string)* _(default: `""`)_ โ€” Absolute path to the agent โ†” knowledge mapping JSON. When empty, defaults to '/.astra/agent-knowledge-map.json'. - `g1nation.skillKnowledgeMap` *(object)* _(default: `{}`)_ โ€” Inline fallback for the agent โ†” knowledge mapping. Used only when the JSON file is missing. Shape: { defaultAgent?, agents: [{ name, knowledgeFolders, model?, description? }] }. Folder paths can be ab - `g1nation.agentSkillsPath` *(string)* _(default: `""`)_ โ€” Absolute path to the agent skills folder (`.agent/skills/*.md`). When empty, defaults to '/.agent/skills'. Use this on Windows or when your skills live outside the workspace. - - `g1nation.embeddingModel` *(string)* _(default: `""`)_ โ€” Embedding model registered in LM Studio / Ollama (e.g. 'text-embedding-bge-small-en-v1.5', 'nomic-embed-text', 'multilingual-e5-small'). When empty, Astra uses TF-IDF only. When set, the brain is embe - - _โ€ฆand 69 more_ + - _โ€ฆand 78 more_ ## Dependencies - **Runtime** (2): `@lmstudio/sdk`, `pdf-parse` @@ -343,7 +348,7 @@ Astra๋Š” ๋Œ€ํ‘œ๋‹˜์˜ ๋ช…์‹œ์ ์ธ ์Šน์ธ ํ•˜์— ๋กœ์ปฌ ์‹œ์Šคํ…œ์˜ ๊ฐ•๋ ฅํ•œ **Designed for High-Performance Decision Making.** Copyright (C) **g1nation**. All rights reserved. -_Last auto-scan: 2026-06-09T02:20:50.409Z ยท signature `18ddda74`_ +_Last auto-scan: 2026-06-11T04:29:35.678Z ยท signature `84d17da6`_ ## Purpose diff --git a/.astra/project-context/scan-cache.json b/.astra/project-context/scan-cache.json index 5180f0f..363ff39 100644 --- a/.astra/project-context/scan-cache.json +++ b/.astra/project-context/scan-cache.json @@ -1,6 +1,6 @@ { "version": 1, - "generatedAt": "2026-06-09T02:20:50.597Z", + "generatedAt": "2026-06-11T04:29:35.747Z", "files": { "src/agent/actions/brainOps.ts": { "mtimeMs": 1779764602582.9768, @@ -14,14 +14,15 @@ ] }, "src/agent/actions/calendar.ts": { - "mtimeMs": 1779764602583.981, - "size": 2264, - "lines": 43, + "mtimeMs": 1781152132419.819, + "size": 3755, + "lines": 66, "role": "", "imports": [ "src/agent/actions/types", "src/agent/attrParsers", - "src/features/calendar" + "src/features/calendar", + "src/features/calendar/conflictCheck" ] }, "src/agent/actions/fileCreateEdit.ts": { @@ -100,9 +101,9 @@ ] }, "src/agent/attrParsers.ts": { - "mtimeMs": 1779764602587.8208, - "size": 4724, - "lines": 116, + "mtimeMs": 1781152115192.5432, + "size": 4985, + "lines": 121, "role": "", "imports": [ "src/features/tasks", @@ -299,24 +300,33 @@ ] }, "src/agent/postAnswerHooks/index.ts": { - "mtimeMs": 1780278997000.157, - "size": 3900, - "lines": 96, + "mtimeMs": 1781147845848.1248, + "size": 11486, + "lines": 243, "role": "Post-answer hook registry โ€” ๋‹ต๋ณ€ ์™„๋ฃŒ ํ›„ ์‹คํ–‰๋˜๋Š” ๋ถ€๊ฐ€ ์ž‘์—… ๋ชจ์Œ. ์ƒˆ hook ์ถ”๊ฐ€ = 1 ๊ฐ์ฒด push. agent.ts ๋Š” ์ด ๋ฐฐ์—ด์„ iterate ๋งŒ ํ•จ. ํ˜„์žฌ ๋“ฑ๋ก ์ˆœ์„œ (v2.2.197): 1. devilRebuttal โ€” Devil Agent ๋ฐ˜๋ฐ• ์นด๋“œ (๋น„ํ™œ์„ฑ ์‹œ silent skip) 2. postHocSelfChec", "imports": [ "src/agent/postAnswerHooks/types", "src/agent/llm/devilRebuttal", "src/agent/postHocSelfCheck", "src/agent/termValidator", + "src/intelligence/requirementGraph", + "src/intelligence/confidenceEngine", + "src/intelligence/escalationEngine", + "src/intelligence/criticAgent", + "src/intelligence/reflectionStore", + "src/intelligence/gapDetector", + "src/intelligence/skillScore", "src/config" ] }, "src/agent/postAnswerHooks/types.ts": { - "mtimeMs": 1780278967597.8257, - "size": 2001, - "lines": 48, + "mtimeMs": 1781144501440.8574, + "size": 2345, + "lines": 52, "role": "Post-Answer Hook ์ธํ„ฐํŽ˜์ด์Šค โ€” ๋‹ต๋ณ€ streaming ์™„๋ฃŒ ํ›„ ์‹คํ–‰๋˜๋Š” ๋ถ€๊ฐ€ ์ž‘์—…. ์˜› ๊ตฌ์กฐ: agent.ts ์˜ maybeEmitDevilRebuttal, maybePostHocSelfCheck, maybeRunTermValidator 3๊ฐœ private method. ์ƒˆ hook ์ถ”๊ฐ€ ์‹œ (1) method ์ •์˜ (2) import (3)", - "imports": [] + "imports": [ + "src/intelligence/confidenceEngine" + ] }, "src/agent/postHocSelfCheck.ts": { "mtimeMs": 1780033021215.5054, @@ -346,9 +356,9 @@ ] }, "src/agent.ts": { - "mtimeMs": 1780278886140.8762, - "size": 81193, - "lines": 1503, + "mtimeMs": 1781144502524.7754, + "size": 81710, + "lines": 1514, "role": "", "imports": [ "src/utils", @@ -422,6 +432,7 @@ "src/agent/postAnswerHooks", "src/agent/handlePrompt/applyAutoContinuation", "src/features/approval/approvalQueue", + "src/intelligence/confidenceEngine", "src/features/providers", "src/features/selfReflector/selfReflectorExecution", "src/features/selfReflector/selfReflectorHollow" @@ -462,9 +473,9 @@ ] }, "src/config.ts": { - "mtimeMs": 1780910530256.6797, - "size": 32937, - "lines": 585, + "mtimeMs": 1781147453907.465, + "size": 35924, + "lines": 637, "role": "", "imports": [] }, @@ -648,9 +659,9 @@ ] }, "src/extension/evalCommands.ts": { - "mtimeMs": 1780913394558.156, - "size": 12681, - "lines": 228, + "mtimeMs": 1781147900732.2805, + "size": 29561, + "lines": 521, "role": "", "imports": [ "src/config", @@ -658,7 +669,18 @@ "src/retrieval", "src/retrieval/brainIndex", "src/retrieval/embeddings", - "src/retrieval/evalHarness" + "src/retrieval/evalHarness", + "src/intelligence/taskEvalHarness", + "src/intelligence/requirementGraph", + "src/intelligence/epistemicGuardBlock", + "src/intelligence/llmCall", + "src/intelligence/reflectionStore", + "src/intelligence/needEngine", + "src/intelligence/knowledgeDecay", + "src/intelligence/skillScore", + "src/intelligence/researchAgent", + "src/intelligence/knowledgeValidation", + "src/intelligence/learningQueue" ] }, "src/extension/initialSetup.ts": { @@ -889,14 +911,21 @@ ] }, "src/features/calendar/calendarCache.ts": { - "mtimeMs": 1779065453870.9949, - "size": 12065, - "lines": 241, + "mtimeMs": 1781152082335.483, + "size": 13392, + "lines": 271, "role": "Google Calendar (iCal) ์บ์‹œ โ€” fetch + parse + ํšŒ์‚ฌ shared/calendarcache.md ์— ์ €์žฅ. Connectorigin ์˜ googlecalendar.py ๋ฅผ TypeScript / native fetch ๋กœ ์˜ฎ๊น€. OAuth ์—†์Œ. ์‚ฌ์šฉ์ž๊ฐ€ Google Calendar ์„ค์ • โ†’ \"๋น„๊ณต๊ฐœ ์ฃผ์†Œ(iCal ํ˜•์‹)\" ๋ณต", "imports": [ "src/features/calendar/icsParser" ] }, + "src/features/calendar/conflictCheck.ts": { + "mtimeMs": 1781152051164.7207, + "size": 3481, + "lines": 81, + "role": "Schedule Conflict Check โ€” ์ผ์ • ์ƒ์„ฑ ์ „ ๊ธฐ์กด ์ผ์ •๊ณผ์˜ ๊ฒน์นจ ๊ฐ์ง€. Self-Evolving OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ ๋ณ‘๋ ฌ ํŠธ๋ž™ 6-2 + 6-3. Requirement Graph ์˜ ์ผ์ • ํ•„์ˆ˜ ์š”์†Œ \"์ถฉ๋Œ ํ™•์ธ\" ๊ณผ Constitution \"์Šน์ธ ์—†๋Š” ์™ธ๋ถ€ ์•ก์…˜ ๊ธˆ์ง€\" ์˜ ์‹คํ–‰ ๊ณ„์ธต: - ์—์ด์ „ํŠธ๊ฐ€ ๋กœ ", + "imports": [] + }, "src/features/calendar/icsParser.ts": { "mtimeMs": 1779065453870.9949, "size": 4937, @@ -905,13 +934,14 @@ "imports": [] }, "src/features/calendar/index.ts": { - "mtimeMs": 1779879082214.362, - "size": 711, - "lines": 40, + "mtimeMs": 1781152148411.5476, + "size": 877, + "lines": 48, "role": "", "imports": [ "src/features/calendar/icsParser", "src/features/calendar/calendarCache", + "src/features/calendar/conflictCheck", "src/features/calendar/oauth", "src/features/calendar/calendarApi", "src/features/calendar/tasksApi" @@ -1172,9 +1202,9 @@ "imports": [] }, "src/features/datacollect/handlers.ts": { - "mtimeMs": 1780624678671.3047, - "size": 35540, - "lines": 666, + "mtimeMs": 1781084265385.7295, + "size": 39566, + "lines": 724, "role": "Datacollect handlers โ€” /benchmark ยท /youtube ยท /blog ยท /wikify ยท /meet. (/research(NotebookLM)๋Š” v2.2.205 ์—์„œ ์ œ๊ฑฐ โ€” ๋กœ์ปฌ Datacollect ์•ฑ ์ „์šฉ์œผ๋กœ ๋ถ„๋ฆฌ) v2.2.201 ์—์„œ slashRouter.ts ์—์„œ ๋ถ„๋ฆฌ. Datacollect bridge (port 30", "imports": [ "src/features/datacollect/slashRouter", @@ -1198,9 +1228,9 @@ ] }, "src/features/datacollect/prompts/meetPrompt.ts": { - "mtimeMs": 1780626429387.7917, - "size": 7379, - "lines": 95, + "mtimeMs": 1781084257519.8074, + "size": 12477, + "lines": 194, "role": "ํšŒ์˜ ๋…น์ทจ ํ…์ŠคํŠธ โ†’ ์‚ฌ์‹ค ๊ธฐ๋ฐ˜ ๊ตฌ์กฐํ™” ํšŒ์˜๋ก(Actionable Minutes) LLM ํ”„๋กฌํ”„ํŠธ. ์‚ฌ์šฉ์ž ์ •์˜ ๊ทœ์น™: Fact/Discussion/Decision/Risk/Action ๋ถ„๋ฅ˜, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์šฐ์„ .", "imports": [] }, @@ -1540,6 +1570,16 @@ "src/features/calendar/calendarApi" ] }, + "src/features/stocks/criteriaEval.ts": { + "mtimeMs": 1781086243443.0957, + "size": 12293, + "lines": 209, + "role": "/stocks judge ์˜ ๊ฒฐ์ •๋ก ์  ๊ธฐ์ค€ ํ‰๊ฐ€๊ธฐ. ๊ธฐ์กด์—๋Š” \"์œ ๋ณด์œจ: 5,800%\" ๊ฐ™์€ ๋ฌธ์ž์—ด ํŒŒ์‹ฑ๊ณผ ์ž„๊ณ„๊ฐ’ ๋น„๊ต(ROE โ‰ฅ 10% ๋“ฑ)๊นŒ์ง€ ์ „๋ถ€ LLM ์—๊ฒŒ ๋งก๊ฒผ๋Š”๋ฐ, ๋กœ์ปฌ ์†Œํ˜• ๋ชจ๋ธ์€ ์ฝค๋งˆ ์ˆซ์ž ํŒŒ์‹ฑยท๋‹ค์ค‘ ๊ธฐ์ค€ ๋™์‹œ ๋น„๊ต์—์„œ ์ž์ฃผ ํ‹€๋ฆฐ๋‹ค. ์ˆ˜์น˜ ๊ธฐ์ค€์€ ์ฝ”๋“œ๋กœ 100% ์ •ํ™•ํ•˜๊ฒŒ ๊ณ„์‚ฐํ•˜๊ณ , LLM ์€ โ‘  '๊ธฐ์ˆ ๋ ฅ' ๋„๋ฉ”์ธ ์ •์„ฑ ํŒ๋‹จ(ํ‚ค์›Œ๋“œ ๋งค์นญ์ด ๋ชจํ˜ธํ• ", + "imports": [ + "src/features/stocks/types", + "src/features/stocks/naverFundamentals" + ] + }, "src/features/stocks/discoveryAnalyzer.ts": { "mtimeMs": 1779764602625.2075, "size": 10526, @@ -1564,21 +1604,22 @@ ] }, "src/features/stocks/llmJudge.ts": { - "mtimeMs": 1779764602626.2107, - "size": 7011, - "lines": 127, + "mtimeMs": 1781084049810.22, + "size": 6072, + "lines": 125, "role": "", "imports": [ "src/core/services", "src/utils", "src/features/stocks/stocksStore", - "src/features/stocks/types" + "src/features/stocks/criteriaEval", + "src/features/stocks/naverFundamentals" ] }, "src/features/stocks/naverFundamentals.ts": { - "mtimeMs": 1779764602626.2107, - "size": 7238, - "lines": 161, + "mtimeMs": 1781086142605.6724, + "size": 8323, + "lines": 178, "role": "", "imports": [ "src/utils" @@ -1616,9 +1657,9 @@ ] }, "src/features/stocks/slashStocks.ts": { - "mtimeMs": 1779857133519.0603, - "size": 33999, - "lines": 621, + "mtimeMs": 1781084110909.264, + "size": 34650, + "lines": 629, "role": "", "imports": [ "src/utils", @@ -1874,6 +1915,137 @@ "role": "Subset of the Telegram Bot API types we actually consume. Source: https://core.telegram.org/bots/api Only fields the bot reads or writes are typed โ€” leaving the rest as unknown keeps the surface narro", "imports": [] }, + "src/intelligence/confidenceEngine.ts": { + "mtimeMs": 1781142298902.0667, + "size": 6993, + "lines": 165, + "role": "Confidence Engine โ€” ๋‹ต๋ณ€ ํ™•์‹ ๋„ 0~100 ๊ฒฐ์ •๋ก ์  ์‚ฐ์ถœ. Self-Evolving OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ Phase 2 / Track 1-1. ์‹ ๋ขฐ ์กฐ๊ฑด T4 \"ํ™•์‹ ์ด ์—†์œผ๋ฉด ์‚ฌ๋žŒ์—๊ฒŒ ๋ฌป๋Š”๋‹ค\" ์˜ ์ธก์ • ๊ธฐ๋ฐ˜ โ€” Escalation Engine ์˜ ์ž…๋ ฅ. ์„ค๊ณ„ ์›์น™ (termValidator ์™€ ๋™์ผ): LLM ํ˜ธ์ถœ ์—†์Œ. ๊ฒ€์ƒ‰ ๊ทธ๋ผ์šด๋”ฉ ์‹ ํ˜ธ(ํ„ด", + "imports": [] + }, + "src/intelligence/criticAgent.ts": { + "mtimeMs": 1781144246295.8977, + "size": 7294, + "lines": 174, + "role": "Critic Agent + Debate Loop (v1) โ€” ์ œ์ถœ๋œ ์—…๋ฌด ์‚ฐ์ถœ๋ฌผ์˜ LLM ๊ฒ€์ˆ˜. Self-Evolving OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ Phase 1 / Track 2-3. ์‹ ๋ขฐ ์กฐ๊ฑด T3 ์˜ LLM ๊ณ„์ธต: Requirement Coverage(๊ฒฐ์ •๋ก ์ , ์ •๊ทœ์‹) ๊ฐ€ \"์š”์†Œ๊ฐ€ ์–ธ๊ธ‰ ๋๋Š”๊ฐ€\" ๋งŒ ๋ณด๋ฉด, Critic ์€ \"๋‚ด์šฉ์ด ์ถฉ์‹ค ํ•œ๊ฐ€ + ๊ฒฐ์ •/๋ฏธ๊ฒฐ ๊ตฌ", + "imports": [ + "src/intelligence/requirementGraph" + ] + }, + "src/intelligence/epistemicGuardBlock.ts": { + "mtimeMs": 1781142349593.672, + "size": 2559, + "lines": 45, + "role": "Epistemic Guard โ€” ๋ชจ๋ฆ„/์ถ”์ •/ํ™•์‹ค 3๋ถ„๋ฅ˜ ๊ฐ•์ œ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ ๋ธ”๋ก. Self-Evolving OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ Phase 2 / Track 1-3 (Anti-Hallucination Layer). ์‹ ๋ขฐ ์กฐ๊ฑด T1 \"๋ชจ๋ฅด๋ฉด ๋ชจ๋ฅธ๋‹ค๊ณ  ๋งํ•œ๋‹ค\" ๋‹ด๋‹น. CoVe(coveBlock) ์™€์˜ ๋ถ„์—…: - CoVe: ๊ฒ€์ƒ‰ ์ถœ์ฒ˜๊ฐ€ ์žˆ์„ ๋•Œ ์ฃผ์žฅ-์ถœ์ฒ˜ ๋งคํ•‘์„ ", + "imports": [] + }, + "src/intelligence/escalationEngine.ts": { + "mtimeMs": 1781142325031.3643, + "size": 3501, + "lines": 74, + "role": "Escalation Engine โ€” ์ธ๊ฐ„ ๊ฐœ์ž… ํ•„์š”์„ฑ ํŒ๋‹จ. Self-Evolving OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ Phase 2 / Track 1-2. ์‹ ๋ขฐ ์กฐ๊ฑด T4 ์˜ ํ–‰๋™ ๋ถ€๋ถ„: Confidence Engine ์ด \"์–ผ๋งˆ๋‚˜ ํ™•์‹คํ•œ๊ฐ€\" ๋ฅผ ์žฌ๋ฉด, ์ด ๋ชจ๋“ˆ์€ \"๊ทธ๋ž˜์„œ ์‚ฌ๋žŒ์—๊ฒŒ ๋ฌผ์–ด์•ผ ํ•˜๋Š”๊ฐ€\" ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. ์„ค๊ณ„์„œ 13์žฅ ์กฐ๊ฑด: ํ™•์‹ ๋„ ๋‚ฎ์Œ / ์˜ํ–ฅ๋„ ๋†’์Œ / ์ •๋ณด ", + "imports": [ + "src/intelligence/confidenceEngine", + "src/intelligence/requirementGraph" + ] + }, + "src/intelligence/gapDetector.ts": { + "mtimeMs": 1781146607158.5022, + "size": 3135, + "lines": 73, + "role": "Gap Detector โ€” Gap = Requirement โˆ’ Knowledge (์„ค๊ณ„์„œ 7.4). Self-Evolving OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ Phase 3 / Track 3-2. ์—…๋ฌด turn ๋งˆ๋‹ค \"ํ•„์š”ํ•œ ๊ฒƒ\" (Requirement Graph ์˜ ํ•„์ˆ˜ ์š”์†Œ)๊ณผ \"๊ฐ€์ง„ ๊ฒƒ\"(๊ฒ€์ƒ‰ ๊ทธ๋ผ์šด๋”ฉ + ์‚ฐ์ถœ๋ฌผ ์ปค๋ฒ„๋ฆฌ์ง€)์„ ๋น„๊ตํ•ด ๋ถ€์กฑ ์ง€์‹ยท์˜ํ–ฅ๋„ยท๊ธด๊ธ‰๋„๋ฅผ ์‚ฐ์ถœํ•œ๋‹ค", + "imports": [ + "src/intelligence/requirementGraph", + "src/intelligence/confidenceEngine" + ] + }, + "src/intelligence/knowledgeDecay.ts": { + "mtimeMs": 1781147140600.4475, + "size": 5151, + "lines": 110, + "role": "Knowledge Decay โ€” ์ง€์‹ ๋…ธํ›„ ๊ฐ์‡  ์ ๊ฒ€ (์„ค๊ณ„์„œ 10์žฅ, \"์ธ๊ฐ„์ฒ˜๋Ÿผ ์žŠ์–ด๋ฒ„๋ฆฌ๋Š” ๊ธฐ๋Šฅ\"). Self-Evolving OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ Phase 4 / Track 4-3. ๋ถ„์•ผ๋ณ„ ๋ฐ˜๊ฐ๊ธฐ๋กœ ์ง€์‹์˜ ์‹ ์„ ๋„ ๊ณ„์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ๋…ธํ›„ ์ง€์‹์„ ๋ณด๊ณ ์„œ๋กœ ๋…ธ์ถœํ•œ๋‹ค. v1 ์€ ๋น„์นจ์Šต์  ๊ฐ์‚ฌ โ€” ๊ฒ€์ƒ‰ ๋žญํ‚น์€ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. RAG ํ‰๊ฐ€ ํ•˜๋‹ˆ์Šค๋กœ ํŠœ๋‹๋œ ๊ฒ€์ƒ‰ ๊ฒฝ", + "imports": [] + }, + "src/intelligence/knowledgeValidation.ts": { + "mtimeMs": 1781147318275.7917, + "size": 6473, + "lines": 168, + "role": "Knowledge Validation + Belief Revision โ€” ์ง€์‹ ์ €์žฅ ์ „ ๊ฒ€์ฆ (์„ค๊ณ„์„œ 10์žฅ). Self-Evolving OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ Phase 4 / Track 4-1 + 4-2. ์ƒˆ ์ง€์‹ ํ›„๋ณด๋ฅผ ๊ธฐ์กด ์ง€์‹๊ณผ ๋น„๊ตํ•ด ์ˆ˜์šฉ/๊ฒ€ํ† /๊ฑฐ๋ถ€๋ฅผ ํŒ์ •ํ•˜๊ณ , ์ถฉ๋Œ ์‹œ Add/Update/Retire ๊ถŒ๊ณ ๋ฅผ ๋งŒ๋“ ๋‹ค. Constitution ์ค€์ˆ˜: ์ด", + "imports": [] + }, + "src/intelligence/learningQueue.ts": { + "mtimeMs": 1781146722080.366, + "size": 4962, + "lines": 118, + "role": "Learning Queue โ€” ์Šน์ธ ๊ธฐ๋ฐ˜ ํ•™์Šต ๋Œ€๊ธฐ์—ด (์„ค๊ณ„์„œ 9์žฅ). Self-Evolving OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ Phase 3 / Track 3-5. Need Engine ์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์‚ฌ๋žŒ์ด ์Šน์ธ ๊ฐ€๋Šฅํ•œ ํ๋กœ ์˜์†ํ™”ํ•œ๋‹ค. Constitution ์ค€์ˆ˜ (Track 8-2, Permission Based Learning): - ์‹œ์Šคํ…œ์€ ํ•ญ๋ชฉ์„ propose", + "imports": [ + "src/intelligence/needEngine" + ] + }, + "src/intelligence/llmCall.ts": { + "mtimeMs": 1781144318025.0918, + "size": 2099, + "lines": 52, + "role": "๋‹จ์ˆœ non-streaming LLM ํ˜ธ์ถœ โ€” Ollama / LM Studio(OpenAI ํ˜ธํ™˜) ๋“€์–ผ ์—”๋“œํฌ์ธํŠธ. postHocSelfCheck ์˜ ํ˜ธ์ถœ ํŒจํ„ด์„ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ—ฌํผ๋กœ ๋ถ„๋ฆฌ. ํ‰๊ฐ€ ํ•˜๋‹ˆ์ŠคยทCritic ๋“ฑ AgentExecutor ๋ฐ–์—์„œ LLM 1ํšŒ ํ˜ธ์ถœ์ด ํ•„์š”ํ•œ ๊ณณ์ด ์‚ฌ์šฉํ•œ๋‹ค (ํ™•์žฅ ๋ช…๋ น ๋“ฑ). agent turn ๋‚ด๋ถ€์—์„œ๋Š” agent.t", + "imports": [] + }, + "src/intelligence/needEngine.ts": { + "mtimeMs": 1781147322252.6475, + "size": 9219, + "lines": 220, + "role": "Need Engine โ€” ํ•™์Šต ํ•„์š”์„ฑ ์‚ฐ์ถœ (์„ค๊ณ„์„œ 7.6) + Knowledge Inventory v1 (7.3). Self-Evolving OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ Phase 3 / Track 3-3 + 3-1. Reflection ๊ธฐ๋ก์„ ์ง‘๊ณ„ํ•ด \"๋ฌด์—‡์„ ๋จผ์ € ๋ฐฐ์›Œ์•ผ ํ•˜๋Š”๊ฐ€\" ๋ฅผ ์ ์ˆ˜๋กœ ์‚ฐ์ถœํ•œ๋‹ค โ€” ์„ฑ์žฅ ๋ฃจํ”„์˜ ๋‘๋‡Œ. Need Score (์„ค๊ณ„์„œ ๊ณต์‹, 0~1", + "imports": [ + "src/intelligence/reflectionStore" + ] + }, + "src/intelligence/orgMemoryBlock.ts": { + "mtimeMs": 1781147430047.9055, + "size": 2750, + "lines": 68, + "role": "Organizational Memory โ€” ์กฐ์ง ๊ทœ์น™ยทํ”„๋กœ์„ธ์Šคยท์„ ํ˜ธ ๋ฐฉ์‹ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ ๋ธ”๋ก. Self-Evolving OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ Phase 5 / Track 5-2 (์„ค๊ณ„์„œ 11์žฅ Organizational Memory). \"์ด ํšŒ์‚ฌ๋Š” ์†๋„ ์šฐ์„ , ์™„๋ฒฝ์ฃผ์˜ ์ง€์–‘\" ๋ฅ˜์˜ ์กฐ์ง ๋ฌธํ™”ยท์—…๋ฌด ๋ฐฉ์‹์„ ๋ชจ๋“  ์—…๋ฌด turn ์— ์ฃผ์ž…ํ•œ๋‹ค. Terminology", + "imports": [] + }, + "src/intelligence/reflectionStore.ts": { + "mtimeMs": 1781146621996.6653, + "size": 6906, + "lines": 162, + "role": "Reflection Store โ€” ์—…๋ฌด turn ํšŒ๊ณ  ๊ธฐ๋ก + Failure Pattern ์ง‘๊ณ„. Self-Evolving OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ Phase 1 / Track 2-4 (Reflection Engine v1) + Phase 3 / Track 3-6 (Failure Pattern DB v1 ์‹œ๋“œ). ์‹ ๋ขฐ ์กฐ๊ฑด T5 \"๊ฐ™์€ ์‹ค์ˆ˜๋ฅผ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š๋Š”๋‹ค\" ์˜", + "imports": [] + }, + "src/intelligence/requirementGraph.ts": { + "mtimeMs": 1781144397584.8677, + "size": 12495, + "lines": 273, + "role": "Requirement Graph โ€” ์—…๋ฌด ์œ ํ˜•๋ณ„ ํ•„์ˆ˜ ์š”์†Œ ์ •์˜ + ๊ฐ์ง€ + ์ปค๋ฒ„๋ฆฌ์ง€ ๊ฒ€์‚ฌ. Self-Evolving Digital Employee OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ(docs/SELFEVOLVINGOSMASTERPLAN.md) Phase 1 / Track 2-1. ์‹ ๋ขฐ ์กฐ๊ฑด T3 \"ํ’ˆ์งˆ์ด ์ผ๊ด€์ ์ด๋‹ค โ€” ํ•„์ˆ˜ ์š”์†Œ ๋ˆ„๋ฝ ์—†์Œ\" ๋‹ด๋‹น. ๋™์ž‘ 2๋‹จ๊ณ„: 1. In", + "imports": [] + }, + "src/intelligence/researchAgent.ts": { + "mtimeMs": 1781147776688.333, + "size": 7355, + "lines": 153, + "role": "Research Agent โ€” ํ•™์Šต ํ approved ํ•ญ๋ชฉ์˜ ์กฐ์‚ฌ ์‹คํ–‰ (์„ค๊ณ„์„œ 9์žฅ). Self-Evolving OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ Phase 6 / Track 7-1. ํ•™์Šต ๋ฃจํ”„์˜ ๋งˆ์ง€๋ง‰ ๊ตฌ๊ฐ„: Need Engine โ†’ Learning Queue(approved) โ†’ Research Agent โ†’ Validation ๊ฒŒ์ดํŠธ โ†’ ์ €์žฅ ์ œ์•ˆ v1 ์€ \"์กฐ์‚ฌ", + "imports": [ + "src/intelligence/learningQueue", + "src/intelligence/knowledgeValidation" + ] + }, + "src/intelligence/skillScore.ts": { + "mtimeMs": 1781147811826.0857, + "size": 6870, + "lines": 168, + "role": "Skill Score + Success Pattern DB โ€” ์—ญ๋Ÿ‰ ์ ์ˆ˜์™€ ์„ฑ๊ณต ์‚ฌ๋ก€ ์ถ•์  (์„ค๊ณ„์„œ 12์žฅ). Self-Evolving OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ Phase 6 / Track 7-3 + 7-4. Skill Score (0~100, ์—…๋ฌด ์œ ํ˜• ๋‹จ์œ„ v1): ์ตœ๊ทผ N๊ฑด reflection ์˜ (ํ™•์‹ ๋„ 50% + ์š”์†Œ ์ถฉ์กฑ๋ฅ  30% + ๋น„์—์Šค์ปฌ๋ ˆ์ด์…˜์œจ 2", + "imports": [ + "src/intelligence/reflectionStore" + ] + }, + "src/intelligence/taskEvalHarness.ts": { + "mtimeMs": 1781144360998.8086, + "size": 7942, + "lines": 185, + "role": "Task Eval Harness โ€” ์—…๋ฌด ์‚ฐ์ถœ๋ฌผ ๊ณจ๋“ ์…‹ ์ž๋™ ์ฑ„์  (Self Evaluation v1). Self-Evolving OS ๋งˆ์Šคํ„ฐ ํ”Œ๋žœ Phase 3 / Track 3-4. \"์„ฑ์žฅ์„ธ๋ฅผ ์ˆซ์ž๋กœ ์ฆ๋ช…\" ์˜ ํ•ต์‹ฌ: ๊ฐ™์€ ๊ณจ๋“ ์…‹์„ ๋ฒ„์ „๋งˆ๋‹ค ๋Œ๋ ค ์ ์ˆ˜ ์ถ”์ด๋ฅผ ๋น„๊ตํ•œ๋‹ค (๊ฒ€์ƒ‰ ํ‰๊ฐ€ ํ•˜๋‹ˆ์Šค๊ฐ€ recall@1 37.5%โ†’75% ๋ฅผ ์ฆ๋ช…ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•๋ก ์„ ", + "imports": [ + "src/intelligence/requirementGraph" + ] + }, "src/lib/contextBuilders/astraModeArchitecture.ts": { "mtimeMs": 1779764602634.5583, "size": 3982, @@ -1960,9 +2132,9 @@ ] }, "src/lib/contextBuilders/memoryContext.ts": { - "mtimeMs": 1780911285246.217, - "size": 17357, - "lines": 331, + "mtimeMs": 1781147441753.4504, + "size": 20436, + "lines": 381, "role": "", "imports": [ "src/agent", @@ -1981,7 +2153,12 @@ "src/retrieval/semanticRerank", "src/retrieval/intentClarification", "src/retrieval/citationTrace", - "src/retrieval/terminologyBlock" + "src/retrieval/terminologyBlock", + "src/intelligence/requirementGraph", + "src/intelligence/epistemicGuardBlock", + "src/intelligence/reflectionStore", + "src/intelligence/orgMemoryBlock", + "src/intelligence/confidenceEngine" ] }, "src/lib/contextBuilders/modelCandidates.ts": { @@ -2310,9 +2487,9 @@ "imports": [] }, "src/retrieval/citationTrace.ts": { - "mtimeMs": 1780032397612.986, - "size": 2348, - "lines": 49, + "mtimeMs": 1781142381872.4841, + "size": 4887, + "lines": 102, "role": "Citation Trace โ€” ๋‹ต๋ณ€ ๋ ์— \"์ถœ์ฒ˜:\" ํ•œ ์ค„ ๋ช…์‹œ ์ง€์‹œ. CoVe Strict ๋ชจ๋“œ (v2.2.184) ์™€ ์ฐจ์ด: - CoVe Strict: ๋ชจ๋“  ์‚ฌ์‹ค ์ฃผ์žฅ ๋’ค์— inline [S1] ์ธ์šฉ ๊ฐ•์ œ โ€” verbose, ํ•™์ˆ ์  - Citation Trace: ๋‹ต๋ณ€ ๋์— ์‚ฌ์šฉ๋œ ์ถœ์ฒ˜ ํ•œ ์ค„ ์ •๋ฆฌ โ€” ๊ฐ€๋ฒผ์›€, ํ•ญ์ƒ ON ๊ถŒ์žฅ ๋‘˜์€ ํ•จ๊ป˜ ๋™์ž‘ ๊ฐ€๋Šฅ. ", "imports": [ "src/retrieval/types" @@ -3013,6 +3190,29 @@ "src/agent" ] }, + "tests/confidenceEngine.test.ts": { + "mtimeMs": 1781142599349.454, + "size": 7643, + "lines": 175, + "role": "Confidence Engine + Escalation Engine (Self-Evolving OS Phase 2) ๋‹จ์œ„ ํ…Œ์ŠคํŠธ. ์ˆœ์ˆ˜ ํ•จ์ˆ˜๋งŒ ๊ฒ€์ฆ โ€” vscode ์˜์กด ์—†์Œ.", + "imports": [ + "src/intelligence/confidenceEngine", + "src/intelligence/escalationEngine", + "src/intelligence/epistemicGuardBlock", + "src/retrieval/citationTrace", + "src/retrieval/types" + ] + }, + "tests/conflictCheck.test.ts": { + "mtimeMs": 1781152169364.555, + "size": 2794, + "lines": 63, + "role": "Schedule Conflict Check (Self-Evolving OS Track 6-2/6-3) ํ…Œ์ŠคํŠธ.", + "imports": [ + "src/features/calendar/conflictCheck", + "src/agent/attrParsers" + ] + }, "tests/contextManager.test.ts": { "mtimeMs": 1779764602681.109, "size": 7904, @@ -3022,6 +3222,18 @@ "src/lib/contextManager" ] }, + "tests/criticReflectionEval.test.ts": { + "mtimeMs": 1781144662610.272, + "size": 8327, + "lines": 200, + "role": "Critic Agent / Reflection Store / Task Eval Harness (Self-Evolving OS P1 ์ž”์—ฌ + P3) ํ…Œ์ŠคํŠธ.", + "imports": [ + "src/intelligence/criticAgent", + "src/intelligence/reflectionStore", + "src/intelligence/taskEvalHarness", + "src/intelligence/requirementGraph" + ] + }, "tests/dataProcessor.test.ts": { "mtimeMs": 1778028987448.8394, "size": 3517, @@ -3086,6 +3298,19 @@ "src/utils" ] }, + "tests/knowledgeOps.test.ts": { + "mtimeMs": 1781147477013.794, + "size": 8035, + "lines": 174, + "role": "Knowledge Validation / Belief Revision / Decay / Debt (Self-Evolving OS Phase 4 โ€” ์ง€์‹ ์šด์˜) ํ…Œ์ŠคํŠธ.", + "imports": [ + "src/intelligence/knowledgeValidation", + "src/intelligence/knowledgeDecay", + "src/intelligence/needEngine", + "src/intelligence/reflectionStore", + "src/intelligence/orgMemoryBlock" + ] + }, "tests/lessonHelpers.test.ts": { "mtimeMs": 1778664139972.9592, "size": 9591, @@ -3096,9 +3321,9 @@ ] }, "tests/lmStudioLifecycle.test.ts": { - "mtimeMs": 1779764602684.1619, - "size": 11865, - "lines": 326, + "mtimeMs": 1780971798141.8428, + "size": 12218, + "lines": 330, "role": "Unit tests for ModelLifecycleManager. Strategy: inject mock ILMStudioClient and a simple in-memory IActivityTracker. No real LM Studio or SDK is touched โ€” the manager file does not import the SDK dire", "imports": [ "src/lmstudio/lifecycleManager", @@ -3142,6 +3367,18 @@ "role": "", "imports": [] }, + "tests/needEngineQueue.test.ts": { + "mtimeMs": 1781146804618.2693, + "size": 7123, + "lines": 159, + "role": "Gap Detector / Need Engine / Knowledge Inventory / Learning Queue (Self-Evolving OS Phase 3 โ€” ์„ฑ์žฅ ๋ฃจํ”„ ์ฝ”์–ด) ํ…Œ์ŠคํŠธ.", + "imports": [ + "src/intelligence/gapDetector", + "src/intelligence/needEngine", + "src/intelligence/learningQueue", + "src/intelligence/reflectionStore" + ] + }, "tests/officeSchema.test.ts": { "mtimeMs": 1779065453896.7021, "size": 10125, @@ -3208,6 +3445,27 @@ "src/features/providers/streamHelpers" ] }, + "tests/requirementGraph.test.ts": { + "mtimeMs": 1781140474254.644, + "size": 5535, + "lines": 126, + "role": "Requirement Graph (Self-Evolving OS Phase 1 / Track 2-1) ๋‹จ์œ„ ํ…Œ์ŠคํŠธ. ์ˆœ์ˆ˜ ํ•จ์ˆ˜๋งŒ ๊ฒ€์ฆ โ€” vscode ์˜์กด ์—†์Œ.", + "imports": [ + "src/intelligence/requirementGraph" + ] + }, + "tests/researchSkill.test.ts": { + "mtimeMs": 1781147950430.0676, + "size": 5860, + "lines": 122, + "role": "Research Agent / Skill Score / Success Pattern DB (Self-Evolving OS Phase 6) ํ…Œ์ŠคํŠธ.", + "imports": [ + "src/intelligence/researchAgent", + "src/intelligence/skillScore", + "src/intelligence/learningQueue", + "src/intelligence/reflectionStore" + ] + }, "tests/resilience_stress.test.ts": { "mtimeMs": 1779764602686.1758, "size": 8610, @@ -3273,6 +3531,16 @@ "src/skills/skillInjectionService" ] }, + "tests/stocksCriteria.test.ts": { + "mtimeMs": 1781086406001.8665, + "size": 7191, + "lines": 129, + "role": "criteriaEval โ€” /stocks judge ๊ฒฐ์ •๋ก  ํ‰๊ฐ€๊ธฐ ํ…Œ์ŠคํŠธ. ํ”ฝ์Šค์ฒ˜๋Š” ์˜› LLM ํ”„๋กฌํ”„ํŠธ์— ๋ช…์‹œ๋ผ ์žˆ๋˜ ์‚ฌ์šฉ์ž์˜ ์‹ค์ œ ๋ถ„๋ฅ˜ ์˜ˆ์‹œ 3์ข… (๋งˆ๋…€๊ณต์žฅ/๊ธฐ๊ฐ€๋น„์Šค/์—”์ผ) โ€” ์ฝ”๋“œ ํŒ์ •์ด ์‚ฌ์šฉ์ž ํŒจํ„ด๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•œ๋‹ค.", + "imports": [ + "src/features/stocks/criteriaEval", + "src/features/stocks/types" + ] + }, "tests/systemPrompt.test.ts": { "mtimeMs": 1779764602687.5603, "size": 1487, @@ -3551,7 +3819,7 @@ "imports": [] }, "docs/records/ConnectAI/chronicle.config.json": { - "mtimeMs": 1780969084053.7776, + "mtimeMs": 1781146591626.768, "size": 371, "lines": 11, "role": "JSON configuration", @@ -3781,6 +4049,13 @@ "role": "ADR: ์•„๋ž˜ ํ”„๋กœ์ ํŠธ์˜ ๋กœ์ง์„ ๋ถ„์„ํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด astra๊ฐ€ ๋” ์ •ํ™•ํ•˜๊ณ , ์ •๊ตํ•˜๊ฒŒ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ์žˆ๋Š”์ง€ ๊ฒ€ํ† ํ•ด์ฃผ๊ณ  ์˜๊ฒฌ์„ ์ฃผ๋ฉด ์ข‹๊ฒ ์–ด. ...", "imports": [] }, + "docs/records/ConnectAI/decisions/ADR-0033-e-wiki-connectai-์ง€๊ธˆ-์ฝ”๋“œ-๊ฐœ์„ -์ค‘์ธ๋ฐ-๋ถ„์„ํ•ด์ฃผ๋ฉด-์ข‹๊ฒ ์–ด-์ง€๊ธˆ-๋„ˆ์˜-๊ธฐ๋Šฅ์—์„œ-์–ด๋– ํ•œ-๋ถ€๋ถ„์ด-๋”.md": { + "mtimeMs": 1781146591614.5254, + "size": 1791, + "lines": 19, + "role": "ADR: E:\\Wiki\\connectai ์ง€๊ธˆ ์ฝ”๋“œ ๊ฐœ์„  ์ค‘์ธ๋ฐ ๋ถ„์„ํ•ด์ฃผ๋ฉด ์ข‹๊ฒ ์–ด. ์ง€๊ธˆ ๋„ˆ์˜ ๊ธฐ๋Šฅ์—์„œ ์–ด๋– ํ•œ ๋ถ€๋ถ„์ด ๋” ๊ฐœ์„ ์ด ๋˜๊ณ  ์žˆ๋Š”์ง€. ์–ด๋– ํ•œ ํšจ...", + "imports": [] + }, "docs/records/ConnectAI/development/2026-05-02_answer-format-readability-tuning.md": { "mtimeMs": 1778028987330.4185, "size": 1564, @@ -4132,9 +4407,9 @@ "imports": [] }, "docs/records/ConnectAI/timeline.md": { - "mtimeMs": 1780914060076.0566, - "size": 15782, - "lines": 248, + "mtimeMs": 1781146591617.6985, + "size": 15976, + "lines": 251, "role": "Project Timeline", "imports": [] }, @@ -4145,6 +4420,13 @@ "role": "๐Ÿ› ๏ธ ConnectAI ์•„ํ‚คํ…์ฒ˜ ๋ฆฌํŒฉํ† ๋ง ๋กœ๋“œ๋งต", "imports": [] }, + "docs/SELF_EVOLVING_OS_MASTER_PLAN.md": { + "mtimeMs": 1781151693182.0251, + "size": 21957, + "lines": 274, + "role": "ASTRA Self-Evolving Digital Employee OS โ€” ๋งˆ์Šคํ„ฐ ๊ฐœ๋ฐœ ๊ณ„ํš v1.1", + "imports": [] + }, "docs/TELEGRAM_REMOTE_EXECUTION_PLAN.md": { "mtimeMs": 1778664139927.3354, "size": 12706, diff --git a/.astra/tests/engine/.astra/cache/7fa9e2c0ed212d5dbde1172e996cde86955f34dda22a6e02b95c9adc0a456927.json b/.astra/tests/engine/.astra/cache/7fa9e2c0ed212d5dbde1172e996cde86955f34dda22a6e02b95c9adc0a456927.json index 04ba5f7..ee019fe 100644 --- a/.astra/tests/engine/.astra/cache/7fa9e2c0ed212d5dbde1172e996cde86955f34dda22a6e02b95c9adc0a456927.json +++ b/.astra/tests/engine/.astra/cache/7fa9e2c0ed212d5dbde1172e996cde86955f34dda22a6e02b95c9adc0a456927.json @@ -1,5 +1,5 @@ { "result": "์ง๋‹ต ๊ฒฐ๊ณผ โ€” single-pass mock ์‘๋‹ต์ž…๋‹ˆ๋‹ค.", - "createdAt": 1781085022765, + "createdAt": 1781152586601, "modelVersion": "unknown" } \ No newline at end of file diff --git a/.astra/tests/engine/.astra/cache/8c208151bed9108b665cd93e98fc10d377a9fef641dd359504b8d53aecd0a4c3.json b/.astra/tests/engine/.astra/cache/8c208151bed9108b665cd93e98fc10d377a9fef641dd359504b8d53aecd0a4c3.json index 1215a85..0080f6f 100644 --- a/.astra/tests/engine/.astra/cache/8c208151bed9108b665cd93e98fc10d377a9fef641dd359504b8d53aecd0a4c3.json +++ b/.astra/tests/engine/.astra/cache/8c208151bed9108b665cd93e98fc10d377a9fef641dd359504b8d53aecd0a4c3.json @@ -1,5 +1,5 @@ { - "result": "---\nid: wiki_on\ndate: 2026-06-10T09:50:22.767Z\ntype: knowledge_artifact\nstandard: P-Reinforce v3.0\ntags: [automated, connect_ai, brain_sync]\n---\n\n## ๐Ÿ“Œ Brief Summary\n์ง๋‹ต ๊ฒฐ๊ณผ โ€” single-pass mock ์‘๋‹ต์ž…๋‹ˆ๋‹ค.\n\n์ง๋‹ต ๊ฒฐ๊ณผ โ€” single-pass mock ์‘๋‹ต์ž…๋‹ˆ๋‹ค.\n---\n## ๐Ÿ›ก๏ธ Reliability & Audit Summary\n> [!NOTE]\n> ์ด ๋ฌธ์„œ๋Š” ConnectAI์˜ **Intelligent Resilience** ์—”์ง„์— ์˜ํ•ด ๊ฒ€์ฆ ๋ฐ ์ •์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.\n\n| Metric | Value | Status |\n| :--- | :--- | :--- |\n| **Conflict Risk** | `0/100` | โœ… Low |\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- **[DIRECT]** ๋‹ต๋ณ€ ์ž‘์„ฑ ์ค‘... (๋‹จ์ผ ํ˜ธ์ถœ fast-path) (20ms)\n", - "createdAt": 1781085022767, + "result": "---\nid: wiki_on\ndate: 2026-06-11T04:36:26.603Z\ntype: knowledge_artifact\nstandard: P-Reinforce v3.0\ntags: [automated, connect_ai, brain_sync]\n---\n\n## ๐Ÿ“Œ Brief Summary\n์ง๋‹ต ๊ฒฐ๊ณผ โ€” single-pass mock ์‘๋‹ต์ž…๋‹ˆ๋‹ค.\n\n์ง๋‹ต ๊ฒฐ๊ณผ โ€” single-pass mock ์‘๋‹ต์ž…๋‹ˆ๋‹ค.\n---\n## ๐Ÿ›ก๏ธ Reliability & Audit Summary\n> [!NOTE]\n> ์ด ๋ฌธ์„œ๋Š” ConnectAI์˜ **Intelligent Resilience** ์—”์ง„์— ์˜ํ•ด ๊ฒ€์ฆ ๋ฐ ์ •์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.\n\n| Metric | Value | Status |\n| :--- | :--- | :--- |\n| **Conflict Risk** | `0/100` | โœ… Low |\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- **[DIRECT]** ๋‹ต๋ณ€ ์ž‘์„ฑ ์ค‘... (๋‹จ์ผ ํ˜ธ์ถœ fast-path) (20ms)\n", + "createdAt": 1781152586603, "modelVersion": "unknown" } \ No newline at end of file diff --git a/.astra/tests/engine/.astra/missions/wiki_on.json b/.astra/tests/engine/.astra/missions/wiki_on.json index 9791b41..d9ec413 100644 --- a/.astra/tests/engine/.astra/missions/wiki_on.json +++ b/.astra/tests/engine/.astra/missions/wiki_on.json @@ -1,7 +1,7 @@ { "missionId": "wiki_on", "status": "completed", - "startTime": "2026-06-10T09:50:22.743Z", + "startTime": "2026-06-11T04:36:26.579Z", "totalElapsedMs": 25, "results": { "direct": "์ง๋‹ต ๊ฒฐ๊ณผ โ€” single-pass mock ์‘๋‹ต์ž…๋‹ˆ๋‹ค." @@ -14,14 +14,14 @@ "to": "direct", "durationMs": 20, "message": "๋‹ต๋ณ€ ์ž‘์„ฑ ์ค‘... (๋‹จ์ผ ํ˜ธ์ถœ fast-path)", - "ts": "2026-06-10T09:50:22.763Z" + "ts": "2026-06-11T04:36:26.599Z" }, { "from": "direct", "to": "completed", "durationMs": 5, "message": "๋ฏธ์…˜ ์™„๋ฃŒ", - "ts": "2026-06-10T09:50:22.768Z" + "ts": "2026-06-11T04:36:26.604Z" } ], "resilienceMetrics": { diff --git a/.astra/tests/stress/.astra/cache/21818066876cbf8515758bc351bb3d9d44f32b0e4cd024b2e055db3a0d34417e.json b/.astra/tests/stress/.astra/cache/21818066876cbf8515758bc351bb3d9d44f32b0e4cd024b2e055db3a0d34417e.json index a674b90..13585b1 100644 --- a/.astra/tests/stress/.astra/cache/21818066876cbf8515758bc351bb3d9d44f32b0e4cd024b2e055db3a0d34417e.json +++ b/.astra/tests/stress/.astra/cache/21818066876cbf8515758bc351bb3d9d44f32b0e4cd024b2e055db3a0d34417e.json @@ -1,5 +1,5 @@ { "result": "Final report with inconsistencies. This should be long enough to pass validation.", - "createdAt": 1781085029846, + "createdAt": 1781152593245, "modelVersion": "unknown" } \ No newline at end of file diff --git a/.astra/tests/stress/.astra/cache/4fc755e372f1dd80d6bffc7b2ef973124fb64ba505f767c53a783833bbc3fa6a.json b/.astra/tests/stress/.astra/cache/4fc755e372f1dd80d6bffc7b2ef973124fb64ba505f767c53a783833bbc3fa6a.json index bc1a4c4..084f529 100644 --- a/.astra/tests/stress/.astra/cache/4fc755e372f1dd80d6bffc7b2ef973124fb64ba505f767c53a783833bbc3fa6a.json +++ b/.astra/tests/stress/.astra/cache/4fc755e372f1dd80d6bffc7b2ef973124fb64ba505f767c53a783833bbc3fa6a.json @@ -1,5 +1,5 @@ { "result": "Final report with inconsistencies. This should be long enough to pass validation.", - "createdAt": 1781085029845, + "createdAt": 1781152593243, "modelVersion": "unknown" } \ No newline at end of file diff --git a/.astra/tests/stress/.astra/cache/6e559207c4542d959700ff14f360e6575e54853929e991e579e318f2f5a19030.json b/.astra/tests/stress/.astra/cache/6e559207c4542d959700ff14f360e6575e54853929e991e579e318f2f5a19030.json index 0edec87..204c74d 100644 --- a/.astra/tests/stress/.astra/cache/6e559207c4542d959700ff14f360e6575e54853929e991e579e318f2f5a19030.json +++ b/.astra/tests/stress/.astra/cache/6e559207c4542d959700ff14f360e6575e54853929e991e579e318f2f5a19030.json @@ -1,5 +1,5 @@ { "result": "[{\"heading\":\"๋ณธ๋ฌธ\",\"scope\":\"์ „์ฒด ๋‹ต๋ณ€\"}]", - "createdAt": 1781085029841, + "createdAt": 1781152593239, "modelVersion": "unknown" } \ No newline at end of file diff --git a/.astra/tests/stress/.astra/cache/f65136cebc95448a7e93a45745cb73b3a5a01af5d82391ec29a25bd72b8239a5.json b/.astra/tests/stress/.astra/cache/f65136cebc95448a7e93a45745cb73b3a5a01af5d82391ec29a25bd72b8239a5.json index 71154aa..b48d679 100644 --- a/.astra/tests/stress/.astra/cache/f65136cebc95448a7e93a45745cb73b3a5a01af5d82391ec29a25bd72b8239a5.json +++ b/.astra/tests/stress/.astra/cache/f65136cebc95448a7e93a45745cb73b3a5a01af5d82391ec29a25bd72b8239a5.json @@ -1,5 +1,5 @@ { "result": "[CONFLICT WARNING] ์„ฑ๋Šฅ์ด 200% ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. vs ๊ทธ๋Ÿฌ๋‚˜ ๋™์‹œ์— 50% ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์ ํ™”์™€ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋™์‹œ์— ๋ฐœ๊ฒฌ๋จ.", - "createdAt": 1781085029843, + "createdAt": 1781152593241, "modelVersion": "unknown" } \ No newline at end of file diff --git a/.astra/tests/stress/.astra/missions/stress_conflict_1781085029821.json b/.astra/tests/stress/.astra/missions/stress_conflict_1781152593224.json similarity index 75% rename from .astra/tests/stress/.astra/missions/stress_conflict_1781085029821.json rename to .astra/tests/stress/.astra/missions/stress_conflict_1781152593224.json index d701790..97df3ed 100644 --- a/.astra/tests/stress/.astra/missions/stress_conflict_1781085029821.json +++ b/.astra/tests/stress/.astra/missions/stress_conflict_1781152593224.json @@ -1,8 +1,8 @@ { - "missionId": "stress_conflict_1781085029821", + "missionId": "stress_conflict_1781152593224", "status": "completed", - "startTime": "2026-06-10T09:50:29.821Z", - "totalElapsedMs": 26, + "startTime": "2026-06-11T04:36:33.224Z", + "totalElapsedMs": 22, "results": { "outline": "[{\"heading\":\"๋ณธ๋ฌธ\",\"scope\":\"์ „์ฒด ๋‹ต๋ณ€\"}]", "section_0": "[CONFLICT WARNING] ์„ฑ๋Šฅ์ด 200% ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. vs ๊ทธ๋Ÿฌ๋‚˜ ๋™์‹œ์— 50% ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์ ํ™”์™€ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋™์‹œ์— ๋ฐœ๊ฒฌ๋จ.", @@ -14,30 +14,30 @@ { "from": "idle", "to": "outline", - "durationMs": 19, + "durationMs": 13, "message": "๋‹ต๋ณ€ ๊ตฌ์กฐ ์žก๋Š” ์ค‘...", - "ts": "2026-06-10T09:50:29.840Z" + "ts": "2026-06-11T04:36:33.237Z" }, { "from": "outline", "to": "section", - "durationMs": 2, + "durationMs": 3, "message": "๋ณธ๋ฌธ ์ž‘์„ฑ ์ค‘...", - "ts": "2026-06-10T09:50:29.842Z" + "ts": "2026-06-11T04:36:33.240Z" }, { "from": "section", "to": "polish", "durationMs": 2, "message": "์ตœ์ข… ๋‹ค๋“ฌ๊ธฐ ์ค‘...", - "ts": "2026-06-10T09:50:29.844Z" + "ts": "2026-06-11T04:36:33.242Z" }, { "from": "polish", "to": "completed", - "durationMs": 2, + "durationMs": 3, "message": "๋ฏธ์…˜ ์™„๋ฃŒ", - "ts": "2026-06-10T09:50:29.846Z" + "ts": "2026-06-11T04:36:33.245Z" } ], "resilienceMetrics": { diff --git a/docs/records/ConnectAI/chronicle.config.json b/docs/records/ConnectAI/chronicle.config.json index 8500477..21ec866 100644 --- a/docs/records/ConnectAI/chronicle.config.json +++ b/docs/records/ConnectAI/chronicle.config.json @@ -7,5 +7,5 @@ "corePurpose": "", "detailLevel": "standard", "createdAt": "2026-05-20T09:42:40.003Z", - "updatedAt": "2026-06-09T03:09:47.208Z" + "updatedAt": "2026-06-11T02:56:31.625Z" } diff --git a/docs/records/ConnectAI/decisions/ADR-0033-e-wiki-connectai-์ง€๊ธˆ-์ฝ”๋“œ-๊ฐœ์„ -์ค‘์ธ๋ฐ-๋ถ„์„ํ•ด์ฃผ๋ฉด-์ข‹๊ฒ ์–ด-์ง€๊ธˆ-๋„ˆ์˜-๊ธฐ๋Šฅ์—์„œ-์–ด๋– ํ•œ-๋ถ€๋ถ„์ด-๋”.md b/docs/records/ConnectAI/decisions/ADR-0033-e-wiki-connectai-์ง€๊ธˆ-์ฝ”๋“œ-๊ฐœ์„ -์ค‘์ธ๋ฐ-๋ถ„์„ํ•ด์ฃผ๋ฉด-์ข‹๊ฒ ์–ด-์ง€๊ธˆ-๋„ˆ์˜-๊ธฐ๋Šฅ์—์„œ-์–ด๋– ํ•œ-๋ถ€๋ถ„์ด-๋”.md new file mode 100644 index 0000000..a636093 --- /dev/null +++ b/docs/records/ConnectAI/decisions/ADR-0033-e-wiki-connectai-์ง€๊ธˆ-์ฝ”๋“œ-๊ฐœ์„ -์ค‘์ธ๋ฐ-๋ถ„์„ํ•ด์ฃผ๋ฉด-์ข‹๊ฒ ์–ด-์ง€๊ธˆ-๋„ˆ์˜-๊ธฐ๋Šฅ์—์„œ-์–ด๋– ํ•œ-๋ถ€๋ถ„์ด-๋”.md @@ -0,0 +1,19 @@ +# ADR: E:\Wiki\connectai ์ง€๊ธˆ ์ฝ”๋“œ ๊ฐœ์„  ์ค‘์ธ๋ฐ ๋ถ„์„ํ•ด์ฃผ๋ฉด ์ข‹๊ฒ ์–ด. ์ง€๊ธˆ ๋„ˆ์˜ ๊ธฐ๋Šฅ์—์„œ ์–ด๋– ํ•œ ๋ถ€๋ถ„์ด ๋” ๊ฐœ์„ ์ด ๋˜๊ณ  ์žˆ๋Š”์ง€. ์–ด๋– ํ•œ ํšจ... + +## Status +accepted + +## Context +E:\Wiki\connectai ์ง€๊ธˆ ์ฝ”๋“œ ๊ฐœ์„  ์ค‘์ธ๋ฐ ๋ถ„์„ํ•ด์ฃผ๋ฉด ์ข‹๊ฒ ์–ด. ์ง€๊ธˆ ๋„ˆ์˜ ๊ธฐ๋Šฅ์—์„œ ์–ด๋– ํ•œ ๋ถ€๋ถ„์ด ๋” ๊ฐœ์„ ์ด ๋˜๊ณ  ์žˆ๋Š”์ง€. ์–ด๋– ํ•œ ํšจ๊ณผ๋ฅผ ๋‚ด๊ฐ€ ๊ธฐ๋Œ€ํ•˜๋ฉด ๋ ๊ฒƒ์ธ์ง€. + +## Decision +์ด ์งˆ๋ฌธ์€ ๋‹จ์ˆœํžˆ ์ฝ”๋“œ๋ฅผ ๋ฆฌ๋ทฐํ•ด๋‹ฌ๋ผ๋Š” ์š”์ฒญ์„ ๋„˜์–ด, ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ(ConnectAI)์˜ ์ง„ํ™” ๋ฐฉํ–ฅ๊ณผ ๊ทธ๋กœ ์ธํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX)์˜ ๋ณ€ํ™”๋ฅผ ๋ฌป๊ณ  ๊ณ„์‹ญ๋‹ˆ๋‹ค. ํ˜„์žฌ ์ •๋ณด๋งŒ์œผ๋กœ๋Š” ๊ธฐ์ˆ  ๊ตฌ์กฐ๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์  ์•ˆ์ •์„ฑ, ์•„ํ‚คํ…์ฒ˜ ์œ ์—ฐ์„ฑ, ๋ชจ๋“ˆํ™” ์—ฌ๋ถ€๋Š” ์†Œ์Šค ์ฝ”๋“œ๋‚˜ ์„ค๊ณ„ ๋ฌธ์„œ ํ™•์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ง์ „ ๋‹ต๋ณ€์—์„œ ์ œ๊ฐ€ ๋ถ„์„ํ•œ `041190(์šฐ๋ฆฌ๊ธฐ์ˆ ํˆฌ์ž)`์˜ ์‚ฌ๋ก€์™€ ์—ฐ๊ฒฐ ์ง€์–ด ๋ณผ ๋•Œ, ์‚ฌ์šฉ์ž๋Š” ํ˜„์žฌ "๋ฐ์ดํ„ฐ ์ถ”์ถœ โ†’ ๊ธฐ์ˆ ์ /์žฌ๋ฌด์  ํ•„ํ„ฐ๋ง โ†’ LLM์„ ํ†ตํ•œ ์ „๋žต์  ์ธ์‚ฌ์ดํŠธ ๋„์ถœ"์ด๋ผ๋Š” ์ผ๋ จ์˜ ์ž๋™ํ™”๋œ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ๊ณ„์‹  ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์ฝ”๋“œ ๊ฐœ์„  ์ž‘์—…(Refactoring & Optimization)์ด ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ๋‹ค๋ฉด, ์ œ๊ฐ€ ์ฒด๊ฐํ•˜๋Š” ๊ฐœ์„  ํฌ์ธํŠธ์™€ ๊ธฐ๋Œ€ ํšจ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. --- 1. ๊ธฐ๋Šฅ์  ์ธก๋ฉด: "๋‹จ์ˆœ ์กฐํšŒ๋ฅผ ๋„˜์–ด์„  '์ง€๋Šฅํ˜• ์—์ด์ „ํŠธ'๋กœ์˜ ์ง„ํ™”" ํ˜„์žฌ ์ฝ”๋“œ๊ฐ€ ๊ฐœ์„ ๋จ์— ๋”ฐ๋ผ Astra(๋˜๋Š” ์‹œ์Šคํ…œ)๋Š” ๋‹จ์ˆœํ•œ ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ๊ธฐ๊ฐ€ ์•„๋‹Œ, ํŒ๋‹จ๋ ฅ์„ ๊ฐ–์ถ˜ ๋ถ„์„๊ฐ€๋กœ ๋ณ€๋ชจํ•˜... + +## 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/timeline.md b/docs/records/ConnectAI/timeline.md index 872f467..c5d81f1 100644 --- a/docs/records/ConnectAI/timeline.md +++ b/docs/records/ConnectAI/timeline.md @@ -246,3 +246,6 @@ ## 2026-06-08 - Auto development record created: development\2026-06-08_์•„๋‹ˆ-์ง€๊ธˆ-์ฝ”๋“œ-์—…๋ฐ์ดํŠธ๋ฅผ-ํ–ˆ๊ฑฐ๋“ -๋‹ค์‹œ-์ฝ”๋“œ๋ฅผ-๊ฒ€ํ† ํ•˜๊ณ -์˜๊ฒฌ์„-์ค˜_implementation.md + +## 2026-06-11 +- Auto decision record created: decisions\ADR-0033-e-wiki-connectai-์ง€๊ธˆ-์ฝ”๋“œ-๊ฐœ์„ -์ค‘์ธ๋ฐ-๋ถ„์„ํ•ด์ฃผ๋ฉด-์ข‹๊ฒ ์–ด-์ง€๊ธˆ-๋„ˆ์˜-๊ธฐ๋Šฅ์—์„œ-์–ด๋– ํ•œ-๋ถ€๋ถ„์ด-๋”.md