MProcs 9.1__tar.gz → 10.0__tar.gz

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 (242) hide show
  1. {mprocs-9.1 → mprocs-10.0}/MANIFEST.in +1 -0
  2. {mprocs-9.1/src/MProcs.egg-info → mprocs-10.0}/PKG-INFO +46 -5
  3. {mprocs-9.1 → mprocs-10.0}/README.md +45 -4
  4. {mprocs-9.1 → mprocs-10.0}/pyproject.toml +3 -3
  5. mprocs-10.0/src/MProcs/__init__.py +10 -0
  6. mprocs-10.0/src/MProcs/modules/flu0/__init__.py +9 -0
  7. mprocs-10.0/src/MProcs/modules/flu0/scripts/data_loader.py +149 -0
  8. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/ghostwrite.py +6 -0
  9. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/gwf.py +21 -9
  10. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/lpro.py +38 -5
  11. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/lpro_s.py +38 -5
  12. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/theme.py +7 -4
  13. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/tui.py +18 -5
  14. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/version_checker.py +2 -2
  15. mprocs-10.0/src/MProcs/modules/hmptunnel/__init__.py +7 -0
  16. mprocs-10.0/src/MProcs/modules/hmptunnel/scripts/data_loader.py +154 -0
  17. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/gwf.py +16 -8
  18. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/lpro.py +58 -15
  19. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/lpro_s.py +58 -15
  20. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/theme.py +5 -2
  21. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/tui.py +13 -4
  22. mprocs-10.0/src/MProcs/modules/polyhistor/__init__.py +15 -0
  23. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/app.py +32 -1
  24. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data_loader.py +112 -0
  25. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/technica.py +8 -2
  26. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/theme.py +1 -1
  27. mprocs-10.0/src/MProcs/scripts/data/diction.json +1 -0
  28. mprocs-10.0/src/MProcs/scripts/data/diction_former.json +1 -0
  29. mprocs-10.0/src/MProcs/scripts/data_loader.py +169 -0
  30. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/gwf.py +11 -6
  31. mprocs-10.0/src/MProcs/scripts/inline_args.py +110 -0
  32. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/lpro.py +60 -17
  33. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/lpro_s.py +60 -17
  34. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/version_checker.py +2 -2
  35. {mprocs-9.1 → mprocs-10.0/src/MProcs.egg-info}/PKG-INFO +46 -5
  36. {mprocs-9.1 → mprocs-10.0}/src/MProcs.egg-info/SOURCES.txt +6 -1
  37. mprocs-10.0/tools/README.md +14 -0
  38. mprocs-10.0/tools/build_medical_diction.py +128 -0
  39. mprocs-10.0/tools/medical_wordlist.txt +34045 -0
  40. mprocs-9.1/src/MProcs/__init__.py +0 -4
  41. mprocs-9.1/src/MProcs/modules/flu0/__init__.py +0 -1
  42. mprocs-9.1/src/MProcs/modules/flu0/scripts/data_loader.py +0 -50
  43. mprocs-9.1/src/MProcs/modules/hmptunnel/__init__.py +0 -1
  44. mprocs-9.1/src/MProcs/modules/hmptunnel/scripts/data_loader.py +0 -50
  45. mprocs-9.1/src/MProcs/modules/polyhistor/__init__.py +0 -8
  46. mprocs-9.1/src/MProcs/scripts/data/diction.json +0 -1
  47. mprocs-9.1/src/MProcs/scripts/data_loader.py +0 -35
  48. {mprocs-9.1 → mprocs-10.0}/LICENSE +0 -0
  49. {mprocs-9.1 → mprocs-10.0}/setup.cfg +0 -0
  50. {mprocs-9.1 → mprocs-10.0}/src/MProcs/__main__.py +0 -0
  51. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/__init__.py +0 -0
  52. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/LICENSE +0 -0
  53. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/__init__.py +0 -0
  54. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/agent.py +0 -0
  55. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/ai_image.py +0 -0
  56. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/acadlist.json +0 -0
  57. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/ahb.json +0 -0
  58. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/bible1.json +0 -0
  59. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/biology1.json +0 -0
  60. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/chemistry1.json +0 -0
  61. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/chi_chars.json +0 -0
  62. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/degrees1.json +0 -0
  63. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/dhammapada1.json +0 -0
  64. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/diction.json +0 -0
  65. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/fcci.json +0 -0
  66. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/hospitals.json +0 -0
  67. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/jamo.json +0 -0
  68. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/katakana.json +0 -0
  69. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/koran1.json +0 -0
  70. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/legal_terms1.json +0 -0
  71. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/lexicon.json +0 -0
  72. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/medicals1.json +0 -0
  73. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/mims.json +0 -0
  74. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/proverbs.json +0 -0
  75. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/psychology1.json +0 -0
  76. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/science1.json +0 -0
  77. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/strains.json +0 -0
  78. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/acadlist.json +0 -0
  79. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/ahb.json +0 -0
  80. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/bible1.json +0 -0
  81. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/biology1.json +0 -0
  82. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/chemistry1.json +0 -0
  83. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/chi_chars.json +0 -0
  84. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/degrees1.json +0 -0
  85. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/dhammapada1.json +0 -0
  86. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/diction.json +0 -0
  87. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/fcci.json +0 -0
  88. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/hospitals.json +0 -0
  89. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/jamo.json +0 -0
  90. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/katakana.json +0 -0
  91. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/koran1.json +0 -0
  92. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/legal_terms1.json +0 -0
  93. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/medicals1.json +0 -0
  94. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/mims.json +0 -0
  95. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/proverbs.json +0 -0
  96. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/psychology1.json +0 -0
  97. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/science1.json +0 -0
  98. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/strains.json +0 -0
  99. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/tracks.json +0 -0
  100. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/themed/verses1.json +0 -0
  101. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/tracks.json +0 -0
  102. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/data/verses1.json +0 -0
  103. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/deepseek_ai.py +0 -0
  104. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/drills.py +0 -0
  105. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/keys.py +0 -0
  106. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/lexicon.py +0 -0
  107. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/main.py +0 -0
  108. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/ops.py +0 -0
  109. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/program.py +0 -0
  110. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/scmpy.py +0 -0
  111. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/session.py +0 -0
  112. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/flu0/scripts/wrappers.py +0 -0
  113. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/LICENSE +0 -0
  114. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/__init__.py +0 -0
  115. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/agent.py +0 -0
  116. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/ai_image.py +0 -0
  117. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/acadlist.json +0 -0
  118. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/ahb.json +0 -0
  119. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/bible1.json +0 -0
  120. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/biology1.json +0 -0
  121. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/chemistry1.json +0 -0
  122. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/chi_chars.json +0 -0
  123. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/degrees1.json +0 -0
  124. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/dhammapada1.json +0 -0
  125. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/diction.json +0 -0
  126. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/fcci.json +0 -0
  127. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/hospitals.json +0 -0
  128. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/jamo.json +0 -0
  129. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/katakana.json +0 -0
  130. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/koran1.json +0 -0
  131. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/legal_terms1.json +0 -0
  132. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/medicals1.json +0 -0
  133. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/mims.json +0 -0
  134. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/proverbs.json +0 -0
  135. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/psychology1.json +0 -0
  136. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/science1.json +0 -0
  137. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/strains.json +0 -0
  138. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/acadlist.json +0 -0
  139. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/ahb.json +0 -0
  140. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/bible1.json +0 -0
  141. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/biology1.json +0 -0
  142. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/chemistry1.json +0 -0
  143. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/chi_chars.json +0 -0
  144. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/degrees1.json +0 -0
  145. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/dhammapada1.json +0 -0
  146. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/diction.json +0 -0
  147. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/fcci.json +0 -0
  148. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/hospitals.json +0 -0
  149. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/jamo.json +0 -0
  150. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/katakana.json +0 -0
  151. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/koran1.json +0 -0
  152. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/legal_terms1.json +0 -0
  153. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/medicals1.json +0 -0
  154. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/mims.json +0 -0
  155. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/proverbs.json +0 -0
  156. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/psychology1.json +0 -0
  157. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/science1.json +0 -0
  158. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/strains.json +0 -0
  159. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/tracks.json +0 -0
  160. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/themed/verses1.json +0 -0
  161. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/tracks.json +0 -0
  162. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/data/verses1.json +0 -0
  163. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/deepseek_ai.py +0 -0
  164. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/keys.py +0 -0
  165. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/main.py +0 -0
  166. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/scmpy.py +0 -0
  167. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/session.py +0 -0
  168. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/version_checker.py +0 -0
  169. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/hmptunnel/scripts/wrappers.py +0 -0
  170. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/LICENSE +0 -0
  171. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/__main__.py +0 -0
  172. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/agent.py +0 -0
  173. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/content/__init__.py +0 -0
  174. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/content/almanac.py +0 -0
  175. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/content/domains.py +0 -0
  176. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/content/domains_applied.py +0 -0
  177. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/content/encyclopedia.py +0 -0
  178. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/content/lexicon.py +0 -0
  179. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/content/people.py +0 -0
  180. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/content/sources.py +0 -0
  181. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/content/timeline.py +0 -0
  182. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/acadlist.json +0 -0
  183. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/ahb.json +0 -0
  184. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/bible1.json +0 -0
  185. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/biology1.json +0 -0
  186. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/chemistry1.json +0 -0
  187. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/chi_chars.json +0 -0
  188. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/degrees1.json +0 -0
  189. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/dhammapada1.json +0 -0
  190. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/diction.json +0 -0
  191. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/diction_raw.json +0 -0
  192. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/fcci.json +0 -0
  193. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/hospitals.json +0 -0
  194. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/jamo.json +0 -0
  195. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/katakana.json +0 -0
  196. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/koran1.json +0 -0
  197. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/legal_terms1.json +0 -0
  198. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/manifest.json +0 -0
  199. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/medicals1.json +0 -0
  200. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/mims.json +0 -0
  201. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/proverbs.json +0 -0
  202. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/psychology1.json +0 -0
  203. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/science1.json +0 -0
  204. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/data/verses1.json +0 -0
  205. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/knowledge.py +0 -0
  206. {mprocs-9.1 → mprocs-10.0}/src/MProcs/modules/polyhistor/py.typed +0 -0
  207. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/__init__.py +0 -0
  208. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/ai_image.py +0 -0
  209. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/acadlist.json +0 -0
  210. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/ahb.json +0 -0
  211. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/bible1.json +0 -0
  212. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/biology1.json +0 -0
  213. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/chemistry1.json +0 -0
  214. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/chi_chars.json +0 -0
  215. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/degrees1.json +0 -0
  216. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/dhammapada1.json +0 -0
  217. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/fcci.json +0 -0
  218. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/hospitals.json +0 -0
  219. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/jamo.json +0 -0
  220. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/katakana.json +0 -0
  221. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/koran1.json +0 -0
  222. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/legal_terms1.json +0 -0
  223. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/medicals1.json +0 -0
  224. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/mims.json +0 -0
  225. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/proverbs.json +0 -0
  226. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/psychology1.json +0 -0
  227. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/science1.json +0 -0
  228. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/strains.json +0 -0
  229. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/tracks.json +0 -0
  230. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/data/verses1.json +0 -0
  231. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/deepseek_ai.py +0 -0
  232. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/keys.py +0 -0
  233. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/main.py +0 -0
  234. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/native.py +0 -0
  235. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/scmpy.py +0 -0
  236. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/session.py +0 -0
  237. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/tui.py +0 -0
  238. {mprocs-9.1 → mprocs-10.0}/src/MProcs/scripts/wrappers.py +0 -0
  239. {mprocs-9.1 → mprocs-10.0}/src/MProcs.egg-info/dependency_links.txt +0 -0
  240. {mprocs-9.1 → mprocs-10.0}/src/MProcs.egg-info/entry_points.txt +0 -0
  241. {mprocs-9.1 → mprocs-10.0}/src/MProcs.egg-info/requires.txt +0 -0
  242. {mprocs-9.1 → mprocs-10.0}/src/MProcs.egg-info/top_level.txt +0 -0
@@ -5,6 +5,7 @@ recursive-include src/MProcs/modules *.json
5
5
  recursive-include src/MProcs/modules *.txt
6
6
  recursive-include src/MProcs/modules *.md
7
7
  recursive-include src/MProcs/modules LICENSE
8
+ recursive-include tools *.py *.txt *.md
8
9
  include src/MProcs/modules/polyhistor/py.typed
9
10
  global-exclude __pycache__
10
11
  global-exclude *.pyc
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: MProcs
3
- Version: 9.1
3
+ Version: 10.0
4
4
  Summary: MProcs // Terminal Suite - MProcs, POLYHISTOR, FLU0 and JADE//WIRE in one launcher
5
5
  Author-email: tderk <usvu.tech@gmail.com>
6
6
  License: MIT
@@ -19,7 +19,7 @@ Dynamic: license-file
19
19
 
20
20
  Derived from NeonBunny. A Life program by tderk, originally LPro.py and Destiny [2024].
21
21
 
22
- ## MProcs // Terminal Suite (11.0 / app 9.1)
22
+ ## MProcs // Terminal Suite (14 / app 10.0)
23
23
 
24
24
  MProcs is now a single, self-contained launcher for every terminal in the
25
25
  suite. Nothing is looked up on PyPI, nothing is downloaded at startup, and the
@@ -151,7 +151,7 @@ Fix applied vs. original PyPI sdist: moved `dependencies = ["requests","ddgs"]`
151
151
  ```bash
152
152
  # from this directory (/home/kredt/BDCS/MProcs)
153
153
  pip install --upgrade build twine
154
- python -m build # creates dist/mprocs-9.1.tar.gz + .whl
154
+ python -m build # creates dist/mprocs-10.0.tar.gz + .whl
155
155
  # or
156
156
  pip wheel . --no-deps
157
157
  pip install dist/mprocs-*.whl # test install
@@ -287,7 +287,7 @@ Display full article from source header? (enter header/title/id or n): agent-tra
287
287
  terminal summary.
288
288
  - `MProcs --list`, `MProcs --version` and `MProcs --help` are available without
289
289
  starting the TUI.
290
- - `pyproject.toml` application version `9.1` (suite version `11.0`); package data includes every terminal data
290
+ - `pyproject.toml` application version `10.0` (suite version `14`); package data includes every terminal data
291
291
  directory.
292
292
 
293
293
  **Layout:** `src/MProcs/modules/{polyhistor,flu0,hmptunnel}`.
@@ -343,8 +343,49 @@ PASSED.
343
343
  between blank lines.
344
344
  - **Wording:** removed previous integration labels from the UI, package description and
345
345
  documentation.
346
- - **Versions:** MProcs `11.0`; application package `9.1`.
346
+ - **Versions:** MProcs `14`; application package `10.0`.
347
347
 
348
348
  **Verified:** 256-colour POLYHISTOR output and spacing, FLU0/JADE//WIRE boards
349
349
  with rails/frame, both GWFs, nested Esc/Ctrl-G navigation, update screen and
350
350
  SOP, `MProcs --user`, responsive resize, and `twine check`.
351
+
352
+ ---
353
+ ## Update — Medical diction + switchable lexicons + inline arguments
354
+
355
+ - **Default diction:** `src/MProcs/scripts/data/diction.json` is now a
356
+ 39,032-entry medical vocabulary (same size as the former English list).
357
+ It combines the PubMed word-frequency corpus with vocabulary mined from
358
+ `medicals1`, `mims`, `biology1`, `chemistry1`, `psychology1` and `science1`.
359
+ The former list is preserved as `diction_former.json`.
360
+ - **Diction switch:** `data_loader.switch_diction(source)` changes the live
361
+ `diction` list in place. Available sources for MProcs are `medical`
362
+ (default), `former`, `polyhistor`, `flu0` (themed), `flu0-raw`,
363
+ `hmptunnel` (themed) and `hmptunnel-raw`. It is also re-exported as
364
+ `MProcs.switch_diction`.
365
+ From the terminal: `diction former`, `diction polyhistor`, etc. With no
366
+ argument it lists the sources and prompts.
367
+ - **Other terminals:** POLYHISTOR, FLU0 and JADE//WIRE each expose the same
368
+ runtime `diction` switch and inline-value handling. Their own vocabularies
369
+ remain their defaults; the medical list is never made their default.
370
+ POLYHISTOR uses `diction switch <source>` (or `diction <source>`); FLU0 and
371
+ JADE//WIRE use the same `diction <source>` command as MProcs.
372
+ - **Inline arguments:** commands that ask for a value accept it on the same
373
+ line, following the existing `user AAPL` pattern. Examples:
374
+ `medicals 5`, `MIMS 2`, `search blood pressure`, `cd /tmp`,
375
+ `nano chars korean`, `tag foo`, `diction flu0`. The command's first prompt
376
+ consumes the inline value; any remaining prompts continue interactively.
377
+ - **FLU0 diction = ghostwrite wordlist:** selecting `flu0` as the diction
378
+ loads FLU0's actual ghostwrite wordlist into the switchable pool used by
379
+ **ghostwrite and IGW only**: `modules/flu0/scripts/data/lexicon.json`
380
+ (first word of each entry, multi-word entries skipped). FLU0's main
381
+ `diction` list — used by nano, tag, GWF and the rest — stays unchanged.
382
+ In MProcs, POLYHISTOR and JADE//WIRE the same `flu0` source loads that
383
+ wordlist into the live diction.
384
+ - **`flu0` command:** MProcs, POLYHISTOR and JADE//WIRE now have a `flu0`
385
+ function/command that runs the same `nano` burst as the host terminal but
386
+ samples FLU0's nano wordlist (`modules/flu0/scripts/data/themed/diction.json`).
387
+ FLU0 itself accepts `flu0` as an alias for its own `nano`.
388
+ - **`+` / `+N`:** all terminals accept `+` for continuous ghostwrite and
389
+ `+N` for N instant ghostwrite lines, matching FLU0's IGW shorthand.
390
+ - **Rebuild:** `python3 tools/build_medical_diction.py --write`
391
+ (source list: `tools/medical_wordlist.txt`).
@@ -2,7 +2,7 @@
2
2
 
3
3
  Derived from NeonBunny. A Life program by tderk, originally LPro.py and Destiny [2024].
4
4
 
5
- ## MProcs // Terminal Suite (11.0 / app 9.1)
5
+ ## MProcs // Terminal Suite (14 / app 10.0)
6
6
 
7
7
  MProcs is now a single, self-contained launcher for every terminal in the
8
8
  suite. Nothing is looked up on PyPI, nothing is downloaded at startup, and the
@@ -134,7 +134,7 @@ Fix applied vs. original PyPI sdist: moved `dependencies = ["requests","ddgs"]`
134
134
  ```bash
135
135
  # from this directory (/home/kredt/BDCS/MProcs)
136
136
  pip install --upgrade build twine
137
- python -m build # creates dist/mprocs-9.1.tar.gz + .whl
137
+ python -m build # creates dist/mprocs-10.0.tar.gz + .whl
138
138
  # or
139
139
  pip wheel . --no-deps
140
140
  pip install dist/mprocs-*.whl # test install
@@ -270,7 +270,7 @@ Display full article from source header? (enter header/title/id or n): agent-tra
270
270
  terminal summary.
271
271
  - `MProcs --list`, `MProcs --version` and `MProcs --help` are available without
272
272
  starting the TUI.
273
- - `pyproject.toml` application version `9.1` (suite version `11.0`); package data includes every terminal data
273
+ - `pyproject.toml` application version `10.0` (suite version `14`); package data includes every terminal data
274
274
  directory.
275
275
 
276
276
  **Layout:** `src/MProcs/modules/{polyhistor,flu0,hmptunnel}`.
@@ -326,8 +326,49 @@ PASSED.
326
326
  between blank lines.
327
327
  - **Wording:** removed previous integration labels from the UI, package description and
328
328
  documentation.
329
- - **Versions:** MProcs `11.0`; application package `9.1`.
329
+ - **Versions:** MProcs `14`; application package `10.0`.
330
330
 
331
331
  **Verified:** 256-colour POLYHISTOR output and spacing, FLU0/JADE//WIRE boards
332
332
  with rails/frame, both GWFs, nested Esc/Ctrl-G navigation, update screen and
333
333
  SOP, `MProcs --user`, responsive resize, and `twine check`.
334
+
335
+ ---
336
+ ## Update — Medical diction + switchable lexicons + inline arguments
337
+
338
+ - **Default diction:** `src/MProcs/scripts/data/diction.json` is now a
339
+ 39,032-entry medical vocabulary (same size as the former English list).
340
+ It combines the PubMed word-frequency corpus with vocabulary mined from
341
+ `medicals1`, `mims`, `biology1`, `chemistry1`, `psychology1` and `science1`.
342
+ The former list is preserved as `diction_former.json`.
343
+ - **Diction switch:** `data_loader.switch_diction(source)` changes the live
344
+ `diction` list in place. Available sources for MProcs are `medical`
345
+ (default), `former`, `polyhistor`, `flu0` (themed), `flu0-raw`,
346
+ `hmptunnel` (themed) and `hmptunnel-raw`. It is also re-exported as
347
+ `MProcs.switch_diction`.
348
+ From the terminal: `diction former`, `diction polyhistor`, etc. With no
349
+ argument it lists the sources and prompts.
350
+ - **Other terminals:** POLYHISTOR, FLU0 and JADE//WIRE each expose the same
351
+ runtime `diction` switch and inline-value handling. Their own vocabularies
352
+ remain their defaults; the medical list is never made their default.
353
+ POLYHISTOR uses `diction switch <source>` (or `diction <source>`); FLU0 and
354
+ JADE//WIRE use the same `diction <source>` command as MProcs.
355
+ - **Inline arguments:** commands that ask for a value accept it on the same
356
+ line, following the existing `user AAPL` pattern. Examples:
357
+ `medicals 5`, `MIMS 2`, `search blood pressure`, `cd /tmp`,
358
+ `nano chars korean`, `tag foo`, `diction flu0`. The command's first prompt
359
+ consumes the inline value; any remaining prompts continue interactively.
360
+ - **FLU0 diction = ghostwrite wordlist:** selecting `flu0` as the diction
361
+ loads FLU0's actual ghostwrite wordlist into the switchable pool used by
362
+ **ghostwrite and IGW only**: `modules/flu0/scripts/data/lexicon.json`
363
+ (first word of each entry, multi-word entries skipped). FLU0's main
364
+ `diction` list — used by nano, tag, GWF and the rest — stays unchanged.
365
+ In MProcs, POLYHISTOR and JADE//WIRE the same `flu0` source loads that
366
+ wordlist into the live diction.
367
+ - **`flu0` command:** MProcs, POLYHISTOR and JADE//WIRE now have a `flu0`
368
+ function/command that runs the same `nano` burst as the host terminal but
369
+ samples FLU0's nano wordlist (`modules/flu0/scripts/data/themed/diction.json`).
370
+ FLU0 itself accepts `flu0` as an alias for its own `nano`.
371
+ - **`+` / `+N`:** all terminals accept `+` for continuous ghostwrite and
372
+ `+N` for N instant ghostwrite lines, matching FLU0's IGW shorthand.
373
+ - **Rebuild:** `python3 tools/build_medical_diction.py --write`
374
+ (source list: `tools/medical_wordlist.txt`).
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "MProcs"
7
- version = "9.1"
7
+ version = "10.0"
8
8
  description = "MProcs // Terminal Suite - MProcs, POLYHISTOR, FLU0 and JADE//WIRE in one launcher"
9
9
  requires-python = ">=3.8"
10
10
  readme = "README.md"
@@ -22,8 +22,8 @@ lpro-s = "MProcs.scripts.lpro_s:main"
22
22
  gwf = "MProcs.scripts.gwf:run"
23
23
 
24
24
  [tool.mprocs]
25
- version = "11.0"
26
- app-version = "9.1"
25
+ version = "14"
26
+ app-version = "10.0"
27
27
 
28
28
  [project.optional-dependencies]
29
29
  dev = ["pytest", "black", "flake8"]
@@ -0,0 +1,10 @@
1
+ """MProcs terminal suite."""
2
+
3
+ __version__ = "14"
4
+ __app_version__ = "10.0"
5
+
6
+
7
+ def switch_diction(source=None):
8
+ """Switch MProcs' active diction (medical, former, polyhistor, flu0, hmptunnel)."""
9
+ from .scripts.data_loader import switch_diction as _switch_diction
10
+ return _switch_diction(source)
@@ -0,0 +1,9 @@
1
+ """FLU0 terminal."""
2
+
3
+ __version__ = "0.3.0"
4
+
5
+
6
+ def switch_diction(source=None):
7
+ """Switch FLU0's live diction without changing its themed default."""
8
+ from .scripts import data_loader
9
+ return data_loader.switch_diction(source)
@@ -0,0 +1,149 @@
1
+ import json
2
+ import os
3
+
4
+ try:
5
+ from . import theme
6
+ except ImportError:
7
+ from . import theme
8
+
9
+ _script_dir = os.path.dirname(os.path.abspath(__file__))
10
+ _data_dir = os.path.join(_script_dir, 'data')
11
+ _themed_dir = os.path.join(_data_dir, 'themed')
12
+ _module_dir = os.path.dirname(_script_dir)
13
+ _modules_dir = os.path.dirname(_module_dir)
14
+ _mprocs_dir = os.path.dirname(_modules_dir)
15
+ _scripts_data = os.path.join(_mprocs_dir, 'scripts', 'data')
16
+
17
+ # FLU0 keeps its themed vocabulary as the default. The other sources are
18
+ # runtime switches only; the default is never changed to the medical set.
19
+ DICTION_SOURCES = {
20
+ 'flu0': os.path.join(_data_dir, 'lexicon.json'),
21
+ 'flu0-raw': os.path.join(_data_dir, 'diction.json'),
22
+ 'former': os.path.join(_data_dir, 'diction.json'),
23
+ 'medical': os.path.join(_scripts_data, 'diction.json'),
24
+ 'polyhistor': os.path.join(_modules_dir, 'polyhistor', 'data', 'diction.json'),
25
+ 'hmptunnel': os.path.join(_modules_dir, 'hmptunnel', 'scripts', 'data', 'themed', 'diction.json'),
26
+ 'hmptunnel-raw': os.path.join(_modules_dir, 'hmptunnel', 'scripts', 'data', 'diction.json'),
27
+ }
28
+
29
+ _DICTION_ALIASES = {
30
+ 'flu0': 'flu0', 'flu0net': 'flu0', 'default': 'flu0',
31
+ 'flu0-raw': 'flu0-raw', 'flu0raw': 'flu0-raw',
32
+ 'former': 'former', 'old': 'former', 'original': 'former',
33
+ 'english': 'former', 'words': 'former', 'raw': 'former',
34
+ 'medical': 'medical', 'med': 'medical', 'medicine': 'medical',
35
+ 'polyhistor': 'polyhistor', 'poly': 'polyhistor', 'knowledge': 'polyhistor',
36
+ 'hmptunnel': 'hmptunnel', 'hmp': 'hmptunnel', 'jade': 'hmptunnel',
37
+ 'wire': 'hmptunnel',
38
+ 'hmptunnel-raw': 'hmptunnel-raw', 'hmptunnelraw': 'hmptunnel-raw',
39
+ }
40
+
41
+ _active_diction = 'flu0'
42
+
43
+
44
+ def _read_diction(path, skip_spaces=False):
45
+ with open(path, encoding='utf-8') as f:
46
+ raw = json.load(f)
47
+ if not isinstance(raw, list):
48
+ raise ValueError('diction source is not a list: %s' % path)
49
+ words = []
50
+ for entry in raw:
51
+ if isinstance(entry, (list, tuple)) and entry:
52
+ entry = entry[0]
53
+ elif isinstance(entry, dict):
54
+ entry = entry.get('word') or entry.get('term') or entry.get('name')
55
+ word = str(entry).strip() if entry is not None else ''
56
+ if word and (not skip_spaces or ' ' not in word):
57
+ words.append(word)
58
+ if not words:
59
+ raise ValueError('diction source is empty: %s' % path)
60
+ return words
61
+
62
+
63
+ def available_dictions():
64
+ return {name: path for name, path in DICTION_SOURCES.items() if os.path.isfile(path)}
65
+
66
+
67
+ def current_diction():
68
+ return _active_diction
69
+
70
+
71
+ def switch_diction(source=None):
72
+ """Switch the wordlist used by FLU0 ghostwrite and IGW.
73
+
74
+ The main ``diction`` list (nano, tag, GWF, ...) is never changed.
75
+ """
76
+ global _active_diction
77
+
78
+ sources = available_dictions()
79
+ if source is None:
80
+ print('Available diction sources:')
81
+ for name in sources:
82
+ print(' %s' % name)
83
+ source = input('diction source: ').strip()
84
+
85
+ source = str(source).strip()
86
+ if not source:
87
+ raise ValueError('no diction source supplied')
88
+
89
+ expanded = os.path.expanduser(source)
90
+ if os.path.isfile(expanded):
91
+ name = os.path.splitext(os.path.basename(expanded))[0]
92
+ path = expanded
93
+ else:
94
+ name = _DICTION_ALIASES.get(source.lower(), source.lower())
95
+ if name not in sources:
96
+ raise ValueError('unknown diction source %r; choose from: %s' % (source, ', '.join(sources)))
97
+ path = sources[name]
98
+
99
+ words = _read_diction(path, skip_spaces=(name == 'flu0'))
100
+ ghostwrite_diction[:] = words
101
+ _active_diction = name
102
+ return {'name': name, 'count': len(words), 'path': path}
103
+
104
+
105
+ def _load(name):
106
+ if os.environ.get('FLU0_RAW_DATA'):
107
+ path = os.path.join(_data_dir, f'{name}.json')
108
+ with open(path, encoding='utf-8') as f:
109
+ return json.load(f)
110
+ themed_path = os.path.join(_themed_dir, f'{name}.json')
111
+ if os.path.isfile(themed_path):
112
+ with open(themed_path, encoding='utf-8') as f:
113
+ return json.load(f)
114
+ path = os.path.join(_data_dir, f'{name}.json')
115
+ with open(path, encoding='utf-8') as f:
116
+ data = json.load(f)
117
+ return theme.transform_dataset(name, data)
118
+
119
+
120
+ katakana = _load('katakana')
121
+ jamo = _load('jamo')
122
+ chi_chars = _load('chi_chars')
123
+ proverbs = _load('proverbs')
124
+ diction = _load('diction')
125
+
126
+ # FLU0 ghostwrite/IGW have their own switchable pool. The terminal diction
127
+ # above stays exactly as loaded (themed by default, or raw with FLU0_RAW_DATA).
128
+ _ghostwrite_path = os.path.join(_data_dir, 'lexicon.json')
129
+ if not os.path.isfile(_ghostwrite_path):
130
+ _ghostwrite_path = os.path.join(_data_dir, 'diction.json')
131
+ ghostwrite_diction = _read_diction(_ghostwrite_path, skip_spaces=True)
132
+ acadlist = _load('acadlist')
133
+ dhammapada1 = _load('dhammapada1')
134
+ medicals1 = _load('medicals1')
135
+ mims = _load('mims')
136
+ science1 = _load('science1')
137
+ psychology1 = _load('psychology1')
138
+ biology1 = _load('biology1')
139
+ chemistry1 = _load('chemistry1')
140
+ legal_terms1 = _load('legal_terms1')
141
+ degrees1 = _load('degrees1')
142
+ verses1 = _load('verses1')
143
+ bible1 = _load('bible1')
144
+ koran1 = _load('koran1')
145
+ fcci = _load('fcci')
146
+ hospitals = _load('hospitals')
147
+ tracks = _load('tracks')
148
+ strains = _load('strains')
149
+ ahb = _load('ahb')
@@ -326,6 +326,12 @@ _WORDS = None
326
326
 
327
327
  def _words():
328
328
  global _WORDS
329
+ try:
330
+ from . import data_loader
331
+ if data_loader.ghostwrite_diction:
332
+ return data_loader.ghostwrite_diction
333
+ except Exception:
334
+ pass
329
335
  if _WORDS is None:
330
336
  _WORDS = [e[0] for e in lexicon.entries() if " " not in e[0]] or ["signal"]
331
337
  return _WORDS
@@ -31,15 +31,23 @@ _BLIP_COLORS = [_CYAN, _YELLOW, _MAGENTA, _RED, _WHITE]
31
31
 
32
32
  def _load_words():
33
33
  try:
34
- here = os.path.dirname(os.path.abspath(__file__))
35
- themed = os.path.join(here, 'data', 'themed', 'diction.json')
36
- path = themed if os.path.isfile(themed) else os.path.join(here, 'data', 'diction.json')
37
- with open(path) as f:
38
- words = json.load(f)
39
- words = [str(w).strip() for w in words if str(w).strip()]
40
- return words
34
+ # Use the live data_loader list so ``diction`` switches are reflected
35
+ # in FLU0 GWF without a restart.
36
+ try:
37
+ from . import data_loader
38
+ except ImportError:
39
+ import data_loader
40
+ return data_loader.diction
41
41
  except Exception:
42
- return []
42
+ try:
43
+ here = os.path.dirname(os.path.abspath(__file__))
44
+ themed = os.path.join(here, 'data', 'themed', 'diction.json')
45
+ path = themed if os.path.isfile(themed) else os.path.join(here, 'data', 'diction.json')
46
+ with open(path) as f:
47
+ words = json.load(f)
48
+ return [str(w).strip() for w in words if str(w).strip()]
49
+ except Exception:
50
+ return []
43
51
 
44
52
 
45
53
  _WORDS = _load_words()
@@ -235,7 +243,11 @@ class GWF:
235
243
 
236
244
  def _dims(self):
237
245
  if self.tui is not None:
238
- width = max(1, int(getattr(self.tui, 'width', 80)) - 4)
246
+ content = getattr(self.tui, '_content_width', None)
247
+ if callable(content):
248
+ width = max(1, int(content()) - 1)
249
+ else:
250
+ width = max(1, int(getattr(self.tui, 'width', 80)) - 4)
239
251
  height = max(1, int(getattr(self.tui, 'height', 24)) - 4)
240
252
  return width, height
241
253
  try:
@@ -17,7 +17,15 @@ import re
17
17
  from . import version_checker
18
18
  from . import theme
19
19
  from .data_loader import acadlist, ahb as ahb_data, bible1, biology1, chemistry1, chi_chars, degrees1, dhammapada1, diction, fcci, hospitals, jamo, katakana, koran1, legal_terms1, medicals1, mims, proverbs, psychology1, science1, strains, tracks, verses1
20
+ from . import data_loader
20
21
  from . import deepseek_ai
22
+ try:
23
+ from MProcs.scripts import inline_args
24
+ except ImportError:
25
+ from ....scripts import inline_args
26
+
27
+ # Values can be written inline (``user AAPL``, ``medicals 5``, ...).
28
+ input = inline_args.input
21
29
  RED = '\033[91m'
22
30
  GREEN = '\033[92m'
23
31
  PURPLE = '\033[35m'
@@ -139,7 +147,7 @@ def jot_print(*args, **kwargs):
139
147
  print_orig(*converted, **kwargs)
140
148
 
141
149
  print = jot_print
142
- input = theme.themed_input
150
+ input = inline_args.wrap(theme.themed_input)
143
151
 
144
152
  def main():
145
153
 
@@ -7703,9 +7711,12 @@ def main():
7703
7711
  global usr
7704
7712
  print()
7705
7713
  print(file=z)
7706
- choice = input(usr)
7714
+ inline_args.clear()
7715
+ raw_choice = input(usr)
7716
+ choice, inline_value = inline_args.split(raw_choice)
7707
7717
  choice = theme.resolve_alias(choice)
7708
- jot_write(f"{usr}{choice}")
7718
+ inline_args.push(inline_value)
7719
+ jot_write(f"{usr}{raw_choice}")
7709
7720
  ct = datetime.datetime.now()
7710
7721
  print(usr, choice, ct, file=z)
7711
7722
  _last_cmd_output = deepseek_ai.output_since_marker()
@@ -7806,6 +7817,15 @@ def main():
7806
7817
  change_username(choice.split(' ', 1)[1].strip())
7807
7818
  return "continue"
7808
7819
 
7820
+ if choice == 'diction' or choice == 'dict' or choice == 'lexicon':
7821
+ source = inline_args.take()
7822
+ try:
7823
+ info = data_loader.switch_diction(source)
7824
+ print(f"diction: {info['name']} ({info['count']} words) [ghostwrite/IGW only]")
7825
+ except (OSError, ValueError) as exc:
7826
+ print(f"diction error: {exc}")
7827
+ return "continue"
7828
+
7809
7829
  if choice == 'alerts' or choice == 'Alerts':
7810
7830
  alerts()
7811
7831
 
@@ -7890,7 +7910,7 @@ def main():
7890
7910
  if choice == "psychology" or choice == "psyc":
7891
7911
  psychology()
7892
7912
 
7893
- if choice == "Medicals" or choice == "M":
7913
+ if choice == "Medicals" or choice == "medicals" or choice == "M":
7894
7914
  medicals()
7895
7915
 
7896
7916
  if choice == "MIMS" or choice == "mim" or choice == "MIM" or choice == "Medicines":
@@ -7911,6 +7931,9 @@ def main():
7911
7931
  else:
7912
7932
  nano()
7913
7933
 
7934
+ if choice == "flu0":
7935
+ nano()
7936
+
7914
7937
  if choice == "m" or choice == "morn" or choice == "MORN" or choice == "Morn":
7915
7938
  morn()
7916
7939
 
@@ -8343,7 +8366,17 @@ def main():
8343
8366
  insta_ghost_write()
8344
8367
 
8345
8368
  if choice == "insta ghost write" or choice == "Insta Ghost Write" or choice == "IGW" or choice == "igw" or choice == "insta ghost code" or choice == "iGW" or choice == "insta GW" or choice == "insta gw":
8346
- insta_ghost_write()
8369
+ count = inline_args.take()
8370
+ if count and count.isdigit():
8371
+ insta_ghost_write(int(count))
8372
+ else:
8373
+ insta_ghost_write()
8374
+
8375
+ if choice.strip() == "+":
8376
+ ghost_write()
8377
+
8378
+ if choice.strip().startswith("+") and choice.strip()[1:].strip().isdigit():
8379
+ insta_ghost_write(int(choice.strip()[1:].strip()))
8347
8380
 
8348
8381
  if choice == "soundstream" or choice == "sst" or choice == "SST" or choice == "sound stream" or choice == "stream sound" or choice == "streamsound":
8349
8382
  sound_stream()
@@ -17,7 +17,15 @@ import re
17
17
  from . import version_checker
18
18
  from . import theme
19
19
  from .data_loader import acadlist, ahb as ahb_data, bible1, biology1, chemistry1, chi_chars, degrees1, dhammapada1, diction, fcci, hospitals, jamo, katakana, koran1, legal_terms1, medicals1, mims, proverbs, psychology1, science1, strains, tracks, verses1
20
+ from . import data_loader
20
21
  from . import deepseek_ai
22
+ try:
23
+ from MProcs.scripts import inline_args
24
+ except ImportError:
25
+ from ....scripts import inline_args
26
+
27
+ # Values can be written inline (``user AAPL``, ``medicals 5``, ...).
28
+ input = inline_args.input
21
29
  RED = '\033[91m'
22
30
  GREEN = '\033[92m'
23
31
  PURPLE = '\033[35m'
@@ -139,7 +147,7 @@ def jot_print(*args, **kwargs):
139
147
  print_orig(*converted, **kwargs)
140
148
 
141
149
  print = jot_print
142
- input = theme.themed_input
150
+ input = inline_args.wrap(theme.themed_input)
143
151
 
144
152
  def main():
145
153
 
@@ -5634,9 +5642,12 @@ def main():
5634
5642
  while choice !='pray' and choice !='slot' and choice !='search for items' and choice !='surf' and choice !='sleep' and choice !='eat' and choice !='meditate' and choice !='find coins' and choice !='draw card' and choice !='fly' and choice !='drink coffee' and choice !='drink tea' and choice !='surf' and choice !='dhammapada' and choice !='skate' and choice !='art' and choice !='give alms' and choice !='radio' and choice !='hack' and choice !='message' and choice !='brawl' and choice !='souls'and choice !='hipster tarot' and choice !='mp3' and choice !='spar' and choice !='train' and choice !='rest' and choice !='psalms' and choice !='haiku' and choice !='muslim prayer' and choice !='karate' and choice !='koans' and choice !='equips' and choice !='rpg' and choice !='archery' and choice !='color key' and choice !='doodling' and choice !='BUMP' and choice !='MA' and choice !='Magic' and choice !='commands' and choice !='scmpy' and choice !='scm' and choice !='ascii' and choice !='zen melody' and choice !='monopoly' and choice !='light incense' and choice !='stats' and choice !='prayer' and choice !='progress' and choice !='collections' and choice !='football' and choice !='c' and choice !='map' and choice !='search' and choice !='print time' and choice !='entry' and choice !='posting' and choice !='koran' and choice !='heBrews' and choice !='Medicals' and choice !='M' and choice !='Clearance' and choice !='MiCasa' and choice !='stuff' and choice !='worship' and choice !='Earth Science' and choice !='SCI' and choice !='value' and choice !='psychology' and choice !='psyc' and choice !='Patient Simu' and choice !='biology' and choice !='B' and choice !='legal terms' and choice !='Law' and choice !='the heart sutra' and choice !='License' and choice !='police' and choice !='prad' and choice !='climb' and choice !='chemistry' and choice !='ch' and choice !='weapon start' and choice !='wstart' and choice !='teletubby' and choice !='note' and choice !='save' and choice !='journal' and choice !='version' and choice !='ai' and choice !='auto-mat' and choice !='AAM' and choice !='ID' and choice !='IDC' and choice !='echo' and choice !='monitor-start' and choice !='mstart' and choice !='change username' and choice !='username' and choice !='user' and choice !='fuzz' and choice !='message-scan' and choice !='scan' and choice !='monitor-search' and choice !='msearch' and choice !='tag' and choice !='atag' and choice !='a-tag' and choice !='acad-monitor' and choice !='astart' and choice !='acad-search' and choice !='asearch' and choice !='oscillator' and choice !='oscillate' and choice !='oscill' and choice !='amror' and choice !='game' and choice !='amsearch' and choice !='amror-search' and choice !='amror search' and choice !='profile' and choice !='Profile' and choice !='herbs' and choice !='herbals' and choice !='degree' and choice !='degrees' and choice !='major' and choice !='majors' and choice !='MedProc AI' and choice !='MAI' and choice !='frames' and choice !='fsearch' and choice !='ascsearch' and choice !='alerts' and choice !='Alerts' and choice !='burner-start' and choice !='burner start' and choice !='burner' and choice !='burn' and choice !='kiomai' and choice !='KIOMAI' and choice !='GES' and choice !='call' and choice !='time-monitor' and choice !='rhospital' and choice !='rhosp' and choice !='random hospital' and choice !='ghosthunt' and choice !='update' and choice !='restart':
5635
5643
  global usr
5636
5644
  print()
5637
- choice = input(usr)
5645
+ inline_args.clear()
5646
+ raw_choice = input(usr)
5647
+ choice, inline_value = inline_args.split(raw_choice)
5638
5648
  choice = theme.resolve_alias(choice)
5639
- jot_write(f"{usr}{choice}")
5649
+ inline_args.push(inline_value)
5650
+ jot_write(f"{usr}{raw_choice}")
5640
5651
  ct = datetime.datetime.now()
5641
5652
  _last_cmd_output = deepseek_ai.output_since_marker()
5642
5653
  deepseek_ai.mark_cmd_boundary()
@@ -5733,6 +5744,15 @@ def main():
5733
5744
  change_username(choice.split(' ', 1)[1].strip())
5734
5745
  return "continue"
5735
5746
 
5747
+ if choice == 'diction' or choice == 'dict' or choice == 'lexicon':
5748
+ source = inline_args.take()
5749
+ try:
5750
+ info = data_loader.switch_diction(source)
5751
+ print(f"diction: {info['name']} ({info['count']} words) [ghostwrite/IGW only]")
5752
+ except (OSError, ValueError) as exc:
5753
+ print(f"diction error: {exc}")
5754
+ return "continue"
5755
+
5736
5756
  if choice == 'alerts' or choice == 'Alerts':
5737
5757
  alerts()
5738
5758
 
@@ -5799,7 +5819,7 @@ def main():
5799
5819
  if choice == "psychology" or choice == "psyc":
5800
5820
  psychology()
5801
5821
 
5802
- if choice == "Medicals" or choice == "M":
5822
+ if choice == "Medicals" or choice == "medicals" or choice == "M":
5803
5823
  medicals()
5804
5824
 
5805
5825
  if choice == "MIMS" or choice == "mim" or choice == "MIM" or choice == "Medicines":
@@ -5820,6 +5840,9 @@ def main():
5820
5840
  else:
5821
5841
  nano()
5822
5842
 
5843
+ if choice == "flu0":
5844
+ nano()
5845
+
5823
5846
  if choice == "m" or choice == "morn" or choice == "MORN" or choice == "Morn":
5824
5847
  morn()
5825
5848
 
@@ -6221,7 +6244,17 @@ def main():
6221
6244
  insta_ghost_write()
6222
6245
 
6223
6246
  if choice == "insta ghost write" or choice == "Insta Ghost Write" or choice == "IGW" or choice == "igw" or choice == "insta ghost code" or choice == "iGW" or choice == "insta GW" or choice == "insta gw":
6224
- insta_ghost_write()
6247
+ count = inline_args.take()
6248
+ if count and count.isdigit():
6249
+ insta_ghost_write(int(count))
6250
+ else:
6251
+ insta_ghost_write()
6252
+
6253
+ if choice.strip() == "+":
6254
+ ghost_write()
6255
+
6256
+ if choice.strip().startswith("+") and choice.strip()[1:].strip().isdigit():
6257
+ insta_ghost_write(int(choice.strip()[1:].strip()))
6225
6258
 
6226
6259
  if choice == "soundstream" or choice == "sst" or choice == "SST" or choice == "sound stream" or choice == "stream sound" or choice == "streamsound":
6227
6260
  sound_stream()
@@ -20,12 +20,12 @@ META_SEED = 148931636854213643112385939
20
20
  META_SEED_TEXT = "148931636854213643112385939"
21
21
 
22
22
  APP_NAME = "flu0"
23
- APP_VERSION = "0.2.1"
23
+ APP_VERSION = "0.3.0"
24
24
  BRAND = "FLU0 // CAMELTOE.NET"
25
25
  THEME_NAME = "CAMELTOE.NET"
26
26
  THEME_SUBTITLE = "Field Liaison Unit 0"
27
27
  THEME_CODENAME = "PROGRAM FLU0"
28
- THEME_VERSION = "0.2.1"
28
+ THEME_VERSION = "0.3.0"
29
29
  THEME_TAGLINE = "signal in, silence out"
30
30
  THEME_MOTTO = "Observe. Corroborate. Record."
31
31
 
@@ -2593,16 +2593,19 @@ def command_help():
2593
2593
  "theme program brief and cover details",
2594
2594
  ]),
2595
2595
  ("PROGRAM OFFICE", [
2596
+ "nano (blank input) | flu0 = nano with FLU0 wordlist | n1 | morn",
2596
2597
  "program brief | program org | program stations | program equipment",
2597
2598
  "program training | program oversight | program metrics | program watch",
2598
2599
  "probe simulated engagement report",
2599
2600
  "drill | train field drill record and currency",
2600
- "ghost write [gw] continuous word stream; Ctrl+C to stop",
2601
- "insta ghost write prompt for N lines [igw]",
2601
+ "ghost write [gw, +] continuous word stream; Ctrl+C to stop",
2602
+ "insta ghost write N lines [igw, +N] (e.g. +3)",
2602
2603
  "lexicon 40,000-entry vocabulary [flu0-lexicon]",
2603
2604
  ]),
2604
2605
  ("TERMINAL CORE", [
2605
2606
  "build | no_color | switch | manifest | pwd / ls / cd / clear / mkdir / rm",
2607
+ "diction [medical/former/polyhistor/flu0/hmptunnel] switch ghostwrite/IGW wordlist",
2608
+ "inline values: user AAPL | medicals 5 | search <text> | cd <path>",
2606
2609
  "memo | log | commit | query | channels | jot | toolchain | speak",
2607
2610
  "deepseek AI | ai_image | scmpy | update | restart",
2608
2611
  "A-HB (Agent Handbook) | rhospital | ghosthunt",