flappa-doormal 2.20.0 → 2.21.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.
package/AGENTS.md CHANGED
@@ -32,6 +32,11 @@ src/
32
32
  │ └── segmenter.ts # Internal segmenter types
33
33
  ├── dictionary/ # Dictionary-specific compiler, runtime, profiles, diagnostics
34
34
  │ ├── arabic-dictionary-rule.ts
35
+ │ ├── constants.ts
36
+ │ ├── dictionary-blockers.ts
37
+ │ ├── dictionary-candidates.ts
38
+ │ ├── dictionary-diagnostics.ts
39
+ │ ├── dictionary-zones.ts
35
40
  │ ├── heading-classifier.ts
36
41
  │ ├── profile.ts
37
42
  │ ├── profiles.ts
@@ -122,6 +127,24 @@ scripts/
122
127
  - `options.ts`: Comprehensive `SegmentationOptions` and `Logger` definitions
123
128
  - `index.ts`: Public API types for consumers
124
129
 
130
+ ### Dictionary Blocker Notes
131
+
132
+ - `previousWord.scope` defaults to `'samePage'` and only checks the same page's
133
+ preceding Arabic word unless you opt into cross-page behavior.
134
+ - `previousWord.scope: 'pageStart'` only runs for page-start candidates and
135
+ compares against the previous page's last Arabic word, skipping the check when
136
+ the previous page ends with strong sentence punctuation.
137
+ - `previousWord.scope: 'any'` combines the page-start cross-page check with the
138
+ usual same-page check for non-page-start candidates.
139
+ - `pageContinuation.authorityPrecision` defaults to `'high'`; set it to
140
+ `'aggressive'` when page-start continuation blocking should treat
141
+ authority-like prefixes more conservatively.
142
+ - `qualifierTail` and `structuralLeak` are intentionally non-configurable global
143
+ safety checks. They run before zone blockers and appear in diagnostics as
144
+ rejection reasons.
145
+ - `diagnoseDictionaryProfile()` now reports `rejectionReasons` rather than
146
+ the former `blockerHits`.
147
+
125
148
  11. **`textUtils.ts`** - Low-level helpers (`src/utils/textUtils.ts`)
126
149
  - `makeDiacriticInsensitive()`: Arabic-aware regex generation
127
150
  - `adjustForUnicodeBoundary()`: Prevents invalid splits across multi-character clusters
package/README.md CHANGED
@@ -390,6 +390,18 @@ Why this is preferred:
390
390
  - compatible with diagnostics tooling via `diagnoseDictionaryProfile()`
391
391
  - first-class validation via `validateDictionaryProfile()`
392
392
 
393
+ Blocker authoring notes:
394
+ - `previousWord.scope` defaults to `'samePage'`
395
+ - set `scope: 'pageStart'` to compare only against the previous page's last
396
+ Arabic word for page-start candidates
397
+ - set `scope: 'any'` to combine the page-start cross-page check with the normal
398
+ same-page check
399
+ - `pageContinuation.authorityPrecision` defaults to `'high'`; use
400
+ `'aggressive'` when page-start continuation filtering should treat
401
+ authority-like prefixes more conservatively
402
+ - `qualifierTail` and `structuralLeak` are always-on global safety checks and
403
+ show up in diagnostics even though they are not zone-declared blockers
404
+
393
405
  The production dictionary implementation now lives under `src/dictionary/`
394
406
  inside the repo, separate from the generic segmentation internals.
395
407
 
@@ -418,7 +430,7 @@ Prefer the top-level `dictionary` profile when:
418
430
  - segmenting an entire dictionary book
419
431
  - persisting JSON config for a corpus
420
432
  - the book changes layout in different sections
421
- - you need diagnostics, blocker hit rates, or book-specific profile tuning
433
+ - you need diagnostics, rejection-reason rates, or book-specific profile tuning
422
434
 
423
435
  Decision guide:
424
436
 
@@ -582,7 +594,7 @@ const diagnostics = diagnoseDictionaryProfile(pages, profile, {
582
594
  sampleLimit: 25,
583
595
  });
584
596
 
585
- console.log(diagnostics.blockerHits);
597
+ console.log(diagnostics.rejectionReasons);
586
598
  console.log(diagnostics.rejectedLemmas.slice(0, 10));
587
599
  ```
588
600
 
@@ -590,10 +602,15 @@ Returned diagnostics include:
590
602
  - accepted vs rejected candidate counts
591
603
  - accepted counts by `kind`
592
604
  - accepted/rejected counts by family and zone
593
- - blocker hit counts (`intro`, `stopLemma`, `pageContinuation`, etc.)
605
+ - rejection-reason counts (`intro`, `stopLemma`, `pageContinuation`,
606
+ `qualifierTail`, `structuralLeak`, etc.)
594
607
  - top rejected lemmas
595
608
  - sampled accepted/rejected candidates for quick inspection
596
609
 
610
+ `diagnoseDictionaryProfile()` is primarily a tuning API for profile authoring,
611
+ so consumers should treat its output shape as less stable than the segmentation
612
+ API itself.
613
+
597
614
  Validate profiles before persisting them or shipping them to an editor/CI step:
598
615
 
599
616
  ```typescript
@@ -1380,6 +1397,80 @@ const segments = segmentPages(pages, { rules });
1380
1397
  // ]
1381
1398
  ```
1382
1399
 
1400
+ ## Agent Advisor Workflow
1401
+
1402
+ If you want an AI agent to start from raw pages and get to a draft configuration with less hand-written glue, use `suggestSegmentationOptions()`:
1403
+
1404
+ ```typescript
1405
+ import { suggestSegmentationOptions } from 'flappa-doormal';
1406
+
1407
+ const report = suggestSegmentationOptions(pages, {
1408
+ maxRules: 4,
1409
+ topLineStarts: 12,
1410
+ topRepeatingSequences: 8,
1411
+ });
1412
+
1413
+ console.log(report.assessment);
1414
+ console.log(report.recommendedOptions);
1415
+ console.log(report.ruleSuggestions.slice(0, 5));
1416
+ ```
1417
+
1418
+ The report includes:
1419
+
1420
+ - preprocess cleanup hints (`removeZeroWidth`, `condenseEllipsis`, `fixTrailingWaw`)
1421
+ - an assessment of whether the book looks `structured`, `continuous`, or `mixed`
1422
+ - draft `SplitRule[]` suggestions with examples and confidence
1423
+ - a ready-to-run `recommendedOptions` object
1424
+ - rule validation output
1425
+ - self-evaluation of the generated segmentation draft
1426
+ - optional breakpoint suggestions when the draft still produces very large segments
1427
+
1428
+ For local JSON files, you can run the bundled script:
1429
+
1430
+ ```bash
1431
+ bun run segment:advise -- --input ./pages.json
1432
+ bun run segment:advise -- --input ./book.json --format markdown --out ./segmentation-report.md
1433
+ ```
1434
+
1435
+ Input can be either:
1436
+
1437
+ - `Page[]`
1438
+ - `{ pages: Page[] }`
1439
+
1440
+ ## MCP Server
1441
+
1442
+ The repo now includes a stdio MCP server wrapper for agent workflows:
1443
+
1444
+ ```bash
1445
+ bun run mcp:serve
1446
+ ```
1447
+
1448
+ When packaged, the server binary is:
1449
+
1450
+ ```bash
1451
+ flappa-doormal-mcp
1452
+ ```
1453
+
1454
+ Exposed MCP tools:
1455
+
1456
+ - `inspect_book`
1457
+ Input: `{ pages, advisorOptions? }`
1458
+ Returns preprocess detections, line-start analysis, repeating sequences, and draft rule suggestions.
1459
+ - `suggest_segmentation_options`
1460
+ Input: `{ pages, advisorOptions? }`
1461
+ Returns the full advisor report, including `recommendedOptions`.
1462
+ - `preview_segmentation`
1463
+ Input: `{ pages, options, sampleSegments? }`
1464
+ Runs segmentation and returns segments, samples, and validation.
1465
+ - `validate_segmentation`
1466
+ Input: `{ pages, options, segments }`
1467
+ Validates caller-provided segments against the source book.
1468
+ - `score_candidate_options`
1469
+ Input: `{ pages, candidates, sampleSegments? }`
1470
+ Ranks multiple `SegmentationOptions` candidates using validation and segment-shape heuristics.
1471
+
1472
+ All tool results are returned as JSON-friendly objects so agents can iterate without scraping prose output.
1473
+
1383
1474
  ## Advanced: Metadata Extraction & Data Migration
1384
1475
 
1385
1476
  If you already have pre-segmented data (e.g., records from a database or JSON file) and want to use **flappa-doormal's** token system to extract metadata and clean the content without further splitting, you can use the **Metadata Extraction** pattern.
package/dist/index.d.mts CHANGED
@@ -145,7 +145,7 @@ type DictionaryGate = {
145
145
  use: 'headingToken';
146
146
  token: 'bab' | 'fasl' | 'kitab';
147
147
  };
148
- type DictionaryProfileValidationIssueCode = 'invalid_version' | 'missing_zones' | 'duplicate_zone_name' | 'empty_zone_name' | 'empty_zone_families' | 'invalid_zone_page_range' | 'empty_heading_classes' | 'inert_heading_family' | 'empty_inline_prefixes' | 'invalid_gate_match' | 'invalid_gate_fuzzy' | 'duplicate_activate_after_gate' | 'invalid_stop_words' | 'invalid_previous_words' | 'invalid_previous_chars';
148
+ type DictionaryProfileValidationIssueCode = 'invalid_version' | 'missing_zones' | 'duplicate_zone_name' | 'empty_zone_name' | 'empty_zone_families' | 'invalid_zone_page_range' | 'empty_heading_classes' | 'inert_heading_family' | 'empty_inline_prefixes' | 'invalid_gate_match' | 'invalid_gate_fuzzy' | 'duplicate_activate_after_gate' | 'invalid_stop_words' | 'invalid_previous_words' | 'invalid_previous_chars' | 'invalid_previous_word_scope' | 'invalid_authority_intro_precision' | 'invalid_continuation_precision';
149
149
  type DictionaryProfileValidationIssue = {
150
150
  code: DictionaryProfileValidationIssueCode;
151
151
  message: string;
@@ -187,6 +187,7 @@ type DictionaryFamily = HeadingFamily | LineEntryFamily | InlineSubentryFamily |
187
187
  type PageContinuationBlocker = {
188
188
  use: 'pageContinuation';
189
189
  appliesTo?: DictionaryFamily['use'][];
190
+ authorityPrecision?: 'high' | 'aggressive';
190
191
  };
191
192
  type IntroBlocker = {
192
193
  use: 'intro';
@@ -206,6 +207,7 @@ type PreviousWordBlocker = {
206
207
  use: 'previousWord';
207
208
  appliesTo?: DictionaryFamily['use'][];
208
209
  words: string[];
210
+ scope?: 'samePage' | 'pageStart' | 'any';
209
211
  };
210
212
  type PreviousCharBlocker = {
211
213
  use: 'previousChar';
@@ -248,7 +250,7 @@ type DictionaryProfileDiagnosticsOptions = {
248
250
  type DictionaryProfileDiagnostics = {
249
251
  acceptedCount: number;
250
252
  acceptedKinds: Record<DictionarySegmentKind, number>;
251
- blockerHits: Record<DictionaryDiagnosticReason, number>;
253
+ rejectionReasons: Record<DictionaryDiagnosticReason, number>;
252
254
  familyCounts: Record<DictionaryFamilyUse, {
253
255
  accepted: number;
254
256
  rejected: number;
@@ -1216,6 +1218,147 @@ type RepeatingSequencePattern = {
1216
1218
  */
1217
1219
  declare const analyzeRepeatingSequences: (pages: Page[], options?: RepeatingSequenceOptions) => RepeatingSequencePattern[];
1218
1220
  //#endregion
1221
+ //#region src/segmentation/pattern-validator.d.ts
1222
+ /**
1223
+ * Types of validation issues that can be detected.
1224
+ */
1225
+ type ValidationIssueType = 'missing_braces' | 'unknown_token' | 'duplicate' | 'empty_pattern' | 'invalid_regex' | 'invalid_option';
1226
+ /**
1227
+ * A validation issue found in a pattern.
1228
+ */
1229
+ type ValidationIssue = {
1230
+ type: ValidationIssueType;
1231
+ message: string;
1232
+ suggestion?: string; /** The token name involved in the issue (for unknown_token / missing_braces) */
1233
+ token?: string; /** The specific pattern involved (for duplicate) */
1234
+ pattern?: string;
1235
+ };
1236
+ /**
1237
+ * Validation result for a single rule, with issues keyed by pattern type.
1238
+ * Arrays parallel the input pattern arrays - undefined means no issue.
1239
+ */
1240
+ type RuleValidationResult = {
1241
+ lineStartsWith?: (ValidationIssue | undefined)[];
1242
+ lineStartsAfter?: (ValidationIssue | undefined)[];
1243
+ lineEndsWith?: (ValidationIssue | undefined)[];
1244
+ template?: ValidationIssue;
1245
+ regex?: ValidationIssue;
1246
+ dictionaryEntry?: Partial<Record<keyof DictionaryEntryPatternOptions, ValidationIssue>>;
1247
+ };
1248
+ /**
1249
+ * Validates split rules for common pattern issues.
1250
+ *
1251
+ * Checks for:
1252
+ * - Missing `{{}}` around known token names (e.g., `raqms:num` instead of `{{raqms:num}}`)
1253
+ * - Unknown token names inside `{{}}` (e.g., `{{nonexistent}}`)
1254
+ * - Duplicate patterns within the same rule
1255
+ *
1256
+ * @param rules - Array of split rules to validate
1257
+ * @returns Array parallel to input with validation results (undefined if no issues)
1258
+ *
1259
+ * @example
1260
+ * const issues = validateRules([
1261
+ * { lineStartsAfter: ['raqms:num'] }, // Missing braces
1262
+ * { lineStartsWith: ['{{unknown}}'] }, // Unknown token
1263
+ * ]);
1264
+ * // issues[0]?.lineStartsAfter?.[0]?.type === 'missing_braces'
1265
+ * // issues[1]?.lineStartsWith?.[0]?.type === 'unknown_token'
1266
+ */
1267
+ declare const validateRules: (rules: SplitRule[]) => (RuleValidationResult | undefined)[];
1268
+ /**
1269
+ * Formats a validation result array into a list of human-readable error messages.
1270
+ *
1271
+ * Useful for displaying validation errors in UIs.
1272
+ *
1273
+ * @param results - The result array from `validateRules()`
1274
+ * @returns Array of formatted error strings
1275
+ *
1276
+ * @example
1277
+ * const issues = validateRules(rules);
1278
+ * const errors = formatValidationReport(issues);
1279
+ * // ["Rule 1, lineStartsWith: Missing {{}} around token..."]
1280
+ */
1281
+ declare const formatValidationReport: (results: (RuleValidationResult | undefined)[]) => string[];
1282
+ //#endregion
1283
+ //#region src/analysis/segmentation-advisor.d.ts
1284
+ type SegmentationAdvisorMode = 'structured' | 'continuous' | 'mixed';
1285
+ type SegmentationAdvisorOptions = {
1286
+ topLineStarts?: number;
1287
+ topRepeatingSequences?: number;
1288
+ minLineStartCount?: number;
1289
+ minRepeatingCount?: number;
1290
+ maxRules?: number;
1291
+ sampleSegments?: number;
1292
+ };
1293
+ type PreprocessDetections = {
1294
+ ellipsisCount: number;
1295
+ trailingWawCount: number;
1296
+ zeroWidthCount: number;
1297
+ };
1298
+ type PreprocessSuggestion = {
1299
+ count: number;
1300
+ reason: string;
1301
+ transform: PreprocessTransform;
1302
+ };
1303
+ type RuleSuggestionSource = 'line-start' | 'repeating-sequence';
1304
+ type RuleSuggestionConfidence = 'high' | 'medium' | 'low';
1305
+ type SuggestedRule = {
1306
+ confidence: RuleSuggestionConfidence;
1307
+ count: number;
1308
+ example: {
1309
+ pageId: number;
1310
+ text: string;
1311
+ };
1312
+ pattern: string;
1313
+ reason: string;
1314
+ rule: SplitRule;
1315
+ source: RuleSuggestionSource;
1316
+ };
1317
+ type BreakpointSuggestion = {
1318
+ breakpoints: Breakpoint[];
1319
+ maxPages: number;
1320
+ prefer: 'longer' | 'shorter';
1321
+ reason: string;
1322
+ };
1323
+ type SegmentationEvaluation = {
1324
+ averageSegmentLength: number;
1325
+ maxSegmentLength: number;
1326
+ multiPageSegments: number;
1327
+ segmentCount: number;
1328
+ validation: SegmentValidationReport;
1329
+ };
1330
+ type SegmentationSuggestionReport = {
1331
+ assessment: {
1332
+ mode: SegmentationAdvisorMode;
1333
+ reason: string;
1334
+ };
1335
+ breakpointSuggestions: BreakpointSuggestion[];
1336
+ evaluation?: SegmentationEvaluation;
1337
+ lineStarts: CommonLineStartPattern[];
1338
+ optimization: {
1339
+ mergedCount: number;
1340
+ optimizedRuleCount: number;
1341
+ originalRuleCount: number;
1342
+ };
1343
+ preprocess: {
1344
+ detections: PreprocessDetections;
1345
+ suggestions: PreprocessSuggestion[];
1346
+ };
1347
+ recommendedOptions: SegmentationOptions;
1348
+ repeatingSequences: RepeatingSequencePattern[];
1349
+ ruleSuggestions: SuggestedRule[];
1350
+ ruleValidation: RuleValidationResult[];
1351
+ ruleValidationErrors: string[];
1352
+ segmentSamples: Segment[];
1353
+ };
1354
+ /**
1355
+ * Generate a machine-readable draft segmentation report for AI agents.
1356
+ *
1357
+ * This helper is intentionally deterministic: it inspects pages, drafts
1358
+ * candidate rules, validates them, and evaluates its own recommendation.
1359
+ */
1360
+ declare const suggestSegmentationOptions: (pages: Page[], options?: SegmentationAdvisorOptions) => SegmentationSuggestionReport;
1361
+ //#endregion
1219
1362
  //#region src/detection.d.ts
1220
1363
  /**
1221
1364
  * Result of detecting a token pattern in text
@@ -1378,9 +1521,11 @@ declare class DictionaryProfileValidationError extends Error {
1378
1521
  */
1379
1522
  declare const validateDictionaryProfile: (profile: ArabicDictionaryProfile) => DictionaryProfileValidationIssue[];
1380
1523
  //#endregion
1381
- //#region src/dictionary/runtime.d.ts
1524
+ //#region src/dictionary/dictionary-diagnostics.d.ts
1382
1525
  /**
1383
- * Collects authoring diagnostics for a dictionary profile without creating segments.
1526
+ * Collects tuning-oriented diagnostics for a dictionary profile without creating
1527
+ * segments. This output is intended for profile authoring workflows rather than
1528
+ * long-term compatibility guarantees.
1384
1529
  *
1385
1530
  * This is useful when tuning blockers and family choices for a new dictionary.
1386
1531
  */
@@ -1491,68 +1636,6 @@ declare const getDebugReason: (meta: Record<string, any> | undefined, options?:
1491
1636
  */
1492
1637
  declare const getSegmentDebugReason: (segment: Segment, options?: DebugReasonOptions) => string;
1493
1638
  //#endregion
1494
- //#region src/segmentation/pattern-validator.d.ts
1495
- /**
1496
- * Types of validation issues that can be detected.
1497
- */
1498
- type ValidationIssueType = 'missing_braces' | 'unknown_token' | 'duplicate' | 'empty_pattern' | 'invalid_regex' | 'invalid_option';
1499
- /**
1500
- * A validation issue found in a pattern.
1501
- */
1502
- type ValidationIssue = {
1503
- type: ValidationIssueType;
1504
- message: string;
1505
- suggestion?: string; /** The token name involved in the issue (for unknown_token / missing_braces) */
1506
- token?: string; /** The specific pattern involved (for duplicate) */
1507
- pattern?: string;
1508
- };
1509
- /**
1510
- * Validation result for a single rule, with issues keyed by pattern type.
1511
- * Arrays parallel the input pattern arrays - undefined means no issue.
1512
- */
1513
- type RuleValidationResult = {
1514
- lineStartsWith?: (ValidationIssue | undefined)[];
1515
- lineStartsAfter?: (ValidationIssue | undefined)[];
1516
- lineEndsWith?: (ValidationIssue | undefined)[];
1517
- template?: ValidationIssue;
1518
- regex?: ValidationIssue;
1519
- dictionaryEntry?: Partial<Record<keyof DictionaryEntryPatternOptions, ValidationIssue>>;
1520
- };
1521
- /**
1522
- * Validates split rules for common pattern issues.
1523
- *
1524
- * Checks for:
1525
- * - Missing `{{}}` around known token names (e.g., `raqms:num` instead of `{{raqms:num}}`)
1526
- * - Unknown token names inside `{{}}` (e.g., `{{nonexistent}}`)
1527
- * - Duplicate patterns within the same rule
1528
- *
1529
- * @param rules - Array of split rules to validate
1530
- * @returns Array parallel to input with validation results (undefined if no issues)
1531
- *
1532
- * @example
1533
- * const issues = validateRules([
1534
- * { lineStartsAfter: ['raqms:num'] }, // Missing braces
1535
- * { lineStartsWith: ['{{unknown}}'] }, // Unknown token
1536
- * ]);
1537
- * // issues[0]?.lineStartsAfter?.[0]?.type === 'missing_braces'
1538
- * // issues[1]?.lineStartsWith?.[0]?.type === 'unknown_token'
1539
- */
1540
- declare const validateRules: (rules: SplitRule[]) => (RuleValidationResult | undefined)[];
1541
- /**
1542
- * Formats a validation result array into a list of human-readable error messages.
1543
- *
1544
- * Useful for displaying validation errors in UIs.
1545
- *
1546
- * @param results - The result array from `validateRules()`
1547
- * @returns Array of formatted error strings
1548
- *
1549
- * @example
1550
- * const issues = validateRules(rules);
1551
- * const errors = formatValidationReport(issues);
1552
- * // ["Rule 1, lineStartsWith: Missing {{}} around token..."]
1553
- */
1554
- declare const formatValidationReport: (results: (RuleValidationResult | undefined)[]) => string[];
1555
- //#endregion
1556
1639
  //#region src/segmentation/segmenter.d.ts
1557
1640
  /**
1558
1641
  * Segments pages of content based on pattern-matching rules.
@@ -2009,5 +2092,5 @@ type ValidationOptions = {
2009
2092
  */
2010
2093
  declare const validateSegments: (pages: Page[], options: SegmentationOptions, segments: Segment[], validationOptions?: ValidationOptions) => SegmentValidationReport;
2011
2094
  //#endregion
2012
- export { ARABIC_BASE_LETTER_CLASS, ARABIC_LETTER_WITH_OPTIONAL_MARKS_PATTERN, ARABIC_MARKS_CLASS, ARABIC_WORD_WITH_OPTIONAL_MARKS_PATTERN, type ArabicDictionaryEntryRuleOptions, type ArabicDictionaryProfile, type Breakpoint, type BreakpointRule, type CommonLineStartPattern, type CondenseEllipsisRule, type DetectedPattern, type DictionaryBlocker, type DictionaryDiagnosticReason, type DictionaryDiagnosticSample, type DictionaryEntryPatternOptions, type DictionaryFamily, type DictionaryFamilyUse, type DictionaryGate, type DictionaryHeadingClass, type DictionaryHeadingScanClass, type DictionaryMarkdownPage, type DictionaryProfileDiagnostics, type DictionaryProfileDiagnosticsOptions, DictionaryProfileValidationError, type DictionaryProfileValidationIssue, type DictionaryProfileValidationIssueCode, type DictionarySegmentKind, type DictionarySegmentMeta, type DictionarySurfaceKind, type DictionarySurfaceMatch, type DictionarySurfaceReport, type DictionaryZone, type ExpandResult, type FixTrailingWawRule, type LineStartAnalysisOptions, type LineStartPatternExample, type Logger, type OptimizeResult, PATTERN_TYPE_KEYS, type Page, type PageRange, type PageRangeConstraint, type PageRangeConstraintWithExclude, type PatternProcessor, type PatternTypeKey, type PreprocessTransform, type RemoveZeroWidthRule, type RepeatingSequenceExample, type RepeatingSequenceOptions, type RepeatingSequencePattern, type RuleValidationResult, type Segment, type SegmentValidationIssue, type SegmentValidationIssueSeverity, type SegmentValidationIssueType, type SegmentValidationReport, type SegmentationOptions, type SplitRule, TOKEN_PATTERNS, Token, type TokenKey, type TokenMapping, type TokenPatternName, type ValidationIssue, type ValidationIssueType, type ValidationOptions, analyzeCommonLineStarts, analyzeDictionaryMarkdownPages, analyzeRepeatingSequences, analyzeTextForRule, applyPreprocessToPage, applyTokenMappings, classifyDictionaryHeading, condenseEllipsis, containsTokens, createArabicDictionaryEntryRule, detectTokenPatterns, diagnoseDictionaryProfile, escapeRegex, escapeTemplateBrackets, escapeWordsOutsideTokens, expandCompositeTokensInTemplate, expandTokens, expandTokensWithCaptures, fixTrailingWaw, formatValidationReport, generateTemplateFromText, getAvailableTokens, getDebugReason, getSegmentDebugReason, getTokenPattern, makeDiacriticInsensitive, normalizeArabicForComparison, optimizeRules, removeZeroWidth, scanDictionaryMarkdownPage, segmentPages, shouldDefaultToFuzzy, stripTokenMappings, suggestPatternConfig, templateToRegex, validateDictionaryProfile, validateRules, validateSegments, withCapture };
2095
+ export { ARABIC_BASE_LETTER_CLASS, ARABIC_LETTER_WITH_OPTIONAL_MARKS_PATTERN, ARABIC_MARKS_CLASS, ARABIC_WORD_WITH_OPTIONAL_MARKS_PATTERN, type ArabicDictionaryEntryRuleOptions, type ArabicDictionaryProfile, type Breakpoint, type BreakpointRule, type BreakpointSuggestion, type CommonLineStartPattern, type CondenseEllipsisRule, type DetectedPattern, type DictionaryBlocker, type DictionaryDiagnosticReason, type DictionaryDiagnosticSample, type DictionaryEntryPatternOptions, type DictionaryFamily, type DictionaryFamilyUse, type DictionaryGate, type DictionaryHeadingClass, type DictionaryHeadingScanClass, type DictionaryMarkdownPage, type DictionaryProfileDiagnostics, type DictionaryProfileDiagnosticsOptions, DictionaryProfileValidationError, type DictionaryProfileValidationIssue, type DictionaryProfileValidationIssueCode, type DictionarySegmentKind, type DictionarySegmentMeta, type DictionarySurfaceKind, type DictionarySurfaceMatch, type DictionarySurfaceReport, type DictionaryZone, type ExpandResult, type FixTrailingWawRule, type LineStartAnalysisOptions, type LineStartPatternExample, type Logger, type OptimizeResult, PATTERN_TYPE_KEYS, type Page, type PageRange, type PageRangeConstraint, type PageRangeConstraintWithExclude, type PatternProcessor, type PatternTypeKey, type PreprocessDetections, type PreprocessSuggestion, type PreprocessTransform, type RemoveZeroWidthRule, type RepeatingSequenceExample, type RepeatingSequenceOptions, type RepeatingSequencePattern, type RuleSuggestionConfidence, type RuleSuggestionSource, type RuleValidationResult, type Segment, type SegmentValidationIssue, type SegmentValidationIssueSeverity, type SegmentValidationIssueType, type SegmentValidationReport, type SegmentationAdvisorMode, type SegmentationAdvisorOptions, type SegmentationEvaluation, type SegmentationOptions, type SegmentationSuggestionReport, type SplitRule, type SuggestedRule, TOKEN_PATTERNS, Token, type TokenKey, type TokenMapping, type TokenPatternName, type ValidationIssue, type ValidationIssueType, type ValidationOptions, analyzeCommonLineStarts, analyzeDictionaryMarkdownPages, analyzeRepeatingSequences, analyzeTextForRule, applyPreprocessToPage, applyTokenMappings, classifyDictionaryHeading, condenseEllipsis, containsTokens, createArabicDictionaryEntryRule, detectTokenPatterns, diagnoseDictionaryProfile, escapeRegex, escapeTemplateBrackets, escapeWordsOutsideTokens, expandCompositeTokensInTemplate, expandTokens, expandTokensWithCaptures, fixTrailingWaw, formatValidationReport, generateTemplateFromText, getAvailableTokens, getDebugReason, getSegmentDebugReason, getTokenPattern, makeDiacriticInsensitive, normalizeArabicForComparison, optimizeRules, removeZeroWidth, scanDictionaryMarkdownPage, segmentPages, shouldDefaultToFuzzy, stripTokenMappings, suggestPatternConfig, suggestSegmentationOptions, templateToRegex, validateDictionaryProfile, validateRules, validateSegments, withCapture };
2013
2096
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types/breakpoints.ts","../src/types/dictionary.ts","../src/types/rules.ts","../src/types/options.ts","../src/types/validation.ts","../src/types/index.ts","../src/analysis/line-starts.ts","../src/analysis/repeating-sequences.ts","../src/detection.ts","../src/dictionary/arabic-dictionary-rule.ts","../src/dictionary/heading-classifier.ts","../src/dictionary/profile.ts","../src/dictionary/runtime.ts","../src/optimization/optimize-rules.ts","../src/preprocessing/transforms.ts","../src/segmentation/breakpoint-utils.ts","../src/segmentation/debug-meta.ts","../src/segmentation/pattern-validator.ts","../src/segmentation/segmenter.ts","../src/segmentation/tokens.ts","../src/utils/textUtils.ts","../src/validation/validate-segments.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types/breakpoints.ts","../src/types/dictionary.ts","../src/types/rules.ts","../src/types/options.ts","../src/types/validation.ts","../src/types/index.ts","../src/analysis/line-starts.ts","../src/analysis/repeating-sequences.ts","../src/segmentation/pattern-validator.ts","../src/analysis/segmentation-advisor.ts","../src/detection.ts","../src/dictionary/arabic-dictionary-rule.ts","../src/dictionary/heading-classifier.ts","../src/dictionary/profile.ts","../src/dictionary/dictionary-diagnostics.ts","../src/optimization/optimize-rules.ts","../src/preprocessing/transforms.ts","../src/segmentation/breakpoint-utils.ts","../src/segmentation/debug-meta.ts","../src/segmentation/segmenter.ts","../src/segmentation/tokens.ts","../src/utils/textUtils.ts","../src/validation/validate-segments.ts"],"mappings":"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"}