felo-ai 0.2.0 → 0.2.2

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.
package/docs/FAQ.md CHANGED
@@ -191,10 +191,10 @@ Use Felo to find [query]
191
191
 
192
192
  **A:** Yes! Fully supports multi-language queries.
193
193
 
194
- Ask in any language, get answers in that language. Even mixed-language queries work:
195
- - "React 在中国的使用情况"
196
- - "東京で中国語が通じる病院"
197
- - "Python vs Java 哪个更适合初学者?"
194
+ Ask in any language, get answers in that language. Even mixed-language queries work, for example:
195
+ - "React adoption in China"
196
+ - "Hospitals in Tokyo with Chinese-speaking staff"
197
+ - "Python vs Java for beginners?"
198
198
 
199
199
  ### Q: What's the response format?
200
200
 
@@ -112,8 +112,8 @@ You: What's the weather in Tokyo today?
112
112
  Claude: Currently 15°C in Tokyo with partly cloudy skies. High of 18°C,
113
113
  low of 12°C. 20% chance of rain.
114
114
 
115
- You: 杭州明天天气怎么样?
116
- Claude: 杭州明天多云转晴,气温 8-16°C,东北风 3-4 级。
115
+ You: What's the weather in Hangzhou tomorrow?
116
+ Claude: Hangzhou tomorrow: partly cloudy to clear, 8-16°C, NE wind 3-4.
117
117
  ```
118
118
 
119
119
  **Restaurants & Food**
@@ -124,11 +124,11 @@ Claude: Top 3 ramen shops in Osaka:
124
124
  2. Kamukura - Rich chicken broth, Michelin Bib Gourmand
125
125
  3. Menya Joroku - Tsukemen specialist
126
126
 
127
- You: 上海哪里有好吃的小笼包?
128
- Claude: 上海小笼包推荐:
129
- 1. 南翔馒头店 - 豫园老字号,皮薄汁多
130
- 2. 佳家汤包 - 黄河路网红店,性价比高
131
- 3. 鼎泰丰 - 台湾品牌,品质稳定
127
+ You: Where to find the best xiaolongbao in Shanghai?
128
+ Claude: Shanghai xiaolongbao recommendations:
129
+ 1. Nanxiang Steamed Bun - Old brand near Yuyuan, thin skin, juicy
130
+ 2. Jiajia Soup Dumplings - Popular on Huanghe Road, good value
131
+ 3. Din Tai Fung - Taiwan brand, consistent quality
132
132
  ```
133
133
 
134
134
  **Shopping & Prices**
@@ -139,11 +139,11 @@ Claude: iPhone 15 Pro (128GB) prices:
139
139
  - Amazon: $979 (save $20)
140
140
  - Best Buy: $999 (with trade-in deals)
141
141
 
142
- You: MacBook Air M3 多少钱?
143
- Claude: MacBook Air M3 (13 英寸) 价格:
144
- - 官网: ¥9,499 (256GB)
145
- - 京东: ¥9,299 (有优惠券)
146
- - 天猫: ¥9,399 (赠品多)
142
+ You: MacBook Air M3 price
143
+ Claude: MacBook Air M3 (13") prices:
144
+ - Apple: $1,099 (256GB)
145
+ - Amazon: $1,049 (with coupons)
146
+ - Best Buy: $1,079 (with perks)
147
147
  ```
148
148
 
149
149
  **Travel**
@@ -155,12 +155,12 @@ Claude: Kyoto weekend highlights:
155
155
  - Nishiki Market food tour (closes 6pm)
156
156
  - Gion district evening walk (geisha spotting)
157
157
 
158
- You: 台北有什么好玩的地方?
159
- Claude: 台北必去景点:
160
- - 台北 101 - 观景台看夜景
161
- - 故宫博物院 - 中华文物精品
162
- - 士林夜市 - 美食天堂
163
- - 九份老街 - 怀旧山城
158
+ You: What to do in Taipei?
159
+ Claude: Taipei must-sees:
160
+ - Taipei 101 - Observatory for night views
161
+ - National Palace Museum - Chinese art and artifacts
162
+ - Shilin Night Market - Food and snacks
163
+ - Jiufen Old Street - Nostalgic mountain town
164
164
  ```
165
165
 
166
166
  ### Developer Scenarios
@@ -174,12 +174,12 @@ Claude: React 19 key features (released Dec 2024):
174
174
  - Actions for form handling
175
175
  - use() hook for async data
176
176
 
177
- You: Next.js 15 有什么新功能?
178
- Claude: Next.js 15 主要更新:
179
- - Turbopack 稳定版(构建速度提升 5x
180
- - 部分预渲染(PPR
181
- - 改进的缓存控制
182
- - React 19 支持
177
+ You: Next.js 15 new features
178
+ Claude: Next.js 15 main updates:
179
+ - Turbopack stable (5x faster builds)
180
+ - Partial Prerendering (PPR)
181
+ - Improved cache control
182
+ - React 19 support
183
183
  ```
184
184
 
185
185
  **Library Comparison**
@@ -194,15 +194,15 @@ Claude: Vite vs Webpack (2024):
194
194
  Use Vite for: New projects, fast iteration
195
195
  Use Webpack for: Complex builds, legacy support
196
196
 
197
- You: Vue 3 React 哪个更适合新项目?
198
- Claude: Vue 3 vs React 对比:
197
+ You: Vue 3 vs React for new projects
198
+ Claude: Vue 3 vs React:
199
199
 
200
- 学习曲线: Vue 更平缓,React 需要 JSX
201
- 性能: 两者相当,Vue 略优
202
- 生态: React 更丰富,Vue 够用
203
- 就业: React 岗位更多
200
+ Learning curve: Vue gentler, React needs JSX
201
+ Performance: Similar, Vue slightly ahead
202
+ Ecosystem: React larger, Vue sufficient
203
+ Jobs: More React positions
204
204
 
205
- 建议: 团队熟悉 React React,新手选 Vue
205
+ Suggestion: React if team knows it, Vue for newcomers
206
206
  ```
207
207
 
208
208
  **Tech Trends**
@@ -214,109 +214,54 @@ Claude: AI developments (Jan 2026):
214
214
  - Anthropic Claude 4 with extended context
215
215
  - Meta's open-source LLaMA 4
216
216
 
217
- You: 最近有什么重要的技术新闻?
218
- Claude: 近期科技动态(2026年2月):
219
- - 苹果发布 Vision Pro 2
220
- - 英伟达 B100 GPU 开始量产
221
- - 特斯拉 FSD v13 正式推送
222
- - 微软 Windows 12 预览版发布
217
+ You: Important tech news recently
218
+ Claude: Recent tech (Feb 2026):
219
+ - Apple Vision Pro 2 announced
220
+ - NVIDIA B100 GPU in production
221
+ - Tesla FSD v13 rollout
222
+ - Microsoft Windows 12 preview
223
223
  ```
224
224
 
225
225
  ### Multi-language Queries
226
226
 
227
- **Chinese (Simplified)**
228
- ```
229
- You: 人工智能最新进展
230
- Claude: AI 最新进展(2026年):
231
- - 大模型参数突破 10 万亿
232
- - 多模态理解接近人类水平
233
- - AI 编程助手普及率超 60%
234
- - 具身智能机器人商业化
235
- [来源: 机器之心, 量子位]
236
-
237
- You: 深圳有什么好玩的地方
238
- Claude: 深圳旅游推荐:
239
- - 世界之窗 - 微缩景观
240
- - 欢乐谷 - 主题乐园
241
- - 大梅沙海滨公园 - 免费沙滩
242
- - 华侨城创意园 - 文艺打卡
243
- [来源: 深圳文旅局, 马蜂窝]
244
- ```
245
-
246
- **Chinese (Traditional - Taiwan)**
247
- ```
248
- You: 台北最近有什麼新鮮事?
249
- Claude: 台北近期新聞:
250
- - 捷運環狀線北環段動工
251
- - 大巨蛋正式啟用
252
- - 台北燈節 2 月登場
253
- - 米其林指南台北版更新
254
- [來源: 聯合新聞網, 自由時報]
255
-
256
- You: 高雄美食推薦
257
- Claude: 高雄必吃美食:
258
- - 六合夜市 - 木瓜牛奶、海產粥
259
- - 瑞豐夜市 - 炸雞排、臭豆腐
260
- - 旗津海產街 - 新鮮海鮮
261
- - 鹽埕區 - 老字號小吃
262
- [來源: 愛食記, 痞客邦]
263
- ```
264
-
265
- **Japanese**
266
- ```
267
- You: 東京で今人気のレストランは?
268
- Claude: 東京の人気レストラン(2026年):
269
- - Narisawa - モダン日本料理、ミシュラン2つ星
270
- - Den - 革新的和食、世界のベストレストラン
271
- - Florilège - フレンチ、予約困難
272
- - Sushi Saito - 江戸前寿司の最高峰
273
- [出典: 食べログ, ミシュランガイド]
274
-
275
- You: 最新のAI技術について教えて
276
- Claude: 最新AI技術(2026年):
277
- - GPT-5の登場で自然言語処理が進化
278
- - マルチモーダルAIが主流に
279
- - エッジAIの普及が加速
280
- - AI規制法が各国で施行
281
- [出典: ITmedia, 日経新聞]
282
- ```
283
-
284
- **Korean**
285
- ```
286
- You: 서울 맛집 추천
287
- Claude: 서울 맛집 추천:
288
- - 광장시장 - 전통 한식, 마약김밥
289
- - 명동 - 길거리 음식, 쇼핑
290
- - 강남 - 고급 레스토랑, 카페
291
- - 이태원 - 세계 각국 요리
292
- [출처: 망고플레이트, 네이버 블로그]
293
-
294
- You: 최신 프로그래밍 트렌드
295
- Claude: 최신 프로그래밍 트렌드 (2026):
296
- - AI 코딩 어시스턴트 보편화
297
- - Rust 인기 급상승
298
- - 서버리스 아키텍처 확산
299
- - WebAssembly 생태계 성장
300
- [출처: Stack Overflow, GitHub Trends]
301
- ```
302
-
303
- **Mixed Language**
304
- ```
305
- You: React 在中国的使用情况
306
- Claude: React 在中国的使用情况:
307
- - 市场份额: 约 45%(仅次于 Vue)
308
- - 主要用户: 大厂(阿里、字节、腾讯)
309
- - 生态: 完善,Ant Design、Taro 等
310
- - 趋势: 持续增长,Next.js 受欢迎
311
- [来源: State of JS China, 掘金]
312
-
313
- You: 日本のAI企業について
314
- Claude: 日本の主要AI企業:
315
- - Preferred Networks - 深層学習フレームワーク
316
- - ABEJA - エッジAIプラットフォーム
317
- - PKSHA Technology - 自然言語処理
318
- - Nextremer - 対話AI
319
- [出典: 日経ビジネス, TechCrunch Japan]
227
+ Felo supports Chinese, Japanese, Korean, and English. Ask in any language and get answers in that language. Example in English:
228
+
229
+ **Latest AI & places**
230
+ ```
231
+ You: Latest developments in AI
232
+ Claude: AI developments (2026):
233
+ - LLM parameters exceed 10 trillion
234
+ - Multimodal understanding near human level
235
+ - AI coding assistants used by 60%+ developers
236
+ - Embodied AI robots commercialized
237
+ [Sources: industry reports]
238
+
239
+ You: What to do in Shenzhen
240
+ Claude: Shenzhen recommendations:
241
+ - Window of the World - Miniature landmarks
242
+ - Happy Valley - Theme park
243
+ - Dameisha Beach - Free beach
244
+ - OCT-LOFT - Arts and culture
245
+ [Sources: travel guides]
246
+ ```
247
+
248
+ **React adoption & comparisons**
249
+ ```
250
+ You: React adoption in China
251
+ Claude: React in China:
252
+ - Market share: ~45% (second to Vue)
253
+ - Major users: Alibaba, ByteDance, Tencent
254
+ - Ecosystem: Ant Design, Taro, etc.
255
+ - Trend: Growing, Next.js popular
256
+ [Sources: State of JS China]
257
+
258
+ You: Python vs Java for beginners
259
+ Claude: Python vs Java:
260
+ - Learning: Python easier to start
261
+ - Jobs: Both strong, Java more enterprise
262
+ - Use Python for: Data, scripting, prototyping
263
+ - Use Java for: Enterprise, Android, backend
264
+ [Sources: Stack Overflow, job boards]
320
265
  ```
321
266
 
322
267
  ### Complex Queries
@@ -333,15 +278,15 @@ Claude: AI's impact on software development (2024-2026):
333
278
 
334
279
  Future: AI pair programming becomes standard practice
335
280
 
336
- You: 量子计算对密码学的影响
337
- Claude: 量子计算对密码学的影响:
281
+ You: Impact of quantum computing on cryptography
282
+ Claude: Quantum computing and cryptography:
338
283
 
339
- 威胁: RSAECC 等传统加密算法将被破解
340
- 时间线: 预计 2030-2035 年实现
341
- 应对: 后量子密码学(PQC)标准化
342
- 进展: NIST 已发布 PQC 算法标准
284
+ Threat: RSA, ECC and similar algorithms could be broken
285
+ Timeline: Estimated 2030-2035
286
+ Response: Post-quantum cryptography (PQC) standardization
287
+ Progress: NIST has published PQC algorithm standards
343
288
 
344
- 建议: 企业应提前规划密码学迁移
289
+ Advice: Plan crypto migration in advance
345
290
  ```
346
291
 
347
292
  **Comparisons**
@@ -359,18 +304,18 @@ Claude: AWS vs Azure vs GCP (2026):
359
304
  Choose Azure: Microsoft integration, hybrid cloud
360
305
  Choose GCP: Data/ML workloads, cost-sensitive
361
306
 
362
- You: 编程语言性能对比:Python vs Go vs Rust
363
- Claude: Python vs Go vs Rust 性能对比:
307
+ You: Programming language performance: Python vs Go vs Rust
308
+ Claude: Python vs Go vs Rust:
364
309
 
365
- 执行速度: Rust > Go > Python (100x 差距)
366
- 内存占用: Rust 最小,Python 最大
367
- 开发效率: Python > Go > Rust
368
- 学习曲线: Python 最平缓,Rust 最陡
310
+ Speed: Rust > Go > Python (up to 100x)
311
+ Memory: Rust lowest, Python highest
312
+ Productivity: Python > Go > Rust
313
+ Learning curve: Python gentlest, Rust steepest
369
314
 
370
- 适用场景:
371
- - Python: 数据科学、脚本、快速原型
372
- - Go: 微服务、云原生、并发
373
- - Rust: 系统编程、性能关键、安全
315
+ Use cases:
316
+ - Python: Data science, scripting, rapid prototyping
317
+ - Go: Microservices, cloud-native, concurrency
318
+ - Rust: Systems programming, performance-critical, safety
374
319
  ```
375
320
 
376
321
  **[See 40+ more examples →](../docs/EXAMPLES.md)**
@@ -118,16 +118,16 @@ The API returns JSON with this structure:
118
118
  Parse the JSON response and present it to the user in this format:
119
119
 
120
120
  ```
121
- ## 回答 / Answer
121
+ ## Answer
122
122
  [Display the answer field]
123
123
 
124
- ## 搜索分析 / Query Analysis
125
- 优化后的搜索词: [list query_analysis items]
124
+ ## Query Analysis
125
+ Optimized search terms: [list query_analysis items]
126
126
  ```
127
127
 
128
128
  ## Complete Examples
129
129
 
130
- ### Example 1: English Query
130
+ ### Example 1: Weather query
131
131
 
132
132
  **User asks:** "What's the weather in Tokyo today?"
133
133
 
@@ -156,24 +156,23 @@ curl -s -X POST https://openapi.felo.ai/v2/chat \
156
156
  rm -f /tmp/felo_query.json
157
157
  ```
158
158
 
159
- ### Example 2: Simplified Chinese (简体中文)
159
+ ### Example 2: Local news / events
160
160
 
161
- **User asks:** "杭州最近有什么新鲜事?"
161
+ **User asks:** "What's new in Hangzhou recently?"
162
162
 
163
163
  **Expected response format:**
164
164
  ```
165
- ## 回答
166
- 杭州最近的新鲜事包括:亚运会场馆改造完成、西湖景区推出夜游项目、
167
- 新的地铁线路开通等。详细信息...
165
+ ## Answer
166
+ Recent news in Hangzhou: Asian Games venue upgrades completed, West Lake night tours launched, new metro lines opened. Details...
168
167
 
169
- ## 搜索分析
170
- 优化后的搜索词: 杭州最近新闻, 杭州近期动态, Hangzhou recent news
168
+ ## Query Analysis
169
+ Optimized search terms: Hangzhou recent news, Hangzhou events, 杭州 最近 新闻
171
170
  ```
172
171
 
173
172
  **Bash command:**
174
173
  ```bash
175
174
  cat > /tmp/felo_query.json << 'EOF'
176
- {"query": "杭州最近有什么新鲜事"}
175
+ {"query": "What's new in Hangzhou recently"}
177
176
  EOF
178
177
 
179
178
  curl -s -X POST https://openapi.felo.ai/v2/chat \
@@ -184,14 +183,14 @@ curl -s -X POST https://openapi.felo.ai/v2/chat \
184
183
  rm -f /tmp/felo_query.json
185
184
  ```
186
185
 
187
- ### Example 3: Traditional Chinese - Taiwan (繁體中文-台灣)
186
+ ### Example 3: Travel / things to do
188
187
 
189
- **User asks:** "台北最近有什麼好玩的地方?"
188
+ **User asks:** "What are the best things to do in Taipei?"
190
189
 
191
190
  **Bash command:**
192
191
  ```bash
193
192
  cat > /tmp/felo_query.json << 'EOF'
194
- {"query": "台北最近有什麼好玩的地方"}
193
+ {"query": "What are the best things to do in Taipei"}
195
194
  EOF
196
195
 
197
196
  curl -s -X POST https://openapi.felo.ai/v2/chat \
@@ -202,14 +201,14 @@ curl -s -X POST https://openapi.felo.ai/v2/chat \
202
201
  rm -f /tmp/felo_query.json
203
202
  ```
204
203
 
205
- ### Example 4: Japanese (日本語)
204
+ ### Example 4: Restaurants / recommendations
206
205
 
207
- **User asks:** "東京で今人気のレストランは?"
206
+ **User asks:** "Popular restaurants in Tokyo?"
208
207
 
209
208
  **Bash command:**
210
209
  ```bash
211
210
  cat > /tmp/felo_query.json << 'EOF'
212
- {"query": "東京で今人気のレストランは"}
211
+ {"query": "Popular restaurants in Tokyo"}
213
212
  EOF
214
213
 
215
214
  curl -s -X POST https://openapi.felo.ai/v2/chat \
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Felo Slides Skill Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,87 @@
1
+ # Felo Slides Skill for Claude Code
2
+
3
+ Generate presentation slides with the Felo PPT Task API (asynchronous workflow).
4
+
5
+ ## Features
6
+
7
+ - Generate a PPT deck from a single prompt
8
+ - Poll task status automatically until completion/failure/timeout
9
+ - Return `ppt_url` immediately when the task is completed (fallback to `live_doc_url`)
10
+ - Return `task_id` for follow-up tracking
11
+
12
+ ## Quick Start
13
+
14
+ ### 1) Install the skill
15
+
16
+ ```bash
17
+ npx @claude/skills add felo-slides
18
+ ```
19
+
20
+ Or install manually from this repository:
21
+
22
+ ```bash
23
+ # Linux/macOS
24
+ cp -r felo-slides ~/.claude/skills/
25
+
26
+ # Windows (PowerShell)
27
+ Copy-Item -Recurse felo-slides "$env:USERPROFILE\.claude\skills\"
28
+ ```
29
+
30
+ ### 2) Configure API key
31
+
32
+ Create an API key at [felo.ai](https://felo.ai) -> Settings -> API Keys, then set:
33
+
34
+ ```bash
35
+ # Linux/macOS
36
+ export FELO_API_KEY="your-api-key-here"
37
+ ```
38
+
39
+ ```powershell
40
+ # Windows PowerShell
41
+ $env:FELO_API_KEY="your-api-key-here"
42
+ ```
43
+
44
+ ### 3) Trigger the skill
45
+
46
+ - Intent trigger: "Create a 10-slide product pitch deck"
47
+ - Explicit trigger: `/felo-slides your topic`
48
+
49
+ ## API Workflow
50
+
51
+ Based on Felo v2 PPT Task API:
52
+
53
+ 1. Create task: `POST /v2/ppts`
54
+ 2. Query status (optional): `GET /v2/tasks/{task_id}/status`
55
+ 3. Query historical/result: `GET /v2/tasks/{task_id}/historical`
56
+
57
+ The skill polls every 10 seconds (max wait 1800 seconds). It stops immediately on `COMPLETED`/`SUCCESS` and returns `ppt_url` (fallback `live_doc_url`).
58
+
59
+ Internal script example:
60
+
61
+ ```bash
62
+ node felo-slides/scripts/run_ppt_task.mjs --query "Felo product intro, 3 slides" --interval 10 --max-wait 1800
63
+ ```
64
+
65
+ ## Troubleshooting
66
+
67
+ ### `FELO_API_KEY` is missing
68
+
69
+ Set the environment variable and restart the Claude Code session.
70
+
71
+ ### `INVALID_API_KEY`
72
+
73
+ The key is invalid or revoked. Generate a new key from [felo.ai](https://felo.ai).
74
+
75
+ ### Task keeps running for too long
76
+
77
+ The task may still be processing. Retry later with the same context, or run the script with `--verbose`.
78
+
79
+ ### Task completed but no `ppt_url` / `live_doc_url`
80
+
81
+ Use the returned `task_id` to query historical endpoint again.
82
+
83
+ ## Links
84
+
85
+ - [PPT Task API](https://openapi.felo.ai/docs/api-reference/v2/ppt-tasks.html)
86
+ - [Felo Open Platform](https://openapi.felo.ai/docs/)
87
+ - [Get API Key](https://felo.ai)
@@ -0,0 +1,154 @@
1
+ ---
2
+ name: felo-slides
3
+ description: "Generate PPT/slides with Felo PPT Task API in Claude Code. Use when users ask to create/make/generate/export presentations or slide decks, or when explicit commands like /felo-slides are used. Handles API key check, task creation, polling, and final ppt_url output."
4
+ ---
5
+
6
+ # Felo Slides Skill
7
+
8
+ ## When to Use
9
+
10
+ Trigger this skill for requests about creating presentation files:
11
+
12
+ - Create/generate slides from a topic or outline
13
+ - Turn notes into a PPT deck
14
+ - Build a presentation with a page count requirement
15
+ - Export presentation content into a shareable slide link
16
+
17
+ Trigger keywords:
18
+ - Chinese prompts about making slides or presentations
19
+ - English: slides, PPT, presentation deck, generate presentation
20
+ - Explicit commands: `/felo-slides`, "use felo slides"
21
+
22
+ Do NOT use this skill for:
23
+ - Real-time information lookup (use `felo-search`)
24
+ - Questions about local codebase files
25
+ - Pure text tasks that do not require slide generation
26
+
27
+ ## Setup
28
+
29
+ ### 1. Get API key
30
+
31
+ 1. Visit [felo.ai](https://felo.ai)
32
+ 2. Open Settings -> API Keys
33
+ 3. Create and copy your API key
34
+
35
+ ### 2. Configure environment variable
36
+
37
+ Linux/macOS:
38
+ ```bash
39
+ export FELO_API_KEY="your-api-key-here"
40
+ ```
41
+
42
+ Windows PowerShell:
43
+ ```powershell
44
+ $env:FELO_API_KEY="your-api-key-here"
45
+ ```
46
+
47
+ ## How to Execute
48
+
49
+ Use Bash tool commands and follow this workflow exactly.
50
+
51
+ ### Step 1: Precheck API key
52
+
53
+ ```bash
54
+ if [ -z "$FELO_API_KEY" ]; then
55
+ echo "ERROR: FELO_API_KEY not set"
56
+ exit 1
57
+ fi
58
+ ```
59
+
60
+ If key is missing, stop and return setup instructions.
61
+
62
+ ### Step 2: Run Node Script (create + poll)
63
+
64
+ Use the bundled script (no `jq` dependency):
65
+
66
+ ```bash
67
+ node felo-slides/scripts/run_ppt_task.mjs \
68
+ --query "USER_PROMPT_HERE" \
69
+ --interval 10 \
70
+ --max-wait 1800 \
71
+ --timeout 60
72
+ ```
73
+
74
+ Script behavior:
75
+ - Creates task via `POST https://openapi.felo.ai/v2/ppts`
76
+ - Polls via `GET https://openapi.felo.ai/v2/tasks/{task_id}/historical`
77
+ - Treats `COMPLETED`/`SUCCESS` as success terminal (case-insensitive)
78
+ - Treats `FAILED`/`ERROR` as failure terminal
79
+ - Stops polling immediately on terminal status
80
+ - Prints `ppt_url` on success (fallback: `live_doc_url`)
81
+
82
+ Optional debug output:
83
+
84
+ ```bash
85
+ node felo-slides/scripts/run_ppt_task.mjs \
86
+ --query "USER_PROMPT_HERE" \
87
+ --interval 10 \
88
+ --max-wait 1800 \
89
+ --json \
90
+ --verbose
91
+ ```
92
+
93
+ This outputs structured JSON including:
94
+ - `task_id`
95
+ - `task_status`
96
+ - `ppt_url`
97
+ - `live_doc_url`
98
+ - `livedoc_short_id`
99
+ - `ppt_business_id`
100
+
101
+ ### Step 4: Return structured result
102
+
103
+ On success, return:
104
+ - `ppt_url` immediately (script default output, fallback `live_doc_url`)
105
+ - if `--json` is used, also include `task_id`, terminal status, and optional metadata
106
+
107
+ ## Output Format
108
+
109
+ Use this response structure:
110
+
111
+ ```markdown
112
+ ## PPT Generation Result
113
+ - Task ID: <task_id>
114
+ - Status: <status>
115
+ - PPT URL: <ppt_url>
116
+ - Live Doc URL: <live_doc_url or N/A>
117
+
118
+ ## Notes
119
+ - livedoc_short_id: <value or N/A>
120
+ - ppt_business_id: <value or N/A>
121
+ ```
122
+
123
+ Error format:
124
+
125
+ ```markdown
126
+ ## PPT Generation Failed
127
+ - Error Type: <error code or category>
128
+ - Message: <readable message>
129
+ - Suggested Action: <next step>
130
+ ```
131
+
132
+ ## Error Handling
133
+
134
+ Known API error codes:
135
+ - `INVALID_API_KEY` (401): key invalid or revoked
136
+ - `PPT_TASK_CREATE_FAILED` (502): create task downstream failed
137
+ - `PPT_TASK_QUERY_FAILED` (502): query task downstream failed
138
+
139
+ Timeout handling:
140
+ - If timeout reached, return last known status and instruct user to retry later
141
+ - Include `task_id` so user can query again
142
+
143
+ ## Important Notes
144
+
145
+ - Always execute this skill when user intent is slide generation.
146
+ - Always return `task_id` so follow-up queries can continue from the same task.
147
+ - Do not claim completion without a terminal status.
148
+ - Keep API calls minimal: create once, then poll.
149
+
150
+ ## References
151
+
152
+ - [Felo PPT Task API](https://openapi.felo.ai/docs/api-reference/v2/ppt-tasks.html)
153
+ - [Felo Open Platform](https://openapi.felo.ai/docs/)
154
+