@optima-chat/optima-agent 0.9.13 → 0.9.15

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 (92) hide show
  1. package/.claude/skills/.kb-skills-managed.json +9 -9
  2. package/.claude/skills/ads/SKILL.md +244 -244
  3. package/.claude/skills/ads/template/campaign/CREATIVES.md +18 -18
  4. package/.claude/skills/ads/template/campaign/NOTES.md +10 -10
  5. package/.claude/skills/ads/template/campaign/STRATEGY.md +29 -29
  6. package/.claude/skills/ads/template/user/ADS.md +29 -29
  7. package/.claude/skills/ads/template/user/LEARNINGS.md +15 -15
  8. package/.claude/skills/ads/template/user/PROGRESS.md +20 -20
  9. package/.claude/skills/ads/template/user/README.md +25 -25
  10. package/.claude/skills/ads/template/user/assets/.gitignore +2 -2
  11. package/.claude/skills/bi/SKILL.md +131 -131
  12. package/.claude/skills/browser/SKILL.md +201 -201
  13. package/.claude/skills/channels/SKILL.md +188 -188
  14. package/.claude/skills/collection/SKILL.md +88 -88
  15. package/.claude/skills/douyin/SKILL.md +408 -408
  16. package/.claude/skills/ffmpeg/SKILL.md +164 -164
  17. package/.claude/skills/gen/SKILL.md +327 -279
  18. package/.claude/skills/growth/SKILL.md +90 -90
  19. package/.claude/skills/growth/template/ACCOUNTS.md +14 -14
  20. package/.claude/skills/growth/template/CALENDAR.md +7 -7
  21. package/.claude/skills/growth/template/COMMENTS.md +7 -7
  22. package/.claude/skills/growth/template/GROWTH.md +37 -37
  23. package/.claude/skills/growth/template/PROGRESS.md +4 -4
  24. package/.claude/skills/growth/template/README.md +20 -20
  25. package/.claude/skills/growth/template/TOPICS.md +7 -7
  26. package/.claude/skills/homepage/SKILL.md +177 -177
  27. package/.claude/skills/i18n/SKILL.md +517 -517
  28. package/.claude/skills/ingesting-sources/SKILL.md +94 -94
  29. package/.claude/skills/initializing-kb/SKILL.md +117 -117
  30. package/.claude/skills/instagram/SKILL.md +321 -321
  31. package/.claude/skills/inventory/SKILL.md +328 -328
  32. package/.claude/skills/kol-outreach/SKILL.md +232 -232
  33. package/.claude/skills/kol-outreach/template/campaign/CONFIG.md +60 -60
  34. package/.claude/skills/kol-outreach/template/campaign/KOLS.md +6 -6
  35. package/.claude/skills/kol-outreach/template/campaign/PROGRESS.md +3 -3
  36. package/.claude/skills/kol-outreach/template/campaign/TEMPLATES.md +88 -88
  37. package/.claude/skills/kol-outreach/template/merchant/BRAND.md +36 -36
  38. package/.claude/skills/kol-outreach/template/merchant/CAMPAIGNS.md +6 -6
  39. package/.claude/skills/kol-outreach/template/merchant/MERCHANT_LIMITS.md +16 -16
  40. package/.claude/skills/kol-outreach/template/merchant/PROGRESS.md +4 -4
  41. package/.claude/skills/kol-outreach/template/merchant/README.md +20 -20
  42. package/.claude/skills/linting-the-wiki/SKILL.md +68 -68
  43. package/.claude/skills/logistics/SKILL.md +180 -180
  44. package/.claude/skills/markdown-pdf/SKILL.md +72 -72
  45. package/.claude/skills/merchant/SKILL.md +110 -110
  46. package/.claude/skills/multigrid-poster/SKILL.md +192 -192
  47. package/.claude/skills/multigrid-poster/layouts/2x2.json +34 -34
  48. package/.claude/skills/multigrid-poster/layouts/3x3.json +43 -43
  49. package/.claude/skills/multigrid-poster/scripts/compose.py +116 -116
  50. package/.claude/skills/order/SKILL.md +452 -452
  51. package/.claude/skills/product/SKILL.md +379 -379
  52. package/.claude/skills/product-page/SKILL.md +106 -106
  53. package/.claude/skills/querying-the-wiki/SKILL.md +59 -59
  54. package/.claude/skills/reddit/SKILL.md +277 -277
  55. package/.claude/skills/review/SKILL.md +321 -321
  56. package/.claude/skills/scout/SKILL.md +575 -575
  57. package/.claude/skills/sentinel/SKILL.md +281 -281
  58. package/.claude/skills/shein/SKILL.md +246 -246
  59. package/.claude/skills/shipping/SKILL.md +200 -200
  60. package/.claude/skills/shop-content/SKILL.md +101 -101
  61. package/.claude/skills/shopify/SKILL.md +282 -282
  62. package/.claude/skills/skillify/SKILL.md +114 -114
  63. package/.claude/skills/taobao/SKILL.md +238 -238
  64. package/.claude/skills/tiktok/SKILL.md +381 -381
  65. package/.claude/skills/twitter/SKILL.md +302 -302
  66. package/.claude/skills/updating-related-pages/SKILL.md +65 -65
  67. package/.claude/skills/video-edit/SKILL.md +123 -138
  68. package/.claude/skills/video-gen/SKILL.md +720 -720
  69. package/.claude/skills/video-gen/templates/INDEX.md +78 -78
  70. package/.claude/skills/video-gen/templates/before-after-beauty.md +183 -183
  71. package/.claude/skills/video-gen/templates/drama-fmcg.md +183 -183
  72. package/.claude/skills/video-gen/templates/kol-reaction-food.md +193 -193
  73. package/.claude/skills/video-gen/templates/multi-point-apparel.md +185 -185
  74. package/.claude/skills/video-gen/templates/pain-solution-home.md +184 -184
  75. package/.claude/skills/video-gen/templates/pdp-360-showcase.md +189 -189
  76. package/.claude/skills/video-gen/templates/pdp-feature-highlight.md +182 -182
  77. package/.claude/skills/video-gen/templates/scene-digital.md +183 -183
  78. package/.claude/skills/wechat/SKILL.md +174 -174
  79. package/.claude/skills/xhs/SKILL.md +170 -170
  80. package/README.md +276 -276
  81. package/dist/bin/optima.js +26 -26
  82. package/dist/bin/serve.js +23 -23
  83. package/dist/src/agent.d.ts +1 -1
  84. package/dist/src/agent.js +4 -4
  85. package/dist/src/system-prompt.js +175 -175
  86. package/dist/src/tools/memory.js +10 -10
  87. package/dist/src/ui/headless.js +7 -7
  88. package/package.json +79 -79
  89. package/dist/bin/video-edit.d.ts +0 -3
  90. package/dist/bin/video-edit.d.ts.map +0 -1
  91. package/dist/bin/video-edit.js +0 -153
  92. package/dist/bin/video-edit.js.map +0 -1
@@ -1,153 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * video-edit CLI — TS 薄壳,透传到 Python 实现(tools/video-edit/video_edit.py)。
4
- *
5
- * 调用:pnpm video-edit <subcommand> <video-path>
6
- * 子命令:analyze / cut / review / subtitle / both / doctor
7
- */
8
- import { spawnSync } from "node:child_process";
9
- import { existsSync } from "node:fs";
10
- import { resolve, dirname, join, sep } from "node:path";
11
- import { fileURLToPath } from "node:url";
12
- import { parseArgs } from "node:util";
13
- const __filename = fileURLToPath(import.meta.url);
14
- const __dirname = dirname(__filename);
15
- /**
16
- * 两种布局:
17
- * 开发: <repo>/bin/video-edit.ts → PACKAGE_ROOT = <repo>
18
- * 已安装:<pkg>/dist/bin/video-edit.js → PACKAGE_ROOT = <pkg>
19
- * tools/ 在 PACKAGE_ROOT 下(npm 发布时通过 files: ["tools"] 带出来)。
20
- */
21
- const PACKAGE_ROOT = __dirname.includes(`${sep}dist${sep}bin`)
22
- ? resolve(__dirname, "..", "..")
23
- : resolve(__dirname, "..");
24
- const PY_SCRIPT = join(PACKAGE_ROOT, "tools", "video-edit", "video_edit.py");
25
- const REQUIREMENTS = join(PACKAGE_ROOT, "tools", "video-edit", "requirements.txt");
26
- const SUBCOMMANDS = ["analyze", "cut", "review", "subtitle", "both", "doctor"];
27
- function printHelp() {
28
- console.log(`
29
- video-edit - 口播/vlog 视频智能剪辑 CLI
30
-
31
- 用法:
32
- pnpm video-edit <subcommand> <video-path>
33
-
34
- 子命令:
35
- analyze <video> 转写 + 静音检测 → cut_proposal.md
36
- cut <video> 读 proposal 出成片 → <stem>_edited.mp4
37
- review <video> 声学质检 → review_report.md
38
- subtitle <video> 自动字幕 → <stem>_subbed.mp4
39
- both <video> analyze + cut(跳过人工编辑 proposal)
40
- doctor 检查依赖(python / ffmpeg / faster-whisper)
41
-
42
- 示例:
43
- pnpm video-edit analyze ~/vids/demo.mp4
44
- pnpm video-edit doctor
45
-
46
- 详细 SOP 见 .claude/skills/editing-vlog-videos/SKILL.md
47
- `);
48
- }
49
- function whichPython() {
50
- for (const cmd of ["python", "python3"]) {
51
- const r = spawnSync(cmd, ["--version"], { encoding: "utf-8" });
52
- if (r.status === 0)
53
- return cmd;
54
- }
55
- return null;
56
- }
57
- function doctor() {
58
- console.log("=== video-edit doctor ===");
59
- let ok = true;
60
- // Python
61
- const py = whichPython();
62
- if (py) {
63
- const ver = spawnSync(py, ["--version"], { encoding: "utf-8" });
64
- console.log(`[OK] python: ${ver.stdout.trim() || ver.stderr.trim()}`);
65
- }
66
- else {
67
- console.log("[FAIL] python: 未找到,请安装 Python 3.10+");
68
- ok = false;
69
- }
70
- // ffmpeg
71
- const ffmpeg = spawnSync("ffmpeg", ["-version"], { encoding: "utf-8" });
72
- if (ffmpeg.status === 0) {
73
- console.log(`[OK] ffmpeg: ${ffmpeg.stdout.split("\n")[0]}`);
74
- }
75
- else {
76
- console.log("[FAIL] ffmpeg: 未找到,请按 OS 安装(winget / brew / apt)");
77
- ok = false;
78
- }
79
- // faster-whisper
80
- if (py) {
81
- const fw = spawnSync(py, ["-c", "import faster_whisper; print(faster_whisper.__version__)"], { encoding: "utf-8" });
82
- if (fw.status === 0) {
83
- console.log(`[OK] faster-whisper: ${fw.stdout.trim()}`);
84
- }
85
- else {
86
- console.log(`[FAIL] faster-whisper 未安装。请运行:pip install -r ${REQUIREMENTS}`);
87
- ok = false;
88
- }
89
- }
90
- // PY_SCRIPT
91
- if (existsSync(PY_SCRIPT)) {
92
- console.log(`[OK] ${PY_SCRIPT}`);
93
- }
94
- else {
95
- console.log(`[FAIL] Python 实现脚本缺失: ${PY_SCRIPT}`);
96
- ok = false;
97
- }
98
- console.log(ok ? "\n[OK] 全部就绪" : "\n[FAIL] 有依赖缺失,按上述提示修复");
99
- return ok ? 0 : 1;
100
- }
101
- function spawnPython(sub, videoPath) {
102
- const py = whichPython();
103
- if (!py) {
104
- console.error("python 未找到,请装 Python 3.10+ 或跑 `pnpm video-edit doctor` 查依赖");
105
- return 127;
106
- }
107
- if (!existsSync(PY_SCRIPT)) {
108
- console.error(`Python 实现脚本缺失: ${PY_SCRIPT}`);
109
- return 1;
110
- }
111
- const absVideo = resolve(videoPath);
112
- const r = spawnSync(py, [PY_SCRIPT, sub, absVideo], {
113
- stdio: "inherit",
114
- env: { ...process.env, PYTHONIOENCODING: "utf-8" },
115
- });
116
- return r.status ?? 1;
117
- }
118
- function main() {
119
- const { positionals, values } = parseArgs({
120
- args: process.argv.slice(2),
121
- options: {
122
- help: { type: "boolean", short: "h" },
123
- },
124
- allowPositionals: true,
125
- strict: false,
126
- });
127
- if (values.help || positionals.length === 0) {
128
- printHelp();
129
- return 0;
130
- }
131
- const sub = positionals[0];
132
- if (!SUBCOMMANDS.includes(sub)) {
133
- console.error(`未知子命令: ${sub}`);
134
- printHelp();
135
- return 2;
136
- }
137
- if (sub === "doctor") {
138
- return doctor();
139
- }
140
- const video = positionals[1];
141
- if (!video) {
142
- console.error(`${sub} 需要视频路径参数`);
143
- printHelp();
144
- return 2;
145
- }
146
- if (!existsSync(video)) {
147
- console.error(`视频文件不存在: ${video}`);
148
- return 1;
149
- }
150
- return spawnPython(sub, video);
151
- }
152
- process.exit(main());
153
- //# sourceMappingURL=video-edit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"video-edit.js","sourceRoot":"","sources":["../../bin/video-edit.ts"],"names":[],"mappings":"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"}