@sema-agent/client-core 0.64.0 → 0.64.1

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/CHANGELOG.md CHANGED
@@ -49,6 +49,13 @@
49
49
  > 挡住 ⇒ 本批把它机械化——④a0 对 `pending` 行**要求段头已是日期形**(`(未发布)` 直接红),阶段一
50
50
  > commit 漏转在发布前就红,不再靠人记。
51
51
 
52
+ ## 0.64.1(2026-09-09)
53
+
54
+ ### 文档
55
+
56
+ - `classifierStatusOf` 函数级 JSDoc 的优先序写反(「熔断记录 > 本轮不可用 > 可用」)—— 与模块顶注和实装(本轮事实 > `armed` > 历史熔断记录)相反;订正为同一句,并补「`ask` 带本轮事实时 `autoMode` 缺席也答 `unavailable_this_round`」。行为零改(黑盒 G-28/G-28b/G-30 双轨已证实装顺序正确)。
57
+ - §28 两处「`breaker` 缺席 = 老引擎」改为「说不出(四成因同形,28c 逐条)」,与 28c 一致。
58
+
52
59
  ## 0.64.0(2026-09-09)
53
60
 
54
61
  ### 新增
package/README.md CHANGED
@@ -35,7 +35,7 @@ Renamed from **`@sema-agent/wire-cc-adapter`** (0.1.x, deprecated — see *Migra
35
35
 
36
36
  ## Scope
37
37
 
38
- **Version:** 0.64.0
38
+ **Version:** 0.64.1
39
39
 
40
40
  - **Today** — the adapter seam, the whole `adapt()` pipeline (all 14 A-layer arms plus the
41
41
  B/D/E tool-card layers), the notification/caps/model families, the adapter kernel (stream driver
@@ -77,7 +77,9 @@ export interface ClassifierStatusView {
77
77
  * @param autoMode `wiring_manifest` 的 `autoMode` 段(投影后的或原始的都吃;本函数自己窄读)
78
78
  * @param ask 可选:**本轮**那只 ask(或 durable park 行的 `tool_approval` 载荷)
79
79
  *
80
- * 优先序(承重,理由见模块顶注):**熔断记录 > 本轮不可用 > 可用**。
80
+ * 优先序(承重,理由见模块顶注):**本轮事实 > 这条腿的 `armed` > 历史熔断记录**——先看 `ask` 上的本轮
81
+ * 不可用事实,再看这条腿武没武装(武装了 = 分类器真的在跑,压过账本里的历史记录),最后才拿历史
82
+ * 熔断记录说话。`ask` 带本轮事实时,`autoMode` 段缺席也照样答 `unavailable_this_round`。
81
83
  *
82
84
  * 🔴 **`undefined` 是一个诚实的答案,不是一个坏路径**:
83
85
  * · `autoMode` 段缺席(老 mint / 外部 derive)⇒ 这一端**没有**分类器的健康读数;
@@ -72,7 +72,9 @@ export const CLASSIFIER_STATUS_STATES = Object.freeze([
72
72
  * @param autoMode `wiring_manifest` 的 `autoMode` 段(投影后的或原始的都吃;本函数自己窄读)
73
73
  * @param ask 可选:**本轮**那只 ask(或 durable park 行的 `tool_approval` 载荷)
74
74
  *
75
- * 优先序(承重,理由见模块顶注):**熔断记录 > 本轮不可用 > 可用**。
75
+ * 优先序(承重,理由见模块顶注):**本轮事实 > 这条腿的 `armed` > 历史熔断记录**——先看 `ask` 上的本轮
76
+ * 不可用事实,再看这条腿武没武装(武装了 = 分类器真的在跑,压过账本里的历史记录),最后才拿历史
77
+ * 熔断记录说话。`ask` 带本轮事实时,`autoMode` 段缺席也照样答 `unavailable_this_round`。
76
78
  *
77
79
  * 🔴 **`undefined` 是一个诚实的答案,不是一个坏路径**:
78
80
  * · `autoMode` 段缺席(老 mint / 外部 derive)⇒ 这一端**没有**分类器的健康读数;
@@ -4816,7 +4816,7 @@ core 双向对账)。**候上游导出即整只退役改成从 sdk 取**。
4816
4816
  | # | 件 | 面 | 破坏性 | 端要做什么 |
4817
4817
  |---|---|---|---|---|
4818
4818
  | ① | 模型思考能力探测(`src/modelCapabilityProbe.ts`) | 新 9 导出 | 无 | 模型目录页/向导加一个「探测」动作;**网络那半场端自己实现**并作为 `send` 注入 |
4819
- | ② | auto 分类器状态面(`src/classifierStatus.ts` + `src/autoModeUnavailable.ts` 加员) | 新 4 导出 + wire additive 一键 | 无 | 诊断行 / 模型设置页 / 权限卡状态栏改接铸点;`breaker` 缺席 = 老引擎 |
4819
+ | ② | auto 分类器状态面(`src/classifierStatus.ts` + `src/autoModeUnavailable.ts` 加员) | 新 4 导出 + wire additive 一键 | 无 | 诊断行 / 模型设置页 / 权限卡状态栏改接铸点;`breaker` 缺席 = 说不出(四成因同形,见 28c),别渲「没熔断过」 |
4820
4820
  | ③ | `DecisionReason` +`read_only` 的 uplift 锚 | **零导出** | 无 | **端无事可做**;上游镜像到货时本包先红,那时才有铸点 |
4821
4821
  | ④ | §27j 的 G-20 判据口径订正 | 文档 + 机读锚 | 无 | test 侧改判据;端零改 |
4822
4822
  | ⑤ | devDep 抬 `@sema-agent/settings-schema ^1.10.0` + 落库前提门 | 门 | 无 | **端无事可做**(devDep,不进 peer、不出包) |
@@ -5020,7 +5020,7 @@ devDep core 那端(提货批抬版时先红)。**红的那一刻 = 该铸一句
5020
5020
  | 件 | 壳(cli) | web-client | desktop |
5021
5021
  |---|---|---|---|
5022
5022
  | ① 探针 | 模型目录页/新增模型向导加一个「探测思考能力」动作:端实现 `send`(读自己那条凭证轨,**绝不**把 key 交进本包)→ `probeModelCapability(entry, send)` → 拿 `verdict` 渲结果 → 用户确认后 `applyProbeToEntry(entry, result)` 落库。`doctor` 的模型段可复用同一只结论渲一行。🔴 `inconclusive` 那一格**必须**渲成「这次没探到」而不是「不会思考」;`cannot_disable` 渲「会思考、当前关不掉;这个席位将按 low 档运行」(clay 裁),并读 `evidence.lowEffortAccepted` 决定那半句说不说得下去 | 模型设置页同左;`send` 走浏览器 `fetch`(注意 CORS 与代理由部署决定,失败照 `inconclusive` 渲) | 同 web-client;`send` 走主进程那条腿,渲染进程只拿结论 |
5023
- | ② 状态面 | `doctor` 的 Permissions 段加**一行** `classifierStatusDetail(classifierStatusOf(autoMode, ask))`;`undefined` ⇒ **整行不渲**(不是渲「正常」)。权限卡的状态栏同一只铸点。🔴 `_sema_autoMode.breaker` 缺席 = 老引擎,别渲「没熔断过」 | 模型设置页/权限卡同左 | 同左 |
5023
+ | ② 状态面 | `doctor` 的 Permissions 段加**一行** `classifierStatusDetail(classifierStatusOf(autoMode, ask))`;`undefined` ⇒ **整行不渲**(不是渲「正常」)。权限卡的状态栏同一只铸点。🔴 `_sema_autoMode.breaker` 缺席 = **说不出**(老引擎 / 这会话没熔断过 / server 未投影 / 段坏形,四成因在 wire 上同形,28c 逐条),别渲「没熔断过」 | 模型设置页/权限卡同左 | 同左 |
5024
5024
  | ③ uplift 锚 | 无 | 无 | 无 |
5025
5025
  | ④ G-20 订正 | 无(test 侧改判据) | 无 | 无 |
5026
5026
  | ⑤ 落库前提门 | 无 | 无 | 无 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema-agent/client-core",
3
- "version": "0.64.0",
3
+ "version": "0.64.1",
4
4
  "description": "Client-side session runtime shared by every sema human client (TUI / web / desktop): sema wire frames (AgentEvent) -> CC session vocabulary (SDKMessage) with dual-plane output (transcript/chrome), deterministic transcript ids, lane discipline as a type, and the notification/dedup ledgers. Every CC-skin shape is collected here so the wire itself stays neutral. Renamed from @sema-agent/wire-cc-adapter (0.1.x).",
5
5
  "license": "MIT",
6
6
  "type": "module",