@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,328 @@
1
+ import { z } from 'zod';
2
+ import { sha256 } from "../store/ids.js";
3
+ const reading = z.object({
4
+ selected_meaning: z.string().trim().min(1).max(320),
5
+ clarification_or_ambiguity: z.string().trim().min(1).max(240).nullable(),
6
+ });
7
+ /** Force original interpretation before drafting, without reusing it as verification evidence. */
8
+ export function answerReadingSchema(ids) {
9
+ return z
10
+ .array(z.object({ evidence_id: z.enum(ids), ...reading.shape }))
11
+ .length(ids.length)
12
+ .refine((entries) => new Set(entries.map((entry) => entry.evidence_id)).size === ids.length);
13
+ }
14
+ /** Coordinates only: preserve all bytes, including boundaries, without inferring propositions. */
15
+ export function answerAuditAnchors(text, owner) {
16
+ const sentences = [...new Intl.Segmenter('en', { granularity: 'sentence' }).segment(text)];
17
+ const parts = sentences
18
+ .flatMap(({ segment }) => segment.split(/(?<=;)/u))
19
+ .flatMap((part) => {
20
+ const characters = [...part];
21
+ const spans = [];
22
+ for (let start = 0; start < characters.length; start += 240)
23
+ spans.push(characters.slice(start, start + 240).join(''));
24
+ return spans;
25
+ });
26
+ // Group rather than discard excess parts: punctuation-heavy input must keep the complete source.
27
+ const groupSize = Math.max(1, Math.ceil(parts.length / 24));
28
+ const grouped = [];
29
+ for (let start = 0; start < parts.length; start += groupSize)
30
+ grouped.push(parts.slice(start, start + groupSize).join(''));
31
+ const fingerprint = sha256(text).slice(0, 12);
32
+ return grouped.map((part, index) => ({
33
+ anchor_id: owner + '_' + fingerprint + '_' + (index + 1),
34
+ text: part,
35
+ }));
36
+ }
37
+ function anchorIdSchema(ids) {
38
+ return z.enum(ids);
39
+ }
40
+ function alignmentSchema(coordinates) {
41
+ const source = anchorIdSchema([...coordinates.sources.values()].flatMap((spans) => spans.map((span) => span.anchor_id)));
42
+ const answer = anchorIdSchema(coordinates.answer.map((span) => span.anchor_id));
43
+ // Providers count Unicode code points; Zod counts UTF-16 units. Eighty code points fit
44
+ // the unchanged local 160-unit budget even when every character needs a surrogate pair.
45
+ const detail = z.string().trim().min(1).max(160).meta({ maxLength: 80 });
46
+ // Refinements cannot constrain provider decoding. Make an omitted aspect's absent answer
47
+ // coordinate part of its wire shape, without allowing that negative verdict to publish.
48
+ // Write the concrete comparison before choosing its relation; an early "preserved" must
49
+ // not turn the later explanation into an assumption that two technical properties match.
50
+ return z.union([
51
+ z.strictObject({
52
+ source_anchor: source,
53
+ answer_anchor: answer,
54
+ detail,
55
+ relation: z.enum(['preserved', 'generalized', 'changed']),
56
+ }),
57
+ z.strictObject({
58
+ source_anchor: source,
59
+ answer_anchor: z.null(),
60
+ detail,
61
+ relation: z.enum(['omitted']),
62
+ }),
63
+ z.strictObject({
64
+ source_anchor: source.nullable(),
65
+ answer_anchor: z.null(),
66
+ detail,
67
+ relation: z.enum(['not_selected']),
68
+ }),
69
+ ]);
70
+ }
71
+ /** Keep the operation comparison independent of whether its tested property survives. */
72
+ function operationAlignmentSchema(coordinates, perSideLimit) {
73
+ const source = anchorIdSchema([...coordinates.sources.values()].flatMap((spans) => spans.map((span) => span.anchor_id)));
74
+ const answer = anchorIdSchema(coordinates.answer.map((span) => span.anchor_id));
75
+ // Operation and property descriptions together retain the 160-character prose allowance.
76
+ const specifics = z.string().trim().min(1).max(perSideLimit);
77
+ return z.union([
78
+ z.strictObject({
79
+ source_anchor: source,
80
+ answer_anchor: answer,
81
+ source_specifics: specifics,
82
+ answer_specifics: specifics,
83
+ relation: z.enum(['preserved', 'generalized', 'changed']),
84
+ }),
85
+ z.strictObject({
86
+ source_anchor: source,
87
+ answer_anchor: z.null(),
88
+ source_specifics: specifics,
89
+ answer_specifics: z.null(),
90
+ relation: z.enum(['omitted']),
91
+ }),
92
+ z.strictObject({
93
+ source_anchor: source,
94
+ answer_anchor: z.null(),
95
+ source_specifics: specifics,
96
+ answer_specifics: z.null(),
97
+ relation: z.enum(['not_selected']),
98
+ }),
99
+ z.strictObject({
100
+ source_anchor: z.null(),
101
+ answer_anchor: z.null(),
102
+ source_specifics: z.null(),
103
+ answer_specifics: z.null(),
104
+ relation: z.enum(['not_selected']),
105
+ }),
106
+ ]);
107
+ }
108
+ function propertyAlignmentSchema(coordinates) {
109
+ const source = anchorIdSchema([...coordinates.sources.values()].flatMap((spans) => spans.map((span) => span.anchor_id)));
110
+ const answer = anchorIdSchema(coordinates.answer.map((span) => span.anchor_id));
111
+ const property = z.string().trim().min(1).max(30);
112
+ // An answer can invent a property for an unspecified source test. Its missing source
113
+ // counterpart needs its own negative wire shape, not an all-null incidental comparison.
114
+ return z.union([
115
+ z.strictObject({
116
+ source_anchor: source,
117
+ answer_anchor: answer,
118
+ source_property: property,
119
+ answer_property: property,
120
+ relation: z.enum(['preserved', 'generalized', 'changed']),
121
+ }),
122
+ z.strictObject({
123
+ source_anchor: source,
124
+ answer_anchor: z.null(),
125
+ source_property: property,
126
+ answer_property: z.null(),
127
+ relation: z.enum(['omitted']),
128
+ }),
129
+ z.strictObject({
130
+ source_anchor: z.null(),
131
+ answer_anchor: answer,
132
+ source_property: z.null(),
133
+ answer_property: property,
134
+ relation: z.enum(['changed']),
135
+ }),
136
+ z.strictObject({
137
+ source_anchor: z.null(),
138
+ answer_anchor: z.null(),
139
+ source_property: z.null(),
140
+ answer_property: z.null(),
141
+ relation: z.enum(['not_selected']),
142
+ }),
143
+ z.strictObject({
144
+ source_anchor: z.null(),
145
+ answer_anchor: z.null(),
146
+ source_property: z.null(),
147
+ answer_property: z.null(),
148
+ relation: z.enum(['absent_from_both']),
149
+ }),
150
+ ]);
151
+ }
152
+ /** Categories prevent an easy object comparison from replacing the separate action-actor audit. */
153
+ export function answerAlignmentSchema(coordinates) {
154
+ const ids = [...coordinates.sources.keys()];
155
+ const alignment = alignmentSchema(coordinates);
156
+ const operation = operationAlignmentSchema(coordinates, 50);
157
+ const ordinaryOperation = operationAlignmentSchema(coordinates, 80);
158
+ const property = propertyAlignmentSchema(coordinates);
159
+ const context = {
160
+ evidence_id: z.enum(ids),
161
+ source_context: z.string().trim().min(1).max(240),
162
+ actor: alignment,
163
+ };
164
+ // Make the containing-operation dependency visible during provider decoding. A parser-only
165
+ // refinement would allow the provider to generate a negative verdict that becomes unavailable.
166
+ const entrySchema = z.union([
167
+ z.strictObject({
168
+ ...context,
169
+ // An irrelevant property cannot hide a lost restriction on a selected operation.
170
+ object_and_operation: z.union([ordinaryOperation.options[2], ordinaryOperation.options[3]]),
171
+ tested_property: property.options[3],
172
+ qualification: alignment,
173
+ }),
174
+ z.strictObject({
175
+ ...context,
176
+ object_and_operation: z.union([operation.options[0], operation.options[1]]),
177
+ tested_property: z.union([property.options[0], property.options[1], property.options[2]]),
178
+ qualification: alignment,
179
+ }),
180
+ z.strictObject({
181
+ ...context,
182
+ // Ordinary actions may specify no tested property. Require that explicit assertion,
183
+ // keeping their full prose allowance without declaring the action unselected.
184
+ object_and_operation: z.union([ordinaryOperation.options[0], ordinaryOperation.options[1]]),
185
+ tested_property: property.options[4],
186
+ qualification: alignment,
187
+ }),
188
+ ]);
189
+ return z
190
+ .array(
191
+ // Citing a record while declaring every category irrelevant supplies no comparison at all.
192
+ entrySchema.refine((value) => [value.actor, value.object_and_operation, value.tested_property, value.qualification].some((part) => part.relation !== 'not_selected')))
193
+ .length(ids.length)
194
+ .refine((entries) => new Set(entries.map((entry) => entry.evidence_id)).size === ids.length);
195
+ }
196
+ export function answerAlignmentsSupported(value, coordinates) {
197
+ const parsed = answerAlignmentSchema(coordinates).safeParse(value);
198
+ if (!parsed.success)
199
+ return false;
200
+ const answerIds = new Set(coordinates.answer.map((span) => span.anchor_id));
201
+ return parsed.data.every((entry) => {
202
+ const sourceIds = new Set(coordinates.sources.get(entry.evidence_id).map((span) => span.anchor_id));
203
+ return [entry.actor, entry.object_and_operation, entry.tested_property, entry.qualification].every((part) => (part.source_anchor === null || sourceIds.has(part.source_anchor)) &&
204
+ (part.answer_anchor === null || answerIds.has(part.answer_anchor)) &&
205
+ (part.relation === 'preserved' ||
206
+ part.relation === 'not_selected' ||
207
+ (part === entry.tested_property && part.relation === 'absent_from_both')));
208
+ });
209
+ }
210
+ export const ANSWER_READING_CONTRACT = `When record_readings is required, fill it BEFORE drafting blocks.
211
+ Return exactly one reading per evidence_id with a non-null retention_source_frame. First identify only
212
+ the proposition selected by the readable retained excerpt. Then read its complete original frame to
213
+ constrain that selected meaning, including explicit cross-language clarification, actors and scope.
214
+ Use selected_meaning as a terse source-wording role plan, within 320 characters: operation, its object,
215
+ source-specified tested property or mechanism, and material modifiers. Keep the material source
216
+ expressions as exact quotations in their supplied language; do not translate or merge them into a
217
+ broader target-language term here. No configured or presumed language overrides the current source
218
+ bytes. Explicit source clarification can identify the controlling expression across languages.
219
+ For coverage, distinguish the covered item/service from its coverer; leave an unspecified coverer
220
+ unspecified. Put material roles and scope first, without narrative padding or a term dictionary.
221
+ In clarification_or_ambiguity (at most 240 characters), identify an actual frame clarification or
222
+ ambiguity, or a material neighboring frame proposition EXCLUDED by this excerpt's selection; otherwise
223
+ use null. An excluded neighboring act is not a clarification that can be added to the selected record.
224
+ These private fields may quote source-language prose regardless of output_language. Translate ordinary
225
+ vocabulary only when drafting the public block; keep exact names/identifiers and all selected meaning.
226
+ Only the source can establish equivalence; query wording and adjacent independent propositions cannot.
227
+ Keep each reading local to its evidence_id: a shared original frame does not merge separately retained
228
+ propositions into one citable record. If a block states a second record's selected proposition, include
229
+ that record's evidence_id. A fictional promise alone may cite its promise record; adding an actual
230
+ proposal to discuss it requires the proposal record too. Neutral source provenance is not that act.
231
+ Resolve source-explicit clarification before deciding whether a conflict remains. Readings are private
232
+ generation notes, not evidence or answer text. They cannot authorize an unselected fact. Write the actual
233
+ blocks in output_language even when the source or private reading uses another language.`;
234
+ export const ANSWER_ALIGNMENT_CONTRACT = `For object_and_operation, write source_specifics and
235
+ answer_specifics independently before relation, each within 50 characters when tested_property is
236
+ compared, or 80 each when it is all-null absent_from_both or not_selected. Identify the operation,
237
+ acted-on object, purpose and manner/degree in their own supplied wording. For tested_property, separately
238
+ write source_property and answer_property before its own relation, each within 30 characters. Name only
239
+ the specific tested or measured property in each side's supplied wording. Do not normalize either pair
240
+ into an assumed equivalence. Natural equivalent translations remain preserved. Omitted/not-selected
241
+ operation content has null answer_specifics; an absent source anchor requires null source_specifics.
242
+ For an omitted property, keep its source anchor/description and use null answer anchor/description.
243
+ For an answer-added property, use null source anchor/description, its actual answer anchor/description
244
+ and changed. The all-null property not_selected branch requires the whole containing operation to be
245
+ not_selected too. For a selected operation where neither the source nor the answer specifies a tested
246
+ property, use all-null absent_from_both. This explicitly asserts absence on BOTH sides; do not use it
247
+ when either side specifies a property. A source property omitted or generalized by the answer still
248
+ requires an active comparison. A property comparison requires its containing object_and_operation to
249
+ be selected too. Ordinary plans, questions, promises or denials without a tested property need no
250
+ invented one. Neither absence nor irrelevance may replace a lost property of a selected test.
251
+ For actor and qualification, the combined detail remains required: write one short complete
252
+ comparison of at most 80 Unicode code points, naming the actor/experiencer or scope being compared.
253
+ For framed blocks, answer_segments and retention_source_frame
254
+ are ordered tables of exact text with server-assigned anchor_id values. Concatenate their text fields
255
+ to read the complete answer and original frame. IDs are coordinates, never claims or source instructions.
256
+ Return one source_alignments entry for every cited framed evidence_id, after deciding excerpt_selection.
257
+ Write source_context for only that record’s excerpt-selected contribution, using the complete original
258
+ frame to constrain its polarity, clarification and limits. A neighboring frame-only act is not selected.
259
+ Resolve an explicitly restated report across languages before comparing an isolated term. Mere adjacency,
260
+ the query and generated notes cannot establish that relationship; preserve truly unresolved ambiguity.
261
+
262
+ Then independently compare actor (the selected action's actor, separate from outer reporter),
263
+ object_and_operation (object, purpose, degree/manner), tested_property, and qualification (scope and epistemic/time limits,
264
+ including who lacks knowledge/confirmation, of what, and which selected proposition that limit qualifies).
265
+ For a test or measurement, compare the tested object/operation and the tested property through their
266
+ separate required relations. A preserved operation cannot override a lost property. Do not collapse
267
+ source and answer properties into a slash pair that assumes equivalence.
268
+ Read what the complete answer actually tests; do not supply a missing property from the source or familiar object.
269
+ Generic soundness or physical integrity of an object is broader than a specified electrical property.
270
+ If the source specifies such a property and the answer replaces it with a broader sense, mark tested_property generalized and set
271
+ action_arguments_preserved false with a matching mismatch even if the broader claim remains entailed.
272
+ A natural equivalent that retains the property passes; an unspecified source test must stay unspecified.
273
+ An entirely absent property is omitted; a substituted or added property is changed. Each negative
274
+ property relation requires action_arguments_preserved false and its own concrete mismatch. Do not mark
275
+ the property not_selected merely because the answer omits it from a selected test.
276
+ For an epistemic predicate, actor compares its grammatical subject or experiencer, including a source-stated
277
+ note/record subject; it is not automatically the outer reporter. Direct self-attested provenance alone
278
+ requires no repeated speaker wording. Still preserve required report attribution and personal agency.
279
+ Assess an explicit group-relative or dative experiencer separately from neighboring actors. Source
280
+ "unknown to us" / "нам неизвестны" is equivalent to "we do not know" / "мы не знаем", not bare
281
+ "unknown" / "неизвестны". A nearby person introducing a hypothesis or reporting no actual event
282
+ does not supply the missing group. For a selected group-relative limit changed to bare unknownness,
283
+ actor is omitted with the original epistemic source anchor and answer_anchor null; qualification is
284
+ generalized or changed at the actual bare-unknownness answer anchor. Set action_arguments_preserved
285
+ and qualification_scope_preserved false with separate mismatches; the stronger unqualified claim also
286
+ fails proposition_supported. A substituted explicit experiencer uses changed with its actual answer
287
+ anchor. Do not mark every actor preserved merely because one neighboring actor survives. Apply this
288
+ only to the selected epistemic limit: an independent private-frame clause stays unselected, and source
289
+ unknownness that is genuinely impersonal requires no invented group.
290
+ Compare every material selected limit against its actual answer counterpart; matching uncertainty words
291
+ cannot preserve a changed verification object. Source_context describes only the original source;
292
+ comparison detail must retain any specification added by the answer instead of silently correcting it.
293
+ Select source_anchor from that evidence's original frame and answer_anchor from this current block.
294
+ Never invent an ID or substitute a retained paraphrase for an original. An anchor only locates the
295
+ selected aspect. Judge its meaning against the COMPLETE frame and block: content elsewhere in this same
296
+ block can preserve a role or modifier missing from a short anchor. Other blocks cannot supply it.
297
+ For a block citing several records, compare each record's selected contribution separately. When the
298
+ source explicitly identifies the same example or event, a second cited record can describe its content
299
+ without changing or generalizing the first record's object. Do not require each record to supply every
300
+ detail of that shared clause. Generalized requires an actual lost restriction from this record's selected
301
+ meaning, not merely additional detail supported by another citation. Shared topic alone cannot establish
302
+ that the records describe the same thing; all contributed content must still pass excerpt selection.
303
+ Every material restriction belonging to this record's contribution remains required. Sibling evidence
304
+ cannot hide its loss or turn a generalized, changed or omitted contribution into preserved or not_selected.
305
+
306
+ Use preserved for equivalent meaning, including natural technical paraphrase. Use generalized for a
307
+ material restriction lost from the complete block, changed for a different actor/object/scope, or omitted
308
+ when a required selected counterpart has no answer counterpart (answer_anchor null). These three
309
+ negative relations require concrete differences in the comparison descriptions and the corresponding semantic mismatch.
310
+ For omitted, answer_anchor MUST be null; an anchor locating nearby text is not a missing counterpart.
311
+ For a present but changed or generalized counterpart, use that relation and its actual answer anchor.
312
+ An actor loss requires action_arguments_preserved false and its own mismatch; a lost or changed epistemic
313
+ limit requires qualification_scope_preserved false and its own mismatch. Assess proposition_supported
314
+ separately and give a mismatch for it too if false. Never pair a negative alignment with all-positive
315
+ dimensions or place every defect solely under qualification regardless of which dimension it affects.
316
+ For an incidental actor, operation or qualification not selected or asserted in this block, use not_selected and answer_anchor
317
+ null; source_anchor may be null only if no applicable source content exists. A sentence/anchor is not
318
+ an indivisible proposition: independent neighboring details need not appear. Complete-record rendering
319
+ requires the entire RETAINED record, not every proposition in the private frame. If the retained record
320
+ identifies a person's question without retaining their separate recording act, do not require that act
321
+ or label its absence an omitted actor. The selected question owner must still be preserved. Every cited record must
322
+ contribute at least one selected category; all four cannot be not_selected.
323
+
324
+ Do not mark a named proposer not_selected when describing that proposal. An outer reporter is not its
325
+ proposer, and a generic fault does not preserve a specific mechanism. Source_context and comparisons
326
+ are fallible notes; membership alone proves no semantics. Every existing semantic dimension and
327
+ independent retained-excerpt selection remain mandatory. A negative relation/verdict cannot be overridden.`;
328
+ //# sourceMappingURL=answer-source-audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer-source-audit.js","sourceRoot":"","sources":["../../src/ops/answer-source-audit.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { type AnswerOutput } from '@tenphi/akno-protocol';
2
2
  import type { AknoContext } from '../context.ts';
3
3
  import { type ModelClient, type ModelUsage } from '../models/client.ts';
4
- export declare const ANSWER_PROMPT_VERSION = "answer-generation-v3";
5
- export declare const ANSWER_VERIFIER_PROMPT_VERSION = "answer-verifier-v1";
4
+ export declare const ANSWER_PROMPT_VERSION = "answer-generation-v68";
5
+ export declare const ANSWER_VERIFIER_PROMPT_VERSION = "answer-verifier-v48";
6
6
  export interface AnswerCapabilityCheck {
7
7
  status: 'ok' | 'failed' | 'skipped';
8
8
  latencyMs: number | null;
@@ -1 +1 @@
1
- {"version":3,"file":"answer.d.ts","sourceRoot":"","sources":["../../src/ops/answer.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,YAAY,EAMlB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,KAAK,WAAW,EAAqB,KAAK,UAAU,EAAkB,MAAM,qBAAqB,CAAC;AAU3G,eAAO,MAAM,qBAAqB,yBAAyB,CAAC;AAC5D,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AAkCnE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC;IACpC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,qBAAqB,CAAC;IAClC,YAAY,EAAE,qBAAqB,CAAC;CACrC;AAgCD;;;;;;GAMG;AACH,wBAAsB,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CA0OvF;AA0ED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAwDzF"}
1
+ {"version":3,"file":"answer.d.ts","sourceRoot":"","sources":["../../src/ops/answer.ts"],"names":[],"mappings":"AAUA,OAAO,EAKL,KAAK,YAAY,EAOlB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,KAAK,WAAW,EAAqB,KAAK,UAAU,EAAkB,MAAM,qBAAqB,CAAC;AAwC3G,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAC7D,eAAO,MAAM,8BAA8B,wBAAwB,CAAC;AA6DpE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC;IACpC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,qBAAqB,CAAC;IAClC,YAAY,EAAE,qBAAqB,CAAC;CACrC;AAyRD;;;;;;GAMG;AACH,wBAAsB,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAqUvF;AAqMD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA8DzF"}