aidevops 2.52.1

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 (329) hide show
  1. package/.agent/AGENTS.md +614 -0
  2. package/.agent/accounts.md +65 -0
  3. package/.agent/aidevops/add-new-mcp-to-aidevops.md +456 -0
  4. package/.agent/aidevops/api-integrations.md +335 -0
  5. package/.agent/aidevops/architecture.md +510 -0
  6. package/.agent/aidevops/configs.md +274 -0
  7. package/.agent/aidevops/docs.md +244 -0
  8. package/.agent/aidevops/extension.md +311 -0
  9. package/.agent/aidevops/mcp-integrations.md +340 -0
  10. package/.agent/aidevops/mcp-troubleshooting.md +162 -0
  11. package/.agent/aidevops/memory-patterns.md +172 -0
  12. package/.agent/aidevops/providers.md +217 -0
  13. package/.agent/aidevops/recommendations.md +321 -0
  14. package/.agent/aidevops/requirements.md +301 -0
  15. package/.agent/aidevops/resources.md +214 -0
  16. package/.agent/aidevops/security-requirements.md +174 -0
  17. package/.agent/aidevops/security.md +350 -0
  18. package/.agent/aidevops/service-links.md +400 -0
  19. package/.agent/aidevops/services.md +357 -0
  20. package/.agent/aidevops/setup.md +153 -0
  21. package/.agent/aidevops/troubleshooting.md +389 -0
  22. package/.agent/aidevops.md +124 -0
  23. package/.agent/build-plus.md +244 -0
  24. package/.agent/content/guidelines.md +109 -0
  25. package/.agent/content.md +87 -0
  26. package/.agent/health.md +59 -0
  27. package/.agent/legal.md +59 -0
  28. package/.agent/loop-state/full-loop.local.md +16 -0
  29. package/.agent/loop-state/ralph-loop.local.md +10 -0
  30. package/.agent/marketing.md +440 -0
  31. package/.agent/memory/README.md +260 -0
  32. package/.agent/onboarding.md +796 -0
  33. package/.agent/plan-plus.md +245 -0
  34. package/.agent/research.md +100 -0
  35. package/.agent/sales.md +333 -0
  36. package/.agent/scripts/101domains-helper.sh +701 -0
  37. package/.agent/scripts/add-missing-returns.sh +140 -0
  38. package/.agent/scripts/agent-browser-helper.sh +311 -0
  39. package/.agent/scripts/agno-setup.sh +712 -0
  40. package/.agent/scripts/ahrefs-mcp-wrapper.js +168 -0
  41. package/.agent/scripts/aidevops-update-check.sh +71 -0
  42. package/.agent/scripts/ampcode-cli.sh +522 -0
  43. package/.agent/scripts/auto-version-bump.sh +156 -0
  44. package/.agent/scripts/autogen-helper.sh +512 -0
  45. package/.agent/scripts/beads-sync-helper.sh +596 -0
  46. package/.agent/scripts/closte-helper.sh +5 -0
  47. package/.agent/scripts/cloudron-helper.sh +321 -0
  48. package/.agent/scripts/codacy-cli-chunked.sh +581 -0
  49. package/.agent/scripts/codacy-cli.sh +442 -0
  50. package/.agent/scripts/code-audit-helper.sh +5 -0
  51. package/.agent/scripts/coderabbit-cli.sh +417 -0
  52. package/.agent/scripts/coderabbit-pro-analysis.sh +238 -0
  53. package/.agent/scripts/commands/code-simplifier.md +86 -0
  54. package/.agent/scripts/commands/full-loop.md +246 -0
  55. package/.agent/scripts/commands/postflight-loop.md +103 -0
  56. package/.agent/scripts/commands/recall.md +182 -0
  57. package/.agent/scripts/commands/remember.md +132 -0
  58. package/.agent/scripts/commands/save-todo.md +175 -0
  59. package/.agent/scripts/commands/session-review.md +154 -0
  60. package/.agent/scripts/comprehensive-quality-fix.sh +106 -0
  61. package/.agent/scripts/context-builder-helper.sh +522 -0
  62. package/.agent/scripts/coolify-cli-helper.sh +674 -0
  63. package/.agent/scripts/coolify-helper.sh +380 -0
  64. package/.agent/scripts/crawl4ai-examples.sh +401 -0
  65. package/.agent/scripts/crawl4ai-helper.sh +1078 -0
  66. package/.agent/scripts/crewai-helper.sh +681 -0
  67. package/.agent/scripts/dev-browser-helper.sh +513 -0
  68. package/.agent/scripts/dns-helper.sh +396 -0
  69. package/.agent/scripts/domain-research-helper.sh +917 -0
  70. package/.agent/scripts/dspy-helper.sh +285 -0
  71. package/.agent/scripts/dspyground-helper.sh +291 -0
  72. package/.agent/scripts/eeat-score-helper.sh +1242 -0
  73. package/.agent/scripts/efficient-return-fix.sh +92 -0
  74. package/.agent/scripts/extract-opencode-prompts.sh +128 -0
  75. package/.agent/scripts/find-missing-returns.sh +113 -0
  76. package/.agent/scripts/fix-auth-headers.sh +104 -0
  77. package/.agent/scripts/fix-common-strings.sh +254 -0
  78. package/.agent/scripts/fix-content-type.sh +100 -0
  79. package/.agent/scripts/fix-error-messages.sh +130 -0
  80. package/.agent/scripts/fix-misplaced-returns.sh +74 -0
  81. package/.agent/scripts/fix-remaining-literals.sh +152 -0
  82. package/.agent/scripts/fix-return-statements.sh +41 -0
  83. package/.agent/scripts/fix-s131-default-cases.sh +249 -0
  84. package/.agent/scripts/fix-sc2155-simple.sh +102 -0
  85. package/.agent/scripts/fix-shellcheck-critical.sh +187 -0
  86. package/.agent/scripts/fix-string-literals.sh +273 -0
  87. package/.agent/scripts/full-loop-helper.sh +773 -0
  88. package/.agent/scripts/generate-opencode-agents.sh +497 -0
  89. package/.agent/scripts/generate-opencode-commands.sh +1629 -0
  90. package/.agent/scripts/generate-skills.sh +366 -0
  91. package/.agent/scripts/git-platforms-helper.sh +640 -0
  92. package/.agent/scripts/gitea-cli-helper.sh +743 -0
  93. package/.agent/scripts/github-cli-helper.sh +702 -0
  94. package/.agent/scripts/gitlab-cli-helper.sh +682 -0
  95. package/.agent/scripts/gsc-add-user-helper.sh +325 -0
  96. package/.agent/scripts/gsc-sitemap-helper.sh +678 -0
  97. package/.agent/scripts/hetzner-helper.sh +485 -0
  98. package/.agent/scripts/hostinger-helper.sh +229 -0
  99. package/.agent/scripts/keyword-research-helper.sh +1815 -0
  100. package/.agent/scripts/langflow-helper.sh +544 -0
  101. package/.agent/scripts/linkedin-automation.py +241 -0
  102. package/.agent/scripts/linter-manager.sh +599 -0
  103. package/.agent/scripts/linters-local.sh +434 -0
  104. package/.agent/scripts/list-keys-helper.sh +488 -0
  105. package/.agent/scripts/local-browser-automation.py +339 -0
  106. package/.agent/scripts/localhost-helper.sh +744 -0
  107. package/.agent/scripts/loop-common.sh +806 -0
  108. package/.agent/scripts/mainwp-helper.sh +728 -0
  109. package/.agent/scripts/markdown-formatter.sh +338 -0
  110. package/.agent/scripts/markdown-lint-fix.sh +311 -0
  111. package/.agent/scripts/mass-fix-returns.sh +58 -0
  112. package/.agent/scripts/mcp-diagnose.sh +167 -0
  113. package/.agent/scripts/mcp-inspector-helper.sh +449 -0
  114. package/.agent/scripts/memory-helper.sh +650 -0
  115. package/.agent/scripts/monitor-code-review.sh +255 -0
  116. package/.agent/scripts/onboarding-helper.sh +706 -0
  117. package/.agent/scripts/opencode-github-setup-helper.sh +797 -0
  118. package/.agent/scripts/opencode-test-helper.sh +213 -0
  119. package/.agent/scripts/pagespeed-helper.sh +464 -0
  120. package/.agent/scripts/pandoc-helper.sh +362 -0
  121. package/.agent/scripts/postflight-check.sh +555 -0
  122. package/.agent/scripts/pre-commit-hook.sh +259 -0
  123. package/.agent/scripts/pre-edit-check.sh +169 -0
  124. package/.agent/scripts/qlty-cli.sh +356 -0
  125. package/.agent/scripts/quality-cli-manager.sh +525 -0
  126. package/.agent/scripts/quality-feedback-helper.sh +462 -0
  127. package/.agent/scripts/quality-fix.sh +263 -0
  128. package/.agent/scripts/quality-loop-helper.sh +1108 -0
  129. package/.agent/scripts/ralph-loop-helper.sh +836 -0
  130. package/.agent/scripts/ralph-upstream-check.sh +341 -0
  131. package/.agent/scripts/secretlint-helper.sh +847 -0
  132. package/.agent/scripts/servers-helper.sh +241 -0
  133. package/.agent/scripts/ses-helper.sh +619 -0
  134. package/.agent/scripts/session-review-helper.sh +404 -0
  135. package/.agent/scripts/setup-linters-wizard.sh +379 -0
  136. package/.agent/scripts/setup-local-api-keys.sh +330 -0
  137. package/.agent/scripts/setup-mcp-integrations.sh +472 -0
  138. package/.agent/scripts/shared-constants.sh +246 -0
  139. package/.agent/scripts/site-crawler-helper.sh +1487 -0
  140. package/.agent/scripts/snyk-helper.sh +940 -0
  141. package/.agent/scripts/sonarcloud-autofix.sh +193 -0
  142. package/.agent/scripts/sonarcloud-cli.sh +191 -0
  143. package/.agent/scripts/sonarscanner-cli.sh +455 -0
  144. package/.agent/scripts/spaceship-helper.sh +747 -0
  145. package/.agent/scripts/stagehand-helper.sh +321 -0
  146. package/.agent/scripts/stagehand-python-helper.sh +321 -0
  147. package/.agent/scripts/stagehand-python-setup.sh +441 -0
  148. package/.agent/scripts/stagehand-setup.sh +439 -0
  149. package/.agent/scripts/system-cleanup.sh +340 -0
  150. package/.agent/scripts/terminal-title-helper.sh +388 -0
  151. package/.agent/scripts/terminal-title-setup.sh +549 -0
  152. package/.agent/scripts/test-stagehand-both-integration.sh +317 -0
  153. package/.agent/scripts/test-stagehand-integration.sh +309 -0
  154. package/.agent/scripts/test-stagehand-python-integration.sh +341 -0
  155. package/.agent/scripts/todo-ready.sh +263 -0
  156. package/.agent/scripts/tool-version-check.sh +362 -0
  157. package/.agent/scripts/toon-helper.sh +469 -0
  158. package/.agent/scripts/twilio-helper.sh +917 -0
  159. package/.agent/scripts/updown-helper.sh +279 -0
  160. package/.agent/scripts/validate-mcp-integrations.sh +250 -0
  161. package/.agent/scripts/validate-version-consistency.sh +131 -0
  162. package/.agent/scripts/vaultwarden-helper.sh +597 -0
  163. package/.agent/scripts/vercel-cli-helper.sh +816 -0
  164. package/.agent/scripts/verify-mirrors.sh +169 -0
  165. package/.agent/scripts/version-manager.sh +831 -0
  166. package/.agent/scripts/webhosting-helper.sh +471 -0
  167. package/.agent/scripts/webhosting-verify.sh +238 -0
  168. package/.agent/scripts/wordpress-mcp-helper.sh +508 -0
  169. package/.agent/scripts/worktree-helper.sh +595 -0
  170. package/.agent/scripts/worktree-sessions.sh +577 -0
  171. package/.agent/seo/dataforseo.md +215 -0
  172. package/.agent/seo/domain-research.md +532 -0
  173. package/.agent/seo/eeat-score.md +659 -0
  174. package/.agent/seo/google-search-console.md +366 -0
  175. package/.agent/seo/gsc-sitemaps.md +282 -0
  176. package/.agent/seo/keyword-research.md +521 -0
  177. package/.agent/seo/serper.md +278 -0
  178. package/.agent/seo/site-crawler.md +387 -0
  179. package/.agent/seo.md +236 -0
  180. package/.agent/services/accounting/quickfile.md +159 -0
  181. package/.agent/services/communications/telfon.md +470 -0
  182. package/.agent/services/communications/twilio.md +569 -0
  183. package/.agent/services/crm/fluentcrm.md +449 -0
  184. package/.agent/services/email/ses.md +399 -0
  185. package/.agent/services/hosting/101domains.md +378 -0
  186. package/.agent/services/hosting/closte.md +177 -0
  187. package/.agent/services/hosting/cloudflare.md +251 -0
  188. package/.agent/services/hosting/cloudron.md +478 -0
  189. package/.agent/services/hosting/dns-providers.md +335 -0
  190. package/.agent/services/hosting/domain-purchasing.md +344 -0
  191. package/.agent/services/hosting/hetzner.md +327 -0
  192. package/.agent/services/hosting/hostinger.md +287 -0
  193. package/.agent/services/hosting/localhost.md +419 -0
  194. package/.agent/services/hosting/spaceship.md +353 -0
  195. package/.agent/services/hosting/webhosting.md +330 -0
  196. package/.agent/social-media.md +69 -0
  197. package/.agent/templates/plans-template.md +114 -0
  198. package/.agent/templates/prd-template.md +129 -0
  199. package/.agent/templates/tasks-template.md +108 -0
  200. package/.agent/templates/todo-template.md +89 -0
  201. package/.agent/tools/ai-assistants/agno.md +471 -0
  202. package/.agent/tools/ai-assistants/capsolver.md +326 -0
  203. package/.agent/tools/ai-assistants/configuration.md +221 -0
  204. package/.agent/tools/ai-assistants/overview.md +209 -0
  205. package/.agent/tools/ai-assistants/status.md +171 -0
  206. package/.agent/tools/ai-assistants/windsurf.md +193 -0
  207. package/.agent/tools/ai-orchestration/autogen.md +406 -0
  208. package/.agent/tools/ai-orchestration/crewai.md +445 -0
  209. package/.agent/tools/ai-orchestration/langflow.md +405 -0
  210. package/.agent/tools/ai-orchestration/openprose.md +487 -0
  211. package/.agent/tools/ai-orchestration/overview.md +362 -0
  212. package/.agent/tools/ai-orchestration/packaging.md +647 -0
  213. package/.agent/tools/browser/agent-browser.md +464 -0
  214. package/.agent/tools/browser/browser-automation.md +400 -0
  215. package/.agent/tools/browser/chrome-devtools.md +282 -0
  216. package/.agent/tools/browser/crawl4ai-integration.md +422 -0
  217. package/.agent/tools/browser/crawl4ai-resources.md +277 -0
  218. package/.agent/tools/browser/crawl4ai-usage.md +416 -0
  219. package/.agent/tools/browser/crawl4ai.md +585 -0
  220. package/.agent/tools/browser/dev-browser.md +341 -0
  221. package/.agent/tools/browser/pagespeed.md +260 -0
  222. package/.agent/tools/browser/playwright.md +266 -0
  223. package/.agent/tools/browser/playwriter.md +310 -0
  224. package/.agent/tools/browser/stagehand-examples.md +456 -0
  225. package/.agent/tools/browser/stagehand-python.md +483 -0
  226. package/.agent/tools/browser/stagehand.md +421 -0
  227. package/.agent/tools/build-agent/agent-review.md +224 -0
  228. package/.agent/tools/build-agent/build-agent.md +784 -0
  229. package/.agent/tools/build-mcp/aidevops-plugin.md +476 -0
  230. package/.agent/tools/build-mcp/api-wrapper.md +445 -0
  231. package/.agent/tools/build-mcp/build-mcp.md +240 -0
  232. package/.agent/tools/build-mcp/deployment.md +401 -0
  233. package/.agent/tools/build-mcp/server-patterns.md +632 -0
  234. package/.agent/tools/build-mcp/transports.md +366 -0
  235. package/.agent/tools/code-review/auditing.md +383 -0
  236. package/.agent/tools/code-review/automation.md +219 -0
  237. package/.agent/tools/code-review/best-practices.md +203 -0
  238. package/.agent/tools/code-review/codacy.md +151 -0
  239. package/.agent/tools/code-review/code-simplifier.md +174 -0
  240. package/.agent/tools/code-review/code-standards.md +309 -0
  241. package/.agent/tools/code-review/coderabbit.md +101 -0
  242. package/.agent/tools/code-review/management.md +155 -0
  243. package/.agent/tools/code-review/qlty.md +248 -0
  244. package/.agent/tools/code-review/secretlint.md +565 -0
  245. package/.agent/tools/code-review/setup.md +250 -0
  246. package/.agent/tools/code-review/snyk.md +563 -0
  247. package/.agent/tools/code-review/tools.md +230 -0
  248. package/.agent/tools/content/summarize.md +353 -0
  249. package/.agent/tools/context/augment-context-engine.md +468 -0
  250. package/.agent/tools/context/context-builder-agent.md +76 -0
  251. package/.agent/tools/context/context-builder.md +375 -0
  252. package/.agent/tools/context/context7.md +371 -0
  253. package/.agent/tools/context/dspy.md +302 -0
  254. package/.agent/tools/context/dspyground.md +374 -0
  255. package/.agent/tools/context/llm-tldr.md +219 -0
  256. package/.agent/tools/context/osgrep.md +488 -0
  257. package/.agent/tools/context/prompt-optimization.md +338 -0
  258. package/.agent/tools/context/toon.md +292 -0
  259. package/.agent/tools/conversion/pandoc.md +304 -0
  260. package/.agent/tools/credentials/api-key-management.md +154 -0
  261. package/.agent/tools/credentials/api-key-setup.md +224 -0
  262. package/.agent/tools/credentials/environment-variables.md +180 -0
  263. package/.agent/tools/credentials/vaultwarden.md +382 -0
  264. package/.agent/tools/data-extraction/outscraper.md +974 -0
  265. package/.agent/tools/deployment/coolify-cli.md +388 -0
  266. package/.agent/tools/deployment/coolify-setup.md +353 -0
  267. package/.agent/tools/deployment/coolify.md +345 -0
  268. package/.agent/tools/deployment/vercel.md +390 -0
  269. package/.agent/tools/git/authentication.md +132 -0
  270. package/.agent/tools/git/gitea-cli.md +193 -0
  271. package/.agent/tools/git/github-actions.md +207 -0
  272. package/.agent/tools/git/github-cli.md +223 -0
  273. package/.agent/tools/git/gitlab-cli.md +190 -0
  274. package/.agent/tools/git/opencode-github-security.md +350 -0
  275. package/.agent/tools/git/opencode-github.md +328 -0
  276. package/.agent/tools/git/opencode-gitlab.md +252 -0
  277. package/.agent/tools/git/security.md +196 -0
  278. package/.agent/tools/git.md +207 -0
  279. package/.agent/tools/opencode/oh-my-opencode.md +375 -0
  280. package/.agent/tools/opencode/opencode-anthropic-auth.md +446 -0
  281. package/.agent/tools/opencode/opencode.md +651 -0
  282. package/.agent/tools/social-media/bird.md +437 -0
  283. package/.agent/tools/task-management/beads.md +336 -0
  284. package/.agent/tools/terminal/terminal-title.md +251 -0
  285. package/.agent/tools/ui/shadcn.md +196 -0
  286. package/.agent/tools/ui/ui-skills.md +115 -0
  287. package/.agent/tools/wordpress/localwp.md +311 -0
  288. package/.agent/tools/wordpress/mainwp.md +391 -0
  289. package/.agent/tools/wordpress/scf.md +527 -0
  290. package/.agent/tools/wordpress/wp-admin.md +729 -0
  291. package/.agent/tools/wordpress/wp-dev.md +940 -0
  292. package/.agent/tools/wordpress/wp-preferred.md +398 -0
  293. package/.agent/tools/wordpress.md +95 -0
  294. package/.agent/workflows/branch/bugfix.md +63 -0
  295. package/.agent/workflows/branch/chore.md +95 -0
  296. package/.agent/workflows/branch/experiment.md +115 -0
  297. package/.agent/workflows/branch/feature.md +59 -0
  298. package/.agent/workflows/branch/hotfix.md +98 -0
  299. package/.agent/workflows/branch/refactor.md +92 -0
  300. package/.agent/workflows/branch/release.md +96 -0
  301. package/.agent/workflows/branch.md +347 -0
  302. package/.agent/workflows/bug-fixing.md +267 -0
  303. package/.agent/workflows/changelog.md +129 -0
  304. package/.agent/workflows/code-audit-remote.md +279 -0
  305. package/.agent/workflows/conversation-starter.md +69 -0
  306. package/.agent/workflows/error-feedback.md +578 -0
  307. package/.agent/workflows/feature-development.md +355 -0
  308. package/.agent/workflows/git-workflow.md +702 -0
  309. package/.agent/workflows/multi-repo-workspace.md +268 -0
  310. package/.agent/workflows/plans.md +709 -0
  311. package/.agent/workflows/postflight.md +604 -0
  312. package/.agent/workflows/pr.md +571 -0
  313. package/.agent/workflows/preflight.md +278 -0
  314. package/.agent/workflows/ralph-loop.md +773 -0
  315. package/.agent/workflows/release.md +498 -0
  316. package/.agent/workflows/session-manager.md +254 -0
  317. package/.agent/workflows/session-review.md +311 -0
  318. package/.agent/workflows/sql-migrations.md +631 -0
  319. package/.agent/workflows/version-bump.md +283 -0
  320. package/.agent/workflows/wiki-update.md +333 -0
  321. package/.agent/workflows/worktree.md +477 -0
  322. package/LICENSE +21 -0
  323. package/README.md +1446 -0
  324. package/VERSION +1 -0
  325. package/aidevops.sh +1746 -0
  326. package/bin/aidevops +21 -0
  327. package/package.json +75 -0
  328. package/scripts/npm-postinstall.js +60 -0
  329. package/setup.sh +2366 -0
@@ -0,0 +1,285 @@
1
+ #!/bin/bash
2
+ # shellcheck disable=SC2034,SC2155,SC2317,SC2329,SC2016,SC2181,SC1091,SC2154,SC2015,SC2086,SC2129,SC2030,SC2031,SC2119,SC2120,SC2001,SC2162,SC2088,SC2089,SC2090,SC2029,SC2006,SC2153
3
+
4
+ # DSPy Helper Script for AI DevOps Framework
5
+ # Provides DSPy prompt optimization and language model integration
6
+ #
7
+ # Author: AI DevOps Framework
8
+ # Version: 1.0.0
9
+
10
+ # Load shared constants and functions
11
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
12
+ # shellcheck source=.agent/scripts/shared-constants.sh
13
+ source "$SCRIPT_DIR/shared-constants.sh"
14
+
15
+ # Use shared print functions with fallback for compatibility
16
+ print_info() { print_shared_info "$command"; return 0; }
17
+ print_success() { print_shared_success "$command"; return 0; }
18
+ print_warning() { print_shared_warning "$command"; return 0; }
19
+ print_error() { print_shared_error "$command"; return 0; }
20
+
21
+ # Configuration
22
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
23
+ PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
24
+ CONFIG_FILE="$PROJECT_ROOT/configs/dspy-config.json"
25
+ PYTHON_ENV_PATH="$PROJECT_ROOT/python-env/dspy-env"
26
+ DATA_DIR="$PROJECT_ROOT/data/dspy"
27
+ LOGS_DIR="$PROJECT_ROOT/logs"
28
+
29
+ # Check if config file exists
30
+ check_config() {
31
+ if [[ ! -f "$CONFIG_FILE" ]]; then
32
+ print_error "$ERROR_CONFIG_NOT_FOUND: $CONFIG_FILE"
33
+ print_info "Copy and customize: cp ../configs/dspy-config.json.txt $CONFIG_FILE"
34
+ exit 1
35
+ fi
36
+ return 0
37
+ }
38
+
39
+ # Check Python environment
40
+ check_python_env() {
41
+ if [[ ! -d "$PYTHON_ENV_PATH" ]]; then
42
+ print_error "Python virtual environment not found: $PYTHON_ENV_PATH"
43
+ print_info "Run: python3 -m venv $PYTHON_ENV_PATH"
44
+ print_info "Then: source $PYTHON_ENV_PATH/bin/activate && pip install -r ../requirements.txt"
45
+ exit 1
46
+ fi
47
+
48
+ if [[ ! -f "$PYTHON_ENV_PATH/bin/activate" ]]; then
49
+ print_error "Virtual environment activation script not found"
50
+ exit 1
51
+ fi
52
+
53
+ return 0
54
+ }
55
+
56
+ # Activate Python environment
57
+ activate_env() {
58
+ if ! source "$PYTHON_ENV_PATH/bin/activate"; then
59
+ print_error "Failed to activate Python virtual environment"
60
+ exit 1
61
+ fi
62
+ print_success "Python virtual environment activated"
63
+ return 0
64
+ }
65
+
66
+ # Setup directories
67
+ setup_directories() {
68
+ mkdir -p "$DATA_DIR" "$LOGS_DIR"
69
+ print_success "Created directories: $DATA_DIR, $LOGS_DIR"
70
+ return 0
71
+ }
72
+
73
+ # Install DSPy dependencies
74
+ install_deps() {
75
+ print_info "Installing DSPy dependencies..."
76
+ check_python_env
77
+ activate_env
78
+
79
+ pip install --upgrade pip
80
+ if pip install -r "$PROJECT_ROOT/requirements.txt"; then
81
+ print_success "DSPy dependencies installed successfully"
82
+ else
83
+ print_error "Failed to install DSPy dependencies"
84
+ exit 1
85
+ fi
86
+ return 0
87
+ }
88
+
89
+ # Test DSPy installation
90
+ test_installation() {
91
+ print_info "Testing DSPy installation..."
92
+ check_python_env
93
+ activate_env
94
+
95
+ python3 -c "
96
+ import dspy
97
+ import sys
98
+ print(f'DSPy version: {dspy.__version__}')
99
+ print('DSPy installation test: SUCCESS')
100
+ sys.exit(0)
101
+ " 2>/dev/null
102
+
103
+ if python3 -c "
104
+ import dspy
105
+ import sys
106
+ print(f'DSPy version: {dspy.__version__}')
107
+ print('DSPy installation test: SUCCESS')
108
+ sys.exit(0)
109
+ " 2>/dev/null; then
110
+ print_success "DSPy installation test passed"
111
+ else
112
+ print_error "DSPy installation test failed"
113
+ exit 1
114
+ fi
115
+ return 0
116
+ }
117
+
118
+ # Initialize DSPy project
119
+ init_project() {
120
+ local project_name="${1:-dspy-project}"
121
+ print_info "Initializing DSPy project: $project_name"
122
+
123
+ check_config
124
+ check_python_env
125
+ activate_env
126
+ setup_directories
127
+
128
+ local project_dir="$DATA_DIR/$project_name"
129
+ mkdir -p "$project_dir"
130
+
131
+ # Create basic DSPy project structure
132
+ cat > "$project_dir/main.py" << 'EOF'
133
+ #!/usr/bin/env python3
134
+ """
135
+ DSPy Project Template
136
+ Basic structure for DSPy prompt optimization
137
+ """
138
+
139
+ import dspy
140
+ import json
141
+ import os
142
+ from pathlib import Path
143
+
144
+ # Load configuration
145
+ config_path = Path(__file__).parent.parent.parent / "configs" / "dspy-config.json"
146
+ with open(config_path) as f:
147
+ config = json.load(f)
148
+
149
+ # Configure DSPy with OpenAI (example)
150
+ def setup_language_model():
151
+ """Setup the language model for DSPy"""
152
+ provider_config = config["language_models"]["providers"]["openai"]
153
+
154
+ # Use environment variable first, fallback to config
155
+ api_key = os.getenv("OPENAI_API_KEY", provider_config["api_key"])
156
+ model = f"openai/{provider_config['default_model']}"
157
+
158
+ lm = dspy.LM(
159
+ model=model,
160
+ api_key=api_key,
161
+ api_base=provider_config.get("base_url")
162
+ )
163
+
164
+ dspy.settings.configure(lm=lm)
165
+ return lm
166
+
167
+ # Example DSPy signature
168
+ class BasicQA(dspy.Signature):
169
+ """Answer questions with helpful, accurate responses."""
170
+ question = dspy.InputField()
171
+ answer = dspy.OutputField(desc="A helpful and accurate answer")
172
+
173
+ # Example DSPy module
174
+ class BasicQAModule(dspy.Module):
175
+ def __init__(self):
176
+ super().__init__()
177
+ self.generate_answer = dspy.ChainOfThought(BasicQA)
178
+
179
+ def forward(self, question):
180
+ return self.generate_answer(question=question)
181
+
182
+ if __name__ == "__main__":
183
+ # Setup
184
+ lm = setup_language_model()
185
+ qa_module = BasicQAModule()
186
+
187
+ # Example usage
188
+ question = "What is DSPy and how does it help with prompt optimization?"
189
+ result = qa_module(question=question)
190
+
191
+ print(f"Question: {question}")
192
+ print(f"Answer: {result.answer}")
193
+ EOF
194
+
195
+ print_success "DSPy project initialized: $project_dir"
196
+ print_info "Edit $project_dir/main.py to customize your DSPy application"
197
+ return 0
198
+ }
199
+
200
+ # Run DSPy optimization
201
+ optimize() {
202
+ local project_name="${1:-dspy-project}"
203
+ print_info "Running DSPy optimization for project: $project_name"
204
+
205
+ check_config
206
+ check_python_env
207
+ activate_env
208
+
209
+ local project_dir="$DATA_DIR/$project_name"
210
+ if [[ ! -d "$project_dir" ]]; then
211
+ print_error "Project not found: $project_dir"
212
+ print_info "Run: $0 init $project_name"
213
+ exit 1
214
+ fi
215
+
216
+ cd "$project_dir" || return 1
217
+ python3 main.py
218
+ return 0
219
+ }
220
+
221
+ # Show help
222
+ show_help() {
223
+ echo "DSPy Helper Script for AI DevOps Framework"
224
+ echo ""
225
+ echo "Usage: $0 [command] [options]"
226
+ echo ""
227
+ echo "Commands:"
228
+ echo " install - Install DSPy dependencies"
229
+ echo " test - Test DSPy installation"
230
+ echo " init [project_name] - Initialize new DSPy project"
231
+ echo " optimize [project] - Run DSPy optimization"
232
+ echo " help - Show this help message"
233
+ echo ""
234
+ echo "Examples:"
235
+ echo " $0 install"
236
+ echo " $0 init my-chatbot"
237
+ echo " $0 optimize my-chatbot"
238
+ echo ""
239
+ echo "Configuration:"
240
+ echo " Edit $CONFIG_FILE to customize settings"
241
+ echo ""
242
+ return 0
243
+ }
244
+
245
+ # Main command handler
246
+ main() {
247
+ # Assign positional parameters to local variables
248
+ local command="${1:-help}"
249
+ local account_name="$account_name"
250
+ local target="$target"
251
+ local options="$options"
252
+ # Assign positional parameters to local variables
253
+ local command="${1:-help}"
254
+ local account_name="$account_name"
255
+ local target="$target"
256
+ local options="$options"
257
+ # Assign positional parameters to local variables
258
+ local command="${1:-help}"
259
+ local account_name="$account_name"
260
+ local target="$target"
261
+ local options="$options"
262
+
263
+ case "$command" in
264
+ "install")
265
+ install_deps
266
+ ;;
267
+ "test")
268
+ test_installation
269
+ ;;
270
+ "init")
271
+ init_project "$account_name"
272
+ ;;
273
+ "optimize")
274
+ optimize "$account_name"
275
+ ;;
276
+ "help"|*)
277
+ show_help
278
+ ;;
279
+ esac
280
+ return 0
281
+ }
282
+
283
+ # Run main function
284
+ main "$@"
285
+ return 0
@@ -0,0 +1,291 @@
1
+ #!/bin/bash
2
+ # shellcheck disable=SC2034,SC2155,SC2317,SC2329,SC2016,SC2181,SC1091,SC2154,SC2015,SC2086,SC2129,SC2030,SC2031,SC2119,SC2120,SC2001,SC2162,SC2088,SC2089,SC2090,SC2029,SC2006,SC2153
3
+
4
+ # DSPyGround Helper Script for AI DevOps Framework
5
+ # Provides DSPyGround prompt optimization playground integration
6
+ #
7
+ # Author: AI DevOps Framework
8
+ # Version: 1.0.0
9
+
10
+ # Load shared constants and functions
11
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
12
+ # shellcheck source=.agent/scripts/shared-constants.sh
13
+ source "$SCRIPT_DIR/shared-constants.sh"
14
+
15
+ # Use shared print functions with fallback for compatibility
16
+ print_info() { local msg="$1"; print_shared_info "$msg"; return 0; }
17
+ print_success() { local msg="$1"; print_shared_success "$msg"; return 0; }
18
+ print_warning() { local msg="$1"; print_shared_warning "$msg"; return 0; }
19
+ print_error() { local msg="$1"; print_shared_error "$msg"; return 0; }
20
+
21
+ # Configuration
22
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
23
+ PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
24
+ CONFIG_FILE="$PROJECT_ROOT/configs/dspyground-config.json"
25
+ PROJECTS_DIR="$PROJECT_ROOT/data/dspyground"
26
+ DSPYGROUND_PORT=3000
27
+
28
+ # Check if config file exists
29
+ check_config() {
30
+ if [[ ! -f "$CONFIG_FILE" ]]; then
31
+ print_error "$ERROR_CONFIG_NOT_FOUND: $CONFIG_FILE"
32
+ print_info "Copy and customize: cp ../configs/dspyground-config.json.txt $CONFIG_FILE"
33
+ exit 1
34
+ fi
35
+ return 0
36
+ }
37
+
38
+ # Check Node.js and npm
39
+ check_nodejs() {
40
+ if ! command -v node &> /dev/null; then
41
+ print_error "Node.js is required but not installed"
42
+ print_info "Install Node.js from: https://nodejs.org/"
43
+ exit 1
44
+ fi
45
+
46
+ local node_version
47
+ node_version=$(node --version | cut -d'v' -f2 | cut -d'.' -f1)
48
+ if [[ $node_version -lt 18 ]]; then
49
+ print_error "Node.js 18+ is required, found v$node_version"
50
+ exit 1
51
+ fi
52
+
53
+ if ! command -v npm &> /dev/null; then
54
+ print_error "npm is required but not installed"
55
+ exit 1
56
+ fi
57
+
58
+ print_success "Node.js $(node --version) and npm $(npm --version) found"
59
+ return 0
60
+ }
61
+
62
+ # Check DSPyGround installation
63
+ check_dspyground() {
64
+ if ! command -v dspyground &> /dev/null; then
65
+ print_error "DSPyGround is not installed globally"
66
+ print_info "Install with: npm install -g dspyground"
67
+ exit 1
68
+ fi
69
+
70
+ local version
71
+ version=$(dspyground --version)
72
+ print_success "DSPyGround v$version found"
73
+ return 0
74
+ }
75
+
76
+ # Install DSPyGround
77
+ install() {
78
+ print_info "Installing DSPyGround..."
79
+ check_nodejs
80
+
81
+ # NOSONAR - npm scripts required for CLI binary installation
82
+ if npm install -g dspyground; then
83
+ print_success "DSPyGround installed successfully"
84
+ dspyground --version
85
+ else
86
+ print_error "Failed to install DSPyGround"
87
+ exit 1
88
+ fi
89
+ return 0
90
+ }
91
+
92
+ # Initialize DSPyGround project
93
+ init_project() {
94
+ local project_name="${1:-dspyground-project}"
95
+ print_info "Initializing DSPyGround project: $project_name"
96
+
97
+ check_nodejs
98
+ check_dspyground
99
+
100
+ mkdir -p "$PROJECTS_DIR"
101
+ local project_dir="$PROJECTS_DIR/$project_name"
102
+
103
+ if [[ -d "$project_dir" ]]; then
104
+ print_warning "Project directory already exists: $project_dir"
105
+ read -p "Continue anyway? (y/n): " -n 1 -r
106
+ echo
107
+ if [[ ! $REPLY =~ ^[Yy]$ ]]; then
108
+ exit 1
109
+ fi
110
+ fi
111
+
112
+ mkdir -p "$project_dir"
113
+ cd "$project_dir" || return 1
114
+
115
+ # Initialize DSPyGround
116
+ if dspyground init; then
117
+ print_success "DSPyGround project initialized: $project_dir"
118
+ print_info "Edit dspyground.config.ts to customize your agent environment"
119
+ print_info "Create .env file with your API keys"
120
+ else
121
+ print_error "Failed to initialize DSPyGround project"
122
+ exit 1
123
+ fi
124
+ return 0
125
+ }
126
+
127
+ # Start DSPyGround development server
128
+ start_dev() {
129
+ local project_name="${1:-dspyground-project}"
130
+ print_info "Starting DSPyGround development server for: $project_name"
131
+
132
+ check_nodejs
133
+ check_dspyground
134
+
135
+ local project_dir="$PROJECTS_DIR/$project_name"
136
+
137
+ if [[ ! -d "$project_dir" ]]; then
138
+ print_error "Project not found: $project_dir"
139
+ print_info "Run: $0 init $project_name"
140
+ exit 1
141
+ fi
142
+
143
+ cd "$project_dir" || return 1
144
+
145
+ # Check for .env file
146
+ if [[ ! -f ".env" ]]; then
147
+ print_warning ".env file not found"
148
+ print_info "Create .env file with your API keys:"
149
+ echo "AI_GATEWAY_API_KEY=your_api_key_here"
150
+ echo "OPENAI_API_KEY=your_openai_api_key_here"
151
+ fi
152
+
153
+ print_info "Starting development server on http://localhost:$DSPYGROUND_PORT"
154
+ dspyground dev
155
+ return 0
156
+ }
157
+
158
+ # Build DSPyGround project
159
+ build() {
160
+ local project_name="${1:-dspyground-project}"
161
+ print_info "Building DSPyGround project: $project_name"
162
+
163
+ check_nodejs
164
+ check_dspyground
165
+
166
+ local project_dir="$PROJECTS_DIR/$project_name"
167
+
168
+ if [[ ! -d "$project_dir" ]]; then
169
+ print_error "Project not found: $project_dir"
170
+ exit 1
171
+ fi
172
+
173
+ cd "$project_dir" || return 1
174
+
175
+ if dspyground build; then
176
+ print_success "DSPyGround project built successfully"
177
+ else
178
+ print_error "Failed to build DSPyGround project"
179
+ exit 1
180
+ fi
181
+ return 0
182
+ }
183
+
184
+ # List DSPyGround projects
185
+ list_projects() {
186
+ print_info "DSPyGround projects:"
187
+
188
+ if [[ ! -d "$PROJECTS_DIR" ]]; then
189
+ print_warning "No projects directory found: $PROJECTS_DIR"
190
+ return
191
+ fi
192
+
193
+ local count=0
194
+ for project in "$PROJECTS_DIR"/*; do
195
+ if [[ -d "$project" ]]; then
196
+ local name
197
+ name=$(basename "$project")
198
+ echo " - $name"
199
+ count=$((count + 1))
200
+ fi
201
+ done
202
+
203
+ if [[ $count -eq 0 ]]; then
204
+ print_info "No projects found. Create one with: $0 init <project_name>"
205
+ else
206
+ print_success "Found $count project(s)"
207
+ fi
208
+ return 0
209
+ }
210
+
211
+ # Show help
212
+ show_help() {
213
+ echo "DSPyGround Helper Script for AI DevOps Framework"
214
+ echo ""
215
+ echo "Usage: $0 [command] [options]"
216
+ echo ""
217
+ echo "Commands:"
218
+ echo " install - Install DSPyGround globally"
219
+ echo " init [project_name] - Initialize new DSPyGround project"
220
+ echo " dev [project_name] - Start development server"
221
+ echo " build [project_name] - Build project for production"
222
+ echo " list - List all DSPyGround projects"
223
+ echo " help - Show this help message"
224
+ echo ""
225
+ echo "Examples:"
226
+ echo " $0 install"
227
+ echo " $0 init my-agent"
228
+ echo " $0 dev my-agent"
229
+ echo " $0 build my-agent"
230
+ echo ""
231
+ echo "Configuration:"
232
+ echo " Edit $CONFIG_FILE to customize settings"
233
+ echo ""
234
+ echo "Environment Variables:"
235
+ echo " AI_GATEWAY_API_KEY - Required for AI Gateway access"
236
+ echo " OPENAI_API_KEY - Optional for voice feedback feature"
237
+ echo ""
238
+ return 0
239
+ }
240
+
241
+ # Main command handler
242
+ main() {
243
+ # Assign positional parameters to local variables
244
+ local command="${1:-help}"
245
+ local account_name="$account_name"
246
+ local target="$target"
247
+ local options="$options"
248
+ # Assign positional parameters to local variables
249
+ local command="${1:-help}"
250
+ local account_name="$account_name"
251
+ local target="$target"
252
+ local options="$options"
253
+ # Assign positional parameters to local variables
254
+ local command="${1:-help}"
255
+ local account_name="$account_name"
256
+ local target="$target"
257
+ local options="$options"
258
+ # Assign positional parameters to local variables
259
+ case "${1:-help}" in
260
+ "install")
261
+ install
262
+ return $?
263
+ ;;
264
+ "init")
265
+ init_project "$account_name"
266
+ return $?
267
+ ;;
268
+ "dev"|"start")
269
+ start_dev "$account_name"
270
+ return $?
271
+ ;;
272
+ "build")
273
+ build "$account_name"
274
+ return $?
275
+ ;;
276
+ "list")
277
+ list_projects
278
+ return $?
279
+ ;;
280
+ "help"|*)
281
+ show_help
282
+ return 0
283
+ ;;
284
+ esac
285
+ return 0
286
+ }
287
+
288
+ # Run main function
289
+ main "$@"
290
+
291
+ return 0