feat: v2.2.83 → v2.2.91 — info prompt 강화 + 사용자 노출 설정 + 답변 포맷 정리
[v2.2.83] /youtube info 프롬프트 강화 - 비유 방향 보존 룰 (Hugging Face=자료실 같은 짝 뒤집기 방지) - 신뢰도 라벨 4종 ([근거 명시] / [화자 주장] / [가정] / [정리자 추론]) - 타임스탬프 fail 룰 (인용·구간 요약 모두 mm:ss 필수) - "정리자 노트" 별도 섹션으로 추론 격리 [v2.2.85] polishPersona self-check 5가지 - 정리·리뷰·요약 답변 출력 직전 머릿속 체크: (1) 사실 오류 (2) 없는 내용 추가 (3) 뉘앙스 유지 (4) 중요도 비례 (5) 중복 제거 [v2.2.86] chunkedSwitchTokens 절대 임계값 게이트 - 입력 < 50k 토큰이면 키워드·길이 트리거 무시하고 단일 호출 - 큰 컨텍스트 모델(131k+)에서 chunked 과잉 발동 방지 [v2.2.87] MAX_SECTIONS 5→3 cap - 총 호출 7회 → 5회 (outline + 3 section + polish) - 사용자 피드백 "6+회는 과하다" [v2.2.88] 이모지 사용 금지 룰 - polishPersona / directPersona / sectionPersona 모두 적용 - 사용자 피드백 "이모지는 시각 노이즈" [v2.2.89] 사용자 노출 설정 두 항목 - chunkedMaxSections config 신규 (default 3, 1~10 clamp) - MAX_SECTIONS_HARD_CEILING (10) 으로 안전망 격상 - Astra Settings 패널 "고급" 섹션에 두 슬라이더 노출 [v2.2.90] 가이드 문구 단순화 - "작은 모델은 낮추라" 문구 빼고 일관되게 50000 권장으로 [v2.2.91] 답변 포맷 가독성 fix - persona 의 "TL;DR" 표현 전부 "한 줄 요약" 으로 단일화 - stripMarkdownFormatting 에 헤더 후 빈 줄 강제 삽입 (marked.parse 가 라벨·본문을 별도 단락으로 인식 → 시각 분리) [테스트] 400/400 통과 (resilience_stress + chunked flow + MAX_SECTIONS cap 등) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -3,15 +3,15 @@
|
||||
<!-- ASTRA:AUTO-START -->
|
||||
|
||||
## Snapshot
|
||||
- **Workspace**: `ConnectAI` `v2.2.73` _(absolute path varies by environment; resolved from the active VS Code workspace)_
|
||||
- **Workspace**: `ConnectAI` `v2.2.90` _(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**: 285 source files, ~56,679 lines across 5 top-level modules.
|
||||
- **Stats**: 286 source files, ~57,087 lines across 5 top-level modules.
|
||||
|
||||
## Last Refresh
|
||||
- **Time**: 2026-05-23T06:46:38.895Z
|
||||
- **Files newly analysed**: 5
|
||||
- **Files reused from cache**: 280
|
||||
- **Time**: 2026-05-24T04:49:04.938Z
|
||||
- **Files newly analysed**: 3
|
||||
- **Files reused from cache**: 283
|
||||
|
||||
## Directory Map
|
||||
```mermaid
|
||||
@@ -37,7 +37,7 @@ mindmap
|
||||
> Arrows: which top-level module imports from which.
|
||||
```mermaid
|
||||
flowchart LR
|
||||
src["src/<br/>139 files"]
|
||||
src["src/<br/>140 files"]
|
||||
media["media/<br/>6 files"]
|
||||
tests["tests/<br/>35 files"]
|
||||
core_py["core_py/<br/>6 files"]
|
||||
@@ -59,44 +59,44 @@ flowchart LR
|
||||
- `src/core/services.ts` — referenced by **10** files
|
||||
- `src/lib/paths.ts` — referenced by **10** files
|
||||
- `src/agent.ts` — referenced by **7** files
|
||||
- `src/retrieval/lessonHelpers.ts` — referenced by **6** files · 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/sidebarProvider.ts` — referenced by **7** files
|
||||
- `src/skills/agentKnowledgeMap.ts` — referenced by **6** files
|
||||
|
||||
## Modules
|
||||
|
||||
### `src/` — 139 files, ~39,180 lines
|
||||
### `src/` — 140 files, ~39,922 lines
|
||||
|
||||
**Sub-directories**
|
||||
- `src/features/` (66) — Astra Office — public API. 다음 세션에서 추가될 OfficeSnapshot presenter / schema 도 같은 entry 로 노출 예정. 현재 노출: full webview panel H
|
||||
- `src/features/` (67) — Astra Office — public API. 다음 세션에서 추가될 OfficeSnapshot presenter / schema 도 같은 entry 로 노출 예정. 현재 노출: full webview panel H
|
||||
- `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/lib/` (6) — Context Manager (컨텍스트 한계 관리) "context length = 132k" 는 "답변을 132k 토큰까지 생성해도 된다" 가 아닙니다. 시스템 프롬프트 + 대화 기록 + 입력 문서 + 생성될 답변
|
||||
- `src/sidebar/` (5) — 5 files (.ts)
|
||||
- `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)
|
||||
- `src/sidebar/` (4) — 4 files (.ts)
|
||||
- `src/skills/` (4) — 4 files (.ts)
|
||||
- `src/agents/` (3) — Reflection → Lesson persistence Take the Reflector agent's structured critique and persist any substantive findings as a
|
||||
- `src/agents/` (2) — 2 files (.ts)
|
||||
- `src/scaffolder/` (2) — Scaffolder template catalog. Templates are pure data — (projectName) => { [relativePath]: contents }. New templates are
|
||||
|
||||
**Key files**
|
||||
- `src/utils.ts` (448 lines)
|
||||
- `src/config.ts` (394 lines)
|
||||
- `src/config.ts` (406 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` (164 lines)
|
||||
- `src/core/services.ts` (176 lines)
|
||||
- `src/sidebarProvider.ts` (4340 lines)
|
||||
- `src/lib/paths.ts` (151 lines)
|
||||
- `src/features/company/companyConfig.ts` (896 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/sidebarProvider.ts` (4327 lines)
|
||||
- `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` (536 lines) — Scoring Engine — TF-IDF + Bilingual Tokenizer 단순 includes() 키워드 매칭을 넘어서, TF-IDF 가중치 기반의 문서 스코어링을 제공합니다. 한국어/영어 양국어 토크나이저를 포함합니다.
|
||||
- `src/retrieval/scoring.ts` (541 lines) — Scoring Engine — TF-IDF + Bilingual Tokenizer 단순 includes() 키워드 매칭을 넘어서, TF-IDF 가중치 기반의 문서 스코어링을 제공합니다. 한국어/영어 양국어 토크나이저를 포함합니다.
|
||||
- `src/skills/agentKnowledgeMap.ts` (374 lines)
|
||||
- `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/agent.ts` (4076 lines)
|
||||
- `src/agent.ts` (4105 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/lib/engine.ts` (940 lines)
|
||||
- `src/lib/engine.ts` (1103 lines)
|
||||
- `src/retrieval/brainIndex.ts` (325 lines) — Brain Index — persistent, mtime-keyed tokenized cache of the Second Brain RAG 검색은 매 질의마다 브레인의 모든 .md 파일을 읽고 토크나이즈해서 TF-IDF 점수를 계산했습니다 — 파일 수가 많아지면 그게 병목입니다. 이 모듈은 <brainPath>/.astra/brain-index.json 에
|
||||
- `src/features/company/dispatcher.ts` (1435 lines) — 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
|
||||
- `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/features/company/dispatcher.ts` (1442 lines) — 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
|
||||
- `src/features/providers/providerConfig.ts` (78 lines) — Provider 별 API key + enable 토글 저장소. 설계: - API key 자체는 vscode.SecretStorage (secrets) 에 — settings.json / Settings Sync 침범 안 받음. - enabled 토글은 일반 settings (g1nation.providers.<id>.enabled) — 사용자가 패널에서
|
||||
- `src/features/approval/approvalQueue.ts` (129 lines)
|
||||
- `src/integrations/telegram/telegramClient.ts` (154 lines)
|
||||
@@ -107,24 +107,24 @@ flowchart LR
|
||||
- `src/features/projectArchitecture/scanner.ts` (644 lines) — 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
|
||||
- `src/lib/contextManager.ts` (278 lines) — Context Manager (컨텍스트 한계 관리) "context length = 132k" 는 "답변을 132k 토큰까지 생성해도 된다" 가 아닙니다. 시스템 프롬프트 + 대화 기록 + 입력 문서 + 생성될 답변 + 여유분 ≤ context length 이 모듈은 요청을 보내기 전에 입력 토큰을 추정하고, - 동적으로 출력 상한(maxTokens)을 계
|
||||
|
||||
### `media/` — 6 files, ~7,455 lines
|
||||
### `media/` — 6 files, ~7,484 lines
|
||||
|
||||
**Key files**
|
||||
- `media/sidebar.css` (2068 lines) — Stylesheet
|
||||
- `media/sidebar.js` (3807 lines)
|
||||
- `media/sidebar.html` (538 lines) — Astra
|
||||
- `media/settings-panel.html` (381 lines) — Astra Settings
|
||||
- `media/settings-panel.html` (398 lines) — Astra Settings
|
||||
- `media/settings-panel.css` (210 lines) — Stylesheet
|
||||
- `media/settings-panel.js` (451 lines)
|
||||
- `media/settings-panel.js` (463 lines)
|
||||
|
||||
### `tests/` — 35 files, ~6,004 lines
|
||||
### `tests/` — 35 files, ~5,641 lines
|
||||
*Depends on*: `src/`
|
||||
|
||||
**Sub-directories**
|
||||
- `tests/mocks/` (1) — 1 files (.js)
|
||||
|
||||
**Key files**
|
||||
- `tests/agentEngine.test.ts` (782 lines) — AgentEngine Integration Tests & Performance Benchmarks 검증 대상: 1. ErrorClassifier — 오류 유형(Transient/Permanent/Abort) 자동 분류 2. ErrorRecoveryMatrix — 각 규칙이 의도한 대응 전략으로 매핑되는지 검증 3. resilientExecute — 지수 백
|
||||
- `tests/agentEngine.test.ts` (405 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/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/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.
|
||||
@@ -132,7 +132,7 @@ flowchart LR
|
||||
- `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/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/resilience_stress.test.ts` (183 lines) — Resilience & Boundary Stress Test Suite (v2.77.3) 이 테스트는 ConnectAI 엔진이 극한의 환경(인증 실패, 네트워크 차단, 타임아웃 등)에서 얼마나 안정적으로 복구되고, 신뢰성 지표(Resilience Metrics)를 정확히 기록하는지 검증합니다.
|
||||
- `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/dataProcessor.test.ts` (87 lines) — / <reference types="jest" />
|
||||
- `tests/findBrainFilesCache.test.ts` (80 lines) — Unit tests for findBrainFiles TTL cache.
|
||||
@@ -196,7 +196,7 @@ flowchart LR
|
||||
## VS Code Extension Surface
|
||||
- **Extension ID**: `g1nation.astra`
|
||||
- **Activation events**: `onStartupFinished`
|
||||
- **Commands** (28):
|
||||
- **Commands** (29):
|
||||
- `g1nation.newChat` — Astra: New Chat
|
||||
- `g1nation.exportChat` — Astra: Export Chat as Markdown
|
||||
- `g1nation.explainSelection` — Astra: Explain Selected Code
|
||||
@@ -210,6 +210,7 @@ flowchart LR
|
||||
- `g1nation.settings.focus` — Astra: Open Settings Panel
|
||||
- `g1nation.skills.editKnowledgeMap` — Astra: Edit Agent ↔ Knowledge Map
|
||||
- `g1nation.openChat` — Astra: Open Chat (Editor Column)
|
||||
- `g1nation.setupDatacollect` — Astra: Setup Datacollect Dependencies (yt-dlp, youtube-transcript-api)
|
||||
- `g1nation.lesson.create` — Astra: New Lesson (Experience Memory)
|
||||
- `g1nation.lesson.fromConversation` — Astra: New Lesson from Current Conversation
|
||||
- `g1nation.lesson.manage` — Astra: Browse / Manage Lessons
|
||||
@@ -225,7 +226,7 @@ flowchart LR
|
||||
- `g1nation.calendar.refresh` — Astra: Google Calendar 새로고침 📅
|
||||
- `g1nation.calendar.connectOAuth` — Astra: Google Calendar OAuth 연결 (쓰기) 🔐
|
||||
- `g1nation.devilAgent.toggle` — Astra: Toggle Devil Agent 🎭
|
||||
- **Configuration** (87 settings):
|
||||
- **Configuration** (86 settings):
|
||||
- `g1nation.multiAgentEnabled` *(boolean)* _(default: `false`)_ — Enable Multi-Agent Workflow (Planner -> Researcher -> Writer) for complex tasks.
|
||||
- `g1nation.datacollectBridgeUrl` *(string)* _(default: `"http://127.0.0.1:3002"`)_ — Wiki/Datacollect MCP Bridge URL. /research, /benchmark, /youtube chat slash commands route here. The Bridge must be running (`npm run bridge` in the Datacollect project).
|
||||
- `g1nation.datacollectSavePath` *(string)* _(default: `""`)_
|
||||
@@ -282,11 +283,11 @@ flowchart LR
|
||||
- `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
|
||||
- `g1nation.embeddingBlendAlpha` *(number)* _(default: `0.5`)_ — Hybrid score blend: 0 = pure TF-IDF (sparse / keyword), 1 = pure embedding cosine (dense / semantic), 0.5 = balanced. Only used when g1nation.embeddingModel is set. Default 0.5.
|
||||
- `g1nation.knowledgeMix.secondBrainWeight` *(number)* _(default: `50`)_ — Knowledge Mix (0–100): how heavily the assistant should lean on Second Brain evidence vs. its own general knowledge. 0 = Second Brain disabled (model knowledge only). 50 = balanced (legacy default). 1
|
||||
- `g1nation.enableReflection` *(boolean)* _(default: `true`)_ — Insert a Self-Reflection (Reflector) stage between Researcher and Writer in the multi-agent workflow. The Reflector critically reviews the plan and research output (gaps, contradictions, unsupported c
|
||||
- `g1nation.autoLessonFromReflection` *(boolean)* _(default: `true`)_ — Persist substantive Reflector critiques to the active brain as lesson cards under `lessons/auto-reflector/`. Future missions automatically retrieve these cards (via the existing Experience-Memory pipe
|
||||
- `g1nation.workflow.synthesizerEnabled` *(boolean)* _(default: `true`)_
|
||||
- `g1nation.workflow.multiAgentMode` *(string)* _(default: `"auto"`)_
|
||||
- _…and 27 more_
|
||||
- `g1nation.workflow.autoCtxFractionThreshold` *(number)* _(default: `0.3`)_
|
||||
- `g1nation.chunkedSwitchTokens` *(number)* _(default: `50000`)_
|
||||
- `g1nation.chunkedMaxSections` *(number)* _(default: `3`)_
|
||||
- _…and 26 more_
|
||||
|
||||
## Dependencies
|
||||
- **Runtime** (2): `@lmstudio/sdk`, `pdf-parse`
|
||||
@@ -334,7 +335,7 @@ Astra는 대표님의 명시적인 승인 하에 로컬 시스템의 강력한
|
||||
**Designed for High-Performance Decision Making.**
|
||||
Copyright (C) **g1nation**. All rights reserved.
|
||||
|
||||
_Last auto-scan: 2026-05-23T06:46:38.895Z · signature `457ea57e`_
|
||||
_Last auto-scan: 2026-05-24T04:49:04.938Z · signature `932fe655`_
|
||||
<!-- ASTRA:AUTO-END -->
|
||||
|
||||
## Purpose
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"version": 1,
|
||||
"generatedAt": "2026-05-23T06:46:38.906Z",
|
||||
"generatedAt": "2026-05-24T04:49:04.948Z",
|
||||
"files": {
|
||||
"src/agent.ts": {
|
||||
"mtimeMs": 1779517702000,
|
||||
"size": 232696,
|
||||
"lines": 4076,
|
||||
"mtimeMs": 1779584933000,
|
||||
"size": 233704,
|
||||
"lines": 4105,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/utils",
|
||||
@@ -13,7 +13,6 @@
|
||||
"src/security",
|
||||
"src/core/transaction",
|
||||
"src/core/session",
|
||||
"src/agents/factory",
|
||||
"src/agents/AgentWorkflowManager",
|
||||
"src/core/errorHandler",
|
||||
"src/core/events",
|
||||
@@ -39,36 +38,25 @@
|
||||
]
|
||||
},
|
||||
"src/agents/AgentWorkflowManager.ts": {
|
||||
"mtimeMs": 1779509768000,
|
||||
"size": 2783,
|
||||
"lines": 66,
|
||||
"mtimeMs": 1779534441000,
|
||||
"size": 2315,
|
||||
"lines": 62,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/agents/factory",
|
||||
"src/lib/engine",
|
||||
"src/config"
|
||||
"src/lib/engine"
|
||||
]
|
||||
},
|
||||
"src/agents/factory.ts": {
|
||||
"mtimeMs": 1779513282000,
|
||||
"size": 15847,
|
||||
"lines": 273,
|
||||
"mtimeMs": 1779597040000,
|
||||
"size": 17711,
|
||||
"lines": 288,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/config",
|
||||
"src/lib/engine"
|
||||
]
|
||||
},
|
||||
"src/agents/reflectionPersister.ts": {
|
||||
"mtimeMs": 1778763469000,
|
||||
"size": 11986,
|
||||
"lines": 308,
|
||||
"role": "Reflection → Lesson persistence Take the Reflector agent's structured critique and persist any substantive findings as a lesson card in <brainDir>/lessons/auto-reflector/. The existing brain retrieval",
|
||||
"imports": [
|
||||
"src/utils",
|
||||
"src/retrieval/lessonHelpers"
|
||||
]
|
||||
},
|
||||
"src/bridge.ts": {
|
||||
"mtimeMs": 1779492050000,
|
||||
"size": 10526,
|
||||
@@ -83,9 +71,9 @@
|
||||
]
|
||||
},
|
||||
"src/config.ts": {
|
||||
"mtimeMs": 1779517494000,
|
||||
"size": 20523,
|
||||
"lines": 394,
|
||||
"mtimeMs": 1779598116000,
|
||||
"size": 21266,
|
||||
"lines": 406,
|
||||
"role": "",
|
||||
"imports": []
|
||||
},
|
||||
@@ -171,9 +159,9 @@
|
||||
]
|
||||
},
|
||||
"src/core/services.ts": {
|
||||
"mtimeMs": 1778421200000,
|
||||
"size": 6692,
|
||||
"lines": 164,
|
||||
"mtimeMs": 1779535877000,
|
||||
"size": 7446,
|
||||
"lines": 176,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/config",
|
||||
@@ -260,9 +248,9 @@
|
||||
"imports": []
|
||||
},
|
||||
"src/extension.ts": {
|
||||
"mtimeMs": 1779518653000,
|
||||
"size": 65568,
|
||||
"lines": 1247,
|
||||
"mtimeMs": 1779543586000,
|
||||
"size": 66247,
|
||||
"lines": 1251,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/utils",
|
||||
@@ -291,6 +279,7 @@
|
||||
"src/retrieval",
|
||||
"src/retrieval/lessonHelpers",
|
||||
"src/skills/scopedBrainRetriever",
|
||||
"src/features/setup/datacollectSetup",
|
||||
"src/integrations/telegram/conversationHistory",
|
||||
"src/features/calendar",
|
||||
"src/features/devilAgent"
|
||||
@@ -450,9 +439,9 @@
|
||||
]
|
||||
},
|
||||
"src/features/company/ceoPlanner.ts": {
|
||||
"mtimeMs": 1778902489000,
|
||||
"size": 11781,
|
||||
"lines": 269,
|
||||
"mtimeMs": 1779535966000,
|
||||
"size": 11839,
|
||||
"lines": 270,
|
||||
"role": "CEO planner — turns a user prompt into a CompanyTaskPlan. Lifecycle of one planner call: 1. Build the planner system prompt (template + active-agent list). 2. Hit the AI service with the user prompt a",
|
||||
"imports": [
|
||||
"src/core/services",
|
||||
@@ -464,9 +453,9 @@
|
||||
]
|
||||
},
|
||||
"src/features/company/ceoReporter.ts": {
|
||||
"mtimeMs": 1778762677000,
|
||||
"size": 4895,
|
||||
"lines": 122,
|
||||
"mtimeMs": 1779535985000,
|
||||
"size": 4953,
|
||||
"lines": 123,
|
||||
"role": "CEO synthesis pass — runs after all specialists have finished. Given the per-agent outputs, this asks the CEO model to produce the final markdown report (✅ 완료 / 🚀 다음 / 💡 인사이트) that the user actually",
|
||||
"imports": [
|
||||
"src/core/services",
|
||||
@@ -487,9 +476,9 @@
|
||||
]
|
||||
},
|
||||
"src/features/company/dispatcher.ts": {
|
||||
"mtimeMs": 1778936524000,
|
||||
"size": 73113,
|
||||
"lines": 1435,
|
||||
"mtimeMs": 1779536000000,
|
||||
"size": 73381,
|
||||
"lines": 1442,
|
||||
"role": "Sequential dispatcher for 1인 기업 모드. Drives one company \"turn\": user prompt → CEO planner (JSON {brief, tasks}) → for each task in plan: dispatch one specialist (sequentially) - build specialist prompt",
|
||||
"imports": [
|
||||
"src/core/services",
|
||||
@@ -533,9 +522,9 @@
|
||||
]
|
||||
},
|
||||
"src/features/company/intentAlignment.ts": {
|
||||
"mtimeMs": 1778902489000,
|
||||
"size": 15285,
|
||||
"lines": 334,
|
||||
"mtimeMs": 1779536494000,
|
||||
"size": 15705,
|
||||
"lines": 343,
|
||||
"role": "Intent Alignment — 사용자의 자연어 요청을 실행 가능한 작업 조건으로 변환. 사용자는 자기 의도와 배경지식이 에이전트에게 충분히 전달되었다고 착각하는 경향이 있다 (투명성의 착각·지식의 저주·공통 기반 부족). 그래서 에이전트가 즉시 작업에 돌입하면 사용자가 머릿속에 가진 것과 다른 결과를 만들어 낸다. 이 모듈은 그 격차를 메꾸는 한 단계 ",
|
||||
"imports": [
|
||||
"src/core/services",
|
||||
@@ -652,21 +641,22 @@
|
||||
"imports": []
|
||||
},
|
||||
"src/features/datacollect/bridgeClient.ts": {
|
||||
"mtimeMs": 1779277308000,
|
||||
"size": 3518,
|
||||
"lines": 86,
|
||||
"mtimeMs": 1779542176000,
|
||||
"size": 5949,
|
||||
"lines": 129,
|
||||
"role": "",
|
||||
"imports": []
|
||||
},
|
||||
"src/features/datacollect/slashRouter.ts": {
|
||||
"mtimeMs": 1779518658000,
|
||||
"size": 73164,
|
||||
"lines": 1413,
|
||||
"mtimeMs": 1779548421000,
|
||||
"size": 97168,
|
||||
"lines": 1797,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/utils",
|
||||
"src/features/datacollect/bridgeClient",
|
||||
"src/features/calendar"
|
||||
"src/features/calendar",
|
||||
"src/features/setup/datacollectSetup"
|
||||
]
|
||||
},
|
||||
"src/features/devilAgent/devilPrompt.ts": {
|
||||
@@ -889,9 +879,9 @@
|
||||
]
|
||||
},
|
||||
"src/features/settings/settingsPanelProvider.ts": {
|
||||
"mtimeMs": 1779492050000,
|
||||
"size": 31952,
|
||||
"lines": 691,
|
||||
"mtimeMs": 1779597205000,
|
||||
"size": 32670,
|
||||
"lines": 701,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/integrations/telegram/telegramClient",
|
||||
@@ -903,6 +893,15 @@
|
||||
"src/features/providers"
|
||||
]
|
||||
},
|
||||
"src/features/setup/datacollectSetup.ts": {
|
||||
"mtimeMs": 1779543560000,
|
||||
"size": 12422,
|
||||
"lines": 267,
|
||||
"role": "Datacollect 의존성(Python 패키지) 자동 설치/검증 모듈. 의도: Astra extension 만 깔고 끝나면 /youtube, /research 같은 datacollect 슬래시 명령은 bridge 의 Python 의존성 (yt-dlp, youtube-transcript-api) 이 없어서 실패한다. 사용자가 그걸 매번 수동으로 깔아야 하는",
|
||||
"imports": [
|
||||
"src/utils"
|
||||
]
|
||||
},
|
||||
"src/features/sheets/index.ts": {
|
||||
"mtimeMs": 1778935930000,
|
||||
"size": 237,
|
||||
@@ -982,9 +981,9 @@
|
||||
"imports": []
|
||||
},
|
||||
"src/lib/diagnostics.ts": {
|
||||
"mtimeMs": 1777978189000,
|
||||
"size": 8389,
|
||||
"lines": 210,
|
||||
"mtimeMs": 1779534648000,
|
||||
"size": 8992,
|
||||
"lines": 220,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/utils"
|
||||
@@ -1000,9 +999,9 @@
|
||||
]
|
||||
},
|
||||
"src/lib/engine.ts": {
|
||||
"mtimeMs": 1779509734000,
|
||||
"size": 45131,
|
||||
"lines": 940,
|
||||
"mtimeMs": 1779597103000,
|
||||
"size": 51410,
|
||||
"lines": 1103,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/core/lock",
|
||||
@@ -1011,8 +1010,7 @@
|
||||
"src/lib/diagnostics",
|
||||
"src/lib/formatter",
|
||||
"src/types/interfaces",
|
||||
"src/config",
|
||||
"src/agents/reflectionPersister"
|
||||
"src/config"
|
||||
]
|
||||
},
|
||||
"src/lib/formatter.ts": {
|
||||
@@ -1048,9 +1046,9 @@
|
||||
]
|
||||
},
|
||||
"src/lmstudio/lifecycleManager.ts": {
|
||||
"mtimeMs": 1779517553000,
|
||||
"size": 11372,
|
||||
"lines": 300,
|
||||
"mtimeMs": 1779536619000,
|
||||
"size": 12733,
|
||||
"lines": 315,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/lmstudio/client",
|
||||
@@ -1161,8 +1159,8 @@
|
||||
]
|
||||
},
|
||||
"src/retrieval/contextBudget.ts": {
|
||||
"mtimeMs": 1778674336000,
|
||||
"size": 5143,
|
||||
"mtimeMs": 1779536715000,
|
||||
"size": 5136,
|
||||
"lines": 140,
|
||||
"role": "Context Budget Manager (컨텍스트 예산 관리) 시스템 프롬프트의 토큰 예산을 관리하여 로컬 모델의 context window를 효율적으로 활용합니다.",
|
||||
"imports": [
|
||||
@@ -1179,8 +1177,8 @@
|
||||
]
|
||||
},
|
||||
"src/retrieval/index.ts": {
|
||||
"mtimeMs": 1778676255000,
|
||||
"size": 23764,
|
||||
"mtimeMs": 1779536701000,
|
||||
"size": 23754,
|
||||
"lines": 514,
|
||||
"role": "RetrievalOrchestrator — Unified RAG Pipeline Astra의 모든 검색 소스를 통합 관리하는 오케스트레이터입니다. 검색 흐름: ① Query Planning — 의도 분류 + 검색 전략 결정 ② Parallel Search — Brain + Memory + Project + Episode 동시 검색 ③ Result Fusio",
|
||||
"imports": [
|
||||
@@ -1216,15 +1214,15 @@
|
||||
]
|
||||
},
|
||||
"src/retrieval/scoring.ts": {
|
||||
"mtimeMs": 1779492050000,
|
||||
"size": 21751,
|
||||
"lines": 536,
|
||||
"mtimeMs": 1779536686000,
|
||||
"size": 22097,
|
||||
"lines": 541,
|
||||
"role": "Scoring Engine — TF-IDF + Bilingual Tokenizer 단순 includes() 키워드 매칭을 넘어서, TF-IDF 가중치 기반의 문서 스코어링을 제공합니다. 한국어/영어 양국어 토크나이저를 포함합니다.",
|
||||
"imports": []
|
||||
},
|
||||
"src/retrieval/types.ts": {
|
||||
"mtimeMs": 1778674336000,
|
||||
"size": 2424,
|
||||
"mtimeMs": 1779536706000,
|
||||
"size": 2419,
|
||||
"lines": 66,
|
||||
"role": "Retrieval Types (검색 결과 통합 타입) 모든 검색 소스(Brain, Memory, Project, Episode)의 결과를 통합 인터페이스로 정의합니다.",
|
||||
"imports": []
|
||||
@@ -1275,9 +1273,9 @@
|
||||
]
|
||||
},
|
||||
"src/sidebar/chatHandlers.ts": {
|
||||
"mtimeMs": 1779518648000,
|
||||
"size": 39607,
|
||||
"lines": 710,
|
||||
"mtimeMs": 1779536404000,
|
||||
"size": 23810,
|
||||
"lines": 417,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/sidebarProvider",
|
||||
@@ -1287,7 +1285,7 @@
|
||||
"src/config",
|
||||
"src/features/company",
|
||||
"src/core/services",
|
||||
"src/features/company/resumeStore"
|
||||
"src/sidebar/companyHandlers"
|
||||
]
|
||||
},
|
||||
"src/sidebar/chronicleHandlers.ts": {
|
||||
@@ -1299,10 +1297,21 @@
|
||||
"src/sidebarProvider"
|
||||
]
|
||||
},
|
||||
"src/sidebar/companyHandlers.ts": {
|
||||
"mtimeMs": 1779536364000,
|
||||
"size": 18106,
|
||||
"lines": 347,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/sidebarProvider",
|
||||
"src/features/company",
|
||||
"src/features/company/resumeStore"
|
||||
]
|
||||
},
|
||||
"src/sidebarProvider.ts": {
|
||||
"mtimeMs": 1779518686000,
|
||||
"size": 200699,
|
||||
"lines": 4327,
|
||||
"mtimeMs": 1779536519000,
|
||||
"size": 201315,
|
||||
"lines": 4340,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/utils",
|
||||
@@ -1403,16 +1412,16 @@
|
||||
"imports": []
|
||||
},
|
||||
"media/settings-panel.html": {
|
||||
"mtimeMs": 1779492050000,
|
||||
"size": 21043,
|
||||
"lines": 381,
|
||||
"mtimeMs": 1779598086000,
|
||||
"size": 22426,
|
||||
"lines": 398,
|
||||
"role": "Astra Settings",
|
||||
"imports": []
|
||||
},
|
||||
"media/settings-panel.js": {
|
||||
"mtimeMs": 1779492050000,
|
||||
"size": 21104,
|
||||
"lines": 451,
|
||||
"mtimeMs": 1779597166000,
|
||||
"size": 21773,
|
||||
"lines": 463,
|
||||
"role": "",
|
||||
"imports": []
|
||||
},
|
||||
@@ -1438,12 +1447,13 @@
|
||||
"imports": []
|
||||
},
|
||||
"tests/agentEngine.test.ts": {
|
||||
"mtimeMs": 1778690770000,
|
||||
"size": 33921,
|
||||
"lines": 782,
|
||||
"role": "AgentEngine Integration Tests & Performance Benchmarks 검증 대상: 1. ErrorClassifier — 오류 유형(Transient/Permanent/Abort) 자동 분류 2. ErrorRecoveryMatrix — 각 규칙이 의도한 대응 전략으로 매핑되는지 검증 3. resilientExecute — 지수 백",
|
||||
"mtimeMs": 1779597242000,
|
||||
"size": 18323,
|
||||
"lines": 405,
|
||||
"role": "AgentEngine Tests — Chunked Writer Architecture 예전 buildup(planner → researcher → reflector → writer → synthesizer)을 단일 ChunkedWriter 의 outline → section[N] → polish 로 교체한 뒤의 회귀 테스트. 다루는 범위: 1. ErrorC",
|
||||
"imports": [
|
||||
"src/lib/engine"
|
||||
"src/lib/engine",
|
||||
"src/config"
|
||||
]
|
||||
},
|
||||
"tests/approvalQueue.test.ts": {
|
||||
@@ -1520,8 +1530,8 @@
|
||||
]
|
||||
},
|
||||
"tests/integration_retrieval.test.ts": {
|
||||
"mtimeMs": 1777949141000,
|
||||
"size": 4017,
|
||||
"mtimeMs": 1779536730000,
|
||||
"size": 4013,
|
||||
"lines": 91,
|
||||
"role": "",
|
||||
"imports": [
|
||||
@@ -1642,9 +1652,9 @@
|
||||
]
|
||||
},
|
||||
"tests/resilience_stress.test.ts": {
|
||||
"mtimeMs": 1777968922000,
|
||||
"size": 6981,
|
||||
"lines": 183,
|
||||
"mtimeMs": 1779534568000,
|
||||
"size": 8413,
|
||||
"lines": 197,
|
||||
"role": "Resilience & Boundary Stress Test Suite (v2.77.3) 이 테스트는 ConnectAI 엔진이 극한의 환경(인증 실패, 네트워크 차단, 타임아웃 등)에서 얼마나 안정적으로 복구되고, 신뢰성 지표(Resilience Metrics)를 정확히 기록하는지 검증합니다.",
|
||||
"imports": [
|
||||
"src/lib/engine"
|
||||
@@ -1998,7 +2008,7 @@
|
||||
"imports": []
|
||||
},
|
||||
"docs/records/ConnectAI/chronicle.config.json": {
|
||||
"mtimeMs": 1779518029000,
|
||||
"mtimeMs": 1779598044000,
|
||||
"size": 416,
|
||||
"lines": 11,
|
||||
"role": "JSON configuration",
|
||||
|
||||
Reference in New Issue
Block a user