@nguyenphp/antigravity-marketing 1.0.18 → 1.0.19

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 (127) hide show
  1. package/README.md +186 -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
@@ -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"