marlarky 1.0.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 (274) hide show
  1. package/README.md +489 -0
  2. package/dist/adapters/faker-js-adapter.d.ts +44 -0
  3. package/dist/adapters/faker-js-adapter.d.ts.map +1 -0
  4. package/dist/adapters/faker-js-adapter.js +46 -0
  5. package/dist/adapters/faker-js-adapter.js.map +1 -0
  6. package/dist/adapters/index.d.ts +3 -0
  7. package/dist/adapters/index.d.ts.map +1 -0
  8. package/dist/adapters/index.js +3 -0
  9. package/dist/adapters/index.js.map +1 -0
  10. package/dist/adapters/simple-faker-adapter.d.ts +22 -0
  11. package/dist/adapters/simple-faker-adapter.d.ts.map +1 -0
  12. package/dist/adapters/simple-faker-adapter.js +54 -0
  13. package/dist/adapters/simple-faker-adapter.js.map +1 -0
  14. package/dist/cli.d.ts +7 -0
  15. package/dist/cli.d.ts.map +1 -0
  16. package/dist/cli.js +588 -0
  17. package/dist/cli.js.map +1 -0
  18. package/dist/defaults/index.d.ts +2 -0
  19. package/dist/defaults/index.d.ts.map +1 -0
  20. package/dist/defaults/index.js +2 -0
  21. package/dist/defaults/index.js.map +1 -0
  22. package/dist/defaults/word-lists.d.ts +22 -0
  23. package/dist/defaults/word-lists.d.ts.map +1 -0
  24. package/dist/defaults/word-lists.js +124 -0
  25. package/dist/defaults/word-lists.js.map +1 -0
  26. package/dist/generator/index.d.ts +2 -0
  27. package/dist/generator/index.d.ts.map +1 -0
  28. package/dist/generator/index.js +2 -0
  29. package/dist/generator/index.js.map +1 -0
  30. package/dist/generator/text-generator.d.ts +93 -0
  31. package/dist/generator/text-generator.d.ts.map +1 -0
  32. package/dist/generator/text-generator.js +411 -0
  33. package/dist/generator/text-generator.js.map +1 -0
  34. package/dist/generator/text-generator.test.d.ts +2 -0
  35. package/dist/generator/text-generator.test.d.ts.map +1 -0
  36. package/dist/generator/text-generator.test.js +151 -0
  37. package/dist/generator/text-generator.test.js.map +1 -0
  38. package/dist/grammar/index.d.ts +5 -0
  39. package/dist/grammar/index.d.ts.map +1 -0
  40. package/dist/grammar/index.js +3 -0
  41. package/dist/grammar/index.js.map +1 -0
  42. package/dist/grammar/phrase-builders.d.ts +72 -0
  43. package/dist/grammar/phrase-builders.d.ts.map +1 -0
  44. package/dist/grammar/phrase-builders.js +241 -0
  45. package/dist/grammar/phrase-builders.js.map +1 -0
  46. package/dist/grammar/sentence-templates.d.ts +67 -0
  47. package/dist/grammar/sentence-templates.d.ts.map +1 -0
  48. package/dist/grammar/sentence-templates.js +272 -0
  49. package/dist/grammar/sentence-templates.js.map +1 -0
  50. package/dist/index.d.ts +17 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +40 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/interfaces/faker-adapter.d.ts +25 -0
  55. package/dist/interfaces/faker-adapter.d.ts.map +1 -0
  56. package/dist/interfaces/faker-adapter.js +2 -0
  57. package/dist/interfaces/faker-adapter.js.map +1 -0
  58. package/dist/interfaces/index.d.ts +4 -0
  59. package/dist/interfaces/index.d.ts.map +1 -0
  60. package/dist/interfaces/index.js +2 -0
  61. package/dist/interfaces/index.js.map +1 -0
  62. package/dist/interfaces/lexicon-store.d.ts +39 -0
  63. package/dist/interfaces/lexicon-store.d.ts.map +1 -0
  64. package/dist/interfaces/lexicon-store.js +2 -0
  65. package/dist/interfaces/lexicon-store.js.map +1 -0
  66. package/dist/interfaces/rng.d.ts +25 -0
  67. package/dist/interfaces/rng.d.ts.map +1 -0
  68. package/dist/interfaces/rng.js +2 -0
  69. package/dist/interfaces/rng.js.map +1 -0
  70. package/dist/lexicon/index.d.ts +4 -0
  71. package/dist/lexicon/index.d.ts.map +1 -0
  72. package/dist/lexicon/index.js +4 -0
  73. package/dist/lexicon/index.js.map +1 -0
  74. package/dist/lexicon/loader.d.ts +24 -0
  75. package/dist/lexicon/loader.d.ts.map +1 -0
  76. package/dist/lexicon/loader.js +47 -0
  77. package/dist/lexicon/loader.js.map +1 -0
  78. package/dist/lexicon/store.d.ts +39 -0
  79. package/dist/lexicon/store.d.ts.map +1 -0
  80. package/dist/lexicon/store.js +291 -0
  81. package/dist/lexicon/store.js.map +1 -0
  82. package/dist/lexicon/validator.d.ts +10 -0
  83. package/dist/lexicon/validator.d.ts.map +1 -0
  84. package/dist/lexicon/validator.js +273 -0
  85. package/dist/lexicon/validator.js.map +1 -0
  86. package/dist/morphology/articles.d.ts +17 -0
  87. package/dist/morphology/articles.d.ts.map +1 -0
  88. package/dist/morphology/articles.js +66 -0
  89. package/dist/morphology/articles.js.map +1 -0
  90. package/dist/morphology/articles.test.d.ts +2 -0
  91. package/dist/morphology/articles.test.d.ts.map +1 -0
  92. package/dist/morphology/articles.test.js +56 -0
  93. package/dist/morphology/articles.test.js.map +1 -0
  94. package/dist/morphology/conjugate.d.ts +46 -0
  95. package/dist/morphology/conjugate.d.ts.map +1 -0
  96. package/dist/morphology/conjugate.js +337 -0
  97. package/dist/morphology/conjugate.js.map +1 -0
  98. package/dist/morphology/conjugate.test.d.ts +2 -0
  99. package/dist/morphology/conjugate.test.d.ts.map +1 -0
  100. package/dist/morphology/conjugate.test.js +168 -0
  101. package/dist/morphology/conjugate.test.js.map +1 -0
  102. package/dist/morphology/index.d.ts +6 -0
  103. package/dist/morphology/index.d.ts.map +1 -0
  104. package/dist/morphology/index.js +9 -0
  105. package/dist/morphology/index.js.map +1 -0
  106. package/dist/morphology/normalize.d.ts +52 -0
  107. package/dist/morphology/normalize.d.ts.map +1 -0
  108. package/dist/morphology/normalize.js +127 -0
  109. package/dist/morphology/normalize.js.map +1 -0
  110. package/dist/morphology/pluralize.d.ts +17 -0
  111. package/dist/morphology/pluralize.d.ts.map +1 -0
  112. package/dist/morphology/pluralize.js +186 -0
  113. package/dist/morphology/pluralize.js.map +1 -0
  114. package/dist/morphology/pluralize.test.d.ts +2 -0
  115. package/dist/morphology/pluralize.test.d.ts.map +1 -0
  116. package/dist/morphology/pluralize.test.js +86 -0
  117. package/dist/morphology/pluralize.test.js.map +1 -0
  118. package/dist/providers/index.d.ts +2 -0
  119. package/dist/providers/index.d.ts.map +1 -0
  120. package/dist/providers/index.js +2 -0
  121. package/dist/providers/index.js.map +1 -0
  122. package/dist/providers/word-provider.d.ts +125 -0
  123. package/dist/providers/word-provider.d.ts.map +1 -0
  124. package/dist/providers/word-provider.js +266 -0
  125. package/dist/providers/word-provider.js.map +1 -0
  126. package/dist/rng/index.d.ts +2 -0
  127. package/dist/rng/index.d.ts.map +1 -0
  128. package/dist/rng/index.js +2 -0
  129. package/dist/rng/index.js.map +1 -0
  130. package/dist/rng/seedable-rng.d.ts +19 -0
  131. package/dist/rng/seedable-rng.d.ts.map +1 -0
  132. package/dist/rng/seedable-rng.js +77 -0
  133. package/dist/rng/seedable-rng.js.map +1 -0
  134. package/dist/rng/seedable-rng.test.d.ts +2 -0
  135. package/dist/rng/seedable-rng.test.d.ts.map +1 -0
  136. package/dist/rng/seedable-rng.test.js +165 -0
  137. package/dist/rng/seedable-rng.test.js.map +1 -0
  138. package/dist/rules/index.d.ts +3 -0
  139. package/dist/rules/index.d.ts.map +1 -0
  140. package/dist/rules/index.js +2 -0
  141. package/dist/rules/index.js.map +1 -0
  142. package/dist/rules/rule-engine.d.ts +78 -0
  143. package/dist/rules/rule-engine.d.ts.map +1 -0
  144. package/dist/rules/rule-engine.js +271 -0
  145. package/dist/rules/rule-engine.js.map +1 -0
  146. package/dist/transforms/config-merge.d.ts +19 -0
  147. package/dist/transforms/config-merge.d.ts.map +1 -0
  148. package/dist/transforms/config-merge.js +88 -0
  149. package/dist/transforms/config-merge.js.map +1 -0
  150. package/dist/transforms/config-merge.test.d.ts +2 -0
  151. package/dist/transforms/config-merge.test.d.ts.map +1 -0
  152. package/dist/transforms/config-merge.test.js +91 -0
  153. package/dist/transforms/config-merge.test.js.map +1 -0
  154. package/dist/transforms/default-registry.d.ts +10 -0
  155. package/dist/transforms/default-registry.d.ts.map +1 -0
  156. package/dist/transforms/default-registry.js +17 -0
  157. package/dist/transforms/default-registry.js.map +1 -0
  158. package/dist/transforms/index.d.ts +15 -0
  159. package/dist/transforms/index.d.ts.map +1 -0
  160. package/dist/transforms/index.js +20 -0
  161. package/dist/transforms/index.js.map +1 -0
  162. package/dist/transforms/pipeline.d.ts +28 -0
  163. package/dist/transforms/pipeline.d.ts.map +1 -0
  164. package/dist/transforms/pipeline.js +176 -0
  165. package/dist/transforms/pipeline.js.map +1 -0
  166. package/dist/transforms/pipeline.test.d.ts +2 -0
  167. package/dist/transforms/pipeline.test.d.ts.map +1 -0
  168. package/dist/transforms/pipeline.test.js +175 -0
  169. package/dist/transforms/pipeline.test.js.map +1 -0
  170. package/dist/transforms/protection.d.ts +16 -0
  171. package/dist/transforms/protection.d.ts.map +1 -0
  172. package/dist/transforms/protection.js +97 -0
  173. package/dist/transforms/protection.js.map +1 -0
  174. package/dist/transforms/protection.test.d.ts +2 -0
  175. package/dist/transforms/protection.test.d.ts.map +1 -0
  176. package/dist/transforms/protection.test.js +79 -0
  177. package/dist/transforms/protection.test.js.map +1 -0
  178. package/dist/transforms/registry.d.ts +25 -0
  179. package/dist/transforms/registry.d.ts.map +1 -0
  180. package/dist/transforms/registry.js +32 -0
  181. package/dist/transforms/registry.js.map +1 -0
  182. package/dist/transforms/registry.test.d.ts +2 -0
  183. package/dist/transforms/registry.test.d.ts.map +1 -0
  184. package/dist/transforms/registry.test.js +64 -0
  185. package/dist/transforms/registry.test.js.map +1 -0
  186. package/dist/transforms/tokenizer.d.ts +26 -0
  187. package/dist/transforms/tokenizer.d.ts.map +1 -0
  188. package/dist/transforms/tokenizer.js +137 -0
  189. package/dist/transforms/tokenizer.js.map +1 -0
  190. package/dist/transforms/tokenizer.test.d.ts +2 -0
  191. package/dist/transforms/tokenizer.test.d.ts.map +1 -0
  192. package/dist/transforms/tokenizer.test.js +85 -0
  193. package/dist/transforms/tokenizer.test.js.map +1 -0
  194. package/dist/transforms/transforms/biz-jargon.d.ts +7 -0
  195. package/dist/transforms/transforms/biz-jargon.d.ts.map +1 -0
  196. package/dist/transforms/transforms/biz-jargon.js +117 -0
  197. package/dist/transforms/transforms/biz-jargon.js.map +1 -0
  198. package/dist/transforms/transforms/emoji.d.ts +7 -0
  199. package/dist/transforms/transforms/emoji.d.ts.map +1 -0
  200. package/dist/transforms/transforms/emoji.js +127 -0
  201. package/dist/transforms/transforms/emoji.js.map +1 -0
  202. package/dist/transforms/transforms/index.d.ts +17 -0
  203. package/dist/transforms/transforms/index.d.ts.map +1 -0
  204. package/dist/transforms/transforms/index.js +37 -0
  205. package/dist/transforms/transforms/index.js.map +1 -0
  206. package/dist/transforms/transforms/leet.d.ts +7 -0
  207. package/dist/transforms/transforms/leet.d.ts.map +1 -0
  208. package/dist/transforms/transforms/leet.js +109 -0
  209. package/dist/transforms/transforms/leet.js.map +1 -0
  210. package/dist/transforms/transforms/mock-case.d.ts +7 -0
  211. package/dist/transforms/transforms/mock-case.d.ts.map +1 -0
  212. package/dist/transforms/transforms/mock-case.js +116 -0
  213. package/dist/transforms/transforms/mock-case.js.map +1 -0
  214. package/dist/transforms/transforms/pig-latin.d.ts +7 -0
  215. package/dist/transforms/transforms/pig-latin.d.ts.map +1 -0
  216. package/dist/transforms/transforms/pig-latin.js +132 -0
  217. package/dist/transforms/transforms/pig-latin.js.map +1 -0
  218. package/dist/transforms/transforms/pig-latin.test.d.ts +2 -0
  219. package/dist/transforms/transforms/pig-latin.test.d.ts.map +1 -0
  220. package/dist/transforms/transforms/pig-latin.test.js +77 -0
  221. package/dist/transforms/transforms/pig-latin.test.js.map +1 -0
  222. package/dist/transforms/transforms/pirate.d.ts +7 -0
  223. package/dist/transforms/transforms/pirate.d.ts.map +1 -0
  224. package/dist/transforms/transforms/pirate.js +150 -0
  225. package/dist/transforms/transforms/pirate.js.map +1 -0
  226. package/dist/transforms/transforms/redact.d.ts +7 -0
  227. package/dist/transforms/transforms/redact.d.ts.map +1 -0
  228. package/dist/transforms/transforms/redact.js +109 -0
  229. package/dist/transforms/transforms/redact.js.map +1 -0
  230. package/dist/transforms/transforms/reverse-words.d.ts +7 -0
  231. package/dist/transforms/transforms/reverse-words.d.ts.map +1 -0
  232. package/dist/transforms/transforms/reverse-words.js +88 -0
  233. package/dist/transforms/transforms/reverse-words.js.map +1 -0
  234. package/dist/transforms/transforms/transforms.test.d.ts +11 -0
  235. package/dist/transforms/transforms/transforms.test.d.ts.map +1 -0
  236. package/dist/transforms/transforms/transforms.test.js +489 -0
  237. package/dist/transforms/transforms/transforms.test.js.map +1 -0
  238. package/dist/transforms/transforms/ubbi-dubbi.d.ts +7 -0
  239. package/dist/transforms/transforms/ubbi-dubbi.d.ts.map +1 -0
  240. package/dist/transforms/transforms/ubbi-dubbi.js +120 -0
  241. package/dist/transforms/transforms/ubbi-dubbi.js.map +1 -0
  242. package/dist/transforms/transforms/uwu.d.ts +7 -0
  243. package/dist/transforms/transforms/uwu.d.ts.map +1 -0
  244. package/dist/transforms/transforms/uwu.js +106 -0
  245. package/dist/transforms/transforms/uwu.js.map +1 -0
  246. package/dist/transforms/types.d.ts +159 -0
  247. package/dist/transforms/types.d.ts.map +1 -0
  248. package/dist/transforms/types.js +22 -0
  249. package/dist/transforms/types.js.map +1 -0
  250. package/dist/types/api.d.ts +158 -0
  251. package/dist/types/api.d.ts.map +1 -0
  252. package/dist/types/api.js +6 -0
  253. package/dist/types/api.js.map +1 -0
  254. package/dist/types/config.d.ts +86 -0
  255. package/dist/types/config.d.ts.map +1 -0
  256. package/dist/types/config.js +66 -0
  257. package/dist/types/config.js.map +1 -0
  258. package/dist/types/context.d.ts +74 -0
  259. package/dist/types/context.d.ts.map +1 -0
  260. package/dist/types/context.js +83 -0
  261. package/dist/types/context.js.map +1 -0
  262. package/dist/types/index.d.ts +7 -0
  263. package/dist/types/index.d.ts.map +1 -0
  264. package/dist/types/index.js +3 -0
  265. package/dist/types/index.js.map +1 -0
  266. package/dist/types/lexicon.d.ts +247 -0
  267. package/dist/types/lexicon.d.ts.map +1 -0
  268. package/dist/types/lexicon.js +6 -0
  269. package/dist/types/lexicon.js.map +1 -0
  270. package/examples/basic-usage.ts +48 -0
  271. package/examples/corporate-lexicon.ts +71 -0
  272. package/examples/lexicons/corporate-min.json +200 -0
  273. package/examples/with-tracing.ts +85 -0
  274. package/package.json +70 -0
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Generator Configuration Types
3
+ * Based on TDD Section 12 - GeneratorConfig
4
+ */
5
+ import type { OutputTransformsConfig } from '../transforms/types.js';
6
+ /** Sentence type weights */
7
+ export interface SentenceTypeWeights {
8
+ /** Simple declarative sentence (NP VP) */
9
+ simpleDeclarative: number;
10
+ /** Compound sentence (clause CONJ clause) */
11
+ compound: number;
12
+ /** Sentence with leading adverbial */
13
+ introAdverbial: number;
14
+ /** Sentence with subordinate clause */
15
+ subordinate: number;
16
+ /** Sentence starting with interjection */
17
+ interjection: number;
18
+ /** Question form */
19
+ question: number;
20
+ }
21
+ /** Generator configuration */
22
+ export interface GeneratorConfig {
23
+ /** Weights for sentence type selection */
24
+ sentenceTypeWeights: SentenceTypeWeights;
25
+ /** Minimum words per sentence */
26
+ minWordsPerSentence: number;
27
+ /** Maximum words per sentence */
28
+ maxWordsPerSentence: number;
29
+ /** Target average sentence length */
30
+ avgSentenceLength: number;
31
+ /** Minimum sentences per paragraph */
32
+ minSentencesPerParagraph: number;
33
+ /** Maximum sentences per paragraph */
34
+ maxSentencesPerParagraph: number;
35
+ /** Rate of interjection sentences (0-1) */
36
+ interjectionRate: number;
37
+ /** Rate of subordinate clauses (0-1) */
38
+ subordinateClauseRate: number;
39
+ /** Rate of relative clauses (0-1) */
40
+ relativeClauseRate: number;
41
+ /** Rate of question sentences (0-1) */
42
+ questionRate: number;
43
+ /** Rate of compound sentences (0-1) */
44
+ compoundRate: number;
45
+ /** Maximum prepositional phrase chains */
46
+ maxPPChain: number;
47
+ /** Maximum adjectives before a noun */
48
+ maxAdjectivesPerNoun: number;
49
+ /** Maximum adverbs per verb phrase */
50
+ maxAdverbsPerVerb: number;
51
+ /** Maximum attempts to generate a valid sentence */
52
+ maxSentenceAttempts: number;
53
+ /** Maximum attempts to generate a valid phrase */
54
+ maxPhraseAttempts: number;
55
+ /** Enable tracing for debugging */
56
+ enableTrace: boolean;
57
+ /** Throw error on constraint failure vs best-effort */
58
+ strictMode: boolean;
59
+ /** Default determiners */
60
+ determiners: string[];
61
+ /** Subject pronouns */
62
+ subjectPronouns: string[];
63
+ /** Object pronouns */
64
+ objectPronouns: string[];
65
+ /** Possessive determiners */
66
+ possessiveDeterminers: string[];
67
+ /** Modal verbs */
68
+ modals: string[];
69
+ /** Subordinating conjunctions */
70
+ subordinators: string[];
71
+ /** Relative pronouns */
72
+ relatives: string[];
73
+ /** Coordinating conjunctions */
74
+ coordinators: string[];
75
+ /** Transition words/phrases */
76
+ transitions: string[];
77
+ /** Common interjections */
78
+ interjections: string[];
79
+ /** Output transforms configuration */
80
+ outputTransforms?: OutputTransformsConfig;
81
+ }
82
+ /** Default configuration */
83
+ export declare const DEFAULT_CONFIG: GeneratorConfig;
84
+ /** Merge user config with defaults */
85
+ export declare function mergeConfig(userConfig?: Partial<GeneratorConfig>): GeneratorConfig;
86
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,4BAA4B;AAC5B,MAAM,WAAW,mBAAmB;IAClC,0CAA0C;IAC1C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,mBAAmB,EAAE,mBAAmB,CAAC;IAEzC,iCAAiC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iCAAiC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qCAAqC;IACrC,iBAAiB,EAAE,MAAM,CAAC;IAE1B,sCAAsC;IACtC,wBAAwB,EAAE,MAAM,CAAC;IACjC,sCAAsC;IACtC,wBAAwB,EAAE,MAAM,CAAC;IAEjC,2CAA2C;IAC3C,gBAAgB,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qCAAqC;IACrC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;IAErB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sCAAsC;IACtC,iBAAiB,EAAE,MAAM,CAAC;IAE1B,oDAAoD;IACpD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kDAAkD;IAClD,iBAAiB,EAAE,MAAM,CAAC;IAE1B,mCAAmC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,uDAAuD;IACvD,UAAU,EAAE,OAAO,CAAC;IAEpB,0BAA0B;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,uBAAuB;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,sBAAsB;IACtB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,6BAA6B;IAC7B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,kBAAkB;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iCAAiC;IACjC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,wBAAwB;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gCAAgC;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,2BAA2B;IAC3B,aAAa,EAAE,MAAM,EAAE,CAAC;IAExB,sCAAsC;IACtC,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;CAC3C;AAED,4BAA4B;AAC5B,eAAO,MAAM,cAAc,EAAE,eAkD5B,CAAC;AAEF,sCAAsC;AACtC,wBAAgB,WAAW,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAqBlF"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Generator Configuration Types
3
+ * Based on TDD Section 12 - GeneratorConfig
4
+ */
5
+ /** Default configuration */
6
+ export const DEFAULT_CONFIG = {
7
+ sentenceTypeWeights: {
8
+ simpleDeclarative: 45,
9
+ compound: 15,
10
+ introAdverbial: 12,
11
+ subordinate: 15,
12
+ interjection: 3,
13
+ question: 10,
14
+ },
15
+ minWordsPerSentence: 5,
16
+ maxWordsPerSentence: 25,
17
+ avgSentenceLength: 12,
18
+ minSentencesPerParagraph: 2,
19
+ maxSentencesPerParagraph: 7,
20
+ interjectionRate: 0.03,
21
+ subordinateClauseRate: 0.15,
22
+ relativeClauseRate: 0.10,
23
+ questionRate: 0.10,
24
+ compoundRate: 0.15,
25
+ maxPPChain: 2,
26
+ maxAdjectivesPerNoun: 2,
27
+ maxAdverbsPerVerb: 1,
28
+ maxSentenceAttempts: 25,
29
+ maxPhraseAttempts: 10,
30
+ enableTrace: false,
31
+ strictMode: false,
32
+ determiners: ['the', 'a', 'an', 'this', 'that', 'these', 'those', 'my', 'your', 'his', 'her', 'its', 'our', 'their', 'some', 'any', 'no', 'every', 'each', 'all', 'both', 'few', 'many', 'several'],
33
+ subjectPronouns: ['I', 'you', 'he', 'she', 'it', 'we', 'they'],
34
+ objectPronouns: ['me', 'you', 'him', 'her', 'it', 'us', 'them'],
35
+ possessiveDeterminers: ['my', 'your', 'his', 'her', 'its', 'our', 'their'],
36
+ modals: ['can', 'could', 'may', 'might', 'must', 'shall', 'should', 'will', 'would'],
37
+ subordinators: ['after', 'although', 'as', 'because', 'before', 'if', 'once', 'since', 'than', 'that', 'though', 'unless', 'until', 'when', 'whenever', 'where', 'wherever', 'while'],
38
+ relatives: ['who', 'whom', 'whose', 'which', 'that'],
39
+ coordinators: ['and', 'but', 'or', 'nor', 'for', 'yet', 'so'],
40
+ transitions: ['however', 'therefore', 'moreover', 'furthermore', 'meanwhile', 'consequently', 'nevertheless', 'otherwise', 'accordingly', 'indeed', 'certainly', 'naturally', 'fortunately', 'unfortunately', 'surprisingly', 'generally', 'specifically', 'particularly'],
41
+ interjections: ['oh', 'ah', 'well', 'wow', 'hey', 'alas', 'indeed', 'certainly', 'surely', 'naturally'],
42
+ };
43
+ /** Merge user config with defaults */
44
+ export function mergeConfig(userConfig) {
45
+ if (!userConfig)
46
+ return { ...DEFAULT_CONFIG };
47
+ return {
48
+ ...DEFAULT_CONFIG,
49
+ ...userConfig,
50
+ sentenceTypeWeights: {
51
+ ...DEFAULT_CONFIG.sentenceTypeWeights,
52
+ ...userConfig.sentenceTypeWeights,
53
+ },
54
+ determiners: userConfig.determiners ?? DEFAULT_CONFIG.determiners,
55
+ subjectPronouns: userConfig.subjectPronouns ?? DEFAULT_CONFIG.subjectPronouns,
56
+ objectPronouns: userConfig.objectPronouns ?? DEFAULT_CONFIG.objectPronouns,
57
+ possessiveDeterminers: userConfig.possessiveDeterminers ?? DEFAULT_CONFIG.possessiveDeterminers,
58
+ modals: userConfig.modals ?? DEFAULT_CONFIG.modals,
59
+ subordinators: userConfig.subordinators ?? DEFAULT_CONFIG.subordinators,
60
+ relatives: userConfig.relatives ?? DEFAULT_CONFIG.relatives,
61
+ coordinators: userConfig.coordinators ?? DEFAULT_CONFIG.coordinators,
62
+ transitions: userConfig.transitions ?? DEFAULT_CONFIG.transitions,
63
+ interjections: userConfig.interjections ?? DEFAULT_CONFIG.interjections,
64
+ };
65
+ }
66
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Generation Context Types
3
+ * Based on TDD Section 7 - Generation Context
4
+ */
5
+ import type { Constraint, Invariant, ChoiceEvent, LexicalItem, POS } from './lexicon.js';
6
+ /** Phrase features for agreement */
7
+ export interface PhraseFeatures {
8
+ /** Grammatical number */
9
+ number: 'singular' | 'plural';
10
+ /** Grammatical person */
11
+ person: 1 | 2 | 3;
12
+ }
13
+ /** History of choices made during generation */
14
+ export interface GenerationHistory {
15
+ /** Term sets that have been used */
16
+ chosenTermSets: string[];
17
+ /** Terms chosen by POS */
18
+ chosenTerms: Map<POS, LexicalItem[]>;
19
+ /** Patterns/templates used */
20
+ chosenPatterns: string[];
21
+ /** All choice events */
22
+ events: ChoiceEvent[];
23
+ }
24
+ /** Scope stack entry */
25
+ export interface ScopeEntry {
26
+ type: 'token' | 'phrase' | 'clause' | 'sentence' | 'paragraph' | 'text';
27
+ startIndex: number;
28
+ }
29
+ /** Generation Context - Tracks state and biases during generation */
30
+ export interface GenerationContext {
31
+ /** Current seed value */
32
+ seed: number;
33
+ /** Active archetype name */
34
+ archetype: string;
35
+ /** Active tags (e.g., domain:tech) */
36
+ activeTags: Set<string>;
37
+ /** Bias adjustments for term sets and patterns */
38
+ biases: Map<string, number>;
39
+ /** History of choices made */
40
+ history: GenerationHistory;
41
+ /** Current scope stack */
42
+ scopeStack: ScopeEntry[];
43
+ /** Active constraints */
44
+ constraints: Constraint[];
45
+ /** Active invariants */
46
+ invariants: Invariant[];
47
+ /** Current sentence index in paragraph */
48
+ sentenceIndex: number;
49
+ /** Current paragraph index in text */
50
+ paragraphIndex: number;
51
+ /** Tokens generated in current sentence */
52
+ currentSentenceTokens: string[];
53
+ /** Subject features for agreement */
54
+ currentSubjectFeatures?: PhraseFeatures;
55
+ /** Relation hints from previous choices */
56
+ relationHints: string[];
57
+ /** Retry count for current unit */
58
+ retryCount: number;
59
+ }
60
+ /** Create a fresh generation context */
61
+ export declare function createContext(seed: number, archetype?: string): GenerationContext;
62
+ /** Push a new scope onto the stack */
63
+ export declare function pushScope(ctx: GenerationContext, type: ScopeEntry['type']): void;
64
+ /** Pop the current scope from the stack */
65
+ export declare function popScope(ctx: GenerationContext): ScopeEntry | undefined;
66
+ /** Get the current scope */
67
+ export declare function currentScope(ctx: GenerationContext): ScopeEntry['type'];
68
+ /** Record a choice event */
69
+ export declare function recordChoice(ctx: GenerationContext, event: ChoiceEvent): void;
70
+ /** Clear sentence-level state */
71
+ export declare function clearSentenceState(ctx: GenerationContext): void;
72
+ /** Clear paragraph-level state */
73
+ export declare function clearParagraphState(ctx: GenerationContext): void;
74
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/types/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEzF,oCAAoC;AACpC,MAAM,WAAW,cAAc;IAC7B,yBAAyB;IACzB,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC9B,yBAAyB;IACzB,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACnB;AAED,gDAAgD;AAChD,MAAM,WAAW,iBAAiB;IAChC,oCAAoC;IACpC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,0BAA0B;IAC1B,WAAW,EAAE,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IACrC,8BAA8B;IAC9B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,wBAAwB;IACxB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,wBAAwB;AACxB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,CAAC;IACxE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qEAAqE;AACrE,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,kDAAkD;IAClD,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,8BAA8B;IAC9B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,0BAA0B;IAC1B,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB,yBAAyB;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,wBAAwB;IACxB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,qCAAqC;IACrC,sBAAsB,CAAC,EAAE,cAAc,CAAC;IACxC,2CAA2C;IAC3C,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wCAAwC;AACxC,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAkB,GAAG,iBAAiB,CAsB5F;AAED,sCAAsC;AACtC,wBAAgB,SAAS,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAEhF;AAED,2CAA2C;AAC3C,wBAAgB,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,UAAU,GAAG,SAAS,CAKvE;AAED,4BAA4B;AAC5B,wBAAgB,YAAY,CAAC,GAAG,EAAE,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAC,CAEvE;AAED,4BAA4B;AAC5B,wBAAgB,YAAY,CAAC,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAe7E;AAED,iCAAiC;AACjC,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAW/D;AAED,kCAAkC;AAClC,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAUhE"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Generation Context Types
3
+ * Based on TDD Section 7 - Generation Context
4
+ */
5
+ /** Create a fresh generation context */
6
+ export function createContext(seed, archetype = 'default') {
7
+ return {
8
+ seed,
9
+ archetype,
10
+ activeTags: new Set(),
11
+ biases: new Map(),
12
+ history: {
13
+ chosenTermSets: [],
14
+ chosenTerms: new Map(),
15
+ chosenPatterns: [],
16
+ events: [],
17
+ },
18
+ scopeStack: [{ type: 'text', startIndex: 0 }],
19
+ constraints: [],
20
+ invariants: [],
21
+ sentenceIndex: 0,
22
+ paragraphIndex: 0,
23
+ currentSentenceTokens: [],
24
+ currentSubjectFeatures: undefined,
25
+ relationHints: [],
26
+ retryCount: 0,
27
+ };
28
+ }
29
+ /** Push a new scope onto the stack */
30
+ export function pushScope(ctx, type) {
31
+ ctx.scopeStack.push({ type, startIndex: ctx.history.events.length });
32
+ }
33
+ /** Pop the current scope from the stack */
34
+ export function popScope(ctx) {
35
+ if (ctx.scopeStack.length > 1) {
36
+ return ctx.scopeStack.pop();
37
+ }
38
+ return undefined;
39
+ }
40
+ /** Get the current scope */
41
+ export function currentScope(ctx) {
42
+ return ctx.scopeStack[ctx.scopeStack.length - 1]?.type ?? 'text';
43
+ }
44
+ /** Record a choice event */
45
+ export function recordChoice(ctx, event) {
46
+ ctx.history.events.push(event);
47
+ if (event.type === 'term' && typeof event.item === 'object' && event.item !== null && 'pos' in event.item) {
48
+ const item = event.item;
49
+ const existing = ctx.history.chosenTerms.get(item.pos) ?? [];
50
+ existing.push(item);
51
+ ctx.history.chosenTerms.set(item.pos, existing);
52
+ if (event.termSetId) {
53
+ ctx.history.chosenTermSets.push(event.termSetId);
54
+ }
55
+ }
56
+ else if (event.type === 'pattern' && event.patternId) {
57
+ ctx.history.chosenPatterns.push(event.patternId);
58
+ }
59
+ }
60
+ /** Clear sentence-level state */
61
+ export function clearSentenceState(ctx) {
62
+ ctx.currentSentenceTokens = [];
63
+ ctx.currentSubjectFeatures = undefined;
64
+ ctx.relationHints = [];
65
+ // Clear sentence-scoped biases
66
+ for (const [key, _value] of ctx.biases) {
67
+ if (key.startsWith('sentence:')) {
68
+ ctx.biases.delete(key);
69
+ }
70
+ }
71
+ }
72
+ /** Clear paragraph-level state */
73
+ export function clearParagraphState(ctx) {
74
+ clearSentenceState(ctx);
75
+ ctx.sentenceIndex = 0;
76
+ // Clear paragraph-scoped biases
77
+ for (const [key, _value] of ctx.biases) {
78
+ if (key.startsWith('paragraph:')) {
79
+ ctx.biases.delete(key);
80
+ }
81
+ }
82
+ }
83
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/types/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export type { Lexicon, TermSet, Term, TermFeatures, LexicalItem, Pattern, DistributionEntry, Correlation, CorrelationCondition, CorrelationBoost, Constraint, Invariant, Archetype, Relation, TermQuery, PatternQuery, ChoiceEvent, RelationResult, POS, } from './lexicon.js';
2
+ export type { GenerationContext, GenerationHistory, PhraseFeatures, ScopeEntry, } from './context.js';
3
+ export { createContext, pushScope, popScope, currentScope, recordChoice, clearSentenceState, clearParagraphState, } from './context.js';
4
+ export type { GeneratorConfig, SentenceTypeWeights, } from './config.js';
5
+ export { DEFAULT_CONFIG, mergeConfig } from './config.js';
6
+ export type { GeneratorInitOptions, SentenceOptions, ParagraphOptions, TextBlockOptions, TokenTrace, SentenceTrace, ParagraphTrace, GenerationTrace, GenerationMeta, GeneratedText, LexiconValidationError, LexiconValidationResult, } from './api.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,OAAO,EACP,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,OAAO,EACP,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,WAAW,EACX,cAAc,EACd,GAAG,GACJ,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,eAAe,EACf,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1D,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,UAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { createContext, pushScope, popScope, currentScope, recordChoice, clearSentenceState, clearParagraphState, } from './context.js';
2
+ export { DEFAULT_CONFIG, mergeConfig } from './config.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AA8BA,OAAO,EACL,aAAa,EACb,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAOtB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,247 @@
1
+ /**
2
+ * Lexicon Schema Types
3
+ * Based on TDD Section 6 - Lexicon JSON Schema
4
+ */
5
+ import type { LexiconOutputTransforms, ArchetypeOutputTransforms } from '../transforms/types.js';
6
+ /** Part of Speech */
7
+ export type POS = 'noun' | 'verb' | 'adj' | 'adv' | 'prep' | 'conj' | 'intj' | 'det';
8
+ /** Lexicon Root Structure */
9
+ export interface Lexicon {
10
+ /** Unique lexicon identifier (required) */
11
+ id: string;
12
+ /** Lexicon version */
13
+ version?: string;
14
+ /** Language code (required) */
15
+ language: string;
16
+ /** Named pools of terms with optional tags and weights */
17
+ termSets?: Record<string, TermSet>;
18
+ /** Syntactic templates at phrase/sentence level */
19
+ patterns?: Record<string, Pattern>;
20
+ /** Distributions that bias choices by archetype/topic */
21
+ distributions?: Record<string, DistributionEntry[]>;
22
+ /** Conditional boosts triggered by choices/events */
23
+ correlations?: Correlation[];
24
+ /** Hard/soft constraints on generation */
25
+ constraints?: Constraint[];
26
+ /** Invariants that must always hold */
27
+ invariants?: Invariant[];
28
+ /** Style presets with biases */
29
+ archetypes?: Record<string, Archetype>;
30
+ /** Relations connecting terms/entities */
31
+ relations?: Relation[];
32
+ /** Output transform defaults for this lexicon */
33
+ outputTransforms?: LexiconOutputTransforms;
34
+ }
35
+ /** Term Set - A named pool of terms */
36
+ export interface TermSet {
37
+ /** Part of speech for this term set */
38
+ pos: POS;
39
+ /** Tags for categorization (e.g., ["domain:tech"]) */
40
+ tags?: string[];
41
+ /** List of terms in this set */
42
+ terms: Term[];
43
+ }
44
+ /** Individual Term */
45
+ export interface Term {
46
+ /** The word/phrase value */
47
+ value: string;
48
+ /** Sampling weight (default 1) */
49
+ weight?: number;
50
+ /** Features used by constraints/morphology */
51
+ features?: TermFeatures;
52
+ /** Additional tags for this specific term */
53
+ tags?: string[];
54
+ }
55
+ /** Term features for morphology and constraints */
56
+ export interface TermFeatures {
57
+ /** Whether the noun is countable */
58
+ countable?: boolean;
59
+ /** Grammatical number */
60
+ number?: 'singular' | 'plural' | 'both';
61
+ /** Grammatical person */
62
+ person?: 1 | 2 | 3;
63
+ /** Verb transitivity */
64
+ transitive?: boolean;
65
+ /** Irregular forms */
66
+ irregular?: {
67
+ plural?: string;
68
+ pastTense?: string;
69
+ pastParticiple?: string;
70
+ presentParticiple?: string;
71
+ thirdPerson?: string;
72
+ };
73
+ /** Custom features */
74
+ [key: string]: unknown;
75
+ }
76
+ /** A lexical item returned from sampling */
77
+ export interface LexicalItem {
78
+ /** The word value */
79
+ value: string;
80
+ /** Part of speech */
81
+ pos: POS;
82
+ /** Source term set ID */
83
+ termSetId?: string;
84
+ /** Features from the term */
85
+ features?: TermFeatures;
86
+ /** Tags */
87
+ tags?: string[];
88
+ }
89
+ /** Pattern - Syntactic templates */
90
+ export interface Pattern {
91
+ /** Pattern type */
92
+ type: 'sentence' | 'nounPhrase' | 'verbPhrase' | 'prepPhrase' | 'adjPhrase' | 'advPhrase' | 'clause';
93
+ /** Slots defining the structure */
94
+ slots: string[];
95
+ /** Constraints applied to this pattern */
96
+ constraints?: string[];
97
+ /** Weight for selection */
98
+ weight?: number;
99
+ /** Tags for categorization */
100
+ tags?: string[];
101
+ }
102
+ /** Distribution entry for weighted selection */
103
+ export interface DistributionEntry {
104
+ /** Key identifier */
105
+ key: string;
106
+ /** Selection weight */
107
+ weight: number;
108
+ }
109
+ /** Correlation - Conditional boosts */
110
+ export interface Correlation {
111
+ /** Condition that triggers the correlation */
112
+ when: CorrelationCondition;
113
+ /** Bias adjustments to apply */
114
+ thenBoost: CorrelationBoost[];
115
+ /** Scope of the correlation effect */
116
+ scope: 'token' | 'phrase' | 'sentence' | 'paragraph';
117
+ }
118
+ export interface CorrelationCondition {
119
+ /** Triggered when a specific term set is chosen */
120
+ chosenTermSet?: string;
121
+ /** Triggered when a term with specific tag is chosen */
122
+ chosenTag?: string;
123
+ /** Triggered when a specific term value is chosen */
124
+ chosenValue?: string;
125
+ /** Triggered when a pattern is used */
126
+ usedPattern?: string;
127
+ }
128
+ export interface CorrelationBoost {
129
+ /** Term set to boost */
130
+ termSet?: string;
131
+ /** Pattern to boost */
132
+ pattern?: string;
133
+ /** Weight adjustment (can be negative) */
134
+ weightDelta: number;
135
+ }
136
+ /** Constraint - Hard or soft rules */
137
+ export interface Constraint {
138
+ /** Unique constraint ID */
139
+ id: string;
140
+ /** Constraint enforcement level */
141
+ level: 'hard' | 'soft';
142
+ /** Scope of the constraint */
143
+ scope: 'token' | 'phrase' | 'clause' | 'sentence' | 'paragraph' | 'text';
144
+ /** Type of constraint */
145
+ type: 'noRepeat' | 'maxCount' | 'minCount' | 'required' | 'forbidden' | 'custom';
146
+ /** Target of the constraint (e.g., "pos:noun", "PP", "termSet:noun.tech") */
147
+ target: string;
148
+ /** Value for count-based constraints */
149
+ value?: number;
150
+ /** Custom constraint function name (for type: 'custom') */
151
+ customFn?: string;
152
+ }
153
+ /** Invariant - Must always be true */
154
+ export interface Invariant {
155
+ /** Unique invariant ID */
156
+ id: string;
157
+ /** Type of invariant */
158
+ type: 'capitalization' | 'punctuation' | 'whitespace' | 'agreement' | 'custom';
159
+ /** Scope of the invariant */
160
+ scope: 'token' | 'phrase' | 'clause' | 'sentence' | 'paragraph' | 'text';
161
+ /** Custom invariant function name */
162
+ customFn?: string;
163
+ }
164
+ /** Archetype - Style preset with biases */
165
+ export interface Archetype {
166
+ /** Tags that apply when this archetype is active */
167
+ tags?: string[];
168
+ /** Distribution overrides */
169
+ distributions?: {
170
+ sentenceTypes?: string;
171
+ termSetBias?: string;
172
+ [key: string]: string | undefined;
173
+ };
174
+ /** Config overrides */
175
+ overrides?: {
176
+ interjectionRate?: number;
177
+ subordinateClauseRate?: number;
178
+ relativeClauseRate?: number;
179
+ questionRate?: number;
180
+ compoundRate?: number;
181
+ maxPPChain?: number;
182
+ avgSentenceLength?: number;
183
+ [key: string]: number | undefined;
184
+ };
185
+ /** Output transform overrides for this archetype */
186
+ outputTransforms?: ArchetypeOutputTransforms;
187
+ }
188
+ /** Relation - Connects terms/entities */
189
+ export interface Relation {
190
+ /** Source term */
191
+ from: string;
192
+ /** Relation type */
193
+ type: string;
194
+ /** Target term */
195
+ to: string;
196
+ /** Relation weight for sampling */
197
+ weight?: number;
198
+ }
199
+ /** Query for sampling terms */
200
+ export interface TermQuery {
201
+ /** Required part of speech */
202
+ pos: POS;
203
+ /** Filter by tags */
204
+ tags?: string[];
205
+ /** Explicit term set IDs to sample from */
206
+ termSetIds?: string[];
207
+ /** Required features */
208
+ features?: Partial<TermFeatures>;
209
+ /** Whether to fallback to Faker if no lexicon match */
210
+ fallbackToFaker: boolean;
211
+ /** Exclude these values */
212
+ exclude?: string[];
213
+ }
214
+ /** Query for sampling patterns */
215
+ export interface PatternQuery {
216
+ /** Pattern type */
217
+ type: Pattern['type'];
218
+ /** Filter by tags */
219
+ tags?: string[];
220
+ /** Explicit pattern IDs */
221
+ patternIds?: string[];
222
+ }
223
+ /** Event recorded when a choice is made */
224
+ export interface ChoiceEvent {
225
+ /** Type of choice */
226
+ type: 'term' | 'pattern' | 'template';
227
+ /** The chosen item */
228
+ item: LexicalItem | Pattern | string;
229
+ /** Term set ID if applicable */
230
+ termSetId?: string;
231
+ /** Pattern ID if applicable */
232
+ patternId?: string;
233
+ /** Current scope */
234
+ scope: 'token' | 'phrase' | 'sentence' | 'paragraph';
235
+ }
236
+ /** Result from evaluating relations */
237
+ export interface RelationResult {
238
+ /** Related term */
239
+ term: string;
240
+ /** Relation type */
241
+ relationType: string;
242
+ /** Relation weight */
243
+ weight: number;
244
+ /** Direction of relation */
245
+ direction: 'outgoing' | 'incoming';
246
+ }
247
+ //# sourceMappingURL=lexicon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexicon.d.ts","sourceRoot":"","sources":["../../src/types/lexicon.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEjG,qBAAqB;AACrB,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAErF,6BAA6B;AAC7B,MAAM,WAAW,OAAO;IACtB,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACpD,qDAAqD;IACrD,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,0CAA0C;IAC1C,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,uCAAuC;IACvC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvC,0CAA0C;IAC1C,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;CAC5C;AAED,uCAAuC;AACvC,MAAM,WAAW,OAAO;IACtB,uCAAuC;IACvC,GAAG,EAAE,GAAG,CAAC;IACT,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,gCAAgC;IAChC,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAED,sBAAsB;AACtB,MAAM,WAAW,IAAI;IACnB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,mDAAmD;AACnD,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yBAAyB;IACzB,MAAM,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxC,yBAAyB;IACzB,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,wBAAwB;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sBAAsB;IACtB,SAAS,CAAC,EAAE;QACV,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,sBAAsB;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,4CAA4C;AAC5C,MAAM,WAAW,WAAW;IAC1B,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,GAAG,EAAE,GAAG,CAAC;IACT,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,oCAAoC;AACpC,MAAM,WAAW,OAAO;IACtB,mBAAmB;IACnB,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;IACrG,mCAAmC;IACnC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,gDAAgD;AAChD,MAAM,WAAW,iBAAiB;IAChC,qBAAqB;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,uCAAuC;AACvC,MAAM,WAAW,WAAW;IAC1B,8CAA8C;IAC9C,IAAI,EAAE,oBAAoB,CAAC;IAC3B,gCAAgC;IAChC,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,sCAAsC;IACtC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;CACtD;AAED,MAAM,WAAW,oBAAoB;IACnC,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,sCAAsC;AACtC,MAAM,WAAW,UAAU;IACzB,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,8BAA8B;IAC9B,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,CAAC;IACzE,yBAAyB;IACzB,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IACjF,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,sCAAsC;AACtC,MAAM,WAAW,SAAS;IACxB,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,wBAAwB;IACxB,IAAI,EAAE,gBAAgB,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC/E,6BAA6B;IAC7B,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,CAAC;IACzE,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,2CAA2C;AAC3C,MAAM,WAAW,SAAS;IACxB,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,6BAA6B;IAC7B,aAAa,CAAC,EAAE;QACd,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;KACnC,CAAC;IACF,uBAAuB;IACvB,SAAS,CAAC,EAAE;QACV,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;KACnC,CAAC;IACF,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;CAC9C;AAED,yCAAyC;AACzC,MAAM,WAAW,QAAQ;IACvB,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,+BAA+B;AAC/B,MAAM,WAAW,SAAS;IACxB,8BAA8B;IAC9B,GAAG,EAAE,GAAG,CAAC;IACT,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACjC,uDAAuD;IACvD,eAAe,EAAE,OAAO,CAAC;IACzB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,kCAAkC;AAClC,MAAM,WAAW,YAAY;IAC3B,mBAAmB;IACnB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACtB,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,2CAA2C;AAC3C,MAAM,WAAW,WAAW;IAC1B,qBAAqB;IACrB,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IACtC,sBAAsB;IACtB,IAAI,EAAE,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;IACrC,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;CACtD;AAED,uCAAuC;AACvC,MAAM,WAAW,cAAc;IAC7B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,SAAS,EAAE,UAAU,GAAG,UAAU,CAAC;CACpC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Lexicon Schema Types
3
+ * Based on TDD Section 6 - Lexicon JSON Schema
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=lexicon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexicon.js","sourceRoot":"","sources":["../../src/types/lexicon.ts"],"names":[],"mappings":"AAAA;;;GAGG"}