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,469 @@
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
+ # TOON Format Helper for AI DevOps Framework
5
+ # Token-Oriented Object Notation (TOON) - Compact, human-readable, schema-aware JSON for LLM prompts
6
+ #
7
+ # Author: AI DevOps Framework
8
+ # Version: 1.0.0
9
+
10
+ # Colors for output
11
+ readonly GREEN='\033[0;32m'
12
+ readonly BLUE='\033[0;34m'
13
+ readonly YELLOW='\033[1;33m'
14
+ readonly RED='\033[0;31m'
15
+ readonly NC='\033[0m' # No Color
16
+
17
+ print_info() { local msg="$1"; echo -e "${BLUE}[INFO]${NC} $msg"; return 0; }
18
+ print_success() { local msg="$1"; echo -e "${GREEN}[SUCCESS]${NC} $msg"; return 0; }
19
+ print_warning() { local msg="$1"; echo -e "${YELLOW}[WARNING]${NC} $msg"; return 0; }
20
+ print_error() { local msg="$1"; echo -e "${RED}[ERROR]${NC} $msg" >&2; return 0; }
21
+
22
+ # Determine package runner (bun x or npx)
23
+ get_pkg_runner() {
24
+ if command -v bun &> /dev/null; then
25
+ echo "bun x"
26
+ elif command -v npx &> /dev/null; then
27
+ echo "npx"
28
+ else
29
+ echo ""
30
+ fi
31
+ return 0
32
+ }
33
+
34
+ PKG_RUNNER=""
35
+
36
+ # Check if TOON CLI is available
37
+ check_toon() {
38
+ PKG_RUNNER=$(get_pkg_runner)
39
+
40
+ if [[ -z "$PKG_RUNNER" ]]; then
41
+ print_error "bun or npx is required. Install Bun (recommended):"
42
+ echo ""
43
+ echo "Bun: curl -fsSL https://bun.sh/install | bash"
44
+ echo ""
45
+ echo "Or Node.js:"
46
+ echo "macOS: brew install node"
47
+ echo "Ubuntu: sudo apt-get install nodejs npm"
48
+ return 1
49
+ fi
50
+
51
+ # Test TOON CLI availability
52
+ if ! $PKG_RUNNER @toon-format/cli --help &> /dev/null; then
53
+ print_warning "TOON CLI not found, will install on first use"
54
+ fi
55
+
56
+ return 0
57
+ }
58
+
59
+ # Convert JSON to TOON format
60
+ json_to_toon() {
61
+ local input_file="$command"
62
+ local output_file="$account_name"
63
+ local delimiter="${3:-,}"
64
+ local show_stats="${4:-false}"
65
+
66
+ if [[ -z "$input_file" ]]; then
67
+ print_error "Input file is required"
68
+ return 1
69
+ fi
70
+
71
+ if [[ ! -f "$input_file" ]]; then
72
+ print_error "Input file not found: $input_file"
73
+ return 1
74
+ fi
75
+
76
+ local cmd_args=()
77
+ # Handle tab delimiter properly
78
+ if [[ "$delimiter" == "\\t" || "$delimiter" == "\t" ]]; then
79
+ cmd_args+=("--delimiter" $'\t')
80
+ else
81
+ cmd_args+=("--delimiter" "$delimiter")
82
+ fi
83
+
84
+ if [[ "$show_stats" == "true" ]]; then
85
+ cmd_args+=("--stats")
86
+ fi
87
+
88
+ if [[ -n "$output_file" ]]; then
89
+ cmd_args+=("-o" "$output_file")
90
+ fi
91
+
92
+ print_info "Converting JSON to TOON format..."
93
+ if $PKG_RUNNER @toon-format/cli "${cmd_args[@]}" "$input_file"; then
94
+ if [[ -n "$output_file" ]]; then
95
+ print_success "Converted to TOON: $output_file"
96
+ else
97
+ print_success "Conversion completed"
98
+ fi
99
+ return 0
100
+ else
101
+ print_error "Failed to convert JSON to TOON"
102
+ return 1
103
+ fi
104
+ return 0
105
+ }
106
+
107
+ # Convert TOON to JSON format
108
+ toon_to_json() {
109
+ local input_file="$command"
110
+ local output_file="$account_name"
111
+ local strict_mode="${3:-true}"
112
+
113
+ if [[ -z "$input_file" ]]; then
114
+ print_error "Input file is required"
115
+ return 1
116
+ fi
117
+
118
+ if [[ ! -f "$input_file" ]]; then
119
+ print_error "Input file not found: $input_file"
120
+ return 1
121
+ fi
122
+
123
+ local cmd_args=("--decode")
124
+
125
+ if [[ "$strict_mode" == "false" ]]; then
126
+ cmd_args+=("--no-strict")
127
+ fi
128
+
129
+ if [[ -n "$output_file" ]]; then
130
+ cmd_args+=("-o" "$output_file")
131
+ fi
132
+
133
+ print_info "Converting TOON to JSON format..."
134
+ if $PKG_RUNNER @toon-format/cli "${cmd_args[@]}" "$input_file"; then
135
+ if [[ -n "$output_file" ]]; then
136
+ print_success "Converted to JSON: $output_file"
137
+ else
138
+ print_success "Conversion completed"
139
+ fi
140
+ return 0
141
+ else
142
+ print_error "Failed to convert TOON to JSON"
143
+ return 1
144
+ fi
145
+ return 0
146
+ }
147
+
148
+ # Convert from stdin
149
+ convert_stdin() {
150
+ local format="$command"
151
+ local delimiter="${2:-,}"
152
+ local show_stats="${3:-false}"
153
+
154
+ local cmd_args=()
155
+
156
+ case "$format" in
157
+ "encode"|"json-to-toon")
158
+ cmd_args+=("--encode")
159
+ # Handle tab delimiter properly
160
+ if [[ "$delimiter" == "\\t" || "$delimiter" == "\t" ]]; then
161
+ cmd_args+=("--delimiter" $'\t')
162
+ else
163
+ cmd_args+=("--delimiter" "$delimiter")
164
+ fi
165
+ if [[ "$show_stats" == "true" ]]; then
166
+ cmd_args+=("--stats")
167
+ fi
168
+ ;;
169
+ "decode"|"toon-to-json")
170
+ cmd_args+=("--decode")
171
+ ;;
172
+ *)
173
+ print_error "Invalid format: $format. Use 'encode' or 'decode'"
174
+ return 1
175
+ ;;
176
+ esac
177
+
178
+ print_info "Converting from stdin..."
179
+ if $PKG_RUNNER @toon-format/cli "${cmd_args[@]}"; then
180
+ print_success "Conversion completed"
181
+ return 0
182
+ else
183
+ print_error "Failed to convert from stdin"
184
+ return 1
185
+ fi
186
+ return 0
187
+ }
188
+
189
+ # Batch convert directory
190
+ batch_convert() {
191
+ local source_dir="$command"
192
+ local target_dir="$account_name"
193
+ local format="$target"
194
+ local delimiter="${4:-,}"
195
+
196
+ if [[ -z "$source_dir" || -z "$target_dir" || -z "$format" ]]; then
197
+ print_error "Usage: batch_convert <source_dir> <target_dir> <json-to-toon|toon-to-json> [delimiter]"
198
+ return 1
199
+ fi
200
+
201
+ if [[ ! -d "$source_dir" ]]; then
202
+ print_error "Source directory not found: $source_dir"
203
+ return 1
204
+ fi
205
+
206
+ mkdir -p "$target_dir"
207
+
208
+ local count=0
209
+ local success_count=0
210
+
211
+ case "$format" in
212
+ "json-to-toon")
213
+ for file in "$source_dir"/*.json; do
214
+ if [[ -f "$file" ]]; then
215
+ local basename
216
+ basename=$(basename "$file" .json)
217
+ local target_file="$target_dir/$basename.toon"
218
+
219
+ ((count++))
220
+ if json_to_toon "$file" "$target_file" "$delimiter" "false"; then
221
+ ((success_count++))
222
+ fi
223
+ fi
224
+ done
225
+ ;;
226
+ "toon-to-json")
227
+ for file in "$source_dir"/*.toon; do
228
+ if [[ -f "$file" ]]; then
229
+ local basename
230
+ basename=$(basename "$file" .toon)
231
+ local target_file="$target_dir/$basename.json"
232
+
233
+ ((count++))
234
+ if toon_to_json "$file" "$target_file" "true"; then
235
+ ((success_count++))
236
+ fi
237
+ fi
238
+ done
239
+ ;;
240
+ *)
241
+ print_error "Invalid format: $format. Use 'json-to-toon' or 'toon-to-json'"
242
+ return 1
243
+ ;;
244
+ esac
245
+
246
+ print_success "Batch conversion completed: $success_count/$count files converted"
247
+ return 0
248
+ }
249
+
250
+ # Compare token efficiency
251
+ compare_formats() {
252
+ local input_file="$command"
253
+
254
+ if [[ -z "$input_file" ]]; then
255
+ print_error "Input file is required"
256
+ return 1
257
+ fi
258
+
259
+ if [[ ! -f "$input_file" ]]; then
260
+ print_error "Input file not found: $input_file"
261
+ return 1
262
+ fi
263
+
264
+ print_info "Comparing token efficiency for: $input_file"
265
+ echo ""
266
+
267
+ # Show TOON with stats
268
+ print_info "TOON format with token statistics:"
269
+ $PKG_RUNNER @toon-format/cli --stats "$input_file"
270
+
271
+ return 0
272
+ }
273
+
274
+ # Validate TOON format
275
+ validate_toon() {
276
+ local input_file="$command"
277
+
278
+ if [[ -z "$input_file" ]]; then
279
+ print_error "Input file is required"
280
+ return 1
281
+ fi
282
+
283
+ if [[ ! -f "$input_file" ]]; then
284
+ print_error "Input file not found: $input_file"
285
+ return 1
286
+ fi
287
+
288
+ print_info "Validating TOON format: $input_file"
289
+
290
+ # Try to decode with strict validation
291
+ if $PKG_RUNNER @toon-format/cli --decode "$input_file" > /dev/null 2>&1; then
292
+ print_success "TOON format is valid"
293
+ return 0
294
+ else
295
+ print_error "TOON format validation failed"
296
+ return 1
297
+ fi
298
+ return 0
299
+ }
300
+
301
+ # Show TOON CLI version and info
302
+ show_info() {
303
+ print_info "TOON Format Helper - AI DevOps Framework Integration"
304
+ echo ""
305
+
306
+ if check_toon; then
307
+ print_info "TOON CLI version:"
308
+ $PKG_RUNNER @toon-format/cli --help | head -1
309
+ echo ""
310
+
311
+ print_info "TOON Format Benefits:"
312
+ echo "• 20-60% token reduction vs JSON"
313
+ echo "• Human-readable tabular format"
314
+ echo "• Schema-aware with explicit array lengths"
315
+ echo "• Better LLM comprehension and generation"
316
+ echo "• Supports nested structures and mixed data"
317
+ echo ""
318
+
319
+ print_info "Use cases in AI DevOps:"
320
+ echo "• Configuration data for LLM prompts"
321
+ echo "• API response formatting"
322
+ echo "• Data exchange between AI tools"
323
+ echo "• Structured logging and reports"
324
+ echo "• Database exports for AI analysis"
325
+ fi
326
+
327
+ return 0
328
+ }
329
+
330
+ # Show help
331
+ show_help() {
332
+ echo "TOON Format Helper Script"
333
+ echo "Usage: $0 [command] [options...]"
334
+ echo ""
335
+ echo "Commands:"
336
+ echo " encode <input.json> [output.toon] [delimiter] [show_stats]"
337
+ echo " - Convert JSON to TOON format"
338
+ printf " - delimiter: ',' (default), '\\t' (tab), '|' (pipe)\\n"
339
+ echo " - show_stats: true/false (default: false)"
340
+ echo ""
341
+ echo " decode <input.toon> [output.json] [strict_mode]"
342
+ echo " - Convert TOON to JSON format"
343
+ echo " - strict_mode: true (default)/false"
344
+ echo ""
345
+ echo " stdin-encode [delimiter] [show_stats]"
346
+ echo " - Convert JSON from stdin to TOON"
347
+ echo ""
348
+ echo " stdin-decode"
349
+ echo " - Convert TOON from stdin to JSON"
350
+ echo ""
351
+ echo " batch <source_dir> <target_dir> <json-to-toon|toon-to-json> [delimiter]"
352
+ echo " - Batch convert directory of files"
353
+ echo ""
354
+ echo " compare <input.json>"
355
+ echo " - Show token efficiency comparison"
356
+ echo ""
357
+ echo " validate <input.toon>"
358
+ echo " - Validate TOON format"
359
+ echo ""
360
+ echo " info"
361
+ echo " - Show TOON format information"
362
+ echo ""
363
+ echo " help"
364
+ echo " - Show this help message"
365
+ echo ""
366
+ echo "Examples:"
367
+ echo " $0 encode data.json output.toon"
368
+ printf " %s encode data.json output.toon '\\t' true\\n" "$0"
369
+ echo " $0 decode data.toon output.json"
370
+ echo " $0 batch ./json-files ./toon-files json-to-toon"
371
+ echo " cat data.json | $0 stdin-encode"
372
+ printf " cat data.json | %s stdin-encode \$'\\t' true # Tab delimiter\\n" "$0"
373
+ echo " $0 compare large-dataset.json"
374
+ echo " $0 validate data.toon"
375
+
376
+ return 0
377
+ }
378
+
379
+ # Main script logic
380
+ main() {
381
+ # Assign positional parameters to local variables
382
+ local command="${1:-help}"
383
+ local account_name="$account_name"
384
+ local target="$target"
385
+ local options="$options"
386
+ # Assign positional parameters to local variables
387
+ local command="${1:-help}"
388
+ local account_name="$account_name"
389
+ local target="$target"
390
+ local options="$options"
391
+ # Assign positional parameters to local variables
392
+ local command="${1:-help}"
393
+ local account_name="$account_name"
394
+ local target="$target"
395
+ local options="$options"
396
+ # Assign positional parameters to local variables
397
+
398
+ case "$command" in
399
+ "encode"|"json-to-toon")
400
+ local input_file="$account_name"
401
+ local output_file="$target"
402
+ local delimiter="${4:-,}"
403
+ local show_stats="${5:-false}"
404
+
405
+ if check_toon; then
406
+ json_to_toon "$input_file" "$output_file" "$delimiter" "$show_stats"
407
+ fi
408
+ ;;
409
+ "decode"|"toon-to-json")
410
+ local input_file="$account_name"
411
+ local output_file="$target"
412
+ local strict_mode="${4:-true}"
413
+
414
+ if check_toon; then
415
+ toon_to_json "$input_file" "$output_file" "$strict_mode"
416
+ fi
417
+ ;;
418
+ "stdin-encode")
419
+ local delimiter="${2:-,}"
420
+ local show_stats="${3:-false}"
421
+
422
+ if check_toon; then
423
+ convert_stdin "encode" "$delimiter" "$show_stats"
424
+ fi
425
+ ;;
426
+ "stdin-decode")
427
+ if check_toon; then
428
+ convert_stdin "decode"
429
+ fi
430
+ ;;
431
+ "batch")
432
+ local source_dir="$account_name"
433
+ local target_dir="$target"
434
+ local format="$options"
435
+ local delimiter="${5:-,}"
436
+
437
+ if check_toon; then
438
+ batch_convert "$source_dir" "$target_dir" "$format" "$delimiter"
439
+ fi
440
+ ;;
441
+ "compare")
442
+ local input_file="$account_name"
443
+
444
+ if check_toon; then
445
+ compare_formats "$input_file"
446
+ fi
447
+ ;;
448
+ "validate")
449
+ local input_file="$account_name"
450
+
451
+ if check_toon; then
452
+ validate_toon "$input_file"
453
+ fi
454
+ ;;
455
+ "info")
456
+ show_info
457
+ ;;
458
+ "help"|*)
459
+ show_help
460
+ ;;
461
+ esac
462
+
463
+ return 0
464
+ }
465
+
466
+ # Execute main function with all arguments
467
+ main "$@"
468
+
469
+ return 0