feat(llm): carry /models badges into the model catalog
The shared DeepSeek listing decoder reads an optional per-entry
`badge: { text, tone }`. Text is one literal or translations keyed by
lowercase language id with a required English entry, each trimmed to 1
to 12 characters on one line; tone is neutral, info, success, or
warning, and an absent or unrecognized tone reads as neutral. An absent
or null badge declares none; an unreadable one is dropped with a listing
problem and never hides its model.
resolveListedCatalog keeps the badges of offered models, both DeepSeek
routes attach them through catalogModelInfo, LlmRuntime.listModels
detaches them, and the Host model catalog forwards them as
ModelCatalogModel.badge. resolveModelInfo omits the badge, so no model
request, Session event, or model-facing tool carries it.
This commit is contained in:
1 parent
ae7c911ba0
commit
663aa618c5
44 files changed
+518
-196
No files matched your search
@@ -21,11 +21,11 @@ This matrix shows which packages dispatch each harness-owned event and which pac
|
||||
| `agent/request-error` | `waterfall` | [`packages/core/agent/src/runtime-types.ts:389`](../packages/core/agent/src/runtime-types.ts) | [`agent-loop`](../packages/core/agent-loop) (`waterfall`) | [`compaction-basic`](../packages/compaction/compaction-basic), [`compaction-image-offload`](../packages/compaction/compaction-image-offload), [`llm-retry`](../packages/llm/llm-retry) |
|
||||
| `agent/status` | `emit` | [`packages/core/agent/src/runtime-types.ts:309`](../packages/core/agent/src/runtime-types.ts) | [`agent-loop`](../packages/core/agent-loop) (`emit`) | [`acp`](../packages/acp/acp), `agent-team`, [`compaction-basic`](../packages/compaction/compaction-basic), [`goal-round-driver`](../packages/goal/goal-round-driver), `server`, `session-controller` |
|
||||
| `agent/turn-stopping` | `serial` | [`packages/core/agent/src/runtime-types.ts:417`](../packages/core/agent/src/runtime-types.ts) | [`agent-loop`](../packages/core/agent-loop) (`serial`) | [`hooks-claude-code`](../packages/experimental/hooks-claude-code), [`hooks-codex`](../packages/experimental/hooks-codex), [`workspace-changes`](../packages/deliverables/workspace-changes) |
|
||||
| `api-session/activity` | `emit` | [`packages/api/session-controller/src/types.ts:600`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `api-session/added` | `emit` | [`packages/api/session-controller/src/types.ts:580`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `api-session/error` | `emit` | [`packages/api/session-controller/src/types.ts:607`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `api-session/removed` | `emit` | [`packages/api/session-controller/src/types.ts:586`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `api-session/status` | `emit` | [`packages/api/session-controller/src/types.ts:593`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `api-session/activity` | `emit` | [`packages/api/session-controller/src/types.ts:602`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `api-session/added` | `emit` | [`packages/api/session-controller/src/types.ts:582`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `api-session/error` | `emit` | [`packages/api/session-controller/src/types.ts:609`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `api-session/removed` | `emit` | [`packages/api/session-controller/src/types.ts:588`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `api-session/status` | `emit` | [`packages/api/session-controller/src/types.ts:595`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `app-boot/config-reload` | `emit` | [`packages/boot/app-boot/src/index.ts:53`](../packages/boot/app-boot/src/index.ts) | [`app-boot`](../packages/boot/app-boot) (`emit`) | [`settings`](../packages/settings/settings) |
|
||||
| `approval/request` | `waterfall` | [`packages/interaction/user-approval/src/types.ts:87`](../packages/interaction/user-approval/src/types.ts) | [`user-approval`](../packages/interaction/user-approval) (`waterfall`) | [`acp`](../packages/acp/acp), `remotes`, `server` |
|
||||
| `authorization/settled` | `emit` | [`packages/credentials/authorization/src/index.ts:57`](../packages/credentials/authorization/src/index.ts) | [`authorization`](../packages/credentials/authorization) (`events.dispatch`) | - |
|
||||
@@ -52,7 +52,7 @@ This matrix shows which packages dispatch each harness-owned event and which pac
|
||||
| `goal/changed` | `emit` | [`packages/goal/goal/src/domain.ts:114`](../packages/goal/goal/src/domain.ts) | [`goal`](../packages/goal/goal) (`emit`) | [`goal-round-driver`](../packages/goal/goal-round-driver) |
|
||||
| `hmr/change` | `emit` | [`packages/boot/hmr/src/index.ts:35`](../packages/boot/hmr/src/index.ts) | [`hmr`](../packages/boot/hmr) (`emit`) | - |
|
||||
| `hmr/reload` | `emit` | [`packages/boot/hmr/src/index.ts:40`](../packages/boot/hmr/src/index.ts) | [`hmr`](../packages/boot/hmr) (`emit`) | - |
|
||||
| `llm/adapters-updated` | `emit` | [`packages/llm/llm/src/types.ts:23`](../packages/llm/llm/src/types.ts) | [`llm`](../packages/llm/llm) (`events.dispatch`) | [`acp`](../packages/acp/acp), `remotes` |
|
||||
| `llm/adapters-updated` | `emit` | [`packages/llm/llm/src/types.ts:24`](../packages/llm/llm/src/types.ts) | [`llm`](../packages/llm/llm) (`events.dispatch`) | [`acp`](../packages/acp/acp), `remotes` |
|
||||
| `llm/stream` | `waterfall` | [`packages/llm/llm/src/index.ts:75`](../packages/llm/llm/src/index.ts) | [`llm`](../packages/llm/llm) (`waterfall`) | [`llm-replay`](../packages/test-support/llm-replay), [`session-checkpoint-policy`](../packages/session/session-checkpoint-policy), [`session-title`](../packages/session/session-title) |
|
||||
| `permission-presets/catalog-changed` | `emit` | [`packages/interaction/permission-presets/src/types.ts:48`](../packages/interaction/permission-presets/src/types.ts) | [`permission-presets`](../packages/interaction/permission-presets) (`events.dispatch`) | `remotes` |
|
||||
| `plugin-manager/changed` | `emit` | [`packages/boot/plugin-manager/src/types.ts:394`](../packages/boot/plugin-manager/src/types.ts) | [`plugin-manager`](../packages/boot/plugin-manager) (`emit`) | `remotes` |
|
||||
|
||||
@@ -23,11 +23,11 @@
|
||||
| `agent/request-error` | `waterfall` | [`packages/core/agent/src/runtime-types.ts:389`](../packages/core/agent/src/runtime-types.ts) | [`agent-loop`](../packages/core/agent-loop) (`waterfall`) | [`compaction-basic`](../packages/compaction/compaction-basic), [`compaction-image-offload`](../packages/compaction/compaction-image-offload), [`llm-retry`](../packages/llm/llm-retry) |
|
||||
| `agent/status` | `emit` | [`packages/core/agent/src/runtime-types.ts:309`](../packages/core/agent/src/runtime-types.ts) | [`agent-loop`](../packages/core/agent-loop) (`emit`) | [`acp`](../packages/acp/acp), `agent-team`, [`compaction-basic`](../packages/compaction/compaction-basic), [`goal-round-driver`](../packages/goal/goal-round-driver), `server`, `session-controller` |
|
||||
| `agent/turn-stopping` | `serial` | [`packages/core/agent/src/runtime-types.ts:417`](../packages/core/agent/src/runtime-types.ts) | [`agent-loop`](../packages/core/agent-loop) (`serial`) | [`hooks-claude-code`](../packages/experimental/hooks-claude-code), [`hooks-codex`](../packages/experimental/hooks-codex), [`workspace-changes`](../packages/deliverables/workspace-changes) |
|
||||
| `api-session/activity` | `emit` | [`packages/api/session-controller/src/types.ts:600`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `api-session/added` | `emit` | [`packages/api/session-controller/src/types.ts:580`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `api-session/error` | `emit` | [`packages/api/session-controller/src/types.ts:607`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `api-session/removed` | `emit` | [`packages/api/session-controller/src/types.ts:586`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `api-session/status` | `emit` | [`packages/api/session-controller/src/types.ts:593`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `api-session/activity` | `emit` | [`packages/api/session-controller/src/types.ts:602`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `api-session/added` | `emit` | [`packages/api/session-controller/src/types.ts:582`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `api-session/error` | `emit` | [`packages/api/session-controller/src/types.ts:609`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `api-session/removed` | `emit` | [`packages/api/session-controller/src/types.ts:588`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `api-session/status` | `emit` | [`packages/api/session-controller/src/types.ts:595`](../packages/api/session-controller/src/types.ts) | `session-controller` (`emit`) | `remotes` |
|
||||
| `app-boot/config-reload` | `emit` | [`packages/boot/app-boot/src/index.ts:53`](../packages/boot/app-boot/src/index.ts) | [`app-boot`](../packages/boot/app-boot) (`emit`) | [`settings`](../packages/settings/settings) |
|
||||
| `approval/request` | `waterfall` | [`packages/interaction/user-approval/src/types.ts:87`](../packages/interaction/user-approval/src/types.ts) | [`user-approval`](../packages/interaction/user-approval) (`waterfall`) | [`acp`](../packages/acp/acp), `remotes`, `server` |
|
||||
| `authorization/settled` | `emit` | [`packages/credentials/authorization/src/index.ts:57`](../packages/credentials/authorization/src/index.ts) | [`authorization`](../packages/credentials/authorization) (`events.dispatch`) | - |
|
||||
@@ -54,7 +54,7 @@
|
||||
| `goal/changed` | `emit` | [`packages/goal/goal/src/domain.ts:114`](../packages/goal/goal/src/domain.ts) | [`goal`](../packages/goal/goal) (`emit`) | [`goal-round-driver`](../packages/goal/goal-round-driver) |
|
||||
| `hmr/change` | `emit` | [`packages/boot/hmr/src/index.ts:35`](../packages/boot/hmr/src/index.ts) | [`hmr`](../packages/boot/hmr) (`emit`) | - |
|
||||
| `hmr/reload` | `emit` | [`packages/boot/hmr/src/index.ts:40`](../packages/boot/hmr/src/index.ts) | [`hmr`](../packages/boot/hmr) (`emit`) | - |
|
||||
| `llm/adapters-updated` | `emit` | [`packages/llm/llm/src/types.ts:23`](../packages/llm/llm/src/types.ts) | [`llm`](../packages/llm/llm) (`events.dispatch`) | [`acp`](../packages/acp/acp), `remotes` |
|
||||
| `llm/adapters-updated` | `emit` | [`packages/llm/llm/src/types.ts:24`](../packages/llm/llm/src/types.ts) | [`llm`](../packages/llm/llm) (`events.dispatch`) | [`acp`](../packages/acp/acp), `remotes` |
|
||||
| `llm/stream` | `waterfall` | [`packages/llm/llm/src/index.ts:75`](../packages/llm/llm/src/index.ts) | [`llm`](../packages/llm/llm) (`waterfall`) | [`llm-replay`](../packages/test-support/llm-replay), [`session-checkpoint-policy`](../packages/session/session-checkpoint-policy), [`session-title`](../packages/session/session-title) |
|
||||
| `permission-presets/catalog-changed` | `emit` | [`packages/interaction/permission-presets/src/types.ts:48`](../packages/interaction/permission-presets/src/types.ts) | [`permission-presets`](../packages/interaction/permission-presets) (`events.dispatch`) | `remotes` |
|
||||
| `plugin-manager/changed` | `emit` | [`packages/boot/plugin-manager/src/types.ts:394`](../packages/boot/plugin-manager/src/types.ts) | [`plugin-manager`](../packages/boot/plugin-manager) (`emit`) | `remotes` |
|
||||
|
||||
@@ -552,8 +552,8 @@
|
||||
en: 028791baa24a6a0a
|
||||
zh: 028791baa24a6a0a
|
||||
/session-persistence-event-catalog/resolved-persistence-types/in-history:
|
||||
en: 3e9695c61a9e30c8
|
||||
zh: cdc765b18de2d665
|
||||
en: 501878da63328670
|
||||
zh: 8f22e47d809b0564
|
||||
/session-persistence-event-catalog/resolved-persistence-types/in-progress:
|
||||
en: 61de2b0c9de8c15b
|
||||
zh: 61de2b0c9de8c15b
|
||||
@@ -987,11 +987,11 @@
|
||||
en: 87f2aaf2b23a5249
|
||||
zh: 3d6c5ed6603bee31
|
||||
/session-persistence-event-catalog/resolved-persistence-types/contentblock:
|
||||
en: d3eb9a17ab27856f
|
||||
zh: a71b16a1e36a36ac
|
||||
en: e13fed596c512f6c
|
||||
zh: 516df9e1d246151b
|
||||
/session-persistence-event-catalog/resolved-persistence-types/contentblocktype:
|
||||
en: 27dc8b92bae26f1f
|
||||
zh: e05ace867fb59ae1
|
||||
en: 7569a19f6b02eaff
|
||||
zh: aca4414298167b81
|
||||
/session-persistence-event-catalog/resolved-persistence-types/contentblock~2:
|
||||
en: 9207aa0489ccf8db
|
||||
zh: 850dd92da6769998
|
||||
@@ -1023,11 +1023,11 @@
|
||||
en: 0bf0caf488d14011
|
||||
zh: 734501852de79a21
|
||||
/session-persistence-event-catalog/resolved-persistence-types/fileblock:
|
||||
en: 4cab6c6ed2abedd8
|
||||
zh: a6cdd344e6c36c24
|
||||
en: 3a9d6dedd1682e79
|
||||
zh: 1a5febe4b91f4ce5
|
||||
/session-persistence-event-catalog/resolved-persistence-types/finishreason:
|
||||
en: 49fd9834247f3cc2
|
||||
zh: 4378ead90069d0d6
|
||||
en: a140f3c2ab4f213f
|
||||
zh: 2d90532ca0327934
|
||||
/session-persistence-event-catalog/resolved-persistence-types/goalblockreason:
|
||||
en: b1589f9578a585dd
|
||||
zh: 3783dbbd8793bb37
|
||||
@@ -1062,8 +1062,8 @@
|
||||
en: 76ee1e266cd651da
|
||||
zh: 55c7c95a223ccbed
|
||||
/session-persistence-event-catalog/resolved-persistence-types/imageblock:
|
||||
en: ccafbcae37570ce2
|
||||
zh: fbf43a8c7ff26154
|
||||
en: 8bbae639ae2f78f0
|
||||
zh: 5e7c2d151db69350
|
||||
/session-persistence-event-catalog/resolved-persistence-types/imagemediatype:
|
||||
en: 32d86426192176d5
|
||||
zh: c86291efc19bdc91
|
||||
@@ -1113,8 +1113,8 @@
|
||||
en: 8f669d7819805099
|
||||
zh: 391d51d7835afe02
|
||||
/session-persistence-event-catalog/resolved-persistence-types/llmfailure:
|
||||
en: a18d2091f7e64726
|
||||
zh: 550fc25036bd096e
|
||||
en: 54e8bc93176688f2
|
||||
zh: 705888795dfa10f7
|
||||
/session-persistence-event-catalog/resolved-persistence-types/llmretryeventdata:
|
||||
en: 6dbe099c62f7c226
|
||||
zh: 6fd788f63c038c91
|
||||
@@ -1173,11 +1173,11 @@
|
||||
en: aca35dac4f9d2add
|
||||
zh: 6a4bdb95e3c7b0ce
|
||||
/session-persistence-event-catalog/resolved-persistence-types/reasoningblock:
|
||||
en: 07e04c3e336f880f
|
||||
zh: 6f8986ede9994fa1
|
||||
en: 1f4324ba79438a7c
|
||||
zh: 51ca563b75c6ed44
|
||||
/session-persistence-event-catalog/resolved-persistence-types/replayenvelope:
|
||||
en: 488050ba0b6438b4
|
||||
zh: 2bf607b5ad51e39d
|
||||
en: b6b2d095b9365db2
|
||||
zh: 7d2c0f689fdef497
|
||||
/session-persistence-event-catalog/resolved-persistence-types/requestcontext:
|
||||
en: 00058b6c2220cdcb
|
||||
zh: a3426a8c69123e2e
|
||||
@@ -1224,8 +1224,8 @@
|
||||
en: ecc15ebadb77afdf
|
||||
zh: 97ac27d6a4175f6f
|
||||
/session-persistence-event-catalog/resolved-persistence-types/streamchunk:
|
||||
en: 6a9cc39c2df1b476
|
||||
zh: 697ea4d14d77f59c
|
||||
en: eb2c5c85f058eb1a
|
||||
zh: 08fddee941675faf
|
||||
/session-persistence-event-catalog/resolved-persistence-types/subagentcatalogevent:
|
||||
en: 725539dcd5c335ed
|
||||
zh: 5ca08d3667f84ff9
|
||||
@@ -1263,8 +1263,8 @@
|
||||
en: 9bff57038f472770
|
||||
zh: 4eec0e793ae16d53
|
||||
/session-persistence-event-catalog/resolved-persistence-types/textblock:
|
||||
en: c5fcd2cdd37ea387
|
||||
zh: 9c678fbdea0bf25c
|
||||
en: 0249263bccd3dc78
|
||||
zh: acb68949897f36fd
|
||||
/session-persistence-event-catalog/resolved-persistence-types/todoitem:
|
||||
en: ee24f9407df530ac
|
||||
zh: 310bedf3ac730d77
|
||||
@@ -1272,20 +1272,20 @@
|
||||
en: 8bf023246cbd0887
|
||||
zh: dbf7113574c1bf59
|
||||
/session-persistence-event-catalog/resolved-persistence-types/tokenusage:
|
||||
en: 0aa983637b619157
|
||||
zh: e0f68258606aae78
|
||||
en: bdf729b844aa389c
|
||||
zh: c086d4fbc87c79c0
|
||||
/session-persistence-event-catalog/resolved-persistence-types/tooladditionblock:
|
||||
en: 7ba7c600fc529015
|
||||
zh: 94b69e9d5bd1fcfd
|
||||
en: 459629a7f89d2e04
|
||||
zh: 094594f536977b3d
|
||||
/session-persistence-event-catalog/resolved-persistence-types/toolcallblock:
|
||||
en: 78482b09dc227306
|
||||
zh: fb5852ac93beb20e
|
||||
en: e8caf568e3c6b167
|
||||
zh: acb1f6dcab097977
|
||||
/session-persistence-event-catalog/resolved-persistence-types/toolmessagesource:
|
||||
en: 036b2595215410bb
|
||||
zh: 41792808ebac1fa3
|
||||
/session-persistence-event-catalog/resolved-persistence-types/toolremovalblock:
|
||||
en: fdac0df45529e14c
|
||||
zh: c5e38de83a0e0a42
|
||||
en: d4cfdb821579961e
|
||||
zh: e33e6b0e93888c6b
|
||||
/session-persistence-event-catalog/resolved-persistence-types/toolrestriction:
|
||||
en: d70be5d46cb1ef7d
|
||||
zh: d3d5a05d62e443fe
|
||||
@@ -1293,8 +1293,8 @@
|
||||
en: 2258683c3cfa4ce3
|
||||
zh: 5663aa76c911761b
|
||||
/session-persistence-event-catalog/resolved-persistence-types/toolschema:
|
||||
en: 689c56f199c0035d
|
||||
zh: 48bcb9d508d1892c
|
||||
en: 3075ae80fd97db54
|
||||
zh: 9cc517292bd98b56
|
||||
/session-persistence-event-catalog/resolved-persistence-types/toolschema~2:
|
||||
en: 12c14727bb7834e2
|
||||
zh: b0f3c877873c36db
|
||||
@@ -1347,8 +1347,8 @@
|
||||
en: 2786fef560851bb4
|
||||
zh: 5d787475356b2606
|
||||
/session-persistence-event-catalog/resolved-persistence-types/string:
|
||||
en: a9d7dc010ada133d
|
||||
zh: 9bd682adee72d04e
|
||||
en: 1525c04d0ebfc56e
|
||||
zh: 902d37c1de80bfe7
|
||||
/session-persistence-event-catalog/resolved-persistence-types/string~2:
|
||||
en: 0089620bf4638263
|
||||
zh: 1922bef1713094bb
|
||||
@@ -1494,11 +1494,11 @@
|
||||
en: 9ffa836bf88fd7b4
|
||||
zh: 7ca8bc7ebefeadb8
|
||||
/session-persistence-event-catalog/resolved-persistence-types/failure-kind-aborted:
|
||||
en: 349cd90f2598fd12
|
||||
zh: 1eda02d520ad5d76
|
||||
en: f0e715f0fdaf08fa
|
||||
zh: ab28e85aad591d69
|
||||
/session-persistence-event-catalog/resolved-persistence-types/failure-kind-error:
|
||||
en: 51af619ed8532a43
|
||||
zh: a5ad878c63d0e046
|
||||
en: 821ba2489295bff5
|
||||
zh: b5682cea9895aff7
|
||||
/session-persistence-event-catalog/resolved-persistence-types/header-reason-startsseries:
|
||||
en: 0b1ca5c765d716d1
|
||||
zh: dd939095c250c4eb
|
||||
@@ -1623,8 +1623,8 @@
|
||||
en: c6f68741f8631d4f
|
||||
zh: 090b58f2b86c02d0
|
||||
/session-persistence-event-catalog/resolved-persistence-types/kind-max-tokens:
|
||||
en: f85b7a64a6a5f1f7
|
||||
zh: 3f4ad5183e1020fd
|
||||
en: 7f7b2be306817679
|
||||
zh: a9047248ab622f89
|
||||
/session-persistence-event-catalog/resolved-persistence-types/kind-model-selection:
|
||||
en: a5165486dca91116
|
||||
zh: b7051ca8167806ef
|
||||
@@ -1740,8 +1740,8 @@
|
||||
en: c99d8a67438771ff
|
||||
zh: 070f6160fc419fa5
|
||||
/session-persistence-event-catalog/resolved-persistence-types/kind-stop:
|
||||
en: 09ce6f3196938ccf
|
||||
zh: 1b8d5540f47fd3aa
|
||||
en: 01db92f4780227c2
|
||||
zh: e04e2eeb4af38d5c
|
||||
/session-persistence-event-catalog/resolved-persistence-types/kind-time-context:
|
||||
en: 5733addfc8b12a47
|
||||
zh: aaf60d5396e30971
|
||||
@@ -1785,8 +1785,8 @@
|
||||
en: b05115b92a176f3a
|
||||
zh: 22ba93572bd0209a
|
||||
/session-persistence-event-catalog/resolved-persistence-types/kind-tool-calls:
|
||||
en: 65fb50e399cddd05
|
||||
zh: 9e713bbcb1b7db35
|
||||
en: d09c7fcfd1693606
|
||||
zh: a04e0bd15f5b87ea
|
||||
/session-persistence-event-catalog/resolved-persistence-types/kind-tool-goal:
|
||||
en: e11ea3169004ae33
|
||||
zh: 7d6a3a77cb9bf205
|
||||
@@ -1833,8 +1833,8 @@
|
||||
en: 5a0bbf4c76266ac5
|
||||
zh: 0b20854f90f9d74d
|
||||
/session-persistence-event-catalog/resolved-persistence-types/kind-user:
|
||||
en: 81620af099525ee9
|
||||
zh: 812db2fdf9e5d309
|
||||
en: 1dd9740285c43aff
|
||||
zh: 093fab99146cac11
|
||||
/session-persistence-event-catalog/resolved-persistence-types/kind-user-approval:
|
||||
en: a52d2dfbaf844127
|
||||
zh: 4c5306ca40f20873
|
||||
@@ -1941,11 +1941,11 @@
|
||||
en: bb507524bcc39c53
|
||||
zh: 8314898562437473
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-block-end:
|
||||
en: f23d45580ba6d17b
|
||||
zh: 4bdf4fc300a5b287
|
||||
en: 7d32804297d491b5
|
||||
zh: 576dd6ae4c20269b
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-block-start:
|
||||
en: ec1f0e5653a604db
|
||||
zh: f905b8ce4d3730be
|
||||
en: 696b2ce785944757
|
||||
zh: 409439c0ab79c375
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-chunk:
|
||||
en: 2186ede3e9917aea
|
||||
zh: 0cfef64045dce95b
|
||||
@@ -1986,8 +1986,8 @@
|
||||
en: 14e4b48d856bcf57
|
||||
zh: 72ba176535dc7f3f
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-finish:
|
||||
en: 76f708f530d4fc9a
|
||||
zh: b6f1100c734a5991
|
||||
en: fbe3ac9e2928f3e8
|
||||
zh: e6decad7581c5550
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-goal-change:
|
||||
en: aad2516b62d3ee83
|
||||
zh: e7204c4dc4e8e408
|
||||
@@ -2025,8 +2025,8 @@
|
||||
en: 34e5591d75322649
|
||||
zh: a216839f305c9796
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-reasoning-delta:
|
||||
en: d1bf7fbf222b717a
|
||||
zh: e88811c2e0d45fb6
|
||||
en: d574924479e58c97
|
||||
zh: 53d01100296b7139
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-request-context:
|
||||
en: f8addb1a01da9ca1
|
||||
zh: 4ef11ebddd302c05
|
||||
@@ -2085,8 +2085,8 @@
|
||||
en: 1484738718de5312
|
||||
zh: 3e6fbe9c64068225
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-text-delta:
|
||||
en: 38a0279d2ba3a230
|
||||
zh: 42d7be8102d27995
|
||||
en: ab0277c3eb6e24cd
|
||||
zh: c650d2f8541d1f52
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-todo-write:
|
||||
en: 2fa7ba77598a95b4
|
||||
zh: 50972b51d77e9155
|
||||
@@ -2094,8 +2094,8 @@
|
||||
en: 32f732b97739e4d2
|
||||
zh: f288e48e356969c0
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-tool-call-delta:
|
||||
en: 5822c230b4880a6e
|
||||
zh: e0b86bdee2834b24
|
||||
en: 6470bcb195c76ea0
|
||||
zh: 6f04e669f9cf4f15
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-tool-workflow-agent-end:
|
||||
en: 8eb5e1eb95722bc7
|
||||
zh: 8dd5980029600648
|
||||
@@ -2127,8 +2127,8 @@
|
||||
en: 1b045de96172be4b
|
||||
zh: 8a15c6f35b576b37
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-usage:
|
||||
en: 8eec3bb6eee5085b
|
||||
zh: 04bb3281fd7bd95c
|
||||
en: fa508da6e2ca9166
|
||||
zh: 8e3207e63f4d9ad5
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-user-message:
|
||||
en: d6d9401f19a66ee8
|
||||
zh: 569fdddf887660a2
|
||||
|
||||
+30
-30
@@ -1997,7 +1997,7 @@ SHA-256: `ebb768d85ec87fb68e42fc14fd7d8535b5ac11791b14d04c6770180f0a719bf8`
|
||||
|
||||
SHA-256: `f311671e07bc7fa645a0b6597de9966b97147956565296ba76a36543801b66c5`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:414`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:434`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
`"in-history"`
|
||||
|
||||
@@ -3256,7 +3256,7 @@ Sources: [`packages/compaction/compaction/src/checkpoint.ts:22`](../packages/com
|
||||
|
||||
SHA-256: `8064c03c87c357fd1575cb9395ce86e6dcbe2d275bf7717864a02cddf01827d5`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:150`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:151`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
One of:
|
||||
|
||||
@@ -3278,7 +3278,7 @@ One of:
|
||||
|
||||
SHA-256: `7d65acf0a3a43a8f445ce5d3320b42eca492739fc931b2a7516bfb8368dc2c68`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:148`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:149`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
One of:
|
||||
|
||||
@@ -3471,7 +3471,7 @@ Sources: [`packages/attachment/attachment/src/types.ts:39`](../packages/attachme
|
||||
|
||||
SHA-256: `f2da0f27c1e6add59982c37b15e4a4912c5b33466859cce3b13d503600e24aef`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:98`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:99`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -3488,7 +3488,7 @@ Sources: [`packages/llm/llm/src/types.ts:98`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
SHA-256: `5808e36c95355f0e745201b5db1b6bcec4ebf5adb75d3e82d7d59cc89635ab80`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:165`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:166`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| kind | Form property | Other required fields | Full definition |
|
||||
|---|---|---|---|
|
||||
@@ -3726,7 +3726,7 @@ Sources: [`packages/attachment/attachment/src/types.ts:11`](../packages/attachme
|
||||
|
||||
SHA-256: `12d5808fac1996b9b3c2afa806e03022252ba2d7b88f835862ae1896591f60c7`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:79`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:80`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -4034,7 +4034,7 @@ Sources: [`packages/llm/llm/src/call-config.ts:54`](../packages/llm/llm/src/call
|
||||
|
||||
SHA-256: `5f2117d1856a5ab43c28371faa978ebfaa48f8c7d734ea3fc94842210df83dca`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:41`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:42`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -4494,7 +4494,7 @@ Sources: [`packages/core/tool-executor-ptc/src/types.ts:12`](../packages/core/to
|
||||
|
||||
SHA-256: `814d9434e1ddf9078612b3b34322f26e9363b469213335007f7e9ba7fee9464e`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:68`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:69`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -4511,7 +4511,7 @@ Sources: [`packages/llm/llm/src/types.ts:68`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
SHA-256: `0acd94fe8794574c9ae72c7855ee16d29c546096d4af760d16d1225385764555`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:448`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:468`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -4806,7 +4806,7 @@ Sources: [`packages/skill/skill/src/index.ts:146`](../packages/skill/skill/src/i
|
||||
|
||||
SHA-256: `47e9095591ae36e7c39ee62553097772f2bfa16304536a72dbbc3f691f605180`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:470`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:490`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
One of:
|
||||
|
||||
@@ -5059,7 +5059,7 @@ One of:
|
||||
|
||||
SHA-256: `4e887768586528565381dadbddee6cef555874148089f4579e0b4b1ad096fc9c`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:62`](../packages/llm/llm/src/types.ts) · [`packages/web/web-search-deepseek/src/provider.ts:66`](../packages/web/web-search-deepseek/src/provider.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:63`](../packages/llm/llm/src/types.ts) · [`packages/web/web-search-deepseek/src/provider.ts:66`](../packages/web/web-search-deepseek/src/provider.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -5101,7 +5101,7 @@ Array of [`TodoItem`](#persistence-type-sha256-a99f76fd149051c363f960bfeeb5b9509
|
||||
|
||||
SHA-256: `fec5442b9ee4122e10514d81d5a43648003fe8bfb7ee2ba50c0cdbdd383ed394`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:175`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:176`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -5122,7 +5122,7 @@ Sources: [`packages/llm/llm/src/types.ts:175`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
SHA-256: `8e611bf46821e5003a1605a73560a6f56388295149d449dfe2142d5ec335f29c`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:115`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:116`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -5140,7 +5140,7 @@ Sources: [`packages/llm/llm/src/types.ts:115`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
SHA-256: `c1f0f17b6493b85db6453bb30e01b208d703731b25bc1e68e5d4fc72eea9cdea`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:105`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:106`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -5176,7 +5176,7 @@ Sources: [`packages/llm/llm/src/message.ts:29`](../packages/llm/llm/src/message.
|
||||
|
||||
SHA-256: `43e311235aa537df1bacdd92d144df8a952337a76e9ac892cdf670f1a797bad8`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:127`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:128`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -5231,7 +5231,7 @@ Sources: [`packages/llm/llm/src/message.ts:173`](../packages/llm/llm/src/message
|
||||
|
||||
SHA-256: `66ba70f6f068da443f969a0b947a013c3addd776b9b60a0a393759c19825e9a2`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:491`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:511`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -5583,7 +5583,7 @@ Array of `number`.
|
||||
|
||||
SHA-256: `4cd48f3e5108bd6ebedf7301c3638839b8b2b9db8dbd493974177fbdeb91a01b`
|
||||
|
||||
Sources: [`packages/api/session-controller/src/types.ts:380`](../packages/api/session-controller/src/types.ts) · [`packages/attachment/attachment/src/brand.ts:6`](../packages/attachment/attachment/src/brand.ts) · [`packages/compaction/compaction/src/brand.ts:4`](../packages/compaction/compaction/src/brand.ts) · [`packages/core/session/src/types.ts:21`](../packages/core/session/src/types.ts) · [`packages/experimental/agent-team/src/types.ts:21`](../packages/experimental/agent-team/src/types.ts) · [`packages/experimental/agent-team/src/types.ts:33`](../packages/experimental/agent-team/src/types.ts) · [`packages/experimental/agent-team/src/types.ts:9`](../packages/experimental/agent-team/src/types.ts) · [`packages/experimental/webhook/src/brand.ts:12`](../packages/experimental/webhook/src/brand.ts) · [`packages/experimental/webhook/src/brand.ts:6`](../packages/experimental/webhook/src/brand.ts) · [`packages/experimental/webhook/src/brand.ts:9`](../packages/experimental/webhook/src/brand.ts) · [`packages/feedback/message-feedback/src/types.ts:14`](../packages/feedback/message-feedback/src/types.ts) · [`packages/goal/goal/src/types.ts:17`](../packages/goal/goal/src/types.ts) · [`packages/interaction/commands/src/brand.ts:31`](../packages/interaction/commands/src/brand.ts) · [`packages/interaction/user-approval/src/types.ts:17`](../packages/interaction/user-approval/src/types.ts) · [`packages/jobs/jobs/src/brand.ts:19`](../packages/jobs/jobs/src/brand.ts) · [`packages/llm/llm-retry/src/brand.ts:4`](../packages/llm/llm-retry/src/brand.ts) · [`packages/llm/llm/src/brand.ts:16`](../packages/llm/llm/src/brand.ts) · [`packages/llm/llm/src/brand.ts:31`](../packages/llm/llm/src/brand.ts) · [`packages/llm/llm/src/brand.ts:43`](../packages/llm/llm/src/brand.ts) · [`packages/llm/llm/src/brand.ts:67`](../packages/llm/llm/src/brand.ts) · [`packages/schedule/schedule/src/types.ts:14`](../packages/schedule/schedule/src/types.ts) · [`packages/session/session-title/src/index.ts:42`](../packages/session/session-title/src/index.ts) · [`packages/session/session-title/src/types.ts:17`](../packages/session/session-title/src/types.ts) · [`packages/workflow/workflow/src/types.ts:13`](../packages/workflow/workflow/src/types.ts)
|
||||
Sources: [`packages/api/session-controller/src/types.ts:382`](../packages/api/session-controller/src/types.ts) · [`packages/attachment/attachment/src/brand.ts:6`](../packages/attachment/attachment/src/brand.ts) · [`packages/compaction/compaction/src/brand.ts:4`](../packages/compaction/compaction/src/brand.ts) · [`packages/core/session/src/types.ts:21`](../packages/core/session/src/types.ts) · [`packages/experimental/agent-team/src/types.ts:21`](../packages/experimental/agent-team/src/types.ts) · [`packages/experimental/agent-team/src/types.ts:33`](../packages/experimental/agent-team/src/types.ts) · [`packages/experimental/agent-team/src/types.ts:9`](../packages/experimental/agent-team/src/types.ts) · [`packages/experimental/webhook/src/brand.ts:12`](../packages/experimental/webhook/src/brand.ts) · [`packages/experimental/webhook/src/brand.ts:6`](../packages/experimental/webhook/src/brand.ts) · [`packages/experimental/webhook/src/brand.ts:9`](../packages/experimental/webhook/src/brand.ts) · [`packages/feedback/message-feedback/src/types.ts:14`](../packages/feedback/message-feedback/src/types.ts) · [`packages/goal/goal/src/types.ts:17`](../packages/goal/goal/src/types.ts) · [`packages/interaction/commands/src/brand.ts:31`](../packages/interaction/commands/src/brand.ts) · [`packages/interaction/user-approval/src/types.ts:17`](../packages/interaction/user-approval/src/types.ts) · [`packages/jobs/jobs/src/brand.ts:19`](../packages/jobs/jobs/src/brand.ts) · [`packages/llm/llm-retry/src/brand.ts:4`](../packages/llm/llm-retry/src/brand.ts) · [`packages/llm/llm/src/brand.ts:16`](../packages/llm/llm/src/brand.ts) · [`packages/llm/llm/src/brand.ts:31`](../packages/llm/llm/src/brand.ts) · [`packages/llm/llm/src/brand.ts:43`](../packages/llm/llm/src/brand.ts) · [`packages/llm/llm/src/brand.ts:67`](../packages/llm/llm/src/brand.ts) · [`packages/schedule/schedule/src/types.ts:14`](../packages/schedule/schedule/src/types.ts) · [`packages/session/session-title/src/index.ts:42`](../packages/session/session-title/src/index.ts) · [`packages/session/session-title/src/types.ts:17`](../packages/session/session-title/src/types.ts) · [`packages/workflow/workflow/src/types.ts:13`](../packages/workflow/workflow/src/types.ts)
|
||||
|
||||
`string`
|
||||
|
||||
@@ -6242,7 +6242,7 @@ Sources: [`packages/core/session/src/types.ts:377`](../packages/core/session/src
|
||||
|
||||
SHA-256: `8e31bb958e9b015e6f8407eaade32217068159e816f3cc99c3ad76eb889732e0`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:160`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:161`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -6255,7 +6255,7 @@ Sources: [`packages/llm/llm/src/types.ts:160`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
SHA-256: `693f4952fb5565da96c06bace8924b098ac2fbc915fde0ff8019701183abc057`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:161`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:162`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -6766,7 +6766,7 @@ Sources: [`packages/core/session/src/types.ts:197`](../packages/core/session/src
|
||||
|
||||
SHA-256: `ab7ec5f9eb2c6dfacca5da4c37cf7ba85d04172053ee6b1ebf1709ffcd99c1a7`
|
||||
|
||||
Sources: [`packages/core/session/src/types.ts:216`](../packages/core/session/src/types.ts) · [`packages/llm/llm/src/types.ts:159`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/core/session/src/types.ts:216`](../packages/core/session/src/types.ts) · [`packages/llm/llm/src/types.ts:160`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -7206,7 +7206,7 @@ SHA-256: `28936c614bd4e7e2774806edcbb3cbfd3ee643ac1cbf0bbdff43d915505a8fe3`
|
||||
|
||||
SHA-256: `1d76406cbb2ddadb0dbbb51e9d8bc6cf678fed455cf8eb512f36f7c86d37a62f`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:157`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:158`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -7374,7 +7374,7 @@ SHA-256: `49dab019d00e8c26f27ad2ccff7b604d69e323ae4d17e0d2a7b6b8a830b1ade2`
|
||||
|
||||
SHA-256: `287211846beea1eccb5f9acee00d20388a38fcb2e95858fa2332d6f58529379a`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:158`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:159`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -7554,7 +7554,7 @@ Sources: [`packages/core/tools/src/index.ts:28`](../packages/core/tools/src/inde
|
||||
|
||||
SHA-256: `6dacb1584f2bfbe209dc6b6f578d51da6d55595f64d0e63c727c98f359278def`
|
||||
|
||||
Sources: [`packages/api/session-controller/src/types.ts:389`](../packages/api/session-controller/src/types.ts)
|
||||
Sources: [`packages/api/session-controller/src/types.ts:391`](../packages/api/session-controller/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -8046,7 +8046,7 @@ SHA-256: `1033093edd0db80ff410e00830b523405e00bb0c7684948e531ff65095799625`
|
||||
|
||||
SHA-256: `d4b739491689cc6bb13d07ffac1a32239875abda364c0d5edd8f74faf5e9c00d`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:475`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:495`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -8060,7 +8060,7 @@ Sources: [`packages/llm/llm/src/types.ts:475`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
SHA-256: `3bec87f9e6ab3da03346f49923d3c51621debc0159df68605e543c3b2a026f90`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:471`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:491`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -8278,7 +8278,7 @@ SHA-256: `b54940ff095c17e874c5be03815f4c2145a256cf3a1d34dae4ab2f7769dfffe8`
|
||||
|
||||
SHA-256: `a2b49331716ba0a7078b026d145306a70eae64b7313c3e6204bd931e75ec3bb1`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:477`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:497`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -8484,7 +8484,7 @@ Sources: [`packages/llm/llm/src/assistant-stream.ts:28`](../packages/llm/llm/src
|
||||
|
||||
SHA-256: `2abb711460e6238d851c30f3e4bdd87a2aa1887ee70575b3d3b7b25610673095`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:473`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:493`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -8804,7 +8804,7 @@ Sources: [`packages/llm/llm/src/assistant-stream.ts:21`](../packages/llm/llm/src
|
||||
|
||||
SHA-256: `95080295115fbd83544520ba247b68a03790131f6a2eac323d388758cb542f65`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:472`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:492`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -8852,7 +8852,7 @@ Sources: [`packages/llm/llm/src/assistant-stream.ts:35`](../packages/llm/llm/src
|
||||
|
||||
SHA-256: `88a610b831be6d92612a464be5c7d0b88ec24d97bd299837bf74bf7672183c9a`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:474`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:494`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -9030,7 +9030,7 @@ SHA-256: `aa0957eca50aeb28bcd2e6930b95809926edacb550c8c340ba526ba6b861b3d8`
|
||||
|
||||
SHA-256: `f1a96afe7503ac1817de769cd0ba13d9b80111c7034c50106b3344ecc14cc515`
|
||||
|
||||
Sources: [`packages/llm/llm/src/types.ts:476`](../packages/llm/llm/src/types.ts)
|
||||
Sources: [`packages/llm/llm/src/types.ts:496`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
|
||||
@@ -1999,7 +1999,7 @@ SHA-256: `ebb768d85ec87fb68e42fc14fd7d8535b5ac11791b14d04c6770180f0a719bf8`
|
||||
|
||||
SHA-256: `f311671e07bc7fa645a0b6597de9966b97147956565296ba76a36543801b66c5`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:414`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:434`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
`"in-history"`
|
||||
|
||||
@@ -3258,7 +3258,7 @@ SHA-256: `31907de9563751822af6d9be02bafaf26faa098bbd1cb412524134d577cc1648`
|
||||
|
||||
SHA-256: `8064c03c87c357fd1575cb9395ce86e6dcbe2d275bf7717864a02cddf01827d5`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:150`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:151`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
以下类型之一:
|
||||
|
||||
@@ -3280,7 +3280,7 @@ SHA-256: `8064c03c87c357fd1575cb9395ce86e6dcbe2d275bf7717864a02cddf01827d5`
|
||||
|
||||
SHA-256: `7d65acf0a3a43a8f445ce5d3320b42eca492739fc931b2a7516bfb8368dc2c68`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:148`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:149`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
以下类型之一:
|
||||
|
||||
@@ -3473,7 +3473,7 @@ SHA-256: `f19bee84bf3d20904553cdcd57465232bc1c2a194f54c4d195292ba0487223a6`
|
||||
|
||||
SHA-256: `f2da0f27c1e6add59982c37b15e4a4912c5b33466859cce3b13d503600e24aef`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:98`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:99`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -3490,7 +3490,7 @@ SHA-256: `f2da0f27c1e6add59982c37b15e4a4912c5b33466859cce3b13d503600e24aef`
|
||||
|
||||
SHA-256: `5808e36c95355f0e745201b5db1b6bcec4ebf5adb75d3e82d7d59cc89635ab80`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:165`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:166`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| kind | form 属性 | 其他必需字段 | 完整定义 |
|
||||
|---|---|---|---|
|
||||
@@ -3728,7 +3728,7 @@ SHA-256: `b0b0eb1b16490f6bee135b2377e8f8c39227974c799ad7d49ff418af23ecbc35`
|
||||
|
||||
SHA-256: `12d5808fac1996b9b3c2afa806e03022252ba2d7b88f835862ae1896591f60c7`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:79`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:80`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -4036,7 +4036,7 @@ SHA-256: `326a9bfda27dda5882fb3cbe6e715df41dae2298fdae3d66437457268a665693`
|
||||
|
||||
SHA-256: `5f2117d1856a5ab43c28371faa978ebfaa48f8c7d734ea3fc94842210df83dca`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:41`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:42`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -4496,7 +4496,7 @@ SHA-256: `2fe5026daf14bd4ff2b7bfb7cf9791c302d9cbba06802178b6dfec00b892698f`
|
||||
|
||||
SHA-256: `814d9434e1ddf9078612b3b34322f26e9363b469213335007f7e9ba7fee9464e`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:68`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:69`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -4513,7 +4513,7 @@ SHA-256: `814d9434e1ddf9078612b3b34322f26e9363b469213335007f7e9ba7fee9464e`
|
||||
|
||||
SHA-256: `0acd94fe8794574c9ae72c7855ee16d29c546096d4af760d16d1225385764555`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:448`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:468`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -4808,7 +4808,7 @@ SHA-256: `672c4aa2a9b736e3d6e5da6346d2e2ed5e3573f2d0baafa18e7407c9f3fee3db`
|
||||
|
||||
SHA-256: `47e9095591ae36e7c39ee62553097772f2bfa16304536a72dbbc3f691f605180`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:470`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:490`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
以下类型之一:
|
||||
|
||||
@@ -5061,7 +5061,7 @@ SHA-256: `b2d2a01e51341a3bfec809198952c8c830a7899f4cb6ecd3c1dc0b5d9a2af943`
|
||||
|
||||
SHA-256: `4e887768586528565381dadbddee6cef555874148089f4579e0b4b1ad096fc9c`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:62`](../packages/llm/llm/src/types.ts) · [`packages/web/web-search-deepseek/src/provider.ts:66`](../packages/web/web-search-deepseek/src/provider.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:63`](../packages/llm/llm/src/types.ts) · [`packages/web/web-search-deepseek/src/provider.ts:66`](../packages/web/web-search-deepseek/src/provider.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -5103,7 +5103,7 @@ SHA-256: `4b7ddaf3710b88ff9b8df66304f5f97bf03688fd19730eedc2e9535203c820ea`
|
||||
|
||||
SHA-256: `fec5442b9ee4122e10514d81d5a43648003fe8bfb7ee2ba50c0cdbdd383ed394`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:175`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:176`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -5124,7 +5124,7 @@ SHA-256: `fec5442b9ee4122e10514d81d5a43648003fe8bfb7ee2ba50c0cdbdd383ed394`
|
||||
|
||||
SHA-256: `8e611bf46821e5003a1605a73560a6f56388295149d449dfe2142d5ec335f29c`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:115`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:116`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -5142,7 +5142,7 @@ SHA-256: `8e611bf46821e5003a1605a73560a6f56388295149d449dfe2142d5ec335f29c`
|
||||
|
||||
SHA-256: `c1f0f17b6493b85db6453bb30e01b208d703731b25bc1e68e5d4fc72eea9cdea`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:105`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:106`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -5178,7 +5178,7 @@ SHA-256: `d9c462b9f62fdd3efc76a44b9524dc8781f6b91cd9c7e584b17d971defafebab`
|
||||
|
||||
SHA-256: `43e311235aa537df1bacdd92d144df8a952337a76e9ac892cdf670f1a797bad8`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:127`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:128`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -5233,7 +5233,7 @@ SHA-256: `4b259f7f8f0a44ad5e90b70a73553ced1df27012d126921d397ff403b6c86731`
|
||||
|
||||
SHA-256: `66ba70f6f068da443f969a0b947a013c3addd776b9b60a0a393759c19825e9a2`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:491`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:511`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -5585,7 +5585,7 @@ SHA-256: `5d03ba38734809bcbd2a55221bd938b3b3fc34b49bb686c6113e9e4931e3aa78`
|
||||
|
||||
SHA-256: `4cd48f3e5108bd6ebedf7301c3638839b8b2b9db8dbd493974177fbdeb91a01b`
|
||||
|
||||
来源:[`packages/api/session-controller/src/types.ts:380`](../packages/api/session-controller/src/types.ts) · [`packages/attachment/attachment/src/brand.ts:6`](../packages/attachment/attachment/src/brand.ts) · [`packages/compaction/compaction/src/brand.ts:4`](../packages/compaction/compaction/src/brand.ts) · [`packages/core/session/src/types.ts:21`](../packages/core/session/src/types.ts) · [`packages/experimental/agent-team/src/types.ts:21`](../packages/experimental/agent-team/src/types.ts) · [`packages/experimental/agent-team/src/types.ts:33`](../packages/experimental/agent-team/src/types.ts) · [`packages/experimental/agent-team/src/types.ts:9`](../packages/experimental/agent-team/src/types.ts) · [`packages/experimental/webhook/src/brand.ts:12`](../packages/experimental/webhook/src/brand.ts) · [`packages/experimental/webhook/src/brand.ts:6`](../packages/experimental/webhook/src/brand.ts) · [`packages/experimental/webhook/src/brand.ts:9`](../packages/experimental/webhook/src/brand.ts) · [`packages/feedback/message-feedback/src/types.ts:14`](../packages/feedback/message-feedback/src/types.ts) · [`packages/goal/goal/src/types.ts:17`](../packages/goal/goal/src/types.ts) · [`packages/interaction/commands/src/brand.ts:31`](../packages/interaction/commands/src/brand.ts) · [`packages/interaction/user-approval/src/types.ts:17`](../packages/interaction/user-approval/src/types.ts) · [`packages/jobs/jobs/src/brand.ts:19`](../packages/jobs/jobs/src/brand.ts) · [`packages/llm/llm-retry/src/brand.ts:4`](../packages/llm/llm-retry/src/brand.ts) · [`packages/llm/llm/src/brand.ts:16`](../packages/llm/llm/src/brand.ts) · [`packages/llm/llm/src/brand.ts:31`](../packages/llm/llm/src/brand.ts) · [`packages/llm/llm/src/brand.ts:43`](../packages/llm/llm/src/brand.ts) · [`packages/llm/llm/src/brand.ts:67`](../packages/llm/llm/src/brand.ts) · [`packages/schedule/schedule/src/types.ts:14`](../packages/schedule/schedule/src/types.ts) · [`packages/session/session-title/src/index.ts:42`](../packages/session/session-title/src/index.ts) · [`packages/session/session-title/src/types.ts:17`](../packages/session/session-title/src/types.ts) · [`packages/workflow/workflow/src/types.ts:13`](../packages/workflow/workflow/src/types.ts)
|
||||
来源:[`packages/api/session-controller/src/types.ts:382`](../packages/api/session-controller/src/types.ts) · [`packages/attachment/attachment/src/brand.ts:6`](../packages/attachment/attachment/src/brand.ts) · [`packages/compaction/compaction/src/brand.ts:4`](../packages/compaction/compaction/src/brand.ts) · [`packages/core/session/src/types.ts:21`](../packages/core/session/src/types.ts) · [`packages/experimental/agent-team/src/types.ts:21`](../packages/experimental/agent-team/src/types.ts) · [`packages/experimental/agent-team/src/types.ts:33`](../packages/experimental/agent-team/src/types.ts) · [`packages/experimental/agent-team/src/types.ts:9`](../packages/experimental/agent-team/src/types.ts) · [`packages/experimental/webhook/src/brand.ts:12`](../packages/experimental/webhook/src/brand.ts) · [`packages/experimental/webhook/src/brand.ts:6`](../packages/experimental/webhook/src/brand.ts) · [`packages/experimental/webhook/src/brand.ts:9`](../packages/experimental/webhook/src/brand.ts) · [`packages/feedback/message-feedback/src/types.ts:14`](../packages/feedback/message-feedback/src/types.ts) · [`packages/goal/goal/src/types.ts:17`](../packages/goal/goal/src/types.ts) · [`packages/interaction/commands/src/brand.ts:31`](../packages/interaction/commands/src/brand.ts) · [`packages/interaction/user-approval/src/types.ts:17`](../packages/interaction/user-approval/src/types.ts) · [`packages/jobs/jobs/src/brand.ts:19`](../packages/jobs/jobs/src/brand.ts) · [`packages/llm/llm-retry/src/brand.ts:4`](../packages/llm/llm-retry/src/brand.ts) · [`packages/llm/llm/src/brand.ts:16`](../packages/llm/llm/src/brand.ts) · [`packages/llm/llm/src/brand.ts:31`](../packages/llm/llm/src/brand.ts) · [`packages/llm/llm/src/brand.ts:43`](../packages/llm/llm/src/brand.ts) · [`packages/llm/llm/src/brand.ts:67`](../packages/llm/llm/src/brand.ts) · [`packages/schedule/schedule/src/types.ts:14`](../packages/schedule/schedule/src/types.ts) · [`packages/session/session-title/src/index.ts:42`](../packages/session/session-title/src/index.ts) · [`packages/session/session-title/src/types.ts:17`](../packages/session/session-title/src/types.ts) · [`packages/workflow/workflow/src/types.ts:13`](../packages/workflow/workflow/src/types.ts)
|
||||
|
||||
`string`
|
||||
|
||||
@@ -6244,7 +6244,7 @@ SHA-256: `5302e763151277614b97e77f00e3b326694c6c1247b916a20503c344dc970777`
|
||||
|
||||
SHA-256: `8e31bb958e9b015e6f8407eaade32217068159e816f3cc99c3ad76eb889732e0`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:160`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:161`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -6257,7 +6257,7 @@ SHA-256: `8e31bb958e9b015e6f8407eaade32217068159e816f3cc99c3ad76eb889732e0`
|
||||
|
||||
SHA-256: `693f4952fb5565da96c06bace8924b098ac2fbc915fde0ff8019701183abc057`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:161`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:162`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -6768,7 +6768,7 @@ SHA-256: `eaa71be0fbf0f702df8ea6c11d0aa2f9782263d45a10d0fb14eda662f4bfe04c`
|
||||
|
||||
SHA-256: `ab7ec5f9eb2c6dfacca5da4c37cf7ba85d04172053ee6b1ebf1709ffcd99c1a7`
|
||||
|
||||
来源:[`packages/core/session/src/types.ts:216`](../packages/core/session/src/types.ts) · [`packages/llm/llm/src/types.ts:159`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/core/session/src/types.ts:216`](../packages/core/session/src/types.ts) · [`packages/llm/llm/src/types.ts:160`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -7208,7 +7208,7 @@ SHA-256: `28936c614bd4e7e2774806edcbb3cbfd3ee643ac1cbf0bbdff43d915505a8fe3`
|
||||
|
||||
SHA-256: `1d76406cbb2ddadb0dbbb51e9d8bc6cf678fed455cf8eb512f36f7c86d37a62f`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:157`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:158`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -7376,7 +7376,7 @@ SHA-256: `49dab019d00e8c26f27ad2ccff7b604d69e323ae4d17e0d2a7b6b8a830b1ade2`
|
||||
|
||||
SHA-256: `287211846beea1eccb5f9acee00d20388a38fcb2e95858fa2332d6f58529379a`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:158`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:159`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -7556,7 +7556,7 @@ SHA-256: `8fcb0b44a575e998665c053643d1ab04c82f39253ebd190ac0c975b78e40b543`
|
||||
|
||||
SHA-256: `6dacb1584f2bfbe209dc6b6f578d51da6d55595f64d0e63c727c98f359278def`
|
||||
|
||||
来源:[`packages/api/session-controller/src/types.ts:389`](../packages/api/session-controller/src/types.ts)
|
||||
来源:[`packages/api/session-controller/src/types.ts:391`](../packages/api/session-controller/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -8048,7 +8048,7 @@ SHA-256: `1033093edd0db80ff410e00830b523405e00bb0c7684948e531ff65095799625`
|
||||
|
||||
SHA-256: `d4b739491689cc6bb13d07ffac1a32239875abda364c0d5edd8f74faf5e9c00d`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:475`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:495`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -8062,7 +8062,7 @@ SHA-256: `d4b739491689cc6bb13d07ffac1a32239875abda364c0d5edd8f74faf5e9c00d`
|
||||
|
||||
SHA-256: `3bec87f9e6ab3da03346f49923d3c51621debc0159df68605e543c3b2a026f90`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:471`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:491`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -8280,7 +8280,7 @@ SHA-256: `b54940ff095c17e874c5be03815f4c2145a256cf3a1d34dae4ab2f7769dfffe8`
|
||||
|
||||
SHA-256: `a2b49331716ba0a7078b026d145306a70eae64b7313c3e6204bd931e75ec3bb1`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:477`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:497`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -8486,7 +8486,7 @@ SHA-256: `71bb3254ec8f1e491ce63b762a7b5f18709de23aa4e8abcc8b886f4b6ce051dd`
|
||||
|
||||
SHA-256: `2abb711460e6238d851c30f3e4bdd87a2aa1887ee70575b3d3b7b25610673095`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:473`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:493`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -8806,7 +8806,7 @@ SHA-256: `e72269f931559e901e5e8fe1cfcbd0669fb795f43cc038ff39fba62f60403c33`
|
||||
|
||||
SHA-256: `95080295115fbd83544520ba247b68a03790131f6a2eac323d388758cb542f65`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:472`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:492`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -8854,7 +8854,7 @@ SHA-256: `3860b4757d512a2869be833acb0faf834335b1b056bf3f83df5474dce95f8fa6`
|
||||
|
||||
SHA-256: `88a610b831be6d92612a464be5c7d0b88ec24d97bd299837bf74bf7672183c9a`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:474`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:494`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -9032,7 +9032,7 @@ SHA-256: `aa0957eca50aeb28bcd2e6930b95809926edacb550c8c340ba526ba6b861b3d8`
|
||||
|
||||
SHA-256: `f1a96afe7503ac1817de769cd0ba13d9b80111c7034c50106b3344ecc14cc515`
|
||||
|
||||
来源:[`packages/llm/llm/src/types.ts:476`](../packages/llm/llm/src/types.ts)
|
||||
来源:[`packages/llm/llm/src/types.ts:496`](../packages/llm/llm/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
|
||||
Generated
+30
-30
@@ -87,7 +87,7 @@
|
||||
{"digest":"0a30c3be336cdd4f8f34e66543a3d46d611c43986edd9b3ce6cbb9b721d3b5d3","names":[],"sources":["packages/core/session/src/types.ts:205"]},
|
||||
{"digest":"0a8a062bc9c3c0d97fd97742262f2ea53dd32297f834e81114870d38ac3dc6da","names":[],"sources":[]},
|
||||
{"digest":"0aa62ab51b36c0e64b134bd03ba8725d758744180a1a447da49beaad194f219f","names":[],"sources":[]},
|
||||
{"digest":"0acd94fe8794574c9ae72c7855ee16d29c546096d4af760d16d1225385764555","names":["packages/llm/llm/src/types.ts#ReplayEnvelope"],"sources":["packages/llm/llm/src/types.ts:448"]},
|
||||
{"digest":"0acd94fe8794574c9ae72c7855ee16d29c546096d4af760d16d1225385764555","names":["packages/llm/llm/src/types.ts#ReplayEnvelope"],"sources":["packages/llm/llm/src/types.ts:468"]},
|
||||
{"digest":"0af3ecfb8c60d416fc40a7cc4fb2c4851a8e46608b2b38ab9e510670c971aa1f","names":[],"sources":[]},
|
||||
{"digest":"0b6d718c693fdf7f06dcccb0bcbbabe78cc63514eafc62d6b2a3899735279d6f","names":["packages/goal/goal/src/types.ts#GoalRef"],"sources":["packages/goal/goal/src/types.ts:20"]},
|
||||
{"digest":"0b9b8facbe2c19773b3fb0ecc824ccbcc603d41b8f18069faa3807d449572fce","names":[],"sources":[]},
|
||||
@@ -111,7 +111,7 @@
|
||||
{"digest":"11f70b595aa76897fc4e25a352bfa718c659f44b799e5aa14e84e5a38fe72912","names":[],"sources":["packages/interaction/user-approval/src/index.ts:41"]},
|
||||
{"digest":"124aa62078ca3311353b39cc3bf6c75da281338be6bbf672f8b361d828cddca3","names":[],"sources":[]},
|
||||
{"digest":"12a0cfa619ac4a5fc6c3e8e359c8dae15769edc61497a575935c78d5842f8e42","names":[],"sources":[]},
|
||||
{"digest":"12d5808fac1996b9b3c2afa806e03022252ba2d7b88f835862ae1896591f60c7","names":["packages/llm/llm/src/types.ts#ImageBlock"],"sources":["packages/llm/llm/src/types.ts:79"]},
|
||||
{"digest":"12d5808fac1996b9b3c2afa806e03022252ba2d7b88f835862ae1896591f60c7","names":["packages/llm/llm/src/types.ts#ImageBlock"],"sources":["packages/llm/llm/src/types.ts:80"]},
|
||||
{"digest":"1379f0b72275994d20f1ddca2d60a96ab16ec80397ca9f1af21bdc67ba5c269c","names":[],"sources":[]},
|
||||
{"digest":"13d3d180f977bf78081d487ffa0ecb75857349bcab29a5a3fb48189fca2a6176","names":[],"sources":[]},
|
||||
{"digest":"14230f9b8b5797bb7e8c621fa636531cfbde2ffba1ef5f1fd058216ff21952a0","names":[],"sources":[]},
|
||||
@@ -141,7 +141,7 @@
|
||||
{"digest":"1ccb56061942f5ccb0d30c9e4f2883b9d115ff906560029de637b61d3cde896d","names":[],"sources":["packages/core/session/src/types.ts:343"]},
|
||||
{"digest":"1cde1bedde79c5e8a56aee9c05c8e0a579cf5bc611deb85b93fa331a16ca978f","names":["packages/compaction/compaction-image-offload/src/projection.ts#ImageOffloadTarget"],"sources":["packages/compaction/compaction-image-offload/src/projection.ts:9"]},
|
||||
{"digest":"1d5f04a03ea75fc8eeece544129eba0f49f0c82046e9c404461920390135c7b2","names":[],"sources":[]},
|
||||
{"digest":"1d76406cbb2ddadb0dbbb51e9d8bc6cf678fed455cf8eb512f36f7c86d37a62f","names":[],"sources":["packages/llm/llm/src/types.ts:157"]},
|
||||
{"digest":"1d76406cbb2ddadb0dbbb51e9d8bc6cf678fed455cf8eb512f36f7c86d37a62f","names":[],"sources":["packages/llm/llm/src/types.ts:158"]},
|
||||
{"digest":"1d8798b1a5e8c545ee4dcd2b4e75c0b4c9ffd985e4744c6d1a1aab992f859721","names":[],"sources":[]},
|
||||
{"digest":"1d9cb3caa96100b18b1911fa3ff8c751ef6992971a03c5f4d9aefc1a0004a345","names":[],"sources":[]},
|
||||
{"digest":"1df34a6c086866ffdc2dd9e8e5c581c3751a010cdf6b8538a7327f7a3237f0b4","names":["packages/goal/goal/src/domain.ts#GoalSnapshotChangeMeta"],"sources":["packages/goal/goal/src/domain.ts:24"]},
|
||||
@@ -171,13 +171,13 @@
|
||||
{"digest":"26c879bdd130e8b8683a6ce588414fad2244783d6573ca399fa0de184a2b0bb1","names":[],"sources":[]},
|
||||
{"digest":"2765e9119edf5816ac1ab4c95c5ee32c90403f3742962eff11544f7752d59d2e","names":[],"sources":[]},
|
||||
{"digest":"277b61f9c6f8170425fa6ffe06cfa14376757a896a4749cb82a687d7364c4fc9","names":[],"sources":[]},
|
||||
{"digest":"287211846beea1eccb5f9acee00d20388a38fcb2e95858fa2332d6f58529379a","names":[],"sources":["packages/llm/llm/src/types.ts:158"]},
|
||||
{"digest":"287211846beea1eccb5f9acee00d20388a38fcb2e95858fa2332d6f58529379a","names":[],"sources":["packages/llm/llm/src/types.ts:159"]},
|
||||
{"digest":"28936c614bd4e7e2774806edcbb3cbfd3ee643ac1cbf0bbdff43d915505a8fe3","names":[],"sources":[]},
|
||||
{"digest":"290f32bfd81ff85a8095886a8066fae06e885942b63a8bcd6a8d66d328445808","names":[],"sources":[]},
|
||||
{"digest":"297fbd8067d7815adae02b89790ec6ff5fb7c2cb0d0eb026e1746c24ec857761","names":[],"sources":[]},
|
||||
{"digest":"2aad1179f957631477b582e57cd8f538cb82618fc3fb816bde1171154235b065","names":[],"sources":[]},
|
||||
{"digest":"2ab12a0e345658f9342816d773fe610f049982bcad82631f43b9205abe43e5ee","names":[],"sources":[]},
|
||||
{"digest":"2abb711460e6238d851c30f3e4bdd87a2aa1887ee70575b3d3b7b25610673095","names":[],"sources":["packages/llm/llm/src/types.ts:473"]},
|
||||
{"digest":"2abb711460e6238d851c30f3e4bdd87a2aa1887ee70575b3d3b7b25610673095","names":[],"sources":["packages/llm/llm/src/types.ts:493"]},
|
||||
{"digest":"2ae8594a998c9862a597129e782277bcc518266712a703b5c3161bdf552d13b8","names":[],"sources":[]},
|
||||
{"digest":"2aed07493b1c65b6d00de5586da1e743cf501684b9ad43a1765fb4007d4ea456","names":[],"sources":[]},
|
||||
{"digest":"2c4c21f19f426a58f2dac914e34313aa43f8408972de857a486d1f086d5adb6c","names":[],"sources":[]},
|
||||
@@ -217,7 +217,7 @@
|
||||
{"digest":"3bc287e765d58dc3a22672a0495a6cfd561220dd38fbaecef80aa95b96caed79","names":[],"sources":[]},
|
||||
{"digest":"3bd652ebfa8726b3ce3937a4f1bd2759e02f86b3a08a20f9e41a8513656fbc5f","names":["packages/core/session/src/types.ts#OptionalSessionSeq"],"sources":["packages/core/session/src/types.ts:66"]},
|
||||
{"digest":"3bdb8dc6989655b0d4ec361edafb8e2629bc263e1ea591819414fdafc1a413b3","names":[],"sources":[]},
|
||||
{"digest":"3bec87f9e6ab3da03346f49923d3c51621debc0159df68605e543c3b2a026f90","names":[],"sources":["packages/llm/llm/src/types.ts:471"]},
|
||||
{"digest":"3bec87f9e6ab3da03346f49923d3c51621debc0159df68605e543c3b2a026f90","names":[],"sources":["packages/llm/llm/src/types.ts:491"]},
|
||||
{"digest":"3bfeb47b58606f4661904bc723da612782214c463d01e6d61cd6d6193d7374e1","names":[],"sources":[]},
|
||||
{"digest":"3c2535ca0a2062f172f15344f8040755002b5ac506cf94fc4ebaa822b15feb8c","names":[],"sources":[]},
|
||||
{"digest":"3cfc3a56502da1f8c6153c2c56657bab4b749056968634dd0991d325ec1c919f","names":["packages/core/tools/src/contracts.ts#ToolRestriction"],"sources":["packages/core/tools/src/contracts.ts:376"]},
|
||||
@@ -232,7 +232,7 @@
|
||||
{"digest":"4208123b50df5006b181481ab45fcf1cde807b88d3fd4d340090bc2e202fac41","names":[],"sources":[]},
|
||||
{"digest":"42e0916e0dda5f6d1e7bb05d8514717147c036a79c9f36085683469516c1fd3f","names":[],"sources":[]},
|
||||
{"digest":"4312134fc6f9cad507c31390bd3d147535492dd77621ec517c5e85f853d53a03","names":[],"sources":[]},
|
||||
{"digest":"43e311235aa537df1bacdd92d144df8a952337a76e9ac892cdf670f1a797bad8","names":["packages/llm/llm/src/types.ts#ToolRemovalBlock"],"sources":["packages/llm/llm/src/types.ts:127"]},
|
||||
{"digest":"43e311235aa537df1bacdd92d144df8a952337a76e9ac892cdf670f1a797bad8","names":["packages/llm/llm/src/types.ts#ToolRemovalBlock"],"sources":["packages/llm/llm/src/types.ts:128"]},
|
||||
{"digest":"44818000e56acb97afdb5045ce235eb55e3fb1ccabc9fc7d0750bb38f36a7f8e","names":[],"sources":[]},
|
||||
{"digest":"44c8c77aa9aa100b0d74d2deee85474b29faa6eee0ac0f662f7abe9931ddd7f2","names":[],"sources":[]},
|
||||
{"digest":"4513e088d43e6c68425be30451b9f961cc264fe7318ca62681c41d4d78615986","names":[],"sources":[]},
|
||||
@@ -240,7 +240,7 @@
|
||||
{"digest":"45f2a07ea94573123b6ae14db787a40062dec3834f36d8be92c523d40ba28448","names":[],"sources":["packages/interaction/user-approval/src/types.ts:44"]},
|
||||
{"digest":"477614bca595a9e7adb5a1870be446b9a8684f3ba8950259d6289f2d3b74f028","names":[],"sources":["packages/compaction/compaction-image-offload/src/projection.ts:25"]},
|
||||
{"digest":"47e5d84f1a93450a78c7f3954b43990d0f629af7c034a56313e5deb63e772c1b","names":[],"sources":[]},
|
||||
{"digest":"47e9095591ae36e7c39ee62553097772f2bfa16304536a72dbbc3f691f605180","names":["packages/llm/llm/src/types.ts#StreamChunk"],"sources":["packages/llm/llm/src/types.ts:470"]},
|
||||
{"digest":"47e9095591ae36e7c39ee62553097772f2bfa16304536a72dbbc3f691f605180","names":["packages/llm/llm/src/types.ts#StreamChunk"],"sources":["packages/llm/llm/src/types.ts:490"]},
|
||||
{"digest":"487b65c37bfedb8b72088c4107a0a90a6249701f6b26745f6d98f9b8a22b07c7","names":[],"sources":["packages/llm/llm/src/assistant-stream.ts:44"]},
|
||||
{"digest":"48e5c9861f16ac07e78cb7b5ae9dabdf7bb85c58baed5a51b4ad275050ea58e3","names":[],"sources":[]},
|
||||
{"digest":"48f9c19417a1abbedfa59f4667bba36b93ac2db407adf5e84cb3ba0de30942cb","names":[],"sources":[]},
|
||||
@@ -253,10 +253,10 @@
|
||||
{"digest":"4b259f7f8f0a44ad5e90b70a73553ced1df27012d126921d397ff403b6c86731","names":["packages/llm/llm/src/message.ts#ToolResultMessage"],"sources":["packages/llm/llm/src/message.ts:173"]},
|
||||
{"digest":"4b7ddaf3710b88ff9b8df66304f5f97bf03688fd19730eedc2e9535203c820ea","names":[],"sources":[]},
|
||||
{"digest":"4bb451330ff699f36b45539ceb0eb2606ead72084e2c5bb637c36cc80e2252db","names":[],"sources":["packages/core/session/src/types.ts:194"]},
|
||||
{"digest":"4cd48f3e5108bd6ebedf7301c3638839b8b2b9db8dbd493974177fbdeb91a01b","names":["packages/api/session-controller/src/types.ts#SessionRequestId","packages/attachment/attachment/src/brand.ts#AttachmentId","packages/compaction/compaction/src/brand.ts#CompactionId","packages/core/session/src/types.ts#SessionId","packages/experimental/agent-team/src/types.ts#TeamId","packages/experimental/agent-team/src/types.ts#TeamMessageId","packages/experimental/agent-team/src/types.ts#TeamTaskId","packages/experimental/webhook/src/brand.ts#WebhookDeliveryId","packages/experimental/webhook/src/brand.ts#WebhookRuleId","packages/experimental/webhook/src/brand.ts#WebhookSourceId","packages/feedback/message-feedback/src/types.ts#MessageFeedbackVersion","packages/goal/goal/src/types.ts#GoalId","packages/interaction/commands/src/brand.ts#CommandId","packages/interaction/user-approval/src/types.ts#ApprovalRequestId","packages/jobs/jobs/src/brand.ts#JobId","packages/llm/llm-retry/src/brand.ts#RetryId","packages/llm/llm/src/brand.ts#MessageId","packages/llm/llm/src/brand.ts#ProviderRequestId","packages/llm/llm/src/brand.ts#ReasoningEffortId","packages/llm/llm/src/brand.ts#ToolCallId","packages/schedule/schedule/src/types.ts#ScheduleId","packages/session/session-title/src/index.ts#SessionTitleProviderId","packages/session/session-title/src/types.ts#SessionTitleProviderId","packages/workflow/workflow/src/types.ts#WorkflowRunId"],"sources":["packages/api/session-controller/src/types.ts:380","packages/attachment/attachment/src/brand.ts:6","packages/compaction/compaction/src/brand.ts:4","packages/core/session/src/types.ts:21","packages/experimental/agent-team/src/types.ts:21","packages/experimental/agent-team/src/types.ts:33","packages/experimental/agent-team/src/types.ts:9","packages/experimental/webhook/src/brand.ts:12","packages/experimental/webhook/src/brand.ts:6","packages/experimental/webhook/src/brand.ts:9","packages/feedback/message-feedback/src/types.ts:14","packages/goal/goal/src/types.ts:17","packages/interaction/commands/src/brand.ts:31","packages/interaction/user-approval/src/types.ts:17","packages/jobs/jobs/src/brand.ts:19","packages/llm/llm-retry/src/brand.ts:4","packages/llm/llm/src/brand.ts:16","packages/llm/llm/src/brand.ts:31","packages/llm/llm/src/brand.ts:43","packages/llm/llm/src/brand.ts:67","packages/schedule/schedule/src/types.ts:14","packages/session/session-title/src/index.ts:42","packages/session/session-title/src/types.ts:17","packages/workflow/workflow/src/types.ts:13"]},
|
||||
{"digest":"4cd48f3e5108bd6ebedf7301c3638839b8b2b9db8dbd493974177fbdeb91a01b","names":["packages/api/session-controller/src/types.ts#SessionRequestId","packages/attachment/attachment/src/brand.ts#AttachmentId","packages/compaction/compaction/src/brand.ts#CompactionId","packages/core/session/src/types.ts#SessionId","packages/experimental/agent-team/src/types.ts#TeamId","packages/experimental/agent-team/src/types.ts#TeamMessageId","packages/experimental/agent-team/src/types.ts#TeamTaskId","packages/experimental/webhook/src/brand.ts#WebhookDeliveryId","packages/experimental/webhook/src/brand.ts#WebhookRuleId","packages/experimental/webhook/src/brand.ts#WebhookSourceId","packages/feedback/message-feedback/src/types.ts#MessageFeedbackVersion","packages/goal/goal/src/types.ts#GoalId","packages/interaction/commands/src/brand.ts#CommandId","packages/interaction/user-approval/src/types.ts#ApprovalRequestId","packages/jobs/jobs/src/brand.ts#JobId","packages/llm/llm-retry/src/brand.ts#RetryId","packages/llm/llm/src/brand.ts#MessageId","packages/llm/llm/src/brand.ts#ProviderRequestId","packages/llm/llm/src/brand.ts#ReasoningEffortId","packages/llm/llm/src/brand.ts#ToolCallId","packages/schedule/schedule/src/types.ts#ScheduleId","packages/session/session-title/src/index.ts#SessionTitleProviderId","packages/session/session-title/src/types.ts#SessionTitleProviderId","packages/workflow/workflow/src/types.ts#WorkflowRunId"],"sources":["packages/api/session-controller/src/types.ts:382","packages/attachment/attachment/src/brand.ts:6","packages/compaction/compaction/src/brand.ts:4","packages/core/session/src/types.ts:21","packages/experimental/agent-team/src/types.ts:21","packages/experimental/agent-team/src/types.ts:33","packages/experimental/agent-team/src/types.ts:9","packages/experimental/webhook/src/brand.ts:12","packages/experimental/webhook/src/brand.ts:6","packages/experimental/webhook/src/brand.ts:9","packages/feedback/message-feedback/src/types.ts:14","packages/goal/goal/src/types.ts:17","packages/interaction/commands/src/brand.ts:31","packages/interaction/user-approval/src/types.ts:17","packages/jobs/jobs/src/brand.ts:19","packages/llm/llm-retry/src/brand.ts:4","packages/llm/llm/src/brand.ts:16","packages/llm/llm/src/brand.ts:31","packages/llm/llm/src/brand.ts:43","packages/llm/llm/src/brand.ts:67","packages/schedule/schedule/src/types.ts:14","packages/session/session-title/src/index.ts:42","packages/session/session-title/src/types.ts:17","packages/workflow/workflow/src/types.ts:13"]},
|
||||
{"digest":"4e011753f8263f436efaabfbb3b4db53a98fc55342c5ded2daf7208b217be159","names":[],"sources":[]},
|
||||
{"digest":"4e44c9118152f6829634bfd508e47669ab0497caffa380c94b4be91f9390d35d","names":[],"sources":[]},
|
||||
{"digest":"4e887768586528565381dadbddee6cef555874148089f4579e0b4b1ad096fc9c","names":["packages/llm/llm/src/types.ts#TextBlock"],"sources":["packages/llm/llm/src/types.ts:62","packages/web/web-search-deepseek/src/provider.ts:66"]},
|
||||
{"digest":"4e887768586528565381dadbddee6cef555874148089f4579e0b4b1ad096fc9c","names":["packages/llm/llm/src/types.ts#TextBlock"],"sources":["packages/llm/llm/src/types.ts:63","packages/web/web-search-deepseek/src/provider.ts:66"]},
|
||||
{"digest":"4e97c3d85c0fc817ee58873c38c25a2474abaaa0af4839311b50b68db3b8cf1a","names":["packages/subagent/subagent/src/continuation-messages.ts#SubagentSettledMessageSource"],"sources":["packages/subagent/subagent/src/continuation-messages.ts:29"]},
|
||||
{"digest":"4edec1b770e8ec4ce1220bf42edc5ac46713a1b48d4caa778dcfc98bad1f28a3","names":[],"sources":[]},
|
||||
{"digest":"4f507598cf476214aa7646ce7841a7064a9dcb05d0a1eaaefaf79c2b738f160f","names":[],"sources":[]},
|
||||
@@ -282,7 +282,7 @@
|
||||
{"digest":"5776e5553ff2dfe3f5bc202dbb1e7c9f93e35a531aebb7764c23b2b6153b2ccc","names":[],"sources":[]},
|
||||
{"digest":"57f3f606ff8b6c84d9c443faace9d1dd10cca0354f37a4f515ef075f7c351b90","names":[],"sources":[]},
|
||||
{"digest":"58015da1c1950a66daf66ae24913d6a1fc6d1d9ac441b155f8847f7f8584ba8e","names":[],"sources":[]},
|
||||
{"digest":"5808e36c95355f0e745201b5db1b6bcec4ebf5adb75d3e82d7d59cc89635ab80","names":["packages/llm/llm/src/types.ts#FinishReason"],"sources":["packages/llm/llm/src/types.ts:165"]},
|
||||
{"digest":"5808e36c95355f0e745201b5db1b6bcec4ebf5adb75d3e82d7d59cc89635ab80","names":["packages/llm/llm/src/types.ts#FinishReason"],"sources":["packages/llm/llm/src/types.ts:166"]},
|
||||
{"digest":"587bb11da730e06aa52b62c087d217d6f8f22459b25f31cb9e1e1baf17944e5e","names":[],"sources":[]},
|
||||
{"digest":"589d0d91239681f89ee485459dc8c2f73ea47183b5534289d966637024a2c35d","names":[],"sources":[]},
|
||||
{"digest":"58f94390b982f8a5ac1f4f235ba612557f4a1dc4a995d8b1cec63ce7639decb0","names":[],"sources":[]},
|
||||
@@ -303,7 +303,7 @@
|
||||
{"digest":"5dd766ccd1702a1142ad8b4bd44f2242f8e8a6752669ad3de0a5d224329b1438","names":[],"sources":["packages/compaction/compaction/src/types.ts:82"]},
|
||||
{"digest":"5e6db6e24948d4a853c71cb9fabd252ad051ce93d4672c1266cf837c1c17b84e","names":[],"sources":[]},
|
||||
{"digest":"5ebce1317eacd2c148456627a09668e927ee15c204f0643f5ea76b46b54a2647","names":[],"sources":[]},
|
||||
{"digest":"5f2117d1856a5ab43c28371faa978ebfaa48f8c7d734ea3fc94842210df83dca","names":["packages/llm/llm/src/types.ts#LlmFailure"],"sources":["packages/llm/llm/src/types.ts:41"]},
|
||||
{"digest":"5f2117d1856a5ab43c28371faa978ebfaa48f8c7d734ea3fc94842210df83dca","names":["packages/llm/llm/src/types.ts#LlmFailure"],"sources":["packages/llm/llm/src/types.ts:42"]},
|
||||
{"digest":"5f26a6c20b37632f8f57729d171c671def4683d994ac6257a8dffcd855101627","names":[],"sources":[]},
|
||||
{"digest":"5f758f3de5f00c18968a7c6d347083aac5c9ae13f6a79c78f6611b23c4973564","names":["packages/subagent/subagent/src/descriptor.ts#OneShotSubagentDescriptorData"],"sources":["packages/subagent/subagent/src/descriptor.ts:61"]},
|
||||
{"digest":"6085488d223aeffdef51d7ae17655fc26ab22ee13cbed82a50e62e2b6fb5b918","names":[],"sources":[]},
|
||||
@@ -316,14 +316,14 @@
|
||||
{"digest":"6487b10ba7542f3c447b1e41a1c6a590b7bfafe0b9b66b49f34028da85bb970f","names":["packages/subagent/subagent/src/descriptor.ts#ContinuableSubagentDescriptorData"],"sources":["packages/subagent/subagent/src/descriptor.ts:72"]},
|
||||
{"digest":"6598cd6da253948d6b207c6374a45335804c79b576866d6215649c2d1bc85e25","names":["packages/experimental/agent-team/src/types.ts#TeamMemberSnapshot"],"sources":["packages/experimental/agent-team/src/types.ts:48"]},
|
||||
{"digest":"65a8400e451e667e5b6e34df72ceb81fca8c12330330fa72083ad40279b189ad","names":["packages/llm/llm/src/message.ts#SystemPromptMessageSource"],"sources":["packages/llm/llm/src/message.ts:35"]},
|
||||
{"digest":"66ba70f6f068da443f969a0b947a013c3addd776b9b60a0a393759c19825e9a2","names":["packages/llm/llm/src/types.ts#ToolSchema"],"sources":["packages/llm/llm/src/types.ts:491"]},
|
||||
{"digest":"66ba70f6f068da443f969a0b947a013c3addd776b9b60a0a393759c19825e9a2","names":["packages/llm/llm/src/types.ts#ToolSchema"],"sources":["packages/llm/llm/src/types.ts:511"]},
|
||||
{"digest":"672c4aa2a9b736e3d6e5da6346d2e2ed5e3573f2d0baafa18e7407c9f3fee3db","names":["packages/skill/skill/src/index.ts#SkillInvocationSource"],"sources":["packages/skill/skill/src/index.ts:146"]},
|
||||
{"digest":"67d5f73ceae82f5265258142ad6cf172de2c1fef93ba551b7f0454e0a93bffe0","names":["packages/llm/llm/src/call-config.ts#LlmCallConfig"],"sources":["packages/llm/llm/src/call-config.ts:31"]},
|
||||
{"digest":"68141cbe3994a5ffcd064c07c75996538437fd9dbf77ce8a2927e89ec577fabe","names":[],"sources":[]},
|
||||
{"digest":"688e853dc149f0d30b31765c12ec7e3be74169bdf1a4c6463a10b945d50cc1b8","names":[],"sources":[]},
|
||||
{"digest":"68f44f59e91c41395076cb77265981a601680ec8a381bbbeb6ab754ffdc94573","names":[],"sources":[]},
|
||||
{"digest":"69081694be231d56fd9580ba14645fd5e35373202605d5c5c841a9435b5fa3b1","names":[],"sources":[]},
|
||||
{"digest":"693f4952fb5565da96c06bace8924b098ac2fbc915fde0ff8019701183abc057","names":[],"sources":["packages/llm/llm/src/types.ts:161"]},
|
||||
{"digest":"693f4952fb5565da96c06bace8924b098ac2fbc915fde0ff8019701183abc057","names":[],"sources":["packages/llm/llm/src/types.ts:162"]},
|
||||
{"digest":"69d238a6e9b08d67f601b1825962963d8d3523cb69ebf6208c697dc5d058c199","names":[],"sources":[]},
|
||||
{"digest":"6ab45ac76839722df912f3ba50f1c6b41f2d614bde11f1aabfae04117ccdc80d","names":[],"sources":[]},
|
||||
{"digest":"6b23ed9ce1b397e602788dbe033693bf97642a69e23fcab1cc45bf6f13b6d619","names":[],"sources":[]},
|
||||
@@ -335,7 +335,7 @@
|
||||
{"digest":"6ccb6bc423fb3952458abf9c1b1c3284208b7e660344b612cc55da773d61afe4","names":[],"sources":[]},
|
||||
{"digest":"6cda0d6d3b4336d83998fe580628426df81c2afbab5d768b8813b56d569120e8","names":[],"sources":[]},
|
||||
{"digest":"6cf082d0fb6034dea61636787ff0ddf43b6e59aad71e644435a479bc9b83ad65","names":[],"sources":[]},
|
||||
{"digest":"6dacb1584f2bfbe209dc6b6f578d51da6d55595f64d0e63c727c98f359278def","names":[],"sources":["packages/api/session-controller/src/types.ts:389"]},
|
||||
{"digest":"6dacb1584f2bfbe209dc6b6f578d51da6d55595f64d0e63c727c98f359278def","names":[],"sources":["packages/api/session-controller/src/types.ts:391"]},
|
||||
{"digest":"6e52dd55a1d48954ed5464ec46fe34d9eb65f709baabc9561e7a279910b0c406","names":[],"sources":["packages/preset/agent-preset-registry/src/session.ts:31"]},
|
||||
{"digest":"6ea608bdc8a7a63d3d23b84c49721325094db88d136482e43a820945295eee3e","names":[],"sources":[]},
|
||||
{"digest":"6ebcc2dbec9f2dabca9f668ae6d39e877899b180740570f453409db339221df3","names":[],"sources":[]},
|
||||
@@ -368,18 +368,18 @@
|
||||
{"digest":"7c9f44e90a0058f4cc532ae20dad0c10afa6eba22e70a6c79fc79490bad64397","names":[],"sources":[]},
|
||||
{"digest":"7d226b9fd95b4ba213d4237c22e930a91c3c769c95ca7f92977b9d625ba13438","names":["packages/goal/goal/src/domain.ts#GoalChangeMeta"],"sources":["packages/goal/goal/src/domain.ts:44"]},
|
||||
{"digest":"7d54a5a5e629e2e7783bfac72683bcc5e969e9f43426b9289826aaf294ff6344","names":["packages/feedback/command-feedback/src/types.ts#FeedbackRecord"],"sources":["packages/feedback/command-feedback/src/types.ts:27"]},
|
||||
{"digest":"7d65acf0a3a43a8f445ce5d3320b42eca492739fc931b2a7516bfb8368dc2c68","names":["packages/llm/llm/src/types.ts#ContentBlockType"],"sources":["packages/llm/llm/src/types.ts:148"]},
|
||||
{"digest":"7d65acf0a3a43a8f445ce5d3320b42eca492739fc931b2a7516bfb8368dc2c68","names":["packages/llm/llm/src/types.ts#ContentBlockType"],"sources":["packages/llm/llm/src/types.ts:149"]},
|
||||
{"digest":"7df62978a2b7de8540e714152297743e0a622209a46a5ac9513fc0fad73ca23b","names":[],"sources":[]},
|
||||
{"digest":"7eaef7a763ba5b949b8464bc8add8980a3a5ab566014b69787aeba71e5dfe07b","names":[],"sources":[]},
|
||||
{"digest":"7f13860ee89a2d35ce09f958e85a04566cd59cb1de1d73a9619a9b631961dc71","names":[],"sources":[]},
|
||||
{"digest":"7f7fd5a6b0064f597534b29ff62ef26e786dffccf5e14f654a7d4fcea2c35f04","names":[],"sources":[]},
|
||||
{"digest":"7f9365bae9fcb73e1e34061a1acfe0422c1a5fd351848cace9bebbe806f28462","names":["packages/workflow/tool-workflow/src/types.ts#ToolWorkflowRunEndData"],"sources":["packages/workflow/tool-workflow/src/types.ts:36"]},
|
||||
{"digest":"7f959241c24128b4983b559984811861dc59774b85905c8fa57c6cb0148a3dbc","names":["packages/goal/goal/src/domain.ts#GoalMessageSource"],"sources":["packages/goal/goal/src/domain.ts:47"]},
|
||||
{"digest":"8064c03c87c357fd1575cb9395ce86e6dcbe2d275bf7717864a02cddf01827d5","names":["packages/llm/llm/src/types.ts#ContentBlock"],"sources":["packages/llm/llm/src/types.ts:150"]},
|
||||
{"digest":"8064c03c87c357fd1575cb9395ce86e6dcbe2d275bf7717864a02cddf01827d5","names":["packages/llm/llm/src/types.ts#ContentBlock"],"sources":["packages/llm/llm/src/types.ts:151"]},
|
||||
{"digest":"80677c8c8b804189a0fde8aa70dd4ad7af8bb12dfd03027e8e023c8592c838bc","names":[],"sources":[]},
|
||||
{"digest":"8067b0d232c350f189738e60ee3c9939d46ca3b32b45db5525237b077893f649","names":[],"sources":[]},
|
||||
{"digest":"811229eedcec57979dbadca7dbea832a59f8580cff30cb217fca5e2da16314bd","names":[],"sources":[]},
|
||||
{"digest":"814d9434e1ddf9078612b3b34322f26e9363b469213335007f7e9ba7fee9464e","names":["packages/llm/llm/src/types.ts#ReasoningBlock"],"sources":["packages/llm/llm/src/types.ts:68"]},
|
||||
{"digest":"814d9434e1ddf9078612b3b34322f26e9363b469213335007f7e9ba7fee9464e","names":["packages/llm/llm/src/types.ts#ReasoningBlock"],"sources":["packages/llm/llm/src/types.ts:69"]},
|
||||
{"digest":"82470020b5bfcb1a843e2aa05602af7d37df99e82d01f015c7c589ba054fd89d","names":[],"sources":[]},
|
||||
{"digest":"825ca23416b1ea9d81442afead5cf9229a6fa05842f042135cc3aa9710a6a2d8","names":[],"sources":[]},
|
||||
{"digest":"829a2fb3be6efd4ba36aef8ed2d381a4c6fb2a0aaf50c823a6f3f8290786b809","names":[],"sources":[]},
|
||||
@@ -400,7 +400,7 @@
|
||||
{"digest":"871bfd6f7bb91061246768d3377f3fd58d6b8ea7c31f44c714ae7ab215650d62","names":[],"sources":[]},
|
||||
{"digest":"87b1a33564b9a4d63b00988a524c12259243953aebb9c9a05127d87b27464df9","names":[],"sources":[]},
|
||||
{"digest":"88841202942c7683b3b7e5ea6a796047ec326b6701ac23e58cc236d85613b9fa","names":[],"sources":[]},
|
||||
{"digest":"88a610b831be6d92612a464be5c7d0b88ec24d97bd299837bf74bf7672183c9a","names":[],"sources":["packages/llm/llm/src/types.ts:474"]},
|
||||
{"digest":"88a610b831be6d92612a464be5c7d0b88ec24d97bd299837bf74bf7672183c9a","names":[],"sources":["packages/llm/llm/src/types.ts:494"]},
|
||||
{"digest":"8a046b52331959aa3394680d6acbe09b8a5447c6b61375f263445bfcef19b7f1","names":[],"sources":[]},
|
||||
{"digest":"8a6e1ec9e8db346b0e02f027db73c07a94f067a26d40c1aef1abd09c47ce7ba0","names":[],"sources":[]},
|
||||
{"digest":"8a9c990773f798eac10ca8878e6bcc531ee080bc589cac956730e462cc6a09ad","names":[],"sources":["packages/interaction/permission-presets/src/index.ts:53"]},
|
||||
@@ -410,8 +410,8 @@
|
||||
{"digest":"8c1c4f72755a78ea163523a46565316e36e9b644382eb48e6635c71a6f412dd2","names":[],"sources":[]},
|
||||
{"digest":"8c627d7a45fa406cea879a3922105e27ed4c3c7966e264afaf11ea7a330f2dd1","names":[],"sources":[]},
|
||||
{"digest":"8cdd3fdd295cee53035de16a1b23411716f75e9f994fe9510cac5d7fef605c76","names":[],"sources":[]},
|
||||
{"digest":"8e31bb958e9b015e6f8407eaade32217068159e816f3cc99c3ad76eb889732e0","names":[],"sources":["packages/llm/llm/src/types.ts:160"]},
|
||||
{"digest":"8e611bf46821e5003a1605a73560a6f56388295149d449dfe2142d5ec335f29c","names":["packages/llm/llm/src/types.ts#ToolAdditionBlock"],"sources":["packages/llm/llm/src/types.ts:115"]},
|
||||
{"digest":"8e31bb958e9b015e6f8407eaade32217068159e816f3cc99c3ad76eb889732e0","names":[],"sources":["packages/llm/llm/src/types.ts:161"]},
|
||||
{"digest":"8e611bf46821e5003a1605a73560a6f56388295149d449dfe2142d5ec335f29c","names":["packages/llm/llm/src/types.ts#ToolAdditionBlock"],"sources":["packages/llm/llm/src/types.ts:116"]},
|
||||
{"digest":"8e8155594e07812356b67d732196dda894b0f9c91a5969d51612cf490b0a016d","names":[],"sources":[]},
|
||||
{"digest":"8e8e91646a5cae3fc78f7532a0013ff2088ae47077642c2edd507a508209b8af","names":["packages/schedule/schedule/src/types.ts#OneShotScheduleDispatchChange"],"sources":["packages/schedule/schedule/src/types.ts:237"]},
|
||||
{"digest":"8f324cea3916c0517261e88167def8efb3a9994c1135e23d40ed9fd48f8c7bd4","names":[],"sources":[]},
|
||||
@@ -425,7 +425,7 @@
|
||||
{"digest":"93cbbc5a7fd0b1aa1ff1b9a6bb5ec52b073f48e5a5200365c45c0cd54059e1b9","names":[],"sources":["packages/interaction/user-approval/src/types.ts:55"]},
|
||||
{"digest":"93d38436347f67c9022aacbc4472e283d722bcab8eb73fc376aaf7b6a6b9fb35","names":[],"sources":[]},
|
||||
{"digest":"94c56aeb1564ad735eb773d88636b40761d063efa1610f1308004d32923f5378","names":[],"sources":[]},
|
||||
{"digest":"95080295115fbd83544520ba247b68a03790131f6a2eac323d388758cb542f65","names":[],"sources":["packages/llm/llm/src/types.ts:472"]},
|
||||
{"digest":"95080295115fbd83544520ba247b68a03790131f6a2eac323d388758cb542f65","names":[],"sources":["packages/llm/llm/src/types.ts:492"]},
|
||||
{"digest":"95a3ffccbf3c8afcf9a2f3b355f724da8e07e98dc47ee741166dde7f9ea058bd","names":[],"sources":[]},
|
||||
{"digest":"95c0e88fcf0bafb2087f912ad9e2369de6ae6530cc0c4c2772c96205b57f7f60","names":[],"sources":[]},
|
||||
{"digest":"9645cf93769a6dfb227bd400bd6cb9fa7bab9140f4a851e4ae92514ade6e3114","names":[],"sources":[]},
|
||||
@@ -460,7 +460,7 @@
|
||||
{"digest":"a15a19ef63cf5d1b711db1d249821dab0cedcd3a9ad09137b47352c93841fd20","names":[],"sources":[]},
|
||||
{"digest":"a16e567c8cd2c55cf1e911aed3c200c4e1f6febb1459ff2a9e7adf159afb68cb","names":[],"sources":[]},
|
||||
{"digest":"a2066bd52f61218ba15b758def2641cc6a8bd3d4a594a488ee4c65be356d7e39","names":[],"sources":[]},
|
||||
{"digest":"a2b49331716ba0a7078b026d145306a70eae64b7313c3e6204bd931e75ec3bb1","names":[],"sources":["packages/llm/llm/src/types.ts:477"]},
|
||||
{"digest":"a2b49331716ba0a7078b026d145306a70eae64b7313c3e6204bd931e75ec3bb1","names":[],"sources":["packages/llm/llm/src/types.ts:497"]},
|
||||
{"digest":"a2be0f0cb59f0d4a06557d45847d1938aced238baa77a6da416e590b8b958553","names":[],"sources":[]},
|
||||
{"digest":"a3a259a1aa5401af786ce08c4a8419681d3000d73467991b5fc563389bc4ebd2","names":[],"sources":[]},
|
||||
{"digest":"a3c6f1ea38e9a61d7a9706057ba65aabe02dfe6d9dd90d4736aa62325d874531","names":[],"sources":[]},
|
||||
@@ -485,7 +485,7 @@
|
||||
{"digest":"aa93010d0e521ad7c42273f58d5c9b8bf1dfc94edf1b805a3971b364a35c1877","names":[],"sources":[]},
|
||||
{"digest":"aacda84a69739238aa782eea902d3073017d9d74b9808de2bf5a83c9738cbdc6","names":[],"sources":[]},
|
||||
{"digest":"aae343bc3d663c83f2e8b5e1c7eea5d509dc7a5361bc8bd8b5ac3bb8d3b1ed56","names":[],"sources":[]},
|
||||
{"digest":"ab7ec5f9eb2c6dfacca5da4c37cf7ba85d04172053ee6b1ebf1709ffcd99c1a7","names":[],"sources":["packages/core/session/src/types.ts:216","packages/llm/llm/src/types.ts:159"]},
|
||||
{"digest":"ab7ec5f9eb2c6dfacca5da4c37cf7ba85d04172053ee6b1ebf1709ffcd99c1a7","names":[],"sources":["packages/core/session/src/types.ts:216","packages/llm/llm/src/types.ts:160"]},
|
||||
{"digest":"aba175fb20ffc71112c55efe70458ff5d7dbfb83501892b4ba8d077f0ea5d7ba","names":[],"sources":[]},
|
||||
{"digest":"abd6ca62a5ab166553848324a23fef90eed7f59c8021bd63e7ea5bc6fd666b0c","names":["packages/web/web-search-deepseek/src/provider.ts#DeepSeekSearchLlmRequest"],"sources":["packages/web/web-search-deepseek/src/provider.ts:55"]},
|
||||
{"digest":"ad0c38a0adb82a94c925456df41586d9b5f9202fca18593eae2213d4445b4585","names":[],"sources":["packages/core/session/src/types.ts:392"]},
|
||||
@@ -547,7 +547,7 @@
|
||||
{"digest":"bf16d2e98a7f13894ded2cffe5ce857bf473954a0e3c0ed9bc7739e2e1c7b78a","names":[],"sources":[]},
|
||||
{"digest":"c0ea97bc89dfc46fa94eab956f5c3ee6af2f964aa7db6327cb18b451f207bef7","names":["packages/workflow/tool-workflow/src/types.ts#ToolWorkflowAgentEndData"],"sources":["packages/workflow/tool-workflow/src/types.ts:29"]},
|
||||
{"digest":"c170da8ab7c37635b10867b2571811d9e317ac3ec394e8ff8efe53f902fc41c1","names":["packages/llm/llm-retry/src/types.ts#LlmRetryEventData"],"sources":["packages/llm/llm-retry/src/types.ts:16"]},
|
||||
{"digest":"c1f0f17b6493b85db6453bb30e01b208d703731b25bc1e68e5d4fc72eea9cdea","names":["packages/llm/llm/src/types.ts#ToolCallBlock"],"sources":["packages/llm/llm/src/types.ts:105"]},
|
||||
{"digest":"c1f0f17b6493b85db6453bb30e01b208d703731b25bc1e68e5d4fc72eea9cdea","names":["packages/llm/llm/src/types.ts#ToolCallBlock"],"sources":["packages/llm/llm/src/types.ts:106"]},
|
||||
{"digest":"c1f9e0405de6d18cabb9ee70782a027f9bbdc57e5abec9dcccdd56119e2e9058","names":[],"sources":[]},
|
||||
{"digest":"c219efbdfd53b836786202ab4532913d555798f0a8615a4e9629736e3799fb70","names":[],"sources":[]},
|
||||
{"digest":"c2deb7c9183735d4e0fffddf5c623f4e34daa1c8e96b111982e957dfcbbcf896","names":["packages/workflow/workflow/src/types.ts#WorkflowAgentOutcome"],"sources":["packages/workflow/workflow/src/types.ts:110"]},
|
||||
@@ -574,7 +574,7 @@
|
||||
{"digest":"cffcdc19881ab61ec0a9ce18743996f7ac44ac8889f34dfac36ae745574aa22f","names":["packages/goal/goal/src/domain.ts#GoalClearChangeMeta"],"sources":["packages/goal/goal/src/domain.ts:35"]},
|
||||
{"digest":"d0fbb0ca1bbba059830826f33f801da1aced35a2504376d61e020bdfec8d50c0","names":[],"sources":[]},
|
||||
{"digest":"d28765f87d6b6ab408e0b2f3e7e297791b004b806d8e302c49903ebae815feb2","names":[],"sources":[]},
|
||||
{"digest":"d4b739491689cc6bb13d07ffac1a32239875abda364c0d5edd8f74faf5e9c00d","names":[],"sources":["packages/llm/llm/src/types.ts:475"]},
|
||||
{"digest":"d4b739491689cc6bb13d07ffac1a32239875abda364c0d5edd8f74faf5e9c00d","names":[],"sources":["packages/llm/llm/src/types.ts:495"]},
|
||||
{"digest":"d4c799e3d51cae1040362ba4968efc484739e14416c9c1df20c2f108b4ef2eb5","names":[],"sources":[]},
|
||||
{"digest":"d4e4d575abeb4b72d616dc65c17ac0eaa943cc135609395044c38d5afcb10e31","names":[],"sources":[]},
|
||||
{"digest":"d595ec73b32b016a6055333c67a5d646032b22e672da1d4a09c5b1ae398a093a","names":[],"sources":[]},
|
||||
@@ -644,11 +644,11 @@
|
||||
{"digest":"f1687f982fa3d41ef29e159feed154ecd13af4dd209acaee16038f223f2e9402","names":["packages/core/session/src/types.ts#TurnEndReason"],"sources":["packages/core/session/src/types.ts:234"]},
|
||||
{"digest":"f1996af2602e6f62b5ab179ca5c4af00d8753938b74cc6ef102de09e99e74a7e","names":[],"sources":[]},
|
||||
{"digest":"f19bee84bf3d20904553cdcd57465232bc1c2a194f54c4d195292ba0487223a6","names":["packages/attachment/attachment/src/types.ts#FileAttachmentRef"],"sources":["packages/attachment/attachment/src/types.ts:39"]},
|
||||
{"digest":"f1a96afe7503ac1817de769cd0ba13d9b80111c7034c50106b3344ecc14cc515","names":[],"sources":["packages/llm/llm/src/types.ts:476"]},
|
||||
{"digest":"f1a96afe7503ac1817de769cd0ba13d9b80111c7034c50106b3344ecc14cc515","names":[],"sources":["packages/llm/llm/src/types.ts:496"]},
|
||||
{"digest":"f230c0b583e23b25ee0a61dbe4c05e95c1e2ae44b27939501eb9e03696f0c278","names":[],"sources":[]},
|
||||
{"digest":"f29d63336e8266d80dd7baeab219436db86341304f6be1cd0edb36f5134c4a47","names":[],"sources":[]},
|
||||
{"digest":"f2da0f27c1e6add59982c37b15e4a4912c5b33466859cce3b13d503600e24aef","names":["packages/llm/llm/src/types.ts#FileBlock"],"sources":["packages/llm/llm/src/types.ts:98"]},
|
||||
{"digest":"f311671e07bc7fa645a0b6597de9966b97147956565296ba76a36543801b66c5","names":["packages/llm/llm/src/types.ts#SystemPromptUpdate"],"sources":["packages/llm/llm/src/types.ts:414"]},
|
||||
{"digest":"f2da0f27c1e6add59982c37b15e4a4912c5b33466859cce3b13d503600e24aef","names":["packages/llm/llm/src/types.ts#FileBlock"],"sources":["packages/llm/llm/src/types.ts:99"]},
|
||||
{"digest":"f311671e07bc7fa645a0b6597de9966b97147956565296ba76a36543801b66c5","names":["packages/llm/llm/src/types.ts#SystemPromptUpdate"],"sources":["packages/llm/llm/src/types.ts:434"]},
|
||||
{"digest":"f4a66f654996c093aae700ea4c434ff2ee3569fea9c0e5813ccf6afdccabd163","names":[],"sources":[]},
|
||||
{"digest":"f4ed4717b4c259e933b550a8dcd90dc93628cda8a3c7affcaa53b9c13c1d53eb","names":[],"sources":["packages/core/session/src/types.ts:313"]},
|
||||
{"digest":"f5520c1d261ca86ea03735799c311a0a9ede8babb588cf0a65422576d2ee0ad1","names":[],"sources":[]},
|
||||
@@ -680,7 +680,7 @@
|
||||
{"digest":"fd0d91a1f9dd2efb8959bdf5e07f8f0a98b1cdfa38ce8d4732ebde0b44c3abd4","names":[],"sources":[]},
|
||||
{"digest":"fe1a7acdeed4d0f5ab483396eaa5b3dc97263b7c10eb4da2f0028cb01728bfc9","names":[],"sources":[]},
|
||||
{"digest":"fe792a6cd430494503837e21e79f91677704ccdd9e870c679aabd7d43ed47ddd","names":[],"sources":[]},
|
||||
{"digest":"fec5442b9ee4122e10514d81d5a43648003fe8bfb7ee2ba50c0cdbdd383ed394","names":["packages/llm/llm/src/types.ts#TokenUsage"],"sources":["packages/llm/llm/src/types.ts:175"]},
|
||||
{"digest":"fec5442b9ee4122e10514d81d5a43648003fe8bfb7ee2ba50c0cdbdd383ed394","names":["packages/llm/llm/src/types.ts#TokenUsage"],"sources":["packages/llm/llm/src/types.ts:176"]},
|
||||
{"digest":"fee1caf8ab6a65c1bc981f5a1730164490f22a2a89ffa3d0b76f1f432c44c8b5","names":[],"sources":[]}
|
||||
],
|
||||
"nodes": {
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
en: 58dec2259b0b1c6f
|
||||
zh: fc99fe965acaabf3
|
||||
/llm-streaming/the-model-request:
|
||||
en: 2b0831aaae8e1cdf
|
||||
zh: f669d93d1b9d6025
|
||||
en: 834d3d8d6b5871ab
|
||||
zh: 393889ec6075f622
|
||||
/llm-streaming/the-model-request/the-request-envelope-llmcallconfig-and-the-logged-header:
|
||||
en: b0eb4620c6953646
|
||||
zh: fabf51c7245a4855
|
||||
|
||||
@@ -525,6 +525,26 @@ interface LlmNativeAuth {
|
||||
}
|
||||
```
|
||||
|
||||
A catalog entry may carry a provider-authored `badge` that selectors show beside the model name. It is display data: `resolveModelInfo` omits it, and no model request carries it.
|
||||
|
||||
```ts type-equiv
|
||||
/**
|
||||
* Emphasis of a model badge: `neutral` states a plain fact, `info` highlights
|
||||
* the model, `success` marks a benefit, and `warning` asks for attention.
|
||||
*/
|
||||
type LlmModelBadgeTone = 'neutral' | 'info' | 'success' | 'warning'
|
||||
```
|
||||
|
||||
```ts type-equiv
|
||||
/** Short provider-authored label a selector shows beside one advertised model name. */
|
||||
interface LlmModelBadge {
|
||||
/** One literal, or translations keyed by lowercase language id with a required English entry. */
|
||||
text: LocalizedText
|
||||
/** Emphasis of the label. */
|
||||
tone: LlmModelBadgeTone
|
||||
}
|
||||
```
|
||||
|
||||
```ts type-equiv
|
||||
/** One adapter-discovered model; catalog membership is advisory, not request validation. */
|
||||
interface LlmModelInfo {
|
||||
@@ -538,6 +558,11 @@ interface LlmModelInfo {
|
||||
description?: string
|
||||
/** Accepted request modalities; absent means unknown, while an explicit omission is negative capability. */
|
||||
inputModalities?: readonly ModelModality[]
|
||||
/**
|
||||
* Selector label advertised by catalog discovery; exact-route resolution
|
||||
* omits it, and no model request or Session event carries it.
|
||||
*/
|
||||
badge?: LlmModelBadge
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -531,6 +531,26 @@ interface LlmNativeAuth {
|
||||
}
|
||||
```
|
||||
|
||||
目录条目可以携带提供方编写的 `badge`,供选择器显示在模型名称旁。它只是展示数据:`resolveModelInfo` 不返回它,模型请求也不携带它。
|
||||
|
||||
```ts type-equiv
|
||||
/**
|
||||
* Emphasis of a model badge: `neutral` states a plain fact, `info` highlights
|
||||
* the model, `success` marks a benefit, and `warning` asks for attention.
|
||||
*/
|
||||
type LlmModelBadgeTone = 'neutral' | 'info' | 'success' | 'warning'
|
||||
```
|
||||
|
||||
```ts type-equiv
|
||||
/** Short provider-authored label a selector shows beside one advertised model name. */
|
||||
interface LlmModelBadge {
|
||||
/** One literal, or translations keyed by lowercase language id with a required English entry. */
|
||||
text: LocalizedText
|
||||
/** Emphasis of the label. */
|
||||
tone: LlmModelBadgeTone
|
||||
}
|
||||
```
|
||||
|
||||
```ts type-equiv
|
||||
/** One adapter-discovered model; catalog membership is advisory, not request validation. */
|
||||
interface LlmModelInfo {
|
||||
@@ -544,6 +564,11 @@ interface LlmModelInfo {
|
||||
description?: string
|
||||
/** Accepted request modalities; absent means unknown, while an explicit omission is negative capability. */
|
||||
inputModalities?: readonly ModelModality[]
|
||||
/**
|
||||
* Selector label advertised by catalog discovery; exact-route resolution
|
||||
* omits it, and no model request or Session event carries it.
|
||||
*/
|
||||
badge?: LlmModelBadge
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -44,6 +44,7 @@ export async function buildModelCatalog(
|
||||
name: model.name,
|
||||
...(model.description === undefined ? {} : { description: model.description }),
|
||||
...(reasoning === undefined ? {} : { reasoning }),
|
||||
...(model.badge === undefined ? {} : { badge: model.badge }),
|
||||
}
|
||||
}))
|
||||
return {
|
||||
|
||||
@@ -7,7 +7,7 @@ import type {
|
||||
} from '@deepseek-ai/dsh-attachment'
|
||||
import type { Branded } from '@deepseek-ai/dsh-brand'
|
||||
import type { LlmAttemptId, MessageId } from '@deepseek-ai/dsh-llm/brand'
|
||||
import type { TextBlock } from '@deepseek-ai/dsh-llm'
|
||||
import type { LlmModelBadge, TextBlock } from '@deepseek-ai/dsh-llm'
|
||||
import type { SessionId, SessionSeqCursor } from '@deepseek-ai/dsh-session/types'
|
||||
import type { SessionProjectionMap, SessionProjectionSummaryExcluded, SessionProjectionSummaryValues } from '@deepseek-ai/dsh-session-projection/types'
|
||||
import type { Principal } from '@deepseek-ai/dsh-typert-protocol'
|
||||
@@ -110,6 +110,8 @@ export interface ModelCatalogModel {
|
||||
readonly name: string
|
||||
readonly description?: string
|
||||
readonly reasoning?: ModelReasoning
|
||||
/** Provider-authored label shown beside the name; display data only. */
|
||||
readonly badge?: LlmModelBadge
|
||||
}
|
||||
|
||||
/** One provider and its successfully loaded model catalog. */
|
||||
|
||||
@@ -466,6 +466,7 @@ describe('Web session model selection', () => {
|
||||
const { ctx } = await harness()
|
||||
ctx.llm.registerAdapter(['plain'], new CatalogAdapter('Plain', [
|
||||
{ provider: 'plain', id: 'plain-model', name: 'Plain Model' },
|
||||
{ provider: 'plain', id: 'badged-model', name: 'Badged Model', badge: { text: { en: 'New', zh: '新' }, tone: 'info' } },
|
||||
]))
|
||||
ctx.llm.registerAdapter(['described-reasoning'], new CatalogAdapter('Described Reasoning', [
|
||||
{ provider: 'described-reasoning', id: 'reasoning-model', name: 'Reasoning Model' },
|
||||
@@ -485,7 +486,10 @@ describe('Web session model selection', () => {
|
||||
|
||||
const catalog = await buildModelCatalog(ctx)
|
||||
expect(catalog.groups).toEqual(expect.arrayContaining([
|
||||
{ id: 'plain', name: 'Plain', models: [{ id: 'plain-model', name: 'Plain Model' }] },
|
||||
{ id: 'plain', name: 'Plain', models: [
|
||||
{ id: 'plain-model', name: 'Plain Model' },
|
||||
{ id: 'badged-model', name: 'Badged Model', badge: { text: { en: 'New', zh: '新' }, tone: 'info' } },
|
||||
] },
|
||||
{
|
||||
id: 'described-reasoning',
|
||||
name: 'Described Reasoning',
|
||||
|
||||
@@ -6171,6 +6171,14 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
||||
name: 'LlmImageRequestPricing',
|
||||
declaration: 'export interface LlmImageRequestPricing {\n priceImages(images: readonly ImageBlock[]): readonly LlmImageRequestPrice[];\n}',
|
||||
},
|
||||
{
|
||||
name: 'LlmModelBadge',
|
||||
declaration: 'export interface LlmModelBadge {\n text: LocalizedText;\n tone: LlmModelBadgeTone;\n}',
|
||||
},
|
||||
{
|
||||
name: 'LlmModelBadgeTone',
|
||||
declaration: 'export type LlmModelBadgeTone = \'neutral\' | \'info\' | \'success\' | \'warning\';',
|
||||
},
|
||||
{
|
||||
name: 'LlmModelContext',
|
||||
declaration: 'export interface LlmModelContext {\n contextWindow: number;\n}',
|
||||
@@ -6181,7 +6189,7 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
||||
},
|
||||
{
|
||||
name: 'LlmModelInfo',
|
||||
declaration: 'export interface LlmModelInfo {\n provider: string;\n id: string;\n name: string;\n description?: string;\n inputModalities?: readonly ModelModality[];\n}',
|
||||
declaration: 'export interface LlmModelInfo {\n provider: string;\n id: string;\n name: string;\n description?: string;\n inputModalities?: readonly ModelModality[];\n badge?: LlmModelBadge;\n}',
|
||||
},
|
||||
{
|
||||
name: 'LlmModelReasoningInfo',
|
||||
@@ -6461,7 +6469,7 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
||||
},
|
||||
{
|
||||
name: 'ModelCatalogModel',
|
||||
declaration: 'export interface ModelCatalogModel {\n readonly id: string;\n readonly name: string;\n readonly description?: string;\n readonly reasoning?: ModelReasoning;\n}',
|
||||
declaration: 'export interface ModelCatalogModel {\n readonly id: string;\n readonly name: string;\n readonly description?: string;\n readonly reasoning?: ModelReasoning;\n readonly badge?: LlmModelBadge;\n}',
|
||||
},
|
||||
{
|
||||
name: 'ModelMessageSource',
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
en: 23386452a66b2fbd
|
||||
zh: 4cf93c4bf17b3da2
|
||||
/deepseek-ai-dsh-llm-deepseek-account/use-this-package:
|
||||
en: b92099c600203029
|
||||
zh: 5d8e48261d873793
|
||||
en: 6b698224cfc46974
|
||||
zh: d8c69972f948086c
|
||||
/deepseek-ai-dsh-llm-deepseek-account/understand-the-implementation:
|
||||
en: 534b344a98142d91
|
||||
zh: 1291b721c8fead84
|
||||
|
||||
@@ -29,12 +29,14 @@ Only `deepseekAccount.resolveToken(url)` supplies the token; the account service
|
||||
|
||||
The route's catalog comes from the account's `GET /models` listing at the origin of the Messages `baseURL` (`https://api.deepseek.com/models` for the official endpoint); the listing endpoint is not configurable. Listing requests carry the account token in `x-dsh-auth-token` and the harness `User-Agent`, and reject redirects.
|
||||
|
||||
The first access of a credential waits for the listing up to `modelsTimeoutMs`. Later accesses use the loaded listing and refresh it in the background once it is older than `modelsMaxAgeMs`. A failed or empty listing keeps the previous one; before any listing loads, the route serves the built-in catalog of the current version (`deepseek-flash` and `deepseek-v4-pro`). A listing HTTP 401 does not remove the stored login. Each loaded listing, the first failure of a failing streak with the catalog it falls back to, and each hidden listing entry are written to stderr with the `[llm-deepseek-account]` tag; stdout remains available for protocol messages, and secrets are never logged. Each account token has its own listing, so the service can roll a model out to some accounts first.
|
||||
The first access of a credential waits for the listing up to `modelsTimeoutMs`. Later accesses use the loaded listing and refresh it in the background once it is older than `modelsMaxAgeMs`. A failed or empty listing keeps the previous one; before any listing loads, the route serves the built-in catalog of the current version (`deepseek-flash` and `deepseek-v4-pro`). A listing HTTP 401 does not remove the stored login. Each loaded listing, the first failure of a failing streak with the catalog it falls back to, each hidden listing entry, and each dropped badge are written to stderr with the `[llm-deepseek-account]` tag; stdout remains available for protocol messages, and secrets are never logged. Each account token has its own listing, so the service can roll a model out to some accounts first.
|
||||
|
||||
A listed model is offered only when the current DeepSeek Harness version can serve it. A model that declares `client_requirements["deepseek-harness"].min_version` is offered when the current version is at least that version in semantic-version order, including prerelease tags such as `0.2.0-alpha.1` and `0.2.0-rc.1`. A prerelease orders below its release: `min_version: 0.2.1` refuses `0.2.1-alpha.2`, so a listing that admits prereleases declares the earliest one it admits, such as `0.2.1-alpha.0`. A model without that declaration is offered only when the built-in catalog knows its id; other listed models stay hidden. A request for a listed model the current version cannot serve fails before network I/O with `CLIENT_UPGRADE_REQUIRED`, which names the required and current versions, or with `MODEL_UNSUPPORTED`. Model ids the listing does not name pass through unchanged.
|
||||
|
||||
Offered models take the listing's name, `context_window`, input modalities, and Messages system prompt and tool update modes (`api_capabilities.anthropic_messages.system_prompt_update` and `tool_update`) over the bundled entry for the same id, which keeps its image budgets and description. A mode the listing omits or sets to `null` keeps the bundled one; any value other than the modes this build reads (`in-history` for system prompts; `in-history` or `addition-only` for tools) reads as `leading-only`, which removes the bundled mode. `max_output_tokens` bounds the request default: a request that names no cap sends the smaller of `maxTokens` and that capability. The listing's effort levels are not read; every model offers `off`, `low`, `high`, and `max`.
|
||||
|
||||
An offered model shows the listing's `badge` beside its name in the Web model selector. `badge.text` is a string, or an object keyed by lowercase language ids such as `en`, `zh`, and `ja` that includes `en`; the selector shows the active language's text and otherwise English. Each text is trimmed and must be 1 to 12 characters on one line; an emoji or a letter with combining marks counts as one character. `badge.tone` is `neutral`, `info`, `success`, or `warning`; an absent or other value shows `neutral`. An absent or `null` badge shows none, because this build has no badge of its own to fall back on. An unreadable badge is dropped while its model stays offered. Badges are display data: model requests, Session events, and model-facing tools never carry them.
|
||||
|
||||
`modelOverrides` adjusts single models without replacing the catalog. Keys are model ids; values take the fields of a [Messages `models` entry](../llm-deepseek/README.md#minimal-configuration), and unset fields inherit. Overrides apply over the listing and the bundled catalog; they cannot add models or make a refused model available. Listed capabilities do not bound an override: an override `maxTokens` above the listed `max_output_tokens` is sent as written, and the service rejects requests beyond its limits. An override that names a model neither the listing nor the built-in catalog describes, or that the listed model rejects, becomes the provider diagnostic on the Models page, which has no editor for this route. An override for a refused model that the built-in catalog does not describe is checked only once the current version can serve that model. The route has no `models` field; a configuration that still sets it fails at load and names `modelOverrides`. Edit `$DSH_HOME/profiles/<profile>/cordis.patch.yml`; the next request uses the change.
|
||||
|
||||
```yaml
|
||||
|
||||
@@ -29,12 +29,14 @@ kind: "package-reference"
|
||||
|
||||
路由的目录来自账号的 `GET /models` 列表,地址为 Messages `baseURL` 的 origin 加 `/models`(官方端点即 `https://api.deepseek.com/models`),不可配置。列表请求用 `x-dsh-auth-token` 携带账号 token,带上 harness 的 `User-Agent`,并拒绝重定向。
|
||||
|
||||
同一凭据的第一次访问会等待列表,最长 `modelsTimeoutMs`。之后的访问直接使用已加载的列表,列表超过 `modelsMaxAgeMs` 后在后台刷新。获取失败或得到空列表时保留上一份;还没有加载到任何列表时,路由提供当前版本内置的目录(`deepseek-flash` 与 `deepseek-v4-pro`)。列表请求返回 HTTP 401 不会清除已保存的登录。每次加载成功、连续失败中的第一次失败及其退回的目录、以及每个被隐藏的列表条目,都会以 `[llm-deepseek-account]` 标签写到 stderr;stdout 保留给协议消息,且不记录任何密钥。每个账号 token 有自己的列表,因此服务端可以先对部分账号开放某个模型。
|
||||
同一凭据的第一次访问会等待列表,最长 `modelsTimeoutMs`。之后的访问直接使用已加载的列表,列表超过 `modelsMaxAgeMs` 后在后台刷新。获取失败或得到空列表时保留上一份;还没有加载到任何列表时,路由提供当前版本内置的目录(`deepseek-flash` 与 `deepseek-v4-pro`)。列表请求返回 HTTP 401 不会清除已保存的登录。每次加载成功、连续失败中的第一次失败及其退回的目录、每个被隐藏的列表条目,以及每个被丢弃的角标,都会以 `[llm-deepseek-account]` 标签写到 stderr;stdout 保留给协议消息,且不记录任何密钥。每个账号 token 有自己的列表,因此服务端可以先对部分账号开放某个模型。
|
||||
|
||||
只有当前版本的 DeepSeek Harness 能用的模型才会出现在目录里。声明了 `client_requirements["deepseek-harness"].min_version` 的模型,在当前版本号按 semver 顺序不低于该版本时提供,预发布号(如 `0.2.0-alpha.1`、`0.2.0-rc.1`)同样参与比较。预发布版本低于同号的正式版本:`min_version: 0.2.1` 会拒绝 `0.2.1-alpha.2`,因此要放行预发布版本的列表应声明它允许的最早一个,如 `0.2.1-alpha.0`。没有这个声明的模型,只有内置目录认识它的 id 时才提供;其余列出的模型保持隐藏。请求一个当前版本不能用的已列出模型时,会在网络请求之前失败:`CLIENT_UPGRADE_REQUIRED` 会写明所需版本和当前版本,否则为 `MODEL_UNSUPPORTED`。列表没有列出的模型 id 照常透传。
|
||||
|
||||
提供的模型以列表中的名称、`context_window`、输入模态,以及 Messages 的 system prompt 模式和工具更新模式(`api_capabilities.anthropic_messages.system_prompt_update` 与 `tool_update`)覆盖同 id 的内置条目,内置条目保留图片预算和描述。列表没有给出或设为 `null` 的模式沿用内置值;本版本能读的模式之外的任何值(system prompt 能读 `in-history`,工具能读 `in-history` 或 `addition-only`)都按 `leading-only` 处理,即去掉内置的模式。`max_output_tokens` 限制请求默认值:请求没有指定上限时,发送 `maxTokens` 与该能力上限中较小的一个。列表中的推理档位不被读取;每个模型都提供 `off`、`low`、`high`、`max`。
|
||||
|
||||
提供的模型会在 Web 模型选择器中,于名称旁显示列表里的 `badge`。`badge.text` 是字符串,或以小写语言 id(如 `en`、`zh`、`ja`)为键且包含 `en` 的对象;选择器显示当前语言的文字,没有时显示英文。每段文字去掉首尾空白后须为单行,长度为 1 到 12 个字符;一个 emoji 或带组合符号的字母算作一个字符。`badge.tone` 取 `neutral`、`info`、`success` 或 `warning`;缺省或其他取值按 `neutral` 显示。`badge` 缺省或为 `null` 时不显示角标,因为本版本没有可回退的内置角标。无法读取的角标会被丢弃,所属模型照常提供。角标只用于展示:模型请求、Session 事件和面向模型的工具都不携带它。
|
||||
|
||||
`modelOverrides` 调整单个模型而不替换整个目录。键是模型 id;值的字段与 [Messages `models` 条目](../llm-deepseek/README.zh.md#minimal-configuration)相同,未设置的字段沿用下层的值。覆盖作用在列表和内置目录之上;不能新增模型,也不能让被拒绝的模型变得可用。列表声明的能力不约束覆盖:覆盖的 `maxTokens` 高于列表的 `max_output_tokens` 时按覆盖值发送,超出服务端限制的请求由服务端拒绝。覆盖指向的模型既不在列表里、内置目录也不认识,或者被列出的模型拒绝时,会成为模型页上该提供方的诊断信息;模型页不为此路由提供编辑器。被拒绝且内置目录不认识的模型,其覆盖要等当前版本能用该模型时才校验。此路由没有 `models` 字段;配置里仍写了它时,加载即失败并提示改用 `modelOverrides`。修改 `$DSH_HOME/profiles/<profile>/cordis.patch.yml`,下一次请求即生效。
|
||||
|
||||
```yaml
|
||||
|
||||
@@ -96,7 +96,9 @@ export function apply(ctx: Context, config: Config): void {
|
||||
admit: (connection, model) => { refuseListedModel(model, connection.catalog.refusals.get(model)) },
|
||||
discoverModels: async (provider) => {
|
||||
const view = await catalog.view(settings().catalog)
|
||||
return view.authenticated ? discovered(view).catalog.offered.map(model => catalogModelInfo(provider, model)) : []
|
||||
if (!view.authenticated) return []
|
||||
const { offered, badges } = discovered(view).catalog
|
||||
return offered.map(model => catalogModelInfo(provider, model, badges.get(model.id)))
|
||||
},
|
||||
})
|
||||
ctx.effect(() => () => { catalog.dispose() }, 'llm-deepseek-account: model catalog')
|
||||
|
||||
@@ -98,6 +98,16 @@ it('resolves listed capabilities with this build\'s model knowledge', async () =
|
||||
expect(server.requests[0]?.headers['user-agent']).toMatch(/^deepseek-harness\//)
|
||||
})
|
||||
|
||||
it('advertises the badges its listing declares', async () => {
|
||||
const badge = { text: { en: 'New', zh: '新' }, tone: 'success' }
|
||||
const server = await listing(json({ data: [{ ...FLASH, badge }, PRO] }))
|
||||
const ctx = await host(server.origin)
|
||||
await ctx.plugin(Account, { baseURL: server.baseURL })
|
||||
expect((await ctx.llm.listModels('deepseek-account')).map(row => [row.id, row.badge])).toEqual([
|
||||
['deepseek-flash', badge], ['deepseek-v4-pro', undefined],
|
||||
])
|
||||
})
|
||||
|
||||
it('falls back to the bundled catalog when the listing fails', async () => {
|
||||
const warn = vi.spyOn(console, 'warn').mockImplementation(() => {})
|
||||
const server = await listing((_request, response) => { response.writeHead(503).end('down') })
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
en: 23386452a66b2fbd
|
||||
zh: 4cf93c4bf17b3da2
|
||||
/deepseek-ai-dsh-llm-deepseek-api-key/use-this-package:
|
||||
en: 2aad8a660b90561d
|
||||
zh: 3f425b3d1ea023e1
|
||||
en: 49c24386da5ff783
|
||||
zh: 8f54156dbf32e184
|
||||
/deepseek-ai-dsh-llm-deepseek-api-key/understand-the-implementation:
|
||||
en: d614c1ea3a9eb382
|
||||
zh: 5ca070349bb22d56
|
||||
|
||||
@@ -39,7 +39,7 @@ The endpoint and credential reference come from one configuration resolution. In
|
||||
|
||||
`models` is an independently configurable catalog for this provider; defaults and protocol capabilities come from the shared transport. While `models` equals the built-in catalog and the Messages origin is the official API, `https://api.deepseek.com`, the route serves the official `GET https://api.deepseek.com/models` listing instead. Listing requests carry the API key in `x-api-key` and the harness `User-Agent`, and reject redirects; without an API key the route requests nothing. Any other endpoint, including one named by `baseURL` or `$DEEPSEEK_BASE_URL`, serves `models` and requests no listing. Discovery does not probe inference endpoints.
|
||||
|
||||
The first access waits for the listing up to `modelsTimeoutMs`. Later accesses use the loaded listing and refresh it in the background once it is older than `modelsMaxAgeMs`; an idle route sends no requests. A failed or empty listing keeps the previous one; before any listing loads, the route serves the built-in catalog of the current version (`deepseek-flash` and `deepseek-v4-pro`). A listing HTTP 401 fails only that load. Each loaded listing, the first failure of a failing streak with the catalog it falls back to, and each listing entry hidden because its declarations are unreadable or unusable are written to stderr with the `[llm-deepseek-api-key]` tag; stdout remains available for protocol messages, and secrets are never logged.
|
||||
The first access waits for the listing up to `modelsTimeoutMs`. Later accesses use the loaded listing and refresh it in the background once it is older than `modelsMaxAgeMs`; an idle route sends no requests. A failed or empty listing keeps the previous one; before any listing loads, the route serves the built-in catalog of the current version (`deepseek-flash` and `deepseek-v4-pro`). A listing HTTP 401 fails only that load. Each loaded listing, the first failure of a failing streak with the catalog it falls back to, each listing entry hidden because its declarations are unreadable or unusable, and each dropped badge are written to stderr with the `[llm-deepseek-api-key]` tag; stdout remains available for protocol messages, and secrets are never logged.
|
||||
|
||||
Listed models are offered, merged with this build's entries, and refused before network I/O with `CLIENT_UPGRADE_REQUIRED` or `MODEL_UNSUPPORTED` by the [account route's rules](../llm-deepseek-account/README.md#use-this-package); model ids the listing does not name pass through unchanged.
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ kind: "package-reference"
|
||||
|
||||
`models` 是该 provider 独立的可配置目录;默认值和协议能力来自共享传输包。当 `models` 等于内置目录、且 Messages 的 origin 是官方 API `https://api.deepseek.com` 时,路由改为提供官方 `GET https://api.deepseek.com/models` 列表。列表请求用 `x-api-key` 携带 API key,带上 harness 的 `User-Agent`,并拒绝重定向;没有 API key 时不发任何请求。其他端点,包括由 `baseURL` 或 `$DEEPSEEK_BASE_URL` 指定的端点,提供 `models`,不请求列表。目录判断不探测推理端点。
|
||||
|
||||
第一次访问会等待列表,最长 `modelsTimeoutMs`。之后的访问直接使用已加载的列表,列表超过 `modelsMaxAgeMs` 后在后台刷新;路由空闲时不发请求。获取失败或得到空列表时保留上一份;还没有加载到任何列表时,路由提供当前版本内置的目录(`deepseek-flash` 与 `deepseek-v4-pro`)。列表请求返回 HTTP 401 只让这一次加载失败。每次加载成功、连续失败中的第一次失败及其退回的目录、以及每个因声明无法读取或不可用而被隐藏的列表条目,都会以 `[llm-deepseek-api-key]` 标签写到 stderr;stdout 保留给协议消息,且不记录任何密钥。
|
||||
第一次访问会等待列表,最长 `modelsTimeoutMs`。之后的访问直接使用已加载的列表,列表超过 `modelsMaxAgeMs` 后在后台刷新;路由空闲时不发请求。获取失败或得到空列表时保留上一份;还没有加载到任何列表时,路由提供当前版本内置的目录(`deepseek-flash` 与 `deepseek-v4-pro`)。列表请求返回 HTTP 401 只让这一次加载失败。每次加载成功、连续失败中的第一次失败及其退回的目录、每个因声明无法读取或不可用而被隐藏的列表条目,以及每个被丢弃的角标,都会以 `[llm-deepseek-api-key]` 标签写到 stderr;stdout 保留给协议消息,且不记录任何密钥。
|
||||
|
||||
列出的模型按[账号路由的规则](../llm-deepseek-account/README.zh.md#use-this-package)提供、与本版本的内置条目合并,并在网络请求之前以 `CLIENT_UPGRADE_REQUIRED` 或 `MODEL_UNSUPPORTED` 拒绝;列表没有列出的模型 id 照常透传。
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/** API-key authentication, credential-gated discovery, and the official model listing for the official DeepSeek route. */
|
||||
import type { Context } from '@deepseek-ai/cordis'
|
||||
import { APP_IDENTITY, assertUsableApiKey, LlmError } from '@deepseek-ai/dsh-llm'
|
||||
import type { LlmModelBadge } from '@deepseek-ai/dsh-llm'
|
||||
import type {} from '@deepseek-ai/cordis-plugin-loader'
|
||||
import { launchEnvironmentOf } from '@deepseek-ai/dsh-launch-environment'
|
||||
import {
|
||||
@@ -25,6 +26,8 @@ interface OfficialConnection extends ResolvedDeepSeekOptions {
|
||||
readonly offered: readonly DeepSeekCatalogModel[]
|
||||
/** Listed models refused before network I/O, by id. */
|
||||
readonly refusals: ReadonlyMap<string, CatalogRefusal>
|
||||
/** Listed badges of offered models, by id; empty without a followed listing. */
|
||||
readonly badges: ReadonlyMap<string, LlmModelBadge>
|
||||
}
|
||||
|
||||
export function apply(ctx: Context, config: Config): void {
|
||||
@@ -65,7 +68,7 @@ export function apply(ctx: Context, config: Config): void {
|
||||
let reportedListing: ModelListing | undefined
|
||||
/** Resolve the catalog of one operation, reporting each listing's hidden entries once. */
|
||||
const connectionOf = (connection: ResolvedDeepSeekOptions, view: ListingView | undefined): OfficialConnection => {
|
||||
if (view === undefined) return { ...connection, offered: connection.models, refusals: new Map() }
|
||||
if (view === undefined) return { ...connection, offered: connection.models, refusals: new Map(), badges: new Map() }
|
||||
const catalog = resolveListedCatalog({
|
||||
listing: view.listing?.entries,
|
||||
supported: connection.models,
|
||||
@@ -77,7 +80,7 @@ export function apply(ctx: Context, config: Config): void {
|
||||
reportedListing = view.listing
|
||||
for (const problem of catalog.problems) console.warn(LOG_TAG, problem)
|
||||
}
|
||||
return { ...connection, models: catalog.resolution, offered: catalog.offered, refusals: catalog.refusals }
|
||||
return { ...connection, models: catalog.resolution, offered: catalog.offered, refusals: catalog.refusals, badges: catalog.badges }
|
||||
}
|
||||
ctx.llm.registerConfigurableProviders([
|
||||
{ provider: PROVIDER, displayName: 'DeepSeek', settingsNs: ctx.fiber.entry?.options.id ?? name, settingsPath: [] },
|
||||
@@ -109,7 +112,9 @@ export function apply(ctx: Context, config: Config): void {
|
||||
return connection.models.map(model => catalogModelInfo(provider, model))
|
||||
}
|
||||
const view = await listings.view(connection.listing)
|
||||
return view.authenticated ? connectionOf(connection, view).offered.map(model => catalogModelInfo(provider, model)) : []
|
||||
if (!view.authenticated) return []
|
||||
const { offered, badges } = connectionOf(connection, view)
|
||||
return offered.map(model => catalogModelInfo(provider, model, badges.get(model.id)))
|
||||
},
|
||||
})
|
||||
// Starting or stopping to follow the listing discards it, so restoring the built-in
|
||||
|
||||
@@ -59,6 +59,20 @@ it('follows the official listing while the catalog is the built-in one', async (
|
||||
expect(diagnostics).toHaveBeenCalledExactlyOnceWith('[llm-deepseek-api-key]', expect.stringContaining('loaded 3 model(s), skipped 0 row(s)') as string)
|
||||
})
|
||||
|
||||
it('advertises listed badges only while it follows the listing', async () => {
|
||||
const badge = { text: '1017', tone: 'info' }
|
||||
officialListing(listing({ ...FLASH, badge }, PRO))
|
||||
const { ctx } = await host()
|
||||
await ctx.plugin(ApiKey, {})
|
||||
const listed = await ctx.llm.listModels('deepseek-official')
|
||||
expect(listed.map(model => [model.id, model.badge])).toEqual([['deepseek-flash', badge], ['deepseek-v4-pro', undefined]])
|
||||
await expect(ctx.llm.resolveModelInfo('deepseek-official', 'deepseek-flash')).resolves.not.toHaveProperty('badge')
|
||||
|
||||
const other = await host()
|
||||
await other.ctx.plugin(ApiKey, { baseURL: 'http://127.0.0.1:9/anthropic' })
|
||||
expect((await other.ctx.llm.listModels('deepseek-official')).some(model => model.badge !== undefined)).toBe(false)
|
||||
})
|
||||
|
||||
it('keeps a customized catalog without requesting the listing', async () => {
|
||||
const requests = officialListing(listing(FLASH))
|
||||
const { ctx } = await host()
|
||||
|
||||
@@ -39,8 +39,8 @@
|
||||
en: f13f24b504dcfb50
|
||||
zh: 69b0ed9e2adf3394
|
||||
/deepseek-ai-dsh-llm-deepseek/use-this-package/failures-and-recovery:
|
||||
en: 40ab925291edc6ac
|
||||
zh: 62c42ea3521920dc
|
||||
en: a7553dc4db7d8495
|
||||
zh: f59a1e111fbe798f
|
||||
/deepseek-ai-dsh-llm-deepseek/understand-the-implementation:
|
||||
en: 1598ac8a8bb9b6bf
|
||||
zh: fdd089c5ae7722cd
|
||||
|
||||
@@ -118,7 +118,7 @@ Successful Files responses must contain valid JSON. JSON decoding failures from
|
||||
|
||||
Non-2xx responses fail with stable codes: `AUTH` (401/403), `QUOTA`, `RATE_LIMIT`, `CONTEXT_WINDOW_EXCEEDED`, `INVALID_REQUEST`, `SERVER`, and `HTTP_<status>` otherwise; pre-response transport failures throw `TRANSPORT`, caller aborts throw `ABORTED`, and stream-idle expiry throws `TIMEOUT`. A request-extension field collision, or a rejected preparation from a directly supplied `prepareExtensions`, fails with `REQUEST_EXTENSION` and appends the cause chain to the message; a post-2xx acceptance failure is logged and the response still streams. A normalized-image rejection names every plausible attachment and its durable position when the provider does not identify a file id. Stale-file rejection removes every named mapping (or every mapping used by the attempt) in one upload-index update and permits one replacement model request. Protocol violations throw `STREAM_CLOSED` or `MALFORMED_RESPONSE`, and a terminal `stop` with no content blocks becomes `EMPTY_RESPONSE`, which the default retry policy retries. A request on the official route without an API key fails with `MISSING_CREDENTIAL`, and a malformed credential fails with `INVALID_CREDENTIAL` naming the reference to fix — never any part of the key.
|
||||
|
||||
Provider plugins own catalog availability. While its API key resolves, the API-key route serves its configured `models`, or the official model listing while `models` is the built-in catalog on the official endpoint; the account route serves its account listing while signed in (see the [API-key](../llm-deepseek-api-key/README.md) and [account](../llm-deepseek-account/README.md) providers). The transport supplies the bundled catalog, the catalog-entry field schemas, and capability resolution, plus the listing machinery both routes share: `requestModelListing`, the credential-scoped `ModelListingCache`, and `resolveListedCatalog` with its client-version gate and `refuseListedModel`. A provider may also supply `connect(signal)`, which resolves the connection for exact-model lookups and prepared calls after provider-owned work such as a catalog load, and `admit(connection, model)`, which refuses a model before network I/O.
|
||||
Provider plugins own catalog availability. While its API key resolves, the API-key route serves its configured `models`, or the official model listing while `models` is the built-in catalog on the official endpoint; the account route serves its account listing while signed in (see the [API-key](../llm-deepseek-api-key/README.md) and [account](../llm-deepseek-account/README.md) providers). The transport supplies the bundled catalog, the catalog-entry field schemas, and capability resolution, plus the listing machinery both routes share: `requestModelListing`, the credential-scoped `ModelListingCache`, and `resolveListedCatalog` with its client-version gate, listed badges, and `refuseListedModel`; `catalogModelInfo` attaches a listed badge to the advertised entry. A provider may also supply `connect(signal)`, which resolves the connection for exact-model lookups and prepared calls after provider-owned work such as a catalog load, and `admit(connection, model)`, which refuses a model before network I/O.
|
||||
|
||||
-----
|
||||
|
||||
|
||||
@@ -118,7 +118,7 @@ Files 模式通过 `maxRequestFilesBytes` 与 `maxImagesPerRequest` 限制保留
|
||||
|
||||
非 2xx 响应以稳定 code 失败:`AUTH`(401/403)、`QUOTA`、`RATE_LIMIT`、`CONTEXT_WINDOW_EXCEEDED`、`INVALID_REQUEST`、`SERVER` 以及其他情况的 `HTTP_<status>`;响应前传输失败抛出 `TRANSPORT`,调用方中止抛出 `ABORTED`,流空闲超时抛出 `TIMEOUT`。请求扩展字段冲突,或直接提供的 `prepareExtensions` 拒绝准备时,使用 `REQUEST_EXTENSION` 失败,并在消息中附上原因链;2xx 后接受失败只记录告警,响应仍会继续流式返回。当提供方未指出 file id 时,规范化图片拒绝会列出所有可能附件及其持久位置。陈旧文件拒绝会在一次上传索引更新中删除全部点名映射(或该次尝试使用的全部映射),并允许一次替换模型请求。协议违规抛出 `STREAM_CLOSED` 或 `MALFORMED_RESPONSE`;不带内容块的终止 `stop` 变成 `EMPTY_RESPONSE`,默认重试策略会重试它。官方路由缺少 API Key 的请求以 `MISSING_CREDENTIAL` 失败;格式错误的凭据以 `INVALID_CREDENTIAL` 失败,并点名需要修复的引用——绝不包含密钥的任何部分。
|
||||
|
||||
提供方插件负责目录可用性:API key 路由在能解析到 API key 时提供配置中的 `models`,在官方端点上且 `models` 为内置目录时改为提供官方模型列表;账号路由在登录时提供账号的模型列表(见 [API key](../llm-deepseek-api-key/README.zh.md) 与[账号](../llm-deepseek-account/README.zh.md)提供方)。传输层提供内置目录、目录条目字段的 schema 和能力解析,以及两条路由共用的列表机制:`requestModelListing`、按凭据区分的 `ModelListingCache`,以及带客户端版本门控的 `resolveListedCatalog` 与 `refuseListedModel`。提供方还可以提供 `connect(signal)`:在提供方自己的工作(例如加载目录)完成后,为精确模型查询和预备调用解析连接;以及 `admit(connection, model)`:在网络请求之前拒绝某个模型。
|
||||
提供方插件负责目录可用性:API key 路由在能解析到 API key 时提供配置中的 `models`,在官方端点上且 `models` 为内置目录时改为提供官方模型列表;账号路由在登录时提供账号的模型列表(见 [API key](../llm-deepseek-api-key/README.zh.md) 与[账号](../llm-deepseek-account/README.zh.md)提供方)。传输层提供内置目录、目录条目字段的 schema 和能力解析,以及两条路由共用的列表机制:`requestModelListing`、按凭据区分的 `ModelListingCache`,以及带客户端版本门控和列表角标的 `resolveListedCatalog` 与 `refuseListedModel`;`catalogModelInfo` 把列表角标附到公布的条目上。提供方还可以提供 `connect(signal)`:在提供方自己的工作(例如加载目录)完成后,为精确模型查询和预备调用解析连接;以及 `admit(connection, model)`:在网络请求之前拒绝某个模型。
|
||||
|
||||
-----
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ export type { RequestDefaults } from './types.ts'
|
||||
export { catalogModelInfo } from './model-info.ts'
|
||||
export { registerDeepSeekProvider } from './host.ts'
|
||||
export { LISTING_TIMEOUT, modelListingURL, parseModelListing, requestModelListing } from './listing.ts'
|
||||
export type { ClientRequirement, ListedCapabilities, ListedFacts, ListingEntry, ModelListing } from './listing.ts'
|
||||
export type { ClientRequirement, ListedBadge, ListedCapabilities, ListedFacts, ListingEntry, ModelListing } from './listing.ts'
|
||||
export { DEFAULT_MODELS_MAX_AGE_MS, DEFAULT_MODELS_TIMEOUT_MS, modelListingConfigFields, resolveListingTiming } from './listing-config.ts'
|
||||
export type { ListingSettings, ListingTiming, ModelListingConfig, ModelListingOptions } from './listing-config.ts'
|
||||
export { ModelListingCache } from './listing-cache.ts'
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/** A listed catalog: version gating, this build's model knowledge, and deployment overrides. */
|
||||
import semver from 'semver'
|
||||
import { APP_IDENTITY, LlmError } from '@deepseek-ai/dsh-llm'
|
||||
import type { LlmModelBadge } from '@deepseek-ai/dsh-llm'
|
||||
import { assertNever } from '@deepseek-ai/dsh-util-values'
|
||||
import { resolveAdapterOptions } from './config.ts'
|
||||
import type { ListedFacts, ListingEntry } from './listing.ts'
|
||||
@@ -36,7 +37,9 @@ export interface ListedCatalog {
|
||||
readonly resolution: readonly DeepSeekCatalogModel[]
|
||||
/** Listed models refused before network I/O, by id. */
|
||||
readonly refusals: ReadonlyMap<string, CatalogRefusal>
|
||||
/** Listing entries hidden because their declarations are unreadable or unusable. */
|
||||
/** Listed badges of offered models, by id. */
|
||||
readonly badges: ReadonlyMap<string, LlmModelBadge>
|
||||
/** Listing entries hidden because their declarations are unreadable or unusable, and offered models whose badge is dropped. */
|
||||
readonly problems: readonly string[]
|
||||
/** Configuration diagnostics for `modelOverrides`. */
|
||||
readonly overrideErrors: readonly string[]
|
||||
@@ -115,10 +118,11 @@ export function resolveListedCatalog(input: ListedCatalogInput): ListedCatalog {
|
||||
}
|
||||
if (input.listing === undefined) {
|
||||
const resolution = resolveAdapterOptions({ models: input.supported.map(withOverride) }).models
|
||||
return { offered: resolution, resolution, refusals: new Map(), problems, overrideErrors }
|
||||
return { offered: resolution, resolution, refusals: new Map(), badges: new Map(), problems, overrideErrors }
|
||||
}
|
||||
const offered: DeepSeekCatalogModel[] = []
|
||||
const refusals = new Map<string, CatalogRefusal>()
|
||||
const badges = new Map<string, LlmModelBadge>()
|
||||
for (const entry of input.listing) {
|
||||
const refusal = gateOf(entry, supported.has(entry.id), input.clientVersion, problems)
|
||||
if (refusal !== undefined) {
|
||||
@@ -131,6 +135,20 @@ export function resolveListedCatalog(input: ListedCatalogInput): ListedCatalog {
|
||||
continue
|
||||
}
|
||||
offered.push(withOverride(listed(supported.get(entry.id) ?? { id: entry.id }, entry, entry.capabilities.facts, input.routeMaxTokens)))
|
||||
const badge = entry.badge
|
||||
switch (badge?.kind) {
|
||||
case undefined:
|
||||
break
|
||||
case 'badge':
|
||||
badges.set(entry.id, badge.badge)
|
||||
break
|
||||
case 'invalid':
|
||||
problems.push(`model "${entry.id}" shows no badge: ${badge.reason}`)
|
||||
break
|
||||
/* v8 ignore next 2 -- listing decoding produces only the closed badge union */
|
||||
default:
|
||||
assertNever(badge, 'listed badge')
|
||||
}
|
||||
}
|
||||
const offeredIds = new Set(offered.map(model => model.id))
|
||||
const listedIds = new Set(input.listing.map(entry => entry.id))
|
||||
@@ -142,7 +160,7 @@ export function resolveListedCatalog(input: ListedCatalogInput): ListedCatalog {
|
||||
const resolution = resolveAdapterOptions({
|
||||
models: [...offered, ...input.supported.filter(model => !offeredIds.has(model.id)).map(withOverride)],
|
||||
}).models
|
||||
return { offered: resolution.slice(0, offered.length), resolution, refusals, problems, overrideErrors }
|
||||
return { offered: resolution.slice(0, offered.length), resolution, refusals, badges, problems, overrideErrors }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,9 +1,16 @@
|
||||
/** DeepSeek `GET /models` listing: one authenticated request and per-entry decoding. */
|
||||
import { APP_IDENTITY, attributionHeaders, LlmError } from '@deepseek-ai/dsh-llm'
|
||||
import type { ModelModality } from '@deepseek-ai/dsh-llm'
|
||||
import type { LlmModelBadge, LlmModelBadgeTone, ModelModality } from '@deepseek-ai/dsh-llm'
|
||||
import { timeoutOf } from '@deepseek-ai/dsh-timeout'
|
||||
|
||||
const LISTED_MODALITIES = ['text', 'image'] as const satisfies readonly ModelModality[]
|
||||
const BADGE_TONES = ['neutral', 'info', 'success', 'warning'] as const satisfies readonly LlmModelBadgeTone[]
|
||||
const LANGUAGE_ID = /^[a-z]{2,8}(?:-[a-z0-9]{1,8})*$/u
|
||||
const CONTROL_CHARACTER = /\p{Cc}/u
|
||||
const GRAPHEMES = new Intl.Segmenter(undefined, { granularity: 'grapheme' })
|
||||
|
||||
/** Longest badge text this build displays, in user-perceived characters, for every translation. */
|
||||
export const MAX_BADGE_TEXT_LENGTH = 12
|
||||
|
||||
/** Code of a listing deadline's timeout reason; {@link requestModelListing} reports it as `TIMEOUT`. */
|
||||
export const LISTING_TIMEOUT = 'MODEL_LISTING_TIMEOUT'
|
||||
@@ -37,6 +44,11 @@ export interface ListedFacts {
|
||||
readonly toolUpdate?: 'in-history' | 'addition-only' | 'leading-only'
|
||||
}
|
||||
|
||||
/** A badge one listing entry declares, or why this build cannot display it. */
|
||||
export type ListedBadge =
|
||||
| { readonly kind: 'badge'; readonly badge: LlmModelBadge }
|
||||
| { readonly kind: 'invalid'; readonly reason: string }
|
||||
|
||||
/** Declared capabilities, or why the Messages transport cannot drive the model. */
|
||||
export type ListedCapabilities =
|
||||
| { readonly usable: true; readonly facts: ListedFacts }
|
||||
@@ -52,6 +64,8 @@ export interface ListingEntry {
|
||||
readonly requirement: ClientRequirement
|
||||
/** Declared capabilities. */
|
||||
readonly capabilities: ListedCapabilities
|
||||
/** Declared selector badge; absent when the entry declares none, and never a reason to hide the entry. */
|
||||
readonly badge?: ListedBadge
|
||||
}
|
||||
|
||||
/** A decoded listing with at least one entry. */
|
||||
@@ -96,6 +110,48 @@ function requirementOf(entry: Fields): ClientRequirement {
|
||||
: { kind: 'invalid' }
|
||||
}
|
||||
|
||||
/** One trimmed badge text, or `undefined` unless it is 1 to {@link MAX_BADGE_TEXT_LENGTH} characters on one line. */
|
||||
function badgeText(value: unknown): string | undefined {
|
||||
if (typeof value !== 'string') return undefined
|
||||
const text = value.trim()
|
||||
const length = Array.from(GRAPHEMES.segment(text)).length
|
||||
return length > 0 && length <= MAX_BADGE_TEXT_LENGTH && !CONTROL_CHARACTER.test(text) ? text : undefined
|
||||
}
|
||||
|
||||
/** A literal badge text, or translations keyed by lowercase language id that include English. */
|
||||
function localizedBadgeText(value: unknown): LlmModelBadge['text'] | undefined {
|
||||
if (typeof value === 'string') return badgeText(value)
|
||||
const variants = fieldsOf(value)
|
||||
if (variants === undefined) return undefined
|
||||
const texts: [string, string][] = []
|
||||
for (const [language, variant] of Object.entries(variants)) {
|
||||
const text = badgeText(variant)
|
||||
if (!LANGUAGE_ID.test(language) || text === undefined) return undefined
|
||||
texts.push([language, text])
|
||||
}
|
||||
const translations = Object.fromEntries(texts)
|
||||
const en = translations.en
|
||||
return en === undefined ? undefined : { ...translations, en }
|
||||
}
|
||||
|
||||
function badgeOf(entry: Fields): ListedBadge | undefined {
|
||||
// `null` declares no badge, like an absent field; this build ships none to fall back on.
|
||||
if (entry.badge === undefined || entry.badge === null) return undefined
|
||||
const declared = fieldsOf(entry.badge)
|
||||
if (declared === undefined) return { kind: 'invalid', reason: 'badge is not an object' }
|
||||
const text = localizedBadgeText(declared.text)
|
||||
if (text === undefined) {
|
||||
return {
|
||||
kind: 'invalid',
|
||||
reason: 'badge text is not a string or an object of lowercase language ids including "en", '
|
||||
+ `each text 1 to ${MAX_BADGE_TEXT_LENGTH} characters on one line`,
|
||||
}
|
||||
}
|
||||
// An absent or unrecognized tone keeps the text at the least emphasis.
|
||||
const tone = BADGE_TONES.find(candidate => candidate === declared.tone) ?? 'neutral'
|
||||
return { kind: 'badge', badge: { text, tone } }
|
||||
}
|
||||
|
||||
function capabilitiesOf(entry: Fields): ListedCapabilities {
|
||||
const messages = fieldsOf(fieldsOf(entry.api_capabilities)?.anthropic_messages)
|
||||
if (messages === undefined) return { usable: false, reason: 'declares no api_capabilities.anthropic_messages' }
|
||||
@@ -142,11 +198,13 @@ export function parseModelListing(body: unknown): ModelListing {
|
||||
const id = entry?.id
|
||||
if (entry === undefined || typeof id !== 'string' || id.length === 0 || seen.has(id)) continue
|
||||
seen.add(id)
|
||||
const badge = badgeOf(entry)
|
||||
entries.push({
|
||||
id,
|
||||
...typeof entry.name === 'string' && entry.name.length > 0 ? { name: entry.name } : {},
|
||||
requirement: requirementOf(entry),
|
||||
capabilities: capabilitiesOf(entry),
|
||||
...badge === undefined ? {} : { badge },
|
||||
})
|
||||
}
|
||||
if (entries.length === 0) throw new LlmError('DeepSeek model listing contains no model entry', 'INVALID_RESPONSE')
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Protocol-independent model capabilities and reasoning choices. */
|
||||
import { ReasoningEffortId } from '@deepseek-ai/dsh-llm'
|
||||
import type { LlmModelInfo, LlmResolvedModelInfo } from '@deepseek-ai/dsh-llm'
|
||||
import type { LlmModelBadge, LlmModelInfo, LlmResolvedModelInfo } from '@deepseek-ai/dsh-llm'
|
||||
import type { DeepSeekCatalogModel, DeepSeekConnectionOptions } from './types.ts'
|
||||
|
||||
const OFF_REASONING_EFFORT = ReasoningEffortId('off')
|
||||
@@ -40,15 +40,17 @@ const OFF_ONLY_REASONING_EFFORTS = [
|
||||
/** Advertise one catalog entry.
|
||||
* @param provider - registered provider id.
|
||||
* @param model - advisory catalog entry.
|
||||
* @param badge - selector badge a model listing declares for the entry.
|
||||
* @returns selector metadata.
|
||||
*/
|
||||
export function catalogModelInfo(provider: string, model: DeepSeekCatalogModel): LlmModelInfo {
|
||||
export function catalogModelInfo(provider: string, model: DeepSeekCatalogModel, badge?: LlmModelBadge): LlmModelInfo {
|
||||
return {
|
||||
provider,
|
||||
id: model.id,
|
||||
name: model.name ?? model.id,
|
||||
...model.description === undefined ? {} : { description: model.description },
|
||||
inputModalities: model.inputModalities ?? ['text'],
|
||||
...badge === undefined ? {} : { badge },
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ describe('without a listing', () => {
|
||||
])
|
||||
expect(catalog.resolution).toEqual(catalog.offered)
|
||||
expect(catalog.refusals.size).toBe(0)
|
||||
expect(catalog.badges.size).toBe(0)
|
||||
})
|
||||
|
||||
it('applies overrides and does not judge override ids it cannot see', () => {
|
||||
@@ -138,6 +139,21 @@ describe('with a listing', () => {
|
||||
expect(catalog.refusals.get('deepseek-v4-pro')).toEqual({ kind: 'unsupported' })
|
||||
})
|
||||
|
||||
it('collects badges of offered models only and reports a dropped badge', () => {
|
||||
const badge = { text: { en: 'New', zh: '新' }, tone: 'info' }
|
||||
const catalog = resolve([
|
||||
{ ...FLASH, badge },
|
||||
{ ...PRO, badge: { text: '' } },
|
||||
{ ...FLASH, id: 'deepseek-v5', badge },
|
||||
])
|
||||
expect(catalog.offered.map(model => model.id)).toEqual(['deepseek-flash', 'deepseek-v4-pro'])
|
||||
expect([...catalog.badges]).toEqual([['deepseek-flash', badge]])
|
||||
expect(catalog.offered[0]).not.toHaveProperty('badge')
|
||||
expect(catalog.problems).toEqual([
|
||||
expect.stringMatching(/^model "deepseek-v4-pro" shows no badge: badge text is not a string/),
|
||||
])
|
||||
})
|
||||
|
||||
it('keeps bundled knowledge, with overrides, for request resolution of models the listing does not offer', () => {
|
||||
const catalog = resolve([PRO], { 'deepseek-flash': { contextWindow: 7 } })
|
||||
expect(catalog.offered.map(model => model.id)).toEqual(['deepseek-v4-pro'])
|
||||
|
||||
@@ -4,7 +4,7 @@ import type { IncomingMessage, Server, ServerResponse } from 'node:http'
|
||||
import { afterEach, describe, expect, it } from 'vitest'
|
||||
import { APP_IDENTITY } from '@deepseek-ai/dsh-llm'
|
||||
import { deadline } from '@deepseek-ai/dsh-timeout'
|
||||
import { LISTING_TIMEOUT, parseModelListing, requestModelListing } from '../src/listing.ts'
|
||||
import { LISTING_TIMEOUT, MAX_BADGE_TEXT_LENGTH, parseModelListing, requestModelListing } from '../src/listing.ts'
|
||||
import type { ListedCapabilities } from '../src/listing.ts'
|
||||
|
||||
/** The listing the service returned to an account token on 2026-09-24. */
|
||||
@@ -109,6 +109,50 @@ describe('parseModelListing', () => {
|
||||
expect(only({ api_capabilities: { anthropic_messages: { system_prompt_update: null, tool_update: null } } })?.capabilities)
|
||||
.toEqual({ usable: true, facts: { inputModalities: ['text'] } })
|
||||
})
|
||||
|
||||
const longest = '十'.repeat(MAX_BADGE_TEXT_LENGTH)
|
||||
it.each([
|
||||
[{ text: '1017', tone: 'info' }, { text: '1017', tone: 'info' }],
|
||||
[{ text: ' 1017 ', tone: 'success' }, { text: '1017', tone: 'success' }],
|
||||
[{ text: longest, tone: 'warning' }, { text: longest, tone: 'warning' }],
|
||||
[{ text: '👍🏽'.repeat(MAX_BADGE_TEXT_LENGTH) }, { text: '👍🏽'.repeat(MAX_BADGE_TEXT_LENGTH), tone: 'neutral' }],
|
||||
[{ text: 'Beta' }, { text: 'Beta', tone: 'neutral' }],
|
||||
[{ text: 'Beta', tone: null }, { text: 'Beta', tone: 'neutral' }],
|
||||
[{ text: 'Beta', tone: 'accent' }, { text: 'Beta', tone: 'neutral' }],
|
||||
[{ text: 'Beta', tone: 1 }, { text: 'Beta', tone: 'neutral' }],
|
||||
[{ text: { en: 'New', zh: '新', 'zh-hant': ' 新 ' }, tone: 'info' }, { text: { en: 'New', zh: '新', 'zh-hant': '新' }, tone: 'info' }],
|
||||
])('decodes badge %j', (badge, expected) => {
|
||||
expect(only({ ...MESSAGES, badge })?.badge).toEqual({ kind: 'badge', badge: expected })
|
||||
})
|
||||
|
||||
it.each([undefined, null])('declares no badge for %j', (badge) => {
|
||||
expect(only({ ...MESSAGES, badge })).not.toHaveProperty('badge')
|
||||
})
|
||||
|
||||
const unreadableText = expect.stringMatching(/^badge text is not a string or an object of lowercase language ids/) as string
|
||||
it.each([
|
||||
['1017', 'badge is not an object'],
|
||||
[['1017'], 'badge is not an object'],
|
||||
[{ tone: 'info' }, unreadableText],
|
||||
[{ text: null }, unreadableText],
|
||||
[{ text: ' ' }, unreadableText],
|
||||
[{ text: `${longest}十` }, unreadableText],
|
||||
[{ text: 'line\nbreak' }, unreadableText],
|
||||
[{ text: 7 }, unreadableText],
|
||||
[{ text: { zh: '新' } }, unreadableText],
|
||||
[{ text: { en: 'New', ZH: '新' } }, unreadableText],
|
||||
[{ text: { en: 'New', zh: '' } }, unreadableText],
|
||||
[{ text: { en: 1 } }, unreadableText],
|
||||
])('rejects badge %j without hiding the entry', (badge, reason) => {
|
||||
const entry = only({ ...MESSAGES, badge })
|
||||
expect(entry?.badge).toEqual({ kind: 'invalid', reason })
|
||||
expect(entry?.capabilities.usable).toBe(true)
|
||||
})
|
||||
|
||||
it('rejects an own "__proto__" translation key', () => {
|
||||
const body: unknown = JSON.parse('{"data":[{"id":"m","badge":{"text":{"en":"New","__proto__":"x"}}}]}')
|
||||
expect(parseModelListing(body).entries[0]?.badge).toEqual({ kind: 'invalid', reason: unreadableText })
|
||||
})
|
||||
})
|
||||
|
||||
describe('requestModelListing', () => {
|
||||
|
||||
@@ -182,6 +182,26 @@ describe('llm-deepseek real dynamic composition', () => {
|
||||
expect(keys).toEqual(['boot-key', 'boot-key'])
|
||||
})
|
||||
|
||||
it('advertises listed badges through the composed route and drops them with a customized catalog', async () => {
|
||||
vi.stubEnv('DEEPSEEK_API_KEY', '')
|
||||
vi.spyOn(console, 'error').mockImplementation(() => {})
|
||||
const warn = vi.spyOn(console, 'warn').mockImplementation(() => {})
|
||||
const messages = { api_capabilities: { anthropic_messages: {} } }
|
||||
vi.spyOn(globalThis, 'fetch').mockImplementation(() => Promise.resolve(new Response(JSON.stringify({ data: [
|
||||
{ id: 'deepseek-flash', ...messages, badge: { text: { en: 'New', zh: '新' }, tone: 'info' } },
|
||||
{ id: 'deepseek-v4-pro', ...messages, badge: { text: 'far too long a badge' } },
|
||||
] }))))
|
||||
const { ctx } = await loadComposition({ withDynamic: true, baseURL: 'https://api.deepseek.com/anthropic' })
|
||||
const badges = async () => (await ctx.llm.listModels('deepseek-official')).map(model => [model.id, model.badge])
|
||||
expect(await badges()).toEqual([
|
||||
['deepseek-flash', { text: { en: 'New', zh: '新' }, tone: 'info' }],
|
||||
['deepseek-v4-pro', undefined],
|
||||
])
|
||||
expect(warn).toHaveBeenCalledWith('[llm-deepseek-api-key]', expect.stringMatching(/^model "deepseek-v4-pro" shows no badge: /))
|
||||
await ctx.settings.mutate(NS, [{ op: 'set', path: ['models'], value: [{ id: 'deepseek-flash' }] }])
|
||||
expect(await badges()).toEqual([['deepseek-flash', undefined]])
|
||||
})
|
||||
|
||||
it('keeps package inventory on when the Loader composition disables session upload', async () => {
|
||||
vi.stubEnv('DEEPSEEK_API_KEY', 'entry-key')
|
||||
const server = await mockServer([{ kind: 'sse', events: textEvents }])
|
||||
|
||||
@@ -7,3 +7,10 @@ it('advertises a minimal model declaration as text input with its ID as the labe
|
||||
provider: 'deepseek-official', id: 'embedded-model', name: 'embedded-model', inputModalities: ['text'],
|
||||
})
|
||||
})
|
||||
|
||||
it('advertises a listed badge beside the catalog entry', () => {
|
||||
const badge = { text: '1017', tone: 'info' } as const
|
||||
expect(catalogModelInfo('deepseek-official', { id: 'deepseek-flash', name: 'DeepSeek-V4.1-Flash' }, badge)).toEqual({
|
||||
provider: 'deepseek-official', id: 'deepseek-flash', name: 'DeepSeek-V4.1-Flash', inputModalities: ['text'], badge,
|
||||
})
|
||||
})
|
||||
@@ -15,8 +15,8 @@
|
||||
en: d152484eb41ac6b4
|
||||
zh: 09388d293f9be9cb
|
||||
/deepseek-ai-dsh-llm/use-this-package:
|
||||
en: 33738e61ce410ac0
|
||||
zh: 363760460f4d4bed
|
||||
en: aff6aa69a7dcbfb4
|
||||
zh: c7d94c5c3d7ba3ac
|
||||
/deepseek-ai-dsh-llm/use-this-package/when-to-choose-it:
|
||||
en: c3ecb5a1421f27db
|
||||
zh: 4bbd3c0e513845e1
|
||||
|
||||
@@ -25,7 +25,7 @@ Use `@deepseek-ai/dsh-llm` to stream model calls through configured provider ada
|
||||
<a id="use-this-package"></a>
|
||||
## Use this package
|
||||
|
||||
`listModels` describes models offered by catalog-driven interfaces. Core resolution and streaming can still accept unlisted ids. The GUI requires catalog membership for selection and submission; adapters intended for GUI use must implement `listModels` and advertise their available models. The base implementation returns an empty list and therefore offers no GUI models.
|
||||
`listModels` describes models offered by catalog-driven interfaces. Core resolution and streaming can still accept unlisted ids. The GUI requires catalog membership for selection and submission; adapters intended for GUI use must implement `listModels` and advertise their available models. The base implementation returns an empty list and therefore offers no GUI models. An entry's optional `badge` holds selector text (one literal, or translations keyed by lowercase language id that include `en`) and a `neutral`, `info`, `success`, or `warning` tone; `resolveModelInfo` omits it, and no model request carries it.
|
||||
|
||||
Any composition that calls a model provider — an agent loop, a session-title generator, a compaction summarizer — streams its requests through this service. Mount it together with at least one provider adapter; the service itself has no configuration and no provider wire code.
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ kind: "package-reference"
|
||||
<a id="use-this-package"></a>
|
||||
## 使用本包
|
||||
|
||||
`listModels` 描述目录驱动界面提供的模型。核心解析与流式调用仍可接受未列出的 ID。GUI 的模型选择与提交要求模型出现在目录中;供 GUI 使用的适配器必须实现 `listModels`,公布其可用模型。基类实现返回空列表,因此不向 GUI 提供模型。
|
||||
`listModels` 描述目录驱动界面提供的模型。核心解析与流式调用仍可接受未列出的 ID。GUI 的模型选择与提交要求模型出现在目录中;供 GUI 使用的适配器必须实现 `listModels`,公布其可用模型。基类实现返回空列表,因此不向 GUI 提供模型。条目可选的 `badge` 包含选择器文字(单一文字,或以小写语言 id 为键且包含 `en` 的译文)和 `neutral`、`info`、`success` 或 `warning` 语调;`resolveModelInfo` 不返回它,模型请求也不携带它。
|
||||
|
||||
任何调用模型提供方的组合——agent loop(智能体循环)、会话标题生成器、压缩(compaction)摘要器——都会通过本服务流式发起请求。与至少一个提供方适配器一起挂载它;服务本身没有任何配置,也不包含提供方协议代码。
|
||||
|
||||
|
||||
@@ -71,6 +71,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@deepseek-ai/dsh-attachment": "workspace:*",
|
||||
"@deepseek-ai/dsh-package-manifest": "workspace:*",
|
||||
"@deepseek-ai/cordis": "workspace:~"
|
||||
}
|
||||
}
|
||||
@@ -734,12 +734,16 @@ export class LlmRuntime extends TypertRemoteService {
|
||||
}
|
||||
seen.add(model.id)
|
||||
const inputModalities = this.detachedModalities(model.inputModalities)
|
||||
const badge = model.badge
|
||||
return {
|
||||
provider: model.provider,
|
||||
id: model.id,
|
||||
name: model.name,
|
||||
...model.description === undefined ? {} : { description: model.description },
|
||||
...inputModalities === undefined ? {} : { inputModalities },
|
||||
...badge === undefined ? {} : {
|
||||
badge: { text: typeof badge.text === 'string' ? badge.text : { ...badge.text }, tone: badge.tone },
|
||||
},
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
import type { Branded } from '@deepseek-ai/dsh-brand'
|
||||
import type { FileAttachmentRef, ImageAttachmentRef } from '@deepseek-ai/dsh-attachment'
|
||||
import type { LocalizedText } from '@deepseek-ai/dsh-package-manifest'
|
||||
import type { MessageId, ToolCallId, ProviderRequestId, ReasoningEffortId } from './brand.ts'
|
||||
import type { Message, UserMessage } from './message.ts'
|
||||
|
||||
@@ -344,6 +345,20 @@ export interface LlmDiscoveredModel {
|
||||
inputModalities?: readonly ModelModality[]
|
||||
}
|
||||
|
||||
/**
|
||||
* Emphasis of a model badge: `neutral` states a plain fact, `info` highlights
|
||||
* the model, `success` marks a benefit, and `warning` asks for attention.
|
||||
*/
|
||||
export type LlmModelBadgeTone = 'neutral' | 'info' | 'success' | 'warning'
|
||||
|
||||
/** Short provider-authored label a selector shows beside one advertised model name. */
|
||||
export interface LlmModelBadge {
|
||||
/** One literal, or translations keyed by lowercase language id with a required English entry. */
|
||||
text: LocalizedText
|
||||
/** Emphasis of the label. */
|
||||
tone: LlmModelBadgeTone
|
||||
}
|
||||
|
||||
/** One adapter-discovered model; catalog membership is advisory, not request validation. */
|
||||
export interface LlmModelInfo {
|
||||
/** Provider route that owns this model entry. */
|
||||
@@ -356,6 +371,11 @@ export interface LlmModelInfo {
|
||||
description?: string
|
||||
/** Accepted request modalities; absent means unknown, while an explicit omission is negative capability. */
|
||||
inputModalities?: readonly ModelModality[]
|
||||
/**
|
||||
* Selector label advertised by catalog discovery; exact-route resolution
|
||||
* omits it, and no model request or Session event carries it.
|
||||
*/
|
||||
badge?: LlmModelBadge
|
||||
}
|
||||
|
||||
/** Provider-owned context capacity for one exact provider/model route. */
|
||||
|
||||
@@ -696,6 +696,22 @@ describe('LlmRuntime', () => {
|
||||
}])
|
||||
})
|
||||
|
||||
it('detaches advertised model badges, including their translations', async () => {
|
||||
const ctx = new Context()
|
||||
await ctx.plugin(LlmRuntime)
|
||||
const translated = { text: { en: 'New', zh: '新' }, tone: 'info' as const }
|
||||
const literal = { text: '1017', tone: 'neutral' as const }
|
||||
ctx.llm.registerAdapter(['catalog'], new CatalogAdapter({ id: 'catalog', name: 'Catalog' }, [
|
||||
{ provider: 'catalog', id: 'new', name: 'New', badge: translated },
|
||||
{ provider: 'catalog', id: 'dated', name: 'Dated', badge: literal },
|
||||
]))
|
||||
const [first, second] = await ctx.llm.listModels('catalog')
|
||||
expect(first?.badge).toEqual(translated)
|
||||
expect(first?.badge).not.toBe(translated)
|
||||
expect(first?.badge?.text).not.toBe(translated.text)
|
||||
expect(second?.badge).toEqual(literal)
|
||||
})
|
||||
|
||||
it('defaults adapters to their route name and an empty advisory model list', async () => {
|
||||
const ctx = new Context()
|
||||
await ctx.plugin(LlmRuntime)
|
||||
|
||||
@@ -32,6 +32,9 @@
|
||||
{
|
||||
"path": "../../util/values"
|
||||
},
|
||||
{
|
||||
"path": "../../util/package-manifest"
|
||||
},
|
||||
{
|
||||
"path": "../../typert/protocol"
|
||||
}
|
||||
|
||||
Generated
+3
@@ -11845,6 +11845,9 @@ importers:
|
||||
'@deepseek-ai/dsh-attachment':
|
||||
specifier: workspace:*
|
||||
version: link:../../attachment/attachment
|
||||
'@deepseek-ai/dsh-package-manifest':
|
||||
specifier: workspace:*
|
||||
version: link:../../util/package-manifest
|
||||
|
||||
packages/llm/llm-deepseek:
|
||||
dependencies:
|
||||
|
||||
@@ -61,6 +61,16 @@
|
||||
"symbol": "LlmProviderInfo",
|
||||
"source": "packages/llm/llm/src/types.ts"
|
||||
},
|
||||
{
|
||||
"doc": "docs/subsystems/llm-streaming.md",
|
||||
"symbol": "LlmModelBadgeTone",
|
||||
"source": "packages/llm/llm/src/types.ts"
|
||||
},
|
||||
{
|
||||
"doc": "docs/subsystems/llm-streaming.md",
|
||||
"symbol": "LlmModelBadge",
|
||||
"source": "packages/llm/llm/src/types.ts"
|
||||
},
|
||||
{
|
||||
"doc": "docs/subsystems/llm-streaming.md",
|
||||
"symbol": "LlmModelInfo",
|
||||
|
||||
Reference in new issue
Block a user