@su-record/vibe 2.16.3 → 2.16.4
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 +15 -0
- package/README.en.md +1 -1
- package/README.md +1 -1
- package/agents/architect-low.md +1 -1
- package/agents/architect-medium.md +1 -1
- package/agents/architect.md +1 -1
- package/agents/build-error-resolver.md +1 -1
- package/agents/compounder.md +4 -0
- package/agents/diagrammer.md +4 -0
- package/agents/docs/api-documenter.md +1 -1
- package/agents/docs/changelog-writer.md +1 -1
- package/agents/e2e-tester.md +4 -0
- package/agents/explorer-low.md +1 -1
- package/agents/explorer-medium.md +1 -1
- package/agents/explorer.md +2 -2
- package/agents/figma/figma-analyst.md +4 -0
- package/agents/figma/figma-architect.md +4 -0
- package/agents/figma/figma-auditor.md +4 -0
- package/agents/figma/figma-builder.md +4 -0
- package/agents/implementer-low.md +1 -1
- package/agents/implementer-medium.md +1 -1
- package/agents/implementer.md +2 -2
- package/agents/planning/requirements-analyst.md +1 -1
- package/agents/planning/ux-advisor.md +1 -1
- package/agents/qa/acceptance-tester.md +1 -1
- package/agents/qa/edge-case-finder.md +1 -1
- package/agents/refactor-cleaner.md +1 -1
- package/agents/research/best-practices.md +1 -1
- package/agents/research/codebase-patterns.md +1 -1
- package/agents/research/framework-docs.md +1 -1
- package/agents/research/security-advisory.md +1 -1
- package/agents/searcher.md +1 -1
- package/agents/simplifier.md +4 -0
- package/agents/teams/debug-team.md +4 -0
- package/agents/teams/dev-team.md +4 -0
- package/agents/teams/docs-team.md +4 -0
- package/agents/teams/figma-team.md +4 -0
- package/agents/teams/fullstack-team.md +4 -0
- package/agents/teams/lite-team.md +4 -0
- package/agents/teams/migration-team.md +4 -0
- package/agents/teams/refactor-team.md +4 -0
- package/agents/teams/research-team.md +4 -0
- package/agents/teams/review-debate-team.md +4 -0
- package/agents/teams/security-team.md +4 -0
- package/agents/tester.md +2 -2
- package/agents/ui/ui-a11y-auditor.md +1 -1
- package/agents/ui/ui-antipattern-detector.md +1 -1
- package/agents/ui/ui-dataviz-advisor.md +1 -1
- package/agents/ui/ui-design-system-gen.md +1 -1
- package/agents/ui/ui-industry-analyzer.md +1 -1
- package/agents/ui/ui-layout-architect.md +1 -1
- package/agents/ui/ui-stack-implementer.md +1 -1
- package/agents/ui/ux-compliance-reviewer.md +1 -1
- package/agents/ui-previewer.md +4 -0
- package/dist/__tests__/agent-model-sync.test.d.ts +2 -0
- package/dist/__tests__/agent-model-sync.test.d.ts.map +1 -0
- package/dist/__tests__/agent-model-sync.test.js +71 -0
- package/dist/__tests__/agent-model-sync.test.js.map +1 -0
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +8 -1
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +1 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +2 -0
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/llm.d.ts +11 -0
- package/dist/cli/commands/llm.d.ts.map +1 -0
- package/dist/cli/commands/llm.js +62 -0
- package/dist/cli/commands/llm.js.map +1 -0
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +35 -1
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +59 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/llm/config.d.ts.map +1 -1
- package/dist/cli/llm/config.js +7 -0
- package/dist/cli/llm/config.js.map +1 -1
- package/dist/cli/llm/index.d.ts +1 -0
- package/dist/cli/llm/index.d.ts.map +1 -1
- package/dist/cli/llm/index.js +1 -0
- package/dist/cli/llm/index.js.map +1 -1
- package/dist/cli/llm/model-refresh.d.ts +29 -0
- package/dist/cli/llm/model-refresh.d.ts.map +1 -0
- package/dist/cli/llm/model-refresh.js +139 -0
- package/dist/cli/llm/model-refresh.js.map +1 -0
- package/dist/cli/llm/zai-commands.d.ts +15 -0
- package/dist/cli/llm/zai-commands.d.ts.map +1 -0
- package/dist/cli/llm/zai-commands.js +64 -0
- package/dist/cli/llm/zai-commands.js.map +1 -0
- package/dist/cli/postinstall/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +1 -0
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/dist/cli/types.d.ts +15 -0
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/infra/lib/config/GlobalConfigManager.d.ts +2 -0
- package/dist/infra/lib/config/GlobalConfigManager.d.ts.map +1 -1
- package/dist/infra/lib/config/GlobalConfigManager.js +6 -0
- package/dist/infra/lib/config/GlobalConfigManager.js.map +1 -1
- package/dist/infra/lib/llm-availability.d.ts +4 -0
- package/dist/infra/lib/llm-availability.d.ts.map +1 -1
- package/dist/infra/lib/llm-availability.js +9 -1
- package/dist/infra/lib/llm-availability.js.map +1 -1
- package/dist/infra/lib/zai/client.d.ts +30 -0
- package/dist/infra/lib/zai/client.d.ts.map +1 -0
- package/dist/infra/lib/zai/client.js +124 -0
- package/dist/infra/lib/zai/client.js.map +1 -0
- package/dist/infra/lib/zai/index.d.ts +11 -0
- package/dist/infra/lib/zai/index.d.ts.map +1 -0
- package/dist/infra/lib/zai/index.js +10 -0
- package/dist/infra/lib/zai/index.js.map +1 -0
- package/dist/infra/lib/zai/orchestration.d.ts +15 -0
- package/dist/infra/lib/zai/orchestration.d.ts.map +1 -0
- package/dist/infra/lib/zai/orchestration.js +54 -0
- package/dist/infra/lib/zai/orchestration.js.map +1 -0
- package/dist/infra/lib/zai/types.d.ts +40 -0
- package/dist/infra/lib/zai/types.d.ts.map +1 -0
- package/dist/infra/lib/zai/types.js +5 -0
- package/dist/infra/lib/zai/types.js.map +1 -0
- package/dist/infra/orchestrator/SmartRouter.d.ts.map +1 -1
- package/dist/infra/orchestrator/SmartRouter.js +16 -34
- package/dist/infra/orchestrator/SmartRouter.js.map +1 -1
- package/dist/infra/orchestrator/index.d.ts +1 -0
- package/dist/infra/orchestrator/index.d.ts.map +1 -1
- package/dist/infra/orchestrator/index.js +11 -9
- package/dist/infra/orchestrator/index.js.map +1 -1
- package/dist/infra/orchestrator/types.d.ts +32 -9
- package/dist/infra/orchestrator/types.d.ts.map +1 -1
- package/dist/infra/orchestrator/types.js +68 -37
- package/dist/infra/orchestrator/types.js.map +1 -1
- package/dist/infra/orchestrator/types.test.d.ts +2 -0
- package/dist/infra/orchestrator/types.test.d.ts.map +1 -0
- package/dist/infra/orchestrator/types.test.js +57 -0
- package/dist/infra/orchestrator/types.test.js.map +1 -0
- package/hooks/scripts/llm-orchestrate.js +49 -0
- package/package.json +4 -2
- package/skills/create-prd/agents/edge-case-finder.md +4 -4
- package/skills/create-prd/agents/prioritizer.md +4 -4
- package/skills/create-prd/agents/requirements-writer.md +3 -3
- package/skills/create-prd/agents/researcher.md +3 -3
- package/skills/create-prd/agents/reviewer.md +3 -3
- package/skills/create-prd/orchestrator.md +2 -0
- package/skills/design-audit/orchestrator.md +2 -0
- package/skills/exec-plan/orchestrator.md +2 -0
- package/skills/parallel-research/orchestrator.md +2 -0
- package/skills/techdebt/orchestrator.md +2 -0
- package/skills/vibe.llm/SKILL.md +50 -0
- package/vibe/rules/orchestrator-contract.md +56 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ZAI (Z.ai / GLM) 클라이언트 — OpenAI 호환 chat completions
|
|
3
|
+
*
|
|
4
|
+
* 두 요금제를 지원한다:
|
|
5
|
+
* - coding : GLM Coding Plan (별도 키). Anthropic/Codex 호환 코딩 엔드포인트.
|
|
6
|
+
* - general : 일반 pay-as-you-go v4 엔드포인트.
|
|
7
|
+
*/
|
|
8
|
+
import type { ZaiPlan, ZaiModelInfo, ZaiChatOptions, ZaiChatResponse } from './types.js';
|
|
9
|
+
export declare const ZAI_BASE_GENERAL = "https://api.z.ai/api/paas/v4";
|
|
10
|
+
export declare const ZAI_BASE_CODING = "https://api.z.ai/api/coding/paas/v4";
|
|
11
|
+
export declare const ZAI_BASE_CODING_ANTHROPIC = "https://api.z.ai/api/anthropic";
|
|
12
|
+
/** 큐레이션된 알려진 모델 (list-models 미지원/무네트워크 시 fallback) */
|
|
13
|
+
export declare const ZAI_MODELS: Record<string, ZaiModelInfo>;
|
|
14
|
+
/** flagship(최고) 모델 id — UI 개발 등 최고 품질이 필요한 작업에 사용 (coding plan) */
|
|
15
|
+
export declare const ZAI_TOP_MODEL = "glm-5.2";
|
|
16
|
+
/** coding plan 기본 모델 */
|
|
17
|
+
export declare const DEFAULT_CODING_MODEL = "glm-5.2";
|
|
18
|
+
/** 일반 API 기본 모델 (일반 요금제는 현재 5.1 이 상한) */
|
|
19
|
+
export declare const DEFAULT_GENERAL_MODEL = "glm-5.1";
|
|
20
|
+
/** 하위 호환용 기본값 */
|
|
21
|
+
export declare const DEFAULT_MODEL = "glm-5.2";
|
|
22
|
+
export declare function resolveApiKey(plan: ZaiPlan): string | null;
|
|
23
|
+
export declare function baseUrlFor(plan: ZaiPlan): string;
|
|
24
|
+
/** 코딩플랜 또는 일반 키가 하나라도 있으면 사용 가능 */
|
|
25
|
+
export declare function isZaiConfigured(): boolean;
|
|
26
|
+
/** OpenAI 호환 chat completions */
|
|
27
|
+
export declare function chat(opts: ZaiChatOptions): Promise<ZaiChatResponse>;
|
|
28
|
+
/** live: 사용 가능한 모델 조회 (OpenAI 호환 GET /models). 실패 시 큐레이션 목록. */
|
|
29
|
+
export declare function fetchAvailableModels(plan?: ZaiPlan): Promise<ZaiModelInfo[]>;
|
|
30
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/infra/lib/zai/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGzF,eAAO,MAAM,gBAAgB,iCAAiC,CAAC;AAC/D,eAAO,MAAM,eAAe,wCAAwC,CAAC;AAIrE,eAAO,MAAM,yBAAyB,mCAAmC,CAAC;AAE1E,sDAAsD;AACtD,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAKnD,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,wBAAwB;AACxB,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,yCAAyC;AACzC,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAC/C,iBAAiB;AACjB,eAAO,MAAM,aAAa,YAAuB,CAAC;AAElD,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAG1D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAEhD;AAED,mCAAmC;AACnC,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAoBD,iCAAiC;AACjC,wBAAsB,IAAI,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAuCzE;AAED,gEAAgE;AAChE,wBAAsB,oBAAoB,CAAC,IAAI,GAAE,OAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAqB7F"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ZAI (Z.ai / GLM) 클라이언트 — OpenAI 호환 chat completions
|
|
3
|
+
*
|
|
4
|
+
* 두 요금제를 지원한다:
|
|
5
|
+
* - coding : GLM Coding Plan (별도 키). Anthropic/Codex 호환 코딩 엔드포인트.
|
|
6
|
+
* - general : 일반 pay-as-you-go v4 엔드포인트.
|
|
7
|
+
*/
|
|
8
|
+
import { getZaiApiKey, getZaiCodingApiKey, getModelOverride, } from '../config/GlobalConfigManager.js';
|
|
9
|
+
import { createTimeoutSignal, DEFAULT_LLM_TIMEOUT_MS } from '../llm/timeout.js';
|
|
10
|
+
// OpenAI 호환 엔드포인트 (POST {base}/chat/completions — base 에 /v1 을 붙이면 404)
|
|
11
|
+
export const ZAI_BASE_GENERAL = 'https://api.z.ai/api/paas/v4';
|
|
12
|
+
export const ZAI_BASE_CODING = 'https://api.z.ai/api/coding/paas/v4';
|
|
13
|
+
// 참고: GLM Coding Plan 은 Anthropic 호환 엔드포인트(Claude Code 용)도 제공한다.
|
|
14
|
+
// ANTHROPIC_BASE_URL=https://api.z.ai/api/anthropic (요청 포맷은 /v1/messages)
|
|
15
|
+
// 본 클라이언트는 OpenAI 호환 coding 엔드포인트를 사용한다.
|
|
16
|
+
export const ZAI_BASE_CODING_ANTHROPIC = 'https://api.z.ai/api/anthropic';
|
|
17
|
+
/** 큐레이션된 알려진 모델 (list-models 미지원/무네트워크 시 fallback) */
|
|
18
|
+
export const ZAI_MODELS = {
|
|
19
|
+
'glm-5.2': { id: 'glm-5.2', name: 'GLM-5.2', description: 'Flagship — latest, top coding (coding plan)', top: true },
|
|
20
|
+
'glm-5-turbo': { id: 'glm-5-turbo', name: 'GLM-5-Turbo', description: 'Fast agentic model' },
|
|
21
|
+
'glm-5.1': { id: 'glm-5.1', name: 'GLM-5.1', description: 'General API top model' },
|
|
22
|
+
'glm-4.7': { id: 'glm-4.7', name: 'GLM-4.7', description: 'Prior-gen coding model' },
|
|
23
|
+
};
|
|
24
|
+
/** flagship(최고) 모델 id — UI 개발 등 최고 품질이 필요한 작업에 사용 (coding plan) */
|
|
25
|
+
export const ZAI_TOP_MODEL = 'glm-5.2';
|
|
26
|
+
/** coding plan 기본 모델 */
|
|
27
|
+
export const DEFAULT_CODING_MODEL = 'glm-5.2';
|
|
28
|
+
/** 일반 API 기본 모델 (일반 요금제는 현재 5.1 이 상한) */
|
|
29
|
+
export const DEFAULT_GENERAL_MODEL = 'glm-5.1';
|
|
30
|
+
/** 하위 호환용 기본값 */
|
|
31
|
+
export const DEFAULT_MODEL = DEFAULT_CODING_MODEL;
|
|
32
|
+
export function resolveApiKey(plan) {
|
|
33
|
+
if (plan === 'coding')
|
|
34
|
+
return getZaiCodingApiKey() ?? process.env.ZAI_CODING_API_KEY ?? null;
|
|
35
|
+
return getZaiApiKey() ?? process.env.ZAI_API_KEY ?? null;
|
|
36
|
+
}
|
|
37
|
+
export function baseUrlFor(plan) {
|
|
38
|
+
return plan === 'coding' ? ZAI_BASE_CODING : ZAI_BASE_GENERAL;
|
|
39
|
+
}
|
|
40
|
+
/** 코딩플랜 또는 일반 키가 하나라도 있으면 사용 가능 */
|
|
41
|
+
export function isZaiConfigured() {
|
|
42
|
+
return Boolean(resolveApiKey('coding') || resolveApiKey('general'));
|
|
43
|
+
}
|
|
44
|
+
/** 요청에 쓸 요금제 결정 — 명시값 우선, 없으면 coding 키가 있으면 coding */
|
|
45
|
+
function pickPlan(requested) {
|
|
46
|
+
if (requested)
|
|
47
|
+
return requested;
|
|
48
|
+
return resolveApiKey('coding') ? 'coding' : 'general';
|
|
49
|
+
}
|
|
50
|
+
function resolveModel(plan, explicit) {
|
|
51
|
+
if (explicit)
|
|
52
|
+
return explicit;
|
|
53
|
+
const key = plan === 'coding' ? 'zaiCoding' : 'zai';
|
|
54
|
+
const fallback = plan === 'coding' ? DEFAULT_CODING_MODEL : DEFAULT_GENERAL_MODEL;
|
|
55
|
+
return getModelOverride(key) || fallback;
|
|
56
|
+
}
|
|
57
|
+
/** OpenAI 호환 chat completions */
|
|
58
|
+
export async function chat(opts) {
|
|
59
|
+
const plan = pickPlan(opts.plan);
|
|
60
|
+
const apiKey = resolveApiKey(plan);
|
|
61
|
+
if (!apiKey) {
|
|
62
|
+
const cmd = plan === 'coding' ? 'coding-key' : 'key';
|
|
63
|
+
throw new Error(`ZAI API key not found (${plan}). Run: vibe zai ${cmd} <key> or set ZAI_${plan === 'coding' ? 'CODING_' : ''}API_KEY.`);
|
|
64
|
+
}
|
|
65
|
+
const model = resolveModel(plan, opts.model);
|
|
66
|
+
const messages = opts.systemPrompt
|
|
67
|
+
? [{ role: 'system', content: opts.systemPrompt }, ...opts.messages]
|
|
68
|
+
: opts.messages;
|
|
69
|
+
const { signal, cleanup } = createTimeoutSignal(opts.timeoutMs ?? DEFAULT_LLM_TIMEOUT_MS, opts.signal);
|
|
70
|
+
try {
|
|
71
|
+
const res = await fetch(`${baseUrlFor(plan)}/chat/completions`, {
|
|
72
|
+
method: 'POST',
|
|
73
|
+
headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${apiKey}` },
|
|
74
|
+
body: JSON.stringify({
|
|
75
|
+
model,
|
|
76
|
+
messages,
|
|
77
|
+
max_tokens: opts.maxTokens ?? 4096,
|
|
78
|
+
temperature: opts.temperature ?? 0,
|
|
79
|
+
}),
|
|
80
|
+
signal,
|
|
81
|
+
});
|
|
82
|
+
if (!res.ok) {
|
|
83
|
+
const body = await res.text().catch(() => '');
|
|
84
|
+
throw new Error(`ZAI API ${res.status}: ${body.slice(0, 300)}`);
|
|
85
|
+
}
|
|
86
|
+
const data = (await res.json());
|
|
87
|
+
return {
|
|
88
|
+
content: data.choices?.[0]?.message?.content ?? '',
|
|
89
|
+
model: data.model || model,
|
|
90
|
+
finishReason: data.choices?.[0]?.finish_reason,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
finally {
|
|
94
|
+
cleanup();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** live: 사용 가능한 모델 조회 (OpenAI 호환 GET /models). 실패 시 큐레이션 목록. */
|
|
98
|
+
export async function fetchAvailableModels(plan = 'general') {
|
|
99
|
+
const curated = Object.values(ZAI_MODELS);
|
|
100
|
+
const apiKey = resolveApiKey(plan) || resolveApiKey('coding') || resolveApiKey('general');
|
|
101
|
+
if (!apiKey)
|
|
102
|
+
return curated;
|
|
103
|
+
const { signal, cleanup } = createTimeoutSignal(15_000);
|
|
104
|
+
try {
|
|
105
|
+
const res = await fetch(`${baseUrlFor(plan)}/models`, {
|
|
106
|
+
headers: { Authorization: `Bearer ${apiKey}` },
|
|
107
|
+
signal,
|
|
108
|
+
});
|
|
109
|
+
if (!res.ok)
|
|
110
|
+
return curated;
|
|
111
|
+
const data = (await res.json());
|
|
112
|
+
const ids = (data.data ?? []).map((m) => m.id).filter((id) => Boolean(id));
|
|
113
|
+
if (!ids.length)
|
|
114
|
+
return curated;
|
|
115
|
+
return ids.map((id) => ZAI_MODELS[id] ?? { id, name: id, description: 'Reported by ZAI /models' });
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
return curated;
|
|
119
|
+
}
|
|
120
|
+
finally {
|
|
121
|
+
cleanup();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/infra/lib/zai/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ZAI (Z.ai / GLM) 모듈
|
|
3
|
+
*
|
|
4
|
+
* Auth: API Key 전용 — 두 종류
|
|
5
|
+
* - codingApiKey : GLM Coding Plan (UI/코드 담당)
|
|
6
|
+
* - apiKey : 일반 pay-as-you-go
|
|
7
|
+
*/
|
|
8
|
+
export type { ZaiPlan, ZaiModelInfo, ZaiChatMessage, ZaiChatOptions, ZaiChatResponse, VibeZaiOptions, } from './types.js';
|
|
9
|
+
export { ZAI_MODELS, ZAI_TOP_MODEL, ZAI_BASE_GENERAL, ZAI_BASE_CODING, DEFAULT_MODEL, chat, fetchAvailableModels, resolveApiKey, baseUrlFor, isZaiConfigured, } from './client.js';
|
|
10
|
+
export { coreZaiOrchestrate, coreZaiUiImplement, } from './orchestration.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/infra/lib/zai/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EACV,OAAO,EACP,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,IAAI,EACJ,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ZAI (Z.ai / GLM) 모듈
|
|
3
|
+
*
|
|
4
|
+
* Auth: API Key 전용 — 두 종류
|
|
5
|
+
* - codingApiKey : GLM Coding Plan (UI/코드 담당)
|
|
6
|
+
* - apiKey : 일반 pay-as-you-go
|
|
7
|
+
*/
|
|
8
|
+
export { ZAI_MODELS, ZAI_TOP_MODEL, ZAI_BASE_GENERAL, ZAI_BASE_CODING, DEFAULT_MODEL, chat, fetchAvailableModels, resolveApiKey, baseUrlFor, isZaiConfigured, } from './client.js';
|
|
9
|
+
export { coreZaiOrchestrate, coreZaiUiImplement, } from './orchestration.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/infra/lib/zai/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,OAAO,EACL,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,IAAI,EACJ,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ZAI (Z.ai / GLM) 오케스트레이션 함수
|
|
3
|
+
*/
|
|
4
|
+
import type { VibeZaiOptions } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Core ZAI 오케스트레이션 (결정론적, 선택적 JSON 모드)
|
|
7
|
+
* coding 키가 있으면 자동으로 GLM Coding Plan 을 사용한다.
|
|
8
|
+
*/
|
|
9
|
+
export declare function coreZaiOrchestrate(prompt: string, systemPrompt: string, options?: VibeZaiOptions): Promise<string>;
|
|
10
|
+
/**
|
|
11
|
+
* UI 개발 전용 — GLM 최고 모델(coding plan) 로 실행.
|
|
12
|
+
* "zai 사용 가능 시 모든 UI 개발은 GLM 최고 모델이 담당" 정책의 실행 지점.
|
|
13
|
+
*/
|
|
14
|
+
export declare function coreZaiUiImplement(prompt: string, systemPrompt?: string): Promise<string>;
|
|
15
|
+
//# sourceMappingURL=orchestration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestration.d.ts","sourceRoot":"","sources":["../../../../src/infra/lib/zai/orchestration.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,MAAM,CAAC,CAoBjB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,YAAY,SAAmI,GAC9I,OAAO,CAAC,MAAM,CAAC,CAkBjB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ZAI (Z.ai / GLM) 오케스트레이션 함수
|
|
3
|
+
*/
|
|
4
|
+
import { chat, DEFAULT_MODEL, ZAI_TOP_MODEL } from './client.js';
|
|
5
|
+
import { CostAccumulator } from '../CostAccumulator.js';
|
|
6
|
+
/**
|
|
7
|
+
* Core ZAI 오케스트레이션 (결정론적, 선택적 JSON 모드)
|
|
8
|
+
* coding 키가 있으면 자동으로 GLM Coding Plan 을 사용한다.
|
|
9
|
+
*/
|
|
10
|
+
export async function coreZaiOrchestrate(prompt, systemPrompt, options = {}) {
|
|
11
|
+
const { maxTokens = 4096, jsonMode = false, plan, signal, timeoutMs } = options;
|
|
12
|
+
const start = Date.now();
|
|
13
|
+
const result = await chat({
|
|
14
|
+
messages: [{ role: 'user', content: prompt }],
|
|
15
|
+
systemPrompt: jsonMode ? `${systemPrompt}\n\nRespond with valid JSON only.` : systemPrompt,
|
|
16
|
+
maxTokens,
|
|
17
|
+
temperature: 0,
|
|
18
|
+
plan,
|
|
19
|
+
signal,
|
|
20
|
+
timeoutMs,
|
|
21
|
+
});
|
|
22
|
+
CostAccumulator.logCost({
|
|
23
|
+
provider: 'zai',
|
|
24
|
+
model: result.model || DEFAULT_MODEL,
|
|
25
|
+
inputLen: prompt.length + systemPrompt.length,
|
|
26
|
+
outputLen: result.content.length,
|
|
27
|
+
durationMs: Date.now() - start,
|
|
28
|
+
});
|
|
29
|
+
return result.content;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* UI 개발 전용 — GLM 최고 모델(coding plan) 로 실행.
|
|
33
|
+
* "zai 사용 가능 시 모든 UI 개발은 GLM 최고 모델이 담당" 정책의 실행 지점.
|
|
34
|
+
*/
|
|
35
|
+
export async function coreZaiUiImplement(prompt, systemPrompt = 'You are a senior UI engineer. Produce production-quality, accessible UI code that matches the project stack and design system.') {
|
|
36
|
+
const start = Date.now();
|
|
37
|
+
const result = await chat({
|
|
38
|
+
model: ZAI_TOP_MODEL,
|
|
39
|
+
plan: 'coding',
|
|
40
|
+
messages: [{ role: 'user', content: prompt }],
|
|
41
|
+
systemPrompt,
|
|
42
|
+
maxTokens: 8192,
|
|
43
|
+
temperature: 0,
|
|
44
|
+
});
|
|
45
|
+
CostAccumulator.logCost({
|
|
46
|
+
provider: 'zai',
|
|
47
|
+
model: result.model || ZAI_TOP_MODEL,
|
|
48
|
+
inputLen: prompt.length + systemPrompt.length,
|
|
49
|
+
outputLen: result.content.length,
|
|
50
|
+
durationMs: Date.now() - start,
|
|
51
|
+
});
|
|
52
|
+
return result.content;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=orchestration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestration.js","sourceRoot":"","sources":["../../../../src/infra/lib/zai/orchestration.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAc,EACd,YAAoB,EACpB,UAA0B,EAAE;IAE5B,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAChF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;QACxB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAC7C,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,YAAY,mCAAmC,CAAC,CAAC,CAAC,YAAY;QAC1F,SAAS;QACT,WAAW,EAAE,CAAC;QACd,IAAI;QACJ,MAAM;QACN,SAAS;KACV,CAAC,CAAC;IACH,eAAe,CAAC,OAAO,CAAC;QACtB,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,aAAa;QACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM;QAC7C,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;QAChC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;KAC/B,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAc,EACd,YAAY,GAAG,gIAAgI;IAE/I,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;QACxB,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAC7C,YAAY;QACZ,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,CAAC;KACf,CAAC,CAAC;IACH,eAAe,CAAC,OAAO,CAAC;QACtB,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,aAAa;QACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM;QAC7C,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;QAChC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;KAC/B,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ZAI (Z.ai / GLM) 타입 정의 — OpenAI 호환 API
|
|
3
|
+
*/
|
|
4
|
+
/** ZAI 요금제: coding = GLM Coding Plan(별도 키), general = 일반 pay-as-you-go */
|
|
5
|
+
export type ZaiPlan = 'coding' | 'general';
|
|
6
|
+
export interface ZaiModelInfo {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
/** flagship(최고) 모델 여부 */
|
|
11
|
+
top?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface ZaiChatMessage {
|
|
14
|
+
role: 'system' | 'user' | 'assistant';
|
|
15
|
+
content: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ZaiChatOptions {
|
|
18
|
+
messages: ZaiChatMessage[];
|
|
19
|
+
model?: string;
|
|
20
|
+
systemPrompt?: string;
|
|
21
|
+
maxTokens?: number;
|
|
22
|
+
temperature?: number;
|
|
23
|
+
jsonMode?: boolean;
|
|
24
|
+
plan?: ZaiPlan;
|
|
25
|
+
signal?: AbortSignal;
|
|
26
|
+
timeoutMs?: number;
|
|
27
|
+
}
|
|
28
|
+
export interface ZaiChatResponse {
|
|
29
|
+
content: string;
|
|
30
|
+
model: string;
|
|
31
|
+
finishReason?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface VibeZaiOptions {
|
|
34
|
+
maxTokens?: number;
|
|
35
|
+
jsonMode?: boolean;
|
|
36
|
+
plan?: ZaiPlan;
|
|
37
|
+
signal?: AbortSignal;
|
|
38
|
+
timeoutMs?: number;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/infra/lib/zai/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,0EAA0E;AAC1E,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/infra/lib/zai/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmartRouter.d.ts","sourceRoot":"","sources":["../../../src/infra/orchestrator/SmartRouter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAEL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EAGrB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"SmartRouter.d.ts","sourceRoot":"","sources":["../../../src/infra/orchestrator/SmartRouter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAEL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EAGrB,MAAM,YAAY,CAAC;AAOpB;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3E;AAeD;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,SAAgB,kBAAkB,EAAE,WAAW,EAAE,CAAC;IAClD,SAAgB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAG/B,kBAAkB,EAAE,WAAW,EAAE,EACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,QAAQ,EAAE,MAAM;CAUnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qDAAqD;IACrD,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,YAAY,CAAe;gBAEvB,OAAO,GAAE,kBAAuB;IAU5C;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuElE;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAW3B;;OAEG;YACW,kBAAkB;IA8BhC;;OAEG;YACW,OAAO;IAyBrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,KAAK;IAQP,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAInD,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI7D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIrD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIvD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIpD,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAK/E;;OAEG;IACH,cAAc,IAAI,oBAAoB;IAItC;;OAEG;IACH,UAAU,IAAI,IAAI;CAOnB;AAKD,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,WAAW,CAKxE"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* SmartRouter - LLM 스마트 라우팅 및 fallback 관리
|
|
3
3
|
*/
|
|
4
|
-
import { getTaskLlmPriority } from './types.js';
|
|
4
|
+
import { TASK_SYSTEM_PROMPTS, getTaskLlmPriority } from './types.js';
|
|
5
5
|
import * as gptApi from '../lib/gpt/index.js';
|
|
6
6
|
import * as antigravityApi from '../lib/antigravity/index.js';
|
|
7
|
+
import * as zaiApi from '../lib/zai/index.js';
|
|
7
8
|
import { LLMCluster } from './LLMCluster.js';
|
|
8
9
|
import { debugLog } from '../lib/utils.js';
|
|
9
10
|
// Claude CLI 는 로컬 spawn 이라 외부 API 보다 느릴 수 있어 더 긴 timeout 을 준다.
|
|
@@ -46,7 +47,8 @@ export class SmartRouter {
|
|
|
46
47
|
this.claudeRunner = options.claudeRunner ?? new LLMCluster();
|
|
47
48
|
this.cache = {
|
|
48
49
|
gpt: { available: true, checkedAt: 0, errorCount: 0 },
|
|
49
|
-
antigravity: { available: true, checkedAt: 0, errorCount: 0 }
|
|
50
|
+
antigravity: { available: true, checkedAt: 0, errorCount: 0 },
|
|
51
|
+
zai: { available: true, checkedAt: 0, errorCount: 0 }
|
|
50
52
|
};
|
|
51
53
|
}
|
|
52
54
|
/**
|
|
@@ -54,7 +56,7 @@ export class SmartRouter {
|
|
|
54
56
|
*/
|
|
55
57
|
async route(request) {
|
|
56
58
|
const startTime = Date.now();
|
|
57
|
-
const { type, prompt, systemPrompt =
|
|
59
|
+
const { type, prompt, systemPrompt = TASK_SYSTEM_PROMPTS.general, preferredLlm, maxRetries = 2 } = request;
|
|
58
60
|
// LLM 우선순위 결정
|
|
59
61
|
const providers = this.getProviderPriority(type, preferredLlm);
|
|
60
62
|
const attemptedProviders = [];
|
|
@@ -155,6 +157,9 @@ export class SmartRouter {
|
|
|
155
157
|
return gptApi.coreGptOrchestrate(prompt, systemPrompt, { jsonMode: false, signal, timeoutMs });
|
|
156
158
|
case 'antigravity':
|
|
157
159
|
return antigravityApi.coreAntigravityOrchestrate(prompt, systemPrompt, { jsonMode: false, signal, timeoutMs });
|
|
160
|
+
case 'zai':
|
|
161
|
+
// GLM(coding plan 최고 모델). UI 작업의 최우선 provider.
|
|
162
|
+
return zaiApi.coreZaiOrchestrate(prompt, systemPrompt, { jsonMode: false, signal, timeoutMs });
|
|
158
163
|
case 'claude':
|
|
159
164
|
// 마지막 fallback — 로컬 claude CLI 실행 (LLMCluster 또는 주입된 runner).
|
|
160
165
|
// 이전에는 'handled by caller' 예외만 던져 claude-only 환경/외부 LLM 장애 시
|
|
@@ -226,47 +231,23 @@ export class SmartRouter {
|
|
|
226
231
|
// Convenience Methods (Smart* shortcuts)
|
|
227
232
|
// ============================================
|
|
228
233
|
async webSearch(query) {
|
|
229
|
-
return this.route({
|
|
230
|
-
type: 'web-search',
|
|
231
|
-
prompt: query,
|
|
232
|
-
systemPrompt: 'Search the web and provide relevant information.'
|
|
233
|
-
});
|
|
234
|
+
return this.route({ type: 'web-search', prompt: query, systemPrompt: TASK_SYSTEM_PROMPTS['web-search'] });
|
|
234
235
|
}
|
|
235
236
|
async architectureReview(prompt) {
|
|
236
|
-
return this.route({
|
|
237
|
-
type: 'architecture',
|
|
238
|
-
prompt,
|
|
239
|
-
systemPrompt: 'You are a software architect. Analyze and review the architecture.'
|
|
240
|
-
});
|
|
237
|
+
return this.route({ type: 'architecture', prompt, systemPrompt: TASK_SYSTEM_PROMPTS.architecture });
|
|
241
238
|
}
|
|
242
239
|
async uiuxReview(prompt) {
|
|
243
|
-
return this.route({
|
|
244
|
-
type: 'uiux',
|
|
245
|
-
prompt,
|
|
246
|
-
systemPrompt: 'You are a UI/UX expert. Analyze and provide feedback.'
|
|
247
|
-
});
|
|
240
|
+
return this.route({ type: 'uiux', prompt, systemPrompt: TASK_SYSTEM_PROMPTS.uiux });
|
|
248
241
|
}
|
|
249
242
|
async codeAnalysis(prompt) {
|
|
250
|
-
return this.route({
|
|
251
|
-
type: 'code-analysis',
|
|
252
|
-
prompt,
|
|
253
|
-
systemPrompt: 'You are a code analysis expert. Review and analyze the code.'
|
|
254
|
-
});
|
|
243
|
+
return this.route({ type: 'code-analysis', prompt, systemPrompt: TASK_SYSTEM_PROMPTS['code-analysis'] });
|
|
255
244
|
}
|
|
256
245
|
async debugging(prompt) {
|
|
257
|
-
return this.route({
|
|
258
|
-
type: 'debugging',
|
|
259
|
-
prompt,
|
|
260
|
-
systemPrompt: 'You are a debugging expert. Find bugs and suggest fixes.'
|
|
261
|
-
});
|
|
246
|
+
return this.route({ type: 'debugging', prompt, systemPrompt: TASK_SYSTEM_PROMPTS.debugging });
|
|
262
247
|
}
|
|
263
248
|
async codeGen(description, context) {
|
|
264
249
|
const prompt = context ? `${description}\n\nContext:\n${context}` : description;
|
|
265
|
-
return this.route({
|
|
266
|
-
type: 'code-gen',
|
|
267
|
-
prompt,
|
|
268
|
-
systemPrompt: 'Generate clean, well-documented code.'
|
|
269
|
-
});
|
|
250
|
+
return this.route({ type: 'code-gen', prompt, systemPrompt: TASK_SYSTEM_PROMPTS['code-gen'] });
|
|
270
251
|
}
|
|
271
252
|
/**
|
|
272
253
|
* 캐시 상태 조회 (디버깅용)
|
|
@@ -280,7 +261,8 @@ export class SmartRouter {
|
|
|
280
261
|
resetCache() {
|
|
281
262
|
this.cache = {
|
|
282
263
|
gpt: { available: true, checkedAt: 0, errorCount: 0 },
|
|
283
|
-
antigravity: { available: true, checkedAt: 0, errorCount: 0 }
|
|
264
|
+
antigravity: { available: true, checkedAt: 0, errorCount: 0 },
|
|
265
|
+
zai: { available: true, checkedAt: 0, errorCount: 0 }
|
|
284
266
|
};
|
|
285
267
|
}
|
|
286
268
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmartRouter.js","sourceRoot":"","sources":["../../../src/infra/orchestrator/SmartRouter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"SmartRouter.js","sourceRoot":"","sources":["../../../src/infra/orchestrator/SmartRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -124,6 +124,7 @@ export declare function llmStatus(): Promise<ToolResult>;
|
|
|
124
124
|
import type { TaskType, SmartRouteResult } from './types.js';
|
|
125
125
|
/**
|
|
126
126
|
* 스마트 라우팅 - 작업 유형에 따라 최적의 LLM 선택 + 자동 fallback
|
|
127
|
+
* systemPrompt 미지정 시 작업 유형별 기본값(TASK_SYSTEM_PROMPTS SSOT)을 사용한다.
|
|
127
128
|
*
|
|
128
129
|
* @example
|
|
129
130
|
* node -e "import('@su-record/vibe/orchestrator').then(o => o.smartRoute({type:'architecture',prompt:'Review this design'})).then(console.log)"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infra/orchestrator/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infra/orchestrator/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -264,13 +264,15 @@ export async function llmStatus() {
|
|
|
264
264
|
status: llmStatusResult
|
|
265
265
|
};
|
|
266
266
|
}
|
|
267
|
+
import { TASK_SYSTEM_PROMPTS } from './types.js';
|
|
267
268
|
/**
|
|
268
269
|
* 스마트 라우팅 - 작업 유형에 따라 최적의 LLM 선택 + 자동 fallback
|
|
270
|
+
* systemPrompt 미지정 시 작업 유형별 기본값(TASK_SYSTEM_PROMPTS SSOT)을 사용한다.
|
|
269
271
|
*
|
|
270
272
|
* @example
|
|
271
273
|
* node -e "import('@su-record/vibe/orchestrator').then(o => o.smartRoute({type:'architecture',prompt:'Review this design'})).then(console.log)"
|
|
272
274
|
*/
|
|
273
|
-
export async function smartRoute(type, prompt, systemPrompt) {
|
|
275
|
+
export async function smartRoute(type, prompt, systemPrompt = TASK_SYSTEM_PROMPTS[type]) {
|
|
274
276
|
const orchestrator = new CoreOrchestrator();
|
|
275
277
|
const result = await orchestrator.smartRoute({ type, prompt, systemPrompt });
|
|
276
278
|
const fallbackInfo = result.usedFallback
|
|
@@ -291,7 +293,7 @@ export async function smartRoute(type, prompt, systemPrompt) {
|
|
|
291
293
|
* node -e "import('@su-record/vibe/orchestrator').then(o => o.smartArchitecture('Review this system design')).then(console.log)"
|
|
292
294
|
*/
|
|
293
295
|
export async function smartArchitecture(prompt) {
|
|
294
|
-
return smartRoute('architecture', prompt
|
|
296
|
+
return smartRoute('architecture', prompt);
|
|
295
297
|
}
|
|
296
298
|
/**
|
|
297
299
|
* UI/UX 분석 with fallback (Antigravity → GPT → Claude)
|
|
@@ -300,7 +302,7 @@ export async function smartArchitecture(prompt) {
|
|
|
300
302
|
* node -e "import('@su-record/vibe/orchestrator').then(o => o.smartUiux('Improve this form UX')).then(console.log)"
|
|
301
303
|
*/
|
|
302
304
|
export async function smartUiux(prompt) {
|
|
303
|
-
return smartRoute('uiux', prompt
|
|
305
|
+
return smartRoute('uiux', prompt);
|
|
304
306
|
}
|
|
305
307
|
/**
|
|
306
308
|
* 코드 분석 with fallback (Antigravity → GPT → Claude)
|
|
@@ -309,7 +311,7 @@ export async function smartUiux(prompt) {
|
|
|
309
311
|
* node -e "import('@su-record/vibe/orchestrator').then(o => o.smartCodeAnalysis('Analyze this code')).then(console.log)"
|
|
310
312
|
*/
|
|
311
313
|
export async function smartCodeAnalysis(prompt) {
|
|
312
|
-
return smartRoute('code-analysis', prompt
|
|
314
|
+
return smartRoute('code-analysis', prompt);
|
|
313
315
|
}
|
|
314
316
|
/**
|
|
315
317
|
* 디버깅 with fallback (GPT → Antigravity → Claude)
|
|
@@ -318,7 +320,7 @@ export async function smartCodeAnalysis(prompt) {
|
|
|
318
320
|
* node -e "import('@su-record/vibe/orchestrator').then(o => o.smartDebugging('Find bugs in this code')).then(console.log)"
|
|
319
321
|
*/
|
|
320
322
|
export async function smartDebugging(prompt) {
|
|
321
|
-
return smartRoute('debugging', prompt
|
|
323
|
+
return smartRoute('debugging', prompt);
|
|
322
324
|
}
|
|
323
325
|
/**
|
|
324
326
|
* 웹 검색 with fallback (GPT → Antigravity → Claude)
|
|
@@ -327,7 +329,7 @@ export async function smartDebugging(prompt) {
|
|
|
327
329
|
* node -e "import('@su-record/vibe/orchestrator').then(o => o.smartWebSearch('React 19 new features')).then(console.log)"
|
|
328
330
|
*/
|
|
329
331
|
export async function smartWebSearch(query) {
|
|
330
|
-
return smartRoute('web-search', query
|
|
332
|
+
return smartRoute('web-search', query);
|
|
331
333
|
}
|
|
332
334
|
/**
|
|
333
335
|
* 코드 생성 with fallback (Claude 직접)
|
|
@@ -337,7 +339,7 @@ export async function smartWebSearch(query) {
|
|
|
337
339
|
*/
|
|
338
340
|
export async function smartCodeGen(description, context) {
|
|
339
341
|
const prompt = context ? `${description}\n\nContext:\n${context}` : description;
|
|
340
|
-
return smartRoute('code-gen', prompt
|
|
342
|
+
return smartRoute('code-gen', prompt);
|
|
341
343
|
}
|
|
342
344
|
/**
|
|
343
345
|
* 코드 리뷰 with fallback (GPT → Antigravity → Claude)
|
|
@@ -346,7 +348,7 @@ export async function smartCodeGen(description, context) {
|
|
|
346
348
|
* node -e "import('@su-record/vibe/orchestrator').then(o => o.smartCodeReview('Review this PR')).then(console.log)"
|
|
347
349
|
*/
|
|
348
350
|
export async function smartCodeReview(prompt) {
|
|
349
|
-
return smartRoute('code-review', prompt
|
|
351
|
+
return smartRoute('code-review', prompt);
|
|
350
352
|
}
|
|
351
353
|
/**
|
|
352
354
|
* 추론/분석 with fallback (GPT → Antigravity → Claude)
|
|
@@ -355,6 +357,6 @@ export async function smartCodeReview(prompt) {
|
|
|
355
357
|
* node -e "import('@su-record/vibe/orchestrator').then(o => o.smartReasoning('Analyze this problem')).then(console.log)"
|
|
356
358
|
*/
|
|
357
359
|
export async function smartReasoning(prompt) {
|
|
358
|
-
return smartRoute('reasoning', prompt
|
|
360
|
+
return smartRoute('reasoning', prompt);
|
|
359
361
|
}
|
|
360
362
|
//# sourceMappingURL=index.js.map
|