@astro-minimax/cli 0.5.0 → 0.7.1

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 (174) hide show
  1. package/README.md +69 -0
  2. package/dist/commands/ai.d.ts +2 -0
  3. package/dist/commands/ai.d.ts.map +1 -0
  4. package/dist/commands/ai.js +99 -0
  5. package/dist/commands/ai.js.map +1 -0
  6. package/dist/commands/data.d.ts +2 -0
  7. package/dist/commands/data.d.ts.map +1 -0
  8. package/dist/commands/data.js +111 -0
  9. package/dist/commands/data.js.map +1 -0
  10. package/dist/commands/hooks.d.ts +2 -0
  11. package/dist/commands/hooks.d.ts.map +1 -0
  12. package/dist/commands/hooks.js +378 -0
  13. package/dist/commands/hooks.js.map +1 -0
  14. package/dist/commands/init.d.ts +2 -0
  15. package/dist/commands/init.d.ts.map +1 -0
  16. package/dist/commands/init.js +50 -0
  17. package/dist/commands/init.js.map +1 -0
  18. package/dist/commands/podcast.d.ts +2 -0
  19. package/dist/commands/podcast.d.ts.map +1 -0
  20. package/dist/commands/podcast.js +89 -0
  21. package/dist/commands/podcast.js.map +1 -0
  22. package/dist/commands/post.d.ts +2 -0
  23. package/dist/commands/post.d.ts.map +1 -0
  24. package/dist/commands/post.js +190 -0
  25. package/dist/commands/post.js.map +1 -0
  26. package/dist/commands/profile.d.ts +2 -0
  27. package/dist/commands/profile.d.ts.map +1 -0
  28. package/dist/commands/profile.js +88 -0
  29. package/dist/commands/profile.js.map +1 -0
  30. package/dist/index.d.ts +3 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +81 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/tools/ai-process.d.ts +20 -0
  35. package/dist/tools/ai-process.d.ts.map +1 -0
  36. package/dist/tools/ai-process.js +607 -0
  37. package/dist/tools/ai-process.js.map +1 -0
  38. package/dist/tools/build-author-context.d.ts +13 -0
  39. package/dist/tools/build-author-context.d.ts.map +1 -0
  40. package/dist/tools/build-author-context.js +313 -0
  41. package/dist/tools/build-author-context.js.map +1 -0
  42. package/dist/tools/build-voice-profile.d.ts +12 -0
  43. package/dist/tools/build-voice-profile.d.ts.map +1 -0
  44. package/dist/tools/build-voice-profile.js +270 -0
  45. package/dist/tools/build-voice-profile.js.map +1 -0
  46. package/dist/tools/eval-ai-chat.d.ts +17 -0
  47. package/dist/tools/eval-ai-chat.d.ts.map +1 -0
  48. package/dist/tools/eval-ai-chat.js +362 -0
  49. package/dist/tools/eval-ai-chat.js.map +1 -0
  50. package/dist/tools/generate-author-profile.d.ts +14 -0
  51. package/dist/tools/generate-author-profile.d.ts.map +1 -0
  52. package/dist/tools/generate-author-profile.js +289 -0
  53. package/dist/tools/generate-author-profile.js.map +1 -0
  54. package/dist/tools/generate-cover.d.ts +14 -0
  55. package/dist/tools/generate-cover.d.ts.map +1 -0
  56. package/dist/tools/generate-cover.js +95 -0
  57. package/dist/tools/generate-cover.js.map +1 -0
  58. package/dist/tools/generate-og.d.ts +3 -0
  59. package/dist/tools/generate-og.d.ts.map +1 -0
  60. package/dist/tools/generate-og.js +254 -0
  61. package/dist/tools/generate-og.js.map +1 -0
  62. package/dist/tools/generate-related.d.ts +11 -0
  63. package/dist/tools/generate-related.d.ts.map +1 -0
  64. package/dist/tools/generate-related.js +124 -0
  65. package/dist/tools/generate-related.js.map +1 -0
  66. package/dist/tools/generate-tags.d.ts +14 -0
  67. package/dist/tools/generate-tags.d.ts.map +1 -0
  68. package/dist/tools/generate-tags.js +182 -0
  69. package/dist/tools/generate-tags.js.map +1 -0
  70. package/dist/tools/lib/ai-provider.d.ts +43 -0
  71. package/dist/tools/lib/ai-provider.d.ts.map +1 -0
  72. package/dist/tools/lib/ai-provider.js +146 -0
  73. package/dist/tools/lib/ai-provider.js.map +1 -0
  74. package/dist/tools/lib/audio-processor.d.ts +46 -0
  75. package/dist/tools/lib/audio-processor.d.ts.map +1 -0
  76. package/dist/tools/lib/audio-processor.js +188 -0
  77. package/dist/tools/lib/audio-processor.js.map +1 -0
  78. package/dist/tools/lib/frontmatter.d.ts +11 -0
  79. package/dist/tools/lib/frontmatter.d.ts.map +1 -0
  80. package/dist/tools/lib/frontmatter.js +80 -0
  81. package/dist/tools/lib/frontmatter.js.map +1 -0
  82. package/dist/tools/lib/index.d.ts +7 -0
  83. package/dist/tools/lib/index.d.ts.map +1 -0
  84. package/{template/tools/lib/index.ts → dist/tools/lib/index.js} +1 -0
  85. package/dist/tools/lib/index.js.map +1 -0
  86. package/dist/tools/lib/markdown.d.ts +6 -0
  87. package/dist/tools/lib/markdown.d.ts.map +1 -0
  88. package/dist/tools/lib/markdown.js +34 -0
  89. package/dist/tools/lib/markdown.js.map +1 -0
  90. package/dist/tools/lib/posts.d.ts +25 -0
  91. package/dist/tools/lib/posts.d.ts.map +1 -0
  92. package/dist/tools/lib/posts.js +63 -0
  93. package/dist/tools/lib/posts.js.map +1 -0
  94. package/dist/tools/lib/script-generator.d.ts +61 -0
  95. package/dist/tools/lib/script-generator.d.ts.map +1 -0
  96. package/dist/tools/lib/script-generator.js +182 -0
  97. package/dist/tools/lib/script-generator.js.map +1 -0
  98. package/dist/tools/lib/tts-provider.d.ts +65 -0
  99. package/dist/tools/lib/tts-provider.d.ts.map +1 -0
  100. package/dist/tools/lib/tts-provider.js +116 -0
  101. package/dist/tools/lib/tts-provider.js.map +1 -0
  102. package/dist/tools/lib/types.d.ts +129 -0
  103. package/dist/tools/lib/types.d.ts.map +1 -0
  104. package/dist/tools/lib/types.js +64 -0
  105. package/dist/tools/lib/types.js.map +1 -0
  106. package/dist/tools/lib/utils.d.ts +18 -0
  107. package/dist/tools/lib/utils.d.ts.map +1 -0
  108. package/dist/tools/lib/utils.js +121 -0
  109. package/dist/tools/lib/utils.js.map +1 -0
  110. package/dist/tools/lib/vectors.d.ts +27 -0
  111. package/dist/tools/lib/vectors.d.ts.map +1 -0
  112. package/dist/tools/lib/vectors.js +64 -0
  113. package/dist/tools/lib/vectors.js.map +1 -0
  114. package/dist/tools/podcast-feed.d.ts +6 -0
  115. package/dist/tools/podcast-feed.d.ts.map +1 -0
  116. package/dist/tools/podcast-feed.js +121 -0
  117. package/dist/tools/podcast-feed.js.map +1 -0
  118. package/dist/tools/podcast-generate.d.ts +15 -0
  119. package/dist/tools/podcast-generate.d.ts.map +1 -0
  120. package/dist/tools/podcast-generate.js +318 -0
  121. package/dist/tools/podcast-generate.js.map +1 -0
  122. package/dist/tools/podcast-list.d.ts +6 -0
  123. package/dist/tools/podcast-list.d.ts.map +1 -0
  124. package/dist/tools/podcast-list.js +66 -0
  125. package/dist/tools/podcast-list.js.map +1 -0
  126. package/dist/tools/summarize.d.ts +16 -0
  127. package/dist/tools/summarize.d.ts.map +1 -0
  128. package/dist/tools/summarize.js +108 -0
  129. package/dist/tools/summarize.js.map +1 -0
  130. package/dist/tools/translate.d.ts +13 -0
  131. package/dist/tools/translate.d.ts.map +1 -0
  132. package/dist/tools/translate.js +46 -0
  133. package/dist/tools/translate.js.map +1 -0
  134. package/dist/tools/vectorize.d.ts +13 -0
  135. package/dist/tools/vectorize.d.ts.map +1 -0
  136. package/dist/tools/vectorize.js +87 -0
  137. package/dist/tools/vectorize.js.map +1 -0
  138. package/package.json +14 -9
  139. package/template/astro.config.ts +8 -28
  140. package/template/datas/ai-seo.json +8 -0
  141. package/template/datas/ai-skip-list.json +1 -0
  142. package/template/datas/author-profile-context.json +21 -0
  143. package/template/datas/author-profile-report.json +21 -0
  144. package/template/datas/eval/gold-set.json +72 -0
  145. package/template/functions/README.md +82 -0
  146. package/template/functions/api/ai-info.ts +2 -2
  147. package/template/functions/api/chat.ts +4 -1
  148. package/template/functions/api/notify/comment.ts +140 -68
  149. package/template/functions/api/notify/debug.ts +41 -0
  150. package/template/functions/api/notify/status.ts +97 -0
  151. package/template/functions/api/notify/test-ai-chat.ts +67 -0
  152. package/template/package.json +22 -25
  153. package/template/src/config.ts +11 -0
  154. package/template/src/content.config.ts +29 -16
  155. package/template/src/env.d.ts +0 -5
  156. package/index.js +0 -36
  157. package/template/tools/README.md +0 -169
  158. package/template/tools/ai-process.ts +0 -816
  159. package/template/tools/build-author-context.ts +0 -405
  160. package/template/tools/build-voice-profile.ts +0 -322
  161. package/template/tools/generate-author-profile.ts +0 -369
  162. package/template/tools/generate-cover.ts +0 -123
  163. package/template/tools/generate-og.ts +0 -280
  164. package/template/tools/generate-related.ts +0 -146
  165. package/template/tools/generate-tags.ts +0 -251
  166. package/template/tools/lib/ai-provider.ts +0 -240
  167. package/template/tools/lib/frontmatter.ts +0 -94
  168. package/template/tools/lib/markdown.ts +0 -40
  169. package/template/tools/lib/posts.ts +0 -89
  170. package/template/tools/lib/utils.ts +0 -138
  171. package/template/tools/lib/vectors.ts +0 -96
  172. package/template/tools/summarize.ts +0 -142
  173. package/template/tools/translate.ts +0 -60
  174. package/template/tools/vectorize.ts +0 -105
@@ -1,169 +0,0 @@
1
- # AI 数据构建工具
2
-
3
- 本目录包含用于博客内容处理和 AI 功能数据构建的工具脚本。
4
-
5
- ## 环境配置
6
-
7
- 在 `.env` 文件中配置以下环境变量:
8
-
9
- ```bash
10
- # AI API 配置(必需,用于 AI 相关脚本)
11
- AI_API_KEY=your_api_key
12
- AI_BASE_URL=https://api.openai.com # 或其他 OpenAI 兼容 API
13
- AI_MODEL=gpt-4o-mini # 模型名称
14
-
15
- # 站点配置(可选)
16
- SITE_URL=https://your-domain.com
17
- SITE_AUTHOR=博主名称
18
- SITE_DESCRIPTION=站点描述
19
- ```
20
-
21
- ## 脚本列表
22
-
23
- ### 内容处理
24
-
25
- | 脚本 | 命令 | 说明 |
26
- |------|------|------|
27
- | `ai-process.ts` | `pnpm ai:process` | AI 文章批处理(摘要、SEO) |
28
- | `summarize.ts` | `pnpm tools:summarize` | 生成文章摘要 |
29
- | `generate-related.ts` | `pnpm tools:generate-related` | 生成相关文章 |
30
- | `generate-tags.ts` | `pnpm tools:tags` | 生成文章标签 |
31
- | `translate.ts` | `pnpm tools:translate` | 文章翻译 |
32
- | `vectorize.ts` | `pnpm tools:vectorize` | 生成文章向量 |
33
- | `generate-cover.ts` | `pnpm tools:cover` | 生成文章封面 |
34
- | `generate-og.ts` | `pnpm og` | 生成 OG 图片 |
35
-
36
- ### AI 分身数据构建
37
-
38
- | 脚本 | 命令 | 说明 |
39
- |------|------|------|
40
- | `build-author-context.ts` | `pnpm context:build` | 构建作者上下文数据 |
41
- | `build-voice-profile.ts` | `pnpm voice:build` | 构建表达风格画像 |
42
- | `generate-author-profile.ts` | `pnpm profile:generate` | 生成作者画像报告 |
43
-
44
- ## 详细说明
45
-
46
- ### ai-process.ts — AI 文章批处理
47
-
48
- 为文章生成 AI 摘要和 SEO 元数据。
49
-
50
- ```bash
51
- # 处理所有文章
52
- pnpm ai:process
53
-
54
- # 只处理中文文章
55
- pnpm ai:process --lang=zh
56
-
57
- # 只处理指定文章
58
- pnpm ai:process --slug=zh/getting-started
59
-
60
- # 只生成摘要
61
- pnpm ai:process --task=summary
62
-
63
- # 预览模式
64
- pnpm ai:process --dry-run
65
-
66
- # 强制重新处理
67
- pnpm ai:process --force
68
-
69
- # 清空跳过列表后重试
70
- pnpm ai:process --clear-skip
71
- ```
72
-
73
- **输出文件**:
74
- - `datas/ai-summaries.json` — 文章摘要数据
75
- - `datas/ai-seo.json` — SEO 元数据
76
- - `datas/ai-skip-list.json` — 失败文章跳过列表
77
-
78
- ### build-author-context.ts — 构建作者上下文
79
-
80
- 聚合博客文章数据,为 AI 分身对话提供上下文。
81
-
82
- ```bash
83
- pnpm context:build
84
- ```
85
-
86
- **输出文件**:
87
- - `datas/author-context.json` — 作者上下文数据
88
- - `datas/sources/blog-digest.json` — 文章摘要
89
-
90
- ### build-voice-profile.ts — 构建表达风格画像
91
-
92
- 从博客标题、正文中提取作者的表达风格特征。纯本地分析,不调用 AI。
93
-
94
- ```bash
95
- pnpm voice:build
96
- ```
97
-
98
- **输出文件**:
99
- - `datas/voice-profile.json` — 表达风格画像
100
-
101
- ### generate-author-profile.ts — 生成作者画像报告
102
-
103
- 基于上下文数据生成用于 About 页面的结构化简介。
104
-
105
- ```bash
106
- # AI 生成(需要配置 AI API)
107
- pnpm profile:generate
108
-
109
- # 使用规则模板(不需要 AI)
110
- pnpm profile:generate --no-ai
111
- ```
112
-
113
- **输出文件**:
114
- - `datas/author-profile-report.json` — 画像报告
115
- - `datas/author-profile-context.json` — 生成上下文
116
-
117
- ## 输出目录结构
118
-
119
- ```
120
- datas/
121
- ├── ai-summaries.json # AI 生成的文章摘要
122
- ├── ai-seo.json # AI 生成的 SEO 数据
123
- ├── ai-skip-list.json # AI 处理失败的文章列表
124
- ├── author-context.json # 作者上下文(AI 分身使用)
125
- ├── author-profile-report.json # 作者画像报告
126
- ├── author-profile-context.json
127
- ├── voice-profile.json # 表达风格画像
128
- └── sources/
129
- └── blog-digest.json # 文章摘要数据
130
- ```
131
-
132
- ## 开发说明
133
-
134
- ### 共享模块
135
-
136
- - `lib/ai-provider.ts` — AI API 调用封装(支持代理)
137
- - `lib/utils.ts` — 通用工具函数
138
- - `lib/posts.ts` — 文章读取工具
139
- - `lib/frontmatter.ts` — Frontmatter 解析
140
- - `lib/markdown.ts` — Markdown 处理
141
-
142
- ### AI Provider 使用
143
-
144
- ```typescript
145
- import { chatCompletion, hasAPIKey, getConfig } from "./lib/ai-provider.js";
146
-
147
- if (hasAPIKey()) {
148
- const result = await chatCompletion([
149
- { role: "system", content: "系统提示" },
150
- { role: "user", content: "用户输入" },
151
- ], { maxTokens: 2000, responseFormat: "json" });
152
- }
153
- ```
154
-
155
- ### URL 策略
156
-
157
- 工具脚本生成的 URL 均为**相对路径**(如 `/zh/my-post`),不包含域名前缀。在 AI 对话运行时,`initializeMetadata()` 会根据 `SITE_URL` 环境变量动态拼接完整 URL。这使得生成的数据文件与部署环境无关。
158
-
159
- ### 数据文件与 AI 对话的关系
160
-
161
- `datas/` 目录中的 JSON 文件在运行时被 `@astro-minimax/ai/server` 的 `initializeMetadata()` 加载,用于构建搜索索引和系统提示词上下文。
162
-
163
- ### 代理支持
164
-
165
- 脚本自动支持 `HTTP_PROXY` / `HTTPS_PROXY` 环境变量,无需额外配置。
166
-
167
- ```bash
168
- export HTTPS_PROXY=http://127.0.0.1:7890
169
- ```