@nguyenphp/antigravity-marketing 1.0.18 → 1.0.20

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 (231) hide show
  1. package/README.md +130 -78
  2. package/package.json +4 -3
  3. package/templates/.agent/skills/marketing-report-expert/SKILL.md +70 -0
  4. package/templates/.agent/skills/minimax-docx/LICENSE +21 -0
  5. package/templates/.agent/skills/minimax-docx/SKILL.md +274 -0
  6. package/templates/.agent/skills/minimax-docx/assets/styles/academic_styles.xml +250 -0
  7. package/templates/.agent/skills/minimax-docx/assets/styles/corporate_styles.xml +284 -0
  8. package/templates/.agent/skills/minimax-docx/assets/styles/default_styles.xml +449 -0
  9. package/templates/.agent/skills/minimax-docx/assets/xsd/aesthetic-rules.xsd +470 -0
  10. package/templates/.agent/skills/minimax-docx/assets/xsd/business-rules.xsd +130 -0
  11. package/templates/.agent/skills/minimax-docx/assets/xsd/common-types.xsd +159 -0
  12. package/templates/.agent/skills/minimax-docx/assets/xsd/wml-subset.xsd +589 -0
  13. package/templates/.agent/skills/minimax-docx/references/cjk_typography.md +357 -0
  14. package/templates/.agent/skills/minimax-docx/references/cjk_university_template_guide.md +184 -0
  15. package/templates/.agent/skills/minimax-docx/references/comments_guide.md +191 -0
  16. package/templates/.agent/skills/minimax-docx/references/design_good_bad_examples.md +829 -0
  17. package/templates/.agent/skills/minimax-docx/references/design_principles.md +819 -0
  18. package/templates/.agent/skills/minimax-docx/references/openxml_element_order.md +308 -0
  19. package/templates/.agent/skills/minimax-docx/references/openxml_encyclopedia_part1.md +4061 -0
  20. package/templates/.agent/skills/minimax-docx/references/openxml_encyclopedia_part2.md +2820 -0
  21. package/templates/.agent/skills/minimax-docx/references/openxml_encyclopedia_part3.md +3381 -0
  22. package/templates/.agent/skills/minimax-docx/references/openxml_namespaces.md +82 -0
  23. package/templates/.agent/skills/minimax-docx/references/openxml_units.md +72 -0
  24. package/templates/.agent/skills/minimax-docx/references/scenario_a_create.md +284 -0
  25. package/templates/.agent/skills/minimax-docx/references/scenario_b_edit_content.md +295 -0
  26. package/templates/.agent/skills/minimax-docx/references/scenario_c_apply_template.md +456 -0
  27. package/templates/.agent/skills/minimax-docx/references/track_changes_guide.md +200 -0
  28. package/templates/.agent/skills/minimax-docx/references/troubleshooting.md +506 -0
  29. package/templates/.agent/skills/minimax-docx/references/typography_guide.md +294 -0
  30. package/templates/.agent/skills/minimax-docx/references/xsd_validation_guide.md +158 -0
  31. package/templates/.agent/skills/minimax-docx/scripts/doc_to_docx.sh +40 -0
  32. package/templates/.agent/skills/minimax-docx/scripts/docx_preview.sh +37 -0
  33. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Cli/MiniMaxAIDocx.Cli.csproj +19 -0
  34. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Cli/Program.cs +18 -0
  35. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/AnalyzeCommand.cs +147 -0
  36. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ApplyTemplateCommand.cs +322 -0
  37. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/CreateCommand.cs +324 -0
  38. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/DiffCommand.cs +155 -0
  39. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/EditContentCommand.cs +487 -0
  40. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/FixOrderCommand.cs +108 -0
  41. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/MergeRunsCommand.cs +122 -0
  42. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ValidateCommand.cs +107 -0
  43. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/MiniMaxAIDocx.Core.csproj +15 -0
  44. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/CommentSynchronizer.cs +169 -0
  45. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/ElementOrder.cs +80 -0
  46. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/NamespaceConstants.cs +42 -0
  47. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/RunMerger.cs +81 -0
  48. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/StyleAnalyzer.cs +81 -0
  49. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/TrackChangesHelper.cs +99 -0
  50. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/UnitConverter.cs +23 -0
  51. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples.cs +1832 -0
  52. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch1.cs +910 -0
  53. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch2.cs +999 -0
  54. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch3.cs +1048 -0
  55. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch4.cs +1038 -0
  56. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/CharacterFormattingSamples.cs +1020 -0
  57. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/DocumentCreationSamples.cs +1121 -0
  58. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FieldAndTocSamples.cs +624 -0
  59. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FootnoteAndCommentSamples.cs +675 -0
  60. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/HeaderFooterSamples.cs +838 -0
  61. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ImageSamples.cs +917 -0
  62. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ListAndNumberingSamples.cs +826 -0
  63. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ParagraphFormattingSamples.cs +1199 -0
  64. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/StyleSystemSamples.cs +1487 -0
  65. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TableSamples.cs +1163 -0
  66. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TrackChangesSamples.cs +595 -0
  67. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/CjkHelper.cs +39 -0
  68. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/FontDefaults.cs +24 -0
  69. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/PageSizes.cs +20 -0
  70. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/BusinessRuleValidator.cs +224 -0
  71. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/GateCheckValidator.cs +148 -0
  72. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/ValidationResult.cs +23 -0
  73. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/XsdValidator.cs +69 -0
  74. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.slnx +4 -0
  75. package/templates/.agent/skills/minimax-docx/scripts/env_check.sh +196 -0
  76. package/templates/.agent/skills/minimax-docx/scripts/setup.ps1 +274 -0
  77. package/templates/.agent/skills/minimax-docx/scripts/setup.sh +504 -0
  78. package/templates/.agent/skills/minimax-multimodal-toolkit/SKILL.md +359 -0
  79. package/templates/.agent/skills/minimax-pdf/README.md +222 -0
  80. package/templates/.agent/skills/minimax-pdf/SKILL.md +201 -0
  81. package/templates/.agent/skills/minimax-pdf/design/design.md +381 -0
  82. package/templates/.agent/skills/minimax-pdf/scripts/cover.py +1579 -0
  83. package/templates/.agent/skills/minimax-pdf/scripts/fill_inspect.py +200 -0
  84. package/templates/.agent/skills/minimax-pdf/scripts/fill_write.py +242 -0
  85. package/templates/.agent/skills/minimax-pdf/scripts/make.sh +491 -0
  86. package/templates/.agent/skills/minimax-pdf/scripts/merge.py +112 -0
  87. package/templates/.agent/skills/minimax-pdf/scripts/palette.py +559 -0
  88. package/templates/.agent/skills/minimax-pdf/scripts/reformat_parse.py +374 -0
  89. package/templates/.agent/skills/minimax-pdf/scripts/render_body.py +1055 -0
  90. package/templates/.agent/skills/minimax-pdf/scripts/render_cover.cjs +111 -0
  91. package/templates/.agent/skills/minimax-xlsx/SKILL.md +138 -0
  92. package/templates/.agent/skills/minimax-xlsx/references/create.md +691 -0
  93. package/templates/.agent/skills/minimax-xlsx/references/edit.md +684 -0
  94. package/templates/.agent/skills/minimax-xlsx/references/fix.md +37 -0
  95. package/templates/.agent/skills/minimax-xlsx/references/format.md +768 -0
  96. package/templates/.agent/skills/minimax-xlsx/references/ooxml-cheatsheet.md +231 -0
  97. package/templates/.agent/skills/minimax-xlsx/references/read-analyze.md +97 -0
  98. package/templates/.agent/skills/minimax-xlsx/references/validate.md +772 -0
  99. package/templates/.agent/skills/minimax-xlsx/scripts/formula_check.py +422 -0
  100. package/templates/.agent/skills/minimax-xlsx/scripts/libreoffice_recalc.py +248 -0
  101. package/templates/.agent/skills/minimax-xlsx/scripts/shared_strings_builder.py +163 -0
  102. package/templates/.agent/skills/minimax-xlsx/scripts/style_audit.py +575 -0
  103. package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_add_column.py +395 -0
  104. package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_insert_row.py +274 -0
  105. package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_pack.py +87 -0
  106. package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_reader.py +362 -0
  107. package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_shift_rows.py +396 -0
  108. package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_unpack.py +130 -0
  109. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/[Content_Types].xml +9 -0
  110. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/_rels/.rels +6 -0
  111. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/_rels/workbook.xml.rels +19 -0
  112. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/sharedStrings.xml +33 -0
  113. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/styles.xml +160 -0
  114. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/workbook.xml +30 -0
  115. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/worksheets/sheet1.xml +70 -0
  116. package/templates/.agent/skills/pptx-generator/SKILL.md +249 -0
  117. package/templates/.agent/skills/pptx-generator/references/design-system.md +392 -0
  118. package/templates/.agent/skills/pptx-generator/references/editing.md +162 -0
  119. package/templates/.agent/skills/pptx-generator/references/pitfalls.md +112 -0
  120. package/templates/.agent/skills/pptx-generator/references/pptxgenjs.md +420 -0
  121. package/templates/.agent/skills/pptx-generator/references/slide-types.md +413 -0
  122. package/templates/.agent/skills/tutorial-video-expert/SKILL.md +88 -0
  123. package/templates/.agent/skills/ui-ux-pro-max/SKILL.md +170 -585
  124. package/templates/.agent/skills/vision-analysis/SKILL.md +174 -0
  125. package/templates/.agent/workflows/analyze.md +3 -0
  126. package/templates/.agent/workflows/brand-report.md +44 -0
  127. package/templates/.agent/workflows/report.md +49 -0
  128. package/templates/.agent/agents/backend-specialist.md +0 -263
  129. package/templates/.agent/agents/database-architect.md +0 -226
  130. package/templates/.agent/agents/debugger.md +0 -225
  131. package/templates/.agent/agents/devops-engineer.md +0 -242
  132. package/templates/.agent/agents/frontend-specialist.md +0 -527
  133. package/templates/.agent/agents/game-developer.md +0 -162
  134. package/templates/.agent/agents/mobile-developer.md +0 -377
  135. package/templates/.agent/agents/penetration-tester.md +0 -188
  136. package/templates/.agent/agents/security-auditor.md +0 -170
  137. package/templates/.agent/agents/test-engineer.md +0 -158
  138. package/templates/.agent/skills/api-patterns/SKILL.md +0 -81
  139. package/templates/.agent/skills/api-patterns/api-style.md +0 -42
  140. package/templates/.agent/skills/api-patterns/auth.md +0 -24
  141. package/templates/.agent/skills/api-patterns/documentation.md +0 -26
  142. package/templates/.agent/skills/api-patterns/graphql.md +0 -41
  143. package/templates/.agent/skills/api-patterns/rate-limiting.md +0 -31
  144. package/templates/.agent/skills/api-patterns/response.md +0 -37
  145. package/templates/.agent/skills/api-patterns/rest.md +0 -40
  146. package/templates/.agent/skills/api-patterns/scripts/api_validator.py +0 -211
  147. package/templates/.agent/skills/api-patterns/security-testing.md +0 -122
  148. package/templates/.agent/skills/api-patterns/trpc.md +0 -41
  149. package/templates/.agent/skills/api-patterns/versioning.md +0 -22
  150. package/templates/.agent/skills/app-builder/SKILL.md +0 -75
  151. package/templates/.agent/skills/app-builder/agent-coordination.md +0 -71
  152. package/templates/.agent/skills/app-builder/feature-building.md +0 -53
  153. package/templates/.agent/skills/app-builder/project-detection.md +0 -34
  154. package/templates/.agent/skills/app-builder/scaffolding.md +0 -118
  155. package/templates/.agent/skills/app-builder/tech-stack.md +0 -40
  156. package/templates/.agent/skills/app-builder/templates/SKILL.md +0 -39
  157. package/templates/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +0 -76
  158. package/templates/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +0 -92
  159. package/templates/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +0 -88
  160. package/templates/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +0 -88
  161. package/templates/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +0 -83
  162. package/templates/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +0 -90
  163. package/templates/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +0 -90
  164. package/templates/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +0 -82
  165. package/templates/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +0 -100
  166. package/templates/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +0 -106
  167. package/templates/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +0 -101
  168. package/templates/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +0 -83
  169. package/templates/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +0 -93
  170. package/templates/.agent/skills/architecture/SKILL.md +0 -55
  171. package/templates/.agent/skills/architecture/context-discovery.md +0 -43
  172. package/templates/.agent/skills/architecture/examples.md +0 -94
  173. package/templates/.agent/skills/architecture/pattern-selection.md +0 -68
  174. package/templates/.agent/skills/architecture/patterns-reference.md +0 -50
  175. package/templates/.agent/skills/architecture/trade-off-analysis.md +0 -77
  176. package/templates/.agent/skills/bash-linux/SKILL.md +0 -199
  177. package/templates/.agent/skills/behavioral-modes/SKILL.md +0 -242
  178. package/templates/.agent/skills/clean-code/SKILL.md +0 -201
  179. package/templates/.agent/skills/code-review-checklist/SKILL.md +0 -109
  180. package/templates/.agent/skills/database-design/SKILL.md +0 -52
  181. package/templates/.agent/skills/database-design/database-selection.md +0 -43
  182. package/templates/.agent/skills/database-design/indexing.md +0 -39
  183. package/templates/.agent/skills/database-design/migrations.md +0 -48
  184. package/templates/.agent/skills/database-design/optimization.md +0 -36
  185. package/templates/.agent/skills/database-design/orm-selection.md +0 -30
  186. package/templates/.agent/skills/database-design/schema-design.md +0 -56
  187. package/templates/.agent/skills/database-design/scripts/schema_validator.py +0 -172
  188. package/templates/.agent/skills/deployment-procedures/SKILL.md +0 -241
  189. package/templates/.agent/skills/docker-expert/SKILL.md +0 -409
  190. package/templates/.agent/skills/game-development/2d-games/SKILL.md +0 -119
  191. package/templates/.agent/skills/game-development/3d-games/SKILL.md +0 -135
  192. package/templates/.agent/skills/game-development/SKILL.md +0 -167
  193. package/templates/.agent/skills/game-development/game-art/SKILL.md +0 -185
  194. package/templates/.agent/skills/game-development/game-audio/SKILL.md +0 -190
  195. package/templates/.agent/skills/game-development/game-design/SKILL.md +0 -129
  196. package/templates/.agent/skills/game-development/mobile-games/SKILL.md +0 -108
  197. package/templates/.agent/skills/game-development/multiplayer/SKILL.md +0 -132
  198. package/templates/.agent/skills/game-development/pc-games/SKILL.md +0 -144
  199. package/templates/.agent/skills/game-development/vr-ar/SKILL.md +0 -123
  200. package/templates/.agent/skills/game-development/web-games/SKILL.md +0 -150
  201. package/templates/.agent/skills/lint-and-validate/SKILL.md +0 -45
  202. package/templates/.agent/skills/lint-and-validate/scripts/lint_runner.py +0 -172
  203. package/templates/.agent/skills/lint-and-validate/scripts/type_coverage.py +0 -173
  204. package/templates/.agent/skills/mcp-builder/SKILL.md +0 -176
  205. package/templates/.agent/skills/nestjs-expert/SKILL.md +0 -552
  206. package/templates/.agent/skills/nextjs-best-practices/SKILL.md +0 -203
  207. package/templates/.agent/skills/nodejs-best-practices/SKILL.md +0 -333
  208. package/templates/.agent/skills/parallel-agents/SKILL.md +0 -175
  209. package/templates/.agent/skills/performance-profiling/SKILL.md +0 -143
  210. package/templates/.agent/skills/performance-profiling/scripts/lighthouse_audit.py +0 -76
  211. package/templates/.agent/skills/powershell-windows/SKILL.md +0 -167
  212. package/templates/.agent/skills/prisma-expert/SKILL.md +0 -355
  213. package/templates/.agent/skills/python-patterns/SKILL.md +0 -441
  214. package/templates/.agent/skills/react-patterns/SKILL.md +0 -198
  215. package/templates/.agent/skills/red-team-tactics/SKILL.md +0 -199
  216. package/templates/.agent/skills/server-management/SKILL.md +0 -161
  217. package/templates/.agent/skills/systematic-debugging/SKILL.md +0 -109
  218. package/templates/.agent/skills/tdd-workflow/SKILL.md +0 -149
  219. package/templates/.agent/skills/testing-patterns/SKILL.md +0 -178
  220. package/templates/.agent/skills/testing-patterns/scripts/test_runner.py +0 -219
  221. package/templates/.agent/skills/typescript-expert/SKILL.md +0 -429
  222. package/templates/.agent/skills/vue-expert/SKILL.md +0 -374
  223. package/templates/.agent/skills/vulnerability-scanner/SKILL.md +0 -276
  224. package/templates/.agent/skills/vulnerability-scanner/checklists.md +0 -121
  225. package/templates/.agent/skills/vulnerability-scanner/scripts/security_scan.py +0 -458
  226. package/templates/.agent/skills/webapp-testing/SKILL.md +0 -187
  227. package/templates/.agent/skills/webapp-testing/scripts/playwright_runner.py +0 -173
  228. package/templates/.agent/workflows/debug.md +0 -103
  229. package/templates/.agent/workflows/deploy.md +0 -176
  230. package/templates/.agent/workflows/enhance.md +0 -63
  231. package/templates/.agent/workflows/test.md +0 -144
@@ -0,0 +1,274 @@
1
+ # minimax-docx Environment Setup & Initialization Script (Windows PowerShell)
2
+ # Supports: Windows 10/11, Windows Server 2019+
3
+ # License: MIT
4
+ #Requires -Version 5.1
5
+
6
+ param(
7
+ [switch]$Minimal,
8
+ [switch]$SkipVerify,
9
+ [switch]$Help
10
+ )
11
+
12
+ $ErrorActionPreference = "Stop"
13
+ $ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
14
+ $ProjectDir = Split-Path -Parent $ScriptDir
15
+ $DotnetDir = Join-Path $ScriptDir "dotnet"
16
+ $LogFile = Join-Path $ProjectDir ".setup.log"
17
+
18
+ # --- Output Helpers ---
19
+ function Log { Write-Host "[OK] $args" -ForegroundColor Green }
20
+ function Warn { Write-Host "[WARN] $args" -ForegroundColor Yellow }
21
+ function Fail { Write-Host "[FAIL] $args" -ForegroundColor Red }
22
+ function Info { Write-Host "[INFO] $args" -ForegroundColor Cyan }
23
+ function Step { Write-Host "`n=== $args ===" -ForegroundColor Blue }
24
+
25
+ if ($Help) {
26
+ Write-Host @"
27
+ Usage: setup.ps1 [options]
28
+ -Minimal Only install critical dependencies (skip pandoc, soffice, fonts)
29
+ -SkipVerify Skip the verification test at the end
30
+ -Help Show this help
31
+ "@
32
+ exit 0
33
+ }
34
+
35
+ Write-Host "============================================"
36
+ Write-Host " minimax-docx Setup & Initialization (Windows)"
37
+ Write-Host " $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')"
38
+ Write-Host "============================================"
39
+
40
+ "" | Set-Content $LogFile
41
+
42
+ # --- Detect Package Manager ---
43
+ $HasWinget = $null -ne (Get-Command winget -ErrorAction SilentlyContinue)
44
+ $HasChoco = $null -ne (Get-Command choco -ErrorAction SilentlyContinue)
45
+ $HasScoop = $null -ne (Get-Command scoop -ErrorAction SilentlyContinue)
46
+
47
+ if ($HasWinget) { Info "Package manager: winget" }
48
+ elseif ($HasChoco) { Info "Package manager: chocolatey" }
49
+ elseif ($HasScoop) { Info "Package manager: scoop" }
50
+ else { Warn "No package manager found (winget/choco/scoop). Manual install may be needed." }
51
+
52
+ # --- .NET SDK ---
53
+ Step "Checking .NET SDK"
54
+
55
+ $dotnetCmd = Get-Command dotnet -ErrorAction SilentlyContinue
56
+ if ($dotnetCmd) {
57
+ $dotnetVer = & dotnet --version 2>$null
58
+ $majorVer = [int]($dotnetVer -split '\.')[0]
59
+ if ($majorVer -ge 8) {
60
+ Log "dotnet $dotnetVer already installed (>= 8.0 OK)"
61
+ } else {
62
+ Warn "dotnet $dotnetVer found but < 8.0, upgrading..."
63
+ $dotnetCmd = $null
64
+ }
65
+ }
66
+
67
+ if (-not $dotnetCmd -or $majorVer -lt 8) {
68
+ Info "Installing .NET SDK..."
69
+ if ($HasWinget) {
70
+ winget install Microsoft.DotNet.SDK.8 --accept-source-agreements --accept-package-agreements 2>>$LogFile
71
+ } elseif ($HasChoco) {
72
+ choco install dotnet-sdk -y 2>>$LogFile
73
+ } elseif ($HasScoop) {
74
+ scoop install dotnet-sdk 2>>$LogFile
75
+ } else {
76
+ Fail "Cannot auto-install .NET SDK. Download from: https://dotnet.microsoft.com/download"
77
+ Fail "After installing, restart PowerShell and re-run this script."
78
+ exit 1
79
+ }
80
+
81
+ # Refresh PATH
82
+ $env:Path = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "User")
83
+
84
+ if (Get-Command dotnet -ErrorAction SilentlyContinue) {
85
+ Log "dotnet $(dotnet --version) installed"
86
+ } else {
87
+ Fail "dotnet installation failed. Restart PowerShell and retry, or install manually."
88
+ exit 1
89
+ }
90
+ }
91
+
92
+ # --- Pandoc (Optional) ---
93
+ if (-not $Minimal) {
94
+ Step "Checking pandoc (optional: content preview)"
95
+
96
+ if (Get-Command pandoc -ErrorAction SilentlyContinue) {
97
+ $pandocVer = (pandoc --version | Select-Object -First 1) -replace '.*?(\d+\.\d+(\.\d+)?)', '$1'
98
+ Log "pandoc $pandocVer already installed"
99
+ } else {
100
+ Info "Installing pandoc..."
101
+ if ($HasWinget) { winget install JohnMacFarlane.Pandoc --accept-source-agreements 2>>$LogFile }
102
+ elseif ($HasChoco) { choco install pandoc -y 2>>$LogFile }
103
+ elseif ($HasScoop) { scoop install pandoc 2>>$LogFile }
104
+ else { Warn "Install pandoc manually: https://pandoc.org/installing.html" }
105
+
106
+ $env:Path = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "User")
107
+
108
+ if (Get-Command pandoc -ErrorAction SilentlyContinue) {
109
+ Log "pandoc installed"
110
+ } else {
111
+ Warn "pandoc not found after install (optional, will degrade gracefully)"
112
+ }
113
+ }
114
+ }
115
+
116
+ # --- LibreOffice (Optional) ---
117
+ if (-not $Minimal) {
118
+ Step "Checking LibreOffice/soffice (optional: .doc conversion)"
119
+
120
+ $sofficeFound = $false
121
+
122
+ # Check common Windows install paths
123
+ $sofficePaths = @(
124
+ "C:\Program Files\LibreOffice\program\soffice.exe",
125
+ "C:\Program Files (x86)\LibreOffice\program\soffice.exe",
126
+ "${env:LOCALAPPDATA}\Programs\LibreOffice\program\soffice.exe"
127
+ )
128
+
129
+ if (Get-Command soffice -ErrorAction SilentlyContinue) {
130
+ Log "soffice found in PATH"
131
+ $sofficeFound = $true
132
+ } else {
133
+ foreach ($p in $sofficePaths) {
134
+ if (Test-Path $p) {
135
+ Log "soffice found at: $p"
136
+ Info "Tip: Add to PATH: `$env:Path += ';$(Split-Path $p)'"
137
+ $sofficeFound = $true
138
+ break
139
+ }
140
+ }
141
+ }
142
+
143
+ if (-not $sofficeFound) {
144
+ Info "Installing LibreOffice (this may take a while)..."
145
+ if ($HasWinget) { winget install TheDocumentFoundation.LibreOffice --accept-source-agreements 2>>$LogFile }
146
+ elseif ($HasChoco) { choco install libreoffice-fresh -y 2>>$LogFile }
147
+ else { Warn "Install LibreOffice manually: https://www.libreoffice.org/download/" }
148
+ }
149
+ }
150
+
151
+ # --- NuGet Configuration ---
152
+ Step "Checking NuGet configuration"
153
+
154
+ $nugetSources = & dotnet nuget list source 2>$null
155
+ if ($nugetSources -match "nuget.org") {
156
+ Log "nuget.org source is configured"
157
+ } else {
158
+ Warn "nuget.org not in sources. Adding..."
159
+ & dotnet nuget add source "https://api.nuget.org/v3/index.json" --name "nuget.org" 2>>$LogFile
160
+ }
161
+
162
+ # --- Encoding Check ---
163
+ Step "Checking console encoding"
164
+
165
+ $currentEncoding = [Console]::OutputEncoding.EncodingName
166
+ if ($currentEncoding -match "UTF-8|Unicode") {
167
+ Log "Console encoding: $currentEncoding (UTF-8 compatible)"
168
+ } else {
169
+ Warn "Console encoding: $currentEncoding (may cause issues with CJK text)"
170
+ Info "To fix: [Console]::OutputEncoding = [System.Text.Encoding]::UTF8"
171
+ Info "Or set system-wide: Settings > Time & Language > Language > Administrative > Change system locale > Beta: UTF-8"
172
+ # Apply for this session
173
+ [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
174
+ Log "Set UTF-8 encoding for this session"
175
+ }
176
+
177
+ # --- Font Check ---
178
+ if (-not $Minimal) {
179
+ Step "Checking fonts"
180
+
181
+ $fonts = [System.Drawing.FontFamily]::Families 2>$null
182
+ if ($fonts) {
183
+ $fontNames = $fonts | ForEach-Object { $_.Name }
184
+ $hasCalibri = $fontNames -contains "Calibri"
185
+ $hasTimes = $fontNames -contains "Times New Roman"
186
+ $hasCJK = ($fontNames | Where-Object { $_ -match "SimSun|Microsoft YaHei|MS Mincho|Malgun Gothic" }).Count -gt 0
187
+
188
+ if ($hasCalibri) { Log "Western fonts: Calibri found" } else { Warn "Calibri not found (install Microsoft Office or fonts)" }
189
+ if ($hasTimes) { Log "Western fonts: Times New Roman found" } else { Warn "Times New Roman not found" }
190
+ if ($hasCJK) { Log "CJK fonts: available" } else { Warn "CJK fonts not found (install language packs for Chinese/Japanese/Korean)" }
191
+ } else {
192
+ Info "Cannot enumerate fonts (System.Drawing not loaded). Skipping font check."
193
+ }
194
+ }
195
+
196
+ # --- Build Project ---
197
+ Step "Building minimax-docx .NET project"
198
+
199
+ if (-not (Test-Path $DotnetDir)) {
200
+ Fail "Dotnet project directory not found: $DotnetDir"
201
+ exit 1
202
+ }
203
+
204
+ Push-Location $DotnetDir
205
+
206
+ Info "Restoring NuGet packages..."
207
+ $restoreResult = & dotnet restore --verbosity quiet 2>&1
208
+ if ($LASTEXITCODE -ne 0) {
209
+ Fail "NuGet restore failed:"
210
+ $restoreResult | ForEach-Object { Fail " $_" }
211
+ Fail "Common causes:"
212
+ Fail " - No internet (NuGet needs to download packages)"
213
+ Fail " - Corporate proxy/firewall blocking nuget.org"
214
+ Fail " - Insufficient disk space"
215
+ Fail "Try: dotnet restore --verbosity detailed"
216
+ Pop-Location
217
+ exit 1
218
+ }
219
+ Log "NuGet packages restored"
220
+
221
+ Info "Building project..."
222
+ $buildResult = & dotnet build --verbosity quiet --no-restore 2>&1
223
+ if ($LASTEXITCODE -ne 0) {
224
+ Fail "Build failed:"
225
+ $buildResult | ForEach-Object { Fail " $_" }
226
+ Pop-Location
227
+ exit 1
228
+ }
229
+ Log "Project built successfully"
230
+
231
+ Pop-Location
232
+
233
+ # --- Verification ---
234
+ if (-not $SkipVerify) {
235
+ Step "Verification Test"
236
+
237
+ $testOutput = Join-Path $env:TEMP "minimax-docx-setup-test-$PID.docx"
238
+
239
+ Info "Creating a test document..."
240
+ Push-Location $DotnetDir
241
+ $testResult = & dotnet run --project MiniMaxAIDocx.Cli -- create --type report --output $testOutput --title "Setup Test" 2>&1
242
+ $testExitCode = $LASTEXITCODE
243
+ Pop-Location
244
+
245
+ if ($testExitCode -eq 0 -and (Test-Path $testOutput)) {
246
+ Log "Test document created: $testOutput"
247
+
248
+ if (Get-Command pandoc -ErrorAction SilentlyContinue) {
249
+ $preview = & pandoc -f docx -t plain $testOutput 2>$null | Select-Object -First 3
250
+ if ($preview) { Log "Preview working: `"$($preview -join ' ')`"" }
251
+ }
252
+
253
+ Remove-Item $testOutput -Force
254
+ Log "Test passed - minimax-docx is ready to use!"
255
+ } else {
256
+ Fail "Test document creation failed. Output:"
257
+ $testResult | ForEach-Object { Fail " $_" }
258
+ }
259
+ }
260
+
261
+ # --- Summary ---
262
+ Step "Setup Complete"
263
+
264
+ Write-Host ""
265
+ Write-Host " Environment: Windows $([System.Environment]::OSVersion.Version)"
266
+ Write-Host " .NET SDK: $(dotnet --version 2>$null)"
267
+ $pandocInfo = if (Get-Command pandoc -ErrorAction SilentlyContinue) { pandoc --version | Select-Object -First 1 } else { "not installed (optional)" }
268
+ Write-Host " pandoc: $pandocInfo"
269
+ Write-Host " Project: $DotnetDir"
270
+ Write-Host ""
271
+ Write-Host " Usage:"
272
+ Write-Host " dotnet run --project $DotnetDir\MiniMaxAIDocx.Cli -- create --type report --output my_report.docx"
273
+ Write-Host ""
274
+ Write-Host " Log file: $LogFile"