MCPcopy Index your code
hub / github.com/su-kaka/gcli2api / wrap_cli_request

Function wrap_cli_request

src/api/antigravity.py:196–239  ·  view source on GitHub ↗

将 Gemini 格式请求包装成 Antigravity CLI 格式。 返回 (payload, request_id)。

(
    gemini_request: Dict[str, Any],
    model: str,
    project_id: str,
)

Source from the content-addressed store, hash-verified

194
195
196async def wrap_cli_request(
197 gemini_request: Dict[str, Any],
198 model: str,
199 project_id: str,
200) -> Tuple[Dict[str, Any], str]:
201 """
202 将 Gemini 格式请求包装成 Antigravity CLI 格式。
203 返回 (payload, request_id)。
204 """
205 inner = dict(gemini_request)
206
207 # 移除 safetySettings(CLI 不发送)
208 inner.pop("safetySettings", None)
209
210 # 获取/更新会话状态
211 state = await _get_session_state(inner, model)
212
213 # 注入 sessionId
214 if not inner.get("sessionId"):
215 inner["sessionId"] = state.session_id
216
217 # 注入 labels
218 inner["labels"] = _build_labels(model, state.trajectory_id, state.step_index)
219
220 # toolConfig 默认 VALIDATED
221 tool_config = inner.get("toolConfig") or {}
222 func_config = tool_config.get("functionCallingConfig") or {}
223 if "mode" not in func_config:
224 func_config["mode"] = "VALIDATED"
225 tool_config["functionCallingConfig"] = func_config
226 inner["toolConfig"] = tool_config
227
228 request_id = _generate_request_id(state.conversation_id, state.trajectory_id, state.step_index)
229
230 payload = {
231 "project": project_id,
232 "requestId": request_id,
233 "request": inner,
234 "model": model,
235 "userAgent": "antigravity",
236 "requestType": "agent",
237 "enabledCreditTypes": ["GOOGLE_ONE_AI"],
238 }
239 return payload, request_id
240
241
242# ==================== 辅助函数 ====================

Callers 2

stream_requestFunction · 0.85
non_stream_requestFunction · 0.85

Calls 3

_get_session_stateFunction · 0.85
_build_labelsFunction · 0.85
_generate_request_idFunction · 0.85

Tested by

no test coverage detected