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.
- package/.agent/AGENTS.md +614 -0
- package/.agent/accounts.md +65 -0
- package/.agent/aidevops/add-new-mcp-to-aidevops.md +456 -0
- package/.agent/aidevops/api-integrations.md +335 -0
- package/.agent/aidevops/architecture.md +510 -0
- package/.agent/aidevops/configs.md +274 -0
- package/.agent/aidevops/docs.md +244 -0
- package/.agent/aidevops/extension.md +311 -0
- package/.agent/aidevops/mcp-integrations.md +340 -0
- package/.agent/aidevops/mcp-troubleshooting.md +162 -0
- package/.agent/aidevops/memory-patterns.md +172 -0
- package/.agent/aidevops/providers.md +217 -0
- package/.agent/aidevops/recommendations.md +321 -0
- package/.agent/aidevops/requirements.md +301 -0
- package/.agent/aidevops/resources.md +214 -0
- package/.agent/aidevops/security-requirements.md +174 -0
- package/.agent/aidevops/security.md +350 -0
- package/.agent/aidevops/service-links.md +400 -0
- package/.agent/aidevops/services.md +357 -0
- package/.agent/aidevops/setup.md +153 -0
- package/.agent/aidevops/troubleshooting.md +389 -0
- package/.agent/aidevops.md +124 -0
- package/.agent/build-plus.md +244 -0
- package/.agent/content/guidelines.md +109 -0
- package/.agent/content.md +87 -0
- package/.agent/health.md +59 -0
- package/.agent/legal.md +59 -0
- package/.agent/loop-state/full-loop.local.md +16 -0
- package/.agent/loop-state/ralph-loop.local.md +10 -0
- package/.agent/marketing.md +440 -0
- package/.agent/memory/README.md +260 -0
- package/.agent/onboarding.md +796 -0
- package/.agent/plan-plus.md +245 -0
- package/.agent/research.md +100 -0
- package/.agent/sales.md +333 -0
- package/.agent/scripts/101domains-helper.sh +701 -0
- package/.agent/scripts/add-missing-returns.sh +140 -0
- package/.agent/scripts/agent-browser-helper.sh +311 -0
- package/.agent/scripts/agno-setup.sh +712 -0
- package/.agent/scripts/ahrefs-mcp-wrapper.js +168 -0
- package/.agent/scripts/aidevops-update-check.sh +71 -0
- package/.agent/scripts/ampcode-cli.sh +522 -0
- package/.agent/scripts/auto-version-bump.sh +156 -0
- package/.agent/scripts/autogen-helper.sh +512 -0
- package/.agent/scripts/beads-sync-helper.sh +596 -0
- package/.agent/scripts/closte-helper.sh +5 -0
- package/.agent/scripts/cloudron-helper.sh +321 -0
- package/.agent/scripts/codacy-cli-chunked.sh +581 -0
- package/.agent/scripts/codacy-cli.sh +442 -0
- package/.agent/scripts/code-audit-helper.sh +5 -0
- package/.agent/scripts/coderabbit-cli.sh +417 -0
- package/.agent/scripts/coderabbit-pro-analysis.sh +238 -0
- package/.agent/scripts/commands/code-simplifier.md +86 -0
- package/.agent/scripts/commands/full-loop.md +246 -0
- package/.agent/scripts/commands/postflight-loop.md +103 -0
- package/.agent/scripts/commands/recall.md +182 -0
- package/.agent/scripts/commands/remember.md +132 -0
- package/.agent/scripts/commands/save-todo.md +175 -0
- package/.agent/scripts/commands/session-review.md +154 -0
- package/.agent/scripts/comprehensive-quality-fix.sh +106 -0
- package/.agent/scripts/context-builder-helper.sh +522 -0
- package/.agent/scripts/coolify-cli-helper.sh +674 -0
- package/.agent/scripts/coolify-helper.sh +380 -0
- package/.agent/scripts/crawl4ai-examples.sh +401 -0
- package/.agent/scripts/crawl4ai-helper.sh +1078 -0
- package/.agent/scripts/crewai-helper.sh +681 -0
- package/.agent/scripts/dev-browser-helper.sh +513 -0
- package/.agent/scripts/dns-helper.sh +396 -0
- package/.agent/scripts/domain-research-helper.sh +917 -0
- package/.agent/scripts/dspy-helper.sh +285 -0
- package/.agent/scripts/dspyground-helper.sh +291 -0
- package/.agent/scripts/eeat-score-helper.sh +1242 -0
- package/.agent/scripts/efficient-return-fix.sh +92 -0
- package/.agent/scripts/extract-opencode-prompts.sh +128 -0
- package/.agent/scripts/find-missing-returns.sh +113 -0
- package/.agent/scripts/fix-auth-headers.sh +104 -0
- package/.agent/scripts/fix-common-strings.sh +254 -0
- package/.agent/scripts/fix-content-type.sh +100 -0
- package/.agent/scripts/fix-error-messages.sh +130 -0
- package/.agent/scripts/fix-misplaced-returns.sh +74 -0
- package/.agent/scripts/fix-remaining-literals.sh +152 -0
- package/.agent/scripts/fix-return-statements.sh +41 -0
- package/.agent/scripts/fix-s131-default-cases.sh +249 -0
- package/.agent/scripts/fix-sc2155-simple.sh +102 -0
- package/.agent/scripts/fix-shellcheck-critical.sh +187 -0
- package/.agent/scripts/fix-string-literals.sh +273 -0
- package/.agent/scripts/full-loop-helper.sh +773 -0
- package/.agent/scripts/generate-opencode-agents.sh +497 -0
- package/.agent/scripts/generate-opencode-commands.sh +1629 -0
- package/.agent/scripts/generate-skills.sh +366 -0
- package/.agent/scripts/git-platforms-helper.sh +640 -0
- package/.agent/scripts/gitea-cli-helper.sh +743 -0
- package/.agent/scripts/github-cli-helper.sh +702 -0
- package/.agent/scripts/gitlab-cli-helper.sh +682 -0
- package/.agent/scripts/gsc-add-user-helper.sh +325 -0
- package/.agent/scripts/gsc-sitemap-helper.sh +678 -0
- package/.agent/scripts/hetzner-helper.sh +485 -0
- package/.agent/scripts/hostinger-helper.sh +229 -0
- package/.agent/scripts/keyword-research-helper.sh +1815 -0
- package/.agent/scripts/langflow-helper.sh +544 -0
- package/.agent/scripts/linkedin-automation.py +241 -0
- package/.agent/scripts/linter-manager.sh +599 -0
- package/.agent/scripts/linters-local.sh +434 -0
- package/.agent/scripts/list-keys-helper.sh +488 -0
- package/.agent/scripts/local-browser-automation.py +339 -0
- package/.agent/scripts/localhost-helper.sh +744 -0
- package/.agent/scripts/loop-common.sh +806 -0
- package/.agent/scripts/mainwp-helper.sh +728 -0
- package/.agent/scripts/markdown-formatter.sh +338 -0
- package/.agent/scripts/markdown-lint-fix.sh +311 -0
- package/.agent/scripts/mass-fix-returns.sh +58 -0
- package/.agent/scripts/mcp-diagnose.sh +167 -0
- package/.agent/scripts/mcp-inspector-helper.sh +449 -0
- package/.agent/scripts/memory-helper.sh +650 -0
- package/.agent/scripts/monitor-code-review.sh +255 -0
- package/.agent/scripts/onboarding-helper.sh +706 -0
- package/.agent/scripts/opencode-github-setup-helper.sh +797 -0
- package/.agent/scripts/opencode-test-helper.sh +213 -0
- package/.agent/scripts/pagespeed-helper.sh +464 -0
- package/.agent/scripts/pandoc-helper.sh +362 -0
- package/.agent/scripts/postflight-check.sh +555 -0
- package/.agent/scripts/pre-commit-hook.sh +259 -0
- package/.agent/scripts/pre-edit-check.sh +169 -0
- package/.agent/scripts/qlty-cli.sh +356 -0
- package/.agent/scripts/quality-cli-manager.sh +525 -0
- package/.agent/scripts/quality-feedback-helper.sh +462 -0
- package/.agent/scripts/quality-fix.sh +263 -0
- package/.agent/scripts/quality-loop-helper.sh +1108 -0
- package/.agent/scripts/ralph-loop-helper.sh +836 -0
- package/.agent/scripts/ralph-upstream-check.sh +341 -0
- package/.agent/scripts/secretlint-helper.sh +847 -0
- package/.agent/scripts/servers-helper.sh +241 -0
- package/.agent/scripts/ses-helper.sh +619 -0
- package/.agent/scripts/session-review-helper.sh +404 -0
- package/.agent/scripts/setup-linters-wizard.sh +379 -0
- package/.agent/scripts/setup-local-api-keys.sh +330 -0
- package/.agent/scripts/setup-mcp-integrations.sh +472 -0
- package/.agent/scripts/shared-constants.sh +246 -0
- package/.agent/scripts/site-crawler-helper.sh +1487 -0
- package/.agent/scripts/snyk-helper.sh +940 -0
- package/.agent/scripts/sonarcloud-autofix.sh +193 -0
- package/.agent/scripts/sonarcloud-cli.sh +191 -0
- package/.agent/scripts/sonarscanner-cli.sh +455 -0
- package/.agent/scripts/spaceship-helper.sh +747 -0
- package/.agent/scripts/stagehand-helper.sh +321 -0
- package/.agent/scripts/stagehand-python-helper.sh +321 -0
- package/.agent/scripts/stagehand-python-setup.sh +441 -0
- package/.agent/scripts/stagehand-setup.sh +439 -0
- package/.agent/scripts/system-cleanup.sh +340 -0
- package/.agent/scripts/terminal-title-helper.sh +388 -0
- package/.agent/scripts/terminal-title-setup.sh +549 -0
- package/.agent/scripts/test-stagehand-both-integration.sh +317 -0
- package/.agent/scripts/test-stagehand-integration.sh +309 -0
- package/.agent/scripts/test-stagehand-python-integration.sh +341 -0
- package/.agent/scripts/todo-ready.sh +263 -0
- package/.agent/scripts/tool-version-check.sh +362 -0
- package/.agent/scripts/toon-helper.sh +469 -0
- package/.agent/scripts/twilio-helper.sh +917 -0
- package/.agent/scripts/updown-helper.sh +279 -0
- package/.agent/scripts/validate-mcp-integrations.sh +250 -0
- package/.agent/scripts/validate-version-consistency.sh +131 -0
- package/.agent/scripts/vaultwarden-helper.sh +597 -0
- package/.agent/scripts/vercel-cli-helper.sh +816 -0
- package/.agent/scripts/verify-mirrors.sh +169 -0
- package/.agent/scripts/version-manager.sh +831 -0
- package/.agent/scripts/webhosting-helper.sh +471 -0
- package/.agent/scripts/webhosting-verify.sh +238 -0
- package/.agent/scripts/wordpress-mcp-helper.sh +508 -0
- package/.agent/scripts/worktree-helper.sh +595 -0
- package/.agent/scripts/worktree-sessions.sh +577 -0
- package/.agent/seo/dataforseo.md +215 -0
- package/.agent/seo/domain-research.md +532 -0
- package/.agent/seo/eeat-score.md +659 -0
- package/.agent/seo/google-search-console.md +366 -0
- package/.agent/seo/gsc-sitemaps.md +282 -0
- package/.agent/seo/keyword-research.md +521 -0
- package/.agent/seo/serper.md +278 -0
- package/.agent/seo/site-crawler.md +387 -0
- package/.agent/seo.md +236 -0
- package/.agent/services/accounting/quickfile.md +159 -0
- package/.agent/services/communications/telfon.md +470 -0
- package/.agent/services/communications/twilio.md +569 -0
- package/.agent/services/crm/fluentcrm.md +449 -0
- package/.agent/services/email/ses.md +399 -0
- package/.agent/services/hosting/101domains.md +378 -0
- package/.agent/services/hosting/closte.md +177 -0
- package/.agent/services/hosting/cloudflare.md +251 -0
- package/.agent/services/hosting/cloudron.md +478 -0
- package/.agent/services/hosting/dns-providers.md +335 -0
- package/.agent/services/hosting/domain-purchasing.md +344 -0
- package/.agent/services/hosting/hetzner.md +327 -0
- package/.agent/services/hosting/hostinger.md +287 -0
- package/.agent/services/hosting/localhost.md +419 -0
- package/.agent/services/hosting/spaceship.md +353 -0
- package/.agent/services/hosting/webhosting.md +330 -0
- package/.agent/social-media.md +69 -0
- package/.agent/templates/plans-template.md +114 -0
- package/.agent/templates/prd-template.md +129 -0
- package/.agent/templates/tasks-template.md +108 -0
- package/.agent/templates/todo-template.md +89 -0
- package/.agent/tools/ai-assistants/agno.md +471 -0
- package/.agent/tools/ai-assistants/capsolver.md +326 -0
- package/.agent/tools/ai-assistants/configuration.md +221 -0
- package/.agent/tools/ai-assistants/overview.md +209 -0
- package/.agent/tools/ai-assistants/status.md +171 -0
- package/.agent/tools/ai-assistants/windsurf.md +193 -0
- package/.agent/tools/ai-orchestration/autogen.md +406 -0
- package/.agent/tools/ai-orchestration/crewai.md +445 -0
- package/.agent/tools/ai-orchestration/langflow.md +405 -0
- package/.agent/tools/ai-orchestration/openprose.md +487 -0
- package/.agent/tools/ai-orchestration/overview.md +362 -0
- package/.agent/tools/ai-orchestration/packaging.md +647 -0
- package/.agent/tools/browser/agent-browser.md +464 -0
- package/.agent/tools/browser/browser-automation.md +400 -0
- package/.agent/tools/browser/chrome-devtools.md +282 -0
- package/.agent/tools/browser/crawl4ai-integration.md +422 -0
- package/.agent/tools/browser/crawl4ai-resources.md +277 -0
- package/.agent/tools/browser/crawl4ai-usage.md +416 -0
- package/.agent/tools/browser/crawl4ai.md +585 -0
- package/.agent/tools/browser/dev-browser.md +341 -0
- package/.agent/tools/browser/pagespeed.md +260 -0
- package/.agent/tools/browser/playwright.md +266 -0
- package/.agent/tools/browser/playwriter.md +310 -0
- package/.agent/tools/browser/stagehand-examples.md +456 -0
- package/.agent/tools/browser/stagehand-python.md +483 -0
- package/.agent/tools/browser/stagehand.md +421 -0
- package/.agent/tools/build-agent/agent-review.md +224 -0
- package/.agent/tools/build-agent/build-agent.md +784 -0
- package/.agent/tools/build-mcp/aidevops-plugin.md +476 -0
- package/.agent/tools/build-mcp/api-wrapper.md +445 -0
- package/.agent/tools/build-mcp/build-mcp.md +240 -0
- package/.agent/tools/build-mcp/deployment.md +401 -0
- package/.agent/tools/build-mcp/server-patterns.md +632 -0
- package/.agent/tools/build-mcp/transports.md +366 -0
- package/.agent/tools/code-review/auditing.md +383 -0
- package/.agent/tools/code-review/automation.md +219 -0
- package/.agent/tools/code-review/best-practices.md +203 -0
- package/.agent/tools/code-review/codacy.md +151 -0
- package/.agent/tools/code-review/code-simplifier.md +174 -0
- package/.agent/tools/code-review/code-standards.md +309 -0
- package/.agent/tools/code-review/coderabbit.md +101 -0
- package/.agent/tools/code-review/management.md +155 -0
- package/.agent/tools/code-review/qlty.md +248 -0
- package/.agent/tools/code-review/secretlint.md +565 -0
- package/.agent/tools/code-review/setup.md +250 -0
- package/.agent/tools/code-review/snyk.md +563 -0
- package/.agent/tools/code-review/tools.md +230 -0
- package/.agent/tools/content/summarize.md +353 -0
- package/.agent/tools/context/augment-context-engine.md +468 -0
- package/.agent/tools/context/context-builder-agent.md +76 -0
- package/.agent/tools/context/context-builder.md +375 -0
- package/.agent/tools/context/context7.md +371 -0
- package/.agent/tools/context/dspy.md +302 -0
- package/.agent/tools/context/dspyground.md +374 -0
- package/.agent/tools/context/llm-tldr.md +219 -0
- package/.agent/tools/context/osgrep.md +488 -0
- package/.agent/tools/context/prompt-optimization.md +338 -0
- package/.agent/tools/context/toon.md +292 -0
- package/.agent/tools/conversion/pandoc.md +304 -0
- package/.agent/tools/credentials/api-key-management.md +154 -0
- package/.agent/tools/credentials/api-key-setup.md +224 -0
- package/.agent/tools/credentials/environment-variables.md +180 -0
- package/.agent/tools/credentials/vaultwarden.md +382 -0
- package/.agent/tools/data-extraction/outscraper.md +974 -0
- package/.agent/tools/deployment/coolify-cli.md +388 -0
- package/.agent/tools/deployment/coolify-setup.md +353 -0
- package/.agent/tools/deployment/coolify.md +345 -0
- package/.agent/tools/deployment/vercel.md +390 -0
- package/.agent/tools/git/authentication.md +132 -0
- package/.agent/tools/git/gitea-cli.md +193 -0
- package/.agent/tools/git/github-actions.md +207 -0
- package/.agent/tools/git/github-cli.md +223 -0
- package/.agent/tools/git/gitlab-cli.md +190 -0
- package/.agent/tools/git/opencode-github-security.md +350 -0
- package/.agent/tools/git/opencode-github.md +328 -0
- package/.agent/tools/git/opencode-gitlab.md +252 -0
- package/.agent/tools/git/security.md +196 -0
- package/.agent/tools/git.md +207 -0
- package/.agent/tools/opencode/oh-my-opencode.md +375 -0
- package/.agent/tools/opencode/opencode-anthropic-auth.md +446 -0
- package/.agent/tools/opencode/opencode.md +651 -0
- package/.agent/tools/social-media/bird.md +437 -0
- package/.agent/tools/task-management/beads.md +336 -0
- package/.agent/tools/terminal/terminal-title.md +251 -0
- package/.agent/tools/ui/shadcn.md +196 -0
- package/.agent/tools/ui/ui-skills.md +115 -0
- package/.agent/tools/wordpress/localwp.md +311 -0
- package/.agent/tools/wordpress/mainwp.md +391 -0
- package/.agent/tools/wordpress/scf.md +527 -0
- package/.agent/tools/wordpress/wp-admin.md +729 -0
- package/.agent/tools/wordpress/wp-dev.md +940 -0
- package/.agent/tools/wordpress/wp-preferred.md +398 -0
- package/.agent/tools/wordpress.md +95 -0
- package/.agent/workflows/branch/bugfix.md +63 -0
- package/.agent/workflows/branch/chore.md +95 -0
- package/.agent/workflows/branch/experiment.md +115 -0
- package/.agent/workflows/branch/feature.md +59 -0
- package/.agent/workflows/branch/hotfix.md +98 -0
- package/.agent/workflows/branch/refactor.md +92 -0
- package/.agent/workflows/branch/release.md +96 -0
- package/.agent/workflows/branch.md +347 -0
- package/.agent/workflows/bug-fixing.md +267 -0
- package/.agent/workflows/changelog.md +129 -0
- package/.agent/workflows/code-audit-remote.md +279 -0
- package/.agent/workflows/conversation-starter.md +69 -0
- package/.agent/workflows/error-feedback.md +578 -0
- package/.agent/workflows/feature-development.md +355 -0
- package/.agent/workflows/git-workflow.md +702 -0
- package/.agent/workflows/multi-repo-workspace.md +268 -0
- package/.agent/workflows/plans.md +709 -0
- package/.agent/workflows/postflight.md +604 -0
- package/.agent/workflows/pr.md +571 -0
- package/.agent/workflows/preflight.md +278 -0
- package/.agent/workflows/ralph-loop.md +773 -0
- package/.agent/workflows/release.md +498 -0
- package/.agent/workflows/session-manager.md +254 -0
- package/.agent/workflows/session-review.md +311 -0
- package/.agent/workflows/sql-migrations.md +631 -0
- package/.agent/workflows/version-bump.md +283 -0
- package/.agent/workflows/wiki-update.md +333 -0
- package/.agent/workflows/worktree.md +477 -0
- package/LICENSE +21 -0
- package/README.md +1446 -0
- package/VERSION +1 -0
- package/aidevops.sh +1746 -0
- package/bin/aidevops +21 -0
- package/package.json +75 -0
- package/scripts/npm-postinstall.js +60 -0
- 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
|