Skip to content

mineclover/claude-code-spec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

258 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Claude Code Headless Controller

Electron λ°μŠ€ν¬ν†± μ•±μœΌλ‘œ Claude CLIλ₯Ό ν—€λ“œλ¦¬μŠ€ λͺ¨λ“œλ‘œ μ‹€ν–‰ν•˜κ³ , stream-json ν˜•μ‹μ˜ μ‹€μ‹œκ°„ 좜λ ₯을 μ›Ή UI둜 확인할 수 μžˆλŠ” λ„κ΅¬μž…λ‹ˆλ‹€.

image

ν”„λ‘œμ νŠΈ ꡬ성

이 ν”„λ‘œμ νŠΈλŠ” λͺ¨λ…Έλ ˆν¬ ꡬ쑰둜 κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€:

  • GUI μ•± (root): Electron 기반 λ°μŠ€ν¬ν†± μ• ν”Œλ¦¬μΌ€μ΄μ…˜
  • @context-action/code-api: Claude CLI ν΄λΌμ΄μ–ΈνŠΈ 라이브러리 (μž¬μ‚¬μš© κ°€λŠ₯)

μ£Όμš” νŠΉμ§•

μ‹€ν–‰ 및 λͺ¨λ‹ˆν„°λ§

  • βœ… 병렬 μ‹€ν–‰ 관리: μ—¬λŸ¬ Claude CLI ν”„λ‘œμ„ΈμŠ€ λ™μ‹œ μ‹€ν–‰ 및 λͺ¨λ‹ˆν„°λ§
  • βœ… μ‹€μ‹œκ°„ 슀트리밍: Stream JSON νŒŒμ‹± 및 μ‹€μ‹œκ°„ 이벀트 처리
  • βœ… μ‹€ν–‰ 이λ ₯ 좔적: μ„Έμ…˜ ID 기반 λͺ¨λ“  μ‹€ν–‰ λ‚΄μ—­ 관리
  • βœ… ν”„λ‘œμ„ΈμŠ€ μ œμ–΄: μ‹€ν–‰ 쀑 ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ 및 정리

ν”„λ‘œμ νŠΈ 관리

  • βœ… μ„Έλ°€ν•œ κΆŒν•œ μ œμ–΄: settings.json 기반 μ•ˆμ „ν•œ μžλ™ν™” (--dangerously-skip-permissions λΆˆν•„μš”)
  • βœ… MCP μ„œλ²„ 선택: μž‘μ—…λ³„ μ΅œμ ν™”λœ MCP μ„œλ²„ μ„€μ • (뢄석/개발/μ΅œμ†Œ)
  • βœ… μ„Έμ…˜ 관리: ν”„λ‘œμ νŠΈλ³„ μ„Έμ…˜ 쑰회 및 이어가기 지원
  • βœ… MCP μ„€μ • νŽΈμ§‘: ν”„λ‘œμ νŠΈλ³„ MCP μ„œλ²„ μ„€μ • 관리

μž‘μ—… 관리 (Tasks) - Execute μ΅œμ ν™”

  • βœ… μ˜μ‘΄μ„± 뢄석: μž‘μ—…μ— ν•„μš”ν•œ 파일 및 λ¬Έμ„œ μ˜μ‘΄μ„± 사전 μ •μ˜
  • βœ… μ»¨ν…μŠ€νŠΈ λ°°μ •: Execute μ‹œ μžλ™ μ»¨ν…μŠ€νŠΈ ꡬ성
  • βœ… μž‘μ—… μ˜μ—­ ν• λ‹Ή: Area μ„€μ •μœΌλ‘œ λΆˆν•„μš”ν•œ μ»¨ν…μŠ€νŠΈ 차단
  • βœ… 성곡 κΈ°μ€€ 검증: 체크리슀트 기반 κ²°κ³Ό 검증
  • βœ… 리뷰 μ‹œμŠ€ν…œ: 리뷰어 μ§€μ • 및 μ‚°μΆœλ¬Ό κ²€ν† 

기술 νŠΉμ§•

  • βœ… λͺ¨λ“ˆν™” μ•„ν‚€ν…μ²˜: μž¬μ‚¬μš© κ°€λŠ₯ν•œ 독립 λͺ¨λ“ˆ 섀계
  • βœ… μ™„μ „ν•œ νƒ€μž… μ•ˆμ •μ„±: TypeScript둜 μž‘μ„±λœ νƒ€μž… μ„Έμ΄ν”„ν•œ μ½”λ“œ
  • βœ… Electron IPC 톡신: Main/Renderer ν”„λ‘œμ„ΈμŠ€ κ°„ μ•ˆμ „ν•œ 톡신

μ‹€ν–‰ 방법

개발자용

# μ„€μΉ˜
npm install

# 개발 λͺ¨λ“œ μ‹€ν–‰
npm start

# macOS νŒ¨ν‚€μ§• (ν…ŒμŠ€νŠΈμš©)
npm run package:mac

# macOS 배포용 λΉŒλ“œ (DMG + ZIP 파일 생성)
npm run build:mac
# λ˜λŠ”
npm run make

μ‚¬μš©μžμš© (μ•± μ„€μΉ˜)

# 1. DMG 파일 μ—΄κΈ°
open "out/make/Claude Code Spec.dmg"

# 2. 앱을 Applications ν΄λ”λ‘œ λ“œλž˜κ·Έ

# 3. λ³΄μ•ˆ μ„€μ •
xattr -cr "/Applications/Claude Code Spec.app"

# 4. μ‹€ν–‰
open -a "Claude Code Spec"

상세 μ„€μΉ˜ κ°€μ΄λ“œ: INSTALL.md | λΉŒλ“œ κ°€μ΄λ“œ: BUILD_GUIDE.md

λΉ λ₯Έ μ‹œμž‘

1. 초기 μ„€μ •

ν”„λ‘œμ νŠΈλŠ” 이미 κΆŒν•œ μ„€μ •κ³Ό MCP μ„œλ²„κ°€ κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€:

  • κΆŒν•œ μ„€μ •: .claude/settings.json (νŒ€ 곡유)
  • MCP μ„œλ²„: .claude/.mcp-*.json (μš©λ„λ³„ μ„€μ •)

상세 κ°€μ΄λ“œ: SETUP.md

2. μ‚¬μš©λ²•

  1. ν”„λ‘œμ νŠΈ 디렉토리 선택: Browse λ²„νŠΌ λ˜λŠ” 직접 μž…λ ₯
  2. 쿼리 μž…λ ₯: Claudeμ—κ²Œ μš”μ²­ν•  μž‘μ—… μž…λ ₯
  3. Execute 클릭: Claude CLIκ°€ μ‹€ν–‰λ˜κ³  μ‹€μ‹œκ°„ 응닡 ν‘œμ‹œ

μ‹€ν–‰ λͺ…λ Ή μ˜ˆμ‹œ:

claude -p "μ½”λ“œ 뢄석" \
  --output-format stream-json \
  --mcp-config .claude/.mcp-dev.json \
  --strict-mcp-config

3. κΆŒν•œ 관리

ν”„λ‘œμ νŠΈλŠ” .claude/settings.json으둜 μ•ˆμ „ν•˜κ²Œ μžλ™ν™”λ©λ‹ˆλ‹€:

{
  "permissions": {
    "allow": [
      "Read(./src/**)",
      "Write(./src/**)",
      "Bash(npm run test)"
    ],
    "deny": [
      "Read(./.env)",
      "Bash(rm:*)"
    ]
  }
}

μž₯점:

  • βœ… --dangerously-skip-permissions λΆˆν•„μš”
  • βœ… λ―Όκ°ν•œ 파일 보호
  • βœ… νŒ€ μ •μ±… 곡유 κ°€λŠ₯

μ•„ν‚€ν…μ²˜

핡심 라이브러리: @context-action/code-api

Claude CLIμ™€μ˜ 톡신을 λ‹΄λ‹Ήν•˜λŠ” 핡심 λͺ¨λ“ˆλ“€μ€ 독립적인 라이브러리둜 λΆ„λ¦¬λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

μžμ„Έν•œ μ‚¬μš©λ²•μ€ packages/code-api/README.mdλ₯Ό μ°Έκ³ ν•˜μ„Έμš”.

μ£Όμš” λͺ¨λ“ˆ

import {
  // ν΄λΌμ΄μ–ΈνŠΈ
  ClaudeClient,
  ProcessManager,
  SessionManager,

  // νŒŒμ„œ
  StreamParser,

  // νƒ€μž… 및 νƒ€μž… κ°€λ“œ
  type StreamEvent,
  type SystemInitEvent,
  type AssistantEvent,
  isSystemInitEvent,
  isAssistantEvent,
  extractTextFromMessage,

  // 쿼리 API (κ΅¬μ‘°ν™”λœ 좜λ ₯)
  ClaudeQueryAPI,

  // μŠ€ν‚€λ§ˆ λΉŒλ”
  buildSchemaPrompt,
  zodSchemaToPrompt,
  validateWithZod,
} from '@context-action/code-api';

κΈ°λ³Έ μ‚¬μš© 예제

import { ClaudeClient } from '@context-action/code-api';

const client = new ClaudeClient({
  cwd: '/path/to/project',
  sessionId: 'previous-session-id', // optional
  onStream: (event) => console.log(event),
  onError: (error) => console.error(error),
  onClose: (code) => console.log('Done:', code),
});

client.execute('List files in this directory');

κ΅¬μ‘°ν™”λœ JSON 쿼리

import { ClaudeQueryAPI } from '@context-action/code-api';
import { z } from 'zod';

const api = new ClaudeQueryAPI();

// Zod μŠ€ν‚€λ§ˆλ‘œ νƒ€μž… μ•ˆμ „ν•œ 쿼리
const schema = z.object({
  file: z.string(),
  linesOfCode: z.number().min(0),
  language: z.enum(['typescript', 'javascript', 'python']),
});

const result = await api.queryWithZod(
  '/path/to/project',
  'Analyze src/main.ts',
  schema
);

console.log(result.data); // νƒ€μž… μ•ˆμ „: { file: string, linesOfCode: number, ... }

IPC 톡신 ꡬ쑰

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Renderer  β”‚                  β”‚    Main     β”‚
β”‚   (React)   β”‚                  β”‚  (Node.js)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
       β”‚                                β”‚
       β”‚  claude:execute                β”‚
       │───────────────────────────────>β”‚
       β”‚                                β”‚
       β”‚                          β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”
       β”‚                          β”‚  Claude   β”‚
       β”‚                          β”‚  Client   β”‚
       β”‚                          β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜
       β”‚                                β”‚
       β”‚  claude:stream (events)        β”‚
       β”‚<───────────────────────────────│
       β”‚                                β”‚
       β”‚  claude:complete               β”‚
       β”‚<───────────────────────────────│

데이터 흐름

1. User Input (Query)
   ↓
2. ClaudeClient.execute()
   ↓
3. spawn('claude', ['-p', query, '--output-format', 'stream-json', '--verbose'])
   ↓
4. stdout (line-by-line JSON)
   ↓
5. StreamParser.processChunk()
   ↓
6. Parsed StreamEvent
   ↓
7. IPC: claude:stream
   ↓
8. React UI Update

Stream JSON 이벀트 νƒ€μž…

Claude CLIκ°€ 좜λ ₯ν•˜λŠ” μ£Όμš” 이벀트:

System Init Event

{
  type: 'system',
  subtype: 'init',
  session_id: string,
  cwd: string,
  tools: string[],
  model: string,
  // ...
}

Assistant Event

{
  type: 'assistant',
  message: {
    content: Array<TextContent | ToolUseContent>,
    usage: { input_tokens, output_tokens },
    // ...
  }
}

Result Event

{
  type: 'result',
  subtype: 'success' | 'error',
  result: string,
  duration_ms: number,
  total_cost_usd: number,
  // ...
}

기술 μŠ€νƒ

  • Electron: λ°μŠ€ν¬ν†± μ•± ν”„λ ˆμž„μ›Œν¬
  • React 19: UI 라이브러리
  • TypeScript: νƒ€μž… μ•ˆμ •μ„±
  • Vite: λΉŒλ“œ 도ꡬ
  • Node.js child_process: Claude CLI μ‹€ν–‰

ν”„λ‘œμ νŠΈ ꡬ쑰

claude-code-spec/
β”œβ”€β”€ packages/
β”‚   └── code-api/             # πŸ“¦ Claude CLI ν΄λΌμ΄μ–ΈνŠΈ 라이브러리
β”‚       β”œβ”€β”€ src/
β”‚       β”‚   β”œβ”€β”€ client/       # ClaudeClient
β”‚       β”‚   β”œβ”€β”€ parser/       # StreamParser, types
β”‚       β”‚   β”œβ”€β”€ process/      # ProcessManager
β”‚       β”‚   β”œβ”€β”€ session/      # SessionManager
β”‚       β”‚   β”œβ”€β”€ query/        # ClaudeQueryAPI
β”‚       β”‚   β”œβ”€β”€ schema/       # Schema builders (Zod, JSON)
β”‚       β”‚   β”œβ”€β”€ errors/       # Error classes
β”‚       β”‚   └── index.ts      # Public API
β”‚       β”œβ”€β”€ examples/         # μ‚¬μš© 예제
β”‚       β”œβ”€β”€ tests/            # ν…ŒμŠ€νŠΈ
β”‚       └── dist/             # λΉŒλ“œ 좜λ ₯ (CJS/ESM/DTS)
β”‚
β”œβ”€β”€ src/                      # πŸ–₯️ GUI μ•± (Electron + React)
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ taskParser.ts     # Task λ§ˆν¬λ‹€μš΄ νŒŒμ‹±
β”‚   β”‚   β”œβ”€β”€ agentParser.ts    # Agent μ •μ˜ νŒŒμ‹±
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”œβ”€β”€ appSettings.ts    # μ•± μ„€μ • 관리
β”‚   β”‚   β”œβ”€β”€ AppLogger.ts      # λ‘œκΉ…
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ ipc/
β”‚   β”‚   β”œβ”€β”€ IPCRouter.ts      # IPC λΌμš°νŒ…
β”‚   β”‚   └── handlers/         # IPC ν•Έλ“€λŸ¬
β”‚   β”‚       β”œβ”€β”€ claudeHandlers.ts
β”‚   β”‚       β”œβ”€β”€ taskHandlers.ts
β”‚   β”‚       └── ...
β”‚   β”œβ”€β”€ preload/
β”‚   β”‚   └── apis/             # Preload API λͺ¨λ“ˆ
β”‚   β”‚       β”œβ”€β”€ claude.ts
β”‚   β”‚       β”œβ”€β”€ task.ts
β”‚   β”‚       └── ...
β”‚   β”œβ”€β”€ pages/                # React νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ ExecutionsPage.tsx
β”‚   β”‚   β”œβ”€β”€ TasksPage.tsx
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ components/           # React μ»΄ν¬λ„ŒνŠΈ
β”‚   β”œβ”€β”€ main.ts              # Electron Main Process
β”‚   β”œβ”€β”€ preload.ts           # IPC Bridge
β”‚   └── App.tsx              # React App
β”‚
β”œβ”€β”€ docs/                     # λ¬Έμ„œ
β”œβ”€β”€ package.json             # Workspace 루트
└── README.md                # 이 파일

Tasks κΈ°λŠ₯ - Executeλ₯Ό μœ„ν•œ μž‘μ—… λͺ…μ„Έ

λͺ©μ 

TasksλŠ” Claude CLI μ‹€ν–‰ μ‹œ ν•„μš”ν•œ μ˜μ‘΄μ„±, μ»¨ν…μŠ€νŠΈ, μž‘μ—… μ˜μ—­μ„ 사전에 μ •μ˜ν•˜μ—¬ 효율적인 Executeλ₯Ό κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€.

핡심 μ›Œν¬ν”Œλ‘œμš°

1. Task μ •μ˜ (μ˜μ‘΄μ„± 뢄석)
   β”œβ”€ References: ν•„μš”ν•œ λͺ¨λ“  파일 λͺ…μ‹œ
   β”œβ”€ Area: μž‘μ—… λ²”μœ„ μ œν•œ (μ»¨ν…μŠ€νŠΈ 차단)
   └─ Success Criteria: 검증 κ°€λŠ₯ν•œ μ™„λ£Œ 쑰건

2. Execute μ‹€ν–‰
   β”œβ”€ Task 선택
   β”œβ”€ μžλ™ μ»¨ν…μŠ€νŠΈ ꡬ성 (References 기반)
   β”œβ”€ λ²”μœ„ μ œν•œ (Area 기반)
   └─ Claude CLI μ‹€ν–‰

3. κ²°κ³Ό 검증
   └─ Success Criteria 확인

Task λ§ˆν¬λ‹€μš΄ ν˜•μ‹

---
id: task-001
title: μ‚¬μš©μž 인증 API κ΅¬ν˜„
area: src/auth                  # μ»¨ν…μŠ€νŠΈ μ œν•œ λ²”μœ„
assigned_agent: claude-sonnet-4
reviewer: claude-opus-4
status: in_progress
---

## References
# Execute μ‹œ μžλ™μœΌλ‘œ μ»¨ν…μŠ€νŠΈμ— 포함됨
- /docs/api-spec.md
- /src/types/user.ts
- /src/types/auth.ts
- /src/utils/jwt.ts
- /tests/auth.test.ts

## Success Criteria
- [ ] JWT 토큰 생성 및 검증 κ΅¬ν˜„
- [ ] λ‹¨μœ„ ν…ŒμŠ€νŠΈ 컀버리지 85% 이상
- [ ] API 응닡 μ‹œκ°„ < 200ms

## Description
μž‘μ—… 상세 μ„€λͺ… 및 κ΅¬ν˜„ μš”κ΅¬μ‚¬ν•­...

μ£Όμš” 이점

ν•­λͺ© 일반 Execute Task 기반 Execute
μ»¨ν…μŠ€νŠΈ μˆ˜λ™ μ§€μ • ν•„μš” μžλ™ ꡬ성 (References)
μž‘μ—… λ²”μœ„ 뢈λͺ…ν™• Area둜 λͺ…ν™•νžˆ μ œν•œ
μ˜μ‘΄μ„± 맀번 νŒŒμ•… 사전 뢄석됨
μž¬μ‹€ν–‰ 반볡 μ„€μ • Task μž¬μ‚¬μš©
검증 μˆ˜λ™ 확인 Success Criteria μžλ™

μ»¨ν…μŠ€νŠΈ μ΅œμ ν™”

Area μ„€μ •μœΌλ‘œ λΆˆν•„μš”ν•œ 파일 차단:

area: src/auth  # src/auth μ™ΈλΆ€ 파일 μžλ™ 차단

효과:

  • 토큰 μ ˆμ•½ (ν•„μš”ν•œ 파일만 λ‘œλ“œ)
  • λΉ λ₯Έ μ‹€ν–‰ (μ»¨ν…μŠ€νŠΈ 크기 κ°μ†Œ)
  • μ‹€μˆ˜ λ°©μ§€ (μž‘μ—… λ²”μœ„ λͺ…ν™•ν™”)

개발 κ°€μ΄λ“œ

개발 λͺ¨λ“œ μ‹€ν–‰

# μ˜μ‘΄μ„± μ„€μΉ˜
npm install

# 개발 λͺ¨λ“œ μ‹€ν–‰ (Vite dev server + Electron)
npm start

# 디버그 λͺ¨λ“œ μ‹€ν–‰ (DEBUG=true ν™˜κ²½λ³€μˆ˜)
npm run start:debug

npm startλŠ” Electron Forgeλ₯Ό 톡해 Vite dev server와 Electron ν”„λ‘œμ„ΈμŠ€λ₯Ό λ™μ‹œμ— μ‹œμž‘ν•©λ‹ˆλ‹€. Viteκ°€ HMR을 μ œκ³΅ν•˜λ―€λ‘œ React μ½”λ“œ μˆ˜μ • μ‹œ μžλ™μœΌλ‘œ λ°˜μ˜λ©λ‹ˆλ‹€.

λΉŒλ“œ 및 νŒ¨ν‚€μ§•

# macOS νŒ¨ν‚€μ§• (ν…ŒμŠ€νŠΈμš©)
npm run package:mac

# macOS 배포용 λΉŒλ“œ (DMG + ZIP)
npm run build:mac

# lint
npm run lint
npm run lint:fix

# ν…ŒμŠ€νŠΈ
npm test
npm run test:ui
npm run test:coverage

MCP μ„œλ²„ μ„€μ •

개발/뢄석 μ‹œ μš©λ„μ— λ§žλŠ” MCP 섀정을 μ„ νƒν•©λ‹ˆλ‹€:

μ„€μ • 파일 μš©λ„ 포함 μ„œλ²„
.claude/.mcp-dev.json 개발 serena + context7
.claude/.mcp-analysis.json 뢄석 serena + sequential-thinking
.claude/.mcp-e2e.json E2E ν…ŒμŠ€νŠΈ 전체
.claude/.mcp-ui.json UI 개발 UI κ΄€λ ¨
.claude/.mcp-empty.json μ΅œμ†Œ μ—†μŒ

CLIμ—μ„œ 직접 μ‚¬μš©:

claude --mcp-config .claude/.mcp-dev.json --strict-mcp-config -p "뢄석 μš”μ²­"

라이브러리 개발 (@context-action/code-api)

cd packages/code-api

# 라이브러리 λΉŒλ“œ
npm run build

# ν…ŒμŠ€νŠΈ μ‹€ν–‰
npm test

# 예제 μ‹€ν–‰
npm run example:query
npm run example:json

라이브러리λ₯Ό λ‹€λ₯Έ ν”„λ‘œμ νŠΈμ—μ„œ μ‚¬μš©

# npm link둜 둜컬 개발
cd packages/code-api
npm link

cd your-other-project
npm link @context-action/code-api
// λ‹€λ₯Έ ν”„λ‘œμ νŠΈμ—μ„œ μ‚¬μš©
import { ClaudeClient, ProcessManager } from '@context-action/code-api';

const client = new ClaudeClient({ ... });

λ ˆκ±°μ‹œ μ½”λ“œ 관리

src-old 디렉토리

src-old/λŠ” 이전 μ•„ν‚€ν…μ²˜μ˜ 전체 μ†ŒμŠ€μ½”λ“œλ₯Ό λ³΄κ΄€ν•˜λŠ” μ•„μΉ΄μ΄λΈŒ λ””λ ‰ν† λ¦¬μž…λ‹ˆλ‹€. λŒ€κ·œλͺ¨ λ¦¬νŒ©ν† λ§ κ³Όμ •μ—μ„œ κΈ°μ‘΄ μ½”λ“œλ₯Ό 참쑰용으둜 보쑴해둔 κ²ƒμœΌλ‘œ, λΉŒλ“œλ‚˜ μ‹€ν–‰μ—λŠ” ν¬ν•¨λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ¦¬νŒ©ν† λ§ μš”μ•½

κΈ°μ‘΄ μ•„ν‚€ν…μ²˜μ—μ„œ 제거된 λͺ¨λ“ˆ:

  • Agent/Task/Skill 관리: AgentLoader, TaskLifecycleManager, SkillRepositoryManager λ“±
  • LangGraph μ—”μ§„: LangGraphEngine, WorkflowEngine, κ·Έλž˜ν”„ μ‹œκ°ν™”
  • CentralDatabase: 쀑앙 λ°μ΄ν„°λ² μ΄μŠ€ 및 쿼리 μ‹œμŠ€ν…œ
  • μ „μš© νŽ˜μ΄μ§€: AgentsPage, TasksPage, SkillsPage, WorkflowPage, BookmarksPage λ“± ~20개 νŽ˜μ΄μ§€
  • 기타 μ„œλΉ„μŠ€: AppLogger, SessionAnalyzer, ExecutionQueue, AgentTracker λ“±

μƒˆλ‘œ μΆ”κ°€λœ λͺ¨λ“ˆ:

  • λ©€ν‹° CLI 지원: Claude/Codex/Gemini 톡합 (ToolContext, sessionProvider, MultiCliExecutionService)
  • Tool Registry: 도ꡬ 검색 및 인벀토리 (ToolRegistry, OptionInventoryManager)
  • μ„Έμ…˜ λΆ„λ₯˜κΈ°: 둜그 μ—”νŠΈλ¦¬ λΆ„λ₯˜ 및 λ Œλ”λ§ (sessionClassifier, ClassifiedLogEntry)
  • μ„Έμ…˜ ν”„λ‘œλ°”μ΄λ”: CLI별 μ„Έμ…˜ λ‘œλ” (claudeSessions, codexSessions, geminiSessions)

ν˜„μž¬ νŽ˜μ΄μ§€ ꡬ성 (8개)

νŽ˜μ΄μ§€ 파일 μ„€λͺ…
Execute ExecutePage.tsx CLI μ‹€ν–‰ 및 슀트리밍
Sessions SessionsPage.tsx μ„Έμ…˜ 둜그 쑰회 및 λΆ„λ₯˜ λ·°μ–΄
MCP Configs McpConfigsPage.tsx MCP μ„œλ²„ μ„€μ • 관리
Skills SkillsPage.tsx CLI 버전 확인/μ—…λ°μ΄νŠΈ, μ„€μΉ˜λœ μŠ€ν‚¬ ν™œμ„±ν™” 관리
Ref Hooks ReferenceHooksPage.tsx MoAI/Ralph hook 레퍼런슀 쑰회 및 미리보기
Ref Styles ReferenceOutputStylesPage.tsx MoAI/Ralph output style/theme 레퍼런슀 쑰회
Ref Skills ReferenceSkillsPage.tsx MoAI/Ralph SKILL.md 레퍼런슀 쑰회
Settings SettingsPage.tsx μ•± μ„€μ •

src-old μ°Έμ‘° μ‹œ μ£Όμ˜μ‚¬ν•­

  • src-old/의 μ½”λ“œλŠ” ν˜„μž¬ μ•„ν‚€ν…μ²˜μ™€ ν˜Έν™˜λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€
  • import 경둜, νƒ€μž… μ •μ˜, IPC 채널이 λͺ¨λ‘ λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆλ‹€
  • κΈ°λŠ₯ 볡원이 ν•„μš”ν•œ 경우 ν˜„μž¬ μ•„ν‚€ν…μ²˜μ— 맞게 μž¬μž‘μ„±ν•΄μ•Ό ν•©λ‹ˆλ‹€
  • λ¦¬νŒ©ν† λ§μ΄ μ™„λ£Œλ˜λ©΄ src-old/λŠ” μ‚­μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€

μ°Έκ³  λ¬Έμ„œ

ν”„λ‘œμ νŠΈ λ¬Έμ„œ

곡식 λ¬Έμ„œ

λΌμ΄μ„ μŠ€

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors