chaffjs 0.33.0 → 0.34.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 (467) hide show
  1. package/dist/api.d.ts +7 -1
  2. package/dist/api.d.ts.map +1 -1
  3. package/dist/api.js.map +1 -1
  4. package/dist/cli-text.d.ts.map +1 -1
  5. package/dist/cli-text.js +4 -2
  6. package/dist/cli-text.js.map +1 -1
  7. package/dist/commands/grade.d.ts.map +1 -1
  8. package/dist/commands/grade.js +66 -21
  9. package/dist/commands/grade.js.map +1 -1
  10. package/dist/company-kana-spelling.d.ts +6 -1
  11. package/dist/company-kana-spelling.d.ts.map +1 -1
  12. package/dist/company-kana-spelling.js +19 -2
  13. package/dist/company-kana-spelling.js.map +1 -1
  14. package/dist/company-name-ending.d.ts +7 -0
  15. package/dist/company-name-ending.d.ts.map +1 -0
  16. package/dist/company-name-ending.js +44 -0
  17. package/dist/company-name-ending.js.map +1 -0
  18. package/dist/company-names.d.ts +11 -3
  19. package/dist/company-names.d.ts.map +1 -1
  20. package/dist/company-names.js +27 -14
  21. package/dist/company-names.js.map +1 -1
  22. package/dist/custom/no-rewrite.d.ts +3 -0
  23. package/dist/custom/no-rewrite.d.ts.map +1 -0
  24. package/dist/custom/no-rewrite.js +3 -0
  25. package/dist/custom/no-rewrite.js.map +1 -0
  26. package/dist/custom/parse.d.ts.map +1 -1
  27. package/dist/custom/parse.js +14 -2
  28. package/dist/custom/parse.js.map +1 -1
  29. package/dist/detectors/age-words.d.ts +5 -0
  30. package/dist/detectors/age-words.d.ts.map +1 -0
  31. package/dist/detectors/age-words.js +8 -0
  32. package/dist/detectors/age-words.js.map +1 -0
  33. package/dist/detectors/annual-pay-mismatch.d.ts.map +1 -1
  34. package/dist/detectors/annual-pay-mismatch.js +2 -12
  35. package/dist/detectors/annual-pay-mismatch.js.map +1 -1
  36. package/dist/detectors/blank-structure.d.ts.map +1 -1
  37. package/dist/detectors/blank-structure.js +4 -3
  38. package/dist/detectors/blank-structure.js.map +1 -1
  39. package/dist/detectors/closing-balance-mismatch.d.ts.map +1 -1
  40. package/dist/detectors/closing-balance-mismatch.js +1 -0
  41. package/dist/detectors/closing-balance-mismatch.js.map +1 -1
  42. package/dist/detectors/code-fences.d.ts +5 -0
  43. package/dist/detectors/code-fences.d.ts.map +1 -1
  44. package/dist/detectors/code-fences.js +9 -0
  45. package/dist/detectors/code-fences.js.map +1 -1
  46. package/dist/detectors/condition-toki.d.ts +16 -0
  47. package/dist/detectors/condition-toki.d.ts.map +1 -0
  48. package/dist/detectors/condition-toki.js +42 -0
  49. package/dist/detectors/condition-toki.js.map +1 -0
  50. package/dist/detectors/conjugated-entry.d.ts +17 -0
  51. package/dist/detectors/conjugated-entry.d.ts.map +1 -0
  52. package/dist/detectors/conjugated-entry.js +50 -0
  53. package/dist/detectors/conjugated-entry.js.map +1 -0
  54. package/dist/detectors/content-morphemes.d.ts +2 -0
  55. package/dist/detectors/content-morphemes.d.ts.map +1 -1
  56. package/dist/detectors/content-morphemes.js +1 -1
  57. package/dist/detectors/content-morphemes.js.map +1 -1
  58. package/dist/detectors/cross-facts.d.ts.map +1 -1
  59. package/dist/detectors/cross-facts.js +2 -1
  60. package/dist/detectors/cross-facts.js.map +1 -1
  61. package/dist/detectors/custom.d.ts.map +1 -1
  62. package/dist/detectors/custom.js +8 -2
  63. package/dist/detectors/custom.js.map +1 -1
  64. package/dist/detectors/document-shape.d.ts.map +1 -1
  65. package/dist/detectors/document-shape.js +6 -0
  66. package/dist/detectors/document-shape.js.map +1 -1
  67. package/dist/detectors/due-date.d.ts.map +1 -1
  68. package/dist/detectors/due-date.js +12 -2
  69. package/dist/detectors/due-date.js.map +1 -1
  70. package/dist/detectors/fact-consistency.d.ts.map +1 -1
  71. package/dist/detectors/fact-consistency.js +12 -13
  72. package/dist/detectors/fact-consistency.js.map +1 -1
  73. package/dist/detectors/form-line.d.ts +9 -0
  74. package/dist/detectors/form-line.d.ts.map +1 -0
  75. package/dist/detectors/form-line.js +36 -0
  76. package/dist/detectors/form-line.js.map +1 -0
  77. package/dist/detectors/formula-amount.d.ts.map +1 -1
  78. package/dist/detectors/formula-amount.js +2 -12
  79. package/dist/detectors/formula-amount.js.map +1 -1
  80. package/dist/detectors/heading-claim.d.ts +14 -0
  81. package/dist/detectors/heading-claim.d.ts.map +1 -0
  82. package/dist/detectors/heading-claim.js +49 -0
  83. package/dist/detectors/heading-claim.js.map +1 -0
  84. package/dist/detectors/heading-echo.d.ts.map +1 -1
  85. package/dist/detectors/heading-echo.js +29 -1
  86. package/dist/detectors/heading-echo.js.map +1 -1
  87. package/dist/detectors/installment-total-mismatch.d.ts.map +1 -1
  88. package/dist/detectors/installment-total-mismatch.js +2 -12
  89. package/dist/detectors/installment-total-mismatch.js.map +1 -1
  90. package/dist/detectors/list-parallel.d.ts +5 -2
  91. package/dist/detectors/list-parallel.d.ts.map +1 -1
  92. package/dist/detectors/list-parallel.js +45 -7
  93. package/dist/detectors/list-parallel.js.map +1 -1
  94. package/dist/detectors/name-variant.d.ts.map +1 -1
  95. package/dist/detectors/name-variant.js +34 -7
  96. package/dist/detectors/name-variant.js.map +1 -1
  97. package/dist/detectors/number-unit.d.ts +10 -0
  98. package/dist/detectors/number-unit.d.ts.map +1 -1
  99. package/dist/detectors/number-unit.js +28 -8
  100. package/dist/detectors/number-unit.js.map +1 -1
  101. package/dist/detectors/orthography.d.ts.map +1 -1
  102. package/dist/detectors/orthography.js +16 -7
  103. package/dist/detectors/orthography.js.map +1 -1
  104. package/dist/detectors/per-unit-words.d.ts +7 -0
  105. package/dist/detectors/per-unit-words.d.ts.map +1 -0
  106. package/dist/detectors/per-unit-words.js +17 -0
  107. package/dist/detectors/per-unit-words.js.map +1 -0
  108. package/dist/detectors/period-multiple-mismatch.d.ts.map +1 -1
  109. package/dist/detectors/period-multiple-mismatch.js +2 -12
  110. package/dist/detectors/period-multiple-mismatch.js.map +1 -1
  111. package/dist/detectors/reference-number-variant.d.ts.map +1 -1
  112. package/dist/detectors/reference-number-variant.js +21 -3
  113. package/dist/detectors/reference-number-variant.js.map +1 -1
  114. package/dist/detectors/registry/condition-toki.d.ts +3 -0
  115. package/dist/detectors/registry/condition-toki.d.ts.map +1 -0
  116. package/dist/detectors/registry/condition-toki.js +3 -0
  117. package/dist/detectors/registry/condition-toki.js.map +1 -0
  118. package/dist/detectors/rent-multiple-mismatch.d.ts.map +1 -1
  119. package/dist/detectors/rent-multiple-mismatch.js +2 -12
  120. package/dist/detectors/rent-multiple-mismatch.js.map +1 -1
  121. package/dist/detectors/row-sentence-amounts.d.ts.map +1 -1
  122. package/dist/detectors/row-sentence-amounts.js +5 -10
  123. package/dist/detectors/row-sentence-amounts.js.map +1 -1
  124. package/dist/detectors/stated-amounts.d.ts +4 -0
  125. package/dist/detectors/stated-amounts.d.ts.map +1 -0
  126. package/dist/detectors/stated-amounts.js +12 -0
  127. package/dist/detectors/stated-amounts.js.map +1 -0
  128. package/dist/detectors/step-time-sum.d.ts.map +1 -1
  129. package/dist/detectors/step-time-sum.js +2 -1
  130. package/dist/detectors/step-time-sum.js.map +1 -1
  131. package/dist/detectors/structure-tree.d.ts.map +1 -1
  132. package/dist/detectors/structure-tree.js +3 -0
  133. package/dist/detectors/structure-tree.js.map +1 -1
  134. package/dist/detectors/team.d.ts.map +1 -1
  135. package/dist/detectors/team.js +10 -6
  136. package/dist/detectors/team.js.map +1 -1
  137. package/dist/detectors/time-order.d.ts.map +1 -1
  138. package/dist/detectors/time-order.js +17 -13
  139. package/dist/detectors/time-order.js.map +1 -1
  140. package/dist/detectors/unknown-word.d.ts +4 -1
  141. package/dist/detectors/unknown-word.d.ts.map +1 -1
  142. package/dist/detectors/unknown-word.js +18 -2
  143. package/dist/detectors/unknown-word.js.map +1 -1
  144. package/dist/detectors/use-interval.d.ts +1 -0
  145. package/dist/detectors/use-interval.d.ts.map +1 -1
  146. package/dist/detectors/use-interval.js +15 -10
  147. package/dist/detectors/use-interval.js.map +1 -1
  148. package/dist/detectors/use-maximum.d.ts.map +1 -1
  149. package/dist/detectors/use-maximum.js +3 -1
  150. package/dist/detectors/use-maximum.js.map +1 -1
  151. package/dist/extension/document-view.d.ts +2 -2
  152. package/dist/extension/document-view.d.ts.map +1 -1
  153. package/dist/extension/document-view.js +17 -8
  154. package/dist/extension/document-view.js.map +1 -1
  155. package/dist/extension/entry-genres.d.ts +5 -0
  156. package/dist/extension/entry-genres.d.ts.map +1 -0
  157. package/dist/extension/entry-genres.js +13 -0
  158. package/dist/extension/entry-genres.js.map +1 -0
  159. package/dist/extension/module-detector.d.ts.map +1 -1
  160. package/dist/extension/module-detector.js +4 -4
  161. package/dist/extension/module-detector.js.map +1 -1
  162. package/dist/extension/plugin-parse.d.ts +1 -1
  163. package/dist/extension/plugin-parse.d.ts.map +1 -1
  164. package/dist/extension/plugin-parse.js +24 -7
  165. package/dist/extension/plugin-parse.js.map +1 -1
  166. package/dist/extension/problem-text.d.ts.map +1 -1
  167. package/dist/extension/problem-text.js +2 -0
  168. package/dist/extension/problem-text.js.map +1 -1
  169. package/dist/facts/age-values.d.ts.map +1 -1
  170. package/dist/facts/age-values.js +20 -2
  171. package/dist/facts/age-values.js.map +1 -1
  172. package/dist/facts/column-units.d.ts +31 -0
  173. package/dist/facts/column-units.d.ts.map +1 -0
  174. package/dist/facts/column-units.js +37 -0
  175. package/dist/facts/column-units.js.map +1 -0
  176. package/dist/facts/fact-values.d.ts +4 -0
  177. package/dist/facts/fact-values.d.ts.map +1 -1
  178. package/dist/facts/fact-values.js +3 -1
  179. package/dist/facts/fact-values.js.map +1 -1
  180. package/dist/facts/labelled-facts.d.ts +10 -0
  181. package/dist/facts/labelled-facts.d.ts.map +1 -1
  182. package/dist/facts/labelled-facts.js +6 -1
  183. package/dist/facts/labelled-facts.js.map +1 -1
  184. package/dist/facts/per-unit.d.ts +36 -0
  185. package/dist/facts/per-unit.d.ts.map +1 -0
  186. package/dist/facts/per-unit.js +56 -0
  187. package/dist/facts/per-unit.js.map +1 -0
  188. package/dist/facts/row-sentence-amounts.d.ts +3 -12
  189. package/dist/facts/row-sentence-amounts.d.ts.map +1 -1
  190. package/dist/facts/row-sentence-amounts.js +1 -15
  191. package/dist/facts/row-sentence-amounts.js.map +1 -1
  192. package/dist/facts/table-facts.d.ts +1 -1
  193. package/dist/facts/table-facts.d.ts.map +1 -1
  194. package/dist/facts/table-facts.js +13 -9
  195. package/dist/facts/table-facts.js.map +1 -1
  196. package/dist/facts/term-values.d.ts +13 -1
  197. package/dist/facts/term-values.d.ts.map +1 -1
  198. package/dist/facts/term-values.js +71 -12
  199. package/dist/facts/term-values.js.map +1 -1
  200. package/dist/grade/baseline.d.ts +4 -2
  201. package/dist/grade/baseline.d.ts.map +1 -1
  202. package/dist/grade/baseline.js +13 -11
  203. package/dist/grade/baseline.js.map +1 -1
  204. package/dist/grade/expect-read.d.ts +16 -0
  205. package/dist/grade/expect-read.d.ts.map +1 -0
  206. package/dist/grade/expect-read.js +52 -0
  207. package/dist/grade/expect-read.js.map +1 -0
  208. package/dist/grade/expect.d.ts +50 -0
  209. package/dist/grade/expect.d.ts.map +1 -0
  210. package/dist/grade/expect.js +53 -0
  211. package/dist/grade/expect.js.map +1 -0
  212. package/dist/grade/grade-item.d.ts +1 -1
  213. package/dist/grade/grade-item.d.ts.map +1 -1
  214. package/dist/grade/grade-item.js +13 -3
  215. package/dist/grade/grade-item.js.map +1 -1
  216. package/dist/grade/item.d.ts +9 -1
  217. package/dist/grade/item.d.ts.map +1 -1
  218. package/dist/grade/item.js +32 -7
  219. package/dist/grade/item.js.map +1 -1
  220. package/dist/grade/result.d.ts +5 -0
  221. package/dist/grade/result.d.ts.map +1 -1
  222. package/dist/grade/results-read.d.ts.map +1 -1
  223. package/dist/grade/results-read.js +4 -2
  224. package/dist/grade/results-read.js.map +1 -1
  225. package/dist/grade/rubric-file.d.ts +23 -0
  226. package/dist/grade/rubric-file.d.ts.map +1 -0
  227. package/dist/grade/rubric-file.js +35 -0
  228. package/dist/grade/rubric-file.js.map +1 -0
  229. package/dist/grade/rubric.d.ts +2 -0
  230. package/dist/grade/rubric.d.ts.map +1 -1
  231. package/dist/grade/rubric.js +75 -47
  232. package/dist/grade/rubric.js.map +1 -1
  233. package/dist/grade/setup.d.ts +2 -1
  234. package/dist/grade/setup.d.ts.map +1 -1
  235. package/dist/grade/setup.js +2 -2
  236. package/dist/grade/setup.js.map +1 -1
  237. package/dist/grade/stamp.d.ts +2 -0
  238. package/dist/grade/stamp.d.ts.map +1 -1
  239. package/dist/grade/stamp.js +8 -2
  240. package/dist/grade/stamp.js.map +1 -1
  241. package/dist/grade/task-rubric.d.ts +16 -0
  242. package/dist/grade/task-rubric.d.ts.map +1 -0
  243. package/dist/grade/task-rubric.js +34 -0
  244. package/dist/grade/task-rubric.js.map +1 -0
  245. package/dist/grade/text.d.ts +5 -1
  246. package/dist/grade/text.d.ts.map +1 -1
  247. package/dist/grade/text.js +16 -4
  248. package/dist/grade/text.js.map +1 -1
  249. package/dist/name-char-reading.d.ts +5 -0
  250. package/dist/name-char-reading.d.ts.map +1 -1
  251. package/dist/name-char-reading.js +15 -0
  252. package/dist/name-char-reading.js.map +1 -1
  253. package/dist/name-end-letter.d.ts +19 -0
  254. package/dist/name-end-letter.d.ts.map +1 -0
  255. package/dist/name-end-letter.js +37 -0
  256. package/dist/name-end-letter.js.map +1 -0
  257. package/dist/name-neighbours.d.ts.map +1 -1
  258. package/dist/name-neighbours.js +2 -1
  259. package/dist/name-neighbours.js.map +1 -1
  260. package/dist/name-separator.d.ts +6 -0
  261. package/dist/name-separator.d.ts.map +1 -1
  262. package/dist/name-separator.js +29 -0
  263. package/dist/name-separator.js.map +1 -1
  264. package/dist/name-variants.d.ts +6 -3
  265. package/dist/name-variants.d.ts.map +1 -1
  266. package/dist/name-variants.js +37 -10
  267. package/dist/name-variants.js.map +1 -1
  268. package/dist/number-name.d.ts.map +1 -1
  269. package/dist/number-name.js +11 -2
  270. package/dist/number-name.js.map +1 -1
  271. package/dist/profile/cue-lines.d.ts +6 -0
  272. package/dist/profile/cue-lines.d.ts.map +1 -0
  273. package/dist/profile/cue-lines.js +13 -0
  274. package/dist/profile/cue-lines.js.map +1 -0
  275. package/dist/profile/parse.d.ts +1 -1
  276. package/dist/profile/parse.d.ts.map +1 -1
  277. package/dist/profile/parse.js +3 -2
  278. package/dist/profile/parse.js.map +1 -1
  279. package/dist/reference-numbers.d.ts +2 -0
  280. package/dist/reference-numbers.d.ts.map +1 -1
  281. package/dist/reference-numbers.js +1 -1
  282. package/dist/reference-numbers.js.map +1 -1
  283. package/dist/spaced-person-name.d.ts.map +1 -1
  284. package/dist/spaced-person-name.js +26 -1
  285. package/dist/spaced-person-name.js.map +1 -1
  286. package/dist/spacing-code.d.ts.map +1 -1
  287. package/dist/spacing-code.js +10 -1
  288. package/dist/spacing-code.js.map +1 -1
  289. package/dist/spacing-minority.d.ts +7 -0
  290. package/dist/spacing-minority.d.ts.map +1 -1
  291. package/dist/spacing-minority.js +14 -0
  292. package/dist/spacing-minority.js.map +1 -1
  293. package/dist/structure/closing-balance.d.ts +9 -0
  294. package/dist/structure/closing-balance.d.ts.map +1 -1
  295. package/dist/structure/closing-balance.js +34 -7
  296. package/dist/structure/closing-balance.js.map +1 -1
  297. package/dist/structure/definition-use.d.ts.map +1 -1
  298. package/dist/structure/definition-use.js +20 -1
  299. package/dist/structure/definition-use.js.map +1 -1
  300. package/dist/structure/document-context.d.ts +2 -0
  301. package/dist/structure/document-context.d.ts.map +1 -0
  302. package/dist/structure/document-context.js +42 -0
  303. package/dist/structure/document-context.js.map +1 -0
  304. package/dist/structure/fenced-lines.d.ts +7 -0
  305. package/dist/structure/fenced-lines.d.ts.map +1 -0
  306. package/dist/structure/fenced-lines.js +27 -0
  307. package/dist/structure/fenced-lines.js.map +1 -0
  308. package/dist/structure/labelled-date-order.d.ts +31 -9
  309. package/dist/structure/labelled-date-order.d.ts.map +1 -1
  310. package/dist/structure/labelled-date-order.js +60 -15
  311. package/dist/structure/labelled-date-order.js.map +1 -1
  312. package/dist/structure/labelled-order.d.ts +7 -1
  313. package/dist/structure/labelled-order.d.ts.map +1 -1
  314. package/dist/structure/labelled-order.js +10 -3
  315. package/dist/structure/labelled-order.js.map +1 -1
  316. package/dist/structure/line-amount-label.d.ts.map +1 -1
  317. package/dist/structure/line-amount-label.js +2 -1
  318. package/dist/structure/line-amount-label.js.map +1 -1
  319. package/dist/structure/line-amount.d.ts +0 -5
  320. package/dist/structure/line-amount.d.ts.map +1 -1
  321. package/dist/structure/line-amount.js +1 -10
  322. package/dist/structure/line-amount.js.map +1 -1
  323. package/dist/structure/prose-total.d.ts +8 -0
  324. package/dist/structure/prose-total.d.ts.map +1 -1
  325. package/dist/structure/prose-total.js +70 -2
  326. package/dist/structure/prose-total.js.map +1 -1
  327. package/dist/structure/runs.d.ts.map +1 -1
  328. package/dist/structure/runs.js +9 -1
  329. package/dist/structure/runs.js.map +1 -1
  330. package/dist/structure/signed-date-line.d.ts +15 -0
  331. package/dist/structure/signed-date-line.d.ts.map +1 -0
  332. package/dist/structure/signed-date-line.js +68 -0
  333. package/dist/structure/signed-date-line.js.map +1 -0
  334. package/dist/structure/tax.d.ts.map +1 -1
  335. package/dist/structure/tax.js +5 -3
  336. package/dist/structure/tax.js.map +1 -1
  337. package/dist/structure/total-line.d.ts.map +1 -1
  338. package/dist/structure/total-line.js +10 -6
  339. package/dist/structure/total-line.js.map +1 -1
  340. package/dist/structure/total.d.ts +2 -0
  341. package/dist/structure/total.d.ts.map +1 -1
  342. package/dist/structure/total.js +34 -3
  343. package/dist/structure/total.js.map +1 -1
  344. package/dist/subject-codes.d.ts +21 -0
  345. package/dist/subject-codes.d.ts.map +1 -0
  346. package/dist/subject-codes.js +79 -0
  347. package/dist/subject-codes.js.map +1 -0
  348. package/dist/unlabelled-references.d.ts +6 -2
  349. package/dist/unlabelled-references.d.ts.map +1 -1
  350. package/dist/unlabelled-references.js +11 -10
  351. package/dist/unlabelled-references.js.map +1 -1
  352. package/genres.yaml +17 -0
  353. package/package.json +3 -3
  354. package/profiles/listing.yaml +1 -1
  355. package/rules/closing-balance-mismatch.yaml +3 -3
  356. package/rules/due-before-issue.yaml +9 -5
  357. package/rules/fact-conflict.yaml +2 -2
  358. package/rules/heading-echo.yaml +2 -2
  359. package/rules/internal-jargon.yaml +2 -2
  360. package/rules/latin-spacing.yaml +4 -4
  361. package/rules/list-item-form-mix.yaml +1 -1
  362. package/rules/name-variant.yaml +5 -2
  363. package/rules/no-lead.yaml +2 -2
  364. package/rules/number-without-unit.yaml +2 -2
  365. package/rules/reference-number-variant.yaml +3 -3
  366. package/rules/toki-as-condition.yaml +71 -0
  367. package/rules/total-mismatch.yaml +4 -4
  368. package/rules/unknown-word.yaml +2 -2
  369. package/rules/use-before-definition.yaml +2 -2
  370. package/src/api.ts +11 -2
  371. package/src/cli-text.ts +4 -2
  372. package/src/commands/grade.ts +75 -23
  373. package/src/company-kana-spelling.ts +22 -2
  374. package/src/company-name-ending.ts +50 -0
  375. package/src/company-names.ts +52 -17
  376. package/src/custom/no-rewrite.ts +2 -0
  377. package/src/custom/parse.ts +18 -2
  378. package/src/detectors/age-words.ts +12 -0
  379. package/src/detectors/annual-pay-mismatch.ts +3 -18
  380. package/src/detectors/blank-structure.ts +4 -3
  381. package/src/detectors/closing-balance-mismatch.ts +1 -0
  382. package/src/detectors/code-fences.ts +10 -0
  383. package/src/detectors/condition-toki.ts +60 -0
  384. package/src/detectors/conjugated-entry.ts +53 -0
  385. package/src/detectors/content-morphemes.ts +2 -1
  386. package/src/detectors/cross-facts.ts +2 -1
  387. package/src/detectors/custom.ts +9 -2
  388. package/src/detectors/document-shape.ts +8 -0
  389. package/src/detectors/due-date.ts +17 -7
  390. package/src/detectors/fact-consistency.ts +13 -17
  391. package/src/detectors/form-line.ts +47 -0
  392. package/src/detectors/formula-amount.ts +2 -18
  393. package/src/detectors/heading-claim.ts +76 -0
  394. package/src/detectors/heading-echo.ts +32 -1
  395. package/src/detectors/installment-total-mismatch.ts +3 -18
  396. package/src/detectors/list-parallel.ts +46 -7
  397. package/src/detectors/name-variant.ts +45 -8
  398. package/src/detectors/number-unit.ts +35 -9
  399. package/src/detectors/orthography.ts +17 -8
  400. package/src/detectors/per-unit-words.ts +24 -0
  401. package/src/detectors/period-multiple-mismatch.ts +2 -18
  402. package/src/detectors/reference-number-variant.ts +27 -5
  403. package/src/detectors/registry/condition-toki.ts +4 -0
  404. package/src/detectors/rent-multiple-mismatch.ts +2 -18
  405. package/src/detectors/row-sentence-amounts.ts +5 -20
  406. package/src/detectors/stated-amounts.ts +20 -0
  407. package/src/detectors/step-time-sum.ts +2 -1
  408. package/src/detectors/structure-tree.ts +3 -0
  409. package/src/detectors/team.ts +13 -7
  410. package/src/detectors/time-order.ts +6 -3
  411. package/src/detectors/unknown-word.ts +20 -2
  412. package/src/detectors/use-interval.ts +8 -4
  413. package/src/detectors/use-maximum.ts +3 -1
  414. package/src/extension/document-view.ts +18 -9
  415. package/src/extension/entry-genres.ts +15 -0
  416. package/src/extension/module-detector.ts +9 -4
  417. package/src/extension/plugin-parse.ts +29 -7
  418. package/src/extension/problem-text.ts +4 -0
  419. package/src/facts/age-values.ts +24 -2
  420. package/src/facts/column-units.ts +67 -0
  421. package/src/facts/fact-values.ts +11 -1
  422. package/src/facts/labelled-facts.ts +16 -2
  423. package/src/facts/per-unit.ts +105 -0
  424. package/src/facts/row-sentence-amounts.ts +4 -26
  425. package/src/facts/table-facts.ts +7 -4
  426. package/src/facts/term-values.ts +94 -13
  427. package/src/grade/baseline.ts +20 -12
  428. package/src/grade/expect-read.ts +65 -0
  429. package/src/grade/expect.ts +74 -0
  430. package/src/grade/grade-item.ts +14 -3
  431. package/src/grade/item.ts +48 -8
  432. package/src/grade/result.ts +5 -0
  433. package/src/grade/results-read.ts +7 -2
  434. package/src/grade/rubric-file.ts +46 -0
  435. package/src/grade/rubric.ts +77 -47
  436. package/src/grade/setup.ts +3 -3
  437. package/src/grade/stamp.ts +10 -2
  438. package/src/grade/task-rubric.ts +39 -0
  439. package/src/grade/text.ts +27 -5
  440. package/src/name-char-reading.ts +16 -0
  441. package/src/name-end-letter.ts +52 -0
  442. package/src/name-neighbours.ts +2 -1
  443. package/src/name-separator.ts +32 -0
  444. package/src/name-variants.ts +54 -13
  445. package/src/number-name.ts +12 -3
  446. package/src/profile/cue-lines.ts +14 -0
  447. package/src/profile/parse.ts +3 -2
  448. package/src/reference-numbers.ts +1 -1
  449. package/src/spaced-person-name.ts +27 -2
  450. package/src/spacing-code.ts +13 -2
  451. package/src/spacing-minority.ts +17 -0
  452. package/src/structure/closing-balance.ts +46 -8
  453. package/src/structure/definition-use.ts +24 -1
  454. package/src/structure/document-context.ts +46 -0
  455. package/src/structure/fenced-lines.ts +28 -0
  456. package/src/structure/labelled-date-order.ts +105 -21
  457. package/src/structure/labelled-order.ts +21 -10
  458. package/src/structure/line-amount-label.ts +2 -1
  459. package/src/structure/line-amount.ts +1 -11
  460. package/src/structure/prose-total.ts +81 -2
  461. package/src/structure/runs.ts +10 -1
  462. package/src/structure/signed-date-line.ts +78 -0
  463. package/src/structure/tax.ts +6 -3
  464. package/src/structure/total-line.ts +12 -6
  465. package/src/structure/total.ts +42 -3
  466. package/src/subject-codes.ts +105 -0
  467. package/src/unlabelled-references.ts +24 -16
@@ -1 +1 @@
1
- {"version":3,"file":"rubric.js","sourceRoot":"","sources":["../../src/grade/rubric.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rubric.js","sourceRoot":"","sources":["../../src/grade/rubric.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import type { Config } from "../config/load.ts";
2
2
  import type { GradeSetup } from "./grade-item.ts";
3
3
  import type { Rubric } from "./rubric.ts";
4
- /** A run's settings, rubric and stamp. `languages`: those the items name, beyond the bundled ones. Throws when a language package cannot be loaded. */
4
+ /** A run's settings, rubric and stamp. `run.rubricFile`: a --rubric file's digest, when the rubric came from one. `languages`: those the items name, beyond the bundled ones. Throws when a language package cannot be loaded. */
5
5
  export declare const gradeSetup: (config: Config, run: {
6
6
  readonly experimental: boolean;
7
7
  readonly genre: string | undefined;
8
+ readonly rubricFile?: string | undefined;
8
9
  }, languages: readonly string[], rubric: Rubric | undefined) => Promise<GradeSetup>;
9
10
  //# sourceMappingURL=setup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/grade/setup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAsB1C,uJAAuJ;AACvJ,eAAO,MAAM,UAAU,GACrB,QAAQ,MAAM,EACd,KAAK;IAAE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EAC3E,WAAW,SAAS,MAAM,EAAE,EAC5B,QAAQ,MAAM,GAAG,SAAS,KACzB,OAAO,CAAC,UAAU,CAMpB,CAAC"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/grade/setup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAsB1C,kOAAkO;AAClO,eAAO,MAAM,UAAU,GACrB,QAAQ,MAAM,EACd,KAAK;IAAE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EACrH,WAAW,SAAS,MAAM,EAAE,EAC5B,QAAQ,MAAM,GAAG,SAAS,KACzB,OAAO,CAAC,UAAU,CAMpB,CAAC"}
@@ -20,12 +20,12 @@ const ruleSetOf = async (config, languages) => {
20
20
  profiles: loadProfiles(),
21
21
  };
22
22
  };
23
- /** A run's settings, rubric and stamp. `languages`: those the items name, beyond the bundled ones. Throws when a language package cannot be loaded. */
23
+ /** A run's settings, rubric and stamp. `run.rubricFile`: a --rubric file's digest, when the rubric came from one. `languages`: those the items name, beyond the bundled ones. Throws when a language package cannot be loaded. */
24
24
  export const gradeSetup = async (config, run, languages, rubric) => {
25
25
  // chaff.yaml's language and its by_path languages are loaded here too, so a missing package stops the run before grading.
26
26
  const named = [config.language, ...config.byPath.map((rule) => rule.language)].filter((language) => language !== undefined);
27
27
  const all = [...new Set([...BUNDLED_LANGUAGES, ...named, ...languages])].toSorted(compareText);
28
- const settings = { config, experimental: run.experimental, genre: run.genre };
28
+ const settings = { config, experimental: run.experimental, genre: run.genre, rubricFile: run.rubricFile };
29
29
  return { ...settings, rubric, stamp: stampOf(VERSION_LINES, await ruleSetOf(config, all), settings) };
30
30
  };
31
31
  //# sourceMappingURL=setup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/grade/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAgB,MAAM,YAAY,CAAC;AAEnD,qIAAqI;AACrI,MAAM,iBAAiB,GAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAE1D,wHAAwH;AACxH,MAAM,SAAS,GAAG,KAAK,EAAE,MAAc,EAAE,SAA4B,EAAoB,EAAE;IACzF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC/B,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;IACrI,CAAC,CAAC,CACH,CAAC;IACF,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7E,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnF,MAAM,EAAE,UAAU,EAAE;QACpB,QAAQ,EAAE,YAAY,EAAE;KACzB,CAAC;AACJ,CAAC,CAAC;AAEF,uJAAuJ;AACvJ,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,MAAc,EACd,GAA2E,EAC3E,SAA4B,EAC5B,MAA0B,EACL,EAAE;IACvB,0HAA0H;IAC1H,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;IAC5H,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/F,MAAM,QAAQ,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IAC9E,OAAO,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,EAAE,MAAM,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;AACxG,CAAC,CAAC"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/grade/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAgB,MAAM,YAAY,CAAC;AAEnD,qIAAqI;AACrI,MAAM,iBAAiB,GAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAE1D,wHAAwH;AACxH,MAAM,SAAS,GAAG,KAAK,EAAE,MAAc,EAAE,SAA4B,EAAoB,EAAE;IACzF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC/B,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;IACrI,CAAC,CAAC,CACH,CAAC;IACF,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7E,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnF,MAAM,EAAE,UAAU,EAAE;QACpB,QAAQ,EAAE,YAAY,EAAE;KACzB,CAAC;AACJ,CAAC,CAAC;AAEF,kOAAkO;AAClO,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,MAAc,EACd,GAAqH,EACrH,SAA4B,EAC5B,MAA0B,EACL,EAAE;IACvB,0HAA0H;IAC1H,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;IAC5H,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/F,MAAM,QAAQ,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;IAC1G,OAAO,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,EAAE,MAAM,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;AACxG,CAAC,CAAC"}
@@ -9,6 +9,8 @@ export type GradeSettings = {
9
9
  readonly experimental: boolean;
10
10
  /** --genre, which wins over chaff.yaml for every item that does not name its own. */
11
11
  readonly genre: string | undefined;
12
+ /** The digest of a --rubric file, which replaces chaff.yaml's `grade:` for the run. */
13
+ readonly rubricFile?: string | undefined;
12
14
  };
13
15
  /** The parts of chaff.yaml that change a finding, a fact or a verdict. Paths and the AI judge do not. */
14
16
  export declare const settingsOf: (settings: GradeSettings) => Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"stamp.d.ts","sourceRoot":"","sources":["../../src/grade/stamp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAOzC,kHAAkH;AAClH,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,MAC4E,CAAC;AAE5H,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,MAAqF,CAAC;AAEhI,6HAA6H;AAC7H,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,qFAAqF;IACrF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF,yGAAyG;AACzG,eAAO,MAAM,UAAU,GAAI,UAAU,aAAa,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAoB1E,CAAC;AAEF,0HAA0H;AAC1H,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,cAAc,SAAS,MAAM,EAAE,EAAE,SAAS,OAAO,EAAE,UAAU,aAAa,KAAG,KAInG,CAAC"}
1
+ {"version":3,"file":"stamp.d.ts","sourceRoot":"","sources":["../../src/grade/stamp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAOzC,kHAAkH;AAClH,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,MAC4E,CAAC;AAE5H,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,MAAqF,CAAC;AAEhI,6HAA6H;AAC7H,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,qFAAqF;IACrF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,uFAAuF;IACvF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C,CAAC;AASF,yGAAyG;AACzG,eAAO,MAAM,UAAU,GAAI,UAAU,aAAa,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAmB1E,CAAC;AAEF,0HAA0H;AAC1H,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,cAAc,SAAS,MAAM,EAAE,EAAE,SAAS,OAAO,EAAE,UAAU,aAAa,KAAG,KAInG,CAAC"}
@@ -6,6 +6,13 @@ const isRecord = (value) => typeof value === "object" && value !== null && !Arra
6
6
  /** JSON with every object's keys sorted, so the order a file or a map was written in does not change the hash. */
7
7
  export const canonicalJson = (value) => JSON.stringify(value, (_key, inner) => (isRecord(inner) ? sortedByKey(Object.entries(inner)) : inner)) ?? "null";
8
8
  export const digestOf = (value) => `sha256:${createHash("sha256").update(canonicalJson(value)).digest("hex")}`;
9
+ /** The rubric a run grades by: a --rubric file by its digest, else chaff.yaml's `grade:`. */
10
+ const gradeOf = (settings) => {
11
+ if (settings.rubricFile !== undefined)
12
+ return { file: settings.rubricFile };
13
+ // A bare `grade:` reads as null and is an empty rubric, which grades otherwise than no `grade:` at all.
14
+ return settings.config.grade === undefined ? "none" : settings.config.grade;
15
+ };
9
16
  /** The parts of chaff.yaml that change a finding, a fact or a verdict. Paths and the AI judge do not. */
10
17
  export const settingsOf = (settings) => {
11
18
  const { config } = settings;
@@ -24,8 +31,7 @@ export const settingsOf = (settings) => {
24
31
  requiredSections: config.requiredSections,
25
32
  names: config.names,
26
33
  byPath: config.byPath,
27
- // A bare `grade:` reads as null and is an empty rubric, which grades otherwise than no `grade:` at all.
28
- grade: config.grade === undefined ? "none" : config.grade,
34
+ grade: gradeOf(settings),
29
35
  };
30
36
  };
31
37
  export const stampOf = (versionLines, ruleSet, settings) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"stamp.js","sourceRoot":"","sources":["../../src/grade/stamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,oHAAoH;AACpH,oHAAoH;AAEpH,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE5I,kHAAkH;AAClH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAc,EAAU,EAAE,CACtD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAc,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC;AAE5H,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAU,EAAE,CAAC,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAUhI,yGAAyG;AACzG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAuB,EAA2B,EAAE;IAC7E,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAC5B,OAAO;QACL,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI;QAC7C,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;QACjC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;QAC7B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI;QAC3B,YAAY,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;QACpC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,wGAAwG;QACxG,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;KAC1D,CAAC;AACJ,CAAC,CAAC;AAUF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,YAA+B,EAAE,OAAgB,EAAE,QAAuB,EAAS,EAAE,CAAC,CAAC;IAC7G,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;CACzC,CAAC,CAAC"}
1
+ {"version":3,"file":"stamp.js","sourceRoot":"","sources":["../../src/grade/stamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,oHAAoH;AACpH,oHAAoH;AAEpH,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE5I,kHAAkH;AAClH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAc,EAAU,EAAE,CACtD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAc,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC;AAE5H,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAU,EAAE,CAAC,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAYhI,6FAA6F;AAC7F,MAAM,OAAO,GAAG,CAAC,QAAuB,EAAW,EAAE;IACnD,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC5E,wGAAwG;IACxG,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;AAC9E,CAAC,CAAC;AAEF,yGAAyG;AACzG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAuB,EAA2B,EAAE;IAC7E,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAC5B,OAAO;QACL,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI;QAC7C,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;QACjC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;QAC7B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI;QAC3B,YAAY,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;QACpC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;KACzB,CAAC;AACJ,CAAC,CAAC;AAUF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,YAA+B,EAAE,OAAgB,EAAE,QAAuB,EAAS,EAAE,CAAC,CAAC;IAC7G,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;CACzC,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { Rubric } from "./rubric.ts";
2
+ /** The task names a rubric defines; none without a rubric or without `tasks`. */
3
+ export declare const taskNamesOf: (rubric: Rubric | undefined) => readonly string[];
4
+ /** Each rule id the rubric names and where, from the rubric's top level: `rules`, or `tasks.<name>.rules`. */
5
+ export declare const rubricRuleEntries: (rubric: Rubric | undefined) => readonly {
6
+ readonly path: string;
7
+ readonly id: string;
8
+ }[];
9
+ /**
10
+ * The rubric for an item of `task`. Without a task, the rubric as it is. A task the rubric does not define is refused
11
+ * when the items are read, so here it cannot happen; it throws rather than fall back to the top level silently.
12
+ */
13
+ export declare const rubricForTask: (rubric: Rubric | undefined, task: string | undefined) => Rubric | undefined;
14
+ /** The rule ids an output of `task` is graded by: whose rise in that output is a regression against a baseline. */
15
+ export declare const taskRuleIds: (rubric: Rubric | undefined, task: string | undefined) => ReadonlySet<string>;
16
+ //# sourceMappingURL=task-rubric.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-rubric.d.ts","sourceRoot":"","sources":["../../src/grade/task-rubric.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAO1C,iFAAiF;AACjF,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,GAAG,SAAS,KAAG,SAAS,MAAM,EAAsC,CAAC;AAE/G,8GAA8G;AAC9G,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,GAAG,SAAS,KAAG,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAGrH,CAAC;AAWF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,GAAG,SAAS,EAAE,MAAM,MAAM,GAAG,SAAS,KAAG,MAAM,GAAG,SAK7F,CAAC;AAEF,mHAAmH;AACnH,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,GAAG,SAAS,EAAE,MAAM,MAAM,GAAG,SAAS,KAAG,WAAW,CAAC,MAAM,CACrC,CAAC"}
@@ -0,0 +1,34 @@
1
+ // The rubric one item is graded by: the top-level rubric with its task's rubric laid over it. Pure.
2
+ // A key the task writes replaces the top-level key whole (`facts`, `citations`, `contexts` are not merged field by
3
+ // field); a key it does not write is inherited. `rules` is merged per rule id: the task's entry for an id replaces the
4
+ // top-level entry for that id, and every other top-level id still applies.
5
+ /** The task names a rubric defines; none without a rubric or without `tasks`. */
6
+ export const taskNamesOf = (rubric) => Object.keys(rubric?.tasks ?? {});
7
+ /** Each rule id the rubric names and where, from the rubric's top level: `rules`, or `tasks.<name>.rules`. */
8
+ export const rubricRuleEntries = (rubric) => [
9
+ ...Object.keys(rubric?.rules ?? {}).map((id) => ({ path: "rules", id })),
10
+ ...Object.entries(rubric?.tasks ?? {}).flatMap(([name, task]) => Object.keys(task.rules).map((id) => ({ path: `tasks.${name}.rules`, id }))),
11
+ ];
12
+ const overlay = (top, task) => ({
13
+ rules: { ...top.rules, ...task.rules },
14
+ requiredSections: task.requiredSections ?? top.requiredSections,
15
+ facts: task.facts ?? top.facts,
16
+ citations: task.citations ?? top.citations,
17
+ contexts: task.contexts ?? top.contexts,
18
+ penalty: task.penalty ?? top.penalty,
19
+ });
20
+ /**
21
+ * The rubric for an item of `task`. Without a task, the rubric as it is. A task the rubric does not define is refused
22
+ * when the items are read, so here it cannot happen; it throws rather than fall back to the top level silently.
23
+ */
24
+ export const rubricForTask = (rubric, task) => {
25
+ if (task === undefined)
26
+ return rubric;
27
+ const own = rubric?.tasks?.[task];
28
+ if (rubric === undefined || own === undefined)
29
+ throw new Error(`chaff grade: no rubric for task "${task}"`);
30
+ return overlay(rubric, own);
31
+ };
32
+ /** The rule ids an output of `task` is graded by: whose rise in that output is a regression against a baseline. */
33
+ export const taskRuleIds = (rubric, task) => new Set(Object.keys(rubricForTask(rubric, task)?.rules ?? {}));
34
+ //# sourceMappingURL=task-rubric.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-rubric.js","sourceRoot":"","sources":["../../src/grade/task-rubric.ts"],"names":[],"mappings":"AAEA,oGAAoG;AACpG,mHAAmH;AACnH,uHAAuH;AACvH,2EAA2E;AAE3E,iFAAiF;AACjF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAA0B,EAAqB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;AAE/G,8GAA8G;AAC9G,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAA0B,EAA6D,EAAE,CAAC;IAC1H,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IACxE,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,IAAI,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;CAC7I,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,IAAY,EAAU,EAAE,CAAC,CAAC;IACtD,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;IACtC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,GAAG,CAAC,gBAAgB;IAC/D,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK;IAC9B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS;IAC1C,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ;IACvC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO;CACrC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAA0B,EAAE,IAAwB,EAAsB,EAAE;IACxG,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,MAAM,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,GAAG,CAAC,CAAC;IAC5G,OAAO,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,mHAAmH;AACnH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAA0B,EAAE,IAAwB,EAAuB,EAAE,CACvG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC"}
@@ -9,7 +9,11 @@ export type GradeText = {
9
9
  readonly contextsUnread: (kind: string, reason: string) => string;
10
10
  readonly uncheckedSentences: (count: number) => string;
11
11
  readonly unknownRule: string;
12
- readonly rubricProblem: (problem: RubricProblem) => string;
12
+ /** A problem under chaff.yaml's `grade:`, or, given `file`, under a --rubric file's top level. */
13
+ readonly rubricProblem: (problem: RubricProblem, file?: string) => string;
14
+ /** A --rubric file whose extension is none of .yaml, .yml, .json. */
15
+ readonly rubricFormat: (file: string) => string;
16
+ readonly rubricSyntax: (file: string, why: string) => string;
13
17
  readonly penalty: (total: number) => string;
14
18
  /** The outputs at each level of the AI-likeness quick score. */
15
19
  readonly aiScore: (low: number, medium: number, high: number, notScored: number) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/grade/text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,WAAW,CAAC;AAC9D,OAAO,KAAK,EAAY,aAAa,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAClE,QAAQ,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,MAAM,CAAC;IAC3D,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3F,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACnE,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3D,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,MAAM,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IACzE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IACrG,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAChE,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACpG,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAqEF,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,SAAS,CAmEvC,CAAC"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/grade/text.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,10 @@ const PROBLEM_JA = {
18
18
  "which-source": (problem) => `${lineJa(problem)}番地 ${problem.detail ?? ""} の引用に source がありません。原文が二つ以上あるときは名前を書いてください`,
19
19
  "unknown-language": (problem) => `${lineJa(problem)}language "${problem.detail ?? ""}" は読めません`,
20
20
  "unknown-genre": (problem) => `${lineJa(problem)}genre "${problem.detail ?? ""}" は chaff の知らないジャンルです(chaff genres で一覧)`,
21
+ "not-expect": (problem) => `${lineJa(problem)}${problem.detail ?? ""} は { "facts": ["…"], "absent": ["…"] } の形で、空でない文字列の並びを書いてください`,
22
+ "expect-no-fact": (problem) => `${lineJa(problem)}${problem.detail ?? ""} から事実を読めません(数・日付・時刻・URL・コード・名前・引用のどれか 1 つを書いてください)`,
23
+ "expect-several-facts": (problem) => `${lineJa(problem)}${problem.detail ?? ""} は事実を 2 つ以上含みます(compare が 1 つの事実と読む書き方で、1 項目に 1 つ書いてください)`,
24
+ "unknown-task": (problem) => `${lineJa(problem)}task "${problem.detail ?? ""}" は採点基準の tasks にありません`,
21
25
  empty: () => "採点する出力が 1 行もありません",
22
26
  };
23
27
  const PROBLEM_EN = {
@@ -36,6 +40,10 @@ const PROBLEM_EN = {
36
40
  "which-source": (problem) => `${lineEn(problem)}the citation of ${problem.detail ?? ""} names no source; with two or more sources, name one`,
37
41
  "unknown-language": (problem) => `${lineEn(problem)}language "${problem.detail ?? ""}" cannot be read`,
38
42
  "unknown-genre": (problem) => `${lineEn(problem)}genre "${problem.detail ?? ""}" is not one chaff knows (chaff genres lists them)`,
43
+ "not-expect": (problem) => `${lineEn(problem)}${problem.detail ?? ""} must be { "facts": ["…"], "absent": ["…"] } with non-empty strings`,
44
+ "expect-no-fact": (problem) => `${lineEn(problem)}${problem.detail ?? ""} states no fact chaff can read (write one number, date, time, URL, code, name or quotation)`,
45
+ "expect-several-facts": (problem) => `${lineEn(problem)}${problem.detail ?? ""} states more than one fact (write one per entry, in a form compare reads as one fact)`,
46
+ "unknown-task": (problem) => `${lineEn(problem)}task "${problem.detail ?? ""}" is not among the rubric's tasks`,
39
47
  empty: () => "no output to grade: the file has no item",
40
48
  };
41
49
  const EXPECTED_JA = {
@@ -60,14 +68,16 @@ const EXPECTED_EN = {
60
68
  const aside = (open, inner, close) => (inner === "" ? "" : [open, inner, close].join(""));
61
69
  export const GRADE_TEXT = {
62
70
  ja: {
63
- usage: "使い方: chaff grade <items.jsonl> [--out <results.jsonl>] [--baseline <前の results.jsonl>] [--allow-stamp-mismatch] [--variant-key <欄の名前>] [--format text|json|markdown] [--json] [--compact] [--experimental] [--genre <ジャンル>]",
71
+ usage: "使い方: chaff grade <items.jsonl> [--rubric <rubric.yaml|.json>] [--out <results.jsonl>] [--baseline <前の results.jsonl>] [--allow-stamp-mismatch] [--variant-key <欄の名前>] [--format text|json|markdown] [--json] [--compact] [--experimental] [--genre <ジャンル>]",
64
72
  noReference: "reference が無い(事実は reference と照らす)",
65
73
  noCitations: "citations が無い(chaff は出力から引用を推測しない)",
66
74
  noContexts: "contexts が無い(回答の事実は、検索で取った一節と照らす)",
67
75
  contextsUnread: (kind, reason) => `contexts と照らすとき、${kind} を読み切れなかった(${reason})。その種類の事実は、一節にあっても見つからないことがある`,
68
76
  uncheckedSentences: (count) => `数・日付・名前・引用の無い文 ${String(count)} 件は、contexts に支えられているかを照らしていない(意味を読む必要がある)`,
69
77
  unknownRule: "grade: に書かれているが、chaff の知らないルール",
70
- rubricProblem: (problem) => `chaff.yaml の ${problem.path} は${EXPECTED_JA[problem.expected]}で書いてください(書かれていたのは ${problem.written})`,
78
+ rubricProblem: (problem, file) => `${file ?? "chaff.yaml"} の ${problem.path === "" ? "最上位" : problem.path} は${EXPECTED_JA[problem.expected]}で書いてください(書かれていたのは ${problem.written})`,
79
+ rubricFormat: (file) => `${file}: --rubric のファイルは .yaml・.yml・.json のどれかにしてください`,
80
+ rubricSyntax: (file, why) => `${file} を採点の基準として読めませんでした: ${why}`,
71
81
  penalty: (total) => `減点の和: ${String(total)}`,
72
82
  aiScore: (low, medium, high, notScored) => `AI らしさ: 低 ${String(low)}、中 ${String(medium)}、高 ${String(high)}、測っていない ${String(notScored)}(書いたのが AI かどうかの判定ではありません。合否には入りません)`,
73
83
  noStructure: (source, language) => `原文 ${source} の言語 ${language} のパッケージは文書の構造を読めない`,
@@ -88,14 +98,16 @@ export const GRADE_TEXT = {
88
98
  stamp: "再現の印",
89
99
  },
90
100
  en: {
91
- usage: "usage: chaff grade <items.jsonl> [--out <results.jsonl>] [--baseline <earlier results.jsonl>] [--allow-stamp-mismatch] [--variant-key <field>] [--format text|json|markdown] [--json] [--compact] [--experimental] [--genre <genre>]",
101
+ usage: "usage: chaff grade <items.jsonl> [--rubric <rubric.yaml|.json>] [--out <results.jsonl>] [--baseline <earlier results.jsonl>] [--allow-stamp-mismatch] [--variant-key <field>] [--format text|json|markdown] [--json] [--compact] [--experimental] [--genre <genre>]",
92
102
  noReference: "no reference given (facts are checked against a reference)",
93
103
  noCitations: "no citations given (chaff does not guess quotations from the output)",
94
104
  noContexts: "no contexts given (the output's facts are checked against retrieved passages)",
95
105
  contextsUnread: (kind, reason) => `against contexts, ${kind} could not be fully read (${reason}); a fact of that kind may be in a passage and still not be found`,
96
106
  uncheckedSentences: (count) => `${String(count)} ${count === 1 ? "sentence states" : "sentences state"} no number, date, name or quotation, so their support by contexts is not checked (it needs reading)`,
97
107
  unknownRule: "named under grade: but not a rule chaff knows",
98
- rubricProblem: (problem) => `chaff.yaml: ${problem.path} must be ${EXPECTED_EN[problem.expected]} (found ${problem.written})`,
108
+ rubricProblem: (problem, file) => `${file ?? "chaff.yaml"}: ${problem.path === "" ? "the top level" : problem.path} must be ${EXPECTED_EN[problem.expected]} (found ${problem.written})`,
109
+ rubricFormat: (file) => `${file}: a --rubric file must end in .yaml, .yml or .json`,
110
+ rubricSyntax: (file, why) => `Could not read ${file} as a rubric: ${why}`,
99
111
  penalty: (total) => `Penalty points: ${String(total)}`,
100
112
  aiScore: (low, medium, high, notScored) => `AI-likeness: low ${String(low)}, medium ${String(medium)}, high ${String(high)}, not scored ${String(notScored)} (not a verdict on whether AI wrote them; not part of pass or fail)`,
101
113
  noStructure: (source, language) => `the ${language} package cannot read the structure of source ${source}`,
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/grade/text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/grade/text.ts"],"names":[],"mappings":"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"}
@@ -12,5 +12,10 @@ type ReadToken = {
12
12
  export declare const tokenReadingOf: (token: ReadToken, chars: CharReadings) => string | undefined;
13
13
  /** 語を並べた名前の読み。読めない語が一つでもあれば無い。 */
14
14
  export declare const readingOfWords: (words: readonly ReadToken[], chars: CharReadings) => string | undefined;
15
+ /**
16
+ * 名をもう一通りに読んだもの。解析器は名を別の読みに切ることがある(建太 を タテ と フトシ)。字がどれも givenChars(名の中での
17
+ * 字の読み)にある語はその字の読みをつなぎ、ほかの語は tokenReadingOf で読む。一字の名と、読めない語のある名は読まない。
18
+ */
19
+ export declare const givenNameReadingOf: (words: readonly ReadToken[], givenChars: CharReadings, chars: CharReadings) => string | undefined;
15
20
  export {};
16
21
  //# sourceMappingURL=name-char-reading.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"name-char-reading.d.ts","sourceRoot":"","sources":["../src/name-char-reading.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEvD,eAAO,MAAM,gBAAgB,EAAE,YAAwB,CAAC;AAExD,KAAK,SAAS,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAIrF;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,SAAS,EAAE,OAAO,YAAY,KAAG,MAAM,GAAG,SAI/E,CAAC;AAEF,kCAAkC;AAClC,eAAO,MAAM,cAAc,GAAI,OAAO,SAAS,SAAS,EAAE,EAAE,OAAO,YAAY,KAAG,MAAM,GAAG,SAG1F,CAAC"}
1
+ {"version":3,"file":"name-char-reading.d.ts","sourceRoot":"","sources":["../src/name-char-reading.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEvD,eAAO,MAAM,gBAAgB,EAAE,YAAwB,CAAC;AAExD,KAAK,SAAS,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAIrF;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,SAAS,EAAE,OAAO,YAAY,KAAG,MAAM,GAAG,SAI/E,CAAC;AAEF,kCAAkC;AAClC,eAAO,MAAM,cAAc,GAAI,OAAO,SAAS,SAAS,EAAE,EAAE,OAAO,YAAY,KAAG,MAAM,GAAG,SAG1F,CAAC;AAKF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,SAAS,SAAS,EAAE,EAAE,YAAY,YAAY,EAAE,OAAO,YAAY,KAAG,MAAM,GAAG,SAOxH,CAAC"}
@@ -15,4 +15,19 @@ export const readingOfWords = (words, chars) => {
15
15
  const readings = words.map((token) => tokenReadingOf(token, chars));
16
16
  return words.length > 0 && readings.every(isRead) ? readings.join("") : undefined;
17
17
  };
18
+ /** 名の字の読みで読み直す、名の字数の下限。一字の名(太 を フトシ)は、二字の名の中の読み(健太 の タ)で読まない。 */
19
+ const MIN_GIVEN_LETTERS = 2;
20
+ /**
21
+ * 名をもう一通りに読んだもの。解析器は名を別の読みに切ることがある(建太 を タテ と フトシ)。字がどれも givenChars(名の中での
22
+ * 字の読み)にある語はその字の読みをつなぎ、ほかの語は tokenReadingOf で読む。一字の名と、読めない語のある名は読まない。
23
+ */
24
+ export const givenNameReadingOf = (words, givenChars, chars) => {
25
+ if (words.reduce((letters, token) => letters + [...token.surface].length, 0) < MIN_GIVEN_LETTERS)
26
+ return undefined;
27
+ const readings = words.map((token) => {
28
+ const letters = [...token.surface].map((letter) => givenChars.get(letter));
29
+ return letters.length > 0 && letters.every(isRead) ? letters.join("") : tokenReadingOf(token, chars);
30
+ });
31
+ return readings.every(isRead) ? readings.join("") : undefined;
32
+ };
18
33
  //# sourceMappingURL=name-char-reading.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"name-char-reading.js","sourceRoot":"","sources":["../src/name-char-reading.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,gBAAgB,GAAiB,IAAI,GAAG,EAAE,CAAC;AAIxD,MAAM,MAAM,GAAG,CAAC,OAA2B,EAAqB,EAAE,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,CAAC;AAE3G;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAgB,EAAE,KAAmB,EAAsB,EAAE;IAC1F,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IAChD,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvF,CAAC,CAAC;AAEF,kCAAkC;AAClC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAA2B,EAAE,KAAmB,EAAsB,EAAE;IACrG,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACpE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACpF,CAAC,CAAC"}
1
+ {"version":3,"file":"name-char-reading.js","sourceRoot":"","sources":["../src/name-char-reading.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,gBAAgB,GAAiB,IAAI,GAAG,EAAE,CAAC;AAIxD,MAAM,MAAM,GAAG,CAAC,OAA2B,EAAqB,EAAE,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,CAAC;AAE3G;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAgB,EAAE,KAAmB,EAAsB,EAAE;IAC1F,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IAChD,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvF,CAAC,CAAC;AAEF,kCAAkC;AAClC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAA2B,EAAE,KAAmB,EAAsB,EAAE;IACrG,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACpE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACpF,CAAC,CAAC;AAEF,iEAAiE;AACjE,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAA2B,EAAE,UAAwB,EAAE,KAAmB,EAAsB,EAAE;IACnI,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,iBAAiB;QAAE,OAAO,SAAS,CAAC;IACnH,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACnC,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3E,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvG,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAChE,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ /** 二つの英字の語が、終わりの一字の抜けか足しだけ違うか。足した字が語の形を作る字(s、母音の後ろの n)なら違うと見ない。 */
2
+ export declare const isEndLetterApart: (left: string, right: string) => boolean;
3
+ /**
4
+ * 文書での語の使い方(小文字で)。ordinary は名前と読んだ語のうち小文字で書けばふつうの語(Rental、Green)、common は文書が
5
+ * 小文字で書くか、品詞解析が普通名詞と読む語(hurricane、lake)。
6
+ */
7
+ export type WordUse = {
8
+ readonly ordinary: ReadonlySet<string>;
9
+ readonly common: ReadonlySet<string>;
10
+ };
11
+ export declare const NO_WORD_USE: WordUse;
12
+ /**
13
+ * 名前の語(words、小文字)の at の語を usual と書いた名前があるとき、その違いを書き損じと見るか。違う語が最後の語(姓)なら、
14
+ * 終わりの一字の抜けか足しか、四字以上の一字違い(oneLetterApart)で、前の語がどれも文書の中で普通名詞として書かない語(Rachel、Mr)
15
+ * のとき。Hurricane Hanna と Hurricane Hannah は名前の違う二つの嵐。最後でない語なら、八字以上の終わりの一字の抜けか足しで、名前の
16
+ * 最後の語がふつうの語(Residences、Products)のとき。人の名の終わりの一字だけ違う名前(Christian と Christiane)は別の人のことが多い。
17
+ */
18
+ export declare const isEndWordSlip: (words: readonly string[], at: number, usual: string, use: WordUse, oneLetterApart: (left: string, right: string) => boolean) => boolean;
19
+ //# sourceMappingURL=name-end-letter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"name-end-letter.d.ts","sourceRoot":"","sources":["../src/name-end-letter.ts"],"names":[],"mappings":"AAkBA,mEAAmE;AACnE,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,OAI9D,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC;AAEvG,eAAO,MAAM,WAAW,EAAE,OAAoD,CAAC;AAE/E;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GACxB,OAAO,SAAS,MAAM,EAAE,EACxB,IAAI,MAAM,EACV,OAAO,MAAM,EACb,KAAK,OAAO,EACZ,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,KACvD,OAMF,CAAC"}
@@ -0,0 +1,37 @@
1
+ // 名前の語の終わりの一字の抜けか足し(Whitmore と Whitmor、Hollybrook と Hollybrooke)。ふつうの語なら語の形の違い
2
+ // (Service と Services、America と American)なので、どちらも名前にしか使わない語に限る。
3
+ const LATIN_WORD = /^[a-z]+$/u;
4
+ const VOWEL = /[aeiouy]$/u;
5
+ /** 足すと別の語の形になる字。s は複数と所有(Rental と Rentals)。 */
6
+ const PLURAL_LETTER = "s";
7
+ /** 母音で終わる語に足すと、その土地の人や言葉の語になる字(Korea と Korean、Rica と Rican)。 */
8
+ const DEMONYM_LETTER = "n";
9
+ /** 比べる語の長さ。三字の語(Ann と Anne)は別の名前のことが多い。 */
10
+ const MIN_END_LETTER_LENGTH = 4;
11
+ /** 終わりの一字の抜けか足しを、名前の最後でない語で見る長さ(Hollybrook と Hollybrooke)。 */
12
+ const MIN_END_SLIP_ANYWHERE = 8;
13
+ const isFormLetter = (shorter, added) => added === PLURAL_LETTER || (added === DEMONYM_LETTER && VOWEL.test(shorter));
14
+ /** 二つの英字の語が、終わりの一字の抜けか足しだけ違うか。足した字が語の形を作る字(s、母音の後ろの n)なら違うと見ない。 */
15
+ export const isEndLetterApart = (left, right) => {
16
+ const [shorter, longer] = left.length < right.length ? [left, right] : [right, left];
17
+ if (!LATIN_WORD.test(shorter) || !LATIN_WORD.test(longer) || shorter.length < MIN_END_LETTER_LENGTH)
18
+ return false;
19
+ return longer.length === shorter.length + 1 && longer.startsWith(shorter) && !isFormLetter(shorter, longer.slice(shorter.length));
20
+ };
21
+ export const NO_WORD_USE = { ordinary: new Set(), common: new Set() };
22
+ /**
23
+ * 名前の語(words、小文字)の at の語を usual と書いた名前があるとき、その違いを書き損じと見るか。違う語が最後の語(姓)なら、
24
+ * 終わりの一字の抜けか足しか、四字以上の一字違い(oneLetterApart)で、前の語がどれも文書の中で普通名詞として書かない語(Rachel、Mr)
25
+ * のとき。Hurricane Hanna と Hurricane Hannah は名前の違う二つの嵐。最後でない語なら、八字以上の終わりの一字の抜けか足しで、名前の
26
+ * 最後の語がふつうの語(Residences、Products)のとき。人の名の終わりの一字だけ違う名前(Christian と Christiane)は別の人のことが多い。
27
+ */
28
+ export const isEndWordSlip = (words, at, usual, use, oneLetterApart) => {
29
+ const word = words[at] ?? "";
30
+ const shorter = Math.min(word.length, usual.length);
31
+ if (at < words.length - 1)
32
+ return shorter >= MIN_END_SLIP_ANYWHERE && use.ordinary.has(words.at(-1) ?? "") && isEndLetterApart(word, usual);
33
+ if (words.slice(0, at).some((before) => use.common.has(before)))
34
+ return false;
35
+ return isEndLetterApart(word, usual) || (shorter >= MIN_END_LETTER_LENGTH && oneLetterApart(word, usual));
36
+ };
37
+ //# sourceMappingURL=name-end-letter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"name-end-letter.js","sourceRoot":"","sources":["../src/name-end-letter.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,gEAAgE;AAEhE,MAAM,UAAU,GAAG,WAAW,CAAC;AAC/B,MAAM,KAAK,GAAG,YAAY,CAAC;AAE3B,+CAA+C;AAC/C,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,gEAAgE;AAChE,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,2CAA2C;AAC3C,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,8DAA8D;AAC9D,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEhC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,KAAa,EAAW,EAAE,CAAC,KAAK,KAAK,aAAa,IAAI,CAAC,KAAK,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAE/I,mEAAmE;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,KAAa,EAAW,EAAE;IACvE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACrF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,qBAAqB;QAAE,OAAO,KAAK,CAAC;IAClH,OAAO,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACpI,CAAC,CAAC;AAQF,MAAM,CAAC,MAAM,WAAW,GAAY,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,KAAwB,EACxB,EAAU,EACV,KAAa,EACb,GAAY,EACZ,cAAwD,EAC/C,EAAE;IACX,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,IAAI,qBAAqB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5I,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9E,OAAO,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,qBAAqB,IAAI,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5G,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"name-neighbours.d.ts","sourceRoot":"","sources":["../src/name-neighbours.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAgCtD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,SAAS,WAAW,EAAE,EAAE,QAAQ,MAAM,KAAG,WAAW,EAqBjG,CAAC"}
1
+ {"version":3,"file":"name-neighbours.d.ts","sourceRoot":"","sources":["../src/name-neighbours.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAgCtD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,SAAS,WAAW,EAAE,EAAE,QAAQ,MAAM,KAAG,WAAW,EAsBjG,CAAC"}
@@ -43,11 +43,12 @@ export const withKnownNeighbours = (mentions, source) => {
43
43
  surface: `${before} ${mention.surface}`,
44
44
  offset: mention.offset - 1 - before.length,
45
45
  reading: undefined,
46
+ givenNameReading: undefined,
46
47
  words: [before, ...mention.words],
47
48
  };
48
49
  }
49
50
  if (after !== undefined && known.has(`${mention.surface} ${after}`) && !taken(end + 1, end + 1 + after.length)) {
50
- return { ...mention, surface: `${mention.surface} ${after}`, reading: undefined, words: [...mention.words, after] };
51
+ return { ...mention, surface: `${mention.surface} ${after}`, reading: undefined, givenNameReading: undefined, words: [...mention.words, after] };
51
52
  }
52
53
  return mention;
53
54
  });
@@ -1 +1 @@
1
- {"version":3,"file":"name-neighbours.js","sourceRoot":"","sources":["../src/name-neighbours.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"name-neighbours.js","sourceRoot":"","sources":["../src/name-neighbours.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,12 @@ export type OrganizationWords = {
5
5
  readonly units: ReadonlySet<string>;
6
6
  readonly forms: readonly string[];
7
7
  };
8
+ /**
9
+ * 「所属:経済学部 経済学科 1年」「物件:メゾンかえで 203号室」「振込先:みなと銀行 普通 1234567」のように、項目名とコロンの後ろに
10
+ * 値の組を空白で並べた行で、組と、数で始まる次の組のあいだの空白。値の区切りで、日本語と数字のあいだの空け方ではない。
11
+ * boundary は空けた数字の前の境目(text[offset] が空白)。tokens は文書全体の座標で、base は text の先頭の位置。
12
+ */
13
+ export declare const isFieldSeparator: (text: string, boundary: Boundary, tokens: readonly Token[] | undefined, base: number) => boolean;
8
14
  /**
9
15
  * 「株式会社あおば電子 経営企画部 IR担当」「東京本社 PR室」のように、名前だけを空白で並べた行で、空白の両側がどちらも組織の名前のときの空白。
10
16
  * 名前と名前の区切りで、英字の前後の空け方ではない。文の中の空白(この IT システムは)や、組織の名前でない語のあいだ(生成AI 活用事例、Patch リリース)は区切りと読まない。
@@ -1 +1 @@
1
- {"version":3,"file":"name-separator.d.ts","sourceRoot":"","sources":["../src/name-separator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAQ,KAAK,EAAE,MAAM,aAAa,CAAC;AAK/C,sFAAsF;AACtF,MAAM,MAAM,iBAAiB,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AA6B3G;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,EAAE,UAAU,QAAQ,EAAE,QAAQ,SAAS,KAAK,EAAE,GAAG,SAAS,EAAE,MAAM,MAAM,EAAE,OAAO,iBAAiB,KAAG,OAMhJ,CAAC"}
1
+ {"version":3,"file":"name-separator.d.ts","sourceRoot":"","sources":["../src/name-separator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAQ,KAAK,EAAE,MAAM,aAAa,CAAC;AAK/C,sFAAsF;AACtF,MAAM,MAAM,iBAAiB,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AA4C3G;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,EAAE,UAAU,QAAQ,EAAE,QAAQ,SAAS,KAAK,EAAE,GAAG,SAAS,EAAE,MAAM,MAAM,KAAG,OAUvH,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,EAAE,UAAU,QAAQ,EAAE,QAAQ,SAAS,KAAK,EAAE,GAAG,SAAS,EAAE,MAAM,MAAM,EAAE,OAAO,iBAAiB,KAAG,OAMhJ,CAAC"}
@@ -17,6 +17,35 @@ const tokensIn = (tokens, span, base) => tokens.filter((token) => token.span.sta
17
17
  const isNameLine = (lineTokens) => lineTokens.length > 0 && lineTokens.every((token) => NAME_LINE_POS.has(token.pos));
18
18
  /** 空白で区切った語が、組織の名前か。最後の語が部署・拠点・役目の語(経営企画部、IR担当)か、会社の形の語で始まるか終わる(株式会社ABC)。 */
19
19
  const isOrganizationName = (word, wordTokens, words) => words.units.has(wordTokens.at(-1)?.surface ?? "") || words.forms.some((form) => word.length > form.length && (word.startsWith(form) || word.endsWith(form)));
20
+ /** 行の頭の項目名とコロン(所属:、振込先:)。項目名は空白も数字も含まない短い語。 */
21
+ const FIELD_LABEL = /^[ \t]*(?:[-*+][ \t]+)?[^\s::。\d]{1,12}[::][ \t\u3000]*/u;
22
+ /** 文の終わり。値を文で書いた行(会場:本社 5階で行います。)の空白は、文の中の空け方として数える。 */
23
+ const SENTENCE_END = /[。!?]/u;
24
+ /** 値を句で書いた行(目標:参加者 100人を想定)に出る品詞。名前と番号を並べた値には出ない。 */
25
+ const CLAUSE_POS = new Set(["VERB", "AUX", "ADP"]);
26
+ /** 数の前に書いて量の一部になる語(約 3 か月、およそ 3 日、全 5 店舗)や、文の中の語(本社は 5階)の品詞。 */
27
+ const QUANTITY_LEAD_POS = new Set(["ADJ", "ADV", "ADP", "AUX", "VERB", "SCONJ", "PART"]);
28
+ /** 値の組の最も短い長さ。1 字の語(計 5件)は量の前置き。 */
29
+ const MIN_PART_LENGTH = 2;
30
+ /**
31
+ * 「所属:経済学部 経済学科 1年」「物件:メゾンかえで 203号室」「振込先:みなと銀行 普通 1234567」のように、項目名とコロンの後ろに
32
+ * 値の組を空白で並べた行で、組と、数で始まる次の組のあいだの空白。値の区切りで、日本語と数字のあいだの空け方ではない。
33
+ * boundary は空けた数字の前の境目(text[offset] が空白)。tokens は文書全体の座標で、base は text の先頭の位置。
34
+ */
35
+ export const isFieldSeparator = (text, boundary, tokens, base) => {
36
+ if (tokens === undefined || boundary.kind !== "before-digit" || !boundary.spaced)
37
+ return false;
38
+ const line = lineAround(text, boundary.offset);
39
+ const label = FIELD_LABEL.exec(text.slice(line.start, line.end));
40
+ if (label === null || SENTENCE_END.test(text.slice(line.start, line.end)))
41
+ return false;
42
+ const valueStart = line.start + label[0].length;
43
+ if (tokensIn(tokens, { start: valueStart, end: line.end }, base).some((token) => CLAUSE_POS.has(token.pos)))
44
+ return false;
45
+ const partStart = Math.max(wordStart(text, boundary.offset), valueStart);
46
+ const partEnd = tokens.find((token) => token.span.end === base + boundary.offset);
47
+ return boundary.offset - partStart >= MIN_PART_LENGTH && partEnd !== undefined && !QUANTITY_LEAD_POS.has(partEnd.pos);
48
+ };
20
49
  /**
21
50
  * 「株式会社あおば電子 経営企画部 IR担当」「東京本社 PR室」のように、名前だけを空白で並べた行で、空白の両側がどちらも組織の名前のときの空白。
22
51
  * 名前と名前の区切りで、英字の前後の空け方ではない。文の中の空白(この IT システムは)や、組織の名前でない語のあいだ(生成AI 活用事例、Patch リリース)は区切りと読まない。