Review found two faults in the endpoint and configuration checks. The providers took the official chat route's endpoint from the first active dsh-llm-deepseek-api-key Loader row, so a composition that isolates several instances answered for an unrelated one: a correct route lost search, or a gateway's key reached DeepSeek. And a key saved on the Web search settings page lands under the default DEEPSEEK_API_KEY reference, so the inference that search had its own configuration never saw it. Both DeepSeek web packages now serve only the deepseek-account and deepseek-official routes, whatever key they are configured with, and no longer compare the chat endpoint with their own. ready() checks the route and then credential presence as before; the API-key resolver repeats the route check and refuses with WEB_PROVIDER_ROUTE_DISABLED. The packages no longer read Loader rows or depend on dsh-llm-deepseek-api-key, so the lockfile, the module graph, and the keyless smoke expectations that the endpoint check had changed return to master's. An upgrade guide covers conversations on other providers' models, which lose DeepSeek web search and, with the Search and Fetch APIs selected, web_fetch.
264 lines
5.7 KiB
JSON
264 lines
5.7 KiB
JSON
{
|
|
"finalResponse": "DYNAMIC_TOOLS_OK",
|
|
"declarations": [
|
|
null,
|
|
{
|
|
"name": "snapshot_ping",
|
|
"description": "Return pong once.",
|
|
"input_schema": {
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"defer_loading": true
|
|
},
|
|
null
|
|
],
|
|
"requestToolChanges": [
|
|
[],
|
|
[
|
|
{
|
|
"type": "tool_addition",
|
|
"tool": {
|
|
"type": "tool_reference",
|
|
"name": "snapshot_ping"
|
|
}
|
|
}
|
|
],
|
|
[]
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "request/header",
|
|
"seq": 12,
|
|
"time": 0,
|
|
"data": {
|
|
"header": {
|
|
"config": {
|
|
"provider": "deepseek-official",
|
|
"model": "smoke-model",
|
|
"maxTokens": 256000,
|
|
"reasoningEffort": "high"
|
|
},
|
|
"adapterDefaults": {
|
|
"reasoningEffort": true,
|
|
"maxTokens": true
|
|
},
|
|
"tools": [
|
|
"ask_user_question",
|
|
"create_goal",
|
|
"edit",
|
|
"get_goal",
|
|
"glob",
|
|
"grep",
|
|
"interrupt_agent",
|
|
"job_kill",
|
|
"job_list",
|
|
"job_output",
|
|
"list_agents",
|
|
"present",
|
|
"read",
|
|
"read_image",
|
|
"schedule_create",
|
|
"schedule_delete",
|
|
"schedule_list",
|
|
"schedule_update",
|
|
"send_message",
|
|
"skill",
|
|
"subagent",
|
|
"subagent_fork",
|
|
"todo_write",
|
|
"update_goal",
|
|
"web_fetch",
|
|
"web_search",
|
|
"workflow",
|
|
"working_directory",
|
|
"write"
|
|
]
|
|
},
|
|
"reason": "initial"
|
|
}
|
|
},
|
|
{
|
|
"type": "request/context",
|
|
"seq": 13,
|
|
"time": 0,
|
|
"data": {
|
|
"provider": "deepseek-official",
|
|
"model": "smoke-model",
|
|
"contextWindow": 1000000
|
|
}
|
|
},
|
|
{
|
|
"type": "request/header",
|
|
"seq": 20,
|
|
"time": 0,
|
|
"data": {
|
|
"header": {
|
|
"config": {
|
|
"provider": "deepseek-official",
|
|
"model": "smoke-model",
|
|
"maxTokens": 256000,
|
|
"reasoningEffort": "high"
|
|
},
|
|
"adapterDefaults": {
|
|
"reasoningEffort": true,
|
|
"maxTokens": true
|
|
},
|
|
"tools": [
|
|
"ask_user_question",
|
|
"create_goal",
|
|
"edit",
|
|
"get_goal",
|
|
"glob",
|
|
"grep",
|
|
"interrupt_agent",
|
|
"job_kill",
|
|
"job_list",
|
|
"job_output",
|
|
"list_agents",
|
|
"present",
|
|
"read",
|
|
"read_image",
|
|
"schedule_create",
|
|
"schedule_delete",
|
|
"schedule_list",
|
|
"schedule_update",
|
|
"send_message",
|
|
"skill",
|
|
"snapshot_ping",
|
|
"subagent",
|
|
"subagent_fork",
|
|
"todo_write",
|
|
"update_goal",
|
|
"web_fetch",
|
|
"web_search",
|
|
"workflow",
|
|
"working_directory",
|
|
"write"
|
|
]
|
|
},
|
|
"reason": "change"
|
|
}
|
|
},
|
|
{
|
|
"type": "developer/message",
|
|
"seq": 21,
|
|
"time": 0,
|
|
"data": {
|
|
"turn": 1,
|
|
"step": 2,
|
|
"message": {
|
|
"source": {
|
|
"kind": "tool-registry"
|
|
},
|
|
"content": [
|
|
{
|
|
"type": "tool-addition",
|
|
"toolName": "snapshot_ping"
|
|
}
|
|
],
|
|
"role": "developer",
|
|
"id": "{{messageId}}"
|
|
},
|
|
"headerSeq": "{{header:2}}"
|
|
},
|
|
"surfaceOp": "append"
|
|
},
|
|
{
|
|
"type": "request/header",
|
|
"seq": 27,
|
|
"time": 0,
|
|
"data": {
|
|
"header": {
|
|
"config": {
|
|
"provider": "deepseek-official",
|
|
"model": "smoke-model",
|
|
"maxTokens": 256000,
|
|
"reasoningEffort": "high"
|
|
},
|
|
"adapterDefaults": {
|
|
"reasoningEffort": true,
|
|
"maxTokens": true
|
|
},
|
|
"tools": [
|
|
"ask_user_question",
|
|
"create_goal",
|
|
"edit",
|
|
"get_goal",
|
|
"glob",
|
|
"grep",
|
|
"interrupt_agent",
|
|
"job_kill",
|
|
"job_list",
|
|
"job_output",
|
|
"list_agents",
|
|
"present",
|
|
"read",
|
|
"read_image",
|
|
"schedule_create",
|
|
"schedule_delete",
|
|
"schedule_list",
|
|
"schedule_update",
|
|
"send_message",
|
|
"skill",
|
|
"subagent",
|
|
"subagent_fork",
|
|
"todo_write",
|
|
"update_goal",
|
|
"web_fetch",
|
|
"web_search",
|
|
"workflow",
|
|
"working_directory",
|
|
"write"
|
|
]
|
|
},
|
|
"reason": "change"
|
|
}
|
|
},
|
|
{
|
|
"type": "developer/message",
|
|
"seq": 28,
|
|
"time": 0,
|
|
"data": {
|
|
"turn": 1,
|
|
"step": 3,
|
|
"message": {
|
|
"source": {
|
|
"kind": "tool-registry"
|
|
},
|
|
"content": [
|
|
{
|
|
"type": "tool-removal",
|
|
"toolName": "snapshot_ping"
|
|
}
|
|
],
|
|
"role": "developer",
|
|
"id": "{{messageId}}"
|
|
}
|
|
},
|
|
"surfaceOp": "append"
|
|
}
|
|
],
|
|
"toolCalls": [
|
|
"read",
|
|
"snapshot_ping"
|
|
],
|
|
"pingResult": {
|
|
"role": "tool",
|
|
"source": {
|
|
"kind": "tool",
|
|
"callId": "python-dynamic-ping"
|
|
},
|
|
"toolCallId": "python-dynamic-ping",
|
|
"content": [
|
|
{
|
|
"type": "text",
|
|
"text": "pong"
|
|
}
|
|
],
|
|
"isError": false,
|
|
"id": "{{messageId}}"
|
|
}
|
|
}
|