open-agreements 0.7.5 → 0.7.6

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 (333) hide show
  1. package/README.de.md +300 -255
  2. package/README.es.md +301 -254
  3. package/README.md +389 -95
  4. package/README.pt-br.md +301 -254
  5. package/README.template.md +333 -0
  6. package/README.zh.md +300 -253
  7. package/SECURITY.md +34 -0
  8. package/content/recipes/nvca-stock-purchase-agreement/README.md +39 -0
  9. package/content/recipes/nvca-voting-agreement/README.md +43 -0
  10. package/content/templates/bonterms-mutual-nda/README.md +2 -2
  11. package/content/templates/bonterms-mutual-nda/metadata.yaml +5 -11
  12. package/content/templates/bonterms-professional-services-agreement/README.md +2 -2
  13. package/content/templates/bonterms-professional-services-agreement/metadata.yaml +2 -2
  14. package/content/templates/closing-checklist/template.docx +0 -0
  15. package/content/templates/closing-checklist/template.md +30 -0
  16. package/content/templates/common-paper-ai-addendum/template.docx +0 -0
  17. package/content/templates/common-paper-ai-addendum-in-app/template.docx +0 -0
  18. package/content/templates/common-paper-csa-with-ai/template.docx +0 -0
  19. package/content/templates/common-paper-independent-contractor-agreement/template.docx +0 -0
  20. package/content/templates/common-paper-mutual-nda/README.md +28 -0
  21. package/content/templates/common-paper-one-way-nda/metadata.yaml +1 -1
  22. package/content/templates/common-paper-term-sheet/template.docx +0 -0
  23. package/content/templates/openagreements-board-consent-safe/.template.generated.json +74 -0
  24. package/content/templates/openagreements-board-consent-safe/README.md +61 -0
  25. package/content/templates/openagreements-board-consent-safe/metadata.yaml +53 -0
  26. package/content/templates/openagreements-board-consent-safe/reference-source.docx +0 -0
  27. package/content/templates/openagreements-board-consent-safe/template.docx +0 -0
  28. package/content/templates/openagreements-board-consent-safe/template.md +66 -0
  29. package/content/templates/openagreements-due-diligence-request-list/README.md +68 -0
  30. package/content/templates/openagreements-due-diligence-request-list/metadata.yaml +300 -0
  31. package/content/templates/openagreements-due-diligence-request-list/template.docx +0 -0
  32. package/content/templates/openagreements-due-diligence-request-list/template.md +318 -0
  33. package/content/templates/openagreements-employee-ip-inventions-assignment/.template.generated.json +230 -0
  34. package/content/templates/openagreements-employee-ip-inventions-assignment/metadata.yaml +1 -1
  35. package/content/templates/openagreements-employee-ip-inventions-assignment/template.docx +0 -0
  36. package/content/templates/openagreements-employee-ip-inventions-assignment/template.md +96 -35
  37. package/content/templates/openagreements-employment-confidentiality-acknowledgement/README.md +1 -1
  38. package/content/templates/openagreements-employment-confidentiality-acknowledgement/metadata.yaml +2 -2
  39. package/content/templates/openagreements-employment-confidentiality-acknowledgement/template.docx +0 -0
  40. package/content/templates/openagreements-employment-confidentiality-acknowledgement/template.json +75 -0
  41. package/content/templates/openagreements-employment-confidentiality-acknowledgement/template.md +8 -4
  42. package/content/templates/openagreements-employment-offer-letter/.template.generated.json +224 -0
  43. package/content/templates/openagreements-employment-offer-letter/README.md +65 -1
  44. package/content/templates/openagreements-employment-offer-letter/metadata.yaml +1 -1
  45. package/content/templates/openagreements-employment-offer-letter/template.docx +0 -0
  46. package/content/templates/openagreements-employment-offer-letter/template.md +70 -30
  47. package/content/templates/openagreements-restrictive-covenant-florida/.template.generated.json +456 -0
  48. package/content/templates/openagreements-restrictive-covenant-florida/README.md +141 -0
  49. package/content/templates/openagreements-restrictive-covenant-florida/metadata.yaml +419 -0
  50. package/content/templates/openagreements-restrictive-covenant-florida/template.docx +0 -0
  51. package/content/templates/openagreements-restrictive-covenant-florida/template.md +233 -0
  52. package/content/templates/openagreements-restrictive-covenant-wyoming/.template.generated.json +399 -0
  53. package/content/templates/openagreements-restrictive-covenant-wyoming/metadata.yaml +69 -12
  54. package/content/templates/openagreements-restrictive-covenant-wyoming/template.docx +0 -0
  55. package/content/templates/openagreements-restrictive-covenant-wyoming/template.md +110 -59
  56. package/content/templates/openagreements-stockholder-consent-safe/.template.generated.json +74 -0
  57. package/content/templates/openagreements-stockholder-consent-safe/README.md +62 -0
  58. package/content/templates/openagreements-stockholder-consent-safe/metadata.yaml +53 -0
  59. package/content/templates/openagreements-stockholder-consent-safe/reference-source.docx +0 -0
  60. package/content/templates/openagreements-stockholder-consent-safe/template.docx +0 -0
  61. package/content/templates/openagreements-stockholder-consent-safe/template.md +62 -0
  62. package/content/templates/working-group-list/template.docx +0 -0
  63. package/content/templates/working-group-list/template.md +18 -0
  64. package/dist/cli/index.js.map +1 -1
  65. package/dist/commands/fill.d.ts +1 -1
  66. package/dist/commands/fill.d.ts.map +1 -1
  67. package/dist/commands/fill.js +4 -1
  68. package/dist/commands/fill.js.map +1 -1
  69. package/dist/commands/list.js +10 -0
  70. package/dist/commands/list.js.map +1 -1
  71. package/dist/commands/recipe.js.map +1 -1
  72. package/dist/core/employment/jurisdiction-rules.js +2 -2
  73. package/dist/core/employment/jurisdiction-rules.js.map +1 -1
  74. package/dist/core/employment/memo.d.ts +1 -1
  75. package/dist/core/employment/memo.d.ts.map +1 -1
  76. package/dist/core/employment/memo.js +14 -6
  77. package/dist/core/employment/memo.js.map +1 -1
  78. package/dist/core/engine.d.ts.map +1 -1
  79. package/dist/core/engine.js +28 -0
  80. package/dist/core/engine.js.map +1 -1
  81. package/dist/core/fill-pipeline.d.ts +30 -5
  82. package/dist/core/fill-pipeline.d.ts.map +1 -1
  83. package/dist/core/fill-pipeline.js +173 -9
  84. package/dist/core/fill-pipeline.js.map +1 -1
  85. package/dist/core/humanize-docx.d.ts +21 -0
  86. package/dist/core/humanize-docx.d.ts.map +1 -0
  87. package/dist/core/humanize-docx.js +492 -0
  88. package/dist/core/humanize-docx.js.map +1 -0
  89. package/dist/core/metadata.d.ts +118 -65
  90. package/dist/core/metadata.d.ts.map +1 -1
  91. package/dist/core/metadata.js +268 -13
  92. package/dist/core/metadata.js.map +1 -1
  93. package/dist/core/recipe/bracket-normalizer.d.ts +1 -1
  94. package/dist/core/recipe/bracket-normalizer.d.ts.map +1 -1
  95. package/dist/core/recipe/bracket-normalizer.js +3 -0
  96. package/dist/core/recipe/bracket-normalizer.js.map +1 -1
  97. package/dist/core/recipe/computed.d.ts +1 -1
  98. package/dist/core/recipe/computed.d.ts.map +1 -1
  99. package/dist/core/recipe/index.d.ts.map +1 -1
  100. package/dist/core/recipe/index.js +22 -4
  101. package/dist/core/recipe/index.js.map +1 -1
  102. package/dist/core/recipe/types.d.ts +1 -1
  103. package/dist/core/recipe/types.d.ts.map +1 -1
  104. package/dist/core/template-listing.d.ts +6 -8
  105. package/dist/core/template-listing.d.ts.map +1 -1
  106. package/dist/core/template-listing.js +24 -0
  107. package/dist/core/template-listing.js.map +1 -1
  108. package/dist/core/unified-pipeline.d.ts +2 -0
  109. package/dist/core/unified-pipeline.d.ts.map +1 -1
  110. package/dist/core/unified-pipeline.js +19 -1
  111. package/dist/core/unified-pipeline.js.map +1 -1
  112. package/dist/core/validation/template.d.ts +32 -0
  113. package/dist/core/validation/template.d.ts.map +1 -1
  114. package/dist/core/validation/template.js +163 -3
  115. package/dist/core/validation/template.js.map +1 -1
  116. package/dist/index.d.ts +1 -0
  117. package/dist/index.d.ts.map +1 -1
  118. package/dist/index.js +2 -0
  119. package/dist/index.js.map +1 -1
  120. package/package.json +26 -12
  121. package/skills/canonical-markdown-authoring/CONNECTORS.md +67 -0
  122. package/skills/canonical-markdown-authoring/SKILL.md +565 -0
  123. package/skills/client-email/SKILL.md +2 -0
  124. package/skills/cloud-service-agreement/CONNECTORS.md +2 -2
  125. package/skills/cloud-service-agreement/SKILL.md +38 -1
  126. package/skills/cloud-service-agreement/template-filling-execution.md +2 -2
  127. package/skills/data-privacy-agreement/CONNECTORS.md +2 -2
  128. package/skills/data-privacy-agreement/SKILL.md +2 -0
  129. package/skills/delaware-franchise-tax/SKILL.md +2 -0
  130. package/skills/edit-docx-agreement/SKILL.md +2 -0
  131. package/skills/employment-contract/CONNECTORS.md +2 -2
  132. package/skills/employment-contract/SKILL.md +2 -0
  133. package/skills/iso-27001-evidence-collection/SKILL.md +2 -0
  134. package/skills/iso-27001-internal-audit/SKILL.md +2 -0
  135. package/skills/nda/CONNECTORS.md +2 -2
  136. package/skills/nda/SKILL.md +45 -1
  137. package/skills/nda/template-filling-execution.md +12 -6
  138. package/skills/non-compete-contract-explainer/SKILL.md +107 -0
  139. package/skills/non-compete-contract-explainer/content/wyoming.md +286 -0
  140. package/skills/non-compete-contract-explainer/manifest.json +18 -0
  141. package/skills/open-agreements/CONNECTORS.md +2 -2
  142. package/skills/open-agreements/SKILL.md +165 -67
  143. package/skills/open-agreements/template-filling-execution.md +2 -2
  144. package/skills/recipe-quality-audit/SKILL.md +2 -0
  145. package/skills/safe/CONNECTORS.md +2 -2
  146. package/skills/safe/SKILL.md +38 -1
  147. package/skills/safe/template-filling-execution.md +2 -2
  148. package/skills/services-agreement/CONNECTORS.md +2 -2
  149. package/skills/services-agreement/SKILL.md +40 -1
  150. package/skills/services-agreement/template-filling-execution.md +81 -0
  151. package/skills/shared/template-filling-execution.md +2 -2
  152. package/skills/soc2-readiness/SKILL.md +2 -0
  153. package/skills/unit-test-philosophy/SKILL.md +3 -0
  154. package/skills/venture-financing/CONNECTORS.md +2 -2
  155. package/skills/venture-financing/SKILL.md +2 -0
  156. package/content/templates/openagreements-restrictive-covenant-wyoming/practice-note.md +0 -103
  157. package/node_modules/@xmldom/xmldom/CHANGELOG.md +0 -939
  158. package/node_modules/@xmldom/xmldom/LICENSE +0 -8
  159. package/node_modules/@xmldom/xmldom/SECURITY.md +0 -50
  160. package/node_modules/@xmldom/xmldom/index.d.ts +0 -1664
  161. package/node_modules/@xmldom/xmldom/lib/.eslintrc.yml +0 -3
  162. package/node_modules/@xmldom/xmldom/lib/conventions.js +0 -429
  163. package/node_modules/@xmldom/xmldom/lib/dom-parser.js +0 -586
  164. package/node_modules/@xmldom/xmldom/lib/dom.js +0 -3192
  165. package/node_modules/@xmldom/xmldom/lib/entities.js +0 -2171
  166. package/node_modules/@xmldom/xmldom/lib/errors.js +0 -202
  167. package/node_modules/@xmldom/xmldom/lib/grammar.js +0 -533
  168. package/node_modules/@xmldom/xmldom/lib/index.js +0 -41
  169. package/node_modules/@xmldom/xmldom/lib/sax.js +0 -929
  170. package/node_modules/@xmldom/xmldom/package.json +0 -74
  171. package/node_modules/@xmldom/xmldom/readme.md +0 -364
  172. package/node_modules/core-util-is/LICENSE +0 -19
  173. package/node_modules/core-util-is/README.md +0 -3
  174. package/node_modules/core-util-is/lib/util.js +0 -107
  175. package/node_modules/core-util-is/package.json +0 -38
  176. package/node_modules/immediate/LICENSE.txt +0 -20
  177. package/node_modules/immediate/README.md +0 -93
  178. package/node_modules/immediate/dist/immediate.js +0 -75
  179. package/node_modules/immediate/dist/immediate.min.js +0 -1
  180. package/node_modules/immediate/lib/browser.js +0 -69
  181. package/node_modules/immediate/lib/index.js +0 -73
  182. package/node_modules/immediate/package.json +0 -42
  183. package/node_modules/inherits/LICENSE +0 -16
  184. package/node_modules/inherits/README.md +0 -42
  185. package/node_modules/inherits/inherits.js +0 -9
  186. package/node_modules/inherits/inherits_browser.js +0 -27
  187. package/node_modules/inherits/package.json +0 -29
  188. package/node_modules/isarray/.npmignore +0 -1
  189. package/node_modules/isarray/.travis.yml +0 -4
  190. package/node_modules/isarray/Makefile +0 -6
  191. package/node_modules/isarray/README.md +0 -60
  192. package/node_modules/isarray/component.json +0 -19
  193. package/node_modules/isarray/index.js +0 -5
  194. package/node_modules/isarray/package.json +0 -45
  195. package/node_modules/isarray/test.js +0 -20
  196. package/node_modules/jszip/.codeclimate.yml +0 -16
  197. package/node_modules/jszip/.editorconfig +0 -8
  198. package/node_modules/jszip/.eslintrc.js +0 -43
  199. package/node_modules/jszip/.github/workflows/pr.yaml +0 -58
  200. package/node_modules/jszip/.jekyll-metadata +0 -0
  201. package/node_modules/jszip/.travis.yml +0 -17
  202. package/node_modules/jszip/CHANGES.md +0 -204
  203. package/node_modules/jszip/LICENSE.markdown +0 -651
  204. package/node_modules/jszip/README.markdown +0 -33
  205. package/node_modules/jszip/deps.js +0 -37
  206. package/node_modules/jszip/dist/jszip.js +0 -11577
  207. package/node_modules/jszip/dist/jszip.min.js +0 -13
  208. package/node_modules/jszip/graph.svg +0 -601
  209. package/node_modules/jszip/index.d.ts +0 -330
  210. package/node_modules/jszip/lib/base64.js +0 -106
  211. package/node_modules/jszip/lib/compressedObject.js +0 -74
  212. package/node_modules/jszip/lib/compressions.js +0 -14
  213. package/node_modules/jszip/lib/crc32.js +0 -77
  214. package/node_modules/jszip/lib/defaults.js +0 -11
  215. package/node_modules/jszip/lib/external.js +0 -18
  216. package/node_modules/jszip/lib/flate.js +0 -85
  217. package/node_modules/jszip/lib/generate/ZipFileWorker.js +0 -539
  218. package/node_modules/jszip/lib/generate/index.js +0 -57
  219. package/node_modules/jszip/lib/index.js +0 -55
  220. package/node_modules/jszip/lib/license_header.js +0 -11
  221. package/node_modules/jszip/lib/load.js +0 -88
  222. package/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +0 -74
  223. package/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +0 -42
  224. package/node_modules/jszip/lib/nodejsUtils.js +0 -57
  225. package/node_modules/jszip/lib/object.js +0 -384
  226. package/node_modules/jszip/lib/readable-stream-browser.js +0 -10
  227. package/node_modules/jszip/lib/reader/ArrayReader.js +0 -57
  228. package/node_modules/jszip/lib/reader/DataReader.js +0 -116
  229. package/node_modules/jszip/lib/reader/NodeBufferReader.js +0 -19
  230. package/node_modules/jszip/lib/reader/StringReader.js +0 -38
  231. package/node_modules/jszip/lib/reader/Uint8ArrayReader.js +0 -22
  232. package/node_modules/jszip/lib/reader/readerFor.js +0 -28
  233. package/node_modules/jszip/lib/signature.js +0 -7
  234. package/node_modules/jszip/lib/stream/ConvertWorker.js +0 -26
  235. package/node_modules/jszip/lib/stream/Crc32Probe.js +0 -24
  236. package/node_modules/jszip/lib/stream/DataLengthProbe.js +0 -29
  237. package/node_modules/jszip/lib/stream/DataWorker.js +0 -116
  238. package/node_modules/jszip/lib/stream/GenericWorker.js +0 -263
  239. package/node_modules/jszip/lib/stream/StreamHelper.js +0 -214
  240. package/node_modules/jszip/lib/support.js +0 -38
  241. package/node_modules/jszip/lib/utf8.js +0 -275
  242. package/node_modules/jszip/lib/utils.js +0 -501
  243. package/node_modules/jszip/lib/zipEntries.js +0 -261
  244. package/node_modules/jszip/lib/zipEntry.js +0 -293
  245. package/node_modules/jszip/lib/zipObject.js +0 -133
  246. package/node_modules/jszip/package.json +0 -67
  247. package/node_modules/jszip/sponsors.md +0 -21
  248. package/node_modules/jszip/tsconfig.json +0 -101
  249. package/node_modules/jszip/vendor/FileSaver.js +0 -247
  250. package/node_modules/lie/README.md +0 -62
  251. package/node_modules/lie/dist/lie.js +0 -350
  252. package/node_modules/lie/dist/lie.min.js +0 -1
  253. package/node_modules/lie/dist/lie.polyfill.js +0 -358
  254. package/node_modules/lie/dist/lie.polyfill.min.js +0 -1
  255. package/node_modules/lie/lib/browser.js +0 -273
  256. package/node_modules/lie/lib/index.js +0 -298
  257. package/node_modules/lie/license.md +0 -7
  258. package/node_modules/lie/lie.d.ts +0 -244
  259. package/node_modules/lie/package.json +0 -69
  260. package/node_modules/lie/polyfill.js +0 -4
  261. package/node_modules/pako/LICENSE +0 -21
  262. package/node_modules/pako/README.md +0 -191
  263. package/node_modules/pako/dist/pako.js +0 -6818
  264. package/node_modules/pako/dist/pako.min.js +0 -1
  265. package/node_modules/pako/dist/pako_deflate.js +0 -3997
  266. package/node_modules/pako/dist/pako_deflate.min.js +0 -1
  267. package/node_modules/pako/dist/pako_inflate.js +0 -3300
  268. package/node_modules/pako/dist/pako_inflate.min.js +0 -1
  269. package/node_modules/pako/index.js +0 -14
  270. package/node_modules/pako/lib/deflate.js +0 -400
  271. package/node_modules/pako/lib/inflate.js +0 -423
  272. package/node_modules/pako/lib/utils/common.js +0 -105
  273. package/node_modules/pako/lib/utils/strings.js +0 -187
  274. package/node_modules/pako/lib/zlib/README +0 -59
  275. package/node_modules/pako/lib/zlib/adler32.js +0 -51
  276. package/node_modules/pako/lib/zlib/constants.js +0 -68
  277. package/node_modules/pako/lib/zlib/crc32.js +0 -59
  278. package/node_modules/pako/lib/zlib/deflate.js +0 -1874
  279. package/node_modules/pako/lib/zlib/gzheader.js +0 -58
  280. package/node_modules/pako/lib/zlib/inffast.js +0 -345
  281. package/node_modules/pako/lib/zlib/inflate.js +0 -1556
  282. package/node_modules/pako/lib/zlib/inftrees.js +0 -343
  283. package/node_modules/pako/lib/zlib/messages.js +0 -32
  284. package/node_modules/pako/lib/zlib/trees.js +0 -1222
  285. package/node_modules/pako/lib/zlib/zstream.js +0 -47
  286. package/node_modules/pako/package.json +0 -44
  287. package/node_modules/process-nextick-args/index.js +0 -45
  288. package/node_modules/process-nextick-args/license.md +0 -19
  289. package/node_modules/process-nextick-args/package.json +0 -25
  290. package/node_modules/process-nextick-args/readme.md +0 -18
  291. package/node_modules/readable-stream/.travis.yml +0 -34
  292. package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  293. package/node_modules/readable-stream/GOVERNANCE.md +0 -136
  294. package/node_modules/readable-stream/LICENSE +0 -47
  295. package/node_modules/readable-stream/README.md +0 -58
  296. package/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  297. package/node_modules/readable-stream/duplex-browser.js +0 -1
  298. package/node_modules/readable-stream/duplex.js +0 -1
  299. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  300. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  301. package/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  302. package/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  303. package/node_modules/readable-stream/lib/_stream_writable.js +0 -685
  304. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -78
  305. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -84
  306. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  307. package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  308. package/node_modules/readable-stream/package.json +0 -52
  309. package/node_modules/readable-stream/passthrough.js +0 -1
  310. package/node_modules/readable-stream/readable-browser.js +0 -7
  311. package/node_modules/readable-stream/readable.js +0 -19
  312. package/node_modules/readable-stream/transform.js +0 -1
  313. package/node_modules/readable-stream/writable-browser.js +0 -1
  314. package/node_modules/readable-stream/writable.js +0 -8
  315. package/node_modules/safe-buffer/LICENSE +0 -21
  316. package/node_modules/safe-buffer/README.md +0 -584
  317. package/node_modules/safe-buffer/index.d.ts +0 -187
  318. package/node_modules/safe-buffer/index.js +0 -62
  319. package/node_modules/safe-buffer/package.json +0 -37
  320. package/node_modules/setimmediate/LICENSE.txt +0 -20
  321. package/node_modules/setimmediate/package.json +0 -30
  322. package/node_modules/setimmediate/setImmediate.js +0 -186
  323. package/node_modules/string_decoder/.travis.yml +0 -50
  324. package/node_modules/string_decoder/LICENSE +0 -48
  325. package/node_modules/string_decoder/README.md +0 -47
  326. package/node_modules/string_decoder/lib/string_decoder.js +0 -296
  327. package/node_modules/string_decoder/package.json +0 -31
  328. package/node_modules/util-deprecate/History.md +0 -16
  329. package/node_modules/util-deprecate/LICENSE +0 -24
  330. package/node_modules/util-deprecate/README.md +0 -53
  331. package/node_modules/util-deprecate/browser.js +0 -67
  332. package/node_modules/util-deprecate/node.js +0 -6
  333. package/node_modules/util-deprecate/package.json +0 -27
@@ -31,6 +31,85 @@ function extractDocxText(docxPath) {
31
31
  }
32
32
  return paragraphs.join('\n');
33
33
  }
34
+ /** Decode the handful of XML entities that OOXML escaping can introduce into
35
+ * `<w:t>` text (notably `&amp;` for `&` in a URL), so a captured bracket URL
36
+ * compares equal to the raw `authority_url` from metadata.yaml. */
37
+ function decodeXmlEntities(value) {
38
+ return value
39
+ .replace(/&lt;/g, '<')
40
+ .replace(/&gt;/g, '>')
41
+ .replace(/&quot;/g, '"')
42
+ .replace(/&apos;/g, "'")
43
+ .replace(/&amp;/g, '&');
44
+ }
45
+ /**
46
+ * Enforce the `statutory_compliance_representation` contract against the rendered
47
+ * template text. This is the load-bearing guard that the decided `confirm=`
48
+ * behavior actually shipped — three checks per field:
49
+ *
50
+ * 1. The clause renders the highlighted `[CONFIRM before signing: …; see <url>]`
51
+ * bracket gated on `{IF !<field>}`. Presence of a bare `{IF !field}` is NOT
52
+ * sufficient (the legacy `when=field omitted="…"` mechanism also emits one),
53
+ * so the negated conditional MUST be immediately followed by the literal
54
+ * bracket.
55
+ * 2. The URL and note inside the bracket EQUAL the field's metadata
56
+ * `authority_url` / `confirm_note`. These now have a single authoring source
57
+ * (metadata.yaml — the directive no longer restates them), so this is no
58
+ * longer an author-drift check between two hand-edited files. It is an
59
+ * integrity check between metadata.yaml and the COMMITTED rendered artifact:
60
+ * `validateTemplate` scans the committed `template.docx`, so a stale DOCX (or
61
+ * `.template.generated.json`) — e.g. a metadata edit shipped without
62
+ * regenerating — is caught here, as are hand-authored JSON templates that
63
+ * carry `confirm`/`authority_url`/`confirm_note` directly. Equality, not
64
+ * substring: a value with an extra suffix must fail.
65
+ * 3. The clause body always renders — i.e. the affirmative `{IF <field>}` form
66
+ * is absent. A `confirm=` clause only ever emits `{IF !<field>}`; a legacy
67
+ * `when=<field>` clause wraps its body in `{IF <field>}`. Asserting the
68
+ * affirmative form is absent proves the body is unconditional and closes the
69
+ * spoof where an `omitted="[CONFIRM …]"` string mimics the bracket.
70
+ */
71
+ export function checkStatutoryComplianceReps(searchableText, fields, errors) {
72
+ const scrFields = fields.filter((f) => f.statutory_compliance_representation === true);
73
+ if (scrFields.length === 0)
74
+ return;
75
+ // Capture the field, the note, and the URL. The note uses a lazy `[\s\S]*?` so
76
+ // a literal `]` inside it does not truncate the match; the URL is the
77
+ // non-space, non-`]` run after "; see ".
78
+ const confirmRe = /\{IF !(\w+)\}\s*\[CONFIRM before signing: ([\s\S]*?); see ([^\]\s]+)\]/g;
79
+ const bracketByField = new Map();
80
+ let match;
81
+ while ((match = confirmRe.exec(searchableText)) !== null) {
82
+ bracketByField.set(match[1], {
83
+ note: decodeXmlEntities(match[2]),
84
+ url: decodeXmlEntities(match[3]),
85
+ });
86
+ }
87
+ for (const field of scrFields) {
88
+ const bracket = bracketByField.get(field.name);
89
+ if (bracket === undefined) {
90
+ errors.push(`statutory_compliance_representation field "${field.name}" must be gated by a clause confirm= — ` +
91
+ `no "{IF !${field.name}} [CONFIRM before signing: …; see <url>]" bracket found in the rendered template`);
92
+ continue;
93
+ }
94
+ const { note, url } = bracket;
95
+ if (field.authority_url && url !== field.authority_url) {
96
+ errors.push(`statutory_compliance_representation field "${field.name}" authority_url ` +
97
+ `("${field.authority_url}") does not match the URL in its rendered [CONFIRM …] bracket ` +
98
+ `("${url}") — metadata.yaml and the committed rendered template have drifted (regenerate the template)`);
99
+ }
100
+ if (field.confirm_note && note !== field.confirm_note) {
101
+ errors.push(`statutory_compliance_representation field "${field.name}" confirm_note ` +
102
+ `("${field.confirm_note}") does not match the note in its rendered [CONFIRM …] bracket ` +
103
+ `("${note}") — metadata.yaml and the committed rendered template have drifted (regenerate the template)`);
104
+ }
105
+ // The recital body must render unconditionally: a confirm= clause never
106
+ // wraps its body in an affirmative {IF <field>}.
107
+ if (searchableText.includes(`{IF ${field.name}}`)) {
108
+ errors.push(`statutory_compliance_representation field "${field.name}" must use confirm= (the recital body ` +
109
+ `always renders); found an affirmative "{IF ${field.name}}" indicating legacy when=/omitted gating`);
110
+ }
111
+ }
112
+ }
34
113
  /**
35
114
  * Validate that a template's metadata fields match the placeholders in its DOCX file.
36
115
  */
@@ -60,6 +139,29 @@ export function validateTemplate(templateDir, templateId) {
60
139
  }
61
140
  const metadataFieldNames = new Set(metadata.fields.map((f) => f.name));
62
141
  const priorityFieldNames = new Set(metadata.priority_fields);
142
+ const multiselectFieldNames = new Set(metadata.fields
143
+ .filter((field) => field.type === 'multiselect')
144
+ .map((field) => field.name));
145
+ const derivedBooleanMultiselects = metadata.fields.filter((field) => field.type === 'multiselect' && field.derive_booleans === true);
146
+ // Map from multiselect field name → set of derived `<option>_enabled` keys.
147
+ // Used below to suppress the "field not in DOCX" warning ONLY when at least
148
+ // one of the field's derived keys is actually referenced in the template.
149
+ // A derive_booleans multiselect with zero derived references is genuinely
150
+ // unused and should still warn (or error if priority-listed).
151
+ const derivedKeysByField = new Map(derivedBooleanMultiselects.map((field) => [
152
+ field.name,
153
+ new Set((field.options ?? []).map((option) => `${option}_enabled`)),
154
+ ]));
155
+ const rejectDirectMultiselectConditionals = (foundConditionalFields) => {
156
+ for (const fieldName of multiselectFieldNames) {
157
+ if (!foundConditionalFields.has(fieldName)) {
158
+ continue;
159
+ }
160
+ errors.push(`Multiselect field "${fieldName}" must not be referenced directly in {IF ${fieldName}} ` +
161
+ `(empty arrays are truthy); use derived <option>_enabled keys ` +
162
+ `(when derive_booleans: true) or restructure your template logic.`);
163
+ }
164
+ };
63
165
  // Check if this template uses declarative replacements
64
166
  const replacementsPath = join(templateDir, 'replacements.json');
65
167
  const hasReplacements = existsSync(replacementsPath);
@@ -115,8 +217,19 @@ export function validateTemplate(templateDir, templateId) {
115
217
  while ((docxCondMatch = docxConditionalRegex.exec(docxText)) !== null) {
116
218
  foundConditionalFields.add(docxCondMatch[1]);
117
219
  }
220
+ rejectDirectMultiselectConditionals(foundConditionalFields);
118
221
  // Check metadata fields are covered by tags
119
222
  for (const fieldName of metadataFieldNames) {
223
+ const derivedKeys = derivedKeysByField.get(fieldName);
224
+ if (derivedKeys) {
225
+ // Suppress coverage warning ONLY if at least one derived key is
226
+ // actually referenced. Otherwise the multiselect is dead weight and
227
+ // the warning/error should fire normally.
228
+ const anyDerivedReferenced = [...derivedKeys].some((key) => foundTags.has(key) || foundConditionalFields.has(key));
229
+ if (anyDerivedReferenced) {
230
+ continue;
231
+ }
232
+ }
120
233
  const inTags = foundTags.has(fieldName) || foundConditionalFields.has(fieldName);
121
234
  if (!inTags) {
122
235
  if (priorityFieldNames.has(fieldName)) {
@@ -142,6 +255,9 @@ export function validateTemplate(templateDir, templateId) {
142
255
  }
143
256
  }
144
257
  }
258
+ // Confirm brackets may be injected via replacement values, so search both
259
+ // the original DOCX text and the replacement values.
260
+ checkStatutoryComplianceReps(`${docxText}\n${Object.values(replacements).join('\n')}`, metadata.fields, errors);
145
261
  }
146
262
  else {
147
263
  // Original behavior: scan DOCX text directly for {tags}
@@ -158,11 +274,45 @@ export function validateTemplate(templateDir, templateId) {
158
274
  while ((condMatch = conditionalRegex.exec(text)) !== null) {
159
275
  foundConditionalFields.add(condMatch[1]);
160
276
  }
161
- // Extract array field names from FOR loop constructs
162
- const forLoopRegex = /\{FOR \w+ IN (\w+)\}/g;
277
+ rejectDirectMultiselectConditionals(foundConditionalFields);
278
+ // Extract array field names + item bindings from FOR loop constructs.
279
+ // Each loop has shape `{FOR <item> IN <field>}` and references look like
280
+ // `{$<item>.<rowField>}`. Validate that <field> is declared array-typed in
281
+ // metadata and that <rowField> references resolve through the field's items.
282
+ const forLoopRegex = /\{FOR (\w+) IN (\w+)\}/g;
283
+ const repeatItemBindings = new Map(); // item -> field
163
284
  let forMatch;
164
285
  while ((forMatch = forLoopRegex.exec(text)) !== null) {
165
- foundTags.add(forMatch[1]);
286
+ const itemName = forMatch[1];
287
+ const collectionName = forMatch[2];
288
+ foundTags.add(collectionName);
289
+ repeatItemBindings.set(itemName, collectionName);
290
+ const field = metadata.fields.find((f) => f.name === collectionName);
291
+ if (!field) {
292
+ errors.push(`{FOR ${itemName} IN ${collectionName}} references "${collectionName}" but it is not defined in metadata fields`);
293
+ }
294
+ else if (field.type !== 'array') {
295
+ errors.push(`{FOR ${itemName} IN ${collectionName}} requires "${collectionName}" to be type=array in metadata; declared type=${field.type}`);
296
+ }
297
+ }
298
+ // Validate {$item.rowField} references against metadata items shape.
299
+ const itemRefRegex = /\{\$(\w+)\.(\w+)\}/g;
300
+ let itemRefMatch;
301
+ while ((itemRefMatch = itemRefRegex.exec(text)) !== null) {
302
+ const itemName = itemRefMatch[1];
303
+ const rowFieldName = itemRefMatch[2];
304
+ const collectionName = repeatItemBindings.get(itemName);
305
+ if (!collectionName) {
306
+ errors.push(`{$${itemName}.${rowFieldName}} references item "${itemName}" but no enclosing {FOR ${itemName} IN ...} was found`);
307
+ continue;
308
+ }
309
+ const field = metadata.fields.find((f) => f.name === collectionName);
310
+ if (!field || !field.items)
311
+ continue; // already errored above, or no shape declared
312
+ const itemField = field.items.find((sub) => sub.name === rowFieldName);
313
+ if (!itemField) {
314
+ errors.push(`{$${itemName}.${rowFieldName}} references "${rowFieldName}" but "${collectionName}.items" does not declare it`);
315
+ }
166
316
  }
167
317
  // Security: scan for docx-templates control/code tags that should not exist
168
318
  // in open-source templates. Only simple {identifier} tags are allowed.
@@ -172,6 +322,15 @@ export function validateTemplate(templateDir, templateId) {
172
322
  }
173
323
  // Check for fields in metadata but not in DOCX
174
324
  for (const fieldName of metadataFieldNames) {
325
+ const derivedKeys = derivedKeysByField.get(fieldName);
326
+ if (derivedKeys) {
327
+ // See the parallel branch above: only suppress when at least one
328
+ // derived key is actually referenced.
329
+ const anyDerivedReferenced = [...derivedKeys].some((key) => foundTags.has(key) || foundConditionalFields.has(key));
330
+ if (anyDerivedReferenced) {
331
+ continue;
332
+ }
333
+ }
175
334
  const inDocx = foundTags.has(fieldName) || foundConditionalFields.has(fieldName);
176
335
  if (!inDocx) {
177
336
  if (priorityFieldNames.has(fieldName)) {
@@ -191,6 +350,7 @@ export function validateTemplate(templateDir, templateId) {
191
350
  warnings.push(`Placeholder {${tag}} found in template.docx but not defined in metadata fields`);
192
351
  }
193
352
  }
353
+ checkStatutoryComplianceReps(text, metadata.fields, errors);
194
354
  }
195
355
  return { templateId, valid: errors.length === 0, errors, warnings };
196
356
  }
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/core/validation/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/core/validation/template.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { fillTemplate, type FillOptions, type FillResult } from './core/engine.js';
2
+ export { humanizeDocx, humanizeDocxBuffer, loadHumanizeContext, prettifyTemplateXml, type HumanizeContext, type HumanizeOptions, } from './core/humanize-docx.js';
2
3
  export { loadMetadata, validateMetadata, loadRecipeMetadata, validateRecipeMetadata, loadCleanConfig, TemplateMetadataSchema, RecipeMetadataSchema, CleanConfigSchema, LicenseEnum, FieldDefinitionSchema, type TemplateMetadata, type RecipeMetadata, type CleanConfig, type FieldDefinition, type License, } from './core/metadata.js';
3
4
  export { runExternalFill, type ExternalFillOptions, type ExternalFillResult, } from './core/external/index.js';
4
5
  export { loadExternalMetadata, validateExternalMetadata, ExternalMetadataSchema, type ExternalMetadata, } from './core/metadata.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnF,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,OAAO,GACb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,gBAAgB,EAAE,KAAK,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,KAAK,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,KAAK,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,KAAK,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,KAAK,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAChG,OAAO,EACL,0BAA0B,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,GAChC,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACL,SAAS,EACT,aAAa,EACb,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,+BAA+B,EAC/B,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,gCAAgC,EAChC,6BAA6B,EAC7B,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,iCAAiC,EACjC,6BAA6B,EAC7B,yBAAyB,EACzB,sBAAsB,EACtB,mCAAmC,EACnC,gCAAgC,EAChC,gCAAgC,EAChC,mBAAmB,EACnB,6BAA6B,EAC7B,6BAA6B,EAC7B,8BAA8B,EAC9B,8BAA8B,EAC9B,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,iCAAiC,EACtC,KAAK,kCAAkC,EACvC,KAAK,+BAA+B,EACpC,KAAK,gCAAgC,EACrC,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EAChC,KAAK,+BAA+B,EACpC,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,qBAAqB,EACrB,KAAK,OAAO,EACZ,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,KAAK,GACX,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAG3F,YAAY,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,8 @@
1
1
  // Public API exports
2
2
  // Template engine
3
3
  export { fillTemplate } from './core/engine.js';
4
+ // Humanize transform (bracket-prose with yellow highlights for catalog preview parity)
5
+ export { humanizeDocx, humanizeDocxBuffer, loadHumanizeContext, prettifyTemplateXml, } from './core/humanize-docx.js';
4
6
  // Metadata schemas and loaders
5
7
  export { loadMetadata, validateMetadata, loadRecipeMetadata, validateRecipeMetadata, loadCleanConfig, TemplateMetadataSchema, RecipeMetadataSchema, CleanConfigSchema, LicenseEnum, FieldDefinitionSchema, } from './core/metadata.js';
6
8
  // External template engine
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AAErB,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAqC,MAAM,kBAAkB,CAAC;AAEnF,+BAA+B;AAC/B,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,qBAAqB,GAMtB,MAAM,oBAAoB,CAAC;AAE5B,2BAA2B;AAC3B,OAAO,EACL,eAAe,GAGhB,MAAM,0BAA0B,CAAC;AAElC,0CAA0C;AAC1C,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,GAEvB,MAAM,oBAAoB,CAAC;AAE5B,sBAAsB;AACtB,OAAO,EAAE,gBAAgB,EAAiC,MAAM,+BAA+B,CAAC;AAChG,OAAO,EAAE,eAAe,EAAgC,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,cAAc,EAA+B,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,cAAc,EAA+B,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAiC,MAAM,+BAA+B,CAAC;AAChG,OAAO,EACL,0BAA0B,GAG3B,MAAM,oCAAoC,CAAC;AAE5C,gBAAgB;AAChB,OAAO,EACL,SAAS,EACT,aAAa,EACb,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,+BAA+B,GAKhC,MAAM,wBAAwB,CAAC;AAEhC,oBAAoB;AACpB,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,gCAAgC,EAChC,6BAA6B,EAC7B,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,iCAAiC,EACjC,6BAA6B,EAC7B,yBAAyB,EACzB,sBAAsB,EACtB,mCAAmC,EACnC,gCAAgC,EAChC,gCAAgC,EAChC,mBAAmB,EACnB,6BAA6B,EAC7B,6BAA6B,EAC7B,8BAA8B,EAC9B,8BAA8B,EA0B9B,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,qBAAqB,EAMrB,uBAAuB,GASxB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,GAcZ,MAAM,6BAA6B,CAAC;AAErC,mBAAmB;AACnB,OAAO,EACL,iBAAiB,GAGlB,MAAM,4BAA4B,CAAC;AAEpC,qBAAqB;AACrB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAqB,MAAM,kBAAkB,CAAC;AAI3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AAErB,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAqC,MAAM,kBAAkB,CAAC;AAEnF,uFAAuF;AACvF,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GAGpB,MAAM,yBAAyB,CAAC;AAEjC,+BAA+B;AAC/B,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,qBAAqB,GAMtB,MAAM,oBAAoB,CAAC;AAE5B,2BAA2B;AAC3B,OAAO,EACL,eAAe,GAGhB,MAAM,0BAA0B,CAAC;AAElC,0CAA0C;AAC1C,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,GAEvB,MAAM,oBAAoB,CAAC;AAE5B,sBAAsB;AACtB,OAAO,EAAE,gBAAgB,EAAiC,MAAM,+BAA+B,CAAC;AAChG,OAAO,EAAE,eAAe,EAAgC,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,cAAc,EAA+B,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,cAAc,EAA+B,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAiC,MAAM,+BAA+B,CAAC;AAChG,OAAO,EACL,0BAA0B,GAG3B,MAAM,oCAAoC,CAAC;AAE5C,gBAAgB;AAChB,OAAO,EACL,SAAS,EACT,aAAa,EACb,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,+BAA+B,GAKhC,MAAM,wBAAwB,CAAC;AAEhC,oBAAoB;AACpB,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,gCAAgC,EAChC,6BAA6B,EAC7B,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,iCAAiC,EACjC,6BAA6B,EAC7B,yBAAyB,EACzB,sBAAsB,EACtB,mCAAmC,EACnC,gCAAgC,EAChC,gCAAgC,EAChC,mBAAmB,EACnB,6BAA6B,EAC7B,6BAA6B,EAC7B,8BAA8B,EAC9B,8BAA8B,EA0B9B,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,qBAAqB,EAMrB,uBAAuB,GASxB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,GAcZ,MAAM,6BAA6B,CAAC;AAErC,mBAAmB;AACnB,OAAO,EACL,iBAAiB,GAGlB,MAAM,4BAA4B,CAAC;AAEpC,qBAAqB;AACrB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAqB,MAAM,kBAAkB,CAAC;AAI3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "open-agreements",
3
- "version": "0.7.5",
3
+ "version": "0.7.6",
4
4
  "workspaces": [
5
5
  "packages/allure-test-factory",
6
6
  "packages/contract-templates-mcp",
@@ -14,7 +14,14 @@
14
14
  "type": "git",
15
15
  "url": "https://github.com/open-agreements/open-agreements.git"
16
16
  },
17
- "homepage": "https://usejunior.com/developer-tools/open-agreements",
17
+ "homepage": "https://usejunior.com",
18
+ "readmeConfig": {
19
+ "websiteUrl": "https://usejunior.com",
20
+ "templateCatalogUrl": "https://usejunior.com/templates",
21
+ "documentationIndexUrl": "https://github.com/open-agreements/open-agreements/tree/main/docs",
22
+ "documentationBaseUrl": "https://github.com/open-agreements/open-agreements/blob/main/docs",
23
+ "trustUrl": "https://usejunior.com/security"
24
+ },
18
25
  "bugs": {
19
26
  "url": "https://github.com/open-agreements/open-agreements/issues"
20
27
  },
@@ -37,6 +44,7 @@
37
44
  "skills/",
38
45
  "README.md",
39
46
  "LICENSE",
47
+ "SECURITY.md",
40
48
  "server.json",
41
49
  "gemini-extension.json",
42
50
  "GEMINI.md"
@@ -53,6 +61,8 @@
53
61
  "dev": "tsc --watch",
54
62
  "check:spec-coverage": "node scripts/validate_openspec_coverage.mjs",
55
63
  "check:template-previews": "node scripts/check_template_previews.mjs",
64
+ "check:docx-structure": "node scripts/check_docx_structure.mjs 'content/templates/*/template.docx'",
65
+ "check:preview-freshness": "node scripts/check_preview_freshness.mjs",
56
66
  "check:source-drift": "npm run build && node scripts/source_drift_canary.mjs",
57
67
  "check:allure-labels": "node scripts/validate_allure_test_labels.mjs",
58
68
  "check:libreoffice": "node scripts/check_libreoffice_headless.mjs",
@@ -61,26 +71,27 @@
61
71
  "generate:concerto": "node scripts/generate_concerto_types.mjs",
62
72
  "validate:concerto": "node scripts/validate_concerto_metadata_parity.mjs",
63
73
  "generate:schemas": "node scripts/generate_json_schemas.mjs",
64
- "generate:employment-templates": "node scripts/generate_employment_templates.mjs",
74
+ "generate:templates": "node scripts/generate_templates.mjs && npm run check:docx-structure",
65
75
  "generate:employment-templates:libreoffice": "node scripts/generate_employment_templates_libreoffice.mjs",
66
- "generate:template-previews": "node scripts/generate_template_previews.mjs",
76
+ "generate:readme": "node scripts/generate_readme.mjs",
77
+ "generate:template-previews": "npm run build && node scripts/generate_template_previews.mjs",
67
78
  "render:docx-pages": "node scripts/render_docx_pages.mjs",
68
79
  "test": "npm run build && npm run check:spec-coverage && vitest",
69
80
  "test:workspace": "vitest run packages/contracts-workspace/tests",
70
81
  "test:workspace-mcp": "vitest run packages/contracts-workspace-mcp/tests",
71
- "test:coverage": "npm run build && vitest run --coverage --coverage.reporter=lcov --coverage.reporter=text-summary",
72
- "test:coverage:ci": "npm run build && vitest run --coverage --coverage.reporter=lcov --coverage.reporter=text-summary --reporter=default --reporter=junit --outputFile=./coverage/junit.xml",
82
+ "test:coverage": "npm run build && VITEST_COVERAGE=1 vitest run --coverage --coverage.reporter=lcov --coverage.reporter=text-summary",
83
+ "test:coverage:ci": "npm run build && VITEST_COVERAGE=1 vitest run --coverage --coverage.reporter=lcov --coverage.reporter=text-summary --reporter=default --reporter=junit --outputFile=./coverage/junit.xml",
73
84
  "test:junit": "npm run build && vitest run --reporter=default --reporter=junit --outputFile=./coverage/junit.xml",
74
85
  "test:run": "npm run build && npm run check:spec-coverage && vitest run",
75
86
  "lint": "eslint src/",
76
87
  "validate": "node bin/open-agreements.js validate",
77
88
  "build:downloads": "node scripts/prepare_site_downloads.mjs",
78
- "build:css": "npx tailwindcss -i site/src/input.css -o site/styles.css --minify",
79
- "build:docs": "mkdir -p site/docs && cp docs/getting-started.md docs/adding-templates.md docs/adding-recipes.md docs/changelog-release-process.md docs/licensing.md docs/trust-checklist.md docs/contracts-workspace.md docs/supported-tools.md docs/assumptions.md docs/template-branding-pipeline.md docs/employment-source-policy.md site/docs/",
80
89
  "build:html": "npx @11ty/eleventy",
81
90
  "build:site:indexes": "node scripts/generate_site_indexes.mjs",
82
- "build:site": "npm run build:downloads && npm run generate:changelog-data && npm run check:template-previews && npm run build:css && npm run build:docs && npm run build:html && npm run build:site:indexes",
83
- "build:site:vercel": "npm run build:workspace && npm run generate:schemas && npm run export:system-card-runtime:build && npm run generate:system-card && npm run build:site",
91
+ "build:site": "npm run build:downloads && npm run check:template-previews && npm run build:html && npm run build:site:indexes",
92
+ "build:site:vercel": "npm run build:workspace && npm run generate:schemas && npm run export:system-card-runtime:build && npm run generate:system-card && npm run build:site && npm run build:arp-manifest && npm run sign:arp-manifest",
93
+ "build:arp-manifest": "node scripts/build-wellknown-ai-index.cjs",
94
+ "sign:arp-manifest": "node scripts/sign-manifest.cjs",
84
95
  "prepare": "npm run build",
85
96
  "report:allure": "rm -rf ./allure-report && npx allure awesome ./allure-results --output ./allure-report --group-by epic,feature,story && node scripts/patch_allure_html_sanitizer.mjs --report-dir ./allure-report",
86
97
  "report:allure:open": "npx allure open ./allure-report",
@@ -93,10 +104,11 @@
93
104
  "check:system-card": "npm run generate:system-card && git diff --exit-code -- site/trust/system-card.md",
94
105
  "generate:template-evidence": "node scripts/generate_template_evidence.mjs",
95
106
  "generate:changelog-data": "node scripts/generate_changelog_data.mjs",
107
+ "check:readme": "npm run generate:readme && git diff --exit-code -- README.md",
96
108
  "check:template-evidence": "npm run generate:template-evidence && git diff --exit-code -- site/_data/templateEvidence.json",
97
- "trust:rebuild": "npm run export:system-card-runtime && npm run generate:system-card && npm run generate:template-evidence && npm run generate:changelog-data",
109
+ "trust:rebuild": "npm run export:system-card-runtime && npm run generate:system-card && npm run generate:template-evidence",
98
110
  "trust:check": "npm run check:system-card-runtime && npm run check:system-card && npm run check:template-evidence",
99
- "preflight:ci": "npm run lint && npm run validate && npm run check:template-previews && npm run check:gemini-extension-manifest && npm run test:run && npm run trust:check"
111
+ "preflight:ci": "npm run lint && npm run validate && npm run check:template-previews && npm run check:preview-freshness && npm run check:gemini-extension-manifest && npm run check:readme && npm run test:run && npm run trust:check"
100
112
  },
101
113
  "keywords": [
102
114
  "legal",
@@ -131,6 +143,7 @@
131
143
  "@usejunior/docx-core": ">=0.7.0",
132
144
  "@xmldom/xmldom": "^0.9.9",
133
145
  "adm-zip": "^0.5.16",
146
+ "canonicalize": "^2.1.0",
134
147
  "commander": "^13.1.0",
135
148
  "docx-templates": "^4.13.0",
136
149
  "jose": "^6.2.2",
@@ -149,6 +162,7 @@
149
162
  "@vitest/coverage-v8": "^3.2.4",
150
163
  "allure-vitest": "^3.4.5",
151
164
  "docx": "^9.5.1",
165
+ "jszip": "^3.10.1",
152
166
  "eslint": "^9.19.0",
153
167
  "fast-xml-parser": "^4.5.3",
154
168
  "globals": "^14.0.0",
@@ -0,0 +1,67 @@
1
+ # Connectors
2
+
3
+ ## How tool references work
4
+
5
+ This skill operates on files inside an OpenAgreements repo checkout. It does not
6
+ require any MCP servers to author the canonical source — only Node.js to run the
7
+ generator and tests after editing.
8
+
9
+ ## Connectors for this skill
10
+
11
+ | Category | Placeholder | Recommended | Other options |
12
+ |----------|-------------|-------------|---------------|
13
+ | OpenAgreements repo | `~~open-agreements-repo` | Local clone of [open-agreements/open-agreements](https://github.com/open-agreements/open-agreements) | Worktree of the same repo (recommended when multiple agents may edit concurrently) |
14
+ | Node toolchain | `~~node` | Node.js >= 20 with `npm` | `pnpm`/`yarn` work for the install step but `npm run generate:templates` is the canonical entry point |
15
+
16
+ ### Setting up the repo
17
+
18
+ ```bash
19
+ git clone https://github.com/open-agreements/open-agreements.git
20
+ cd open-agreements
21
+ npm ci
22
+ ```
23
+
24
+ After editing a `template.md`:
25
+
26
+ ```bash
27
+ npm run generate:templates
28
+ ```
29
+
30
+ This regenerates `content/templates/<slug>/.template.generated.json` and
31
+ `content/templates/<slug>/template.docx` from the canonical source.
32
+
33
+ ### Verifying canonical → JSON sync
34
+
35
+ ```bash
36
+ npx vitest run integration-tests/canonical-source-sync.test.ts
37
+ ```
38
+
39
+ Fails if any canonical `template.md` has drifted from its committed
40
+ `.template.generated.json`. Run it before committing.
41
+
42
+ ### Broader test coverage
43
+
44
+ For a more thorough check across the canonical compiler, JSON-spec renderer,
45
+ and the MCP fill path:
46
+
47
+ ```bash
48
+ npx vitest run \
49
+ integration-tests/canonical-source-authoring.test.ts \
50
+ integration-tests/canonical-source-sync.test.ts \
51
+ integration-tests/template-renderer-json-spec.test.ts \
52
+ integration-tests/template-validation.test.ts \
53
+ packages/contract-templates-mcp/tests/tools.test.ts
54
+ ```
55
+
56
+ ### Worktrees for concurrent editing
57
+
58
+ If multiple agents may edit the same repo, prefer a per-task worktree:
59
+
60
+ ```bash
61
+ git worktree add /tmp/oa-canonical-<topic> -b <branch>
62
+ cd /tmp/oa-canonical-<topic>
63
+ npm ci
64
+ ```
65
+
66
+ This isolates `template.md` edits and the regenerated JSON/DOCX from other
67
+ in-flight work.