import { ApiClient } from '../api-client'; import { type AgentServerConfig, type ChatPayload, type CommandResult } from '../types'; /** executeApiChatCommand の呼び出し元 (chat-executor.ts) から渡す追加コンテキスト */ export interface ApiChatToolContext { /** Slack Marketplace の読み取り専用ツールをサンドボックス化する際の addDir 解決に使う */ projectDir?: string; tenantCode?: string; } /** * 実行中の API チャットプロセスをキャンセルする * @deprecated Use {@link cancelProcess} from './process-manager' instead. * Both chat-executor and api-chat-executor share the same ProcessManager singleton. * @returns true: プロセスが見つかりキャンセルした, false: プロセスが見つからなかった */ export declare function cancelApiChatProcess(commandId: string): boolean; /** * テスト用: runningApiChats の内容を取得 * @deprecated Use {@link _getRunningProcesses} from './process-manager' instead. */ export declare function _getRunningApiChats(): Map void; }>; /** * Anthropic API を直接呼び出してチャットメッセージを処理する * エージェントが持つ ANTHROPIC_API_KEY で Claude を呼び出す * * 注意: Web で設定された `projectConfig.envVars`(CLAUDE_CODE#API_KEY 等)は * 現状この経路では参照されない。`claude_code` モード(spawn 経由)のみ * Web 設定の env オーバーライドが有効。API モードでの per-project キー切替 * 対応は別タスクで実装予定。 * * tool-use: Slack Marketplace 起点(`interactionOrigin: 'slack'` かつ * `toolPolicy: 'marketplace_read_only'`)のコマンドに限り、読み取り専用ツール * (Read/Grep/Glob、`api-tool-executor.ts`)を `tools` として構築し、 * `stop_reason: 'tool_use'` が続く限り Anthropic API 呼び出し(モデルとの * やり取り)を最大 MAX_TOOL_TURNS 回まで行う。MAX_TOOL_TURNS 回目の呼び出しで * tool_use が要求された場合はそのツールを実行せずに打ち切るため、実際のツール * 実行往復は最大 MAX_TOOL_TURNS - 1 回にとどまる。 * それ以外(通常の api モード)は従来どおり `tools` を送らず、tool_use が来ても * 「サポートされていない」旨の delta 通知のみ返す(非対応のまま・スコープ外)。 */ export declare function executeApiChatCommand(payload: ChatPayload, commandId: string, client: ApiClient, config?: AgentServerConfig, agentId?: string, toolContext?: ApiChatToolContext): Promise; //# sourceMappingURL=api-chat-executor.d.ts.map