dsh-kenari-plugin 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.en.md CHANGED
@@ -67,7 +67,7 @@ When the plan cannot be read (no key, a share-page key that gets 403, an account
67
67
 
68
68
  None of the four is free, so **a new account with no balance hits 402 on its first session**. Add a `:free` model or top up first. `:free` models stay out of the route by default; filter by "free" in the picker to add them.
69
69
 
70
- Display names and output caps are derived by the plugin, since the catalog publishes neither. A name is reconstructed from the id (the few models whose catalog entry carries a `name` keep the vendor's wording), then prefixed with `Kenari ` — dsh's model button and session header show the display name alone, so without the prefix a Kenari route is indistinguishable from an official DeepSeek model of the same name. The output cap is a quarter of the context window, clamped to [1K, 64K]; models without a published window get no cap field. The name is presentation only; a model's identity is always its id.
70
+ Display names and output caps are derived by the plugin, since the catalog publishes neither. A name is reconstructed from the id (the few models whose catalog entry carries a `name` keep the vendor's wording). Names **written into the route** additionally carry a `Kenari ` prefix — dsh's model button and session header show the name alone, so without it a Kenari route is indistinguishable from an official DeepSeek model of the same name — while the plugin's own model table stays unprefixed, because that page already is the Kenari section. The output cap is a quarter of the context window, clamped to [1K, 64K]; models without a published window get no cap field. The name is presentation only; a model's identity is always its id.
71
71
 
72
72
  Once you edit the list yourself, your config replaces the preset as a whole (pi-ai's semantics) and the plugin stops touching it.
73
73
 
@@ -79,7 +79,7 @@ Under **Settings → Models → Kenari → Edit → Model catalog**, "Add model"
79
79
  - Filters are `in plan`, `free`, and the capability tags. "In plan" and "free" are mutually exclusive, and `embedding` is exclusive on its own (it has no chat endpoint, so mixing it with anything returns an empty list). The rest combine
80
80
  - "Add selected" **appends** to the current entries, and rows already in the route cannot be selected
81
81
 
82
- The write is immediate with no save step, and the list inside that card refreshes only after you collapse and reopen Edit. The Host computes the data and serves it at `GET /api/kenari.models`, the same facts as `kenari_list_models`, and no key is needed.
82
+ The write is immediate: the picker closes itself once it is done and those rows are already in the card behind it. Every other part of that card behaves the same way — display name, base URL, protocol, and each row's id, name, context window and max output are written as soon as you stop typing, and deleting a row or restoring the default catalog takes effect the moment you click. Which is why Cancel/Save now sit under the API key field and commit nothing but the key (they stay hidden while that field is empty). The Host computes the data and serves it at `GET /api/kenari.models`, the same facts as `kenari_list_models`, and no key is needed.
83
83
 
84
84
  ### Three protocol lines and the compat preset
85
85
 
package/README.md CHANGED
@@ -67,7 +67,7 @@ KENARI_API_KEY=kn-...
67
67
 
68
68
  四个都不是免费模型,**没有余额的新账户第一次会话会拿到 402**,先加一个 `:free` 模型或充值。`:free` 模型默认不进路由,用挑选器里的「免费」筛一下再加。
69
69
 
70
- 显示名称与最大输出由插件推导(目录里都没有):名称先还原自 id(目录自己带 `name` 的那几个模型照抄厂商写法),再统一加 `Kenari ` 前缀——dsh 的模型按钮和会话头部只有展示名一个字段,不带前缀就分不出它是 Kenari 路由还是官方 DeepSeek 的同名模型;最大输出取窗口的 1/4 并夹在 [1K, 64K],不公布窗口的模型不写这个字段。名称只用于展示,模型身份始终是 id。
70
+ 显示名称与最大输出由插件推导(目录里都没有):名称先还原自 id(目录自己带 `name` 的那几个模型照抄厂商写法);**写进路由**的名字再统一加 `Kenari ` 前缀——dsh 的模型按钮和会话头部只有名字一个字段,不带前缀就分不出它是 Kenari 路由还是官方 DeepSeek 的同名模型;插件自己那一页的模型表不加前缀,整页都在 Kenari 节里,再加一遍是噪音。最大输出取窗口的 1/4 并夹在 [1K, 64K],不公布窗口的模型不写这个字段。名称只用于展示,模型身份始终是 id。
71
71
 
72
72
  你手动改过列表之后,用户配置整份覆盖预设(pi-ai 的语义),插件不再改。
73
73
 
@@ -79,7 +79,7 @@ KENARI_API_KEY=kn-...
79
79
  - 过滤片有 `套餐内` `免费` 与各能力标签。「套餐内」与「免费」互斥,`embedding` 独占(它没有 chat 端点,混选只会得到空列表),其余可多选
80
80
  - 「添加所选」**追加**到现有条目之后,已在路由里的行不能再勾
81
81
 
82
- 写入是即时的,没有保存步骤;同一张卡里的列表要收起再展开才会刷新。数据由 Host 侧算好(`GET /api/kenari.models`),与 `kenari_list_models` 同源,没有 key 也能看。
82
+ 写入是即时的:挑选器写完即关,卡片里当场多出那几行。卡片其余部分同理——显示名、API 地址、协议,以及每行的 id/显示名/上下文窗口/最大输出,都在改完(停止输入)后立即写入;删除一行与「恢复默认模型」也是点完即生效。正因如此,「取消/保存」被挪到 API 密钥字段下方,只负责提交密钥(密钥框为空时这两个按钮不显示)。数据由 Host 侧算好(`GET /api/kenari.models`),与 `kenari_list_models` 同源,没有 key 也能看。
83
83
 
84
84
  ### 三条协议线与兼容预设
85
85