Files
homeclaw/.smallclaw/config.json
T
kimandClaude Sonnet 4.6 04e8f8ebe8 v3.0.9: 미디 에디터 대폭 개선 — 솔로/뮤트/CC/매핑 수정
미디 에디터:
- 솔로/뮤트 실시간 반영: writeMidi 기반으로 buildSpessaMidi 재설계, 토글 시 sfReloadSong()으로 즉시 시퀀서 리로드
- MIDI 파서 CC 이벤트 보존: 기존에 모든 CC(볼륨·팬·expression·리버브 등) 버리던 것 수정, ccs[] 배열로 저장·재출력
- 멀티채널 트랙 분리: 포맷0 등 한 트랙에 채널 혼합 시 채널별로 자동 분리, 드럼 채널 보호
- 노트에 ch 필드 추가: 파서에서 각 노트에 실제 MIDI 채널 저장, writeMidi에서 활용
- 롤에디터 기본 8마디 보기, 마스터 FX 패널 추가
- 기타프로 마스터 볼륨 200%까지 확장

기타프로 MIDI 포트 매핑:
- sendMidiProgramChanges 순서 수정: PC→Bank 오류를 Bank→PC로 교정
- 세컨더리 채널(팜뮤트·하모닉스) 초기화 추가
- CC7 볼륨·CC10 팬 초기값 전송 추가

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 17:44:32 +09:00

313 lines
7.3 KiB
JSON

{
"version": "1.0.1",
"gateway": {
"port": 18789,
"host": "0.0.0.0",
"auth": {
"enabled": true,
"multiUser": true
}
},
"ollama": {
"endpoint": "http://localhost:11434",
"timeout": 120,
"concurrency": {
"llm_workers": 1,
"tool_workers": 3
}
},
"llm": {
"provider": "ollama",
"providers": {
"ollama": {
"endpoint": "http://localhost:11434",
"model": "gemini-3-flash-preview:cloud"
},
"lm_studio": {
"endpoint": "http://host.docker.internal:1234",
"model": ""
},
"llama_cpp": {
"endpoint": "http://host.docker.internal:8080",
"model": ""
},
"openai": {
"api_key": "",
"model": "gpt-4o"
},
"openai_codex": {
"model": "gpt-5.3-codex"
},
"anthropic": {
"api_key": "",
"model": "claude-sonnet-4-6"
}
}
},
"models": {
"primary": "gemini-3-flash-preview:cloud",
"roles": {
"manager": "gemini-3-flash-preview:cloud",
"executor": "gemini-3-flash-preview:cloud",
"verifier": "gemini-3-flash-preview:cloud",
"background_task": ""
}
},
"tools": {
"enabled": [
"shell",
"read",
"write",
"edit",
"search"
],
"permissions": {
"shell": {
"workspace_only": true,
"confirm_destructive": true,
"blocked_patterns": [
"rm -rf /",
"del C:\\Windows",
"format"
]
},
"files": {
"allowed_paths": [],
"blocked_paths": [
"/etc",
"/System",
"C:\\Windows",
"/usr",
"/bin"
]
},
"browser": {
"profile": "automation",
"headless": false
}
}
},
"skills": {
"directory": "/home/kim/homeclaw/.smallclaw/skills",
"registries": [
"https://clawhub.ai"
],
"auto_update": false
},
"memory": {
"provider": "chromadb",
"path": "/home/kim/homeclaw/.smallclaw/memory",
"embedding_model": "nomic-embed-text"
},
"memory_options": {
"auto_confirm": true,
"audit": true,
"truncate_length": 1000
},
"ppt": {
"engine": "python",
"template": "business",
"skin": "cream",
"unsplash_key": "vault:ppt.unsplash_key",
"pexels_key": "vault:ppt.pexels_key",
"pixabay_key": "vault:ppt.pixabay_key"
},
"heartbeat": {
"enabled": true,
"interval_minutes": 30,
"workspace_file": "HEARTBEAT.md"
},
"workspace": {
"path": "/home/kim/homeclaw/.smallclaw/workspace",
"codeDir": "code"
},
"agents": [
{
"id": "pubmed_researcher",
"name": "PubMed Researcher",
"description": "논문 다건 검색·요약·전문 수집 자율 수행. pubmed_search, pubmed_fetch, pubmed_fulltext 도구 사용.",
"emoji": "🔬",
"maxSteps": 12,
"tools": {
"profile": "pubmed"
}
}
],
"session": {
"maxMessages": 2000,
"compactionThreshold": 0.7,
"memoryFlushThreshold": 0.75,
"historyTurns": 8
},
"channels": {
"telegram": {
"enabled": true,
"botToken": "",
"allowedUserIds": [
8540415328
],
"streamMode": "full",
"userMap": {},
"voiceEnabled": false
},
"discord": {
"enabled": false,
"botToken": "",
"applicationId": "",
"guildId": "",
"channelId": "",
"webhookUrl": ""
},
"whatsapp": {
"enabled": false,
"accessToken": "",
"phoneNumberId": "",
"businessAccountId": "",
"verifyToken": "",
"webhookSecret": "",
"testRecipient": ""
}
},
"orchestration": {
"enabled": false,
"secondary": {
"provider": "ollama",
"model": "mistral-large-3:675b-cloud"
},
"triggers": {
"consecutive_failures": 2,
"stagnation_rounds": 3,
"loop_detection": true,
"risky_files_threshold": 6,
"risky_tool_ops_threshold": 220,
"no_progress_seconds": 90
},
"preflight": {
"mode": "off",
"allow_secondary_chat": false
},
"limits": {
"assist_cooldown_rounds": 3,
"max_assists_per_turn": 3,
"max_assists_per_session": 18,
"telemetry_history_limit": 100
},
"browser": {
"max_advisor_calls_per_turn": 5,
"max_collected_items": 80,
"max_forced_retries": 0,
"min_feed_items_before_answer": 12
},
"file_ops": {
"enabled": true,
"primary_create_max_lines": 80,
"primary_create_max_chars": 3500,
"primary_edit_max_lines": 12,
"primary_edit_max_chars": 800,
"primary_edit_max_files": 1,
"verify_create_always": true,
"verify_large_payload_lines": 25,
"verify_large_payload_chars": 1200,
"watchdog_no_progress_cycles": 3,
"checkpointing_enabled": true
},
"preempt": {
"enabled": false,
"stall_threshold_seconds": 45,
"max_preempts_per_turn": 1,
"max_preempts_per_session": 3,
"restart_mode": "detached_hidden"
}
},
"hooks": {
"enabled": false,
"token": "",
"path": "/hooks"
},
"voice": {
"enabled": false,
"stt": {
"provider": "whisper_cpp",
"model": "ggml-base.bin",
"language": "ko"
},
"tts": {
"provider": "edge_tts",
"model": "ko_KR-kss-medium",
"voice": "ko-KR-SunHiNeural"
}
},
"telegram": {
"enabled": true,
"botToken": "",
"allowedUserIds": [
8540415328
],
"streamMode": "full",
"userMap": {},
"voiceEnabled": false
},
"search": {
"preferred_provider": "searxng",
"search_rigor": "verified",
"google_cx": "",
"ollama_model": "",
"searxng_url": "http://localhost:8888"
},
"agent_policy": {
"force_web_for_fresh": true,
"memory_fallback_on_search_failure": true,
"auto_store_web_facts": true,
"natural_language_tool_router": true,
"retrieval_mode": "standard"
},
"openweather": {
"api_key": "vault:openweather.api_key"
},
"pubmed": {
"api_key": "vault:pubmed.api_key"
},
"email": {
"accounts": [
{
"id": "applecherry",
"imap_host": "121.183.65.201",
"imap_port": 993,
"imap_tls": true,
"imap_reject_unauthorized": false,
"smtp_host": "121.183.65.201",
"smtp_port": 587,
"smtp_secure": false,
"smtp_reject_unauthorized": false,
"username": "kim@applecherry.net",
"password": "vault:email.accounts.applecherry.password"
},
{
"id": "evangel",
"imap_host": "mail.evangel.xyz",
"imap_port": 993,
"imap_tls": true,
"imap_reject_unauthorized": false,
"smtp_host": "mail.evangel.xyz",
"smtp_port": 587,
"smtp_secure": false,
"smtp_reject_unauthorized": false,
"username": "kim@evangel.xyz",
"password": "vault:email.accounts.evangel.password"
},
{
"id": "daum",
"imap_host": "imap.daum.net",
"imap_port": 993,
"imap_tls": true,
"imap_reject_unauthorized": true,
"smtp_host": "smtp.daum.net",
"smtp_port": 465,
"smtp_secure": true,
"smtp_reject_unauthorized": true,
"username": "kimsgms@hanmail.net",
"password": "vault:email.accounts.daum.password"
}
]
}
}