@intrect/openswarm 0.3.0 → 0.4.0

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.
@@ -0,0 +1,90 @@
1
+ import { type ToolDefinition } from './tools.js';
2
+ import type { CliRunResult } from './types.js';
3
+ /** OpenAI Chat Completions API 메시지 포맷 */
4
+ export type ChatMessage = {
5
+ role: 'system';
6
+ content: string;
7
+ } | {
8
+ role: 'user';
9
+ content: string;
10
+ } | {
11
+ role: 'assistant';
12
+ content: string | null;
13
+ tool_calls?: ApiToolCall[];
14
+ } | {
15
+ role: 'tool';
16
+ tool_call_id: string;
17
+ content: string;
18
+ };
19
+ interface ApiToolCall {
20
+ id: string;
21
+ type: 'function';
22
+ function: {
23
+ name: string;
24
+ arguments: string;
25
+ };
26
+ }
27
+ interface ChatCompletionResponse {
28
+ choices: Array<{
29
+ message: {
30
+ role: string;
31
+ content: string | null;
32
+ tool_calls?: ApiToolCall[];
33
+ };
34
+ finish_reason: string;
35
+ }>;
36
+ usage?: {
37
+ prompt_tokens: number;
38
+ completion_tokens: number;
39
+ total_tokens: number;
40
+ };
41
+ }
42
+ /** 에이전틱 루프 설정 */
43
+ export interface AgenticLoopOptions {
44
+ /** 시스템 프롬프트 */
45
+ systemPrompt?: string;
46
+ /** 사용자 프롬프트 (작업 지시) */
47
+ prompt: string;
48
+ /** 프로젝트 작업 디렉토리 (도구 실행 cwd) */
49
+ cwd: string;
50
+ /** 모델명 */
51
+ model: string;
52
+ /** API 호출 함수 (어댑터별로 주입) */
53
+ callApi: (messages: ChatMessage[], tools: ToolDefinition[]) => Promise<ChatCompletionResponse>;
54
+ /** 최대 도구 사용 턴 수 (기본: 15) */
55
+ maxTurns?: number;
56
+ /** 전체 타임아웃 (ms, 기본: 300000) */
57
+ timeoutMs?: number;
58
+ /** 실시간 로그 콜백 */
59
+ onLog?: (line: string) => void;
60
+ /** 도구 사용 허용 여부 (기본: true) */
61
+ enableTools?: boolean;
62
+ }
63
+ /** 루프 실행 결과 */
64
+ export interface AgenticLoopResult {
65
+ /** 최종 텍스트 응답 */
66
+ text: string;
67
+ /** 사용한 도구 호출 횟수 */
68
+ toolCallCount: number;
69
+ /** 총 API 호출 횟수 */
70
+ apiCallCount: number;
71
+ /** 총 토큰 사용량 (추적 가능한 경우) */
72
+ totalTokens: number;
73
+ /** 소요 시간 (ms) */
74
+ durationMs: number;
75
+ }
76
+ /**
77
+ * 에이전틱 도구 루프 실행
78
+ *
79
+ * 흐름:
80
+ * 1. 프롬프트로 API 호출 (도구 정의 포함)
81
+ * 2. 응답에 tool_calls가 있으면 → 도구 실행 → 결과를 메시지에 추가 → 2로
82
+ * 3. 응답에 tool_calls가 없으면 (finish_reason = 'stop') → 최종 텍스트 반환
83
+ */
84
+ export declare function runAgenticLoop(options: AgenticLoopOptions): Promise<AgenticLoopResult>;
85
+ /**
86
+ * AgenticLoopResult → CliRunResult 변환
87
+ */
88
+ export declare function loopResultToCliResult(result: AgenticLoopResult): CliRunResult;
89
+ export {};
90
+ //# sourceMappingURL=agenticLoop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agenticLoop.d.ts","sourceRoot":"","sources":["../../src/adapters/agenticLoop.ts"],"names":[],"mappings":"AAQA,OAAO,EAAsE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AACrH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,yCAAyC;AACzC,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,CAAC,EAAE,WAAW,EAAE,CAAA;CAAE,GACzE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,UAAU,sBAAsB;IAC9B,OAAO,EAAE,KAAK,CAAC;QACb,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;YACvB,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;SAC5B,CAAC;QACF,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;IACH,KAAK,CAAC,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,iBAAiB;AACjB,MAAM,WAAW,kBAAkB;IACjC,eAAe;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU;IACV,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC/F,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,6BAA6B;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAe;AACf,MAAM,WAAW,iBAAiB;IAChC,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAID;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqH5F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,YAAY,CAO7E"}
@@ -0,0 +1,141 @@
1
+ // ============================================
2
+ // OpenSwarm - Agentic Tool Loop
3
+ // Created: 2026-04-11
4
+ // Purpose: GPT/Local 어댑터에 Claude CLI와 동등한 도구 사용 능력을 부여하는
5
+ // 범용 에이전틱 루프 엔진.
6
+ // OpenAI function calling 포맷 기반.
7
+ // ============================================
8
+ import { TOOL_DEFINITIONS, executeToolCalls } from './tools.js';
9
+ // ============ 에이전틱 루프 ============
10
+ /**
11
+ * 에이전틱 도구 루프 실행
12
+ *
13
+ * 흐름:
14
+ * 1. 프롬프트로 API 호출 (도구 정의 포함)
15
+ * 2. 응답에 tool_calls가 있으면 → 도구 실행 → 결과를 메시지에 추가 → 2로
16
+ * 3. 응답에 tool_calls가 없으면 (finish_reason = 'stop') → 최종 텍스트 반환
17
+ */
18
+ export async function runAgenticLoop(options) {
19
+ const { systemPrompt, prompt, cwd, callApi, maxTurns = 15, timeoutMs = 300000, onLog, enableTools = true, } = options;
20
+ const startTime = Date.now();
21
+ const deadline = startTime + timeoutMs;
22
+ // 메시지 히스토리 구성
23
+ const messages = [];
24
+ if (systemPrompt) {
25
+ messages.push({ role: 'system', content: systemPrompt });
26
+ }
27
+ messages.push({ role: 'user', content: prompt });
28
+ const tools = enableTools ? TOOL_DEFINITIONS : [];
29
+ let toolCallCount = 0;
30
+ let apiCallCount = 0;
31
+ let totalTokens = 0;
32
+ let finalText = '';
33
+ for (let turn = 0; turn < maxTurns + 1; turn++) {
34
+ // 타임아웃 체크
35
+ if (Date.now() > deadline) {
36
+ onLog?.(`⏰ Agentic loop timeout after ${turn} turns`);
37
+ break;
38
+ }
39
+ // API 호출
40
+ apiCallCount++;
41
+ onLog?.(`▸ API call #${apiCallCount}${turn > 0 ? ` (tool turn ${turn})` : ''}`);
42
+ let response;
43
+ try {
44
+ response = await callApi(messages, tools);
45
+ }
46
+ catch (err) {
47
+ const msg = err instanceof Error ? err.message : String(err);
48
+ onLog?.(`✖ API error: ${msg}`);
49
+ finalText = `API error: ${msg}`;
50
+ break;
51
+ }
52
+ if (response.usage) {
53
+ totalTokens += response.usage.prompt_tokens + response.usage.completion_tokens;
54
+ }
55
+ const choice = response.choices?.[0];
56
+ if (!choice) {
57
+ onLog?.('✖ Empty response from API');
58
+ finalText = 'Empty API response';
59
+ break;
60
+ }
61
+ const assistantMsg = choice.message;
62
+ // 도구 호출이 없으면 최종 응답
63
+ if (!assistantMsg.tool_calls || assistantMsg.tool_calls.length === 0) {
64
+ finalText = assistantMsg.content ?? '';
65
+ break;
66
+ }
67
+ // 어시스턴트 메시지를 히스토리에 추가 (tool_calls 포함)
68
+ messages.push({
69
+ role: 'assistant',
70
+ content: assistantMsg.content,
71
+ tool_calls: assistantMsg.tool_calls,
72
+ });
73
+ // 도구 실행
74
+ const toolCalls = assistantMsg.tool_calls.map(tc => ({
75
+ id: tc.id,
76
+ function: {
77
+ name: tc.function.name,
78
+ arguments: tc.function.arguments,
79
+ },
80
+ }));
81
+ for (const tc of toolCalls) {
82
+ try {
83
+ const args = JSON.parse(tc.function.arguments);
84
+ const argSummary = summarizeToolArgs(tc.function.name, args);
85
+ onLog?.(` 🔧 ${tc.function.name}${argSummary ? ': ' + argSummary : ''}`);
86
+ }
87
+ catch {
88
+ onLog?.(` 🔧 ${tc.function.name}`);
89
+ }
90
+ }
91
+ const results = await executeToolCalls(toolCalls, cwd);
92
+ toolCallCount += toolCalls.length;
93
+ // 도구 결과를 메시지에 추가
94
+ for (const result of results) {
95
+ messages.push({
96
+ role: 'tool',
97
+ tool_call_id: result.tool_call_id,
98
+ content: result.content,
99
+ });
100
+ if (result.is_error) {
101
+ onLog?.(` ✖ ${result.content.slice(0, 100)}`);
102
+ }
103
+ }
104
+ }
105
+ return {
106
+ text: finalText,
107
+ toolCallCount,
108
+ apiCallCount,
109
+ totalTokens,
110
+ durationMs: Date.now() - startTime,
111
+ };
112
+ }
113
+ /**
114
+ * AgenticLoopResult → CliRunResult 변환
115
+ */
116
+ export function loopResultToCliResult(result) {
117
+ return {
118
+ exitCode: 0,
119
+ stdout: result.text,
120
+ stderr: '',
121
+ durationMs: result.durationMs,
122
+ };
123
+ }
124
+ // ============ 헬퍼 ============
125
+ function summarizeToolArgs(name, args) {
126
+ switch (name) {
127
+ case 'read_file':
128
+ return String(args.path ?? '');
129
+ case 'write_file':
130
+ return String(args.path ?? '');
131
+ case 'edit_file':
132
+ return String(args.path ?? '');
133
+ case 'search_files':
134
+ return `"${args.pattern}" in ${args.path}`;
135
+ case 'bash':
136
+ return String(args.command ?? '').slice(0, 80);
137
+ default:
138
+ return '';
139
+ }
140
+ }
141
+ //# sourceMappingURL=agenticLoop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agenticLoop.js","sourceRoot":"","sources":["../../src/adapters/agenticLoop.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,12 @@ export declare class GptCliAdapter implements CliAdapter {
8
8
  args: string[];
9
9
  };
10
10
  run(options: CliRunOptions): Promise<CliRunResult>;
11
+ /**
12
+ * OpenAI API 호출 함수 생성 (에이전틱 루프에 주입)
13
+ * 401 시 토큰 갱신 + 1회 재시도 포함
14
+ */
15
+ private createApiCaller;
11
16
  parseWorkerOutput(raw: CliRunResult): WorkerResult;
12
17
  parseReviewerOutput(raw: CliRunResult): ReviewResult;
13
- private callApi;
14
18
  }
15
19
  //# sourceMappingURL=gpt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gpt.d.ts","sourceRoot":"","sources":["../../src/adapters/gpt.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAC;AAQpB,qBAAa,aAAc,YAAW,UAAU;IAC9C,QAAQ,CAAC,IAAI,SAAS;IAEtB,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAMxC;IAEI,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAUrC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE;IAKpE,GAAG,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAyFxD,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY;IAKlD,mBAAmB,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY;YAKtC,OAAO;CAuCtB"}
1
+ {"version":3,"file":"gpt.d.ts","sourceRoot":"","sources":["../../src/adapters/gpt.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAC;AAUpB,qBAAa,aAAc,YAAW,UAAU;IAC9C,QAAQ,CAAC,IAAI,SAAS;IAEtB,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAMxC;IAEI,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAUrC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE;IAKpE,GAAG,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAiDxD;;;OAGG;IACH,OAAO,CAAC,eAAe;IAiDvB,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY;IAKlD,mBAAmB,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY;CAKrD"}
@@ -1,9 +1,11 @@
1
1
  // ============================================
2
2
  // OpenSwarm - GPT CLI Adapter
3
- // Calls OpenAI Chat Completions API directly via OAuth token
3
+ // Calls OpenAI Chat Completions API via OAuth token
4
+ // Agentic tool loop 지원 (read/write/edit/search/bash)
4
5
  // ============================================
5
6
  import { AuthProfileStore, ensureValidToken } from '../auth/index.js';
6
7
  import { t } from '../locale/index.js';
8
+ import { runAgenticLoop, loopResultToCliResult } from './agenticLoop.js';
7
9
  const OPENAI_API_BASE = 'https://api.openai.com/v1';
8
10
  const DEFAULT_MODEL = 'gpt-4o';
9
11
  const PROFILE_KEY = 'openai-gpt:default';
@@ -46,71 +48,76 @@ export class GptCliAdapter {
46
48
  durationMs: Date.now() - startTime,
47
49
  };
48
50
  }
49
- // 2. OpenAI API 호출
50
51
  const model = options.model ?? DEFAULT_MODEL;
51
- const body = {
52
+ // 2. 에이전틱 루프로 실행 (도구 사용 가능)
53
+ const callApi = this.createApiCaller(accessToken, store, model);
54
+ const loopOptions = {
55
+ prompt: options.prompt,
56
+ cwd: options.cwd ?? process.cwd(),
52
57
  model,
53
- messages: [
54
- { role: 'user', content: options.prompt },
55
- ],
56
- temperature: 0.2,
57
- max_tokens: 16384,
58
+ callApi,
59
+ maxTurns: options.maxTurns ?? 15,
60
+ timeoutMs: options.timeoutMs || 300000,
61
+ onLog: options.onLog,
62
+ enableTools: true,
58
63
  };
59
64
  try {
60
- const res = await fetch(`${OPENAI_API_BASE}/chat/completions`, {
61
- method: 'POST',
62
- headers: {
63
- 'Authorization': `Bearer ${accessToken}`,
64
- 'Content-Type': 'application/json',
65
- },
66
- body: JSON.stringify(body),
67
- });
68
- const durationMs = Date.now() - startTime;
69
- if (!res.ok) {
70
- const errText = await res.text().catch(() => '');
71
- // 401 → 토큰 갱신 후 1회 재시도
72
- if (res.status === 401) {
73
- try {
74
- const newToken = await refreshAndRetry(store);
75
- return await this.callApi(newToken, body, startTime, options.onLog);
76
- }
77
- catch (retryErr) {
78
- return {
79
- exitCode: 1,
80
- stdout: '',
81
- stderr: `OpenAI API 401 after retry: ${retryErr instanceof Error ? retryErr.message : String(retryErr)}`,
82
- durationMs: Date.now() - startTime,
83
- };
84
- }
85
- }
86
- return {
87
- exitCode: 1,
88
- stdout: '',
89
- stderr: `OpenAI API error (${res.status}): ${errText.slice(0, 500)}`,
90
- durationMs,
91
- };
92
- }
93
- const data = (await res.json());
94
- const content = data.choices?.[0]?.message?.content ?? '';
65
+ const result = await runAgenticLoop(loopOptions);
95
66
  if (options.onLog) {
96
- options.onLog(content.slice(0, 300));
67
+ options.onLog(`[GPT] ${result.apiCallCount} API calls, ${result.toolCallCount} tool uses, ${result.totalTokens} tokens`);
97
68
  }
98
- return {
99
- exitCode: 0,
100
- stdout: content,
101
- stderr: '',
102
- durationMs: Date.now() - startTime,
103
- };
69
+ return loopResultToCliResult(result);
104
70
  }
105
71
  catch (err) {
106
72
  return {
107
73
  exitCode: 1,
108
74
  stdout: '',
109
- stderr: `OpenAI API request failed: ${err instanceof Error ? err.message : String(err)}`,
75
+ stderr: `GPT agentic loop failed: ${err instanceof Error ? err.message : String(err)}`,
110
76
  durationMs: Date.now() - startTime,
111
77
  };
112
78
  }
113
79
  }
80
+ /**
81
+ * OpenAI API 호출 함수 생성 (에이전틱 루프에 주입)
82
+ * 401 시 토큰 갱신 + 1회 재시도 포함
83
+ */
84
+ createApiCaller(initialToken, store, model) {
85
+ let token = initialToken;
86
+ let retried = false;
87
+ return async (messages, tools) => {
88
+ const body = {
89
+ model,
90
+ messages,
91
+ temperature: 0.2,
92
+ max_tokens: 16384,
93
+ };
94
+ if (tools.length > 0) {
95
+ body.tools = tools;
96
+ }
97
+ const doCall = async (accessToken) => {
98
+ const res = await fetch(`${OPENAI_API_BASE}/chat/completions`, {
99
+ method: 'POST',
100
+ headers: {
101
+ 'Authorization': `Bearer ${accessToken}`,
102
+ 'Content-Type': 'application/json',
103
+ },
104
+ body: JSON.stringify(body),
105
+ });
106
+ if (!res.ok) {
107
+ const errText = await res.text().catch(() => '');
108
+ // 401 → 토큰 갱신 후 1회 재시도
109
+ if (res.status === 401 && !retried) {
110
+ retried = true;
111
+ token = await refreshAndRetry(store);
112
+ return doCall(token);
113
+ }
114
+ throw new Error(`OpenAI API error (${res.status}): ${errText.slice(0, 500)}`);
115
+ }
116
+ return (await res.json());
117
+ };
118
+ return doCall(token);
119
+ };
120
+ }
114
121
  parseWorkerOutput(raw) {
115
122
  const text = raw.stdout;
116
123
  return extractWorkerResultJson(text) ?? extractWorkerFromText(text);
@@ -119,36 +126,6 @@ export class GptCliAdapter {
119
126
  const text = raw.stdout;
120
127
  return extractReviewerResultJson(text) ?? extractReviewerFromText(text);
121
128
  }
122
- async callApi(token, body, startTime, onLog) {
123
- const res = await fetch(`${OPENAI_API_BASE}/chat/completions`, {
124
- method: 'POST',
125
- headers: {
126
- 'Authorization': `Bearer ${token}`,
127
- 'Content-Type': 'application/json',
128
- },
129
- body: JSON.stringify(body),
130
- });
131
- if (!res.ok) {
132
- const errText = await res.text().catch(() => '');
133
- return {
134
- exitCode: 1,
135
- stdout: '',
136
- stderr: `OpenAI API error (${res.status}): ${errText.slice(0, 500)}`,
137
- durationMs: Date.now() - startTime,
138
- };
139
- }
140
- const data = (await res.json());
141
- const content = data.choices?.[0]?.message?.content ?? '';
142
- if (onLog) {
143
- onLog(content.slice(0, 300));
144
- }
145
- return {
146
- exitCode: 0,
147
- stdout: content,
148
- stderr: '',
149
- durationMs: Date.now() - startTime,
150
- };
151
- }
152
129
  }
153
130
  async function refreshAndRetry(store) {
154
131
  const profile = store.getProfile(PROFILE_KEY);
@@ -1 +1 @@
1
- {"version":3,"file":"gpt.js","sourceRoot":"","sources":["../../src/adapters/gpt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gpt.js","sourceRoot":"","sources":["../../src/adapters/gpt.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,15 @@ export declare class LocalModelAdapter implements CliAdapter {
16
16
  args: string[];
17
17
  };
18
18
  run(options: CliRunOptions): Promise<CliRunResult>;
19
+ /**
20
+ * 모델의 tool_use 지원 여부 확인
21
+ * Ollama는 일부 모델만 지원 (gemma3, llama3.1+, mistral 등)
22
+ */
23
+ private checkToolSupport;
24
+ /**
25
+ * 로컬 API 호출 함수 생성 (에이전틱 루프에 주입)
26
+ */
27
+ private createApiCaller;
19
28
  parseWorkerOutput(raw: CliRunResult): WorkerResult;
20
29
  parseReviewerOutput(raw: CliRunResult): ReviewResult;
21
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/adapters/local.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAC;AAapB,qBAAa,iBAAkB,YAAW,UAAU;IAClD,QAAQ,CAAC,IAAI,WAAW;IAExB,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAMxC;IAGF,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,aAAa,CAAuB;IAE5C,uCAAuC;IACvC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIvB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAqBrC,6BAA6B;IAC7B,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,sBAAsB;IAChB,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAmBrC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE;IAIpE,GAAG,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA6FxD,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY;IAKlD,mBAAmB,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY;CAIrD"}
1
+ {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/adapters/local.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAC;AAepB,qBAAa,iBAAkB,YAAW,UAAU;IAClD,QAAQ,CAAC,IAAI,WAAW;IAExB,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAMxC;IAGF,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,aAAa,CAAuB;IAE5C,uCAAuC;IACvC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIvB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAqBrC,6BAA6B;IAC7B,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,sBAAsB;IAChB,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAmBrC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE;IAIpE,GAAG,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA2DxD;;;OAGG;YACW,gBAAgB;IAqC9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAoCvB,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY;IAKlD,mBAAmB,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY;CAIrD"}