@dxtmisha/scripts 0.11.8 → 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 +57 -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 -140
  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 -121
  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,242 +0,0 @@
1
- import type { AiImageItem, AiImageList } from '../../types/aiTypes'
2
-
3
- /**
4
- * Abstract AI base class providing common mechanics for AI integrations.
5
- * Handles prompt accumulation, model selection and unified response workflow.
6
- *
7
- * Абстрактный базовый класс AI, обеспечивающий общую механику интеграций:
8
- * накопление prompt, выбор модели и унифицированный цикл получения ответа.
9
- *
10
- * Responsibilities / Ответственности:
11
- * - Accumulate and compose prompt context / Накопление и компоновка контекста
12
- * - Select active model / Выбор активной модели
13
- * - Normalize generation call flow / Нормализация вызова генерации
14
- *
15
- * Extension points / Точки расширения:
16
- * - init(): client / auth / transport setup
17
- * - response(): concrete model invocation
18
- *
19
- * Расширение через методы:
20
- * - init(): инициализация клиента / авторизация / транспорт
21
- * - response(): конкретный вызов модели
22
- */
23
- export abstract class AiAbstract<AI = any> {
24
- /** AI client instance / Экземпляр AI-клиента */
25
- protected ai?: AI
26
-
27
- /** Prompt prefix / Префикс prompt */
28
- protected prompt: string = ''
29
-
30
- /** Accumulated image list / Накопленный список изображений */
31
- protected images: AiImageList = []
32
-
33
- /** Accumulated contents / Накопленные содержимое */
34
- protected contents: string[] = []
35
-
36
- /**
37
- * Constructor initializes implementation specific resources.
38
- *
39
- * Конструктор инициализирует ресурсы конкретной реализации.
40
- * @param key - API key / API ключ
41
- * @param model - initial model id / начальный идентификатор модели
42
- * @param config - configuration object / объект конфигурации
43
- */
44
- constructor(
45
- protected key: string,
46
- protected model: string,
47
- protected config: Record<string, any> = {}
48
- ) {
49
- }
50
-
51
- /**
52
- * Returns accumulated image list.
53
- *
54
- * Возвращает накопленный список изображений.
55
- */
56
- getImages(): AiImageList {
57
- return this.images
58
- }
59
-
60
- /**
61
- * Returns accumulated contents.
62
- *
63
- * Возвращает накопленное содержимое.
64
- */
65
- getContents(): string[] {
66
- return this.contents
67
- }
68
-
69
- /**
70
- * Appends an image to the accumulated image list.
71
- *
72
- * Добавляет изображение к накопленному списку изображений.
73
- * @param image - image item / элемент изображения
74
- */
75
- addImage(image: AiImageItem): this {
76
- this.images.push(image)
77
- return this
78
- }
79
-
80
- /**
81
- * Appends content to the accumulated contents.
82
- *
83
- * Добавляет содержимое к накопленному содержимому.
84
- * @param content - content string / строка содержимого
85
- */
86
- addContent(content: string): this {
87
- this.contents.push(content)
88
- return this
89
- }
90
-
91
- /**
92
- * Appends a new line to the accumulated prompt block.
93
- *
94
- * Добавляет новую строку к накопленному блоку prompt.
95
- */
96
- addPrompt(prompt: string): void {
97
- this.prompt += `\n${prompt}`
98
- }
99
-
100
- /**
101
- * Clears entire accumulated image list.
102
- *
103
- * Очищает весь накопленный список изображений.
104
- */
105
- resetImages(): this {
106
- this.images = []
107
- return this
108
- }
109
-
110
- /**
111
- * Clears entire accumulated contents.
112
- *
113
- * Очищает все накопленное содержимое.
114
- */
115
- resetContents(): this {
116
- this.contents = []
117
- return this
118
- }
119
-
120
- /**
121
- * Clears entire accumulated prompt.
122
- *
123
- * Полностью очищает накопленный prompt.
124
- */
125
- resetPrompt(): void {
126
- this.prompt = ''
127
- }
128
-
129
- /**
130
- * Sets / switches API key for authentication.
131
- *
132
- * Устанавливает / переключает API ключ для аутентификации.
133
- * @param key - new API key / новый API ключ
134
- */
135
- setKey(key: string): this {
136
- this.key = key
137
-
138
- if (this.ai) {
139
- this.init()
140
- }
141
-
142
- return this
143
- }
144
-
145
- /**
146
- * Sets / switches current model for generation.
147
- *
148
- * Устанавливает / переключает текущую модель для генерации.
149
- */
150
- setModel(model: string): this {
151
- this.model = model
152
- return this
153
- }
154
-
155
- /**
156
- * Sets / switches configuration object.
157
- *
158
- * Устанавливает / переключает объект конфигурации.
159
- * @param config - configuration object / объект конфигурации
160
- */
161
- setConfig(config: Record<string, any>): this {
162
- this.config = config
163
- return this
164
- }
165
-
166
- /**
167
- * Generates AI response using active model and composed contents.
168
- *
169
- * Генерирует отклик ИИ, используя активную модель и собранный контент.
170
- */
171
- async generate(contents: string): Promise<string> {
172
- if (!this.ai) {
173
- this.init()
174
-
175
- console.log(
176
- `[Ai] Initialized AI client with model: ${this.model}`
177
- )
178
- }
179
-
180
- if (this.ai) {
181
- console.log('[Ai] Generating')
182
-
183
- try {
184
- const generate = await this.response(
185
- this.model,
186
- this.getMainContents(contents)
187
- )
188
-
189
- console.log(`[Ai] End (length: ${generate.length})`)
190
-
191
- return generate
192
- } catch (error) {
193
- console.error('[Ai] Generation error:', error)
194
- process.exit(603)
195
- }
196
- }
197
-
198
- return ''
199
- }
200
-
201
- /**
202
- * Combines persistent prompt prefix with provided contents.
203
- *
204
- * Объединяет постоянный префикс prompt с переданным содержимым.
205
- */
206
- protected getMainContents(contents: string): string {
207
- return `${this.prompt}\n${contents}`
208
- }
209
-
210
- /**
211
- * Implementation hook: initialize client / transport / auth.
212
- *
213
- * Хук реализации: инициализация клиента / транспорта / авторизации.
214
- */
215
- protected abstract init(): void
216
-
217
- /**
218
- * Implementation hook: convert accumulated images to model-specific format.
219
- *
220
- * Хук реализации: преобразовать накопленные изображения в формат, специфичный для модели.
221
- */
222
- protected abstract toImages(): void
223
-
224
- /**
225
- * Implementation hook: convert accumulated contents to model-specific format.
226
- *
227
- * Хук реализации: преобразовать накопленное содержимое в формат, специфичный для модели.
228
- */
229
- protected abstract toContents(): void
230
-
231
- /**
232
- * Implementation hook: perform model call and return textual result.
233
- *
234
- * Хук реализации: выполнить вызов модели и вернуть текстовый результат.
235
- * @param model - active model id / идентификатор активной модели
236
- * @param contents - composed prompt + contents / собранный prompt + содержимое
237
- */
238
- protected abstract response(
239
- model: string,
240
- contents: string
241
- ): Promise<string>
242
- }
@@ -1,26 +0,0 @@
1
- import { getConfigAi } from '../../functions/getConfigAi'
2
- import { AiClaudeLite } from './AiClaudeLite'
3
-
4
- /**
5
- * Claude AI implementation of AiAbstract.
6
- * Initializes Anthropic client and performs text generation requests.
7
- *
8
- * Реализация Claude AI поверх AiAbstract.
9
- * Инициализирует клиент Anthropic и выполняет запросы генерации текста.
10
- *
11
- * Responsibilities / Ответственности:
12
- * - Provide API key / Предоставить API ключ
13
- * - Initialize low-level client / Инициализировать низкоуровневый клиент
14
- * - Call messages.create and extract plain text / Вызвать messages.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 AiClaude extends AiClaudeLite {
21
- constructor() {
22
- super(
23
- ...getConfigAi()
24
- )
25
- }
26
- }
@@ -1,16 +0,0 @@
1
- import { getConfigAi } from '../../functions/getConfigAi'
2
- import { AiClaudeAgentLite } from './AiClaudeAgentLite'
3
-
4
- /**
5
- * Claude AI implementation via Agent SDK.
6
- * Uses @anthropic-ai/claude-agent-sdk to interact with Claude as an agent.
7
- *
8
- * Реализация Claude AI через Agent SDK.
9
- */
10
- export class AiClaudeAgent extends AiClaudeAgentLite {
11
- constructor() {
12
- super(
13
- ...getConfigAi()
14
- )
15
- }
16
- }
@@ -1,86 +0,0 @@
1
- import { query } from '@anthropic-ai/claude-agent-sdk'
2
- import { AiAbstract } from './AiAbstract'
3
-
4
- /**
5
- * Claude AI implementation via Agent SDK.
6
- * Uses @anthropic-ai/claude-agent-sdk to interact with Claude as an agent.
7
- *
8
- * Реализация Claude AI через Agent SDK.
9
- * Использует @anthropic-ai/claude-agent-sdk для взаимодействия с Claude в режиме агента.
10
- *
11
- * Responsibilities / Ответственности:
12
- * - Initialize Agent SDK client / Инициализировать Agent SDK клиент
13
- * - Execute query via Agent SDK / Выполнить запрос через Agent SDK
14
- * - Extract and return textual result / Извлечь и вернуть текстовый результат
15
- */
16
- export class AiClaudeAgentLite extends AiAbstract<{}> {
17
- /**
18
- * Initializes the "client".
19
- * For Agent SDK, we mark it as initialized.
20
- */
21
- protected init(): void {
22
- this.ai = {}
23
- }
24
-
25
- /**
26
- * Implementation hook: convert accumulated images to model-specific format.
27
- * Agent SDK implementation logic for images can be added if supported by the SDK.
28
- */
29
- protected toImages(): any {
30
- return []
31
- }
32
-
33
- /**
34
- * Implementation hook: convert accumulated contents to model-specific format.
35
- */
36
- protected toContents(): any {
37
- return this.contents.join('\n\n')
38
- }
39
-
40
- /**
41
- * Performs content generation request via Agent SDK and returns textual result.
42
- *
43
- * @param model Model identifier / Идентификатор модели
44
- * @param contents Composed contents for generation / Собранный контент для генерации
45
- */
46
- protected async response(
47
- model: string,
48
- contents: string
49
- ): Promise<string> {
50
- const fullPrompt = [
51
- this.toContents(),
52
- contents
53
- ].filter(Boolean).join('\n\n')
54
-
55
- try {
56
- const q = query({
57
- prompt: fullPrompt,
58
- options: {
59
- model: model || undefined,
60
- env: {
61
- ...process.env,
62
- ANTHROPIC_API_KEY: this.key
63
- },
64
- permissionMode: 'acceptEdits', // Auto-accept file changes if any
65
- allowDangerouslySkipPermissions: true,
66
- ...this.config
67
- }
68
- })
69
-
70
- let lastResult = ''
71
-
72
- for await (const message of q) {
73
- if (message.type === 'result') {
74
- if (message.subtype === 'success') {
75
- lastResult = message.result
76
- }
77
- }
78
- }
79
-
80
- return lastResult.trim()
81
- } catch (error) {
82
- console.error('[AiClaudeAgent] Error:', error)
83
- return ''
84
- }
85
- }
86
- }
@@ -1,24 +0,0 @@
1
- import { getConfigAi } from '../../functions/getConfigAi'
2
- import { AiClaudeCliLite } from './AiClaudeCliLite'
3
-
4
- /**
5
- * Claude AI implementation via CLI.
6
- * Extends AiClaudeCliLite and provides configuration from the project environment.
7
- *
8
- * Реализация Claude AI через CLI.
9
- * Расширяет AiClaudeCliLite и предоставляет конфигурацию из окружения проекта.
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 AiClaudeCli extends AiClaudeCliLite {
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
- * Claude AI implementation via CLI.
9
- * Uses system shell to execute Claude CLI commands.
10
- *
11
- * Реализация Claude AI через CLI.
12
- * Использует системную оболочку для выполнения команд Claude 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 'claude' CLI tool installed / Требует установленной утилиты 'claude'
21
- * - API key is passed via environment variable or config / API ключ передается через переменную окружения или конфиг
22
- */
23
- export class AiClaudeCliLite 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 = `claude "${escapedPrompt} -- Output strictly the code/answer. No preamble, no chatter, no reasoning" ${modelFlag}`
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 Claude 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,112 +0,0 @@
1
- import { Anthropic } from '@anthropic-ai/sdk'
2
- import { forEach } from '@dxtmisha/functional-basic'
3
-
4
- import { AiAbstract } from './AiAbstract'
5
-
6
- /**
7
- * Claude AI implementation of AiAbstract.
8
- * Initializes Anthropic client and performs text generation requests.
9
- *
10
- * Реализация Claude AI поверх AiAbstract.
11
- * Инициализирует клиент Anthropic и выполняет запросы генерации текста.
12
- *
13
- * Responsibilities / Ответственности:
14
- * - Provide API key / Предоставить API ключ
15
- * - Initialize Anthropic client / Инициализировать клиент Anthropic
16
- * - Call messages.create and extract text content / Вызвать messages.create и извлечь текст
17
- *
18
- * Notes / Примечания:
19
- * - Model must be set via setModel() before generate() / Модель нужно задать через setModel()
20
- * - Returns empty string if response is missing / Возвращает пустую строку при отсутствии результата
21
- */
22
- export class AiClaudeLite extends AiAbstract<Anthropic> {
23
- /**
24
- * Initializes Anthropic client instance.
25
- *
26
- * Инициализирует экземпляр клиента Anthropic.
27
- */
28
- protected init(): void {
29
- this.ai = new Anthropic({
30
- apiKey: this.key
31
- })
32
- }
33
-
34
- /**
35
- * Implementation hook: convert accumulated images to model-specific format.
36
- * Claude expects images as content blocks with type 'image'.
37
- *
38
- * Хук реализации: преобразовать накопленные изображения в формат, специфичный для модели.
39
- * Claude ожидает изображения как блоки контента с типом 'image'.
40
- */
41
- protected toImages(): any {
42
- return forEach(this.images, image => ({
43
- type: 'image',
44
- source: {
45
- type: 'base64',
46
- media_type: image.mime,
47
- data: image.base64
48
- }
49
- }))
50
- }
51
-
52
- /**
53
- * Implementation hook: convert accumulated contents to model-specific format.
54
- * Claude expects text as content blocks with type 'text'.
55
- *
56
- * Хук реализации: преобразовать накопленное содержимое в формат, специфичный для модели.
57
- * Claude ожидает текст как блоки контента с типом 'text'.
58
- */
59
- protected toContents(): any {
60
- return forEach(this.contents, content => ({
61
- type: 'text',
62
- text: content
63
- }))
64
- }
65
-
66
- /**
67
- * Performs content generation request and returns textual result.
68
- *
69
- * Выполняет запрос генерации контента и возвращает текстовый результат.
70
- * @param model Model identifier (e.g., 'claude-3-5-sonnet-20241022') / Идентификатор модели
71
- * @param contents Composed contents for generation / Собранный контент для генерации
72
- */
73
- protected async response(
74
- model: string,
75
- contents: string
76
- ): Promise<string> {
77
- const message = await this.ai?.messages.create({
78
- model,
79
- max_tokens: this.config.maxTokens ?? 4096,
80
- messages: [
81
- {
82
- role: 'user',
83
- content: [
84
- ...this.toImages(),
85
- ...this.toContents(),
86
- { type: 'text', text: contents }
87
- ]
88
- }
89
- ],
90
- ...this.config
91
- })
92
-
93
- if (message?.content) {
94
- return forEach(
95
- message.content,
96
- (block) => {
97
- if (
98
- block.type === 'text'
99
- && 'text' in block
100
- ) {
101
- return block.text
102
- }
103
-
104
- return undefined
105
- }
106
- )
107
- .join('\n')
108
- }
109
-
110
- return ''
111
- }
112
- }
@@ -1,81 +0,0 @@
1
- import { ServerStorage } from '@dxtmisha/functional-basic'
2
-
3
- import { PropertiesConfig } from '../Properties/PropertiesConfig'
4
- import { GitRead } from '../Git/GitRead'
5
- import { AiDocType } from './AiDocType'
6
-
7
- /**
8
- * Class for generating AI documentation.
9
- * It manages the process of reading directories, fetching files, and
10
- * delegating the documentation generation to specific processors.
11
- *
12
- * Класс для генерации AI-документации.
13
- * Управляет процессом чтения директорий, получения файлов и делегирования
14
- * генерации документации специализированным процессорам.
15
- */
16
- export class AiDoc {
17
- /**
18
- * Constructor for AiDoc. Sets error status config for ServerStorage.
19
- *
20
- * Конструктор для AiDoc. Устанавливает конфигурацию статуса ошибок для ServerStorage.
21
- */
22
- constructor() {
23
- ServerStorage.setErrorStatus(true)
24
- }
25
-
26
- /**
27
- * Main method to generate documentation for configured directories.
28
- *
29
- * Основной метод для генерации документации по настроенным директориям.
30
- * @returns promise that resolves when generation is complete / промис, завершающийся по окончании генерации
31
- */
32
- async make() {
33
- const dirs = PropertiesConfig.getAiDocDirectory()
34
- const path = PropertiesConfig.getAiDocStorybookPath()
35
-
36
- console.log(`AI documentation: ${path}`)
37
-
38
- if (
39
- dirs
40
- && dirs.length
41
- ) {
42
- for (const dir of dirs) {
43
- await this.makeDirectory(dir)
44
- }
45
- }
46
- }
47
-
48
- /**
49
- * Process a specific directory, generating documentation for its files.
50
- *
51
- * Обрабатывает конкретную директорию, генерируя документацию для её файлов.
52
- * @param dir directory path / путь к директории
53
- * @returns promise that resolves when processing is complete / промис, завершающийся по окончании обработки
54
- */
55
- async makeDirectory(dir: string) {
56
- console.log('')
57
- console.log(`Dir: ${dir}...`)
58
-
59
- for (const item of this.getListByDirectory(dir)) {
60
- try {
61
- await AiDocType.make(item)
62
- } catch (e) {
63
- console.error(`Error processing file ${item}:`, e)
64
- process.exit(602)
65
- }
66
- }
67
- }
68
-
69
- /**
70
- * Get filtered list of files in a directory via Git tracker.
71
- *
72
- * Получает отфильтрованный список файлов в директории через Git трекер.
73
- * @param dir directory path / путь к директории
74
- * @returns list of file paths / список путей к файлам
75
- */
76
- protected getListByDirectory(dir: string) {
77
- return GitRead.filterByDirectory(
78
- GitRead.getListByDirectory(dir)
79
- )
80
- }
81
- }