@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,149 @@
1
+ import { z } from 'zod';
2
+ import { hasDeicticTime, hasSourceRelativeAnchor, hasUnknownReferenceClock, } from "../timeline/source-clock.js";
3
+ /** A single bound record permits preservation without guessing its current language from old policy. */
4
+ export function answerRecordRendering(evidence, frames, language, knowledgeLanguage = null) {
5
+ if (!language || evidence.length !== 1 || frames.size !== 1)
6
+ return undefined;
7
+ const item = evidence[0];
8
+ if (item.type !== 'page' ||
9
+ item.lines.length !== 1 ||
10
+ item.lines[0].memory?.status !== 'qualified' ||
11
+ !frames.has(item.evidence_id))
12
+ return undefined;
13
+ // Match the ordinary answer renderer's boundary trim before language and support verification.
14
+ // Visible qualification labels and all interior text remain exact.
15
+ const text = item.lines[0].text.replace(/^[-*] /u, '').trim();
16
+ if (!text.trim() || text.length > 600)
17
+ return undefined;
18
+ // Copying an embedded citation/link would let payload text impersonate server-owned citations.
19
+ // Leave reference-bearing records to the existing composition path, which selects their prose.
20
+ if (/\[|<(?:\/?[A-Za-z]|!)/u.test(text))
21
+ return undefined;
22
+ return {
23
+ evidence_id: item.evidence_id,
24
+ text,
25
+ // Policy does not prove the language of old bytes. This only removes a shortcut; a translation
26
+ // can preserve already-localized prose and still must pass actual language and source checks.
27
+ ...(knowledgeLanguage && language !== knowledgeLanguage ? { copy_allowed: false } : {}),
28
+ // Match the readable-clock obligation enforced downstream. A private frame or unknown
29
+ // metadata alone cannot authorize an extra source-clock statement in generated prose.
30
+ ...(language === 'ru' &&
31
+ item.lines[0].memory.temporal?.time.precision === 'unknown' &&
32
+ hasDeicticTime(text) &&
33
+ hasSourceRelativeAnchor(text) &&
34
+ hasUnknownReferenceClock(text)
35
+ ? { source_clock_translation: true }
36
+ : {}),
37
+ };
38
+ }
39
+ export function answerRecordBlockSchema(record) {
40
+ const evidence_ids = z.array(z.enum([record.evidence_id])).length(1);
41
+ const translation = record.source_clock_translation
42
+ ? z.strictObject({
43
+ rendering_mode: z.enum(['translate']),
44
+ translated_record: z.strictObject({
45
+ // These fields and two joining spaces share the previous 2,000-character text cap.
46
+ proposition_and_nontemporal_scope: z.string().trim().min(1).max(1_200),
47
+ source_clock_anchor: z.string().trim().min(1).max(400),
48
+ remaining_clock_qualifications: z.string().trim().min(1).max(398),
49
+ }),
50
+ evidence_ids,
51
+ })
52
+ : z.strictObject({
53
+ rendering_mode: z.enum(['translate']),
54
+ text: z.string().trim().min(1).max(2_000),
55
+ evidence_ids,
56
+ });
57
+ if (record.copy_allowed === false)
58
+ return translation;
59
+ // Ordinary anyOf, not a discriminated oneOf, is supported by the existing provider contract.
60
+ return z.union([
61
+ z.strictObject({
62
+ rendering_mode: z.enum(['copy']),
63
+ evidence_ids,
64
+ }),
65
+ translation,
66
+ ]);
67
+ }
68
+ /** Concatenation adds no semantic content; the exact result still needs language and source checks. */
69
+ export function answerRecordText(block, record) {
70
+ if ('text' in block)
71
+ return block.text;
72
+ if ('translated_record' in block) {
73
+ const clauses = block.translated_record;
74
+ return [
75
+ clauses.proposition_and_nontemporal_scope,
76
+ clauses.source_clock_anchor,
77
+ clauses.remaining_clock_qualifications,
78
+ ].join(' ');
79
+ }
80
+ return record.text;
81
+ }
82
+ export const ANSWER_RECORD_RENDERING_CONTRACT = `When complete_record_rendering is supplied, select that
83
+ single retained record only if it answers the question. Return at most one block. Choose rendering_mode
84
+ translate when copy_allowed is false; the policy disables copying without classifying the stored bytes.
85
+ Otherwise choose rendering_mode
86
+ copy when its readable prose already uses output_language; return only that mode and evidence_ids,
87
+ without a text field. The server will supply the exact current readable text. Otherwise
88
+ choose translate and translate the COMPLETE retained text into output_language. Check the language of the COMPLETE current readable text, including visible status and attribution
89
+ labels, not the query or private frame. Translate whenever any readable label needs localization.
90
+ A Russian target with English retained prose requires translate, even when the source frame is Russian.
91
+ The mode is a generation
92
+ choice, not a trusted language classification; both copied and translated text undergo all existing checks.
93
+
94
+ Preserve every retained clause, including the complete actor chain, personal limits, conditional
95
+ consequences, negation and scope. Do not summarize, shorten, add an introduction, answer a presupposition
96
+ from the question, or import a recording/action detail from the private original frame. The whole retained
97
+ record is the rendering unit here; unrelated material in its private frame remains unavailable. The frame
98
+ only constrains interpretation, including explicit bilingual clarification. A conflict requires withholding
99
+ the block, not correcting or expanding the record. If it cannot answer the question, return no blocks.
100
+
101
+ In translations, proper names keep their exact source spelling: do not transliterate them. After
102
+ translating the surrounding prose, copy each required named_source_reference.exact_spelling verbatim
103
+ into its source-supported role in the final text. Never introduce a name or role absent from the record. Translate
104
+ ordinary vocabulary and generic role labels, including every part of a hyphenated component description.
105
+ Translate the complete compound by its source meaning; do not leave an English fragment beside a
106
+ translated noun. A technical test selects both an object and a tested property: naming only the object
107
+ and generic soundness loses the specific test. Keep the source-stated property explicit in target-language
108
+ prose. Do not add a property when the source only names an unspecified check or measurement.
109
+ If translating a visible report heading, use that record's supplied report_source_display_phrase exactly
110
+ for its outer attribution. Keep any other supported status labels localized. This phrase cannot replace
111
+ the inner speaker or an embedded action's actor, and cannot add an unretained reporting or recording act.
112
+ For nested reports, make the outer source and inner speaker
113
+ unambiguous: use 'According to OUTER, INNER said ...' or 'По словам OUTER, INNER сообщил ...'. Do not swap
114
+ their roles or rely on an ambiguous recipient/possessive construction with an indeclinable name. Render
115
+ the supported meaning in full even when the question requests only part of that record.
116
+ A bilingual restatement that fixes a term's referent controls its translation: render that same referent
117
+ throughout, without inventing two components or alternative services from two source-language wordings.
118
+ Do not specialize an unspecified measurement by choosing its measured property. Keep coverage arguments
119
+ in their source roles: a covered repair is not a repair that covers the component. For an unresolved
120
+ repair-coverage question in Russian, a nominal relation such as «вопрос о покрытии ремонта» followed
121
+ by the component in the genitive case preserves the repair object. Preserve the record's actual nonresolution
122
+ predicate and scope, and supply a coverer only when the selected source names one.
123
+
124
+ When translating a retained counterfactual into Russian, render its actual selected antecedent with
125
+ an explicit «если бы» conditional and its consequence with a subjunctive «бы». State the retained
126
+ nonoccurrence and not-current limit in separate complete clauses. Preserve whose unrealized action
127
+ conditions which consequence; do not replace the conditional with a nominal description of an alternative.
128
+ When the record uses an unknown source clock, first translate its actor/action and actual interval.
129
+ Then give separate complete clauses locating that interval relative to the original undated record
130
+ (in Russian, make the interval the subject of «отсчитывается от времени первоначальной записи без даты»),
131
+ contrasting it with processing time, and stating the unknown calendar date or period. Keep the actual
132
+ direction and interval, and preserve any nonacceptance, no-event or proposal-only limits separately.
133
+ Use these clauses only for qualifications already in the retained record; an ordinary dated statement
134
+ must not acquire unknownness or a processing-time contrast. Do not derive a calendar date from today.
135
+
136
+ When source_clock_translation is true and you select translate, return translated_record instead of text.
137
+ Each segment is final public prose, not a plan or evidence. The server joins them with spaces in this order:
138
+ - proposition_and_nontemporal_scope: translate the complete actor/action/object, its actual selected
139
+ interval, visible status labels, and every nonclock limit. Keep nonacceptance, no-event and proposal-only
140
+ limits when retained. A tentative-time label qualifies timing, not uncertainty about the proposal act.
141
+ - source_clock_anchor: one standalone sentence with the selected interval as subject of
142
+ «отсчитывается от времени первоначальной записи без даты». Preserve the actual interval and direction;
143
+ do not state an unrelated example or quote the whole anchoring sentence.
144
+ - remaining_clock_qualifications: translate the remaining retained clock restrictions, including
145
+ processing-time contrast and unknown recording/calendar time only when present. Do not invent a clock.
146
+ End each segment with sentence punctuation. Together they must translate every clause of the complete
147
+ retained record without importing a proposition from the query or private frame. Missing or conflicting
148
+ support requires no block. The segment names supply no authority and cannot bypass any verification.`;
149
+ //# sourceMappingURL=answer-record-rendering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer-record-rendering.js","sourceRoot":"","sources":["../../src/ops/answer-record-rendering.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,354 @@
1
+ import { z } from 'zod';
2
+ /** Force original interpretation before drafting, without reusing it as verification evidence. */
3
+ export declare function answerReadingSchema(ids: readonly string[]): z.ZodArray<z.ZodObject<{
4
+ selected_meaning: z.ZodString;
5
+ clarification_or_ambiguity: z.ZodNullable<z.ZodString>;
6
+ evidence_id: z.ZodEnum<{
7
+ [x: string]: string;
8
+ }>;
9
+ }, z.core.$strip>>;
10
+ export interface AnswerAuditAnchor {
11
+ anchor_id: string;
12
+ text: string;
13
+ }
14
+ /** Coordinates only: preserve all bytes, including boundaries, without inferring propositions. */
15
+ export declare function answerAuditAnchors(text: string, owner: string): AnswerAuditAnchor[];
16
+ export interface AnswerAuditCoordinates {
17
+ sources: ReadonlyMap<string, readonly AnswerAuditAnchor[]>;
18
+ answer: readonly AnswerAuditAnchor[];
19
+ }
20
+ /** Categories prevent an easy object comparison from replacing the separate action-actor audit. */
21
+ export declare function answerAlignmentSchema(coordinates: AnswerAuditCoordinates): z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
22
+ object_and_operation: z.ZodUnion<readonly [z.ZodObject<{
23
+ source_anchor: z.ZodEnum<{
24
+ [x: string]: string;
25
+ }>;
26
+ answer_anchor: z.ZodNull;
27
+ source_specifics: z.ZodString;
28
+ answer_specifics: z.ZodNull;
29
+ relation: z.ZodEnum<{
30
+ not_selected: "not_selected";
31
+ }>;
32
+ }, z.core.$strict>, z.ZodObject<{
33
+ source_anchor: z.ZodNull;
34
+ answer_anchor: z.ZodNull;
35
+ source_specifics: z.ZodNull;
36
+ answer_specifics: z.ZodNull;
37
+ relation: z.ZodEnum<{
38
+ not_selected: "not_selected";
39
+ }>;
40
+ }, z.core.$strict>]>;
41
+ tested_property: z.ZodObject<{
42
+ source_anchor: z.ZodNull;
43
+ answer_anchor: z.ZodNull;
44
+ source_property: z.ZodNull;
45
+ answer_property: z.ZodNull;
46
+ relation: z.ZodEnum<{
47
+ not_selected: "not_selected";
48
+ }>;
49
+ }, z.core.$strict>;
50
+ qualification: z.ZodUnion<readonly [z.ZodObject<{
51
+ source_anchor: z.ZodEnum<{
52
+ [x: string]: string;
53
+ }>;
54
+ answer_anchor: z.ZodEnum<{
55
+ [x: string]: string;
56
+ }>;
57
+ detail: z.ZodString;
58
+ relation: z.ZodEnum<{
59
+ preserved: "preserved";
60
+ generalized: "generalized";
61
+ changed: "changed";
62
+ }>;
63
+ }, z.core.$strict>, z.ZodObject<{
64
+ source_anchor: z.ZodEnum<{
65
+ [x: string]: string;
66
+ }>;
67
+ answer_anchor: z.ZodNull;
68
+ detail: z.ZodString;
69
+ relation: z.ZodEnum<{
70
+ omitted: "omitted";
71
+ }>;
72
+ }, z.core.$strict>, z.ZodObject<{
73
+ source_anchor: z.ZodNullable<z.ZodEnum<{
74
+ [x: string]: string;
75
+ }>>;
76
+ answer_anchor: z.ZodNull;
77
+ detail: z.ZodString;
78
+ relation: z.ZodEnum<{
79
+ not_selected: "not_selected";
80
+ }>;
81
+ }, z.core.$strict>]>;
82
+ evidence_id: z.ZodEnum<{
83
+ [x: string]: string;
84
+ }>;
85
+ source_context: z.ZodString;
86
+ actor: z.ZodUnion<readonly [z.ZodObject<{
87
+ source_anchor: z.ZodEnum<{
88
+ [x: string]: string;
89
+ }>;
90
+ answer_anchor: z.ZodEnum<{
91
+ [x: string]: string;
92
+ }>;
93
+ detail: z.ZodString;
94
+ relation: z.ZodEnum<{
95
+ preserved: "preserved";
96
+ generalized: "generalized";
97
+ changed: "changed";
98
+ }>;
99
+ }, z.core.$strict>, z.ZodObject<{
100
+ source_anchor: z.ZodEnum<{
101
+ [x: string]: string;
102
+ }>;
103
+ answer_anchor: z.ZodNull;
104
+ detail: z.ZodString;
105
+ relation: z.ZodEnum<{
106
+ omitted: "omitted";
107
+ }>;
108
+ }, z.core.$strict>, z.ZodObject<{
109
+ source_anchor: z.ZodNullable<z.ZodEnum<{
110
+ [x: string]: string;
111
+ }>>;
112
+ answer_anchor: z.ZodNull;
113
+ detail: z.ZodString;
114
+ relation: z.ZodEnum<{
115
+ not_selected: "not_selected";
116
+ }>;
117
+ }, z.core.$strict>]>;
118
+ }, z.core.$strict>, z.ZodObject<{
119
+ object_and_operation: z.ZodUnion<readonly [z.ZodObject<{
120
+ source_anchor: z.ZodEnum<{
121
+ [x: string]: string;
122
+ }>;
123
+ answer_anchor: z.ZodEnum<{
124
+ [x: string]: string;
125
+ }>;
126
+ source_specifics: z.ZodString;
127
+ answer_specifics: z.ZodString;
128
+ relation: z.ZodEnum<{
129
+ preserved: "preserved";
130
+ generalized: "generalized";
131
+ changed: "changed";
132
+ }>;
133
+ }, z.core.$strict>, z.ZodObject<{
134
+ source_anchor: z.ZodEnum<{
135
+ [x: string]: string;
136
+ }>;
137
+ answer_anchor: z.ZodNull;
138
+ source_specifics: z.ZodString;
139
+ answer_specifics: z.ZodNull;
140
+ relation: z.ZodEnum<{
141
+ omitted: "omitted";
142
+ }>;
143
+ }, z.core.$strict>]>;
144
+ tested_property: z.ZodUnion<readonly [z.ZodObject<{
145
+ source_anchor: z.ZodEnum<{
146
+ [x: string]: string;
147
+ }>;
148
+ answer_anchor: z.ZodEnum<{
149
+ [x: string]: string;
150
+ }>;
151
+ source_property: z.ZodString;
152
+ answer_property: z.ZodString;
153
+ relation: z.ZodEnum<{
154
+ preserved: "preserved";
155
+ generalized: "generalized";
156
+ changed: "changed";
157
+ }>;
158
+ }, z.core.$strict>, z.ZodObject<{
159
+ source_anchor: z.ZodEnum<{
160
+ [x: string]: string;
161
+ }>;
162
+ answer_anchor: z.ZodNull;
163
+ source_property: z.ZodString;
164
+ answer_property: z.ZodNull;
165
+ relation: z.ZodEnum<{
166
+ omitted: "omitted";
167
+ }>;
168
+ }, z.core.$strict>, z.ZodObject<{
169
+ source_anchor: z.ZodNull;
170
+ answer_anchor: z.ZodEnum<{
171
+ [x: string]: string;
172
+ }>;
173
+ source_property: z.ZodNull;
174
+ answer_property: z.ZodString;
175
+ relation: z.ZodEnum<{
176
+ changed: "changed";
177
+ }>;
178
+ }, z.core.$strict>]>;
179
+ qualification: z.ZodUnion<readonly [z.ZodObject<{
180
+ source_anchor: z.ZodEnum<{
181
+ [x: string]: string;
182
+ }>;
183
+ answer_anchor: z.ZodEnum<{
184
+ [x: string]: string;
185
+ }>;
186
+ detail: z.ZodString;
187
+ relation: z.ZodEnum<{
188
+ preserved: "preserved";
189
+ generalized: "generalized";
190
+ changed: "changed";
191
+ }>;
192
+ }, z.core.$strict>, z.ZodObject<{
193
+ source_anchor: z.ZodEnum<{
194
+ [x: string]: string;
195
+ }>;
196
+ answer_anchor: z.ZodNull;
197
+ detail: z.ZodString;
198
+ relation: z.ZodEnum<{
199
+ omitted: "omitted";
200
+ }>;
201
+ }, z.core.$strict>, z.ZodObject<{
202
+ source_anchor: z.ZodNullable<z.ZodEnum<{
203
+ [x: string]: string;
204
+ }>>;
205
+ answer_anchor: z.ZodNull;
206
+ detail: z.ZodString;
207
+ relation: z.ZodEnum<{
208
+ not_selected: "not_selected";
209
+ }>;
210
+ }, z.core.$strict>]>;
211
+ evidence_id: z.ZodEnum<{
212
+ [x: string]: string;
213
+ }>;
214
+ source_context: z.ZodString;
215
+ actor: z.ZodUnion<readonly [z.ZodObject<{
216
+ source_anchor: z.ZodEnum<{
217
+ [x: string]: string;
218
+ }>;
219
+ answer_anchor: z.ZodEnum<{
220
+ [x: string]: string;
221
+ }>;
222
+ detail: z.ZodString;
223
+ relation: z.ZodEnum<{
224
+ preserved: "preserved";
225
+ generalized: "generalized";
226
+ changed: "changed";
227
+ }>;
228
+ }, z.core.$strict>, z.ZodObject<{
229
+ source_anchor: z.ZodEnum<{
230
+ [x: string]: string;
231
+ }>;
232
+ answer_anchor: z.ZodNull;
233
+ detail: z.ZodString;
234
+ relation: z.ZodEnum<{
235
+ omitted: "omitted";
236
+ }>;
237
+ }, z.core.$strict>, z.ZodObject<{
238
+ source_anchor: z.ZodNullable<z.ZodEnum<{
239
+ [x: string]: string;
240
+ }>>;
241
+ answer_anchor: z.ZodNull;
242
+ detail: z.ZodString;
243
+ relation: z.ZodEnum<{
244
+ not_selected: "not_selected";
245
+ }>;
246
+ }, z.core.$strict>]>;
247
+ }, z.core.$strict>, z.ZodObject<{
248
+ object_and_operation: z.ZodUnion<readonly [z.ZodObject<{
249
+ source_anchor: z.ZodEnum<{
250
+ [x: string]: string;
251
+ }>;
252
+ answer_anchor: z.ZodEnum<{
253
+ [x: string]: string;
254
+ }>;
255
+ source_specifics: z.ZodString;
256
+ answer_specifics: z.ZodString;
257
+ relation: z.ZodEnum<{
258
+ preserved: "preserved";
259
+ generalized: "generalized";
260
+ changed: "changed";
261
+ }>;
262
+ }, z.core.$strict>, z.ZodObject<{
263
+ source_anchor: z.ZodEnum<{
264
+ [x: string]: string;
265
+ }>;
266
+ answer_anchor: z.ZodNull;
267
+ source_specifics: z.ZodString;
268
+ answer_specifics: z.ZodNull;
269
+ relation: z.ZodEnum<{
270
+ omitted: "omitted";
271
+ }>;
272
+ }, z.core.$strict>]>;
273
+ tested_property: z.ZodObject<{
274
+ source_anchor: z.ZodNull;
275
+ answer_anchor: z.ZodNull;
276
+ source_property: z.ZodNull;
277
+ answer_property: z.ZodNull;
278
+ relation: z.ZodEnum<{
279
+ absent_from_both: "absent_from_both";
280
+ }>;
281
+ }, z.core.$strict>;
282
+ qualification: z.ZodUnion<readonly [z.ZodObject<{
283
+ source_anchor: z.ZodEnum<{
284
+ [x: string]: string;
285
+ }>;
286
+ answer_anchor: z.ZodEnum<{
287
+ [x: string]: string;
288
+ }>;
289
+ detail: z.ZodString;
290
+ relation: z.ZodEnum<{
291
+ preserved: "preserved";
292
+ generalized: "generalized";
293
+ changed: "changed";
294
+ }>;
295
+ }, z.core.$strict>, z.ZodObject<{
296
+ source_anchor: z.ZodEnum<{
297
+ [x: string]: string;
298
+ }>;
299
+ answer_anchor: z.ZodNull;
300
+ detail: z.ZodString;
301
+ relation: z.ZodEnum<{
302
+ omitted: "omitted";
303
+ }>;
304
+ }, z.core.$strict>, z.ZodObject<{
305
+ source_anchor: z.ZodNullable<z.ZodEnum<{
306
+ [x: string]: string;
307
+ }>>;
308
+ answer_anchor: z.ZodNull;
309
+ detail: z.ZodString;
310
+ relation: z.ZodEnum<{
311
+ not_selected: "not_selected";
312
+ }>;
313
+ }, z.core.$strict>]>;
314
+ evidence_id: z.ZodEnum<{
315
+ [x: string]: string;
316
+ }>;
317
+ source_context: z.ZodString;
318
+ actor: z.ZodUnion<readonly [z.ZodObject<{
319
+ source_anchor: z.ZodEnum<{
320
+ [x: string]: string;
321
+ }>;
322
+ answer_anchor: z.ZodEnum<{
323
+ [x: string]: string;
324
+ }>;
325
+ detail: z.ZodString;
326
+ relation: z.ZodEnum<{
327
+ preserved: "preserved";
328
+ generalized: "generalized";
329
+ changed: "changed";
330
+ }>;
331
+ }, z.core.$strict>, z.ZodObject<{
332
+ source_anchor: z.ZodEnum<{
333
+ [x: string]: string;
334
+ }>;
335
+ answer_anchor: z.ZodNull;
336
+ detail: z.ZodString;
337
+ relation: z.ZodEnum<{
338
+ omitted: "omitted";
339
+ }>;
340
+ }, z.core.$strict>, z.ZodObject<{
341
+ source_anchor: z.ZodNullable<z.ZodEnum<{
342
+ [x: string]: string;
343
+ }>>;
344
+ answer_anchor: z.ZodNull;
345
+ detail: z.ZodString;
346
+ relation: z.ZodEnum<{
347
+ not_selected: "not_selected";
348
+ }>;
349
+ }, z.core.$strict>]>;
350
+ }, z.core.$strict>]>>;
351
+ export declare function answerAlignmentsSupported(value: unknown, coordinates: AnswerAuditCoordinates): boolean;
352
+ export declare const ANSWER_READING_CONTRACT = "When record_readings is required, fill it BEFORE drafting blocks.\nReturn exactly one reading per evidence_id with a non-null retention_source_frame. First identify only\nthe proposition selected by the readable retained excerpt. Then read its complete original frame to\nconstrain that selected meaning, including explicit cross-language clarification, actors and scope.\nUse selected_meaning as a terse source-wording role plan, within 320 characters: operation, its object,\nsource-specified tested property or mechanism, and material modifiers. Keep the material source\nexpressions as exact quotations in their supplied language; do not translate or merge them into a\nbroader target-language term here. No configured or presumed language overrides the current source\nbytes. Explicit source clarification can identify the controlling expression across languages.\nFor coverage, distinguish the covered item/service from its coverer; leave an unspecified coverer\nunspecified. Put material roles and scope first, without narrative padding or a term dictionary.\nIn clarification_or_ambiguity (at most 240 characters), identify an actual frame clarification or\nambiguity, or a material neighboring frame proposition EXCLUDED by this excerpt's selection; otherwise\nuse null. An excluded neighboring act is not a clarification that can be added to the selected record.\nThese private fields may quote source-language prose regardless of output_language. Translate ordinary\nvocabulary only when drafting the public block; keep exact names/identifiers and all selected meaning.\nOnly the source can establish equivalence; query wording and adjacent independent propositions cannot.\nKeep each reading local to its evidence_id: a shared original frame does not merge separately retained\npropositions into one citable record. If a block states a second record's selected proposition, include\nthat record's evidence_id. A fictional promise alone may cite its promise record; adding an actual\nproposal to discuss it requires the proposal record too. Neutral source provenance is not that act.\nResolve source-explicit clarification before deciding whether a conflict remains. Readings are private\ngeneration notes, not evidence or answer text. They cannot authorize an unselected fact. Write the actual\nblocks in output_language even when the source or private reading uses another language.";
353
+ export declare const ANSWER_ALIGNMENT_CONTRACT = "For object_and_operation, write source_specifics and\nanswer_specifics independently before relation, each within 50 characters when tested_property is\ncompared, or 80 each when it is all-null absent_from_both or not_selected. Identify the operation,\nacted-on object, purpose and manner/degree in their own supplied wording. For tested_property, separately\nwrite source_property and answer_property before its own relation, each within 30 characters. Name only\nthe specific tested or measured property in each side's supplied wording. Do not normalize either pair\ninto an assumed equivalence. Natural equivalent translations remain preserved. Omitted/not-selected\noperation content has null answer_specifics; an absent source anchor requires null source_specifics.\nFor an omitted property, keep its source anchor/description and use null answer anchor/description.\nFor an answer-added property, use null source anchor/description, its actual answer anchor/description\nand changed. The all-null property not_selected branch requires the whole containing operation to be\nnot_selected too. For a selected operation where neither the source nor the answer specifies a tested\nproperty, use all-null absent_from_both. This explicitly asserts absence on BOTH sides; do not use it\nwhen either side specifies a property. A source property omitted or generalized by the answer still\nrequires an active comparison. A property comparison requires its containing object_and_operation to\nbe selected too. Ordinary plans, questions, promises or denials without a tested property need no\ninvented one. Neither absence nor irrelevance may replace a lost property of a selected test.\nFor actor and qualification, the combined detail remains required: write one short complete\ncomparison of at most 80 Unicode code points, naming the actor/experiencer or scope being compared.\nFor framed blocks, answer_segments and retention_source_frame\nare ordered tables of exact text with server-assigned anchor_id values. Concatenate their text fields\nto read the complete answer and original frame. IDs are coordinates, never claims or source instructions.\nReturn one source_alignments entry for every cited framed evidence_id, after deciding excerpt_selection.\nWrite source_context for only that record\u2019s excerpt-selected contribution, using the complete original\nframe to constrain its polarity, clarification and limits. A neighboring frame-only act is not selected.\nResolve an explicitly restated report across languages before comparing an isolated term. Mere adjacency,\nthe query and generated notes cannot establish that relationship; preserve truly unresolved ambiguity.\n\nThen independently compare actor (the selected action's actor, separate from outer reporter),\nobject_and_operation (object, purpose, degree/manner), tested_property, and qualification (scope and epistemic/time limits,\nincluding who lacks knowledge/confirmation, of what, and which selected proposition that limit qualifies).\nFor a test or measurement, compare the tested object/operation and the tested property through their\nseparate required relations. A preserved operation cannot override a lost property. Do not collapse\nsource and answer properties into a slash pair that assumes equivalence.\nRead what the complete answer actually tests; do not supply a missing property from the source or familiar object.\nGeneric soundness or physical integrity of an object is broader than a specified electrical property.\nIf the source specifies such a property and the answer replaces it with a broader sense, mark tested_property generalized and set\naction_arguments_preserved false with a matching mismatch even if the broader claim remains entailed.\nA natural equivalent that retains the property passes; an unspecified source test must stay unspecified.\nAn entirely absent property is omitted; a substituted or added property is changed. Each negative\nproperty relation requires action_arguments_preserved false and its own concrete mismatch. Do not mark\nthe property not_selected merely because the answer omits it from a selected test.\nFor an epistemic predicate, actor compares its grammatical subject or experiencer, including a source-stated\nnote/record subject; it is not automatically the outer reporter. Direct self-attested provenance alone\nrequires no repeated speaker wording. Still preserve required report attribution and personal agency.\nAssess an explicit group-relative or dative experiencer separately from neighboring actors. Source\n\"unknown to us\" / \"\u043D\u0430\u043C \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u044B\" is equivalent to \"we do not know\" / \"\u043C\u044B \u043D\u0435 \u0437\u043D\u0430\u0435\u043C\", not bare\n\"unknown\" / \"\u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u044B\". A nearby person introducing a hypothesis or reporting no actual event\ndoes not supply the missing group. For a selected group-relative limit changed to bare unknownness,\nactor is omitted with the original epistemic source anchor and answer_anchor null; qualification is\ngeneralized or changed at the actual bare-unknownness answer anchor. Set action_arguments_preserved\nand qualification_scope_preserved false with separate mismatches; the stronger unqualified claim also\nfails proposition_supported. A substituted explicit experiencer uses changed with its actual answer\nanchor. Do not mark every actor preserved merely because one neighboring actor survives. Apply this\nonly to the selected epistemic limit: an independent private-frame clause stays unselected, and source\nunknownness that is genuinely impersonal requires no invented group.\nCompare every material selected limit against its actual answer counterpart; matching uncertainty words\ncannot preserve a changed verification object. Source_context describes only the original source;\ncomparison detail must retain any specification added by the answer instead of silently correcting it.\nSelect source_anchor from that evidence's original frame and answer_anchor from this current block.\nNever invent an ID or substitute a retained paraphrase for an original. An anchor only locates the\nselected aspect. Judge its meaning against the COMPLETE frame and block: content elsewhere in this same\nblock can preserve a role or modifier missing from a short anchor. Other blocks cannot supply it.\nFor a block citing several records, compare each record's selected contribution separately. When the\nsource explicitly identifies the same example or event, a second cited record can describe its content\nwithout changing or generalizing the first record's object. Do not require each record to supply every\ndetail of that shared clause. Generalized requires an actual lost restriction from this record's selected\nmeaning, not merely additional detail supported by another citation. Shared topic alone cannot establish\nthat the records describe the same thing; all contributed content must still pass excerpt selection.\nEvery material restriction belonging to this record's contribution remains required. Sibling evidence\ncannot hide its loss or turn a generalized, changed or omitted contribution into preserved or not_selected.\n\nUse preserved for equivalent meaning, including natural technical paraphrase. Use generalized for a\nmaterial restriction lost from the complete block, changed for a different actor/object/scope, or omitted\nwhen a required selected counterpart has no answer counterpart (answer_anchor null). These three\nnegative relations require concrete differences in the comparison descriptions and the corresponding semantic mismatch.\nFor omitted, answer_anchor MUST be null; an anchor locating nearby text is not a missing counterpart.\nFor a present but changed or generalized counterpart, use that relation and its actual answer anchor.\nAn actor loss requires action_arguments_preserved false and its own mismatch; a lost or changed epistemic\nlimit requires qualification_scope_preserved false and its own mismatch. Assess proposition_supported\nseparately and give a mismatch for it too if false. Never pair a negative alignment with all-positive\ndimensions or place every defect solely under qualification regardless of which dimension it affects.\nFor an incidental actor, operation or qualification not selected or asserted in this block, use not_selected and answer_anchor\nnull; source_anchor may be null only if no applicable source content exists. A sentence/anchor is not\nan indivisible proposition: independent neighboring details need not appear. Complete-record rendering\nrequires the entire RETAINED record, not every proposition in the private frame. If the retained record\nidentifies a person's question without retaining their separate recording act, do not require that act\nor label its absence an omitted actor. The selected question owner must still be preserved. Every cited record must\ncontribute at least one selected category; all four cannot be not_selected.\n\nDo not mark a named proposer not_selected when describing that proposal. An outer reporter is not its\nproposer, and a generic fault does not preserve a specific mechanism. Source_context and comparisons\nare fallible notes; membership alone proves no semantics. Every existing semantic dimension and\nindependent retained-excerpt selection remain mandatory. A negative relation/verdict cannot be overridden.";
354
+ //# sourceMappingURL=answer-source-audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer-source-audit.d.ts","sourceRoot":"","sources":["../../src/ops/answer-source-audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE;;;;;;mBAKzD;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,kGAAkG;AAClG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAqBnF;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC,CAAC;IAC3D,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACtC;AA+HD,mGAAmG;AACnG,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA+CxE;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,sBAAsB,GAAG,OAAO,CAetG;AAED,eAAO,MAAM,uBAAuB,g2EAuBqD,CAAC;AAE1F,eAAO,MAAM,yBAAyB,4uSA6FqE,CAAC"}