@dxtmisha/scripts 0.11.7 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/ai-resources/componentMaterials.md +19 -0
  3. package/ai-resources/componentPrompt.md +381 -0
  4. package/ai-resources/componentWiki.md +13 -0
  5. package/bin/arguments.ts +168 -0
  6. package/bin/build-packages.ts +12 -2
  7. package/bin/build-publish-packages.ts +12 -2
  8. package/bin/design-component.ts +7 -1
  9. package/bin/design-constructor.ts +22 -3
  10. package/bin/design-figma.ts +26 -4
  11. package/bin/design-flags.ts +14 -2
  12. package/bin/design-library.ts +7 -1
  13. package/bin/design-package.ts +29 -5
  14. package/bin/design-prompt.ts +22 -3
  15. package/bin/design-screenshot.ts +12 -2
  16. package/bin/design-types-save.ts +32 -5
  17. package/bin/design-types.ts +32 -6
  18. package/bin/design-ui.ts +21 -3
  19. package/bin/design-wiki-storm.ts +11 -3
  20. package/dist/AiZAi-x3CInynJ.js +232 -0
  21. package/dist/PropertiesConfig-ChizwW5y.js +250 -0
  22. package/{src/config.ts → dist/config.d.ts} +179 -158
  23. package/dist/config.js +20 -0
  24. package/dist/figmaApiTypes-CArSsNW8.js +6 -0
  25. package/dist/library-ai.d.ts +482 -0
  26. package/dist/library-ai.js +2 -0
  27. package/dist/library-figma.d.ts +462 -0
  28. package/dist/library-figma.js +75 -0
  29. package/dist/library-ui.d.ts +586 -0
  30. package/dist/library-ui.js +3760 -0
  31. package/dist/library.d.ts +4677 -0
  32. package/dist/library.js +1436 -0
  33. package/dist/propertyTypes-DflziKuR.js +236 -0
  34. package/package.json +69 -20
  35. package/bin/ai-doc.ts +0 -7
  36. package/bin/build-functional.ts +0 -5
  37. package/bin/design-component-wiki.ts +0 -11
  38. package/src/classes/Ai/AiAbstract.ts +0 -242
  39. package/src/classes/Ai/AiClaude.ts +0 -26
  40. package/src/classes/Ai/AiClaudeAgent.ts +0 -16
  41. package/src/classes/Ai/AiClaudeAgentLite.ts +0 -86
  42. package/src/classes/Ai/AiClaudeCli.ts +0 -24
  43. package/src/classes/Ai/AiClaudeCliLite.ts +0 -108
  44. package/src/classes/Ai/AiClaudeLite.ts +0 -112
  45. package/src/classes/Ai/AiDoc.ts +0 -81
  46. package/src/classes/Ai/AiDocItem.ts +0 -27
  47. package/src/classes/Ai/AiDocItemAbstract.ts +0 -209
  48. package/src/classes/Ai/AiDocItemClasses.ts +0 -27
  49. package/src/classes/Ai/AiDocItemComposables.ts +0 -20
  50. package/src/classes/Ai/AiDocType.ts +0 -45
  51. package/src/classes/Ai/AiGoogle.ts +0 -26
  52. package/src/classes/Ai/AiGoogleCli.ts +0 -24
  53. package/src/classes/Ai/AiGoogleCliLite.ts +0 -108
  54. package/src/classes/Ai/AiGoogleLite.ts +0 -78
  55. package/src/classes/Ai/AiOpenAi.ts +0 -26
  56. package/src/classes/Ai/AiOpenAiLite.ts +0 -107
  57. package/src/classes/Ai/AiZAi.ts +0 -17
  58. package/src/classes/Ai/AiZAiLite.ts +0 -77
  59. package/src/classes/Ai/ApiTmp.ts +0 -43
  60. package/src/classes/BrowserItem.ts +0 -408
  61. package/src/classes/Build/BuildFunctional.ts +0 -54
  62. package/src/classes/Build/BuildPackages.ts +0 -137
  63. package/src/classes/Build/BuildPublishPackages.ts +0 -105
  64. package/src/classes/BuildItem.ts +0 -187
  65. package/src/classes/Component/ComponentCreator.ts +0 -45
  66. package/src/classes/Component/ComponentItem.ts +0 -161
  67. package/src/classes/Component/ComponentWiki.ts +0 -258
  68. package/src/classes/Component/ComponentWikiFile.ts +0 -138
  69. package/src/classes/Design/DesignCommand.ts +0 -243
  70. package/src/classes/Design/DesignComponent.ts +0 -824
  71. package/src/classes/Design/DesignConstructor.ts +0 -222
  72. package/src/classes/Design/DesignConstructors.ts +0 -101
  73. package/src/classes/Design/DesignFigma.ts +0 -61
  74. package/src/classes/Design/DesignFlags.ts +0 -215
  75. package/src/classes/Design/DesignReplace.ts +0 -672
  76. package/src/classes/Design/DesignScreenshot.ts +0 -133
  77. package/src/classes/Design/DesignStructure.ts +0 -201
  78. package/src/classes/Design/DesignStructureClasses.ts +0 -105
  79. package/src/classes/Design/DesignStructureItemAbstract.ts +0 -52
  80. package/src/classes/Design/DesignStructureRead.ts +0 -349
  81. package/src/classes/Design/DesignStructureStyles.ts +0 -45
  82. package/src/classes/Design/DesignTypes.ts +0 -94
  83. package/src/classes/Design/DesignTypesAi.ts +0 -135
  84. package/src/classes/Design/DesignTypesDescription.ts +0 -119
  85. package/src/classes/Design/DesignTypesMake.ts +0 -460
  86. package/src/classes/Design/DesignTypesMcp.ts +0 -90
  87. package/src/classes/Design/DesignTypesPrompts.ts +0 -332
  88. package/src/classes/Design/DesignTypescript.ts +0 -244
  89. package/src/classes/Design/DesignUi.ts +0 -143
  90. package/src/classes/Design/DesignWiki.ts +0 -52
  91. package/src/classes/Design/DesignWikiStorm.ts +0 -95
  92. package/src/classes/Design/DesignWikiStormItem.ts +0 -316
  93. package/src/classes/FigmaApi.ts +0 -190
  94. package/src/classes/Git/GitRead.ts +0 -261
  95. package/src/classes/Library/LibraryAiMcpItem.ts +0 -67
  96. package/src/classes/Library/LibraryAiPrompt.ts +0 -268
  97. package/src/classes/Library/LibraryAiPromptItem.ts +0 -331
  98. package/src/classes/Library/LibraryAiWiki.ts +0 -127
  99. package/src/classes/Library/LibraryAiWikiItem.ts +0 -79
  100. package/src/classes/Library/LibraryExport.ts +0 -167
  101. package/src/classes/Library/LibraryFlags.ts +0 -62
  102. package/src/classes/Library/LibraryItems.ts +0 -138
  103. package/src/classes/Library/LibraryList.ts +0 -189
  104. package/src/classes/Library/LibraryMedia.ts +0 -139
  105. package/src/classes/Library/LibraryPlugin.ts +0 -73
  106. package/src/classes/Library/LibraryTypes.ts +0 -130
  107. package/src/classes/Package/PackageFile.ts +0 -154
  108. package/src/classes/Package/PackageInit.ts +0 -54
  109. package/src/classes/Package/PackageItem.ts +0 -329
  110. package/src/classes/Properties/Properties.ts +0 -175
  111. package/src/classes/Properties/PropertiesCache.ts +0 -248
  112. package/src/classes/Properties/PropertiesConfig.ts +0 -213
  113. package/src/classes/Properties/PropertiesConvector.ts +0 -52
  114. package/src/classes/Properties/PropertiesFile.ts +0 -522
  115. package/src/classes/Properties/PropertiesImport.ts +0 -182
  116. package/src/classes/Properties/PropertiesItems.ts +0 -605
  117. package/src/classes/Properties/PropertiesKeys.ts +0 -121
  118. package/src/classes/Properties/PropertiesMain.ts +0 -138
  119. package/src/classes/Properties/PropertiesPalette.ts +0 -149
  120. package/src/classes/Properties/PropertiesPath.ts +0 -193
  121. package/src/classes/Properties/PropertiesScss.ts +0 -261
  122. package/src/classes/Properties/PropertiesSeparator.ts +0 -118
  123. package/src/classes/Properties/PropertiesSettings.ts +0 -104
  124. package/src/classes/Properties/PropertiesStandard.ts +0 -180
  125. package/src/classes/Properties/PropertiesTool.ts +0 -80
  126. package/src/classes/Properties/PropertiesTypes.ts +0 -147
  127. package/src/classes/Properties/PropertiesValues.ts +0 -75
  128. package/src/classes/Properties/PropertiesWrap.ts +0 -187
  129. package/src/classes/Properties/convector/convectorColor.ts +0 -27
  130. package/src/classes/Properties/convector/convectorFontFamilies.ts +0 -18
  131. package/src/classes/Properties/convector/convectorShadow.ts +0 -61
  132. package/src/classes/Properties/convector/convectorTypography.ts +0 -19
  133. package/src/classes/Properties/to/PropertiesToAbstract.ts +0 -51
  134. package/src/classes/Properties/to/PropertiesToAnimate.ts +0 -59
  135. package/src/classes/Properties/to/PropertiesToClass.ts +0 -49
  136. package/src/classes/Properties/to/PropertiesToClone.ts +0 -114
  137. package/src/classes/Properties/to/PropertiesToComponent.ts +0 -52
  138. package/src/classes/Properties/to/PropertiesToDrag.ts +0 -231
  139. package/src/classes/Properties/to/PropertiesToDuplicate.ts +0 -165
  140. package/src/classes/Properties/to/PropertiesToFull.ts +0 -36
  141. package/src/classes/Properties/to/PropertiesToLink.ts +0 -259
  142. package/src/classes/Properties/to/PropertiesToMedia.ts +0 -187
  143. package/src/classes/Properties/to/PropertiesToMulti.ts +0 -101
  144. package/src/classes/Properties/to/PropertiesToNone.ts +0 -46
  145. package/src/classes/Properties/to/PropertiesToPalette.ts +0 -241
  146. package/src/classes/Properties/to/PropertiesToProperty.ts +0 -31
  147. package/src/classes/Properties/to/PropertiesToRemove.ts +0 -33
  148. package/src/classes/Properties/to/PropertiesToReplace.ts +0 -77
  149. package/src/classes/Properties/to/PropertiesToRoot.ts +0 -40
  150. package/src/classes/Properties/to/PropertiesToSimilar.ts +0 -128
  151. package/src/classes/Properties/to/PropertiesToSort.ts +0 -146
  152. package/src/classes/Properties/to/PropertiesToState.ts +0 -65
  153. package/src/classes/Properties/to/PropertiesToStyle.ts +0 -52
  154. package/src/classes/Properties/to/PropertiesToSub.ts +0 -95
  155. package/src/classes/Properties/to/PropertiesToSubclass.ts +0 -76
  156. package/src/classes/Properties/to/PropertiesToVar.ts +0 -194
  157. package/src/classes/Properties/to/PropertiesToVariable.ts +0 -176
  158. package/src/classes/Styles/Styles.ts +0 -247
  159. package/src/classes/Styles/StylesClasses.ts +0 -86
  160. package/src/classes/Styles/StylesProperties.ts +0 -197
  161. package/src/classes/Styles/StylesRoot.ts +0 -103
  162. package/src/classes/Styles/StylesTool.ts +0 -112
  163. package/src/classes/Styles/to/StylesToAbstract.ts +0 -93
  164. package/src/classes/Styles/to/StylesToAnimate.ts +0 -19
  165. package/src/classes/Styles/to/StylesToClass.ts +0 -25
  166. package/src/classes/Styles/to/StylesToClassFull.ts +0 -19
  167. package/src/classes/Styles/to/StylesToContainer.ts +0 -24
  168. package/src/classes/Styles/to/StylesToMedia.ts +0 -19
  169. package/src/classes/Styles/to/StylesToProperty.ts +0 -123
  170. package/src/classes/Styles/to/StylesToRoot.ts +0 -14
  171. package/src/classes/Styles/to/StylesToSelector.ts +0 -71
  172. package/src/classes/Styles/to/StylesToVar.ts +0 -105
  173. package/src/classes/Styles/to/StylesToVirtual.ts +0 -33
  174. package/src/composables/useAi.ts +0 -38
  175. package/src/demo/ai.ts +0 -10
  176. package/src/functions/getComponentPaths.ts +0 -13
  177. package/src/functions/getConfigAi.ts +0 -14
  178. package/src/functions/getConstructorProperties.ts +0 -54
  179. package/src/functions/getDirname.ts +0 -17
  180. package/src/functions/getNameDirByPaths.ts +0 -16
  181. package/src/functions/getPackageJson.ts +0 -19
  182. package/src/functions/hasNativeDirname.ts +0 -8
  183. package/src/functions/run.ts +0 -47
  184. package/src/functions/toPathStandardSep.ts +0 -14
  185. package/src/library-ai.ts +0 -10
  186. package/src/library.ts +0 -73
  187. package/src/media/ai/ai-doc-types.ts +0 -21
  188. package/src/media/properties/css.ts +0 -634
  189. package/src/media/properties/cssSelector.ts +0 -74
  190. package/src/media/properties/cssVirtual.ts +0 -12
  191. package/src/media/properties/listSort.ts +0 -113
  192. package/src/media/properties/style.ts +0 -81
  193. package/src/media/templates/component/DesignComponent.mdx +0 -30
  194. package/src/media/templates/component/DesignComponent.stories.ts +0 -34
  195. package/src/media/templates/component/DesignComponent.vue +0 -54
  196. package/src/media/templates/component/DesignComponentAiWiki.vue +0 -25
  197. package/src/media/templates/component/index.ts +0 -13
  198. package/src/media/templates/component/props.ts +0 -27
  199. package/src/media/templates/component/styleToken.scss +0 -17
  200. package/src/media/templates/component/wiki.ts +0 -13
  201. package/src/media/templates/component/wikiData.ts +0 -28
  202. package/src/media/templates/componentDoc/ComponentDoc.vue +0 -26
  203. package/src/media/templates/componentDoc/index.ts +0 -12
  204. package/src/media/templates/componentDoc/materials/README.md +0 -8
  205. package/src/media/templates/componentDoc/materials/prompt.md +0 -38
  206. package/src/media/templates/componentDoc/subcomponents/_.gitignore.txt +0 -0
  207. package/src/media/templates/componentDoc/types.ts +0 -15
  208. package/src/media/templates/componentDoc/wiki/ComponentDoc.mdx +0 -13
  209. package/src/media/templates/componentDoc/wiki/ComponentDoc.stories.ts +0 -24
  210. package/src/media/templates/componentDoc/wiki/prompt.md +0 -41
  211. package/src/media/templates/constructors/Constructors.ts +0 -33
  212. package/src/media/templates/constructors/ConstructorsDesign.tsx +0 -129
  213. package/src/media/templates/constructors/basicTypes.ts +0 -0
  214. package/src/media/templates/constructors/index.ts +0 -5
  215. package/src/media/templates/constructors/props.ts +0 -28
  216. package/src/media/templates/constructors/style.scss +0 -5
  217. package/src/media/templates/constructors/types.ts +0 -47
  218. package/src/media/templates/packages/figma/README.md +0 -1
  219. package/src/media/templates/packages/figma/_.gitignore.txt +0 -29
  220. package/src/media/templates/packages/figma/ai.sample.config.ts +0 -2
  221. package/src/media/templates/packages/figma/design.config.json +0 -3
  222. package/src/media/templates/packages/figma/index.html +0 -12
  223. package/src/media/templates/packages/figma/manifest.json +0 -25
  224. package/src/media/templates/packages/figma/package.json +0 -37
  225. package/src/media/templates/packages/figma/src/App.vue +0 -9
  226. package/src/media/templates/packages/figma/src/classes/_.gitignore.txt +0 -1
  227. package/src/media/templates/packages/figma/src/code.ts +0 -16
  228. package/src/media/templates/packages/figma/src/components/_.gitignore.txt +0 -1
  229. package/src/media/templates/packages/figma/src/composables/_.gitignore.txt +0 -1
  230. package/src/media/templates/packages/figma/src/config.ts +0 -0
  231. package/src/media/templates/packages/figma/src/functions/_.gitignore.txt +0 -1
  232. package/src/media/templates/packages/figma/src/library.ts +0 -0
  233. package/src/media/templates/packages/figma/src/main.ts +0 -4
  234. package/src/media/templates/packages/figma/src/media/_.gitignore.txt +0 -1
  235. package/src/media/templates/packages/figma/src/storybook/_.gitignore.txt +0 -1
  236. package/src/media/templates/packages/figma/src/types/_.gitignore.txt +0 -1
  237. package/src/media/templates/packages/figma/src/vite-env.d.ts +0 -1
  238. package/src/media/templates/packages/figma/tsconfig.app.json +0 -12
  239. package/src/media/templates/packages/figma/tsconfig.json +0 -7
  240. package/src/media/templates/packages/figma/tsconfig.node.json +0 -8
  241. package/src/media/templates/packages/figma/vite.config.ts +0 -7
  242. package/src/media/templates/packages/library/README.md +0 -1
  243. package/src/media/templates/packages/library/_.gitignore.txt +0 -27
  244. package/src/media/templates/packages/library/ai-description.md +0 -15
  245. package/src/media/templates/packages/library/design.config.json +0 -3
  246. package/src/media/templates/packages/library/index.html +0 -12
  247. package/src/media/templates/packages/library/materials/README.md +0 -8
  248. package/src/media/templates/packages/library/materials/prompt.md +0 -45
  249. package/src/media/templates/packages/library/package.json +0 -46
  250. package/src/media/templates/packages/library/src/App.vue +0 -8
  251. package/src/media/templates/packages/library/src/classes/_.gitignore.txt +0 -1
  252. package/src/media/templates/packages/library/src/components/_.gitignore.txt +0 -1
  253. package/src/media/templates/packages/library/src/composables/_.gitignore.txt +0 -1
  254. package/src/media/templates/packages/library/src/functions/_.gitignore.txt +0 -1
  255. package/src/media/templates/packages/library/src/library.ts +0 -0
  256. package/src/media/templates/packages/library/src/main.ts +0 -6
  257. package/src/media/templates/packages/library/src/style.scss +0 -0
  258. package/src/media/templates/packages/library/src/types/_.gitignore.txt +0 -1
  259. package/src/media/templates/packages/library/src/vite-env.d.ts +0 -1
  260. package/src/media/templates/packages/library/tsconfig.app.json +0 -11
  261. package/src/media/templates/packages/library/tsconfig.json +0 -7
  262. package/src/media/templates/packages/library/tsconfig.node.json +0 -7
  263. package/src/media/templates/packages/library/vite.config.ts +0 -14
  264. package/src/media/templates/packages/nitro/README.md +0 -1
  265. package/src/media/templates/packages/nitro/_.gitignore.txt +0 -28
  266. package/src/media/templates/packages/nitro/index.html +0 -2
  267. package/src/media/templates/packages/nitro/package.json +0 -25
  268. package/src/media/templates/packages/nitro/server/plugins/ui-plugin.ts +0 -7
  269. package/src/media/templates/packages/nitro/server/routes/api/hello.ts +0 -13
  270. package/src/media/templates/packages/nitro/src/App.vue +0 -10
  271. package/src/media/templates/packages/nitro/src/assets/_.gitignore.txt +0 -0
  272. package/src/media/templates/packages/nitro/src/components/_.gitignore.txt +0 -0
  273. package/src/media/templates/packages/nitro/src/composables/_.gitignore.txt +0 -0
  274. package/src/media/templates/packages/nitro/src/entry-client.ts +0 -13
  275. package/src/media/templates/packages/nitro/src/entry-server.ts +0 -29
  276. package/src/media/templates/packages/nitro/src/main.ts +0 -14
  277. package/src/media/templates/packages/nitro/src/pages/HomePage.vue +0 -8
  278. package/src/media/templates/packages/nitro/src/router.ts +0 -11
  279. package/src/media/templates/packages/nitro/src/style.scss +0 -0
  280. package/src/media/templates/packages/nitro/src/templates/main.html +0 -21
  281. package/src/media/templates/packages/nitro/src/vite-env.d.ts +0 -11
  282. package/src/media/templates/packages/nitro/tsconfig.app.json +0 -14
  283. package/src/media/templates/packages/nitro/tsconfig.json +0 -7
  284. package/src/media/templates/packages/nitro/tsconfig.node.json +0 -12
  285. package/src/media/templates/packages/nitro/vite.config.ts +0 -17
  286. package/src/media/templates/packages/project/README.md +0 -1
  287. package/src/media/templates/packages/project/_.gitignore.txt +0 -28
  288. package/src/media/templates/packages/project/design.config.json +0 -3
  289. package/src/media/templates/packages/project/index.html +0 -12
  290. package/src/media/templates/packages/project/materials/README.md +0 -8
  291. package/src/media/templates/packages/project/materials/prompt.md +0 -41
  292. package/src/media/templates/packages/project/package.json +0 -13
  293. package/src/media/templates/packages/project/public/_.gitignore.txt +0 -0
  294. package/src/media/templates/packages/project/src/App.vue +0 -12
  295. package/src/media/templates/packages/project/src/assets/_.gitignore.txt +0 -0
  296. package/src/media/templates/packages/project/src/components/_.gitignore.txt +0 -0
  297. package/src/media/templates/packages/project/src/composables/_.gitignore.txt +0 -0
  298. package/src/media/templates/packages/project/src/main.ts +0 -6
  299. package/src/media/templates/packages/project/src/style.scss +0 -0
  300. package/src/media/templates/packages/project/src/vite-env.d.ts +0 -1
  301. package/src/media/templates/packages/project/tsconfig.app.json +0 -11
  302. package/src/media/templates/packages/project/tsconfig.json +0 -7
  303. package/src/media/templates/packages/project/tsconfig.node.json +0 -7
  304. package/src/media/templates/packages/project/vite.config.ts +0 -7
  305. package/src/media/templates/prompts/aiCodeGlobalPrompt.en.md +0 -22
  306. package/src/media/templates/prompts/aiCodeGlobalPrompt.ru.md +0 -21
  307. package/src/media/templates/prompts/aiCodeVuePrompt.en.md +0 -17
  308. package/src/media/templates/prompts/aiCodeVuePrompt.ru.md +0 -17
  309. package/src/media/templates/prompts/aiDocClassPrompt.en.txt +0 -63
  310. package/src/media/templates/prompts/aiDocClassPrompt.ru.txt +0 -63
  311. package/src/media/templates/prompts/aiDocComposablePrompt.en.txt +0 -67
  312. package/src/media/templates/prompts/aiDocComposablePrompt.ru.txt +0 -67
  313. package/src/media/templates/prompts/aiDocFunctionPrompt.en.txt +0 -57
  314. package/src/media/templates/prompts/aiDocFunctionPrompt.ru.txt +0 -57
  315. package/src/media/templates/prompts/componentPrompt.en.txt +0 -182
  316. package/src/media/templates/prompts/componentPrompt.ru.txt +0 -182
  317. package/src/media/templates/prompts/demoClassEn.mdx +0 -111
  318. package/src/media/templates/prompts/demoClassRu.mdx +0 -111
  319. package/src/media/templates/prompts/demoComponentEn.mdx +0 -282
  320. package/src/media/templates/prompts/demoComponentRu.mdx +0 -282
  321. package/src/media/templates/prompts/demoComposableEn.mdx +0 -103
  322. package/src/media/templates/prompts/demoComposableRu.mdx +0 -103
  323. package/src/media/templates/prompts/demoDocEn.mdx +0 -30
  324. package/src/media/templates/prompts/demoDocRu.mdx +0 -30
  325. package/src/media/templates/viteComponentTemplateConfig.ts +0 -14
  326. package/src/types/aiTypes.ts +0 -19
  327. package/src/types/configTypes.ts +0 -69
  328. package/src/types/designTypes.ts +0 -167
  329. package/src/types/figmaApiTypes.ts +0 -337
  330. package/src/types/gitTypes.ts +0 -59
  331. package/src/types/libraryTypes.ts +0 -49
  332. package/src/types/propertyTypes.ts +0 -586
  333. package/src/types/screenshotTypes.ts +0 -55
  334. package/src/types/webTypes.ts +0 -134
  335. package/src/vite-env.d.ts +0 -1
@@ -1,27 +0,0 @@
1
- import { dirname } from 'node:path'
2
- import { fileURLToPath } from 'node:url'
3
- import { hasNativeDirname } from '../../functions/hasNativeDirname'
4
- import { AiDocItemAbstract } from './AiDocItemAbstract'
5
-
6
- const dirnamePath = hasNativeDirname()
7
- ? __dirname
8
- : dirname(fileURLToPath(import.meta.url))
9
-
10
- /** Sample prompt template path / Путь к шаблону промпта */
11
- const FILE_PROMPT_SAMPLE = [dirnamePath, '..', '..', 'media', 'templates', 'prompts']
12
-
13
- /** Sample prompt template path for functions / Путь к шаблону промпта для функций */
14
- const FILE_PROMPT_SAMPLE_ITEM = [...FILE_PROMPT_SAMPLE, 'aiDocFunctionPrompt.en.txt']
15
-
16
- /** Sample demo file path for functions / Путь к демо файлу для функций */
17
- const FILE_DEMO_SAMPLE_ITEM = [...FILE_PROMPT_SAMPLE, 'demoDocEn.mdx']
18
-
19
- /**
20
- * Class for generating documentation for Functions.
21
- *
22
- * Класс для генерации документации для Функций.
23
- */
24
- export class AiDocItem extends AiDocItemAbstract {
25
- protected pathDemo: string[] = FILE_DEMO_SAMPLE_ITEM
26
- protected pathPrompt: string[] = FILE_PROMPT_SAMPLE_ITEM
27
- }
@@ -1,209 +0,0 @@
1
- import { Datetime, removeCommonPrefix } from '@dxtmisha/functional-basic'
2
- import { useAi } from '../../composables/useAi'
3
-
4
- import { PropertiesFile } from '../Properties/PropertiesFile'
5
- import { PropertiesConfig } from '../Properties/PropertiesConfig'
6
- import { GitRead } from '../Git/GitRead'
7
- import { BuildItem } from '../BuildItem'
8
- import { ComponentWikiFile } from '../Component/ComponentWikiFile'
9
-
10
- import type { AiAbstract } from './AiAbstract'
11
- import type { GitFileItem } from '../../types/gitTypes'
12
-
13
- import { UI_DIR_IN, UI_FILE_PACKAGE } from '../../config'
14
-
15
- export abstract class AiDocItemAbstract {
16
- /** Demo file path / Путь к файлу демо */
17
- protected abstract pathDemo: string[]
18
- /** Prompt template path / Путь к шаблону промпта */
19
- protected abstract pathPrompt: string[]
20
-
21
- /** Build item / Элемент сборки */
22
- protected readonly build: BuildItem
23
-
24
- /** Markdown file / Файл в формате Markdown */
25
- protected readonly mdFile: ComponentWikiFile
26
-
27
- /** Code file / Файл с кодом */
28
- protected readonly code: ComponentWikiFile
29
-
30
- /** Property file data / Данные из файла свойств */
31
- protected readonly projectName: string
32
-
33
- /** AI instance / Экземпляр ИИ */
34
- protected readonly ai?: AiAbstract
35
-
36
- /** Description from AI / Описание от ИИ */
37
- protected description?: string
38
-
39
- /**
40
- * Constructor
41
- * @param path source file path / путь к исходному файлу
42
- * @param item git file item / элемент файла git
43
- */
44
- constructor(
45
- protected readonly path: string,
46
- protected readonly item: GitFileItem
47
- ) {
48
- this.build = new BuildItem(this.item.path)
49
- this.mdFile = new ComponentWikiFile(this.getPathWiki(), true, false)
50
- this.code = new ComponentWikiFile(this.item.pathByOS, false, false)
51
- this.projectName = PropertiesFile.readFile<Record<string, any>>(UI_FILE_PACKAGE)?.name ?? 'Library'
52
- this.ai = useAi()
53
- }
54
-
55
- /**
56
- * Generates documentation using AI.
57
- *
58
- * Генерирует документацию с использованием ИИ.
59
- */
60
- async make() {
61
- const date = this.mdFile.getDate()
62
-
63
- if (
64
- this.ai
65
- && this.getItemDate() > date.getDate()
66
- ) {
67
- console.log(
68
- `${this.projectName}/File:`,
69
- this.item.path,
70
- PropertiesConfig.getWikiLanguage()
71
- )
72
-
73
- const status = this.isBuildDisabled() || await this.build.make()
74
-
75
- if (status) {
76
- this.makeAi()
77
-
78
- const generate = await this.ai.generate(
79
- this.readPrompt()
80
- )
81
-
82
- if (generate) {
83
- const read = generate.split('#########')
84
-
85
- if (read?.[0]) {
86
- this.description = read[0].trim()
87
- }
88
-
89
- if (
90
- read?.[1]
91
- && !read[1].match('--FULL--')
92
- ) {
93
- this.code.write(read[1])
94
- }
95
-
96
- if (read?.[2]) {
97
- this.mdFile.write(this.initName(read[2]))
98
- }
99
- }
100
- }
101
-
102
- this.build.removeDir()
103
- } else if (!this.ai) {
104
- console.error('AI is not configured.')
105
- }
106
- }
107
-
108
- /**
109
- * Checks if the item is marked as not to be built.
110
- *
111
- * Проверяет, помечен ли элемент как не подлежащий сборке.
112
- */
113
- isBuildDisabled(): boolean {
114
- return Boolean(
115
- this.code.read().match('// wiki:build-none')
116
- )
117
- }
118
-
119
- /**
120
- * Returns the path to the Wiki file.
121
- *
122
- * Возвращает путь к Wiki файлу.
123
- */
124
- protected getPathWiki(): string[] {
125
- const fileName = removeCommonPrefix(this.item.path, this.path)
126
- .replace(/\.ts$/, '')
127
-
128
- return [
129
- ...GitRead.splitPath(this.path),
130
- ...GitRead.splitPath(`${fileName}.mdx`)
131
- ]
132
- }
133
-
134
- /**
135
- * Returns the file modification date.
136
- *
137
- * Возвращает дату изменения файла.
138
- */
139
- protected getItemDate(): Date {
140
- return new Datetime(this.item.date).getDate()
141
- }
142
-
143
- /**
144
- * Returns the title for the documentation.
145
- *
146
- * Возвращает заголовок для документации.
147
- */
148
- protected getTitle() {
149
- let title = this.projectName
150
- + '/'
151
- + this.item.path
152
- .replace(UI_DIR_IN + '/', '')
153
- .replace(/\.ts$/, '')
154
-
155
- if (this.description) {
156
- title += ` - ${this.description}`
157
- }
158
-
159
- return title
160
- }
161
-
162
- /**
163
- * Reads the demo file content.
164
- *
165
- * Читает содержимое демо-файла.
166
- */
167
- protected readDemo(): string {
168
- return new ComponentWikiFile(this.pathDemo).read()
169
- }
170
-
171
- /**
172
- * Reads the prompt template.
173
- *
174
- * Читает шаблон промпта.
175
- */
176
- protected readPrompt(): string {
177
- return new ComponentWikiFile(this.pathPrompt)
178
- .read()
179
- .replace(/\[wikiLanguage]/g, PropertiesConfig.getWikiLanguage())
180
- }
181
-
182
- /**
183
- * Prepares context for AI.
184
- *
185
- * Подготавливает контекст для ИИ.
186
- */
187
- protected makeAi(): void {
188
- if (this.ai) {
189
- this.ai.addContent(`Code: ${this.build.getCode()}`)
190
- this.ai.addContent(`Original code: ${this.code.read()}`)
191
- this.ai.addContent(`Demo (only for template analysis, all data is fake): ${this.readDemo()}`)
192
- this.ai.addContent(`Original MDX: ${this.mdFile.read()}`)
193
- }
194
- }
195
-
196
- /**
197
- * Initializes the title in the content.
198
- *
199
- * Инициализирует заголовок в контенте.
200
- * @param content content / контент
201
- */
202
- protected initName(content: string): string {
203
- if (content.match('[title]')) {
204
- return content.replace('[title]', this.getTitle())
205
- }
206
-
207
- return content
208
- }
209
- }
@@ -1,27 +0,0 @@
1
- import { dirname } from 'node:path'
2
- import { fileURLToPath } from 'node:url'
3
- import { hasNativeDirname } from '../../functions/hasNativeDirname'
4
- import { AiDocItemAbstract } from './AiDocItemAbstract'
5
-
6
- const dirnamePath = hasNativeDirname()
7
- ? __dirname
8
- : dirname(fileURLToPath(import.meta.url))
9
-
10
- /** Sample prompt template path / Путь к шаблону промпта */
11
- const FILE_PROMPT_SAMPLE = [dirnamePath, '..', '..', 'media', 'templates', 'prompts']
12
-
13
- /** Sample prompt template for classes / Шаблон промпта для классов */
14
- const FILE_PROMPT_SAMPLE_CLASS = [...FILE_PROMPT_SAMPLE, 'aiDocClassPrompt.en.txt']
15
-
16
- /** Sample demo file for classes / Пример демонстрационного файла для классов */
17
- const FILE_DEMO_SAMPLE_CLASS = [...FILE_PROMPT_SAMPLE, 'demoClassEn.mdx']
18
-
19
- /**
20
- * AI Documentation Item for Classes.
21
- *
22
- * Элемент документации AI для классов.
23
- */
24
- export class AiDocItemClasses extends AiDocItemAbstract {
25
- protected pathDemo: string[] = FILE_DEMO_SAMPLE_CLASS
26
- protected pathPrompt: string[] = FILE_PROMPT_SAMPLE_CLASS
27
- }
@@ -1,20 +0,0 @@
1
- import { dirname } from 'node:path'
2
- import { fileURLToPath } from 'node:url'
3
- import { hasNativeDirname } from '../../functions/hasNativeDirname'
4
- import { AiDocItemAbstract } from './AiDocItemAbstract'
5
-
6
- const dirnamePath = hasNativeDirname()
7
- ? __dirname
8
- : dirname(fileURLToPath(import.meta.url))
9
-
10
- /** Sample prompt template path / Путь к шаблону промпта */
11
- const FILE_PROMPT_SAMPLE = [dirnamePath, '..', '..', 'media', 'templates', 'prompts']
12
-
13
- const FILE_PROMPT_SAMPLE_COMPOSABLE = [...FILE_PROMPT_SAMPLE, 'aiDocComposablePrompt.en.txt']
14
-
15
- const FILE_DEMO_SAMPLE_COMPOSABLE = [...FILE_PROMPT_SAMPLE, 'demoComposableEn.mdx']
16
-
17
- export class AiDocItemComposables extends AiDocItemAbstract {
18
- protected pathDemo: string[] = FILE_DEMO_SAMPLE_COMPOSABLE
19
- protected pathPrompt: string[] = FILE_PROMPT_SAMPLE_COMPOSABLE
20
- }
@@ -1,45 +0,0 @@
1
- import { PropertiesConfig } from '../Properties/PropertiesConfig'
2
-
3
- import type { AiDocTypeItem } from '../../types/aiTypes'
4
- import type { GitFileItem } from '../../types/gitTypes'
5
-
6
- import { aiDocTypes } from '../../media/ai/ai-doc-types'
7
-
8
- /**
9
- * Class for managing AI documentation types.
10
- *
11
- * Класс для управления типами документации ИИ.
12
- */
13
- export class AiDocType {
14
- /** List of available documentation types / Список доступных типов документации */
15
- protected static types = [...aiDocTypes]
16
-
17
- /**
18
- * Adds a new documentation type to the list.
19
- *
20
- * Добавляет новый тип документации в список.
21
- * @param type documentation type item / элемент типа документации
22
- */
23
- static add(type: AiDocTypeItem) {
24
- this.types.unshift(type)
25
- }
26
-
27
- /**
28
- * Generates documentation for a file item.
29
- *
30
- * Генерирует документацию для элемента файла.
31
- * @param item git file item / элемент файла git
32
- */
33
- static async make(item: GitFileItem) {
34
- const path = PropertiesConfig.getAiDocStorybookPath()
35
-
36
- for (const docType of aiDocTypes) {
37
- if (docType.check(item)) {
38
- const docItem = new docType.item(path, item)
39
- await docItem.make()
40
-
41
- break
42
- }
43
- }
44
- }
45
- }
@@ -1,26 +0,0 @@
1
- import { getConfigAi } from '../../functions/getConfigAi'
2
- import { AiGoogleLite } from './AiGoogleLite'
3
-
4
- /**
5
- * Google AI (Gemini) implementation of AiAbstract.
6
- * Initializes GoogleGenAI client and performs text generation requests.
7
- *
8
- * Реализация Google AI (Gemini) поверх AiAbstract.
9
- * Инициализирует клиент GoogleGenAI и выполняет запросы генерации текста.
10
- *
11
- * Responsibilities / Ответственности:
12
- * - Provide API key / Предоставить API ключ
13
- * - Initialize low-level client / Инициализировать низкоуровневый клиент
14
- * - Call generateContent and extract plain text / Вызвать generateContent и извлечь текст
15
- *
16
- * Notes / Примечания:
17
- * - Model must be set via setModel() before generate() / Модель нужно задать через setModel()
18
- * - Returns empty string if response is missing / Возвращает пустую строку при отсутствии результата
19
- */
20
- export class AiGoogle extends AiGoogleLite {
21
- constructor() {
22
- super(
23
- ...getConfigAi()
24
- )
25
- }
26
- }
@@ -1,24 +0,0 @@
1
- import { getConfigAi } from '../../functions/getConfigAi'
2
- import { AiGoogleCliLite } from './AiGoogleCliLite'
3
-
4
- /**
5
- * Google AI (Gemini) implementation via CLI.
6
- * Extends AiGoogleCliLite and provides configuration from the project environment.
7
- *
8
- * Реализация Google AI (Gemini) через CLI.
9
- * Расширяет AiGoogleCliLite и предоставляет конфигурацию из окружения проекта.
10
- *
11
- * Responsibilities / Ответственности:
12
- * - Provide API key and model from config / Предоставить API ключ и модель из конфигурации
13
- * - Initialize CLI wrapper / Инициализировать обертку CLI
14
- *
15
- * Notes / Примечания:
16
- * - Uses getConfigAi() to retrieve credentials / Использует getConfigAi() для получения учетных данных
17
- */
18
- export class AiGoogleCli extends AiGoogleCliLite {
19
- constructor() {
20
- super(
21
- ...getConfigAi()
22
- )
23
- }
24
- }
@@ -1,108 +0,0 @@
1
- import { forEach } from '@dxtmisha/functional-basic'
2
- import { exec } from 'node:child_process'
3
-
4
- import { AiAbstract } from './AiAbstract'
5
- import { ApiTmp } from './ApiTmp'
6
-
7
- /**
8
- * Google AI (Gemini) implementation via CLI.
9
- * Uses system shell to execute Gemini CLI commands.
10
- *
11
- * Реализация Google AI (Gemini) через CLI.
12
- * Использует системную оболочку для выполнения команд Gemini CLI.
13
- *
14
- * Responsibilities / Ответственности:
15
- * - Construct CLI command / Сформировать CLI команду
16
- * - Execute command via shell / Выполнить команду через оболочку
17
- * - Return stdout as result / Вернуть stdout как результат
18
- *
19
- * Notes / Примечания:
20
- * - Requires 'gemini' CLI tool installed / Требует установленной утилиты 'gemini'
21
- * - API key is passed via environment variable or config / API ключ передается через переменную окружения или конфиг
22
- */
23
- export class AiGoogleCliLite extends AiAbstract<{}> {
24
- protected readonly tmp = new ApiTmp()
25
-
26
- /**
27
- * Initializes the "client".
28
- * For CLI, we just mark it as initialized.
29
- *
30
- * Инициализирует "клиента".
31
- * Для CLI мы просто помечаем его как инициализированный.
32
- */
33
- protected init(): void {
34
- this.ai = {}
35
- }
36
-
37
- /**
38
- * Implementation hook: convert accumulated images to model-specific format.
39
- * CLI implementation currently ignores images.
40
- *
41
- * Хук реализации: преобразовать накопленные изображения в формат, специфичный для модели.
42
- * Реализация CLI в настоящее время игнорирует изображения.
43
- */
44
- protected toImages(): any {
45
- return []
46
- }
47
-
48
- /**
49
- * Implementation hook: convert accumulated contents to model-specific format.
50
- * Returns array of strings.
51
- *
52
- * Хук реализации: преобразовать накопленное содержимое в формат, специфичный для модели.
53
- * Возвращает массив строк.
54
- */
55
- protected toContents(): any {
56
- return forEach(
57
- this.contents,
58
- content => this.tmp.createFile(content)
59
- )
60
- }
61
-
62
- /**
63
- * Performs content generation request via CLI and returns textual result.
64
- *
65
- * Выполняет запрос генерации контента через CLI и возвращает текстовый результат.
66
- * @param model Model identifier / Идентификатор модели
67
- * @param contents Composed contents for generation / Собранный контент для генерации
68
- */
69
- protected async response(
70
- model: string,
71
- contents: string
72
- ): Promise<string> {
73
- return new Promise((resolve) => {
74
- const fullPrompt = [
75
- ...this.toContents(),
76
- this.tmp.createFile(contents)
77
- ].join('\n\n##################\n\n')
78
-
79
- const escapedPrompt = fullPrompt.replace(/"/g, '\\"')
80
- const modelFlag = model ? ` --model "${model}"` : ''
81
- const command = `gemini "${escapedPrompt} -- Output strictly the code/answer. No preamble, no chatter, no reasoning" ${modelFlag} --yolo`
82
-
83
- try {
84
- exec(
85
- command,
86
- {
87
- encoding: 'utf8',
88
- env: {
89
- ...process.env
90
- }
91
- },
92
- (error, stdout, stderr) => {
93
- if (error) {
94
- console.error('Error executing Gemini CLI:', stderr || error.message)
95
- resolve('')
96
- } else {
97
- resolve(stdout.trim())
98
- }
99
-
100
- this.tmp.removeFile()
101
- }
102
- )
103
- } catch (_) {
104
- this.tmp.removeFile()
105
- }
106
- })
107
- }
108
- }
@@ -1,78 +0,0 @@
1
- import { forEach } from '@dxtmisha/functional-basic'
2
- import { AiAbstract } from './AiAbstract'
3
- import { GoogleGenAI } from '@google/genai'
4
-
5
- /**
6
- * Google AI (Gemini) implementation of AiAbstract.
7
- * Initializes GoogleGenAI client and performs text generation requests.
8
- *
9
- * Реализация Google AI (Gemini) поверх AiAbstract.
10
- * Инициализирует клиент GoogleGenAI и выполняет запросы генерации текста.
11
- *
12
- * Responsibilities / Ответственности:
13
- * - Provide API key / Предоставить API ключ
14
- * - Initialize low-level client / Инициализировать низкоуровневый клиент
15
- * - Call generateContent and extract plain text / Вызвать generateContent и извлечь текст
16
- *
17
- * Notes / Примечания:
18
- * - Model must be set via setModel() before generate() / Модель нужно задать через setModel()
19
- * - Returns empty string if response is missing / Возвращает пустую строку при отсутствии результата
20
- */
21
- export class AiGoogleLite extends AiAbstract<GoogleGenAI> {
22
- /**
23
- * Initializes GoogleGenAI client instance.
24
- *
25
- * Инициализирует экземпляр клиента GoogleGenAI.
26
- */
27
- protected init(): void {
28
- this.ai = new GoogleGenAI({ apiKey: this.key })
29
- }
30
-
31
- /**
32
- * Implementation hook: convert accumulated images to model-specific format.
33
- *
34
- * Хук реализации: преобразовать накопленные изображения в формат, специфичный для модели.
35
- */
36
- protected toImages(): any {
37
- return forEach(this.images, image => ({
38
- inlineData: {
39
- mimeType: image.mime,
40
- data: image.base64
41
- }
42
- }))
43
- }
44
-
45
- protected toContents(): any {
46
- return forEach(this.contents, content => ({
47
- text: content
48
- }))
49
- }
50
-
51
- /**
52
- * Performs content generation request and returns textual result.
53
- *
54
- * Выполняет запрос генерации контента и возвращает текстовый результат.
55
- * @param model Model identifier / Идентификатор модели
56
- * @param contents Composed contents for generation / Собранный контент для генерации
57
- */
58
- protected async response(
59
- model: string,
60
- contents: string
61
- ): Promise<string> {
62
- const response = await this.ai?.models.generateContent({
63
- model,
64
- contents: [
65
- ...this.toImages(),
66
- {
67
- parts: [
68
- ...this.toContents(),
69
- { text: contents }
70
- ]
71
- }
72
- ],
73
- config: this.config
74
- })
75
-
76
- return response?.text ?? ''
77
- }
78
- }
@@ -1,26 +0,0 @@
1
- import { AiOpenAiLite } from './AiOpenAiLite'
2
- import { getConfigAi } from '../../functions/getConfigAi'
3
-
4
- /**
5
- * OpenAI implementation of AiAbstract.
6
- * Initializes OpenAI client and performs text generation requests.
7
- *
8
- * Реализация OpenAI поверх AiAbstract.
9
- * Инициализирует клиент OpenAI и выполняет запросы генерации текста.
10
- *
11
- * Responsibilities / Ответственности:
12
- * - Provide API key / Предоставить API ключ
13
- * - Initialize low-level client / Инициализировать низкоуровневый клиент
14
- * - Call chat.completions.create and extract plain text / Вызвать chat.completions.create и извлечь текст
15
- *
16
- * Notes / Примечания:
17
- * - Model must be set via setModel() before generate() / Модель нужно задать через setModel()
18
- * - Returns empty string if response is missing / Возвращает пустую строку при отсутствии результата
19
- */
20
- export class AiOpenAi extends AiOpenAiLite {
21
- constructor() {
22
- super(
23
- ...getConfigAi()
24
- )
25
- }
26
- }