@su-record/vibe 2.6.51 → 2.6.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +37 -54
- package/agents/review/git-history-reviewer.md +1 -1
- package/commands/vibe.analyze.md +5 -5
- package/commands/vibe.reason.md +4 -4
- package/commands/vibe.review.md +7 -8
- package/commands/vibe.run.md +11 -14
- package/commands/vibe.spec.md +7 -12
- package/commands/vibe.spec.review.md +2 -5
- package/commands/vibe.trace.md +2 -2
- package/commands/vibe.utils.md +2 -5
- package/commands/vibe.verify.md +4 -4
- package/commands/vibe.voice.md +2 -5
- package/dist/cli/auth.d.ts +2 -6
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +9 -33
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/commands/info.js +1 -1
- package/dist/cli/commands/slack.d.ts +1 -2
- package/dist/cli/commands/slack.d.ts.map +1 -1
- package/dist/cli/commands/slack.js +17 -27
- package/dist/cli/commands/slack.js.map +1 -1
- package/dist/cli/commands/telegram.d.ts +2 -0
- package/dist/cli/commands/telegram.d.ts.map +1 -1
- package/dist/cli/commands/telegram.js +24 -48
- package/dist/cli/commands/telegram.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +47 -41
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/llm/config.d.ts +4 -3
- package/dist/cli/llm/config.d.ts.map +1 -1
- package/dist/cli/llm/config.js +33 -37
- package/dist/cli/llm/config.js.map +1 -1
- package/dist/cli/llm/gemini-commands.d.ts.map +1 -1
- package/dist/cli/llm/gemini-commands.js +43 -24
- package/dist/cli/llm/gemini-commands.js.map +1 -1
- package/dist/cli/llm/gpt-commands.d.ts +1 -0
- package/dist/cli/llm/gpt-commands.d.ts.map +1 -1
- package/dist/cli/llm/gpt-commands.js +50 -37
- package/dist/cli/llm/gpt-commands.js.map +1 -1
- package/dist/cli/postinstall/constants.js +1 -1
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/dist/cli/postinstall/inline-skills.js +1 -1
- package/dist/cli/postinstall/main.d.ts.map +1 -1
- package/dist/cli/postinstall/main.js +9 -1
- package/dist/cli/postinstall/main.js.map +1 -1
- package/dist/cli/setup/GlobalInstaller.js +4 -4
- package/dist/cli/setup/ProjectSetup.js +3 -3
- package/dist/cli/setup/ProjectSetup.js.map +1 -1
- package/dist/cli/setup/index.d.ts.map +1 -1
- package/dist/cli/setup/index.js +0 -1
- package/dist/cli/setup/index.js.map +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +0 -1
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/types.d.ts +59 -2
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/infra/lib/MemoryManager.d.ts.map +1 -1
- package/dist/infra/lib/MemoryManager.js +0 -2
- package/dist/infra/lib/MemoryManager.js.map +1 -1
- package/dist/infra/lib/autonomy/AutonomyConfig.d.ts +3 -3
- package/dist/infra/lib/config/GlobalConfigManager.d.ts +29 -0
- package/dist/infra/lib/config/GlobalConfigManager.d.ts.map +1 -0
- package/dist/infra/lib/config/GlobalConfigManager.js +370 -0
- package/dist/infra/lib/config/GlobalConfigManager.js.map +1 -0
- package/dist/infra/lib/embedding/EmbeddingProvider.d.ts.map +1 -1
- package/dist/infra/lib/embedding/EmbeddingProvider.js +3 -2
- package/dist/infra/lib/embedding/EmbeddingProvider.js.map +1 -1
- package/dist/infra/lib/gemini/auth.d.ts +1 -1
- package/dist/infra/lib/gemini/auth.d.ts.map +1 -1
- package/dist/infra/lib/gemini/auth.js +21 -19
- package/dist/infra/lib/gemini/auth.js.map +1 -1
- package/dist/infra/lib/gemini/chat.d.ts.map +1 -1
- package/dist/infra/lib/gemini/chat.js +5 -4
- package/dist/infra/lib/gemini/chat.js.map +1 -1
- package/dist/infra/lib/gpt/auth.d.ts.map +1 -1
- package/dist/infra/lib/gpt/auth.js +6 -18
- package/dist/infra/lib/gpt/auth.js.map +1 -1
- package/dist/infra/lib/gpt/chat.d.ts.map +1 -1
- package/dist/infra/lib/gpt/chat.js +12 -5
- package/dist/infra/lib/gpt/chat.js.map +1 -1
- package/dist/infra/lib/gpt/oauth.d.ts.map +1 -1
- package/dist/infra/lib/gpt/oauth.js +3 -2
- package/dist/infra/lib/gpt/oauth.js.map +1 -1
- package/dist/infra/lib/llm/auth/ConfigManager.d.ts +4 -1
- package/dist/infra/lib/llm/auth/ConfigManager.d.ts.map +1 -1
- package/dist/infra/lib/llm/auth/ConfigManager.js +6 -6
- package/dist/infra/lib/llm/auth/ConfigManager.js.map +1 -1
- package/dist/infra/orchestrator/AgentExecutor.d.ts.map +1 -1
- package/dist/infra/orchestrator/AgentExecutor.js +2 -1
- package/dist/infra/orchestrator/AgentExecutor.js.map +1 -1
- package/dist/infra/orchestrator/AgentManager.d.ts.map +1 -1
- package/dist/infra/orchestrator/AgentManager.js +2 -1
- package/dist/infra/orchestrator/AgentManager.js.map +1 -1
- package/dist/infra/orchestrator/BackgroundManager.d.ts.map +1 -1
- package/dist/infra/orchestrator/BackgroundManager.js +2 -1
- package/dist/infra/orchestrator/BackgroundManager.js.map +1 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.d.ts.map +1 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.js +2 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.js.map +1 -1
- package/dist/infra/orchestrator/parallelResearch.d.ts.map +1 -1
- package/dist/infra/orchestrator/parallelResearch.js +2 -1
- package/dist/infra/orchestrator/parallelResearch.js.map +1 -1
- package/dist/infra/types/tool.js +1 -1
- package/dist/infra/types/tool.js.map +1 -1
- package/dist/tools/evolution/dashboardTools.js +1 -1
- package/dist/tools/evolution/dashboardTools.js.map +1 -1
- package/dist/tools/evolution/index.js +2 -2
- package/dist/tools/evolution/index.js.map +1 -1
- package/dist/tools/evolution/insightTools.js +1 -1
- package/dist/tools/evolution/insightTools.js.map +1 -1
- package/dist/tools/index.js +1 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/interaction/askUser.d.ts +0 -2
- package/dist/tools/interaction/askUser.d.ts.map +1 -1
- package/dist/tools/interaction/askUser.js +0 -2
- package/dist/tools/interaction/askUser.js.map +1 -1
- package/dist/tools/interaction/index.d.ts +0 -2
- package/dist/tools/interaction/index.d.ts.map +1 -1
- package/dist/tools/interaction/index.js +0 -2
- package/dist/tools/interaction/index.js.map +1 -1
- package/dist/tools/memory/autoSaveContext.js +1 -1
- package/dist/tools/memory/autoSaveContext.js.map +1 -1
- package/dist/tools/memory/createMemoryTimeline.js +1 -1
- package/dist/tools/memory/createMemoryTimeline.js.map +1 -1
- package/dist/tools/memory/getMemoryGraph.js +1 -1
- package/dist/tools/memory/getMemoryGraph.js.map +1 -1
- package/dist/tools/memory/getSessionContext.js +1 -1
- package/dist/tools/memory/getSessionContext.js.map +1 -1
- package/dist/tools/memory/index.js +1 -1
- package/dist/tools/memory/index.js.map +1 -1
- package/dist/tools/memory/linkMemories.js +1 -1
- package/dist/tools/memory/linkMemories.js.map +1 -1
- package/dist/tools/memory/saveMemory.js +1 -1
- package/dist/tools/memory/saveMemory.js.map +1 -1
- package/dist/tools/memory/searchMemoriesAdvanced.js +1 -1
- package/dist/tools/memory/searchMemoriesAdvanced.js.map +1 -1
- package/dist/tools/memory/startSession.d.ts.map +1 -1
- package/dist/tools/memory/startSession.js +1 -2
- package/dist/tools/memory/startSession.js.map +1 -1
- package/dist/tools/semantic/analyzeDependencyGraph.js +1 -1
- package/dist/tools/semantic/analyzeDependencyGraph.js.map +1 -1
- package/dist/tools/semantic/findReferences.d.ts.map +1 -1
- package/dist/tools/semantic/findReferences.js +1 -2
- package/dist/tools/semantic/findReferences.js.map +1 -1
- package/dist/tools/semantic/findSymbol.d.ts.map +1 -1
- package/dist/tools/semantic/findSymbol.js +1 -2
- package/dist/tools/semantic/findSymbol.js.map +1 -1
- package/hooks/hooks.json +14 -14
- package/hooks/scripts/keyword-detector.js +1 -1
- package/hooks/scripts/llm-orchestrate.js +3 -2
- package/hooks/scripts/post-tool-verify.js +1 -1
- package/hooks/scripts/pre-tool-guard.js +1 -1
- package/hooks/scripts/skill-injector.js +1 -1
- package/hooks/scripts/stop-notify.js +5 -3
- package/hooks/scripts/utils.js +23 -6
- package/languages/python-fastapi.md +1 -1
- package/package.json +2 -2
- package/skills/brand-assets/SKILL.md +1 -1
- package/skills/core-capabilities/SKILL.md +3 -3
- package/skills/parallel-research/SKILL.md +1 -1
- package/.env +0 -62
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
import fs from 'fs';
|
|
12
12
|
import path from 'path';
|
|
13
13
|
import os from 'os';
|
|
14
|
-
import {
|
|
14
|
+
import { VIBE_PATH, PROJECT_DIR } from './utils.js';
|
|
15
15
|
import { checkBinaryExists, checkPlatform, getInstallHint } from './skill-requirements.js';
|
|
16
16
|
|
|
17
17
|
// Skill storage locations
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
import fs from 'fs';
|
|
25
25
|
import path from 'path';
|
|
26
|
-
import { PROJECT_DIR,
|
|
26
|
+
import { PROJECT_DIR, VIBE_PATH, readVibeConfig } from './utils.js';
|
|
27
27
|
|
|
28
28
|
// Read hook input from stdin
|
|
29
29
|
let input = '';
|
|
@@ -63,8 +63,10 @@ async function sendDiscord(message, summary) {
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
async function sendTelegram(message, summary) {
|
|
66
|
-
const
|
|
67
|
-
const
|
|
66
|
+
const vibeConfig = readVibeConfig();
|
|
67
|
+
const botToken = vibeConfig.channels?.telegram?.botToken || process.env.TELEGRAM_BOT_TOKEN;
|
|
68
|
+
const chatIds = vibeConfig.channels?.telegram?.allowedChatIds || [];
|
|
69
|
+
const chatId = chatIds[0] || process.env.TELEGRAM_CHAT_ID;
|
|
68
70
|
|
|
69
71
|
if (!botToken || !chatId) return { sent: false, reason: 'no token or chat_id' };
|
|
70
72
|
|
package/hooks/scripts/utils.js
CHANGED
|
@@ -11,14 +11,31 @@ import os from 'os';
|
|
|
11
11
|
// 플랫폼 감지
|
|
12
12
|
const IS_WINDOWS = os.platform() === 'win32';
|
|
13
13
|
|
|
14
|
-
// 스크립트 위치에서
|
|
15
|
-
// hooks/scripts/utils.js → hooks →
|
|
14
|
+
// 스크립트 위치에서 VIBE_PATH 자동 감지
|
|
15
|
+
// hooks/scripts/utils.js → hooks → VIBE_PATH
|
|
16
16
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
17
|
-
const
|
|
17
|
+
const DETECTED_VIBE_PATH = path.resolve(__dirname, '..', '..');
|
|
18
18
|
|
|
19
|
-
export const
|
|
19
|
+
export const VIBE_PATH = process.env.VIBE_PATH || DETECTED_VIBE_PATH;
|
|
20
20
|
export const PROJECT_DIR = process.env.CLAUDE_PROJECT_DIR || '.';
|
|
21
21
|
|
|
22
|
+
// ~/.vibe/ 디렉토리 경로
|
|
23
|
+
const VIBE_HOME_DIR = path.join(os.homedir(), '.vibe');
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* ~/.vibe/config.json 읽기
|
|
27
|
+
* @returns {object} 파싱된 config 또는 빈 객체
|
|
28
|
+
*/
|
|
29
|
+
export function readVibeConfig() {
|
|
30
|
+
const configPath = path.join(VIBE_HOME_DIR, 'config.json');
|
|
31
|
+
try {
|
|
32
|
+
if (fs.existsSync(configPath)) {
|
|
33
|
+
return JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
34
|
+
}
|
|
35
|
+
} catch { /* ignore */ }
|
|
36
|
+
return {};
|
|
37
|
+
}
|
|
38
|
+
|
|
22
39
|
/**
|
|
23
40
|
* 파일 시스템 경로를 file:// URL로 변환 (크로스 플랫폼)
|
|
24
41
|
* - macOS/Linux: /Users/grove/... → file:///Users/grove/...
|
|
@@ -65,7 +82,7 @@ function getGlobalNpmPath() {
|
|
|
65
82
|
* 우선순위: 로컬 빌드 → 전역 npm
|
|
66
83
|
*/
|
|
67
84
|
export function getToolsBaseUrl() {
|
|
68
|
-
const localDist = path.join(
|
|
85
|
+
const localDist = path.join(VIBE_PATH, 'dist', 'tools');
|
|
69
86
|
const globalPackage = path.join(getGlobalNpmPath(), '@su-record', 'core', 'dist', 'tools');
|
|
70
87
|
|
|
71
88
|
// 1. 로컬 빌드된 파일 확인 (개발 환경)
|
|
@@ -83,7 +100,7 @@ export function getToolsBaseUrl() {
|
|
|
83
100
|
* 우선순위: 로컬 빌드 → 전역 npm
|
|
84
101
|
*/
|
|
85
102
|
export function getLibBaseUrl() {
|
|
86
|
-
const localDist = path.join(
|
|
103
|
+
const localDist = path.join(VIBE_PATH, 'dist', 'infra', 'lib');
|
|
87
104
|
const globalPackage = path.join(getGlobalNpmPath(), '@su-record', 'core', 'dist', 'infra', 'lib');
|
|
88
105
|
|
|
89
106
|
// 1. 로컬 빌드된 파일 확인 (개발 환경)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@su-record/vibe",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.53",
|
|
4
4
|
"description": "Personalized AI agent for Claude Code — 46 agents, 41+ tools, multi-LLM orchestration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/cli/index.js",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"vibe": "dist/cli/index.js"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
|
-
"build": "tsc &&
|
|
44
|
+
"build": "tsc && chmod +x dist/cli/index.js",
|
|
45
45
|
"dev": "tsc --watch",
|
|
46
46
|
"test": "vitest run",
|
|
47
47
|
"test:watch": "vitest",
|
|
@@ -102,7 +102,7 @@ Requirements:
|
|
|
102
102
|
## Manual Usage
|
|
103
103
|
|
|
104
104
|
```bash
|
|
105
|
-
#
|
|
105
|
+
# [LLM_SCRIPT] = {{CORE_PATH}}/hooks/scripts/llm-orchestrate.js
|
|
106
106
|
# Generate via llm-orchestrate (when Gemini configured)
|
|
107
107
|
node "[LLM_SCRIPT]" gemini image "App icon for MyApp, primary color #2F6BFF, square format 1:1, simple recognizable design, works well at small sizes, no text or letters, solid or gradient background, modern minimalist" --output "./public/app-icon.png"
|
|
108
108
|
```
|
|
@@ -37,7 +37,7 @@ Complete guide to core's scenario-driven development framework.
|
|
|
37
37
|
### Semantic Code Analysis
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
node -e "import('{{
|
|
40
|
+
node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.TOOL_NAME({...}))"
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
| Tool | Purpose |
|
|
@@ -62,7 +62,7 @@ node -e "import('{{CORE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index
|
|
|
62
62
|
### Background Agents
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
|
-
node -e "import('{{
|
|
65
|
+
node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/infra/orchestrator/index.js').then(o =>
|
|
66
66
|
o.launchBackgroundAgent({ prompt: '...', agentName: '...' })
|
|
67
67
|
)"
|
|
68
68
|
```
|
|
@@ -133,7 +133,7 @@ Add `ultrawork` or `ulw` for maximum performance:
|
|
|
133
133
|
├── languages/ # Language guides
|
|
134
134
|
└── templates/ # Templates
|
|
135
135
|
|
|
136
|
-
# Global (%APPDATA%/
|
|
136
|
+
# Global (%APPDATA%/vibe/ or ~/.config/vibe/)
|
|
137
137
|
core/
|
|
138
138
|
├── hooks/scripts/ # Hook scripts (llm-orchestrate.js)
|
|
139
139
|
├── gpt.json # GPT credentials
|
|
@@ -32,7 +32,7 @@ Parallel research patterns for solving complex problems.
|
|
|
32
32
|
### Method 1: Direct Orchestrator Call
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
|
-
node -e "import('{{
|
|
35
|
+
node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/infra/orchestrator/index.js').then(o =>
|
|
36
36
|
o.research('passkey authentication', ['React', 'Supabase'])
|
|
37
37
|
.then(r => console.log(r.content[0].text))
|
|
38
38
|
)"
|
package/.env
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
# ─── Telegram ────────────────────────────────────────────────────────
|
|
2
|
-
TELEGRAM_BOT_TOKEN=8351914914:AAEwjQHYG7hZA1_xVPpHFTI5uS4t9qF3Tm8
|
|
3
|
-
TELEGRAM_ALLOWED_CHAT_IDS=8382889321
|
|
4
|
-
|
|
5
|
-
# ─── Discord ─────────────────────────────────────────────────────────
|
|
6
|
-
DISCORD_BOT_TOKEN=
|
|
7
|
-
DISCORD_ALLOWED_GUILD_IDS=
|
|
8
|
-
DISCORD_ALLOWED_CHANNEL_IDS=
|
|
9
|
-
|
|
10
|
-
# ─── Slack ───────────────────────────────────────────────────────────
|
|
11
|
-
SLACK_BOT_TOKEN=
|
|
12
|
-
SLACK_APP_TOKEN=
|
|
13
|
-
SLACK_ALLOWED_CHANNELS=
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
# ─── Gemini (API key + Search grounding) ────────────────────────────
|
|
17
|
-
GEMINI_API_KEY=AIzaSyA6Xo4uTG-tqAs07CocKhEzs7LLixL1P9o
|
|
18
|
-
|
|
19
|
-
# ─── OpenAI ──────────────────────────────────────────────────────────
|
|
20
|
-
OPENAI_API_KEY=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
|
|
21
|
-
|
|
22
|
-
# ─── GPT OAuth (OpenAI Codex CLI PKCE) ──────────────────────────────
|
|
23
|
-
# client_id: app_EMoamEEZ73f0CkXaXp7hrann
|
|
24
|
-
# authorize: https://auth.openai.com/oauth/authorize
|
|
25
|
-
# token: https://auth.openai.com/oauth/token
|
|
26
|
-
# redirect: http://localhost:1455/auth/callback
|
|
27
|
-
# scope: openid profile email offline_access
|
|
28
|
-
GPT_OAUTH_REFRESH_TOKEN=rt_T4NTlgJtgqUpw5qpx2xvGwJ7_niAYQBEChutVs2-Vb0.zfksqi5wjRv-8Ww6QtUOCJGabA0aviDS2ggyRVAnKmI
|
|
29
|
-
|
|
30
|
-
# ─── Gemini OAuth (via Gemini CLI — @google/gemini-cli) ──────────────
|
|
31
|
-
# credentials: ~/.gemini/oauth_creds.json (auto-detected)
|
|
32
|
-
# client_id: 681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com
|
|
33
|
-
# auth order: gemini-cli → apikey
|
|
34
|
-
GEMINI_OAUTH_REFRESH_TOKEN=1//0eTG9YDGVchVOCgYIARAAGA4SNwF-L9IryFIeIUvne7lpgRK8QFUgRXuvL55MBHMzDnxsXDbltWwy4H38TMY6zVKcQM-3qgILcb4
|
|
35
|
-
|
|
36
|
-
# ─── Model Overrides (optional - uses hardcoded defaults if not set) ─
|
|
37
|
-
# Claude (역할별 — Claude Code 네이티브)
|
|
38
|
-
CLAUDE_ARCHITECTURE_MODEL=claude-opus-4-6 # 아키텍처, 복잡한 추론
|
|
39
|
-
CLAUDE_RESEARCH_MODEL=claude-haiku-4-5 # 리서치, 탐색 (빠름)
|
|
40
|
-
CLAUDE_REVIEW_MODEL=claude-haiku-4-5 # 리뷰 (빠름)
|
|
41
|
-
CLAUDE_BACKGROUND_MODEL=claude-sonnet-4-5 # 구현, 백그라운드 작업
|
|
42
|
-
|
|
43
|
-
# GPT (Chat/Reasoning — OAuth: gpt-5.3-codex, OAuth Pro: codex-spark)
|
|
44
|
-
GPT_MODEL=gpt-5.2
|
|
45
|
-
# Plus Plan Use: gpt-5.3-codex
|
|
46
|
-
# Pro Plan Use: gpt-5.3-codex-spark
|
|
47
|
-
|
|
48
|
-
# Gemini (API Key + Gemini CLI 공용)
|
|
49
|
-
GEMINI_MODEL=gemini-3-pro-preview
|
|
50
|
-
GEMINI_FLASH_MODEL=gemini-3-flash-preview
|
|
51
|
-
GEMINI_SEARCH_MODEL=gemini-3-flash-preview
|
|
52
|
-
|
|
53
|
-
GEMINI_OAUTH_MODEL=gemini-3-pro-high
|
|
54
|
-
GEMINI_OAUTH_FLASH_MODEL=gemini-3-flash
|
|
55
|
-
|
|
56
|
-
# Embedding (API Key 전용 — OAuth 미지원)
|
|
57
|
-
EMBEDDING_MODEL=text-embedding-3-large
|
|
58
|
-
GEMINI_EMBEDDING_MODEL=text-embedding-004
|
|
59
|
-
|
|
60
|
-
# ─── Workspace ───────────────────────────────────────────────────────
|
|
61
|
-
WORKSPACE_DIR=C:/Users/endba/WorkSpace
|
|
62
|
-
|