Release v2.2.1: Autonomous Task Resumption & Engine Resilience
This commit is contained in:
@@ -3,15 +3,15 @@
|
||||
<!-- ASTRA:AUTO-START -->
|
||||
|
||||
## Snapshot
|
||||
- **Workspace**: `ConnectAI` `v2.1.9` _(absolute path varies by environment; resolved from the active VS Code workspace)_
|
||||
- **Workspace**: `ConnectAI` `v2.2.1` _(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**: 214 source files, ~39,610 lines across 5 top-level modules.
|
||||
- **Stats**: 215 source files, ~40,522 lines across 5 top-level modules.
|
||||
|
||||
## Last Refresh
|
||||
- **Time**: 2026-05-14T13:38:08.438Z
|
||||
- **Time**: 2026-05-14T14:26:31.694Z
|
||||
- **Files newly analysed**: 0
|
||||
- **Files reused from cache**: 214
|
||||
- **Files reused from cache**: 215
|
||||
|
||||
## Directory Map
|
||||
```mermaid
|
||||
@@ -37,7 +37,7 @@ mindmap
|
||||
> Arrows: which top-level module imports from which.
|
||||
```mermaid
|
||||
flowchart LR
|
||||
src["src/<br/>102 files"]
|
||||
src["src/<br/>103 files"]
|
||||
media["media/<br/>6 files"]
|
||||
tests["tests/<br/>27 files"]
|
||||
core_py["core_py/<br/>6 files"]
|
||||
@@ -53,10 +53,10 @@ flowchart LR
|
||||
|
||||
## Hub Files
|
||||
> Imported by many other files — touching these has wide blast radius.
|
||||
- `src/utils.ts` — referenced by **44** files
|
||||
- `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/lib/paths.ts` — referenced by **10** files
|
||||
- `src/features/company/types.ts` — referenced by **10** 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/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
|
||||
@@ -64,10 +64,10 @@ flowchart LR
|
||||
|
||||
## Modules
|
||||
|
||||
### `src/` — 102 files, ~25,886 lines
|
||||
### `src/` — 103 files, ~26,421 lines
|
||||
|
||||
**Sub-directories**
|
||||
- `src/features/` (29) — 기본 에이전트 로스터 — 1인 기업 모드의 출고 디폴트. 설계 의도: 소프트웨어/게임 개발 IT 회사의 1인 기업 운영을 가정. 한 사람이 기획 → 디자인 → 개발 → QA → 출시 → 운영/마케팅을 모두 책임질 때
|
||||
- `src/features/` (30) — 기본 에이전트 로스터 — 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
|
||||
@@ -83,10 +83,10 @@ flowchart LR
|
||||
**Key files**
|
||||
- `src/utils.ts` (268 lines)
|
||||
- `src/config.ts` (224 lines)
|
||||
- `src/features/company/types.ts` (331 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/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/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` (3232 lines)
|
||||
- `src/sidebarProvider.ts` (3298 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)
|
||||
@@ -94,25 +94,25 @@ flowchart LR
|
||||
- `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/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/approval/approvalQueue.ts` (129 lines)
|
||||
- `src/integrations/telegram/telegramClient.ts` (154 lines)
|
||||
- `src/features/company/dispatcher.ts` (631 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/sessionStore.ts` (231 lines) — Disk persistence for company-mode session artefacts. Each company turn produces a timestamped directory: <workspaceRoot>/.astra/company/sessions/2026-05-13T21-29/ ├─ brief.md ← CEO's task decompositio
|
||||
- `src/features/projectArchitecture/scanner.ts` (644 lines) — Deep static analyser for the Project Architecture Context generator. Walks the project tree (skipping the usual nodemodules / out / dist noise), pulls the role of each interesting file from its leadin
|
||||
- `src/lib/contextManager.ts` (275 lines) — Context Manager (컨텍스트 한계 관리) "context length = 132k" 는 "답변을 132k 토큰까지 생성해도 된다" 가 아닙니다. 시스템 프롬프트 + 대화 기록 + 입력 문서 + 생성될 답변 + 여유분 ≤ context length 이 모듈은 요청을 보내기 전에 입력 토큰을 추정하고, - 동적으로 출력 상한(maxTokens)을 계
|
||||
- `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` (966 lines)
|
||||
- `src/extension.ts` (967 lines)
|
||||
- `src/features/projectChronicle/types.ts` (118 lines)
|
||||
- `src/lmstudio/client.ts` (147 lines)
|
||||
- `src/retrieval/brainIndex.ts` (325 lines) — Brain Index — persistent, mtime-keyed tokenized cache of the Second Brain RAG 검색은 매 질의마다 브레인의 모든 .md 파일을 읽고 토크나이즈해서 TF-IDF 점수를 계산했습니다 — 파일 수가 많아지면 그게 병목입니다. 이 모듈은 <brainPath>/.astra/brain-index.json 에
|
||||
- `src/features/company/promptBuilder.ts` (231 lines) — System-prompt construction for company-mode agents. Each specialist needs a prompt that includes: - Their identity (name, role, specialty) + optional persona. - The action-tag contract (<createfile>,
|
||||
|
||||
### `media/` — 6 files, ~5,535 lines
|
||||
### `media/` — 6 files, ~5,912 lines
|
||||
|
||||
**Key files**
|
||||
- `media/sidebar.css` (1511 lines) — Stylesheet
|
||||
- `media/sidebar.js` (2930 lines)
|
||||
- `media/sidebar.html` (450 lines) — Astra
|
||||
- `media/sidebar.css` (1686 lines) — Stylesheet
|
||||
- `media/sidebar.js` (3119 lines)
|
||||
- `media/sidebar.html` (463 lines) — Astra
|
||||
- `media/settings-panel.css` (210 lines) — Stylesheet
|
||||
- `media/settings-panel.html` (164 lines) — Astra Settings
|
||||
- `media/settings-panel.js` (270 lines)
|
||||
@@ -308,7 +308,7 @@ Astra는 대표님의 명시적인 승인 하에 로컬 시스템의 강력한
|
||||
**Designed for High-Performance Decision Making.**
|
||||
Copyright (C) **g1nation**. All rights reserved.
|
||||
|
||||
_Last auto-scan: 2026-05-14T13:38:08.438Z · signature `d227380b`_
|
||||
_Last auto-scan: 2026-05-14T14:26:31.694Z · signature `6f3aa605`_
|
||||
<!-- ASTRA:AUTO-END -->
|
||||
|
||||
## Purpose
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"version": 1,
|
||||
"generatedAt": "2026-05-14T13:38:08.446Z",
|
||||
"generatedAt": "2026-05-14T14:26:31.701Z",
|
||||
"files": {
|
||||
"src/agent.ts": {
|
||||
"mtimeMs": 1778683690000,
|
||||
@@ -259,9 +259,9 @@
|
||||
"imports": []
|
||||
},
|
||||
"src/extension.ts": {
|
||||
"mtimeMs": 1778693606000,
|
||||
"size": 50539,
|
||||
"lines": 966,
|
||||
"mtimeMs": 1778768500000,
|
||||
"size": 50591,
|
||||
"lines": 967,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/utils",
|
||||
@@ -368,9 +368,9 @@
|
||||
]
|
||||
},
|
||||
"src/features/company/dispatcher.ts": {
|
||||
"mtimeMs": 1778762677000,
|
||||
"size": 29279,
|
||||
"lines": 631,
|
||||
"mtimeMs": 1778768379000,
|
||||
"size": 40226,
|
||||
"lines": 874,
|
||||
"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",
|
||||
@@ -383,14 +383,15 @@
|
||||
"src/features/company/ceoReporter",
|
||||
"src/features/company/promptBuilder",
|
||||
"src/features/company/sessionStore",
|
||||
"src/features/company/resumeStore",
|
||||
"src/features/company/telegramReport",
|
||||
"src/features/company/types"
|
||||
]
|
||||
},
|
||||
"src/features/company/index.ts": {
|
||||
"mtimeMs": 1778764795000,
|
||||
"size": 1827,
|
||||
"lines": 83,
|
||||
"mtimeMs": 1778768145000,
|
||||
"size": 1979,
|
||||
"lines": 91,
|
||||
"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",
|
||||
@@ -398,6 +399,7 @@
|
||||
"src/features/company/types",
|
||||
"src/features/company/pipelineTemplates",
|
||||
"src/features/company/dispatcher",
|
||||
"src/features/company/resumeStore",
|
||||
"src/features/company/sessionStore"
|
||||
]
|
||||
},
|
||||
@@ -449,6 +451,17 @@
|
||||
"role": "당신은 {{COMPANY}}의 CEO입니다. 방금 팀이 작업을 끝냈습니다. 각 에이전트의 산출물을 읽고 사장님께 올릴 종합 보고서를 작성하세요.",
|
||||
"imports": []
|
||||
},
|
||||
"src/features/company/resumeStore.ts": {
|
||||
"mtimeMs": 1778768128000,
|
||||
"size": 5672,
|
||||
"lines": 134,
|
||||
"role": "Disk persistence for company-turn resume state. 각 turn의 sessionDir 안에 resume.json을 두고, dispatcher가 매 의미 있는 시점(plan 확정 / 각 stage 직후 / abort 시점)에 현재 상태를 덮어쓴다. 재개 시점에는 이 파일을 읽어 nextIndex 부터 dispatch 재개. ",
|
||||
"imports": [
|
||||
"src/utils",
|
||||
"src/features/company/sessionStore",
|
||||
"src/features/company/types"
|
||||
]
|
||||
},
|
||||
"src/features/company/sessionStore.ts": {
|
||||
"mtimeMs": 1778680971000,
|
||||
"size": 8727,
|
||||
@@ -473,9 +486,9 @@
|
||||
]
|
||||
},
|
||||
"src/features/company/types.ts": {
|
||||
"mtimeMs": 1778764725000,
|
||||
"size": 14306,
|
||||
"lines": 331,
|
||||
"mtimeMs": 1778768095000,
|
||||
"size": 17279,
|
||||
"lines": 387,
|
||||
"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": []
|
||||
},
|
||||
@@ -922,15 +935,16 @@
|
||||
]
|
||||
},
|
||||
"src/sidebar/chatHandlers.ts": {
|
||||
"mtimeMs": 1778764814000,
|
||||
"size": 22151,
|
||||
"lines": 428,
|
||||
"mtimeMs": 1778768483000,
|
||||
"size": 23759,
|
||||
"lines": 455,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/sidebarProvider",
|
||||
"src/utils",
|
||||
"src/lib/paths",
|
||||
"src/features/company"
|
||||
"src/features/company",
|
||||
"src/features/company/resumeStore"
|
||||
]
|
||||
},
|
||||
"src/sidebar/chronicleHandlers.ts": {
|
||||
@@ -943,9 +957,9 @@
|
||||
]
|
||||
},
|
||||
"src/sidebarProvider.ts": {
|
||||
"mtimeMs": 1778764853000,
|
||||
"size": 141684,
|
||||
"lines": 3232,
|
||||
"mtimeMs": 1778768541000,
|
||||
"size": 144281,
|
||||
"lines": 3298,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/utils",
|
||||
@@ -1056,23 +1070,23 @@
|
||||
"imports": []
|
||||
},
|
||||
"media/sidebar.css": {
|
||||
"mtimeMs": 1778765317000,
|
||||
"size": 62558,
|
||||
"lines": 1511,
|
||||
"mtimeMs": 1778768679000,
|
||||
"size": 69000,
|
||||
"lines": 1686,
|
||||
"role": "Stylesheet",
|
||||
"imports": []
|
||||
},
|
||||
"media/sidebar.html": {
|
||||
"mtimeMs": 1778765185000,
|
||||
"size": 28137,
|
||||
"lines": 450,
|
||||
"mtimeMs": 1778768580000,
|
||||
"size": 28892,
|
||||
"lines": 463,
|
||||
"role": "Astra",
|
||||
"imports": []
|
||||
},
|
||||
"media/sidebar.js": {
|
||||
"mtimeMs": 1778765299000,
|
||||
"size": 167258,
|
||||
"lines": 2930,
|
||||
"mtimeMs": 1778768663000,
|
||||
"size": 178034,
|
||||
"lines": 3119,
|
||||
"role": "",
|
||||
"imports": []
|
||||
},
|
||||
@@ -1550,7 +1564,7 @@
|
||||
"imports": []
|
||||
},
|
||||
"docs/records/ConnectAI/chronicle.config.json": {
|
||||
"mtimeMs": 1778765173000,
|
||||
"mtimeMs": 1778767705000,
|
||||
"size": 416,
|
||||
"lines": 11,
|
||||
"role": "JSON configuration",
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"result": "Final report with inconsistencies. This should be long enough to pass validation.",
|
||||
"createdAt": 1778767038020,
|
||||
"createdAt": 1778768831416,
|
||||
"modelVersion": "unknown"
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"result": "[CONFLICT WARNING] 성능이 200% 증가했습니다. vs 그러나 동시에 50% 감소했습니다. 최적화와 성능 저하가 동시에 발견됨.",
|
||||
"createdAt": 1778767038017,
|
||||
"createdAt": 1778768831407,
|
||||
"modelVersion": "unknown"
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"result": "Detailed Execution Plan: 1. Research 2. Analyze 3. Write report with high quality.",
|
||||
"createdAt": 1778767038016,
|
||||
"createdAt": 1778768831402,
|
||||
"modelVersion": "unknown"
|
||||
}
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"result": "---\nid: stress_conflict_1778767038004\ndate: 2026-05-14T13:57:18.021Z\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]** 전략 수립 중... (11ms)\n- **[RESEARCHER]** 핵심 정보 수집 및 분석 중... (0ms)\n- **[WRITER]** 최종 리포트 작성 및 편집 중... (1ms)\n",
|
||||
"createdAt": 1778767038021,
|
||||
"result": "---\nid: stress_conflict_1778768831385\ndate: 2026-05-14T14:27:11.421Z\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]** 전략 수립 중... (11ms)\n- **[RESEARCHER]** 핵심 정보 수집 및 분석 중... (6ms)\n- **[WRITER]** 최종 리포트 작성 및 편집 중... (10ms)\n",
|
||||
"createdAt": 1778768831421,
|
||||
"modelVersion": "unknown"
|
||||
}
|
||||
+10
-10
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"missionId": "stress_conflict_1778767038004",
|
||||
"missionId": "stress_conflict_1778768831385",
|
||||
"status": "completed",
|
||||
"startTime": "2026-05-14T13:57:18.005Z",
|
||||
"totalElapsedMs": 16,
|
||||
"startTime": "2026-05-14T14:27:11.385Z",
|
||||
"totalElapsedMs": 36,
|
||||
"results": {
|
||||
"planner": "Detailed Execution Plan: 1. Research 2. Analyze 3. Write report with high quality.",
|
||||
"researcher": "[CONFLICT WARNING] 성능이 200% 증가했습니다. vs 그러나 동시에 50% 감소했습니다. 최적화와 성능 저하가 동시에 발견됨.",
|
||||
@@ -18,28 +18,28 @@
|
||||
"to": "planner",
|
||||
"durationMs": 11,
|
||||
"message": "전략 수립 중...",
|
||||
"ts": "2026-05-14T13:57:18.016Z"
|
||||
"ts": "2026-05-14T14:27:11.396Z"
|
||||
},
|
||||
{
|
||||
"from": "planner",
|
||||
"to": "researcher",
|
||||
"durationMs": 0,
|
||||
"durationMs": 6,
|
||||
"message": "핵심 정보 수집 및 분석 중...",
|
||||
"ts": "2026-05-14T13:57:18.016Z"
|
||||
"ts": "2026-05-14T14:27:11.402Z"
|
||||
},
|
||||
{
|
||||
"from": "researcher",
|
||||
"to": "writer",
|
||||
"durationMs": 1,
|
||||
"durationMs": 10,
|
||||
"message": "최종 리포트 작성 및 편집 중...",
|
||||
"ts": "2026-05-14T13:57:18.017Z"
|
||||
"ts": "2026-05-14T14:27:11.412Z"
|
||||
},
|
||||
{
|
||||
"from": "writer",
|
||||
"to": "completed",
|
||||
"durationMs": 4,
|
||||
"durationMs": 9,
|
||||
"message": "미션 완료",
|
||||
"ts": "2026-05-14T13:57:18.021Z"
|
||||
"ts": "2026-05-14T14:27:11.421Z"
|
||||
}
|
||||
],
|
||||
"resilienceMetrics": {
|
||||
Reference in New Issue
Block a user