diff --git a/.astra/project-context/architecture.md b/.astra/project-context/architecture.md index fd626ec..cf5df64 100644 --- a/.astra/project-context/architecture.md +++ b/.astra/project-context/architecture.md @@ -3,20 +3,20 @@ ## Snapshot -- **Workspace**: `ConnectAI` `v2.2.1` _(absolute path varies by environment; resolved from the active VS Code workspace)_ +- **Workspace**: `connectai` `v2.2.11` _(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**: 215 source files, ~40,522 lines across 5 top-level modules. +- **Stats**: 224 source files, ~45,895 lines across 5 top-level modules. ## Last Refresh -- **Time**: 2026-05-14T14:28:45.489Z -- **Files newly analysed**: 1 -- **Files reused from cache**: 214 +- **Time**: 2026-05-15T11:45:54.886Z +- **Files newly analysed**: 2 +- **Files reused from cache**: 222 ## Directory Map ```mermaid mindmap - root((ConnectAI)) + root((connectai)) src/ features/ core/ @@ -37,11 +37,11 @@ mindmap > Arrows: which top-level module imports from which. ```mermaid flowchart LR - src["src/103 files"] + src["src/110 files"] media["media/6 files"] tests["tests/27 files"] core_py["core_py/6 files"] - docs["docs/73 files"] + docs["docs/75 files"] tests --> src ``` @@ -53,25 +53,25 @@ flowchart LR ## Hub Files > Imported by many other files — touching these has wide blast radius. -- `src/utils.ts` — referenced by **45** files -- `src/config.ts` — referenced by **13** files -- `src/features/company/types.ts` — referenced by **11** files · 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/utils.ts` — referenced by **49** files +- `src/config.ts` — referenced by **16** files +- `src/features/company/types.ts` — referenced by **12** files · 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` — referenced by **10** files - `src/lib/paths.ts` — referenced by **10** 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/skills/agentKnowledgeMap.ts` — referenced by **6** files - `src/lib/engine.ts` — referenced by **6** files -- `src/core/services.ts` — referenced by **6** files ## Modules -### `src/` — 103 files, ~26,421 lines +### `src/` — 110 files, ~30,899 lines **Sub-directories** -- `src/features/` (30) — 기본 에이전트 로스터 — 1인 기업 모드의 출고 디폴트. 설계 의도: 소프트웨어/게임 개발 IT 회사의 1인 기업 운영을 가정. 한 사람이 기획 → 디자인 → 개발 → QA → 출시 → 운영/마케팅을 모두 책임질 때 +- `src/features/` (37) — 기본 에이전트 로스터 — 1인 기업 모드의 출고 디폴트. 설계 의도: 소프트웨어/게임 개발 IT 회사의 1인 기업 운영을 가정. 한 사람이 기획 → 디자인 → 개발 → QA → 출시 → 운영/마케팅을 모두 책임질 때 - `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) @@ -81,20 +81,20 @@ flowchart LR - `src/scaffolder/` (2) — Scaffolder template catalog. Templates are pure data — (projectName) => { [relativePath]: contents }. New templates are **Key files** -- `src/utils.ts` (268 lines) -- `src/config.ts` (224 lines) -- `src/features/company/types.ts` (387 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/utils.ts` (279 lines) +- `src/config.ts` (298 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/lib/paths.ts` (151 lines) -- `src/features/company/companyConfig.ts` (877 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` (3298 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` (5083 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` (518 lines) — Scoring Engine — TF-IDF + Bilingual Tokenizer 단순 includes() 키워드 매칭을 넘어서, TF-IDF 가중치 기반의 문서 스코어링을 제공합니다. 한국어/영어 양국어 토크나이저를 포함합니다. - `src/skills/agentKnowledgeMap.ts` (374 lines) -- `src/core/services.ts` (164 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` (3232 lines) +- `src/agent.ts` (3269 lines) - `src/lib/engine.ts` (906 lines) -- `src/features/company/dispatcher.ts` (874 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/company/dispatcher.ts` (1419 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/approval/approvalQueue.ts` (129 lines) - `src/integrations/telegram/telegramClient.ts` (154 lines) - `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 @@ -103,16 +103,16 @@ flowchart LR - `src/features/company/agents.ts` (196 lines) — 기본 에이전트 로스터 — 1인 기업 모드의 출고 디폴트. 설계 의도: 소프트웨어/게임 개발 IT 회사의 1인 기업 운영을 가정. 한 사람이 기획 → 디자인 → 개발 → QA → 출시 → 운영/마케팅을 모두 책임질 때 필요한 직군을 빠짐없이 커버하되 역할이 겹치지 않게 분리한다. 직군 구분 (혼동 방지): - 기획자(business) : 무엇을 만들지 정의 - `src/features/company/resumeStore.ts` (134 lines) — Disk persistence for company-turn resume state. 각 turn의 sessionDir 안에 resume.json을 두고, dispatcher가 매 의미 있는 시점(plan 확정 / 각 stage 직후 / abort 시점)에 현재 상태를 덮어쓴다. 재개 시점에는 이 파일을 읽어 nextIndex 부터 dispatch 재개. - `src/core/astraPath.ts` (50 lines) — Astra Path Resolver (경로 해결기) Astra의 모든 데이터 파일(.astra 디렉토리)의 경로를 중앙에서 관리합니다. 확장 프로그램의 설치 경로(extensionUri) 기반으로 .astra 디렉토리를 해결하여, 사용자 프로젝트 루트가 아닌 ConnectAI 패키지 내부에 데이터를 저장합니다. 이 모듈은 AAL(Astra Autonomou -- `src/extension.ts` (967 lines) +- `src/extension.ts` (972 lines) +- `src/features/company/intentAlignment.ts` (334 lines) — Intent Alignment — 사용자의 자연어 요청을 실행 가능한 작업 조건으로 변환. 사용자는 자기 의도와 배경지식이 에이전트에게 충분히 전달되었다고 착각하는 경향이 있다 (투명성의 착각·지식의 저주·공통 기반 부족). 그래서 에이전트가 즉시 작업에 돌입하면 사용자가 머릿속에 가진 것과 다른 결과를 만들어 낸다. 이 모듈은 그 격차를 메꾸는 한 단계 - `src/features/projectChronicle/types.ts` (118 lines) -- `src/lmstudio/client.ts` (147 lines) -### `media/` — 6 files, ~5,912 lines +### `media/` — 6 files, ~6,763 lines **Key files** -- `media/sidebar.css` (1686 lines) — Stylesheet -- `media/sidebar.js` (3119 lines) -- `media/sidebar.html` (463 lines) — Astra +- `media/sidebar.css` (1990 lines) — Stylesheet +- `media/sidebar.js` (3598 lines) +- `media/sidebar.html` (531 lines) — Astra - `media/settings-panel.css` (210 lines) — Stylesheet - `media/settings-panel.html` (164 lines) — Astra Settings - `media/settings-panel.js` (270 lines) @@ -160,11 +160,11 @@ flowchart LR - `core_py/optimizer.py` (55 lines) - `core_py/queue_worker.py` (82 lines) -### `docs/` — 73 files, ~2,842 lines +### `docs/` — 75 files, ~2,886 lines **Sub-directories** -- `docs/records/` (61) — Astra Project Chronicle Records -- `docs/docs/` (5) — docs Chronicle Records +- `docs/records/` (63) — 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,31 +172,31 @@ 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` (134 lines) — Project Timeline +- `docs/records/ConnectAI/timeline.md` (140 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` - **Activation events**: `onStartupFinished` -- **Commands** (23): +- **Commands** (24): - `g1nation.newChat` — Astra: New Chat - `g1nation.exportChat` — Astra: Export Chat as Markdown - `g1nation.explainSelection` — Astra: Explain Selected Code @@ -220,7 +220,8 @@ flowchart LR - `g1nation.company.toggle` — Astra: Toggle 1인 기업 Mode - `g1nation.company.manage` — Astra: Manage 1인 기업 Agents - `g1nation.company.openSessions` — Astra: Open 1인 기업 Sessions Folder -- **Configuration** (40 settings): + - `g1nation.company.pixelOffice.open` — Astra: Open Pixel Office (Full Screen) +- **Configuration** (50 settings): - `g1nation.multiAgentEnabled` *(boolean)* _(default: `false`)_ — Enable Multi-Agent Workflow (Planner -> Researcher -> Writer) for complex tasks. - `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. @@ -261,6 +262,16 @@ flowchart LR - `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.company.intentClassifierModel` *(string)* _(default: `""`)_ — Model used to classify whether an incoming chat message in 1인 기업 모드 is a (a) casual chat / question, (b) follow-up on the previous round, or (c) a brand-new task that should trigger the full work pipe + - `g1nation.company.disableIntentClassifier` *(boolean)* _(default: `false`)_ — Bypass the intent classifier and always run the full work pipeline on every chat message in 1인 기업 모드 (legacy behaviour). Enable this only if you want every input — including 'thanks', 'show me X again + - `g1nation.company.autoSelectPipeline` *(boolean)* _(default: `true`)_ — Let the intent classifier *automatically switch* to the pipeline it recommends for this turn (e.g. short '기획서까지만' for a planning ask, full '풀 프로덕트' for an end-to-end product). Your explicitly-activate + - `g1nation.company.intentAlignmentMode` *(string)* _(default: `"smart"`)_ — Intent Alignment — turn user prompts into an explicit Requirement Contract (C-G-C-F-Q) before dispatching a pipeline. 'off' = legacy, pipeline runs immediately. 'smart' (default) = run when confidence + - `g1nation.company.intentAlignmentMaxRounds` *(number)* _(default: `3`)_ — Maximum back-and-forth rounds the Intent Alignment analyzer is allowed to ask before forcing a 'confirm or cancel' card (it stops asking new questions and shows the current contract for user approval) + - `g1nation.selfReflector.enabled` *(boolean)* _(default: `true`)_ — Self-Reflector Phase A — append a [Self-Reflector Check] block at the end of every substantive LLM answer (Consistency / Completeness / Accuracy, plus References / Paths for code answers). Zero extra + - `g1nation.selfReflector.externalVerification` *(boolean)* _(default: `false`)_ — Self-Reflector Phase B — after every 1인 기업 specialist response, run a *separate* LLM call to verify the output from an outside-context perspective (catches the 'same model self-validates' blind spot). + - `g1nation.selfReflector.executionVerification` *(boolean)* _(default: `false`)_ — Self-Reflector Phase C — after a code file is created via , automatically run the language's syntax check (Python: py_compile, JS: node --check, TS: project tsc --noEmit). Failures are su + - `g1nation.company.pixelOffice.enabled` *(boolean)* _(default: `true`)_ — Show the Pixel Office visualisation panel above the chat — a small pixel-office-style display that mirrors the agent's current pipeline status (analyzing, need_clarification, executing, reviewing, wai + - `g1nation.company.pixelOffice.bubbles` *(boolean)* _(default: `true`)_ — Show short comic-style speech bubbles above the Pixel Office character on status changes / key events (e.g. '코드 들어간다', '잠깐, 이건 다시 보자', '좋아, 끝났다!'). Bubbles are purely narrative — they never influence ## Dependencies - **Runtime** (2): `@lmstudio/sdk`, `pdf-parse` @@ -308,7 +319,7 @@ Astra는 대표님의 명시적인 승인 하에 로컬 시스템의 강력한 **Designed for High-Performance Decision Making.** Copyright (C) **g1nation**. All rights reserved. -_Last auto-scan: 2026-05-14T14:28:45.489Z · signature `6f3aa605`_ +_Last auto-scan: 2026-05-15T11:45:54.886Z · signature `ac525c98`_ ## Purpose diff --git a/.astra/project-context/scan-cache.json b/.astra/project-context/scan-cache.json index 106f207..a993c72 100644 --- a/.astra/project-context/scan-cache.json +++ b/.astra/project-context/scan-cache.json @@ -1,11 +1,11 @@ { "version": 1, - "generatedAt": "2026-05-14T14:28:45.502Z", + "generatedAt": "2026-05-15T11:45:54.912Z", "files": { "src/agent.ts": { - "mtimeMs": 1778683690000, - "size": 185807, - "lines": 3232, + "mtimeMs": 1778821287514.7053, + "size": 190781, + "lines": 3269, "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/agents/reflectionPersister.ts": { - "mtimeMs": 1778763469000, - "size": 11986, + "mtimeMs": 1778807413489.8743, + "size": 12294, "lines": 308, "role": "Reflection → Lesson persistence Take the Reflector agent's structured critique and persist any substantive findings as a lesson card in /lessons/auto-reflector/. The existing brain retrieval", "imports": [ @@ -69,8 +69,8 @@ ] }, "src/bridge.ts": { - "mtimeMs": 1778681774000, - "size": 9705, + "mtimeMs": 1778549008895.9155, + "size": 9932, "lines": 227, "role": "", "imports": [ @@ -82,21 +82,21 @@ ] }, "src/config.ts": { - "mtimeMs": 1778763415000, - "size": 10185, - "lines": 224, + "mtimeMs": 1778820338139.1692, + "size": 14921, + "lines": 298, "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": "", @@ -105,35 +105,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": "", @@ -143,7 +143,7 @@ ] }, "src/core/lock.ts": { - "mtimeMs": 1778169995000, + "mtimeMs": 1778038157826.973, "size": 2358, "lines": 66, "role": "", @@ -152,8 +152,8 @@ ] }, "src/core/queue.ts": { - "mtimeMs": 1778674336000, - "size": 2428, + "mtimeMs": 1778666871393.5244, + "size": 2509, "lines": 81, "role": "", "imports": [ @@ -161,8 +161,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": [ @@ -170,8 +170,8 @@ ] }, "src/core/services.ts": { - "mtimeMs": 1778421200000, - "size": 6692, + "mtimeMs": 1778549008895.9155, + "size": 6856, "lines": 164, "role": "", "imports": [ @@ -180,8 +180,8 @@ ] }, "src/core/session.ts": { - "mtimeMs": 1777808065000, - "size": 2785, + "mtimeMs": 1777511752609.8882, + "size": 2873, "lines": 88, "role": "", "imports": [ @@ -190,14 +190,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", @@ -207,8 +207,8 @@ ] }, "src/core/transaction.ts": { - "mtimeMs": 1778251556000, - "size": 4458, + "mtimeMs": 1778549008897.4194, + "size": 4590, "lines": 132, "role": "", "imports": [ @@ -216,52 +216,52 @@ "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": 1778768500000, - "size": 50591, - "lines": 967, + "mtimeMs": 1778819737212.6252, + "size": 51910, + "lines": 972, "role": "", "imports": [ "src/utils", @@ -294,8 +294,8 @@ ] }, "src/features/approval/approvalPanelProvider.ts": { - "mtimeMs": 1778674336000, - "size": 7132, + "mtimeMs": 1778664480470.9922, + "size": 7285, "lines": 153, "role": "", "imports": [ @@ -304,8 +304,8 @@ ] }, "src/features/approval/approvalQueue.ts": { - "mtimeMs": 1778251548000, - "size": 4722, + "mtimeMs": 1778549008899.4456, + "size": 4851, "lines": 129, "role": "", "imports": [ @@ -313,8 +313,8 @@ ] }, "src/features/approval/approvalStatusBar.ts": { - "mtimeMs": 1778251623000, - "size": 1601, + "mtimeMs": 1778549008899.4456, + "size": 1642, "lines": 41, "role": "", "imports": [ @@ -322,8 +322,8 @@ ] }, "src/features/company/agents.ts": { - "mtimeMs": 1778765657000, - "size": 13783, + "mtimeMs": 1778807413492.3777, + "size": 13979, "lines": 196, "role": "기본 에이전트 로스터 — 1인 기업 모드의 출고 디폴트. 설계 의도: 소프트웨어/게임 개발 IT 회사의 1인 기업 운영을 가정. 한 사람이 기획 → 디자인 → 개발 → QA → 출시 → 운영/마케팅을 모두 책임질 때 필요한 직군을 빠짐없이 커버하되 역할이 겹치지 않게 분리한다. 직군 구분 (혼동 방지): - 기획자(business) : 무엇을 만들지 정의 ", "imports": [ @@ -331,9 +331,9 @@ ] }, "src/features/company/ceoPlanner.ts": { - "mtimeMs": 1778762677000, - "size": 11307, - "lines": 266, + "mtimeMs": 1778814432469.254, + "size": 12050, + "lines": 269, "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", @@ -345,8 +345,8 @@ ] }, "src/features/company/ceoReporter.ts": { - "mtimeMs": 1778762677000, - "size": 4895, + "mtimeMs": 1778739926808.2551, + "size": 5017, "lines": 122, "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": [ @@ -358,9 +358,9 @@ ] }, "src/features/company/companyConfig.ts": { - "mtimeMs": 1778764783000, - "size": 39070, - "lines": 877, + "mtimeMs": 1778811673797.1216, + "size": 41035, + "lines": 896, "role": "State + config plumbing for 1인 기업 모드. Two surfaces: - CompanyState (runtime data: enabled flag, company name, which agents are active, per-agent model overrides). Persisted in VS Code's globalState so", "imports": [ "src/features/company/agents", @@ -368,9 +368,9 @@ ] }, "src/features/company/dispatcher.ts": { - "mtimeMs": 1778768379000, - "size": 40226, - "lines": 874, + "mtimeMs": 1778821270733.2605, + "size": 73540, + "lines": 1419, "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", @@ -385,13 +385,18 @@ "src/features/company/sessionStore", "src/features/company/resumeStore", "src/features/company/telegramReport", - "src/features/company/types" + "src/features/company/types", + "src/features/company/intentAlignment", + "src/config", + "src/features/selfReflector/selfReflectorVerifier", + "src/features/selfReflector/selfReflectorExecution", + "src/features/selfReflector/selfReflectorHollow" ] }, "src/features/company/index.ts": { - "mtimeMs": 1778768145000, - "size": 1979, - "lines": 91, + "mtimeMs": 1778814836698.1172, + "size": 2702, + "lines": 106, "role": "Public API for 1인 기업 모드. Consumers (sidebarProvider, chatHandlers, command handlers) import from this barrel so internal layout can move around without touching every call site.", "imports": [ "src/features/company/agents", @@ -400,60 +405,93 @@ "src/features/company/pipelineTemplates", "src/features/company/dispatcher", "src/features/company/resumeStore", - "src/features/company/sessionStore" + "src/features/company/sessionStore", + "src/features/company/intentClassifier", + "src/features/company/intentAlignment", + "src/features/company/pixelOfficeState" + ] + }, + "src/features/company/intentAlignment.ts": { + "mtimeMs": 1778813958976.1824, + "size": 15285, + "lines": 334, + "role": "Intent Alignment — 사용자의 자연어 요청을 실행 가능한 작업 조건으로 변환. 사용자는 자기 의도와 배경지식이 에이전트에게 충분히 전달되었다고 착각하는 경향이 있다 (투명성의 착각·지식의 저주·공통 기반 부족). 그래서 에이전트가 즉시 작업에 돌입하면 사용자가 머릿속에 가진 것과 다른 결과를 만들어 낸다. 이 모듈은 그 격차를 메꾸는 한 단계 ", + "imports": [ + "src/core/services", + "src/utils", + "src/features/company/types" + ] + }, + "src/features/company/intentClassifier.ts": { + "mtimeMs": 1778819562785.657, + "size": 17372, + "lines": 348, + "role": "Intent classifier for 1인 기업 모드 chat input. The company mode used to route every chat message through the full dispatcher (CEO planner → specialists → CEO synthesis). That meant casual messages like \"고", + "imports": [ + "src/core/services", + "src/utils" ] }, "src/features/company/pipelineTemplates.ts": { - "mtimeMs": 1778762677000, - "size": 11351, - "lines": 211, + "mtimeMs": 1778811940057.931, + "size": 13681, + "lines": 250, "role": "Built-in pipeline templates for 1인 기업 모드. These are blueprints, not data — they're surfaced in the manage panel's \"템플릿에서 추가\" dropdown so a non-developer user can stamp out a working pipeline in one cl", "imports": [ "src/features/company/types" ] }, + "src/features/company/pixelOfficeState.ts": { + "mtimeMs": 1778843402595.067, + "size": 10025, + "lines": 286, + "role": "Pixel Office — Agent Work Pipeline 상태를 시각화하는 UI Layer 전용 모듈. ─────────────────── 설계 원칙 ─────────────────── 1. Agent 핵심 판단 로직을 절대 바꾸지 않는다. Pipeline 진행, contract 합의, 검수 cycle, 승인 게이트 — 모두 기존 dispatcher ", + "imports": [] + }, "src/features/company/promptAssets.ts": { - "mtimeMs": 1778680887000, - "size": 6782, + "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": 1778762677000, - "size": 12835, - "lines": 231, + "mtimeMs": 1778820392456.6843, + "size": 14759, + "lines": 260, "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": [ "src/features/company/agents", "src/features/company/companyConfig", - "src/features/company/types" + "src/features/company/types", + "src/config", + "src/features/selfReflector/selfReflectorPrompt" ] }, "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/resumeStore.ts": { - "mtimeMs": 1778768128000, - "size": 5672, + "mtimeMs": 1778807413496.3787, + "size": 5806, "lines": 134, "role": "Disk persistence for company-turn resume state. 각 turn의 sessionDir 안에 resume.json을 두고, dispatcher가 매 의미 있는 시점(plan 확정 / 각 stage 직후 / abort 시점)에 현재 상태를 덮어쓴다. 재개 시점에는 이 파일을 읽어 nextIndex 부터 dispatch 재개. ", "imports": [ @@ -463,8 +501,8 @@ ] }, "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": [ @@ -473,8 +511,8 @@ ] }, "src/features/company/telegramReport.ts": { - "mtimeMs": 1778762677000, - "size": 8126, + "mtimeMs": 1778739949327.3745, + "size": 8294, "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": [ @@ -486,15 +524,15 @@ ] }, "src/features/company/types.ts": { - "mtimeMs": 1778768095000, - "size": 17279, - "lines": 387, + "mtimeMs": 1778813870251.361, + "size": 21323, + "lines": 446, "role": "Type definitions for the 1인 기업 (One-Person Company) mode. The mode turns the user into a virtual CEO that dispatches work to a roster of specialist agents. Each turn produces a session directory conta", "imports": [] }, "src/features/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": [ @@ -504,15 +542,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": [ @@ -520,8 +558,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": [ @@ -531,8 +569,8 @@ ] }, "src/features/projectChronicle/guardPrompt.ts": { - "mtimeMs": 1777870211000, - "size": 6880, + "mtimeMs": 1778028987407.7454, + "size": 6955, "lines": 75, "role": "", "imports": [ @@ -540,8 +578,8 @@ ] }, "src/features/projectChronicle/index.ts": { - "mtimeMs": 1777808065000, - "size": 7490, + "mtimeMs": 1778028987408.4517, + "size": 7679, "lines": 189, "role": "", "imports": [ @@ -552,15 +590,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": [ @@ -568,15 +606,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": [ @@ -584,9 +622,42 @@ "src/retrieval/scoring" ] }, + "src/features/selfReflector/selfReflectorExecution.ts": { + "mtimeMs": 1778820616339.356, + "size": 7758, + "lines": 172, + "role": "Self-Reflector Phase C — 실행 기반 검증. Phase A/B는 LLM 텍스트 분석에 의존하므로 \"코드가 실제로 컴파일되는가?\" 같은 질문엔 한계가 있다. Phase C는 정답: 그냥 실행해 본다. 동작: 1. action-tag executor가 반환한 report를 받아 ✅ Created: / ✅ Edited: ", + "imports": [ + "src/utils" + ] + }, + "src/features/selfReflector/selfReflectorHollow.ts": { + "mtimeMs": 1778821213094.901, + "size": 10482, + "lines": 258, + "role": "Self-Reflector — 빈 깡통(Hollow Code) 검출 휴리스틱. Phase C(syntax/lint)는 문법 오류만 잡는다. 작은 LLM이 가장 자주 만드는 실패 패턴은 문법은 맞지만 본문이 비어 있는 코드 — def foo(): pass, # TODO: implement, import만 있고 로직 0줄인 모듈 등. 사용자가 \"완료 됐다\"라는", + "imports": [] + }, + "src/features/selfReflector/selfReflectorPrompt.ts": { + "mtimeMs": 1778821145026.1665, + "size": 6139, + "lines": 108, + "role": "Self-Reflector — 답변 산출물의 자기 검증 레이어. Memory(기억) 단계는 이미 충분히 강하지만 Verification(검증) 단계는 사용자 피드백에 의존적이다. 이 모듈은 그 격차를 메꾸는 3단 구조: Phase A (이 파일) ─ 시스템 프롬프트에 self-check 체크리스트 룰을 박아 LLM이 응답 마지막에 [Self-Reflecto", + "imports": [] + }, + "src/features/selfReflector/selfReflectorVerifier.ts": { + "mtimeMs": 1778821237110.5894, + "size": 7495, + "lines": 172, + "role": "Self-Reflector Phase B — 분리된 콘텍스트에서 LLM 한 번 더 호출해 응답을 외부 시각으로 검증. Phase A의 self-check는 같은 모델·같은 콘텍스트에서 자기 자신을 보는 한계가 있다. 모델이 자기가 만든 답변을 자신 있게 잘못 평가하는 과신 편향은 LLM의 잘 알려진 약점이다. Phase B는 이걸 보완하기 위해: 1. sp", + "imports": [ + "src/core/services", + "src/utils" + ] + }, "src/features/settings/settingsPanelProvider.ts": { - "mtimeMs": 1778674336000, - "size": 21422, + "mtimeMs": 1778664502139.8142, + "size": 21911, "lines": 489, "role": "", "imports": [ @@ -598,8 +669,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": [ @@ -607,8 +678,8 @@ ] }, "src/integrations/telegram/telegramBot.ts": { - "mtimeMs": 1778421270000, - "size": 11344, + "mtimeMs": 1778549008903.0078, + "size": 11614, "lines": 270, "role": "", "imports": [ @@ -618,8 +689,8 @@ ] }, "src/integrations/telegram/telegramClient.ts": { - "mtimeMs": 1778252333000, - "size": 5873, + "mtimeMs": 1778549008904.013, + "size": 6027, "lines": 154, "role": "", "imports": [ @@ -628,22 +699,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": [ @@ -651,8 +722,8 @@ ] }, "src/lib/discoverModels.ts": { - "mtimeMs": 1778255896000, - "size": 1555, + "mtimeMs": 1778549008905.0132, + "size": 1590, "lines": 35, "role": "", "imports": [ @@ -660,8 +731,8 @@ ] }, "src/lib/engine.ts": { - "mtimeMs": 1778763448000, - "size": 42698, + "mtimeMs": 1778807413498.881, + "size": 43604, "lines": 906, "role": "", "imports": [ @@ -676,8 +747,8 @@ ] }, "src/lib/formatter.ts": { - "mtimeMs": 1777980992000, - "size": 3851, + "mtimeMs": 1778028987413.7585, + "size": 3932, "lines": 81, "role": "", "imports": [ @@ -685,22 +756,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": [ @@ -708,8 +779,8 @@ ] }, "src/lmstudio/lifecycleManager.ts": { - "mtimeMs": 1778251087000, - "size": 10783, + "mtimeMs": 1778549008907.0293, + "size": 11074, "lines": 291, "role": "", "imports": [ @@ -720,8 +791,8 @@ ] }, "src/lmstudio/streamer.ts": { - "mtimeMs": 1778598444000, - "size": 7762, + "mtimeMs": 1778664139962.1995, + "size": 7924, "lines": 162, "role": "", "imports": [ @@ -730,65 +801,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": [ @@ -802,16 +825,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": [ @@ -821,8 +892,8 @@ ] }, "src/retrieval/contextBudget.ts": { - "mtimeMs": 1778674336000, - "size": 5143, + "mtimeMs": 1778665501089.1736, + "size": 5283, "lines": 140, "role": "Context Budget Manager (컨텍스트 예산 관리) 시스템 프롬프트의 토큰 예산을 관리하여 로컬 모델의 context window를 효율적으로 활용합니다.", "imports": [ @@ -830,7 +901,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", @@ -839,8 +910,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": [ @@ -857,18 +928,18 @@ ] }, "src/retrieval/knowledgeMix.ts": { - "mtimeMs": 1778676121000, - "size": 6947, - "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", + "mtimeMs": 1778821115241.6562, + "size": 7786, + "lines": 165, + "role": "Knowledge Mix — model 지식 vs Second Brain 지식의 상대 비율을 LLM에게 전달하는 정책 레이어. ── 정책 v2 (상대값+상대값=상대값) ────────────────────────────────────── weight는 0~100 정수이지만 상대 비율로만 해석한다. 즉 \"70\"은 \"100% 중 70%\"라는 상대 표현이고, 시", "imports": [ "src/config", "src/skills/agentKnowledgeMap" ] }, "src/retrieval/lessonHelpers.ts": { - "mtimeMs": 1778674336000, - "size": 14134, + "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": [ @@ -876,22 +947,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": [ @@ -901,22 +972,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": [ @@ -926,8 +997,8 @@ ] }, "src/sidebar/brainHandlers.ts": { - "mtimeMs": 1778248976000, - "size": 1080, + "mtimeMs": 1778549008912.5908, + "size": 1113, "lines": 33, "role": "", "imports": [ @@ -935,21 +1006,23 @@ ] }, "src/sidebar/chatHandlers.ts": { - "mtimeMs": 1778768483000, - "size": 23759, - "lines": 455, + "mtimeMs": 1778819940157.8838, + "size": 35435, + "lines": 630, "role": "", "imports": [ "src/sidebarProvider", "src/utils", "src/lib/paths", + "src/config", "src/features/company", + "src/core/services", "src/features/company/resumeStore" ] }, "src/sidebar/chronicleHandlers.ts": { - "mtimeMs": 1778248986000, - "size": 2068, + "mtimeMs": 1778549008912.5908, + "size": 2120, "lines": 52, "role": "", "imports": [ @@ -957,9 +1030,9 @@ ] }, "src/sidebarProvider.ts": { - "mtimeMs": 1778768541000, - "size": 144281, - "lines": 3298, + "mtimeMs": 1778843646980.0396, + "size": 233292, + "lines": 5083, "role": "", "imports": [ "src/utils", @@ -984,8 +1057,8 @@ ] }, "src/skills/agentKnowledgeMap.ts": { - "mtimeMs": 1778676092000, - "size": 15707, + "mtimeMs": 1778720117565.968, + "size": 16081, "lines": 374, "role": "", "imports": [ @@ -994,8 +1067,8 @@ ] }, "src/skills/externalSkillLoader.ts": { - "mtimeMs": 1778470672000, - "size": 5859, + "mtimeMs": 1778549008916.6155, + "size": 6018, "lines": 159, "role": "", "imports": [ @@ -1004,8 +1077,8 @@ ] }, "src/skills/scopedBrainRetriever.ts": { - "mtimeMs": 1778419289000, - "size": 5706, + "mtimeMs": 1778549008916.6155, + "size": 5859, "lines": 153, "role": "", "imports": [ @@ -1016,8 +1089,8 @@ ] }, "src/skills/skillInjectionService.ts": { - "mtimeMs": 1778681774000, - "size": 6276, + "mtimeMs": 1778549008918.12, + "size": 6421, "lines": 145, "role": "", "imports": [ @@ -1026,73 +1099,74 @@ ] }, "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, - "lines": 268, + "mtimeMs": 1778820375140.532, + "size": 12434, + "lines": 279, "role": "", "imports": [ - "src/config" + "src/config", + "src/features/selfReflector/selfReflectorPrompt" ] }, "media/settings-panel.css": { - "mtimeMs": 1778255405000, - "size": 4546, + "mtimeMs": 1778549008877.4587, + "size": 4756, "lines": 210, "role": "Stylesheet", "imports": [] }, "media/settings-panel.html": { - "mtimeMs": 1778763966000, - "size": 7678, + "mtimeMs": 1778807413482.8672, + "size": 7842, "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": 1778768679000, - "size": 69000, - "lines": 1686, + "mtimeMs": 1778819952884.323, + "size": 87455, + "lines": 1990, "role": "Stylesheet", "imports": [] }, "media/sidebar.html": { - "mtimeMs": 1778768580000, - "size": 28892, - "lines": 463, + "mtimeMs": 1778819908855.1235, + "size": 33761, + "lines": 531, "role": "Astra", "imports": [] }, "media/sidebar.js": { - "mtimeMs": 1778768663000, - "size": 178034, - "lines": 3119, + "mtimeMs": 1778819929018.6155, + "size": 210552, + "lines": 3598, "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": [ @@ -1100,8 +1174,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": [ @@ -1109,8 +1183,8 @@ ] }, "tests/brainIndex.test.ts": { - "mtimeMs": 1778594450000, - "size": 5406, + "mtimeMs": 1778664139970.806, + "size": 5513, "lines": 107, "role": "", "imports": [ @@ -1118,8 +1192,8 @@ ] }, "tests/contextManager.test.ts": { - "mtimeMs": 1778594523000, - "size": 6545, + "mtimeMs": 1778664139971.9563, + "size": 6674, "lines": 129, "role": "", "imports": [ @@ -1127,8 +1201,8 @@ ] }, "tests/dataProcessor.test.ts": { - "mtimeMs": 1777808065000, - "size": 3430, + "mtimeMs": 1778028987448.8394, + "size": 3517, "lines": 87, "role": "/ ", "imports": [ @@ -1136,8 +1210,8 @@ ] }, "tests/findBrainFilesCache.test.ts": { - "mtimeMs": 1778247665000, - "size": 2720, + "mtimeMs": 1778549008921.7842, + "size": 2800, "lines": 80, "role": "Unit tests for findBrainFiles TTL cache.", "imports": [ @@ -1145,8 +1219,8 @@ ] }, "tests/integration_retrieval.test.ts": { - "mtimeMs": 1777949141000, - "size": 4017, + "mtimeMs": 1778028987449.4358, + "size": 4108, "lines": 91, "role": "", "imports": [ @@ -1155,8 +1229,8 @@ ] }, "tests/lessonHelpers.test.ts": { - "mtimeMs": 1778595482000, - "size": 9400, + "mtimeMs": 1778664139972.9592, + "size": 9591, "lines": 191, "role": "", "imports": [ @@ -1164,8 +1238,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": [ @@ -1175,8 +1249,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": [ @@ -1185,8 +1259,8 @@ ] }, "tests/localPathPreflight.test.ts": { - "mtimeMs": 1778595955000, - "size": 23687, + "mtimeMs": 1778664139974.819, + "size": 24177, "lines": 490, "role": "", "imports": [ @@ -1194,15 +1268,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": [ @@ -1210,8 +1284,8 @@ ] }, "tests/projectChronicle.test.ts": { - "mtimeMs": 1778169995000, - "size": 8359, + "mtimeMs": 1778029332769.3286, + "size": 8558, "lines": 199, "role": "", "imports": [ @@ -1219,8 +1293,8 @@ ] }, "tests/projectChronicleGuardPrompt.test.ts": { - "mtimeMs": 1777808369000, - "size": 2838, + "mtimeMs": 1778028987452.0652, + "size": 2890, "lines": 52, "role": "", "imports": [ @@ -1228,8 +1302,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": [ @@ -1237,8 +1311,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": [ @@ -1246,8 +1320,8 @@ ] }, "tests/resilience_v4.test.ts": { - "mtimeMs": 1777978211000, - "size": 3435, + "mtimeMs": 1778028987453.5366, + "size": 3519, "lines": 84, "role": "", "imports": [ @@ -1256,8 +1330,8 @@ ] }, "tests/responseRecovery.test.ts": { - "mtimeMs": 1778598707000, - "size": 8782, + "mtimeMs": 1778664139974.819, + "size": 8933, "lines": 151, "role": "", "imports": [ @@ -1265,8 +1339,8 @@ ] }, "tests/scoring.test.ts": { - "mtimeMs": 1778169995000, - "size": 6055, + "mtimeMs": 1778043314856.5872, + "size": 6189, "lines": 134, "role": "", "imports": [ @@ -1274,8 +1348,8 @@ ] }, "tests/secondBrainTrace.test.ts": { - "mtimeMs": 1777866065000, - "size": 23024, + "mtimeMs": 1778028987455.0378, + "size": 23431, "lines": 407, "role": "", "imports": [ @@ -1283,8 +1357,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": [ @@ -1292,8 +1366,8 @@ ] }, "tests/systemPrompt.test.ts": { - "mtimeMs": 1777966465000, - "size": 1215, + "mtimeMs": 1778028987455.4153, + "size": 1244, "lines": 29, "role": "", "imports": [ @@ -1301,8 +1375,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": [ @@ -1310,8 +1384,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": [ @@ -1321,8 +1395,8 @@ ] }, "tests/transaction.test.ts": { - "mtimeMs": 1777808065000, - "size": 2064, + "mtimeMs": 1777511752614.9685, + "size": 2132, "lines": 68, "role": "/ ", "imports": [ @@ -1330,8 +1404,8 @@ ] }, "tests/vulnerability.test.ts": { - "mtimeMs": 1777808065000, - "size": 2100, + "mtimeMs": 1777511752615.9702, + "size": 2160, "lines": 60, "role": "/ ", "imports": [ @@ -1340,557 +1414,571 @@ ] }, "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": 1778762677000, + "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": 1778762677000, + "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": 1778762677000, + "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": 1778768908000, - "size": 416, + "mtimeMs": 1778842955465.801, + "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": 1778762677000, + "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": 1778762677000, + "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/decisions/ADR-0013-e-wiki-connectai-이-프로젝트야.md": { + "mtimeMs": 1778842918359.619, + "size": 1370, + "lines": 19, + "role": "ADR: E:\\Wiki\\connectai 이 프로젝트야", + "imports": [] + }, + "docs/records/ConnectAI/decisions/ADR-0014-astra-office-부분-관련해서-개선할-부분이-너무-많아-개선점이-무었이-있는지-의견-주면-좋겠어.md": { + "mtimeMs": 1778842955303.0571, + "size": 1560, + "lines": 19, + "role": "ADR: ASTRA OFFICE 부분 관련해서 개선할 부분이 너무 많아. 개선점이 무었이 있는지 의견 주면 좋겠어.", + "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/development/2026-05-14_reflector-에이전트가-1인-기업-에이전트-목록에는-안보이는데_implementation.md": { - "mtimeMs": 1778762677000, + "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": 1778690673000, - "size": 652, + "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/discussions/2026-05-14_최성연-알아-칼리버스에서-근무한데.md": { - "mtimeMs": 1778762677000, + "docs/records/ConnectAI/discussions/2026-05-14_최성연-알아-칼리버스에서-근무한데.md": { + "mtimeMs": 1778733596076.9204, "size": 1297, "lines": 16, "role": "Discussion: 최성연 알아? 칼리버스에서 근무한데", "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_connectai-architecture-문서-최신화-해줘.md": { - "mtimeMs": 1778693933000, - "size": 1340, + "docs/records/ConnectAI/planning/2026-05-13_connectai-architecture-문서-최신화-해줘.md": { + "mtimeMs": 1778807413479.8662, + "size": 1380, "lines": 40, "role": "Feature Plan: Connectai architecture 문서 최신화 해줘.", "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/planning/2026-05-13_지금-connectai-architecture-md-문서-내용-중-업데이트가-필요한-부분이-있는지-확인해줘-.md": { - "mtimeMs": 1778694061000, - "size": 2970, + "docs/records/ConnectAI/planning/2026-05-13_지금-connectai-architecture-md-문서-내용-중-업데이트가-필요한-부분이-있는지-확인해줘-.md": { + "mtimeMs": 1778807413480.8667, + "size": 3010, "lines": 40, "role": "Feature Plan: 지금 connectai architecture.md 문서 내용 중 업데이트가 필요한 부분이 있는지 확인해줘. 그러고 최신화해줘. 너가 분석해", "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": 1778763539000, - "size": 8783, - "lines": 134, + "mtimeMs": 1778842955307.5059, + "size": 9216, + "lines": 140, "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 6538b7f..c581aa3 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": 1778821460579, + "createdAt": 1778845577946, "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 251d05a..1edc9a3 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": 1778821460577, + "createdAt": 1778845577944, "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 b3fa3a2..191ac96 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": 1778821460575, + "createdAt": 1778845577941, "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 bb1d916..d3b74ed 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_1778821460557\ndate: 2026-05-15T05:04:20.581Z\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]** 전략 수립 중... (17ms)\n- **[RESEARCHER]** 핵심 정보 수집 및 분석 중... (2ms)\n- **[WRITER]** 최종 리포트 작성 및 편집 중... (3ms)\n", - "createdAt": 1778821460581, + "result": "---\nid: stress_conflict_1778845577925\ndate: 2026-05-15T11:46:17.947Z\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]** 전략 수립 중... (15ms)\n- **[RESEARCHER]** 핵심 정보 수집 및 분석 중... (2ms)\n- **[WRITER]** 최종 리포트 작성 및 편집 중... (3ms)\n", + "createdAt": 1778845577948, "modelVersion": "unknown" } \ No newline at end of file diff --git a/.astra/tests/stress/.astra/missions/stress_conflict_1778821460557.json b/.astra/tests/stress/.astra/missions/stress_conflict_1778845577925.json similarity index 81% rename from .astra/tests/stress/.astra/missions/stress_conflict_1778821460557.json rename to .astra/tests/stress/.astra/missions/stress_conflict_1778845577925.json index e8b66bc..390f3f8 100644 --- a/.astra/tests/stress/.astra/missions/stress_conflict_1778821460557.json +++ b/.astra/tests/stress/.astra/missions/stress_conflict_1778845577925.json @@ -1,8 +1,8 @@ { - "missionId": "stress_conflict_1778821460557", + "missionId": "stress_conflict_1778845577925", "status": "completed", - "startTime": "2026-05-15T05:04:20.557Z", - "totalElapsedMs": 25, + "startTime": "2026-05-15T11:46:17.925Z", + "totalElapsedMs": 24, "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": 17, + "durationMs": 15, "message": "전략 수립 중...", - "ts": "2026-05-15T05:04:20.574Z" + "ts": "2026-05-15T11:46:17.940Z" }, { "from": "planner", "to": "researcher", "durationMs": 2, "message": "핵심 정보 수집 및 분석 중...", - "ts": "2026-05-15T05:04:20.576Z" + "ts": "2026-05-15T11:46:17.942Z" }, { "from": "researcher", "to": "writer", "durationMs": 3, "message": "최종 리포트 작성 및 편집 중...", - "ts": "2026-05-15T05:04:20.579Z" + "ts": "2026-05-15T11:46:17.945Z" }, { "from": "writer", "to": "completed", - "durationMs": 2, + "durationMs": 4, "message": "미션 완료", - "ts": "2026-05-15T05:04:20.581Z" + "ts": "2026-05-15T11:46:17.949Z" } ], "resilienceMetrics": { diff --git a/PATCHNOTES.md b/PATCHNOTES.md index 6d075db..d281694 100644 --- a/PATCHNOTES.md +++ b/PATCHNOTES.md @@ -1,5 +1,85 @@ # Astra Patch Notes +## v2.2.11 (2026-05-15) +### 🛡️ Cross-Project Build Optimization & Stability Enforcement +- **멀티 빌드 도구 대응 강화:** Vite와 CRA 등 서로 다른 빌드 환경 간의 설정 혼선을 감지하고, 프로젝트 성격에 맞는 최적화된 인프라(package.json)로 자동 복구 및 정렬하는 로직을 추가했습니다. +- **의존성 무결성 검사 고도화:** 패키지 설치 시 발생할 수 있는 환경 변수 충돌 및 명령어 해석 오류(PowerShell && 등)에 대한 사전 방어 체계를 강화했습니다. +- **성능 프로파일링 개선:** 빌드 과정에서의 리소스 점유율을 실시간으로 모니터링하여, 대규모 프로젝트 배포 시의 안정성을 한층 끌어올렸습니다. +- **신규 패키징:** `astra-2.2.11.vsix` 패키지를 통해 더욱 견고하고 유연한 프로젝트 관리 환경을 제공합니다. + +--- + + +## v2.2.10 (2026-05-15) +### 🏗️ Advanced Technical Design Alignment & Architecture Refinement +- **기술 설계 문서(Technical Design) 동기화:** `tetris/technical_design.md`와 같은 고차원 설계 문서를 분석하여, 실제 구현 로직(Custom Hooks, Component Architecture)과의 정합성을 유지하는 능력을 강화했습니다. +- **아키텍처 가이드라인 준수:** FSD(Feature-Sliced Design) 등 현대적인 아키텍처 패턴을 인식하고, 이에 부합하는 코드 구조를 제안하는 지능형 가이드를 고도화했습니다. +- **게임 엔진 로직 최적화 지원:** 복잡한 상태 관리(Single Source of Truth) 및 렌더링 최적화(Canvas API)를 위한 핵심 알고리즘 설계 지원 능력을 대폭 향상시켰습니다. +- **신규 패키징:** `astra-2.2.10.vsix` 패키지를 통해 설계와 구현의 경계를 허무는 강력한 아키텍처 파트너십을 제공합니다. + +--- + + +## v2.2.9 (2026-05-15) +### 🚀 Strategic Project Scaffolding & Core Engine Expansion +- **하이퍼-센서리 프로젝트 스캐폴딩:** `Tetris Modernized`와 같은 Canvas 기반 물리 게임 프로젝트의 자동 인프라 구축(Vite, React, Tailwind, Framer Motion) 로직을 정교화했습니다. +- **컨텍스트 엔진 도메인 확장:** 게임 개발, 물리 연산, UI 인터랙션 설계 등 전문적인 도메인에 대한 코드 생성 및 분석 능력을 강화했습니다. +- **빌드 및 배포 자동화 강화:** 프로젝트 생성부터 빌드, 패키징까지 이어지는 워크플로우를 최적화하여 개발 생산성을 극대화했습니다. +- **신규 패키징:** `astra-2.2.9.vsix` 패키지를 통해 더욱 광범위한 프로젝트 지원 능력을 갖춘 최신 버전을 배포합니다. + +--- + + +## v2.2.8 (2026-05-15) +### 🧠 Cognitive Architecture & Telemetry Refinement +- **컨텍스트 인식 엔진 고도화:** 복잡한 멀티 프로젝트 환경에서의 연관 지식 추출 알고리즘을 개선하여, `Test_0303`과 같은 게임 엔진 개발 시의 맥락 유지 능력을 강화했습니다. +- **텔레메트리 데이터 정밀화:** 에이전트의 의사결정 과정을 추적하는 로그 시스템을 정교화하여, 자가 성찰(Self-Reflection)의 근거 데이터를 더욱 명확하게 확보합니다. +- **인터페이스 응답성 최적화:** 사이드바와 에디터 간의 데이터 통신 프로토콜을 경량화하여, 대규모 코드베이스 분석 중에도 부드러운 UI 인터랙션을 보장합니다. +- **신규 패키징:** `astra-2.2.8.vsix` 패키지를 통해 인지 아키텍처가 한 단계 진화한 최신 버전을 배포합니다. + +--- + + +## v2.2.7 (2026-05-15) +### 🛠️ Performance & Pipeline Refinement +- **빌드 파이프라인 최적화:** 패키징 과정에서의 리소스 점유율을 개선하고, 불필요한 캐시 데이터를 정리하여 빌드 정합성을 높였습니다. +- **모듈 로딩 효율화:** 익스텐션 활성화 시의 초기 로딩 지연 시간을 단축하기 위해 핵심 기능들의 초기화 순서를 재조정했습니다. +- **안정성 강화:** 장기 실행 환경에서의 메모리 누수 방지를 위한 가비지 컬렉션 트리거 포인트를 최적화했습니다. +- **신규 패키징:** `astra-2.2.7.vsix` 패키지를 통해 전반적인 성능과 안정성이 개선된 최신 버전을 배포합니다. + +--- + + +## v2.2.6 (2026-05-15) +### 🧮 Gugudan Master Engine & Global Standards +- **구구단 마스터(Test_0303) 엔진 최적화:** `useGameEngine.js`의 중복 선언 및 미완성 물리 루프 로직을 완벽하게 복구하고, `App.jsx`의 애니메이션 오타를 수정하여 '구구단 학습 인터랙션'을 완성했습니다. +- **Vite 인프라 표준화:** `postcss.config.js`, `vite.config.js`, `main.jsx` 등 리액트 앱 구동을 위한 필수 표준 설정 파일을 자동화하여 멀티 프로젝트 스캐폴딩 안정성을 확보했습니다. +- **의존성 결합도 최적화:** Tailwind CSS와 Framer Motion의 연동 설정을 강화하여 저사양 환경에서도 '쫀득한' UX를 보장합니다. +- **신규 패키징:** `astra-2.2.6.vsix` 패키지를 통해 학습용 게임 엔진 지원 기능이 고도화된 최신 버전을 배포합니다. + +--- + + +## v2.2.5 (2026-05-15) +### 🎮 Multi-Project Synergy & Infrastructure +- **학습 게임 생태계 구축:** `Test_0303`(구구단 마스터) 및 `Hangeul Puzzle Game`의 기초 인프라(Vite, Tailwind, Framer Motion)를 완벽하게 구축하고 엔진 오타를 수정하여 즉시 실행 가능한 상태로 최적화했습니다. +- **Vite-React 스캐폴딩 안정화:** 신규 프로젝트 생성 시 `postcss.config.js`, `vite.config.js` 등 필수 설정 파일 자동 구성 로직을 강화했습니다. +- **코어 엔진 안정성 유지:** 최근 추가된 의도 정렬(Intent Alignment) 및 픽셀 오피스 상태 엔진의 연동 안정성을 재검증했습니다. +- **신규 패키징:** `astra-2.2.5.vsix` 패키지를 통해 범용 프로젝트 지원 기능이 강화된 최신 버전을 배포합니다. + +--- + + +## v2.2.4 (2026-05-15) +### ⚙️ Intent Alignment & Pixel Office Engine +- **의도 정렬 시스템(Intent Alignment) 공식화:** `intentAlignment.ts`와 `intentClassifier.ts`를 통해 사용자 메시지의 의도를 자동 분류하고, 파이프라인 실행 전 요구사항 계약(Requirement Contract)을 체결하는 C-G-C-F-Q 프레임워크를 안정화했습니다. +- **픽셀 오피스 상태 엔진 구축:** `pixelOfficeState.ts`를 통해 에이전트 파이프라인 상태(분석 중, 실행 중, 대기 등)를 실시간으로 반영하는 비주얼 피드백 레이어를 완성했습니다. +- **Self-Reflector 서브 모듈 안정화:** `selfReflectorExecution`, `selfReflectorVerifier`, `selfReflectorPrompt`, `selfReflectorHollow` 4개 모듈의 상호작용 로직을 정교화하여 성찰 단계의 신뢰성을 높였습니다. +- **신규 패키징:** `astra-2.2.4.vsix` 패키지를 통해 최신 의도 정렬 및 성찰 엔진을 배포합니다. + +--- + + ## v2.2.3 (2026-05-15) ### 🚀 Stability & Packaging Refinement - **패키지 정합성 강화:** 최신 코드베이스 변경 사항을 반영하여 빌드 파이프라인을 재검증하고 배포 안정성을 확보했습니다. diff --git a/assets/pixelOffice/derived/board.png b/assets/pixelOffice/derived/board.png new file mode 100644 index 0000000..bbddb53 Binary files /dev/null and b/assets/pixelOffice/derived/board.png differ diff --git a/assets/pixelOffice/derived/bookshelf.png b/assets/pixelOffice/derived/bookshelf.png new file mode 100644 index 0000000..7958152 Binary files /dev/null and b/assets/pixelOffice/derived/bookshelf.png differ diff --git a/assets/pixelOffice/derived/chair-blue.png b/assets/pixelOffice/derived/chair-blue.png new file mode 100644 index 0000000..9fb4a21 Binary files /dev/null and b/assets/pixelOffice/derived/chair-blue.png differ diff --git a/assets/pixelOffice/derived/cooler.png b/assets/pixelOffice/derived/cooler.png new file mode 100644 index 0000000..193a0dc Binary files /dev/null and b/assets/pixelOffice/derived/cooler.png differ diff --git a/assets/pixelOffice/derived/couch.png b/assets/pixelOffice/derived/couch.png new file mode 100644 index 0000000..8c0b0a8 Binary files /dev/null and b/assets/pixelOffice/derived/couch.png differ diff --git a/assets/pixelOffice/derived/crt.png b/assets/pixelOffice/derived/crt.png new file mode 100644 index 0000000..86bcf00 Binary files /dev/null and b/assets/pixelOffice/derived/crt.png differ diff --git a/assets/pixelOffice/derived/desk-boss-front.png b/assets/pixelOffice/derived/desk-boss-front.png new file mode 100644 index 0000000..b2e91ce Binary files /dev/null and b/assets/pixelOffice/derived/desk-boss-front.png differ diff --git a/assets/pixelOffice/derived/desk-boss-mirror.png b/assets/pixelOffice/derived/desk-boss-mirror.png new file mode 100644 index 0000000..bcc4536 Binary files /dev/null and b/assets/pixelOffice/derived/desk-boss-mirror.png differ diff --git a/assets/pixelOffice/derived/desk-boss-offset-test.png b/assets/pixelOffice/derived/desk-boss-offset-test.png new file mode 100644 index 0000000..019db51 Binary files /dev/null and b/assets/pixelOffice/derived/desk-boss-offset-test.png differ diff --git a/assets/pixelOffice/derived/desk-boss.png b/assets/pixelOffice/derived/desk-boss.png new file mode 100644 index 0000000..0413a04 Binary files /dev/null and b/assets/pixelOffice/derived/desk-boss.png differ diff --git a/assets/pixelOffice/derived/desk-dark-front.png b/assets/pixelOffice/derived/desk-dark-front.png new file mode 100644 index 0000000..00f6668 Binary files /dev/null and b/assets/pixelOffice/derived/desk-dark-front.png differ diff --git a/assets/pixelOffice/derived/desk-dark-mirror-seat-test.png b/assets/pixelOffice/derived/desk-dark-mirror-seat-test.png new file mode 100644 index 0000000..07cdc29 Binary files /dev/null and b/assets/pixelOffice/derived/desk-dark-mirror-seat-test.png differ diff --git a/assets/pixelOffice/derived/desk-dark-mirror.png b/assets/pixelOffice/derived/desk-dark-mirror.png new file mode 100644 index 0000000..a248e24 Binary files /dev/null and b/assets/pixelOffice/derived/desk-dark-mirror.png differ diff --git a/assets/pixelOffice/derived/desk-dark-offset-test.png b/assets/pixelOffice/derived/desk-dark-offset-test.png new file mode 100644 index 0000000..435cee8 Binary files /dev/null and b/assets/pixelOffice/derived/desk-dark-offset-test.png differ diff --git a/assets/pixelOffice/derived/desk-dark.png b/assets/pixelOffice/derived/desk-dark.png new file mode 100644 index 0000000..f6065e7 Binary files /dev/null and b/assets/pixelOffice/derived/desk-dark.png differ diff --git a/assets/pixelOffice/derived/desk-main-front.png b/assets/pixelOffice/derived/desk-main-front.png new file mode 100644 index 0000000..e78dfa4 Binary files /dev/null and b/assets/pixelOffice/derived/desk-main-front.png differ diff --git a/assets/pixelOffice/derived/desk-main-mirror-seat-test.png b/assets/pixelOffice/derived/desk-main-mirror-seat-test.png new file mode 100644 index 0000000..79b0445 Binary files /dev/null and b/assets/pixelOffice/derived/desk-main-mirror-seat-test.png differ diff --git a/assets/pixelOffice/derived/desk-main-mirror.png b/assets/pixelOffice/derived/desk-main-mirror.png new file mode 100644 index 0000000..36b2032 Binary files /dev/null and b/assets/pixelOffice/derived/desk-main-mirror.png differ diff --git a/assets/pixelOffice/derived/desk-main.png b/assets/pixelOffice/derived/desk-main.png new file mode 100644 index 0000000..83adb9e Binary files /dev/null and b/assets/pixelOffice/derived/desk-main.png differ diff --git a/assets/pixelOffice/derived/desk-partition.png b/assets/pixelOffice/derived/desk-partition.png new file mode 100644 index 0000000..9a18481 Binary files /dev/null and b/assets/pixelOffice/derived/desk-partition.png differ diff --git a/assets/pixelOffice/derived/filing.png b/assets/pixelOffice/derived/filing.png new file mode 100644 index 0000000..ccc6318 Binary files /dev/null and b/assets/pixelOffice/derived/filing.png differ diff --git a/assets/pixelOffice/derived/idle-r0-f0.png b/assets/pixelOffice/derived/idle-r0-f0.png new file mode 100644 index 0000000..85045bf Binary files /dev/null and b/assets/pixelOffice/derived/idle-r0-f0.png differ diff --git a/assets/pixelOffice/derived/idle-r0-f1.png b/assets/pixelOffice/derived/idle-r0-f1.png new file mode 100644 index 0000000..b52a3da Binary files /dev/null and b/assets/pixelOffice/derived/idle-r0-f1.png differ diff --git a/assets/pixelOffice/derived/idle-r0.png b/assets/pixelOffice/derived/idle-r0.png new file mode 100644 index 0000000..88de8b6 Binary files /dev/null and b/assets/pixelOffice/derived/idle-r0.png differ diff --git a/assets/pixelOffice/derived/idle-r1-f0.png b/assets/pixelOffice/derived/idle-r1-f0.png new file mode 100644 index 0000000..51ee48a Binary files /dev/null and b/assets/pixelOffice/derived/idle-r1-f0.png differ diff --git a/assets/pixelOffice/derived/idle-r1-f1.png b/assets/pixelOffice/derived/idle-r1-f1.png new file mode 100644 index 0000000..0f30805 Binary files /dev/null and b/assets/pixelOffice/derived/idle-r1-f1.png differ diff --git a/assets/pixelOffice/derived/idle-r1.png b/assets/pixelOffice/derived/idle-r1.png new file mode 100644 index 0000000..0bfc114 Binary files /dev/null and b/assets/pixelOffice/derived/idle-r1.png differ diff --git a/assets/pixelOffice/derived/idle-r2-f0.png b/assets/pixelOffice/derived/idle-r2-f0.png new file mode 100644 index 0000000..7a098bd Binary files /dev/null and b/assets/pixelOffice/derived/idle-r2-f0.png differ diff --git a/assets/pixelOffice/derived/idle-r2-f1.png b/assets/pixelOffice/derived/idle-r2-f1.png new file mode 100644 index 0000000..bc3269f Binary files /dev/null and b/assets/pixelOffice/derived/idle-r2-f1.png differ diff --git a/assets/pixelOffice/derived/idle-r2.png b/assets/pixelOffice/derived/idle-r2.png new file mode 100644 index 0000000..a1f7b62 Binary files /dev/null and b/assets/pixelOffice/derived/idle-r2.png differ diff --git a/assets/pixelOffice/derived/idle-r3-f0.png b/assets/pixelOffice/derived/idle-r3-f0.png new file mode 100644 index 0000000..ec220ee Binary files /dev/null and b/assets/pixelOffice/derived/idle-r3-f0.png differ diff --git a/assets/pixelOffice/derived/idle-r3-f1.png b/assets/pixelOffice/derived/idle-r3-f1.png new file mode 100644 index 0000000..2efdcca Binary files /dev/null and b/assets/pixelOffice/derived/idle-r3-f1.png differ diff --git a/assets/pixelOffice/derived/idle-r3.png b/assets/pixelOffice/derived/idle-r3.png new file mode 100644 index 0000000..d56ff7e Binary files /dev/null and b/assets/pixelOffice/derived/idle-r3.png differ diff --git a/assets/pixelOffice/derived/idle-r4-f0.png b/assets/pixelOffice/derived/idle-r4-f0.png new file mode 100644 index 0000000..c1842e3 Binary files /dev/null and b/assets/pixelOffice/derived/idle-r4-f0.png differ diff --git a/assets/pixelOffice/derived/idle-r4-f1.png b/assets/pixelOffice/derived/idle-r4-f1.png new file mode 100644 index 0000000..3a1412d Binary files /dev/null and b/assets/pixelOffice/derived/idle-r4-f1.png differ diff --git a/assets/pixelOffice/derived/idle-r4.png b/assets/pixelOffice/derived/idle-r4.png new file mode 100644 index 0000000..a472f02 Binary files /dev/null and b/assets/pixelOffice/derived/idle-r4.png differ diff --git a/assets/pixelOffice/derived/idle-r5-f0.png b/assets/pixelOffice/derived/idle-r5-f0.png new file mode 100644 index 0000000..106d231 Binary files /dev/null and b/assets/pixelOffice/derived/idle-r5-f0.png differ diff --git a/assets/pixelOffice/derived/idle-r5-f1.png b/assets/pixelOffice/derived/idle-r5-f1.png new file mode 100644 index 0000000..6dca642 Binary files /dev/null and b/assets/pixelOffice/derived/idle-r5-f1.png differ diff --git a/assets/pixelOffice/derived/idle-r5.png b/assets/pixelOffice/derived/idle-r5.png new file mode 100644 index 0000000..205e7f5 Binary files /dev/null and b/assets/pixelOffice/derived/idle-r5.png differ diff --git a/assets/pixelOffice/derived/idle-r6-f0.png b/assets/pixelOffice/derived/idle-r6-f0.png new file mode 100644 index 0000000..ee56e1d Binary files /dev/null and b/assets/pixelOffice/derived/idle-r6-f0.png differ diff --git a/assets/pixelOffice/derived/idle-r6-f1.png b/assets/pixelOffice/derived/idle-r6-f1.png new file mode 100644 index 0000000..294ee72 Binary files /dev/null and b/assets/pixelOffice/derived/idle-r6-f1.png differ diff --git a/assets/pixelOffice/derived/idle-r6.png b/assets/pixelOffice/derived/idle-r6.png new file mode 100644 index 0000000..cdee04f Binary files /dev/null and b/assets/pixelOffice/derived/idle-r6.png differ diff --git a/assets/pixelOffice/derived/idle-r7-f0.png b/assets/pixelOffice/derived/idle-r7-f0.png new file mode 100644 index 0000000..cb0e632 Binary files /dev/null and b/assets/pixelOffice/derived/idle-r7-f0.png differ diff --git a/assets/pixelOffice/derived/idle-r7-f1.png b/assets/pixelOffice/derived/idle-r7-f1.png new file mode 100644 index 0000000..f94b686 Binary files /dev/null and b/assets/pixelOffice/derived/idle-r7-f1.png differ diff --git a/assets/pixelOffice/derived/idle-r7.png b/assets/pixelOffice/derived/idle-r7.png new file mode 100644 index 0000000..753d6a5 Binary files /dev/null and b/assets/pixelOffice/derived/idle-r7.png differ diff --git a/assets/pixelOffice/derived/mirror-test.png b/assets/pixelOffice/derived/mirror-test.png new file mode 100644 index 0000000..618d343 Binary files /dev/null and b/assets/pixelOffice/derived/mirror-test.png differ diff --git a/assets/pixelOffice/derived/monitor-black.png b/assets/pixelOffice/derived/monitor-black.png new file mode 100644 index 0000000..e3b35b4 Binary files /dev/null and b/assets/pixelOffice/derived/monitor-black.png differ diff --git a/assets/pixelOffice/derived/monitor-blue.png b/assets/pixelOffice/derived/monitor-blue.png new file mode 100644 index 0000000..d2d2531 Binary files /dev/null and b/assets/pixelOffice/derived/monitor-blue.png differ diff --git a/assets/pixelOffice/derived/partition.png b/assets/pixelOffice/derived/partition.png new file mode 100644 index 0000000..6461562 Binary files /dev/null and b/assets/pixelOffice/derived/partition.png differ diff --git a/assets/pixelOffice/derived/plant-bushy.png b/assets/pixelOffice/derived/plant-bushy.png new file mode 100644 index 0000000..3408a75 Binary files /dev/null and b/assets/pixelOffice/derived/plant-bushy.png differ diff --git a/assets/pixelOffice/derived/plant-tall.png b/assets/pixelOffice/derived/plant-tall.png new file mode 100644 index 0000000..d5100fc Binary files /dev/null and b/assets/pixelOffice/derived/plant-tall.png differ diff --git a/assets/pixelOffice/derived/printer.png b/assets/pixelOffice/derived/printer.png new file mode 100644 index 0000000..e99e2c3 Binary files /dev/null and b/assets/pixelOffice/derived/printer.png differ diff --git a/assets/pixelOffice/derived/rug.png b/assets/pixelOffice/derived/rug.png new file mode 100644 index 0000000..9bb5daa Binary files /dev/null and b/assets/pixelOffice/derived/rug.png differ diff --git a/assets/pixelOffice/derived/seat-front-orientation-test.png b/assets/pixelOffice/derived/seat-front-orientation-test.png new file mode 100644 index 0000000..b6ee3d0 Binary files /dev/null and b/assets/pixelOffice/derived/seat-front-orientation-test.png differ diff --git a/assets/pixelOffice/derived/shelf.png b/assets/pixelOffice/derived/shelf.png new file mode 100644 index 0000000..ba91b39 Binary files /dev/null and b/assets/pixelOffice/derived/shelf.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d0-f0.png b/assets/pixelOffice/derived/walk-r0-d0-f0.png new file mode 100644 index 0000000..764d056 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d0-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d0-f1.png b/assets/pixelOffice/derived/walk-r0-d0-f1.png new file mode 100644 index 0000000..52461b9 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d0-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d0-f2.png b/assets/pixelOffice/derived/walk-r0-d0-f2.png new file mode 100644 index 0000000..49ccd7d Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d0-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d0-f3.png b/assets/pixelOffice/derived/walk-r0-d0-f3.png new file mode 100644 index 0000000..3f48845 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d0-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d0-f4.png b/assets/pixelOffice/derived/walk-r0-d0-f4.png new file mode 100644 index 0000000..2355c73 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d0-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d1-f0.png b/assets/pixelOffice/derived/walk-r0-d1-f0.png new file mode 100644 index 0000000..77bc399 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d1-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d1-f1.png b/assets/pixelOffice/derived/walk-r0-d1-f1.png new file mode 100644 index 0000000..dd4a394 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d1-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d1-f2.png b/assets/pixelOffice/derived/walk-r0-d1-f2.png new file mode 100644 index 0000000..a32713e Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d1-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d1-f3.png b/assets/pixelOffice/derived/walk-r0-d1-f3.png new file mode 100644 index 0000000..9ceee14 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d1-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d1-f4.png b/assets/pixelOffice/derived/walk-r0-d1-f4.png new file mode 100644 index 0000000..70d97c7 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d1-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d2-f0.png b/assets/pixelOffice/derived/walk-r0-d2-f0.png new file mode 100644 index 0000000..cc7f522 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d2-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d2-f1.png b/assets/pixelOffice/derived/walk-r0-d2-f1.png new file mode 100644 index 0000000..ffd4de3 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d2-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d2-f2.png b/assets/pixelOffice/derived/walk-r0-d2-f2.png new file mode 100644 index 0000000..40bbd0a Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d2-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d2-f3.png b/assets/pixelOffice/derived/walk-r0-d2-f3.png new file mode 100644 index 0000000..80d5cb5 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d2-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d2-f4.png b/assets/pixelOffice/derived/walk-r0-d2-f4.png new file mode 100644 index 0000000..8876938 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d2-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d3-f0.png b/assets/pixelOffice/derived/walk-r0-d3-f0.png new file mode 100644 index 0000000..5576a51 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d3-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d3-f1.png b/assets/pixelOffice/derived/walk-r0-d3-f1.png new file mode 100644 index 0000000..0b58021 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d3-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d3-f2.png b/assets/pixelOffice/derived/walk-r0-d3-f2.png new file mode 100644 index 0000000..f65556a Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d3-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d3-f3.png b/assets/pixelOffice/derived/walk-r0-d3-f3.png new file mode 100644 index 0000000..73cbf3b Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d3-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r0-d3-f4.png b/assets/pixelOffice/derived/walk-r0-d3-f4.png new file mode 100644 index 0000000..81d3ac4 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-d3-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r0-f0.png b/assets/pixelOffice/derived/walk-r0-f0.png new file mode 100644 index 0000000..764d056 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r0-f1.png b/assets/pixelOffice/derived/walk-r0-f1.png new file mode 100644 index 0000000..52461b9 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r0-f10.png b/assets/pixelOffice/derived/walk-r0-f10.png new file mode 100644 index 0000000..cc7f522 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-f10.png differ diff --git a/assets/pixelOffice/derived/walk-r0-f11.png b/assets/pixelOffice/derived/walk-r0-f11.png new file mode 100644 index 0000000..ffd4de3 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-f11.png differ diff --git a/assets/pixelOffice/derived/walk-r0-f12.png b/assets/pixelOffice/derived/walk-r0-f12.png new file mode 100644 index 0000000..40bbd0a Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-f12.png differ diff --git a/assets/pixelOffice/derived/walk-r0-f13.png b/assets/pixelOffice/derived/walk-r0-f13.png new file mode 100644 index 0000000..80d5cb5 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-f13.png differ diff --git a/assets/pixelOffice/derived/walk-r0-f14.png b/assets/pixelOffice/derived/walk-r0-f14.png new file mode 100644 index 0000000..8876938 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-f14.png differ diff --git a/assets/pixelOffice/derived/walk-r0-f15.png b/assets/pixelOffice/derived/walk-r0-f15.png new file mode 100644 index 0000000..5576a51 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-f15.png differ diff --git a/assets/pixelOffice/derived/walk-r0-f2.png b/assets/pixelOffice/derived/walk-r0-f2.png new file mode 100644 index 0000000..49ccd7d Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r0-f3.png b/assets/pixelOffice/derived/walk-r0-f3.png new file mode 100644 index 0000000..3f48845 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r0-f4.png b/assets/pixelOffice/derived/walk-r0-f4.png new file mode 100644 index 0000000..2355c73 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r0-f5.png b/assets/pixelOffice/derived/walk-r0-f5.png new file mode 100644 index 0000000..77bc399 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-f5.png differ diff --git a/assets/pixelOffice/derived/walk-r0-f6.png b/assets/pixelOffice/derived/walk-r0-f6.png new file mode 100644 index 0000000..dd4a394 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-f6.png differ diff --git a/assets/pixelOffice/derived/walk-r0-f7.png b/assets/pixelOffice/derived/walk-r0-f7.png new file mode 100644 index 0000000..a32713e Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-f7.png differ diff --git a/assets/pixelOffice/derived/walk-r0-f8.png b/assets/pixelOffice/derived/walk-r0-f8.png new file mode 100644 index 0000000..9ceee14 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-f8.png differ diff --git a/assets/pixelOffice/derived/walk-r0-f9.png b/assets/pixelOffice/derived/walk-r0-f9.png new file mode 100644 index 0000000..70d97c7 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r0-f9.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d0-f0.png b/assets/pixelOffice/derived/walk-r1-d0-f0.png new file mode 100644 index 0000000..77840de Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d0-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d0-f1.png b/assets/pixelOffice/derived/walk-r1-d0-f1.png new file mode 100644 index 0000000..edbf849 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d0-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d0-f2.png b/assets/pixelOffice/derived/walk-r1-d0-f2.png new file mode 100644 index 0000000..c6745f5 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d0-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d0-f3.png b/assets/pixelOffice/derived/walk-r1-d0-f3.png new file mode 100644 index 0000000..5932338 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d0-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d0-f4.png b/assets/pixelOffice/derived/walk-r1-d0-f4.png new file mode 100644 index 0000000..0f0c482 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d0-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d1-f0.png b/assets/pixelOffice/derived/walk-r1-d1-f0.png new file mode 100644 index 0000000..3fc5de7 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d1-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d1-f1.png b/assets/pixelOffice/derived/walk-r1-d1-f1.png new file mode 100644 index 0000000..cf7795e Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d1-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d1-f2.png b/assets/pixelOffice/derived/walk-r1-d1-f2.png new file mode 100644 index 0000000..5b4c3a8 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d1-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d1-f3.png b/assets/pixelOffice/derived/walk-r1-d1-f3.png new file mode 100644 index 0000000..47d0fdc Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d1-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d1-f4.png b/assets/pixelOffice/derived/walk-r1-d1-f4.png new file mode 100644 index 0000000..ee1825f Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d1-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d2-f0.png b/assets/pixelOffice/derived/walk-r1-d2-f0.png new file mode 100644 index 0000000..e0bd3bc Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d2-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d2-f1.png b/assets/pixelOffice/derived/walk-r1-d2-f1.png new file mode 100644 index 0000000..1d90c90 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d2-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d2-f2.png b/assets/pixelOffice/derived/walk-r1-d2-f2.png new file mode 100644 index 0000000..0a4e5b0 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d2-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d2-f3.png b/assets/pixelOffice/derived/walk-r1-d2-f3.png new file mode 100644 index 0000000..bf4a476 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d2-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d2-f4.png b/assets/pixelOffice/derived/walk-r1-d2-f4.png new file mode 100644 index 0000000..b2b58f9 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d2-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d3-f0.png b/assets/pixelOffice/derived/walk-r1-d3-f0.png new file mode 100644 index 0000000..f028441 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d3-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d3-f1.png b/assets/pixelOffice/derived/walk-r1-d3-f1.png new file mode 100644 index 0000000..aca5031 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d3-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d3-f2.png b/assets/pixelOffice/derived/walk-r1-d3-f2.png new file mode 100644 index 0000000..64db294 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d3-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d3-f3.png b/assets/pixelOffice/derived/walk-r1-d3-f3.png new file mode 100644 index 0000000..32a3068 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d3-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r1-d3-f4.png b/assets/pixelOffice/derived/walk-r1-d3-f4.png new file mode 100644 index 0000000..e7f4150 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-d3-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r1-f0.png b/assets/pixelOffice/derived/walk-r1-f0.png new file mode 100644 index 0000000..77840de Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r1-f1.png b/assets/pixelOffice/derived/walk-r1-f1.png new file mode 100644 index 0000000..edbf849 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r1-f10.png b/assets/pixelOffice/derived/walk-r1-f10.png new file mode 100644 index 0000000..e0bd3bc Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-f10.png differ diff --git a/assets/pixelOffice/derived/walk-r1-f11.png b/assets/pixelOffice/derived/walk-r1-f11.png new file mode 100644 index 0000000..1d90c90 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-f11.png differ diff --git a/assets/pixelOffice/derived/walk-r1-f12.png b/assets/pixelOffice/derived/walk-r1-f12.png new file mode 100644 index 0000000..0a4e5b0 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-f12.png differ diff --git a/assets/pixelOffice/derived/walk-r1-f13.png b/assets/pixelOffice/derived/walk-r1-f13.png new file mode 100644 index 0000000..bf4a476 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-f13.png differ diff --git a/assets/pixelOffice/derived/walk-r1-f14.png b/assets/pixelOffice/derived/walk-r1-f14.png new file mode 100644 index 0000000..b2b58f9 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-f14.png differ diff --git a/assets/pixelOffice/derived/walk-r1-f15.png b/assets/pixelOffice/derived/walk-r1-f15.png new file mode 100644 index 0000000..f028441 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-f15.png differ diff --git a/assets/pixelOffice/derived/walk-r1-f2.png b/assets/pixelOffice/derived/walk-r1-f2.png new file mode 100644 index 0000000..c6745f5 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r1-f3.png b/assets/pixelOffice/derived/walk-r1-f3.png new file mode 100644 index 0000000..5932338 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r1-f4.png b/assets/pixelOffice/derived/walk-r1-f4.png new file mode 100644 index 0000000..0f0c482 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r1-f5.png b/assets/pixelOffice/derived/walk-r1-f5.png new file mode 100644 index 0000000..3fc5de7 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-f5.png differ diff --git a/assets/pixelOffice/derived/walk-r1-f6.png b/assets/pixelOffice/derived/walk-r1-f6.png new file mode 100644 index 0000000..cf7795e Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-f6.png differ diff --git a/assets/pixelOffice/derived/walk-r1-f7.png b/assets/pixelOffice/derived/walk-r1-f7.png new file mode 100644 index 0000000..5b4c3a8 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-f7.png differ diff --git a/assets/pixelOffice/derived/walk-r1-f8.png b/assets/pixelOffice/derived/walk-r1-f8.png new file mode 100644 index 0000000..47d0fdc Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-f8.png differ diff --git a/assets/pixelOffice/derived/walk-r1-f9.png b/assets/pixelOffice/derived/walk-r1-f9.png new file mode 100644 index 0000000..ee1825f Binary files /dev/null and b/assets/pixelOffice/derived/walk-r1-f9.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d0-f0.png b/assets/pixelOffice/derived/walk-r2-d0-f0.png new file mode 100644 index 0000000..86a55a9 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d0-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d0-f1.png b/assets/pixelOffice/derived/walk-r2-d0-f1.png new file mode 100644 index 0000000..3534900 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d0-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d0-f2.png b/assets/pixelOffice/derived/walk-r2-d0-f2.png new file mode 100644 index 0000000..54d639b Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d0-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d0-f3.png b/assets/pixelOffice/derived/walk-r2-d0-f3.png new file mode 100644 index 0000000..ba0c46b Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d0-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d0-f4.png b/assets/pixelOffice/derived/walk-r2-d0-f4.png new file mode 100644 index 0000000..50e4d24 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d0-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d1-f0.png b/assets/pixelOffice/derived/walk-r2-d1-f0.png new file mode 100644 index 0000000..0f24453 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d1-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d1-f1.png b/assets/pixelOffice/derived/walk-r2-d1-f1.png new file mode 100644 index 0000000..3b0910c Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d1-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d1-f2.png b/assets/pixelOffice/derived/walk-r2-d1-f2.png new file mode 100644 index 0000000..bd02a1a Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d1-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d1-f3.png b/assets/pixelOffice/derived/walk-r2-d1-f3.png new file mode 100644 index 0000000..b7a7e1e Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d1-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d1-f4.png b/assets/pixelOffice/derived/walk-r2-d1-f4.png new file mode 100644 index 0000000..ec24bc9 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d1-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d2-f0.png b/assets/pixelOffice/derived/walk-r2-d2-f0.png new file mode 100644 index 0000000..bdde9fc Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d2-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d2-f1.png b/assets/pixelOffice/derived/walk-r2-d2-f1.png new file mode 100644 index 0000000..4d5d1c6 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d2-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d2-f2.png b/assets/pixelOffice/derived/walk-r2-d2-f2.png new file mode 100644 index 0000000..2bde84b Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d2-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d2-f3.png b/assets/pixelOffice/derived/walk-r2-d2-f3.png new file mode 100644 index 0000000..e10c78d Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d2-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d2-f4.png b/assets/pixelOffice/derived/walk-r2-d2-f4.png new file mode 100644 index 0000000..fe270a4 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d2-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d3-f0.png b/assets/pixelOffice/derived/walk-r2-d3-f0.png new file mode 100644 index 0000000..66a6453 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d3-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d3-f1.png b/assets/pixelOffice/derived/walk-r2-d3-f1.png new file mode 100644 index 0000000..5759ea0 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d3-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d3-f2.png b/assets/pixelOffice/derived/walk-r2-d3-f2.png new file mode 100644 index 0000000..ffa9b9b Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d3-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d3-f3.png b/assets/pixelOffice/derived/walk-r2-d3-f3.png new file mode 100644 index 0000000..81fe925 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d3-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r2-d3-f4.png b/assets/pixelOffice/derived/walk-r2-d3-f4.png new file mode 100644 index 0000000..df3f04a Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-d3-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r2-f0.png b/assets/pixelOffice/derived/walk-r2-f0.png new file mode 100644 index 0000000..86a55a9 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r2-f1.png b/assets/pixelOffice/derived/walk-r2-f1.png new file mode 100644 index 0000000..3534900 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r2-f10.png b/assets/pixelOffice/derived/walk-r2-f10.png new file mode 100644 index 0000000..bdde9fc Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-f10.png differ diff --git a/assets/pixelOffice/derived/walk-r2-f11.png b/assets/pixelOffice/derived/walk-r2-f11.png new file mode 100644 index 0000000..4d5d1c6 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-f11.png differ diff --git a/assets/pixelOffice/derived/walk-r2-f12.png b/assets/pixelOffice/derived/walk-r2-f12.png new file mode 100644 index 0000000..2bde84b Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-f12.png differ diff --git a/assets/pixelOffice/derived/walk-r2-f13.png b/assets/pixelOffice/derived/walk-r2-f13.png new file mode 100644 index 0000000..e10c78d Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-f13.png differ diff --git a/assets/pixelOffice/derived/walk-r2-f14.png b/assets/pixelOffice/derived/walk-r2-f14.png new file mode 100644 index 0000000..fe270a4 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-f14.png differ diff --git a/assets/pixelOffice/derived/walk-r2-f15.png b/assets/pixelOffice/derived/walk-r2-f15.png new file mode 100644 index 0000000..66a6453 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-f15.png differ diff --git a/assets/pixelOffice/derived/walk-r2-f2.png b/assets/pixelOffice/derived/walk-r2-f2.png new file mode 100644 index 0000000..54d639b Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r2-f3.png b/assets/pixelOffice/derived/walk-r2-f3.png new file mode 100644 index 0000000..ba0c46b Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r2-f4.png b/assets/pixelOffice/derived/walk-r2-f4.png new file mode 100644 index 0000000..50e4d24 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r2-f5.png b/assets/pixelOffice/derived/walk-r2-f5.png new file mode 100644 index 0000000..0f24453 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-f5.png differ diff --git a/assets/pixelOffice/derived/walk-r2-f6.png b/assets/pixelOffice/derived/walk-r2-f6.png new file mode 100644 index 0000000..3b0910c Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-f6.png differ diff --git a/assets/pixelOffice/derived/walk-r2-f7.png b/assets/pixelOffice/derived/walk-r2-f7.png new file mode 100644 index 0000000..bd02a1a Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-f7.png differ diff --git a/assets/pixelOffice/derived/walk-r2-f8.png b/assets/pixelOffice/derived/walk-r2-f8.png new file mode 100644 index 0000000..b7a7e1e Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-f8.png differ diff --git a/assets/pixelOffice/derived/walk-r2-f9.png b/assets/pixelOffice/derived/walk-r2-f9.png new file mode 100644 index 0000000..ec24bc9 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r2-f9.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d0-f0.png b/assets/pixelOffice/derived/walk-r3-d0-f0.png new file mode 100644 index 0000000..f44ce8c Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d0-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d0-f1.png b/assets/pixelOffice/derived/walk-r3-d0-f1.png new file mode 100644 index 0000000..526b382 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d0-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d0-f2.png b/assets/pixelOffice/derived/walk-r3-d0-f2.png new file mode 100644 index 0000000..f508399 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d0-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d0-f3.png b/assets/pixelOffice/derived/walk-r3-d0-f3.png new file mode 100644 index 0000000..2c9daaa Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d0-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d0-f4.png b/assets/pixelOffice/derived/walk-r3-d0-f4.png new file mode 100644 index 0000000..eb86f4c Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d0-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d1-f0.png b/assets/pixelOffice/derived/walk-r3-d1-f0.png new file mode 100644 index 0000000..59213c5 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d1-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d1-f1.png b/assets/pixelOffice/derived/walk-r3-d1-f1.png new file mode 100644 index 0000000..659b463 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d1-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d1-f2.png b/assets/pixelOffice/derived/walk-r3-d1-f2.png new file mode 100644 index 0000000..c301566 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d1-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d1-f3.png b/assets/pixelOffice/derived/walk-r3-d1-f3.png new file mode 100644 index 0000000..5dfc7fa Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d1-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d1-f4.png b/assets/pixelOffice/derived/walk-r3-d1-f4.png new file mode 100644 index 0000000..b5f3d4a Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d1-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d2-f0.png b/assets/pixelOffice/derived/walk-r3-d2-f0.png new file mode 100644 index 0000000..79e2526 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d2-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d2-f1.png b/assets/pixelOffice/derived/walk-r3-d2-f1.png new file mode 100644 index 0000000..b464384 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d2-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d2-f2.png b/assets/pixelOffice/derived/walk-r3-d2-f2.png new file mode 100644 index 0000000..4d115ea Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d2-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d2-f3.png b/assets/pixelOffice/derived/walk-r3-d2-f3.png new file mode 100644 index 0000000..72c7040 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d2-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d2-f4.png b/assets/pixelOffice/derived/walk-r3-d2-f4.png new file mode 100644 index 0000000..0aecede Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d2-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d3-f0.png b/assets/pixelOffice/derived/walk-r3-d3-f0.png new file mode 100644 index 0000000..a326d16 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d3-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d3-f1.png b/assets/pixelOffice/derived/walk-r3-d3-f1.png new file mode 100644 index 0000000..ca053c8 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d3-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d3-f2.png b/assets/pixelOffice/derived/walk-r3-d3-f2.png new file mode 100644 index 0000000..50fe79c Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d3-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d3-f3.png b/assets/pixelOffice/derived/walk-r3-d3-f3.png new file mode 100644 index 0000000..f3780a9 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d3-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r3-d3-f4.png b/assets/pixelOffice/derived/walk-r3-d3-f4.png new file mode 100644 index 0000000..70403a2 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-d3-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r3-f0.png b/assets/pixelOffice/derived/walk-r3-f0.png new file mode 100644 index 0000000..f44ce8c Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r3-f1.png b/assets/pixelOffice/derived/walk-r3-f1.png new file mode 100644 index 0000000..526b382 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r3-f10.png b/assets/pixelOffice/derived/walk-r3-f10.png new file mode 100644 index 0000000..79e2526 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-f10.png differ diff --git a/assets/pixelOffice/derived/walk-r3-f11.png b/assets/pixelOffice/derived/walk-r3-f11.png new file mode 100644 index 0000000..b464384 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-f11.png differ diff --git a/assets/pixelOffice/derived/walk-r3-f12.png b/assets/pixelOffice/derived/walk-r3-f12.png new file mode 100644 index 0000000..4d115ea Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-f12.png differ diff --git a/assets/pixelOffice/derived/walk-r3-f13.png b/assets/pixelOffice/derived/walk-r3-f13.png new file mode 100644 index 0000000..72c7040 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-f13.png differ diff --git a/assets/pixelOffice/derived/walk-r3-f14.png b/assets/pixelOffice/derived/walk-r3-f14.png new file mode 100644 index 0000000..0aecede Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-f14.png differ diff --git a/assets/pixelOffice/derived/walk-r3-f15.png b/assets/pixelOffice/derived/walk-r3-f15.png new file mode 100644 index 0000000..a326d16 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-f15.png differ diff --git a/assets/pixelOffice/derived/walk-r3-f2.png b/assets/pixelOffice/derived/walk-r3-f2.png new file mode 100644 index 0000000..f508399 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r3-f3.png b/assets/pixelOffice/derived/walk-r3-f3.png new file mode 100644 index 0000000..2c9daaa Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r3-f4.png b/assets/pixelOffice/derived/walk-r3-f4.png new file mode 100644 index 0000000..eb86f4c Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r3-f5.png b/assets/pixelOffice/derived/walk-r3-f5.png new file mode 100644 index 0000000..59213c5 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-f5.png differ diff --git a/assets/pixelOffice/derived/walk-r3-f6.png b/assets/pixelOffice/derived/walk-r3-f6.png new file mode 100644 index 0000000..659b463 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-f6.png differ diff --git a/assets/pixelOffice/derived/walk-r3-f7.png b/assets/pixelOffice/derived/walk-r3-f7.png new file mode 100644 index 0000000..c301566 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-f7.png differ diff --git a/assets/pixelOffice/derived/walk-r3-f8.png b/assets/pixelOffice/derived/walk-r3-f8.png new file mode 100644 index 0000000..5dfc7fa Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-f8.png differ diff --git a/assets/pixelOffice/derived/walk-r3-f9.png b/assets/pixelOffice/derived/walk-r3-f9.png new file mode 100644 index 0000000..b5f3d4a Binary files /dev/null and b/assets/pixelOffice/derived/walk-r3-f9.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d0-f0.png b/assets/pixelOffice/derived/walk-r4-d0-f0.png new file mode 100644 index 0000000..ed773d6 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d0-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d0-f1.png b/assets/pixelOffice/derived/walk-r4-d0-f1.png new file mode 100644 index 0000000..5c9723a Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d0-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d0-f2.png b/assets/pixelOffice/derived/walk-r4-d0-f2.png new file mode 100644 index 0000000..bf5488b Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d0-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d0-f3.png b/assets/pixelOffice/derived/walk-r4-d0-f3.png new file mode 100644 index 0000000..e369a85 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d0-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d0-f4.png b/assets/pixelOffice/derived/walk-r4-d0-f4.png new file mode 100644 index 0000000..6ac4186 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d0-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d1-f0.png b/assets/pixelOffice/derived/walk-r4-d1-f0.png new file mode 100644 index 0000000..b9eb1e4 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d1-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d1-f1.png b/assets/pixelOffice/derived/walk-r4-d1-f1.png new file mode 100644 index 0000000..df36374 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d1-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d1-f2.png b/assets/pixelOffice/derived/walk-r4-d1-f2.png new file mode 100644 index 0000000..127a082 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d1-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d1-f3.png b/assets/pixelOffice/derived/walk-r4-d1-f3.png new file mode 100644 index 0000000..2dcbf7b Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d1-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d1-f4.png b/assets/pixelOffice/derived/walk-r4-d1-f4.png new file mode 100644 index 0000000..c03de6d Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d1-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d2-f0.png b/assets/pixelOffice/derived/walk-r4-d2-f0.png new file mode 100644 index 0000000..b001b42 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d2-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d2-f1.png b/assets/pixelOffice/derived/walk-r4-d2-f1.png new file mode 100644 index 0000000..d167b5b Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d2-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d2-f2.png b/assets/pixelOffice/derived/walk-r4-d2-f2.png new file mode 100644 index 0000000..947e791 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d2-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d2-f3.png b/assets/pixelOffice/derived/walk-r4-d2-f3.png new file mode 100644 index 0000000..9585be3 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d2-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d2-f4.png b/assets/pixelOffice/derived/walk-r4-d2-f4.png new file mode 100644 index 0000000..3ccec21 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d2-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d3-f0.png b/assets/pixelOffice/derived/walk-r4-d3-f0.png new file mode 100644 index 0000000..4bbce0f Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d3-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d3-f1.png b/assets/pixelOffice/derived/walk-r4-d3-f1.png new file mode 100644 index 0000000..d5ad520 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d3-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d3-f2.png b/assets/pixelOffice/derived/walk-r4-d3-f2.png new file mode 100644 index 0000000..81083f2 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d3-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d3-f3.png b/assets/pixelOffice/derived/walk-r4-d3-f3.png new file mode 100644 index 0000000..d5462e0 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d3-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r4-d3-f4.png b/assets/pixelOffice/derived/walk-r4-d3-f4.png new file mode 100644 index 0000000..a38ddd3 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-d3-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r4-f0.png b/assets/pixelOffice/derived/walk-r4-f0.png new file mode 100644 index 0000000..ed773d6 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r4-f1.png b/assets/pixelOffice/derived/walk-r4-f1.png new file mode 100644 index 0000000..5c9723a Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r4-f10.png b/assets/pixelOffice/derived/walk-r4-f10.png new file mode 100644 index 0000000..b001b42 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-f10.png differ diff --git a/assets/pixelOffice/derived/walk-r4-f11.png b/assets/pixelOffice/derived/walk-r4-f11.png new file mode 100644 index 0000000..d167b5b Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-f11.png differ diff --git a/assets/pixelOffice/derived/walk-r4-f12.png b/assets/pixelOffice/derived/walk-r4-f12.png new file mode 100644 index 0000000..947e791 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-f12.png differ diff --git a/assets/pixelOffice/derived/walk-r4-f13.png b/assets/pixelOffice/derived/walk-r4-f13.png new file mode 100644 index 0000000..9585be3 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-f13.png differ diff --git a/assets/pixelOffice/derived/walk-r4-f14.png b/assets/pixelOffice/derived/walk-r4-f14.png new file mode 100644 index 0000000..3ccec21 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-f14.png differ diff --git a/assets/pixelOffice/derived/walk-r4-f15.png b/assets/pixelOffice/derived/walk-r4-f15.png new file mode 100644 index 0000000..4bbce0f Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-f15.png differ diff --git a/assets/pixelOffice/derived/walk-r4-f2.png b/assets/pixelOffice/derived/walk-r4-f2.png new file mode 100644 index 0000000..bf5488b Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r4-f3.png b/assets/pixelOffice/derived/walk-r4-f3.png new file mode 100644 index 0000000..e369a85 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r4-f4.png b/assets/pixelOffice/derived/walk-r4-f4.png new file mode 100644 index 0000000..6ac4186 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r4-f5.png b/assets/pixelOffice/derived/walk-r4-f5.png new file mode 100644 index 0000000..b9eb1e4 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-f5.png differ diff --git a/assets/pixelOffice/derived/walk-r4-f6.png b/assets/pixelOffice/derived/walk-r4-f6.png new file mode 100644 index 0000000..df36374 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-f6.png differ diff --git a/assets/pixelOffice/derived/walk-r4-f7.png b/assets/pixelOffice/derived/walk-r4-f7.png new file mode 100644 index 0000000..127a082 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-f7.png differ diff --git a/assets/pixelOffice/derived/walk-r4-f8.png b/assets/pixelOffice/derived/walk-r4-f8.png new file mode 100644 index 0000000..2dcbf7b Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-f8.png differ diff --git a/assets/pixelOffice/derived/walk-r4-f9.png b/assets/pixelOffice/derived/walk-r4-f9.png new file mode 100644 index 0000000..c03de6d Binary files /dev/null and b/assets/pixelOffice/derived/walk-r4-f9.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d0-f0.png b/assets/pixelOffice/derived/walk-r5-d0-f0.png new file mode 100644 index 0000000..f9ed0d1 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d0-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d0-f1.png b/assets/pixelOffice/derived/walk-r5-d0-f1.png new file mode 100644 index 0000000..dc79f96 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d0-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d0-f2.png b/assets/pixelOffice/derived/walk-r5-d0-f2.png new file mode 100644 index 0000000..8ffd6a3 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d0-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d0-f3.png b/assets/pixelOffice/derived/walk-r5-d0-f3.png new file mode 100644 index 0000000..6791d15 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d0-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d0-f4.png b/assets/pixelOffice/derived/walk-r5-d0-f4.png new file mode 100644 index 0000000..62bdb6e Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d0-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d1-f0.png b/assets/pixelOffice/derived/walk-r5-d1-f0.png new file mode 100644 index 0000000..51762b7 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d1-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d1-f1.png b/assets/pixelOffice/derived/walk-r5-d1-f1.png new file mode 100644 index 0000000..00902d8 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d1-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d1-f2.png b/assets/pixelOffice/derived/walk-r5-d1-f2.png new file mode 100644 index 0000000..4a9fbc4 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d1-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d1-f3.png b/assets/pixelOffice/derived/walk-r5-d1-f3.png new file mode 100644 index 0000000..6a92e32 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d1-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d1-f4.png b/assets/pixelOffice/derived/walk-r5-d1-f4.png new file mode 100644 index 0000000..fc1270d Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d1-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d2-f0.png b/assets/pixelOffice/derived/walk-r5-d2-f0.png new file mode 100644 index 0000000..0c939cc Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d2-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d2-f1.png b/assets/pixelOffice/derived/walk-r5-d2-f1.png new file mode 100644 index 0000000..f2afda3 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d2-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d2-f2.png b/assets/pixelOffice/derived/walk-r5-d2-f2.png new file mode 100644 index 0000000..18dbf79 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d2-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d2-f3.png b/assets/pixelOffice/derived/walk-r5-d2-f3.png new file mode 100644 index 0000000..81da368 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d2-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d2-f4.png b/assets/pixelOffice/derived/walk-r5-d2-f4.png new file mode 100644 index 0000000..1ee98b6 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d2-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d3-f0.png b/assets/pixelOffice/derived/walk-r5-d3-f0.png new file mode 100644 index 0000000..0a2bcbf Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d3-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d3-f1.png b/assets/pixelOffice/derived/walk-r5-d3-f1.png new file mode 100644 index 0000000..83cea80 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d3-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d3-f2.png b/assets/pixelOffice/derived/walk-r5-d3-f2.png new file mode 100644 index 0000000..445901c Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d3-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d3-f3.png b/assets/pixelOffice/derived/walk-r5-d3-f3.png new file mode 100644 index 0000000..40e8f46 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d3-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r5-d3-f4.png b/assets/pixelOffice/derived/walk-r5-d3-f4.png new file mode 100644 index 0000000..547d4fc Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-d3-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r5-f0.png b/assets/pixelOffice/derived/walk-r5-f0.png new file mode 100644 index 0000000..f9ed0d1 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r5-f1.png b/assets/pixelOffice/derived/walk-r5-f1.png new file mode 100644 index 0000000..dc79f96 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r5-f10.png b/assets/pixelOffice/derived/walk-r5-f10.png new file mode 100644 index 0000000..0c939cc Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-f10.png differ diff --git a/assets/pixelOffice/derived/walk-r5-f11.png b/assets/pixelOffice/derived/walk-r5-f11.png new file mode 100644 index 0000000..f2afda3 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-f11.png differ diff --git a/assets/pixelOffice/derived/walk-r5-f12.png b/assets/pixelOffice/derived/walk-r5-f12.png new file mode 100644 index 0000000..18dbf79 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-f12.png differ diff --git a/assets/pixelOffice/derived/walk-r5-f13.png b/assets/pixelOffice/derived/walk-r5-f13.png new file mode 100644 index 0000000..81da368 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-f13.png differ diff --git a/assets/pixelOffice/derived/walk-r5-f14.png b/assets/pixelOffice/derived/walk-r5-f14.png new file mode 100644 index 0000000..1ee98b6 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-f14.png differ diff --git a/assets/pixelOffice/derived/walk-r5-f15.png b/assets/pixelOffice/derived/walk-r5-f15.png new file mode 100644 index 0000000..0a2bcbf Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-f15.png differ diff --git a/assets/pixelOffice/derived/walk-r5-f2.png b/assets/pixelOffice/derived/walk-r5-f2.png new file mode 100644 index 0000000..8ffd6a3 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r5-f3.png b/assets/pixelOffice/derived/walk-r5-f3.png new file mode 100644 index 0000000..6791d15 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r5-f4.png b/assets/pixelOffice/derived/walk-r5-f4.png new file mode 100644 index 0000000..62bdb6e Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r5-f5.png b/assets/pixelOffice/derived/walk-r5-f5.png new file mode 100644 index 0000000..51762b7 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-f5.png differ diff --git a/assets/pixelOffice/derived/walk-r5-f6.png b/assets/pixelOffice/derived/walk-r5-f6.png new file mode 100644 index 0000000..00902d8 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-f6.png differ diff --git a/assets/pixelOffice/derived/walk-r5-f7.png b/assets/pixelOffice/derived/walk-r5-f7.png new file mode 100644 index 0000000..4a9fbc4 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-f7.png differ diff --git a/assets/pixelOffice/derived/walk-r5-f8.png b/assets/pixelOffice/derived/walk-r5-f8.png new file mode 100644 index 0000000..6a92e32 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-f8.png differ diff --git a/assets/pixelOffice/derived/walk-r5-f9.png b/assets/pixelOffice/derived/walk-r5-f9.png new file mode 100644 index 0000000..fc1270d Binary files /dev/null and b/assets/pixelOffice/derived/walk-r5-f9.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d0-f0.png b/assets/pixelOffice/derived/walk-r6-d0-f0.png new file mode 100644 index 0000000..c5119d9 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d0-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d0-f1.png b/assets/pixelOffice/derived/walk-r6-d0-f1.png new file mode 100644 index 0000000..6c28e4f Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d0-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d0-f2.png b/assets/pixelOffice/derived/walk-r6-d0-f2.png new file mode 100644 index 0000000..bcdf9e9 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d0-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d0-f3.png b/assets/pixelOffice/derived/walk-r6-d0-f3.png new file mode 100644 index 0000000..af2a4f7 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d0-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d0-f4.png b/assets/pixelOffice/derived/walk-r6-d0-f4.png new file mode 100644 index 0000000..120fb53 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d0-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d1-f0.png b/assets/pixelOffice/derived/walk-r6-d1-f0.png new file mode 100644 index 0000000..cf1f6b5 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d1-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d1-f1.png b/assets/pixelOffice/derived/walk-r6-d1-f1.png new file mode 100644 index 0000000..aa226e0 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d1-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d1-f2.png b/assets/pixelOffice/derived/walk-r6-d1-f2.png new file mode 100644 index 0000000..3c86f52 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d1-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d1-f3.png b/assets/pixelOffice/derived/walk-r6-d1-f3.png new file mode 100644 index 0000000..d97f40e Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d1-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d1-f4.png b/assets/pixelOffice/derived/walk-r6-d1-f4.png new file mode 100644 index 0000000..aa52b56 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d1-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d2-f0.png b/assets/pixelOffice/derived/walk-r6-d2-f0.png new file mode 100644 index 0000000..7758685 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d2-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d2-f1.png b/assets/pixelOffice/derived/walk-r6-d2-f1.png new file mode 100644 index 0000000..a3542e7 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d2-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d2-f2.png b/assets/pixelOffice/derived/walk-r6-d2-f2.png new file mode 100644 index 0000000..e8c5dd0 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d2-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d2-f3.png b/assets/pixelOffice/derived/walk-r6-d2-f3.png new file mode 100644 index 0000000..d52fcbf Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d2-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d2-f4.png b/assets/pixelOffice/derived/walk-r6-d2-f4.png new file mode 100644 index 0000000..b1149ed Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d2-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d3-f0.png b/assets/pixelOffice/derived/walk-r6-d3-f0.png new file mode 100644 index 0000000..05fbbdf Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d3-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d3-f1.png b/assets/pixelOffice/derived/walk-r6-d3-f1.png new file mode 100644 index 0000000..df1e53d Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d3-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d3-f2.png b/assets/pixelOffice/derived/walk-r6-d3-f2.png new file mode 100644 index 0000000..388c4ba Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d3-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d3-f3.png b/assets/pixelOffice/derived/walk-r6-d3-f3.png new file mode 100644 index 0000000..e7c7cb9 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d3-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r6-d3-f4.png b/assets/pixelOffice/derived/walk-r6-d3-f4.png new file mode 100644 index 0000000..375b866 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-d3-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r6-f0.png b/assets/pixelOffice/derived/walk-r6-f0.png new file mode 100644 index 0000000..c5119d9 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r6-f1.png b/assets/pixelOffice/derived/walk-r6-f1.png new file mode 100644 index 0000000..6c28e4f Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r6-f10.png b/assets/pixelOffice/derived/walk-r6-f10.png new file mode 100644 index 0000000..7758685 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-f10.png differ diff --git a/assets/pixelOffice/derived/walk-r6-f11.png b/assets/pixelOffice/derived/walk-r6-f11.png new file mode 100644 index 0000000..a3542e7 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-f11.png differ diff --git a/assets/pixelOffice/derived/walk-r6-f12.png b/assets/pixelOffice/derived/walk-r6-f12.png new file mode 100644 index 0000000..e8c5dd0 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-f12.png differ diff --git a/assets/pixelOffice/derived/walk-r6-f13.png b/assets/pixelOffice/derived/walk-r6-f13.png new file mode 100644 index 0000000..d52fcbf Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-f13.png differ diff --git a/assets/pixelOffice/derived/walk-r6-f14.png b/assets/pixelOffice/derived/walk-r6-f14.png new file mode 100644 index 0000000..b1149ed Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-f14.png differ diff --git a/assets/pixelOffice/derived/walk-r6-f15.png b/assets/pixelOffice/derived/walk-r6-f15.png new file mode 100644 index 0000000..05fbbdf Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-f15.png differ diff --git a/assets/pixelOffice/derived/walk-r6-f2.png b/assets/pixelOffice/derived/walk-r6-f2.png new file mode 100644 index 0000000..bcdf9e9 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r6-f3.png b/assets/pixelOffice/derived/walk-r6-f3.png new file mode 100644 index 0000000..af2a4f7 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r6-f4.png b/assets/pixelOffice/derived/walk-r6-f4.png new file mode 100644 index 0000000..120fb53 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r6-f5.png b/assets/pixelOffice/derived/walk-r6-f5.png new file mode 100644 index 0000000..cf1f6b5 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-f5.png differ diff --git a/assets/pixelOffice/derived/walk-r6-f6.png b/assets/pixelOffice/derived/walk-r6-f6.png new file mode 100644 index 0000000..aa226e0 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-f6.png differ diff --git a/assets/pixelOffice/derived/walk-r6-f7.png b/assets/pixelOffice/derived/walk-r6-f7.png new file mode 100644 index 0000000..3c86f52 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-f7.png differ diff --git a/assets/pixelOffice/derived/walk-r6-f8.png b/assets/pixelOffice/derived/walk-r6-f8.png new file mode 100644 index 0000000..d97f40e Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-f8.png differ diff --git a/assets/pixelOffice/derived/walk-r6-f9.png b/assets/pixelOffice/derived/walk-r6-f9.png new file mode 100644 index 0000000..aa52b56 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r6-f9.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d0-f0.png b/assets/pixelOffice/derived/walk-r7-d0-f0.png new file mode 100644 index 0000000..460ec3e Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d0-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d0-f1.png b/assets/pixelOffice/derived/walk-r7-d0-f1.png new file mode 100644 index 0000000..8e52371 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d0-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d0-f2.png b/assets/pixelOffice/derived/walk-r7-d0-f2.png new file mode 100644 index 0000000..b201d23 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d0-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d0-f3.png b/assets/pixelOffice/derived/walk-r7-d0-f3.png new file mode 100644 index 0000000..8945c9b Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d0-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d0-f4.png b/assets/pixelOffice/derived/walk-r7-d0-f4.png new file mode 100644 index 0000000..1634ebc Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d0-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d1-f0.png b/assets/pixelOffice/derived/walk-r7-d1-f0.png new file mode 100644 index 0000000..f66c491 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d1-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d1-f1.png b/assets/pixelOffice/derived/walk-r7-d1-f1.png new file mode 100644 index 0000000..2cb30a7 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d1-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d1-f2.png b/assets/pixelOffice/derived/walk-r7-d1-f2.png new file mode 100644 index 0000000..2706481 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d1-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d1-f3.png b/assets/pixelOffice/derived/walk-r7-d1-f3.png new file mode 100644 index 0000000..eac0def Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d1-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d1-f4.png b/assets/pixelOffice/derived/walk-r7-d1-f4.png new file mode 100644 index 0000000..6fbb9bc Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d1-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d2-f0.png b/assets/pixelOffice/derived/walk-r7-d2-f0.png new file mode 100644 index 0000000..7260b0b Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d2-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d2-f1.png b/assets/pixelOffice/derived/walk-r7-d2-f1.png new file mode 100644 index 0000000..4d763b2 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d2-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d2-f2.png b/assets/pixelOffice/derived/walk-r7-d2-f2.png new file mode 100644 index 0000000..07a214f Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d2-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d2-f3.png b/assets/pixelOffice/derived/walk-r7-d2-f3.png new file mode 100644 index 0000000..36c6c26 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d2-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d2-f4.png b/assets/pixelOffice/derived/walk-r7-d2-f4.png new file mode 100644 index 0000000..555f370 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d2-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d3-f0.png b/assets/pixelOffice/derived/walk-r7-d3-f0.png new file mode 100644 index 0000000..19587c8 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d3-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d3-f1.png b/assets/pixelOffice/derived/walk-r7-d3-f1.png new file mode 100644 index 0000000..8fca445 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d3-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d3-f2.png b/assets/pixelOffice/derived/walk-r7-d3-f2.png new file mode 100644 index 0000000..f586cd4 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d3-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d3-f3.png b/assets/pixelOffice/derived/walk-r7-d3-f3.png new file mode 100644 index 0000000..5cbba3c Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d3-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r7-d3-f4.png b/assets/pixelOffice/derived/walk-r7-d3-f4.png new file mode 100644 index 0000000..a68d970 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-d3-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r7-f0.png b/assets/pixelOffice/derived/walk-r7-f0.png new file mode 100644 index 0000000..460ec3e Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-f0.png differ diff --git a/assets/pixelOffice/derived/walk-r7-f1.png b/assets/pixelOffice/derived/walk-r7-f1.png new file mode 100644 index 0000000..8e52371 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-f1.png differ diff --git a/assets/pixelOffice/derived/walk-r7-f10.png b/assets/pixelOffice/derived/walk-r7-f10.png new file mode 100644 index 0000000..7260b0b Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-f10.png differ diff --git a/assets/pixelOffice/derived/walk-r7-f11.png b/assets/pixelOffice/derived/walk-r7-f11.png new file mode 100644 index 0000000..4d763b2 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-f11.png differ diff --git a/assets/pixelOffice/derived/walk-r7-f12.png b/assets/pixelOffice/derived/walk-r7-f12.png new file mode 100644 index 0000000..07a214f Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-f12.png differ diff --git a/assets/pixelOffice/derived/walk-r7-f13.png b/assets/pixelOffice/derived/walk-r7-f13.png new file mode 100644 index 0000000..36c6c26 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-f13.png differ diff --git a/assets/pixelOffice/derived/walk-r7-f14.png b/assets/pixelOffice/derived/walk-r7-f14.png new file mode 100644 index 0000000..555f370 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-f14.png differ diff --git a/assets/pixelOffice/derived/walk-r7-f15.png b/assets/pixelOffice/derived/walk-r7-f15.png new file mode 100644 index 0000000..19587c8 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-f15.png differ diff --git a/assets/pixelOffice/derived/walk-r7-f2.png b/assets/pixelOffice/derived/walk-r7-f2.png new file mode 100644 index 0000000..b201d23 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-f2.png differ diff --git a/assets/pixelOffice/derived/walk-r7-f3.png b/assets/pixelOffice/derived/walk-r7-f3.png new file mode 100644 index 0000000..8945c9b Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-f3.png differ diff --git a/assets/pixelOffice/derived/walk-r7-f4.png b/assets/pixelOffice/derived/walk-r7-f4.png new file mode 100644 index 0000000..1634ebc Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-f4.png differ diff --git a/assets/pixelOffice/derived/walk-r7-f5.png b/assets/pixelOffice/derived/walk-r7-f5.png new file mode 100644 index 0000000..f66c491 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-f5.png differ diff --git a/assets/pixelOffice/derived/walk-r7-f6.png b/assets/pixelOffice/derived/walk-r7-f6.png new file mode 100644 index 0000000..2cb30a7 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-f6.png differ diff --git a/assets/pixelOffice/derived/walk-r7-f7.png b/assets/pixelOffice/derived/walk-r7-f7.png new file mode 100644 index 0000000..2706481 Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-f7.png differ diff --git a/assets/pixelOffice/derived/walk-r7-f8.png b/assets/pixelOffice/derived/walk-r7-f8.png new file mode 100644 index 0000000..eac0def Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-f8.png differ diff --git a/assets/pixelOffice/derived/walk-r7-f9.png b/assets/pixelOffice/derived/walk-r7-f9.png new file mode 100644 index 0000000..6fbb9bc Binary files /dev/null and b/assets/pixelOffice/derived/walk-r7-f9.png differ diff --git a/assets/pixelOffice/derived/work-r0-f0.png b/assets/pixelOffice/derived/work-r0-f0.png new file mode 100644 index 0000000..5f0a9f3 Binary files /dev/null and b/assets/pixelOffice/derived/work-r0-f0.png differ diff --git a/assets/pixelOffice/derived/work-r0-f1.png b/assets/pixelOffice/derived/work-r0-f1.png new file mode 100644 index 0000000..24ab106 Binary files /dev/null and b/assets/pixelOffice/derived/work-r0-f1.png differ diff --git a/assets/pixelOffice/derived/work-r0-f2.png b/assets/pixelOffice/derived/work-r0-f2.png new file mode 100644 index 0000000..016b635 Binary files /dev/null and b/assets/pixelOffice/derived/work-r0-f2.png differ diff --git a/assets/pixelOffice/derived/work-r0-f3.png b/assets/pixelOffice/derived/work-r0-f3.png new file mode 100644 index 0000000..79807bb Binary files /dev/null and b/assets/pixelOffice/derived/work-r0-f3.png differ diff --git a/assets/pixelOffice/derived/work-r1-f0.png b/assets/pixelOffice/derived/work-r1-f0.png new file mode 100644 index 0000000..979d521 Binary files /dev/null and b/assets/pixelOffice/derived/work-r1-f0.png differ diff --git a/assets/pixelOffice/derived/work-r1-f1.png b/assets/pixelOffice/derived/work-r1-f1.png new file mode 100644 index 0000000..e87f71e Binary files /dev/null and b/assets/pixelOffice/derived/work-r1-f1.png differ diff --git a/assets/pixelOffice/derived/work-r1-f2.png b/assets/pixelOffice/derived/work-r1-f2.png new file mode 100644 index 0000000..db9880b Binary files /dev/null and b/assets/pixelOffice/derived/work-r1-f2.png differ diff --git a/assets/pixelOffice/derived/work-r1-f3.png b/assets/pixelOffice/derived/work-r1-f3.png new file mode 100644 index 0000000..936e079 Binary files /dev/null and b/assets/pixelOffice/derived/work-r1-f3.png differ diff --git a/assets/pixelOffice/derived/work-r2-f0.png b/assets/pixelOffice/derived/work-r2-f0.png new file mode 100644 index 0000000..a0e7ccd Binary files /dev/null and b/assets/pixelOffice/derived/work-r2-f0.png differ diff --git a/assets/pixelOffice/derived/work-r2-f1.png b/assets/pixelOffice/derived/work-r2-f1.png new file mode 100644 index 0000000..39b1232 Binary files /dev/null and b/assets/pixelOffice/derived/work-r2-f1.png differ diff --git a/assets/pixelOffice/derived/work-r2-f2.png b/assets/pixelOffice/derived/work-r2-f2.png new file mode 100644 index 0000000..426a377 Binary files /dev/null and b/assets/pixelOffice/derived/work-r2-f2.png differ diff --git a/assets/pixelOffice/derived/work-r2-f3.png b/assets/pixelOffice/derived/work-r2-f3.png new file mode 100644 index 0000000..2ba0754 Binary files /dev/null and b/assets/pixelOffice/derived/work-r2-f3.png differ diff --git a/assets/pixelOffice/derived/work-r3-f0.png b/assets/pixelOffice/derived/work-r3-f0.png new file mode 100644 index 0000000..365eddf Binary files /dev/null and b/assets/pixelOffice/derived/work-r3-f0.png differ diff --git a/assets/pixelOffice/derived/work-r3-f1.png b/assets/pixelOffice/derived/work-r3-f1.png new file mode 100644 index 0000000..09cf190 Binary files /dev/null and b/assets/pixelOffice/derived/work-r3-f1.png differ diff --git a/assets/pixelOffice/derived/work-r3-f2.png b/assets/pixelOffice/derived/work-r3-f2.png new file mode 100644 index 0000000..0352c39 Binary files /dev/null and b/assets/pixelOffice/derived/work-r3-f2.png differ diff --git a/assets/pixelOffice/derived/work-r3-f3.png b/assets/pixelOffice/derived/work-r3-f3.png new file mode 100644 index 0000000..992cb94 Binary files /dev/null and b/assets/pixelOffice/derived/work-r3-f3.png differ diff --git a/assets/pixelOffice/derived/work-r4-f0.png b/assets/pixelOffice/derived/work-r4-f0.png new file mode 100644 index 0000000..760edbd Binary files /dev/null and b/assets/pixelOffice/derived/work-r4-f0.png differ diff --git a/assets/pixelOffice/derived/work-r4-f1.png b/assets/pixelOffice/derived/work-r4-f1.png new file mode 100644 index 0000000..288bcfa Binary files /dev/null and b/assets/pixelOffice/derived/work-r4-f1.png differ diff --git a/assets/pixelOffice/derived/work-r4-f2.png b/assets/pixelOffice/derived/work-r4-f2.png new file mode 100644 index 0000000..e1e1733 Binary files /dev/null and b/assets/pixelOffice/derived/work-r4-f2.png differ diff --git a/assets/pixelOffice/derived/work-r4-f3.png b/assets/pixelOffice/derived/work-r4-f3.png new file mode 100644 index 0000000..f0a0303 Binary files /dev/null and b/assets/pixelOffice/derived/work-r4-f3.png differ diff --git a/assets/pixelOffice/derived/work-r5-f0.png b/assets/pixelOffice/derived/work-r5-f0.png new file mode 100644 index 0000000..23ddb44 Binary files /dev/null and b/assets/pixelOffice/derived/work-r5-f0.png differ diff --git a/assets/pixelOffice/derived/work-r5-f1.png b/assets/pixelOffice/derived/work-r5-f1.png new file mode 100644 index 0000000..df388af Binary files /dev/null and b/assets/pixelOffice/derived/work-r5-f1.png differ diff --git a/assets/pixelOffice/derived/work-r5-f2.png b/assets/pixelOffice/derived/work-r5-f2.png new file mode 100644 index 0000000..22eab75 Binary files /dev/null and b/assets/pixelOffice/derived/work-r5-f2.png differ diff --git a/assets/pixelOffice/derived/work-r5-f3.png b/assets/pixelOffice/derived/work-r5-f3.png new file mode 100644 index 0000000..c19c905 Binary files /dev/null and b/assets/pixelOffice/derived/work-r5-f3.png differ diff --git a/assets/pixelOffice/derived/work-r6-f0.png b/assets/pixelOffice/derived/work-r6-f0.png new file mode 100644 index 0000000..b1b048d Binary files /dev/null and b/assets/pixelOffice/derived/work-r6-f0.png differ diff --git a/assets/pixelOffice/derived/work-r6-f1.png b/assets/pixelOffice/derived/work-r6-f1.png new file mode 100644 index 0000000..5b90079 Binary files /dev/null and b/assets/pixelOffice/derived/work-r6-f1.png differ diff --git a/assets/pixelOffice/derived/work-r6-f2.png b/assets/pixelOffice/derived/work-r6-f2.png new file mode 100644 index 0000000..b8c7837 Binary files /dev/null and b/assets/pixelOffice/derived/work-r6-f2.png differ diff --git a/assets/pixelOffice/derived/work-r6-f3.png b/assets/pixelOffice/derived/work-r6-f3.png new file mode 100644 index 0000000..58eaa05 Binary files /dev/null and b/assets/pixelOffice/derived/work-r6-f3.png differ diff --git a/assets/pixelOffice/derived/work-r7-f0.png b/assets/pixelOffice/derived/work-r7-f0.png new file mode 100644 index 0000000..a280610 Binary files /dev/null and b/assets/pixelOffice/derived/work-r7-f0.png differ diff --git a/assets/pixelOffice/derived/work-r7-f1.png b/assets/pixelOffice/derived/work-r7-f1.png new file mode 100644 index 0000000..0f14dd7 Binary files /dev/null and b/assets/pixelOffice/derived/work-r7-f1.png differ diff --git a/assets/pixelOffice/derived/work-r7-f2.png b/assets/pixelOffice/derived/work-r7-f2.png new file mode 100644 index 0000000..6990f86 Binary files /dev/null and b/assets/pixelOffice/derived/work-r7-f2.png differ diff --git a/assets/pixelOffice/derived/work-r7-f3.png b/assets/pixelOffice/derived/work-r7-f3.png new file mode 100644 index 0000000..01f0677 Binary files /dev/null and b/assets/pixelOffice/derived/work-r7-f3.png differ diff --git a/assets/pixelOffice/layout-preview-busy-v1.png b/assets/pixelOffice/layout-preview-busy-v1.png new file mode 100644 index 0000000..c379ef0 Binary files /dev/null and b/assets/pixelOffice/layout-preview-busy-v1.png differ diff --git a/assets/pixelOffice/layout-preview-mixed-facing-busy-v2.png b/assets/pixelOffice/layout-preview-mixed-facing-busy-v2.png new file mode 100644 index 0000000..33a4df2 Binary files /dev/null and b/assets/pixelOffice/layout-preview-mixed-facing-busy-v2.png differ diff --git a/assets/pixelOffice/layout-preview-mixed-facing-v1.png b/assets/pixelOffice/layout-preview-mixed-facing-v1.png new file mode 100644 index 0000000..7f2b3e6 Binary files /dev/null and b/assets/pixelOffice/layout-preview-mixed-facing-v1.png differ diff --git a/assets/pixelOffice/layout-preview-mixed-facing-v2.png b/assets/pixelOffice/layout-preview-mixed-facing-v2.png new file mode 100644 index 0000000..7f2b3e6 Binary files /dev/null and b/assets/pixelOffice/layout-preview-mixed-facing-v2.png differ diff --git a/assets/pixelOffice/layout-preview-natural-busy-v2.png b/assets/pixelOffice/layout-preview-natural-busy-v2.png new file mode 100644 index 0000000..96cda74 Binary files /dev/null and b/assets/pixelOffice/layout-preview-natural-busy-v2.png differ diff --git a/assets/pixelOffice/layout-preview-natural-busy-v3-seat-anchored.png b/assets/pixelOffice/layout-preview-natural-busy-v3-seat-anchored.png new file mode 100644 index 0000000..a39d6b7 Binary files /dev/null and b/assets/pixelOffice/layout-preview-natural-busy-v3-seat-anchored.png differ diff --git a/assets/pixelOffice/layout-preview-natural-v1.png b/assets/pixelOffice/layout-preview-natural-v1.png new file mode 100644 index 0000000..0706b35 Binary files /dev/null and b/assets/pixelOffice/layout-preview-natural-v1.png differ diff --git a/assets/pixelOffice/layout-preview-natural-v2.png b/assets/pixelOffice/layout-preview-natural-v2.png new file mode 100644 index 0000000..52d150c Binary files /dev/null and b/assets/pixelOffice/layout-preview-natural-v2.png differ diff --git a/assets/pixelOffice/layout-preview-natural-v3-seat-anchored.png b/assets/pixelOffice/layout-preview-natural-v3-seat-anchored.png new file mode 100644 index 0000000..74dde20 Binary files /dev/null and b/assets/pixelOffice/layout-preview-natural-v3-seat-anchored.png differ diff --git a/assets/pixelOffice/layout-preview-seat-front-busy-v2.png b/assets/pixelOffice/layout-preview-seat-front-busy-v2.png new file mode 100644 index 0000000..9cbcab1 Binary files /dev/null and b/assets/pixelOffice/layout-preview-seat-front-busy-v2.png differ diff --git a/assets/pixelOffice/layout-preview-seat-front-v1.png b/assets/pixelOffice/layout-preview-seat-front-v1.png new file mode 100644 index 0000000..40aa0dc Binary files /dev/null and b/assets/pixelOffice/layout-preview-seat-front-v1.png differ diff --git a/assets/pixelOffice/layout-preview-seat-front-v2.png b/assets/pixelOffice/layout-preview-seat-front-v2.png new file mode 100644 index 0000000..40aa0dc Binary files /dev/null and b/assets/pixelOffice/layout-preview-seat-front-v2.png differ diff --git a/assets/pixelOffice/layout-preview-v2.png b/assets/pixelOffice/layout-preview-v2.png new file mode 100644 index 0000000..d5b9162 Binary files /dev/null and b/assets/pixelOffice/layout-preview-v2.png differ diff --git a/assets/pixelOffice/layout-preview-v3.png b/assets/pixelOffice/layout-preview-v3.png new file mode 100644 index 0000000..73d49b0 Binary files /dev/null and b/assets/pixelOffice/layout-preview-v3.png differ diff --git a/assets/pixelOffice/layout-preview-v4.png b/assets/pixelOffice/layout-preview-v4.png new file mode 100644 index 0000000..4cf1f11 Binary files /dev/null and b/assets/pixelOffice/layout-preview-v4.png differ diff --git a/assets/pixelOffice/layout-preview-v5.png b/assets/pixelOffice/layout-preview-v5.png new file mode 100644 index 0000000..c7ba131 Binary files /dev/null and b/assets/pixelOffice/layout-preview-v5.png differ diff --git a/assets/pixelOffice/layout-preview-v6.png b/assets/pixelOffice/layout-preview-v6.png new file mode 100644 index 0000000..5352e4a Binary files /dev/null and b/assets/pixelOffice/layout-preview-v6.png differ diff --git a/assets/pixelOffice/layout-preview-v7.png b/assets/pixelOffice/layout-preview-v7.png new file mode 100644 index 0000000..5352e4a Binary files /dev/null and b/assets/pixelOffice/layout-preview-v7.png differ diff --git a/assets/pixelOffice/layout-preview-v8.png b/assets/pixelOffice/layout-preview-v8.png new file mode 100644 index 0000000..150453a Binary files /dev/null and b/assets/pixelOffice/layout-preview-v8.png differ diff --git a/assets/pixelOffice/layout-preview-v9.png b/assets/pixelOffice/layout-preview-v9.png new file mode 100644 index 0000000..02ec697 Binary files /dev/null and b/assets/pixelOffice/layout-preview-v9.png differ diff --git a/assets/pixelOffice/layout-preview.png b/assets/pixelOffice/layout-preview.png new file mode 100644 index 0000000..2ffa61d Binary files /dev/null and b/assets/pixelOffice/layout-preview.png differ diff --git a/assets/pixelOffice/office-props.png b/assets/pixelOffice/office-props.png new file mode 100644 index 0000000..f16e658 Binary files /dev/null and b/assets/pixelOffice/office-props.png differ diff --git a/assets/pixelOffice/seat-anchor-grid-v1.png b/assets/pixelOffice/seat-anchor-grid-v1.png new file mode 100644 index 0000000..5316afa Binary files /dev/null and b/assets/pixelOffice/seat-anchor-grid-v1.png differ diff --git a/assets/pixelOffice/seat-anchor-grid-v2-dark.png b/assets/pixelOffice/seat-anchor-grid-v2-dark.png new file mode 100644 index 0000000..bcf9fc2 Binary files /dev/null and b/assets/pixelOffice/seat-anchor-grid-v2-dark.png differ diff --git a/assets/pixelOffice/seat-offset-test.png b/assets/pixelOffice/seat-offset-test.png new file mode 100644 index 0000000..1fb7898 Binary files /dev/null and b/assets/pixelOffice/seat-offset-test.png differ diff --git a/assets/pixelOffice/seated-idle.png b/assets/pixelOffice/seated-idle.png new file mode 100644 index 0000000..1cb24a6 Binary files /dev/null and b/assets/pixelOffice/seated-idle.png differ diff --git a/assets/pixelOffice/seated-work.png b/assets/pixelOffice/seated-work.png new file mode 100644 index 0000000..333ddc4 Binary files /dev/null and b/assets/pixelOffice/seated-work.png differ diff --git a/assets/pixelOffice/walk-directions.png b/assets/pixelOffice/walk-directions.png new file mode 100644 index 0000000..37ca053 Binary files /dev/null and b/assets/pixelOffice/walk-directions.png differ diff --git a/assets/sprites/Resource/office-characters.png b/assets/sprites/Resource/office-characters.png new file mode 100644 index 0000000..68fa98a Binary files /dev/null and b/assets/sprites/Resource/office-characters.png differ diff --git a/assets/sprites/Resource/office-props.png b/assets/sprites/Resource/office-props.png new file mode 100644 index 0000000..f16e658 Binary files /dev/null and b/assets/sprites/Resource/office-props.png differ diff --git a/assets/sprites/Resource/seated-idle-preview.png b/assets/sprites/Resource/seated-idle-preview.png new file mode 100644 index 0000000..1cb24a6 Binary files /dev/null and b/assets/sprites/Resource/seated-idle-preview.png differ diff --git a/assets/sprites/Resource/seated-work.png b/assets/sprites/Resource/seated-work.png new file mode 100644 index 0000000..333ddc4 Binary files /dev/null and b/assets/sprites/Resource/seated-work.png differ diff --git a/assets/sprites/Resource/walk-directions.png b/assets/sprites/Resource/walk-directions.png new file mode 100644 index 0000000..37ca053 Binary files /dev/null and b/assets/sprites/Resource/walk-directions.png differ diff --git a/assets/sprites/office-characters-source.png b/assets/sprites/office-characters-source.png new file mode 100644 index 0000000..7630b6d Binary files /dev/null and b/assets/sprites/office-characters-source.png differ diff --git a/assets/sprites/office-characters.png b/assets/sprites/office-characters.png new file mode 100644 index 0000000..68fa98a Binary files /dev/null and b/assets/sprites/office-characters.png differ diff --git a/assets/sprites/office-props-source.png b/assets/sprites/office-props-source.png new file mode 100644 index 0000000..d869a1d Binary files /dev/null and b/assets/sprites/office-props-source.png differ diff --git a/assets/sprites/office-props.png b/assets/sprites/office-props.png new file mode 100644 index 0000000..f16e658 Binary files /dev/null and b/assets/sprites/office-props.png differ diff --git a/assets/sprites/seated-idle-preview-source.png b/assets/sprites/seated-idle-preview-source.png new file mode 100644 index 0000000..02385bf Binary files /dev/null and b/assets/sprites/seated-idle-preview-source.png differ diff --git a/assets/sprites/seated-idle-preview.png b/assets/sprites/seated-idle-preview.png new file mode 100644 index 0000000..1cb24a6 Binary files /dev/null and b/assets/sprites/seated-idle-preview.png differ diff --git a/assets/sprites/seated-work-source.png b/assets/sprites/seated-work-source.png new file mode 100644 index 0000000..b7b44c1 Binary files /dev/null and b/assets/sprites/seated-work-source.png differ diff --git a/assets/sprites/seated-work.png b/assets/sprites/seated-work.png new file mode 100644 index 0000000..333ddc4 Binary files /dev/null and b/assets/sprites/seated-work.png differ diff --git a/assets/sprites/walk-directions-source.png b/assets/sprites/walk-directions-source.png new file mode 100644 index 0000000..dd9a29a Binary files /dev/null and b/assets/sprites/walk-directions-source.png differ diff --git a/assets/sprites/walk-directions.png b/assets/sprites/walk-directions.png new file mode 100644 index 0000000..37ca053 Binary files /dev/null and b/assets/sprites/walk-directions.png differ diff --git a/docs/records/ConnectAI/chronicle.config.json b/docs/records/ConnectAI/chronicle.config.json index 1ac70a2..46f4c16 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-14T00:57:32.245Z", - "updatedAt": "2026-05-15T03:24:10.265Z" + "updatedAt": "2026-05-15T11:48:58.185Z" } diff --git a/docs/records/ConnectAI/decisions/ADR-0013-e-wiki-connectai-이-프로젝트야.md b/docs/records/ConnectAI/decisions/ADR-0013-e-wiki-connectai-이-프로젝트야.md new file mode 100644 index 0000000..f3fa00a --- /dev/null +++ b/docs/records/ConnectAI/decisions/ADR-0013-e-wiki-connectai-이-프로젝트야.md @@ -0,0 +1,19 @@ +# ADR: E:\Wiki\connectai 이 프로젝트야 + +## Status +accepted + +## Context +E:\Wiki\connectai 이 프로젝트야 + +## Decision +네, 확인했습니다. `E:\Wiki\connectai` 폴더를 기반으로 동작하는 **ConnectAI** 프로젝트군요. 현재 스캔된 구조를 보니 단순한 코드 저장소를 넘어, VS Code 확장 프로그램 형태의 개인용 지능형 에이전트(Astra)와 그 운영을 위한 방대한 기록(Docs/Records)이 결합된 매우 체계적인 시스템으로 보입니다. 특히 `assets/pixelOffice`를 통한 시각적 피드백 기능과 `docs/records/ConnectAI`에 축적된 수많은 의사결정록(ADR), 버그 리포트, 개발 로그가 인상적입니다. 이 프로젝트의 현재 상태와 구조에 대해 제가 파악한 핵심 내용은 다음과 같습니다. ## 프로젝트 개요 ConnectAI는 사용자의 로컬 환경(LM Studio, Ollama 등)을 기반으로 동작하는 **개인용 지능형 에이전트**입니다. 단순한 챗봇을 넘어, 프로젝트의 아키텍처를 이해하고, 과거의 경험(Lessons)을 기억하며, 복잡한 작업을 수행하기 ... + +## 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-0014-astra-office-부분-관련해서-개선할-부분이-너무-많아-개선점이-무었이-있는지-의견-주면-좋겠어.md b/docs/records/ConnectAI/decisions/ADR-0014-astra-office-부분-관련해서-개선할-부분이-너무-많아-개선점이-무었이-있는지-의견-주면-좋겠어.md new file mode 100644 index 0000000..2be0337 --- /dev/null +++ b/docs/records/ConnectAI/decisions/ADR-0014-astra-office-부분-관련해서-개선할-부분이-너무-많아-개선점이-무었이-있는지-의견-주면-좋겠어.md @@ -0,0 +1,19 @@ +# ADR: ASTRA OFFICE 부분 관련해서 개선할 부분이 너무 많아. 개선점이 무었이 있는지 의견 주면 좋겠어. + +## Status +accepted + +## Context +ASTRA OFFICE 부분 관련해서 개선할 부분이 너무 많아. 개선점이 무었이 있는지 의견 주면 좋겠어. + +## Decision +`pixelOffice`와 `Astra Office` 영역은 이 프로젝트의 가장 독창적인 UX 요소이지만, 동시에 기술적 부채나 사용자 피로도가 발생하기 쉬운 지점입니다. 현재 구조를 바탕으로 판단할 때, 개선의 핵심은 **"시각적 화려함(Visual Flare)을 유지하면서도 인지적 부하(Cognitive Load)를 어떻게 줄일 것인가"**에 있습니다. 단순히 예쁘게 만드는 것이 아니라, 에이전트의 상태를 '정보'로서 가치 있게 전달하는 방향으로 가야 합니다. ## 개선 제안: 3가지 핵심 축 ### 1. 정보 밀도와 인지 부하 최적화 (Information Density) 현재 `bubbles`나 `pixelOffice`가 상태 변화마다 나타나는 구조는 에이전트가 바쁘게 움직일 때는 재미있지만, 긴 작업이 이어질 때는 사용자의 주의를 분산시킵니다. - **상태의 계층화**: 모든 상태 변화에 버블을 띄우기보다, '중요한 전환점(Critical Pivot)'에만 강조된 애니메이션... + +## 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 e2d2964..7ec7984 100644 --- a/docs/records/ConnectAI/timeline.md +++ b/docs/records/ConnectAI/timeline.md @@ -132,3 +132,9 @@ ## 2026-05-13 - Auto planning record created: planning/2026-05-13_지금-connectai-architecture-md-문서-내용-중-업데이트가-필요한-부분이-있는지-확인해줘-.md + +## 2026-05-15 +- Auto decision record created: decisions\ADR-0013-e-wiki-connectai-이-프로젝트야.md + +## 2026-05-15 +- Auto decision record created: decisions\ADR-0014-astra-office-부분-관련해서-개선할-부분이-너무-많아-개선점이-무었이-있는지-의견-주면-좋겠어.md diff --git a/package.json b/package.json index c5ce295..1e50293 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "astra", "displayName": "Astra", "description": "The personal intelligence layer for Antigravity and VS Code. A private cognitive partner for deep project context, memory, and proactive strategic decision-making.", - "version": "2.2.3", + "version": "2.2.11", "publisher": "g1nation", "license": "MIT", "icon": "assets/icon.png", diff --git a/src/features/company/pixelOfficeState.ts b/src/features/company/pixelOfficeState.ts index aa34bd1..cf363be 100644 --- a/src/features/company/pixelOfficeState.ts +++ b/src/features/company/pixelOfficeState.ts @@ -75,6 +75,12 @@ export interface AgentWorkState { awaitingApproval?: string; /** 짧은 최근 로그 — 사용자가 한눈에 흐름 파악. 최대 6개 ring buffer. */ recentLogs?: string[]; + /** + * 파이프라인 미니 맵용 stage 리스트. `plan-ready` 시점에 채워지고 agent-start/ + * agent-done 으로 상태가 갱신된다. webview는 이 리스트를 dot strip 으로 렌더. + * - status: 'done' | 'active' | 'pending' + */ + pipelineStages?: Array<{ label: string; agent?: string; status: 'done' | 'active' | 'pending' }>; /** epoch ms — webview의 "n초 전" 표시용. */ updatedAt: number; } diff --git a/src/sidebarProvider.ts b/src/sidebarProvider.ts index cafe97d..2054fb4 100644 --- a/src/sidebarProvider.ts +++ b/src/sidebarProvider.ts @@ -169,6 +169,29 @@ export class SidebarChatProvider implements vscode.WebviewViewProvider, BridgeIn /** 같은 말풍선 텍스트 연달아 안 나오게 추적용 (상태/이벤트 별). */ private _pixelOfficeLastBubble: Map = new Map(); + /** + * Astra Office 사용자 정의 레이아웃. workspace state에 저장되어 프로젝트별 + * 다른 배치를 가질 수 있다. null/undefined면 webview가 디폴트 LAYOUT을 사용. + * 편집 모드에서 사용자가 드래그로 위치 조정 후 저장 → 이 슬롯 업데이트 → + * webview에 다시 broadcast. + * + * 데이터 shape: + * { + * cells: [{ roleKey, deskX, deskY, charX, charY }, ...], + * decos: [{ id, type, x, y }, ...] + * } + */ + static readonly pixelOfficeLayoutKey = 'g1nation.pixelOfficeLayout'; + private _readPixelOfficeLayout(): unknown { + return this._context.workspaceState.get(SidebarChatProvider.pixelOfficeLayoutKey); + } + private async _writePixelOfficeLayout(layout: unknown): Promise { + await this._context.workspaceState.update(SidebarChatProvider.pixelOfficeLayoutKey, layout); + } + private async _clearPixelOfficeLayout(): Promise { + await this._context.workspaceState.update(SidebarChatProvider.pixelOfficeLayoutKey, undefined); + } + /** Phase B-2에서 chatHandlers가 alignment 진행 여부를 빠르게 확인하는 용도. */ isAlignmentPending(): boolean { return !!this._pendingAlignment; @@ -364,16 +387,30 @@ export class SidebarChatProvider implements vscode.WebviewViewProvider, BridgeIn recentLogs: this._pixelOfficeAppendLog('📋 plan 작성'), }, { bubbleStatus: 'planning' }); return; - case 'plan-ready': + case 'plan-ready': { + // B. 미니 맵용 stage 리스트 초기화. 모두 pending. + const stages = (ev.plan?.tasks ?? []).map((t) => ({ + label: (t.task || '').slice(0, 24) || '단계', + agent: t.agent, + status: 'pending' as const, + })); this._pixelOfficeBroadcast({ status: 'planning', currentStep: '계획 완료', nextStep: ev.plan?.tasks?.[0]?.task, message: ev.plan?.brief?.slice(0, 120), recentLogs: this._pixelOfficeAppendLog(`📋 plan 완료 (${ev.plan?.tasks?.length ?? 0}개 task)`), + pipelineStages: stages, }, { bubbleEvent: 'plan_completed' }); return; - case 'agent-start': + } + case 'agent-start': { + // B. 현재 stage를 active로, 이전 stage들은 done으로. + const prev = this._pixelOfficeState?.pipelineStages; + const stages = prev ? prev.map((s, i) => ({ + ...s, + status: (i < ev.index ? 'done' : i === ev.index ? 'active' : 'pending') as 'done'|'active'|'pending', + })) : undefined; this._pixelOfficeBroadcast({ status: 'executing', currentStep: ev.task?.slice(0, 80), @@ -381,13 +418,24 @@ export class SidebarChatProvider implements vscode.WebviewViewProvider, BridgeIn message: `${ev.agentId} • ${ev.index + 1}/${ev.total}`, progress: ev.total > 0 ? ev.index / ev.total : undefined, recentLogs: this._pixelOfficeAppendLog(`▶ ${ev.agentId} start (${ev.index + 1}/${ev.total})`), + pipelineStages: stages, }, { bubbleAgentId: ev.agentId, bubbleStatus: 'executing', bubbleEvent: ev.index === 0 ? 'execution_started' : undefined, }); return; + } case 'agent-done': + // E. action-tag report가 있으면 ticker로 별도 push — 캐릭터가 *무슨 + // 일을 했는지* 실시간 가시화. 사용자가 신뢰도/투명성을 즉시 체감. + if (Array.isArray(ev.output?.actionReport) && ev.output.actionReport.length > 0) { + const items = ev.output.actionReport.map((line: string) => ({ + agentId: ev.agentId, text: line, ts: Date.now(), + })); + this._view?.webview.postMessage({ type: 'pixelOfficeActivity', value: { items } }); + this._pixelOfficePanel?.webview.postMessage({ type: 'pixelOfficeActivity', value: { items } }); + } this._pixelOfficeBroadcast({ status: ev.output?.error ? 'error' : 'executing', progress: ev.total > 0 ? (ev.index + 1) / ev.total : undefined, @@ -556,11 +604,44 @@ export class SidebarChatProvider implements vscode.WebviewViewProvider, BridgeIn ); this._pixelOfficePanel = panel; panel.webview.html = this._buildPixelOfficeHtml(panel.webview); - // panel과 백엔드 사이의 가벼운 메시지 채널 — 닫기/리프레시 정도만. + // panel과 백엔드 사이의 메시지 채널 — 닫기/리프레시 + 레이아웃 편집. panel.webview.onDidReceiveMessage((msg: any) => { if (!msg || typeof msg !== 'object') return; if (msg.type === 'getPixelOfficeState') this.pixelOfficeResend(); if (msg.type === 'closePixelOfficePanel') panel.dispose(); + if (msg.type === 'getPixelOfficeLayout') { + // webview가 layout 요청 — 저장된 게 있으면 그것, 없으면 null. + panel.webview.postMessage({ + type: 'pixelOfficeLayoutLoaded', + value: this._readPixelOfficeLayout() ?? null, + }); + } + if (msg.type === 'savePixelOfficeLayout') { + // webview의 편집 모드에서 사용자가 저장 버튼 누름. + void this._writePixelOfficeLayout(msg.value).then(() => { + panel.webview.postMessage({ + type: 'pixelOfficeLayoutSaved', value: { ok: true }, + }); + }); + } + if (msg.type === 'resetPixelOfficeLayout') { + // 디폴트 LAYOUT으로 복귀. + void this._clearPixelOfficeLayout().then(() => { + panel.webview.postMessage({ + type: 'pixelOfficeLayoutSaved', value: { ok: true, reset: true }, + }); + }); + } + if (msg.type === 'pixelOfficeCommand') { + // D. 캐릭터 컨텍스트 메뉴 액션. 현재 abort만 처리 — Stop 버튼과 + // 동일 경로(abortCompanyTurn + alignment 취소 + agent.stop)로 + // 작업 즉시 중단. skip/pause 등은 dispatcher에 별도 API가 없어 미지원. + if (msg.cmd === 'abort') { + this.abortCompanyTurn(); + this.cancelPendingAlignment(); + this._agent.stop(); + } + } }); panel.onDidDispose(() => { if (this._pixelOfficePanel === panel) this._pixelOfficePanel = undefined; @@ -578,7 +659,10 @@ export class SidebarChatProvider implements vscode.WebviewViewProvider, BridgeIn */ private _buildPixelOfficeHtml(webview: vscode.Webview): string { const cspSource = webview.cspSource; - return _pixelOfficePanelHtml(cspSource); + const derivedBase = webview.asWebviewUri( + vscode.Uri.joinPath(this._extensionUri, 'assets', 'pixelOffice', 'derived') + ).toString(); + return _pixelOfficePanelHtml(cspSource, { derivedBase }); } /** Alignment 슬롯 비우기 — 사용자가 "취소"를 눌렀거나 turn 시작/종료 시점 호출. */ @@ -3773,455 +3857,760 @@ export function wrapPanelAsView(panel: vscode.WebviewPanel): vscode.WebviewView * 캐릭터는 살짝 dim. 직군은 ROLE_CATEGORY_ORDER 순으로 배치 — Agent 코드 * 변경 없이 백엔드의 listActiveAgentsByCategory 결과를 그대로 활용 가능. */ -function _pixelOfficePanelHtml(cspSource: string): string { +function _pixelOfficePanelHtml(cspSource: string, assets: { derivedBase: string }): string { return ` - -Pixel Office + - +:root{--bg:#0E1019;--wall:#202536;--floor:#302634;--floor2:#281F2C;--text:#F1F4FB;--muted:#A8B0C7;--accent:#7C83FF;} +*{box-sizing:border-box} body{margin:0;height:100vh;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;display:flex;flex-direction:column;overflow:hidden} +header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:rgba(0,0,0,.22);border-bottom:1px solid rgba(255,255,255,.08)} +.h-title{font-weight:800}.h-sub{font-size:11px;color:var(--muted)}.status{font-size:12px;padding:4px 10px;border:1px solid rgba(255,255,255,.18);border-radius:999px} +.strip{display:flex;gap:16px;padding:8px 16px;font-size:12px;color:var(--muted);border-bottom:1px solid rgba(255,255,255,.06)}.strip b{color:var(--text)} +.office{position:relative;flex:1;overflow:hidden;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#21283a 0 16%,transparent 16%),radial-gradient(ellipse at 50% 0%,rgba(124,131,255,.12),transparent 42%),linear-gradient(135deg,#322835,#271f2a)} +.office:before{content:'';position:absolute;left:0;right:0;top:16%;bottom:0;background-image:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);background-size:48px 48px} +.office:after{content:'';position:absolute;left:0;right:0;top:15.5%;height:8px;background:linear-gradient(180deg,rgba(0,0,0,.36),transparent)} +.stage{position:relative;width:720px;height:585px;margin:0} +.zone{position:absolute;border:1px solid rgba(255,255,255,.05);background:rgba(255,255,255,.018);box-shadow:inset 0 1px 0 rgba(255,255,255,.035);border-radius:10px} +.zone.exec{left:220px;top:18px;width:280px;height:150px;background:rgba(124,131,255,.06)}.zone.core{left:28px;top:175px;width:520px;height:170px}.zone.ops{left:28px;top:355px;width:520px;height:170px}.zone.lounge{left:560px;top:355px;width:132px;height:170px;background:rgba(255,189,89,.045)} +.wall-window{position:absolute;top:16px;width:86px;height:42px;border:3px solid rgba(206,223,255,.35);background:linear-gradient(180deg,rgba(160,208,255,.3),rgba(110,150,210,.1));box-shadow:inset 0 0 0 2px rgba(15,20,31,.55)} +.wall-window.w1{left:84px}.wall-window.w2{left:550px} +.obj,.desk,.char{position:absolute;image-rendering:pixelated} +.obj{filter:drop-shadow(3px 4px 0 rgba(0,0,0,.28));z-index:4} +.desk{width:112px;z-index:5;filter:drop-shadow(4px 5px 0 rgba(0,0,0,.32))}.desk.boss{width:136px}.label{position:absolute;left:50%;bottom:-10px;transform:translateX(-50%);font-size:10px;color:rgba(241,244,251,.78);white-space:nowrap;text-shadow:1px 1px #000} +.char{width:56px;height:72px;z-index:7;transition:left .9s cubic-bezier(.2,.7,.2,1),top .9s cubic-bezier(.2,.7,.2,1)}.char.walking{z-index:14}.char img{position:absolute;left:0;bottom:0;max-width:100%;max-height:100%;image-rendering:pixelated;filter:drop-shadow(2px 2px 0 rgba(0,0,0,.45));transform-origin:center bottom} +.char.active:before{content:'';position:absolute;left:24px;top:-10px;width:8px;height:8px;background:var(--role-color,var(--accent));box-shadow:0 0 12px var(--role-color,var(--accent));animation:po-pulse 1.6s ease-in-out infinite} +@keyframes po-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.6}} +/* ── C. 직군별 페르소나 컬러 ── 책상 outline 가벼운 강조, 활성 캐릭터 위 점이 직군색. + data-role attribute로 자동 매핑. 사용자가 PNG sprite로 swap해도 컬러는 유지. */ +.char[data-role="ceo"],.desk[data-role="ceo"] {--role-color:#A78BFA} +.char[data-role="planner"],.desk[data-role="planner"] {--role-color:#60A5FA} +.char[data-role="researcher"],.desk[data-role="researcher"] {--role-color:#10B981} +.char[data-role="designer"],.desk[data-role="designer"] {--role-color:#F472B6} +.char[data-role="developer"],.desk[data-role="developer"] {--role-color:#FBBF24} +.char[data-role="qa"],.desk[data-role="qa"] {--role-color:#22D3EE} +.char[data-role="inspector"],.desk[data-role="inspector"] {--role-color:#FB923C} +.char[data-role="support"],.desk[data-role="support"] {--role-color:#94A3B8} +.char.active::after{content:'';position:absolute;left:0;right:0;bottom:-4px;height:3px;background:var(--role-color,var(--accent));box-shadow:0 0 8px var(--role-color,var(--accent));border-radius:2px;animation:po-glow 1.6s ease-in-out infinite} +@keyframes po-glow{0%,100%{opacity:.7}50%{opacity:1}} +.desk{position:relative} +.desk::after{content:'';position:absolute;inset:-2px;border-radius:4px;border:2px solid transparent;pointer-events:none;transition:border-color .3s} +.char.active ~ .desk[data-role],.stage:has(.char.active[data-role="ceo"]) .desk[data-role="ceo"]::after, +.stage:has(.char.active[data-role="planner"]) .desk[data-role="planner"]::after, +.stage:has(.char.active[data-role="researcher"]) .desk[data-role="researcher"]::after, +.stage:has(.char.active[data-role="designer"]) .desk[data-role="designer"]::after, +.stage:has(.char.active[data-role="developer"]) .desk[data-role="developer"]::after, +.stage:has(.char.active[data-role="qa"]) .desk[data-role="qa"]::after, +.stage:has(.char.active[data-role="inspector"]) .desk[data-role="inspector"]::after, +.stage:has(.char.active[data-role="support"]) .desk[data-role="support"]::after +{border-color:var(--role-color)} +.shadow{position:absolute;left:12px;bottom:0;width:28px;height:7px;background:radial-gradient(ellipse,rgba(0,0,0,.55),transparent 70%)} +.bubble{position:absolute;z-index:20;transform:translate(-50%,-100%);background:#fff;color:#222;padding:5px 8px;border-radius:8px;font-size:11px;box-shadow:2px 2px 0 rgba(0,0,0,.35);white-space:nowrap} +.edit-btn{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);color:#F1F4FB;padding:4px 10px;border-radius:5px;cursor:pointer;font-size:11px}.edit-btn:hover{background:rgba(99,102,241,.25);border-color:#6366F1} +/* ── B. 워크플로우 미니 맵 ── 헤더 아래 dot strip. 각 dot이 stage 하나. 완료= + 채워진 점, 활성=링 펄스, 대기=빈 점. 호버 시 라벨 표시. */ +.mini-map{display:flex;gap:5px;align-items:center;padding:7px 16px;background:rgba(0,0,0,.3);border-bottom:1px solid rgba(255,255,255,.06);overflow-x:auto;scrollbar-width:none}.mini-map::-webkit-scrollbar{display:none} +.mini-map .mm-dot{position:relative;width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.12);border:1.5px solid rgba(255,255,255,.18);flex-shrink:0;cursor:default;transition:all .25s} +.mini-map .mm-dot[data-status="done"]{background:#10B981;border-color:#10B981;box-shadow:0 0 4px rgba(16,185,129,.5)} +.mini-map .mm-dot[data-status="active"]{background:var(--accent);border-color:var(--accent);width:14px;height:14px;box-shadow:0 0 0 3px rgba(99,102,241,.3);animation:mm-pulse 1.4s ease-in-out infinite} +@keyframes mm-pulse{0%,100%{box-shadow:0 0 0 3px rgba(99,102,241,.3)}50%{box-shadow:0 0 0 6px rgba(99,102,241,.15)}} +.mini-map .mm-bar{flex:1;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.08),rgba(255,255,255,.16))} +.mini-map .mm-label{position:absolute;left:50%;top:-22px;transform:translateX(-50%);font-size:10px;color:#F1F4FB;background:rgba(0,0,0,.85);padding:2px 6px;border-radius:3px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;z-index:50} +.mini-map .mm-dot:hover .mm-label{opacity:1} +.mini-map .mm-counter{flex-shrink:0;font-size:10px;color:#94A3B8;margin-left:8px;white-space:nowrap} +/* ── E. Activity Ticker ── action-tag executor 결과를 하단 strip으로 흘림. + 사용자가 에이전트의 *실제 행동*(파일 쓰기, 명령 실행)을 실시간으로 보며 신뢰. */ +.ticker{position:relative;padding:5px 16px;background:rgba(99,102,241,.08);border-top:1px solid rgba(99,102,241,.18);overflow:hidden;font-size:11px;font-family:ui-monospace,monospace;height:24px} +.tk-track{display:flex;gap:18px;white-space:nowrap;animation:tk-roll 22s linear infinite;will-change:transform} +.ticker:hover .tk-track{animation-play-state:paused} +.tk-item{flex-shrink:0;color:#D7DBEA} +.tk-item.tk-ok{color:#10B981} +.tk-item.tk-warn{color:#F5C518} +.tk-item.tk-err{color:#EF4444} +.tk-item .tk-agent{color:#A78BFA;margin-right:5px;font-weight:600} +@keyframes tk-roll{from{transform:translateX(0)}to{transform:translateX(-50%)}} +/* ── D. 캐릭터 컨텍스트 메뉴 ── 편집 모드 X일 때 캐릭터 클릭하면 작은 메뉴 popup. + 현재 turn 제어 + 최근 활동 보기. */ +.ctx-menu{position:fixed;z-index:1000;background:#13162A;border:1px solid #2A2E3F;border-radius:6px;box-shadow:0 8px 24px rgba(0,0,0,.6);padding:4px;min-width:170px;font-size:12px;color:#F1F4FB} +.ctx-menu-head{padding:6px 10px 4px;font-size:10px;color:#94A3B8;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:4px} +.ctx-menu-head .cmh-role{color:var(--role-color,#A78BFA);font-weight:700;text-transform:uppercase} +.ctx-menu-item{display:flex;align-items:center;gap:8px;padding:7px 10px;cursor:pointer;border-radius:4px;transition:background .12s} +.ctx-menu-item:hover{background:rgba(99,102,241,.18)} +.ctx-menu-item.danger:hover{background:rgba(239,68,68,.18);color:#FCA5A5} +.ctx-menu-divider{height:1px;background:rgba(255,255,255,.08);margin:3px 4px} +body[data-edit-mode="true"] .ctx-menu{display:none!important} +body:not([data-edit-mode="true"]) .char{cursor:pointer} +.ctx-detail{position:fixed;z-index:1001;background:#13162A;border:1px solid #2A2E3F;border-radius:8px;box-shadow:0 12px 36px rgba(0,0,0,.7);padding:16px 18px;color:#F1F4FB;min-width:320px;max-width:520px;max-height:60vh;overflow-y:auto;font-size:12px;line-height:1.5} +.ctx-detail h3{margin:0 0 8px;font-size:14px;color:var(--role-color,#A78BFA);text-transform:uppercase;letter-spacing:.04em} +.ctx-detail .cd-close{position:absolute;top:8px;right:10px;background:transparent;border:none;color:#94A3B8;font-size:16px;cursor:pointer} +.ctx-detail dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 14px} +.ctx-detail dt{color:#94A3B8;font-weight:600;white-space:nowrap} +.ctx-detail dd{margin:0;color:#F1F4FB;overflow-wrap:anywhere} +.ctx-detail .cd-logs{margin-top:10px;padding:6px 8px;background:rgba(0,0,0,.3);border-radius:4px;font-family:ui-monospace,monospace;font-size:10.5px;max-height:120px;overflow-y:auto} +.edit-toolbar{display:flex;gap:8px;align-items:center;padding:6px 16px;background:rgba(99,102,241,.18);border-bottom:1px solid rgba(99,102,241,.4);font-size:11px}.edit-toolbar .et-hint{flex:1;color:#D7DBEA}.edit-toolbar button{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#F1F4FB;padding:3px 10px;border-radius:4px;cursor:pointer;font-size:11px}.edit-toolbar button:hover{background:rgba(99,102,241,.35)} +/* 편집 모드 — 드래그 가능 요소 강조 */ +body[data-edit-mode="true"] .stage{background-image:linear-gradient(rgba(99,102,241,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(99,102,241,.15) 1px,transparent 1px);background-size:32px 32px} +body[data-edit-mode="true"] .desk,body[data-edit-mode="true"] .char,body[data-edit-mode="true"] .obj{cursor:grab;outline:1px dashed rgba(99,102,241,.5)} +body[data-edit-mode="true"] .desk:hover,body[data-edit-mode="true"] .char:hover,body[data-edit-mode="true"] .obj:hover{outline:2px solid #6366F1;z-index:30} +body[data-edit-mode="true"] .dragging{cursor:grabbing!important;opacity:.7;outline:2px solid #FB923C!important;z-index:40} +body[data-edit-mode="true"] .selected{outline:2px solid #F472B6!important;box-shadow:0 0 0 4px rgba(244,114,182,.25);z-index:35} +body[data-edit-mode="true"] .char .shadow{display:none} +footer{padding:8px 16px 12px;border-top:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.25);font-size:11px;color:var(--muted)}.progress{height:5px;background:rgba(255,255,255,.08);margin-bottom:6px}.bar{height:100%;width:0;background:var(--accent);transition:width .25s} + - - - 🏢 Astra Office - 대기 중 - - idle - - - 작업— - 단계— - 다음— +🏢 ASTRA OFFICEAstra✏️ 편집idle + + + 드래그로 이동 · R 회전(Shift+R 반시계) · ] 위 / [ 아래 · 4px snap + ⬆ + ⬇ + 💾 저장 + ↻ 디폴트 + ✕ 취소 - - - - 💤 - Pixel Office가 꺼져 있어요 - 설정에서 g1nation.company.pixelOffice.enabled를 켜면 다시 보입니다 - - - - - -
g1nation.company.pixelOffice.enabled