@dsh-enhanced/preference-learning 0.1.7 → 0.1.12
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.md +50 -11
- package/cordis.patch.yml +3 -0
- package/lib/catalog.d.ts.map +1 -1
- package/lib/catalog.js +7 -6
- package/lib/catalog.js.map +1 -1
- package/lib/index.d.ts +4 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -2
- package/lib/index.js.map +1 -1
- package/lib/service.d.ts +104 -3
- package/lib/service.d.ts.map +1 -1
- package/lib/service.js +794 -29
- package/lib/service.js.map +1 -1
- package/lib/sqlite.d.ts +11 -1
- package/lib/sqlite.d.ts.map +1 -1
- package/lib/sqlite.js +643 -2
- package/lib/sqlite.js.map +1 -1
- package/lib/store.d.ts +233 -8
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +2581 -85
- package/lib/store.js.map +1 -1
- package/lib/types.d.ts +1 -0
- package/lib/types.d.ts.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.d.ts.map +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +7 -5
package/README.md
CHANGED
|
@@ -9,27 +9,63 @@ dsh plugin --profile web add @dsh-enhanced/preference-learning
|
|
|
9
9
|
dsh --profile web --dump-config
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
插件需要 `assistant-policy` 与 DSH `system-prompt`。安装 `assistant-delivery`
|
|
12
|
+
插件需要 `assistant-policy` 与 DSH `system-prompt`。安装 `assistant-delivery` 时会自动订阅它验证过的日常使用 observation 与明确偏好 event;Delivery 是可选 producer,不构成本插件的启动依赖。Profile 必须为目标 Agent 明确授权:
|
|
13
13
|
|
|
14
14
|
- `review` / `activate` / `rollback` / `snapshot`,资源 `preference:*`;
|
|
15
15
|
- `execute`,资源 `tool:preference_*`。
|
|
16
16
|
|
|
17
17
|
未授权时默认拒绝,跨 workspace 或 Agent preset 的假设不可见。
|
|
18
18
|
|
|
19
|
+
固定的 `supervised-growth/v2` Host runbook 不需要构造 Agent,也不会从 session header 猜 scope。可信
|
|
20
|
+
Host 分别调用 `canonicalPreferenceHostScope({ workspace, preset })` 与
|
|
21
|
+
`hostReview` / `hostActivationCandidate` / `hostActivateOne` / `hostRollbackOne` / `hostMaintainOne`;这些入口都要求显式 authenticated owner
|
|
22
|
+
`principal + operationId`,并以固定 background Policy subject
|
|
23
|
+
`dsh-enhanced-assistant-recovery` 对 exact workspace/action/resource 重新授权。scope token 为冻结的
|
|
24
|
+
runtime brand,复制、展开或序列化后会失效。所有 Host 操作还绑定 Delivery principal row id/version;
|
|
25
|
+
`hostOwnerFence` 提供同样授权保护的只读 plan-time fence,返回冻结的
|
|
26
|
+
`{ ownerGeneration, principalLineage }`,供后台工作在执行前后做 exact-owner CAS;
|
|
27
|
+
`hostActivationCandidate` 返回确定性排序后的
|
|
28
|
+
`{ hypothesisId, expectedVersion, ownerGeneration, principalLineage }`,并复用激活时相同的 T1、owner typed evidence、latest selection、
|
|
29
|
+
active cap 与 same-key 判定;它只是 plan hint,`hostActivateOne` 最终仍在事务内重新执行相同门槛和
|
|
30
|
+
exact-version CAS,单次调用最多改变一个 hypothesis。activation 与最小回执在同一 `BEGIN IMMEDIATE`
|
|
31
|
+
事务内提交,返回 `{ hypothesisId, expectedVersion, resultVersion, ownerGeneration, principalLineageId, principalLineageVersion, replayed }`;即使提交后响应丢失或进程
|
|
32
|
+
重启,同一 `operationId + scope + target + version` 也只会重放原结果,不会因 stale CAS 误报失败;同一
|
|
33
|
+
operation 改 scope/target/version 会冲突,另一 operation 也不能冒认旧提交。重放会先重新验证当前 exact
|
|
34
|
+
owner generation 与 Delivery principal lineage;验证通过后,已提交的 durable receipt 不受后来 pause、
|
|
35
|
+
全局 disable 或 evidence/readiness 变化影响,只有首次 mutation 才受 enabled、paused 与 CAS 门槛约束。
|
|
36
|
+
receipt 只保存 scope digest、
|
|
37
|
+
哈希操作身份、hypothesis/version 和 owner generation/lineage,不保存 workspace、preset 或偏好值。A→B→A 后,gen1 的旧 receipt 不会在 gen3 replay 或虚报成功。`hostRollbackOne` 只接受 exact active T1,reason
|
|
38
|
+
由 Host 固定为 `regression`。
|
|
39
|
+
`hostMaintainOne` 只删除该 exact scope 最旧的一条已过 evidence TTL 的 signal;deletion 与
|
|
40
|
+
`operationId` receipt 同事务提交,同一步骤崩溃重试不会多删第二条;receipt 只保留 scope digest 与
|
|
41
|
+
哈希幂等身份,不保留 workspace/preset 明文。
|
|
42
|
+
|
|
19
43
|
## 风险模型
|
|
20
44
|
|
|
21
45
|
风险等级和值来自只读 Host catalog,调用者不能提交自由文本或自报风险等级:
|
|
22
46
|
|
|
23
47
|
- T0:只记录结构化观测,不生成行为假设;
|
|
24
48
|
- T1:格式、语言、详略、建议频率和推荐排序等本地可逆偏好;先处于 `shadow`,证据达标后才可激活;
|
|
25
|
-
- T2
|
|
49
|
+
- T2:长期记忆、自动通知、外部承诺、数据边界和预算策略;保持 `proposed + inactive`。首版只有 `memory.retention=long-term` 经过独立 promotion ledger 形成 owner 审批提案;其他 T2 不会进入 producer allowlist;
|
|
26
50
|
- T3:审批边界、凭据、安全风险目录和破坏性默认值;拒绝记录为偏好证据。
|
|
27
51
|
|
|
28
|
-
`actorTrust`(谁给出的信号)与 `interpretationTrust`(如何解释信号)分别保存。`tentative + active` 仍然不是 `confirmed
|
|
52
|
+
`actorTrust`(谁给出的信号)与 `interpretationTrust`(如何解释信号)分别保存。`tentative + active` 仍然不是 `confirmed`。Preference 不直接写 Memory:它只通过 Personal Memory 私有、可撤销 registration 投递固定 proposal,并仅在收到绑定最终 Memory record 的 committed receipt 后投影 `confirmed`。
|
|
53
|
+
|
|
54
|
+
长期 Memory 晋升不接受单一信号:当前门槛是至少 3 个支持信号、至少 2 个独立的 interpretation/source 通道、confidence >= 8500 bps、contradiction <= 1500 bps,且 hypothesis 必须仍是未过期的 `memory.retention=long-term`。请求只有 catalog tuple、计数、摘要和 owner fence,没有自由正文;Personal Memory 固定渲染为 `Retain information the owner explicitly confirms for long-term memory.`。这只表示 owner 希望长期保留其明确确认的信息,不会把其他偏好、聊天正文或推断自动写进 Memory。
|
|
55
|
+
|
|
56
|
+
promotion 与 Memory proposal outbox 在同一 Preference SQLite 事务创建。Memory 不可用时指数退避并在重启后继续;Memory 通过 Delivery 当前 owner route v2 重新验证 scope/principal/lineage/generation 后才建立审批,不允许 headless 降级。终态严格区分 `confirmed`、owner-explicit `rejected`、`expired`、`conflicted` 与 `stale-owner`。forget、owner rotation 和 superseding evidence 会创建 durable cancellation outbox;旧终态回执只能收到 `cancelled` ACK,不能复活已删除状态。若 Memory 在取消前已经 commit,则回报 `already-confirmed`,本轮不会伪装撤销已提交 Memory。
|
|
29
57
|
|
|
30
58
|
## 信号接入
|
|
31
59
|
|
|
32
|
-
owner
|
|
60
|
+
owner 证据只接受 `assistant-delivery` 的私有 producer lane。普通消息必须来自 exact active owner,并且只有在 Agent turn 完成、session flush 成功、final reply Outbox 已经 durable enqueue 后,Delivery 才会用本机确定性分类器发布 content-free `response.language` behavioral observation。连续 6 次同语言使用才可自动激活;一次偶然切换不会回滚。连续 6 次相反使用且不存在 TTL 内更强的明确选择时,旧语言 overlay 才会回滚并切换。
|
|
61
|
+
|
|
62
|
+
Delivery 还把很短、整条消息完全匹配闭集的持续纠正(例如“以后简短一点”“以后用中文回答”“今后少用列表”及固定英文等价)映射为 `explicit-selection`。仅本轮的“请用中文回答 / Please be concise”等指令会被单独识别:既不会变成长期偏好,也不会反向贡献语言行为证据;混合任务、引用、代码、多行、长文本和不支持的 directive-like 语句一律保守 abstain。`/feedback <key> <value>` 仍可作为显式控制面;单词评价与 `too-long` 派生信号保持较弱的 `typed-feedback`。
|
|
63
|
+
|
|
64
|
+
owner 还可在同一对话使用 `/learning status|explain|export|pause|resume|rollback <exact-T1-key> confirm|forget confirm`。控制请求通过 Delivery 私有 registration 进入,不是模型工具;它绑定 exact Inbox、binding、Delivery principal row lineage 和 durable admission cursor。cursor 由 Delivery instance epoch 与严格递增的 Inbox admission sequence 组成,同一次 Inbox 重放保持不变。`status`、`explain` 和 `export` 为回执化读取,不推进 high-water;`explain` 只保存和返回 content-free T1 key/value/state/version/evidence-count 摘要,`export` 在同一事务内保存同样稳定排序的 current-scope T1 snapshot,并由 Delivery 输出 `dsh-preference-learning` v1 JSON。导出不写文件,不包含正文、workspace、principal/lineage/generation/session/event/Inbox/Outbox/cursor/idempotency/exposure 等内部数据。pause、resume、rollback、forget 只在 sequence 严格越过该 owner lineage 的持久 high-water 时生效,乱序控制会留下可重放的 durable no-op receipt。rollback 用一个事务 CAS 回滚该 key 的当前 active T1 并推进 projection cutoff;没有 active 值时不改偏好记录,但仍提交 cutoff 和可重放的准确 no-op receipt。pause/restart 后仍不收集、不激活、不注入;暂停期间或 forget/rollback 之前已持久排队的 projection 只会 ACK-ignore。forget 保持 pause 状态,删除较旧 control/explain/export/rollback 快照以防泄露已删除的值或计数。缺少 cursor 的旧 Delivery payload 会 fail-closed:事件 ACK-ignore,控制返回 stale。
|
|
65
|
+
|
|
66
|
+
从无 lineage/cursor 的旧 schema 首次 claim 时,插件会换代并清除旧 signals、hypotheses、overlay、exposures 以及 Host/control receipts,绝不继承激活状态;若 v6 已保存的 exact lineage 与本次 claim 完全相同,则仍执行证据隔离,但保留用户的 paused 状态。不同 Delivery epoch 不做字符串排序,无法证明顺序时 fail-closed。
|
|
67
|
+
|
|
68
|
+
两条路径都会先验证 exact active binding、Inbox/envelope、active owner、inbound/reply Policy 和 durable dispatch fence,再取得 exact external owner 的 `signal` / `preference:<preset>/<catalog-key>` Policy 授权,最后调用本插件私有注册的唯一 batch sink。该 sink 在一个 SQLite 事务内提交整批信号并返回逐项 durable receipt;`preference-learning` 没有任何公开方法可自报 `owner-authenticated`、`direct-owner-feedback` 或跨 scope owner 证据。
|
|
33
69
|
|
|
34
70
|
其他 Host producer 只能提交低信任观测:
|
|
35
71
|
|
|
@@ -46,7 +82,7 @@ ctx.assistantPreferenceLearning.appendObservation({
|
|
|
46
82
|
})
|
|
47
83
|
```
|
|
48
84
|
|
|
49
|
-
服务固定赋予这类输入 `system-attested`,且只接受 `behavioral-inference` / `model-inference` 与非 owner 来源。它们可形成 shadow
|
|
85
|
+
服务固定赋予这类输入 `system-attested`,且只接受 `behavioral-inference` / `model-inference` 与非 owner 来源。它们可形成 shadow 供审计,但自身不能满足激活门槛或授权回滚。原始幂等键按 producer lane 做域隔离哈希,聊天正文不进入账本。
|
|
50
86
|
|
|
51
87
|
模型可见工具只有:
|
|
52
88
|
|
|
@@ -54,19 +90,21 @@ ctx.assistantPreferenceLearning.appendObservation({
|
|
|
54
90
|
- `preference_activate`:用 `hypothesis_id + expected_version` 激活证据达标的 T1;
|
|
55
91
|
- `preference_rollback`:用 `hypothesis_id + expected_version` 请求移除 shadow/active 假设;审计原因由 Host 固定,模型不能声称“owner 已拒绝”或伪造回归。
|
|
56
92
|
|
|
57
|
-
|
|
93
|
+
未验证身份、公共 observation 或模型推断可以形成 shadow,但无论累计多少,都不能满足自动激活门槛,也不能自动回滚已激活偏好。只有经过 Delivery 私有 completed-turn 证明的 owner behavioral observation,以及 owner explicit/typed feedback,才参与 effect 决策。明确选择在 TTL 内优先于之后的行为观察;一个闭集明确选择可立即激活固定 T1,typed feedback 仍需普通证据门槛,behavioral observation 必须达到单独的强阈值。
|
|
58
94
|
|
|
59
|
-
激活后的 prompt 由固定 catalog renderer 生成,当前请求始终优先。插件使用 DSH dynamic runtime context,在每个模型步骤重新读取 exact Agent scope,并由 AgentLoop
|
|
95
|
+
激活后的 prompt 由固定 catalog renderer 生成,当前请求始终优先。插件使用 DSH dynamic runtime context,在每个模型步骤重新读取 exact Agent scope,并由 AgentLoop 替换上一份快照。每次实际注入会把 exact `hypothesisId + version + sessionId + sourceEventId` 写入 durable exposure;turn 完成事件再绑定 exact `sourceInboxId + replyOutboxId`。回复该 Outbox 的相反 owner 明确反馈会留下 exposure-correction 关联并自动回滚对应旧 effect。账本不保存用户文本或模型输出。owner 更正、TTL 到期、显式回滚、forget、禁用/卸载和 session resume 都不会留下永久历史指令;下一步会得到新快照或明确清除旧快照。`overlayForAgent()` 是其他 Host prompt composer 的同一有界接入面。
|
|
60
96
|
|
|
61
97
|
## 配置
|
|
62
98
|
|
|
63
99
|
| 配置 | 默认值 | 作用 |
|
|
64
100
|
|---|---:|---|
|
|
65
|
-
| `enabled` | `true` | `false`
|
|
101
|
+
| `enabled` | `true` | `false` 时停止所有 producer 收集、激活和注入;Delivery 控制 registration 仍可返回 disabled 状态和执行 owner forget,Host 仍可审计、回滚和 forget |
|
|
66
102
|
| `databasePath` | Patch 设置 | 私有 SQLite 文件的绝对路径 |
|
|
67
103
|
| `signalTtlMs` | 90 天 | 信号衰减和保留窗口,硬上限 365 天 |
|
|
68
104
|
| `hypothesisTtlMs` | 30 天 | 假设 TTL,硬上限 30 天且不得大于信号窗口 |
|
|
69
105
|
| `minSignalsForActivation` | `2` | 激活所需最少支持信号 |
|
|
106
|
+
| `minBehavioralSignalsForActivation` | `6` | completed owner turns 的连续同值强阈值(4–20) |
|
|
107
|
+
| `autonomousT1Enabled` | `true` | 私有可信事件写入后自动 CAS 激活;启动与维护周期补偿已提交未激活项 |
|
|
70
108
|
| `minConfidenceBps` | `7500` | 最低置信度(万分比) |
|
|
71
109
|
| `maxContradictionBps` | `2500` | 最大矛盾比例(万分比) |
|
|
72
110
|
| `maxActiveOverlays` | `6` | 单 scope 活跃 overlay 硬上限(最多 8) |
|
|
@@ -74,19 +112,20 @@ ctx.assistantPreferenceLearning.appendObservation({
|
|
|
74
112
|
| `maxOverlayBytes` | `2048` | 固定 renderer 输出硬上限 |
|
|
75
113
|
| `maintenanceIntervalMs` | 1 小时 | 有界清理过期 signal 的周期(1 分钟至 24 小时) |
|
|
76
114
|
| `maintenanceBatchSize` | `500` | 每轮物理清理的最大 signal 数(最多 5000) |
|
|
115
|
+
| `promotionReconcileLimit` | `50` | 每轮提交、取消和终态回执投影的最大数量(最多 1000) |
|
|
77
116
|
|
|
78
117
|
置信度使用固定 actor/interpretation 权重、时间衰减、支持/矛盾质量和证据覆盖率计算;不调用模型打分。证据或状态更新与信号写入位于同一 `BEGIN IMMEDIATE` 事务中。
|
|
79
118
|
|
|
80
119
|
## 隐私、权限与数据
|
|
81
120
|
|
|
82
121
|
- 文件系统:创建并读写 `databasePath`;目录权限为 `0700`、数据库为 `0600`,SQLite 使用 WAL、`synchronous=FULL`、`secure_delete=ON` 和外键。
|
|
83
|
-
- 数据内容:保存规范化绝对 workspace、Agent preset、固定 catalog key/value
|
|
84
|
-
- 保留与删除:`signalTtlMs` 是 evidence window,也是真实 signal 保留期限;后台按有界批次物理删除过期行,极端 backlog 会跨多轮收敛。假设、状态迁移和 forget tombstone 属于审计状态,不按 signal TTL 删除。可信 Host 可调用 `forgetScope(scope, idempotencyKey)` 删除该 exact scope
|
|
122
|
+
- 数据内容:保存规范化绝对 workspace、Agent preset、固定 catalog key/value、信任枚举、时间和哈希标识,以及 content-free exposure 的 hypothesis/version/Inbox/Outbox 标识;不保存聊天正文、模型输出、自由文本解释、凭据或原始幂等键。
|
|
123
|
+
- 保留与删除:`signalTtlMs` 是 evidence window,也是真实 signal 保留期限;后台按有界批次物理删除过期行,极端 backlog 会跨多轮收敛。假设、状态迁移和 forget tombstone 属于审计状态,不按 signal TTL 删除。可信 Host 可调用 `forgetScope(scope, idempotencyKey)` 删除该 exact scope 的信号、假设和状态历史;owner 控制面另保留不可逆 scope digest tombstone以及不含外部 principal 明文的最小 generation/pause/admission-cursor fence,阻止旧事件重放且不因删除而恢复学习。返回成功前还会完成并验证 WAL truncate,若读者占用导致 checkpoint busy,则以 `privacy-purge-pending` 要求按同一幂等键重试,而不虚报物理清除。没有模型可见删除工具。
|
|
85
124
|
- 网络、子进程、浏览器、凭据、安装脚本:无。
|
|
86
125
|
|
|
87
126
|
## 限制
|
|
88
127
|
|
|
89
|
-
owner
|
|
128
|
+
owner 身份、日常 completed-turn 证明与显式反馈由 `assistant-delivery` 负责;未安装 Delivery 时仍可记录低信任系统观测,但不会产生可自动激活的 owner 证据。未安装 Personal Memory 时,合格 T2 promotion 会安全地留在本地 durable outbox;它不会绕过审批。当前自动学习只改变固定低风险表达偏好,不改变 Policy、工具权限、凭据、预算或安全阈值。
|
|
90
129
|
|
|
91
130
|
## 兼容性
|
|
92
131
|
|
package/cordis.patch.yml
CHANGED
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
signalTtlMs: 7776000000
|
|
11
11
|
hypothesisTtlMs: 2592000000
|
|
12
12
|
minSignalsForActivation: 2
|
|
13
|
+
minBehavioralSignalsForActivation: 6
|
|
14
|
+
autonomousT1Enabled: true
|
|
13
15
|
minConfidenceBps: 7500
|
|
14
16
|
maxContradictionBps: 2500
|
|
15
17
|
maxActiveOverlays: 6
|
|
@@ -17,3 +19,4 @@
|
|
|
17
19
|
maxOverlayBytes: 2048
|
|
18
20
|
maintenanceIntervalMs: 3600000
|
|
19
21
|
maintenanceBatchSize: 500
|
|
22
|
+
promotionReconcileLimit: 50
|
package/lib/catalog.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,mCAAoC,CAAA;AACpE,MAAM,MAAM,kBAAkB,GAAG,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAA;AAEnE;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyDnB,CAAA;AAEX,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,iBAAiB,CAAA;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,aAAa,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,kBAAkB,CAAA;CAC7B;AAED,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,gBAAgB,CAazF;AAiCD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,CAQtF"}
|
package/lib/catalog.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { assistantT1PreferenceValues } from '@dsh-enhanced/assistant-growth-contract';
|
|
1
2
|
export const preferenceRiskTiers = ['T0', 'T1', 'T2', 'T3'];
|
|
2
3
|
/**
|
|
3
4
|
* Host-owned catalog. Callers select an exact key/value pair; they cannot add
|
|
@@ -16,22 +17,22 @@ export const preferenceCatalog = Object.freeze({
|
|
|
16
17
|
values: Object.freeze(['acknowledged', 'ignored', 'retried', 'corrected']),
|
|
17
18
|
}),
|
|
18
19
|
'response.verbosity': Object.freeze({
|
|
19
|
-
riskTier: 'T1', values:
|
|
20
|
+
riskTier: 'T1', values: assistantT1PreferenceValues['response.verbosity'],
|
|
20
21
|
}),
|
|
21
22
|
'response.structure': Object.freeze({
|
|
22
|
-
riskTier: 'T1', values:
|
|
23
|
+
riskTier: 'T1', values: assistantT1PreferenceValues['response.structure'],
|
|
23
24
|
}),
|
|
24
25
|
'response.language': Object.freeze({
|
|
25
|
-
riskTier: 'T1', values:
|
|
26
|
+
riskTier: 'T1', values: assistantT1PreferenceValues['response.language'],
|
|
26
27
|
}),
|
|
27
28
|
'response.explanation_depth': Object.freeze({
|
|
28
|
-
riskTier: 'T1', values:
|
|
29
|
+
riskTier: 'T1', values: assistantT1PreferenceValues['response.explanation_depth'],
|
|
29
30
|
}),
|
|
30
31
|
'suggestion.frequency': Object.freeze({
|
|
31
|
-
riskTier: 'T1', values:
|
|
32
|
+
riskTier: 'T1', values: assistantT1PreferenceValues['suggestion.frequency'],
|
|
32
33
|
}),
|
|
33
34
|
'recommendation.ranking': Object.freeze({
|
|
34
|
-
riskTier: 'T1', values:
|
|
35
|
+
riskTier: 'T1', values: assistantT1PreferenceValues['recommendation.ranking'],
|
|
35
36
|
}),
|
|
36
37
|
'memory.retention': Object.freeze({
|
|
37
38
|
riskTier: 'T2', values: Object.freeze(['session-only', 'long-term']),
|
package/lib/catalog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAA;AAGpE;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7C,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC;QACjC,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc;YACjE,cAAc,EAAE,mBAAmB;SACpC,CAAC;KACH,CAAC;IACF,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC;QACpC,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;KAC3E,CAAC;IACF,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC;QAClC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -6,7 +6,10 @@ export declare const name = "dsh-enhanced-preference-learning";
|
|
|
6
6
|
export declare const inject: string[];
|
|
7
7
|
export { Config, PreferenceLearningService, version };
|
|
8
8
|
export type { ConfigType as PreferenceLearningConfig };
|
|
9
|
-
export { PreferenceLearningError } from './service.js';
|
|
9
|
+
export { HOST_RECOVERY_BACKGROUND_ID, PreferenceLearningError, canonicalPreferenceHostScope, } from './service.js';
|
|
10
|
+
export { isTrustedPreferenceMemoryPromotionProducer } from '@dsh-enhanced/assistant-growth-contract';
|
|
11
|
+
export type { PreferenceHostActivationCandidate, PreferenceHostOwnerFence, PreferenceHostOperation, PreferenceHostScope, } from './service.js';
|
|
12
|
+
export type { PreferenceHostActivationResult, PreferenceHostMaintenanceResult } from './store.js';
|
|
10
13
|
export * from './catalog.js';
|
|
11
14
|
export * from './types.js';
|
|
12
15
|
export declare function apply(ctx: Context, config: ConfigType): void;
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EACL,MAAM,EACN,yBAAyB,EAC1B,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,eAAO,MAAM,IAAI,qCAAqC,CAAA;AACtD,eAAO,MAAM,MAAM,UAAsC,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,yBAAyB,EAAE,OAAO,EAAE,CAAA;AACrD,YAAY,EAAE,UAAU,IAAI,wBAAwB,EAAE,CAAA;AACtD,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,0CAA0C,EAAE,MAAM,yCAAyC,CAAA;AACpG,YAAY,EACV,iCAAiC,EACjC,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,8BAA8B,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAA;AACjG,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAE1B,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAE5D;AAED,eAAe,yBAAyB,CAAA"}
|
package/lib/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { Config, PreferenceLearningService } from './service.js';
|
|
1
|
+
import { Config, PreferenceLearningService, } from './service.js';
|
|
2
2
|
import { version } from './version.js';
|
|
3
3
|
export const name = 'dsh-enhanced-preference-learning';
|
|
4
4
|
export const inject = ['assistantPolicy', 'systemPrompt'];
|
|
5
5
|
export { Config, PreferenceLearningService, version };
|
|
6
|
-
export { PreferenceLearningError } from './service.js';
|
|
6
|
+
export { HOST_RECOVERY_BACKGROUND_ID, PreferenceLearningError, canonicalPreferenceHostScope, } from './service.js';
|
|
7
|
+
export { isTrustedPreferenceMemoryPromotionProducer } from '@dsh-enhanced/assistant-growth-contract';
|
|
7
8
|
export * from './catalog.js';
|
|
8
9
|
export * from './types.js';
|
|
9
10
|
export function apply(ctx, config) {
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,MAAM,EACN,yBAAyB,GAC1B,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,CAAC,MAAM,IAAI,GAAG,kCAAkC,CAAA;AACtD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,yBAAyB,EAAE,OAAO,EAAE,CAAA;AAErD,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,0CAA0C,EAAE,MAAM,yCAAyC,CAAA;AAQpG,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAE1B,MAAM,UAAU,KAAK,CAAC,GAAY,EAAE,MAAkB;IACpD,IAAI,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;AAC5C,CAAC;AAED,eAAe,yBAAyB,CAAA"}
|
package/lib/service.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { Context, Service } from '@deepseek-ai/cordis';
|
|
2
2
|
import type { Agent } from '@deepseek-ai/dsh-agent';
|
|
3
3
|
import Schema from '@deepseek-ai/schemastery';
|
|
4
|
-
import type {
|
|
4
|
+
import type { PreferenceMemoryPromotionRegistration } from '@dsh-enhanced/assistant-growth-contract';
|
|
5
|
+
import { type DeliveryOwnerLineage, type DeliveryPreferenceRegistration } from '@dsh-enhanced/assistant-delivery';
|
|
6
|
+
import type { PreferenceForgetResult, PreferenceHostActivationResult, PreferenceHostMaintenanceResult } from './store.js';
|
|
5
7
|
import type { PreferenceHealth, PreferenceHypothesis, PreferenceLimits, PreferenceMaintenanceResult, PreferenceObservationInput, PreferenceReview, PreferenceRollbackReason, PreferenceScope, StoredPreferenceSignal } from './types.js';
|
|
6
8
|
export interface Config {
|
|
7
9
|
enabled?: boolean;
|
|
@@ -9,6 +11,8 @@ export interface Config {
|
|
|
9
11
|
signalTtlMs?: number;
|
|
10
12
|
hypothesisTtlMs?: number;
|
|
11
13
|
minSignalsForActivation?: number;
|
|
14
|
+
minBehavioralSignalsForActivation?: number;
|
|
15
|
+
autonomousT1Enabled?: boolean;
|
|
12
16
|
minConfidenceBps?: number;
|
|
13
17
|
maxContradictionBps?: number;
|
|
14
18
|
maxActiveOverlays?: number;
|
|
@@ -16,12 +20,49 @@ export interface Config {
|
|
|
16
20
|
maxOverlayBytes?: number;
|
|
17
21
|
maintenanceIntervalMs?: number;
|
|
18
22
|
maintenanceBatchSize?: number;
|
|
23
|
+
promotionReconcileLimit?: number;
|
|
19
24
|
}
|
|
20
|
-
export type PreferenceLearningErrorCode = 'disabled' | 'disposed' | 'missing-agent' | 'policy-denied' | 'unattested-signal';
|
|
25
|
+
export type PreferenceLearningErrorCode = 'disabled' | 'disposed' | 'invalid-input' | 'invalid-scope' | 'missing-agent' | 'missing-principal' | 'policy-denied' | 'unattested-signal';
|
|
21
26
|
export declare class PreferenceLearningError extends Error {
|
|
22
27
|
readonly code: PreferenceLearningErrorCode;
|
|
23
28
|
constructor(code: PreferenceLearningErrorCode, message: string);
|
|
24
29
|
}
|
|
30
|
+
/** Fixed Policy subject used by the non-model supervised-growth runbook. */
|
|
31
|
+
export declare const HOST_RECOVERY_BACKGROUND_ID = "dsh-enhanced-assistant-recovery";
|
|
32
|
+
declare const preferenceHostScopeBrand: unique symbol;
|
|
33
|
+
/**
|
|
34
|
+
* An immutable Host-owned scope. It can only be obtained through the canonical
|
|
35
|
+
* constructor below; spreading/serializing it deliberately removes the brand.
|
|
36
|
+
*/
|
|
37
|
+
export interface PreferenceHostScope extends Readonly<PreferenceScope> {
|
|
38
|
+
readonly [preferenceHostScopeBrand]: true;
|
|
39
|
+
}
|
|
40
|
+
export declare function canonicalPreferenceHostScope(input: PreferenceScope): PreferenceHostScope;
|
|
41
|
+
export interface PreferenceHostOperation {
|
|
42
|
+
scope: PreferenceHostScope;
|
|
43
|
+
/** Authenticated owner identity supplied by the Host route, never a model. */
|
|
44
|
+
principal: string;
|
|
45
|
+
/** Exact durable Delivery owner-row lineage. */
|
|
46
|
+
principalLineage: Readonly<DeliveryOwnerLineage>;
|
|
47
|
+
/**
|
|
48
|
+
* Exact Preference owner generation. Planning operations may omit it and
|
|
49
|
+
* receive the current generation; mutating an activation always requires it.
|
|
50
|
+
*/
|
|
51
|
+
ownerGeneration?: number;
|
|
52
|
+
/** Exact fixed-run receipt/run identifier used for Policy budget idempotency. */
|
|
53
|
+
operationId: string;
|
|
54
|
+
}
|
|
55
|
+
export interface PreferenceHostActivationCandidate {
|
|
56
|
+
hypothesisId: string;
|
|
57
|
+
expectedVersion: number;
|
|
58
|
+
ownerGeneration: number;
|
|
59
|
+
principalLineage: Readonly<DeliveryOwnerLineage>;
|
|
60
|
+
}
|
|
61
|
+
/** Current exact Preference owner fence for one Policy-authorized Host scope. */
|
|
62
|
+
export interface PreferenceHostOwnerFence {
|
|
63
|
+
ownerGeneration: number;
|
|
64
|
+
principalLineage: Readonly<DeliveryOwnerLineage>;
|
|
65
|
+
}
|
|
25
66
|
declare module '@deepseek-ai/cordis' {
|
|
26
67
|
interface Context {
|
|
27
68
|
assistantPreferenceLearning: PreferenceLearningService;
|
|
@@ -33,35 +74,95 @@ export declare class PreferenceLearningService extends Service {
|
|
|
33
74
|
private readonly store;
|
|
34
75
|
private readonly policy;
|
|
35
76
|
private readonly config;
|
|
77
|
+
private readonly activeDeliveryRegistrations;
|
|
78
|
+
private readonly memoryPromotionProducerGeneration;
|
|
79
|
+
/** Re-entrancy guard only; durable ownership and retry state remain in SQLite. */
|
|
80
|
+
private memoryPromotionReconcileRunning;
|
|
81
|
+
private memoryPromotionReconcileScheduled;
|
|
82
|
+
private memoryPromotionBinding;
|
|
83
|
+
private deliveryBinding;
|
|
36
84
|
private active;
|
|
37
85
|
constructor(ctx: Context, input: Config, options?: {
|
|
38
86
|
now?: () => number;
|
|
39
87
|
});
|
|
88
|
+
trustedMemoryPromotionProducerGeneration(): string;
|
|
89
|
+
/** Accept one exact Memory-owned, process-local bidirectional registration. */
|
|
90
|
+
registerTrustedMemoryPromotionResultSink(registration: Readonly<PreferenceMemoryPromotionRegistration>): () => void;
|
|
91
|
+
/**
|
|
92
|
+
* Bounded durable producer drain. Failures stay in retry_wait; one malformed
|
|
93
|
+
* or unavailable Memory row never drops the remaining outbox.
|
|
94
|
+
*/
|
|
95
|
+
reconcileMemoryPromotions(limit?: number): Readonly<{
|
|
96
|
+
submitted: number;
|
|
97
|
+
cancelled: number;
|
|
98
|
+
projected: number;
|
|
99
|
+
}>;
|
|
100
|
+
private promotionFailureCode;
|
|
101
|
+
/** Never call Memory while Delivery is still holding its preference writer lock. */
|
|
102
|
+
private scheduleMemoryPromotionReconcile;
|
|
40
103
|
/**
|
|
41
104
|
* Unprivileged observation seam. Actor/source authority is assigned here;
|
|
42
105
|
* callers cannot use it to claim owner feedback or unlock an effect.
|
|
43
106
|
*/
|
|
44
107
|
appendObservation(input: PreferenceObservationInput): StoredPreferenceSignal;
|
|
45
108
|
review(agent: Agent | undefined, limit?: number): PreferenceReview;
|
|
109
|
+
/** Host-only, Agent-free review for the deterministic recovery runbook. */
|
|
110
|
+
hostReview(input: PreferenceHostOperation & {
|
|
111
|
+
limit?: number;
|
|
112
|
+
}): PreferenceReview;
|
|
113
|
+
/** Side-effect-free Preference-state fence capture for a fixed Host plan. */
|
|
114
|
+
hostOwnerFence(input: PreferenceHostOperation): PreferenceHostOwnerFence;
|
|
115
|
+
/**
|
|
116
|
+
* Return one deterministic, content-minimal activation target. The Store
|
|
117
|
+
* evaluates the exact same readiness predicates used by activate().
|
|
118
|
+
*/
|
|
119
|
+
hostActivationCandidate(input: PreferenceHostOperation): PreferenceHostActivationCandidate | undefined;
|
|
46
120
|
activate(agent: Agent | undefined, hypothesisId: string, expectedVersion: number): PreferenceHypothesis;
|
|
121
|
+
/** Activate exactly one evidence-ready, owner-attested T1 hypothesis by CAS. */
|
|
122
|
+
hostActivateOne(input: PreferenceHostOperation & {
|
|
123
|
+
ownerGeneration: number;
|
|
124
|
+
hypothesisId: string;
|
|
125
|
+
expectedVersion: number;
|
|
126
|
+
}): PreferenceHostActivationResult;
|
|
47
127
|
rollback(agent: Agent | undefined, hypothesisId: string, expectedVersion: number, reason: PreferenceRollbackReason): PreferenceHypothesis;
|
|
128
|
+
/** Roll back exactly one currently-active T1 overlay by CAS. */
|
|
129
|
+
hostRollbackOne(input: PreferenceHostOperation & {
|
|
130
|
+
hypothesisId: string;
|
|
131
|
+
expectedVersion: number;
|
|
132
|
+
}): PreferenceHypothesis;
|
|
48
133
|
/** Host-only privacy seam. It removes exact-scope rows and retains only a scope digest tombstone. */
|
|
49
134
|
forgetScope(scope: PreferenceScope, idempotencyKey: string): PreferenceForgetResult;
|
|
50
135
|
health(): PreferenceHealth;
|
|
51
136
|
limits(): PreferenceLimits;
|
|
52
137
|
/** Safe bounded maintenance seam used by health jobs and deterministic tests. */
|
|
53
138
|
maintain(): PreferenceMaintenanceResult;
|
|
139
|
+
/** Policy-authorized, exact-scope retention step; deletes at most one row. */
|
|
140
|
+
hostMaintainOne(input: PreferenceHostOperation): PreferenceHostMaintenanceResult;
|
|
54
141
|
/** Host integration seam for foreground prompt composition. */
|
|
55
142
|
overlayForAgent(agent: Agent | undefined): string | undefined;
|
|
143
|
+
/** Exact process-local ownership proof; copied or disposed registrations never pass. */
|
|
144
|
+
ownsDeliveryPreferenceRegistration(registration: Readonly<DeliveryPreferenceRegistration>): boolean;
|
|
145
|
+
private bindDeliveryProducer;
|
|
56
146
|
private dynamicOverlay;
|
|
147
|
+
private controlDeliveryLearning;
|
|
148
|
+
private deliveryLearningStatus;
|
|
149
|
+
private deliveryLineage;
|
|
150
|
+
private deliveryAdmissionCursor;
|
|
57
151
|
/**
|
|
58
152
|
* The closure is registered directly with Assistant Delivery. No public
|
|
59
153
|
* service method accepts owner-authenticated provenance.
|
|
60
154
|
*/
|
|
61
|
-
private
|
|
155
|
+
private appendDeliveryPreferenceBatch;
|
|
156
|
+
private deliveryCompletion;
|
|
157
|
+
private deliverySignal;
|
|
62
158
|
private authorizedScope;
|
|
159
|
+
private authorizedPrincipalScope;
|
|
160
|
+
private requirePrincipalFence;
|
|
161
|
+
private authorizedHostScope;
|
|
162
|
+
private hostPrincipalFence;
|
|
63
163
|
private assertEnabled;
|
|
64
164
|
private assertActive;
|
|
65
165
|
}
|
|
66
166
|
export declare const Config: Schema<Config>;
|
|
167
|
+
export {};
|
|
67
168
|
//# sourceMappingURL=service.d.ts.map
|
package/lib/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|