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,522 @@
1
+ #!/bin/bash
2
+ # =============================================================================
3
+ # Context Builder Helper Script
4
+ # =============================================================================
5
+ # Wraps Repomix to provide token-efficient context generation for AI assistants
6
+ # Inspired by RepoPrompt's Code Maps and context engineering capabilities
7
+ #
8
+ # Usage: ./context-builder-helper.sh [command] [path] [options]
9
+ # Commands:
10
+ # pack [path] Pack repository with smart defaults
11
+ # compress [path] Pack with Tree-sitter compression (~80% token reduction)
12
+ # quick [path] Fast pack for small focused contexts
13
+ # analyze [path] Show token analysis without generating output
14
+ # remote <url> Pack a remote GitHub repository
15
+ # help Show this help message
16
+ #
17
+ # Version: 1.0.0
18
+ # =============================================================================
19
+
20
+ set -euo pipefail
21
+
22
+ # Configuration
23
+ declare SCRIPT_DIR
24
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" || exit
25
+ readonly SCRIPT_DIR
26
+ export SCRIPT_DIR # Available for sourced scripts
27
+ declare SCRIPT_NAME
28
+ SCRIPT_NAME="$(basename "$0")"
29
+ readonly SCRIPT_NAME
30
+ readonly VERSION="1.0.0"
31
+
32
+ # Default output directory
33
+ readonly DEFAULT_OUTPUT_DIR="$HOME/.aidevops/.agent-workspace/work/context"
34
+
35
+ # Colors for output
36
+ readonly RED='\033[0;31m'
37
+ readonly GREEN='\033[0;32m'
38
+ readonly YELLOW='\033[1;33m'
39
+ readonly BLUE='\033[0;34m'
40
+ readonly CYAN='\033[0;36m'
41
+ readonly NC='\033[0m'
42
+
43
+ # =============================================================================
44
+ # Helper Functions
45
+ # =============================================================================
46
+
47
+ print_info() {
48
+ local msg="$1"
49
+ echo -e "${BLUE}[INFO]${NC} $msg"
50
+ return 0
51
+ }
52
+
53
+ print_success() {
54
+ local msg="$1"
55
+ echo -e "${GREEN}[SUCCESS]${NC} $msg"
56
+ return 0
57
+ }
58
+
59
+ print_warning() {
60
+ local msg="$1"
61
+ echo -e "${YELLOW}[WARNING]${NC} $msg"
62
+ return 0
63
+ }
64
+
65
+ print_error() {
66
+ local msg="$1"
67
+ echo -e "${RED}[ERROR]${NC} $msg" >&2
68
+ return 0
69
+ }
70
+
71
+ print_header() {
72
+ echo -e "${CYAN}========================================${NC}"
73
+ echo -e "${CYAN} Context Builder - Token-Efficient AI Context${NC}"
74
+ echo -e "${CYAN}========================================${NC}"
75
+ echo ""
76
+ return 0
77
+ }
78
+
79
+ # Check if repomix is available
80
+ check_repomix() {
81
+ if ! command -v npx &>/dev/null; then
82
+ print_error "npx not found - please install Node.js"
83
+ return 1
84
+ fi
85
+ return 0
86
+ }
87
+
88
+ # Ensure output directory exists
89
+ ensure_output_dir() {
90
+ if [[ ! -d "$DEFAULT_OUTPUT_DIR" ]]; then
91
+ mkdir -p "$DEFAULT_OUTPUT_DIR"
92
+ print_info "Created output directory: $DEFAULT_OUTPUT_DIR"
93
+ fi
94
+ return 0
95
+ }
96
+
97
+ # Generate timestamped output filename
98
+ generate_output_name() {
99
+ local base_path="$1"
100
+ local style="${2:-xml}"
101
+ local suffix="${3:-}"
102
+ local base_name
103
+
104
+ # Get directory name for output file
105
+ if [[ "$base_path" == "." ]]; then
106
+ base_name=$(basename "$(pwd)")
107
+ else
108
+ base_name=$(basename "$base_path")
109
+ fi
110
+
111
+ local timestamp
112
+ timestamp=$(date +%Y%m%d-%H%M%S)
113
+
114
+ if [[ -n "$suffix" ]]; then
115
+ echo "${DEFAULT_OUTPUT_DIR}/${base_name}-${suffix}-${timestamp}.${style}"
116
+ else
117
+ echo "${DEFAULT_OUTPUT_DIR}/${base_name}-${timestamp}.${style}"
118
+ fi
119
+ return 0
120
+ }
121
+
122
+ # =============================================================================
123
+ # Core Commands
124
+ # =============================================================================
125
+
126
+ # Pack repository with smart defaults
127
+ cmd_pack() {
128
+ local target_path="${1:-.}"
129
+ local style="${2:-xml}"
130
+ local output_file
131
+
132
+ check_repomix || return 1
133
+ ensure_output_dir
134
+
135
+ output_file=$(generate_output_name "$target_path" "$style" "full")
136
+
137
+ print_info "Packing repository: $target_path"
138
+ print_info "Output format: $style"
139
+ print_info "Output file: $output_file"
140
+ echo ""
141
+
142
+ npx repomix@latest "$target_path" \
143
+ --output "$output_file" \
144
+ --style "$style" \
145
+ --output-show-line-numbers \
146
+ --top-files-len 10
147
+
148
+ if [[ -f "$output_file" ]]; then
149
+ local size
150
+ size=$(du -h "$output_file" | cut -f1)
151
+ print_success "Context file generated: $output_file ($size)"
152
+ print_info "Copy to clipboard: cat '$output_file' | pbcopy"
153
+ fi
154
+
155
+ return 0
156
+ }
157
+
158
+ # Pack with Tree-sitter compression (Code Maps equivalent)
159
+ cmd_compress() {
160
+ local target_path="${1:-.}"
161
+ local style="${2:-xml}"
162
+ local output_file
163
+
164
+ check_repomix || return 1
165
+ ensure_output_dir
166
+
167
+ output_file=$(generate_output_name "$target_path" "$style" "compressed")
168
+
169
+ print_info "Compressing repository with Tree-sitter (Code Maps mode)"
170
+ print_info "This extracts code structure (classes, functions, interfaces)"
171
+ print_info "Expected token reduction: ~80%"
172
+ print_info "Target: $target_path"
173
+ print_info "Output: $output_file"
174
+ echo ""
175
+
176
+ npx repomix@latest "$target_path" \
177
+ --output "$output_file" \
178
+ --style "$style" \
179
+ --compress \
180
+ --remove-comments \
181
+ --remove-empty-lines \
182
+ --top-files-len 10
183
+
184
+ if [[ -f "$output_file" ]]; then
185
+ local size
186
+ size=$(du -h "$output_file" | cut -f1)
187
+ print_success "Compressed context file: $output_file ($size)"
188
+ print_info "This contains code structure only - ideal for architecture understanding"
189
+ fi
190
+
191
+ return 0
192
+ }
193
+
194
+ # Quick pack for focused small contexts
195
+ cmd_quick() {
196
+ local target_path="${1:-.}"
197
+ local include_pattern="${2:-}"
198
+ local output_file
199
+
200
+ check_repomix || return 1
201
+ ensure_output_dir
202
+
203
+ output_file=$(generate_output_name "$target_path" "md" "quick")
204
+
205
+ print_info "Quick pack mode (minimal output)"
206
+ print_info "Target: $target_path"
207
+
208
+ local include_args=()
209
+ if [[ -n "$include_pattern" ]]; then
210
+ include_args=("--include" "$include_pattern")
211
+ print_info "Include pattern: $include_pattern"
212
+ fi
213
+
214
+ echo ""
215
+
216
+ npx repomix@latest "$target_path" \
217
+ --output "$output_file" \
218
+ --style markdown \
219
+ --no-file-summary \
220
+ --remove-comments \
221
+ --remove-empty-lines \
222
+ "${include_args[@]}"
223
+
224
+ if [[ -f "$output_file" ]]; then
225
+ local size
226
+ size=$(du -h "$output_file" | cut -f1)
227
+ print_success "Quick context: $output_file ($size)"
228
+
229
+ # Copy to clipboard on macOS
230
+ if command -v pbcopy &>/dev/null; then
231
+ cat "$output_file" | pbcopy
232
+ print_success "Copied to clipboard!"
233
+ fi
234
+ fi
235
+
236
+ return 0
237
+ }
238
+
239
+ # Analyze token usage without generating full output
240
+ cmd_analyze() {
241
+ local target_path="${1:-.}"
242
+ local threshold="${2:-100}"
243
+
244
+ check_repomix || return 1
245
+
246
+ print_info "Analyzing token usage in: $target_path"
247
+ print_info "Showing files with >= $threshold tokens"
248
+ echo ""
249
+
250
+ npx repomix@latest "$target_path" \
251
+ --token-count-tree "$threshold" \
252
+ --no-files \
253
+ --quiet 2>/dev/null || npx repomix@latest "$target_path" --token-count-tree "$threshold"
254
+
255
+ return 0
256
+ }
257
+
258
+ # Pack a remote GitHub repository
259
+ cmd_remote() {
260
+ local repo_url="$1"
261
+ local branch="${2:-}"
262
+ local style="${3:-xml}"
263
+ local output_file
264
+
265
+ if [[ -z "$repo_url" ]]; then
266
+ print_error "Repository URL required"
267
+ print_info "Usage: $SCRIPT_NAME remote <github-url|user/repo> [branch] [style]"
268
+ return 1
269
+ fi
270
+
271
+ check_repomix || return 1
272
+ ensure_output_dir
273
+
274
+ # Extract repo name for output file
275
+ local repo_name
276
+ repo_name=$(echo "$repo_url" | sed 's|.*/||' | sed 's|\.git$||')
277
+ output_file="${DEFAULT_OUTPUT_DIR}/${repo_name}-remote-$(date +%Y%m%d-%H%M%S).${style}"
278
+
279
+ print_info "Packing remote repository: $repo_url"
280
+ if [[ -n "$branch" ]]; then
281
+ print_info "Branch: $branch"
282
+ fi
283
+ print_info "Output: $output_file"
284
+ echo ""
285
+
286
+ local branch_args=()
287
+ if [[ -n "$branch" ]]; then
288
+ branch_args=("--remote-branch" "$branch")
289
+ fi
290
+
291
+ npx repomix@latest \
292
+ --remote "$repo_url" \
293
+ "${branch_args[@]}" \
294
+ --output "$output_file" \
295
+ --style "$style" \
296
+ --compress \
297
+ --top-files-len 10
298
+
299
+ if [[ -f "$output_file" ]]; then
300
+ local size
301
+ size=$(du -h "$output_file" | cut -f1)
302
+ print_success "Remote context file: $output_file ($size)"
303
+ fi
304
+
305
+ return 0
306
+ }
307
+
308
+ # Compare full vs compressed token usage
309
+ cmd_compare() {
310
+ local target_path="${1:-.}"
311
+
312
+ check_repomix || return 1
313
+ ensure_output_dir
314
+
315
+ print_header
316
+ print_info "Comparing full vs compressed context for: $target_path"
317
+ echo ""
318
+
319
+ # Generate both versions
320
+ local full_output
321
+ local compressed_output
322
+ full_output=$(generate_output_name "$target_path" "xml" "full-compare")
323
+ compressed_output=$(generate_output_name "$target_path" "xml" "compressed-compare")
324
+
325
+ print_info "Generating full context..."
326
+ npx repomix@latest "$target_path" \
327
+ --output "$full_output" \
328
+ --style xml \
329
+ --quiet 2>/dev/null || true
330
+
331
+ print_info "Generating compressed context..."
332
+ npx repomix@latest "$target_path" \
333
+ --output "$compressed_output" \
334
+ --style xml \
335
+ --compress \
336
+ --remove-comments \
337
+ --remove-empty-lines \
338
+ --quiet 2>/dev/null || true
339
+
340
+ if [[ -f "$full_output" ]] && [[ -f "$compressed_output" ]]; then
341
+ local full_size
342
+ local compressed_size
343
+ local full_lines
344
+ local compressed_lines
345
+
346
+ full_size=$(du -h "$full_output" | cut -f1)
347
+ compressed_size=$(du -h "$compressed_output" | cut -f1)
348
+ full_lines=$(wc -l < "$full_output" | tr -d ' ')
349
+ compressed_lines=$(wc -l < "$compressed_output" | tr -d ' ')
350
+
351
+ echo ""
352
+ echo "┌─────────────────────────────────────────────────┐"
353
+ echo "│ Context Comparison │"
354
+ echo "├─────────────────────────────────────────────────┤"
355
+ printf "│ %-20s │ %10s │ %10s │\n" "Metric" "Full" "Compressed"
356
+ echo "├─────────────────────────────────────────────────┤"
357
+ printf "│ %-20s │ %10s │ %10s │\n" "File Size" "$full_size" "$compressed_size"
358
+ printf "│ %-20s │ %10s │ %10s │\n" "Lines" "$full_lines" "$compressed_lines"
359
+ echo "└─────────────────────────────────────────────────┘"
360
+ echo ""
361
+
362
+ # Calculate reduction percentage
363
+ local full_bytes
364
+ local compressed_bytes
365
+ full_bytes=$(wc -c < "$full_output" | tr -d ' ')
366
+ compressed_bytes=$(wc -c < "$compressed_output" | tr -d ' ')
367
+
368
+ if [[ "$full_bytes" -gt 0 ]]; then
369
+ local reduction
370
+ reduction=$(echo "scale=1; (1 - $compressed_bytes / $full_bytes) * 100" | bc)
371
+ print_success "Size reduction: ${reduction}%"
372
+ fi
373
+
374
+ print_info "Full output: $full_output"
375
+ print_info "Compressed output: $compressed_output"
376
+ fi
377
+
378
+ return 0
379
+ }
380
+
381
+ # Start MCP server mode
382
+ cmd_mcp() {
383
+ check_repomix || return 1
384
+
385
+ print_info "Starting Context Builder MCP server..."
386
+ print_info "This allows AI assistants to directly call context building tools"
387
+ echo ""
388
+
389
+ npx repomix@latest --mcp
390
+
391
+ return 0
392
+ }
393
+
394
+ # =============================================================================
395
+ # Help
396
+ # =============================================================================
397
+
398
+ show_help() {
399
+ cat << 'HELP_EOF'
400
+ Context Builder - Token-Efficient AI Context Generation
401
+ =========================================================
402
+
403
+ Wraps Repomix to provide optimized context for AI coding assistants.
404
+ Inspired by RepoPrompt's Code Maps and context engineering approach.
405
+
406
+ USAGE:
407
+ context-builder-helper.sh [command] [path] [options]
408
+
409
+ COMMANDS:
410
+ pack [path] [style] Pack repository with smart defaults
411
+ Styles: xml (default), markdown, json, plain
412
+
413
+ compress [path] [style] Pack with Tree-sitter compression (~80% token reduction)
414
+ Extracts: classes, functions, interfaces, imports
415
+ Omits: implementation details, comments
416
+
417
+ quick [path] [pattern] Fast pack for focused contexts
418
+ Auto-copies to clipboard on macOS
419
+ Optional: include pattern (e.g., "src/**/*.ts")
420
+
421
+ analyze [path] [threshold] Show token usage per file (default threshold: 100)
422
+ No output file generated
423
+
424
+ remote <url> [branch] [style] Pack a remote GitHub repository
425
+ URL formats: https://github.com/user/repo or user/repo
426
+
427
+ compare [path] Compare full vs compressed output sizes
428
+ Shows token reduction percentage
429
+
430
+ mcp Start as MCP server for AI assistant integration
431
+
432
+ help Show this help message
433
+
434
+ EXAMPLES:
435
+ # Pack current directory
436
+ context-builder-helper.sh pack
437
+
438
+ # Compress a specific project (80% smaller)
439
+ context-builder-helper.sh compress ~/projects/myapp
440
+
441
+ # Quick context for TypeScript files only
442
+ context-builder-helper.sh quick . "**/*.ts"
443
+
444
+ # Analyze token usage
445
+ context-builder-helper.sh analyze ~/git/aidevops 50
446
+
447
+ # Pack remote repo
448
+ context-builder-helper.sh remote facebook/react main
449
+
450
+ # Compare compression effectiveness
451
+ context-builder-helper.sh compare .
452
+
453
+ OUTPUT:
454
+ Files are saved to: ~/.aidevops/.agent-workspace/work/context/
455
+ Format: {repo-name}-{mode}-{timestamp}.{style}
456
+
457
+ TOKEN EFFICIENCY:
458
+ - compress mode uses Tree-sitter to extract code structure only
459
+ - Equivalent to RepoPrompt's "Code Maps" feature
460
+ - Reduces tokens by ~80% while preserving semantic understanding
461
+ - AI can understand architecture without reading implementation
462
+
463
+ MCP INTEGRATION:
464
+ The 'mcp' command starts a Model Context Protocol server.
465
+ Add to your AI assistant's MCP config for direct integration.
466
+
467
+ For more information:
468
+ https://github.com/yamadashy/repomix
469
+ https://github.com/marcusquinn/aidevops
470
+
471
+ HELP_EOF
472
+ return 0
473
+ }
474
+
475
+ # =============================================================================
476
+ # Main
477
+ # =============================================================================
478
+
479
+ main() {
480
+ local command="${1:-help}"
481
+ shift || true
482
+
483
+ case "$command" in
484
+ pack)
485
+ cmd_pack "$@"
486
+ ;;
487
+ compress)
488
+ cmd_compress "$@"
489
+ ;;
490
+ quick)
491
+ cmd_quick "$@"
492
+ ;;
493
+ analyze)
494
+ cmd_analyze "$@"
495
+ ;;
496
+ remote)
497
+ cmd_remote "$@"
498
+ ;;
499
+ compare)
500
+ cmd_compare "$@"
501
+ ;;
502
+ mcp)
503
+ cmd_mcp "$@"
504
+ ;;
505
+ help|--help|-h)
506
+ show_help
507
+ ;;
508
+ version|--version|-v)
509
+ echo "context-builder-helper.sh version $VERSION"
510
+ ;;
511
+ *)
512
+ print_error "Unknown command: $command"
513
+ echo ""
514
+ show_help
515
+ return 1
516
+ ;;
517
+ esac
518
+
519
+ return 0
520
+ }
521
+
522
+ main "$@"