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.
Files changed (270) hide show
  1. agent_recipes/__init__.py +27 -0
  2. agent_recipes/recipe_runtime/__init__.py +28 -0
  3. agent_recipes/recipe_runtime/core.py +385 -0
  4. agent_recipes/templates/ai-ab-hook-tester/recipe.yaml +45 -0
  5. agent_recipes/templates/ai-ab-hook-tester/tools.py +169 -0
  6. agent_recipes/templates/ai-angle-generator/recipe.yaml +49 -0
  7. agent_recipes/templates/ai-angle-generator/tools.py +182 -0
  8. agent_recipes/templates/ai-api-doc-generator/README.md +59 -0
  9. agent_recipes/templates/ai-api-doc-generator/TEMPLATE.yaml +29 -0
  10. agent_recipes/templates/ai-api-tester/README.md +60 -0
  11. agent_recipes/templates/ai-api-tester/TEMPLATE.yaml +29 -0
  12. agent_recipes/templates/ai-audio-enhancer/README.md +59 -0
  13. agent_recipes/templates/ai-audio-enhancer/TEMPLATE.yaml +28 -0
  14. agent_recipes/templates/ai-audio-normalizer/README.md +13 -0
  15. agent_recipes/templates/ai-audio-normalizer/TEMPLATE.yaml +44 -0
  16. agent_recipes/templates/ai-audio-splitter/README.md +14 -0
  17. agent_recipes/templates/ai-audio-splitter/TEMPLATE.yaml +47 -0
  18. agent_recipes/templates/ai-background-music-generator/README.md +59 -0
  19. agent_recipes/templates/ai-background-music-generator/TEMPLATE.yaml +28 -0
  20. agent_recipes/templates/ai-background-remover/README.md +60 -0
  21. agent_recipes/templates/ai-background-remover/TEMPLATE.yaml +27 -0
  22. agent_recipes/templates/ai-barcode-scanner/README.md +60 -0
  23. agent_recipes/templates/ai-barcode-scanner/TEMPLATE.yaml +26 -0
  24. agent_recipes/templates/ai-blog-generator/README.md +59 -0
  25. agent_recipes/templates/ai-blog-generator/TEMPLATE.yaml +28 -0
  26. agent_recipes/templates/ai-brief-generator/recipe.yaml +52 -0
  27. agent_recipes/templates/ai-brief-generator/tools.py +231 -0
  28. agent_recipes/templates/ai-broll-builder/recipe.yaml +47 -0
  29. agent_recipes/templates/ai-broll-builder/tools.py +204 -0
  30. agent_recipes/templates/ai-calendar-scheduler/README.md +60 -0
  31. agent_recipes/templates/ai-calendar-scheduler/TEMPLATE.yaml +29 -0
  32. agent_recipes/templates/ai-changelog-generator/README.md +14 -0
  33. agent_recipes/templates/ai-changelog-generator/TEMPLATE.yaml +46 -0
  34. agent_recipes/templates/ai-chart-generator/README.md +61 -0
  35. agent_recipes/templates/ai-chart-generator/TEMPLATE.yaml +32 -0
  36. agent_recipes/templates/ai-code-documenter/README.md +12 -0
  37. agent_recipes/templates/ai-code-documenter/TEMPLATE.yaml +37 -0
  38. agent_recipes/templates/ai-code-refactorer/README.md +59 -0
  39. agent_recipes/templates/ai-code-refactorer/TEMPLATE.yaml +28 -0
  40. agent_recipes/templates/ai-code-reviewer/README.md +59 -0
  41. agent_recipes/templates/ai-code-reviewer/TEMPLATE.yaml +31 -0
  42. agent_recipes/templates/ai-color-palette-extractor/README.md +60 -0
  43. agent_recipes/templates/ai-color-palette-extractor/TEMPLATE.yaml +27 -0
  44. agent_recipes/templates/ai-comment-miner/recipe.yaml +40 -0
  45. agent_recipes/templates/ai-comment-miner/tools.py +141 -0
  46. agent_recipes/templates/ai-commit-message-generator/README.md +59 -0
  47. agent_recipes/templates/ai-commit-message-generator/TEMPLATE.yaml +31 -0
  48. agent_recipes/templates/ai-content-calendar/recipe.yaml +43 -0
  49. agent_recipes/templates/ai-content-calendar/tools.py +170 -0
  50. agent_recipes/templates/ai-context-enricher/recipe.yaml +48 -0
  51. agent_recipes/templates/ai-context-enricher/tools.py +258 -0
  52. agent_recipes/templates/ai-contract-analyzer/README.md +60 -0
  53. agent_recipes/templates/ai-contract-analyzer/TEMPLATE.yaml +34 -0
  54. agent_recipes/templates/ai-csv-cleaner/README.md +13 -0
  55. agent_recipes/templates/ai-csv-cleaner/TEMPLATE.yaml +45 -0
  56. agent_recipes/templates/ai-cta-generator/recipe.yaml +54 -0
  57. agent_recipes/templates/ai-cta-generator/tools.py +174 -0
  58. agent_recipes/templates/ai-daily-news-show/recipe.yaml +103 -0
  59. agent_recipes/templates/ai-daily-news-show/tools.py +308 -0
  60. agent_recipes/templates/ai-data-anonymizer/README.md +60 -0
  61. agent_recipes/templates/ai-data-anonymizer/TEMPLATE.yaml +31 -0
  62. agent_recipes/templates/ai-data-profiler/README.md +14 -0
  63. agent_recipes/templates/ai-data-profiler/TEMPLATE.yaml +42 -0
  64. agent_recipes/templates/ai-dependency-auditor/README.md +12 -0
  65. agent_recipes/templates/ai-dependency-auditor/TEMPLATE.yaml +37 -0
  66. agent_recipes/templates/ai-doc-translator/README.md +12 -0
  67. agent_recipes/templates/ai-doc-translator/TEMPLATE.yaml +41 -0
  68. agent_recipes/templates/ai-duplicate-finder/README.md +59 -0
  69. agent_recipes/templates/ai-duplicate-finder/TEMPLATE.yaml +28 -0
  70. agent_recipes/templates/ai-ebook-converter/README.md +60 -0
  71. agent_recipes/templates/ai-ebook-converter/TEMPLATE.yaml +27 -0
  72. agent_recipes/templates/ai-email-parser/README.md +59 -0
  73. agent_recipes/templates/ai-email-parser/TEMPLATE.yaml +29 -0
  74. agent_recipes/templates/ai-etl-pipeline/README.md +60 -0
  75. agent_recipes/templates/ai-etl-pipeline/TEMPLATE.yaml +30 -0
  76. agent_recipes/templates/ai-excel-formula-generator/README.md +59 -0
  77. agent_recipes/templates/ai-excel-formula-generator/TEMPLATE.yaml +28 -0
  78. agent_recipes/templates/ai-face-blur/README.md +60 -0
  79. agent_recipes/templates/ai-face-blur/TEMPLATE.yaml +28 -0
  80. agent_recipes/templates/ai-fact-checker/recipe.yaml +52 -0
  81. agent_recipes/templates/ai-fact-checker/tools.py +279 -0
  82. agent_recipes/templates/ai-faq-generator/README.md +59 -0
  83. agent_recipes/templates/ai-faq-generator/TEMPLATE.yaml +28 -0
  84. agent_recipes/templates/ai-file-organizer/README.md +59 -0
  85. agent_recipes/templates/ai-file-organizer/TEMPLATE.yaml +29 -0
  86. agent_recipes/templates/ai-folder-packager/README.md +15 -0
  87. agent_recipes/templates/ai-folder-packager/TEMPLATE.yaml +48 -0
  88. agent_recipes/templates/ai-form-filler/README.md +60 -0
  89. agent_recipes/templates/ai-form-filler/TEMPLATE.yaml +30 -0
  90. agent_recipes/templates/ai-hashtag-optimizer/recipe.yaml +45 -0
  91. agent_recipes/templates/ai-hashtag-optimizer/tools.py +134 -0
  92. agent_recipes/templates/ai-hook-generator/recipe.yaml +50 -0
  93. agent_recipes/templates/ai-hook-generator/tools.py +177 -0
  94. agent_recipes/templates/ai-image-captioner/README.md +59 -0
  95. agent_recipes/templates/ai-image-captioner/TEMPLATE.yaml +28 -0
  96. agent_recipes/templates/ai-image-cataloger/README.md +13 -0
  97. agent_recipes/templates/ai-image-cataloger/TEMPLATE.yaml +39 -0
  98. agent_recipes/templates/ai-image-optimizer/README.md +13 -0
  99. agent_recipes/templates/ai-image-optimizer/TEMPLATE.yaml +43 -0
  100. agent_recipes/templates/ai-image-resizer/README.md +12 -0
  101. agent_recipes/templates/ai-image-resizer/TEMPLATE.yaml +39 -0
  102. agent_recipes/templates/ai-image-tagger/README.md +59 -0
  103. agent_recipes/templates/ai-image-tagger/TEMPLATE.yaml +28 -0
  104. agent_recipes/templates/ai-image-upscaler/README.md +60 -0
  105. agent_recipes/templates/ai-image-upscaler/TEMPLATE.yaml +27 -0
  106. agent_recipes/templates/ai-invoice-processor/README.md +60 -0
  107. agent_recipes/templates/ai-invoice-processor/TEMPLATE.yaml +34 -0
  108. agent_recipes/templates/ai-json-to-csv/README.md +12 -0
  109. agent_recipes/templates/ai-json-to-csv/TEMPLATE.yaml +36 -0
  110. agent_recipes/templates/ai-log-analyzer/README.md +59 -0
  111. agent_recipes/templates/ai-log-analyzer/TEMPLATE.yaml +28 -0
  112. agent_recipes/templates/ai-markdown-to-pdf/README.md +12 -0
  113. agent_recipes/templates/ai-markdown-to-pdf/TEMPLATE.yaml +40 -0
  114. agent_recipes/templates/ai-meeting-summarizer/README.md +59 -0
  115. agent_recipes/templates/ai-meeting-summarizer/TEMPLATE.yaml +32 -0
  116. agent_recipes/templates/ai-meta-tag-generator/README.md +59 -0
  117. agent_recipes/templates/ai-meta-tag-generator/TEMPLATE.yaml +28 -0
  118. agent_recipes/templates/ai-news-capture-pack/recipe.yaml +42 -0
  119. agent_recipes/templates/ai-news-capture-pack/tools.py +150 -0
  120. agent_recipes/templates/ai-news-crawler/recipe.yaml +99 -0
  121. agent_recipes/templates/ai-news-crawler/tools.py +417 -0
  122. agent_recipes/templates/ai-news-deduper/recipe.yaml +47 -0
  123. agent_recipes/templates/ai-news-deduper/tools.py +235 -0
  124. agent_recipes/templates/ai-newsletter-generator/README.md +59 -0
  125. agent_recipes/templates/ai-newsletter-generator/TEMPLATE.yaml +28 -0
  126. agent_recipes/templates/ai-note-summarizer/README.md +59 -0
  127. agent_recipes/templates/ai-note-summarizer/TEMPLATE.yaml +28 -0
  128. agent_recipes/templates/ai-pdf-summarizer/README.md +12 -0
  129. agent_recipes/templates/ai-pdf-summarizer/TEMPLATE.yaml +40 -0
  130. agent_recipes/templates/ai-pdf-to-markdown/README.md +19 -0
  131. agent_recipes/templates/ai-pdf-to-markdown/TEMPLATE.yaml +63 -0
  132. agent_recipes/templates/ai-performance-analyzer/recipe.yaml +45 -0
  133. agent_recipes/templates/ai-performance-analyzer/tools.py +159 -0
  134. agent_recipes/templates/ai-podcast-cleaner/README.md +117 -0
  135. agent_recipes/templates/ai-podcast-cleaner/TEMPLATE.yaml +117 -0
  136. agent_recipes/templates/ai-podcast-cleaner/agents.yaml +59 -0
  137. agent_recipes/templates/ai-podcast-cleaner/workflow.yaml +77 -0
  138. agent_recipes/templates/ai-podcast-transcriber/README.md +59 -0
  139. agent_recipes/templates/ai-podcast-transcriber/TEMPLATE.yaml +32 -0
  140. agent_recipes/templates/ai-post-copy-generator/recipe.yaml +41 -0
  141. agent_recipes/templates/ai-post-copy-generator/tools.py +105 -0
  142. agent_recipes/templates/ai-product-description-generator/README.md +59 -0
  143. agent_recipes/templates/ai-product-description-generator/TEMPLATE.yaml +28 -0
  144. agent_recipes/templates/ai-publisher-pack/recipe.yaml +44 -0
  145. agent_recipes/templates/ai-publisher-pack/tools.py +252 -0
  146. agent_recipes/templates/ai-qr-code-generator/README.md +60 -0
  147. agent_recipes/templates/ai-qr-code-generator/TEMPLATE.yaml +26 -0
  148. agent_recipes/templates/ai-regex-generator/README.md +59 -0
  149. agent_recipes/templates/ai-regex-generator/TEMPLATE.yaml +28 -0
  150. agent_recipes/templates/ai-repo-readme/README.md +13 -0
  151. agent_recipes/templates/ai-repo-readme/TEMPLATE.yaml +42 -0
  152. agent_recipes/templates/ai-report-generator/README.md +61 -0
  153. agent_recipes/templates/ai-report-generator/TEMPLATE.yaml +32 -0
  154. agent_recipes/templates/ai-resume-parser/README.md +60 -0
  155. agent_recipes/templates/ai-resume-parser/TEMPLATE.yaml +33 -0
  156. agent_recipes/templates/ai-rss-aggregator/README.md +60 -0
  157. agent_recipes/templates/ai-rss-aggregator/TEMPLATE.yaml +30 -0
  158. agent_recipes/templates/ai-schema-generator/README.md +12 -0
  159. agent_recipes/templates/ai-schema-generator/TEMPLATE.yaml +34 -0
  160. agent_recipes/templates/ai-screen-recorder/recipe.yaml +43 -0
  161. agent_recipes/templates/ai-screen-recorder/tools.py +184 -0
  162. agent_recipes/templates/ai-screenshot-capture/recipe.yaml +45 -0
  163. agent_recipes/templates/ai-screenshot-capture/tools.py +231 -0
  164. agent_recipes/templates/ai-screenshot-ocr/README.md +12 -0
  165. agent_recipes/templates/ai-screenshot-ocr/TEMPLATE.yaml +37 -0
  166. agent_recipes/templates/ai-script-writer/recipe.yaml +58 -0
  167. agent_recipes/templates/ai-script-writer/tools.py +297 -0
  168. agent_recipes/templates/ai-sentiment-analyzer/README.md +59 -0
  169. agent_recipes/templates/ai-sentiment-analyzer/TEMPLATE.yaml +28 -0
  170. agent_recipes/templates/ai-seo-optimizer/README.md +59 -0
  171. agent_recipes/templates/ai-seo-optimizer/TEMPLATE.yaml +28 -0
  172. agent_recipes/templates/ai-signal-ranker/recipe.yaml +54 -0
  173. agent_recipes/templates/ai-signal-ranker/tools.py +256 -0
  174. agent_recipes/templates/ai-sitemap-generator/README.md +59 -0
  175. agent_recipes/templates/ai-sitemap-generator/TEMPLATE.yaml +26 -0
  176. agent_recipes/templates/ai-sitemap-scraper/README.md +13 -0
  177. agent_recipes/templates/ai-sitemap-scraper/TEMPLATE.yaml +41 -0
  178. agent_recipes/templates/ai-slide-generator/README.md +60 -0
  179. agent_recipes/templates/ai-slide-generator/TEMPLATE.yaml +29 -0
  180. agent_recipes/templates/ai-slide-to-notes/README.md +12 -0
  181. agent_recipes/templates/ai-slide-to-notes/TEMPLATE.yaml +37 -0
  182. agent_recipes/templates/ai-social-media-generator/README.md +59 -0
  183. agent_recipes/templates/ai-social-media-generator/TEMPLATE.yaml +28 -0
  184. agent_recipes/templates/ai-sql-generator/README.md +59 -0
  185. agent_recipes/templates/ai-sql-generator/TEMPLATE.yaml +28 -0
  186. agent_recipes/templates/ai-subtitle-generator/README.md +59 -0
  187. agent_recipes/templates/ai-subtitle-generator/TEMPLATE.yaml +31 -0
  188. agent_recipes/templates/ai-test-generator/README.md +59 -0
  189. agent_recipes/templates/ai-test-generator/TEMPLATE.yaml +28 -0
  190. agent_recipes/templates/ai-translation-batch/README.md +59 -0
  191. agent_recipes/templates/ai-translation-batch/TEMPLATE.yaml +28 -0
  192. agent_recipes/templates/ai-url-to-markdown/README.md +14 -0
  193. agent_recipes/templates/ai-url-to-markdown/TEMPLATE.yaml +44 -0
  194. agent_recipes/templates/ai-video-chapter-generator/README.md +59 -0
  195. agent_recipes/templates/ai-video-chapter-generator/TEMPLATE.yaml +32 -0
  196. agent_recipes/templates/ai-video-compressor/README.md +59 -0
  197. agent_recipes/templates/ai-video-compressor/TEMPLATE.yaml +28 -0
  198. agent_recipes/templates/ai-video-editor/README.md +254 -0
  199. agent_recipes/templates/ai-video-editor/TEMPLATE.yaml +139 -0
  200. agent_recipes/templates/ai-video-editor/agents.yaml +36 -0
  201. agent_recipes/templates/ai-video-editor/requirements.txt +8 -0
  202. agent_recipes/templates/ai-video-editor/scripts/run.sh +10 -0
  203. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__init__.py +45 -0
  204. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__main__.py +8 -0
  205. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/__init__.cpython-312.pyc +0 -0
  206. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/cli.cpython-312.pyc +0 -0
  207. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/config.cpython-312.pyc +0 -0
  208. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/ffmpeg_probe.cpython-312.pyc +0 -0
  209. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/heuristics.cpython-312.pyc +0 -0
  210. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/llm_plan.cpython-312.pyc +0 -0
  211. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/models.cpython-312.pyc +0 -0
  212. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/pipeline.cpython-312.pyc +0 -0
  213. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/render.cpython-312.pyc +0 -0
  214. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/timeline.cpython-312.pyc +0 -0
  215. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/transcribe.cpython-312.pyc +0 -0
  216. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/utils.cpython-312.pyc +0 -0
  217. agent_recipes/templates/ai-video-editor/src/ai_video_editor/cli.py +343 -0
  218. agent_recipes/templates/ai-video-editor/src/ai_video_editor/config.py +102 -0
  219. agent_recipes/templates/ai-video-editor/src/ai_video_editor/ffmpeg_probe.py +92 -0
  220. agent_recipes/templates/ai-video-editor/src/ai_video_editor/heuristics.py +119 -0
  221. agent_recipes/templates/ai-video-editor/src/ai_video_editor/llm_plan.py +277 -0
  222. agent_recipes/templates/ai-video-editor/src/ai_video_editor/models.py +343 -0
  223. agent_recipes/templates/ai-video-editor/src/ai_video_editor/pipeline.py +287 -0
  224. agent_recipes/templates/ai-video-editor/src/ai_video_editor/render.py +274 -0
  225. agent_recipes/templates/ai-video-editor/src/ai_video_editor/timeline.py +278 -0
  226. agent_recipes/templates/ai-video-editor/src/ai_video_editor/transcribe.py +233 -0
  227. agent_recipes/templates/ai-video-editor/src/ai_video_editor/utils.py +222 -0
  228. agent_recipes/templates/ai-video-editor/src/input.mov +0 -0
  229. agent_recipes/templates/ai-video-editor/src/out.mp4 +0 -0
  230. agent_recipes/templates/ai-video-editor/tests/test_heuristics.py +130 -0
  231. agent_recipes/templates/ai-video-editor/tests/test_models.py +152 -0
  232. agent_recipes/templates/ai-video-editor/tests/test_timeline.py +105 -0
  233. agent_recipes/templates/ai-video-editor/workflow.yaml +51 -0
  234. agent_recipes/templates/ai-video-highlight-extractor/README.md +60 -0
  235. agent_recipes/templates/ai-video-highlight-extractor/TEMPLATE.yaml +33 -0
  236. agent_recipes/templates/ai-video-merger/recipe.yaml +40 -0
  237. agent_recipes/templates/ai-video-merger/tools.py +172 -0
  238. agent_recipes/templates/ai-video-thumbnails/README.md +16 -0
  239. agent_recipes/templates/ai-video-thumbnails/TEMPLATE.yaml +53 -0
  240. agent_recipes/templates/ai-video-to-gif/README.md +14 -0
  241. agent_recipes/templates/ai-video-to-gif/TEMPLATE.yaml +64 -0
  242. agent_recipes/templates/ai-voice-cloner/README.md +59 -0
  243. agent_recipes/templates/ai-voice-cloner/TEMPLATE.yaml +31 -0
  244. agent_recipes/templates/ai-voiceover-generator/recipe.yaml +41 -0
  245. agent_recipes/templates/ai-voiceover-generator/tools.py +194 -0
  246. agent_recipes/templates/ai-watermark-adder/README.md +59 -0
  247. agent_recipes/templates/ai-watermark-adder/TEMPLATE.yaml +26 -0
  248. agent_recipes/templates/ai-watermark-remover/README.md +60 -0
  249. agent_recipes/templates/ai-watermark-remover/TEMPLATE.yaml +32 -0
  250. agent_recipes/templates/data-transformer/README.md +75 -0
  251. agent_recipes/templates/data-transformer/TEMPLATE.yaml +63 -0
  252. agent_recipes/templates/data-transformer/agents.yaml +70 -0
  253. agent_recipes/templates/data-transformer/workflow.yaml +92 -0
  254. agent_recipes/templates/shorts-generator/README.md +61 -0
  255. agent_recipes/templates/shorts-generator/TEMPLATE.yaml +65 -0
  256. agent_recipes/templates/shorts-generator/agents.yaml +66 -0
  257. agent_recipes/templates/shorts-generator/workflow.yaml +86 -0
  258. agent_recipes/templates/transcript-generator/README.md +103 -0
  259. agent_recipes/templates/transcript-generator/TEMPLATE.yaml +57 -0
  260. agent_recipes/templates/transcript-generator/agents.yaml +62 -0
  261. agent_recipes/templates/transcript-generator/workflow.yaml +82 -0
  262. agent_recipes/templates/video-editor/README.md +70 -0
  263. agent_recipes/templates/video-editor/TEMPLATE.yaml +55 -0
  264. agent_recipes/templates/video-editor/agents.yaml +68 -0
  265. agent_recipes/templates/video-editor/workflow.yaml +92 -0
  266. agent_recipes-0.0.5.dist-info/METADATA +145 -0
  267. agent_recipes-0.0.5.dist-info/RECORD +269 -0
  268. agent_recipes-0.0.5.dist-info/WHEEL +5 -0
  269. agent_recipes-0.0.5.dist-info/top_level.txt +1 -0
  270. /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,279 @@
1
+ """
2
+ AI Fact Checker Tools
3
+
4
+ Verify content accuracy with:
5
+ - Claim extraction
6
+ - Source verification
7
+ - Citation linking
8
+ - Confidence scoring
9
+ """
10
+
11
+ import logging
12
+ import os
13
+ from typing import Any, Dict, List, Optional
14
+
15
+ logger = logging.getLogger(__name__)
16
+
17
+
18
+ def call_llm(prompt: str, max_tokens: int = 1000) -> str:
19
+ """Call OpenAI API for text generation."""
20
+ import requests
21
+
22
+ api_key = os.environ.get("OPENAI_API_KEY")
23
+ if not api_key:
24
+ raise ValueError("OPENAI_API_KEY not set")
25
+
26
+ response = requests.post(
27
+ "https://api.openai.com/v1/chat/completions",
28
+ headers={
29
+ "Authorization": f"Bearer {api_key}",
30
+ "Content-Type": "application/json",
31
+ },
32
+ json={
33
+ "model": "gpt-4o-mini",
34
+ "messages": [{"role": "user", "content": prompt}],
35
+ "max_tokens": max_tokens,
36
+ "temperature": 0.3,
37
+ },
38
+ timeout=60,
39
+ )
40
+ response.raise_for_status()
41
+ return response.json()["choices"][0]["message"]["content"]
42
+
43
+
44
+ def extract_claims(
45
+ content: str,
46
+ claim_types: Optional[List[str]] = None,
47
+ ) -> Dict[str, Any]:
48
+ """
49
+ Extract verifiable claims from content.
50
+
51
+ Args:
52
+ content: Text content to analyze
53
+ claim_types: Types of claims to extract
54
+
55
+ Returns:
56
+ Dictionary with extracted claims
57
+ """
58
+ claim_types = claim_types or ["factual", "statistical", "quote", "date"]
59
+
60
+ prompt = f"""Extract all verifiable claims from this content:
61
+
62
+ {content[:3000]}
63
+
64
+ For each claim, identify:
65
+ 1. The claim text
66
+ 2. Claim type (factual, statistical, quote, date, attribution)
67
+ 3. Confidence that this is a verifiable claim (HIGH/MEDIUM/LOW)
68
+
69
+ Format as:
70
+ CLAIM: [claim text]
71
+ TYPE: [type]
72
+ CONFIDENCE: [level]
73
+ ---"""
74
+
75
+ result = call_llm(prompt, max_tokens=1500)
76
+
77
+ claims = []
78
+ current_claim = {}
79
+
80
+ for line in result.split("\n"):
81
+ line = line.strip()
82
+ if line.startswith("CLAIM:"):
83
+ if current_claim:
84
+ claims.append(current_claim)
85
+ current_claim = {"claim": line[6:].strip()}
86
+ elif line.startswith("TYPE:"):
87
+ current_claim["type"] = line[5:].strip().lower()
88
+ elif line.startswith("CONFIDENCE:"):
89
+ current_claim["confidence"] = line[11:].strip().upper()
90
+ elif line == "---" and current_claim:
91
+ claims.append(current_claim)
92
+ current_claim = {}
93
+
94
+ if current_claim and "claim" in current_claim:
95
+ claims.append(current_claim)
96
+
97
+ return {
98
+ "claims": claims,
99
+ "total_claims": len(claims),
100
+ }
101
+
102
+
103
+ def verify_claims(
104
+ claims: List[Dict[str, Any]],
105
+ ) -> Dict[str, Any]:
106
+ """
107
+ Verify extracted claims.
108
+
109
+ Args:
110
+ claims: List of claim dictionaries
111
+
112
+ Returns:
113
+ Dictionary with verification results
114
+ """
115
+ verified = []
116
+
117
+ for claim in claims:
118
+ claim_text = claim.get("claim", "")
119
+
120
+ prompt = f"""Verify this claim and assess its accuracy:
121
+
122
+ Claim: {claim_text}
123
+
124
+ Provide:
125
+ 1. VERDICT: TRUE / FALSE / PARTIALLY TRUE / UNVERIFIABLE
126
+ 2. EXPLANATION: Brief explanation (1-2 sentences)
127
+ 3. SUGGESTED_SOURCE: Type of source that could verify this
128
+
129
+ Format:
130
+ VERDICT: [verdict]
131
+ EXPLANATION: [explanation]
132
+ SUGGESTED_SOURCE: [source type]"""
133
+
134
+ try:
135
+ result = call_llm(prompt, max_tokens=300)
136
+
137
+ verification = {
138
+ **claim,
139
+ "verdict": "UNVERIFIABLE",
140
+ "explanation": "",
141
+ "suggested_source": "",
142
+ }
143
+
144
+ for line in result.split("\n"):
145
+ line = line.strip()
146
+ if line.startswith("VERDICT:"):
147
+ verification["verdict"] = line[8:].strip().upper()
148
+ elif line.startswith("EXPLANATION:"):
149
+ verification["explanation"] = line[12:].strip()
150
+ elif line.startswith("SUGGESTED_SOURCE:"):
151
+ verification["suggested_source"] = line[17:].strip()
152
+
153
+ verified.append(verification)
154
+
155
+ except Exception as e:
156
+ logger.warning(f"Error verifying claim: {e}")
157
+ verified.append({
158
+ **claim,
159
+ "verdict": "ERROR",
160
+ "explanation": str(e),
161
+ })
162
+
163
+ # Generate flags for problematic claims
164
+ flags = []
165
+ for v in verified:
166
+ if v.get("verdict") in ["FALSE", "PARTIALLY TRUE"]:
167
+ flags.append({
168
+ "claim": v.get("claim", ""),
169
+ "issue": v.get("verdict"),
170
+ "explanation": v.get("explanation", ""),
171
+ })
172
+
173
+ return {
174
+ "verified_claims": verified,
175
+ "flags": flags,
176
+ "stats": {
177
+ "total": len(verified),
178
+ "true": sum(1 for v in verified if v.get("verdict") == "TRUE"),
179
+ "false": sum(1 for v in verified if v.get("verdict") == "FALSE"),
180
+ "partial": sum(1 for v in verified if v.get("verdict") == "PARTIALLY TRUE"),
181
+ "unverifiable": sum(1 for v in verified if v.get("verdict") == "UNVERIFIABLE"),
182
+ }
183
+ }
184
+
185
+
186
+ def find_citations(
187
+ claims: List[Dict[str, Any]],
188
+ use_web_search: bool = True,
189
+ ) -> Dict[str, Any]:
190
+ """
191
+ Find citation sources for claims.
192
+
193
+ Args:
194
+ claims: List of claim dictionaries
195
+ use_web_search: Use web search for citations
196
+
197
+ Returns:
198
+ Dictionary with citations
199
+ """
200
+ citations = []
201
+
202
+ # Check for Tavily API
203
+ tavily_key = os.environ.get("TAVILY_API_KEY")
204
+
205
+ for claim in claims:
206
+ claim_text = claim.get("claim", "")
207
+
208
+ citation = {
209
+ "claim": claim_text,
210
+ "sources": [],
211
+ }
212
+
213
+ if use_web_search and tavily_key:
214
+ try:
215
+ import requests
216
+
217
+ response = requests.post(
218
+ "https://api.tavily.com/search",
219
+ json={
220
+ "api_key": tavily_key,
221
+ "query": f"verify: {claim_text}",
222
+ "search_depth": "basic",
223
+ "max_results": 3,
224
+ },
225
+ timeout=30,
226
+ )
227
+ response.raise_for_status()
228
+ data = response.json()
229
+
230
+ for result in data.get("results", []):
231
+ citation["sources"].append({
232
+ "title": result.get("title", ""),
233
+ "url": result.get("url", ""),
234
+ "snippet": result.get("content", "")[:200],
235
+ })
236
+
237
+ except Exception as e:
238
+ logger.warning(f"Error searching for citation: {e}")
239
+
240
+ citations.append(citation)
241
+
242
+ return {
243
+ "citations": citations,
244
+ "total_sources": sum(len(c["sources"]) for c in citations),
245
+ }
246
+
247
+
248
+ def fact_check_content(
249
+ content: str,
250
+ include_citations: bool = True,
251
+ ) -> Dict[str, Any]:
252
+ """
253
+ Full fact-checking pipeline.
254
+
255
+ Args:
256
+ content: Content to fact-check
257
+ include_citations: Include source citations
258
+
259
+ Returns:
260
+ Complete fact-check report
261
+ """
262
+ # Extract claims
263
+ extraction = extract_claims(content)
264
+ claims = extraction.get("claims", [])
265
+
266
+ # Verify claims
267
+ verification = verify_claims(claims)
268
+
269
+ # Find citations if requested
270
+ citations = {}
271
+ if include_citations:
272
+ citations = find_citations(claims)
273
+
274
+ return {
275
+ "claims": verification.get("verified_claims", []),
276
+ "flags": verification.get("flags", []),
277
+ "citations": citations.get("citations", []),
278
+ "stats": verification.get("stats", {}),
279
+ }
@@ -0,0 +1,59 @@
1
+ # Faq Generator
2
+
3
+ Generate FAQ from documentation/knowledge base
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-faq-generator <input>
16
+
17
+ # With output directory
18
+ praison recipes run ai-faq-generator <input> --output ./output/
19
+
20
+ # Dry run (check dependencies only)
21
+ praison recipes run ai-faq-generator <input> --dry-run
22
+
23
+ # Show recipe info
24
+ praison recipes info ai-faq-generator
25
+
26
+ # Check dependencies
27
+ praison recipes doctor ai-faq-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-faq-generator")
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
+ `document`, `faq`, `generation`
56
+
57
+ ## License
58
+
59
+ Apache-2.0
@@ -0,0 +1,28 @@
1
+ name: ai-faq-generator
2
+ version: "1.0.0"
3
+ description: Generate FAQ from documentation/knowledge base
4
+ author: praison
5
+ license: Apache-2.0
6
+ tags:
7
+ - document
8
+ - faq
9
+ - generation
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-faq-generator
21
+ examples:
22
+ - praison recipes run ai-faq-generator <input>
23
+ - praison recipes run ai-faq-generator <input> --output ./output/
24
+ - praison recipes run ai-faq-generator <input> --dry-run
25
+
26
+ safety:
27
+ dry_run_default: false
28
+ overwrites_files: true
@@ -0,0 +1,59 @@
1
+ # File Organizer
2
+
3
+ Auto-organize files into folders by content
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-file-organizer <input>
16
+
17
+ # With output directory
18
+ praison recipes run ai-file-organizer <input> --output ./output/
19
+
20
+ # Dry run (check dependencies only)
21
+ praison recipes run ai-file-organizer <input> --dry-run
22
+
23
+ # Show recipe info
24
+ praison recipes info ai-file-organizer
25
+
26
+ # Check dependencies
27
+ praison recipes doctor ai-file-organizer
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-file-organizer")
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
+ `productivity`, `files`, `organization`
56
+
57
+ ## License
58
+
59
+ Apache-2.0
@@ -0,0 +1,29 @@
1
+ name: ai-file-organizer
2
+ version: "1.0.0"
3
+ description: Auto-organize files into folders by content
4
+ author: praison
5
+ license: Apache-2.0
6
+ tags:
7
+ - productivity
8
+ - files
9
+ - organization
10
+
11
+ requires:
12
+ tools:
13
+ - llm_tool
14
+ - vision_tool
15
+ packages:
16
+ - openai
17
+ env:
18
+ - OPENAI_API_KEY
19
+
20
+ cli:
21
+ command: praison recipes run ai-file-organizer
22
+ examples:
23
+ - praison recipes run ai-file-organizer <input>
24
+ - praison recipes run ai-file-organizer <input> --output ./output/
25
+ - praison recipes run ai-file-organizer <input> --dry-run
26
+
27
+ safety:
28
+ dry_run_default: true
29
+ overwrites_files: true
@@ -0,0 +1,15 @@
1
+ # AI Folder Packager
2
+
3
+ Package folder into distributable archive with manifest and checksums.
4
+
5
+ ## Usage
6
+ ```bash
7
+ praison run ai-folder-packager ./my-project
8
+ praison run ai-folder-packager ./my-project --format tar.gz
9
+ ```
10
+
11
+ ## Output
12
+ - `package.zip` - Archive file
13
+ - `manifest.json` - File list with hashes
14
+ - `checksums.txt` - SHA256 checksums
15
+ - `README.txt` - Auto-generated description
@@ -0,0 +1,48 @@
1
+ name: ai-folder-packager
2
+ version: "1.0.0"
3
+ description: Package folder into distributable archive with manifest and checksums.
4
+ author: praisonai
5
+ license: Apache-2.0
6
+ tags: [archive, packaging, distribution, checksums]
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
+ format:
20
+ type: string
21
+ default: "zip"
22
+ enum: [zip, tar.gz, tar.bz2]
23
+
24
+ cli:
25
+ command: ai-folder-packager
26
+ args:
27
+ - name: input
28
+ positional: true
29
+ required: true
30
+ - name: --output
31
+ short: -o
32
+ - name: --format
33
+ default: "zip"
34
+ examples:
35
+ - "praison run ai-folder-packager ./my-project"
36
+ - "praison run ai-folder-packager ./my-project --format tar.gz"
37
+
38
+ outputs:
39
+ - name: package.zip
40
+ type: file
41
+ - name: manifest.json
42
+ type: file
43
+ - name: checksums.txt
44
+ type: file
45
+ - name: README.txt
46
+ type: file
47
+ - name: run.json
48
+ type: file
@@ -0,0 +1,60 @@
1
+ # Form Filler
2
+
3
+ Auto-fill PDF forms from data sources
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-form-filler <input>
16
+
17
+ # With output directory
18
+ praison recipes run ai-form-filler <input> --output ./output/
19
+
20
+ # Dry run (check dependencies only)
21
+ praison recipes run ai-form-filler <input> --dry-run
22
+
23
+ # Show recipe info
24
+ praison recipes info ai-form-filler
25
+
26
+ # Check dependencies
27
+ praison recipes doctor ai-form-filler
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-form-filler")
38
+ result = recipe.run(input="<your-input>")
39
+ print(result)
40
+ ```
41
+
42
+ ## Requirements
43
+
44
+ ### Packages
45
+ - pypdf
46
+ - openai
47
+
48
+ ### Environment Variables
49
+ - OPENAI_API_KEY
50
+
51
+ ### External Tools
52
+ - None
53
+
54
+ ## Tags
55
+
56
+ `document`, `pdf`, `forms`
57
+
58
+ ## License
59
+
60
+ Apache-2.0
@@ -0,0 +1,30 @@
1
+ name: ai-form-filler
2
+ version: "1.0.0"
3
+ description: Auto-fill PDF forms from data sources
4
+ author: praison
5
+ license: Apache-2.0
6
+ tags:
7
+ - document
8
+ - pdf
9
+ - forms
10
+
11
+ requires:
12
+ tools:
13
+ - doc_tool
14
+ - llm_tool
15
+ packages:
16
+ - pypdf
17
+ - openai
18
+ env:
19
+ - OPENAI_API_KEY
20
+
21
+ cli:
22
+ command: praison recipes run ai-form-filler
23
+ examples:
24
+ - praison recipes run ai-form-filler <input>
25
+ - praison recipes run ai-form-filler <input> --output ./output/
26
+ - praison recipes run ai-form-filler <input> --dry-run
27
+
28
+ safety:
29
+ dry_run_default: true
30
+ overwrites_files: true
@@ -0,0 +1,45 @@
1
+ name: ai-hashtag-optimizer
2
+ version: 1.0.0
3
+ description: Optimize hashtags and keywords for maximum reach
4
+ author: PraisonAI
5
+ tags:
6
+ - hashtags
7
+ - keywords
8
+ - seo
9
+ - optimization
10
+
11
+ config:
12
+ max_hashtags: 30
13
+ platforms:
14
+ - instagram
15
+ - x
16
+ - linkedin
17
+ - tiktok
18
+
19
+ input:
20
+ type: object
21
+ properties:
22
+ topic:
23
+ type: string
24
+ platform:
25
+ type: string
26
+
27
+ output:
28
+ type: object
29
+ properties:
30
+ hashtags:
31
+ type: array
32
+ keywords:
33
+ type: array
34
+
35
+ requires:
36
+ env:
37
+ - OPENAI_API_KEY
38
+
39
+ workflow:
40
+ agents:
41
+ - name: optimizer
42
+ role: Hashtag Optimizer
43
+ tools:
44
+ - generate_hashtags
45
+ - optimize_keywords