open-agreements 0.4.0 → 0.5.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 (151) hide show
  1. package/README.de.md +6 -1
  2. package/README.es.md +6 -1
  3. package/README.md +13 -1
  4. package/README.pt-br.md +6 -1
  5. package/README.zh.md +6 -1
  6. package/content/external/yc-safe-discount/metadata.yaml +1 -1
  7. package/content/external/yc-safe-mfn/metadata.yaml +1 -1
  8. package/content/external/yc-safe-pro-rata-side-letter/metadata.yaml +1 -1
  9. package/content/external/yc-safe-valuation-cap/metadata.yaml +1 -1
  10. package/content/recipes/QUALITY_TRACKER.md +35 -0
  11. package/content/recipes/nvca-certificate-of-incorporation/clean.json +14 -2
  12. package/content/recipes/nvca-certificate-of-incorporation/computed.json +78 -0
  13. package/content/recipes/nvca-certificate-of-incorporation/metadata.yaml +115 -2
  14. package/content/recipes/nvca-certificate-of-incorporation/replacements.json +50 -2
  15. package/content/recipes/nvca-certificate-of-incorporation/selections-roadmap.md +47 -0
  16. package/content/recipes/nvca-indemnification-agreement/metadata.yaml +5 -1
  17. package/content/recipes/nvca-indemnification-agreement/replacements.json +30 -5
  18. package/content/recipes/nvca-investors-rights-agreement/clean.json +9 -1
  19. package/content/recipes/nvca-investors-rights-agreement/metadata.yaml +1 -1
  20. package/content/recipes/nvca-investors-rights-agreement/replacements.json +4 -1
  21. package/content/recipes/nvca-management-rights-letter/metadata.yaml +1 -1
  22. package/content/recipes/nvca-rofr-co-sale-agreement/clean.json +11 -1
  23. package/content/recipes/nvca-rofr-co-sale-agreement/metadata.yaml +5 -1
  24. package/content/recipes/nvca-rofr-co-sale-agreement/replacements.json +62 -3
  25. package/content/recipes/nvca-stock-purchase-agreement/clean.json +8 -3
  26. package/content/recipes/nvca-stock-purchase-agreement/metadata.yaml +6 -1
  27. package/content/recipes/nvca-stock-purchase-agreement/normalize.json +0 -16
  28. package/content/recipes/nvca-stock-purchase-agreement/replacements.json +15 -12
  29. package/content/recipes/nvca-stock-purchase-agreement/selections.json +17 -0
  30. package/content/recipes/nvca-voting-agreement/clean.json +11 -1
  31. package/content/recipes/nvca-voting-agreement/metadata.yaml +1 -1
  32. package/content/recipes/nvca-voting-agreement/replacements.json +2 -1
  33. package/content/templates/bonterms-mutual-nda/metadata.yaml +1 -1
  34. package/content/templates/bonterms-professional-services-agreement/metadata.yaml +1 -1
  35. package/content/templates/closing-checklist/metadata.yaml +1 -1
  36. package/content/templates/common-paper-ai-addendum/metadata.yaml +1 -1
  37. package/content/templates/common-paper-ai-addendum-in-app/metadata.yaml +1 -1
  38. package/content/templates/common-paper-amendment/metadata.yaml +1 -1
  39. package/content/templates/common-paper-business-associate-agreement/metadata.yaml +1 -1
  40. package/content/templates/common-paper-cloud-service-agreement/metadata.yaml +1 -1
  41. package/content/templates/common-paper-csa-click-through/metadata.yaml +1 -1
  42. package/content/templates/common-paper-csa-with-ai/metadata.yaml +1 -1
  43. package/content/templates/common-paper-csa-with-sla/metadata.yaml +1 -1
  44. package/content/templates/common-paper-csa-without-sla/metadata.yaml +1 -1
  45. package/content/templates/common-paper-data-processing-agreement/metadata.yaml +1 -1
  46. package/content/templates/common-paper-design-partner-agreement/metadata.yaml +1 -1
  47. package/content/templates/common-paper-independent-contractor-agreement/metadata.yaml +1 -1
  48. package/content/templates/common-paper-letter-of-intent/metadata.yaml +1 -1
  49. package/content/templates/common-paper-mutual-nda/metadata.yaml +1 -1
  50. package/content/templates/common-paper-one-way-nda/metadata.yaml +1 -1
  51. package/content/templates/common-paper-order-form/metadata.yaml +1 -1
  52. package/content/templates/common-paper-order-form-with-sla/metadata.yaml +1 -1
  53. package/content/templates/common-paper-partnership-agreement/metadata.yaml +1 -1
  54. package/content/templates/common-paper-pilot-agreement/metadata.yaml +1 -1
  55. package/content/templates/common-paper-professional-services-agreement/metadata.yaml +1 -1
  56. package/content/templates/common-paper-software-license-agreement/metadata.yaml +1 -1
  57. package/content/templates/common-paper-statement-of-work/metadata.yaml +1 -1
  58. package/content/templates/common-paper-term-sheet/metadata.yaml +1 -1
  59. package/content/templates/openagreements-employee-ip-inventions-assignment/metadata.yaml +1 -1
  60. package/content/templates/openagreements-employment-confidentiality-acknowledgement/metadata.yaml +1 -1
  61. package/content/templates/openagreements-employment-offer-letter/metadata.yaml +1 -1
  62. package/content/templates/working-group-list/metadata.yaml +1 -1
  63. package/dist/cli/index.d.ts.map +1 -1
  64. package/dist/cli/index.js +8 -4
  65. package/dist/cli/index.js.map +1 -1
  66. package/dist/commands/fill.js +3 -3
  67. package/dist/commands/fill.js.map +1 -1
  68. package/dist/commands/list.js +19 -15
  69. package/dist/commands/list.js.map +1 -1
  70. package/dist/core/command-generation/adapters/claude.js +4 -4
  71. package/dist/core/employment/memo.js +3 -3
  72. package/dist/core/engine.js +1 -1
  73. package/dist/core/external/index.js +1 -1
  74. package/dist/core/fill-pipeline.d.ts +3 -3
  75. package/dist/core/fill-pipeline.js +6 -6
  76. package/dist/core/fill-pipeline.js.map +1 -1
  77. package/dist/core/metadata.d.ts +13 -3
  78. package/dist/core/metadata.d.ts.map +1 -1
  79. package/dist/core/metadata.js +19 -11
  80. package/dist/core/metadata.js.map +1 -1
  81. package/dist/core/recipe/bracket-normalizer.d.ts +4 -5
  82. package/dist/core/recipe/bracket-normalizer.d.ts.map +1 -1
  83. package/dist/core/recipe/bracket-normalizer.js +67 -149
  84. package/dist/core/recipe/bracket-normalizer.js.map +1 -1
  85. package/dist/core/recipe/cleaner.d.ts.map +1 -1
  86. package/dist/core/recipe/cleaner.js +91 -7
  87. package/dist/core/recipe/cleaner.js.map +1 -1
  88. package/dist/core/recipe/downloader.d.ts.map +1 -1
  89. package/dist/core/recipe/downloader.js +8 -3
  90. package/dist/core/recipe/downloader.js.map +1 -1
  91. package/dist/core/recipe/index.d.ts +2 -1
  92. package/dist/core/recipe/index.d.ts.map +1 -1
  93. package/dist/core/recipe/index.js +11 -4
  94. package/dist/core/recipe/index.js.map +1 -1
  95. package/dist/core/recipe/patcher.d.ts +9 -5
  96. package/dist/core/recipe/patcher.d.ts.map +1 -1
  97. package/dist/core/recipe/patcher.js +183 -136
  98. package/dist/core/recipe/patcher.js.map +1 -1
  99. package/dist/core/recipe/replacement-keys.d.ts +2 -7
  100. package/dist/core/recipe/replacement-keys.d.ts.map +1 -1
  101. package/dist/core/recipe/replacement-keys.js +3 -20
  102. package/dist/core/recipe/replacement-keys.js.map +1 -1
  103. package/dist/core/recipe/source-drift.js +1 -1
  104. package/dist/core/recipe/source-drift.js.map +1 -1
  105. package/dist/core/recipe/verifier.d.ts +7 -1
  106. package/dist/core/recipe/verifier.d.ts.map +1 -1
  107. package/dist/core/recipe/verifier.js +69 -3
  108. package/dist/core/recipe/verifier.js.map +1 -1
  109. package/dist/core/selector.d.ts +2 -0
  110. package/dist/core/selector.d.ts.map +1 -1
  111. package/dist/core/selector.js +97 -1
  112. package/dist/core/selector.js.map +1 -1
  113. package/dist/core/template-listing.d.ts +3 -1
  114. package/dist/core/template-listing.d.ts.map +1 -1
  115. package/dist/core/template-listing.js +4 -3
  116. package/dist/core/template-listing.js.map +1 -1
  117. package/dist/core/unified-pipeline.d.ts +1 -1
  118. package/dist/core/unified-pipeline.d.ts.map +1 -1
  119. package/dist/core/unified-pipeline.js +21 -3
  120. package/dist/core/unified-pipeline.js.map +1 -1
  121. package/dist/core/validation/external.d.ts.map +1 -1
  122. package/dist/core/validation/external.js +0 -2
  123. package/dist/core/validation/external.js.map +1 -1
  124. package/dist/core/validation/recipe.d.ts.map +1 -1
  125. package/dist/core/validation/recipe.js +0 -2
  126. package/dist/core/validation/recipe.js.map +1 -1
  127. package/dist/core/validation/scan-metadata.d.ts.map +1 -1
  128. package/dist/core/validation/scan-metadata.js +17 -1
  129. package/dist/core/validation/scan-metadata.js.map +1 -1
  130. package/dist/core/validation/template.js +5 -5
  131. package/node_modules/@usejunior/docx-core/package.json +1 -1
  132. package/package.json +3 -2
  133. package/server.json +31 -0
  134. package/skills/client-email/SKILL.md +143 -0
  135. package/skills/cloud-service-agreement/SKILL.md +8 -99
  136. package/skills/data-privacy-agreement/SKILL.md +10 -97
  137. package/skills/delaware-franchise-tax/SKILL.md +7 -1
  138. package/skills/edit-docx-agreement/SKILL.md +10 -3
  139. package/skills/employment-contract/SKILL.md +10 -95
  140. package/skills/iso-27001-evidence-collection/SKILL.md +7 -1
  141. package/skills/iso-27001-internal-audit/SKILL.md +6 -0
  142. package/skills/nda/SKILL.md +7 -99
  143. package/skills/open-agreements/CONNECTORS.md +1 -1
  144. package/skills/open-agreements/SKILL.md +17 -104
  145. package/skills/recipe-quality-audit/SKILL.md +116 -0
  146. package/skills/safe/SKILL.md +12 -97
  147. package/skills/services-agreement/SKILL.md +8 -99
  148. package/skills/shared/template-filling-execution.md +92 -0
  149. package/skills/soc2-readiness/SKILL.md +7 -1
  150. package/skills/unit-test-philosophy/SKILL.md +12 -1
  151. package/skills/venture-financing/SKILL.md +11 -96
@@ -8,6 +8,7 @@ export const FieldDefinitionSchema = z.object({
8
8
  type: z.enum(['string', 'date', 'number', 'boolean', 'enum', 'array']),
9
9
  description: z.string(),
10
10
  default: z.string().optional(),
11
+ default_value_rationale: z.string().optional(),
11
12
  options: z.array(z.string()).optional(),
12
13
  section: z.string().optional(),
13
14
  }).refine((f) => f.type !== 'enum' || (f.options !== undefined && f.options.length > 0), { message: 'Fields with type "enum" must have a non-empty options array' }).refine((f) => {
@@ -19,15 +20,15 @@ export const FieldDefinitionSchema = z.object({
19
20
  return f.default === 'true' || f.default === 'false';
20
21
  return true;
21
22
  }, { message: 'Default value must be valid for the declared field type' });
22
- function validateRequiredFields(fields, requiredFields, ctx) {
23
+ function validatePriorityFields(fields, priorityFields, ctx) {
23
24
  const fieldNames = new Set(fields.map((field) => field.name));
24
25
  const seen = new Set();
25
- requiredFields.forEach((fieldName, index) => {
26
+ priorityFields.forEach((fieldName, index) => {
26
27
  if (seen.has(fieldName)) {
27
28
  ctx.addIssue({
28
29
  code: z.ZodIssueCode.custom,
29
- path: ['required_fields', index],
30
- message: `Duplicate required field "${fieldName}"`,
30
+ path: ['priority_fields', index],
31
+ message: `Duplicate priority field "${fieldName}"`,
31
32
  });
32
33
  return;
33
34
  }
@@ -35,8 +36,8 @@ function validateRequiredFields(fields, requiredFields, ctx) {
35
36
  if (!fieldNames.has(fieldName)) {
36
37
  ctx.addIssue({
37
38
  code: z.ZodIssueCode.custom,
38
- path: ['required_fields', index],
39
- message: `Required field "${fieldName}" is not defined in fields`,
39
+ path: ['priority_fields', index],
40
+ message: `Priority field "${fieldName}" is not defined in fields`,
40
41
  });
41
42
  }
42
43
  });
@@ -50,20 +51,21 @@ const TemplateMetadataBaseSchema = z.object({
50
51
  allow_derivatives: z.boolean(),
51
52
  attribution_text: z.string(),
52
53
  fields: z.array(FieldDefinitionSchema),
53
- required_fields: z.array(z.string()).default([]),
54
+ priority_fields: z.array(z.string()).default([]),
54
55
  });
55
56
  export const TemplateMetadataSchema = TemplateMetadataBaseSchema.superRefine((meta, ctx) => {
56
- validateRequiredFields(meta.fields, meta.required_fields, ctx);
57
+ validatePriorityFields(meta.fields, meta.priority_fields, ctx);
57
58
  });
58
59
  // --- External template schemas ---
59
60
  export const ExternalMetadataSchema = TemplateMetadataBaseSchema.extend({
60
61
  source_sha256: z.string(),
61
62
  }).superRefine((meta, ctx) => {
62
- validateRequiredFields(meta.fields, meta.required_fields, ctx);
63
+ validatePriorityFields(meta.fields, meta.priority_fields, ctx);
63
64
  });
64
65
  // --- Recipe schemas ---
65
66
  export const CleanConfigSchema = z.object({
66
67
  removeFootnotes: z.boolean().default(false),
68
+ removeBeforePattern: z.string().optional(),
67
69
  removeParagraphPatterns: z.array(z.string()).default([]),
68
70
  removeRanges: z.array(z.object({
69
71
  start: z.string(),
@@ -99,6 +101,11 @@ export const GuidanceOutputSchema = z.object({
99
101
  }),
100
102
  entries: z.array(GuidanceEntrySchema),
101
103
  });
104
+ const MarketDataCitationSchema = z.object({
105
+ id: z.string(),
106
+ label: z.string(),
107
+ url: z.string().optional(),
108
+ });
102
109
  export const RecipeMetadataSchema = z.object({
103
110
  name: z.string(),
104
111
  description: z.string().optional(),
@@ -108,9 +115,10 @@ export const RecipeMetadataSchema = z.object({
108
115
  optional: z.boolean().default(false),
109
116
  source_sha256: z.string().optional(),
110
117
  fields: z.array(FieldDefinitionSchema).default([]),
111
- required_fields: z.array(z.string()).default([]),
118
+ priority_fields: z.array(z.string()).default([]),
119
+ market_data_citations: z.array(MarketDataCitationSchema).optional(),
112
120
  }).superRefine((meta, ctx) => {
113
- validateRequiredFields(meta.fields, meta.required_fields, ctx);
121
+ validatePriorityFields(meta.fields, meta.priority_fields, ctx);
114
122
  });
115
123
  // --- Template loaders ---
116
124
  export function loadMetadata(templateDir) {
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/core/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/core/metadata.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export interface BracketNormalizationStats {
3
3
  removedSegments: number;
4
4
  removedParagraphs: number;
5
5
  normalizedParagraphs: number;
6
+ formattingFallbackCount: number;
6
7
  declarativeRuleApplications: number;
7
8
  declarativeRuleMatchCounts: Record<string, number>;
8
9
  declarativeRuleMutationCounts: Record<string, number>;
@@ -36,11 +37,9 @@ export interface BracketNormalizationOptions {
36
37
  /**
37
38
  * Normalize residual bracket artifacts in generated recipe documents.
38
39
  *
39
- * Strategy:
40
- * - Unbracket simple single-level clauses (`[text]` -> `text`)
41
- * - Remove complex/nested segments with unresolved placeholders
42
- * - Remove orphan bracket characters and punctuation artifacts
43
- * - Drop paragraphs that collapse to punctuation-only content
40
+ * Only operates when declarative rules are provided (via normalize.json).
41
+ * Without declarative rules, returns zero-change stats (no-op).
42
+ * Uses formatting-preserving replaceParagraphTextRange for all text mutations.
44
43
  */
45
44
  export declare function normalizeBracketArtifacts(inputPath: string, outputPath: string, options?: BracketNormalizationOptions): Promise<BracketNormalizationStats>;
46
45
  //# sourceMappingURL=bracket-normalizer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bracket-normalizer.d.ts","sourceRoot":"","sources":["../../../src/core/recipe/bracket-normalizer.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,yBAAyB;IACxC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,2BAA2B,EAAE,MAAM,CAAC;IACpC,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,kCAAkC,EAAE,MAAM,EAAE,CAAC;IAC7C,uBAAuB,EAAE,KAAK,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,iCAAiC;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,0BAA0B;IACzC,eAAe,EAAE,iCAAiC,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,EAAE,iCAAiC,EAAE,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAAC,yBAAyB,CAAC,CA+HpC"}
1
+ {"version":3,"file":"bracket-normalizer.d.ts","sourceRoot":"","sources":["../../../src/core/recipe/bracket-normalizer.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,yBAAyB;IACxC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,MAAM,CAAC;IAChC,2BAA2B,EAAE,MAAM,CAAC;IACpC,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,kCAAkC,EAAE,MAAM,EAAE,CAAC;IAC7C,uBAAuB,EAAE,KAAK,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,iCAAiC;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,0BAA0B;IACzC,eAAe,EAAE,iCAAiC,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,EAAE,iCAAiC,EAAE,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAAC,yBAAyB,CAAC,CA+IpC"}
@@ -1,17 +1,16 @@
1
1
  import AdmZip from 'adm-zip';
2
2
  import { writeFileSync } from 'node:fs';
3
3
  import { DOMParser, XMLSerializer } from '@xmldom/xmldom';
4
+ import { replaceParagraphTextRange } from '@usejunior/docx-core';
4
5
  import { enumerateTextParts, getGeneralTextPartNames } from './ooxml-parts.js';
5
6
  import { BLANK_PLACEHOLDER } from '../fill-utils.js';
6
7
  const W_NS = 'http://schemas.openxmlformats.org/wordprocessingml/2006/main';
7
8
  /**
8
9
  * Normalize residual bracket artifacts in generated recipe documents.
9
10
  *
10
- * Strategy:
11
- * - Unbracket simple single-level clauses (`[text]` -> `text`)
12
- * - Remove complex/nested segments with unresolved placeholders
13
- * - Remove orphan bracket characters and punctuation artifacts
14
- * - Drop paragraphs that collapse to punctuation-only content
11
+ * Only operates when declarative rules are provided (via normalize.json).
12
+ * Without declarative rules, returns zero-change stats (no-op).
13
+ * Uses formatting-preserving replaceParagraphTextRange for all text mutations.
15
14
  */
16
15
  export async function normalizeBracketArtifacts(inputPath, outputPath, options) {
17
16
  const zip = new AdmZip(inputPath);
@@ -24,6 +23,7 @@ export async function normalizeBracketArtifacts(inputPath, outputPath, options)
24
23
  removedSegments: 0,
25
24
  removedParagraphs: 0,
26
25
  normalizedParagraphs: 0,
26
+ formattingFallbackCount: 0,
27
27
  declarativeRuleApplications: 0,
28
28
  declarativeRuleMatchCounts: {},
29
29
  declarativeRuleMutationCounts: {},
@@ -34,6 +34,15 @@ export async function normalizeBracketArtifacts(inputPath, outputPath, options)
34
34
  const fieldValues = options?.fieldValues ?? {};
35
35
  const blankPlaceholder = options?.blankPlaceholder ?? BLANK_PLACEHOLDER;
36
36
  const hasDeclarativeRules = rules.length > 0;
37
+ // No declarative rules → no-op. Brackets remain visible for lawyers.
38
+ if (!hasDeclarativeRules) {
39
+ const outZip = new AdmZip();
40
+ for (const entry of zip.getEntries()) {
41
+ outZip.addFile(entry.entryName, entry.getData());
42
+ }
43
+ writeFileSync(outputPath, outZip.toBuffer());
44
+ return stats;
45
+ }
37
46
  for (const rule of rules) {
38
47
  if (!(rule.id in stats.declarativeRuleMatchCounts)) {
39
48
  stats.declarativeRuleMatchCounts[rule.id] = 0;
@@ -47,7 +56,6 @@ export async function normalizeBracketArtifacts(inputPath, outputPath, options)
47
56
  const xml = entry.getData().toString('utf-8');
48
57
  const doc = parser.parseFromString(xml, 'text/xml');
49
58
  const paragraphs = doc.getElementsByTagNameNS(W_NS, 'p');
50
- const toRemove = [];
51
59
  let lastHeading = '';
52
60
  for (let i = 0; i < paragraphs.length; i++) {
53
61
  const para = paragraphs[i];
@@ -86,29 +94,27 @@ export async function normalizeBracketArtifacts(inputPath, outputPath, options)
86
94
  });
87
95
  }
88
96
  }
89
- // If declarative rules are provided, prefer targeted mutation only.
90
- // This avoids broad paragraph rewrites that can shift inline styling.
91
- if (hasDeclarativeRules) {
92
- if (declarativeResult.text !== original) {
93
- setParagraphText(para, declarativeResult.text);
94
- stats.normalizedParagraphs += 1;
97
+ let finalText = declarativeResult.text;
98
+ // Sanitize double-dollar artifacts ($$ or $ $) single $
99
+ finalText = finalText.replace(/\$[\s\u00A0\t]*\$/g, '$');
100
+ if (finalText !== original) {
101
+ const range = computeReplacementRange(original, finalText);
102
+ if (range) {
103
+ try {
104
+ replaceParagraphTextRange(para, range.start, range.end, range.replacement);
105
+ }
106
+ catch {
107
+ // Fallback for paragraphs with field results or other complex
108
+ // structures that replaceParagraphTextRange cannot handle.
109
+ // Set text directly on <w:t> elements — less formatting-safe
110
+ // but better than skipping the replacement entirely.
111
+ setParagraphTextFallback(para, finalText);
112
+ stats.formattingFallbackCount += 1;
113
+ }
95
114
  }
96
- continue;
97
- }
98
- const normalized = normalizeParagraphText(declarativeResult.text, stats);
99
- if (normalized === null) {
100
- toRemove.push(para);
101
- stats.removedParagraphs += 1;
102
- continue;
103
- }
104
- if (normalized !== original) {
105
- setParagraphText(para, normalized);
106
115
  stats.normalizedParagraphs += 1;
107
116
  }
108
117
  }
109
- for (const para of toRemove) {
110
- para.parentNode?.removeChild(para);
111
- }
112
118
  zip.updateFile(partName, Buffer.from(serializer.serializeToString(doc), 'utf-8'));
113
119
  }
114
120
  for (const rule of rules) {
@@ -119,6 +125,9 @@ export async function normalizeBracketArtifacts(inputPath, outputPath, options)
119
125
  stats.declarativeRuleExpectationFailures.push(`${rule.id}: expected at least ${rule.expected_min_matches} match(es), found ${actualMatches}`);
120
126
  }
121
127
  }
128
+ if (stats.formattingFallbackCount > 0) {
129
+ console.warn(`Warning: ${stats.formattingFallbackCount} paragraph(s) used formatting-destructive fallback during normalization`);
130
+ }
122
131
  const outZip = new AdmZip();
123
132
  for (const entry of zip.getEntries()) {
124
133
  outZip.addFile(entry.entryName, entry.getData());
@@ -126,6 +135,25 @@ export async function normalizeBracketArtifacts(inputPath, outputPath, options)
126
135
  writeFileSync(outputPath, outZip.toBuffer());
127
136
  return stats;
128
137
  }
138
+ /**
139
+ * Compute the minimal contiguous replacement range between two strings.
140
+ * Returns null if the strings are identical.
141
+ */
142
+ function computeReplacementRange(oldText, newText) {
143
+ if (oldText === newText)
144
+ return null;
145
+ let start = 0;
146
+ const minLen = Math.min(oldText.length, newText.length);
147
+ while (start < minLen && oldText[start] === newText[start])
148
+ start++;
149
+ let oldEnd = oldText.length;
150
+ let newEnd = newText.length;
151
+ while (oldEnd > start && newEnd > start && oldText[oldEnd - 1] === newText[newEnd - 1]) {
152
+ oldEnd--;
153
+ newEnd--;
154
+ }
155
+ return { start, end: oldEnd, replacement: newText.slice(start, newEnd) };
156
+ }
129
157
  function isHeadingLike(text) {
130
158
  return !text.startsWith('.') && !text.includes('[') && text.replaceAll('.', '').trim().length > 0;
131
159
  }
@@ -201,7 +229,7 @@ function normalizeBracketPrefixedHeading(text) {
201
229
  return text;
202
230
  if (/[.:;!?].+[.:;!?]/.test(trimmed))
203
231
  return text;
204
- if (!/^\[[A-Z][A-Za-z0-9 ,&()'’/.-]+$/.test(trimmed))
232
+ if (!/^\[[A-Z][A-Za-z0-9 ,&()''/.-]+$/.test(trimmed))
205
233
  return text;
206
234
  return trimmed.slice(1).trim();
207
235
  }
@@ -215,96 +243,6 @@ function trimUnmatchedTrailingBrackets(text) {
215
243
  }
216
244
  return out;
217
245
  }
218
- function normalizeParagraphText(text, stats) {
219
- let out = text;
220
- // First pass: handle complete same-paragraph bracket segments.
221
- const segments = extractTopLevelSegments(out);
222
- if (segments.length > 0) {
223
- const ordered = [...segments].sort((a, b) => b.start - a.start);
224
- for (const seg of ordered) {
225
- const replacement = shouldRemoveSegment(seg.inner) ? '' : seg.inner.trim();
226
- out = `${out.slice(0, seg.start)}${replacement}${out.slice(seg.end + 1)}`;
227
- if (replacement === '') {
228
- stats.removedSegments += 1;
229
- }
230
- else {
231
- stats.unbracketedSegments += 1;
232
- }
233
- }
234
- }
235
- // Second pass: remove orphan bracket chars from cross-paragraph constructs.
236
- out = out.replaceAll('[', '').replaceAll(']', '');
237
- // Punctuation/spacing normalization for artifacts created by bracket deletion.
238
- out = out
239
- .replace(/^\s*[.;:,]\s*/, '')
240
- .replace(/\s+,/g, ',')
241
- .replace(/\s+;/g, ';')
242
- .replace(/\s+\./g, '.')
243
- .replace(/\bfrom,\s+counsel\b/gi, 'from counsel')
244
- .replace(/\(\s+/g, '(')
245
- .replace(/\s+\)/g, ')')
246
- .replace(/\s{2,}/g, ' ')
247
- .trim();
248
- // Prefer a single deterministic costs clause when both alternatives are present.
249
- if (out.includes('If any action at law or in equity') &&
250
- out.includes('Each party will bear its own costs in respect of any disputes arising under this Agreement.')) {
251
- out = 'Each party will bear its own costs in respect of any disputes arising under this Agreement.';
252
- }
253
- // Drop known degenerate artifacts produced when optional bracket blocks are stripped.
254
- if (/^A minimum of\s+Shares must be sold at the Initial Closing\.?$/i.test(out)) {
255
- return null;
256
- }
257
- if (/^As of the Initial Closing, the authorized size of the Board of Directors shall be, and the Board of Directors shall be comprised of\.?$/i.test(out)) {
258
- return null;
259
- }
260
- // Drop degenerate paragraphs that are now effectively empty.
261
- if (!out || /^[.,;:]+$/.test(out)) {
262
- return null;
263
- }
264
- return out;
265
- }
266
- function shouldRemoveSegment(inner) {
267
- const normalized = inner.trim();
268
- if (!normalized)
269
- return true;
270
- // Nested bracket segments are usually unresolved alternatives; drop them.
271
- if (normalized.includes('[') || normalized.includes(']'))
272
- return true;
273
- // Placeholder blanks and underscore markers should be removed.
274
- if (normalized.includes('_'))
275
- return true;
276
- // Known placeholder-only tokens.
277
- if (/^(date|specify|state|initial|applicable|audited|unaudited)$/i.test(normalized))
278
- return true;
279
- if (/^\(?[ivx]+\)?$/i.test(normalized))
280
- return true;
281
- if (/^\d+$/.test(normalized))
282
- return true;
283
- return false;
284
- }
285
- function extractTopLevelSegments(text) {
286
- const out = [];
287
- let depth = 0;
288
- let start = -1;
289
- for (let i = 0; i < text.length; i++) {
290
- const ch = text[i];
291
- if (ch === '[') {
292
- if (depth === 0)
293
- start = i;
294
- depth += 1;
295
- }
296
- else if (ch === ']') {
297
- if (depth > 0)
298
- depth -= 1;
299
- if (depth === 0 && start !== -1) {
300
- const raw = text.slice(start, i + 1);
301
- out.push({ start, end: i, raw, inner: raw.slice(1, -1) });
302
- start = -1;
303
- }
304
- }
305
- }
306
- return out;
307
- }
308
246
  function extractParagraphText(para) {
309
247
  const tElements = para.getElementsByTagNameNS(W_NS, 't');
310
248
  const parts = [];
@@ -313,42 +251,22 @@ function extractParagraphText(para) {
313
251
  }
314
252
  return parts.join('');
315
253
  }
316
- function setParagraphText(para, text) {
317
- const doc = para.ownerDocument;
254
+ /**
255
+ * Fallback for paragraphs where replaceParagraphTextRange cannot operate
256
+ * (e.g., field results spanning across runs). Sets text on the first <w:t>
257
+ * element and clears the rest. Less formatting-safe than replaceParagraphTextRange
258
+ * but avoids throwing.
259
+ */
260
+ function setParagraphTextFallback(para, text) {
318
261
  const tElements = para.getElementsByTagNameNS(W_NS, 't');
319
- if (tElements.length === 0) {
320
- const run = doc.createElementNS(W_NS, 'w:r');
321
- const t = doc.createElementNS(W_NS, 'w:t');
322
- t.textContent = text;
323
- run.appendChild(t);
324
- para.appendChild(run);
262
+ if (tElements.length === 0)
325
263
  return;
264
+ tElements[0].textContent = text;
265
+ if (text.startsWith(' ') || text.endsWith(' ')) {
266
+ tElements[0].setAttribute('xml:space', 'preserve');
326
267
  }
327
- // Preserve existing run-level formatting by distributing normalized text
328
- // across current text nodes using original node-length quotas.
329
- const originalLengths = [];
330
- for (let i = 0; i < tElements.length; i++) {
331
- originalLengths.push((tElements[i].textContent ?? '').length);
332
- }
333
- let cursor = 0;
334
- const total = text.length;
335
- for (let i = 0; i < tElements.length; i++) {
336
- const quota = i === tElements.length - 1
337
- ? total - cursor
338
- : Math.min(originalLengths[i], Math.max(0, total - cursor));
339
- if (quota > 0) {
340
- tElements[i].textContent = text.slice(cursor, cursor + quota);
341
- cursor += quota;
342
- }
343
- else {
344
- tElements[i].textContent = '';
345
- }
346
- }
347
- // If the paragraph grew beyond original capacity, append the tail to
348
- // the last node to avoid creating new runs and style surprises.
349
- if (cursor < total) {
350
- const last = tElements[tElements.length - 1];
351
- last.textContent = (last.textContent ?? '') + text.slice(cursor);
268
+ for (let i = 1; i < tElements.length; i++) {
269
+ tElements[i].textContent = '';
352
270
  }
353
271
  }
354
272
  //# sourceMappingURL=bracket-normalizer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bracket-normalizer.js","sourceRoot":"","sources":["../../../src/core/recipe/bracket-normalizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bracket-normalizer.js","sourceRoot":"","sources":["../../../src/core/recipe/bracket-normalizer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cleaner.d.ts","sourceRoot":"","sources":["../../../src/core/recipe/cleaner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAiB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKjF,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,WAAW,CAAC,CAmItB"}
1
+ {"version":3,"file":"cleaner.d.ts","sourceRoot":"","sources":["../../../src/core/recipe/cleaner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAiB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKjF,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,WAAW,CAAC,CAgJtB"}
@@ -66,22 +66,23 @@ export async function cleanDocument(inputPath, outputPath, config, options) {
66
66
  const xml = entry.getData().toString('utf-8');
67
67
  const doc = parser.parseFromString(xml, 'text/xml');
68
68
  let modified = false;
69
- if (config.removeFootnotes) {
70
- removeFootnoteReferences(doc);
71
- modified = true;
72
- }
73
- if (config.removeParagraphPatterns.length > 0) {
69
+ // Remove cover-page paragraphs before anchor pattern (document.xml only)
70
+ if (config.removeBeforePattern && partName === 'word/document.xml') {
74
71
  if (extract) {
75
- const extracted = extractAndRemoveParagraphsByPattern(doc, config.removeParagraphPatterns);
72
+ const extracted = extractAndRemoveParagraphsBeforePattern(doc, config.removeBeforePattern);
76
73
  for (const text of extracted) {
77
74
  entries.push({ source: 'pattern', part: partName, index: indexCounter++, text });
78
75
  }
79
76
  }
80
77
  else {
81
- removeParagraphsByPattern(doc, config.removeParagraphPatterns);
78
+ removeParagraphsBeforePattern(doc, config.removeBeforePattern);
82
79
  }
83
80
  modified = true;
84
81
  }
82
+ if (config.removeFootnotes) {
83
+ removeFootnoteReferences(doc);
84
+ modified = true;
85
+ }
85
86
  if (config.removeRanges && config.removeRanges.length > 0) {
86
87
  if (extract) {
87
88
  const extracted = extractAndRemoveParagraphsByRange(doc, config.removeRanges);
@@ -97,6 +98,18 @@ export async function cleanDocument(inputPath, outputPath, config, options) {
97
98
  }
98
99
  modified = true;
99
100
  }
101
+ if (config.removeParagraphPatterns.length > 0) {
102
+ if (extract) {
103
+ const extracted = extractAndRemoveParagraphsByPattern(doc, config.removeParagraphPatterns);
104
+ for (const text of extracted) {
105
+ entries.push({ source: 'pattern', part: partName, index: indexCounter++, text });
106
+ }
107
+ }
108
+ else {
109
+ removeParagraphsByPattern(doc, config.removeParagraphPatterns);
110
+ }
111
+ modified = true;
112
+ }
100
113
  if (modified) {
101
114
  modifiedParts.set(partName, Buffer.from(serializer.serializeToString(doc), 'utf-8'));
102
115
  }
@@ -329,6 +342,77 @@ function extractParagraphText(para) {
329
342
  }
330
343
  return parts.join('').trim();
331
344
  }
345
+ /**
346
+ * Remove all paragraphs from the start of <w:body> up to (but not including) the first
347
+ * paragraph whose text matches the given regex pattern. No-op if no match is found.
348
+ */
349
+ function removeParagraphsBeforePattern(doc, pattern) {
350
+ const regex = new RegExp(pattern);
351
+ const body = doc.getElementsByTagNameNS(W_NS, 'body')[0];
352
+ if (!body)
353
+ return;
354
+ const paragraphs = body.getElementsByTagNameNS(W_NS, 'p');
355
+ const toRemove = [];
356
+ for (let i = 0; i < paragraphs.length; i++) {
357
+ const para = paragraphs[i];
358
+ // Only consider direct children of <w:body>
359
+ if (para.parentNode !== body)
360
+ continue;
361
+ const text = extractParagraphText(para);
362
+ if (regex.test(text)) {
363
+ // Found the anchor — stop collecting
364
+ break;
365
+ }
366
+ toRemove.push(para);
367
+ }
368
+ // Only remove if we found the anchor (i.e., we didn't exhaust all paragraphs)
369
+ if (toRemove.length === 0)
370
+ return;
371
+ // Verify anchor was actually found by checking we didn't collect all body paragraphs
372
+ const bodyParas = [];
373
+ for (let i = 0; i < paragraphs.length; i++) {
374
+ if (paragraphs[i].parentNode === body)
375
+ bodyParas.push(paragraphs[i]);
376
+ }
377
+ if (toRemove.length >= bodyParas.length)
378
+ return; // No anchor found — no-op
379
+ for (const para of toRemove) {
380
+ para.parentNode?.removeChild(para);
381
+ }
382
+ }
383
+ /** Extract text from paragraphs before anchor pattern, then remove them. */
384
+ function extractAndRemoveParagraphsBeforePattern(doc, pattern) {
385
+ const regex = new RegExp(pattern);
386
+ const body = doc.getElementsByTagNameNS(W_NS, 'body')[0];
387
+ if (!body)
388
+ return [];
389
+ const paragraphs = body.getElementsByTagNameNS(W_NS, 'p');
390
+ const toRemove = [];
391
+ const extracted = [];
392
+ for (let i = 0; i < paragraphs.length; i++) {
393
+ const para = paragraphs[i];
394
+ if (para.parentNode !== body)
395
+ continue;
396
+ const text = extractParagraphText(para);
397
+ if (regex.test(text)) {
398
+ break;
399
+ }
400
+ toRemove.push(para);
401
+ if (text)
402
+ extracted.push(text);
403
+ }
404
+ const bodyParas = [];
405
+ for (let i = 0; i < paragraphs.length; i++) {
406
+ if (paragraphs[i].parentNode === body)
407
+ bodyParas.push(paragraphs[i]);
408
+ }
409
+ if (toRemove.length >= bodyParas.length)
410
+ return [];
411
+ for (const para of toRemove) {
412
+ para.parentNode?.removeChild(para);
413
+ }
414
+ return extracted;
415
+ }
332
416
  /** Extract all text from an element (used for footnotes which contain multiple paragraphs). */
333
417
  function extractElementText(element) {
334
418
  if (!element.getElementsByTagNameNS)