Nan Gao
bcaf6db36a
feat(models): add declarative reasoning capability contract ( #5780 )
...
* feat(models): add declarative reasoning capability contract (#5073 )
Introduce an optional per-model `reasoning:` block beside the legacy
`supports_thinking` / `supports_reasoning_effort` booleans. It declares
thinking availability (unsupported | optional | required), the accepted
effort values with aliases, default, and serialization path, the payload
dialect, and the reasoning-history requirement. When present the booleans
are derived from it and contradictory profiles fail at config load.
`deerflow.models.reasoning` normalizes legacy and declared profiles into
one immutable contract and resolves every caller's generic request against
it. `create_chat_model` is the single enforcement point: required-thinking
models never receive a synthesized disable payload, unsupported effort
values never reach the provider, and the dialect synthesizes the on/off
payload when no template exists. Legacy profiles keep the historical path
byte-for-byte. The lead agent and subagent descriptor resolve the same
policy first so run metadata reports effective values.
`/api/models` and `DeerFlowClient` project the contract as `reasoning`;
the frontend derives mode clamping and effort choices from it through
`core/models/reasoning.ts`, and user preferences accept provider-specific
effort tokens. The setup wizard's Z.AI GLM-5.3-Flash profile migrates to
the contract, restoring its low/high/max effort control.
* docs(models): move the reasoning contract guidance into models/AGENTS.md
backend/AGENTS.md sits within 46 bytes of the 96 KiB effective-chain hard
limit for the middlewares, runtime, sandbox, and subagents guides, so the
new section pushed scripts/check_agent_guidance.py over it. The models
guide is the nearest file for the factory and the contract module, and
its chain has ample room.
* fix(models): address review on the reasoning contract
- vLLM dialect: the enable path now mirrors whichever chat_template_kwargs
switch the template declares, like the disable path already did, so a
template using the older `thinking` key no longer also grows
`enable_thinking`.
- Validate operator-supplied effort values at `effort.path` inside
`when_thinking_enabled`, `when_thinking_disabled`, and the `thinking`
shortcut against the contract, not only the profile-level value; they are
forwarded when the caller chooses nothing, so the "unknown values never
reach the provider" guarantee now holds for them too.
- Constrain `effort.path` to dotted identifiers and reject single-segment
paths that would replace a whole mapping (`extra_body`, `thinking`,
`model_kwargs`, `default_headers`, `default_query`).
- Z.AI GLM-5.3-Flash profile: `default: high` instead of `max`, because the
default also governs summarization, title generation, and subagent calls
that never choose an effort; `max` stays selectable. Documented in the
config example, the configuration manual, and the design note.
* fix(models): close reasoning contract review gaps
* fix(models): preserve native Ollama reasoning config
* fix(models): keep native reasoning strings and project reasoning into the descriptor
- `ModelConfig.reasoning` also accepts the level string ChatOllama takes
for gpt-oss style models (`low` / `medium` / `high`); the factory forwards
both the boolean and the string on the legacy path, so profiles that
passed `reasoning: high` through before the contract field existed keep
loading and keep sending it.
- The assembly descriptor no longer excludes `reasoning` from
`model_parameters`: the native ChatOllama value and a declared contract's
dialect/history/effort change the request payload, so they now move the
assembly fingerprint.
- e2e: the sidecar spec pinned the pre-contract body where a model without
effort control still received `reasoning_effort: minimal`; the preset is
now dropped for such models (the Gateway discarded it anyway), so the
assertion expects the key to be absent.
2026-09-24 20:39:30 +08:00
..
2026-09-24 18:20:31 +08:00
2026-09-13 20:28:32 +08:00
2026-07-19 18:26:26 +08:00
2026-09-14 11:01:31 +08:00
2026-05-12 23:18:54 +08:00
2026-09-14 11:10:41 +08:00
2026-07-26 14:43:08 +08:00
2026-09-23 15:37:26 +08:00
2026-06-01 15:50:39 +08:00
2026-09-15 07:26:08 +08:00
2026-09-24 16:36:30 +08:00
2026-09-01 16:49:39 +08:00
2026-07-21 11:46:33 +08:00
2026-09-22 10:38:16 +08:00
2026-06-21 20:56:42 +08:00
2026-06-08 12:35:03 +08:00
2026-09-20 20:03:53 +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-09-24 20:39:30 +08:00
2026-09-12 11:09:41 +08:00
2026-09-24 09:35:03 +08:00
2026-09-20 16:31:35 +08:00
2026-09-14 18:17:54 +08:00
2026-09-02 12:34:09 +08:00
2026-09-20 16:31:35 +08:00
2026-09-19 12:14:24 +08:00
2026-09-17 07:55:22 +08:00
2026-09-04 23:46:57 +08:00
2026-09-22 20:48:22 +08:00
2026-09-04 23:46:57 +08:00
2026-09-22 19:49:00 +08:00
2026-09-22 20:48:22 +08:00
2026-06-23 10:39:40 +08:00
2026-09-24 09:35:03 +08:00
2026-09-12 07:12:37 +08:00
2026-09-23 23:26:40 +08:00
2026-09-12 07:41:24 +08:00
2026-05-29 23:05:59 +08:00
2026-09-17 22:13:53 +08:00
2026-05-16 09:24:40 +08:00
2026-04-26 11:08:11 +08:00
2026-09-23 15:37:26 +08:00
2026-08-13 23:55:30 +08:00
2026-08-13 23:55:30 +08:00
2026-09-24 09:08:32 +08:00
2026-09-12 21:01:46 +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-09-23 15:37:26 +08:00
2026-07-23 22:51:35 +08:00
2026-07-23 22:51:35 +08:00
2026-09-23 08:33:20 +08:00
2026-06-24 13:57:12 +08:00
2026-09-09 08:45:20 +08:00
2026-09-22 11:18:57 +08:00
2026-09-23 08:33:20 +08:00
2026-09-01 22:36:31 +08:00
2026-09-12 21:09:05 +08:00
2026-09-03 08:17:26 +08:00
2026-09-12 16:20:31 +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-09-20 20:01:28 +08:00
2026-07-27 11:47:49 +08:00
2026-09-08 19:21:57 +08:00
2026-09-03 08:17:26 +08:00
2026-09-24 09:35:03 +08:00
2026-09-22 11:18:57 +08:00
2026-09-23 10:39:30 +08:00
2026-07-26 08:00:48 +08:00
2026-08-30 21:25:05 +08:00
2026-09-23 15:40:22 +08:00
2026-09-03 08:04:21 +08:00
2026-09-15 08:14:42 +08:00
2026-09-22 10:43:49 +08:00
2026-09-22 10:43:49 +08:00
2026-09-22 19:47:46 +08:00
2026-09-19 12:14:24 +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-09-24 15:16:08 +08:00
2026-08-02 22:25:02 +08:00
2026-07-14 07:37:59 +08:00
2026-09-19 12:14:24 +08:00
2026-09-19 12:14:24 +08:00
2026-06-16 23:04:39 +08:00
2026-06-18 10:15:31 +08:00
2026-09-20 17:21:49 +08:00
2026-09-22 20:43:14 +08:00
2026-08-14 23:29:04 +08:00
2026-09-24 15:11:49 +08:00
2026-09-19 10:29:02 +08:00
2026-07-17 14:49:51 +08:00
2026-06-18 10:45:33 +08:00
2026-09-22 21:53:36 +08:00
2026-09-23 17:58:00 +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-09-08 19:21:57 +08:00
2026-09-18 16:46:19 +08:00
2026-09-14 18:17:54 +08:00
2026-07-12 08:15:32 +08:00
2026-09-23 09:18:26 +08:00
2026-08-13 23:55:30 +08:00
2026-08-24 07:37:35 +08:00
2026-09-20 18:57:49 +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-24 20:39:30 +08:00
2026-09-20 16:08:27 +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-09-18 16:59:31 +08:00
2026-09-12 11:24:46 +08:00
2026-07-29 22:24:04 +08:00
2026-08-23 09:57:12 +08:00
2026-09-14 18:17:54 +08:00
2026-09-15 08:25:08 +08:00
2026-09-14 15:05:30 +08:00
2026-09-15 08:25:08 +08:00
2026-09-14 10:51:01 +08:00
2026-09-16 15:37:57 +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-09-17 09:35:50 +08:00
2026-09-20 16:08:27 +08:00
2026-08-13 23:55:30 +08:00
2026-09-23 15:37:26 +08:00
2026-08-12 09:25:05 +08:00
2026-08-08 21:07:55 +08:00
2026-09-18 18:32:42 +08:00
2026-09-24 09:45:16 +08:00
2026-09-23 18:29:12 +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-08 16:11:49 +08:00
2026-09-24 15:16:08 +08:00
2026-07-28 23:21:23 +08:00
2026-09-14 06:55:57 +08:00
2026-07-22 13:55:40 +08:00
2026-07-29 22:33:45 +08:00
2026-09-17 14:53:54 +08:00
2026-07-29 22:33:45 +08:00
2026-09-14 06:55:57 +08:00
2026-09-22 21:59:53 +08:00
2026-06-12 15:24:58 +08:00
2026-09-16 15:29:14 +08:00
2026-09-19 11:10:32 +08:00
2026-08-18 23:14:17 +08:00
2026-09-20 19:29:47 +08:00
2026-09-19 10:40:22 +08:00
2026-09-18 11:32:04 +08:00
2026-08-11 21:52:12 +08:00
2026-09-20 19:23:45 +08:00
2026-04-26 11:09:56 +08:00
2026-09-23 09:53:49 +08:00
2026-04-08 17:13:39 +08:00
2026-09-12 10:59:31 +08:00
2026-09-23 15:40:22 +08:00
2026-08-04 22:33:26 +08:00
2026-09-22 11:18:57 +08:00
2026-09-01 16:49:39 +08:00
2026-08-11 16:33:22 +08:00
2026-09-12 15:59:41 +08:00
2026-09-16 21:18:05 +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-09-14 11:01:31 +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-09-23 15:25:45 +08:00
2026-09-23 15:25: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-09-22 11:18:57 +08:00
2026-08-23 15:08:39 +08:00
2026-09-12 11:24:46 +08:00
2026-09-22 10:38:16 +08:00
2026-07-05 09:54:55 +08:00
2026-09-18 16:59:31 +08:00
2026-09-18 18:32:42 +08:00
2026-09-14 11:01:31 +08:00
2026-07-02 08:24:15 +08:00
2026-09-16 18:46:18 +08:00
2026-09-12 12:50:22 +08:00
2026-09-19 10:08:09 +08:00
2026-09-12 14:28:15 +08:00
2026-09-08 17:06:28 +08:00
2026-07-19 22:12:30 +08:00
2026-09-13 17:23:04 +08:00
2026-07-31 21:57:22 +08:00
2026-07-22 08:33:29 +08:00
2026-09-24 15:56:38 +08:00
2026-09-19 11:23:12 +08:00
2026-09-23 10:24:56 +08:00
2026-09-01 22:04:17 +08:00
2026-09-18 16:59:31 +08:00
2026-09-22 11:18:57 +08:00
2026-09-18 17:19:10 +08:00
2026-09-14 11:01:31 +08:00
2026-08-13 23:55:30 +08:00
2026-09-17 21:26:52 +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-24 20:38:12 +08:00
2026-09-12 14:32:05 +08:00
2026-09-14 06:55:57 +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-22 20:48:22 +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-22 11:02:16 +08:00
2026-09-16 21:30:57 +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-09-13 20:28:32 +08:00
2026-09-24 20:16:20 +08:00
2026-07-27 14:05:31 +08:00
2026-09-24 18:00:04 +08:00
2026-07-27 23:07:40 +08:00
2026-03-26 14:20:18 +08:00
2026-09-09 16:31:41 +08:00
2026-09-24 16:30:36 +08:00
2026-07-08 17:10:27 +08:00
2026-09-16 18:46:18 +08:00
2026-09-20 18:57:49 +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-24 16:36:30 +08:00
2026-09-24 20:02:36 +08:00
2026-09-02 14:19:37 +08:00
2026-09-18 18:32:42 +08:00
2026-09-15 07:28:24 +08:00
2026-09-16 15:18:29 +08:00
2026-09-14 18:24:51 +08:00
2026-09-19 07:44:05 +08:00
2026-09-18 16:59:31 +08:00
2026-09-18 16:59:31 +08:00
2026-09-18 16:59:31 +08:00
2026-09-24 08:42:10 +08:00
2026-08-15 21:20:34 +08:00
2026-08-16 23:54:06 +08:00
2026-09-24 08:42:10 +08:00
2026-07-28 22:54:44 +08:00
2026-09-16 18:39:24 +08:00
2026-09-24 20:39:30 +08:00
2026-09-20 18:57:49 +08:00
2026-07-28 23:21:23 +08:00
2026-09-06 10:21:58 +08:00
2026-09-18 16:59:31 +08:00
2026-09-24 20:30:45 +08:00
2026-09-20 16:57:06 +08:00
2026-09-24 09:08:32 +08:00
2026-04-11 16:52:10 +08:00
2026-07-20 23:33:09 +08:00
2026-09-18 11:30:11 +08:00
2026-09-15 07:31:03 +08:00
2026-09-14 07:30:34 +08:00
2026-09-14 14:05:21 +08:00
2026-07-13 00:01:22 +08:00
2026-09-14 11:01:31 +08:00
2026-09-24 18:04:37 +08:00
2026-04-30 22:27:14 +08:00
2026-05-07 16:15:15 +08:00
2026-09-17 09:36:55 +08:00
2026-07-26 14:43:08 +08:00
2026-09-23 17:58:00 +08:00
2026-08-29 14:54:02 +08:00
2026-09-22 17:53:21 +08:00
2026-09-22 17:53:21 +08:00
2026-09-20 16:13:58 +08:00
2026-08-24 11:04:23 +08:00
2026-08-24 11:04:23 +08:00
2026-09-24 17:19:01 +08:00
2026-09-24 17:19:01 +08:00
2026-09-22 11:15:06 +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-23 08:33:20 +08:00
2026-09-24 20:13:18 +08:00
2026-08-31 15:07:30 +08:00
2026-08-31 15:07:30 +08:00
2026-09-14 18:07:21 +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-13 17:13:45 +08:00
2026-09-23 08:33:20 +08:00
2026-08-05 08:56:18 +08:00
2026-09-23 08:33:20 +08:00
2026-08-15 14:26:38 +08:00
2026-09-23 08:33:20 +08:00
2026-09-23 08:33:20 +08:00
2026-09-23 08:33:20 +08:00
2026-09-23 08:33:20 +08:00
2026-09-23 08:33:20 +08:00
2026-09-24 17:19:01 +08:00
2026-09-23 08:33:20 +08:00
2026-09-23 10:20:51 +08:00
2026-09-23 08:33:20 +08:00
2026-08-15 14:26:38 +08:00
2026-09-23 08:33:20 +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-20 16:43:54 +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-14 07:22:38 +08:00
2026-09-18 11:32:04 +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-09-23 18:29:12 +08:00
2026-09-23 18:29:12 +08:00
2026-07-26 21:16:36 +08:00
2026-09-03 08:00:25 +08:00
2026-09-18 11:32:04 +08:00
2026-09-18 11:32:04 +08:00
2026-09-24 15:38:52 +08:00
2026-09-23 18:29:12 +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-09-23 18:29:12 +08:00
2026-07-22 07:46:03 +08:00
2026-09-23 18:29:12 +08:00
2026-09-09 15:52:09 +08:00
2026-08-17 08:20:42 +08:00
2026-07-15 11:21:04 +08:00
2026-09-23 18:29:12 +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-09-22 10:38:16 +08:00
2026-09-06 22:50:58 +08:00
2026-09-18 07:29:34 +08:00
2026-09-09 15:52:09 +08:00
2026-09-09 15:52:09 +08:00
2026-07-27 23:07:40 +08:00
2026-09-09 15:52:09 +08:00
2026-08-29 23:50:45 +08:00
2026-09-03 08:17:26 +08:00
2026-09-08 17:00:26 +08:00
2026-09-09 15:52:09 +08:00
2026-09-12 07:35:07 +08:00
2026-09-14 07:25:41 +08:00
2026-09-16 21:18:05 +08:00
2026-09-18 10:48:26 +08:00
2026-09-20 19:11:42 +08:00
2026-09-20 19:11:42 +08:00
2026-09-23 15:37:26 +08:00
2026-09-05 14:10:18 +08:00
2026-07-31 21:57:22 +08:00
2026-09-24 20:39:30 +08:00
2026-09-20 19:28:21 +08:00
2026-07-26 14:43:08 +08:00
2026-09-16 22:07:42 +08:00
2026-09-15 07:14:35 +08:00
2026-09-21 21:45:52 +08:00
2026-09-24 20:39:30 +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-09-22 11:38:43 +08:00
2026-06-22 18:55:20 +08:00
2026-08-01 22:19:59 +08:00
2026-09-18 09:03:55 +08:00
2026-06-21 15:47:53 +08:00
2026-09-01 15:51:37 +08:00
2026-09-20 14:34:37 +08:00
2026-08-11 13:56:02 +08:00
2026-09-20 16:43:54 +08:00
2026-07-11 16:05:30 +08:00
2026-09-17 11:35:13 +08:00
2026-09-16 18:46:18 +08:00
2026-09-18 07:29:34 +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-22 22:17:11 +08:00
2026-09-20 22:42:23 +08:00
2026-09-09 15:52:09 +08:00
2026-06-24 13:57:12 +08:00
2026-07-30 13:51:17 +08:00
2026-09-09 15:52:09 +08:00
2026-09-23 10:14:35 +08:00
2026-09-20 19:19:29 +08:00
2026-09-22 11:36:28 +08:00
2026-09-12 07:35:07 +08:00
2026-08-23 09:57:12 +08:00
2026-09-22 10:59:41 +08:00
2026-05-21 16:22:09 +08:00
2026-09-23 15:37:26 +08:00
2026-07-30 13:51:17 +08:00
2026-09-19 11:26:46 +08:00
2026-09-22 11:18:57 +08:00
2026-09-22 11:18:57 +08:00
2026-09-11 18:41:24 +08:00
2026-09-22 10:38:16 +08:00
2026-09-20 22:38:53 +08:00
2026-08-05 07:43:54 +08:00
2026-08-05 07:43:54 +08:00
2026-09-16 18:46:18 +08:00
2026-09-16 18:46:18 +08:00
2026-09-16 18:46:18 +08:00
2026-09-16 18:46:18 +08:00
2026-09-16 18:46:18 +08:00
2026-09-16 18:46:18 +08:00
2026-09-18 09:05:26 +08:00
2026-09-16 18:46:18 +08:00
2026-09-16 18:46:18 +08:00
2026-09-16 18:46:18 +08:00
2026-09-08 17:00:26 +08:00
2026-09-16 18:46:18 +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-09-14 11:10:41 +08:00
2026-09-17 07:45:19 +08:00
2026-09-18 16:59:31 +08:00
2026-09-19 15:09:36 +08:00
2026-07-21 09:23:14 +08:00
2026-09-13 19:55:58 +08:00
2026-09-13 18:04:51 +08:00
2026-09-15 08:25:08 +08:00
2026-07-30 07:53:10 +08:00
2026-08-13 21:20:49 +08:00
2026-09-16 23:57:38 +08:00
2026-09-24 09:43:16 +08:00
2026-09-24 20:39:30 +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-09-22 10:56:49 +08:00
2026-09-17 07:45:19 +08:00
2026-09-20 19:07:48 +08:00
2026-06-08 17:32:41 +08:00
2026-06-09 21:58:31 +08:00
2026-09-14 11:10:41 +08:00
2026-07-11 15:58:07 +08:00
2026-09-18 16:55: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-18 18:32:42 +08:00
2026-09-15 08:45:08 +08:00
2026-09-16 18:46:18 +08:00
2026-09-23 15:25:45 +08:00
2026-09-24 17:49:52 +08:00
2026-09-16 18:46:18 +08:00
2026-09-17 07:38:38 +08:00
2026-09-01 16:49:39 +08:00
2026-05-21 14:48:28 +08:00
2026-09-18 18:32:42 +08:00
2026-07-27 22:27:16 +08:00
2026-08-05 08:56:18 +08:00
2026-09-14 18:17:54 +08:00
2026-08-22 16:53:32 +08:00
2026-09-23 08:33:20 +08:00
2026-09-22 11:02:16 +08:00
2026-08-01 19:42:44 +08:00
2026-09-24 08:11:47 +08:00
2026-06-24 10:24:36 +08:00
2026-09-24 17:34:06 +08:00
2026-09-12 07:41:24 +08:00
2026-09-22 10:38:16 +08:00
2026-07-19 22:12:30 +08:00
2026-09-21 22:06:41 +08:00
2026-07-23 22:56:12 +08:00
2026-09-15 22:22:12 +08:00
2026-05-22 21:20:28 +08:00
2026-08-01 21:44:34 +08:00
2026-09-10 15:01:56 +08:00
2026-08-30 10:30:34 +08:00
2026-09-17 22:33:18 +08:00
2026-09-23 09:53:49 +08:00
2026-06-03 22:02:27 +08:00
2026-09-23 09:53:49 +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-24 18:11:35 +08:00
2026-09-24 18:11:35 +08:00
2026-09-14 14:05:21 +08:00
2026-06-25 08:06:17 +08:00
2026-09-23 09:53:49 +08:00
2026-09-22 11:16:33 +08:00
2026-09-20 14:34:37 +08:00
2026-09-12 10:54:39 +08:00
2026-09-14 14:05:21 +08:00
2026-07-04 13:54:04 +08:00
2026-06-12 10:20:38 +08:00
2026-09-12 07:35:07 +08:00
2026-07-04 21:51:57 +08:00
2026-09-12 14:59:04 +08:00
2026-09-24 18:06:51 +08:00
2026-07-04 21:51:57 +08:00
2026-08-24 15:38:32 +08:00
2026-09-12 07:35:07 +08:00
2026-09-16 19:56:01 +08:00
2026-08-24 15:38:32 +08:00
2026-09-10 16:46:01 +08:00
2026-07-04 21:51:57 +08:00
2026-09-14 14:09:27 +08:00
2026-09-10 16:46:01 +08:00
2026-09-12 07:35:07 +08:00
2026-09-12 07:35:07 +08:00
2026-09-12 07:35:07 +08:00
2026-08-24 07:09:08 +08:00
2026-09-16 21:18:05 +08:00
2026-09-24 17:51:31 +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-09-14 06:55:57 +08:00
2026-09-14 06:55:57 +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-09-24 15:10:25 +08:00
2026-09-24 20:39:30 +08:00
2026-06-19 21:57:03 +08:00
2026-09-17 07:59:58 +08:00
2026-07-04 11:27:19 +08:00
2026-09-24 15:47:33 +08:00
2026-09-02 17:05:36 +08:00
2026-09-22 17:27:01 +08:00
2026-09-12 14:32:05 +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-23 10:10:30 +08:00
2026-09-23 10:10:30 +08:00
2026-09-14 11:01:31 +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-09-24 17:49:52 +08:00
2026-03-25 16:28:33 +08:00
2026-09-22 22:39:49 +08:00
2026-09-18 08:02:52 +08:00
2026-09-22 22:55:12 +08:00
2026-09-19 12:14:24 +08:00
2026-08-28 08:58:59 +08:00
2026-09-24 15:47:33 +08:00
2026-07-17 23:22:16 +08:00
2026-09-18 08:02:52 +08:00
2026-09-24 15:47:33 +08:00
2026-09-23 10:16:19 +08:00
2026-06-18 10:09:46 +08:00
2026-07-08 21:58:33 +08:00
2026-09-24 17:49:52 +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-08 14:40:05 +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-09-08 16:11:49 +08:00
2026-09-23 08:33:20 +08:00
2026-09-23 08:33:20 +08:00
2026-08-25 07:49:38 +08:00
2026-08-25 07:49:38 +08:00
2026-09-16 22:05:20 +08:00
2026-06-14 10:30:45 +08:00
2026-09-12 16:20:31 +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-23 08:33:20 +08:00
2026-09-15 22:22:12 +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-09-18 14:27:33 +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-09-17 09:05:25 +08:00
2026-08-24 11:04:23 +08:00
2026-09-24 16:11:46 +08:00
2026-09-24 16:11:46 +08:00
2026-09-15 22:10:39 +08:00
2026-09-08 16:00:45 +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-09-14 06:55:57 +08:00
2026-09-14 11:01:31 +08:00
2026-08-23 09:57:12 +08:00
2026-09-19 10:56:21 +08:00
2026-09-23 08:33:20 +08:00
2026-05-21 21:18:10 +08:00
2026-09-18 07:25:49 +08:00
2026-08-23 10:27:19 +08:00
2026-08-27 18:12:05 +08:00
2026-09-22 21:10:27 +08:00
2026-09-18 07:29:34 +08:00
2026-09-06 22:30:26 +08:00
2026-07-28 22:59:14 +08:00
2026-09-16 18:46:18 +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-09-09 15:52:09 +08:00
2026-09-19 10:18:13 +08:00
2026-09-12 07:41:24 +08:00
2026-07-29 12:47:30 +08:00
2026-09-09 14:56:31 +08:00
2026-09-18 09:39:14 +08:00
2026-09-09 14:56:31 +08:00
2026-06-02 22:43:22 +08:00
2026-09-12 21:01:46 +08:00
2026-09-18 09:39:14 +08:00
2026-07-28 23:21:23 +08:00
2026-09-23 15:37:26 +08:00
2026-09-14 11:10:41 +08:00
2026-07-15 11:21:04 +08:00
2026-03-14 22:55:52 +08:00
2026-09-12 09:22:27 +08:00
2026-09-22 17:45:01 +08:00
2026-09-22 17:45:01 +08:00
2026-09-16 15:52:17 +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-24 20:30:45 +08:00
2026-09-13 18:04:51 +08:00
2026-09-15 22:22:12 +08:00
2026-08-22 16:53:32 +08:00
2026-09-18 16:59:31 +08:00
2026-07-04 11:27:19 +08:00
2026-09-18 16:59:31 +08:00
2026-09-16 23:57:38 +08:00
2026-09-16 15:52:17 +08:00
2026-09-15 08:45:08 +08:00
2026-08-29 16:56:56 +08:00
2026-08-29 16:56:56 +08:00
2026-09-15 08:45:08 +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-09-16 18:46:18 +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-18 07:48:24 +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-09-24 18:20:31 +08:00
2026-09-24 18:20:31 +08:00
2026-05-12 23:18:54 +08:00
2026-09-12 11:09:41 +08:00
2026-07-26 21:16:36 +08:00
2026-07-26 21:16:36 +08:00
2026-09-22 20:43:14 +08:00
2026-07-28 22:59:14 +08:00
2026-09-24 19:37:49 +08:00
2026-07-28 22:59:14 +08:00
2026-09-03 08:17:26 +08:00
2026-09-24 20:39:30 +08:00
2026-09-22 22:55:12 +08:00
2026-07-11 09:18:12 +08:00
2026-09-19 10:56:21 +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-09-24 20:38:12 +08:00
2026-09-10 15:48:55 +08:00
2026-09-24 20:38:12 +08:00
2026-09-24 20:38:12 +08:00
2026-09-10 15:48:55 +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-11 18:36:58 +08:00
2026-09-08 10:50:03 +08:00
2026-09-16 16:33:47 +08:00
2026-09-20 17:21:49 +08:00
2026-09-12 09:59:58 +08:00
2026-07-12 07:52:45 +08:00
2026-09-01 16:49:39 +08:00
2026-09-14 07:17:51 +08:00
2026-07-12 11:51:31 +08:00
2026-09-14 18:17:54 +08:00
2026-09-08 14:51:57 +08:00
2026-09-20 19:28:21 +08:00
2026-06-07 17:47:11 +08:00