opencode-skills-collection 3.0.37 → 3.0.38

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 (73) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +13 -1
  2. package/bundled-skills/2slides-ppt-generator/SKILL.md +786 -0
  3. package/bundled-skills/2slides-ppt-generator/references/api-reference.md +499 -0
  4. package/bundled-skills/2slides-ppt-generator/references/mcp-integration.md +282 -0
  5. package/bundled-skills/2slides-ppt-generator/references/pricing.md +195 -0
  6. package/bundled-skills/2slides-ppt-generator/scripts/api_constants.py +87 -0
  7. package/bundled-skills/2slides-ppt-generator/scripts/create_pdf_slides.py +159 -0
  8. package/bundled-skills/2slides-ppt-generator/scripts/download_slides_pages_voices.py +157 -0
  9. package/bundled-skills/2slides-ppt-generator/scripts/generate_narration.py +197 -0
  10. package/bundled-skills/2slides-ppt-generator/scripts/generate_slides.py +247 -0
  11. package/bundled-skills/2slides-ppt-generator/scripts/get_job_status.py +106 -0
  12. package/bundled-skills/2slides-ppt-generator/scripts/search_themes.py +137 -0
  13. package/bundled-skills/anti-sycophancy/README.md +86 -0
  14. package/bundled-skills/anti-sycophancy/SKILL.md +40 -0
  15. package/bundled-skills/antigravity-agent-manager/SKILL.md +112 -0
  16. package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
  17. package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
  18. package/bundled-skills/docs/maintainers/repo-growth-seo.md +3 -3
  19. package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
  20. package/bundled-skills/docs/sources/sources.md +1 -0
  21. package/bundled-skills/docs/users/bundles.md +1 -1
  22. package/bundled-skills/docs/users/claude-code-skills.md +1 -1
  23. package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
  24. package/bundled-skills/docs/users/getting-started.md +1 -1
  25. package/bundled-skills/docs/users/kiro-integration.md +1 -1
  26. package/bundled-skills/docs/users/usage.md +4 -4
  27. package/bundled-skills/docs/users/visual-guide.md +4 -4
  28. package/bundled-skills/event-staffing-compliance/SKILL.md +91 -0
  29. package/bundled-skills/event-staffing-ordering/SKILL.md +119 -0
  30. package/bundled-skills/examprep-ai/SKILL.md +446 -0
  31. package/bundled-skills/hasdata/SKILL.md +107 -0
  32. package/bundled-skills/hasdata/references/code-recipes.md +150 -0
  33. package/bundled-skills/hasdata/references/ecommerce.md +116 -0
  34. package/bundled-skills/hasdata/references/jobs.md +111 -0
  35. package/bundled-skills/hasdata/references/local-business.md +145 -0
  36. package/bundled-skills/hasdata/references/real-estate.md +84 -0
  37. package/bundled-skills/hasdata/references/scraper-jobs.md +252 -0
  38. package/bundled-skills/hasdata/references/search.md +154 -0
  39. package/bundled-skills/hasdata/references/travel.md +202 -0
  40. package/bundled-skills/hasdata/references/web-scraping.md +159 -0
  41. package/bundled-skills/hasdata/references/youtube.md +186 -0
  42. package/bundled-skills/hasdata-cli/SKILL.md +169 -0
  43. package/bundled-skills/hasdata-cli/references/all-commands.md +107 -0
  44. package/bundled-skills/hasdata-cli/references/ecommerce.md +106 -0
  45. package/bundled-skills/hasdata-cli/references/enrichment.md +227 -0
  46. package/bundled-skills/hasdata-cli/references/jobs.md +84 -0
  47. package/bundled-skills/hasdata-cli/references/local-business.md +123 -0
  48. package/bundled-skills/hasdata-cli/references/real-estate.md +126 -0
  49. package/bundled-skills/hasdata-cli/references/search.md +122 -0
  50. package/bundled-skills/hasdata-cli/references/travel.md +102 -0
  51. package/bundled-skills/hasdata-cli/references/web-scraping.md +181 -0
  52. package/bundled-skills/hasdata-cli/references/youtube.md +145 -0
  53. package/bundled-skills/linkedin-content-generator/SKILL.md +492 -0
  54. package/bundled-skills/linkedin-content-generator/scripts/generate_calendar.py +82 -0
  55. package/bundled-skills/linkedin-content-generator/scripts/generate_carousel.py +69 -0
  56. package/bundled-skills/linkedin-content-generator/scripts/generate_newsletter.py +64 -0
  57. package/bundled-skills/linkedin-content-generator/scripts/generate_post.py +77 -0
  58. package/bundled-skills/linkedin-content-generator/scripts/memory.md +49 -0
  59. package/bundled-skills/linkedin-content-generator/scripts/memory_manager.py +134 -0
  60. package/bundled-skills/linkedin-content-generator/scripts/utils.py +96 -0
  61. package/bundled-skills/permission-manager/README.md +22 -0
  62. package/bundled-skills/permission-manager/SKILL.md +54 -0
  63. package/bundled-skills/skill-suggester/README.md +14 -0
  64. package/bundled-skills/skill-suggester/SKILL.md +69 -0
  65. package/bundled-skills/smart-git-automation/README.md +31 -0
  66. package/bundled-skills/smart-git-automation/SKILL.md +96 -0
  67. package/bundled-skills/vercel-optimize/lib/cost-coverage.mjs +3 -1
  68. package/bundled-skills/vercel-optimize/lib/render-report.mjs +2 -2
  69. package/bundled-skills/vercel-optimize/lib/util.mjs +7 -0
  70. package/bundled-skills/vercel-optimize/lib/verify-claim.mjs +2 -7
  71. package/bundled-skills/vercel-optimize/lib/workspace-resolver.mjs +2 -1
  72. package/package.json +1 -1
  73. package/skills_index.json +268 -0
@@ -0,0 +1,499 @@
1
+ # 2slides API Reference
2
+
3
+ Complete API documentation for 2slides slide generation service.
4
+
5
+ ## Base URL
6
+
7
+ ```
8
+ https://2slides.com/api/v1
9
+ ```
10
+
11
+ ## Authentication
12
+
13
+ All API requests require authentication using a Bearer token in the Authorization header:
14
+
15
+ ```
16
+ Authorization: Bearer YOUR_API_KEY
17
+ ```
18
+
19
+ Get your API key from: https://2slides.com/api
20
+
21
+ Store the API key in environment variable: `SLIDES_2SLIDES_API_KEY`
22
+
23
+ ## Endpoints
24
+
25
+ ### 1. Generate Slides
26
+
27
+ Generate slides from user input with optional theme selection.
28
+
29
+ **Endpoint:** `POST /slides/generate`
30
+
31
+ **Headers:**
32
+ ```
33
+ Authorization: Bearer YOUR_API_KEY
34
+ Content-Type: application/json
35
+ ```
36
+
37
+ **Request Body:**
38
+ ```json
39
+ {
40
+ "userInput": "string (required) - Content to convert into slides",
41
+ "themeId": "string (required) - Theme ID from themes/search",
42
+ "responseLanguage": "string (optional, default: 'Auto') - Language code",
43
+ "mode": "string (optional, default: 'sync') - 'sync' or 'async'"
44
+ }
45
+ ```
46
+
47
+ **Supported Languages:**
48
+ Auto, English, Simplified Chinese (简体中文), Traditional Chinese (繁體中文), Spanish, Arabic, Portuguese, Indonesian, Japanese, Russian, Hindi, French, German, Vietnamese, Turkish, Polish, Italian, Korean
49
+
50
+ **Response (sync mode):**
51
+ ```json
52
+ {
53
+ "slideUrl": "https://2slides.com/slides/...",
54
+ "pdfUrl": "https://2slides.com/slides/.../download",
55
+ "status": "completed"
56
+ }
57
+ ```
58
+
59
+ **Response (async mode):**
60
+ ```json
61
+ {
62
+ "jobId": "abc123...",
63
+ "status": "pending"
64
+ }
65
+ ```
66
+
67
+ **Notes:**
68
+ - **Sync mode**: Waits for generation to complete and returns the result directly (may take 30-60 seconds)
69
+ - **Async mode**: Returns immediately with a jobId to poll for results using `/jobs/{jobId}`
70
+
71
+ ---
72
+
73
+ ### 2. Create Like This (Reference Image)
74
+
75
+ Generate slides matching a reference image style (Nano Banana Pro mode).
76
+
77
+ **Endpoint:** `POST /slides/create-like-this`
78
+
79
+ **Headers:**
80
+ ```
81
+ Authorization: Bearer YOUR_API_KEY
82
+ Content-Type: application/json
83
+ ```
84
+
85
+ **Request Body:**
86
+ ```json
87
+ {
88
+ "userInput": "string (required) - Content for slides",
89
+ "referenceImageUrl": "string (required) - URL or base64 of reference image",
90
+ "responseLanguage": "string (optional, default: 'Auto')",
91
+ "aspectRatio": "string (optional, default: '16:9') - width:height format",
92
+ "resolution": "string (optional, default: '2K') - '1K', '2K', or '4K'",
93
+ "page": "number (optional, default: 1) - 0 for auto-detection, max 100",
94
+ "contentDetail": "string (optional, default: 'concise') - 'concise' or 'standard'"
95
+ }
96
+ ```
97
+
98
+ **Resolution Options:**
99
+ - **1K**: Standard quality
100
+ - **2K**: High quality (default)
101
+ - **4K**: Ultra high quality
102
+
103
+ **Content Detail Options:**
104
+ - **concise**: Brief, keyword-focused content
105
+ - **standard**: Comprehensive, detailed content
106
+
107
+ **Page Parameter:**
108
+ - Set to `0` to enable automatic slide count detection
109
+ - Set to specific number (1-100) for exact slide count
110
+
111
+ **Response:**
112
+ ```json
113
+ {
114
+ "success": true,
115
+ "data": {
116
+ "jobId": "608f8997-5207-480c-9ff2-d2475cba6b9d",
117
+ "status": "success",
118
+ "message": "Successfully generated N slides",
119
+ "downloadUrl": "https://...pdf...",
120
+ "jobUrl": "https://2slides.com/workspace?jobId=...",
121
+ "createdAt": 1770108913384,
122
+ "updatedAt": 1770108934015,
123
+ "slidePageCount": 3,
124
+ "successCount": 3,
125
+ "failedCount": 0
126
+ }
127
+ }
128
+ ```
129
+
130
+ **Response Fields:**
131
+ - `success`: Boolean indicating if request succeeded
132
+ - `data.jobId`: Unique job identifier
133
+ - `data.status`: Generation status ("success" or "failed")
134
+ - `data.message`: Human-readable status message
135
+ - `data.downloadUrl`: Direct PDF download URL (temporary, expires in 1 hour)
136
+ - `data.jobUrl`: View slides in 2slides workspace
137
+ - `data.slidePageCount`: Number of slides generated
138
+ - `data.successCount`: Number of successfully generated slides
139
+ - `data.failedCount`: Number of failed slides
140
+
141
+ **Notes:**
142
+ - This endpoint always runs synchronously
143
+ - Processing time: ~30 seconds per page
144
+ - Typical response time: 30-60 seconds for 1-2 pages
145
+ - Automatically generates PDF
146
+ - Matches the style and design of the reference image
147
+ - **Timeout recommendation**: Set timeout to `max(120, pages * 40)` seconds
148
+
149
+ ---
150
+
151
+ ### 3. Create PDF Slides
152
+
153
+ Generate custom-designed slides from text with optional design specifications.
154
+
155
+ **Endpoint:** `POST /slides/create-pdf-slides`
156
+
157
+ **Headers:**
158
+ ```
159
+ Authorization: Bearer YOUR_API_KEY
160
+ Content-Type: application/json
161
+ ```
162
+
163
+ **Request Body:**
164
+ ```json
165
+ {
166
+ "userInput": "string (required) - Content for slides",
167
+ "responseLanguage": "string (optional, default: 'Auto')",
168
+ "aspectRatio": "string (optional, default: '16:9') - width:height format",
169
+ "resolution": "string (optional, default: '2K') - '1K', '2K', or '4K'",
170
+ "page": "number (optional, default: 1) - 0 for auto-detection, max 100",
171
+ "contentDetail": "string (optional, default: 'concise') - 'concise' or 'standard'",
172
+ "designSpec": "string (optional) - Design specifications (e.g., 'modern minimalist')"
173
+ }
174
+ ```
175
+
176
+ **Response:**
177
+ ```json
178
+ {
179
+ "success": true,
180
+ "data": {
181
+ "jobId": "608f8997-5207-480c-9ff2-d2475cba6b9d",
182
+ "status": "success",
183
+ "message": "Successfully generated N slides",
184
+ "downloadUrl": "https://...pdf...",
185
+ "jobUrl": "https://2slides.com/workspace?jobId=...",
186
+ "slidePageCount": 3,
187
+ "successCount": 3,
188
+ "failedCount": 0
189
+ }
190
+ }
191
+ ```
192
+
193
+ **Notes:**
194
+ - Similar to create-like-this but without reference image
195
+ - Uses AI to generate custom design based on content and design specs
196
+ - Same credit costs: 100 credits/page (1K/2K), 200 credits/page (4K)
197
+ - Processing time: ~30 seconds per page
198
+ - Always runs synchronously
199
+
200
+ ---
201
+
202
+ ### 4. Generate Narration
203
+
204
+ Add AI voice narration to slides in single or multi-speaker mode.
205
+
206
+ **Endpoint:** `POST /slides/generate-narration`
207
+
208
+ **Headers:**
209
+ ```
210
+ Authorization: Bearer YOUR_API_KEY
211
+ Content-Type: application/json
212
+ ```
213
+
214
+ **Request Body:**
215
+ ```json
216
+ {
217
+ "jobId": "string (required) - Job ID from slide generation (UUID format)",
218
+ "language": "string (optional, default: 'Auto') - Language for narration",
219
+ "voice": "string (optional, default: 'Puck') - Voice name from available voices",
220
+ "multiSpeaker": "boolean (optional, default: false) - Enable multi-speaker mode"
221
+ }
222
+ ```
223
+
224
+ **Available Voices (30 total):**
225
+ Puck, Aoede, Charon, Kore, Fenrir, Phoebe, Asteria, Luna, Stella, Theia, Helios, Atlas, Clio, Melpomene, Calliope, Erato, Euterpe, Polyhymnia, Terpsichore, Thalia, Urania, Zeus, Hera, Poseidon, Athena, Apollo, Artemis, Ares, Aphrodite, Hephaestus
226
+
227
+ **Response:**
228
+ ```json
229
+ {
230
+ "success": true,
231
+ "jobId": "abc123...",
232
+ "status": "pending",
233
+ "message": "Narration generation started"
234
+ }
235
+ ```
236
+
237
+ **Notes:**
238
+ - Job must be completed before adding narration
239
+ - Job ID must be UUID format for Nano Banana jobs
240
+ - Cost: 210 credits per page (10 for text, 200 for audio)
241
+ - Runs asynchronously - poll with /jobs/{jobId}
242
+ - Multi-speaker mode uses different voices for variety
243
+ - 19 languages supported plus auto-detection
244
+
245
+ ---
246
+
247
+ ### 5. Download Slides Pages and Voices
248
+
249
+ Export slides as PNG files and voice narrations as WAV files in a ZIP archive.
250
+
251
+ **Endpoint:** `POST /slides/download-slides-pages-voices`
252
+
253
+ **Headers:**
254
+ ```
255
+ Authorization: Bearer YOUR_API_KEY
256
+ Content-Type: application/json
257
+ ```
258
+
259
+ **Request Body:**
260
+ ```json
261
+ {
262
+ "jobId": "string (required) - Job ID from slide generation"
263
+ }
264
+ ```
265
+
266
+ **Response:**
267
+ ```json
268
+ {
269
+ "success": true,
270
+ "downloadUrl": "https://...zip...",
271
+ "message": "Download ready"
272
+ }
273
+ ```
274
+
275
+ **Archive Contents:**
276
+ - Pages: PNG files for each slide
277
+ - Voices: WAV audio files (if narration generated)
278
+ - Transcripts: Text files with narration transcripts
279
+
280
+ **Notes:**
281
+ - **Cost: Completely FREE** (no credits used)
282
+ - Download URL valid for **1 hour only**
283
+ - High quality PNG export
284
+ - WAV format for audio
285
+ - Includes all slides and voice files
286
+
287
+ ---
288
+
289
+ ### 6. Search Themes
290
+
291
+ Search for available presentation themes.
292
+
293
+ **Endpoint:** `GET /themes/search`
294
+
295
+ **Headers:**
296
+ ```
297
+ Authorization: Bearer YOUR_API_KEY
298
+ ```
299
+
300
+ **Query Parameters:**
301
+ ```
302
+ query: string (required) - Search keyword
303
+ limit: number (optional, default: 20, max: 100)
304
+ ```
305
+
306
+ **Response:**
307
+ ```json
308
+ {
309
+ "themes": [
310
+ {
311
+ "id": "theme_id_123",
312
+ "name": "Professional Blue",
313
+ "description": "Clean professional theme with blue accents",
314
+ "previewUrl": "https://..."
315
+ }
316
+ ],
317
+ "count": 1
318
+ }
319
+ ```
320
+
321
+ ---
322
+
323
+ ### 7. Get Job Status
324
+
325
+ Retrieve the status and results of an async generation job.
326
+
327
+ **Endpoint:** `GET /jobs/{jobId}`
328
+
329
+ **Headers:**
330
+ ```
331
+ Authorization: Bearer YOUR_API_KEY
332
+ ```
333
+
334
+ **Path Parameters:**
335
+ ```
336
+ jobId: string (required) - Job ID from async generation
337
+ ```
338
+
339
+ **Response:**
340
+ ```json
341
+ {
342
+ "jobId": "abc123",
343
+ "status": "completed|pending|failed",
344
+ "slideUrl": "https://2slides.com/slides/...",
345
+ "pdfUrl": "https://2slides.com/slides/.../download",
346
+ "narrationStatus": "completed|pending|not_started",
347
+ "error": "error message if failed"
348
+ }
349
+ ```
350
+
351
+ **Status Values:**
352
+ - `pending`: Job is still processing
353
+ - `completed`: Slides are ready
354
+ - `failed`: Generation failed (see error field)
355
+
356
+ **Narration Status Values:**
357
+ - `not_started`: No narration requested
358
+ - `pending`: Narration is being generated
359
+ - `completed`: Narration is ready
360
+
361
+ **Polling Recommendation:**
362
+ Poll every 20-30 seconds to avoid server strain
363
+
364
+ ---
365
+
366
+ ## Error Handling
367
+
368
+ All endpoints return standard HTTP status codes:
369
+
370
+ - `200 OK`: Request succeeded
371
+ - `400 Bad Request`: Invalid parameters
372
+ - `401 Unauthorized`: Missing or invalid API key
373
+ - `404 Not Found`: Resource not found
374
+ - `429 Too Many Requests`: Rate limit exceeded
375
+ - `500 Internal Server Error`: Server error
376
+
377
+ **Error Response Format:**
378
+ ```json
379
+ {
380
+ "error": "Error message",
381
+ "code": "ERROR_CODE"
382
+ }
383
+ ```
384
+
385
+ **Common Error Codes:**
386
+ - `INSUFFICIENT_CREDITS`: Account has insufficient credits
387
+ - `INVALID_JOB_ID`: Job ID not found or invalid format
388
+ - `RATE_LIMIT_EXCEEDED`: Too many requests (see rate limits below)
389
+ - `JOB_NOT_COMPLETED`: Job must complete before adding narration
390
+ - `INVALID_UUID`: Job ID must be UUID format (for Nano Banana jobs)
391
+
392
+ ---
393
+
394
+ ## Credit Costs
395
+
396
+ - **Fast PPT (generate endpoint)**: 10 credits per page
397
+ - **Nano Banana 1K/2K (create-like-this, create-pdf-slides)**: 100 credits per page
398
+ - **Nano Banana 4K**: 200 credits per page
399
+ - **Voice Narration**: 210 credits per page (10 for text, 200 for audio)
400
+ - **Download Export**: FREE (no credits)
401
+
402
+ ## Purchasing Credits
403
+
404
+ 2slides operates on a **pay-as-you-go credit system** with no subscriptions.
405
+
406
+ **Credit Packages** (Current promotion: up to 20% off):
407
+
408
+ | Credits | Price | Cost per 1,000 | Savings |
409
+ |---------|-------|---------------|---------|
410
+ | 2,000 | $5.00 | $2.50 | — |
411
+ | 4,000 | $9.50 | $2.38 | 5% |
412
+ | 10,000 | $22.50 | $2.25 | 10% |
413
+ | 20,000 | $42.50 | $2.13 | 15% |
414
+ | 40,000 | $80.00 | $2.00 | 20% |
415
+
416
+ **Key Benefits:**
417
+ - New users get **500 free credits** (~50 Fast PPT pages)
418
+ - **Credits never expire**
419
+ - No monthly subscriptions
420
+ - 3-day refund window
421
+ - Purchase at: https://2slides.com/pricing
422
+
423
+ **Example Costs:**
424
+ - 10-slide Fast PPT presentation: 100 credits ($0.25 with largest package)
425
+ - 10-slide Nano Banana 2K presentation: 1,000 credits ($2.00 with largest package)
426
+ - 10-slide presentation with narration: 2,100 credits ($4.20 with largest package)
427
+
428
+ ## Rate Limits
429
+
430
+ Different endpoints have different rate limits:
431
+
432
+ - **Fast PPT (generate)**: 10 requests per minute
433
+ - **Nano Banana (create-like-this, create-pdf-slides)**: 6 requests per minute
434
+
435
+ **Best Practices:**
436
+ - Poll async jobs every 20-30 seconds to avoid server strain
437
+ - If rate limited (429 error), wait before retrying
438
+ - Check your plan's rate limits at https://2slides.com/api
439
+
440
+ ## Download URL Expiration
441
+
442
+ All download URLs (PDF, ZIP archives) remain valid for **1 hour only**. Download files promptly after generation.
443
+
444
+ ---
445
+
446
+ ## Best Practices
447
+
448
+ ### Content Formatting
449
+
450
+ **For best results, structure content clearly:**
451
+
452
+ ```
453
+ Title: Introduction to AI
454
+
455
+ Section 1: Machine Learning
456
+ - Definition
457
+ - Key concepts
458
+ - Applications
459
+
460
+ Section 2: Deep Learning
461
+ - Neural networks
462
+ - Training process
463
+ - Use cases
464
+ ```
465
+
466
+ ### Choosing Sync vs Async Mode
467
+
468
+ - **Use sync** for quick generations (<5 slides)
469
+ - **Use async** for larger presentations (>5 slides)
470
+ - **Use async** when integrating into workflows that can poll
471
+
472
+ ### Theme Selection
473
+
474
+ 1. Search themes with relevant keywords
475
+ 2. Preview themes if URLs available
476
+ 3. Use theme ID in generation request
477
+ 4. Leave theme blank for default styling
478
+
479
+ ### Language Support
480
+
481
+ Specify `responseLanguage` to generate slides in different languages:
482
+ - `"Auto"` - Automatic language detection (default)
483
+ - `"English"` - English
484
+ - `"Simplified Chinese"` - 简体中文
485
+ - `"Traditional Chinese"` - 繁體中文
486
+ - `"Spanish"` - Español
487
+ - `"Arabic"` - العربية
488
+ - `"Portuguese"` - Português
489
+ - `"Indonesian"` - Bahasa Indonesia
490
+ - `"Japanese"` - 日本語
491
+ - `"Russian"` - Русский
492
+ - `"Hindi"` - हिन्दी
493
+ - `"French"` - Français
494
+ - `"German"` - Deutsch
495
+ - `"Vietnamese"` - Tiếng Việt
496
+ - `"Turkish"` - Türkçe
497
+ - `"Polish"` - Polski
498
+ - `"Italian"` - Italiano
499
+ - `"Korean"` - 한국어