Yusuf Gürdoğan
23bd76046a
feat(community): add Sofya web search provider ( #5239 )
...
* feat(community): add Sofya web search provider
Add a community provider backed by Sofya (https://sofya.co ). Its search
endpoint returns the content of the result pages, not only their snippets,
and its fetch endpoint returns a page as markdown. Both are plain JSON over
HTTP, so this needs no extra Python package (uses httpx, already a
dependency).
Changes:
- backend/packages/harness/deerflow/community/sofya/__init__.py
- backend/packages/harness/deerflow/community/sofya/tools.py
Implements web_search_tool and web_fetch_tool using httpx.
API key is read from the config.yaml `api_key` field or the SOFYA_API_KEY
env var. Follows the same interface and output shape as the existing
ddg_search and serper providers, including the max_results parameter with
config override and the structured "No results found" error.
- backend/tests/test_sofya_tools.py
Unit tests covering API key resolution, config overrides, result mapping,
time range, HTTP errors, empty results, and fetch failures.
- config.example.yaml: add commented-out Sofya web_search and web_fetch
examples alongside the other providers
- .env.example: add SOFYA_API_KEY placeholder
- backend/docs/CONFIGURATION.md: list Sofya under web_search, web_fetch and
the environment variables
* fix(sofya): honor caller max_results, validate search_depth, join time_range contract test
- Caller-supplied max_results now wins; config is used only when the
argument is omitted, matching GroundRoute.
- search_depth is clamped to basic/snippets; an unsupported value logs a
warning and falls back to basic.
- Sofya added to the shared time_range schema contract test.
* fix(sofya): cap per-result content so a search stays inline
An unbounded search payload (up to 20 read pages) crossed the tool output
budget middleware's externalize_min_chars threshold, which replaces the
result list with a file reference. Cap each result's content at
contents_max_characters (default 2000, 0 disables), matching Exa's config
key. Five capped results stay under the 12000 char threshold.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016TZhyPNCX2GYyBPkvTgJV5
* fix(sofya): list Sofya in the recency contract, coerce non-string content
_clip subscripted its input, so a non-string content or description from
the API raised TypeError instead of degrading. Coerce to text first, the
way _sofya_post and _response_results guard the shapes around it. Also add
Sofya to the Web Search Recency section in backend/AGENTS.md.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016TZhyPNCX2GYyBPkvTgJV5
* fix(sofya): coerce web_fetch content, list sofya in the tools guide, add changelog
web_fetch sliced its content the same way web_search did before the last
push: a truthy non-string from the API passed the falsiness guard and then
raised TypeError. Reuse _clip, keeping the `or ""` so empty content still
reports "No content found".
Also add sofya to the community provider inventory in
packages/harness/deerflow/tools/AGENTS.md and an [Unreleased] changelog entry.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016TZhyPNCX2GYyBPkvTgJV5
* docs(zh): add the missing InfoQuest and Firecrawl web_fetch tabs
The ZH web_fetch tab list named five providers where EN names seven. Both
tabs mirror their EN counterparts, so the two locales list the same
web_fetch providers again.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016TZhyPNCX2GYyBPkvTgJV5
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2026-09-08 10:50:03 +08:00
..
2026-09-07 15:27:00 +08:00
2026-07-22 14:02:56 +08:00
2026-07-19 18:26:26 +08:00
2026-07-29 22:33:45 +08:00
2026-05-12 23:18:54 +08:00
2026-07-26 14:43:08 +08:00
2026-04-26 15:09:25 +08:00
2026-06-01 15:50:39 +08:00
2026-09-01 16:49:39 +08:00
2026-07-21 11:46:33 +08:00
2026-06-21 20:56:42 +08:00
2026-06-08 12:35:03 +08:00
2026-09-01 16:13:41 +08:00
2026-07-22 14:47:08 +08:00
2026-08-30 10:30:34 +08:00
2026-07-17 15:11:15 +08:00
2026-08-24 11:04:23 +08:00
2026-08-24 08:52:01 +08:00
2026-08-24 11:04:23 +08:00
2026-09-02 12:34:09 +08:00
2026-08-08 20:36:13 +08:00
2026-08-24 11:04:23 +08:00
2026-09-04 23:46:57 +08:00
2026-09-04 23:46:57 +08:00
2026-08-31 14:35:08 +08:00
2026-09-04 23:46:57 +08:00
2026-09-04 23:46:57 +08:00
2026-06-23 10:39:40 +08:00
2026-07-30 13:51:17 +08:00
2026-09-01 22:01:21 +08:00
2026-09-02 21:05:23 +08:00
2026-05-29 23:05:59 +08:00
2026-05-16 09:24:40 +08:00
2026-04-26 11:08:11 +08:00
2026-08-13 23:55:30 +08:00
2026-08-13 23:55:30 +08:00
2026-09-03 08:17:26 +08:00
2026-07-23 22:51:35 +08:00
2026-08-23 09:57:12 +08:00
2026-07-17 14:49:51 +08:00
2026-07-17 14:49:51 +08:00
2026-08-27 14:59:31 +08:00
2026-07-23 22:51:35 +08:00
2026-07-23 22:51:35 +08:00
2026-08-22 16:53:32 +08:00
2026-06-24 13:57:12 +08:00
2026-08-25 07:49:38 +08:00
2026-09-01 22:36:31 +08:00
2026-08-23 09:57:12 +08:00
2026-09-03 08:17:26 +08:00
2026-08-29 14:36:38 +08:00
2026-08-29 14:36:38 +08:00
2026-08-29 14:36:38 +08:00
2026-08-29 14:36:38 +08:00
2026-08-29 14:36:38 +08:00
2026-08-29 14:36:38 +08:00
2026-08-29 14:36:38 +08:00
2026-08-29 14:36:38 +08:00
2026-08-29 14:36:38 +08:00
2026-07-27 11:47:49 +08:00
2026-09-03 08:17:26 +08:00
2026-09-02 09:23:04 +08:00
2026-07-26 08:00:48 +08:00
2026-08-30 21:25:05 +08:00
2026-09-03 08:04:21 +08:00
2026-08-01 22:19:59 +08:00
2026-07-28 07:56:04 +08:00
2026-08-14 12:35:24 +08:00
2026-08-05 08:29:22 +08:00
2026-08-31 23:18:34 +08:00
2026-08-02 22:25:02 +08:00
2026-08-02 22:25:02 +08:00
2026-07-14 07:37:59 +08:00
2026-06-16 23:04:39 +08:00
2026-06-18 10:15:31 +08:00
2026-07-12 08:54:03 +08:00
2026-07-25 21:55:31 +08:00
2026-08-14 23:29:04 +08:00
2026-07-17 14:49:51 +08:00
2026-06-18 10:45:33 +08:00
2026-09-06 16:46:51 +08:00
2026-08-11 21:56:20 +08:00
2026-08-02 22:25:02 +08:00
2026-08-02 22:25:02 +08:00
2026-08-02 22:25:02 +08:00
2026-08-02 22:25:02 +08:00
2026-07-28 22:12:27 +08:00
2026-08-23 09:57:12 +08:00
2026-07-26 10:44:50 +08:00
2026-07-28 23:21:23 +08:00
2026-07-12 08:15:32 +08:00
2026-08-11 21:04:55 +08:00
2026-08-13 23:55:30 +08:00
2026-08-24 07:37:35 +08:00
2026-08-24 07:37:35 +08:00
2026-03-30 07:41:18 +08:00
2026-04-25 19:40:06 +08:00
2026-04-07 18:21:22 +08:00
2026-07-22 14:02:56 +08:00
2026-09-01 16:49:39 +08:00
2026-09-02 11:54:40 +08:00
2026-07-29 22:16:48 +08:00
2026-05-04 09:56:16 +08:00
2026-09-06 22:33:12 +08:00
2026-05-02 15:04:11 +08:00
2026-08-30 15:37:38 +08:00
2026-08-24 21:48:37 +08:00
2026-06-10 21:36:25 +08:00
2026-08-23 15:08:39 +08:00
2026-08-23 15:43:37 +08:00
2026-07-29 22:24:04 +08:00
2026-08-23 09:57:12 +08:00
2026-07-26 07:39:39 +08:00
2026-04-26 11:05:47 +08:00
2026-07-05 09:54:55 +08:00
2026-03-29 15:31:18 +08:00
2026-08-25 07:49:38 +08:00
2026-05-07 16:15:15 +08:00
2026-08-13 23:55:30 +08:00
2026-08-03 08:28:15 +08:00
2026-08-12 09:25:05 +08:00
2026-08-08 21:07:55 +08:00
2026-08-30 21:25:05 +08:00
2026-08-17 08:20:42 +08:00
2026-07-13 17:57:34 +08:00
2026-06-02 22:43:22 +08:00
2026-06-05 15:21:41 +08:00
2026-07-12 00:17:11 +08:00
2026-07-04 23:09:29 +08:00
2026-06-02 22:43:22 +08:00
2026-07-01 22:49:17 +08:00
2026-09-01 16:13:41 +08:00
2026-07-22 08:33:29 +08:00
2026-07-28 23:21:23 +08:00
2026-08-13 23:55:30 +08:00
2026-07-22 13:55:40 +08:00
2026-07-29 22:33:45 +08:00
2026-08-05 08:29:22 +08:00
2026-07-29 22:33:45 +08:00
2026-08-13 23:55:30 +08:00
2026-08-23 10:45:30 +08:00
2026-06-12 15:24:58 +08:00
2026-08-27 17:56:56 +08:00
2026-08-24 21:48:37 +08:00
2026-08-18 23:14:17 +08:00
2026-09-08 10:50:03 +08:00
2026-07-26 07:39:39 +08:00
2026-09-04 23:39:31 +08:00
2026-08-11 21:52:12 +08:00
2026-09-08 09:17:53 +08:00
2026-04-26 11:09:56 +08:00
2026-09-02 21:05:23 +08:00
2026-04-08 17:13:39 +08:00
2026-08-23 09:57:12 +08:00
2026-08-04 22:33:26 +08:00
2026-08-23 09:57:12 +08:00
2026-09-01 16:49:39 +08:00
2026-08-11 16:33:22 +08:00
2026-08-23 09:57:12 +08:00
2026-08-13 23:55:30 +08:00
2026-08-04 22:33:26 +08:00
2026-08-04 22:33:26 +08:00
2026-08-23 09:57:12 +08:00
2026-08-14 23:30:03 +08:00
2026-09-05 14:03:00 +08:00
2026-08-04 22:33:26 +08:00
2026-08-13 23:55:30 +08:00
2026-08-29 23:50:45 +08:00
2026-08-11 16:33:22 +08:00
2026-08-11 16:33:22 +08:00
2026-08-11 16:33:22 +08:00
2026-09-06 08:39:26 +08:00
2026-08-12 09:25:05 +08:00
2026-08-23 15:08:39 +08:00
2026-07-05 09:54:55 +08:00
2026-08-25 07:49:38 +08:00
2026-07-14 10:43:13 +08:00
2026-08-23 10:45:30 +08:00
2026-07-02 08:24:15 +08:00
2026-07-04 21:31:01 +08:00
2026-07-19 22:12:30 +08:00
2026-07-14 11:57:48 +08:00
2026-07-31 21:57:22 +08:00
2026-07-22 08:33:29 +08:00
2026-07-29 00:09:02 +08:00
2026-08-13 23:55:30 +08:00
2026-09-04 23:26:53 +08:00
2026-09-01 22:04:17 +08:00
2026-08-15 14:26:38 +08:00
2026-08-13 23:55:30 +08:00
2026-08-13 23:55:30 +08:00
2026-08-14 23:50:40 +08:00
2026-08-13 23:55:30 +08:00
2026-09-02 21:05:23 +08:00
2026-08-19 22:06:16 +08:00
2026-07-04 22:56:24 +08:00
2026-07-04 22:56:24 +08:00
2026-07-04 22:56:24 +08:00
2026-08-14 12:35:24 +08:00
2026-07-04 22:56:24 +08:00
2026-07-14 22:56:50 +08:00
2026-07-04 22:56:24 +08:00
2026-09-02 21:05:23 +08:00
2026-07-16 09:12:29 +08:00
2026-07-23 14:32:49 +08:00
2026-07-15 22:30:34 +08:00
2026-09-01 10:56:43 +08:00
2026-06-21 15:55:10 +08:00
2026-08-23 09:57:12 +08:00
2026-03-14 22:55:52 +08:00
2026-08-23 15:46:10 +08:00
2026-08-23 15:08:39 +08:00
2026-07-27 22:46:51 +08:00
2026-09-06 09:01:33 +08:00
2026-07-27 14:05:31 +08:00
2026-07-10 11:08:30 +08:00
2026-07-27 23:07:40 +08:00
2026-03-26 14:20:18 +08:00
2026-06-28 16:10:44 +08:00
2026-07-08 17:10:27 +08:00
2026-08-30 11:39:25 +08:00
2026-07-04 13:54:04 +08:00
2026-06-17 15:29:22 +08:00
2026-08-17 08:16:14 +08:00
2026-09-02 14:19:37 +08:00
2026-08-23 15:00:37 +08:00
2026-08-15 21:20:34 +08:00
2026-08-15 21:20:34 +08:00
2026-08-16 23:54:06 +08:00
2026-08-15 21:20:34 +08:00
2026-07-28 22:54:44 +08:00
2026-09-06 08:50:05 +08:00
2026-09-05 14:03:00 +08:00
2026-09-06 09:01:33 +08:00
2026-07-28 23:21:23 +08:00
2026-09-06 10:21:58 +08:00
2026-09-06 10:21:58 +08:00
2026-07-23 08:22:15 +08:00
2026-09-06 22:37:35 +08:00
2026-04-11 16:52:10 +08:00
2026-07-20 23:33:09 +08:00
2026-09-01 16:13:41 +08:00
2026-08-30 15:06:55 +08:00
2026-09-01 10:56:43 +08:00
2026-08-31 14:35:08 +08:00
2026-07-13 00:01:22 +08:00
2026-07-04 13:54:04 +08:00
2026-07-03 08:01:46 +08:00
2026-04-30 22:27:14 +08:00
2026-05-07 16:15:15 +08:00
2026-09-07 18:31:11 +08:00
2026-07-26 14:43:08 +08:00
2026-08-29 14:54:02 +08:00
2026-08-24 11:04:23 +08:00
2026-08-24 11:04:23 +08:00
2026-09-04 11:30:36 +08:00
2026-09-06 22:54:32 +08:00
2026-09-01 23:24:49 +08:00
2026-09-01 23:24:49 +08:00
2026-04-25 09:18:13 +08:00
2026-09-07 18:43:01 +08:00
2026-08-31 15:07:30 +08:00
2026-08-31 15:07:30 +08:00
2026-09-05 14:03:00 +08:00
2026-07-09 16:26:31 +08:00
2026-07-09 16:26:31 +08:00
2026-07-28 22:59:14 +08:00
2026-09-06 10:33:40 +08:00
2026-08-05 08:56:18 +08:00
2026-09-04 19:34:15 +08:00
2026-08-15 14:26:38 +08:00
2026-08-15 14:26:38 +08:00
2026-08-27 10:42:42 +08:00
2026-08-15 14:26:38 +08:00
2026-08-22 16:53:32 +08:00
2026-08-15 14:26:38 +08:00
2026-08-23 15:30:21 +08:00
2026-08-28 10:37:01 +08:00
2026-08-15 14:26:38 +08:00
2026-08-15 14:26:38 +08:00
2026-08-24 06:57:55 +08:00
2026-08-15 14:26:38 +08:00
2026-07-14 09:49:43 +08:00
2026-09-01 23:24:49 +08:00
2026-09-06 09:01:33 +08:00
2026-09-03 08:00:25 +08:00
2026-08-01 08:39:28 +08:00
2026-08-17 08:20:42 +08:00
2026-09-06 09:01:33 +08:00
2026-07-26 21:16:36 +08:00
2026-07-22 07:46:03 +08:00
2026-09-01 16:49:39 +08:00
2026-07-15 11:21:04 +08:00
2026-07-26 21:16:36 +08:00
2026-09-03 08:00:25 +08:00
2026-07-27 23:17:18 +08:00
2026-07-31 18:06:45 +08:00
2026-08-01 08:39:28 +08:00
2026-07-15 11:21:04 +08:00
2026-08-17 08:20:42 +08:00
2026-07-22 07:46:03 +08:00
2026-07-22 07:46:03 +08:00
2026-07-22 07:46:03 +08:00
2026-08-25 08:29:18 +08:00
2026-08-17 08:20:42 +08:00
2026-07-15 11:21:04 +08:00
2026-09-01 16:49:39 +08:00
2026-09-01 15:26:33 +08:00
2026-07-26 21:16:36 +08:00
2026-08-17 08:20:42 +08:00
2026-08-29 16:56:56 +08:00
2026-09-06 22:50:58 +08:00
2026-09-04 23:39:31 +08:00
2026-09-03 08:17:26 +08:00
2026-09-03 08:17:26 +08:00
2026-07-27 23:07:40 +08:00
2026-09-03 08:17:26 +08:00
2026-08-29 23:50:45 +08:00
2026-09-03 08:17:26 +08:00
2026-07-04 13:54:04 +08:00
2026-09-05 14:10:18 +08:00
2026-07-31 21:57:22 +08:00
2026-09-03 17:05:09 +08:00
2026-07-26 14:43:08 +08:00
2026-07-26 14:43:08 +08:00
2026-08-01 22:34:11 +08:00
2026-07-31 17:55:24 +08:00
2026-07-27 23:07:40 +08:00
2026-08-14 23:50:40 +08:00
2026-07-28 21:45:20 +08:00
2026-06-22 18:55:20 +08:00
2026-08-01 22:19:59 +08:00
2026-08-31 15:22:45 +08:00
2026-06-21 15:47:53 +08:00
2026-09-01 15:51:37 +08:00
2026-09-02 09:23:04 +08:00
2026-08-11 13:56:02 +08:00
2026-09-06 09:01:33 +08:00
2026-07-11 16:05:30 +08:00
2026-09-01 15:51:37 +08:00
2026-07-04 21:44:22 +08:00
2026-05-28 18:24:32 +08:00
2026-06-08 22:04:38 +08:00
2026-03-26 15:07:05 +08:00
2026-06-09 18:01:43 +08:00
2026-07-26 08:09:17 +08:00
2026-06-24 13:57:12 +08:00
2026-09-03 08:17:26 +08:00
2026-06-24 13:57:12 +08:00
2026-09-03 08:17:26 +08:00
2026-06-24 13:57:12 +08:00
2026-07-30 13:51:17 +08:00
2026-09-03 08:17:26 +08:00
2026-07-30 13:51:17 +08:00
2026-09-07 15:27:00 +08:00
2026-08-23 09:57:12 +08:00
2026-07-30 13:51:17 +08:00
2026-05-21 16:22:09 +08:00
2026-08-29 23:50:45 +08:00
2026-07-30 13:51:17 +08:00
2026-09-06 10:33:40 +08:00
2026-07-30 13:51:17 +08:00
2026-08-05 07:43:54 +08:00
2026-08-05 07:43:54 +08:00
2026-07-20 07:24:34 +08:00
2026-04-10 20:40:30 +08:00
2026-08-31 14:35:08 +08:00
2026-08-31 14:35:08 +08:00
2026-08-31 14:35:08 +08:00
2026-08-25 16:57:55 +08:00
2026-08-25 16:57:55 +08:00
2026-07-21 09:23:14 +08:00
2026-07-06 20:57:41 +08:00
2026-07-30 07:53:10 +08:00
2026-08-13 21:20:49 +08:00
2026-03-14 22:55:52 +08:00
2026-08-29 16:56:56 +08:00
2026-03-14 22:55:52 +08:00
2026-09-01 16:49:39 +08:00
2026-08-31 14:35:08 +08:00
2026-06-08 17:32:41 +08:00
2026-06-09 21:58:31 +08:00
2026-08-31 23:17:39 +08:00
2026-07-11 15:58:07 +08:00
2026-08-27 14:59:31 +08:00
2026-08-25 08:22:57 +08:00
2026-06-24 17:47:04 +08:00
2026-07-02 07:43:09 +08:00
2026-04-26 15:09:25 +08:00
2026-09-01 22:04:17 +08:00
2026-09-05 14:03:00 +08:00
2026-07-28 21:31:23 +08:00
2026-09-06 10:16:17 +08:00
2026-09-06 10:10:08 +08:00
2026-09-01 16:49:39 +08:00
2026-05-21 14:48:28 +08:00
2026-08-22 16:53:32 +08:00
2026-07-27 22:27:16 +08:00
2026-08-05 08:56:18 +08:00
2026-07-27 11:32:10 +08:00
2026-08-22 16:53:32 +08:00
2026-09-06 08:39:26 +08:00
2026-08-01 19:42:44 +08:00
2026-06-24 10:24:36 +08:00
2026-09-04 20:20:28 +08:00
2026-07-22 08:33:29 +08:00
2026-07-19 22:12:30 +08:00
2026-07-23 22:56:12 +08:00
2026-07-23 22:56:12 +08:00
2026-05-22 21:20:28 +08:00
2026-08-01 21:44:34 +08:00
2026-08-30 15:29:51 +08:00
2026-08-30 10:30:34 +08:00
2026-09-02 21:05:23 +08:00
2026-06-03 22:02:27 +08:00
2026-09-04 23:46:57 +08:00
2026-09-04 23:46:57 +08:00
2026-09-04 23:46:57 +08:00
2026-04-09 17:21:23 +08:00
2026-09-04 23:46:57 +08:00
2026-08-24 15:27:33 +08:00
2026-09-01 10:56:43 +08:00
2026-06-25 08:06:17 +08:00
2026-07-28 07:49:13 +08:00
2026-09-02 21:35:33 +08:00
2026-07-04 13:54:04 +08:00
2026-06-12 10:20:38 +08:00
2026-07-04 21:51:57 +08:00
2026-08-24 15:38:32 +08:00
2026-07-04 21:51:57 +08:00
2026-08-24 15:38:32 +08:00
2026-08-24 15:38:32 +08:00
2026-08-24 15:38:32 +08:00
2026-08-24 15:38:32 +08:00
2026-08-27 14:59:31 +08:00
2026-07-04 21:51:57 +08:00
2026-07-31 17:27:51 +08:00
2026-08-24 15:38:32 +08:00
2026-08-24 07:09:08 +08:00
2026-08-30 21:25:05 +08:00
2026-08-24 21:27:43 +08:00
2026-06-19 11:23:07 +08:00
2026-03-26 14:20:18 +08:00
2026-07-21 08:15:33 +08:00
2026-08-28 10:30:30 +08:00
2026-08-28 10:44:30 +08:00
2026-06-27 23:30:54 +08:00
2026-09-04 23:32:40 +08:00
2026-07-07 23:09:06 +08:00
2026-07-23 08:03:21 +08:00
2026-05-12 23:18:54 +08:00
2026-07-23 08:03:21 +08:00
2026-08-28 22:24:10 +08:00
2026-06-19 21:57:03 +08:00
2026-07-04 23:09:29 +08:00
2026-07-04 11:27:19 +08:00
2026-07-04 11:27:19 +08:00
2026-09-02 17:05:36 +08:00
2026-07-04 23:09:29 +08:00
2026-07-31 17:55:24 +08:00
2026-07-13 10:40:22 +08:00
2026-09-08 09:21:38 +08:00
2026-09-05 14:03:00 +08:00
2026-08-31 14:35:08 +08:00
2026-09-02 19:05:50 +08:00
2026-07-24 21:25:53 +08:00
2026-09-02 16:54:23 +08:00
2026-07-11 15:58:07 +08:00
2026-08-25 19:46:04 +08:00
2026-08-28 08:58:59 +08:00
2026-03-25 16:28:33 +08:00
2026-07-16 14:12:02 +08:00
2026-09-02 11:54:40 +08:00
2026-07-19 22:36:15 +08:00
2026-08-28 08:58:59 +08:00
2026-08-28 08:58:59 +08:00
2026-07-17 23:22:16 +08:00
2026-08-31 15:22:45 +08:00
2026-09-02 00:33:21 +08:00
2026-09-06 10:33:40 +08:00
2026-06-18 10:09:46 +08:00
2026-07-08 21:58:33 +08:00
2026-09-06 16:46:51 +08:00
2026-09-08 10:50:03 +08:00
2026-07-28 22:59:14 +08:00
2026-03-30 16:02:23 +08:00
2026-09-01 15:51:37 +08:00
2026-07-31 17:25:07 +08:00
2026-07-22 09:20:54 +08:00
2026-08-30 10:46:01 +08:00
2026-09-01 15:51:37 +08:00
2026-08-25 07:49:38 +08:00
2026-08-25 07:49:38 +08:00
2026-08-25 07:49:38 +08:00
2026-08-25 07:49:38 +08:00
2026-08-30 10:43:58 +08:00
2026-06-14 10:30:45 +08:00
2026-06-08 23:17:22 +08:00
2026-07-14 08:14:21 +08:00
2026-09-02 11:54:40 +08:00
2026-09-06 10:39:18 +08:00
2026-08-25 07:49:38 +08:00
2026-08-24 11:04:23 +08:00
2026-08-30 11:39:25 +08:00
2026-07-30 07:21:55 +08:00
2026-08-25 07:49:38 +08:00
2026-05-02 06:37:49 +08:00
2026-09-01 16:13:41 +08:00
2026-07-11 15:41:57 +08:00
2026-07-13 19:26:07 +08:00
2026-06-19 21:42:42 +08:00
2026-08-24 11:04:23 +08:00
2026-07-28 19:35:21 +08:00
2026-09-03 17:05:09 +08:00
2026-07-07 19:55:33 +08:00
2026-07-27 11:47:49 +08:00
2026-07-27 11:47:49 +08:00
2026-08-01 19:42:44 +08:00
2026-08-23 09:57:12 +08:00
2026-09-05 14:03:00 +08:00
2026-05-21 21:18:10 +08:00
2026-08-30 21:25:05 +08:00
2026-08-23 10:27:19 +08:00
2026-08-27 18:12:05 +08:00
2026-09-02 09:23:04 +08:00
2026-07-11 15:53:14 +08:00
2026-09-06 22:30:26 +08:00
2026-07-28 22:59:14 +08:00
2026-08-30 14:30:16 +08:00
2026-08-01 19:42:44 +08:00
2026-07-27 22:46:51 +08:00
2026-08-11 22:00:57 +08:00
2026-08-25 08:29:18 +08:00
2026-09-01 15:26:33 +08:00
2026-07-29 12:47:30 +08:00
2026-07-27 22:46:51 +08:00
2026-06-02 22:43:22 +08:00
2026-07-22 08:33:29 +08:00
2026-07-31 21:57:22 +08:00
2026-07-28 23:21:23 +08:00
2026-09-06 22:30:26 +08:00
2026-08-31 14:35:08 +08:00
2026-07-15 11:21:04 +08:00
2026-03-14 22:55:52 +08:00
2026-09-02 14:40:12 +08:00
2026-08-11 11:41:31 +08:00
2026-07-08 22:26:06 +08:00
2026-07-04 23:14:46 +08:00
2026-05-10 22:00:57 +08:00
2026-08-12 09:25:05 +08:00
2026-07-28 23:21:23 +08:00
2026-09-01 14:15:26 +08:00
2026-08-22 16:53:32 +08:00
2026-09-06 22:50:58 +08:00
2026-07-04 11:27:19 +08:00
2026-08-23 09:57:12 +08:00
2026-09-01 16:13:41 +08:00
2026-07-06 20:57:41 +08:00
2026-09-05 14:03:00 +08:00
2026-08-29 16:56:56 +08:00
2026-08-29 16:56:56 +08:00
2026-08-30 15:37:38 +08:00
2026-09-01 09:49:32 +08:00
2026-07-14 09:49:43 +08:00
2026-08-23 09:57:12 +08:00
2026-09-01 16:49:39 +08:00
2026-09-01 16:49:39 +08:00
2026-09-01 16:49:39 +08:00
2026-07-14 08:58:06 +08:00
2026-07-14 08:58:06 +08:00
2026-07-03 08:01:46 +08:00
2026-08-25 20:15:08 +08:00
2026-08-04 08:33:10 +08:00
2026-08-13 23:55:30 +08:00
2026-09-06 16:46:51 +08:00
2026-06-25 20:10:49 +08:00
2026-06-25 20:10:49 +08:00
2026-06-25 20:10:49 +08:00
2026-06-25 20:10:49 +08:00
2026-06-25 20:10:49 +08:00
2026-06-25 20:10:49 +08:00
2026-06-25 20:10:49 +08:00
2026-06-25 20:10:49 +08:00
2026-07-15 22:27:00 +08:00
2026-06-25 20:10:49 +08:00
2026-08-05 08:15:28 +08:00
2026-07-20 23:56:37 +08:00
2026-05-12 23:18:54 +08:00
2026-08-24 11:04:23 +08:00
2026-07-26 21:16:36 +08:00
2026-07-26 21:16:36 +08:00
2026-08-28 09:16:51 +08:00
2026-07-28 22:59:14 +08:00
2026-09-02 21:05:23 +08:00
2026-07-28 22:59:14 +08:00
2026-09-03 08:17:26 +08:00
2026-08-24 21:27:43 +08:00
2026-07-11 09:18:12 +08:00
2026-07-14 10:43:13 +08:00
2026-05-02 15:16:16 +08:00
2026-08-13 23:55:30 +08:00
2026-08-23 15:43:37 +08:00
2026-08-27 09:12:37 +08:00
2026-07-24 13:12:43 +08:00
2026-07-28 19:56:40 +08:00
2026-07-27 07:13:06 +08:00
2026-07-06 07:21:12 +08:00
2026-07-20 23:05:47 +08:00
2026-09-08 10:50:03 +08:00
2026-07-18 17:53:30 +08:00
2026-07-12 07:52:45 +08:00
2026-09-01 16:49:39 +08:00
2026-09-01 22:04:17 +08:00
2026-07-12 11:51:31 +08:00
2026-09-01 16:49:39 +08:00
2026-08-20 08:57:10 +08:00
2026-06-07 17:47:11 +08:00