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,388 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# terminal-title-helper.sh - Terminal tab/window title integration for aidevops
|
|
3
|
+
# Part of aidevops framework: https://aidevops.sh
|
|
4
|
+
#
|
|
5
|
+
# Sets terminal tab titles using OSC escape sequences (works with most modern terminals)
|
|
6
|
+
# Supported: Tabby, iTerm2, Windows Terminal, Kitty, Alacritty, GNOME Terminal, etc.
|
|
7
|
+
#
|
|
8
|
+
# Usage:
|
|
9
|
+
# terminal-title-helper.sh [command] [options]
|
|
10
|
+
#
|
|
11
|
+
# Commands:
|
|
12
|
+
# rename [title] Set tab title (defaults to repo/branch)
|
|
13
|
+
# sync Sync tab title with current git repo/branch
|
|
14
|
+
# reset Reset tab title to default
|
|
15
|
+
# detect Check terminal compatibility
|
|
16
|
+
#
|
|
17
|
+
# Examples:
|
|
18
|
+
# terminal-title-helper.sh sync # Set title to "aidevops/feature/xyz"
|
|
19
|
+
# terminal-title-helper.sh rename "My Project" # Set custom title
|
|
20
|
+
# terminal-title-helper.sh reset # Clear custom title
|
|
21
|
+
#
|
|
22
|
+
# Environment:
|
|
23
|
+
# TERMINAL_TITLE_FORMAT Format string: "repo/branch" (default), "branch", "repo"
|
|
24
|
+
# TERMINAL_TITLE_ENABLED Set to "false" to disable terminal title integration
|
|
25
|
+
|
|
26
|
+
set -euo pipefail
|
|
27
|
+
|
|
28
|
+
# Colors
|
|
29
|
+
RED='\033[0;31m'
|
|
30
|
+
GREEN='\033[0;32m'
|
|
31
|
+
YELLOW='\033[1;33m'
|
|
32
|
+
BLUE='\033[0;34m'
|
|
33
|
+
NC='\033[0m'
|
|
34
|
+
|
|
35
|
+
# Logging
|
|
36
|
+
log_info() { echo -e "${BLUE}[INFO]${NC} $*"; }
|
|
37
|
+
log_success() { echo -e "${GREEN}[OK]${NC} $*"; }
|
|
38
|
+
log_warn() { echo -e "${YELLOW}[WARN]${NC} $*"; }
|
|
39
|
+
log_error() { echo -e "${RED}[ERROR]${NC} $*" >&2; }
|
|
40
|
+
|
|
41
|
+
# Configuration (support both old and new env var names for compatibility)
|
|
42
|
+
TERMINAL_TITLE_FORMAT="${TERMINAL_TITLE_FORMAT:-${TABBY_TAB_TITLE_FORMAT:-repo/branch}}"
|
|
43
|
+
TERMINAL_TITLE_ENABLED="${TERMINAL_TITLE_ENABLED:-${AIDEVOPS_TABBY_ENABLED:-true}}"
|
|
44
|
+
|
|
45
|
+
# =============================================================================
|
|
46
|
+
# Core Functions
|
|
47
|
+
# =============================================================================
|
|
48
|
+
|
|
49
|
+
# Set tab title using OSC escape sequence
|
|
50
|
+
# Works with most modern terminals: Tabby, iTerm2, Windows Terminal, Kitty, Alacritty, etc.
|
|
51
|
+
set_tab_title() {
|
|
52
|
+
local title="$1"
|
|
53
|
+
|
|
54
|
+
if [[ "$TERMINAL_TITLE_ENABLED" == "false" ]]; then
|
|
55
|
+
return 0
|
|
56
|
+
fi
|
|
57
|
+
|
|
58
|
+
# OSC 0 sets both icon name and window title
|
|
59
|
+
# OSC 2 sets window title only
|
|
60
|
+
# Using OSC 0 for broader compatibility
|
|
61
|
+
printf '\033]0;%s\007' "$title"
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
# Reset tab title to default (empty string triggers terminal default)
|
|
65
|
+
reset_tab_title() {
|
|
66
|
+
# Send empty title to reset
|
|
67
|
+
printf '\033]0;\007'
|
|
68
|
+
log_success "Tab title reset to default"
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
# Detect terminal type and OSC compatibility
|
|
72
|
+
detect_terminal() {
|
|
73
|
+
local term_program="${TERM_PROGRAM:-}"
|
|
74
|
+
local term="${TERM:-}"
|
|
75
|
+
|
|
76
|
+
# Check known terminals by TERM_PROGRAM
|
|
77
|
+
case "$term_program" in
|
|
78
|
+
"Tabby")
|
|
79
|
+
echo "tabby"
|
|
80
|
+
return 0
|
|
81
|
+
;;
|
|
82
|
+
"iTerm.app")
|
|
83
|
+
echo "iterm2"
|
|
84
|
+
return 0
|
|
85
|
+
;;
|
|
86
|
+
"Apple_Terminal")
|
|
87
|
+
echo "apple-terminal"
|
|
88
|
+
return 0
|
|
89
|
+
;;
|
|
90
|
+
"vscode")
|
|
91
|
+
echo "vscode"
|
|
92
|
+
return 0
|
|
93
|
+
;;
|
|
94
|
+
"WezTerm")
|
|
95
|
+
echo "wezterm"
|
|
96
|
+
return 0
|
|
97
|
+
;;
|
|
98
|
+
"Hyper")
|
|
99
|
+
echo "hyper"
|
|
100
|
+
return 0
|
|
101
|
+
;;
|
|
102
|
+
*)
|
|
103
|
+
# Not a known TERM_PROGRAM, continue to TERM check
|
|
104
|
+
;;
|
|
105
|
+
esac
|
|
106
|
+
|
|
107
|
+
# Check by TERM variable for other terminals
|
|
108
|
+
case "$term" in
|
|
109
|
+
xterm*|rxvt*|screen*|tmux*|alacritty|kitty*)
|
|
110
|
+
echo "compatible"
|
|
111
|
+
return 0
|
|
112
|
+
;;
|
|
113
|
+
*)
|
|
114
|
+
# Not a known TERM, continue to other checks
|
|
115
|
+
;;
|
|
116
|
+
esac
|
|
117
|
+
|
|
118
|
+
# Check for Windows Terminal
|
|
119
|
+
if [[ -n "${WT_SESSION:-}" ]]; then
|
|
120
|
+
echo "windows-terminal"
|
|
121
|
+
return 0
|
|
122
|
+
fi
|
|
123
|
+
|
|
124
|
+
# Check for Kitty
|
|
125
|
+
if [[ -n "${KITTY_WINDOW_ID:-}" ]]; then
|
|
126
|
+
echo "kitty"
|
|
127
|
+
return 0
|
|
128
|
+
fi
|
|
129
|
+
|
|
130
|
+
# Fallback - if TERM is set and not dumb, likely compatible
|
|
131
|
+
if [[ -n "$term" ]] && [[ "$term" != "dumb" ]]; then
|
|
132
|
+
echo "compatible"
|
|
133
|
+
return 0
|
|
134
|
+
fi
|
|
135
|
+
|
|
136
|
+
echo "unknown"
|
|
137
|
+
return 1
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
# Get current git repository name (resolves to main repo name even in worktrees)
|
|
141
|
+
get_repo_name() {
|
|
142
|
+
local git_common_dir repo_path
|
|
143
|
+
|
|
144
|
+
# git rev-parse --git-common-dir returns the main .git directory
|
|
145
|
+
# even when in a linked worktree
|
|
146
|
+
git_common_dir=$(git rev-parse --git-common-dir 2>/dev/null) || return 1
|
|
147
|
+
|
|
148
|
+
# Convert to absolute path to handle subdirectories correctly
|
|
149
|
+
# realpath may not exist on all systems, use cd/pwd as fallback
|
|
150
|
+
local abs_path=""
|
|
151
|
+
if command -v realpath &>/dev/null; then
|
|
152
|
+
abs_path=$(realpath "$git_common_dir" 2>/dev/null)
|
|
153
|
+
fi
|
|
154
|
+
|
|
155
|
+
# Fallback to cd/pwd if realpath failed or doesn't exist
|
|
156
|
+
if [[ -z "$abs_path" ]]; then
|
|
157
|
+
abs_path=$(cd "$git_common_dir" 2>/dev/null && pwd) || return 1
|
|
158
|
+
fi
|
|
159
|
+
|
|
160
|
+
git_common_dir="$abs_path"
|
|
161
|
+
|
|
162
|
+
# The common dir is the .git folder of the main repo
|
|
163
|
+
# Get its parent to find the main repo root
|
|
164
|
+
repo_path=$(dirname "$git_common_dir")
|
|
165
|
+
|
|
166
|
+
basename "$repo_path"
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
# Get current git branch name
|
|
170
|
+
get_branch_name() {
|
|
171
|
+
git branch --show-current 2>/dev/null || echo ""
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
# Generate tab title based on format
|
|
175
|
+
generate_title() {
|
|
176
|
+
local format="${1:-$TERMINAL_TITLE_FORMAT}"
|
|
177
|
+
local repo_name branch_name
|
|
178
|
+
|
|
179
|
+
repo_name=$(get_repo_name) || repo_name=""
|
|
180
|
+
branch_name=$(get_branch_name) || branch_name=""
|
|
181
|
+
|
|
182
|
+
case "$format" in
|
|
183
|
+
"repo/branch")
|
|
184
|
+
if [[ -n "$repo_name" ]] && [[ -n "$branch_name" ]]; then
|
|
185
|
+
echo "${repo_name}/${branch_name}"
|
|
186
|
+
elif [[ -n "$repo_name" ]]; then
|
|
187
|
+
echo "$repo_name"
|
|
188
|
+
elif [[ -n "$branch_name" ]]; then
|
|
189
|
+
echo "$branch_name"
|
|
190
|
+
else
|
|
191
|
+
echo ""
|
|
192
|
+
fi
|
|
193
|
+
;;
|
|
194
|
+
"branch")
|
|
195
|
+
echo "$branch_name"
|
|
196
|
+
;;
|
|
197
|
+
"repo")
|
|
198
|
+
echo "$repo_name"
|
|
199
|
+
;;
|
|
200
|
+
"branch/repo")
|
|
201
|
+
if [[ -n "$branch_name" ]] && [[ -n "$repo_name" ]]; then
|
|
202
|
+
echo "${branch_name} (${repo_name})"
|
|
203
|
+
elif [[ -n "$branch_name" ]]; then
|
|
204
|
+
echo "$branch_name"
|
|
205
|
+
elif [[ -n "$repo_name" ]]; then
|
|
206
|
+
echo "$repo_name"
|
|
207
|
+
else
|
|
208
|
+
echo ""
|
|
209
|
+
fi
|
|
210
|
+
;;
|
|
211
|
+
*)
|
|
212
|
+
# Custom format - use as-is
|
|
213
|
+
echo "$format"
|
|
214
|
+
;;
|
|
215
|
+
esac
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
# =============================================================================
|
|
219
|
+
# Commands
|
|
220
|
+
# =============================================================================
|
|
221
|
+
|
|
222
|
+
cmd_rename() {
|
|
223
|
+
local title="${1:-}"
|
|
224
|
+
|
|
225
|
+
if [[ -z "$title" ]]; then
|
|
226
|
+
# Generate title from git context
|
|
227
|
+
title=$(generate_title)
|
|
228
|
+
fi
|
|
229
|
+
|
|
230
|
+
if [[ -z "$title" ]]; then
|
|
231
|
+
log_warn "No title provided and not in a git repository"
|
|
232
|
+
return 1
|
|
233
|
+
fi
|
|
234
|
+
|
|
235
|
+
set_tab_title "$title"
|
|
236
|
+
log_success "Tab title set to: $title"
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
cmd_sync() {
|
|
240
|
+
local title
|
|
241
|
+
title=$(generate_title)
|
|
242
|
+
|
|
243
|
+
if [[ -z "$title" ]]; then
|
|
244
|
+
log_warn "Not in a git repository - cannot sync tab title"
|
|
245
|
+
return 1
|
|
246
|
+
fi
|
|
247
|
+
|
|
248
|
+
set_tab_title "$title"
|
|
249
|
+
log_success "Tab synced: $title"
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
cmd_reset() {
|
|
253
|
+
reset_tab_title
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
cmd_detect() {
|
|
257
|
+
local terminal
|
|
258
|
+
terminal=$(detect_terminal)
|
|
259
|
+
local upper_terminal
|
|
260
|
+
upper_terminal=$(echo "$terminal" | tr '[:lower:]-' '[:upper:]_')
|
|
261
|
+
|
|
262
|
+
case "$terminal" in
|
|
263
|
+
"tabby")
|
|
264
|
+
log_success "Running in Tabby terminal (full OSC support)"
|
|
265
|
+
;;
|
|
266
|
+
"iterm2")
|
|
267
|
+
log_success "Running in iTerm2 (full OSC support)"
|
|
268
|
+
;;
|
|
269
|
+
"windows-terminal")
|
|
270
|
+
log_success "Running in Windows Terminal (full OSC support)"
|
|
271
|
+
;;
|
|
272
|
+
"kitty")
|
|
273
|
+
log_success "Running in Kitty terminal (full OSC support)"
|
|
274
|
+
;;
|
|
275
|
+
"wezterm")
|
|
276
|
+
log_success "Running in WezTerm (full OSC support)"
|
|
277
|
+
;;
|
|
278
|
+
"vscode")
|
|
279
|
+
log_success "Running in VS Code integrated terminal (OSC support)"
|
|
280
|
+
;;
|
|
281
|
+
"apple-terminal")
|
|
282
|
+
log_success "Running in Apple Terminal (basic OSC support)"
|
|
283
|
+
;;
|
|
284
|
+
"hyper")
|
|
285
|
+
log_success "Running in Hyper terminal (OSC support)"
|
|
286
|
+
;;
|
|
287
|
+
"compatible")
|
|
288
|
+
log_info "Running in OSC-compatible terminal: ${TERM:-unknown}"
|
|
289
|
+
;;
|
|
290
|
+
*)
|
|
291
|
+
log_warn "Unknown terminal - OSC sequences may not work"
|
|
292
|
+
echo "$upper_terminal"
|
|
293
|
+
return 1
|
|
294
|
+
;;
|
|
295
|
+
esac
|
|
296
|
+
|
|
297
|
+
echo "$upper_terminal"
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
cmd_help() {
|
|
301
|
+
cat << 'EOF'
|
|
302
|
+
terminal-title-helper.sh - Terminal tab/window title integration for aidevops
|
|
303
|
+
|
|
304
|
+
Sets terminal tab titles using OSC escape sequences. Works with most modern terminals:
|
|
305
|
+
Tabby, iTerm2, Windows Terminal, Kitty, Alacritty, WezTerm, Hyper, GNOME Terminal, etc.
|
|
306
|
+
|
|
307
|
+
USAGE:
|
|
308
|
+
terminal-title-helper.sh <command> [options]
|
|
309
|
+
|
|
310
|
+
COMMANDS:
|
|
311
|
+
rename [title] Set tab title (defaults to repo/branch if no title given)
|
|
312
|
+
sync Sync tab title with current git repo/branch
|
|
313
|
+
reset Reset tab title to terminal default
|
|
314
|
+
detect Check terminal type and OSC compatibility
|
|
315
|
+
help Show this help message
|
|
316
|
+
|
|
317
|
+
EXAMPLES:
|
|
318
|
+
# Sync tab title with git context
|
|
319
|
+
terminal-title-helper.sh sync
|
|
320
|
+
|
|
321
|
+
# Set custom title
|
|
322
|
+
terminal-title-helper.sh rename "My Project"
|
|
323
|
+
|
|
324
|
+
# Check terminal compatibility
|
|
325
|
+
terminal-title-helper.sh detect
|
|
326
|
+
|
|
327
|
+
ENVIRONMENT VARIABLES:
|
|
328
|
+
TERMINAL_TITLE_FORMAT
|
|
329
|
+
Format for auto-generated titles. Options:
|
|
330
|
+
- "repo/branch" (default): "aidevops/feature/xyz"
|
|
331
|
+
- "branch": "feature/xyz"
|
|
332
|
+
- "repo": "aidevops"
|
|
333
|
+
- "branch/repo": "feature/xyz (aidevops)"
|
|
334
|
+
|
|
335
|
+
TERMINAL_TITLE_ENABLED
|
|
336
|
+
Set to "false" to disable terminal title integration
|
|
337
|
+
|
|
338
|
+
SHELL INTEGRATION:
|
|
339
|
+
Add to ~/.bashrc or ~/.zshrc for automatic sync on directory change:
|
|
340
|
+
|
|
341
|
+
# Bash
|
|
342
|
+
PROMPT_COMMAND='~/.aidevops/agents/scripts/terminal-title-helper.sh sync 2>/dev/null'
|
|
343
|
+
|
|
344
|
+
# Zsh
|
|
345
|
+
precmd() { ~/.aidevops/agents/scripts/terminal-title-helper.sh sync 2>/dev/null }
|
|
346
|
+
|
|
347
|
+
# Fish
|
|
348
|
+
function fish_prompt
|
|
349
|
+
~/.aidevops/agents/scripts/terminal-title-helper.sh sync 2>/dev/null
|
|
350
|
+
# ... rest of prompt
|
|
351
|
+
end
|
|
352
|
+
|
|
353
|
+
EOF
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
# =============================================================================
|
|
357
|
+
# Main
|
|
358
|
+
# =============================================================================
|
|
359
|
+
|
|
360
|
+
main() {
|
|
361
|
+
local command="${1:-help}"
|
|
362
|
+
shift || true
|
|
363
|
+
|
|
364
|
+
case "$command" in
|
|
365
|
+
rename)
|
|
366
|
+
cmd_rename "$@"
|
|
367
|
+
;;
|
|
368
|
+
sync)
|
|
369
|
+
cmd_sync
|
|
370
|
+
;;
|
|
371
|
+
reset)
|
|
372
|
+
cmd_reset
|
|
373
|
+
;;
|
|
374
|
+
detect)
|
|
375
|
+
cmd_detect
|
|
376
|
+
;;
|
|
377
|
+
help|--help|-h)
|
|
378
|
+
cmd_help
|
|
379
|
+
;;
|
|
380
|
+
*)
|
|
381
|
+
log_error "Unknown command: $command"
|
|
382
|
+
cmd_help
|
|
383
|
+
return 1
|
|
384
|
+
;;
|
|
385
|
+
esac
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
main "$@"
|