@tenphi/akno-core 0.12.0 → 0.13.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 (298) hide show
  1. package/config/default.jsonc +12 -2
  2. package/dist/bench/graph.d.ts +2 -0
  3. package/dist/bench/graph.d.ts.map +1 -1
  4. package/dist/bench/graph.js +4 -0
  5. package/dist/bench/graph.js.map +1 -1
  6. package/dist/bench/language-corpus-v10.d.ts +4 -0
  7. package/dist/bench/language-corpus-v10.d.ts.map +1 -0
  8. package/dist/bench/language-corpus-v10.js +569 -0
  9. package/dist/bench/language-corpus-v10.js.map +1 -0
  10. package/dist/bench/language-corpus-v11.d.ts +4 -0
  11. package/dist/bench/language-corpus-v11.d.ts.map +1 -0
  12. package/dist/bench/language-corpus-v11.js +594 -0
  13. package/dist/bench/language-corpus-v11.js.map +1 -0
  14. package/dist/bench/language-corpus-v12.d.ts +4 -0
  15. package/dist/bench/language-corpus-v12.d.ts.map +1 -0
  16. package/dist/bench/language-corpus-v12.js +584 -0
  17. package/dist/bench/language-corpus-v12.js.map +1 -0
  18. package/dist/bench/language-corpus-v13.d.ts +4 -0
  19. package/dist/bench/language-corpus-v13.d.ts.map +1 -0
  20. package/dist/bench/language-corpus-v13.js +584 -0
  21. package/dist/bench/language-corpus-v13.js.map +1 -0
  22. package/dist/bench/language-corpus-v14.d.ts +4 -0
  23. package/dist/bench/language-corpus-v14.d.ts.map +1 -0
  24. package/dist/bench/language-corpus-v14.js +584 -0
  25. package/dist/bench/language-corpus-v14.js.map +1 -0
  26. package/dist/bench/language-corpus-v15.d.ts +4 -0
  27. package/dist/bench/language-corpus-v15.d.ts.map +1 -0
  28. package/dist/bench/language-corpus-v15.js +305 -0
  29. package/dist/bench/language-corpus-v15.js.map +1 -0
  30. package/dist/bench/language-corpus-v16.d.ts +4 -0
  31. package/dist/bench/language-corpus-v16.d.ts.map +1 -0
  32. package/dist/bench/language-corpus-v16.js +305 -0
  33. package/dist/bench/language-corpus-v16.js.map +1 -0
  34. package/dist/bench/language-corpus-v17.d.ts +4 -0
  35. package/dist/bench/language-corpus-v17.d.ts.map +1 -0
  36. package/dist/bench/language-corpus-v17.js +305 -0
  37. package/dist/bench/language-corpus-v17.js.map +1 -0
  38. package/dist/bench/language-corpus-v18.d.ts +4 -0
  39. package/dist/bench/language-corpus-v18.d.ts.map +1 -0
  40. package/dist/bench/language-corpus-v18.js +305 -0
  41. package/dist/bench/language-corpus-v18.js.map +1 -0
  42. package/dist/bench/language-corpus-v19.d.ts +4 -0
  43. package/dist/bench/language-corpus-v19.d.ts.map +1 -0
  44. package/dist/bench/language-corpus-v19.js +310 -0
  45. package/dist/bench/language-corpus-v19.js.map +1 -0
  46. package/dist/bench/language-corpus-v2.d.ts +12 -0
  47. package/dist/bench/language-corpus-v2.d.ts.map +1 -0
  48. package/dist/bench/language-corpus-v2.js +146 -0
  49. package/dist/bench/language-corpus-v2.js.map +1 -0
  50. package/dist/bench/language-corpus-v20.d.ts +4 -0
  51. package/dist/bench/language-corpus-v20.d.ts.map +1 -0
  52. package/dist/bench/language-corpus-v20.js +310 -0
  53. package/dist/bench/language-corpus-v20.js.map +1 -0
  54. package/dist/bench/language-corpus-v21.d.ts +4 -0
  55. package/dist/bench/language-corpus-v21.d.ts.map +1 -0
  56. package/dist/bench/language-corpus-v21.js +310 -0
  57. package/dist/bench/language-corpus-v21.js.map +1 -0
  58. package/dist/bench/language-corpus-v22.d.ts +4 -0
  59. package/dist/bench/language-corpus-v22.d.ts.map +1 -0
  60. package/dist/bench/language-corpus-v22.js +330 -0
  61. package/dist/bench/language-corpus-v22.js.map +1 -0
  62. package/dist/bench/language-corpus-v3.d.ts +4 -0
  63. package/dist/bench/language-corpus-v3.d.ts.map +1 -0
  64. package/dist/bench/language-corpus-v3.js +184 -0
  65. package/dist/bench/language-corpus-v3.js.map +1 -0
  66. package/dist/bench/language-corpus-v4.d.ts +4 -0
  67. package/dist/bench/language-corpus-v4.d.ts.map +1 -0
  68. package/dist/bench/language-corpus-v4.js +111 -0
  69. package/dist/bench/language-corpus-v4.js.map +1 -0
  70. package/dist/bench/language-corpus-v5.d.ts +4 -0
  71. package/dist/bench/language-corpus-v5.d.ts.map +1 -0
  72. package/dist/bench/language-corpus-v5.js +111 -0
  73. package/dist/bench/language-corpus-v5.js.map +1 -0
  74. package/dist/bench/language-corpus-v6.d.ts +4 -0
  75. package/dist/bench/language-corpus-v6.d.ts.map +1 -0
  76. package/dist/bench/language-corpus-v6.js +111 -0
  77. package/dist/bench/language-corpus-v6.js.map +1 -0
  78. package/dist/bench/language-corpus-v7.d.ts +4 -0
  79. package/dist/bench/language-corpus-v7.d.ts.map +1 -0
  80. package/dist/bench/language-corpus-v7.js +150 -0
  81. package/dist/bench/language-corpus-v7.js.map +1 -0
  82. package/dist/bench/language-corpus-v8.d.ts +4 -0
  83. package/dist/bench/language-corpus-v8.d.ts.map +1 -0
  84. package/dist/bench/language-corpus-v8.js +150 -0
  85. package/dist/bench/language-corpus-v8.js.map +1 -0
  86. package/dist/bench/language-corpus-v9.d.ts +4 -0
  87. package/dist/bench/language-corpus-v9.d.ts.map +1 -0
  88. package/dist/bench/language-corpus-v9.js +150 -0
  89. package/dist/bench/language-corpus-v9.js.map +1 -0
  90. package/dist/bench/language-corpus.d.ts +20 -0
  91. package/dist/bench/language-corpus.d.ts.map +1 -0
  92. package/dist/bench/language-corpus.js +205 -0
  93. package/dist/bench/language-corpus.js.map +1 -0
  94. package/dist/bench/language-review.d.ts +260 -0
  95. package/dist/bench/language-review.d.ts.map +1 -0
  96. package/dist/bench/language-review.js +591 -0
  97. package/dist/bench/language-review.js.map +1 -0
  98. package/dist/bench/language.d.ts +371 -0
  99. package/dist/bench/language.d.ts.map +1 -0
  100. package/dist/bench/language.js +484 -0
  101. package/dist/bench/language.js.map +1 -0
  102. package/dist/config/load.js +5 -0
  103. package/dist/config/load.js.map +1 -1
  104. package/dist/config/schema.d.ts +3 -0
  105. package/dist/config/schema.d.ts.map +1 -1
  106. package/dist/config/schema.js +1 -0
  107. package/dist/config/schema.js.map +1 -1
  108. package/dist/index/derive.d.ts.map +1 -1
  109. package/dist/index/derive.js +14 -5
  110. package/dist/index/derive.js.map +1 -1
  111. package/dist/index/graph.d.ts.map +1 -1
  112. package/dist/index/graph.js +3 -0
  113. package/dist/index/graph.js.map +1 -1
  114. package/dist/index/indexer.d.ts.map +1 -1
  115. package/dist/index/indexer.js +6 -1
  116. package/dist/index/indexer.js.map +1 -1
  117. package/dist/ingest/extract.d.ts.map +1 -1
  118. package/dist/ingest/extract.js +3 -1
  119. package/dist/ingest/extract.js.map +1 -1
  120. package/dist/kb/line-facts.d.ts.map +1 -1
  121. package/dist/kb/line-facts.js +2 -0
  122. package/dist/kb/line-facts.js.map +1 -1
  123. package/dist/kb/managed-lines.d.ts.map +1 -1
  124. package/dist/kb/managed-lines.js +3 -2
  125. package/dist/kb/managed-lines.js.map +1 -1
  126. package/dist/kb/prose.d.ts +12 -0
  127. package/dist/kb/prose.d.ts.map +1 -0
  128. package/dist/kb/prose.js +213 -0
  129. package/dist/kb/prose.js.map +1 -0
  130. package/dist/maintenance/conflicts.d.ts +1 -1
  131. package/dist/maintenance/curate.d.ts +1 -0
  132. package/dist/maintenance/curate.d.ts.map +1 -1
  133. package/dist/maintenance/curate.js +28 -1
  134. package/dist/maintenance/curate.js.map +1 -1
  135. package/dist/maintenance/dream.d.ts.map +1 -1
  136. package/dist/maintenance/dream.js +6 -1
  137. package/dist/maintenance/dream.js.map +1 -1
  138. package/dist/maintenance/plans.d.ts.map +1 -1
  139. package/dist/maintenance/plans.js +2 -0
  140. package/dist/maintenance/plans.js.map +1 -1
  141. package/dist/maintenance/revision-language.d.ts +4 -0
  142. package/dist/maintenance/revision-language.d.ts.map +1 -0
  143. package/dist/maintenance/revision-language.js +50 -0
  144. package/dist/maintenance/revision-language.js.map +1 -0
  145. package/dist/memory/action-agency.d.ts +5 -0
  146. package/dist/memory/action-agency.d.ts.map +1 -0
  147. package/dist/memory/action-agency.js +76 -0
  148. package/dist/memory/action-agency.js.map +1 -0
  149. package/dist/memory/clause-ending.d.ts +4 -0
  150. package/dist/memory/clause-ending.d.ts.map +1 -0
  151. package/dist/memory/clause-ending.js +6 -0
  152. package/dist/memory/clause-ending.js.map +1 -0
  153. package/dist/memory/counterfactual-wording.d.ts +4 -0
  154. package/dist/memory/counterfactual-wording.d.ts.map +1 -0
  155. package/dist/memory/counterfactual-wording.js +101 -0
  156. package/dist/memory/counterfactual-wording.js.map +1 -0
  157. package/dist/memory/coverage-roles.d.ts +3 -0
  158. package/dist/memory/coverage-roles.d.ts.map +1 -0
  159. package/dist/memory/coverage-roles.js +28 -0
  160. package/dist/memory/coverage-roles.js.map +1 -0
  161. package/dist/memory/intent.d.ts +1 -0
  162. package/dist/memory/intent.d.ts.map +1 -1
  163. package/dist/memory/intent.js +52 -4
  164. package/dist/memory/intent.js.map +1 -1
  165. package/dist/memory/named-actor.d.ts +2 -0
  166. package/dist/memory/named-actor.d.ts.map +1 -0
  167. package/dist/memory/named-actor.js +9 -0
  168. package/dist/memory/named-actor.js.map +1 -0
  169. package/dist/memory/personal-negative-actions.d.ts +3 -0
  170. package/dist/memory/personal-negative-actions.d.ts.map +1 -0
  171. package/dist/memory/personal-negative-actions.js +67 -0
  172. package/dist/memory/personal-negative-actions.js.map +1 -0
  173. package/dist/memory/projection.d.ts.map +1 -1
  174. package/dist/memory/projection.js +10 -2
  175. package/dist/memory/projection.js.map +1 -1
  176. package/dist/memory/prose-projection.d.ts +6 -0
  177. package/dist/memory/prose-projection.d.ts.map +1 -0
  178. package/dist/memory/prose-projection.js +34 -0
  179. package/dist/memory/prose-projection.js.map +1 -0
  180. package/dist/memory/report-uncertainty.d.ts +3 -0
  181. package/dist/memory/report-uncertainty.d.ts.map +1 -0
  182. package/dist/memory/report-uncertainty.js +67 -0
  183. package/dist/memory/report-uncertainty.js.map +1 -0
  184. package/dist/memory/reporting-roles.d.ts +3 -0
  185. package/dist/memory/reporting-roles.d.ts.map +1 -0
  186. package/dist/memory/reporting-roles.js +39 -0
  187. package/dist/memory/reporting-roles.js.map +1 -0
  188. package/dist/memory/retention-source-frame.d.ts +8 -0
  189. package/dist/memory/retention-source-frame.d.ts.map +1 -0
  190. package/dist/memory/retention-source-frame.js +72 -0
  191. package/dist/memory/retention-source-frame.js.map +1 -0
  192. package/dist/models/client.d.ts +12 -3
  193. package/dist/models/client.d.ts.map +1 -1
  194. package/dist/models/client.js +142 -6
  195. package/dist/models/client.js.map +1 -1
  196. package/dist/models/language-audit.d.ts +78 -0
  197. package/dist/models/language-audit.d.ts.map +1 -0
  198. package/dist/models/language-audit.js +139 -0
  199. package/dist/models/language-audit.js.map +1 -0
  200. package/dist/models/language.d.ts +12 -0
  201. package/dist/models/language.d.ts.map +1 -0
  202. package/dist/models/language.js +106 -0
  203. package/dist/models/language.js.map +1 -0
  204. package/dist/models/semantic-verdict.d.ts +53 -0
  205. package/dist/models/semantic-verdict.d.ts.map +1 -0
  206. package/dist/models/semantic-verdict.js +190 -0
  207. package/dist/models/semantic-verdict.js.map +1 -0
  208. package/dist/ops/answer-record-rendering.d.ts +73 -0
  209. package/dist/ops/answer-record-rendering.d.ts.map +1 -0
  210. package/dist/ops/answer-record-rendering.js +149 -0
  211. package/dist/ops/answer-record-rendering.js.map +1 -0
  212. package/dist/ops/answer-source-audit.d.ts +354 -0
  213. package/dist/ops/answer-source-audit.d.ts.map +1 -0
  214. package/dist/ops/answer-source-audit.js +328 -0
  215. package/dist/ops/answer-source-audit.js.map +1 -0
  216. package/dist/ops/answer.d.ts +2 -2
  217. package/dist/ops/answer.d.ts.map +1 -1
  218. package/dist/ops/answer.js +1032 -114
  219. package/dist/ops/answer.js.map +1 -1
  220. package/dist/ops/context.d.ts.map +1 -1
  221. package/dist/ops/context.js +7 -0
  222. package/dist/ops/context.js.map +1 -1
  223. package/dist/ops/graph.d.ts.map +1 -1
  224. package/dist/ops/graph.js +35 -4
  225. package/dist/ops/graph.js.map +1 -1
  226. package/dist/ops/read.d.ts.map +1 -1
  227. package/dist/ops/read.js +5 -2
  228. package/dist/ops/read.js.map +1 -1
  229. package/dist/ops/recall.d.ts.map +1 -1
  230. package/dist/ops/recall.js +10 -0
  231. package/dist/ops/recall.js.map +1 -1
  232. package/dist/ops/remember.d.ts +2 -1
  233. package/dist/ops/remember.d.ts.map +1 -1
  234. package/dist/ops/remember.js +48 -33
  235. package/dist/ops/remember.js.map +1 -1
  236. package/dist/ops/retain.d.ts +3 -1
  237. package/dist/ops/retain.d.ts.map +1 -1
  238. package/dist/ops/retain.js +56 -44
  239. package/dist/ops/retain.js.map +1 -1
  240. package/dist/recall/assemble.d.ts +1 -0
  241. package/dist/recall/assemble.d.ts.map +1 -1
  242. package/dist/recall/assemble.js +19 -2
  243. package/dist/recall/assemble.js.map +1 -1
  244. package/dist/store/db.d.ts.map +1 -1
  245. package/dist/store/db.js +3 -1
  246. package/dist/store/db.js.map +1 -1
  247. package/dist/store/migrations.d.ts +2 -1
  248. package/dist/store/migrations.d.ts.map +1 -1
  249. package/dist/store/migrations.js +11 -1
  250. package/dist/store/migrations.js.map +1 -1
  251. package/dist/timeline/clock.d.ts.map +1 -1
  252. package/dist/timeline/clock.js +2 -0
  253. package/dist/timeline/clock.js.map +1 -1
  254. package/dist/timeline/eligibility.js +4 -4
  255. package/dist/timeline/eligibility.js.map +1 -1
  256. package/dist/timeline/source-clock.d.ts +5 -0
  257. package/dist/timeline/source-clock.d.ts.map +1 -0
  258. package/dist/timeline/source-clock.js +179 -0
  259. package/dist/timeline/source-clock.js.map +1 -0
  260. package/dist/write/fictional-case-identity.d.ts +10 -0
  261. package/dist/write/fictional-case-identity.d.ts.map +1 -0
  262. package/dist/write/fictional-case-identity.js +84 -0
  263. package/dist/write/fictional-case-identity.js.map +1 -0
  264. package/dist/write/managed-memory.js +1 -1
  265. package/dist/write/managed-memory.js.map +1 -1
  266. package/dist/write/retain-clock-repair.d.ts +48 -0
  267. package/dist/write/retain-clock-repair.d.ts.map +1 -0
  268. package/dist/write/retain-clock-repair.js +175 -0
  269. package/dist/write/retain-clock-repair.js.map +1 -0
  270. package/dist/write/retain.d.ts +21 -10
  271. package/dist/write/retain.d.ts.map +1 -1
  272. package/dist/write/retain.js +1220 -70
  273. package/dist/write/retain.js.map +1 -1
  274. package/dist/write/retained-relations.d.ts +7 -0
  275. package/dist/write/retained-relations.d.ts.map +1 -0
  276. package/dist/write/retained-relations.js +38 -0
  277. package/dist/write/retained-relations.js.map +1 -0
  278. package/dist/write/retained-spans.d.ts +5 -0
  279. package/dist/write/retained-spans.d.ts.map +1 -0
  280. package/dist/write/retained-spans.js +30 -0
  281. package/dist/write/retained-spans.js.map +1 -0
  282. package/dist/write/retained-time.d.ts +4 -0
  283. package/dist/write/retained-time.d.ts.map +1 -0
  284. package/dist/write/retained-time.js +10 -0
  285. package/dist/write/retained-time.js.map +1 -0
  286. package/dist/write/retention-frame-audit.d.ts +25 -0
  287. package/dist/write/retention-frame-audit.d.ts.map +1 -0
  288. package/dist/write/retention-frame-audit.js +43 -0
  289. package/dist/write/retention-frame-audit.js.map +1 -0
  290. package/dist/write/retention-negative-evidence.d.ts +222 -0
  291. package/dist/write/retention-negative-evidence.d.ts.map +1 -0
  292. package/dist/write/retention-negative-evidence.js +122 -0
  293. package/dist/write/retention-negative-evidence.js.map +1 -0
  294. package/dist/write/retention-report-limits.d.ts +65 -0
  295. package/dist/write/retention-report-limits.d.ts.map +1 -0
  296. package/dist/write/retention-report-limits.js +71 -0
  297. package/dist/write/retention-report-limits.js.map +1 -0
  298. package/package.json +2 -2
@@ -0,0 +1,484 @@
1
+ import fs from 'node:fs';
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+ import { RETAIN_PROMPT_VERSION, RETAIN_VERIFIER_VERSION } from "../write/retain.js";
5
+ import { open } from "../open.js";
6
+ import { sha256 } from "../store/ids.js";
7
+ import { PROSE_PROJECTION_VERSION } from "../kb/prose.js";
8
+ import { ANSWER_PROMPT_VERSION, ANSWER_VERIFIER_PROMPT_VERSION } from "../ops/answer.js";
9
+ import { LANGUAGE_CORPUS_V2 } from "./language-corpus-v2.js";
10
+ import { LANGUAGE_CORPUS_V3 } from "./language-corpus-v3.js";
11
+ import { LANGUAGE_CORPUS_V7 } from "./language-corpus-v7.js";
12
+ import { LANGUAGE_CORPUS_V8 } from "./language-corpus-v8.js";
13
+ import { LANGUAGE_CORPUS_V9 } from "./language-corpus-v9.js";
14
+ import { LANGUAGE_CORPUS_V10 } from "./language-corpus-v10.js";
15
+ import { LANGUAGE_CORPUS_V11 } from "./language-corpus-v11.js";
16
+ import { LANGUAGE_CORPUS_V12 } from "./language-corpus-v12.js";
17
+ import { LANGUAGE_CORPUS_V13 } from "./language-corpus-v13.js";
18
+ import { LANGUAGE_CORPUS_V14 } from "./language-corpus-v14.js";
19
+ import { LANGUAGE_CORPUS_V15 } from "./language-corpus-v15.js";
20
+ import { LANGUAGE_CORPUS_V16 } from "./language-corpus-v16.js";
21
+ import { LANGUAGE_CORPUS_V17 } from "./language-corpus-v17.js";
22
+ import { LANGUAGE_CORPUS_V18 } from "./language-corpus-v18.js";
23
+ import { LANGUAGE_CORPUS_V19 } from "./language-corpus-v19.js";
24
+ import { LANGUAGE_CORPUS_V20 } from "./language-corpus-v20.js";
25
+ import { LANGUAGE_CORPUS_V21 } from "./language-corpus-v21.js";
26
+ import { LANGUAGE_CORPUS_V22 } from "./language-corpus-v22.js";
27
+ import { LANGUAGE_CORPUS_V6 } from "./language-corpus-v6.js";
28
+ import { LANGUAGE_CORPUS_V5 } from "./language-corpus-v5.js";
29
+ import { LANGUAGE_CORPUS_V4 } from "./language-corpus-v4.js";
30
+ import { languageGateThresholds } from "./language-review.js";
31
+ import { MEMORY_VIEW_VERSION } from "../memory/intent.js";
32
+ import { LANGUAGE_CORPUS, LANGUAGE_CORPUS_VERSION } from "./language-corpus.js";
33
+ /** Runs only invented inputs. Provider permissions/settings come from the caller's configured roles. */
34
+ export async function runLanguageBench(config, options) {
35
+ const corpus = options.corpus ?? 'v2';
36
+ const runs = options.runs ?? 1;
37
+ if (!Number.isInteger(runs) || runs < 1 || runs > 5)
38
+ throw new Error('runs must be between 1 and 5');
39
+ const entries = corpus === 'v1'
40
+ ? LANGUAGE_CORPUS
41
+ : corpus === 'v2'
42
+ ? LANGUAGE_CORPUS_V2
43
+ : corpus === 'v3'
44
+ ? LANGUAGE_CORPUS_V3
45
+ : corpus === 'v4'
46
+ ? LANGUAGE_CORPUS_V4
47
+ : corpus === 'v5'
48
+ ? LANGUAGE_CORPUS_V5
49
+ : corpus === 'v6'
50
+ ? LANGUAGE_CORPUS_V6
51
+ : corpus === 'v7'
52
+ ? LANGUAGE_CORPUS_V7
53
+ : corpus === 'v8'
54
+ ? LANGUAGE_CORPUS_V8
55
+ : corpus === 'v9'
56
+ ? LANGUAGE_CORPUS_V9
57
+ : corpus === 'v10'
58
+ ? LANGUAGE_CORPUS_V10
59
+ : corpus === 'v11'
60
+ ? LANGUAGE_CORPUS_V11
61
+ : corpus === 'v12'
62
+ ? LANGUAGE_CORPUS_V12
63
+ : corpus === 'v13'
64
+ ? LANGUAGE_CORPUS_V13
65
+ : corpus === 'v14'
66
+ ? LANGUAGE_CORPUS_V14
67
+ : corpus === 'v15'
68
+ ? LANGUAGE_CORPUS_V15
69
+ : corpus === 'v16'
70
+ ? LANGUAGE_CORPUS_V16
71
+ : corpus === 'v17'
72
+ ? LANGUAGE_CORPUS_V17
73
+ : corpus === 'v18'
74
+ ? LANGUAGE_CORPUS_V18
75
+ : corpus === 'v19'
76
+ ? LANGUAGE_CORPUS_V19
77
+ : corpus === 'v20'
78
+ ? LANGUAGE_CORPUS_V20
79
+ : corpus === 'v21'
80
+ ? LANGUAGE_CORPUS_V21
81
+ : LANGUAGE_CORPUS_V22;
82
+ const split = entries.filter((entry) => entry.split === options.split);
83
+ if (options.caseIds?.some((id) => !split.some((entry) => entry.id === id)))
84
+ throw new Error('unknown case id in selected split');
85
+ const cases = split.filter((entry) => !options.caseIds || options.caseIds.includes(entry.id));
86
+ if (!cases.length)
87
+ throw new Error('no cases selected');
88
+ const results = [];
89
+ for (let run = 1; run <= runs; run++)
90
+ for (const entry of cases) {
91
+ results.push(await runCase(config, entry, corpus, run));
92
+ options.onProgress?.(`${entry.id} run ${run}`, results.length, cases.length * runs);
93
+ }
94
+ const available = results.filter((result) => !result.retentionAvailabilityFailure);
95
+ const useful = available.filter((result) => !result.expectedHold);
96
+ const written = useful.filter((result) => result.retainedItems > 0);
97
+ const rate = (numerator, denominator) => ({
98
+ numerator,
99
+ denominator,
100
+ rate: denominator ? numerator / denominator : null,
101
+ });
102
+ return {
103
+ schemaVersion: 'language-benchmark-v2',
104
+ createdAt: new Date().toISOString(),
105
+ corpusVersion: corpus === 'v1' ? LANGUAGE_CORPUS_VERSION : `language-discourse-${corpus}`,
106
+ corpusFingerprint: sha256(JSON.stringify(entries)),
107
+ selectedCaseIds: cases.map((entry) => entry.id),
108
+ runs,
109
+ setup: corpus === 'v1'
110
+ ? 'legacy-read-only-source-before-retain'
111
+ : 'separate-writable-fidelity-and-read-only-admission',
112
+ queryMatrix: ['query_language', 'answer_language', 'explicit_view'],
113
+ split: options.split,
114
+ knowledgeLanguage: 'en',
115
+ proseProjectionVersion: PROSE_PROJECTION_VERSION,
116
+ memoryViewVersion: MEMORY_VIEW_VERSION,
117
+ answerPromptVersion: ANSWER_PROMPT_VERSION,
118
+ answerVerifierVersion: ANSWER_VERIFIER_PROMPT_VERSION,
119
+ retentionPromptVersion: RETAIN_PROMPT_VERSION,
120
+ retentionVerifierVersion: RETAIN_VERIFIER_VERSION,
121
+ models: {
122
+ retention: config.models.derive.id,
123
+ answer: config.models.answer.id,
124
+ embedding: config.models.embedding.id,
125
+ expansion: config.models.expansion.id,
126
+ },
127
+ modelOutputTokenLimits: {
128
+ answer: config.models.answer.maxOutputTokens ?? null,
129
+ retention: config.models.derive.maxOutputTokens ?? null,
130
+ },
131
+ indexModelDerivation: false,
132
+ independentlyReviewed: false,
133
+ releaseEligible: false,
134
+ adjudication: 'pending: inspect review material; verifier agreement and typed expectations are not independent truth labels',
135
+ thresholds: languageGateThresholds(`language-discourse-${corpus}`),
136
+ metrics: {
137
+ availabilityFailures: rate(results.filter((result) => result.availabilityFailure).length, results.length),
138
+ answerOperationFailures: rate(results
139
+ .flatMap((result) => result.queries)
140
+ .filter((query) => [
141
+ 'generation_unavailable',
142
+ 'generation_failed',
143
+ 'invalid_draft',
144
+ 'verification_unavailable',
145
+ ].includes(query.answerReason ?? '')).length, results.flatMap((result) => result.queries).length),
146
+ producedAnswers: rate(results.flatMap((result) => result.queries).filter((query) => query.reviewAnswer !== null).length, results.flatMap((result) => result.queries).length),
147
+ producedAnswersOverRetained: rate(written.flatMap((result) => result.queries).filter((query) => query.reviewAnswer !== null).length, written.flatMap((result) => result.queries).length),
148
+ answerReasons: counts(results.flatMap((result) => result.queries).map((query) => query.answerReason)),
149
+ routingReasons: counts(results.flatMap((result) => result.retention?.candidates?.map((candidate) => candidate.routingReason) ?? [])),
150
+ holdStages: counts(results.flatMap((result) => result.retention?.candidates?.map((candidate) => candidate.holdStage) ?? [])),
151
+ independentlyJudgedQualifiedAnswers: { numerator: null, denominator: 0, rate: null },
152
+ independentlyJustifiedAbstentions: { numerator: null, denominator: 0, rate: null },
153
+ languagePolicyRejections: rate(results.filter((result) => result.languageRejected).length, results.length),
154
+ acceptedLanguageViolations: { numerator: null, denominator: 0, rate: null },
155
+ translationQualificationErrors: { numerator: null, denominator: 0, rate: null },
156
+ unsafeFactualPromotion: { numerator: null, denominator: 0, rate: null },
157
+ noncanonicalEligibilityFlags: rate(available.filter((result) => result.noncanonicalEligibilityFlag).length, available.filter((result) => result.nonfactualExpected).length),
158
+ usefulRetentionCoverage: rate(written.length, useful.length),
159
+ expectedRetentionMisses: rate(useful.filter((result) => result.retainedItems === 0).length, useful.length),
160
+ falseHolds: corpus === 'v1'
161
+ ? rate(useful.filter((result) => result.retainedItems === 0).length, useful.length)
162
+ : { numerator: null, denominator: 0, rate: null },
163
+ expectedSafeHolds: rate(available.filter((result) => result.expectedHold && result.retainedItems === 0).length, available.filter((result) => result.expectedHold).length),
164
+ typedSemanticsMatch: rate(written.filter((result) => result.semanticsMatch).length, written.length),
165
+ qualifiedRetrievalCoverage: rate(written.filter((result) => result.queries.some((query) => query.retainedEvidence > 0)).length, written.length),
166
+ ordinaryProseQualification: rate(results.filter((result) => result.ordinaryCorrect).length, results.length),
167
+ sourceByteChanges: rate(results.filter((result) => result.bytesStable === false).length, results.filter((result) => result.bytesStable !== null).length),
168
+ },
169
+ byLanguage: Object.fromEntries(['en', 'ru', 'mixed'].map((language) => [
170
+ language,
171
+ results.filter((result) => result.language === language).length,
172
+ ])),
173
+ byScenario: counts(results.map((result) => result.scenario)),
174
+ cases: results,
175
+ };
176
+ }
177
+ async function runCase(config, entry, corpus, run) {
178
+ const v2 = corpus !== 'v1' ? entry : null;
179
+ const root = fs.mkdtempSync(path.join(os.tmpdir(), 'akno-language-eval-kb-'));
180
+ const state = fs.mkdtempSync(path.join(os.tmpdir(), 'akno-language-eval-state-'));
181
+ let memory = null;
182
+ const ordinary = `# Zephyr QX-100\n\n${entry.ordinary}\n`;
183
+ fs.mkdirSync(path.join(root, 'memory'));
184
+ fs.mkdirSync(path.join(root, 'authored'));
185
+ fs.writeFileSync(path.join(root, 'memory/equipment.md'), '# Zephyr QX-100\n');
186
+ if (!v2)
187
+ fs.writeFileSync(path.join(root, 'authored/passage.md'), ordinary);
188
+ const nonfactualExpected = entry.view !== 'factual';
189
+ const base = {
190
+ id: entry.id,
191
+ run,
192
+ admission: v2?.admission ?? 'legacy-mixed',
193
+ reviewExpectation: v2?.reviewExpectation ?? null,
194
+ language: entry.language,
195
+ scenario: entry.scenario,
196
+ expectedHold: entry.hold ?? false,
197
+ nonfactualExpected,
198
+ };
199
+ try {
200
+ const { env, overrides } = benchConfig(config);
201
+ if (v2?.admission === 'read-only')
202
+ overrides.folders = { '**': { role: 'knowledge', remember: 'deny' } };
203
+ memory = await open({ aknoPath: root, stateDir: state, isolated: true, actor: 'user', env, overrides });
204
+ await memory.index({});
205
+ const input = {
206
+ sources: [
207
+ {
208
+ source_id: `invented:${entry.id}`,
209
+ revision: 'rev-1111',
210
+ input: { items: entry.items },
211
+ retention: {
212
+ mode: 'extract',
213
+ mission: 'Retain durable knowledge about Zephyr QX-100 in the existing memory folder, preserving all original qualifications.',
214
+ },
215
+ },
216
+ ],
217
+ };
218
+ const beforeRetention = snapshot(root);
219
+ const retained = await memory.retain(input);
220
+ const admissionBytesStable = v2?.admission !== 'read-only' || beforeRetention === snapshot(root);
221
+ const slugs = [
222
+ ...new Set(retained.sources.flatMap((source) => source.candidates.flatMap((candidate) => (candidate.slug ? [candidate.slug] : [])))),
223
+ ];
224
+ // Ordinary authored text must not compete for placement in the writable-fidelity experiment.
225
+ if (v2)
226
+ fs.writeFileSync(path.join(root, 'authored/passage.md'), ordinary);
227
+ const beforeRebuild = snapshot(root);
228
+ await memory.close();
229
+ memory = await open({ aknoPath: root, stateDir: state, isolated: true, actor: 'user', env, overrides });
230
+ await memory.index({ rebuild: true });
231
+ const replay = await memory.retain(input);
232
+ const lines = [];
233
+ for (const slug of slugs)
234
+ lines.push(...((await memory.read({ slug })).page?.lines ?? []));
235
+ const memories = lines.flatMap((line) => line.memory?.status === 'qualified' ? [{ text: line.text, qualification: line.memory }] : []);
236
+ const queries = [];
237
+ for (const queryLanguage of ['en', 'ru']) {
238
+ const query = v2?.queries[queryLanguage] ?? queryFor(entry.view, queryLanguage);
239
+ for (const explicit of [false, true]) {
240
+ const view = explicit ? { memory_view: entry.view } : {};
241
+ const recalled = await memory.recall({
242
+ query,
243
+ filter: { folder: 'memory' },
244
+ expand: true,
245
+ rerank: false,
246
+ graph: false,
247
+ ...view,
248
+ });
249
+ const context = await memory.context({
250
+ profile: 'auto_recall',
251
+ query,
252
+ filter: { folder: 'memory' },
253
+ ...view,
254
+ });
255
+ for (const answerLanguage of ['en', 'ru']) {
256
+ const answer = await memory.answer({
257
+ question: query,
258
+ answer_language: answerLanguage,
259
+ filter: { folder: 'memory' },
260
+ expand: true,
261
+ graph: false,
262
+ include_context: true,
263
+ ...view,
264
+ });
265
+ queries.push({
266
+ queryLanguage,
267
+ explicitView: explicit,
268
+ requestedAnswerLanguage: answerLanguage,
269
+ inferredView: recalled.memory_view,
270
+ recallStatus: recalled.status,
271
+ recallDegraded: recalled.degraded ?? [],
272
+ retainedEvidence: recalled.results.flatMap((result) => result.type === 'page'
273
+ ? result.lines.filter((line) => line.memory?.status === 'qualified')
274
+ : []).length,
275
+ reviewRetrieval: recalled.results.flatMap((result) => result.type === 'page'
276
+ ? result.lines.flatMap((line) => line.memory?.status === 'qualified'
277
+ ? [{ text: line.text, qualification: line.memory }]
278
+ : [])
279
+ : []),
280
+ contextStatus: context.status,
281
+ contextDegraded: context.degraded ?? [],
282
+ contextActivated: context.activation?.activated ?? false,
283
+ contextActivation: context.activation ?? null,
284
+ answerOutcome: answer.outcome,
285
+ answerReason: answer.reason_code ?? null,
286
+ answerValidation: answer.validation ?? null,
287
+ answerDegraded: answer.degraded ?? [],
288
+ answerModelUsage: answer.model_usage,
289
+ reviewAnswer: answer.answer,
290
+ });
291
+ }
292
+ }
293
+ }
294
+ const ordinaryRead = await memory.read({ slug: 'authored/passage' });
295
+ const q = (ordinaryRead.page?.lines ?? []).flatMap((line) => line.prose &&
296
+ !['heading', 'comment'].includes(line.prose.reason) &&
297
+ !/^\s*(?:`{3,}|~{3,})/.test(line.text)
298
+ ? [line.prose]
299
+ : []);
300
+ const ordinaryInspection = await memory.recall({
301
+ query: 'Zephyr QX-100',
302
+ filter: { folder: 'authored' },
303
+ memory_view: 'all',
304
+ expand: false,
305
+ rerank: false,
306
+ graph: false,
307
+ });
308
+ const source = retained.sources[0];
309
+ const reasons = [
310
+ ...(retained.degraded ?? []),
311
+ ...queries.flatMap((query) => [
312
+ ...query.recallDegraded,
313
+ ...query.contextDegraded,
314
+ ...query.answerDegraded,
315
+ ]),
316
+ ];
317
+ return {
318
+ ...base,
319
+ retentionAvailabilityFailure: retained.status === 'unavailable' ||
320
+ (retained.degraded ?? []).some((reason) => [
321
+ 'no_derive_model',
322
+ 'derive_failed',
323
+ 'retain_verification_failed',
324
+ 'language_check_failed',
325
+ ].includes(reason)),
326
+ availabilityFailure: retained.status === 'unavailable' ||
327
+ reasons.some((reason) => [
328
+ 'no_derive_model',
329
+ 'derive_failed',
330
+ 'retain_verification_failed',
331
+ 'language_check_failed',
332
+ 'no_answer_model',
333
+ 'answer_failed',
334
+ 'answer_verification_failed',
335
+ 'expansion_failed',
336
+ 'embedding_failed',
337
+ 'no_embedding_model',
338
+ ].includes(reason)),
339
+ languageRejected: reasons.includes('language_mismatch'),
340
+ retention: {
341
+ status: retained.status,
342
+ outcome: source?.outcome,
343
+ reason: source?.reason_code ?? null,
344
+ candidates: source?.candidates.map((candidate) => ({
345
+ outcome: candidate.outcome,
346
+ reason: candidate.reason_code ?? null,
347
+ holdStage: candidate.hold_stage ?? null,
348
+ routingReason: candidate.routing_reason ?? null,
349
+ })),
350
+ usage: source?.model_usage ?? null,
351
+ degraded: retained.degraded ?? [],
352
+ },
353
+ retainedItems: memories.length,
354
+ noncanonicalEligibilityFlag: nonfactualExpected && memories.some((item) => item.qualification.answer_eligible),
355
+ semanticsMatch: memories.length > 0 && memories.some((item) => matchesExpectation(item.qualification, entry)),
356
+ ordinaryCorrect: q.length > 0 && q.every((qualification) => qualification.answer_eligible === entry.ordinaryFactual),
357
+ ordinaryInspection: { status: ordinaryInspection.status, results: ordinaryInspection.results.length },
358
+ bytesStable: admissionBytesStable &&
359
+ beforeRebuild === snapshot(root) &&
360
+ fs.readFileSync(path.join(root, 'authored/passage.md'), 'utf8') === ordinary,
361
+ replayOutcome: replay.sources[0]?.outcome,
362
+ queries,
363
+ reviewKnowledge: memories,
364
+ error: null,
365
+ };
366
+ }
367
+ catch {
368
+ return {
369
+ ...base,
370
+ retentionAvailabilityFailure: true,
371
+ availabilityFailure: true,
372
+ languageRejected: false,
373
+ retention: null,
374
+ retainedItems: 0,
375
+ noncanonicalEligibilityFlag: false,
376
+ semanticsMatch: false,
377
+ ordinaryCorrect: false,
378
+ bytesStable: null,
379
+ replayOutcome: null,
380
+ queries: [],
381
+ reviewKnowledge: [],
382
+ error: 'evaluation_operation_failed',
383
+ };
384
+ }
385
+ finally {
386
+ await memory?.close();
387
+ fs.rmSync(root, { recursive: true, force: true });
388
+ fs.rmSync(state, { recursive: true, force: true });
389
+ }
390
+ }
391
+ function counts(values) {
392
+ const result = {};
393
+ for (const value of values)
394
+ if (value)
395
+ result[value] = (result[value] ?? 0) + 1;
396
+ return result;
397
+ }
398
+ function matchesExpectation(memory, entry) {
399
+ return ((!entry.commitment || memory.commitment === entry.commitment) &&
400
+ (!entry.disposition || memory.disposition === entry.disposition) &&
401
+ (!entry.basis || memory.basis === entry.basis) &&
402
+ (!entry.polarity || memory.polarity === entry.polarity));
403
+ }
404
+ function queryFor(view, language) {
405
+ const english = {
406
+ factual: 'What is recorded about Zephyr QX-100?',
407
+ reports: 'What was reported about Zephyr QX-100?',
408
+ discussion: 'What hypothetical scenarios were discussed for Zephyr QX-100?',
409
+ planning: 'What is planned for Zephyr QX-100?',
410
+ history: 'What was rejected or changed for Zephyr QX-100?',
411
+ questions: 'What open questions remain about Zephyr QX-100?',
412
+ all: 'Zephyr QX-100',
413
+ };
414
+ const russian = {
415
+ factual: 'Что известно о Zephyr QX-100?',
416
+ reports: 'Что сообщили по словам Ada Marlow о Zephyr QX-100?',
417
+ discussion: 'Какие гипотезы обсуждались о Zephyr QX-100?',
418
+ planning: 'Какие планы связаны с Zephyr QX-100?',
419
+ history: 'Какие решения отклонены о Zephyr QX-100?',
420
+ questions: 'Какие открытые вопросы остались о Zephyr QX-100?',
421
+ all: 'Zephyr QX-100',
422
+ };
423
+ return (language === 'en' ? english : russian)[view];
424
+ }
425
+ function snapshot(root) {
426
+ return sha256(fs.readdirSync(root, { recursive: true })
427
+ .filter((file) => file.endsWith('.md'))
428
+ .sort()
429
+ .map((file) => file + '\0' + fs.readFileSync(path.join(root, file), 'utf8'))
430
+ .join('\0'));
431
+ }
432
+ function benchConfig(config) {
433
+ const env = { ...process.env };
434
+ const providers = Object.fromEntries(Object.entries(config.providers).map(([name, provider], index) => {
435
+ const secret = `AKNO_LANGUAGE_BENCH_${index}_KEY`;
436
+ if (provider.apiKey)
437
+ env[secret] = provider.apiKey;
438
+ return [
439
+ name,
440
+ {
441
+ base_url: provider.baseUrl,
442
+ api: provider.api,
443
+ api_key: provider.apiKey ? { env: secret } : null,
444
+ headers: provider.headers,
445
+ max_retries: provider.maxRetries,
446
+ },
447
+ ];
448
+ }));
449
+ const role = (name) => {
450
+ const model = config.models[name];
451
+ return {
452
+ provider: model.provider?.name,
453
+ id: model.id,
454
+ enabled: model.enabled,
455
+ timeout_ms: model.timeoutMs,
456
+ max_output_tokens: model.maxOutputTokens,
457
+ reasoning_effort: model.reasoningEffort,
458
+ dimensions: model.dimensions,
459
+ };
460
+ };
461
+ return {
462
+ env,
463
+ overrides: {
464
+ providers,
465
+ knowledge_language: 'en',
466
+ write_ids: false,
467
+ create_reserved_paths: false,
468
+ index: { summaries: false, facts: false },
469
+ folders: {
470
+ 'memory/**': { role: 'knowledge', remember: 'integrate' },
471
+ 'authored/**': { role: 'knowledge', remember: 'deny' },
472
+ },
473
+ models: {
474
+ derive: role('derive'),
475
+ answer: role('answer'),
476
+ embedding: role('embedding'),
477
+ expansion: role('expansion'),
478
+ reranker: { id: null, enabled: false },
479
+ vision: { id: null, enabled: false },
480
+ },
481
+ },
482
+ };
483
+ }
484
+ //# sourceMappingURL=language.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language.js","sourceRoot":"","sources":["../../src/bench/language.ts"],"names":[],"mappings":"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"}
@@ -452,6 +452,7 @@ function resolve(doc, sources, ruleLayers, env, platformPaths) {
452
452
  if (kbRules)
453
453
  sources.push(kbRulesPath);
454
454
  const config = {
455
+ knowledgeLanguage: doc.knowledge_language ?? null,
455
456
  aknoPath,
456
457
  stateDir,
457
458
  dbPath: path.join(stateDir, 'akno.db'),
@@ -636,6 +637,10 @@ function resolve(doc, sources, ruleLayers, env, platformPaths) {
636
637
  sources,
637
638
  };
638
639
  applyCachedProviderApiResolutions(config);
640
+ for (const role of [...Object.values(config.models), config.maintenance.model]) {
641
+ if (role)
642
+ role.knowledgeLanguage = config.knowledgeLanguage;
643
+ }
639
644
  return config;
640
645
  }
641
646
  //# sourceMappingURL=load.js.map