@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,175 @@
1
+ import { z } from 'zod';
2
+ import { hasUnretractedClauseEnd } from "../memory/clause-ending.js";
3
+ // Each branch fits the existing 400-unit sentence cap without truncation or borrowed allowance.
4
+ // eslint-disable-next-line no-control-regex -- Keep CR/LF/NUL visible to validation.
5
+ const completeSentence = /^[^\r\n\u0000]*[.!]$/u;
6
+ // Keep Unicode content mandatory locally; the provider rejects property escapes and lookaround.
7
+ const sentence = (max) => z
8
+ .string()
9
+ .min(1)
10
+ .max(max)
11
+ .regex(completeSentence)
12
+ .refine((value) => /[\p{L}\p{N}]/u.test(value));
13
+ export const clockRepairFields = {
14
+ proposition_and_nontemporal_scope: sentence(220),
15
+ source_clock_anchor_and_unknown_date: sentence(110),
16
+ unresolved_calendar_period: sentence(68),
17
+ };
18
+ export const excludedClockRepairFields = {
19
+ proposition_and_nontemporal_scope: sentence(195),
20
+ source_clock_anchor_and_unknown_date: sentence(90),
21
+ excluded_reference_clocks: sentence(60),
22
+ unresolved_calendar_period: sentence(52),
23
+ };
24
+ const fields = Object.keys(excludedClockRepairFields);
25
+ export function clockRepairText(value) {
26
+ return fields.flatMap((key) => (value[key] === undefined ? [] : [value[key]])).join(' ');
27
+ }
28
+ export function normalizeClockRepairTransaction(value) {
29
+ if (!value || typeof value !== 'object' || !('repairs' in value) || !Array.isArray(value.repairs))
30
+ return value;
31
+ return {
32
+ ...value,
33
+ repairs: value.repairs.map((entry) => {
34
+ if (!entry || typeof entry !== 'object')
35
+ return entry;
36
+ const record = { ...entry };
37
+ for (const key of fields)
38
+ if (typeof record[key] === 'string')
39
+ record[key] = record[key].replace(/^[ \t]+|[ \t]+$/gu, '').replace(/[ \t]+/gu, ' ');
40
+ return record;
41
+ }),
42
+ };
43
+ }
44
+ export function clockRepairLanguageProse(value) {
45
+ value = normalizeClockRepairTransaction(value);
46
+ if (!value || typeof value !== 'object' || !('repairs' in value) || !Array.isArray(value.repairs))
47
+ return [];
48
+ return value.repairs.flatMap((entry) => {
49
+ if (!entry || typeof entry !== 'object')
50
+ return [];
51
+ const record = entry;
52
+ return Object.keys(clockRepairFields).every((key) => typeof record[key] === 'string') &&
53
+ (record.excluded_reference_clocks === undefined || typeof record.excluded_reference_clocks === 'string')
54
+ ? [clockRepairText(record)]
55
+ : [];
56
+ });
57
+ }
58
+ /** Only a complete same-span source definition activates the narrow text repair. A draft, sibling
59
+ * or interpretation cannot supply one missing clock dimension. Unfamiliar syntax uses full repair. */
60
+ export function sourceClockRepairWitness(frame) {
61
+ const definitions = [];
62
+ for (const period of ['day', 'week', 'month', 'year'])
63
+ for (const [deictic, direction] of [
64
+ ['next', 'after'],
65
+ ['last', 'before'],
66
+ ]) {
67
+ const label = `${deictic}[ \\t]+${period}`;
68
+ definitions.push({
69
+ pattern: new RegExp(String.raw `^[ \t]*(?<unknown>(?:The[ \t]+)?original[ \t]+record['’]s[ \t]+date[ \t]+is[ \t]+unknown)\.[ \t]+(?<anchor>(?:“${label}”|"${label}"|${label})[ \t]+means[ \t]+the[ \t]+${period}[ \t]+${direction}[ \t]+this[ \t]+record)(?<excluded>,[ \t]+not[ \t]+${direction}[ \t]+processing)?\.[ \t]+(?<unresolved>The[ \t]+calendar[ \t]+${period}[ \t]+cannot[ \t]+be[ \t]+established)`, 'dgiu'),
70
+ clock: { deictic, period, direction },
71
+ });
72
+ }
73
+ for (const period of ['месяц', 'год'])
74
+ for (const [deictic, direction] of [
75
+ ['следующий', 'после'],
76
+ ['прошлый', 'до'],
77
+ ]) {
78
+ const label = `${deictic}[ \\t]+${period}`;
79
+ definitions.push({
80
+ pattern: new RegExp(String.raw `^[ \t]*(?<unknown>Дата[ \t]+первоначальной[ \t]+записи[ \t]+неизвестна)\.[ \t]+(?<anchor>(?:«${label}»|“${label}”|"${label}"|${label})[ \t]+означает[ \t]+${period}[ \t]+${direction}[ \t]+этой[ \t]+записи)(?<excluded>,[ \t]+а[ \t]+не[ \t]+${direction}[ \t]+обработки)?\.[ \t]+(?<unresolved>Какой[ \t]+это[ \t]+календарный[ \t]+${period},[ \t]+установить[ \t]+невозможно)`, 'dgiu'),
81
+ clock: {
82
+ deictic: deictic === 'следующий' ? 'next' : 'last',
83
+ period: period === 'месяц' ? 'month' : 'year',
84
+ direction: direction === 'после' ? 'after' : 'before',
85
+ },
86
+ });
87
+ }
88
+ const witnesses = frame.flatMap((span, frame_index) => definitions.flatMap(({ pattern, clock }) => [...span.quote.matchAll(pattern)].flatMap((match) => {
89
+ if (!hasUnretractedClauseEnd(span.quote, match.index + match[0].length))
90
+ return [];
91
+ // These coordinates certify a complete source definition, not a safe-looking substring.
92
+ // Unmatched framing, retraction or another clock would change which dimensions are owed.
93
+ if (match.index !== 0 || !/^[ \t]*[.!]?[ \t]*$/u.test(span.quote.slice(match[0].length)))
94
+ return [];
95
+ const dimensions = Object.entries(match.indices.groups).flatMap(([dimension, range]) => range
96
+ ? [{ dimension, start: range[0], end: range[1], exact_excerpt: span.quote.slice(...range) }]
97
+ : []);
98
+ return [
99
+ {
100
+ frame_index,
101
+ clock,
102
+ item_id: span.item_id ?? null,
103
+ with_exclusion: Boolean(match.groups.excluded),
104
+ dimensions,
105
+ },
106
+ ];
107
+ })));
108
+ // Duplicate proof spans may carry the same definition; distinct definitions are ambiguous.
109
+ const distinct = new Map(witnesses.map((witness) => [
110
+ JSON.stringify([
111
+ witness.item_id,
112
+ witness.dimensions.map(({ dimension, exact_excerpt }) => [dimension, exact_excerpt]),
113
+ ]),
114
+ witness,
115
+ ]));
116
+ return distinct.size === 1 ? [...distinct.values()][0] : null;
117
+ }
118
+ /** The same source-defined period must explicitly exclude processing as its reference.
119
+ * This is a readability floor; the original source verifier still owns temporal entailment. */
120
+ export function hasReadableProcessingClockExclusion(text, witness) {
121
+ if (!witness.with_exclusion)
122
+ return false;
123
+ const { deictic, period, direction } = witness.clock;
124
+ const englishLabel = String.raw `${deictic}[ \t]+${period}`;
125
+ const russianPeriod = {
126
+ day: { nominative: 'день', genitive: 'дня' },
127
+ week: { nominative: 'неделя', genitive: 'недели' },
128
+ month: { nominative: 'месяц', genitive: 'месяца' },
129
+ year: { nominative: 'год', genitive: 'года' },
130
+ }[period];
131
+ const russianAdjective = period === 'week'
132
+ ? {
133
+ nominative: deictic === 'next' ? 'следующая' : 'прошлая',
134
+ genitive: deictic === 'next' ? 'следующей' : 'прошлой',
135
+ }
136
+ : {
137
+ nominative: deictic === 'next' ? 'следующий' : 'прошлый',
138
+ genitive: deictic === 'next' ? 'следующего' : 'прошлого',
139
+ };
140
+ const russianLabel = String.raw `${russianAdjective.nominative}[ \t]+${russianPeriod.nominative}`;
141
+ const russianGenitive = String.raw `${russianAdjective.genitive}[ \t]+${russianPeriod.genitive}`;
142
+ const isolatedLabel = new RegExp(String.raw `^(?:${englishLabel}|${russianLabel}|${russianGenitive})$`, 'iu');
143
+ const unquoted = text.replace(/`[^`]*`|«[^»]*»|“[^”]*”|"[^"\n]*"|‘[^’]*’|(?<![\p{L}\p{N}])'[^'\n]*'(?![\p{L}\p{N}])/gu, (quote) => (isolatedLabel.test(quote.slice(1, -1)) ? quote.slice(1, -1) : '⟦quotation⟧'));
144
+ const sourceRecord = String.raw `(?:the[ \t]+)?(?:(?:original|undated|source)[ \t]+){0,2}(?:record|note)`;
145
+ const processing = String.raw `(?:the[ \t]+)?(?:time[ \t]+of[ \t]+processing|processing(?:[ \t]+time)?)`;
146
+ const patterns = [
147
+ String.raw `processing[ \t]+time[ \t]+is[ \t]+not[ \t]+the[ \t]+(?:reference|origin|reference[ \t]+point)[ \t]+for[ \t]+${englishLabel}`,
148
+ String.raw `${englishLabel}[ \t]+is[ \t]+not[ \t]+(?:counted|measured|reckoned)[ \t]+from[ \t]+${processing}`,
149
+ String.raw `${englishLabel}[ \t]+means[ \t]+the[ \t]+${period}[ \t]+${direction}[ \t]+${sourceRecord},[ \t]+not[ \t]+(?:${direction}[ \t]+)?${processing}`,
150
+ String.raw `${englishLabel}[ \t]+(?:refers[ \t]+to|is[ \t]+(?:counted|measured|reckoned)[ \t]+from)[ \t]+${sourceRecord},[ \t]+not[ \t]+${processing}`,
151
+ String.raw `${russianLabel}[ \t]+не[ \t]+отсчитывается[ \t]+от[ \t]+(?:времени[ \t]+)?обработки`,
152
+ String.raw `время[ \t]+обработки[ \t]+не[ \t]+зада[её]т[ \t]+отсч[её]т[ \t]+для[ \t]+${russianGenitive}`,
153
+ String.raw `${russianLabel}[ \t]+отсчитывается[ \t]+от[ \t]+(?:времени[ \t]+)?(?:(?:исходной|первоначальной|недатированной)[ \t]+){0,2}записи,[ \t]+а[ \t]+не[ \t]+от[ \t]+(?:времени[ \t]+)?обработки`,
154
+ ];
155
+ return patterns.some((body) => {
156
+ const pattern = new RegExp(String.raw `(?:^|[.;!])[ \t]*${body}`, 'giu');
157
+ return [...unquoted.matchAll(pattern)].some((match) => hasUnretractedClauseEnd(unquoted, match.index + match[0].length));
158
+ });
159
+ }
160
+ export const CLOCK_TEXT_REPAIR_CONTRACT = `For repair_contract.mode clock_text_only or clock_text_only_with_exclusion,
161
+ return only candidate_index and its required complete final-prose sentences. Preserve the actual proposition,
162
+ all named actors and separate nontemporal limits in proposition_and_nontemporal_scope. Explicitly state the
163
+ source-relative period/direction and unknown original source date in source_clock_anchor_and_unknown_date.
164
+ State that the calendar period cannot be established in unresolved_calendar_period. Only the exclusion arm
165
+ has excluded_reference_clocks: preserve the exact source-witnessed excluded processing clock; invent none.
166
+ Name clock_witness.clock's same deictic period in a closed reference exclusion, for example
167
+ "Processing time is not the reference for next month." A bare processing mention or chronology is not
168
+ a clock reference. Do not use an unresolved "the clock" pronoun in this field.
169
+ clock_witness lists exact candidate-owned source coordinates, not generated interpretation. Use the complete
170
+ original source too. Maximum UTF-16 lengths with exclusion are 195/90/60/52, with three joining spaces;
171
+ without exclusion they are 220/110/68, with two spaces. Every sentence must end in its own period or
172
+ exclamation mark, with no CR/LF/NUL, headings, examples or fragments. The model supplies every semantic byte;
173
+ all nontext fields are cloned unchanged. Omit the repair if these bounds cannot preserve the source. Full
174
+ local cleaning, language checking, original repair obligations and semantic verification still follow.`;
175
+ //# sourceMappingURL=retain-clock-repair.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retain-clock-repair.js","sourceRoot":"","sources":["../../src/write/retain-clock-repair.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,23 @@
1
- import { type ProvidedRetainCandidate, type RetainHoldReason, type RetainModelCallReceipt, type RetainSourceItem } from '@tenphi/akno-protocol';
1
+ import { type ProvidedRetainCandidate, type RetainHoldReason, type RetainModelCallReceipt, type RetainSourceItem, type DegradedReason } from '@tenphi/akno-protocol';
2
2
  import { z } from 'zod';
3
3
  import { type ModelClient, type ModelOutcome } from '../models/client.ts';
4
4
  import type { FolderCatalogEntry } from '../kb/folders.ts';
5
+ /**
6
+ * Retention extracts a complete semantic representation, not a flat fact. The same result is
7
+ * consumed by keyed `retain` and unkeyed `remember`; keeping the interpretation here prevents
8
+ * the two public operations from gradually learning different meanings for the same source.
9
+ */
10
+ export declare const RETAIN_PROMPT_VERSION = "retain-extraction-language-v57";
11
+ export declare const RETAIN_VERIFIER_VERSION = "retain-verifier-language-v41";
5
12
  /** All fields are required or nullable so constrained-decoding endpoints can keep strict mode. */
6
13
  export declare const RETAIN_SCHEMA: z.ZodObject<{
7
14
  candidates: z.ZodArray<z.ZodObject<{
8
- text: z.ZodString;
9
- subject: z.ZodString;
10
- page: z.ZodNullable<z.ZodString>;
11
15
  kind: z.ZodEnum<{
12
- question: "question";
13
16
  claim: "claim";
17
+ question: "question";
18
+ plan: "plan";
14
19
  decision: "decision";
15
20
  preference: "preference";
16
- plan: "plan";
17
21
  event: "event";
18
22
  }>;
19
23
  attribution: z.ZodObject<{
@@ -43,13 +47,13 @@ export declare const RETAIN_SCHEMA: z.ZodObject<{
43
47
  counterfactual: "counterfactual";
44
48
  }>;
45
49
  disposition: z.ZodEnum<{
50
+ completed: "completed";
51
+ rejected: "rejected";
46
52
  active: "active";
47
53
  proposed: "proposed";
48
54
  accepted: "accepted";
49
- rejected: "rejected";
50
55
  resolved: "resolved";
51
56
  cancelled: "cancelled";
52
- completed: "completed";
53
57
  superseded: "superseded";
54
58
  }>;
55
59
  }, z.core.$strip>;
@@ -103,10 +107,10 @@ export declare const RETAIN_SCHEMA: z.ZodObject<{
103
107
  due: "due";
104
108
  }>;
105
109
  status: z.ZodEnum<{
110
+ tentative: "tentative";
106
111
  scheduled: "scheduled";
107
112
  actual: "actual";
108
113
  planned: "planned";
109
- tentative: "tentative";
110
114
  }>;
111
115
  timezone: z.ZodNullable<z.ZodString>;
112
116
  mentioned_at: z.ZodNullable<z.ZodString>;
@@ -130,6 +134,9 @@ export declare const RETAIN_SCHEMA: z.ZodObject<{
130
134
  until: z.ZodNullable<z.ZodString>;
131
135
  }, z.core.$strip>>;
132
136
  }, z.core.$strip>>;
137
+ text: z.ZodString;
138
+ subject: z.ZodString;
139
+ page: z.ZodNullable<z.ZodString>;
133
140
  }, z.core.$strip>>;
134
141
  events: z.ZodArray<z.ZodObject<{
135
142
  date: z.ZodString;
@@ -144,6 +151,7 @@ export type RetainCandidate = ProvidedRetainCandidate & {
144
151
  evidence?: string;
145
152
  };
146
153
  export interface RetainHeldCandidate {
154
+ hold_stage?: 'validation' | 'verification';
147
155
  candidate_id: string;
148
156
  reason_code: RetainHoldReason;
149
157
  reason: string;
@@ -160,9 +168,10 @@ export interface RetainResult {
160
168
  reason_code: RetainHoldReason;
161
169
  reason: string;
162
170
  } | null;
163
- degradedReason: 'no_derive_model' | 'derive_failed' | 'retain_verification_failed' | null;
171
+ degradedReason: DegradedReason | null;
164
172
  modelUsage: {
165
173
  extraction: RetainModelCallReceipt | null;
174
+ repair?: RetainModelCallReceipt;
166
175
  verification: RetainModelCallReceipt | null;
167
176
  };
168
177
  }
@@ -175,6 +184,8 @@ export interface CandidateCleaningOptions {
175
184
  revision?: string;
176
185
  mentionedAt?: string;
177
186
  timezone?: string;
187
+ /** Internal automatic-extraction checks do not reinterpret exact caller-provided text. */
188
+ generated?: true;
178
189
  }
179
190
  export declare function runRetain(text: string, model: ModelClient, options?: {
180
191
  mission?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"retain.d.ts","sourceRoot":"","sources":["../../src/write/retain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retain.d.ts","sourceRoot":"","sources":["../../src/write/retain.ts"],"names":[],"mappings":"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"}