@mytechtoday/augment-extensions 1.7.0 → 2.3.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 (465) hide show
  1. package/README.md +240 -19
  2. package/augment-extensions/coding-standards/bash/CHANGELOG.md +51 -0
  3. package/augment-extensions/coding-standards/bash/metadata.json +21 -0
  4. package/augment-extensions/coding-standards/c/metadata.json +50 -0
  5. package/augment-extensions/coding-standards/css/CHANGELOG.md +51 -0
  6. package/augment-extensions/coding-standards/css/metadata.json +30 -0
  7. package/augment-extensions/coding-standards/go/CHANGELOG.md +51 -0
  8. package/augment-extensions/coding-standards/go/metadata.json +57 -0
  9. package/augment-extensions/coding-standards/html/CHANGELOG.md +51 -0
  10. package/augment-extensions/coding-standards/html/metadata.json +25 -0
  11. package/augment-extensions/coding-standards/html-css-js/CHANGELOG.md +51 -0
  12. package/augment-extensions/coding-standards/html-css-js/metadata.json +40 -0
  13. package/augment-extensions/coding-standards/js/CHANGELOG.md +51 -0
  14. package/augment-extensions/coding-standards/js/metadata.json +37 -0
  15. package/augment-extensions/coding-standards/perl/README.md +173 -0
  16. package/augment-extensions/coding-standards/php/CHANGELOG.md +51 -0
  17. package/augment-extensions/coding-standards/php/metadata.json +35 -0
  18. package/augment-extensions/coding-standards/powershell/CHANGELOG.md +51 -0
  19. package/augment-extensions/coding-standards/powershell/metadata.json +33 -0
  20. package/augment-extensions/coding-standards/python/CHANGELOG.md +51 -0
  21. package/augment-extensions/coding-standards/python/metadata.json +38 -0
  22. package/augment-extensions/coding-standards/react/CHANGELOG.md +51 -0
  23. package/augment-extensions/coding-standards/react/metadata.json +31 -0
  24. package/augment-extensions/coding-standards/typescript/CHANGELOG.md +39 -0
  25. package/augment-extensions/coding-standards/typescript/README.md +248 -19
  26. package/augment-extensions/coding-standards/typescript/VERSION +2 -0
  27. package/augment-extensions/coding-standards/typescript/examples/biome.json +199 -0
  28. package/augment-extensions/coding-standards/typescript/examples/eslint-flat-config.js +166 -0
  29. package/augment-extensions/coding-standards/typescript/examples/monorepo-config/README.md +47 -0
  30. package/augment-extensions/coding-standards/typescript/examples/monorepo-config/package.json +37 -0
  31. package/augment-extensions/coding-standards/typescript/examples/monorepo-config/pnpm-workspace.yaml +5 -0
  32. package/augment-extensions/coding-standards/typescript/examples/monorepo-config/tsconfig.base.json +50 -0
  33. package/augment-extensions/coding-standards/typescript/examples/monorepo-config/turbo.json +47 -0
  34. package/augment-extensions/coding-standards/typescript/examples/vitest-setup.ts +198 -0
  35. package/augment-extensions/coding-standards/typescript/metadata.json +46 -0
  36. package/augment-extensions/coding-standards/typescript/module.json +25 -7
  37. package/augment-extensions/coding-standards/typescript/rules/architecture.md +1096 -0
  38. package/augment-extensions/coding-standards/typescript/rules/error-handling.md +1174 -0
  39. package/augment-extensions/coding-standards/typescript/rules/modern-features.md +625 -0
  40. package/augment-extensions/coding-standards/typescript/rules/monorepo.md +745 -0
  41. package/augment-extensions/coding-standards/typescript/rules/security-performance.md +850 -0
  42. package/augment-extensions/coding-standards/typescript/rules/testing.md +918 -0
  43. package/augment-extensions/coding-standards/typescript/rules/tooling.md +1071 -0
  44. package/augment-extensions/coding-standards/typescript/rules/type-patterns.md +750 -0
  45. package/augment-extensions/domain-rules/api-design/CHANGELOG.md +51 -0
  46. package/augment-extensions/domain-rules/api-design/metadata.json +32 -0
  47. package/augment-extensions/domain-rules/database/CHANGELOG.md +51 -0
  48. package/augment-extensions/domain-rules/database/metadata.json +50 -0
  49. package/augment-extensions/domain-rules/design/color/themes/catppuccin-latte/CHANGELOG.md +51 -0
  50. package/augment-extensions/domain-rules/design/color/themes/catppuccin-latte/metadata.json +18 -0
  51. package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/CHANGELOG.md +51 -0
  52. package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/metadata.json +18 -0
  53. package/augment-extensions/domain-rules/design/color/themes/dracula/CHANGELOG.md +51 -0
  54. package/augment-extensions/domain-rules/design/color/themes/dracula/metadata.json +18 -0
  55. package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/CHANGELOG.md +51 -0
  56. package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/metadata.json +18 -0
  57. package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/CHANGELOG.md +51 -0
  58. package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/metadata.json +18 -0
  59. package/augment-extensions/domain-rules/design/color/themes/high-contrast/CHANGELOG.md +51 -0
  60. package/augment-extensions/domain-rules/design/color/themes/high-contrast/metadata.json +18 -0
  61. package/augment-extensions/domain-rules/design/color/themes/monokai/CHANGELOG.md +51 -0
  62. package/augment-extensions/domain-rules/design/color/themes/monokai/metadata.json +18 -0
  63. package/augment-extensions/domain-rules/design/color/themes/nord/CHANGELOG.md +51 -0
  64. package/augment-extensions/domain-rules/design/color/themes/nord/metadata.json +18 -0
  65. package/augment-extensions/domain-rules/design/color/themes/one-dark/CHANGELOG.md +51 -0
  66. package/augment-extensions/domain-rules/design/color/themes/one-dark/metadata.json +18 -0
  67. package/augment-extensions/domain-rules/design/color/themes/one-light/CHANGELOG.md +51 -0
  68. package/augment-extensions/domain-rules/design/color/themes/one-light/metadata.json +18 -0
  69. package/augment-extensions/domain-rules/design/color/themes/solarized-dark/CHANGELOG.md +51 -0
  70. package/augment-extensions/domain-rules/design/color/themes/solarized-dark/metadata.json +18 -0
  71. package/augment-extensions/domain-rules/design/color/themes/solarized-light/CHANGELOG.md +51 -0
  72. package/augment-extensions/domain-rules/design/color/themes/solarized-light/metadata.json +18 -0
  73. package/augment-extensions/domain-rules/design/color/themes/tokyo-night/CHANGELOG.md +51 -0
  74. package/augment-extensions/domain-rules/design/color/themes/tokyo-night/metadata.json +18 -0
  75. package/augment-extensions/domain-rules/mcp/CHANGELOG.md +51 -0
  76. package/augment-extensions/domain-rules/mcp/metadata.json +42 -0
  77. package/augment-extensions/domain-rules/security/CHANGELOG.md +51 -0
  78. package/augment-extensions/domain-rules/security/metadata.json +33 -0
  79. package/augment-extensions/domain-rules/seo-sales-marketing/CHANGELOG.md +51 -0
  80. package/augment-extensions/domain-rules/seo-sales-marketing/metadata.json +40 -0
  81. package/augment-extensions/domain-rules/software-architecture/CHANGELOG.md +51 -0
  82. package/augment-extensions/domain-rules/software-architecture/metadata.json +55 -0
  83. package/augment-extensions/domain-rules/wordpress/CHANGELOG.md +51 -0
  84. package/augment-extensions/domain-rules/wordpress/metadata.json +42 -0
  85. package/augment-extensions/domain-rules/wordpress-plugin/CHANGELOG.md +51 -0
  86. package/augment-extensions/domain-rules/wordpress-plugin/metadata.json +70 -0
  87. package/augment-extensions/examples/design-patterns/CHANGELOG.md +51 -0
  88. package/augment-extensions/examples/design-patterns/metadata.json +29 -0
  89. package/augment-extensions/examples/gutenberg-block-plugin/CHANGELOG.md +51 -0
  90. package/augment-extensions/examples/gutenberg-block-plugin/metadata.json +26 -0
  91. package/augment-extensions/examples/rest-api-plugin/CHANGELOG.md +51 -0
  92. package/augment-extensions/examples/rest-api-plugin/metadata.json +27 -0
  93. package/augment-extensions/examples/woocommerce-extension/CHANGELOG.md +51 -0
  94. package/augment-extensions/examples/woocommerce-extension/metadata.json +27 -0
  95. package/augment-extensions/visual-design/metadata.json +34 -0
  96. package/augment-extensions/workflows/adr-support/CHANGELOG.md +51 -0
  97. package/augment-extensions/workflows/adr-support/metadata.json +41 -0
  98. package/augment-extensions/workflows/beads/CHANGELOG.md +51 -0
  99. package/augment-extensions/workflows/beads/metadata.json +23 -0
  100. package/augment-extensions/workflows/beads-integration/CHANGELOG.md +51 -0
  101. package/augment-extensions/workflows/beads-integration/metadata.json +30 -0
  102. package/augment-extensions/workflows/database/CHANGELOG.md +51 -0
  103. package/augment-extensions/workflows/database/metadata.json +30 -0
  104. package/augment-extensions/workflows/wordpress-plugin/CHANGELOG.md +51 -0
  105. package/augment-extensions/workflows/wordpress-plugin/metadata.json +41 -0
  106. package/augment-extensions/writing-standards/literature/shakespeare/CHANGELOG.md +51 -0
  107. package/augment-extensions/writing-standards/literature/shakespeare/metadata.json +60 -0
  108. package/augment-extensions/writing-standards/screenplay/CHANGELOG.md +51 -0
  109. package/augment-extensions/writing-standards/screenplay/cinematic-styles/CHANGELOG.md +51 -0
  110. package/augment-extensions/writing-standards/screenplay/cinematic-styles/comedy-formats/CHANGELOG.md +51 -0
  111. package/augment-extensions/writing-standards/screenplay/cinematic-styles/comedy-formats/metadata.json +24 -0
  112. package/augment-extensions/writing-standards/screenplay/cinematic-styles/comedy-formats/monty-python/CHANGELOG.md +51 -0
  113. package/augment-extensions/writing-standards/screenplay/cinematic-styles/comedy-formats/monty-python/metadata.json +24 -0
  114. package/augment-extensions/writing-standards/screenplay/cinematic-styles/comedy-formats/saturday-night-live/CHANGELOG.md +51 -0
  115. package/augment-extensions/writing-standards/screenplay/cinematic-styles/comedy-formats/saturday-night-live/metadata.json +24 -0
  116. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/CHANGELOG.md +51 -0
  117. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/alfred-hitchcock/CHANGELOG.md +51 -0
  118. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/alfred-hitchcock/metadata.json +24 -0
  119. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/ari-aster/CHANGELOG.md +51 -0
  120. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/ari-aster/metadata.json +24 -0
  121. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/brad-bird/CHANGELOG.md +51 -0
  122. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/brad-bird/metadata.json +24 -0
  123. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/brian-de-palma/CHANGELOG.md +51 -0
  124. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/brian-de-palma/metadata.json +24 -0
  125. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/buster-keaton/CHANGELOG.md +51 -0
  126. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/buster-keaton/metadata.json +24 -0
  127. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/christopher-nolan/CHANGELOG.md +51 -0
  128. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/christopher-nolan/metadata.json +24 -0
  129. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/clint-eastwood/CHANGELOG.md +51 -0
  130. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/clint-eastwood/metadata.json +24 -0
  131. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/coen-brothers/CHANGELOG.md +51 -0
  132. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/coen-brothers/metadata.json +24 -0
  133. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/darren-aronofsky/CHANGELOG.md +51 -0
  134. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/darren-aronofsky/metadata.json +24 -0
  135. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/david-fincher/CHANGELOG.md +51 -0
  136. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/david-fincher/metadata.json +24 -0
  137. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/david-lynch/CHANGELOG.md +51 -0
  138. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/david-lynch/metadata.json +24 -0
  139. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/denis-villeneuve/CHANGELOG.md +51 -0
  140. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/denis-villeneuve/metadata.json +24 -0
  141. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/francis-ford-coppola/CHANGELOG.md +51 -0
  142. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/francis-ford-coppola/metadata.json +24 -0
  143. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/gary-marshall/CHANGELOG.md +51 -0
  144. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/gary-marshall/metadata.json +24 -0
  145. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/george-a-romero/CHANGELOG.md +51 -0
  146. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/george-a-romero/metadata.json +24 -0
  147. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/george-lucas/CHANGELOG.md +51 -0
  148. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/george-lucas/metadata.json +24 -0
  149. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/guillermo-del-toro/CHANGELOG.md +51 -0
  150. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/guillermo-del-toro/metadata.json +24 -0
  151. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/gus-van-sant/CHANGELOG.md +51 -0
  152. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/gus-van-sant/metadata.json +24 -0
  153. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/james-ivory-ismail-merchant/CHANGELOG.md +51 -0
  154. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/james-ivory-ismail-merchant/metadata.json +24 -0
  155. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/jim-jarmusch/CHANGELOG.md +51 -0
  156. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/jim-jarmusch/metadata.json +24 -0
  157. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-carpenter/CHANGELOG.md +51 -0
  158. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-carpenter/metadata.json +24 -0
  159. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-ford/CHANGELOG.md +51 -0
  160. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-ford/metadata.json +24 -0
  161. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-huston/CHANGELOG.md +51 -0
  162. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-huston/metadata.json +24 -0
  163. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-landis/CHANGELOG.md +51 -0
  164. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/john-landis/metadata.json +24 -0
  165. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/jonathan-demme/CHANGELOG.md +51 -0
  166. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/jonathan-demme/metadata.json +24 -0
  167. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/joseph-l-mankiewicz/CHANGELOG.md +51 -0
  168. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/joseph-l-mankiewicz/metadata.json +24 -0
  169. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/kathryn-bigelow/CHANGELOG.md +51 -0
  170. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/kathryn-bigelow/metadata.json +24 -0
  171. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/kelly-reichardt/CHANGELOG.md +51 -0
  172. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/kelly-reichardt/metadata.json +24 -0
  173. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/kevin-smith/CHANGELOG.md +51 -0
  174. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/kevin-smith/metadata.json +24 -0
  175. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/linda-shayne/CHANGELOG.md +51 -0
  176. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/linda-shayne/metadata.json +24 -0
  177. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/martin-scorsese/CHANGELOG.md +51 -0
  178. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/martin-scorsese/metadata.json +24 -0
  179. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/mel-brooks/CHANGELOG.md +51 -0
  180. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/mel-brooks/metadata.json +24 -0
  181. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/metadata.json +25 -0
  182. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/michael-curtiz/CHANGELOG.md +51 -0
  183. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/michael-curtiz/metadata.json +24 -0
  184. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/michael-mann/CHANGELOG.md +51 -0
  185. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/michael-mann/metadata.json +24 -0
  186. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/mike-nichols/CHANGELOG.md +51 -0
  187. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/mike-nichols/metadata.json +24 -0
  188. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/orson-welles/CHANGELOG.md +51 -0
  189. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/orson-welles/metadata.json +24 -0
  190. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/park-chan-wook/CHANGELOG.md +51 -0
  191. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/park-chan-wook/metadata.json +24 -0
  192. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/paul-thomas-anderson/CHANGELOG.md +51 -0
  193. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/paul-thomas-anderson/metadata.json +24 -0
  194. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/penny-marshall/CHANGELOG.md +51 -0
  195. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/penny-marshall/metadata.json +24 -0
  196. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/peter-bogdanovich/CHANGELOG.md +51 -0
  197. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/peter-bogdanovich/metadata.json +24 -0
  198. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/quentin-tarantino/CHANGELOG.md +51 -0
  199. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/quentin-tarantino/metadata.json +24 -0
  200. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/richard-linklater/CHANGELOG.md +51 -0
  201. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/richard-linklater/metadata.json +24 -0
  202. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/rob-reiner/CHANGELOG.md +51 -0
  203. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/rob-reiner/metadata.json +24 -0
  204. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/robert-altman/CHANGELOG.md +51 -0
  205. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/robert-altman/metadata.json +24 -0
  206. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/robert-eggers/CHANGELOG.md +51 -0
  207. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/robert-eggers/metadata.json +24 -0
  208. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/robert-zemeckis/CHANGELOG.md +51 -0
  209. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/robert-zemeckis/metadata.json +24 -0
  210. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/sam-peckinpah/CHANGELOG.md +51 -0
  211. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/sam-peckinpah/metadata.json +24 -0
  212. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/sidney-lumet/CHANGELOG.md +51 -0
  213. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/sidney-lumet/metadata.json +24 -0
  214. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/spike-lee/CHANGELOG.md +51 -0
  215. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/spike-lee/metadata.json +24 -0
  216. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/stanley-donen-gene-kelly/CHANGELOG.md +51 -0
  217. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/stanley-donen-gene-kelly/metadata.json +24 -0
  218. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/stanley-kubrick/CHANGELOG.md +51 -0
  219. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/stanley-kubrick/metadata.json +24 -0
  220. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/steve-martin/CHANGELOG.md +51 -0
  221. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/steve-martin/metadata.json +24 -0
  222. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/steven-spielberg/CHANGELOG.md +51 -0
  223. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/steven-spielberg/metadata.json +24 -0
  224. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/sydney-pollack/CHANGELOG.md +51 -0
  225. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/sydney-pollack/metadata.json +24 -0
  226. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/terry-gilliam/CHANGELOG.md +51 -0
  227. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/terry-gilliam/metadata.json +24 -0
  228. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/tim-burton/CHANGELOG.md +51 -0
  229. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/tim-burton/metadata.json +24 -0
  230. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/tobe-hooper/CHANGELOG.md +51 -0
  231. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/tobe-hooper/metadata.json +24 -0
  232. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/wes-anderson/CHANGELOG.md +51 -0
  233. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/wes-anderson/metadata.json +24 -0
  234. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/william-friedkin/CHANGELOG.md +51 -0
  235. package/augment-extensions/writing-standards/screenplay/cinematic-styles/directors/william-friedkin/metadata.json +24 -0
  236. package/augment-extensions/writing-standards/screenplay/cinematic-styles/films/CHANGELOG.md +51 -0
  237. package/augment-extensions/writing-standards/screenplay/cinematic-styles/films/blue-ruin/CHANGELOG.md +51 -0
  238. package/augment-extensions/writing-standards/screenplay/cinematic-styles/films/blue-ruin/metadata.json +24 -0
  239. package/augment-extensions/writing-standards/screenplay/cinematic-styles/films/metadata.json +24 -0
  240. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/CHANGELOG.md +51 -0
  241. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/fast-and-furious/CHANGELOG.md +51 -0
  242. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/fast-and-furious/metadata.json +24 -0
  243. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/harry-potter/CHANGELOG.md +51 -0
  244. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/harry-potter/metadata.json +24 -0
  245. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/james-bond/CHANGELOG.md +51 -0
  246. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/james-bond/metadata.json +24 -0
  247. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/john-wick/CHANGELOG.md +51 -0
  248. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/john-wick/metadata.json +24 -0
  249. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/lord-of-the-rings/CHANGELOG.md +51 -0
  250. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/lord-of-the-rings/metadata.json +24 -0
  251. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/mcu/CHANGELOG.md +51 -0
  252. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/mcu/metadata.json +25 -0
  253. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/metadata.json +25 -0
  254. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/star-trek/CHANGELOG.md +51 -0
  255. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/star-trek/metadata.json +33 -0
  256. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/star-wars/CHANGELOG.md +51 -0
  257. package/augment-extensions/writing-standards/screenplay/cinematic-styles/franchises/star-wars/metadata.json +24 -0
  258. package/augment-extensions/writing-standards/screenplay/cinematic-styles/metadata.json +50 -0
  259. package/augment-extensions/writing-standards/screenplay/cinematic-styles/narrative-theory/CHANGELOG.md +51 -0
  260. package/augment-extensions/writing-standards/screenplay/cinematic-styles/narrative-theory/joseph-campbell/CHANGELOG.md +51 -0
  261. package/augment-extensions/writing-standards/screenplay/cinematic-styles/narrative-theory/joseph-campbell/metadata.json +24 -0
  262. package/augment-extensions/writing-standards/screenplay/cinematic-styles/narrative-theory/metadata.json +24 -0
  263. package/augment-extensions/writing-standards/screenplay/cinematic-styles/producers/CHANGELOG.md +51 -0
  264. package/augment-extensions/writing-standards/screenplay/cinematic-styles/producers/bruckheimer-and-simpson/CHANGELOG.md +51 -0
  265. package/augment-extensions/writing-standards/screenplay/cinematic-styles/producers/bruckheimer-and-simpson/metadata.json +24 -0
  266. package/augment-extensions/writing-standards/screenplay/cinematic-styles/producers/metadata.json +23 -0
  267. package/augment-extensions/writing-standards/screenplay/genres/CHANGELOG.md +51 -0
  268. package/augment-extensions/writing-standards/screenplay/genres/metadata.json +43 -0
  269. package/augment-extensions/writing-standards/screenplay/metadata.json +65 -0
  270. package/augment-extensions/writing-standards/screenplay/styles/CHANGELOG.md +51 -0
  271. package/augment-extensions/writing-standards/screenplay/styles/metadata.json +38 -0
  272. package/augment-extensions/writing-standards/screenplay/themes/CHANGELOG.md +51 -0
  273. package/augment-extensions/writing-standards/screenplay/themes/metadata.json +47 -0
  274. package/cli/dist/__test_health-checker.d.ts +2 -0
  275. package/cli/dist/__test_health-checker.d.ts.map +1 -0
  276. package/cli/dist/__test_health-checker.js +4 -0
  277. package/cli/dist/__test_health-checker.js.map +1 -0
  278. package/cli/dist/__test_template-engine.d.ts +2 -0
  279. package/cli/dist/__test_template-engine.d.ts.map +1 -0
  280. package/cli/dist/__test_template-engine.js +4 -0
  281. package/cli/dist/__test_template-engine.js.map +1 -0
  282. package/cli/dist/cli.js +25 -0
  283. package/cli/dist/cli.js.map +1 -1
  284. package/cli/dist/commands/generate-shot-list/formatter/json-formatter.d.ts +1 -0
  285. package/cli/dist/commands/generate-shot-list/formatter/json-formatter.d.ts.map +1 -1
  286. package/cli/dist/commands/generate-shot-list/formatter/json-formatter.js +6 -0
  287. package/cli/dist/commands/generate-shot-list/formatter/json-formatter.js.map +1 -1
  288. package/cli/dist/commands/generate-shot-list/formatter/jsonl-formatter.d.ts +1 -0
  289. package/cli/dist/commands/generate-shot-list/formatter/jsonl-formatter.d.ts.map +1 -1
  290. package/cli/dist/commands/generate-shot-list/formatter/jsonl-formatter.js +6 -0
  291. package/cli/dist/commands/generate-shot-list/formatter/jsonl-formatter.js.map +1 -1
  292. package/cli/dist/commands/generate-shot-list/formatter/markdown-formatter.d.ts +14 -0
  293. package/cli/dist/commands/generate-shot-list/formatter/markdown-formatter.d.ts.map +1 -1
  294. package/cli/dist/commands/generate-shot-list/formatter/markdown-formatter.js +46 -3
  295. package/cli/dist/commands/generate-shot-list/formatter/markdown-formatter.js.map +1 -1
  296. package/cli/dist/commands/generate-shot-list/generator/context-builder.d.ts +29 -1
  297. package/cli/dist/commands/generate-shot-list/generator/context-builder.d.ts.map +1 -1
  298. package/cli/dist/commands/generate-shot-list/generator/context-builder.js +310 -27
  299. package/cli/dist/commands/generate-shot-list/generator/context-builder.js.map +1 -1
  300. package/cli/dist/commands/generate-shot-list/generator/index.d.ts +26 -2
  301. package/cli/dist/commands/generate-shot-list/generator/index.d.ts.map +1 -1
  302. package/cli/dist/commands/generate-shot-list/generator/index.js +162 -10
  303. package/cli/dist/commands/generate-shot-list/generator/index.js.map +1 -1
  304. package/cli/dist/commands/generate-shot-list/generator/metadata-extractor.d.ts.map +1 -1
  305. package/cli/dist/commands/generate-shot-list/generator/metadata-extractor.js +1 -0
  306. package/cli/dist/commands/generate-shot-list/generator/metadata-extractor.js.map +1 -1
  307. package/cli/dist/commands/generate-shot-list/generator/types.d.ts +12 -2
  308. package/cli/dist/commands/generate-shot-list/generator/types.d.ts.map +1 -1
  309. package/cli/dist/commands/generate-shot-list/help-text.d.ts +1 -1
  310. package/cli/dist/commands/generate-shot-list/help-text.d.ts.map +1 -1
  311. package/cli/dist/commands/generate-shot-list/help-text.js +48 -5
  312. package/cli/dist/commands/generate-shot-list/help-text.js.map +1 -1
  313. package/cli/dist/commands/generate-shot-list/logger/jsonl-writer.d.ts +11 -1
  314. package/cli/dist/commands/generate-shot-list/logger/jsonl-writer.d.ts.map +1 -1
  315. package/cli/dist/commands/generate-shot-list/logger/jsonl-writer.js +61 -1
  316. package/cli/dist/commands/generate-shot-list/logger/jsonl-writer.js.map +1 -1
  317. package/cli/dist/commands/generate-shot-list/parser/docx-parser.d.ts +29 -0
  318. package/cli/dist/commands/generate-shot-list/parser/docx-parser.d.ts.map +1 -0
  319. package/cli/dist/commands/generate-shot-list/parser/docx-parser.js +111 -0
  320. package/cli/dist/commands/generate-shot-list/parser/docx-parser.js.map +1 -0
  321. package/cli/dist/commands/generate-shot-list/parser/finaldraft-parser.d.ts +18 -0
  322. package/cli/dist/commands/generate-shot-list/parser/finaldraft-parser.d.ts.map +1 -0
  323. package/cli/dist/commands/generate-shot-list/parser/finaldraft-parser.js +184 -0
  324. package/cli/dist/commands/generate-shot-list/parser/finaldraft-parser.js.map +1 -0
  325. package/cli/dist/commands/generate-shot-list/parser/index.d.ts +4 -3
  326. package/cli/dist/commands/generate-shot-list/parser/index.d.ts.map +1 -1
  327. package/cli/dist/commands/generate-shot-list/parser/index.js +54 -3
  328. package/cli/dist/commands/generate-shot-list/parser/index.js.map +1 -1
  329. package/cli/dist/commands/generate-shot-list/parser/pdf-parser.d.ts +24 -0
  330. package/cli/dist/commands/generate-shot-list/parser/pdf-parser.d.ts.map +1 -0
  331. package/cli/dist/commands/generate-shot-list/parser/pdf-parser.js +84 -0
  332. package/cli/dist/commands/generate-shot-list/parser/pdf-parser.js.map +1 -0
  333. package/cli/dist/commands/generate-shot-list/parser/rtf-parser.d.ts +28 -0
  334. package/cli/dist/commands/generate-shot-list/parser/rtf-parser.d.ts.map +1 -0
  335. package/cli/dist/commands/generate-shot-list/parser/rtf-parser.js +143 -0
  336. package/cli/dist/commands/generate-shot-list/parser/rtf-parser.js.map +1 -0
  337. package/cli/dist/commands/generate-shot-list/parser/types.d.ts +9 -6
  338. package/cli/dist/commands/generate-shot-list/parser/types.d.ts.map +1 -1
  339. package/cli/dist/commands/generate-shot-list/parser/types.js.map +1 -1
  340. package/cli/dist/commands/generate-shot-list/schema/shot-list.schema.json +341 -0
  341. package/cli/dist/commands/generate-shot-list/schema/validator.d.ts +55 -0
  342. package/cli/dist/commands/generate-shot-list/schema/validator.d.ts.map +1 -0
  343. package/cli/dist/commands/generate-shot-list/schema/validator.js +180 -0
  344. package/cli/dist/commands/generate-shot-list/schema/validator.js.map +1 -0
  345. package/cli/dist/commands/generate-shot-list/style/guideline-parser.d.ts +36 -0
  346. package/cli/dist/commands/generate-shot-list/style/guideline-parser.d.ts.map +1 -0
  347. package/cli/dist/commands/generate-shot-list/style/guideline-parser.js +108 -0
  348. package/cli/dist/commands/generate-shot-list/style/guideline-parser.js.map +1 -0
  349. package/cli/dist/commands/generate-shot-list/style/index.d.ts +39 -0
  350. package/cli/dist/commands/generate-shot-list/style/index.d.ts.map +1 -0
  351. package/cli/dist/commands/generate-shot-list/style/index.js +85 -0
  352. package/cli/dist/commands/generate-shot-list/style/index.js.map +1 -0
  353. package/cli/dist/commands/generate-shot-list/style/style-loader.d.ts +35 -0
  354. package/cli/dist/commands/generate-shot-list/style/style-loader.d.ts.map +1 -0
  355. package/cli/dist/commands/generate-shot-list/style/style-loader.js +178 -0
  356. package/cli/dist/commands/generate-shot-list/style/style-loader.js.map +1 -0
  357. package/cli/dist/commands/generate-shot-list/style/style-merger.d.ts +36 -0
  358. package/cli/dist/commands/generate-shot-list/style/style-merger.d.ts.map +1 -0
  359. package/cli/dist/commands/generate-shot-list/style/style-merger.js +123 -0
  360. package/cli/dist/commands/generate-shot-list/style/style-merger.js.map +1 -0
  361. package/cli/dist/commands/generate-shot-list/style/types.d.ts +105 -0
  362. package/cli/dist/commands/generate-shot-list/style/types.d.ts.map +1 -0
  363. package/cli/dist/commands/generate-shot-list/style/types.js +8 -0
  364. package/cli/dist/commands/generate-shot-list/style/types.js.map +1 -0
  365. package/cli/dist/commands/generate-shot-list.d.ts +1 -0
  366. package/cli/dist/commands/generate-shot-list.d.ts.map +1 -1
  367. package/cli/dist/commands/generate-shot-list.js +79 -25
  368. package/cli/dist/commands/generate-shot-list.js.map +1 -1
  369. package/cli/dist/commands/list.d.ts +1 -0
  370. package/cli/dist/commands/list.d.ts.map +1 -1
  371. package/cli/dist/commands/list.js +21 -5
  372. package/cli/dist/commands/list.js.map +1 -1
  373. package/cli/dist/commands/upgrade.d.ts +15 -0
  374. package/cli/dist/commands/upgrade.d.ts.map +1 -0
  375. package/cli/dist/commands/upgrade.js +229 -0
  376. package/cli/dist/commands/upgrade.js.map +1 -0
  377. package/cli/dist/commands/use.d.ts +15 -0
  378. package/cli/dist/commands/use.d.ts.map +1 -0
  379. package/cli/dist/commands/use.js +180 -0
  380. package/cli/dist/commands/use.js.map +1 -0
  381. package/cli/dist/commands/version-info.d.ts +15 -0
  382. package/cli/dist/commands/version-info.d.ts.map +1 -0
  383. package/cli/dist/commands/version-info.js +194 -0
  384. package/cli/dist/commands/version-info.js.map +1 -0
  385. package/cli/dist/core/compatibility-checker.d.ts +73 -0
  386. package/cli/dist/core/compatibility-checker.d.ts.map +1 -0
  387. package/cli/dist/core/compatibility-checker.js +188 -0
  388. package/cli/dist/core/compatibility-checker.js.map +1 -0
  389. package/cli/dist/core/index.d.ts +9 -0
  390. package/cli/dist/core/index.d.ts.map +1 -0
  391. package/cli/dist/core/index.js +16 -0
  392. package/cli/dist/core/index.js.map +1 -0
  393. package/cli/dist/core/module-loader.d.ts +68 -0
  394. package/cli/dist/core/module-loader.d.ts.map +1 -0
  395. package/cli/dist/core/module-loader.js +137 -0
  396. package/cli/dist/core/module-loader.js.map +1 -0
  397. package/cli/dist/core/version-manager.d.ts +62 -0
  398. package/cli/dist/core/version-manager.d.ts.map +1 -0
  399. package/cli/dist/core/version-manager.js +157 -0
  400. package/cli/dist/core/version-manager.js.map +1 -0
  401. package/cli/dist/core/version-resolver.d.ts +63 -0
  402. package/cli/dist/core/version-resolver.d.ts.map +1 -0
  403. package/cli/dist/core/version-resolver.js +163 -0
  404. package/cli/dist/core/version-resolver.js.map +1 -0
  405. package/cli/dist/gui/app.d.ts +17 -0
  406. package/cli/dist/gui/app.d.ts.map +1 -0
  407. package/cli/dist/gui/app.js +79 -0
  408. package/cli/dist/gui/app.js.map +1 -0
  409. package/cli/dist/gui/components/preview-pane.d.ts +40 -0
  410. package/cli/dist/gui/components/preview-pane.d.ts.map +1 -0
  411. package/cli/dist/gui/components/preview-pane.js +90 -0
  412. package/cli/dist/gui/components/preview-pane.js.map +1 -0
  413. package/cli/dist/gui/components/search-filter.d.ts +26 -0
  414. package/cli/dist/gui/components/search-filter.d.ts.map +1 -0
  415. package/cli/dist/gui/components/search-filter.js +168 -0
  416. package/cli/dist/gui/components/search-filter.js.map +1 -0
  417. package/cli/dist/gui/components/status-bar.d.ts +22 -0
  418. package/cli/dist/gui/components/status-bar.d.ts.map +1 -0
  419. package/cli/dist/gui/components/status-bar.js +58 -0
  420. package/cli/dist/gui/components/status-bar.js.map +1 -0
  421. package/cli/dist/gui/components/tree-navigator.d.ts +30 -0
  422. package/cli/dist/gui/components/tree-navigator.d.ts.map +1 -0
  423. package/cli/dist/gui/components/tree-navigator.js +133 -0
  424. package/cli/dist/gui/components/tree-navigator.js.map +1 -0
  425. package/cli/dist/gui/components/version-selector.d.ts +27 -0
  426. package/cli/dist/gui/components/version-selector.d.ts.map +1 -0
  427. package/cli/dist/gui/components/version-selector.js +110 -0
  428. package/cli/dist/gui/components/version-selector.js.map +1 -0
  429. package/cli/dist/gui/hooks/use-version-loader.d.ts +25 -0
  430. package/cli/dist/gui/hooks/use-version-loader.d.ts.map +1 -0
  431. package/cli/dist/gui/hooks/use-version-loader.js +116 -0
  432. package/cli/dist/gui/hooks/use-version-loader.js.map +1 -0
  433. package/cli/dist/gui/index.d.ts +15 -0
  434. package/cli/dist/gui/index.d.ts.map +1 -0
  435. package/cli/dist/gui/index.js +39 -0
  436. package/cli/dist/gui/index.js.map +1 -0
  437. package/cli/dist/gui/layouts/main-layout.d.ts +14 -0
  438. package/cli/dist/gui/layouts/main-layout.d.ts.map +1 -0
  439. package/cli/dist/gui/layouts/main-layout.js +205 -0
  440. package/cli/dist/gui/layouts/main-layout.js.map +1 -0
  441. package/cli/dist/gui/state/navigation-state.d.ts +39 -0
  442. package/cli/dist/gui/state/navigation-state.d.ts.map +1 -0
  443. package/cli/dist/gui/state/navigation-state.js +151 -0
  444. package/cli/dist/gui/state/navigation-state.js.map +1 -0
  445. package/cli/dist/gui/state/selection-state.d.ts +36 -0
  446. package/cli/dist/gui/state/selection-state.d.ts.map +1 -0
  447. package/cli/dist/gui/state/selection-state.js +132 -0
  448. package/cli/dist/gui/state/selection-state.js.map +1 -0
  449. package/cli/dist/gui/theme.d.ts +50 -0
  450. package/cli/dist/gui/theme.d.ts.map +1 -0
  451. package/cli/dist/gui/theme.js +73 -0
  452. package/cli/dist/gui/theme.js.map +1 -0
  453. package/cli/dist/utils/help.d.ts +13 -0
  454. package/cli/dist/utils/help.d.ts.map +1 -0
  455. package/cli/dist/utils/help.js +137 -0
  456. package/cli/dist/utils/help.js.map +1 -0
  457. package/cli/dist/utils/module-system.d.ts +8 -0
  458. package/cli/dist/utils/module-system.d.ts.map +1 -1
  459. package/cli/dist/utils/module-system.js +38 -3
  460. package/cli/dist/utils/module-system.js.map +1 -1
  461. package/cli/dist/utils/validate-versioning.d.ts +43 -0
  462. package/cli/dist/utils/validate-versioning.d.ts.map +1 -0
  463. package/cli/dist/utils/validate-versioning.js +258 -0
  464. package/cli/dist/utils/validate-versioning.js.map +1 -0
  465. package/package.json +11 -1
@@ -49,13 +49,17 @@ const util_1 = require("util");
49
49
  const appendFile = (0, util_1.promisify)(fs.appendFile);
50
50
  const mkdir = (0, util_1.promisify)(fs.mkdir);
51
51
  const access = (0, util_1.promisify)(fs.access);
52
+ const stat = (0, util_1.promisify)(fs.stat);
53
+ const rename = (0, util_1.promisify)(fs.rename);
52
54
  /**
53
55
  * JSONL Writer class
54
56
  */
55
57
  class JSONLWriter {
56
- constructor(filePath) {
58
+ constructor(filePath, maxFileSize = 10 * 1024 * 1024, maxBackups = 5) {
57
59
  this.writeQueue = Promise.resolve();
58
60
  this.filePath = filePath;
61
+ this.maxFileSize = maxFileSize;
62
+ this.maxBackups = maxBackups;
59
63
  }
60
64
  /**
61
65
  * Initialize the writer (create directory if needed)
@@ -70,6 +74,58 @@ class JSONLWriter {
70
74
  await mkdir(dir, { recursive: true });
71
75
  }
72
76
  }
77
+ /**
78
+ * Check if file rotation is needed
79
+ */
80
+ async shouldRotate() {
81
+ try {
82
+ const stats = await stat(this.filePath);
83
+ return stats.size >= this.maxFileSize;
84
+ }
85
+ catch {
86
+ // File doesn't exist yet
87
+ return false;
88
+ }
89
+ }
90
+ /**
91
+ * Rotate log files
92
+ */
93
+ async rotateFiles() {
94
+ try {
95
+ // Delete oldest backup if we're at max backups
96
+ const oldestBackup = `${this.filePath}.${this.maxBackups}`;
97
+ try {
98
+ await access(oldestBackup);
99
+ await fs.promises.unlink(oldestBackup);
100
+ }
101
+ catch {
102
+ // File doesn't exist, that's fine
103
+ }
104
+ // Rotate existing backups
105
+ for (let i = this.maxBackups - 1; i >= 1; i--) {
106
+ const oldPath = `${this.filePath}.${i}`;
107
+ const newPath = `${this.filePath}.${i + 1}`;
108
+ try {
109
+ await access(oldPath);
110
+ await rename(oldPath, newPath);
111
+ }
112
+ catch {
113
+ // File doesn't exist, skip
114
+ }
115
+ }
116
+ // Rotate current file to .1
117
+ try {
118
+ await access(this.filePath);
119
+ await rename(this.filePath, `${this.filePath}.1`);
120
+ }
121
+ catch {
122
+ // File doesn't exist, that's fine
123
+ }
124
+ }
125
+ catch (error) {
126
+ console.error('Failed to rotate log files:', error);
127
+ }
128
+ }
73
129
  /**
74
130
  * Write a log entry to the JSONL file
75
131
  *
@@ -79,6 +135,10 @@ class JSONLWriter {
79
135
  // Queue the write to ensure sequential writes
80
136
  this.writeQueue = this.writeQueue.then(async () => {
81
137
  try {
138
+ // Check if rotation is needed
139
+ if (await this.shouldRotate()) {
140
+ await this.rotateFiles();
141
+ }
82
142
  // Convert entry to JSON and add newline
83
143
  const line = JSON.stringify(entry) + '\n';
84
144
  // Append to file atomically
@@ -1 +1 @@
1
- {"version":3,"file":"jsonl-writer.js","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/logger/jsonl-writer.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsFH,8CAEC;AAtFD,uCAAyB;AACzB,2CAA6B;AAC7B,+BAAiC;AAEjC,MAAM,UAAU,GAAG,IAAA,gBAAS,EAAC,EAAE,CAAC,UAAU,CAAC,CAAC;AAC5C,MAAM,KAAK,GAAG,IAAA,gBAAS,EAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAClC,MAAM,MAAM,GAAG,IAAA,gBAAS,EAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAEpC;;GAEG;AACH,MAAa,WAAW;IAItB,YAAY,QAAgB;QAFpB,eAAU,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;QAGpD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;YACrC,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,KAAU;QACpB,8CAA8C;QAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAChD,IAAI,CAAC;gBACH,wCAAwC;gBACxC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;gBAE1C,4BAA4B;gBAC5B,MAAM,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YAC/D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,kFAAkF;gBAClF,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,kCAAkC;QAClC,MAAM,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,OAAc;QAC5B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AApED,kCAoEC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,QAAgB;IAChD,OAAO,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"jsonl-writer.js","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/logger/jsonl-writer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { Parser, Screenplay } from './types';
2
+ /**
3
+ * Parser for Microsoft Word (.doc, .docx) format
4
+ *
5
+ * Extracts text from Word documents and delegates to PlainTextParser for screenplay parsing.
6
+ * Requires mammoth library for DOCX extraction.
7
+ */
8
+ export declare class DOCXParser implements Parser {
9
+ private plainTextParser;
10
+ private mammoth;
11
+ constructor();
12
+ getName(): string;
13
+ canParse(content: string | Buffer, filePath?: string): boolean;
14
+ parse(content: string | Buffer): Promise<Screenplay>;
15
+ /**
16
+ * Convert HTML from mammoth to screenplay-formatted text
17
+ * Maps HTML styles to screenplay elements:
18
+ * - <h1>, <h2> → Scene headings
19
+ * - <strong>, <b> with ALL CAPS → Character names
20
+ * - Indented paragraphs → Dialogue
21
+ * - Regular paragraphs → Action
22
+ */
23
+ private convertHtmlToScreenplayText;
24
+ }
25
+ /**
26
+ * Helper function to read DOCX file and parse it
27
+ */
28
+ export declare function parseDOCXFile(filePath: string): Promise<Screenplay>;
29
+ //# sourceMappingURL=docx-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docx-parser.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/parser/docx-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG7C;;;;;GAKG;AACH,qBAAa,UAAW,YAAW,MAAM;IACvC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,OAAO,CAAM;;IAerB,OAAO,IAAI,MAAM;IAIjB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAWxD,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA6C1D;;;;;;;OAOG;IACH,OAAO,CAAC,2BAA2B;CAsBpC;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAKzE"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DOCXParser = void 0;
4
+ exports.parseDOCXFile = parseDOCXFile;
5
+ const plaintext_parser_1 = require("./plaintext-parser");
6
+ /**
7
+ * Parser for Microsoft Word (.doc, .docx) format
8
+ *
9
+ * Extracts text from Word documents and delegates to PlainTextParser for screenplay parsing.
10
+ * Requires mammoth library for DOCX extraction.
11
+ */
12
+ class DOCXParser {
13
+ constructor() {
14
+ this.plainTextParser = new plaintext_parser_1.PlainTextParser();
15
+ // Lazy load mammoth to avoid bundling issues
16
+ try {
17
+ this.mammoth = require('mammoth');
18
+ }
19
+ catch (error) {
20
+ throw new Error('mammoth library is required for DOCX parsing. Install it with: npm install mammoth');
21
+ }
22
+ }
23
+ getName() {
24
+ return 'DOCX';
25
+ }
26
+ canParse(content, filePath) {
27
+ // Check file extension
28
+ if (filePath && /\.(docx?|doc)$/i.test(filePath)) {
29
+ return true;
30
+ }
31
+ // Check for DOCX magic number (PK zip archive)
32
+ const contentStr = typeof content === 'string' ? content : content.toString('binary');
33
+ return contentStr.startsWith('PK\x03\x04');
34
+ }
35
+ async parse(content) {
36
+ // Convert string to Buffer if needed
37
+ const buffer = typeof content === 'string'
38
+ ? Buffer.from(content, 'binary')
39
+ : content;
40
+ try {
41
+ // Extract HTML with styles preserved
42
+ const result = await this.mammoth.convertToHtml({ buffer });
43
+ const html = result.value;
44
+ if (!html || html.trim().length === 0) {
45
+ throw new Error('DOCX contains no extractable content');
46
+ }
47
+ // Parse HTML to extract screenplay elements with style information
48
+ const text = this.convertHtmlToScreenplayText(html);
49
+ if (!text || text.trim().length === 0) {
50
+ throw new Error('DOCX contains no extractable text');
51
+ }
52
+ // Parse extracted text as plain text screenplay
53
+ const screenplay = this.plainTextParser.parse(text);
54
+ // Update format metadata
55
+ screenplay.format = 'docx';
56
+ screenplay.metadata = {
57
+ ...screenplay.metadata,
58
+ format: 'docx',
59
+ originalFormat: 'docx',
60
+ extractedText: true,
61
+ extractedHtml: true,
62
+ messages: result.messages,
63
+ };
64
+ return screenplay;
65
+ }
66
+ catch (error) {
67
+ if (error instanceof Error) {
68
+ throw new Error(`Failed to parse DOCX: ${error.message}`);
69
+ }
70
+ throw error;
71
+ }
72
+ }
73
+ /**
74
+ * Convert HTML from mammoth to screenplay-formatted text
75
+ * Maps HTML styles to screenplay elements:
76
+ * - <h1>, <h2> → Scene headings
77
+ * - <strong>, <b> with ALL CAPS → Character names
78
+ * - Indented paragraphs → Dialogue
79
+ * - Regular paragraphs → Action
80
+ */
81
+ convertHtmlToScreenplayText(html) {
82
+ const lines = [];
83
+ // Simple HTML parser - extract text from tags
84
+ // Remove HTML tags but preserve structure
85
+ let text = html
86
+ .replace(/<h[12]>(.*?)<\/h[12]>/gi, '\n$1\n') // Headings as scene headings
87
+ .replace(/<strong>(.*?)<\/strong>/gi, '$1') // Preserve bold text
88
+ .replace(/<b>(.*?)<\/b>/gi, '$1') // Preserve bold text
89
+ .replace(/<p[^>]*>(.*?)<\/p>/gi, '\n$1\n') // Paragraphs
90
+ .replace(/<br\s*\/?>/gi, '\n') // Line breaks
91
+ .replace(/<[^>]+>/g, '') // Remove remaining tags
92
+ .replace(/&nbsp;/g, ' ') // Replace &nbsp;
93
+ .replace(/&amp;/g, '&') // Replace &amp;
94
+ .replace(/&lt;/g, '<') // Replace &lt;
95
+ .replace(/&gt;/g, '>') // Replace &gt;
96
+ .replace(/&quot;/g, '"') // Replace &quot;
97
+ .trim();
98
+ return text;
99
+ }
100
+ }
101
+ exports.DOCXParser = DOCXParser;
102
+ /**
103
+ * Helper function to read DOCX file and parse it
104
+ */
105
+ async function parseDOCXFile(filePath) {
106
+ const fs = require('fs').promises;
107
+ const buffer = await fs.readFile(filePath);
108
+ const parser = new DOCXParser();
109
+ return parser.parse(buffer);
110
+ }
111
+ //# sourceMappingURL=docx-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docx-parser.js","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/parser/docx-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Parser, Screenplay } from './types';
2
+ /**
3
+ * Parser for Final Draft XML (.fdx) format
4
+ *
5
+ * Final Draft is the industry-standard professional screenwriting software.
6
+ * The .fdx format is XML-based with specific paragraph types for screenplay elements.
7
+ */
8
+ export declare class FinalDraftParser implements Parser {
9
+ private xmlParser;
10
+ constructor();
11
+ getName(): string;
12
+ canParse(content: string, filePath?: string): boolean;
13
+ parse(content: string): Screenplay;
14
+ private extractText;
15
+ private parseSceneHeading;
16
+ private parseElement;
17
+ }
18
+ //# sourceMappingURL=finaldraft-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finaldraft-parser.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/parser/finaldraft-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAsD,MAAM,SAAS,CAAC;AAGjG;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,MAAM;IAC7C,OAAO,CAAC,SAAS,CAAY;;IAY7B,OAAO,IAAI,MAAM;IAIjB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAUrD,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IA8FlC,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,YAAY;CAuCrB"}
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FinalDraftParser = void 0;
4
+ const fast_xml_parser_1 = require("fast-xml-parser");
5
+ /**
6
+ * Parser for Final Draft XML (.fdx) format
7
+ *
8
+ * Final Draft is the industry-standard professional screenwriting software.
9
+ * The .fdx format is XML-based with specific paragraph types for screenplay elements.
10
+ */
11
+ class FinalDraftParser {
12
+ constructor() {
13
+ this.xmlParser = new fast_xml_parser_1.XMLParser({
14
+ ignoreAttributes: false,
15
+ attributeNamePrefix: '@_',
16
+ textNodeName: '#text',
17
+ parseAttributeValue: true,
18
+ trimValues: true,
19
+ });
20
+ }
21
+ getName() {
22
+ return 'FinalDraft';
23
+ }
24
+ canParse(content, filePath) {
25
+ // Check file extension
26
+ if (filePath && /\.fdx$/i.test(filePath)) {
27
+ return true;
28
+ }
29
+ // Check for Final Draft XML structure
30
+ return content.includes('<FinalDraft') && content.includes('</FinalDraft>');
31
+ }
32
+ parse(content) {
33
+ const parsed = this.xmlParser.parse(content);
34
+ if (!parsed.FinalDraft) {
35
+ throw new Error('Invalid Final Draft XML: Missing FinalDraft root element');
36
+ }
37
+ const fdx = parsed.FinalDraft;
38
+ const content_elem = fdx.Content;
39
+ if (!content_elem || !content_elem.Paragraph) {
40
+ throw new Error('Invalid Final Draft XML: Missing Content or Paragraph elements');
41
+ }
42
+ // Extract title and author from TitlePage if available
43
+ let title = 'Untitled';
44
+ let author;
45
+ if (fdx.TitlePage && fdx.TitlePage.Content && fdx.TitlePage.Content.Paragraph) {
46
+ const titleParas = Array.isArray(fdx.TitlePage.Content.Paragraph)
47
+ ? fdx.TitlePage.Content.Paragraph
48
+ : [fdx.TitlePage.Content.Paragraph];
49
+ for (const para of titleParas) {
50
+ const type = para['@_Type'];
51
+ const text = this.extractText(para);
52
+ if (type === 'Title' && text) {
53
+ title = text;
54
+ }
55
+ else if (type === 'Authors' && text) {
56
+ author = text;
57
+ }
58
+ }
59
+ }
60
+ // Parse paragraphs into scenes
61
+ const paragraphs = Array.isArray(content_elem.Paragraph)
62
+ ? content_elem.Paragraph
63
+ : [content_elem.Paragraph];
64
+ const scenes = [];
65
+ let currentScene = null;
66
+ let lineNumber = 0;
67
+ for (const para of paragraphs) {
68
+ const type = para['@_Type'];
69
+ const text = this.extractText(para);
70
+ lineNumber++;
71
+ if (!text)
72
+ continue;
73
+ if (type === 'Scene Heading') {
74
+ // Start new scene
75
+ if (currentScene) {
76
+ currentScene.endLine = lineNumber - 1;
77
+ scenes.push(currentScene);
78
+ }
79
+ const heading = this.parseSceneHeading(text);
80
+ currentScene = {
81
+ number: scenes.length + 1,
82
+ heading,
83
+ elements: [],
84
+ startLine: lineNumber,
85
+ endLine: lineNumber,
86
+ };
87
+ }
88
+ else if (currentScene) {
89
+ // Add element to current scene
90
+ const element = this.parseElement(type, text, lineNumber);
91
+ if (element) {
92
+ currentScene.elements.push(element);
93
+ }
94
+ }
95
+ }
96
+ // Add final scene
97
+ if (currentScene) {
98
+ currentScene.endLine = lineNumber;
99
+ scenes.push(currentScene);
100
+ }
101
+ return {
102
+ title,
103
+ author,
104
+ scenes,
105
+ format: 'finaldraft',
106
+ metadata: {
107
+ format: 'finaldraft',
108
+ totalScenes: scenes.length,
109
+ parsedAt: new Date().toISOString(),
110
+ },
111
+ };
112
+ }
113
+ extractText(para) {
114
+ if (!para.Text)
115
+ return '';
116
+ const texts = Array.isArray(para.Text) ? para.Text : [para.Text];
117
+ return texts
118
+ .map((t) => {
119
+ if (typeof t === 'string')
120
+ return t;
121
+ if (t['#text'])
122
+ return t['#text'];
123
+ return '';
124
+ })
125
+ .join('')
126
+ .trim();
127
+ }
128
+ parseSceneHeading(text) {
129
+ // Match INT/EXT. LOCATION - TIME
130
+ const match = text.match(/^(INT\.|EXT\.|INT\/EXT\.|EXT\/INT\.)\s+(.+?)(?:\s+-\s+(.+))?$/i);
131
+ if (match) {
132
+ const intExt = match[1].replace('.', '').toUpperCase();
133
+ return {
134
+ intExt,
135
+ location: match[2].trim(),
136
+ timeOfDay: match[3]?.trim() || '',
137
+ raw: text,
138
+ };
139
+ }
140
+ // Default to INT if no match
141
+ return {
142
+ intExt: 'INT',
143
+ location: text,
144
+ timeOfDay: '',
145
+ raw: text,
146
+ };
147
+ }
148
+ parseElement(type, text, line) {
149
+ switch (type) {
150
+ case 'Action':
151
+ return { type: 'action', text, line, column: 0 };
152
+ case 'Character':
153
+ return {
154
+ type: 'dialogue',
155
+ dialogue: { character: { name: text }, speech: '' },
156
+ text: text,
157
+ line,
158
+ column: 0
159
+ };
160
+ case 'Dialogue':
161
+ return {
162
+ type: 'dialogue',
163
+ dialogue: { character: { name: '' }, speech: text },
164
+ text: text,
165
+ line,
166
+ column: 0
167
+ };
168
+ case 'Parenthetical':
169
+ return {
170
+ type: 'dialogue',
171
+ dialogue: { character: { name: '' }, parenthetical: text, speech: '' },
172
+ text: text,
173
+ line,
174
+ column: 0
175
+ };
176
+ case 'Transition':
177
+ return { type: 'transition', text, line, column: 0 };
178
+ default:
179
+ return null;
180
+ }
181
+ }
182
+ }
183
+ exports.FinalDraftParser = FinalDraftParser;
184
+ //# sourceMappingURL=finaldraft-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finaldraft-parser.js","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/parser/finaldraft-parser.ts"],"names":[],"mappings":"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"}
@@ -11,14 +11,15 @@ export declare const createParser: ParserFactory;
11
11
  /**
12
12
  * Detect format from file extension
13
13
  */
14
- export declare function detectFormatFromExtension(filename: string): 'fountain' | 'markdown' | 'plaintext' | null;
14
+ export declare function detectFormatFromExtension(filename: string): 'fountain' | 'markdown' | 'plaintext' | 'finaldraft' | 'pdf' | 'docx' | 'rtf' | null;
15
15
  /**
16
16
  * Detect format from content analysis
17
+ * Handles both text-based and binary format detection
17
18
  */
18
- export declare function detectFormatFromContent(content: string): 'fountain' | 'markdown' | 'plaintext';
19
+ export declare function detectFormatFromContent(content: string | Buffer): 'fountain' | 'markdown' | 'plaintext' | 'finaldraft' | 'pdf' | 'docx' | 'rtf';
19
20
  /**
20
21
  * Auto-detect format and create appropriate parser
21
22
  */
22
- export declare function createParserAuto(filename: string, content: string): Parser;
23
+ export declare function createParserAuto(filename: string, content: string | Buffer): Parser;
23
24
  export * from './types';
24
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/parser/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAKhD;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,aAW1B,CAAC;AAEF;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,CAcxG;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CA2C9F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAU1E;AAGD,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/parser/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAShD;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,aAmB1B,CAAC;AAEF;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,CAuBhJ;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CA8E/I;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAUnF;AAGD,cAAc,SAAS,CAAC"}
@@ -26,6 +26,10 @@ exports.createParserAuto = createParserAuto;
26
26
  const fountain_parser_1 = require("./fountain-parser");
27
27
  const markdown_parser_1 = require("./markdown-parser");
28
28
  const plaintext_parser_1 = require("./plaintext-parser");
29
+ const finaldraft_parser_1 = require("./finaldraft-parser");
30
+ const pdf_parser_1 = require("./pdf-parser");
31
+ const docx_parser_1 = require("./docx-parser");
32
+ const rtf_parser_1 = require("./rtf-parser");
29
33
  /**
30
34
  * Create parser for specified format
31
35
  */
@@ -37,6 +41,14 @@ const createParser = (format) => {
37
41
  return new markdown_parser_1.MarkdownParser();
38
42
  case 'plaintext':
39
43
  return new plaintext_parser_1.PlainTextParser();
44
+ case 'finaldraft':
45
+ return new finaldraft_parser_1.FinalDraftParser();
46
+ case 'pdf':
47
+ return new pdf_parser_1.PDFParser();
48
+ case 'docx':
49
+ return new docx_parser_1.DOCXParser();
50
+ case 'rtf':
51
+ return new rtf_parser_1.RTFParser();
40
52
  default:
41
53
  throw new Error(`Unknown format: ${format}`);
42
54
  }
@@ -55,15 +67,53 @@ function detectFormatFromExtension(filename) {
55
67
  return 'markdown';
56
68
  case 'txt':
57
69
  return 'plaintext';
70
+ case 'fdx':
71
+ return 'finaldraft';
72
+ case 'pdf':
73
+ return 'pdf';
74
+ case 'doc':
75
+ case 'docx':
76
+ return 'docx';
77
+ case 'rtf':
78
+ return 'rtf';
58
79
  default:
59
80
  return null;
60
81
  }
61
82
  }
62
83
  /**
63
84
  * Detect format from content analysis
85
+ * Handles both text-based and binary format detection
64
86
  */
65
87
  function detectFormatFromContent(content) {
66
- const lines = content.split('\n');
88
+ // Convert Buffer to string for signature checking
89
+ const contentStr = typeof content === 'string' ? content : content.toString('binary');
90
+ // Check for binary format signatures first
91
+ // PDF signature: %PDF-
92
+ if (contentStr.startsWith('%PDF-')) {
93
+ return 'pdf';
94
+ }
95
+ // RTF signature: {\rtf
96
+ if (contentStr.startsWith('{\\rtf')) {
97
+ return 'rtf';
98
+ }
99
+ // DOCX signature: PK (ZIP archive)
100
+ // DOCX files are ZIP archives containing XML files
101
+ if (contentStr.startsWith('PK\x03\x04')) {
102
+ // Further check for DOCX-specific content
103
+ // Look for word/ directory or [Content_Types].xml
104
+ if (contentStr.includes('word/') || contentStr.includes('[Content_Types].xml')) {
105
+ return 'docx';
106
+ }
107
+ }
108
+ // Final Draft XML signature: <?xml with <FinalDraft>
109
+ if (contentStr.trimStart().startsWith('<?xml')) {
110
+ // Check if it contains FinalDraft root element
111
+ if (contentStr.includes('<FinalDraft')) {
112
+ return 'finaldraft';
113
+ }
114
+ }
115
+ // Text-based format detection
116
+ const lines = contentStr.split('\n');
67
117
  // Check for Fountain markers
68
118
  let fountainScore = 0;
69
119
  let markdownScore = 0;
@@ -91,10 +141,11 @@ function detectFormatFromContent(content) {
91
141
  }
92
142
  }
93
143
  // Determine format based on scores
94
- if (fountainScore > markdownScore && fountainScore > 5) {
144
+ // Lower thresholds to be more sensitive to format indicators
145
+ if (fountainScore > markdownScore && fountainScore >= 3) {
95
146
  return 'fountain';
96
147
  }
97
- if (markdownScore > 5) {
148
+ if (markdownScore >= 3) {
98
149
  return 'markdown';
99
150
  }
100
151
  // Default to plaintext
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/parser/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/parser/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { Parser, Screenplay } from './types';
2
+ /**
3
+ * Parser for PDF (.pdf) format
4
+ *
5
+ * Extracts text from PDF files and delegates to PlainTextParser for screenplay parsing.
6
+ * Requires pdf-parse library for text extraction.
7
+ */
8
+ export declare class PDFParser implements Parser {
9
+ private plainTextParser;
10
+ private pdfParse;
11
+ constructor();
12
+ getName(): string;
13
+ canParse(content: string, filePath?: string): boolean;
14
+ parse(content: string | Buffer): Promise<Screenplay>;
15
+ /**
16
+ * Async parse method for PDF files
17
+ */
18
+ parseAsync(content: string | Buffer): Promise<Screenplay>;
19
+ }
20
+ /**
21
+ * Helper function to read PDF file and parse it
22
+ */
23
+ export declare function parsePDFFile(filePath: string): Promise<Screenplay>;
24
+ //# sourceMappingURL=pdf-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-parser.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/parser/pdf-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG7C;;;;;GAKG;AACH,qBAAa,SAAU,YAAW,MAAM;IACtC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAM;;IAetB,OAAO,IAAI,MAAM;IAIjB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAU/C,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAsC1D;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAGhE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAKxE"}