agent-recipes 0.0.5__py3-none-any.whl
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.
- agent_recipes/__init__.py +27 -0
- agent_recipes/recipe_runtime/__init__.py +28 -0
- agent_recipes/recipe_runtime/core.py +385 -0
- agent_recipes/templates/ai-ab-hook-tester/recipe.yaml +45 -0
- agent_recipes/templates/ai-ab-hook-tester/tools.py +169 -0
- agent_recipes/templates/ai-angle-generator/recipe.yaml +49 -0
- agent_recipes/templates/ai-angle-generator/tools.py +182 -0
- agent_recipes/templates/ai-api-doc-generator/README.md +59 -0
- agent_recipes/templates/ai-api-doc-generator/TEMPLATE.yaml +29 -0
- agent_recipes/templates/ai-api-tester/README.md +60 -0
- agent_recipes/templates/ai-api-tester/TEMPLATE.yaml +29 -0
- agent_recipes/templates/ai-audio-enhancer/README.md +59 -0
- agent_recipes/templates/ai-audio-enhancer/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-audio-normalizer/README.md +13 -0
- agent_recipes/templates/ai-audio-normalizer/TEMPLATE.yaml +44 -0
- agent_recipes/templates/ai-audio-splitter/README.md +14 -0
- agent_recipes/templates/ai-audio-splitter/TEMPLATE.yaml +47 -0
- agent_recipes/templates/ai-background-music-generator/README.md +59 -0
- agent_recipes/templates/ai-background-music-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-background-remover/README.md +60 -0
- agent_recipes/templates/ai-background-remover/TEMPLATE.yaml +27 -0
- agent_recipes/templates/ai-barcode-scanner/README.md +60 -0
- agent_recipes/templates/ai-barcode-scanner/TEMPLATE.yaml +26 -0
- agent_recipes/templates/ai-blog-generator/README.md +59 -0
- agent_recipes/templates/ai-blog-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-brief-generator/recipe.yaml +52 -0
- agent_recipes/templates/ai-brief-generator/tools.py +231 -0
- agent_recipes/templates/ai-broll-builder/recipe.yaml +47 -0
- agent_recipes/templates/ai-broll-builder/tools.py +204 -0
- agent_recipes/templates/ai-calendar-scheduler/README.md +60 -0
- agent_recipes/templates/ai-calendar-scheduler/TEMPLATE.yaml +29 -0
- agent_recipes/templates/ai-changelog-generator/README.md +14 -0
- agent_recipes/templates/ai-changelog-generator/TEMPLATE.yaml +46 -0
- agent_recipes/templates/ai-chart-generator/README.md +61 -0
- agent_recipes/templates/ai-chart-generator/TEMPLATE.yaml +32 -0
- agent_recipes/templates/ai-code-documenter/README.md +12 -0
- agent_recipes/templates/ai-code-documenter/TEMPLATE.yaml +37 -0
- agent_recipes/templates/ai-code-refactorer/README.md +59 -0
- agent_recipes/templates/ai-code-refactorer/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-code-reviewer/README.md +59 -0
- agent_recipes/templates/ai-code-reviewer/TEMPLATE.yaml +31 -0
- agent_recipes/templates/ai-color-palette-extractor/README.md +60 -0
- agent_recipes/templates/ai-color-palette-extractor/TEMPLATE.yaml +27 -0
- agent_recipes/templates/ai-comment-miner/recipe.yaml +40 -0
- agent_recipes/templates/ai-comment-miner/tools.py +141 -0
- agent_recipes/templates/ai-commit-message-generator/README.md +59 -0
- agent_recipes/templates/ai-commit-message-generator/TEMPLATE.yaml +31 -0
- agent_recipes/templates/ai-content-calendar/recipe.yaml +43 -0
- agent_recipes/templates/ai-content-calendar/tools.py +170 -0
- agent_recipes/templates/ai-context-enricher/recipe.yaml +48 -0
- agent_recipes/templates/ai-context-enricher/tools.py +258 -0
- agent_recipes/templates/ai-contract-analyzer/README.md +60 -0
- agent_recipes/templates/ai-contract-analyzer/TEMPLATE.yaml +34 -0
- agent_recipes/templates/ai-csv-cleaner/README.md +13 -0
- agent_recipes/templates/ai-csv-cleaner/TEMPLATE.yaml +45 -0
- agent_recipes/templates/ai-cta-generator/recipe.yaml +54 -0
- agent_recipes/templates/ai-cta-generator/tools.py +174 -0
- agent_recipes/templates/ai-daily-news-show/recipe.yaml +103 -0
- agent_recipes/templates/ai-daily-news-show/tools.py +308 -0
- agent_recipes/templates/ai-data-anonymizer/README.md +60 -0
- agent_recipes/templates/ai-data-anonymizer/TEMPLATE.yaml +31 -0
- agent_recipes/templates/ai-data-profiler/README.md +14 -0
- agent_recipes/templates/ai-data-profiler/TEMPLATE.yaml +42 -0
- agent_recipes/templates/ai-dependency-auditor/README.md +12 -0
- agent_recipes/templates/ai-dependency-auditor/TEMPLATE.yaml +37 -0
- agent_recipes/templates/ai-doc-translator/README.md +12 -0
- agent_recipes/templates/ai-doc-translator/TEMPLATE.yaml +41 -0
- agent_recipes/templates/ai-duplicate-finder/README.md +59 -0
- agent_recipes/templates/ai-duplicate-finder/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-ebook-converter/README.md +60 -0
- agent_recipes/templates/ai-ebook-converter/TEMPLATE.yaml +27 -0
- agent_recipes/templates/ai-email-parser/README.md +59 -0
- agent_recipes/templates/ai-email-parser/TEMPLATE.yaml +29 -0
- agent_recipes/templates/ai-etl-pipeline/README.md +60 -0
- agent_recipes/templates/ai-etl-pipeline/TEMPLATE.yaml +30 -0
- agent_recipes/templates/ai-excel-formula-generator/README.md +59 -0
- agent_recipes/templates/ai-excel-formula-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-face-blur/README.md +60 -0
- agent_recipes/templates/ai-face-blur/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-fact-checker/recipe.yaml +52 -0
- agent_recipes/templates/ai-fact-checker/tools.py +279 -0
- agent_recipes/templates/ai-faq-generator/README.md +59 -0
- agent_recipes/templates/ai-faq-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-file-organizer/README.md +59 -0
- agent_recipes/templates/ai-file-organizer/TEMPLATE.yaml +29 -0
- agent_recipes/templates/ai-folder-packager/README.md +15 -0
- agent_recipes/templates/ai-folder-packager/TEMPLATE.yaml +48 -0
- agent_recipes/templates/ai-form-filler/README.md +60 -0
- agent_recipes/templates/ai-form-filler/TEMPLATE.yaml +30 -0
- agent_recipes/templates/ai-hashtag-optimizer/recipe.yaml +45 -0
- agent_recipes/templates/ai-hashtag-optimizer/tools.py +134 -0
- agent_recipes/templates/ai-hook-generator/recipe.yaml +50 -0
- agent_recipes/templates/ai-hook-generator/tools.py +177 -0
- agent_recipes/templates/ai-image-captioner/README.md +59 -0
- agent_recipes/templates/ai-image-captioner/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-image-cataloger/README.md +13 -0
- agent_recipes/templates/ai-image-cataloger/TEMPLATE.yaml +39 -0
- agent_recipes/templates/ai-image-optimizer/README.md +13 -0
- agent_recipes/templates/ai-image-optimizer/TEMPLATE.yaml +43 -0
- agent_recipes/templates/ai-image-resizer/README.md +12 -0
- agent_recipes/templates/ai-image-resizer/TEMPLATE.yaml +39 -0
- agent_recipes/templates/ai-image-tagger/README.md +59 -0
- agent_recipes/templates/ai-image-tagger/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-image-upscaler/README.md +60 -0
- agent_recipes/templates/ai-image-upscaler/TEMPLATE.yaml +27 -0
- agent_recipes/templates/ai-invoice-processor/README.md +60 -0
- agent_recipes/templates/ai-invoice-processor/TEMPLATE.yaml +34 -0
- agent_recipes/templates/ai-json-to-csv/README.md +12 -0
- agent_recipes/templates/ai-json-to-csv/TEMPLATE.yaml +36 -0
- agent_recipes/templates/ai-log-analyzer/README.md +59 -0
- agent_recipes/templates/ai-log-analyzer/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-markdown-to-pdf/README.md +12 -0
- agent_recipes/templates/ai-markdown-to-pdf/TEMPLATE.yaml +40 -0
- agent_recipes/templates/ai-meeting-summarizer/README.md +59 -0
- agent_recipes/templates/ai-meeting-summarizer/TEMPLATE.yaml +32 -0
- agent_recipes/templates/ai-meta-tag-generator/README.md +59 -0
- agent_recipes/templates/ai-meta-tag-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-news-capture-pack/recipe.yaml +42 -0
- agent_recipes/templates/ai-news-capture-pack/tools.py +150 -0
- agent_recipes/templates/ai-news-crawler/recipe.yaml +99 -0
- agent_recipes/templates/ai-news-crawler/tools.py +417 -0
- agent_recipes/templates/ai-news-deduper/recipe.yaml +47 -0
- agent_recipes/templates/ai-news-deduper/tools.py +235 -0
- agent_recipes/templates/ai-newsletter-generator/README.md +59 -0
- agent_recipes/templates/ai-newsletter-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-note-summarizer/README.md +59 -0
- agent_recipes/templates/ai-note-summarizer/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-pdf-summarizer/README.md +12 -0
- agent_recipes/templates/ai-pdf-summarizer/TEMPLATE.yaml +40 -0
- agent_recipes/templates/ai-pdf-to-markdown/README.md +19 -0
- agent_recipes/templates/ai-pdf-to-markdown/TEMPLATE.yaml +63 -0
- agent_recipes/templates/ai-performance-analyzer/recipe.yaml +45 -0
- agent_recipes/templates/ai-performance-analyzer/tools.py +159 -0
- agent_recipes/templates/ai-podcast-cleaner/README.md +117 -0
- agent_recipes/templates/ai-podcast-cleaner/TEMPLATE.yaml +117 -0
- agent_recipes/templates/ai-podcast-cleaner/agents.yaml +59 -0
- agent_recipes/templates/ai-podcast-cleaner/workflow.yaml +77 -0
- agent_recipes/templates/ai-podcast-transcriber/README.md +59 -0
- agent_recipes/templates/ai-podcast-transcriber/TEMPLATE.yaml +32 -0
- agent_recipes/templates/ai-post-copy-generator/recipe.yaml +41 -0
- agent_recipes/templates/ai-post-copy-generator/tools.py +105 -0
- agent_recipes/templates/ai-product-description-generator/README.md +59 -0
- agent_recipes/templates/ai-product-description-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-publisher-pack/recipe.yaml +44 -0
- agent_recipes/templates/ai-publisher-pack/tools.py +252 -0
- agent_recipes/templates/ai-qr-code-generator/README.md +60 -0
- agent_recipes/templates/ai-qr-code-generator/TEMPLATE.yaml +26 -0
- agent_recipes/templates/ai-regex-generator/README.md +59 -0
- agent_recipes/templates/ai-regex-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-repo-readme/README.md +13 -0
- agent_recipes/templates/ai-repo-readme/TEMPLATE.yaml +42 -0
- agent_recipes/templates/ai-report-generator/README.md +61 -0
- agent_recipes/templates/ai-report-generator/TEMPLATE.yaml +32 -0
- agent_recipes/templates/ai-resume-parser/README.md +60 -0
- agent_recipes/templates/ai-resume-parser/TEMPLATE.yaml +33 -0
- agent_recipes/templates/ai-rss-aggregator/README.md +60 -0
- agent_recipes/templates/ai-rss-aggregator/TEMPLATE.yaml +30 -0
- agent_recipes/templates/ai-schema-generator/README.md +12 -0
- agent_recipes/templates/ai-schema-generator/TEMPLATE.yaml +34 -0
- agent_recipes/templates/ai-screen-recorder/recipe.yaml +43 -0
- agent_recipes/templates/ai-screen-recorder/tools.py +184 -0
- agent_recipes/templates/ai-screenshot-capture/recipe.yaml +45 -0
- agent_recipes/templates/ai-screenshot-capture/tools.py +231 -0
- agent_recipes/templates/ai-screenshot-ocr/README.md +12 -0
- agent_recipes/templates/ai-screenshot-ocr/TEMPLATE.yaml +37 -0
- agent_recipes/templates/ai-script-writer/recipe.yaml +58 -0
- agent_recipes/templates/ai-script-writer/tools.py +297 -0
- agent_recipes/templates/ai-sentiment-analyzer/README.md +59 -0
- agent_recipes/templates/ai-sentiment-analyzer/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-seo-optimizer/README.md +59 -0
- agent_recipes/templates/ai-seo-optimizer/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-signal-ranker/recipe.yaml +54 -0
- agent_recipes/templates/ai-signal-ranker/tools.py +256 -0
- agent_recipes/templates/ai-sitemap-generator/README.md +59 -0
- agent_recipes/templates/ai-sitemap-generator/TEMPLATE.yaml +26 -0
- agent_recipes/templates/ai-sitemap-scraper/README.md +13 -0
- agent_recipes/templates/ai-sitemap-scraper/TEMPLATE.yaml +41 -0
- agent_recipes/templates/ai-slide-generator/README.md +60 -0
- agent_recipes/templates/ai-slide-generator/TEMPLATE.yaml +29 -0
- agent_recipes/templates/ai-slide-to-notes/README.md +12 -0
- agent_recipes/templates/ai-slide-to-notes/TEMPLATE.yaml +37 -0
- agent_recipes/templates/ai-social-media-generator/README.md +59 -0
- agent_recipes/templates/ai-social-media-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-sql-generator/README.md +59 -0
- agent_recipes/templates/ai-sql-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-subtitle-generator/README.md +59 -0
- agent_recipes/templates/ai-subtitle-generator/TEMPLATE.yaml +31 -0
- agent_recipes/templates/ai-test-generator/README.md +59 -0
- agent_recipes/templates/ai-test-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-translation-batch/README.md +59 -0
- agent_recipes/templates/ai-translation-batch/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-url-to-markdown/README.md +14 -0
- agent_recipes/templates/ai-url-to-markdown/TEMPLATE.yaml +44 -0
- agent_recipes/templates/ai-video-chapter-generator/README.md +59 -0
- agent_recipes/templates/ai-video-chapter-generator/TEMPLATE.yaml +32 -0
- agent_recipes/templates/ai-video-compressor/README.md +59 -0
- agent_recipes/templates/ai-video-compressor/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-video-editor/README.md +254 -0
- agent_recipes/templates/ai-video-editor/TEMPLATE.yaml +139 -0
- agent_recipes/templates/ai-video-editor/agents.yaml +36 -0
- agent_recipes/templates/ai-video-editor/requirements.txt +8 -0
- agent_recipes/templates/ai-video-editor/scripts/run.sh +10 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__init__.py +45 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__main__.py +8 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/__init__.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/cli.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/config.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/ffmpeg_probe.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/heuristics.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/llm_plan.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/models.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/pipeline.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/render.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/timeline.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/transcribe.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/utils.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/cli.py +343 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/config.py +102 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/ffmpeg_probe.py +92 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/heuristics.py +119 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/llm_plan.py +277 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/models.py +343 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/pipeline.py +287 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/render.py +274 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/timeline.py +278 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/transcribe.py +233 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/utils.py +222 -0
- agent_recipes/templates/ai-video-editor/src/input.mov +0 -0
- agent_recipes/templates/ai-video-editor/src/out.mp4 +0 -0
- agent_recipes/templates/ai-video-editor/tests/test_heuristics.py +130 -0
- agent_recipes/templates/ai-video-editor/tests/test_models.py +152 -0
- agent_recipes/templates/ai-video-editor/tests/test_timeline.py +105 -0
- agent_recipes/templates/ai-video-editor/workflow.yaml +51 -0
- agent_recipes/templates/ai-video-highlight-extractor/README.md +60 -0
- agent_recipes/templates/ai-video-highlight-extractor/TEMPLATE.yaml +33 -0
- agent_recipes/templates/ai-video-merger/recipe.yaml +40 -0
- agent_recipes/templates/ai-video-merger/tools.py +172 -0
- agent_recipes/templates/ai-video-thumbnails/README.md +16 -0
- agent_recipes/templates/ai-video-thumbnails/TEMPLATE.yaml +53 -0
- agent_recipes/templates/ai-video-to-gif/README.md +14 -0
- agent_recipes/templates/ai-video-to-gif/TEMPLATE.yaml +64 -0
- agent_recipes/templates/ai-voice-cloner/README.md +59 -0
- agent_recipes/templates/ai-voice-cloner/TEMPLATE.yaml +31 -0
- agent_recipes/templates/ai-voiceover-generator/recipe.yaml +41 -0
- agent_recipes/templates/ai-voiceover-generator/tools.py +194 -0
- agent_recipes/templates/ai-watermark-adder/README.md +59 -0
- agent_recipes/templates/ai-watermark-adder/TEMPLATE.yaml +26 -0
- agent_recipes/templates/ai-watermark-remover/README.md +60 -0
- agent_recipes/templates/ai-watermark-remover/TEMPLATE.yaml +32 -0
- agent_recipes/templates/data-transformer/README.md +75 -0
- agent_recipes/templates/data-transformer/TEMPLATE.yaml +63 -0
- agent_recipes/templates/data-transformer/agents.yaml +70 -0
- agent_recipes/templates/data-transformer/workflow.yaml +92 -0
- agent_recipes/templates/shorts-generator/README.md +61 -0
- agent_recipes/templates/shorts-generator/TEMPLATE.yaml +65 -0
- agent_recipes/templates/shorts-generator/agents.yaml +66 -0
- agent_recipes/templates/shorts-generator/workflow.yaml +86 -0
- agent_recipes/templates/transcript-generator/README.md +103 -0
- agent_recipes/templates/transcript-generator/TEMPLATE.yaml +57 -0
- agent_recipes/templates/transcript-generator/agents.yaml +62 -0
- agent_recipes/templates/transcript-generator/workflow.yaml +82 -0
- agent_recipes/templates/video-editor/README.md +70 -0
- agent_recipes/templates/video-editor/TEMPLATE.yaml +55 -0
- agent_recipes/templates/video-editor/agents.yaml +68 -0
- agent_recipes/templates/video-editor/workflow.yaml +92 -0
- agent_recipes-0.0.5.dist-info/METADATA +145 -0
- agent_recipes-0.0.5.dist-info/RECORD +269 -0
- agent_recipes-0.0.5.dist-info/WHEEL +5 -0
- agent_recipes-0.0.5.dist-info/top_level.txt +1 -0
- /236/326/177nE/243/231/214/232/265/322m/201/253/353/022C/372/321/266/b/225^=/272/017t/262/3337/310@/315wb/341pB/277z/216/330/314/004/265B/213/375/236/203/026/373/307/354z41/347#/374q/262/22589/032/276 /277/244Vh/322/017/004/224/215/004/367/377/375/335/n +0 -0
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"""
|
|
2
|
+
AI B-roll Builder Tools
|
|
3
|
+
|
|
4
|
+
Create B-roll video with:
|
|
5
|
+
- Ken Burns effect
|
|
6
|
+
- Pan and zoom
|
|
7
|
+
- Crossfade transitions
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
import logging
|
|
11
|
+
import os
|
|
12
|
+
import subprocess
|
|
13
|
+
from datetime import datetime
|
|
14
|
+
from pathlib import Path
|
|
15
|
+
from typing import Any, Dict, List, Optional
|
|
16
|
+
|
|
17
|
+
logger = logging.getLogger(__name__)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def create_ken_burns(
|
|
21
|
+
image_path: str,
|
|
22
|
+
output_path: str,
|
|
23
|
+
duration: float = 5.0,
|
|
24
|
+
zoom_start: float = 1.0,
|
|
25
|
+
zoom_end: float = 1.2,
|
|
26
|
+
pan_x: float = 0.0,
|
|
27
|
+
pan_y: float = 0.0,
|
|
28
|
+
) -> Dict[str, Any]:
|
|
29
|
+
"""
|
|
30
|
+
Apply Ken Burns effect to an image.
|
|
31
|
+
|
|
32
|
+
Args:
|
|
33
|
+
image_path: Path to input image
|
|
34
|
+
output_path: Path to output video
|
|
35
|
+
duration: Duration in seconds
|
|
36
|
+
zoom_start: Starting zoom level
|
|
37
|
+
zoom_end: Ending zoom level
|
|
38
|
+
pan_x: Horizontal pan (-1 to 1)
|
|
39
|
+
pan_y: Vertical pan (-1 to 1)
|
|
40
|
+
|
|
41
|
+
Returns:
|
|
42
|
+
Dictionary with output info
|
|
43
|
+
"""
|
|
44
|
+
try:
|
|
45
|
+
# Use ffmpeg for Ken Burns effect
|
|
46
|
+
zoom_expr = f"zoom+{(zoom_end - zoom_start) / (duration * 25)}"
|
|
47
|
+
|
|
48
|
+
cmd = [
|
|
49
|
+
"ffmpeg", "-y",
|
|
50
|
+
"-loop", "1",
|
|
51
|
+
"-i", image_path,
|
|
52
|
+
"-vf", f"scale=8000:-1,zoompan=z='{zoom_expr}':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d={int(duration * 25)}:s=1920x1080:fps=25",
|
|
53
|
+
"-c:v", "libx264",
|
|
54
|
+
"-t", str(duration),
|
|
55
|
+
"-pix_fmt", "yuv420p",
|
|
56
|
+
output_path
|
|
57
|
+
]
|
|
58
|
+
|
|
59
|
+
result = subprocess.run(cmd, capture_output=True, text=True)
|
|
60
|
+
|
|
61
|
+
if result.returncode != 0:
|
|
62
|
+
logger.warning(f"FFmpeg warning: {result.stderr}")
|
|
63
|
+
|
|
64
|
+
return {
|
|
65
|
+
"path": output_path,
|
|
66
|
+
"duration": duration,
|
|
67
|
+
"effect": "ken_burns",
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
except Exception as e:
|
|
71
|
+
logger.error(f"Error creating Ken Burns: {e}")
|
|
72
|
+
return {"error": str(e)}
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def apply_pan_zoom(
|
|
76
|
+
image_path: str,
|
|
77
|
+
output_path: str,
|
|
78
|
+
duration: float = 5.0,
|
|
79
|
+
effect: str = "zoom_in",
|
|
80
|
+
) -> Dict[str, Any]:
|
|
81
|
+
"""
|
|
82
|
+
Apply pan or zoom effect to image.
|
|
83
|
+
|
|
84
|
+
Args:
|
|
85
|
+
image_path: Input image path
|
|
86
|
+
output_path: Output video path
|
|
87
|
+
duration: Duration in seconds
|
|
88
|
+
effect: Effect type (zoom_in, zoom_out, pan_left, pan_right)
|
|
89
|
+
|
|
90
|
+
Returns:
|
|
91
|
+
Dictionary with output info
|
|
92
|
+
"""
|
|
93
|
+
effects = {
|
|
94
|
+
"zoom_in": "zoompan=z='zoom+0.001':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'",
|
|
95
|
+
"zoom_out": "zoompan=z='1.5-on*0.001':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'",
|
|
96
|
+
"pan_left": "zoompan=z='1.1':x='iw*on/100':y='ih/2-(ih/zoom/2)'",
|
|
97
|
+
"pan_right": "zoompan=z='1.1':x='iw-iw*on/100':y='ih/2-(ih/zoom/2)'",
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
filter_expr = effects.get(effect, effects["zoom_in"])
|
|
101
|
+
|
|
102
|
+
try:
|
|
103
|
+
cmd = [
|
|
104
|
+
"ffmpeg", "-y",
|
|
105
|
+
"-loop", "1",
|
|
106
|
+
"-i", image_path,
|
|
107
|
+
"-vf", f"scale=4000:-1,{filter_expr}:d={int(duration * 25)}:s=1920x1080:fps=25",
|
|
108
|
+
"-c:v", "libx264",
|
|
109
|
+
"-t", str(duration),
|
|
110
|
+
"-pix_fmt", "yuv420p",
|
|
111
|
+
output_path
|
|
112
|
+
]
|
|
113
|
+
|
|
114
|
+
subprocess.run(cmd, capture_output=True, check=True)
|
|
115
|
+
|
|
116
|
+
return {
|
|
117
|
+
"path": output_path,
|
|
118
|
+
"duration": duration,
|
|
119
|
+
"effect": effect,
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
except Exception as e:
|
|
123
|
+
logger.error(f"Error applying effect: {e}")
|
|
124
|
+
return {"error": str(e)}
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
def build_broll(
|
|
128
|
+
images: List[str],
|
|
129
|
+
output_path: Optional[str] = None,
|
|
130
|
+
duration_per_image: float = 5.0,
|
|
131
|
+
transition: str = "crossfade",
|
|
132
|
+
transition_duration: float = 0.5,
|
|
133
|
+
) -> Dict[str, Any]:
|
|
134
|
+
"""
|
|
135
|
+
Build B-roll video from multiple images.
|
|
136
|
+
|
|
137
|
+
Args:
|
|
138
|
+
images: List of image paths
|
|
139
|
+
output_path: Output video path
|
|
140
|
+
duration_per_image: Duration per image
|
|
141
|
+
transition: Transition type
|
|
142
|
+
transition_duration: Transition duration
|
|
143
|
+
|
|
144
|
+
Returns:
|
|
145
|
+
Dictionary with output info
|
|
146
|
+
"""
|
|
147
|
+
import tempfile
|
|
148
|
+
|
|
149
|
+
if not output_path:
|
|
150
|
+
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
|
151
|
+
output_path = f"broll_{timestamp}.mp4"
|
|
152
|
+
|
|
153
|
+
if not images:
|
|
154
|
+
return {"error": "No images provided"}
|
|
155
|
+
|
|
156
|
+
with tempfile.TemporaryDirectory() as temp_dir:
|
|
157
|
+
clips = []
|
|
158
|
+
effects = ["zoom_in", "zoom_out", "pan_left", "pan_right"]
|
|
159
|
+
|
|
160
|
+
# Create individual clips with effects
|
|
161
|
+
for i, image in enumerate(images):
|
|
162
|
+
if not os.path.exists(image):
|
|
163
|
+
logger.warning(f"Image not found: {image}")
|
|
164
|
+
continue
|
|
165
|
+
|
|
166
|
+
clip_path = os.path.join(temp_dir, f"clip_{i:03d}.mp4")
|
|
167
|
+
effect = effects[i % len(effects)]
|
|
168
|
+
|
|
169
|
+
result = apply_pan_zoom(image, clip_path, duration_per_image, effect)
|
|
170
|
+
if "path" in result:
|
|
171
|
+
clips.append(result["path"])
|
|
172
|
+
|
|
173
|
+
if not clips:
|
|
174
|
+
return {"error": "No clips created"}
|
|
175
|
+
|
|
176
|
+
# Create concat file
|
|
177
|
+
concat_file = os.path.join(temp_dir, "concat.txt")
|
|
178
|
+
with open(concat_file, "w") as f:
|
|
179
|
+
for clip in clips:
|
|
180
|
+
f.write(f"file '{clip}'\n")
|
|
181
|
+
|
|
182
|
+
# Concatenate clips
|
|
183
|
+
try:
|
|
184
|
+
cmd = [
|
|
185
|
+
"ffmpeg", "-y",
|
|
186
|
+
"-f", "concat",
|
|
187
|
+
"-safe", "0",
|
|
188
|
+
"-i", concat_file,
|
|
189
|
+
"-c:v", "libx264",
|
|
190
|
+
"-pix_fmt", "yuv420p",
|
|
191
|
+
output_path
|
|
192
|
+
]
|
|
193
|
+
|
|
194
|
+
subprocess.run(cmd, capture_output=True, check=True)
|
|
195
|
+
|
|
196
|
+
return {
|
|
197
|
+
"path": output_path,
|
|
198
|
+
"clips": len(clips),
|
|
199
|
+
"total_duration": len(clips) * duration_per_image,
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
except Exception as e:
|
|
203
|
+
logger.error(f"Error building B-roll: {e}")
|
|
204
|
+
return {"error": str(e)}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Calendar Scheduler
|
|
2
|
+
|
|
3
|
+
Parse and schedule events from text to iCal
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install agent-recipes
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## CLI Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Basic usage
|
|
15
|
+
praison recipes run ai-calendar-scheduler <input>
|
|
16
|
+
|
|
17
|
+
# With output directory
|
|
18
|
+
praison recipes run ai-calendar-scheduler <input> --output ./output/
|
|
19
|
+
|
|
20
|
+
# Dry run (check dependencies only)
|
|
21
|
+
praison recipes run ai-calendar-scheduler <input> --dry-run
|
|
22
|
+
|
|
23
|
+
# Show recipe info
|
|
24
|
+
praison recipes info ai-calendar-scheduler
|
|
25
|
+
|
|
26
|
+
# Check dependencies
|
|
27
|
+
praison recipes doctor ai-calendar-scheduler
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Python Usage
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
from praisonaiagents import Agent
|
|
34
|
+
from agent_recipes import load_recipe
|
|
35
|
+
|
|
36
|
+
# Load and run recipe
|
|
37
|
+
recipe = load_recipe("ai-calendar-scheduler")
|
|
38
|
+
result = recipe.run(input="<your-input>")
|
|
39
|
+
print(result)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Requirements
|
|
43
|
+
|
|
44
|
+
### Packages
|
|
45
|
+
- openai
|
|
46
|
+
- icalendar
|
|
47
|
+
|
|
48
|
+
### Environment Variables
|
|
49
|
+
- OPENAI_API_KEY
|
|
50
|
+
|
|
51
|
+
### External Tools
|
|
52
|
+
- None
|
|
53
|
+
|
|
54
|
+
## Tags
|
|
55
|
+
|
|
56
|
+
`productivity`, `calendar`, `scheduling`
|
|
57
|
+
|
|
58
|
+
## License
|
|
59
|
+
|
|
60
|
+
Apache-2.0
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: ai-calendar-scheduler
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Parse and schedule events from text to iCal
|
|
4
|
+
author: praison
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
tags:
|
|
7
|
+
- productivity
|
|
8
|
+
- calendar
|
|
9
|
+
- scheduling
|
|
10
|
+
|
|
11
|
+
requires:
|
|
12
|
+
tools:
|
|
13
|
+
- llm_tool
|
|
14
|
+
packages:
|
|
15
|
+
- openai
|
|
16
|
+
- icalendar
|
|
17
|
+
env:
|
|
18
|
+
- OPENAI_API_KEY
|
|
19
|
+
|
|
20
|
+
cli:
|
|
21
|
+
command: praison recipes run ai-calendar-scheduler
|
|
22
|
+
examples:
|
|
23
|
+
- praison recipes run ai-calendar-scheduler <input>
|
|
24
|
+
- praison recipes run ai-calendar-scheduler <input> --output ./output/
|
|
25
|
+
- praison recipes run ai-calendar-scheduler <input> --dry-run
|
|
26
|
+
|
|
27
|
+
safety:
|
|
28
|
+
dry_run_default: false
|
|
29
|
+
overwrites_files: true
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# AI Changelog Generator
|
|
2
|
+
|
|
3
|
+
Generate CHANGELOG.md from git commit history.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```bash
|
|
7
|
+
praison run ai-changelog-generator ./my-repo
|
|
8
|
+
praison run ai-changelog-generator ./my-repo --since v1.0.0
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Output
|
|
12
|
+
- `CHANGELOG.md` - Formatted changelog
|
|
13
|
+
- `release-notes.md` - Human-readable summary
|
|
14
|
+
- `commits.json` - Structured commit data
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
name: ai-changelog-generator
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Generate CHANGELOG.md from git commit history.
|
|
4
|
+
author: praisonai
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
tags: [git, changelog, release-notes, documentation]
|
|
7
|
+
|
|
8
|
+
requires:
|
|
9
|
+
tools: [shell_tool]
|
|
10
|
+
packages: [praisonai-tools]
|
|
11
|
+
env: [OPENAI_API_KEY]
|
|
12
|
+
external:
|
|
13
|
+
- name: git
|
|
14
|
+
check: "git --version"
|
|
15
|
+
|
|
16
|
+
config:
|
|
17
|
+
input:
|
|
18
|
+
type: string
|
|
19
|
+
required: true
|
|
20
|
+
output:
|
|
21
|
+
type: string
|
|
22
|
+
since:
|
|
23
|
+
type: string
|
|
24
|
+
|
|
25
|
+
cli:
|
|
26
|
+
command: ai-changelog-generator
|
|
27
|
+
args:
|
|
28
|
+
- name: input
|
|
29
|
+
positional: true
|
|
30
|
+
required: true
|
|
31
|
+
- name: --output
|
|
32
|
+
short: -o
|
|
33
|
+
- name: --since
|
|
34
|
+
examples:
|
|
35
|
+
- "praison run ai-changelog-generator ./my-repo"
|
|
36
|
+
- "praison run ai-changelog-generator ./my-repo --since v1.0.0"
|
|
37
|
+
|
|
38
|
+
outputs:
|
|
39
|
+
- name: CHANGELOG.md
|
|
40
|
+
type: file
|
|
41
|
+
- name: release-notes.md
|
|
42
|
+
type: file
|
|
43
|
+
- name: commits.json
|
|
44
|
+
type: file
|
|
45
|
+
- name: run.json
|
|
46
|
+
type: file
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Chart Generator
|
|
2
|
+
|
|
3
|
+
Generate charts/visualizations from data
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install agent-recipes
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## CLI Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Basic usage
|
|
15
|
+
praison recipes run ai-chart-generator <input>
|
|
16
|
+
|
|
17
|
+
# With output directory
|
|
18
|
+
praison recipes run ai-chart-generator <input> --output ./output/
|
|
19
|
+
|
|
20
|
+
# Dry run (check dependencies only)
|
|
21
|
+
praison recipes run ai-chart-generator <input> --dry-run
|
|
22
|
+
|
|
23
|
+
# Show recipe info
|
|
24
|
+
praison recipes info ai-chart-generator
|
|
25
|
+
|
|
26
|
+
# Check dependencies
|
|
27
|
+
praison recipes doctor ai-chart-generator
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Python Usage
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
from praisonaiagents import Agent
|
|
34
|
+
from agent_recipes import load_recipe
|
|
35
|
+
|
|
36
|
+
# Load and run recipe
|
|
37
|
+
recipe = load_recipe("ai-chart-generator")
|
|
38
|
+
result = recipe.run(input="<your-input>")
|
|
39
|
+
print(result)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Requirements
|
|
43
|
+
|
|
44
|
+
### Packages
|
|
45
|
+
- openai
|
|
46
|
+
- pandas
|
|
47
|
+
- matplotlib
|
|
48
|
+
|
|
49
|
+
### Environment Variables
|
|
50
|
+
- OPENAI_API_KEY
|
|
51
|
+
|
|
52
|
+
### External Tools
|
|
53
|
+
- None
|
|
54
|
+
|
|
55
|
+
## Tags
|
|
56
|
+
|
|
57
|
+
`data`, `chart`, `visualization`
|
|
58
|
+
|
|
59
|
+
## License
|
|
60
|
+
|
|
61
|
+
Apache-2.0
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: ai-chart-generator
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Generate charts/visualizations from data
|
|
4
|
+
author: praison
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
tags:
|
|
7
|
+
- data
|
|
8
|
+
- chart
|
|
9
|
+
- visualization
|
|
10
|
+
|
|
11
|
+
requires:
|
|
12
|
+
tools:
|
|
13
|
+
- data_tool
|
|
14
|
+
- chart_tool
|
|
15
|
+
- llm_tool
|
|
16
|
+
packages:
|
|
17
|
+
- openai
|
|
18
|
+
- pandas
|
|
19
|
+
- matplotlib
|
|
20
|
+
env:
|
|
21
|
+
- OPENAI_API_KEY
|
|
22
|
+
|
|
23
|
+
cli:
|
|
24
|
+
command: praison recipes run ai-chart-generator
|
|
25
|
+
examples:
|
|
26
|
+
- praison recipes run ai-chart-generator <input>
|
|
27
|
+
- praison recipes run ai-chart-generator <input> --output ./output/
|
|
28
|
+
- praison recipes run ai-chart-generator <input> --dry-run
|
|
29
|
+
|
|
30
|
+
safety:
|
|
31
|
+
dry_run_default: false
|
|
32
|
+
overwrites_files: true
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
name: ai-code-documenter
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Generate documentation from source code.
|
|
4
|
+
author: praisonai
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
tags: [code, documentation, api-docs]
|
|
7
|
+
|
|
8
|
+
requires:
|
|
9
|
+
tools: [shell_tool]
|
|
10
|
+
packages: [praisonai-tools]
|
|
11
|
+
env: [OPENAI_API_KEY]
|
|
12
|
+
|
|
13
|
+
config:
|
|
14
|
+
input:
|
|
15
|
+
type: string
|
|
16
|
+
required: true
|
|
17
|
+
output:
|
|
18
|
+
type: string
|
|
19
|
+
|
|
20
|
+
cli:
|
|
21
|
+
command: ai-code-documenter
|
|
22
|
+
args:
|
|
23
|
+
- name: input
|
|
24
|
+
positional: true
|
|
25
|
+
required: true
|
|
26
|
+
- name: --output
|
|
27
|
+
short: -o
|
|
28
|
+
examples:
|
|
29
|
+
- "praison run ai-code-documenter ./src/"
|
|
30
|
+
|
|
31
|
+
outputs:
|
|
32
|
+
- name: docs/
|
|
33
|
+
type: directory
|
|
34
|
+
- name: api.md
|
|
35
|
+
type: file
|
|
36
|
+
- name: run.json
|
|
37
|
+
type: file
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Code Refactorer
|
|
2
|
+
|
|
3
|
+
Refactor code with AI suggestions (patch-based, tests-first option)
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install agent-recipes
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## CLI Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Basic usage
|
|
15
|
+
praison recipes run ai-code-refactorer <input>
|
|
16
|
+
|
|
17
|
+
# With output directory
|
|
18
|
+
praison recipes run ai-code-refactorer <input> --output ./output/
|
|
19
|
+
|
|
20
|
+
# Dry run (check dependencies only)
|
|
21
|
+
praison recipes run ai-code-refactorer <input> --dry-run
|
|
22
|
+
|
|
23
|
+
# Show recipe info
|
|
24
|
+
praison recipes info ai-code-refactorer
|
|
25
|
+
|
|
26
|
+
# Check dependencies
|
|
27
|
+
praison recipes doctor ai-code-refactorer
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Python Usage
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
from praisonaiagents import Agent
|
|
34
|
+
from agent_recipes import load_recipe
|
|
35
|
+
|
|
36
|
+
# Load and run recipe
|
|
37
|
+
recipe = load_recipe("ai-code-refactorer")
|
|
38
|
+
result = recipe.run(input="<your-input>")
|
|
39
|
+
print(result)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Requirements
|
|
43
|
+
|
|
44
|
+
### Packages
|
|
45
|
+
- openai
|
|
46
|
+
|
|
47
|
+
### Environment Variables
|
|
48
|
+
- OPENAI_API_KEY
|
|
49
|
+
|
|
50
|
+
### External Tools
|
|
51
|
+
- None
|
|
52
|
+
|
|
53
|
+
## Tags
|
|
54
|
+
|
|
55
|
+
`code`, `refactoring`, `improvement`
|
|
56
|
+
|
|
57
|
+
## License
|
|
58
|
+
|
|
59
|
+
Apache-2.0
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: ai-code-refactorer
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Refactor code with AI suggestions (patch-based, tests-first option)
|
|
4
|
+
author: praison
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
tags:
|
|
7
|
+
- code
|
|
8
|
+
- refactoring
|
|
9
|
+
- improvement
|
|
10
|
+
|
|
11
|
+
requires:
|
|
12
|
+
tools:
|
|
13
|
+
- llm_tool
|
|
14
|
+
packages:
|
|
15
|
+
- openai
|
|
16
|
+
env:
|
|
17
|
+
- OPENAI_API_KEY
|
|
18
|
+
|
|
19
|
+
cli:
|
|
20
|
+
command: praison recipes run ai-code-refactorer
|
|
21
|
+
examples:
|
|
22
|
+
- praison recipes run ai-code-refactorer <input>
|
|
23
|
+
- praison recipes run ai-code-refactorer <input> --output ./output/
|
|
24
|
+
- praison recipes run ai-code-refactorer <input> --dry-run
|
|
25
|
+
|
|
26
|
+
safety:
|
|
27
|
+
dry_run_default: true
|
|
28
|
+
overwrites_files: true
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Code Reviewer
|
|
2
|
+
|
|
3
|
+
Automated code review with suggestions
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install agent-recipes
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## CLI Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Basic usage
|
|
15
|
+
praison recipes run ai-code-reviewer <input>
|
|
16
|
+
|
|
17
|
+
# With output directory
|
|
18
|
+
praison recipes run ai-code-reviewer <input> --output ./output/
|
|
19
|
+
|
|
20
|
+
# Dry run (check dependencies only)
|
|
21
|
+
praison recipes run ai-code-reviewer <input> --dry-run
|
|
22
|
+
|
|
23
|
+
# Show recipe info
|
|
24
|
+
praison recipes info ai-code-reviewer
|
|
25
|
+
|
|
26
|
+
# Check dependencies
|
|
27
|
+
praison recipes doctor ai-code-reviewer
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Python Usage
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
from praisonaiagents import Agent
|
|
34
|
+
from agent_recipes import load_recipe
|
|
35
|
+
|
|
36
|
+
# Load and run recipe
|
|
37
|
+
recipe = load_recipe("ai-code-reviewer")
|
|
38
|
+
result = recipe.run(input="<your-input>")
|
|
39
|
+
print(result)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Requirements
|
|
43
|
+
|
|
44
|
+
### Packages
|
|
45
|
+
- openai
|
|
46
|
+
|
|
47
|
+
### Environment Variables
|
|
48
|
+
- OPENAI_API_KEY
|
|
49
|
+
|
|
50
|
+
### External Tools
|
|
51
|
+
- git
|
|
52
|
+
|
|
53
|
+
## Tags
|
|
54
|
+
|
|
55
|
+
`code`, `review`, `quality`
|
|
56
|
+
|
|
57
|
+
## License
|
|
58
|
+
|
|
59
|
+
Apache-2.0
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: ai-code-reviewer
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Automated code review with suggestions
|
|
4
|
+
author: praison
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
tags:
|
|
7
|
+
- code
|
|
8
|
+
- review
|
|
9
|
+
- quality
|
|
10
|
+
|
|
11
|
+
requires:
|
|
12
|
+
tools:
|
|
13
|
+
- repo_tool
|
|
14
|
+
- llm_tool
|
|
15
|
+
packages:
|
|
16
|
+
- openai
|
|
17
|
+
env:
|
|
18
|
+
- OPENAI_API_KEY
|
|
19
|
+
external:
|
|
20
|
+
- git
|
|
21
|
+
|
|
22
|
+
cli:
|
|
23
|
+
command: praison recipes run ai-code-reviewer
|
|
24
|
+
examples:
|
|
25
|
+
- praison recipes run ai-code-reviewer <input>
|
|
26
|
+
- praison recipes run ai-code-reviewer <input> --output ./output/
|
|
27
|
+
- praison recipes run ai-code-reviewer <input> --dry-run
|
|
28
|
+
|
|
29
|
+
safety:
|
|
30
|
+
dry_run_default: false
|
|
31
|
+
overwrites_files: true
|