dsh-memu-memory 1.1.2 → 1.2.0

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.
Files changed (199) hide show
  1. package/AGENTS.md +8 -6
  2. package/README.md +50 -5
  3. package/README.zh.md +49 -5
  4. package/docs/active-memory-ab.md +385 -0
  5. package/docs/binding-lifecycle.md +99 -0
  6. package/docs/contributing.md +6 -4
  7. package/docs/emotion-model-spec.md +281 -0
  8. package/docs/env-and-commands.md +13 -0
  9. package/docs/host-api.md +35 -3
  10. package/docs/memory-semantics.md +40 -11
  11. package/docs/recall-benchmark.md +238 -0
  12. package/docs/troubleshooting.md +395 -366
  13. package/lib/active-memory.js +165 -0
  14. package/lib/activity-log.js +190 -0
  15. package/lib/backup.js +1103 -0
  16. package/lib/binding-diagnostics.js +635 -0
  17. package/lib/client.js +728 -58
  18. package/lib/consolidation-ledger.js +347 -0
  19. package/lib/consolidation-receipt.js +284 -0
  20. package/lib/consolidation-snapshot.js +274 -0
  21. package/lib/consolidation-worker.js +115 -0
  22. package/lib/curator.js +81 -37
  23. package/lib/cycle.js +43 -6
  24. package/lib/embedding-catalog.js +763 -0
  25. package/lib/embedding-download.js +407 -0
  26. package/lib/embedding-runtime.js +710 -0
  27. package/lib/engine.js +2 -2
  28. package/lib/index.js +36 -0
  29. package/lib/inject.js +232 -103
  30. package/lib/local-embedding-entry.js +145 -0
  31. package/lib/local-embedding-manager.js +267 -0
  32. package/lib/local-embedding-protocol.js +173 -0
  33. package/lib/local-embedding-worker.js +652 -0
  34. package/lib/local-vector-service.js +283 -0
  35. package/lib/memory.js +599 -57
  36. package/lib/memu-config.js +10 -22
  37. package/lib/memu.js +53 -19
  38. package/lib/mood.js +268 -39
  39. package/lib/paths.js +24 -0
  40. package/lib/preset-scope.js +1 -1
  41. package/lib/private.js +450 -29
  42. package/lib/prompts/private-consolidation.coding.md +1 -0
  43. package/lib/prompts/private-consolidation.md +1 -0
  44. package/lib/prompts/private-consolidation.mixed.md +1 -0
  45. package/lib/prompts/private-consolidation.rp.md +1 -0
  46. package/lib/prompts.js +4 -4
  47. package/lib/remote-summary.js +51 -25
  48. package/lib/rpc.js +54 -5
  49. package/lib/state.js +137 -172
  50. package/lib/tools.js +58 -7
  51. package/lib/vector-migration.js +878 -0
  52. package/lib/vector-profile.js +968 -0
  53. package/package.json +4 -2
  54. package/scripts/acceptance-local.mjs +7 -5
  55. package/scripts/active-memory-ab-live.mjs +655 -0
  56. package/scripts/active-memory-ab.mjs +1302 -0
  57. package/scripts/chain-matrix.mjs +537 -0
  58. package/scripts/check-all.mjs +29 -1
  59. package/scripts/check-doc-drift.mjs +353 -0
  60. package/scripts/diagnose-bindings.mjs +176 -0
  61. package/scripts/local-runtime-install.mjs +142 -0
  62. package/scripts/local-runtime-verify.mjs +56 -0
  63. package/scripts/local-vector-verify.mjs +93 -0
  64. package/scripts/recall-bench.mjs +813 -0
  65. package/scripts/repetition-ab-scenarios.mjs +93 -0
  66. package/scripts/repetition-detector-snapshot.mjs +314 -0
  67. package/scripts/repetition-eval-live.mjs +360 -0
  68. package/scripts/repetition-eval.mjs +702 -0
  69. package/tests/activation.test.mjs +89 -0
  70. package/tests/active-memory-ab.test.mjs +745 -0
  71. package/tests/active-memory.test.mjs +129 -0
  72. package/tests/activity-log.test.mjs +126 -0
  73. package/tests/activity-wiring.test.mjs +103 -0
  74. package/tests/appendix-b.test.mjs +212 -0
  75. package/tests/appendix-b2.test.mjs +166 -0
  76. package/tests/audit-regression.test.mjs +272 -0
  77. package/tests/audit-safety.test.mjs +227 -0
  78. package/tests/backend-compensation.test.mjs +272 -0
  79. package/tests/backup.test.mjs +793 -0
  80. package/tests/binding-diagnostics.test.mjs +720 -0
  81. package/tests/browser.test.mjs +366 -0
  82. package/tests/client-render.test.mjs +892 -0
  83. package/tests/coalesce.test.mjs +113 -0
  84. package/tests/config.test.mjs +159 -0
  85. package/tests/consolidation-credential.test.mjs +320 -0
  86. package/tests/consolidation-fork.test.mjs +357 -0
  87. package/tests/consolidation-ledger.test.mjs +298 -0
  88. package/tests/consolidation-snapshot.test.mjs +321 -0
  89. package/tests/consolidation-value.test.mjs +89 -0
  90. package/tests/context-scope.test.mjs +40 -0
  91. package/tests/cue.test.mjs +44 -0
  92. package/tests/curator-probe.test.mjs +433 -0
  93. package/tests/curator.test.mjs +150 -0
  94. package/tests/cycle.test.mjs +411 -0
  95. package/tests/disclosure.test.mjs +231 -0
  96. package/tests/doc-drift.test.mjs +222 -0
  97. package/tests/embedding-catalog.test.mjs +266 -0
  98. package/tests/embedding-download.test.mjs +391 -0
  99. package/tests/embedding-runtime.test.mjs +389 -0
  100. package/tests/emotion-chain.test.mjs +84 -0
  101. package/tests/emotion-contract.test.mjs +445 -0
  102. package/tests/engine.test.mjs +35 -0
  103. package/tests/fixtures/active-memory-ab/README.md +56 -0
  104. package/tests/fixtures/active-memory-ab/cases/01-clean-dense-turn.json +351 -0
  105. package/tests/fixtures/active-memory-ab/cases/02-clean-thin-turn.json +122 -0
  106. package/tests/fixtures/active-memory-ab/cases/03-clean-starved-small.json +125 -0
  107. package/tests/fixtures/active-memory-ab/cases/04-clean-large-thin.json +137 -0
  108. package/tests/fixtures/active-memory-ab/cases/05-clean-half-step.json +166 -0
  109. package/tests/fixtures/active-memory-ab/cases/06-clean-duplicate-reread.json +197 -0
  110. package/tests/fixtures/active-memory-ab/cases/07-clean-recent-recall.json +125 -0
  111. package/tests/fixtures/active-memory-ab/cases/08-global-relevant.json +111 -0
  112. package/tests/fixtures/active-memory-ab/cases/09-global-irrelevant-conflict.json +158 -0
  113. package/tests/fixtures/active-memory-ab/cases/10-no-human-turn.json +97 -0
  114. package/tests/fixtures/active-memory-ab/cases/11-clean-scale-100.json +137 -0
  115. package/tests/fixtures/active-memory-ab/cases/12-clean-scale-1000.json +137 -0
  116. package/tests/fixtures/active-memory-ab/cases/13-clean-scale-5000.json +137 -0
  117. package/tests/fixtures/active-memory-ab/cases/14-clean-scale-20000.json +137 -0
  118. package/tests/fixtures/active-memory-ab/lead-ai-reviewed-reference.json +191 -0
  119. package/tests/fixtures/active-memory-ab/manifest.json +199 -0
  120. package/tests/fixtures/recall-bench/01-paraphrase.json +184 -0
  121. package/tests/fixtures/recall-bench/02-exact.json +153 -0
  122. package/tests/fixtures/recall-bench/03-negation.json +173 -0
  123. package/tests/fixtures/recall-bench/04-no-answer.json +162 -0
  124. package/tests/fixtures/recall-bench/05-conflict.json +194 -0
  125. package/tests/fixtures/recall-bench/06-boundary.json +273 -0
  126. package/tests/fixtures/recall-bench/07-secret.json +191 -0
  127. package/tests/fixtures/recall-bench/08-coding.json +164 -0
  128. package/tests/fixtures/recall-bench-gold-candidates/01-paraphrase.json +193 -0
  129. package/tests/fixtures/recall-bench-gold-candidates/02-exact.json +197 -0
  130. package/tests/fixtures/recall-bench-gold-candidates/03-negation.json +244 -0
  131. package/tests/fixtures/recall-bench-gold-candidates/04-no-answer.json +189 -0
  132. package/tests/fixtures/recall-bench-gold-candidates/05-conflict.json +245 -0
  133. package/tests/fixtures/recall-bench-gold-candidates/06-boundary.json +279 -0
  134. package/tests/fixtures/recall-bench-gold-candidates/07-secret.json +224 -0
  135. package/tests/fixtures/recall-bench-gold-candidates/08-coding.json +218 -0
  136. package/tests/fixtures/repetition-eval/01-zh-rp.json +93 -0
  137. package/tests/fixtures/repetition-eval/02-en.json +97 -0
  138. package/tests/fixtures/repetition-eval/03-code.json +91 -0
  139. package/tests/fixtures/repetition-eval/04-names.json +116 -0
  140. package/tests/fixtures/repetition-eval/05-user-quote.json +96 -0
  141. package/tests/fixtures/repetition-eval/06-agreement.json +86 -0
  142. package/tests/graph-view.test.mjs +187 -0
  143. package/tests/graph.test.mjs +77 -0
  144. package/tests/hook-order.test.mjs +72 -0
  145. package/tests/humanlike.test.mjs +232 -0
  146. package/tests/hybrid-recall.test.mjs +92 -0
  147. package/tests/inbound.test.mjs +393 -0
  148. package/tests/inject-guide.test.mjs +364 -0
  149. package/tests/inject.test.mjs +222 -0
  150. package/tests/injection-budget-settings.test.mjs +35 -0
  151. package/tests/injection-budget.test.mjs +64 -0
  152. package/tests/injection-chain.test.mjs +191 -0
  153. package/tests/loader-register.mjs +3 -0
  154. package/tests/loader.mjs +12 -0
  155. package/tests/local-embedding-entry.test.mjs +95 -0
  156. package/tests/local-embedding-manager.test.mjs +476 -0
  157. package/tests/local-embedding-protocol.test.mjs +95 -0
  158. package/tests/local-embedding-worker.test.mjs +346 -0
  159. package/tests/managed-memory.test.mjs +536 -0
  160. package/tests/managed-runtime.test.mjs +40 -0
  161. package/tests/media.test.mjs +132 -0
  162. package/tests/migration-payload.test.mjs +42 -0
  163. package/tests/mood.test.mjs +109 -0
  164. package/tests/multiprocess.test.mjs +29 -0
  165. package/tests/new-session-gate.test.mjs +361 -0
  166. package/tests/package-shipping.test.mjs +84 -0
  167. package/tests/preset-scope.test.mjs +212 -0
  168. package/tests/prompts.test.mjs +250 -0
  169. package/tests/react-snapshot.test.mjs +23 -0
  170. package/tests/recall-bench.test.mjs +306 -0
  171. package/tests/remote.test.mjs +140 -0
  172. package/tests/rename.test.mjs +30 -0
  173. package/tests/repetition-detector-snapshot.test.mjs +231 -0
  174. package/tests/repetition-eval-live.test.mjs +177 -0
  175. package/tests/repetition-eval.test.mjs +373 -0
  176. package/tests/salient-date.test.mjs +142 -0
  177. package/tests/settings-beat.test.mjs +221 -0
  178. package/tests/short-term.test.mjs +166 -0
  179. package/tests/sidebar-beat.test.mjs +208 -0
  180. package/tests/sidebar-refresh.test.mjs +123 -0
  181. package/tests/sidebar.test.mjs +70 -0
  182. package/tests/snippet.test.mjs +47 -0
  183. package/tests/source-kind.test.mjs +52 -0
  184. package/tests/state.test.mjs +150 -0
  185. package/tests/stats.test.mjs +112 -0
  186. package/tests/storage.test.mjs +125 -0
  187. package/tests/stubs/dsh-llm.js +5 -0
  188. package/tests/stubs/dsh-session.js +7 -0
  189. package/tests/stubs/dsh-tools.js +101 -0
  190. package/tests/tool-schema.test.mjs +73 -0
  191. package/tests/tools.test.mjs +184 -0
  192. package/tests/ui-defaults.test.mjs +57 -0
  193. package/tests/update-fields.test.mjs +138 -0
  194. package/tests/vector-migration.test.mjs +733 -0
  195. package/tests/vector-profile.test.mjs +425 -0
  196. package/tests/visibility-migration.test.mjs +152 -0
  197. package/tests/webui-auth.test.mjs +454 -0
  198. package/tests/webui.test.mjs +164 -0
  199. package/tests/windows-env.test.mjs +89 -0
@@ -0,0 +1,244 @@
1
+ {
2
+ "name": "negation — 人工金标候选(待审核)",
3
+ "status": "gold-candidate-pending-review",
4
+ "draft": true,
5
+ "notGold": true,
6
+ "gold": false,
7
+ "review": "pending",
8
+ "subclass": "negation",
9
+ "notes": "候选样本,尚未经过人工逐条确认,不是 gold set。含 superseded 旧事实作为 forbidden 干扰项。",
10
+ "entries": {
11
+ "mem-gcc-neg-spicy-now": {
12
+ "id": "mem-gcc-neg-spicy-now",
13
+ "title": "清淡饮食",
14
+ "content": "胃病出院后,宋栀改吃清蒸和炖煮,连胡椒粉都很少碰。",
15
+ "tags": [
16
+ "饮食",
17
+ "胃病"
18
+ ],
19
+ "ageDays": 9
20
+ },
21
+ "mem-gcc-neg-spicy-old": {
22
+ "id": "mem-gcc-neg-spicy-old",
23
+ "title": "无辣不欢",
24
+ "content": "宋栀以前每顿都要加小米辣,火锅只点特辣。",
25
+ "tags": [
26
+ "饮食",
27
+ "辣"
28
+ ],
29
+ "ageDays": 260,
30
+ "status": "superseded"
31
+ },
32
+ "mem-gcc-neg-swim-now": {
33
+ "id": "mem-gcc-neg-swim-now",
34
+ "title": "改去游泳",
35
+ "content": "膝盖受伤后,顾言把每周攀岩改成了周三晚上的蛙泳。",
36
+ "tags": [
37
+ "运动",
38
+ "游泳"
39
+ ],
40
+ "ageDays": 21
41
+ },
42
+ "mem-gcc-neg-climb-old": {
43
+ "id": "mem-gcc-neg-climb-old",
44
+ "title": "每周攀岩",
45
+ "content": "顾言以前每周去岩馆三次,能爬 5.11a。",
46
+ "tags": [
47
+ "运动",
48
+ "攀岩"
49
+ ],
50
+ "ageDays": 330,
51
+ "status": "superseded"
52
+ },
53
+ "mem-gcc-neg-cat-parents": {
54
+ "id": "mem-gcc-neg-cat-parents",
55
+ "title": "煤球搬去父母家",
56
+ "content": "因为新住处不能养宠物,那只叫煤球的橘猫现在跟着程父程母住。",
57
+ "tags": [
58
+ "猫",
59
+ "搬家"
60
+ ],
61
+ "ageDays": 40
62
+ },
63
+ "mem-gcc-neg-cat-old": {
64
+ "id": "mem-gcc-neg-cat-old",
65
+ "title": "煤球同住",
66
+ "content": "煤球和程雾住在城南公寓,晚上睡在枕边。",
67
+ "tags": [
68
+ "猫",
69
+ "旧居"
70
+ ],
71
+ "ageDays": 400,
72
+ "status": "superseded"
73
+ },
74
+ "mem-gcc-neg-film-old": {
75
+ "id": "mem-gcc-neg-film-old",
76
+ "title": "还在拍胶片",
77
+ "content": "她以前出门总背一台胶片相机,一卷要拍很久。",
78
+ "tags": [
79
+ "摄影",
80
+ "胶片"
81
+ ],
82
+ "ageDays": 310,
83
+ "status": "superseded"
84
+ },
85
+ "mem-gcc-neg-digital-now": {
86
+ "id": "mem-gcc-neg-digital-now",
87
+ "title": "改用数码相机",
88
+ "content": "去年起她改用一台轻便的数码相机,胶片机收进了书柜。",
89
+ "tags": [
90
+ "摄影",
91
+ "数码"
92
+ ],
93
+ "ageDays": 18
94
+ },
95
+ "mem-gcc-neg-teach-old": {
96
+ "id": "mem-gcc-neg-teach-old",
97
+ "title": "在城南教琴",
98
+ "content": "她曾在城南琴行教了四年钢琴,周末排满课。",
99
+ "tags": [
100
+ "钢琴",
101
+ "工作"
102
+ ],
103
+ "ageDays": 380,
104
+ "status": "superseded"
105
+ },
106
+ "mem-gcc-neg-studio-now": {
107
+ "id": "mem-gcc-neg-studio-now",
108
+ "title": "开了自己的琴行",
109
+ "content": "今年春天她离开原琴行,在河边开了自己的钢琴工作室。",
110
+ "tags": [
111
+ "钢琴",
112
+ "工作"
113
+ ],
114
+ "ageDays": 15
115
+ }
116
+ },
117
+ "samples": [
118
+ {
119
+ "id": "gcc-neg-spicy-current",
120
+ "status": "gold-candidate-pending-review",
121
+ "draft": true,
122
+ "notGold": true,
123
+ "gold": false,
124
+ "review": "pending",
125
+ "subclass": "negation",
126
+ "query": "宋栀出院以后还能吃辣吗?",
127
+ "context": {},
128
+ "time": "2026-10-02T12:00:00+08:00",
129
+ "expectedIds": [
130
+ "mem-gcc-neg-spicy-now"
131
+ ],
132
+ "forbiddenIds": [
133
+ "mem-gcc-neg-spicy-old"
134
+ ],
135
+ "noAnswer": false,
136
+ "library": [
137
+ "mem-gcc-neg-spicy-now",
138
+ "mem-gcc-neg-spicy-old",
139
+ "mem-gcc-neg-digital-now",
140
+ "mem-gcc-neg-studio-now"
141
+ ]
142
+ },
143
+ {
144
+ "id": "gcc-neg-climb-current",
145
+ "status": "gold-candidate-pending-review",
146
+ "draft": true,
147
+ "notGold": true,
148
+ "gold": false,
149
+ "review": "pending",
150
+ "subclass": "negation",
151
+ "query": "顾言现在还每周去攀岩吗?",
152
+ "context": {},
153
+ "time": "2026-10-03T12:00:00+08:00",
154
+ "expectedIds": [
155
+ "mem-gcc-neg-swim-now"
156
+ ],
157
+ "forbiddenIds": [
158
+ "mem-gcc-neg-climb-old"
159
+ ],
160
+ "noAnswer": false,
161
+ "library": [
162
+ "mem-gcc-neg-swim-now",
163
+ "mem-gcc-neg-climb-old",
164
+ "mem-gcc-neg-cat-parents",
165
+ "mem-gcc-neg-spicy-now"
166
+ ]
167
+ },
168
+ {
169
+ "id": "gcc-neg-cat-current",
170
+ "status": "gold-candidate-pending-review",
171
+ "draft": true,
172
+ "notGold": true,
173
+ "gold": false,
174
+ "review": "pending",
175
+ "subclass": "negation",
176
+ "query": "煤球现在跟着谁住?",
177
+ "context": {},
178
+ "time": "2026-10-04T12:00:00+08:00",
179
+ "expectedIds": [
180
+ "mem-gcc-neg-cat-parents"
181
+ ],
182
+ "forbiddenIds": [
183
+ "mem-gcc-neg-cat-old"
184
+ ],
185
+ "noAnswer": false,
186
+ "library": [
187
+ "mem-gcc-neg-cat-parents",
188
+ "mem-gcc-neg-cat-old",
189
+ "mem-gcc-neg-film-old",
190
+ "mem-gcc-neg-digital-now"
191
+ ]
192
+ },
193
+ {
194
+ "id": "gcc-neg-film-current",
195
+ "status": "gold-candidate-pending-review",
196
+ "draft": true,
197
+ "notGold": true,
198
+ "gold": false,
199
+ "review": "pending",
200
+ "subclass": "negation",
201
+ "query": "她现在拍照还用胶片机吗?",
202
+ "context": {},
203
+ "time": "2026-10-05T12:00:00+08:00",
204
+ "expectedIds": [
205
+ "mem-gcc-neg-digital-now"
206
+ ],
207
+ "forbiddenIds": [
208
+ "mem-gcc-neg-film-old"
209
+ ],
210
+ "noAnswer": false,
211
+ "library": [
212
+ "mem-gcc-neg-digital-now",
213
+ "mem-gcc-neg-film-old",
214
+ "mem-gcc-neg-swim-now",
215
+ "mem-gcc-neg-climb-old"
216
+ ]
217
+ },
218
+ {
219
+ "id": "gcc-neg-piano-current",
220
+ "status": "gold-candidate-pending-review",
221
+ "draft": true,
222
+ "notGold": true,
223
+ "gold": false,
224
+ "review": "pending",
225
+ "subclass": "negation",
226
+ "query": "她还在城南教钢琴吗?",
227
+ "context": {},
228
+ "time": "2026-10-06T12:00:00+08:00",
229
+ "expectedIds": [
230
+ "mem-gcc-neg-studio-now"
231
+ ],
232
+ "forbiddenIds": [
233
+ "mem-gcc-neg-teach-old"
234
+ ],
235
+ "noAnswer": false,
236
+ "library": [
237
+ "mem-gcc-neg-studio-now",
238
+ "mem-gcc-neg-teach-old",
239
+ "mem-gcc-neg-spicy-now",
240
+ "mem-gcc-neg-cat-parents"
241
+ ]
242
+ }
243
+ ]
244
+ }
@@ -0,0 +1,189 @@
1
+ {
2
+ "name": "no-answer — 人工金标候选(待审核)",
3
+ "status": "gold-candidate-pending-review",
4
+ "draft": true,
5
+ "notGold": true,
6
+ "gold": false,
7
+ "review": "pending",
8
+ "subclass": "no-answer",
9
+ "notes": "候选样本,尚未经过人工逐条确认,不是 gold set。中文查询对不含对应事实的 library,正确结果是自动召回 top-3 为空。",
10
+ "entries": {
11
+ "mem-gcc-na-stone-house": {
12
+ "id": "mem-gcc-na-stone-house",
13
+ "title": "石榴旧宅",
14
+ "content": "老宅后院有一棵石榴树,树干被雷劈过一半,每年仍结果。",
15
+ "tags": [
16
+ "老宅",
17
+ "石榴"
18
+ ],
19
+ "ageDays": 72
20
+ },
21
+ "mem-gcc-na-herb-ledger": {
22
+ "id": "mem-gcc-na-herb-ledger",
23
+ "title": "药铺账本",
24
+ "content": "药铺的旧账本用蓝布包着,压在柜台最底层。",
25
+ "tags": [
26
+ "药铺",
27
+ "账本"
28
+ ],
29
+ "ageDays": 58
30
+ },
31
+ "mem-gcc-na-ferry": {
32
+ "id": "mem-gcc-na-ferry",
33
+ "title": "渡船班次",
34
+ "content": "渡船每天卯时和酉时各一班,船夫姓贺。",
35
+ "tags": [
36
+ "渡船",
37
+ "出行"
38
+ ],
39
+ "ageDays": 33
40
+ },
41
+ "mem-gcc-na-lantern": {
42
+ "id": "mem-gcc-na-lantern",
43
+ "title": "灯笼铺",
44
+ "content": "灯笼铺只做白纸灯笼,不接红喜事。",
45
+ "tags": [
46
+ "灯笼",
47
+ "铺子"
48
+ ],
49
+ "ageDays": 44
50
+ },
51
+ "mem-gcc-na-snow": {
52
+ "id": "mem-gcc-na-snow",
53
+ "title": "雪夜围炉",
54
+ "content": "雪夜围炉时,她总把红薯埋在炭灰里。",
55
+ "tags": [
56
+ "雪夜",
57
+ "红薯"
58
+ ],
59
+ "ageDays": 25
60
+ },
61
+ "mem-gcc-na-shrine": {
62
+ "id": "mem-gcc-na-shrine",
63
+ "title": "祠堂钥匙",
64
+ "content": "祠堂的铜钥匙挂在灶房梁上,用红绳系着。",
65
+ "tags": [
66
+ "祠堂",
67
+ "钥匙"
68
+ ],
69
+ "ageDays": 88
70
+ }
71
+ },
72
+ "samples": [
73
+ {
74
+ "id": "gcc-na-banquet",
75
+ "status": "gold-candidate-pending-review",
76
+ "draft": true,
77
+ "notGold": true,
78
+ "gold": false,
79
+ "review": "pending",
80
+ "subclass": "no-answer",
81
+ "query": "王爷寿宴摆了几桌酒",
82
+ "context": {},
83
+ "time": "2026-10-03T12:00:00+08:00",
84
+ "expectedIds": [],
85
+ "forbiddenIds": [
86
+ "mem-gcc-na-lantern"
87
+ ],
88
+ "noAnswer": true,
89
+ "library": [
90
+ "mem-gcc-na-stone-house",
91
+ "mem-gcc-na-herb-ledger",
92
+ "mem-gcc-na-ferry",
93
+ "mem-gcc-na-lantern"
94
+ ]
95
+ },
96
+ {
97
+ "id": "gcc-na-inn",
98
+ "status": "gold-candidate-pending-review",
99
+ "draft": true,
100
+ "notGold": true,
101
+ "gold": false,
102
+ "review": "pending",
103
+ "subclass": "no-answer",
104
+ "query": "皇帝私访住哪家客栈",
105
+ "context": {},
106
+ "time": "2026-10-04T12:00:00+08:00",
107
+ "expectedIds": [],
108
+ "forbiddenIds": [
109
+ "mem-gcc-na-shrine"
110
+ ],
111
+ "noAnswer": true,
112
+ "library": [
113
+ "mem-gcc-na-herb-ledger",
114
+ "mem-gcc-na-ferry",
115
+ "mem-gcc-na-snow",
116
+ "mem-gcc-na-shrine"
117
+ ]
118
+ },
119
+ {
120
+ "id": "gcc-na-caravan",
121
+ "status": "gold-candidate-pending-review",
122
+ "draft": true,
123
+ "notGold": true,
124
+ "gold": false,
125
+ "review": "pending",
126
+ "subclass": "no-answer",
127
+ "query": "胡商驼队几月抵京",
128
+ "context": {},
129
+ "time": "2026-10-05T12:00:00+08:00",
130
+ "expectedIds": [],
131
+ "forbiddenIds": [
132
+ "mem-gcc-na-snow"
133
+ ],
134
+ "noAnswer": true,
135
+ "library": [
136
+ "mem-gcc-na-ferry",
137
+ "mem-gcc-na-lantern",
138
+ "mem-gcc-na-snow",
139
+ "mem-gcc-na-shrine"
140
+ ]
141
+ },
142
+ {
143
+ "id": "gcc-na-battle-report",
144
+ "status": "gold-candidate-pending-review",
145
+ "draft": true,
146
+ "notGold": true,
147
+ "gold": false,
148
+ "review": "pending",
149
+ "subclass": "no-answer",
150
+ "query": "边关战报几日送达",
151
+ "context": {},
152
+ "time": "2026-10-06T12:00:00+08:00",
153
+ "expectedIds": [],
154
+ "forbiddenIds": [
155
+ "mem-gcc-na-stone-house"
156
+ ],
157
+ "noAnswer": true,
158
+ "library": [
159
+ "mem-gcc-na-lantern",
160
+ "mem-gcc-na-snow",
161
+ "mem-gcc-na-shrine",
162
+ "mem-gcc-na-stone-house"
163
+ ]
164
+ },
165
+ {
166
+ "id": "gcc-na-music",
167
+ "status": "gold-candidate-pending-review",
168
+ "draft": true,
169
+ "notGold": true,
170
+ "gold": false,
171
+ "review": "pending",
172
+ "subclass": "no-answer",
173
+ "query": "宫中宴席奏何曲子",
174
+ "context": {},
175
+ "time": "2026-10-07T12:00:00+08:00",
176
+ "expectedIds": [],
177
+ "forbiddenIds": [
178
+ "mem-gcc-na-herb-ledger"
179
+ ],
180
+ "noAnswer": true,
181
+ "library": [
182
+ "mem-gcc-na-snow",
183
+ "mem-gcc-na-shrine",
184
+ "mem-gcc-na-stone-house",
185
+ "mem-gcc-na-herb-ledger"
186
+ ]
187
+ }
188
+ ]
189
+ }
@@ -0,0 +1,245 @@
1
+ {
2
+ "name": "conflict — 人工金标候选(待审核)",
3
+ "status": "gold-candidate-pending-review",
4
+ "draft": true,
5
+ "notGold": true,
6
+ "gold": false,
7
+ "review": "pending",
8
+ "subclass": "conflict",
9
+ "notes": "候选样本,尚未经过人工逐条确认,不是 gold set。含 superseded 与 pending_review 干扰项。",
10
+ "entries": {
11
+ "mem-gcc-con-agent-now": {
12
+ "id": "mem-gcc-con-agent-now",
13
+ "title": "新经纪人周岚",
14
+ "content": "苏蔓现在的经纪人是周岚,合同签了三年,只接电影。",
15
+ "tags": [
16
+ "经纪人",
17
+ "工作"
18
+ ],
19
+ "ageDays": 14
20
+ },
21
+ "mem-gcc-con-agent-old": {
22
+ "id": "mem-gcc-con-agent-old",
23
+ "title": "前经纪人陈放",
24
+ "content": "苏蔓的前经纪人是陈放,两人去年冬天解约。",
25
+ "tags": [
26
+ "经纪人",
27
+ "旧事"
28
+ ],
29
+ "ageDays": 220,
30
+ "status": "superseded"
31
+ },
32
+ "mem-gcc-con-overseas-pending": {
33
+ "id": "mem-gcc-con-overseas-pending",
34
+ "title": "待核对:海外合约",
35
+ "content": "有传闻说苏蔓要签海外公司,这条尚未核实。",
36
+ "tags": [
37
+ "传闻",
38
+ "合约"
39
+ ],
40
+ "ageDays": 3,
41
+ "status": "pending_review"
42
+ },
43
+ "mem-gcc-con-wedding-now": {
44
+ "id": "mem-gcc-con-wedding-now",
45
+ "title": "婚礼改到四月",
46
+ "content": "两人把婚礼从十一月改到明年四月,地点在临海小教堂。",
47
+ "tags": [
48
+ "婚礼",
49
+ "计划"
50
+ ],
51
+ "ageDays": 8
52
+ },
53
+ "mem-gcc-con-wedding-old": {
54
+ "id": "mem-gcc-con-wedding-old",
55
+ "title": "原定十一月的婚礼",
56
+ "content": "原计划十一月办婚礼,后来因为场地问题取消。",
57
+ "tags": [
58
+ "婚礼",
59
+ "旧计划"
60
+ ],
61
+ "ageDays": 120,
62
+ "status": "superseded"
63
+ },
64
+ "mem-gcc-con-troupe-now": {
65
+ "id": "mem-gcc-con-troupe-now",
66
+ "title": "离开青岚剧团",
67
+ "content": "沈砚今年三月离开原剧团,自己组了工作室。",
68
+ "tags": [
69
+ "剧团",
70
+ "工作"
71
+ ],
72
+ "ageDays": 30
73
+ },
74
+ "mem-gcc-con-troupe-old": {
75
+ "id": "mem-gcc-con-troupe-old",
76
+ "title": "青岚剧团驻团",
77
+ "content": "沈砚曾是青岚剧团的驻团演员,每周三排练。",
78
+ "tags": [
79
+ "剧团",
80
+ "旧事"
81
+ ],
82
+ "ageDays": 380,
83
+ "status": "superseded"
84
+ },
85
+ "mem-gcc-con-apartment-pending": {
86
+ "id": "mem-gcc-con-apartment-pending",
87
+ "title": "待核对:河湾公寓",
88
+ "content": "中介说沈砚可能买下河湾公寓,尚未签约。",
89
+ "tags": [
90
+ "传闻",
91
+ "房子"
92
+ ],
93
+ "ageDays": 2,
94
+ "status": "pending_review"
95
+ },
96
+ "mem-gcc-con-apartment-now": {
97
+ "id": "mem-gcc-con-apartment-now",
98
+ "title": "仍住梧桐里",
99
+ "content": "沈砚目前仍住在梧桐里的旧公寓,没有签河湾的购房合同。",
100
+ "tags": [
101
+ "住址",
102
+ "现状"
103
+ ],
104
+ "ageDays": 6
105
+ },
106
+ "mem-gcc-con-overseas-denied": {
107
+ "id": "mem-gcc-con-overseas-denied",
108
+ "title": "否认海外签约",
109
+ "content": "苏蔓工作室否认了海外签约传闻,目前没有相关洽谈。",
110
+ "tags": [
111
+ "经纪人",
112
+ "澄清"
113
+ ],
114
+ "ageDays": 4
115
+ }
116
+ },
117
+ "samples": [
118
+ {
119
+ "id": "gcc-con-agent",
120
+ "status": "gold-candidate-pending-review",
121
+ "draft": true,
122
+ "notGold": true,
123
+ "gold": false,
124
+ "review": "pending",
125
+ "subclass": "conflict",
126
+ "query": "苏蔓现在的经纪人是谁?",
127
+ "context": {},
128
+ "time": "2026-10-04T12:00:00+08:00",
129
+ "expectedIds": [
130
+ "mem-gcc-con-agent-now"
131
+ ],
132
+ "forbiddenIds": [
133
+ "mem-gcc-con-agent-old",
134
+ "mem-gcc-con-overseas-pending"
135
+ ],
136
+ "noAnswer": false,
137
+ "library": [
138
+ "mem-gcc-con-agent-now",
139
+ "mem-gcc-con-agent-old",
140
+ "mem-gcc-con-overseas-pending",
141
+ "mem-gcc-con-overseas-denied"
142
+ ]
143
+ },
144
+ {
145
+ "id": "gcc-con-wedding",
146
+ "status": "gold-candidate-pending-review",
147
+ "draft": true,
148
+ "notGold": true,
149
+ "gold": false,
150
+ "review": "pending",
151
+ "subclass": "conflict",
152
+ "query": "婚礼最后定在什么时候?",
153
+ "context": {},
154
+ "time": "2026-10-05T12:00:00+08:00",
155
+ "expectedIds": [
156
+ "mem-gcc-con-wedding-now"
157
+ ],
158
+ "forbiddenIds": [
159
+ "mem-gcc-con-wedding-old"
160
+ ],
161
+ "noAnswer": false,
162
+ "library": [
163
+ "mem-gcc-con-wedding-now",
164
+ "mem-gcc-con-wedding-old",
165
+ "mem-gcc-con-overseas-pending",
166
+ "mem-gcc-con-agent-now"
167
+ ]
168
+ },
169
+ {
170
+ "id": "gcc-con-troupe",
171
+ "status": "gold-candidate-pending-review",
172
+ "draft": true,
173
+ "notGold": true,
174
+ "gold": false,
175
+ "review": "pending",
176
+ "subclass": "conflict",
177
+ "query": "沈砚还在青岚剧团吗?",
178
+ "context": {},
179
+ "time": "2026-10-06T12:00:00+08:00",
180
+ "expectedIds": [
181
+ "mem-gcc-con-troupe-now"
182
+ ],
183
+ "forbiddenIds": [
184
+ "mem-gcc-con-troupe-old"
185
+ ],
186
+ "noAnswer": false,
187
+ "library": [
188
+ "mem-gcc-con-troupe-now",
189
+ "mem-gcc-con-troupe-old",
190
+ "mem-gcc-con-apartment-pending",
191
+ "mem-gcc-con-agent-now"
192
+ ]
193
+ },
194
+ {
195
+ "id": "gcc-con-apartment",
196
+ "status": "gold-candidate-pending-review",
197
+ "draft": true,
198
+ "notGold": true,
199
+ "gold": false,
200
+ "review": "pending",
201
+ "subclass": "conflict",
202
+ "query": "沈砚真的买下河湾公寓了吗?",
203
+ "context": {},
204
+ "time": "2026-10-07T12:00:00+08:00",
205
+ "expectedIds": [
206
+ "mem-gcc-con-apartment-now"
207
+ ],
208
+ "forbiddenIds": [
209
+ "mem-gcc-con-apartment-pending"
210
+ ],
211
+ "noAnswer": false,
212
+ "library": [
213
+ "mem-gcc-con-apartment-now",
214
+ "mem-gcc-con-apartment-pending",
215
+ "mem-gcc-con-troupe-now",
216
+ "mem-gcc-con-agent-now"
217
+ ]
218
+ },
219
+ {
220
+ "id": "gcc-con-overseas",
221
+ "status": "gold-candidate-pending-review",
222
+ "draft": true,
223
+ "notGold": true,
224
+ "gold": false,
225
+ "review": "pending",
226
+ "subclass": "conflict",
227
+ "query": "苏蔓要签海外公司的事确认了吗?",
228
+ "context": {},
229
+ "time": "2026-10-08T12:00:00+08:00",
230
+ "expectedIds": [
231
+ "mem-gcc-con-overseas-denied"
232
+ ],
233
+ "forbiddenIds": [
234
+ "mem-gcc-con-overseas-pending"
235
+ ],
236
+ "noAnswer": false,
237
+ "library": [
238
+ "mem-gcc-con-overseas-denied",
239
+ "mem-gcc-con-overseas-pending",
240
+ "mem-gcc-con-agent-now",
241
+ "mem-gcc-con-wedding-now"
242
+ ]
243
+ }
244
+ ]
245
+ }