diff --git a/pkg/i18n/i18n_test.go b/pkg/i18n/i18n_test.go index e37db71..772e701 100644 --- a/pkg/i18n/i18n_test.go +++ b/pkg/i18n/i18n_test.go @@ -23,8 +23,8 @@ func TestTranslate(t *testing.T) { require.NoError(t, err) // Basic translation - result := svc.T("cli.success") - assert.Equal(t, "Success", result) + result := svc.T("cmd.dev.short") + assert.Equal(t, "Multi-repo development workflow", result) // Missing key returns the key result = svc.T("nonexistent.key") @@ -36,11 +36,11 @@ func TestTranslateWithArgs(t *testing.T) { require.NoError(t, err) // Translation with template data - result := svc.T("error.not_found", map[string]string{"Item": "config.yaml"}) - assert.Equal(t, "Not found: config.yaml", result) + result := svc.T("error.repo_not_found", map[string]string{"Name": "config.yaml"}) + assert.Equal(t, "Repository 'config.yaml' not found", result) - result = svc.T("cli.time.minutes_ago", map[string]int{"Count": 5}) - assert.Equal(t, "5 minutes ago", result) + result = svc.T("cmd.ai.task_pr.branch_error", map[string]string{"Branch": "main"}) + assert.Equal(t, "cannot create PR from main branch; create a feature branch first", result) } func TestSetLanguage(t *testing.T) { @@ -71,8 +71,8 @@ func TestDefaultService(t *testing.T) { require.NotNil(t, svc) // Global T function should work - result := T("cli.success") - assert.Equal(t, "Success", result) + result := T("cmd.dev.short") + assert.Equal(t, "Multi-repo development workflow", result) } func TestAddMessages(t *testing.T) { @@ -138,17 +138,18 @@ func TestDetectLanguage(t *testing.T) { func TestPluralization(t *testing.T) { svc, err := New() require.NoError(t, err) + SetDefault(svc) - // Singular - result := svc.T("cli.count.items", map[string]any{"Count": 1}) + // Singular - uses core.count.* magic + result := svc.T("core.count.item", 1) assert.Equal(t, "1 item", result) // Plural - result = svc.T("cli.count.items", map[string]any{"Count": 5}) + result = svc.T("core.count.item", 5) assert.Equal(t, "5 items", result) // Zero uses plural - result = svc.T("cli.count.items", map[string]any{"Count": 0}) + result = svc.T("core.count.item", 0) assert.Equal(t, "0 items", result) } @@ -156,13 +157,13 @@ func TestNestedKeys(t *testing.T) { svc, err := New() require.NoError(t, err) - // Deeply nested key - result := svc.T("cmd.dev.work.short") - assert.Equal(t, "Multi-repo git operations", result) + // Nested key + result := svc.T("cmd.dev.short") + assert.Equal(t, "Multi-repo development workflow", result) - // Nested with flag - result = svc.T("cmd.dev.work.flag.status") - assert.Equal(t, "Show status only, don't push", result) + // Deeper nested key (flat key with dots) + result = svc.T("cmd.dev.push.short") + assert.Equal(t, "Push commits across all repos", result) } func TestMessage_ForCategory(t *testing.T) { @@ -260,21 +261,21 @@ func TestDebugMode(t *testing.T) { require.NoError(t, err) // Without debug - result := svc.T("cli.success") - assert.Equal(t, "Success", result) + result := svc.T("cmd.dev.short") + assert.Equal(t, "Multi-repo development workflow", result) // Enable debug svc.SetDebug(true) assert.True(t, svc.Debug()) // With debug - shows key prefix - result = svc.T("cli.success") - assert.Equal(t, "[cli.success] Success", result) + result = svc.T("cmd.dev.short") + assert.Equal(t, "[cmd.dev.short] Multi-repo development workflow", result) // Disable debug svc.SetDebug(false) - result = svc.T("cli.success") - assert.Equal(t, "Success", result) + result = svc.T("cmd.dev.short") + assert.Equal(t, "Multi-repo development workflow", result) }) t.Run("C with debug mode", func(t *testing.T) { @@ -311,8 +312,8 @@ func TestDebugMode(t *testing.T) { assert.True(t, Default().Debug()) // Translate - result := T("cli.success") - assert.Equal(t, "[cli.success] Success", result) + result := T("cmd.dev.short") + assert.Equal(t, "[cmd.dev.short] Multi-repo development workflow", result) // Cleanup SetDebug(false) diff --git a/pkg/i18n/intents_test.go b/pkg/i18n/intents_test.go index 00bc671..2e6d8da 100644 --- a/pkg/i18n/intents_test.go +++ b/pkg/i18n/intents_test.go @@ -270,8 +270,8 @@ func TestIntentT_Integration(t *testing.T) { assert.Equal(t, "Delete config.yaml?", result) // Using T with regular key should work normally - result = svc.T("cli.success") - assert.Equal(t, "Success", result) + result = svc.T("cmd.dev.short") + assert.Equal(t, "Multi-repo development workflow", result) } func TestIntent_EmptyTemplates(t *testing.T) { diff --git a/pkg/i18n/interface_test.go b/pkg/i18n/interface_test.go index 8647da7..700ccf9 100644 --- a/pkg/i18n/interface_test.go +++ b/pkg/i18n/interface_test.go @@ -19,7 +19,7 @@ func TestServiceImplementsTranslator(t *testing.T) { translator = svc // Test interface methods - assert.Equal(t, "Success", translator.T("cli.success")) + assert.Equal(t, "Multi-repo development workflow", translator.T("cmd.dev.short")) assert.NotEmpty(t, translator.Language()) assert.NotNil(t, translator.Direction()) assert.NotNil(t, translator.Formality()) diff --git a/pkg/i18n/locales/de.json b/pkg/i18n/locales/de.json index ddcb536..731ae36 100644 --- a/pkg/i18n/locales/de.json +++ b/pkg/i18n/locales/de.json @@ -1,120 +1,64 @@ { - "gram.verb.delete": { "base": "löschen", "past": "gelöscht", "gerund": "löschend" }, - "gram.verb.save": { "base": "speichern", "past": "gespeichert", "gerund": "speichernd" }, - "gram.verb.create": { "base": "erstellen", "past": "erstellt", "gerund": "erstellend" }, - "gram.verb.update": { "base": "aktualisieren", "past": "aktualisiert", "gerund": "aktualisierend" }, - "gram.verb.build": { "base": "bauen", "past": "gebaut", "gerund": "bauend" }, - "gram.verb.run": { "base": "laufen", "past": "gelaufen", "gerund": "laufend" }, - "gram.verb.check": { "base": "prüfen", "past": "geprüft", "gerund": "prüfend" }, - "gram.verb.install": { "base": "installieren", "past": "installiert", "gerund": "installierend" }, - "gram.verb.push": { "base": "pushen", "past": "gepusht", "gerund": "pushend" }, - "gram.verb.pull": { "base": "pullen", "past": "gepullt", "gerund": "pullend" }, - "gram.verb.commit": { "base": "committen", "past": "committet", "gerund": "committend" }, - - "gram.noun.file": { "one": "Datei", "other": "Dateien", "gender": "feminine" }, - "gram.noun.repo": { "one": "Repository", "other": "Repositories", "gender": "neuter" }, - "gram.noun.commit": { "one": "Commit", "other": "Commits", "gender": "masculine" }, - "gram.noun.branch": { "one": "Branch", "other": "Branches", "gender": "masculine" }, - "gram.noun.change": { "one": "Änderung", "other": "Änderungen", "gender": "feminine" }, - "gram.noun.item": { "one": "Element", "other": "Elemente", "gender": "neuter" }, - - "gram.article.indefinite.masculine": "ein", - "gram.article.indefinite.feminine": "eine", - "gram.article.indefinite.neuter": "ein", - "gram.article.definite.masculine": "der", - "gram.article.definite.feminine": "die", - "gram.article.definite.neuter": "das", - - "cli.success": "Erfolg", - "cli.error": "Fehler", - "cli.warning": "Warnung", - "cli.info": "Info", - "cli.done": "Fertig", - "cli.failed": "Fehlgeschlagen", - "cli.pass": "BESTANDEN", - "cli.fail": "FEHLGESCHLAGEN", - "cli.ok": "OK", - "cli.skip": "Übersprungen", - "cli.pending": "Ausstehend", - "cli.running": "Läuft", - "cli.completed": "Abgeschlossen", - "cli.cancelled": "Abgebrochen", - "cli.aborted": "Abgebrochen", - - "cli.confirm.yes": "Ja", - "cli.confirm.no": "Nein", - "cli.confirm.proceed": "Fortfahren?", - "cli.confirm.continue": "Weiter?", - "cli.confirm.abort": "Vorgang abgebrochen", - - "cli.progress.checking": "Prüfe", - "cli.progress.fetching": "Lade", - "cli.progress.loading": "Lade", - "cli.progress.processing": "Verarbeite", - "cli.progress.installing": "Installiere", - "cli.progress.building": "Baue", - "cli.progress.deploying": "Deploye", - "cli.progress.testing": "Teste", - - "cli.time.just_now": "gerade eben", - "cli.time.seconds_ago": "vor {{.Count}} Sekunden", - "cli.time.minute_ago": "vor 1 Minute", - "cli.time.minutes_ago": "vor {{.Count}} Minuten", - "cli.time.hour_ago": "vor 1 Stunde", - "cli.time.hours_ago": "vor {{.Count}} Stunden", - "cli.time.day_ago": "vor 1 Tag", - "cli.time.days_ago": "vor {{.Count}} Tagen", - "cli.time.week_ago": "vor 1 Woche", - "cli.time.weeks_ago": "vor {{.Count}} Wochen", - - "cli.count.items": { - "one": "{{.Count}} Element", - "other": "{{.Count}} Elemente" + "gram": { + "verb": { + "delete": { "base": "löschen", "past": "gelöscht", "gerund": "löschend" }, + "save": { "base": "speichern", "past": "gespeichert", "gerund": "speichernd" }, + "create": { "base": "erstellen", "past": "erstellt", "gerund": "erstellend" }, + "update": { "base": "aktualisieren", "past": "aktualisiert", "gerund": "aktualisierend" }, + "build": { "base": "bauen", "past": "gebaut", "gerund": "bauend" }, + "run": { "base": "laufen", "past": "gelaufen", "gerund": "laufend" }, + "check": { "base": "prüfen", "past": "geprüft", "gerund": "prüfend" }, + "install": { "base": "installieren", "past": "installiert", "gerund": "installierend" }, + "push": { "base": "pushen", "past": "gepusht", "gerund": "pushend" }, + "pull": { "base": "pullen", "past": "gepullt", "gerund": "pullend" }, + "commit": { "base": "committen", "past": "committet", "gerund": "committend" } + }, + "noun": { + "file": { "one": "Datei", "other": "Dateien", "gender": "feminine" }, + "repo": { "one": "Repository", "other": "Repositories", "gender": "neuter" }, + "commit": { "one": "Commit", "other": "Commits", "gender": "masculine" }, + "branch": { "one": "Branch", "other": "Branches", "gender": "masculine" }, + "change": { "one": "Änderung", "other": "Änderungen", "gender": "feminine" }, + "item": { "one": "Element", "other": "Elemente", "gender": "neuter" } + }, + "article": { + "indefinite": { "masculine": "ein", "feminine": "eine", "neuter": "ein" }, + "definite": { "masculine": "der", "feminine": "die", "neuter": "das" } + }, + "punct": { + "label": ":", + "progress": "..." + } }, - "cli.count.files": { - "one": "{{.Count}} Datei", - "other": "{{.Count}} Dateien" + "prompt": { + "yes": "j", + "no": "n", + "continue": "Weiter?", + "proceed": "Fortfahren?", + "confirm": "Sind Sie sicher?" }, - "cli.count.repos": { - "one": "{{.Count}} Repository", - "other": "{{.Count}} Repositories" + "time": { + "just_now": "gerade eben", + "ago": { + "second": { "one": "vor {{.Count}} Sekunde", "other": "vor {{.Count}} Sekunden" }, + "minute": { "one": "vor {{.Count}} Minute", "other": "vor {{.Count}} Minuten" }, + "hour": { "one": "vor {{.Count}} Stunde", "other": "vor {{.Count}} Stunden" }, + "day": { "one": "vor {{.Count}} Tag", "other": "vor {{.Count}} Tagen" }, + "week": { "one": "vor {{.Count}} Woche", "other": "vor {{.Count}} Wochen" } + } }, - "cli.count.commits": { - "one": "{{.Count}} Commit", - "other": "{{.Count}} Commits" + "cmd": { + "dev.short": "Multi-Repository-Entwicklung", + "doctor.short": "Entwicklungsumgebung prüfen" }, - - "cmd.dev.short": "Multi-Repository-Entwicklung", - "cmd.dev.status.dirty": "geändert", - "cmd.dev.status.clean": "sauber", - "cmd.dev.status.ahead": "voraus", - "cmd.dev.status.behind": "zurück", - "cmd.dev.status.synced": "synchronisiert", - - "cmd.dev.push.confirm": "Alle pushen?", - "cmd.dev.commit.committing": "Committe geänderte Repos mit Claude...", - - "cmd.doctor.short": "Entwicklungsumgebung prüfen", - "cmd.doctor.checking": "Prüfe Entwicklungsumgebung...", - "cmd.doctor.required": "Erforderlich", - "cmd.doctor.optional": "Optional", - "cmd.doctor.ready": "Umgebung bereit", - - "error.not_found": "Nicht gefunden: {{.Item}}", - "error.invalid": "Ungültig: {{.Item}}", - "error.permission": "Zugriff verweigert: {{.Item}}", - "error.timeout": "Zeitüberschreitung", - "error.gh_not_found": "'gh' CLI nicht gefunden. Installieren von https://cli.github.com/", - - "label.status": "Status", - "label.branch": "Branch", - "label.commit": "Commit", - "label.coverage": "Abdeckung", - "label.total": "Gesamt", - - "lang.en": "Englisch", - "lang.de": "Deutsch", - "lang.es": "Spanisch", - "lang.fr": "Französisch", - "lang.zh": "Chinesisch" + "error": { + "gh_not_found": "'gh' CLI nicht gefunden. Installieren von https://cli.github.com/" + }, + "lang": { + "de": "Deutsch", + "en": "Englisch", + "es": "Spanisch", + "fr": "Französisch", + "zh": "Chinesisch" + } } diff --git a/pkg/i18n/locales/en_AU.json b/pkg/i18n/locales/en_AU.json index b4ae017..2c63c08 100644 --- a/pkg/i18n/locales/en_AU.json +++ b/pkg/i18n/locales/en_AU.json @@ -1,1355 +1,2 @@ { - "cli.success": "Success", - "cli.error": "Error", - "cli.warning": "Warning", - "cli.info": "Info", - "cli.done": "Done", - "cli.failed": "Failed", - "cli.pass": "PASS", - "cli.fail": "FAIL", - "cli.ok": "OK", - "cli.skip": "Skipped", - "cli.pending": "Pending", - "cli.running": "Running", - "cli.completed": "Completed", - "cli.cancelled": "Cancelled", - "cli.aborted": "Aborted", - - "cli.confirm.yes": "Yes", - "cli.confirm.no": "No", - "cli.confirm.proceed": "Proceed?", - "cli.confirm.continue": "Continue?", - "cli.confirm.abort": "Operation aborted", - - "cli.progress.checking": "Checking", - "cli.progress.fetching": "Fetching", - "cli.progress.loading": "Loading", - "cli.progress.processing": "Processing", - "cli.progress.installing": "Installing", - "cli.progress.building": "Building", - "cli.progress.deploying": "Deploying", - "cli.progress.testing": "Testing", - - "cli.time.just_now": "just now", - "cli.time.seconds_ago": "{{.Count}} seconds ago", - "cli.time.minute_ago": "1 minute ago", - "cli.time.minutes_ago": "{{.Count}} minutes ago", - "cli.time.hour_ago": "1 hour ago", - "cli.time.hours_ago": "{{.Count}} hours ago", - "cli.time.day_ago": "1 day ago", - "cli.time.days_ago": "{{.Count}} days ago", - "cli.time.week_ago": "1 week ago", - "cli.time.weeks_ago": "{{.Count}} weeks ago", - - "cli.count.items": { - "one": "{{.Count}} item", - "other": "{{.Count}} items" - }, - "cli.count.files": { - "one": "{{.Count}} file", - "other": "{{.Count}} files" - }, - "cli.count.repos": { - "one": "{{.Count}} repo", - "other": "{{.Count}} repos" - }, - "cli.count.commits": { - "one": "{{.Count}} commit", - "other": "{{.Count}} commits" - }, - - "cmd.dev.short": "Multi-repo development workflow", - "cmd.dev.long": "Manage multiple git repositories and GitHub integration.\n\nUses repos.yaml to discover repositories. Falls back to scanning\nthe current directory if no registry is found.\n\nGit Operations:\n work Combined status -> commit -> push workflow\n health Quick repo health summary\n commit Claude-assisted commit messages\n push Push repos with unpushed commits\n pull Pull repos behind remote\n\nGitHub Integration (requires gh CLI):\n issues List open issues across repos\n reviews List PRs awaiting review\n ci Check GitHub Actions status\n impact Analyse dependency impact\n\nDev Environment:\n install Download dev environment image\n boot Start dev environment VM\n stop Stop dev environment VM\n shell Open shell in dev VM\n status Check dev VM status", - - "cmd.dev.work.short": "Multi-repo git operations", - "cmd.dev.work.long": "Manage git status, commits, and pushes across multiple repositories.\n\nReads repos.yaml to discover repositories and their relationships.\nShows status, optionally commits with Claude, and pushes changes.", - "cmd.dev.work.flag.status": "Show status only, don't push", - "cmd.dev.work.flag.commit": "Use Claude to commit dirty repos before pushing", - "cmd.dev.work.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - - "cmd.dev.health.short": "Quick health check across all repos", - "cmd.dev.health.long": "Shows a summary of repository health:\ntotal repos, dirty repos, unpushed commits, etc.", - "cmd.dev.health.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.dev.health.flag.verbose": "Show detailed breakdown", - - "cmd.dev.commit.short": "Claude-assisted commits across repos", - "cmd.dev.commit.long": "Uses Claude to create commits for dirty repos.\nShows uncommitted changes and invokes Claude to generate commit messages.", - "cmd.dev.commit.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.dev.commit.flag.all": "Commit all dirty repos without prompting", - - "cmd.dev.push.short": "Push commits across all repos", - "cmd.dev.push.long": "Pushes unpushed commits for all repos.\nShows repos with commits to push and confirms before pushing.", - "cmd.dev.push.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.dev.push.flag.force": "Skip confirmation prompt", - - "cmd.dev.pull.short": "Pull updates across all repos", - "cmd.dev.pull.long": "Pulls updates for all repos.\nBy default only pulls repos that are behind. Use --all to pull all repos.", - "cmd.dev.pull.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.dev.pull.flag.all": "Pull all repos, not just those behind", - - "cmd.dev.issues.short": "List open issues across all repos", - "cmd.dev.issues.long": "Fetches open issues from GitHub for all repos in the registry.\nRequires the 'gh' CLI to be installed and authenticated.", - "cmd.dev.issues.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.dev.issues.flag.limit": "Max issues per repo", - "cmd.dev.issues.flag.assignee": "Filter by assignee (use @me for yourself)", - - "cmd.dev.reviews.short": "List PRs needing review across all repos", - "cmd.dev.reviews.long": "Fetches open PRs from GitHub for all repos in the registry.\nShows review status (approved, changes requested, pending).\nRequires the 'gh' CLI to be installed and authenticated.", - "cmd.dev.reviews.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.dev.reviews.flag.author": "Filter by PR author", - "cmd.dev.reviews.flag.all": "Show all PRs including drafts", - - "cmd.dev.ci.short": "Check CI status across all repos", - "cmd.dev.ci.long": "Fetches GitHub Actions workflow status for all repos.\nShows latest run status for each repo.\nRequires the 'gh' CLI to be installed and authenticated.", - "cmd.dev.ci.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.dev.ci.flag.branch": "Filter by branch", - "cmd.dev.ci.flag.failed": "Show only failed runs", - - "cmd.dev.impact.short": "Show impact of changing a repo", - "cmd.dev.impact.long": "Analyzes the dependency graph to show which repos\nwould be affected by changes to the specified repo.", - "cmd.dev.impact.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - - "cmd.dev.api.short": "Tools for managing service APIs", - "cmd.dev.sync.short": "Synchronizes public service APIs with internal implementations", - "cmd.dev.sync.long": "This command scans the 'pkg' directory for services and ensures that the\ntop-level public API for each service is in sync with its internal implementation.\nIt automatically generates the necessary Go files with type aliases.", - - "cmd.dev.vm.install.short": "Download and install the dev environment image", - "cmd.dev.vm.install.long": "Downloads the platform-specific dev environment image.\n\nThe image includes Go, PHP, Node.js, Python, Docker, and Claude CLI.\nDownloads are cached at ~/.core/images/\n\nExamples:\n core dev install", - - "cmd.dev.vm.boot.short": "Start the dev environment", - "cmd.dev.vm.boot.long": "Boots the dev environment VM.\n\nExamples:\n core dev boot\n core dev boot --memory 8192 --cpus 4\n core dev boot --fresh", - "cmd.dev.vm.boot.flag.memory": "Memory in MB (default: 4096)", - "cmd.dev.vm.boot.flag.cpus": "Number of CPUs (default: 2)", - "cmd.dev.vm.boot.flag.fresh": "Stop existing and start fresh", - - "cmd.dev.vm.stop.short": "Stop the dev environment", - "cmd.dev.vm.stop.long": "Stops the running dev environment VM.\n\nExamples:\n core dev stop", - - "cmd.dev.vm.status.short": "Show dev environment status", - "cmd.dev.vm.status.long": "Shows the current status of the dev environment.\n\nExamples:\n core dev vm-status", - - "cmd.dev.vm.shell.short": "Connect to the dev environment", - "cmd.dev.vm.shell.long": "Opens an interactive shell in the dev environment.\n\nUses SSH by default, or serial console with --console.\n\nExamples:\n core dev shell\n core dev shell --console\n core dev shell -- ls -la", - "cmd.dev.vm.shell.flag.console": "Use serial console instead of SSH", - - "cmd.dev.vm.serve.short": "Mount project and start dev server", - "cmd.dev.vm.serve.long": "Mounts the current project into the dev environment and starts a dev server.\n\nAuto-detects the appropriate serve command based on project files.\n\nExamples:\n core dev serve\n core dev serve --port 3000\n core dev serve --path public", - "cmd.dev.vm.serve.flag.port": "Port to serve on (default: 8000)", - "cmd.dev.vm.serve.flag.path": "Subdirectory to serve", - - "cmd.dev.vm.test.short": "Run tests in the dev environment", - "cmd.dev.vm.test.long": "Runs tests in the dev environment.\n\nAuto-detects the test command based on project files, or uses .core/test.yaml.\n\nExamples:\n core dev test\n core dev test --name integration\n core dev test -- go test -v ./...", - "cmd.dev.vm.test.flag.name": "Run named test command from .core/test.yaml", - - "cmd.dev.vm.claude.short": "Start sandboxed Claude session", - "cmd.dev.vm.claude.long": "Starts a Claude Code session inside the dev environment sandbox.\n\nProvides isolation while forwarding selected credentials.\nAuto-boots the dev environment if not running.\n\nAuth options (default: all):\n gh - GitHub CLI auth\n anthropic - Anthropic API key\n ssh - SSH agent forwarding\n git - Git config (name, email)\n\nExamples:\n core dev claude\n core dev claude --model opus\n core dev claude --auth gh,anthropic\n core dev claude --no-auth", - "cmd.dev.vm.claude.flag.no_auth": "Don't forward any auth credentials", - "cmd.dev.vm.claude.flag.model": "Model to use (opus, sonnet)", - "cmd.dev.vm.claude.flag.auth": "Selective auth forwarding (gh,anthropic,ssh,git)", - - "cmd.dev.vm.update.short": "Check for and apply updates", - "cmd.dev.vm.update.long": "Checks for dev environment updates and optionally applies them.\n\nExamples:\n core dev update\n core dev update --apply", - "cmd.dev.vm.update.flag.apply": "Download and apply the update", - - "cmd.dev.status.dirty": "dirty", - "cmd.dev.status.clean": "clean", - "cmd.dev.status.ahead": "ahead", - "cmd.dev.status.behind": "behind", - "cmd.dev.status.synced": "synced", - "cmd.dev.status.diverged": "diverged", - "cmd.dev.status.conflict": "conflict", - - "cmd.dev.push.confirm": "Push all?", - "cmd.dev.push.success": "Pushed successfully", - "cmd.dev.push.failed": "Push failed", - "cmd.dev.push.nothing": "Nothing to push", - - "cmd.dev.commit.committing": "Committing dirty repos with Claude...", - "cmd.dev.commit.success": "Committed successfully", - "cmd.dev.commit.failed": "Commit failed", - - "cmd.dev.registry_label": "Registry:", - "cmd.dev.scanning_label": "Scanning:", - "cmd.dev.no_git_repos": "No git repositories found.", - "cmd.dev.no_changes": "No uncommitted changes found.", - "cmd.dev.repos_with_changes": "{{.Count}} repo(s) with uncommitted changes:", - "cmd.dev.modified": "{{.Count}} modified", - "cmd.dev.untracked": "{{.Count}} untracked", - "cmd.dev.staged": "{{.Count}} staged", - "cmd.dev.confirm_claude_commit": "Have Claude commit these repos?", - "cmd.dev.committing": "Committing", - "cmd.dev.committed": "committed", - "cmd.dev.done_succeeded": "Done: {{.Count}} succeeded", - "cmd.dev.count_failed": "{{.Count}} failed", - - "cmd.dev.push.all_up_to_date": "All repos up to date. Nothing to push.", - "cmd.dev.push.repos_with_unpushed": "{{.Count}} repo(s) with unpushed commits:", - "cmd.dev.push.commits_count": "{{.Count}} commit(s)", - "cmd.dev.push.confirm_push": "Push {{.Commits}} commit(s) to {{.Repos}} repo(s)?", - "cmd.dev.push.done_pushed": "Done: {{.Count}} pushed", - "cmd.dev.push.diverged": "branch has diverged from remote", - "cmd.dev.push.diverged_help": "Some repos have diverged (local and remote have different commits).", - "cmd.dev.push.pull_and_retry": "Pull changes and retry push?", - - "cmd.dev.pull.all_up_to_date": "All repos up to date. Nothing to pull.", - "cmd.dev.pull.pulling_repos": "Pulling {{.Count}} repo(s):", - "cmd.dev.pull.repos_behind": "{{.Count}} repo(s) behind upstream:", - "cmd.dev.pull.commits_behind": "{{.Count}} commit(s) behind", - "cmd.dev.pull.pulling": "Pulling", - "cmd.dev.pull.done_pulled": "Done: {{.Count}} pulled", - - "cmd.dev.health.dirty_label": "Dirty:", - "cmd.dev.health.ahead_label": "Ahead:", - "cmd.dev.health.behind_label": "Behind:", - "cmd.dev.health.errors_label": "Errors:", - "cmd.dev.health.repos": "repos", - "cmd.dev.health.dirty": "dirty", - "cmd.dev.health.to_push": "to push", - "cmd.dev.health.synced": "synced", - "cmd.dev.health.up_to_date": "up to date", - "cmd.dev.health.to_pull": "to pull", - "cmd.dev.health.errors": "errors", - "cmd.dev.health.more": "+{{.Count}} more", - - "cmd.dev.work.table_repo": "Repo", - "cmd.dev.work.table_modified": "Modified", - "cmd.dev.work.table_untracked": "Untracked", - "cmd.dev.work.table_staged": "Staged", - "cmd.dev.work.table_ahead": "Ahead", - "cmd.dev.work.error_prefix": "error:", - "cmd.dev.work.use_commit_flag": "Use --commit to have Claude create commits", - "cmd.dev.work.all_up_to_date": "All repos up to date.", - "cmd.dev.work.repos_with_unpushed": "{{.Count}} repo(s) with unpushed commits:", - "cmd.dev.work.commits_count": "{{.Count}} commit(s)", - - "cmd.dev.issues.no_issues": "No open issues found.", - "cmd.dev.issues.open_issues": "{{.Count}} open issue(s):", - "cmd.dev.issues.error_label": "Error:", - - "cmd.dev.reviews.no_prs": "No open PRs found.", - "cmd.dev.reviews.open_prs": "{{.Count}} open PR(s)", - "cmd.dev.reviews.pending": "{{.Count}} pending", - "cmd.dev.reviews.approved": "{{.Count}} approved", - "cmd.dev.reviews.changes_requested": "{{.Count}} changes requested", - "cmd.dev.reviews.status_approved": "v approved", - "cmd.dev.reviews.status_changes": "* changes requested", - "cmd.dev.reviews.status_pending": "o pending review", - "cmd.dev.reviews.draft": "[draft]", - - "cmd.dev.ci.repos_checked": "{{.Count}} repos checked", - "cmd.dev.ci.passing": "{{.Count}} passing", - "cmd.dev.ci.failing": "{{.Count}} failing", - "cmd.dev.ci.pending": "{{.Count}} pending", - "cmd.dev.ci.no_ci": "{{.Count}} no CI", - "cmd.dev.ci.error_label": "Error:", - - "cmd.dev.impact.analysis_for": "Impact analysis for", - "cmd.dev.impact.no_dependents": "No repos depend on {{.Name}}", - "cmd.dev.impact.direct_dependents": "{{.Count}} direct dependent(s):", - "cmd.dev.impact.transitive_dependents": "{{.Count}} transitive dependent(s):", - "cmd.dev.impact.summary": "Summary:", - "cmd.dev.impact.changes_affect": "Changes to {{.Repo}} affect {{.Affected}}/{{.Total}} repos", - "cmd.dev.impact.requires_registry": "impact analysis requires repos.yaml with dependency information", - - "cmd.dev.sync.success": "Public APIs synchronized successfully.", - "cmd.dev.sync.error_prefix": "Error:", - - "cmd.dev.vm.already_installed": "Dev environment already installed", - "cmd.dev.vm.check_updates": "Use {{.Command}} to check for updates", - "cmd.dev.vm.image_label": "Image:", - "cmd.dev.vm.downloading": "Downloading dev environment...", - "cmd.dev.vm.progress_label": "Progress:", - "cmd.dev.vm.installed_in": "Installed in {{.Duration}}", - "cmd.dev.vm.start_with": "Start with: {{.Command}}", - "cmd.dev.vm.not_installed": "dev environment not installed (run 'core dev install' first)", - "cmd.dev.vm.config_label": "Config:", - "cmd.dev.vm.config_value": "{{.Memory}}MB, {{.CPUs}} CPUs", - "cmd.dev.vm.booting": "Booting dev environment...", - "cmd.dev.vm.running": "Dev environment running", - "cmd.dev.vm.connect_with": "Connect with: {{.Command}}", - "cmd.dev.vm.ssh_port": "SSH port:", - "cmd.dev.vm.not_running": "Dev environment is not running", - "cmd.dev.vm.stopping": "Stopping dev environment...", - "cmd.dev.vm.stopped": "Stopped", - "cmd.dev.vm.status_title": "Dev Environment Status", - "cmd.dev.vm.installed_label": "Installed:", - "cmd.dev.vm.installed_yes": "Yes", - "cmd.dev.vm.installed_no": "No", - "cmd.dev.vm.version_label": "Version:", - "cmd.dev.vm.install_with": "Install with: {{.Command}}", - "cmd.dev.vm.status_label": "Status:", - "cmd.dev.vm.status_running": "Running", - "cmd.dev.vm.status_stopped": "Stopped", - "cmd.dev.vm.container_label": "Container:", - "cmd.dev.vm.memory_label": "Memory:", - "cmd.dev.vm.cpus_label": "CPUs:", - "cmd.dev.vm.uptime_label": "Uptime:", - "cmd.dev.vm.checking_updates": "Checking for updates...", - "cmd.dev.vm.current_label": "Current:", - "cmd.dev.vm.latest_label": "Latest:", - "cmd.dev.vm.up_to_date": "Already up to date", - "cmd.dev.vm.update_available": "Update available", - "cmd.dev.vm.run_to_update": "Run {{.Command}} to update", - "cmd.dev.vm.stopping_current": "Stopping current instance...", - "cmd.dev.vm.downloading_update": "Downloading update...", - "cmd.dev.vm.updated_in": "Updated in {{.Duration}}", - - "cmd.php.short": "Laravel/PHP development tools", - "cmd.php.long": "Manage Laravel development environment with FrankenPHP.\n\nServices orchestrated:\n - FrankenPHP/Octane (port 8000, HTTPS on 443)\n - Vite dev server (port 5173)\n - Laravel Horizon (queue workers)\n - Laravel Reverb (WebSocket, port 8080)\n - Redis (port 6379)", - - "cmd.php.dev.short": "Start Laravel development environment", - "cmd.php.dev.long": "Starts all detected Laravel services.\n\nAuto-detects:\n - Vite (vite.config.js/ts)\n - Horizon (config/horizon.php)\n - Reverb (config/reverb.php)\n - Redis (from .env)", - "cmd.php.dev.starting": "Starting {{.AppName}} development environment", - "cmd.php.dev.detected_services": "Detected services:", - "cmd.php.dev.services_started": "Services started:", - "cmd.php.dev.shutting_down": "Shutting down...", - "cmd.php.dev.all_stopped": "All services stopped", - "cmd.php.dev.press_ctrl_c": "Press Ctrl+C to stop all services", - "cmd.php.dev.logs_failed": "Failed to get logs: {{.Error}}", - "cmd.php.dev.stop_error": "Error stopping services: {{.Error}}", - - "cmd.php.logs.short": "View service logs", - "cmd.php.logs.long": "Stream logs from Laravel services.\n\nServices: frankenphp, vite, horizon, reverb, redis", - - "cmd.php.stop.short": "Stop all Laravel services", - "cmd.php.stop.stopping": "Stopping services...", - - "cmd.php.status.short": "Show service status", - "cmd.php.status.project": "Project:", - "cmd.php.status.detected_services": "Detected services:", - "cmd.php.status.package_manager": "Package manager:", - "cmd.php.status.octane_server": "Octane server:", - "cmd.php.status.ssl_certs": "SSL certificates:", - "cmd.php.status.ssl_installed": "installed", - "cmd.php.status.ssl_not_setup": "not setup", - "cmd.php.status.running": "running", - "cmd.php.status.stopped": "stopped", - "cmd.php.status.error": "error: {{.Error}}", - "cmd.php.status.port": "port {{.Port}}", - "cmd.php.status.pid": "pid {{.PID}}", - - "cmd.php.ssl.short": "Setup SSL certificates with mkcert", - "cmd.php.ssl.setting_up": "Setting up SSL for {{.Domain}}", - "cmd.php.ssl.mkcert_not_installed": "mkcert is not installed", - "cmd.php.ssl.install_with": "Install with:", - "cmd.php.ssl.install_macos": "macOS: brew install mkcert", - "cmd.php.ssl.install_linux": "Linux: see https://github.com/FiloSottile/mkcert", - "cmd.php.ssl.certs_exist": "Certificates already exist", - "cmd.php.ssl.certs_created": "SSL certificates created", - "cmd.php.ssl.cert_label": "Cert:", - "cmd.php.ssl.key_label": "Key:", - "cmd.php.ssl.flag.domain": "Domain for certificate (default: from APP_URL)", - - "cmd.php.dev.flag.no_vite": "Skip Vite dev server", - "cmd.php.dev.flag.no_horizon": "Skip Laravel Horizon", - "cmd.php.dev.flag.no_reverb": "Skip Laravel Reverb", - "cmd.php.dev.flag.no_redis": "Skip Redis server", - "cmd.php.dev.flag.https": "Enable HTTPS with mkcert", - "cmd.php.dev.flag.domain": "Domain for SSL certificate (default: from APP_URL or localhost)", - "cmd.php.dev.flag.port": "FrankenPHP port (default: 8000)", - - "cmd.php.logs.flag.follow": "Follow log output", - "cmd.php.logs.flag.service": "Specific service (default: all)", - - "cmd.php.build.short": "Build Docker or LinuxKit image", - "cmd.php.build.long": "Build a production-ready container image for the PHP project.\n\nBy default, builds a Docker image using FrankenPHP.\nUse --type linuxkit to build a LinuxKit VM image instead.", - "cmd.php.build.building_docker": "Building Docker image...", - "cmd.php.build.building_linuxkit": "Building LinuxKit image...", - "cmd.php.build.php_version": "PHP Version:", - "cmd.php.build.laravel": "Laravel:", - "cmd.php.build.octane": "Octane:", - "cmd.php.build.frontend": "Frontend:", - "cmd.php.build.extensions": "Extensions:", - "cmd.php.build.image": "Image:", - "cmd.php.build.platform": "Platform:", - "cmd.php.build.template": "Template:", - "cmd.php.build.format": "Format:", - "cmd.php.build.docker_success": "Docker image built successfully", - "cmd.php.build.docker_run_with": "Run with:", - "cmd.php.build.linuxkit_success": "LinuxKit image built successfully", - "cmd.php.build.flag.type": "Build type: docker (default) or linuxkit", - "cmd.php.build.flag.name": "Image name (default: project directory name)", - "cmd.php.build.flag.tag": "Image tag (default: latest)", - "cmd.php.build.flag.platform": "Target platform (e.g., linux/amd64, linux/arm64)", - "cmd.php.build.flag.dockerfile": "Path to custom Dockerfile", - "cmd.php.build.flag.output": "Output path for LinuxKit image", - "cmd.php.build.flag.format": "LinuxKit output format: qcow2 (default), iso, raw, vmdk", - "cmd.php.build.flag.template": "LinuxKit template name (default: server-php)", - "cmd.php.build.flag.no_cache": "Build without cache", - - "cmd.php.serve.short": "Run production container", - "cmd.php.serve.long": "Run a production PHP container.\n\nThis starts the built Docker image in production mode.", - "cmd.php.serve.running": "Running production container...", - "cmd.php.serve.ports": "Ports:", - "cmd.php.serve.stopped": "Container stopped", - "cmd.php.serve.name_required": "--name is required: specify the Docker image name", - "cmd.php.serve.flag.name": "Docker image name (required)", - "cmd.php.serve.flag.tag": "Image tag (default: latest)", - "cmd.php.serve.flag.container": "Container name", - "cmd.php.serve.flag.port": "HTTP port (default: 80)", - "cmd.php.serve.flag.https_port": "HTTPS port (default: 443)", - "cmd.php.serve.flag.detach": "Run in detached mode", - "cmd.php.serve.flag.env_file": "Path to environment file", - - "cmd.php.shell.short": "Open shell in running container", - "cmd.php.shell.long": "Open an interactive shell in a running PHP container.", - "cmd.php.shell.opening": "Opening shell in container {{.Container}}...", - - "cmd.php.packages.short": "Manage local PHP packages", - "cmd.php.packages.long": "Link and manage local PHP packages for development.\n\nSimilar to npm link, this adds path repositories to composer.json\nfor developing packages alongside your project.", - "cmd.php.packages.link.short": "Link local packages", - "cmd.php.packages.link.long": "Link local PHP packages for development.\n\nAdds path repositories to composer.json with symlink enabled.\nThe package name is auto-detected from each path's composer.json.", - "cmd.php.packages.link.linking": "Linking packages...", - "cmd.php.packages.link.done": "Packages linked. Run 'composer update' to install.", - "cmd.php.packages.unlink.short": "Unlink packages", - "cmd.php.packages.unlink.long": "Remove linked packages from composer.json.\n\nRemoves path repositories by package name.", - "cmd.php.packages.unlink.unlinking": "Unlinking packages...", - "cmd.php.packages.unlink.done": "Packages unlinked. Run 'composer update' to remove.", - "cmd.php.packages.update.short": "Update linked packages", - "cmd.php.packages.update.long": "Run composer update for linked packages.\n\nIf no packages specified, updates all packages.", - "cmd.php.packages.update.updating": "Updating packages...", - "cmd.php.packages.update.done": "Packages updated", - "cmd.php.packages.list.short": "List linked packages", - "cmd.php.packages.list.long": "List all locally linked packages.\n\nShows package name, path, and version for each linked package.", - "cmd.php.packages.list.none_found": "No linked packages found", - "cmd.php.packages.list.linked": "Linked packages:", - "cmd.php.packages.list.unknown": "(unknown)", - "cmd.php.packages.list.path": "Path:", - "cmd.php.packages.list.version": "Version:", - - "cmd.php.test.short": "Run PHP tests (PHPUnit/Pest)", - "cmd.php.test.long": "Run PHP tests using PHPUnit or Pest.\n\nAuto-detects Pest if tests/Pest.php exists, otherwise uses PHPUnit.", - "cmd.php.test.running": "Running tests with {{.Runner}}", - "cmd.php.test.passed": "All tests passed", - "cmd.php.test.failed": "Some tests failed", - "cmd.php.test.flag.parallel": "Run tests in parallel", - "cmd.php.test.flag.coverage": "Generate code coverage", - "cmd.php.test.flag.filter": "Filter tests by name pattern", - "cmd.php.test.flag.group": "Run only tests in specified group", - - "cmd.php.fmt.short": "Format PHP code with Laravel Pint", - "cmd.php.fmt.long": "Format PHP code using Laravel Pint.", - "cmd.php.fmt.checking": "Checking code with {{.Formatter}}", - "cmd.php.fmt.formatting": "Formatting code with {{.Formatter}}", - "cmd.php.fmt.no_formatter": "no formatter found (install Laravel Pint: composer require laravel/pint --dev)", - "cmd.php.fmt.success": "Code formatted successfully", - "cmd.php.fmt.no_issues": "No formatting issues found", - "cmd.php.fmt.flag.fix": "Auto-fix formatting issues", - "cmd.php.fmt.flag.diff": "Show diff of changes", - - "cmd.php.analyse.short": "Run PHPStan static analysis", - "cmd.php.analyse.long": "Run PHPStan or Larastan static analysis.\n\nAuto-detects Larastan if installed, otherwise uses PHPStan.", - "cmd.php.analyse.running": "Running static analysis with {{.Analyser}}", - "cmd.php.analyse.no_analyser": "no static analyser found (install PHPStan: composer require phpstan/phpstan --dev)", - "cmd.php.analyse.no_issues": "No issues found", - "cmd.php.analyse.flag.level": "PHPStan analysis level (0-9)", - "cmd.php.analyse.flag.memory": "Memory limit (e.g., 2G)", - - "cmd.php.psalm.short": "Run Psalm static analysis", - "cmd.php.psalm.long": "Run Psalm deep static analysis with Laravel plugin support.\n\nPsalm provides deeper type inference than PHPStan and catches\ndifferent classes of bugs. Both should be run for best coverage.", - "cmd.php.psalm.not_found": "Psalm not found", - "cmd.php.psalm.install": "composer require --dev vimeo/psalm", - "cmd.php.psalm.setup": "./vendor/bin/psalm --init", - "cmd.php.psalm.analysing": "Analysing code with Psalm", - "cmd.php.psalm.analysing_fixing": "Analysing and fixing code with Psalm", - "cmd.php.psalm.no_issues": "No issues found", - "cmd.php.psalm.flag.level": "Error level (1=strictest, 8=most lenient)", - "cmd.php.psalm.flag.fix": "Auto-fix issues where possible", - "cmd.php.psalm.flag.baseline": "Generate/update baseline file", - "cmd.php.psalm.flag.show_info": "Show info-level issues", - - "cmd.php.audit.short": "Security audit for dependencies", - "cmd.php.audit.long": "Check PHP and JavaScript dependencies for known vulnerabilities.\n\nRuns composer audit and npm audit (if package.json exists).", - "cmd.php.audit.scanning": "Scanning dependencies for vulnerabilities", - "cmd.php.audit.secure": "secure", - "cmd.php.audit.error": "error", - "cmd.php.audit.vulnerabilities": "{{.Count}} vulnerabilities", - "cmd.php.audit.found_vulns": "Found {{.Count}} vulnerabilities across dependencies", - "cmd.php.audit.fix_hint": "composer update && npm update", - "cmd.php.audit.completed_errors": "audit completed with errors", - "cmd.php.audit.all_secure": "All dependencies are secure", - "cmd.php.audit.flag.json": "Output in JSON format", - "cmd.php.audit.flag.fix": "Auto-fix vulnerabilities (npm only)", - - "cmd.php.security.short": "Security vulnerability scanning", - "cmd.php.security.long": "Scan for security vulnerabilities in configuration and code.\n\nChecks environment config, file permissions, code patterns,\nand runs security-focused static analysis.", - "cmd.php.security.running": "Running security checks", - "cmd.php.security.checks_suffix": " CHECKS:", - "cmd.php.security.summary": "Security scan complete", - "cmd.php.security.passed": "Passed:", - "cmd.php.security.critical": "Critical:", - "cmd.php.security.high": "High:", - "cmd.php.security.medium": "Medium:", - "cmd.php.security.low": "Low:", - "cmd.php.security.fix_label": "Fix:", - "cmd.php.security.flag.severity": "Minimum severity (critical, high, medium, low)", - "cmd.php.security.flag.json": "Output in JSON format", - "cmd.php.security.flag.sarif": "Output in SARIF format (for GitHub Security)", - "cmd.php.security.flag.url": "URL to check HTTP headers (optional)", - - "cmd.php.qa.short": "Run full QA pipeline", - "cmd.php.qa.long": "Run the complete quality assurance pipeline.\n\nStages:\n quick: Security audit, code style, PHPStan\n standard: Psalm, tests\n full: Rector dry-run, mutation testing (slow)", - "cmd.php.qa.running": "Running QA pipeline ({{.Stages}})", - "cmd.php.qa.no_checks": "No checks available", - "cmd.php.qa.stage_prefix": "═══ ", - "cmd.php.qa.stage_suffix": " STAGE ═══", - "cmd.php.qa.passed": "passed", - "cmd.php.qa.failed": "failed", - "cmd.php.qa.all_passed": "All checks passed ({{.Passed}}/{{.Total}})", - "cmd.php.qa.some_failed": "Some checks failed ({{.Passed}}/{{.Total}} passed)", - "cmd.php.qa.to_fix": "To fix:", - "cmd.php.qa.pipeline_failed": "QA pipeline failed", - "cmd.php.qa.fix_audit": "composer update && npm update", - "cmd.php.qa.fix_phpstan": "Fix PHPStan errors shown above", - "cmd.php.qa.fix_psalm": "Fix Psalm errors shown above", - "cmd.php.qa.fix_tests": "Fix failing tests shown above", - "cmd.php.qa.fix_infection": "Improve test coverage for mutated code", - "cmd.php.qa.issue_vulns": "vulnerabilities", - "cmd.php.qa.issue_style": "Code style issues found", - "cmd.php.qa.issue_analysis": "Static analysis errors", - "cmd.php.qa.issue_types": "Type errors found", - "cmd.php.qa.issue_tests": "Test failures", - "cmd.php.qa.issue_rector": "Code improvements available", - "cmd.php.qa.issue_mutation": "Mutation score below threshold", - "cmd.php.qa.flag.quick": "Only run quick checks", - "cmd.php.qa.flag.full": "Run all stages including slow checks", - "cmd.php.qa.flag.fix": "Auto-fix issues where possible", - - "cmd.php.rector.short": "Automated code refactoring", - "cmd.php.rector.long": "Run Rector for automated code improvements and PHP upgrades.\n\nRector can automatically upgrade PHP syntax, improve code quality,\nand apply framework-specific refactorings.", - "cmd.php.rector.not_found": "Rector not found", - "cmd.php.rector.install": "composer require --dev rector/rector", - "cmd.php.rector.setup": "./vendor/bin/rector init", - "cmd.php.rector.analysing": "Analysing code with Rector", - "cmd.php.rector.refactoring": "Refactoring code with Rector", - "cmd.php.rector.changes_suggested": "Changes suggested (use --fix to apply)", - "cmd.php.rector.refactored": "Code refactored successfully", - "cmd.php.rector.no_changes": "No changes needed", - "cmd.php.rector.flag.fix": "Apply changes (default is dry-run)", - "cmd.php.rector.flag.diff": "Show detailed diff of changes", - "cmd.php.rector.flag.clear_cache": "Clear Rector cache before running", - - "cmd.php.infection.short": "Mutation testing for test quality", - "cmd.php.infection.long": "Run Infection mutation testing to measure test suite quality.\n\nMutation testing modifies your code and checks if tests catch\nthe changes. High mutation score = high quality tests.\n\nWarning: This can be slow on large codebases.", - "cmd.php.infection.not_found": "Infection not found", - "cmd.php.infection.install": "composer require --dev infection/infection", - "cmd.php.infection.running": "Running mutation testing", - "cmd.php.infection.note": "This may take a while...", - "cmd.php.infection.complete": "Mutation testing complete", - "cmd.php.infection.flag.min_msi": "Minimum mutation score indicator (0-100, default: 50)", - "cmd.php.infection.flag.min_covered_msi": "Minimum covered mutation score (0-100, default: 70)", - "cmd.php.infection.flag.threads": "Number of parallel threads (default: 4)", - "cmd.php.infection.flag.filter": "Filter files by pattern", - "cmd.php.infection.flag.only_covered": "Only mutate covered code", - - "cmd.php.deploy.short": "Deploy to Coolify", - "cmd.php.deploy.long": "Deploy the PHP application to Coolify.\n\nRequires configuration in .env:\n COOLIFY_URL=https://coolify.example.com\n COOLIFY_TOKEN=your-api-token\n COOLIFY_APP_ID=production-app-id\n COOLIFY_STAGING_APP_ID=staging-app-id (optional)", - "cmd.php.deploy.deploying": "Deploying to {{.Environment}}...", - "cmd.php.deploy.success": "Deployment completed successfully", - "cmd.php.deploy.warning_status": "Deployment ended with status: {{.Status}}", - "cmd.php.deploy.triggered": "Deployment triggered. Use 'core php deploy:status' to check progress.", - "cmd.php.deploy.flag.staging": "Deploy to staging environment", - "cmd.php.deploy.flag.force": "Force deployment even if no changes detected", - "cmd.php.deploy.flag.wait": "Wait for deployment to complete", - - "cmd.php.deploy_status.short": "Show deployment status", - "cmd.php.deploy_status.long": "Show the status of a deployment.", - "cmd.php.deploy_status.checking": "Checking {{.Environment}} deployment status...", - "cmd.php.deploy_status.flag.staging": "Check staging environment", - "cmd.php.deploy_status.flag.id": "Specific deployment ID", - - "cmd.php.deploy_rollback.short": "Rollback to previous deployment", - "cmd.php.deploy_rollback.long": "Rollback to a previous deployment.\n\nIf no deployment ID is specified, rolls back to the most recent\nsuccessful deployment.", - "cmd.php.deploy_rollback.rolling_back": "Rolling back {{.Environment}}...", - "cmd.php.deploy_rollback.success": "Rollback completed successfully", - "cmd.php.deploy_rollback.warning_status": "Rollback ended with status: {{.Status}}", - "cmd.php.deploy_rollback.triggered": "Rollback triggered. Use 'core php deploy:status' to check progress.", - "cmd.php.deploy_rollback.flag.staging": "Rollback staging environment", - "cmd.php.deploy_rollback.flag.id": "Specific deployment ID to rollback to", - "cmd.php.deploy_rollback.flag.wait": "Wait for rollback to complete", - - "cmd.php.deploy_list.short": "List recent deployments", - "cmd.php.deploy_list.long": "List recent deployments.", - "cmd.php.deploy_list.recent": "Recent {{.Environment}} deployments:", - "cmd.php.deploy_list.none_found": "No deployments found", - "cmd.php.deploy_list.flag.staging": "List staging deployments", - "cmd.php.deploy_list.flag.limit": "Number of deployments to list (default: 10)", - - "cmd.php.label.php": "PHP:", - "cmd.php.label.services": "Services:", - "cmd.php.label.running": "Running:", - "cmd.php.label.app_url": "App URL:", - "cmd.php.label.vite": "Vite:", - "cmd.php.label.warning": "Warning:", - "cmd.php.label.error": "Error:", - "cmd.php.label.done": "Done:", - "cmd.php.label.skip": "Skip:", - "cmd.php.label.info": "Info:", - "cmd.php.label.install": "Install:", - "cmd.php.label.setup": "Setup:", - "cmd.php.label.fix": "Fix:", - "cmd.php.label.audit": "Audit:", - "cmd.php.label.security": "Security:", - "cmd.php.label.summary": "Summary:", - "cmd.php.label.qa": "QA:", - "cmd.php.label.psalm": "Psalm:", - "cmd.php.label.rector": "Rector:", - "cmd.php.label.infection": "Infection:", - "cmd.php.label.deploy": "Deploy:", - "cmd.php.label.status": "Status:", - "cmd.php.label.id": "ID:", - "cmd.php.label.url": "URL:", - "cmd.php.label.branch": "Branch:", - "cmd.php.label.commit": "Commit:", - "cmd.php.label.message": "Message:", - "cmd.php.label.started": "Started:", - "cmd.php.label.completed": "Completed:", - "cmd.php.label.duration": "Duration:", - - "cmd.php.error.not_laravel": "not a Laravel project (missing artisan or laravel/framework)", - "cmd.php.error.not_laravel_short": "not a Laravel project", - "cmd.php.error.not_php": "not a PHP project (missing composer.json)", - "cmd.php.error.working_dir": "failed to get working directory", - "cmd.php.error.start_services": "failed to start services", - "cmd.php.error.stop_services": "failed to stop services", - "cmd.php.error.get_logs": "failed to get logs", - "cmd.php.error.detect_config": "failed to detect project configuration", - "cmd.php.error.build_failed": "build failed", - "cmd.php.error.start_container": "failed to start container", - "cmd.php.error.open_shell": "failed to open shell", - "cmd.php.error.link_packages": "failed to link packages", - "cmd.php.error.unlink_packages": "failed to unlink packages", - "cmd.php.error.update_packages": "composer update failed", - "cmd.php.error.list_packages": "failed to list packages", - "cmd.php.error.tests_failed": "tests failed", - "cmd.php.error.fmt_failed": "formatting failed", - "cmd.php.error.fmt_issues": "formatting issues found", - "cmd.php.error.analysis_issues": "analysis found issues", - "cmd.php.error.psalm_issues": "psalm found issues", - "cmd.php.error.psalm_not_installed": "psalm not installed", - "cmd.php.error.audit_failed": "audit failed", - "cmd.php.error.vulns_found": "vulnerabilities found", - "cmd.php.error.security_failed": "security check failed", - "cmd.php.error.critical_high_issues": "critical or high severity issues found", - "cmd.php.error.rector_failed": "rector failed", - "cmd.php.error.rector_not_installed": "rector not installed", - "cmd.php.error.infection_failed": "mutation testing failed", - "cmd.php.error.infection_not_installed": "infection not installed", - "cmd.php.error.mkcert_not_installed": "mkcert not installed", - "cmd.php.error.ssl_setup": "failed to setup SSL", - "cmd.php.error.deploy_failed": "deployment failed", - "cmd.php.error.status_failed": "failed to get status", - "cmd.php.error.rollback_failed": "rollback failed", - "cmd.php.error.list_deployments": "failed to list deployments", - - "cmd.go.short": "Go development tools", - "cmd.go.long": "Go development tools with enhanced output and environment setup.\n\nCommands:\n test Run tests\n cov Run tests with coverage report\n fmt Format Go code\n lint Run golangci-lint\n install Install Go binary\n mod Module management (tidy, download, verify)\n work Workspace management", - - "cmd.go.test.short": "Run tests with coverage", - "cmd.go.test.long": "Run Go tests with coverage reporting.\n\nSets MACOSX_DEPLOYMENT_TARGET=26.0 to suppress linker warnings.\nFilters noisy output and provides colour-coded coverage.\n\nExamples:\n core go test\n core go test --coverage\n core go test --pkg ./pkg/crypt\n core go test --run TestHash", - "cmd.go.test.label": "Test:", - "cmd.go.test.running": "Running tests", - "cmd.go.test.package_label": "Package:", - "cmd.go.test.passed": "{{.Count}} passed", - "cmd.go.test.passed_failed": "{{.Passed}} passed, {{.Failed}} failed", - "cmd.go.test.all_passed": "PASS All tests passed", - "cmd.go.test.some_failed": "FAIL Some tests failed", - "cmd.go.test.coverage": "Coverage", - "cmd.go.test.flag.coverage": "Show detailed per-package coverage", - "cmd.go.test.flag.pkg": "Package to test (default: ./...)", - "cmd.go.test.flag.run": "Run only tests matching regexp", - "cmd.go.test.flag.short": "Run only short tests", - "cmd.go.test.flag.race": "Enable race detector", - "cmd.go.test.flag.json": "Output JSON results", - "cmd.go.test.flag.verbose": "Verbose output", - - "cmd.go.cov.short": "Run tests with coverage report", - "cmd.go.cov.long": "Run tests and generate coverage report.\n\nExamples:\n core go cov # Run with coverage summary\n core go cov --html # Generate HTML report\n core go cov --open # Generate and open HTML report\n core go cov --threshold 80 # Fail if coverage < 80%", - "cmd.go.cov.label": "Coverage:", - "cmd.go.cov.running": "Running tests with coverage", - "cmd.go.cov.html_label": "HTML:", - "cmd.go.cov.open_manually": "(open manually)", - "cmd.go.cov.below_threshold": "FAIL Coverage {{.Actual}}% is below threshold {{.Threshold}}%", - "cmd.go.cov.error.discover": "failed to discover test packages", - "cmd.go.cov.error.no_packages": "no test packages found", - "cmd.go.cov.error.create_file": "failed to create coverage file", - "cmd.go.cov.error.get_coverage": "failed to get coverage", - "cmd.go.cov.error.generate_html": "failed to generate HTML", - "cmd.go.cov.error.below_threshold": "coverage below threshold", - "cmd.go.cov.flag.pkg": "Package to test (default: ./...)", - "cmd.go.cov.flag.html": "Generate HTML coverage report", - "cmd.go.cov.flag.open": "Generate and open HTML report in browser", - "cmd.go.cov.flag.threshold": "Minimum coverage percentage (exit 1 if below)", - - "cmd.go.fmt.short": "Format Go code", - "cmd.go.fmt.long": "Format Go code using gofmt or goimports.\n\nExamples:\n core go fmt # Check formatting\n core go fmt --fix # Fix formatting\n core go fmt --diff # Show diff", - "cmd.go.fmt.flag.fix": "Fix formatting in place", - "cmd.go.fmt.flag.diff": "Show diff of changes", - "cmd.go.fmt.flag.check": "Check only, exit 1 if not formatted", - - "cmd.go.lint.short": "Run golangci-lint", - "cmd.go.lint.long": "Run golangci-lint on the codebase.\n\nExamples:\n core go lint\n core go lint --fix", - "cmd.go.lint.flag.fix": "Fix issues automatically", - - "cmd.go.install.short": "Install Go binary", - "cmd.go.install.long": "Install Go binary to $GOPATH/bin.\n\nExamples:\n core go install # Install current module\n core go install ./cmd/core # Install specific path\n core go install --no-cgo # Pure Go (no C dependencies)\n core go install -v # Verbose output", - "cmd.go.install.label": "Install:", - "cmd.go.install.installing": "Installing", - "cmd.go.install.path_label": "Path:", - "cmd.go.install.cgo_label": "CGO:", - "cmd.go.install.cgo_disabled": "disabled", - "cmd.go.install.failed": "FAIL Install failed", - "cmd.go.install.success": "OK", - "cmd.go.install.installed_to": "Installed to {{.Path}}", - "cmd.go.install.flag.verbose": "Verbose output", - "cmd.go.install.flag.no_cgo": "Disable CGO (CGO_ENABLED=0)", - - "cmd.go.mod.short": "Module management", - "cmd.go.mod.long": "Go module management commands.\n\nCommands:\n tidy Add missing and remove unused modules\n download Download modules to local cache\n verify Verify dependencies\n graph Print module dependency graph", - "cmd.go.mod.tidy.short": "Tidy go.mod", - "cmd.go.mod.download.short": "Download modules", - "cmd.go.mod.verify.short": "Verify dependencies", - "cmd.go.mod.graph.short": "Print dependency graph", - - "cmd.go.work.short": "Workspace management", - "cmd.go.work.long": "Go workspace management commands.\n\nCommands:\n sync Sync go.work with modules\n init Initialize go.work\n use Add module to workspace", - "cmd.go.work.sync.short": "Sync workspace", - "cmd.go.work.init.short": "Initialize workspace", - "cmd.go.work.use.short": "Add module to workspace", - "cmd.go.work.added": "Added {{.Module}}", - "cmd.go.work.error.no_modules": "no go.mod files found", - - "cmd.go.build.short": "Build Go binaries", - - "cmd.doctor.short": "Check development environment", - "cmd.doctor.long": "Checks that all required tools are installed and configured.\nRun this before 'core setup' to ensure your environment is ready.", - "cmd.doctor.checking": "Checking development environment...", - "cmd.doctor.required": "Required:", - "cmd.doctor.optional": "Optional:", - "cmd.doctor.github": "GitHub Access:", - "cmd.doctor.workspace": "Workspace:", - "cmd.doctor.ready": "Doctor: Environment ready", - "cmd.doctor.issues": "Doctor: {{.Count}} issues found", - "cmd.doctor.issues_error": "{{.Count}} required tools missing", - "cmd.doctor.install_missing": "Install missing tools:", - "cmd.doctor.verbose_flag": "Show detailed version information", - "cmd.doctor.ssh_found": "SSH key found", - "cmd.doctor.ssh_missing": "SSH key missing - run: ssh-keygen && gh ssh-key add", - "cmd.doctor.cli_auth": "CLI authenticated", - "cmd.doctor.cli_auth_missing": "CLI authentication - run: gh auth login", - "cmd.doctor.repos_yaml_found": "Found repos.yaml at {{.Path}}", - "cmd.doctor.repos_cloned": "{{.Cloned}}/{{.Total}} repos cloned", - "cmd.doctor.no_repos_yaml": "No repos.yaml found (run from workspace directory)", - "cmd.doctor.install_macos": "brew install git gh php composer node pnpm docker", - "cmd.doctor.install_macos_cask": "brew install --cask claude", - "cmd.doctor.install_linux_header": "# Install via your package manager or:", - "cmd.doctor.install_linux_git": "# Git: apt install git", - "cmd.doctor.install_linux_gh": "# GitHub CLI: https://cli.github.com/", - "cmd.doctor.install_linux_php": "# PHP: apt install php8.3-cli", - "cmd.doctor.install_linux_node": "# Node: https://nodejs.org/", - "cmd.doctor.install_linux_pnpm": "# pnpm: npm install -g pnpm", - "cmd.doctor.install_other": "See documentation for your OS", - - "cmd.doctor.check.git.name": "Git", - "cmd.doctor.check.git.description": "Version control", - "cmd.doctor.check.gh.name": "GitHub CLI", - "cmd.doctor.check.gh.description": "GitHub integration (issues, PRs, CI)", - "cmd.doctor.check.php.name": "PHP", - "cmd.doctor.check.php.description": "Laravel packages", - "cmd.doctor.check.composer.name": "Composer", - "cmd.doctor.check.composer.description": "PHP dependencies", - "cmd.doctor.check.node.name": "Node.js", - "cmd.doctor.check.node.description": "Frontend builds", - "cmd.doctor.check.pnpm.name": "pnpm", - "cmd.doctor.check.pnpm.description": "Fast package manager", - "cmd.doctor.check.claude.name": "Claude Code", - "cmd.doctor.check.claude.description": "AI-assisted development", - "cmd.doctor.check.docker.name": "Docker", - "cmd.doctor.check.docker.description": "Container runtime", - - "cmd.setup.short": "Bootstrap workspace or clone packages from registry", - "cmd.setup.long": "Sets up a development workspace.\n\nREGISTRY MODE (repos.yaml exists):\n Clones all repositories defined in repos.yaml into packages/.\n Skips repos that already exist. Use --only to filter by type.\n\nBOOTSTRAP MODE (no repos.yaml):\n 1. Clones core-devops to set up the workspace\n 2. Presents an interactive wizard to select packages\n 3. Clones selected packages\n\nUse --all to skip the wizard and clone everything.", - - "cmd.setup.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.setup.flag.only": "Only clone repos of these types (comma-separated: foundation,module,product)", - "cmd.setup.flag.dry_run": "Show what would be cloned without cloning", - "cmd.setup.flag.all": "Skip wizard, clone all packages (non-interactive)", - "cmd.setup.flag.name": "Project directory name for bootstrap mode", - "cmd.setup.flag.build": "Run build after cloning", - - "cmd.setup.bootstrap_mode": "Bootstrap mode (no repos.yaml found)", - "cmd.setup.cloning_current_dir": "Cloning into current directory", - "cmd.setup.creating_project_dir": "Creating project directory", - "cmd.setup.cloning": "Cloning", - "cmd.setup.cloned": "cloned", - "cmd.setup.would_clone": "Would clone", - "cmd.setup.already_exists": "already exists", - "cmd.setup.would_load_registry": "Would load registry from", - - "cmd.setup.registry_label": "Registry:", - "cmd.setup.org_label": "Org:", - "cmd.setup.target_label": "Target:", - "cmd.setup.filter_label": "Filter:", - - "cmd.setup.to_clone": "{{.Count}} to clone", - "cmd.setup.exist": "{{.Count}} exist", - "cmd.setup.skipped": "{{.Count}} skipped", - "cmd.setup.nothing_to_clone": "Nothing to clone.", - "cmd.setup.would_clone_list": "Would clone:", - "cmd.setup.cancelled": "Cancelled.", - "cmd.setup.done": "done", - "cmd.setup.done_label": "Done:", - "cmd.setup.cloned_count": "{{.Count}} cloned", - "cmd.setup.failed_count": "{{.Count}} failed", - "cmd.setup.already_exist_count": "{{.Count}} already exist", - "cmd.setup.running_build": "Running build...", - "cmd.setup.complete": "Setup complete", - - "cmd.setup.repo.setting_up": "Setting up repository", - "cmd.setup.repo.detected_type": "Detected project type", - "cmd.setup.repo.would_create": "Would create", - "cmd.setup.repo.created": "Created", - - "cmd.setup.wizard.git_repo_title": "This directory is a git repository", - "cmd.setup.wizard.what_to_do": "What would you like to do?", - "cmd.setup.wizard.option_setup": "Setup Working Directory", - "cmd.setup.wizard.option_package": "Create Package (clone repos into subdirectory)", - "cmd.setup.wizard.project_name_title": "Project directory name", - "cmd.setup.wizard.project_name_desc": "Enter the name for your new workspace directory", - "cmd.setup.wizard.package_selection": "Package Selection", - "cmd.setup.wizard.selection_hint": "Use space to select/deselect, enter to confirm", - "cmd.setup.wizard.select_packages": "Select packages to clone", - "cmd.setup.wizard.confirm_clone": "Clone {{.Count}} packages to {{.Target}}?", - "cmd.setup.wizard.confirm_yes": "Yes, clone", - "cmd.setup.wizard.confirm_cancel": "Cancel", - - "cmd.setup.error.build_failed": "build failed", - - "cmd.build.short": "Build projects with auto-detection and cross-compilation", - "cmd.build.long": "Builds the current project with automatic type detection.\nSupports Go, Wails, Docker, LinuxKit, and Taskfile projects.\nConfiguration can be provided via .core/build.yaml or command-line flags.\n\nExamples:\n core build # Auto-detect and build\n core build --type docker # Build Docker image\n core build --type linuxkit # Build LinuxKit image\n core build --type linuxkit --config linuxkit.yml --format qcow2-bios", - - "cmd.build.from_path.short": "Build from a local directory", - "cmd.build.from_path.starting": "Starting build from path:", - "cmd.build.from_path.generating_template": "Generating application from template...", - "cmd.build.from_path.copying_files": "Copying application files...", - "cmd.build.from_path.compiling": "Compiling application...", - "cmd.build.from_path.success": "Build successful! Executable created at:", - "cmd.build.from_path.flag.path": "The path to the static web application files", - "cmd.build.from_path.error.invalid_path": "invalid path specified", - "cmd.build.from_path.error.must_be_directory": "path specified must be a directory", - "cmd.build.from_path.error.clean_build_dir": "failed to clean build directory", - "cmd.build.from_path.error.anchor_template": "failed to anchor template filesystem", - "cmd.build.from_path.error.create_sod": "failed to create new sod instance", - "cmd.build.from_path.error.extract_template": "failed to extract template", - "cmd.build.from_path.error.copy_files": "failed to copy application files", - "cmd.build.from_path.error.go_mod_tidy": "go mod tidy failed", - "cmd.build.from_path.error.go_build": "go build failed", - - "cmd.build.pwa.short": "Build from a live PWA URL", - "cmd.build.pwa.starting": "Starting PWA build from URL:", - "cmd.build.pwa.downloading_to": "Downloading PWA to temporary directory:", - "cmd.build.pwa.found_manifest": "Found manifest:", - "cmd.build.pwa.download_complete": "PWA download complete.", - "cmd.build.pwa.warning": "Warning:", - "cmd.build.pwa.no_manifest": "no manifest file found. Proceeding with basic site download.", - "cmd.build.pwa.asset_download_failed": "failed to download asset", - "cmd.build.pwa.flag.url": "The URL of the PWA to build", - "cmd.build.pwa.error.create_temp_dir": "failed to create temporary directory", - "cmd.build.pwa.error.download_failed": "failed to download PWA", - "cmd.build.pwa.error.fetch_url": "failed to fetch URL", - "cmd.build.pwa.error.read_response": "failed to read response body", - "cmd.build.pwa.error.write_index": "failed to write index.html", - "cmd.build.pwa.error.fetch_manifest": "failed to fetch or parse manifest", - "cmd.build.pwa.error.no_manifest_tag": "no tag found", - - "cmd.build.sdk.short": "Generate API SDKs from OpenAPI spec", - "cmd.build.sdk.long": "Generates typed API clients from OpenAPI specifications.\nSupports TypeScript, Python, Go, and PHP.\n\nExamples:\n core build sdk # Generate all configured SDKs\n core build sdk --lang typescript # Generate only TypeScript SDK\n core build sdk --spec api.yaml # Use specific OpenAPI spec", - "cmd.build.sdk.label": "Build SDK:", - "cmd.build.sdk.generating": "Generating SDKs", - "cmd.build.sdk.dry_run_mode": "(dry-run mode)", - "cmd.build.sdk.spec_label": "Spec:", - "cmd.build.sdk.language_label": "Language:", - "cmd.build.sdk.languages_label": "Languages:", - "cmd.build.sdk.generated_label": "Generated:", - "cmd.build.sdk.would_generate": "Would generate SDKs (dry-run)", - "cmd.build.sdk.complete": "SDK generation complete", - "cmd.build.sdk.flag.spec": "Path to OpenAPI spec file", - "cmd.build.sdk.flag.lang": "Generate only this language (typescript, python, go, php)", - "cmd.build.sdk.flag.version": "Version to embed in generated SDKs", - "cmd.build.sdk.flag.dry_run": "Show what would be generated without writing files", - - "cmd.build.flag.type": "Builder type (go, wails, docker, linuxkit, taskfile) - auto-detected if not specified", - "cmd.build.flag.ci": "CI mode - minimal output with JSON artifact list at the end", - "cmd.build.flag.targets": "Comma-separated OS/arch pairs (e.g., linux/amd64,darwin/arm64)", - "cmd.build.flag.output": "Output directory for artifacts (default: dist)", - "cmd.build.flag.archive": "Create archives (tar.gz for linux/darwin, zip for windows)", - "cmd.build.flag.checksum": "Generate SHA256 checksums and CHECKSUMS.txt", - "cmd.build.flag.config": "Config file path (for linuxkit: YAML config, for docker: Dockerfile)", - "cmd.build.flag.format": "Output format for linuxkit (iso-bios, qcow2-bios, raw, vmdk)", - "cmd.build.flag.push": "Push Docker image after build", - "cmd.build.flag.image": "Docker image name (e.g., host-uk/core-devops)", - "cmd.build.flag.no_sign": "Skip all code signing", - "cmd.build.flag.notarize": "Enable macOS notarization (requires Apple credentials)", - - "cmd.build.label.build": "Build:", - "cmd.build.label.type": "Type:", - "cmd.build.label.output": "Output:", - "cmd.build.label.binary": "Binary:", - "cmd.build.label.targets": "Targets:", - "cmd.build.label.error": "Error:", - "cmd.build.label.success": "Success:", - "cmd.build.label.sign": "Sign:", - "cmd.build.label.archive": "Archive:", - "cmd.build.label.checksum": "Checksum:", - "cmd.build.label.ok": "OK:", - - "cmd.build.building_project": "Building project", - "cmd.build.built_artifacts": "Built {{.Count}} artifact(s)", - "cmd.build.signing_binaries": "Signing binaries...", - "cmd.build.creating_archives": "Creating archives...", - "cmd.build.computing_checksums": "Computing checksums...", - - "cmd.build.error.working_dir": "failed to get working directory", - "cmd.build.error.load_config": "failed to load config", - "cmd.build.error.detect_type": "failed to detect project type", - "cmd.build.error.no_project_type": "no supported project type detected in {{.Dir}}\nSupported types: go (go.mod), wails (wails.json), node (package.json), php (composer.json)", - "cmd.build.error.build_failed": "build failed", - "cmd.build.error.signing_failed": "signing failed", - "cmd.build.error.notarization_failed": "notarization failed", - "cmd.build.error.archive_failed": "archive failed", - "cmd.build.error.marshal_artifacts": "failed to marshal artifacts", - "cmd.build.error.checksum_failed": "checksum failed", - "cmd.build.error.write_checksums": "failed to write CHECKSUMS.txt", - "cmd.build.error.gpg_signing_failed": "GPG signing failed", - "cmd.build.error.invalid_target": "invalid target format \"{{.Target}}\", expected OS/arch (e.g., linux/amd64)", - "cmd.build.error.no_targets": "no valid targets specified", - "cmd.build.error.node_not_implemented": "Node.js builder not yet implemented", - "cmd.build.error.php_not_implemented": "PHP builder not yet implemented", - "cmd.build.error.unsupported_type": "unsupported project type", - - "cmd.ai.short": "AI agent task management", - "cmd.ai.long": "Manage tasks from the core-agentic service for AI-assisted development.\n\nCommands:\n tasks List tasks (filterable by status, priority, labels)\n task View task details or auto-select highest priority\n task:update Update task status or progress\n task:complete Mark task as completed or failed\n task:commit Create git commit with task reference\n task:pr Create GitHub PR linked to task\n claude Claude Code integration\n\nWorkflow:\n core ai tasks # List pending tasks\n core ai task --auto --claim # Auto-select and claim a task\n core ai task:commit -m 'msg' # Commit with task reference\n core ai task:complete # Mark task done", - - "cmd.ai.claude.short": "Claude Code integration", - "cmd.ai.claude.long": "Tools for working with Claude Code.\n\nCommands:\n run Run Claude in the current directory\n config Manage Claude configuration", - "cmd.ai.claude.run.short": "Run Claude Code in the current directory", - "cmd.ai.claude.config.short": "Manage Claude configuration", - - "cmd.ai.tasks.short": "List available tasks from core-agentic", - "cmd.ai.tasks.long": "Lists tasks from the core-agentic service.\n\nConfiguration is loaded from:\n 1. Environment variables (AGENTIC_TOKEN, AGENTIC_BASE_URL)\n 2. .env file in current directory\n 3. ~/.core/agentic.yaml\n\nExamples:\n core ai tasks\n core ai tasks --status pending --priority high\n core ai tasks --labels bug,urgent", - "cmd.ai.tasks.none_found": "No tasks found.", - "cmd.ai.tasks.found": "{{.Count}} task(s) found:", - "cmd.ai.tasks.hint": "Use 'core ai task ' to view details", - "cmd.ai.tasks.flag.status": "Filter by status (pending, in_progress, completed, blocked)", - "cmd.ai.tasks.flag.priority": "Filter by priority (critical, high, medium, low)", - "cmd.ai.tasks.flag.labels": "Filter by labels (comma-separated)", - "cmd.ai.tasks.flag.limit": "Max number of tasks to return", - "cmd.ai.tasks.flag.project": "Filter by project", - - "cmd.ai.task.short": "Show task details or auto-select a task", - "cmd.ai.task.long": "Shows details of a specific task or auto-selects the highest priority task.\n\nExamples:\n core ai task abc123 # Show task details\n core ai task abc123 --claim # Show and claim the task\n core ai task abc123 --context # Show task with gathered context\n core ai task --auto # Auto-select highest priority pending task", - "cmd.ai.task.no_pending": "No pending tasks available.", - "cmd.ai.task.id_required": "task ID required (or use --auto)", - "cmd.ai.task.context_failed": "Failed to build context", - "cmd.ai.task.claiming": "Claiming task...", - "cmd.ai.task.claimed": "Task claimed successfully!", - "cmd.ai.task.flag.auto": "Auto-select highest priority pending task", - "cmd.ai.task.flag.claim": "Claim the task after showing details", - "cmd.ai.task.flag.context": "Show gathered context for AI collaboration", - - "cmd.ai.task_update.short": "Update task status or progress", - "cmd.ai.task_update.long": "Updates a task's status, progress, or adds notes.\n\nExamples:\n core ai task:update abc123 --status in_progress\n core ai task:update abc123 --progress 50 --notes 'Halfway done'", - "cmd.ai.task_update.flag_required": "at least one of --status, --progress, or --notes required", - "cmd.ai.task_update.success": "Task {{.ID}} updated successfully", - "cmd.ai.task_update.flag.status": "New status (pending, in_progress, completed, blocked)", - "cmd.ai.task_update.flag.progress": "Progress percentage (0-100)", - "cmd.ai.task_update.flag.notes": "Notes about the update", - - "cmd.ai.task_complete.short": "Mark a task as completed", - "cmd.ai.task_complete.long": "Marks a task as completed with optional output and artifacts.\n\nExamples:\n core ai task:complete abc123 --output 'Feature implemented'\n core ai task:complete abc123 --failed --error 'Build failed'", - "cmd.ai.task_complete.success": "Task {{.ID}} completed successfully", - "cmd.ai.task_complete.failed": "Task {{.ID}} marked as failed", - "cmd.ai.task_complete.flag.output": "Summary of the completed work", - "cmd.ai.task_complete.flag.failed": "Mark the task as failed", - "cmd.ai.task_complete.flag.error": "Error message if failed", - - "cmd.ai.task_commit.short": "Auto-commit changes with task reference", - "cmd.ai.task_commit.long": "Creates a git commit with a task reference and co-author attribution.\n\nCommit message format:\n feat(scope): description\n\n Task: #123\n Co-Authored-By: Claude \n\nExamples:\n core ai task:commit abc123 --message 'add user authentication'\n core ai task:commit abc123 -m 'fix login bug' --scope auth\n core ai task:commit abc123 -m 'update docs' --push", - "cmd.ai.task_commit.message_required": "commit message required (--message or -m)", - "cmd.ai.task_commit.no_changes": "No uncommitted changes to commit.", - "cmd.ai.task_commit.creating": "Creating commit for task {{.ID}}...", - "cmd.ai.task_commit.committed": "Committed:", - "cmd.ai.task_commit.pushing": "Pushing changes...", - "cmd.ai.task_commit.pushed": "Changes pushed successfully", - "cmd.ai.task_commit.flag.message": "Commit message (without task reference)", - "cmd.ai.task_commit.flag.scope": "Scope for the commit type (e.g., auth, api, ui)", - "cmd.ai.task_commit.flag.push": "Push changes after committing", - - "cmd.ai.task_pr.short": "Create a pull request for a task", - "cmd.ai.task_pr.long": "Creates a GitHub pull request linked to a task.\n\nRequires the GitHub CLI (gh) to be installed and authenticated.\n\nExamples:\n core ai task:pr abc123\n core ai task:pr abc123 --title 'Add authentication feature'\n core ai task:pr abc123 --draft --labels 'enhancement,needs-review'\n core ai task:pr abc123 --base develop", - "cmd.ai.task_pr.branch_error": "cannot create PR from {{.Branch}} branch; create a feature branch first", - "cmd.ai.task_pr.pushing_branch": "Pushing branch {{.Branch}}...", - "cmd.ai.task_pr.creating": "Creating pull request...", - "cmd.ai.task_pr.created": "Pull request created!", - "cmd.ai.task_pr.flag.title": "PR title (defaults to task title)", - "cmd.ai.task_pr.flag.draft": "Create as draft PR", - "cmd.ai.task_pr.flag.labels": "Labels to add (comma-separated)", - "cmd.ai.task_pr.flag.base": "Base branch (defaults to main)", - - "cmd.ai.priority.critical": "CRITICAL", - "cmd.ai.priority.high": "HIGH", - "cmd.ai.priority.medium": "MEDIUM", - "cmd.ai.priority.low": "LOW", - - "cmd.ai.status.pending": "pending", - "cmd.ai.status.in_progress": "in_progress", - "cmd.ai.status.completed": "completed", - "cmd.ai.status.blocked": "blocked", - - "cmd.ai.label.id": "ID:", - "cmd.ai.label.title": "Title:", - "cmd.ai.label.priority": "Priority:", - "cmd.ai.label.status": "Status:", - "cmd.ai.label.project": "Project:", - "cmd.ai.label.labels": "Labels:", - "cmd.ai.label.claimed_by": "Claimed by:", - "cmd.ai.label.created": "Created:", - "cmd.ai.label.description": "Description:", - "cmd.ai.label.related_files": "Related files:", - "cmd.ai.label.blocked_by": "Blocked by:", - "cmd.ai.label.url": "URL:", - - "cmd.ai.error.load_config": "failed to load config", - "cmd.ai.error.list_tasks": "failed to list tasks", - "cmd.ai.error.get_task": "failed to get task", - "cmd.ai.error.claim_task": "failed to claim task", - "cmd.ai.error.update_task": "failed to update task", - "cmd.ai.error.complete_task": "failed to complete task", - "cmd.ai.error.working_dir": "failed to get working directory", - "cmd.ai.error.git_status": "failed to check git status", - "cmd.ai.error.commit": "failed to commit", - "cmd.ai.error.push": "failed to push", - "cmd.ai.error.get_branch": "failed to get current branch", - "cmd.ai.error.push_branch": "failed to push branch", - "cmd.ai.error.create_pr": "failed to create PR", - - "cmd.vm.short": "LinuxKit VM management", - "cmd.vm.long": "Manage LinuxKit virtual machines.\n\nLinuxKit VMs are lightweight, immutable VMs built from YAML templates.\nThey run using qemu or hyperkit depending on your system.\n\nCommands:\n run Run a VM from image or template\n ps List running VMs\n stop Stop a running VM\n logs View VM logs\n exec Execute command in VM\n templates Manage LinuxKit templates", - - "cmd.vm.run.short": "Run a LinuxKit image or template", - "cmd.vm.run.long": "Runs a LinuxKit image as a VM using the available hypervisor.\n\nSupported image formats: .iso, .qcow2, .vmdk, .raw\n\nYou can also run from a template using --template, which will build and run\nthe image automatically. Use --var to set template variables.\n\nExamples:\n core vm run image.iso\n core vm run -d image.qcow2\n core vm run --name myvm --memory 2048 --cpus 4 image.iso\n core vm run --template core-dev --var SSH_KEY=\"ssh-rsa AAAA...\"\n core vm run --template server-php --var SSH_KEY=\"...\" --var DOMAIN=example.com", - "cmd.vm.run.flag.name": "Name for the container", - "cmd.vm.run.flag.detach": "Run in detached mode (background)", - "cmd.vm.run.flag.memory": "Memory in MB (default: 1024)", - "cmd.vm.run.flag.cpus": "Number of CPUs (default: 1)", - "cmd.vm.run.flag.ssh_port": "SSH port for exec commands (default: 2222)", - "cmd.vm.run.flag.template": "Run from a LinuxKit template (build + run)", - "cmd.vm.run.flag.var": "Template variable in KEY=VALUE format (can be repeated)", - "cmd.vm.run.error.image_required": "image path is required (or use --template)", - - "cmd.vm.ps.short": "List running VMs", - "cmd.vm.ps.long": "Lists all VMs. By default, only shows running VMs.\n\nExamples:\n core vm ps\n core vm ps -a", - "cmd.vm.ps.flag.all": "Show all containers (including stopped)", - "cmd.vm.ps.header": "ID\tNAME\tIMAGE\tSTATUS\tSTARTED\tPID", - "cmd.vm.ps.no_containers": "No containers", - "cmd.vm.ps.no_running": "No running containers", - - "cmd.vm.stop.short": "Stop a running VM", - "cmd.vm.stop.long": "Stops a running VM by ID.\n\nExamples:\n core vm stop abc12345\n core vm stop abc1", - "cmd.vm.stop.stopping": "Stopping:", - "cmd.vm.stop.stopped": "Stopped", - - "cmd.vm.logs.short": "View VM logs", - "cmd.vm.logs.long": "View logs from a VM.\n\nExamples:\n core vm logs abc12345\n core vm logs -f abc1", - "cmd.vm.logs.flag.follow": "Follow log output", - - "cmd.vm.exec.short": "Execute a command in a VM", - "cmd.vm.exec.long": "Execute a command inside a running VM via SSH.\n\nExamples:\n core vm exec abc12345 ls -la\n core vm exec abc1 /bin/sh", - - "cmd.vm.templates.short": "Manage LinuxKit templates", - "cmd.vm.templates.long": "Manage LinuxKit YAML templates for building VMs.\n\nTemplates provide pre-configured LinuxKit configurations for common use cases.\nThey support variable substitution with ${VAR} and ${VAR:-default} syntax.\n\nExamples:\n core vm templates # List available templates\n core vm templates show core-dev # Show template content\n core vm templates vars server-php # Show template variables", - "cmd.vm.templates.title": "Available LinuxKit Templates", - "cmd.vm.templates.header": "NAME\tDESCRIPTION", - "cmd.vm.templates.no_templates": "No templates available.", - "cmd.vm.templates.hint.show": "Show template:", - "cmd.vm.templates.hint.vars": "Show variables:", - "cmd.vm.templates.hint.run": "Run from template:", - - "cmd.vm.templates.show.short": "Display template content", - "cmd.vm.templates.show.long": "Display the content of a LinuxKit template.\n\nExamples:\n core templates show core-dev\n core templates show server-php", - - "cmd.vm.templates.vars.short": "Show template variables", - "cmd.vm.templates.vars.long": "Display all variables used in a template.\n\nShows required variables (no default) and optional variables (with defaults).\n\nExamples:\n core templates vars core-dev\n core templates vars server-php", - "cmd.vm.templates.vars.required": "Required Variables (no default):", - "cmd.vm.templates.vars.optional": "Optional Variables (with defaults):", - "cmd.vm.templates.vars.none": "No variables in this template.", - - "cmd.vm.label.image": "Image:", - "cmd.vm.label.name": "Name:", - "cmd.vm.label.hypervisor": "Hypervisor:", - "cmd.vm.label.started": "Started:", - "cmd.vm.label.pid": "PID:", - "cmd.vm.label.container_stopped": "Container stopped:", - "cmd.vm.label.template": "Template:", - "cmd.vm.label.building": "Building:", - - "cmd.vm.hint.view_logs": "Use 'core vm logs {{.ID}}' to view output", - "cmd.vm.hint.stop": "Use 'core vm stop {{.ID}}' to stop", - - "cmd.vm.error.init_manager": "failed to initialize container manager", - "cmd.vm.error.run_container": "failed to run container", - "cmd.vm.error.list_containers": "failed to list containers", - "cmd.vm.error.stop_container": "failed to stop container", - "cmd.vm.error.get_logs": "failed to get logs", - "cmd.vm.error.id_required": "container ID is required", - "cmd.vm.error.id_and_cmd_required": "container ID and command are required", - "cmd.vm.error.no_match": "no container found matching: {{.ID}}", - "cmd.vm.error.multiple_match": "multiple containers match '{{.ID}}', be more specific", - "cmd.vm.error.template_required": "template name is required", - "cmd.vm.error.apply_template": "failed to apply template", - "cmd.vm.error.create_temp": "failed to create temp directory", - "cmd.vm.error.write_template": "failed to write template", - "cmd.vm.error.build_image": "failed to build image", - "cmd.vm.error.no_image_found": "no image found after build", - "cmd.vm.error.linuxkit_not_found": "linuxkit not found. Install with: brew install linuxkit (macOS) or see https://github.com/linuxkit/linuxkit", - - "cmd.docs.short": "Documentation management", - "cmd.docs.long": "Manage documentation across all repos.\nScan for docs, check coverage, and sync to core-php/docs/packages/.", - - "cmd.docs.list.short": "List documentation across repos", - "cmd.docs.list.long": "List documentation files for all repos in the workspace.\n\nShows README.md, CLAUDE.md, CHANGELOG.md, and docs/ directory status\nfor each repository.", - "cmd.docs.list.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.docs.list.header.repo": "Repo", - "cmd.docs.list.header.readme": "README", - "cmd.docs.list.header.claude": "CLAUDE", - "cmd.docs.list.header.changelog": "CHANGELOG", - "cmd.docs.list.header.docs": "docs/", - "cmd.docs.list.files_count": "{{.Count}} files", - "cmd.docs.list.coverage_label": "Coverage", - "cmd.docs.list.coverage_summary": "{{.WithDocs}} with docs, {{.WithoutDocs}} without", - - "cmd.docs.sync.short": "Sync documentation to core-php/docs/packages/", - "cmd.docs.sync.long": "Sync documentation from all repos to a central location.\n\nCopies docs/ directories from each package to core-php/docs/packages/\nfor unified documentation builds.", - "cmd.docs.sync.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.docs.sync.flag.dry_run": "Show what would be synced without copying", - "cmd.docs.sync.flag.output": "Output directory (default: core-php/docs/packages)", - "cmd.docs.sync.no_docs_found": "No documentation found in any repos.", - "cmd.docs.sync.found_label": "Found", - "cmd.docs.sync.repos_with_docs": "{{.Count}} repo(s) with docs/ directories", - "cmd.docs.sync.files_count": "({{.Count}} files)", - "cmd.docs.sync.total_label": "Total:", - "cmd.docs.sync.total_summary": "{{.Files}} files from {{.Repos}} repos → {{.Output}}", - "cmd.docs.sync.dry_run_notice": "Dry run - no files copied", - "cmd.docs.sync.confirm": "Sync?", - "cmd.docs.sync.done_label": "Done:", - "cmd.docs.sync.synced_packages": "Synced {{.Count}} packages", - - "cmd.docs.error.load_registry": "failed to load registry", - "cmd.docs.error.scan_directory": "failed to scan directory", - - "cmd.pkg.short": "Package management for core-* repos", - "cmd.pkg.long": "Manage host-uk/core-* packages and repositories.\n\nCommands:\n search Search GitHub for packages\n install Clone a package from GitHub\n list List installed packages\n update Update installed packages\n outdated Check for outdated packages", - "cmd.pkg.no_description": "(no description)", - - "cmd.pkg.search.short": "Search GitHub for packages", - "cmd.pkg.search.long": "Searches GitHub for repositories matching a pattern.\nUses gh CLI for authenticated search. Results are cached for 1 hour.\n\nExamples:\n core pkg search # List all host-uk repos\n core pkg search --pattern 'core-*' # Search for core-* repos\n core pkg search --org mycompany # Search different org\n core pkg search --refresh # Bypass cache", - "cmd.pkg.search.flag.org": "GitHub organization (default: host-uk)", - "cmd.pkg.search.flag.pattern": "Repo name pattern (* for wildcard)", - "cmd.pkg.search.flag.type": "Filter by type in name (mod, services, plug, website)", - "cmd.pkg.search.flag.limit": "Max results (default 50)", - "cmd.pkg.search.flag.refresh": "Bypass cache and fetch fresh data", - "cmd.pkg.search.cache_label": "Cache:", - "cmd.pkg.search.note_label": "Note:", - "cmd.pkg.search.fetching_label": "Fetching:", - "cmd.pkg.search.gh_token_warning": "GH_TOKEN env var is set - this may cause auth issues", - "cmd.pkg.search.gh_token_unset": "Unset it with: unset GH_TOKEN", - "cmd.pkg.search.no_repos_found": "No repositories found matching pattern.", - "cmd.pkg.search.found_repos": "Found {{.Count}} repositories:", - "cmd.pkg.search.private_label": "[private]", - "cmd.pkg.search.install_with": "Install with:", - - "cmd.pkg.install.short": "Clone a package from GitHub", - "cmd.pkg.install.long": "Clones a repository from GitHub.\n\nExamples:\n core pkg install host-uk/core-php\n core pkg install host-uk/core-tenant --dir ./packages\n core pkg install host-uk/core-admin --add", - "cmd.pkg.install.flag.dir": "Target directory (default: ./packages or current dir)", - "cmd.pkg.install.flag.add": "Add to repos.yaml registry", - "cmd.pkg.install.skip_label": "Skip:", - "cmd.pkg.install.already_exists": "{{.Name}} already exists at {{.Path}}", - "cmd.pkg.install.installing_label": "Installing:", - "cmd.pkg.install.target_label": "Target:", - "cmd.pkg.install.cloning": "Cloning", - "cmd.pkg.install.add_to_registry": "add to registry", - "cmd.pkg.install.added_to_registry": "added to repos.yaml", - "cmd.pkg.install.done_label": "Done:", - "cmd.pkg.install.installed": "Installed {{.Name}}", - - "cmd.pkg.list.short": "List installed packages", - "cmd.pkg.list.long": "Lists all packages in the current workspace.\n\nReads from repos.yaml or scans for git repositories.\n\nExamples:\n core pkg list", - "cmd.pkg.list.title": "Installed Packages", - "cmd.pkg.list.no_packages": "No packages in registry.", - "cmd.pkg.list.total_label": "Total:", - "cmd.pkg.list.summary": "{{.Installed}} installed, {{.Missing}} missing", - "cmd.pkg.list.install_missing": "Install missing:", - - "cmd.pkg.update.short": "Update installed packages", - "cmd.pkg.update.long": "Pulls latest changes for installed packages.\n\nExamples:\n core pkg update core-php # Update specific package\n core pkg update --all # Update all packages", - "cmd.pkg.update.flag.all": "Update all packages", - "cmd.pkg.update.update_label": "Update:", - "cmd.pkg.update.updating": "Updating {{.Count}} package(s)", - "cmd.pkg.update.not_installed": "not installed", - "cmd.pkg.update.up_to_date": "up to date", - "cmd.pkg.update.done_label": "Done:", - "cmd.pkg.update.summary": "{{.Updated}} updated, {{.Skipped}} skipped, {{.Failed}} failed", - - "cmd.pkg.outdated.short": "Check for outdated packages", - "cmd.pkg.outdated.long": "Checks which packages have unpulled commits.\n\nExamples:\n core pkg outdated", - "cmd.pkg.outdated.outdated_label": "Outdated:", - "cmd.pkg.outdated.checking": "Checking for updates...", - "cmd.pkg.outdated.commits_behind": "{{.Count}} commits behind", - "cmd.pkg.outdated.done_label": "Done:", - "cmd.pkg.outdated.all_up_to_date": "All packages up to date", - "cmd.pkg.outdated.summary_label": "Summary:", - "cmd.pkg.outdated.summary": "{{.Outdated}} outdated, {{.UpToDate}} up to date", - "cmd.pkg.outdated.update_with": "Update with:", - - "cmd.pkg.error.gh_not_authenticated": "gh CLI not authenticated. Run: gh auth login", - "cmd.pkg.error.auth_failed": "authentication failed - try: unset GH_TOKEN && gh auth login", - "cmd.pkg.error.search_failed": "search failed: %s", - "cmd.pkg.error.parse_results": "failed to parse results: %w", - "cmd.pkg.error.repo_required": "repository is required (e.g., core pkg install host-uk/core-php)", - "cmd.pkg.error.invalid_repo_format": "invalid repo format: use org/repo (e.g., host-uk/core-php)", - "cmd.pkg.error.create_directory": "failed to create directory: %w", - "cmd.pkg.error.no_repos_yaml": "no repos.yaml found", - "cmd.pkg.error.no_repos_yaml_workspace": "no repos.yaml found - run from workspace directory", - "cmd.pkg.error.load_registry": "failed to load registry: %w", - "cmd.pkg.error.specify_package": "specify package name or use --all", - - "cmd.ci.short": "Publish releases (dry-run by default)", - "cmd.ci.long": "Publishes pre-built artifacts from dist/ to configured targets.\nRun 'core build' first to create artifacts.\n\nSAFE BY DEFAULT: Runs in dry-run mode unless --we-are-go-for-launch is specified.\n\nConfiguration: .core/release.yaml", - - "cmd.ci.init.short": "Initialize release configuration", - "cmd.ci.init.long": "Creates a .core/release.yaml configuration file interactively.", - "cmd.ci.init.config_exists": "Configuration already exists at", - "cmd.ci.init.overwrite_prompt": "Overwrite? [y/N]: ", - "cmd.ci.init.creating": "Creating release configuration", - "cmd.ci.init.project_name": "Project name", - "cmd.ci.init.github_repo": "GitHub repository (owner/repo):", - "cmd.ci.init.config_written": "Configuration written to", - - "cmd.ci.changelog.short": "Generate changelog", - "cmd.ci.changelog.long": "Generates a changelog from conventional commits.", - "cmd.ci.changelog.flag.from": "Starting ref (default: previous tag)", - "cmd.ci.changelog.flag.to": "Ending ref (default: HEAD)", - - "cmd.ci.version.short": "Show or set version", - "cmd.ci.version.long": "Shows the determined version or validates a version string.", - - "cmd.ci.release.short": "Create a release", - - "cmd.ci.flag.go_for_launch": "Actually publish (default is dry-run for safety)", - "cmd.ci.flag.version": "Version to release (e.g., v1.2.3)", - "cmd.ci.flag.draft": "Create release as a draft", - "cmd.ci.flag.prerelease": "Mark release as a prerelease", - - "cmd.ci.publishing": "Publishing release", - "cmd.ci.dry_run_hint": "(dry-run) use --we-are-go-for-launch to publish", - "cmd.ci.go_for_launch": "GO FOR LAUNCH", - "cmd.ci.publish_completed": "Publish completed!", - - "cmd.ci.label.ci": "CI:", - "cmd.ci.label.init": "Init:", - "cmd.ci.label.note": "Note:", - "cmd.ci.label.error": "Error:", - "cmd.ci.label.success": "Success:", - "cmd.ci.label.version": "Version:", - "cmd.ci.label.artifacts": "Artifacts:", - "cmd.ci.label.published": "Published:", - - "cmd.ci.error.working_dir": "failed to get working directory", - "cmd.ci.error.load_config": "failed to load config", - "cmd.ci.error.write_config": "failed to write config", - "cmd.ci.error.no_publishers": "no publishers configured in .core/release.yaml", - "cmd.ci.error.generate_changelog": "failed to generate changelog", - "cmd.ci.error.determine_version": "failed to determine version", - - "cmd.sdk.short": "SDK validation and API compatibility tools", - "cmd.sdk.long": "Tools for validating OpenAPI specs and checking API compatibility.\nTo generate SDKs, use: core build sdk\n\nCommands:\n diff Check for breaking API changes\n validate Validate OpenAPI spec syntax", - - "cmd.sdk.diff.short": "Check for breaking API changes", - "cmd.sdk.diff.long": "Check for breaking API changes between spec versions.\n\nCompares a base spec (version tag or file) against the current spec\nand reports any breaking changes that would affect API consumers.", - "cmd.sdk.diff.flag.base": "Base spec (version tag or file)", - "cmd.sdk.diff.flag.spec": "Current spec file", - "cmd.sdk.diff.label": "SDK Diff:", - "cmd.sdk.diff.checking": "Checking for breaking changes", - "cmd.sdk.diff.base_label": "Base:", - "cmd.sdk.diff.current_label": "Current:", - "cmd.sdk.diff.breaking": "Breaking:", - "cmd.sdk.diff.error.base_required": "--base is required (version tag or file path)", - - "cmd.sdk.validate.short": "Validate OpenAPI spec", - "cmd.sdk.validate.long": "Validate OpenAPI spec syntax.\n\nChecks that the OpenAPI specification file is valid and well-formed.", - "cmd.sdk.validate.flag.spec": "Path to OpenAPI spec file", - "cmd.sdk.validate.validating": "Validating OpenAPI spec", - "cmd.sdk.validate.spec_label": "Spec:", - "cmd.sdk.validate.valid": "Spec is valid", - - "cmd.sdk.label.sdk": "SDK:", - "cmd.sdk.label.ok": "OK:", - "cmd.sdk.label.error": "Error:", - "cmd.sdk.error.working_dir": "failed to get working directory", - - "cmd.test.short": "Run tests with coverage", - "cmd.test.long": "Runs Go tests with coverage reporting.\n\nSets MACOSX_DEPLOYMENT_TARGET=26.0 to suppress linker warnings on macOS.\n\nExamples:\n core test # Run all tests with coverage summary\n core test --verbose # Show test output as it runs\n core test --coverage # Show detailed per-package coverage\n core test --pkg ./pkg/... # Test specific packages\n core test --run TestName # Run specific test by name\n core test --short # Skip long-running tests\n core test --race # Enable race detector\n core test --json # Output JSON for CI/agents", - "cmd.test.running": "Running tests", - "cmd.test.all_passed": "All tests passed", - "cmd.test.tests_failed": "Tests failed", - "cmd.test.passed": "{{.Count}} passed", - "cmd.test.failed": "{{.Count}} failed", - "cmd.test.skipped": "{{.Count}} skipped", - "cmd.test.failed_packages": "Failed packages:", - "cmd.test.coverage_by_package": "Coverage by package:", - - "cmd.test.flag.verbose": "Show test output as it runs (-v)", - "cmd.test.flag.coverage": "Show detailed per-package coverage", - "cmd.test.flag.short": "Skip long-running tests (-short)", - "cmd.test.flag.pkg": "Package pattern to test (default: ./...)", - "cmd.test.flag.run": "Run only tests matching this regex (-run)", - "cmd.test.flag.race": "Enable race detector (-race)", - "cmd.test.flag.json": "Output JSON for CI/agents", - - "cmd.test.label.test": "Test:", - "cmd.test.label.package": "Package:", - "cmd.test.label.filter": "Filter:", - "cmd.test.label.coverage": "Coverage:", - "cmd.test.label.average": "Average", - - "cmd.test.error.no_go_mod": "no go.mod found - run from a Go project directory", - "cmd.test.error.tests_failed": "tests failed", - - "error.not_found": "Not found: {{.Item}}", - "error.invalid": "Invalid: {{.Item}}", - "error.permission": "Permission denied: {{.Item}}", - "error.timeout": "Operation timed out", - "error.network": "Network error: {{.Message}}", - "error.gh_not_found": "'gh' CLI not found. Install from https://cli.github.com/", - "error.registry_not_found": "No repos.yaml found", - "error.repo_not_found": "Repository '{{.Name}}' not found", - - "label.status": "Status", - "label.branch": "Branch", - "label.commit": "Commit", - "label.message": "Message", - "label.author": "Author", - "label.date": "Date", - "label.duration": "Duration", - "label.coverage": "Coverage", - "label.package": "Package", - "label.registry": "Registry", - "label.scanning": "Scanning", - "label.total": "Total", - - "lang.en": "English", - "lang.de": "German", - "lang.es": "Spanish", - "lang.fr": "French", - "lang.zh": "Chinese" } diff --git a/pkg/i18n/locales/en_GB.json b/pkg/i18n/locales/en_GB.json index 3fece7f..c9a23d6 100644 --- a/pkg/i18n/locales/en_GB.json +++ b/pkg/i18n/locales/en_GB.json @@ -28,1487 +28,229 @@ "leave": { "base": "leave", "past": "left", "gerund": "leaving" }, "spend": { "base": "spend", "past": "spent", "gerund": "spending" }, "pay": { "base": "pay", "past": "paid", "gerund": "paying" }, - "sell": { "base": "sell", "past": "sold", "gerund": "selling" } + "sell": { "base": "sell", "past": "sold", "gerund": "selling" }, + "commit": { "base": "commit", "past": "committed", "gerund": "committing" }, + "stop": { "base": "stop", "past": "stopped", "gerund": "stopping" }, + "scan": { "base": "scan", "past": "scanned", "gerund": "scanning" }, + "format": { "base": "format", "past": "formatted", "gerund": "formatting" }, + "set": { "base": "set", "past": "set", "gerund": "setting" }, + "put": { "base": "put", "past": "put", "gerund": "putting" }, + "cut": { "base": "cut", "past": "cut", "gerund": "cutting" }, + "hit": { "base": "hit", "past": "hit", "gerund": "hitting" }, + "sit": { "base": "sit", "past": "sat", "gerund": "sitting" }, + "split": { "base": "split", "past": "split", "gerund": "splitting" }, + "shut": { "base": "shut", "past": "shut", "gerund": "shutting" } }, "noun": { - "file": { "one": "file", "other": "files", "gender": "neuter" }, - "repo": { "one": "repo", "other": "repos", "gender": "neuter" }, - "repository": { "one": "repository", "other": "repositories", "gender": "neuter" }, - "commit": { "one": "commit", "other": "commits", "gender": "neuter" }, - "branch": { "one": "branch", "other": "branches", "gender": "neuter" }, - "change": { "one": "change", "other": "changes", "gender": "neuter" }, - "item": { "one": "item", "other": "items", "gender": "neuter" }, - "issue": { "one": "issue", "other": "issues", "gender": "neuter" }, - "task": { "one": "task", "other": "tasks", "gender": "neuter" }, - "user": { "one": "user", "other": "users", "gender": "neuter" }, - "person": { "one": "person", "other": "people", "gender": "neuter" }, - "child": { "one": "child", "other": "children", "gender": "neuter" } + "file": { "one": "file", "other": "files" }, + "repo": { "one": "repo", "other": "repos" }, + "repository": { "one": "repository", "other": "repositories" }, + "commit": { "one": "commit", "other": "commits" }, + "branch": { "one": "branch", "other": "branches" }, + "change": { "one": "change", "other": "changes" }, + "item": { "one": "item", "other": "items" }, + "issue": { "one": "issue", "other": "issues" }, + "task": { "one": "task", "other": "tasks" }, + "person": { "one": "person", "other": "people" }, + "child": { "one": "child", "other": "children" }, + "package": { "one": "package", "other": "packages" }, + "artifact": { "one": "artifact", "other": "artifacts" }, + "vulnerability": { "one": "vulnerability", "other": "vulnerabilities" }, + "dependency": { "one": "dependency", "other": "dependencies" }, + "directory": { "one": "directory", "other": "directories" }, + "category": { "one": "category", "other": "categories" }, + "query": { "one": "query", "other": "queries" } }, "article": { "indefinite": { "default": "a", "vowel": "an" }, "definite": "the" - } - }, - "common": { - "prompt": { - "yes": "y", - "no": "n", - "yes_full": "yes", - "no_full": "no", - "abort": "Operation aborted", - "cancel": "Cancelled", - "continue": "Continue?", - "proceed": "Proceed?", - "confirm": "Are you sure?", - "overwrite": "Overwrite?", - "delete": "Delete?", - "save": "Save?", - "discard": "Discard changes?" }, - "label": { - "error": "Error:", - "done": "Done:", - "status": "Status:", - "version": "Version:", - "summary": "Summary:", - "image": "Image:", - "success": "Success:", - "warning": "Warning:", - "note": "Note:", - "registry": "Registry:", - "current": "Current:", - "total": "Total:", - "coverage": "Coverage:", - "install": "Install:", - "path": "Path:", - "test": "Test:", - "package": "Package:", - "spec": "Spec:", - "template": "Template:", - "fix": "Fix:", - "skip": "Skip:", - "started": "Started:", - "target": "Target:", - "filter": "Filter:", - "project": "Project:", - "url": "URL:", - "repo": "Repo" - }, - "status": { - "running": "Running", - "stopped": "Stopped", - "dirty": "dirty", - "synced": "synced", + "word": { + "url": "URL", + "id": "ID", + "ok": "OK", + "ci": "CI", + "qa": "QA", + "php": "PHP", + "sdk": "SDK", + "html": "HTML", + "cgo": "CGO", + "pid": "PID", + "cpus": "CPUs", + "ssh": "SSH", + "ssl": "SSL", + "api": "API", + "pr": "PR", + "vite": "Vite", + "pnpm": "pnpm", + "app_url": "app URL", + "blocked_by": "blocked by", + "claimed_by": "claimed by", + "related_files": "related files", "up_to_date": "up to date", - "installing": "Installing", - "cloning": "Cloning" + "dry_run": "dry run", + "go_mod": "go.mod" }, - "error": { - "failed": "Failed to {{.Action}}", - "not_found": "{{.Item}} not found", - "no_items": "No {{.Items}} found" - }, - "success": { - "completed": "{{.Action}} completed successfully", - "passed": "{{.Action}} passed" - }, - "progress": { - "running": "Running {{.Task}}", - "checking": "Checking {{.Item}}", - "checking_updates": "Checking for updates..." - }, - "flag": { - "registry": "Path to repos.yaml (auto-detected if not specified)", - "spec": "Path to OpenAPI spec file", - "diff": "Show diff of changes", - "verbose": "Verbose output", - "coverage": "Show detailed per-package coverage", - "json": "Output in JSON format", - "tag": "Image tag (default: latest)", - "follow": "Follow log output", - "fix": "Auto-fix issues where possible", - "pkg": "Package to test (default: ./...)" - }, - "count": { - "failed": "{{.Count}} failed", - "passed": "{{.Count}} passed", - "skipped": "{{.Count}} skipped", - "pending": "{{.Count}} pending", - "files": "{{.Count}} files", - "commits": "{{.Count}} commit(s)", - "repos_unpushed": "{{.Count}} repo(s) with unpushed commits:" - }, - "result": { - "all_passed": "All tests passed", - "no_issues": "No issues found", - "run_with_coverage": "Run tests with coverage" - }, - "hint": { - "install_with": "Install with:", - "fix_deps": "composer update && npm update" + "punct": { + "label": ":", + "progress": "..." } }, - "cli": { - "aborted": "Aborted", - "cancelled": "Cancelled", - "completed": "Completed", - "count": { - "commits": { - "one": "{{.Count}} commit", - "other": "{{.Count}} commits" - }, - "items": { - "one": "{{.Count}} item", - "other": "{{.Count}} items" - }, - "repos": { - "one": "{{.Count}} repo", - "other": "{{.Count}} repos" - } - }, - "done": "Done", - "error": "Error", - "fail": "FAIL", - "failed": "Failed", - "info": "Info", - "ok": "OK", - "pass": "PASS", - "pending": "Pending", - "skip": "Skipped", - "success": "Success", - "time": { - "day_ago": "1 day ago", - "days_ago": "{{.Count}} days ago", - "hour_ago": "1 hour ago", - "hours_ago": "{{.Count}} hours ago", - "just_now": "just now", - "minute_ago": "1 minute ago", - "minutes_ago": "{{.Count}} minutes ago", - "seconds_ago": "{{.Count}} seconds ago", - "week_ago": "1 week ago", - "weeks_ago": "{{.Count}} weeks ago" - }, - "warning": "Warning" + "prompt": { + "yes": "y", + "no": "n", + "continue": "Continue?", + "proceed": "Proceed?", + "confirm": "Are you sure?", + "overwrite": "Overwrite?", + "discard": "Discard changes?" + }, + "time": { + "just_now": "just now", + "ago": { + "second": { "one": "{{.Count}} second ago", "other": "{{.Count}} seconds ago" }, + "minute": { "one": "{{.Count}} minute ago", "other": "{{.Count}} minutes ago" }, + "hour": { "one": "{{.Count}} hour ago", "other": "{{.Count}} hours ago" }, + "day": { "one": "{{.Count}} day ago", "other": "{{.Count}} days ago" }, + "week": { "one": "{{.Count}} week ago", "other": "{{.Count}} weeks ago" } + } }, "cmd": { "ai": { - "claude": { - "config": { - "short": "Manage Claude configuration" - }, - "long": "Tools for working with Claude Code.\n\nCommands:\n run Run Claude in the current directory\n config Manage Claude configuration", - "run": { - "short": "Run Claude Code in the current directory" - }, - "short": "Claude Code integration" - }, - "label": { - "blocked_by": "Blocked by:", - "claimed_by": "Claimed by:", - "created": "Created:", - "description": "Description:", - "id": "ID:", - "labels": "Labels:", - "priority": "Priority:", - "related_files": "Related files:", - "title": "Title:" - }, - "long": "Manage tasks from the core-agentic service for AI-assisted development.\n\nCommands:\n tasks List tasks (filterable by status, priority, labels)\n task View task details or auto-select highest priority\n task:update Update task status or progress\n task:complete Mark task as completed or failed\n task:commit Create git commit with task reference\n task:pr Create GitHub PR linked to task\n claude Claude Code integration\n\nWorkflow:\n core ai tasks # List pending tasks\n core ai task --auto --claim # Auto-select and claim a task\n core ai task:commit -m 'msg' # Commit with task reference\n core ai task:complete # Mark task done", - "priority": { - "critical": "CRITICAL", - "high": "HIGH", - "low": "LOW", - "medium": "MEDIUM" - }, "short": "AI agent task management", - "status": { - "blocked": "blocked", - "completed": "completed", - "in_progress": "in_progress", - "pending": "pending" - }, - "task": { - "claiming": "Claiming task...", - "flag": { - "auto": "Auto-select highest priority pending task", - "claim": "Claim the task after showing details", - "context": "Show gathered context for AI collaboration" - }, - "id_required": "task ID required (or use --auto)", - "long": "Shows details of a specific task or auto-selects the highest priority task.\n\nExamples:\n core ai task abc123 # Show task details\n core ai task abc123 --claim # Show and claim the task\n core ai task abc123 --context # Show task with gathered context\n core ai task --auto # Auto-select highest priority pending task", - "no_pending": "No pending tasks available.", - "short": "Show task details or auto-select a task" - }, - "task_commit": { - "committed": "Committed:", - "creating": "Creating commit for task {{.ID}}...", - "flag": { - "message": "Commit message (without task reference)", - "push": "Push changes after committing", - "scope": "Scope for the commit type (e.g., auth, api, ui)" - }, - "long": "Creates a git commit with a task reference and co-author attribution.\n\nCommit message format:\n feat(scope): description\n\n Task: #123\n Co-Authored-By: Claude \n\nExamples:\n core ai task:commit abc123 --message 'add user authentication'\n core ai task:commit abc123 -m 'fix login bug' --scope auth\n core ai task:commit abc123 -m 'update docs' --push", - "message_required": "commit message required (--message or -m)", - "no_changes": "No uncommitted changes to commit.", - "pushing": "Pushing changes...", - "short": "Auto-commit changes with task reference" - }, - "task_complete": { - "failed": "Task {{.ID}} marked as failed", - "flag": { - "error": "Error message if failed", - "failed": "Mark the task as failed", - "output": "Summary of the completed work" - }, - "long": "Marks a task as completed with optional output and artifacts.\n\nExamples:\n core ai task:complete abc123 --output 'Feature implemented'\n core ai task:complete abc123 --failed --error 'Build failed'", - "short": "Mark a task as completed" - }, - "task_pr": { - "branch_error": "cannot create PR from {{.Branch}} branch; create a feature branch first", - "created": "Pull request created!", - "creating": "Creating pull request...", - "flag": { - "base": "Base branch (defaults to main)", - "draft": "Create as draft PR", - "labels": "Labels to add (comma-separated)", - "title": "PR title (defaults to task title)" - }, - "long": "Creates a GitHub pull request linked to a task.\n\nRequires the GitHub CLI (gh) to be installed and authenticated.\n\nExamples:\n core ai task:pr abc123\n core ai task:pr abc123 --title 'Add authentication feature'\n core ai task:pr abc123 --draft --labels 'enhancement,needs-review'\n core ai task:pr abc123 --base develop", - "pushing_branch": "Pushing branch {{.Branch}}...", - "short": "Create a pull request for a task" - }, - "task_update": { - "flag": { - "notes": "Notes about the update", - "progress": "Progress percentage (0-100)", - "status": "New status (pending, in_progress, completed, blocked)" - }, - "flag_required": "at least one of --status, --progress, or --notes required", - "long": "Updates a task's status, progress, or adds notes.\n\nExamples:\n core ai task:update abc123 --status in_progress\n core ai task:update abc123 --progress 50 --notes 'Halfway done'", - "short": "Update task status or progress" - }, - "tasks": { - "flag": { - "labels": "Filter by labels (comma-separated)", - "limit": "Max number of tasks to return", - "priority": "Filter by priority (critical, high, medium, low)", - "project": "Filter by project", - "status": "Filter by status (pending, in_progress, completed, blocked)" - }, - "found": "{{.Count}} task(s) found:", - "hint": "Use 'core ai task ' to view details", - "long": "Lists tasks from the core-agentic service.\n\nConfiguration is loaded from:\n 1. Environment variables (AGENTIC_TOKEN, AGENTIC_BASE_URL)\n 2. .env file in current directory\n 3. ~/.core/agentic.yaml\n\nExamples:\n core ai tasks\n core ai tasks --status pending --priority high\n core ai tasks --labels bug,urgent", - "none_found": "No tasks found.", - "short": "List available tasks from core-agentic" - } + "claude.short": "Claude Code integration", + "task.short": "Show task details or auto-select a task", + "task.id_required": "task ID required (or use --auto)", + "task.no_pending": "No pending tasks available.", + "tasks.short": "List available tasks from core-agentic", + "task_commit.short": "Auto-commit changes with task reference", + "task_commit.no_changes": "No uncommitted changes to commit.", + "task_complete.short": "Mark a task as completed", + "task_pr.short": "Create a pull request for a task", + "task_pr.branch_error": "cannot create PR from {{.Branch}} branch; create a feature branch first", + "task_update.short": "Update task status or progress" }, "build": { - "building_project": "Building project", - "built_artifacts": "Built {{.Count}} artifact(s)", - "computing_checksums": "Computing checksums...", - "creating_archives": "Creating archives...", - "error": { - "archive_failed": "archive failed", - "checksum_failed": "checksum failed", - "gpg_signing_failed": "GPG signing failed", - "invalid_target": "invalid target format \"{{.Target}}\", expected OS/arch (e.g., linux/amd64)", - "no_project_type": "no supported project type detected in {{.Dir}}\nSupported types: go (go.mod), wails (wails.json), node (package.json), php (composer.json)", - "no_targets": "no valid targets specified", - "node_not_implemented": "Node.js builder not yet implemented", - "notarization_failed": "notarization failed", - "php_not_implemented": "PHP builder not yet implemented", - "signing_failed": "signing failed", - "unsupported_type": "unsupported project type" - }, - "flag": { - "archive": "Create archives (tar.gz for linux/darwin, zip for windows)", - "checksum": "Generate SHA256 checksums and CHECKSUMS.txt", - "ci": "CI mode - minimal output with JSON artifact list at the end", - "config": "Config file path (for linuxkit: YAML config, for docker: Dockerfile)", - "format": "Output format for linuxkit (iso-bios, qcow2-bios, raw, vmdk)", - "image": "Docker image name (e.g., host-uk/core-devops)", - "no_sign": "Skip all code signing", - "notarize": "Enable macOS notarization (requires Apple credentials)", - "output": "Output directory for artifacts (default: dist)", - "push": "Push Docker image after build", - "targets": "Comma-separated OS/arch pairs (e.g., linux/amd64,darwin/arm64)", - "type": "Builder type (go, wails, docker, linuxkit, taskfile) - auto-detected if not specified" - }, - "from_path": { - "compiling": "Compiling application...", - "copying_files": "Copying application files...", - "error": { - "go_build": "go build failed", - "go_mod_tidy": "go mod tidy failed", - "invalid_path": "invalid path specified", - "must_be_directory": "path specified must be a directory" - }, - "flag": { - "path": "The path to the static web application files" - }, - "generating_template": "Generating application from template...", - "short": "Build from a local directory", - "starting": "Starting build from path:", - "success": "Build successful! Executable created at:" - }, - "label": { - "archive": "Archive:", - "binary": "Binary:", - "build": "Build:", - "checksum": "Checksum:", - "ok": "OK:", - "output": "Output:", - "sign": "Sign:", - "targets": "Targets:", - "type": "Type:" - }, - "long": "Builds the current project with automatic type detection.\nSupports Go, Wails, Docker, LinuxKit, and Taskfile projects.\nConfiguration can be provided via .core/build.yaml or command-line flags.\n\nExamples:\n core build # Auto-detect and build\n core build --type docker # Build Docker image\n core build --type linuxkit # Build LinuxKit image\n core build --type linuxkit --config linuxkit.yml --format qcow2-bios", - "pwa": { - "download_complete": "PWA download complete.", - "downloading_to": "Downloading PWA to temporary directory:", - "error": { - "no_manifest_tag": "no tag found" - }, - "flag": { - "url": "The URL of the PWA to build" - }, - "found_manifest": "Found manifest:", - "no_manifest": "no manifest file found. Proceeding with basic site download.", - "short": "Build from a live PWA URL", - "starting": "Starting PWA build from URL:" - }, - "sdk": { - "complete": "SDK generation complete", - "dry_run_mode": "(dry-run mode)", - "flag": { - "dry_run": "Show what would be generated without writing files", - "lang": "Generate only this language (typescript, python, go, php)", - "version": "Version to embed in generated SDKs" - }, - "generated_label": "Generated:", - "generating": "Generating SDKs", - "label": "Build SDK:", - "language_label": "Language:", - "languages_label": "Languages:", - "long": "Generates typed API clients from OpenAPI specifications.\nSupports TypeScript, Python, Go, and PHP.\n\nExamples:\n core build sdk # Generate all configured SDKs\n core build sdk --lang typescript # Generate only TypeScript SDK\n core build sdk --spec api.yaml # Use specific OpenAPI spec", - "short": "Generate API SDKs from OpenAPI spec", - "would_generate": "Would generate SDKs (dry-run)" - }, "short": "Build projects with auto-detection and cross-compilation", - "signing_binaries": "Signing binaries..." + "error.invalid_target": "invalid target format \"{{.Target}}\", expected OS/arch (e.g., linux/amd64)", + "error.no_project_type": "no supported project type detected in {{.Dir}}\nSupported types: go (go.mod), wails (wails.json), node (package.json), php (composer.json)", + "from_path.short": "Build from a local directory", + "pwa.short": "Build from a live PWA URL", + "sdk.short": "Generate API SDKs from OpenAPI spec" }, "ci": { - "changelog": { - "flag": { - "from": "Starting ref (default: previous tag)", - "to": "Ending ref (default: HEAD)" - }, - "long": "Generates a changelog from conventional commits.", - "short": "Generate changelog" - }, - "dry_run_hint": "(dry-run) use --we-are-go-for-launch to publish", - "error": { - "no_publishers": "no publishers configured in .core/release.yaml" - }, - "flag": { - "draft": "Create release as a draft", - "go_for_launch": "Actually publish (default is dry-run for safety)", - "prerelease": "Mark release as a prerelease", - "version": "Version to release (e.g., v1.2.3)" - }, - "go_for_launch": "GO FOR LAUNCH", - "init": { - "config_exists": "Configuration already exists at", - "config_written": "Configuration written to", - "creating": "Creating release configuration", - "github_repo": "GitHub repository (owner/repo):", - "long": "Creates a .core/release.yaml configuration file interactively.", - "overwrite_prompt": "Overwrite? [y/N]: ", - "project_name": "Project name", - "short": "Initialize release configuration" - }, - "label": { - "artifacts": "Artifacts:", - "ci": "CI:", - "init": "Init:", - "published": "Published:" - }, - "long": "Publishes pre-built artifacts from dist/ to configured targets.\nRun 'core build' first to create artifacts.\n\nSAFE BY DEFAULT: Runs in dry-run mode unless --we-are-go-for-launch is specified.\n\nConfiguration: .core/release.yaml", - "publish_completed": "Publish completed!", - "publishing": "Publishing release", - "release": { - "short": "Create a release" - }, "short": "Publish releases (dry-run by default)", - "version": { - "long": "Shows the determined version or validates a version string.", - "short": "Show or set version" - } + "dry_run_hint": "(dry-run) use --we-are-go-for-launch to publish", + "go_for_launch": "GO FOR LAUNCH", + "init.short": "Initialize release configuration", + "changelog.short": "Generate changelog", + "version.short": "Show or set version" }, "dev": { - "api": { - "short": "Tools for managing service APIs" - }, - "ci": { - "failing": "{{.Count}} failing", - "flag": { - "branch": "Filter by branch", - "failed": "Show only failed runs" - }, - "long": "Fetches GitHub Actions workflow status for all repos.\nShows latest run status for each repo.\nRequires the 'gh' CLI to be installed and authenticated.", - "no_ci": "{{.Count}} no CI", - "passing": "{{.Count}} passing", - "repos_checked": "{{.Count}} repos checked", - "short": "Check CI status across all repos" - }, - "commit": { - "committing": "Committing dirty repos with Claude...", - "failed": "Commit failed", - "flag": { - "all": "Commit all dirty repos without prompting" - }, - "long": "Uses Claude to create commits for dirty repos.\nShows uncommitted changes and invokes Claude to generate commit messages.", - "short": "Claude-assisted commits across repos" - }, - "committed": "committed", - "committing": "Committing", - "confirm_claude_commit": "Have Claude commit these repos?", - "done_succeeded": "Done: {{.Count}} succeeded", - "health": { - "ahead_label": "Ahead:", - "behind_label": "Behind:", - "dirty_label": "Dirty:", - "errors": "errors", - "errors_label": "Errors:", - "flag": { - "verbose": "Show detailed breakdown" - }, - "long": "Shows a summary of repository health:\ntotal repos, dirty repos, unpushed commits, etc.", - "more": "+{{.Count}} more", - "repos": "repos", - "short": "Quick health check across all repos", - "to_pull": "to pull", - "to_push": "to push" - }, - "impact": { - "analysis_for": "Impact analysis for", - "changes_affect": "Changes to {{.Repo}} affect {{.Affected}}/{{.Total}} repos", - "direct_dependents": "{{.Count}} direct dependent(s):", - "long": "Analyzes the dependency graph to show which repos\nwould be affected by changes to the specified repo.", - "no_dependents": "No repos depend on {{.Name}}", - "requires_registry": "impact analysis requires repos.yaml with dependency information", - "short": "Show impact of changing a repo", - "transitive_dependents": "{{.Count}} transitive dependent(s):" - }, - "issues": { - "flag": { - "assignee": "Filter by assignee (use @me for yourself)", - "limit": "Max issues per repo" - }, - "long": "Fetches open issues from GitHub for all repos in the registry.\nRequires the 'gh' CLI to be installed and authenticated.", - "no_issues": "No open issues found.", - "open_issues": "{{.Count}} open issue(s):", - "short": "List open issues across all repos" - }, - "long": "Manage multiple git repositories and GitHub integration.\n\nUses repos.yaml to discover repositories. Falls back to scanning\nthe current directory if no registry is found.\n\nGit Operations:\n work Combined status -> commit -> push workflow\n health Quick repo health summary\n commit Claude-assisted commit messages\n push Push repos with unpushed commits\n pull Pull repos behind remote\n\nGitHub Integration (requires gh CLI):\n issues List open issues across repos\n reviews List PRs awaiting review\n ci Check GitHub Actions status\n impact Analyse dependency impact\n\nDev Environment:\n install Download dev environment image\n boot Start dev environment VM\n stop Stop dev environment VM\n shell Open shell in dev VM\n status Check dev VM status", - "modified": "{{.Count}} modified", + "short": "Multi-repo development workflow", "no_changes": "No uncommitted changes found.", "no_git_repos": "No git repositories found.", - "pull": { - "all_up_to_date": "All repos up to date. Nothing to pull.", - "commits_behind": "{{.Count}} commit(s) behind", - "done_pulled": "Done: {{.Count}} pulled", - "flag": { - "all": "Pull all repos, not just those behind" - }, - "long": "Pulls updates for all repos.\nBy default only pulls repos that are behind. Use --all to pull all repos.", - "pulling": "Pulling", - "pulling_repos": "Pulling {{.Count}} repo(s):", - "repos_behind": "{{.Count}} repo(s) behind upstream:", - "short": "Pull updates across all repos" - }, - "push": { - "all_up_to_date": "All repos up to date. Nothing to push.", - "confirm": "Push all?", - "confirm_push": "Push {{.Commits}} commit(s) to {{.Repos}} repo(s)?", - "diverged": "branch has diverged from remote", - "diverged_help": "Some repos have diverged (local and remote have different commits).", - "done_pushed": "Done: {{.Count}} pushed", - "failed": "Push failed", - "flag": { - "force": "Skip confirmation prompt" - }, - "long": "Pushes unpushed commits for all repos.\nShows repos with commits to push and confirms before pushing.", - "nothing": "Nothing to push", - "pull_and_retry": "Pull changes and retry push?", - "short": "Push commits across all repos", - "uncommitted_changes_commit": "You have uncommitted changes. Commit with Claude first?" - }, - "repos_with_changes": "{{.Count}} repo(s) with uncommitted changes:", - "reviews": { - "approved": "{{.Count}} approved", - "changes_requested": "{{.Count}} changes requested", - "draft": "[draft]", - "flag": { - "all": "Show all PRs including drafts", - "author": "Filter by PR author" - }, - "long": "Fetches open PRs from GitHub for all repos in the registry.\nShows review status (approved, changes requested, pending).\nRequires the 'gh' CLI to be installed and authenticated.", - "no_prs": "No open PRs found.", - "open_prs": "{{.Count}} open PR(s)", - "short": "List PRs needing review across all repos", - "status_approved": "v approved", - "status_changes": "* changes requested", - "status_pending": "o pending review" - }, - "scanning_label": "Scanning:", - "short": "Multi-repo development workflow", - "staged": "{{.Count}} staged", - "status": { - "ahead": "ahead", - "behind": "behind", - "clean": "clean", - "conflict": "conflict", - "diverged": "diverged" - }, - "sync": { - "long": "This command scans the 'pkg' directory for services and ensures that the\ntop-level public API for each service is in sync with its internal implementation.\nIt automatically generates the necessary Go files with type aliases.", - "short": "Synchronizes public service APIs with internal implementations" - }, - "untracked": "{{.Count}} untracked", - "vm": { - "already_installed": "Dev environment already installed", - "boot": { - "flag": { - "cpus": "Number of CPUs (default: 2)", - "fresh": "Stop existing and start fresh", - "memory": "Memory in MB (default: 4096)" - }, - "long": "Boots the dev environment VM.\n\nExamples:\n core dev boot\n core dev boot --memory 8192 --cpus 4\n core dev boot --fresh", - "short": "Start the dev environment" - }, - "booting": "Booting dev environment...", - "check_updates": "Use {{.Command}} to check for updates", - "claude": { - "flag": { - "auth": "Selective auth forwarding (gh,anthropic,ssh,git)", - "model": "Model to use (opus, sonnet)", - "no_auth": "Don't forward any auth credentials" - }, - "long": "Starts a Claude Code session inside the dev environment sandbox.\n\nProvides isolation while forwarding selected credentials.\nAuto-boots the dev environment if not running.\n\nAuth options (default: all):\n gh - GitHub CLI auth\n anthropic - Anthropic API key\n ssh - SSH agent forwarding\n git - Git config (name, email)\n\nExamples:\n core dev claude\n core dev claude --model opus\n core dev claude --auth gh,anthropic\n core dev claude --no-auth", - "short": "Start sandboxed Claude session" - }, - "config_label": "Config:", - "config_value": "{{.Memory}}MB, {{.CPUs}} CPUs", - "connect_with": "Connect with: {{.Command}}", - "container_label": "Container:", - "cpus_label": "CPUs:", - "downloading": "Downloading dev environment...", - "downloading_update": "Downloading update...", - "install": { - "long": "Downloads the platform-specific dev environment image.\n\nThe image includes Go, PHP, Node.js, Python, Docker, and Claude CLI.\nDownloads are cached at ~/.core/images/\n\nExamples:\n core dev install", - "short": "Download and install the dev environment image" - }, - "install_with": "Install with: {{.Command}}", - "installed_in": "Installed in {{.Duration}}", - "installed_label": "Installed:", - "installed_no": "No", - "installed_yes": "Yes", - "latest_label": "Latest:", - "memory_label": "Memory:", - "not_installed": "dev environment not installed (run 'core dev install' first)", - "not_running": "Dev environment is not running", - "progress_label": "Progress:", - "run_to_update": "Run {{.Command}} to update", - "running": "Dev environment running", - "serve": { - "flag": { - "path": "Subdirectory to serve", - "port": "Port to serve on (default: 8000)" - }, - "long": "Mounts the current project into the dev environment and starts a dev server.\n\nAuto-detects the appropriate serve command based on project files.\n\nExamples:\n core dev serve\n core dev serve --port 3000\n core dev serve --path public", - "short": "Mount project and start dev server" - }, - "shell": { - "flag": { - "console": "Use serial console instead of SSH" - }, - "long": "Opens an interactive shell in the dev environment.\n\nUses SSH by default, or serial console with --console.\n\nExamples:\n core dev shell\n core dev shell --console\n core dev shell -- ls -la", - "short": "Connect to the dev environment" - }, - "ssh_port": "SSH port:", - "start_with": "Start with: {{.Command}}", - "status": { - "long": "Shows the current status of the dev environment.\n\nExamples:\n core dev vm-status", - "short": "Show dev environment status" - }, - "status_title": "Dev Environment Status", - "stop": { - "long": "Stops the running dev environment VM.\n\nExamples:\n core dev stop", - "short": "Stop the dev environment" - }, - "stopping": "Stopping dev environment...", - "stopping_current": "Stopping current instance...", - "test": { - "flag": { - "name": "Run named test command from .core/test.yaml" - }, - "long": "Runs tests in the dev environment.\n\nAuto-detects the test command based on project files, or uses .core/test.yaml.\n\nExamples:\n core dev test\n core dev test --name integration\n core dev test -- go test -v ./...", - "short": "Run tests in the dev environment" - }, - "up_to_date": "Already up to date", - "update": { - "flag": { - "apply": "Download and apply the update" - }, - "long": "Checks for dev environment updates and optionally applies them.\n\nExamples:\n core dev update\n core dev update --apply", - "short": "Check for and apply updates" - }, - "update_available": "Update available", - "updated_in": "Updated in {{.Duration}}", - "uptime_label": "Uptime:" - }, - "work": { - "all_up_to_date": "All repos up to date.", - "error_prefix": "error:", - "flag": { - "commit": "Use Claude to commit dirty repos before pushing", - "status": "Show status only, don't push" - }, - "long": "Manage git status, commits, and pushes across multiple repositories.\n\nReads repos.yaml to discover repositories and their relationships.\nShows status, optionally commits with Claude, and pushes changes.", - "short": "Multi-repo git operations", - "table_ahead": "Ahead", - "table_modified": "Modified", - "table_staged": "Staged", - "table_untracked": "Untracked", - "use_commit_flag": "Use --commit to have Claude create commits" - } + "confirm_claude_commit": "Have Claude commit these repos?", + "health.short": "Quick health check across all repos", + "commit.short": "Claude-assisted commits across repos", + "push.short": "Push commits across all repos", + "push.diverged": "branch has diverged from remote", + "push.diverged_help": "Some repos have diverged (local and remote have different commits).", + "push.uncommitted_changes_commit": "You have uncommitted changes. Commit with Claude first?", + "pull.short": "Pull updates across all repos", + "work.short": "Multi-repo git operations", + "work.use_commit_flag": "Use --commit to have Claude create commits", + "issues.short": "List open issues across all repos", + "reviews.short": "List PRs needing review across all repos", + "ci.short": "Check CI status across all repos", + "impact.short": "Show impact of changing a repo", + "impact.requires_registry": "impact analysis requires repos.yaml with dependency information", + "sync.short": "Synchronizes public service APIs with internal implementations", + "vm.short": "Dev environment commands", + "vm.not_installed": "dev environment not installed (run 'core dev install' first)", + "vm.not_running": "Dev environment is not running" }, "docs": { - "list": { - "coverage_summary": "{{.WithDocs}} with docs, {{.WithoutDocs}} without", - "header": { - "changelog": "CHANGELOG", - "claude": "CLAUDE", - "docs": "docs/", - "readme": "README" - }, - "long": "List documentation files for all repos in the workspace.\n\nShows README.md, CLAUDE.md, CHANGELOG.md, and docs/ directory status\nfor each repository.", - "short": "List documentation across repos" - }, - "long": "Manage documentation across all repos.\nScan for docs, check coverage, and sync to core-php/docs/packages/.", "short": "Documentation management", - "sync": { - "confirm": "Sync?", - "dry_run_notice": "Dry run - no files copied", - "files_count": "({{.Count}} files)", - "flag": { - "dry_run": "Show what would be synced without copying", - "output": "Output directory (default: core-php/docs/packages)" - }, - "found_label": "Found", - "long": "Sync documentation from all repos to a central location.\n\nCopies docs/ directories from each package to core-php/docs/packages/\nfor unified documentation builds.", - "no_docs_found": "No documentation found in any repos.", - "repos_with_docs": "{{.Count}} repo(s) with docs/ directories", - "short": "Sync documentation to core-php/docs/packages/", - "synced_packages": "Synced {{.Count}} packages", - "total_summary": "{{.Files}} files from {{.Repos}} repos → {{.Output}}" - } + "list.short": "List documentation across repos", + "sync.short": "Sync documentation to core-php/docs/packages/" }, "doctor": { - "check": { - "claude": { - "description": "AI-assisted development", - "name": "Claude Code" - }, - "composer": { - "description": "PHP dependencies", - "name": "Composer" - }, - "docker": { - "description": "Container runtime", - "name": "Docker" - }, - "gh": { - "description": "GitHub integration (issues, PRs, CI)", - "name": "GitHub CLI" - }, - "git": { - "description": "Version control", - "name": "Git" - }, - "node": { - "description": "Frontend builds", - "name": "Node.js" - }, - "php": { - "description": "Laravel packages", - "name": "PHP" - }, - "pnpm": { - "description": "Fast package manager", - "name": "pnpm" - } - }, - "cli_auth": "CLI authenticated", - "cli_auth_missing": "CLI authentication - run: gh auth login", - "github": "GitHub Access:", - "install_linux_gh": "# GitHub CLI: https://cli.github.com/", - "install_linux_git": "# Git: apt install git", - "install_linux_header": "# Install via your package manager or:", - "install_linux_node": "# Node: https://nodejs.org/", - "install_linux_php": "# PHP: apt install php8.3-cli", - "install_linux_pnpm": "# pnpm: npm install -g pnpm", - "install_macos": "brew install git gh php composer node pnpm docker", - "install_macos_cask": "brew install --cask claude", - "install_missing": "Install missing tools:", - "install_other": "See documentation for your OS", - "issues": "Doctor: {{.Count}} issues found", - "issues_error": "{{.Count}} required tools missing", - "long": "Checks that all required tools are installed and configured.\nRun this before 'core setup' to ensure your environment is ready.", - "no_repos_yaml": "No repos.yaml found (run from workspace directory)", - "optional": "Optional:", - "ready": "Doctor: Environment ready", - "repos_cloned": "{{.Cloned}}/{{.Total}} repos cloned", - "repos_yaml_found": "Found repos.yaml at {{.Path}}", - "required": "Required:", "short": "Check development environment", - "ssh_found": "SSH key found", - "ssh_missing": "SSH key missing - run: ssh-keygen && gh ssh-key add", - "verbose_flag": "Show detailed version information", - "workspace": "Workspace:" + "ready": "Doctor: Environment ready", + "no_repos_yaml": "No repos.yaml found (run from workspace directory)", + "install_missing": "Install missing tools:", + "install_macos": "brew install git gh php composer node pnpm docker", + "ssh_missing": "SSH key missing - run: ssh-keygen && gh ssh-key add" }, "go": { - "build": { - "short": "Build Go binaries" - }, - "cov": { - "below_threshold": "FAIL Coverage {{.Actual}}% is below threshold {{.Threshold}}%", - "error": { - "below_threshold": "coverage below threshold", - "no_packages": "no test packages found" - }, - "flag": { - "html": "Generate HTML coverage report", - "open": "Generate and open HTML report in browser", - "threshold": "Minimum coverage percentage (exit 1 if below)" - }, - "html_label": "HTML:", - "long": "Run tests and generate coverage report.\n\nExamples:\n core go cov # Run with coverage summary\n core go cov --html # Generate HTML report\n core go cov --open # Generate and open HTML report\n core go cov --threshold 80 # Fail if coverage < 80%", - "open_manually": "(open manually)", - "short": "Run tests with coverage report" - }, - "fmt": { - "flag": { - "check": "Check only, exit 1 if not formatted", - "fix": "Fix formatting in place" - }, - "long": "Format Go code using gofmt or goimports.\n\nExamples:\n core go fmt # Check formatting\n core go fmt --fix # Fix formatting\n core go fmt --diff # Show diff", - "short": "Format Go code" - }, - "install": { - "cgo_disabled": "disabled", - "cgo_label": "CGO:", - "failed": "FAIL Install failed", - "flag": { - "no_cgo": "Disable CGO (CGO_ENABLED=0)" - }, - "installed_to": "Installed to {{.Path}}", - "long": "Install Go binary to $GOPATH/bin.\n\nExamples:\n core go install # Install current module\n core go install ./cmd/core # Install specific path\n core go install --no-cgo # Pure Go (no C dependencies)\n core go install -v # Verbose output", - "short": "Install Go binary", - "success": "OK" - }, - "lint": { - "flag": { - "fix": "Fix issues automatically" - }, - "long": "Run golangci-lint on the codebase.\n\nExamples:\n core go lint\n core go lint --fix", - "short": "Run golangci-lint" - }, - "long": "Go development tools with enhanced output and environment setup.\n\nCommands:\n test Run tests\n cov Run tests with coverage report\n fmt Format Go code\n lint Run golangci-lint\n install Install Go binary\n mod Module management (tidy, download, verify)\n work Workspace management", - "mod": { - "download": { - "short": "Download modules" - }, - "graph": { - "short": "Print dependency graph" - }, - "long": "Go module management commands.\n\nCommands:\n tidy Add missing and remove unused modules\n download Download modules to local cache\n verify Verify dependencies\n graph Print module dependency graph", - "short": "Module management", - "tidy": { - "short": "Tidy go.mod" - }, - "verify": { - "short": "Verify dependencies" - } - }, "short": "Go development tools", - "test": { - "all_passed": "PASS All tests passed", - "coverage": "Coverage", - "flag": { - "json": "Output JSON results", - "race": "Enable race detector", - "run": "Run only tests matching regexp", - "short": "Run only short tests" - }, - "long": "Run Go tests with coverage reporting.\n\nSets MACOSX_DEPLOYMENT_TARGET=26.0 to suppress linker warnings.\nFilters noisy output and provides colour-coded coverage.\n\nExamples:\n core go test\n core go test --coverage\n core go test --pkg ./pkg/crypt\n core go test --run TestHash", - "passed_failed": "{{.Passed}} passed, {{.Failed}} failed", - "some_failed": "FAIL Some tests failed" - }, - "work": { - "added": "Added {{.Module}}", - "error": { - "no_modules": "no go.mod files found" - }, - "init": { - "short": "Initialize workspace" - }, - "long": "Go workspace management commands.\n\nCommands:\n sync Sync go.work with modules\n init Initialize go.work\n use Add module to workspace", - "short": "Workspace management", - "sync": { - "short": "Sync workspace" - }, - "use": { - "short": "Add module to workspace" - } - } + "test.short": "Run Go tests", + "cov.short": "Run tests with coverage report", + "fmt.short": "Format Go code", + "lint.short": "Run golangci-lint", + "install.short": "Install Go binary", + "mod.short": "Module management", + "work.short": "Workspace management" }, "php": { - "analyse": { - "flag": { - "level": "PHPStan analysis level (0-9)", - "memory": "Memory limit (e.g., 2G)" - }, - "long": "Run PHPStan or Larastan static analysis.\n\nAuto-detects Larastan if installed, otherwise uses PHPStan.", - "no_analyser": "no static analyser found (install PHPStan: composer require phpstan/phpstan --dev)", - "short": "Run PHPStan static analysis" - }, - "audit": { - "all_secure": "All dependencies are secure", - "completed_errors": "audit completed with errors", - "error": "error", - "flag": { - "fix": "Auto-fix vulnerabilities (npm only)" - }, - "found_vulns": "Found {{.Count}} vulnerabilities across dependencies", - "long": "Check PHP and JavaScript dependencies for known vulnerabilities.\n\nRuns composer audit and npm audit (if package.json exists).", - "scanning": "Scanning dependencies for vulnerabilities", - "secure": "secure", - "short": "Security audit for dependencies", - "vulnerabilities": "{{.Count}} vulnerabilities" - }, - "build": { - "building_docker": "Building Docker image...", - "building_linuxkit": "Building LinuxKit image...", - "docker_run_with": "Run with:", - "extensions": "Extensions:", - "flag": { - "dockerfile": "Path to custom Dockerfile", - "format": "LinuxKit output format: qcow2 (default), iso, raw, vmdk", - "name": "Image name (default: project directory name)", - "no_cache": "Build without cache", - "output": "Output path for LinuxKit image", - "platform": "Target platform (e.g., linux/amd64, linux/arm64)", - "template": "LinuxKit template name (default: server-php)", - "type": "Build type: docker (default) or linuxkit" - }, - "format": "Format:", - "frontend": "Frontend:", - "laravel": "Laravel:", - "long": "Build a production-ready container image for the PHP project.\n\nBy default, builds a Docker image using FrankenPHP.\nUse --type linuxkit to build a LinuxKit VM image instead.", - "octane": "Octane:", - "php_version": "PHP Version:", - "platform": "Platform:", - "short": "Build Docker or LinuxKit image" - }, - "deploy": { - "deploying": "Deploying to {{.Environment}}...", - "flag": { - "force": "Force deployment even if no changes detected", - "staging": "Deploy to staging environment", - "wait": "Wait for deployment to complete" - }, - "long": "Deploy the PHP application to Coolify.\n\nRequires configuration in .env:\n COOLIFY_URL=https://coolify.example.com\n COOLIFY_TOKEN=your-api-token\n COOLIFY_APP_ID=production-app-id\n COOLIFY_STAGING_APP_ID=staging-app-id (optional)", - "short": "Deploy to Coolify", - "triggered": "Deployment triggered. Use 'core php deploy:status' to check progress.", - "warning_status": "Deployment ended with status: {{.Status}}" - }, - "deploy_list": { - "flag": { - "limit": "Number of deployments to list (default: 10)", - "staging": "List staging deployments" - }, - "long": "List recent deployments.", - "none_found": "No deployments found", - "recent": "Recent {{.Environment}} deployments:", - "short": "List recent deployments" - }, - "deploy_rollback": { - "flag": { - "id": "Specific deployment ID to rollback to", - "staging": "Rollback staging environment", - "wait": "Wait for rollback to complete" - }, - "long": "Rollback to a previous deployment.\n\nIf no deployment ID is specified, rolls back to the most recent\nsuccessful deployment.", - "rolling_back": "Rolling back {{.Environment}}...", - "short": "Rollback to previous deployment", - "triggered": "Rollback triggered. Use 'core php deploy:status' to check progress.", - "warning_status": "Rollback ended with status: {{.Status}}" - }, - "deploy_status": { - "flag": { - "id": "Specific deployment ID", - "staging": "Check staging environment" - }, - "long": "Show the status of a deployment.", - "short": "Show deployment status" - }, - "dev": { - "all_stopped": "All services stopped", - "detected_services": "Detected services:", - "flag": { - "domain": "Domain for SSL certificate (default: from APP_URL or localhost)", - "https": "Enable HTTPS with mkcert", - "no_horizon": "Skip Laravel Horizon", - "no_redis": "Skip Redis server", - "no_reverb": "Skip Laravel Reverb", - "no_vite": "Skip Vite dev server", - "port": "FrankenPHP port (default: 8000)" - }, - "long": "Starts all detected Laravel services.\n\nAuto-detects:\n - Vite (vite.config.js/ts)\n - Horizon (config/horizon.php)\n - Reverb (config/reverb.php)\n - Redis (from .env)", - "press_ctrl_c": "Press Ctrl+C to stop all services", - "services_started": "Services started:", - "short": "Start Laravel development environment", - "shutting_down": "Shutting down...", - "starting": "Starting {{.AppName}} development environment", - "stop_error": "Error stopping services: {{.Error}}" - }, - "error": { - "analysis_issues": "analysis found issues", - "audit_failed": "audit failed", - "critical_high_issues": "critical or high severity issues found", - "deploy_failed": "deployment failed", - "fmt_failed": "formatting failed", - "fmt_issues": "formatting issues found", - "infection_failed": "mutation testing failed", - "infection_not_installed": "infection not installed", - "mkcert_not_installed": "mkcert not installed", - "not_laravel": "not a Laravel project (missing artisan or laravel/framework)", - "not_laravel_short": "not a Laravel project", - "not_php": "not a PHP project (missing composer.json)", - "psalm_issues": "psalm found issues", - "psalm_not_installed": "psalm not installed", - "rector_failed": "rector failed", - "rector_not_installed": "rector not installed", - "rollback_failed": "rollback failed", - "security_failed": "security check failed", - "update_packages": "composer update failed", - "vulns_found": "vulnerabilities found" - }, - "fmt": { - "flag": { - "fix": "Auto-fix formatting issues" - }, - "formatting": "Formatting code with {{.Formatter}}", - "long": "Format PHP code using Laravel Pint.", - "no_formatter": "no formatter found (install Laravel Pint: composer require laravel/pint --dev)", - "no_issues": "No formatting issues found", - "short": "Format PHP code with Laravel Pint" - }, - "infection": { - "complete": "Mutation testing complete", - "flag": { - "filter": "Filter files by pattern", - "min_covered_msi": "Minimum covered mutation score (0-100, default: 70)", - "min_msi": "Minimum mutation score indicator (0-100, default: 50)", - "only_covered": "Only mutate covered code", - "threads": "Number of parallel threads (default: 4)" - }, - "install": "composer require --dev infection/infection", - "long": "Run Infection mutation testing to measure test suite quality.\n\nMutation testing modifies your code and checks if tests catch\nthe changes. High mutation score = high quality tests.\n\nWarning: This can be slow on large codebases.", - "not_found": "Infection not found", - "note": "This may take a while...", - "short": "Mutation testing for test quality" - }, - "label": { - "app_url": "App URL:", - "audit": "Audit:", - "branch": "Branch:", - "commit": "Commit:", - "completed": "Completed:", - "deploy": "Deploy:", - "duration": "Duration:", - "id": "ID:", - "infection": "Infection:", - "info": "Info:", - "message": "Message:", - "php": "PHP:", - "psalm": "Psalm:", - "qa": "QA:", - "rector": "Rector:", - "running": "Running:", - "security": "Security:", - "services": "Services:", - "setup": "Setup:", - "vite": "Vite:" - }, - "logs": { - "flag": { - "service": "Specific service (default: all)" - }, - "long": "Stream logs from Laravel services.\n\nServices: frankenphp, vite, horizon, reverb, redis", - "short": "View service logs" - }, - "long": "Manage Laravel development environment with FrankenPHP.\n\nServices orchestrated:\n - FrankenPHP/Octane (port 8000, HTTPS on 443)\n - Vite dev server (port 5173)\n - Laravel Horizon (queue workers)\n - Laravel Reverb (WebSocket, port 8080)\n - Redis (port 6379)", - "packages": { - "link": { - "done": "Packages linked. Run 'composer update' to install.", - "linking": "Linking packages...", - "long": "Link local PHP packages for development.\n\nAdds path repositories to composer.json with symlink enabled.\nThe package name is auto-detected from each path's composer.json.", - "short": "Link local packages" - }, - "list": { - "linked": "Linked packages:", - "long": "List all locally linked packages.\n\nShows package name, path, and version for each linked package.", - "none_found": "No linked packages found", - "short": "List linked packages", - "unknown": "(unknown)" - }, - "long": "Link and manage local PHP packages for development.\n\nSimilar to npm link, this adds path repositories to composer.json\nfor developing packages alongside your project.", - "short": "Manage local PHP packages", - "unlink": { - "done": "Packages unlinked. Run 'composer update' to remove.", - "long": "Remove linked packages from composer.json.\n\nRemoves path repositories by package name.", - "short": "Unlink packages", - "unlinking": "Unlinking packages..." - }, - "update": { - "done": "Packages updated", - "long": "Run composer update for linked packages.\n\nIf no packages specified, updates all packages.", - "short": "Update linked packages", - "updating": "Updating packages..." - } - }, - "psalm": { - "analysing": "Analysing code with Psalm", - "analysing_fixing": "Analysing and fixing code with Psalm", - "flag": { - "baseline": "Generate/update baseline file", - "level": "Error level (1=strictest, 8=most lenient)", - "show_info": "Show info-level issues" - }, - "install": "composer require --dev vimeo/psalm", - "long": "Run Psalm deep static analysis with Laravel plugin support.\n\nPsalm provides deeper type inference than PHPStan and catches\ndifferent classes of bugs. Both should be run for best coverage.", - "not_found": "Psalm not found", - "setup": "./vendor/bin/psalm --init", - "short": "Run Psalm static analysis" - }, - "qa": { - "all_passed": "All checks passed ({{.Passed}}/{{.Total}})", - "failed": "failed", - "fix_infection": "Improve test coverage for mutated code", - "fix_phpstan": "Fix PHPStan errors shown above", - "fix_psalm": "Fix Psalm errors shown above", - "fix_tests": "Fix failing tests shown above", - "flag": { - "full": "Run all stages including slow checks", - "quick": "Only run quick checks" - }, - "issue_analysis": "Static analysis errors", - "issue_mutation": "Mutation score below threshold", - "issue_rector": "Code improvements available", - "issue_style": "Code style issues found", - "issue_tests": "Test failures", - "issue_types": "Type errors found", - "issue_vulns": "vulnerabilities", - "long": "Run the complete quality assurance pipeline.\n\nStages:\n quick: Security audit, code style, PHPStan\n standard: Psalm, tests\n full: Rector dry-run, mutation testing (slow)", - "no_checks": "No checks available", - "passed": "passed", - "pipeline_failed": "QA pipeline failed", - "short": "Run full QA pipeline", - "some_failed": "Some checks failed ({{.Passed}}/{{.Total}} passed)", - "stage_prefix": "═══ ", - "stage_suffix": " STAGE ═══", - "to_fix": "To fix:" - }, - "rector": { - "analysing": "Analysing code with Rector", - "changes_suggested": "Changes suggested (use --fix to apply)", - "flag": { - "clear_cache": "Clear Rector cache before running", - "diff": "Show detailed diff of changes", - "fix": "Apply changes (default is dry-run)" - }, - "install": "composer require --dev rector/rector", - "long": "Run Rector for automated code improvements and PHP upgrades.\n\nRector can automatically upgrade PHP syntax, improve code quality,\nand apply framework-specific refactorings.", - "no_changes": "No changes needed", - "not_found": "Rector not found", - "refactoring": "Refactoring code with Rector", - "setup": "./vendor/bin/rector init", - "short": "Automated code refactoring" - }, - "security": { - "checks_suffix": " CHECKS:", - "critical": "Critical:", - "flag": { - "sarif": "Output in SARIF format (for GitHub Security)", - "severity": "Minimum severity (critical, high, medium, low)", - "url": "URL to check HTTP headers (optional)" - }, - "high": "High:", - "long": "Scan for security vulnerabilities in configuration and code.\n\nChecks environment config, file permissions, code patterns,\nand runs security-focused static analysis.", - "low": "Low:", - "medium": "Medium:", - "passed": "Passed:", - "short": "Security vulnerability scanning", - "summary": "Security scan complete" - }, - "serve": { - "flag": { - "container": "Container name", - "detach": "Run in detached mode", - "env_file": "Path to environment file", - "https_port": "HTTPS port (default: 443)", - "name": "Docker image name (required)", - "port": "HTTP port (default: 80)" - }, - "long": "Run a production PHP container.\n\nThis starts the built Docker image in production mode.", - "name_required": "--name is required: specify the Docker image name", - "ports": "Ports:", - "short": "Run production container", - "stopped": "Container stopped" - }, - "shell": { - "long": "Open an interactive shell in a running PHP container.", - "opening": "Opening shell in container {{.Container}}...", - "short": "Open shell in running container" - }, "short": "Laravel/PHP development tools", - "ssl": { - "cert_label": "Cert:", - "certs_created": "SSL certificates created", - "certs_exist": "Certificates already exist", - "flag": { - "domain": "Domain for certificate (default: from APP_URL)" - }, - "install_linux": "Linux: see https://github.com/FiloSottile/mkcert", - "install_macos": "macOS: brew install mkcert", - "key_label": "Key:", - "mkcert_not_installed": "mkcert is not installed", - "setting_up": "Setting up SSL for {{.Domain}}", - "short": "Setup SSL certificates with mkcert" - }, - "status": { - "detected_services": "Detected services:", - "error": "error: {{.Error}}", - "octane_server": "Octane server:", - "package_manager": "Package manager:", - "pid": "pid {{.PID}}", - "port": "port {{.Port}}", - "running": "running", - "short": "Show service status", - "ssl_certs": "SSL certificates:", - "ssl_installed": "installed", - "ssl_not_setup": "not setup", - "stopped": "stopped" - }, - "stop": { - "short": "Stop all Laravel services", - "stopping": "Stopping services..." - }, - "test": { - "failed": "Some tests failed", - "flag": { - "coverage": "Generate code coverage", - "filter": "Filter tests by name pattern", - "group": "Run only tests in specified group", - "parallel": "Run tests in parallel" - }, - "long": "Run PHP tests using PHPUnit or Pest.\n\nAuto-detects Pest if tests/Pest.php exists, otherwise uses PHPUnit.", - "short": "Run PHP tests (PHPUnit/Pest)" - } + "dev.short": "Start Laravel development environment", + "dev.press_ctrl_c": "Press Ctrl+C to stop all services", + "test.short": "Run PHP tests (PHPUnit/Pest)", + "fmt.short": "Format PHP code with Laravel Pint", + "analyse.short": "Run PHPStan static analysis", + "audit.short": "Security audit for dependencies", + "psalm.short": "Run Psalm static analysis", + "rector.short": "Automated code refactoring", + "infection.short": "Mutation testing for test quality", + "security.short": "Security vulnerability scanning", + "qa.short": "Run full QA pipeline", + "build.short": "Build Docker or LinuxKit image", + "deploy.short": "Deploy to Coolify", + "serve.short": "Run production container", + "ssl.short": "Setup SSL certificates with mkcert", + "packages.short": "Manage local PHP packages" }, "pkg": { - "error": { - "auth_failed": "authentication failed - try: unset GH_TOKEN && gh auth login", - "gh_not_authenticated": "gh CLI not authenticated. Run: gh auth login", - "invalid_repo_format": "invalid repo format: use org/repo (e.g., host-uk/core-php)", - "no_repos_yaml": "no repos.yaml found", - "no_repos_yaml_workspace": "no repos.yaml found - run from workspace directory", - "repo_required": "repository is required (e.g., core pkg install host-uk/core-php)", - "search_failed": "search failed: %s", - "specify_package": "specify package name or use --all" - }, - "install": { - "add_to_registry": "add to registry", - "added_to_registry": "added to repos.yaml", - "already_exists": "{{.Name}} already exists at {{.Path}}", - "flag": { - "add": "Add to repos.yaml registry", - "dir": "Target directory (default: ./packages or current dir)" - }, - "installed": "Installed {{.Name}}", - "installing_label": "Installing:", - "long": "Clones a repository from GitHub.\n\nExamples:\n core pkg install host-uk/core-php\n core pkg install host-uk/core-tenant --dir ./packages\n core pkg install host-uk/core-admin --add", - "short": "Clone a package from GitHub" - }, - "list": { - "install_missing": "Install missing:", - "long": "Lists all packages in the current workspace.\n\nReads from repos.yaml or scans for git repositories.\n\nExamples:\n core pkg list", - "no_packages": "No packages in registry.", - "short": "List installed packages", - "summary": "{{.Installed}} installed, {{.Missing}} missing", - "title": "Installed Packages" - }, - "long": "Manage host-uk/core-* packages and repositories.\n\nCommands:\n search Search GitHub for packages\n install Clone a package from GitHub\n list List installed packages\n update Update installed packages\n outdated Check for outdated packages", - "no_description": "(no description)", - "outdated": { - "all_up_to_date": "All packages up to date", - "commits_behind": "{{.Count}} commits behind", - "long": "Checks which packages have unpulled commits.\n\nExamples:\n core pkg outdated", - "outdated_label": "Outdated:", - "short": "Check for outdated packages", - "summary": "{{.Outdated}} outdated, {{.UpToDate}} up to date", - "update_with": "Update with:" - }, - "search": { - "cache_label": "Cache:", - "fetching_label": "Fetching:", - "flag": { - "limit": "Max results (default 50)", - "org": "GitHub organization (default: host-uk)", - "pattern": "Repo name pattern (* for wildcard)", - "refresh": "Bypass cache and fetch fresh data", - "type": "Filter by type in name (mod, services, plug, website)" - }, - "found_repos": "Found {{.Count}} repositories:", - "gh_token_unset": "Unset it with: unset GH_TOKEN", - "gh_token_warning": "GH_TOKEN env var is set - this may cause auth issues", - "long": "Searches GitHub for repositories matching a pattern.\nUses gh CLI for authenticated search. Results are cached for 1 hour.\n\nExamples:\n core pkg search # List all host-uk repos\n core pkg search --pattern 'core-*' # Search for core-* repos\n core pkg search --org mycompany # Search different org\n core pkg search --refresh # Bypass cache", - "no_repos_found": "No repositories found matching pattern.", - "private_label": "[private]", - "short": "Search GitHub for packages" - }, "short": "Package management for core-* repos", - "update": { - "flag": { - "all": "Update all packages" - }, - "long": "Pulls latest changes for installed packages.\n\nExamples:\n core pkg update core-php # Update specific package\n core pkg update --all # Update all packages", - "not_installed": "not installed", - "short": "Update installed packages", - "summary": "{{.Updated}} updated, {{.Skipped}} skipped, {{.Failed}} failed", - "update_label": "Update:", - "updating": "Updating {{.Count}} package(s)" - } + "install.short": "Clone a package from GitHub", + "list.short": "List installed packages", + "update.short": "Update installed packages", + "outdated.short": "Check for outdated packages", + "search.short": "Search GitHub for packages", + "error.invalid_repo_format": "invalid repo format: use org/repo (e.g., host-uk/core-php)" }, "sdk": { - "diff": { - "base_label": "Base:", - "breaking": "Breaking:", - "error": { - "base_required": "--base is required (version tag or file path)" - }, - "flag": { - "base": "Base spec (version tag or file)", - "spec": "Current spec file" - }, - "label": "SDK Diff:", - "long": "Check for breaking API changes between spec versions.\n\nCompares a base spec (version tag or file) against the current spec\nand reports any breaking changes that would affect API consumers.", - "short": "Check for breaking API changes" - }, - "label": { - "ok": "OK:", - "sdk": "SDK:" - }, - "long": "Tools for validating OpenAPI specs and checking API compatibility.\nTo generate SDKs, use: core build sdk\n\nCommands:\n diff Check for breaking API changes\n validate Validate OpenAPI spec syntax", "short": "SDK validation and API compatibility tools", - "validate": { - "long": "Validate OpenAPI spec syntax.\n\nChecks that the OpenAPI specification file is valid and well-formed.", - "short": "Validate OpenAPI spec", - "valid": "Spec is valid", - "validating": "Validating OpenAPI spec" - } + "diff.short": "Check for breaking API changes", + "validate.short": "Validate OpenAPI spec" }, "setup": { - "already_exist_count": "{{.Count}} already exist", - "already_exists": "already exists", - "bootstrap_mode": "Bootstrap mode (no repos.yaml found)", - "cancelled": "Cancelled.", - "cloned": "cloned", - "cloned_count": "{{.Count}} cloned", - "cloning_current_dir": "Cloning into current directory", - "complete": "Setup complete", - "creating_project_dir": "Creating project directory", - "done": "done", - "exist": "{{.Count}} exist", - "flag": { - "all": "Skip wizard, clone all packages (non-interactive)", - "build": "Run build after cloning", - "dry_run": "Show what would be cloned without cloning", - "name": "Project directory name for bootstrap mode", - "only": "Only clone repos of these types (comma-separated: foundation,module,product)", - "registry": "Path to repos.yaml (auto-detected if not specified)" - }, - "long": "Sets up a development workspace.\n\nREGISTRY MODE (repos.yaml exists):\n Clones all repositories defined in repos.yaml into packages/.\n Skips repos that already exist. Use --only to filter by type.\n\nBOOTSTRAP MODE (no repos.yaml):\n 1. Clones core-devops to set up the workspace\n 2. Presents an interactive wizard to select packages\n 3. Clones selected packages\n\nUse --all to skip the wizard and clone everything.", - "nothing_to_clone": "Nothing to clone.", - "org_label": "Org:", - "repo": { - "created": "Created", - "detected_type": "Detected project type", - "setting_up": "Setting up repository", - "would_create": "Would create" - }, "short": "Bootstrap workspace or clone packages from registry", - "to_clone": "{{.Count}} to clone", - "wizard": { - "confirm_cancel": "Cancel", - "confirm_clone": "Clone {{.Count}} packages to {{.Target}}?", - "confirm_yes": "Yes, clone", - "git_repo_title": "This directory is a git repository", - "option_package": "Create Package (clone repos into subdirectory)", - "option_setup": "Setup Working Directory", - "package_selection": "Package Selection", - "project_name_desc": "Enter the name for your new workspace directory", - "project_name_title": "Project directory name", - "select_packages": "Select packages to clone", - "selection_hint": "Use space to select/deselect, enter to confirm", - "what_to_do": "What would you like to do?" - }, - "would_clone": "Would clone", - "would_clone_list": "Would clone:", - "would_load_registry": "Would load registry from" + "complete": "Setup complete", + "bootstrap_mode": "Bootstrap mode (no repos.yaml found)", + "nothing_to_clone": "Nothing to clone.", + "wizard.select_packages": "Select packages to clone", + "wizard.what_to_do": "What would you like to do?" }, "test": { - "coverage_by_package": "Coverage by package:", - "error": { - "no_go_mod": "no go.mod found - run from a Go project directory" - }, - "failed_packages": "Failed packages:", - "flag": { - "json": "Output JSON for CI/agents", - "pkg": "Package pattern to test (default: ./...)", - "race": "Enable race detector (-race)", - "run": "Run only tests matching this regex (-run)", - "short": "Skip long-running tests (-short)", - "verbose": "Show test output as it runs (-v)" - }, - "label": { - "average": "Average" - }, - "long": "Runs Go tests with coverage reporting.\n\nSets MACOSX_DEPLOYMENT_TARGET=26.0 to suppress linker warnings on macOS.\n\nExamples:\n core test # Run all tests with coverage summary\n core test --verbose # Show test output as it runs\n core test --coverage # Show detailed per-package coverage\n core test --pkg ./pkg/... # Test specific packages\n core test --run TestName # Run specific test by name\n core test --short # Skip long-running tests\n core test --race # Enable race detector\n core test --json # Output JSON for CI/agents", - "tests_failed": "Tests failed" + "short": "Run Go tests with coverage" }, "vm": { - "error": { - "id_and_cmd_required": "container ID and command are required", - "id_required": "container ID is required", - "linuxkit_not_found": "linuxkit not found. Install with: brew install linuxkit (macOS) or see https://github.com/linuxkit/linuxkit", - "multiple_match": "multiple containers match '{{.ID}}', be more specific", - "no_image_found": "no image found after build", - "no_match": "no container found matching: {{.ID}}", - "template_required": "template name is required" - }, - "exec": { - "long": "Execute a command inside a running VM via SSH.\n\nExamples:\n core vm exec abc12345 ls -la\n core vm exec abc1 /bin/sh", - "short": "Execute a command in a VM" - }, - "hint": { - "stop": "Use 'core vm stop {{.ID}}' to stop", - "view_logs": "Use 'core vm logs {{.ID}}' to view output" - }, - "label": { - "building": "Building:", - "container_stopped": "Container stopped:", - "hypervisor": "Hypervisor:", - "name": "Name:", - "pid": "PID:" - }, - "logs": { - "long": "View logs from a VM.\n\nExamples:\n core vm logs abc12345\n core vm logs -f abc1", - "short": "View VM logs" - }, - "long": "Manage LinuxKit virtual machines.\n\nLinuxKit VMs are lightweight, immutable VMs built from YAML templates.\nThey run using qemu or hyperkit depending on your system.\n\nCommands:\n run Run a VM from image or template\n ps List running VMs\n stop Stop a running VM\n logs View VM logs\n exec Execute command in VM\n templates Manage LinuxKit templates", - "ps": { - "flag": { - "all": "Show all containers (including stopped)" - }, - "header": "ID\tNAME\tIMAGE\tSTATUS\tSTARTED\tPID", - "long": "Lists all VMs. By default, only shows running VMs.\n\nExamples:\n core vm ps\n core vm ps -a", - "no_containers": "No containers", - "no_running": "No running containers", - "short": "List running VMs" - }, - "run": { - "error": { - "image_required": "image path is required (or use --template)" - }, - "flag": { - "cpus": "Number of CPUs (default: 1)", - "detach": "Run in detached mode (background)", - "memory": "Memory in MB (default: 1024)", - "name": "Name for the container", - "ssh_port": "SSH port for exec commands (default: 2222)", - "template": "Run from a LinuxKit template (build + run)", - "var": "Template variable in KEY=VALUE format (can be repeated)" - }, - "long": "Runs a LinuxKit image as a VM using the available hypervisor.\n\nSupported image formats: .iso, .qcow2, .vmdk, .raw\n\nYou can also run from a template using --template, which will build and run\nthe image automatically. Use --var to set template variables.\n\nExamples:\n core vm run image.iso\n core vm run -d image.qcow2\n core vm run --name myvm --memory 2048 --cpus 4 image.iso\n core vm run --template core-dev --var SSH_KEY=\"ssh-rsa AAAA...\"\n core vm run --template server-php --var SSH_KEY=\"...\" --var DOMAIN=example.com", - "short": "Run a LinuxKit image or template" - }, "short": "LinuxKit VM management", - "stop": { - "long": "Stops a running VM by ID.\n\nExamples:\n core vm stop abc12345\n core vm stop abc1", - "short": "Stop a running VM", - "stopping": "Stopping:" - }, - "templates": { - "header": "NAME\tDESCRIPTION", - "hint": { - "run": "Run from template:", - "show": "Show template:", - "vars": "Show variables:" - }, - "long": "Manage LinuxKit YAML templates for building VMs.\n\nTemplates provide pre-configured LinuxKit configurations for common use cases.\nThey support variable substitution with ${VAR} and ${VAR:-default} syntax.\n\nExamples:\n core vm templates # List available templates\n core vm templates show core-dev # Show template content\n core vm templates vars server-php # Show template variables", - "no_templates": "No templates available.", - "short": "Manage LinuxKit templates", - "show": { - "long": "Display the content of a LinuxKit template.\n\nExamples:\n core templates show core-dev\n core templates show server-php", - "short": "Display template content" - }, - "title": "Available LinuxKit Templates", - "vars": { - "long": "Display all variables used in a template.\n\nShows required variables (no default) and optional variables (with defaults).\n\nExamples:\n core templates vars core-dev\n core templates vars server-php", - "none": "No variables in this template.", - "optional": "Optional Variables (with defaults):", - "required": "Required Variables (no default):", - "short": "Show template variables" - } - } + "run.short": "Run a LinuxKit image or template", + "ps.short": "List running VMs", + "stop.short": "Stop a running VM", + "logs.short": "View VM logs", + "exec.short": "Execute a command in a VM", + "templates.short": "Manage LinuxKit templates" } }, "error": { "gh_not_found": "'gh' CLI not found. Install from https://cli.github.com/", - "invalid": "Invalid: {{.Item}}", - "network": "Network error: {{.Message}}", - "not_found": "Not found: {{.Item}}", - "permission": "Permission denied: {{.Item}}", "registry_not_found": "No repos.yaml found", - "repo_not_found": "Repository '{{.Name}}' not found", - "timeout": "Operation timed out" - }, - "label": { - "author": "Author", - "branch": "Branch", - "commit": "Commit", - "date": "Date", - "duration": "Duration", - "message": "Message", - "package": "Package", - "registry": "Registry", - "scanning": "Scanning", - "status": "Status", - "total": "Total" + "repo_not_found": "Repository '{{.Name}}' not found" }, "lang": { "de": "German", diff --git a/pkg/i18n/locales/en_US.json b/pkg/i18n/locales/en_US.json index 1e81cae..04e4683 100644 --- a/pkg/i18n/locales/en_US.json +++ b/pkg/i18n/locales/en_US.json @@ -1,1205 +1,10 @@ { - "cli.success": "Success", - "cli.error": "Error", - "cli.warning": "Warning", - "cli.info": "Info", - "cli.done": "Done", - "cli.failed": "Failed", - "cli.pass": "PASS", - "cli.fail": "FAIL", - "cli.ok": "OK", - "cli.skip": "Skipped", - "cli.pending": "Pending", - "cli.running": "Running", - "cli.completed": "Completed", - "cli.cancelled": "Cancelled", - "cli.aborted": "Aborted", - "cli.confirm.yes": "Yes", - "cli.confirm.no": "No", - "cli.confirm.proceed": "Proceed?", - "cli.confirm.continue": "Continue?", - "cli.confirm.abort": "Operation aborted", - "cli.progress.checking": "Checking", - "cli.progress.fetching": "Fetching", - "cli.progress.loading": "Loading", - "cli.progress.processing": "Processing", - "cli.progress.installing": "Installing", - "cli.progress.building": "Building", - "cli.progress.deploying": "Deploying", - "cli.progress.testing": "Testing", - "cli.time.just_now": "just now", - "cli.time.seconds_ago": "{{.Count}} seconds ago", - "cli.time.minute_ago": "1 minute ago", - "cli.time.minutes_ago": "{{.Count}} minutes ago", - "cli.time.hour_ago": "1 hour ago", - "cli.time.hours_ago": "{{.Count}} hours ago", - "cli.time.day_ago": "1 day ago", - "cli.time.days_ago": "{{.Count}} days ago", - "cli.time.week_ago": "1 week ago", - "cli.time.weeks_ago": "{{.Count}} weeks ago", - "cli.count.items": { - "one": "{{.Count}} item", - "other": "{{.Count}} items" - }, - "cli.count.files": { - "one": "{{.Count}} file", - "other": "{{.Count}} files" - }, - "cli.count.repos": { - "one": "{{.Count}} repo", - "other": "{{.Count}} repos" - }, - "cli.count.commits": { - "one": "{{.Count}} commit", - "other": "{{.Count}} commits" - }, - "cmd.dev.short": "Multi-repo development workflow", - "cmd.dev.long": "Manage multiple git repositories and GitHub integration.\n\nUses repos.yaml to discover repositories. Falls back to scanning\nthe current directory if no registry is found.\n\nGit Operations:\n work Combined status -> commit -> push workflow\n health Quick repo health summary\n commit Claude-assisted commit messages\n push Push repos with unpushed commits\n pull Pull repos behind remote\n\nGitHub Integration (requires gh CLI):\n issues List open issues across repos\n reviews List PRs awaiting review\n ci Check GitHub Actions status\n impact Analyze dependency impact\n\nDev Environment:\n install Download dev environment image\n boot Start dev environment VM\n stop Stop dev environment VM\n shell Open shell in dev VM\n status Check dev VM status", - "cmd.dev.work.short": "Multi-repo git operations", - "cmd.dev.work.long": "Manage git status, commits, and pushes across multiple repositories.\n\nReads repos.yaml to discover repositories and their relationships.\nShows status, optionally commits with Claude, and pushes changes.", - "cmd.dev.work.flag.status": "Show status only, don't push", - "cmd.dev.work.flag.commit": "Use Claude to commit dirty repos before pushing", - "cmd.dev.work.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.dev.health.short": "Quick health check across all repos", - "cmd.dev.health.long": "Shows a summary of repository health:\ntotal repos, dirty repos, unpushed commits, etc.", - "cmd.dev.health.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.dev.health.flag.verbose": "Show detailed breakdown", - "cmd.dev.commit.short": "Claude-assisted commits across repos", - "cmd.dev.commit.long": "Uses Claude to create commits for dirty repos.\nShows uncommitted changes and invokes Claude to generate commit messages.", - "cmd.dev.commit.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.dev.commit.flag.all": "Commit all dirty repos without prompting", - "cmd.dev.push.short": "Push commits across all repos", - "cmd.dev.push.long": "Pushes unpushed commits for all repos.\nShows repos with commits to push and confirms before pushing.", - "cmd.dev.push.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.dev.push.flag.force": "Skip confirmation prompt", - "cmd.dev.pull.short": "Pull updates across all repos", - "cmd.dev.pull.long": "Pulls updates for all repos.\nBy default only pulls repos that are behind. Use --all to pull all repos.", - "cmd.dev.pull.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.dev.pull.flag.all": "Pull all repos, not just those behind", - "cmd.dev.issues.short": "List open issues across all repos", - "cmd.dev.issues.long": "Fetches open issues from GitHub for all repos in the registry.\nRequires the 'gh' CLI to be installed and authenticated.", - "cmd.dev.issues.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.dev.issues.flag.limit": "Max issues per repo", - "cmd.dev.issues.flag.assignee": "Filter by assignee (use @me for yourself)", - "cmd.dev.reviews.short": "List PRs needing review across all repos", - "cmd.dev.reviews.long": "Fetches open PRs from GitHub for all repos in the registry.\nShows review status (approved, changes requested, pending).\nRequires the 'gh' CLI to be installed and authenticated.", - "cmd.dev.reviews.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.dev.reviews.flag.author": "Filter by PR author", - "cmd.dev.reviews.flag.all": "Show all PRs including drafts", - "cmd.dev.ci.short": "Check CI status across all repos", - "cmd.dev.ci.long": "Fetches GitHub Actions workflow status for all repos.\nShows latest run status for each repo.\nRequires the 'gh' CLI to be installed and authenticated.", - "cmd.dev.ci.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.dev.ci.flag.branch": "Filter by branch", - "cmd.dev.ci.flag.failed": "Show only failed runs", - "cmd.dev.impact.short": "Show impact of changing a repo", - "cmd.dev.impact.long": "Analyzes the dependency graph to show which repos\nwould be affected by changes to the specified repo.", - "cmd.dev.impact.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.dev.api.short": "Tools for managing service APIs", - "cmd.dev.sync.short": "Synchronizes public service APIs with internal implementations", - "cmd.dev.sync.long": "This command scans the 'pkg' directory for services and ensures that the\ntop-level public API for each service is in sync with its internal implementation.\nIt automatically generates the necessary Go files with type aliases.", - "cmd.dev.vm.install.short": "Download and install the dev environment image", - "cmd.dev.vm.install.long": "Downloads the platform-specific dev environment image.\n\nThe image includes Go, PHP, Node.js, Python, Docker, and Claude CLI.\nDownloads are cached at ~/.core/images/\n\nExamples:\n core dev install", - "cmd.dev.vm.boot.short": "Start the dev environment", - "cmd.dev.vm.boot.long": "Boots the dev environment VM.\n\nExamples:\n core dev boot\n core dev boot --memory 8192 --cpus 4\n core dev boot --fresh", - "cmd.dev.vm.boot.flag.memory": "Memory in MB (default: 4096)", - "cmd.dev.vm.boot.flag.cpus": "Number of CPUs (default: 2)", - "cmd.dev.vm.boot.flag.fresh": "Stop existing and start fresh", - "cmd.dev.vm.stop.short": "Stop the dev environment", - "cmd.dev.vm.stop.long": "Stops the running dev environment VM.\n\nExamples:\n core dev stop", - "cmd.dev.vm.status.short": "Show dev environment status", - "cmd.dev.vm.status.long": "Shows the current status of the dev environment.\n\nExamples:\n core dev vm-status", - "cmd.dev.vm.shell.short": "Connect to the dev environment", - "cmd.dev.vm.shell.long": "Opens an interactive shell in the dev environment.\n\nUses SSH by default, or serial console with --console.\n\nExamples:\n core dev shell\n core dev shell --console\n core dev shell -- ls -la", - "cmd.dev.vm.shell.flag.console": "Use serial console instead of SSH", - "cmd.dev.vm.serve.short": "Mount project and start dev server", - "cmd.dev.vm.serve.long": "Mounts the current project into the dev environment and starts a dev server.\n\nAuto-detects the appropriate serve command based on project files.\n\nExamples:\n core dev serve\n core dev serve --port 3000\n core dev serve --path public", - "cmd.dev.vm.serve.flag.port": "Port to serve on (default: 8000)", - "cmd.dev.vm.serve.flag.path": "Subdirectory to serve", - "cmd.dev.vm.test.short": "Run tests in the dev environment", - "cmd.dev.vm.test.long": "Runs tests in the dev environment.\n\nAuto-detects the test command based on project files, or uses .core/test.yaml.\n\nExamples:\n core dev test\n core dev test --name integration\n core dev test -- go test -v ./...", - "cmd.dev.vm.test.flag.name": "Run named test command from .core/test.yaml", - "cmd.dev.vm.claude.short": "Start sandboxed Claude session", - "cmd.dev.vm.claude.long": "Starts a Claude Code session inside the dev environment sandbox.\n\nProvides isolation while forwarding selected credentials.\nAuto-boots the dev environment if not running.\n\nAuth options (default: all):\n gh - GitHub CLI auth\n anthropic - Anthropic API key\n ssh - SSH agent forwarding\n git - Git config (name, email)\n\nExamples:\n core dev claude\n core dev claude --model opus\n core dev claude --auth gh,anthropic\n core dev claude --no-auth", - "cmd.dev.vm.claude.flag.no_auth": "Don't forward any auth credentials", - "cmd.dev.vm.claude.flag.model": "Model to use (opus, sonnet)", - "cmd.dev.vm.claude.flag.auth": "Selective auth forwarding (gh,anthropic,ssh,git)", - "cmd.dev.vm.update.short": "Check for and apply updates", - "cmd.dev.vm.update.long": "Checks for dev environment updates and optionally applies them.\n\nExamples:\n core dev update\n core dev update --apply", - "cmd.dev.vm.update.flag.apply": "Download and apply the update", - "cmd.dev.status.dirty": "dirty", - "cmd.dev.status.clean": "clean", - "cmd.dev.status.ahead": "ahead", - "cmd.dev.status.behind": "behind", - "cmd.dev.status.synced": "synced", - "cmd.dev.status.diverged": "diverged", - "cmd.dev.status.conflict": "conflict", - "cmd.dev.push.confirm": "Push all?", - "cmd.dev.push.success": "Pushed successfully", - "cmd.dev.push.failed": "Push failed", - "cmd.dev.push.nothing": "Nothing to push", - "cmd.dev.commit.committing": "Committing dirty repos with Claude...", - "cmd.dev.commit.success": "Committed successfully", - "cmd.dev.commit.failed": "Commit failed", - "cmd.dev.registry_label": "Registry:", - "cmd.dev.scanning_label": "Scanning:", - "cmd.dev.no_git_repos": "No git repositories found.", - "cmd.dev.no_changes": "No uncommitted changes found.", - "cmd.dev.repos_with_changes": "{{.Count}} repo(s) with uncommitted changes:", - "cmd.dev.modified": "{{.Count}} modified", - "cmd.dev.untracked": "{{.Count}} untracked", - "cmd.dev.staged": "{{.Count}} staged", - "cmd.dev.confirm_claude_commit": "Have Claude commit these repos?", - "cmd.dev.committing": "Committing", - "cmd.dev.committed": "committed", - "cmd.dev.done_succeeded": "Done: {{.Count}} succeeded", - "cmd.dev.count_failed": "{{.Count}} failed", - "cmd.dev.push.all_up_to_date": "All repos up to date. Nothing to push.", - "cmd.dev.push.repos_with_unpushed": "{{.Count}} repo(s) with unpushed commits:", - "cmd.dev.push.commits_count": "{{.Count}} commit(s)", - "cmd.dev.push.confirm_push": "Push {{.Commits}} commit(s) to {{.Repos}} repo(s)?", - "cmd.dev.push.done_pushed": "Done: {{.Count}} pushed", - "cmd.dev.pull.all_up_to_date": "All repos up to date. Nothing to pull.", - "cmd.dev.pull.pulling_repos": "Pulling {{.Count}} repo(s):", - "cmd.dev.pull.repos_behind": "{{.Count}} repo(s) behind upstream:", - "cmd.dev.pull.commits_behind": "{{.Count}} commit(s) behind", - "cmd.dev.pull.pulling": "Pulling", - "cmd.dev.pull.done_pulled": "Done: {{.Count}} pulled", - "cmd.dev.health.dirty_label": "Dirty:", - "cmd.dev.health.ahead_label": "Ahead:", - "cmd.dev.health.behind_label": "Behind:", - "cmd.dev.health.errors_label": "Errors:", - "cmd.dev.health.repos": "repos", - "cmd.dev.health.dirty": "dirty", - "cmd.dev.health.to_push": "to push", - "cmd.dev.health.synced": "synced", - "cmd.dev.health.up_to_date": "up to date", - "cmd.dev.health.to_pull": "to pull", - "cmd.dev.health.errors": "errors", - "cmd.dev.health.more": "+{{.Count}} more", - "cmd.dev.work.table_repo": "Repo", - "cmd.dev.work.table_modified": "Modified", - "cmd.dev.work.table_untracked": "Untracked", - "cmd.dev.work.table_staged": "Staged", - "cmd.dev.work.table_ahead": "Ahead", - "cmd.dev.work.error_prefix": "error:", - "cmd.dev.work.use_commit_flag": "Use --commit to have Claude create commits", - "cmd.dev.work.all_up_to_date": "All repos up to date.", - "cmd.dev.work.repos_with_unpushed": "{{.Count}} repo(s) with unpushed commits:", - "cmd.dev.work.commits_count": "{{.Count}} commit(s)", - "cmd.dev.issues.no_issues": "No open issues found.", - "cmd.dev.issues.open_issues": "{{.Count}} open issue(s):", - "cmd.dev.issues.error_label": "Error:", - "cmd.dev.reviews.no_prs": "No open PRs found.", - "cmd.dev.reviews.open_prs": "{{.Count}} open PR(s)", - "cmd.dev.reviews.pending": "{{.Count}} pending", - "cmd.dev.reviews.approved": "{{.Count}} approved", - "cmd.dev.reviews.changes_requested": "{{.Count}} changes requested", - "cmd.dev.reviews.status_approved": "v approved", - "cmd.dev.reviews.status_changes": "* changes requested", - "cmd.dev.reviews.status_pending": "o pending review", - "cmd.dev.reviews.draft": "[draft]", - "cmd.dev.ci.repos_checked": "{{.Count}} repos checked", - "cmd.dev.ci.passing": "{{.Count}} passing", - "cmd.dev.ci.failing": "{{.Count}} failing", - "cmd.dev.ci.pending": "{{.Count}} pending", - "cmd.dev.ci.no_ci": "{{.Count}} no CI", - "cmd.dev.ci.error_label": "Error:", - "cmd.dev.impact.analysis_for": "Impact analysis for", - "cmd.dev.impact.no_dependents": "No repos depend on {{.Name}}", - "cmd.dev.impact.direct_dependents": "{{.Count}} direct dependent(s):", - "cmd.dev.impact.transitive_dependents": "{{.Count}} transitive dependent(s):", - "cmd.dev.impact.summary": "Summary:", - "cmd.dev.impact.changes_affect": "Changes to {{.Repo}} affect {{.Affected}}/{{.Total}} repos", - "cmd.dev.impact.requires_registry": "impact analysis requires repos.yaml with dependency information", - "cmd.dev.sync.success": "Public APIs synchronized successfully.", - "cmd.dev.sync.error_prefix": "Error:", - "cmd.dev.vm.already_installed": "Dev environment already installed", - "cmd.dev.vm.check_updates": "Use {{.Command}} to check for updates", - "cmd.dev.vm.image_label": "Image:", - "cmd.dev.vm.downloading": "Downloading dev environment...", - "cmd.dev.vm.progress_label": "Progress:", - "cmd.dev.vm.installed_in": "Installed in {{.Duration}}", - "cmd.dev.vm.start_with": "Start with: {{.Command}}", - "cmd.dev.vm.not_installed": "dev environment not installed (run 'core dev install' first)", - "cmd.dev.vm.config_label": "Config:", - "cmd.dev.vm.config_value": "{{.Memory}}MB, {{.CPUs}} CPUs", - "cmd.dev.vm.booting": "Booting dev environment...", - "cmd.dev.vm.running": "Dev environment running", - "cmd.dev.vm.connect_with": "Connect with: {{.Command}}", - "cmd.dev.vm.ssh_port": "SSH port:", - "cmd.dev.vm.not_running": "Dev environment is not running", - "cmd.dev.vm.stopping": "Stopping dev environment...", - "cmd.dev.vm.stopped": "Stopped", - "cmd.dev.vm.status_title": "Dev Environment Status", - "cmd.dev.vm.installed_label": "Installed:", - "cmd.dev.vm.installed_yes": "Yes", - "cmd.dev.vm.installed_no": "No", - "cmd.dev.vm.version_label": "Version:", - "cmd.dev.vm.install_with": "Install with: {{.Command}}", - "cmd.dev.vm.status_label": "Status:", - "cmd.dev.vm.status_running": "Running", - "cmd.dev.vm.status_stopped": "Stopped", - "cmd.dev.vm.container_label": "Container:", - "cmd.dev.vm.memory_label": "Memory:", - "cmd.dev.vm.cpus_label": "CPUs:", - "cmd.dev.vm.uptime_label": "Uptime:", - "cmd.dev.vm.checking_updates": "Checking for updates...", - "cmd.dev.vm.current_label": "Current:", - "cmd.dev.vm.latest_label": "Latest:", - "cmd.dev.vm.up_to_date": "Already up to date", - "cmd.dev.vm.update_available": "Update available", - "cmd.dev.vm.run_to_update": "Run {{.Command}} to update", - "cmd.dev.vm.stopping_current": "Stopping current instance...", - "cmd.dev.vm.downloading_update": "Downloading update...", - "cmd.dev.vm.updated_in": "Updated in {{.Duration}}", - "cmd.php.short": "Laravel/PHP development tools", - "cmd.php.long": "Manage Laravel development environment with FrankenPHP.\n\nServices orchestrated:\n - FrankenPHP/Octane (port 8000, HTTPS on 443)\n - Vite dev server (port 5173)\n - Laravel Horizon (queue workers)\n - Laravel Reverb (WebSocket, port 8080)\n - Redis (port 6379)", - "cmd.php.dev.short": "Start Laravel development environment", - "cmd.php.dev.long": "Starts all detected Laravel services.\n\nAuto-detects:\n - Vite (vite.config.js/ts)\n - Horizon (config/horizon.php)\n - Reverb (config/reverb.php)\n - Redis (from .env)", - "cmd.php.dev.starting": "Starting {{.AppName}} development environment", - "cmd.php.dev.detected_services": "Detected services:", - "cmd.php.dev.services_started": "Services started:", - "cmd.php.dev.shutting_down": "Shutting down...", - "cmd.php.dev.all_stopped": "All services stopped", - "cmd.php.dev.press_ctrl_c": "Press Ctrl+C to stop all services", - "cmd.php.dev.logs_failed": "Failed to get logs: {{.Error}}", - "cmd.php.dev.stop_error": "Error stopping services: {{.Error}}", - "cmd.php.logs.short": "View service logs", - "cmd.php.logs.long": "Stream logs from Laravel services.\n\nServices: frankenphp, vite, horizon, reverb, redis", - "cmd.php.stop.short": "Stop all Laravel services", - "cmd.php.stop.stopping": "Stopping services...", - "cmd.php.status.short": "Show service status", - "cmd.php.status.project": "Project:", - "cmd.php.status.detected_services": "Detected services:", - "cmd.php.status.package_manager": "Package manager:", - "cmd.php.status.octane_server": "Octane server:", - "cmd.php.status.ssl_certs": "SSL certificates:", - "cmd.php.status.ssl_installed": "installed", - "cmd.php.status.ssl_not_setup": "not setup", - "cmd.php.status.running": "running", - "cmd.php.status.stopped": "stopped", - "cmd.php.status.error": "error: {{.Error}}", - "cmd.php.status.port": "port {{.Port}}", - "cmd.php.status.pid": "pid {{.PID}}", - "cmd.php.ssl.short": "Setup SSL certificates with mkcert", - "cmd.php.ssl.setting_up": "Setting up SSL for {{.Domain}}", - "cmd.php.ssl.mkcert_not_installed": "mkcert is not installed", - "cmd.php.ssl.install_with": "Install with:", - "cmd.php.ssl.install_macos": "macOS: brew install mkcert", - "cmd.php.ssl.install_linux": "Linux: see https://github.com/FiloSottile/mkcert", - "cmd.php.ssl.certs_exist": "Certificates already exist", - "cmd.php.ssl.certs_created": "SSL certificates created", - "cmd.php.ssl.cert_label": "Cert:", - "cmd.php.ssl.key_label": "Key:", - "cmd.php.ssl.flag.domain": "Domain for certificate (default: from APP_URL)", - "cmd.php.dev.flag.no_vite": "Skip Vite dev server", - "cmd.php.dev.flag.no_horizon": "Skip Laravel Horizon", - "cmd.php.dev.flag.no_reverb": "Skip Laravel Reverb", - "cmd.php.dev.flag.no_redis": "Skip Redis server", - "cmd.php.dev.flag.https": "Enable HTTPS with mkcert", - "cmd.php.dev.flag.domain": "Domain for SSL certificate (default: from APP_URL or localhost)", - "cmd.php.dev.flag.port": "FrankenPHP port (default: 8000)", - "cmd.php.logs.flag.follow": "Follow log output", - "cmd.php.logs.flag.service": "Specific service (default: all)", - "cmd.php.build.short": "Build Docker or LinuxKit image", - "cmd.php.build.long": "Build a production-ready container image for the PHP project.\n\nBy default, builds a Docker image using FrankenPHP.\nUse --type linuxkit to build a LinuxKit VM image instead.", - "cmd.php.build.building_docker": "Building Docker image...", - "cmd.php.build.building_linuxkit": "Building LinuxKit image...", - "cmd.php.build.php_version": "PHP Version:", - "cmd.php.build.laravel": "Laravel:", - "cmd.php.build.octane": "Octane:", - "cmd.php.build.frontend": "Frontend:", - "cmd.php.build.extensions": "Extensions:", - "cmd.php.build.image": "Image:", - "cmd.php.build.platform": "Platform:", - "cmd.php.build.template": "Template:", - "cmd.php.build.format": "Format:", - "cmd.php.build.docker_success": "Docker image built successfully", - "cmd.php.build.docker_run_with": "Run with:", - "cmd.php.build.linuxkit_success": "LinuxKit image built successfully", - "cmd.php.build.flag.type": "Build type: docker (default) or linuxkit", - "cmd.php.build.flag.name": "Image name (default: project directory name)", - "cmd.php.build.flag.tag": "Image tag (default: latest)", - "cmd.php.build.flag.platform": "Target platform (e.g., linux/amd64, linux/arm64)", - "cmd.php.build.flag.dockerfile": "Path to custom Dockerfile", - "cmd.php.build.flag.output": "Output path for LinuxKit image", - "cmd.php.build.flag.format": "LinuxKit output format: qcow2 (default), iso, raw, vmdk", - "cmd.php.build.flag.template": "LinuxKit template name (default: server-php)", - "cmd.php.build.flag.no_cache": "Build without cache", - "cmd.php.serve.short": "Run production container", - "cmd.php.serve.long": "Run a production PHP container.\n\nThis starts the built Docker image in production mode.", - "cmd.php.serve.running": "Running production container...", - "cmd.php.serve.ports": "Ports:", - "cmd.php.serve.stopped": "Container stopped", - "cmd.php.serve.name_required": "--name is required: specify the Docker image name", - "cmd.php.serve.flag.name": "Docker image name (required)", - "cmd.php.serve.flag.tag": "Image tag (default: latest)", - "cmd.php.serve.flag.container": "Container name", - "cmd.php.serve.flag.port": "HTTP port (default: 80)", - "cmd.php.serve.flag.https_port": "HTTPS port (default: 443)", - "cmd.php.serve.flag.detach": "Run in detached mode", - "cmd.php.serve.flag.env_file": "Path to environment file", - "cmd.php.shell.short": "Open shell in running container", - "cmd.php.shell.long": "Open an interactive shell in a running PHP container.", - "cmd.php.shell.opening": "Opening shell in container {{.Container}}...", - "cmd.php.packages.short": "Manage local PHP packages", - "cmd.php.packages.long": "Link and manage local PHP packages for development.\n\nSimilar to npm link, this adds path repositories to composer.json\nfor developing packages alongside your project.", - "cmd.php.packages.link.short": "Link local packages", - "cmd.php.packages.link.long": "Link local PHP packages for development.\n\nAdds path repositories to composer.json with symlink enabled.\nThe package name is auto-detected from each path's composer.json.", - "cmd.php.packages.link.linking": "Linking packages...", - "cmd.php.packages.link.done": "Packages linked. Run 'composer update' to install.", - "cmd.php.packages.unlink.short": "Unlink packages", - "cmd.php.packages.unlink.long": "Remove linked packages from composer.json.\n\nRemoves path repositories by package name.", - "cmd.php.packages.unlink.unlinking": "Unlinking packages...", - "cmd.php.packages.unlink.done": "Packages unlinked. Run 'composer update' to remove.", - "cmd.php.packages.update.short": "Update linked packages", - "cmd.php.packages.update.long": "Run composer update for linked packages.\n\nIf no packages specified, updates all packages.", - "cmd.php.packages.update.updating": "Updating packages...", - "cmd.php.packages.update.done": "Packages updated", - "cmd.php.packages.list.short": "List linked packages", - "cmd.php.packages.list.long": "List all locally linked packages.\n\nShows package name, path, and version for each linked package.", - "cmd.php.packages.list.none_found": "No linked packages found", - "cmd.php.packages.list.linked": "Linked packages:", - "cmd.php.packages.list.unknown": "(unknown)", - "cmd.php.packages.list.path": "Path:", - "cmd.php.packages.list.version": "Version:", - "cmd.php.test.short": "Run PHP tests (PHPUnit/Pest)", - "cmd.php.test.long": "Run PHP tests using PHPUnit or Pest.\n\nAuto-detects Pest if tests/Pest.php exists, otherwise uses PHPUnit.", - "cmd.php.test.running": "Running tests with {{.Runner}}", - "cmd.php.test.passed": "All tests passed", - "cmd.php.test.failed": "Some tests failed", - "cmd.php.test.flag.parallel": "Run tests in parallel", - "cmd.php.test.flag.coverage": "Generate code coverage", - "cmd.php.test.flag.filter": "Filter tests by name pattern", - "cmd.php.test.flag.group": "Run only tests in specified group", - "cmd.php.fmt.short": "Format PHP code with Laravel Pint", - "cmd.php.fmt.long": "Format PHP code using Laravel Pint.", - "cmd.php.fmt.checking": "Checking code with {{.Formatter}}", - "cmd.php.fmt.formatting": "Formatting code with {{.Formatter}}", - "cmd.php.fmt.no_formatter": "no formatter found (install Laravel Pint: composer require laravel/pint --dev)", - "cmd.php.fmt.success": "Code formatted successfully", - "cmd.php.fmt.no_issues": "No formatting issues found", - "cmd.php.fmt.flag.fix": "Auto-fix formatting issues", - "cmd.php.fmt.flag.diff": "Show diff of changes", - "cmd.php.analyse.short": "Run PHPStan static analysis", - "cmd.php.analyse.long": "Run PHPStan or Larastan static analysis.\n\nAuto-detects Larastan if installed, otherwise uses PHPStan.", - "cmd.php.analyse.running": "Running static analysis with {{.Analyzer}}", - "cmd.php.analyse.no_analyser": "no static analyzer found (install PHPStan: composer require phpstan/phpstan --dev)", - "cmd.php.analyse.no_issues": "No issues found", - "cmd.php.analyse.flag.level": "PHPStan analysis level (0-9)", - "cmd.php.analyse.flag.memory": "Memory limit (e.g., 2G)", - "cmd.php.psalm.short": "Run Psalm static analysis", - "cmd.php.psalm.long": "Run Psalm deep static analysis with Laravel plugin support.\n\nPsalm provides deeper type inference than PHPStan and catches\ndifferent classes of bugs. Both should be run for best coverage.", - "cmd.php.psalm.not_found": "Psalm not found", - "cmd.php.psalm.install": "composer require --dev vimeo/psalm", - "cmd.php.psalm.setup": "./vendor/bin/psalm --init", - "cmd.php.psalm.analysing": "Analysing code with Psalm", - "cmd.php.psalm.analysing_fixing": "Analysing and fixing code with Psalm", - "cmd.php.psalm.no_issues": "No issues found", - "cmd.php.psalm.flag.level": "Error level (1=strictest, 8=most lenient)", - "cmd.php.psalm.flag.fix": "Auto-fix issues where possible", - "cmd.php.psalm.flag.baseline": "Generate/update baseline file", - "cmd.php.psalm.flag.show_info": "Show info-level issues", - "cmd.php.audit.short": "Security audit for dependencies", - "cmd.php.audit.long": "Check PHP and JavaScript dependencies for known vulnerabilities.\n\nRuns composer audit and npm audit (if package.json exists).", - "cmd.php.audit.scanning": "Scanning dependencies for vulnerabilities", - "cmd.php.audit.secure": "secure", - "cmd.php.audit.error": "error", - "cmd.php.audit.vulnerabilities": "{{.Count}} vulnerabilities", - "cmd.php.audit.found_vulns": "Found {{.Count}} vulnerabilities across dependencies", - "cmd.php.audit.fix_hint": "composer update && npm update", - "cmd.php.audit.completed_errors": "audit completed with errors", - "cmd.php.audit.all_secure": "All dependencies are secure", - "cmd.php.audit.flag.json": "Output in JSON format", - "cmd.php.audit.flag.fix": "Auto-fix vulnerabilities (npm only)", - "cmd.php.security.short": "Security vulnerability scanning", - "cmd.php.security.long": "Scan for security vulnerabilities in configuration and code.\n\nChecks environment config, file permissions, code patterns,\nand runs security-focused static analysis.", - "cmd.php.security.running": "Running security checks", - "cmd.php.security.checks_suffix": " CHECKS:", - "cmd.php.security.summary": "Security scan complete", - "cmd.php.security.passed": "Passed:", - "cmd.php.security.critical": "Critical:", - "cmd.php.security.high": "High:", - "cmd.php.security.medium": "Medium:", - "cmd.php.security.low": "Low:", - "cmd.php.security.fix_label": "Fix:", - "cmd.php.security.flag.severity": "Minimum severity (critical, high, medium, low)", - "cmd.php.security.flag.json": "Output in JSON format", - "cmd.php.security.flag.sarif": "Output in SARIF format (for GitHub Security)", - "cmd.php.security.flag.url": "URL to check HTTP headers (optional)", - "cmd.php.qa.short": "Run full QA pipeline", - "cmd.php.qa.long": "Run the complete quality assurance pipeline.\n\nStages:\n quick: Security audit, code style, PHPStan\n standard: Psalm, tests\n full: Rector dry-run, mutation testing (slow)", - "cmd.php.qa.running": "Running QA pipeline ({{.Stages}})", - "cmd.php.qa.no_checks": "No checks available", - "cmd.php.qa.stage_prefix": "═══ ", - "cmd.php.qa.stage_suffix": " STAGE ═══", - "cmd.php.qa.passed": "passed", - "cmd.php.qa.failed": "failed", - "cmd.php.qa.all_passed": "All checks passed ({{.Passed}}/{{.Total}})", - "cmd.php.qa.some_failed": "Some checks failed ({{.Passed}}/{{.Total}} passed)", - "cmd.php.qa.to_fix": "To fix:", - "cmd.php.qa.pipeline_failed": "QA pipeline failed", - "cmd.php.qa.fix_audit": "composer update && npm update", - "cmd.php.qa.fix_phpstan": "Fix PHPStan errors shown above", - "cmd.php.qa.fix_psalm": "Fix Psalm errors shown above", - "cmd.php.qa.fix_tests": "Fix failing tests shown above", - "cmd.php.qa.fix_infection": "Improve test coverage for mutated code", - "cmd.php.qa.issue_vulns": "vulnerabilities", - "cmd.php.qa.issue_style": "Code style issues found", - "cmd.php.qa.issue_analysis": "Static analysis errors", - "cmd.php.qa.issue_types": "Type errors found", - "cmd.php.qa.issue_tests": "Test failures", - "cmd.php.qa.issue_rector": "Code improvements available", - "cmd.php.qa.issue_mutation": "Mutation score below threshold", - "cmd.php.qa.flag.quick": "Only run quick checks", - "cmd.php.qa.flag.full": "Run all stages including slow checks", - "cmd.php.qa.flag.fix": "Auto-fix issues where possible", - "cmd.php.rector.short": "Automated code refactoring", - "cmd.php.rector.long": "Run Rector for automated code improvements and PHP upgrades.\n\nRector can automatically upgrade PHP syntax, improve code quality,\nand apply framework-specific refactorings.", - "cmd.php.rector.not_found": "Rector not found", - "cmd.php.rector.install": "composer require --dev rector/rector", - "cmd.php.rector.setup": "./vendor/bin/rector init", - "cmd.php.rector.analysing": "Analysing code with Rector", - "cmd.php.rector.refactoring": "Refactoring code with Rector", - "cmd.php.rector.changes_suggested": "Changes suggested (use --fix to apply)", - "cmd.php.rector.refactored": "Code refactored successfully", - "cmd.php.rector.no_changes": "No changes needed", - "cmd.php.rector.flag.fix": "Apply changes (default is dry-run)", - "cmd.php.rector.flag.diff": "Show detailed diff of changes", - "cmd.php.rector.flag.clear_cache": "Clear Rector cache before running", - "cmd.php.infection.short": "Mutation testing for test quality", - "cmd.php.infection.long": "Run Infection mutation testing to measure test suite quality.\n\nMutation testing modifies your code and checks if tests catch\nthe changes. High mutation score = high quality tests.\n\nWarning: This can be slow on large codebases.", - "cmd.php.infection.not_found": "Infection not found", - "cmd.php.infection.install": "composer require --dev infection/infection", - "cmd.php.infection.running": "Running mutation testing", - "cmd.php.infection.note": "This may take a while...", - "cmd.php.infection.complete": "Mutation testing complete", - "cmd.php.infection.flag.min_msi": "Minimum mutation score indicator (0-100, default: 50)", - "cmd.php.infection.flag.min_covered_msi": "Minimum covered mutation score (0-100, default: 70)", - "cmd.php.infection.flag.threads": "Number of parallel threads (default: 4)", - "cmd.php.infection.flag.filter": "Filter files by pattern", - "cmd.php.infection.flag.only_covered": "Only mutate covered code", - "cmd.php.deploy.short": "Deploy to Coolify", - "cmd.php.deploy.long": "Deploy the PHP application to Coolify.\n\nRequires configuration in .env:\n COOLIFY_URL=https://coolify.example.com\n COOLIFY_TOKEN=your-api-token\n COOLIFY_APP_ID=production-app-id\n COOLIFY_STAGING_APP_ID=staging-app-id (optional)", - "cmd.php.deploy.deploying": "Deploying to {{.Environment}}...", - "cmd.php.deploy.success": "Deployment completed successfully", - "cmd.php.deploy.warning_status": "Deployment ended with status: {{.Status}}", - "cmd.php.deploy.triggered": "Deployment triggered. Use 'core php deploy:status' to check progress.", - "cmd.php.deploy.flag.staging": "Deploy to staging environment", - "cmd.php.deploy.flag.force": "Force deployment even if no changes detected", - "cmd.php.deploy.flag.wait": "Wait for deployment to complete", - "cmd.php.deploy_status.short": "Show deployment status", - "cmd.php.deploy_status.long": "Show the status of a deployment.", - "cmd.php.deploy_status.checking": "Checking {{.Environment}} deployment status...", - "cmd.php.deploy_status.flag.staging": "Check staging environment", - "cmd.php.deploy_status.flag.id": "Specific deployment ID", - "cmd.php.deploy_rollback.short": "Rollback to previous deployment", - "cmd.php.deploy_rollback.long": "Rollback to a previous deployment.\n\nIf no deployment ID is specified, rolls back to the most recent\nsuccessful deployment.", - "cmd.php.deploy_rollback.rolling_back": "Rolling back {{.Environment}}...", - "cmd.php.deploy_rollback.success": "Rollback completed successfully", - "cmd.php.deploy_rollback.warning_status": "Rollback ended with status: {{.Status}}", - "cmd.php.deploy_rollback.triggered": "Rollback triggered. Use 'core php deploy:status' to check progress.", - "cmd.php.deploy_rollback.flag.staging": "Rollback staging environment", - "cmd.php.deploy_rollback.flag.id": "Specific deployment ID to rollback to", - "cmd.php.deploy_rollback.flag.wait": "Wait for rollback to complete", - "cmd.php.deploy_list.short": "List recent deployments", - "cmd.php.deploy_list.long": "List recent deployments.", - "cmd.php.deploy_list.recent": "Recent {{.Environment}} deployments:", - "cmd.php.deploy_list.none_found": "No deployments found", - "cmd.php.deploy_list.flag.staging": "List staging deployments", - "cmd.php.deploy_list.flag.limit": "Number of deployments to list (default: 10)", - "cmd.php.label.php": "PHP:", - "cmd.php.label.services": "Services:", - "cmd.php.label.running": "Running:", - "cmd.php.label.app_url": "App URL:", - "cmd.php.label.vite": "Vite:", - "cmd.php.label.warning": "Warning:", - "cmd.php.label.error": "Error:", - "cmd.php.label.done": "Done:", - "cmd.php.label.skip": "Skip:", - "cmd.php.label.info": "Info:", - "cmd.php.label.install": "Install:", - "cmd.php.label.setup": "Setup:", - "cmd.php.label.fix": "Fix:", - "cmd.php.label.audit": "Audit:", - "cmd.php.label.security": "Security:", - "cmd.php.label.summary": "Summary:", - "cmd.php.label.qa": "QA:", - "cmd.php.label.psalm": "Psalm:", - "cmd.php.label.rector": "Rector:", - "cmd.php.label.infection": "Infection:", - "cmd.php.label.deploy": "Deploy:", - "cmd.php.label.status": "Status:", - "cmd.php.label.id": "ID:", - "cmd.php.label.url": "URL:", - "cmd.php.label.branch": "Branch:", - "cmd.php.label.commit": "Commit:", - "cmd.php.label.message": "Message:", - "cmd.php.label.started": "Started:", - "cmd.php.label.completed": "Completed:", - "cmd.php.label.duration": "Duration:", - "cmd.php.error.not_laravel": "not a Laravel project (missing artisan or laravel/framework)", - "cmd.php.error.not_laravel_short": "not a Laravel project", - "cmd.php.error.not_php": "not a PHP project (missing composer.json)", - "cmd.php.error.working_dir": "failed to get working directory", - "cmd.php.error.start_services": "failed to start services", - "cmd.php.error.stop_services": "failed to stop services", - "cmd.php.error.get_logs": "failed to get logs", - "cmd.php.error.detect_config": "failed to detect project configuration", - "cmd.php.error.build_failed": "build failed", - "cmd.php.error.start_container": "failed to start container", - "cmd.php.error.open_shell": "failed to open shell", - "cmd.php.error.link_packages": "failed to link packages", - "cmd.php.error.unlink_packages": "failed to unlink packages", - "cmd.php.error.update_packages": "composer update failed", - "cmd.php.error.list_packages": "failed to list packages", - "cmd.php.error.tests_failed": "tests failed", - "cmd.php.error.fmt_failed": "formatting failed", - "cmd.php.error.fmt_issues": "formatting issues found", - "cmd.php.error.analysis_issues": "analysis found issues", - "cmd.php.error.psalm_issues": "psalm found issues", - "cmd.php.error.psalm_not_installed": "psalm not installed", - "cmd.php.error.audit_failed": "audit failed", - "cmd.php.error.vulns_found": "vulnerabilities found", - "cmd.php.error.security_failed": "security check failed", - "cmd.php.error.critical_high_issues": "critical or high severity issues found", - "cmd.php.error.rector_failed": "rector failed", - "cmd.php.error.rector_not_installed": "rector not installed", - "cmd.php.error.infection_failed": "mutation testing failed", - "cmd.php.error.infection_not_installed": "infection not installed", - "cmd.php.error.mkcert_not_installed": "mkcert not installed", - "cmd.php.error.ssl_setup": "failed to setup SSL", - "cmd.php.error.deploy_failed": "deployment failed", - "cmd.php.error.status_failed": "failed to get status", - "cmd.php.error.rollback_failed": "rollback failed", - "cmd.php.error.list_deployments": "failed to list deployments", - "cmd.go.short": "Go development tools", - "cmd.go.long": "Go development tools with enhanced output and environment setup.\n\nCommands:\n test Run tests\n cov Run tests with coverage report\n fmt Format Go code\n lint Run golangci-lint\n install Install Go binary\n mod Module management (tidy, download, verify)\n work Workspace management", - "cmd.go.test.short": "Run tests with coverage", - "cmd.go.test.long": "Run Go tests with coverage reporting.\n\nSets MACOSX_DEPLOYMENT_TARGET=26.0 to suppress linker warnings.\nFilters noisy output and provides color-coded coverage.\n\nExamples:\n core go test\n core go test --coverage\n core go test --pkg ./pkg/crypt\n core go test --run TestHash", - "cmd.go.test.label": "Test:", - "cmd.go.test.running": "Running tests", - "cmd.go.test.package_label": "Package:", - "cmd.go.test.passed": "{{.Count}} passed", - "cmd.go.test.passed_failed": "{{.Passed}} passed, {{.Failed}} failed", - "cmd.go.test.all_passed": "PASS All tests passed", - "cmd.go.test.some_failed": "FAIL Some tests failed", - "cmd.go.test.coverage": "Coverage", - "cmd.go.test.flag.coverage": "Show detailed per-package coverage", - "cmd.go.test.flag.pkg": "Package to test (default: ./...)", - "cmd.go.test.flag.run": "Run only tests matching regexp", - "cmd.go.test.flag.short": "Run only short tests", - "cmd.go.test.flag.race": "Enable race detector", - "cmd.go.test.flag.json": "Output JSON results", - "cmd.go.test.flag.verbose": "Verbose output", - "cmd.go.cov.short": "Run tests with coverage report", - "cmd.go.cov.long": "Run tests and generate coverage report.\n\nExamples:\n core go cov # Run with coverage summary\n core go cov --html # Generate HTML report\n core go cov --open # Generate and open HTML report\n core go cov --threshold 80 # Fail if coverage < 80%", - "cmd.go.cov.label": "Coverage:", - "cmd.go.cov.running": "Running tests with coverage", - "cmd.go.cov.html_label": "HTML:", - "cmd.go.cov.open_manually": "(open manually)", - "cmd.go.cov.below_threshold": "FAIL Coverage {{.Actual}}% is below threshold {{.Threshold}}%", - "cmd.go.cov.error.discover": "failed to discover test packages", - "cmd.go.cov.error.no_packages": "no test packages found", - "cmd.go.cov.error.create_file": "failed to create coverage file", - "cmd.go.cov.error.get_coverage": "failed to get coverage", - "cmd.go.cov.error.generate_html": "failed to generate HTML", - "cmd.go.cov.error.below_threshold": "coverage below threshold", - "cmd.go.cov.flag.pkg": "Package to test (default: ./...)", - "cmd.go.cov.flag.html": "Generate HTML coverage report", - "cmd.go.cov.flag.open": "Generate and open HTML report in browser", - "cmd.go.cov.flag.threshold": "Minimum coverage percentage (exit 1 if below)", - "cmd.go.fmt.short": "Format Go code", - "cmd.go.fmt.long": "Format Go code using gofmt or goimports.\n\nExamples:\n core go fmt # Check formatting\n core go fmt --fix # Fix formatting\n core go fmt --diff # Show diff", - "cmd.go.fmt.flag.fix": "Fix formatting in place", - "cmd.go.fmt.flag.diff": "Show diff of changes", - "cmd.go.fmt.flag.check": "Check only, exit 1 if not formatted", - "cmd.go.lint.short": "Run golangci-lint", - "cmd.go.lint.long": "Run golangci-lint on the codebase.\n\nExamples:\n core go lint\n core go lint --fix", - "cmd.go.lint.flag.fix": "Fix issues automatically", - "cmd.go.install.short": "Install Go binary", - "cmd.go.install.long": "Install Go binary to $GOPATH/bin.\n\nExamples:\n core go install # Install current module\n core go install ./cmd/core # Install specific path\n core go install --no-cgo # Pure Go (no C dependencies)\n core go install -v # Verbose output", - "cmd.go.install.label": "Install:", - "cmd.go.install.installing": "Installing", - "cmd.go.install.path_label": "Path:", - "cmd.go.install.cgo_label": "CGO:", - "cmd.go.install.cgo_disabled": "disabled", - "cmd.go.install.failed": "FAIL Install failed", - "cmd.go.install.success": "OK", - "cmd.go.install.installed_to": "Installed to {{.Path}}", - "cmd.go.install.flag.verbose": "Verbose output", - "cmd.go.install.flag.no_cgo": "Disable CGO (CGO_ENABLED=0)", - "cmd.go.mod.short": "Module management", - "cmd.go.mod.long": "Go module management commands.\n\nCommands:\n tidy Add missing and remove unused modules\n download Download modules to local cache\n verify Verify dependencies\n graph Print module dependency graph", - "cmd.go.mod.tidy.short": "Tidy go.mod", - "cmd.go.mod.download.short": "Download modules", - "cmd.go.mod.verify.short": "Verify dependencies", - "cmd.go.mod.graph.short": "Print dependency graph", - "cmd.go.work.short": "Workspace management", - "cmd.go.work.long": "Go workspace management commands.\n\nCommands:\n sync Sync go.work with modules\n init Initialize go.work\n use Add module to workspace", - "cmd.go.work.sync.short": "Sync workspace", - "cmd.go.work.init.short": "Initialize workspace", - "cmd.go.work.use.short": "Add module to workspace", - "cmd.go.work.added": "Added {{.Module}}", - "cmd.go.work.error.no_modules": "no go.mod files found", - "cmd.go.build.short": "Build Go binaries", - "cmd.doctor.short": "Check development environment", - "cmd.doctor.long": "Checks that all required tools are installed and configured.\nRun this before 'core setup' to ensure your environment is ready.", - "cmd.doctor.checking": "Checking development environment...", - "cmd.doctor.required": "Required:", - "cmd.doctor.optional": "Optional:", - "cmd.doctor.github": "GitHub Access:", - "cmd.doctor.workspace": "Workspace:", - "cmd.doctor.ready": "Doctor: Environment ready", - "cmd.doctor.issues": "Doctor: {{.Count}} issues found", - "cmd.doctor.issues_error": "{{.Count}} required tools missing", - "cmd.doctor.install_missing": "Install missing tools:", - "cmd.doctor.verbose_flag": "Show detailed version information", - "cmd.doctor.ssh_found": "SSH key found", - "cmd.doctor.ssh_missing": "SSH key missing - run: ssh-keygen && gh ssh-key add", - "cmd.doctor.cli_auth": "CLI authenticated", - "cmd.doctor.cli_auth_missing": "CLI authentication - run: gh auth login", - "cmd.doctor.repos_yaml_found": "Found repos.yaml at {{.Path}}", - "cmd.doctor.repos_cloned": "{{.Cloned}}/{{.Total}} repos cloned", - "cmd.doctor.no_repos_yaml": "No repos.yaml found (run from workspace directory)", - "cmd.doctor.install_macos": "brew install git gh php composer node pnpm docker", - "cmd.doctor.install_macos_cask": "brew install --cask claude", - "cmd.doctor.install_linux_header": "# Install via your package manager or:", - "cmd.doctor.install_linux_git": "# Git: apt install git", - "cmd.doctor.install_linux_gh": "# GitHub CLI: https://cli.github.com/", - "cmd.doctor.install_linux_php": "# PHP: apt install php8.3-cli", - "cmd.doctor.install_linux_node": "# Node: https://nodejs.org/", - "cmd.doctor.install_linux_pnpm": "# pnpm: npm install -g pnpm", - "cmd.doctor.install_other": "See documentation for your OS", - "cmd.doctor.check.git.name": "Git", - "cmd.doctor.check.git.description": "Version control", - "cmd.doctor.check.gh.name": "GitHub CLI", - "cmd.doctor.check.gh.description": "GitHub integration (issues, PRs, CI)", - "cmd.doctor.check.php.name": "PHP", - "cmd.doctor.check.php.description": "Laravel packages", - "cmd.doctor.check.composer.name": "Composer", - "cmd.doctor.check.composer.description": "PHP dependencies", - "cmd.doctor.check.node.name": "Node.js", - "cmd.doctor.check.node.description": "Frontend builds", - "cmd.doctor.check.pnpm.name": "pnpm", - "cmd.doctor.check.pnpm.description": "Fast package manager", - "cmd.doctor.check.claude.name": "Claude Code", - "cmd.doctor.check.claude.description": "AI-assisted development", - "cmd.doctor.check.docker.name": "Docker", - "cmd.doctor.check.docker.description": "Container runtime", - "cmd.setup.short": "Bootstrap workspace or clone packages from registry", - "cmd.setup.long": "Sets up a development workspace.\n\nREGISTRY MODE (repos.yaml exists):\n Clones all repositories defined in repos.yaml into packages/.\n Skips repos that already exist. Use --only to filter by type.\n\nBOOTSTRAP MODE (no repos.yaml):\n 1. Clones core-devops to set up the workspace\n 2. Presents an interactive wizard to select packages\n 3. Clones selected packages\n\nUse --all to skip the wizard and clone everything.", - "cmd.setup.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.setup.flag.only": "Only clone repos of these types (comma-separated: foundation,module,product)", - "cmd.setup.flag.dry_run": "Show what would be cloned without cloning", - "cmd.setup.flag.all": "Skip wizard, clone all packages (non-interactive)", - "cmd.setup.flag.name": "Project directory name for bootstrap mode", - "cmd.setup.flag.build": "Run build after cloning", - "cmd.setup.bootstrap_mode": "Bootstrap mode (no repos.yaml found)", - "cmd.setup.cloning_current_dir": "Cloning into current directory", - "cmd.setup.creating_project_dir": "Creating project directory", - "cmd.setup.cloning": "Cloning", - "cmd.setup.cloned": "cloned", - "cmd.setup.would_clone": "Would clone", - "cmd.setup.already_exists": "already exists", - "cmd.setup.would_load_registry": "Would load registry from", - "cmd.setup.registry_label": "Registry:", - "cmd.setup.org_label": "Org:", - "cmd.setup.target_label": "Target:", - "cmd.setup.filter_label": "Filter:", - "cmd.setup.to_clone": "{{.Count}} to clone", - "cmd.setup.exist": "{{.Count}} exist", - "cmd.setup.skipped": "{{.Count}} skipped", - "cmd.setup.nothing_to_clone": "Nothing to clone.", - "cmd.setup.would_clone_list": "Would clone:", - "cmd.setup.cancelled": "Cancelled.", - "cmd.setup.done": "done", - "cmd.setup.done_label": "Done:", - "cmd.setup.cloned_count": "{{.Count}} cloned", - "cmd.setup.failed_count": "{{.Count}} failed", - "cmd.setup.already_exist_count": "{{.Count}} already exist", - "cmd.setup.running_build": "Running build...", - "cmd.setup.complete": "Setup complete", - "cmd.setup.repo.setting_up": "Setting up repository", - "cmd.setup.repo.detected_type": "Detected project type", - "cmd.setup.repo.would_create": "Would create", - "cmd.setup.repo.created": "Created", - "cmd.setup.wizard.git_repo_title": "This directory is a git repository", - "cmd.setup.wizard.what_to_do": "What would you like to do?", - "cmd.setup.wizard.option_setup": "Setup Working Directory", - "cmd.setup.wizard.option_package": "Create Package (clone repos into subdirectory)", - "cmd.setup.wizard.project_name_title": "Project directory name", - "cmd.setup.wizard.project_name_desc": "Enter the name for your new workspace directory", - "cmd.setup.wizard.package_selection": "Package Selection", - "cmd.setup.wizard.selection_hint": "Use space to select/deselect, enter to confirm", - "cmd.setup.wizard.select_packages": "Select packages to clone", - "cmd.setup.wizard.confirm_clone": "Clone {{.Count}} packages to {{.Target}}?", - "cmd.setup.wizard.confirm_yes": "Yes, clone", - "cmd.setup.wizard.confirm_cancel": "Cancel", - "cmd.setup.error.build_failed": "build failed", - "cmd.build.short": "Build projects with auto-detection and cross-compilation", - "cmd.build.long": "Builds the current project with automatic type detection.\nSupports Go, Wails, Docker, LinuxKit, and Taskfile projects.\nConfiguration can be provided via .core/build.yaml or command-line flags.\n\nExamples:\n core build # Auto-detect and build\n core build --type docker # Build Docker image\n core build --type linuxkit # Build LinuxKit image\n core build --type linuxkit --config linuxkit.yml --format qcow2-bios", - "cmd.build.from_path.short": "Build from a local directory", - "cmd.build.from_path.starting": "Starting build from path:", - "cmd.build.from_path.generating_template": "Generating application from template...", - "cmd.build.from_path.copying_files": "Copying application files...", - "cmd.build.from_path.compiling": "Compiling application...", - "cmd.build.from_path.success": "Build successful! Executable created at:", - "cmd.build.from_path.flag.path": "The path to the static web application files", - "cmd.build.from_path.error.invalid_path": "invalid path specified", - "cmd.build.from_path.error.must_be_directory": "path specified must be a directory", - "cmd.build.from_path.error.clean_build_dir": "failed to clean build directory", - "cmd.build.from_path.error.anchor_template": "failed to anchor template filesystem", - "cmd.build.from_path.error.create_sod": "failed to create new sod instance", - "cmd.build.from_path.error.extract_template": "failed to extract template", - "cmd.build.from_path.error.copy_files": "failed to copy application files", - "cmd.build.from_path.error.go_mod_tidy": "go mod tidy failed", - "cmd.build.from_path.error.go_build": "go build failed", - "cmd.build.pwa.short": "Build from a live PWA URL", - "cmd.build.pwa.starting": "Starting PWA build from URL:", - "cmd.build.pwa.downloading_to": "Downloading PWA to temporary directory:", - "cmd.build.pwa.found_manifest": "Found manifest:", - "cmd.build.pwa.download_complete": "PWA download complete.", - "cmd.build.pwa.warning": "Warning:", - "cmd.build.pwa.no_manifest": "no manifest file found. Proceeding with basic site download.", - "cmd.build.pwa.asset_download_failed": "failed to download asset", - "cmd.build.pwa.flag.url": "The URL of the PWA to build", - "cmd.build.pwa.error.create_temp_dir": "failed to create temporary directory", - "cmd.build.pwa.error.download_failed": "failed to download PWA", - "cmd.build.pwa.error.fetch_url": "failed to fetch URL", - "cmd.build.pwa.error.read_response": "failed to read response body", - "cmd.build.pwa.error.write_index": "failed to write index.html", - "cmd.build.pwa.error.fetch_manifest": "failed to fetch or parse manifest", - "cmd.build.pwa.error.no_manifest_tag": "no tag found", - "cmd.build.sdk.short": "Generate API SDKs from OpenAPI spec", - "cmd.build.sdk.long": "Generates typed API clients from OpenAPI specifications.\nSupports TypeScript, Python, Go, and PHP.\n\nExamples:\n core build sdk # Generate all configured SDKs\n core build sdk --lang typescript # Generate only TypeScript SDK\n core build sdk --spec api.yaml # Use specific OpenAPI spec", - "cmd.build.sdk.label": "Build SDK:", - "cmd.build.sdk.generating": "Generating SDKs", - "cmd.build.sdk.dry_run_mode": "(dry-run mode)", - "cmd.build.sdk.spec_label": "Spec:", - "cmd.build.sdk.language_label": "Language:", - "cmd.build.sdk.languages_label": "Languages:", - "cmd.build.sdk.generated_label": "Generated:", - "cmd.build.sdk.would_generate": "Would generate SDKs (dry-run)", - "cmd.build.sdk.complete": "SDK generation complete", - "cmd.build.sdk.flag.spec": "Path to OpenAPI spec file", - "cmd.build.sdk.flag.lang": "Generate only this language (typescript, python, go, php)", - "cmd.build.sdk.flag.version": "Version to embed in generated SDKs", - "cmd.build.sdk.flag.dry_run": "Show what would be generated without writing files", - "cmd.build.flag.type": "Builder type (go, wails, docker, linuxkit, taskfile) - auto-detected if not specified", - "cmd.build.flag.ci": "CI mode - minimal output with JSON artifact list at the end", - "cmd.build.flag.targets": "Comma-separated OS/arch pairs (e.g., linux/amd64,darwin/arm64)", - "cmd.build.flag.output": "Output directory for artifacts (default: dist)", - "cmd.build.flag.archive": "Create archives (tar.gz for linux/darwin, zip for windows)", - "cmd.build.flag.checksum": "Generate SHA256 checksums and CHECKSUMS.txt", - "cmd.build.flag.config": "Config file path (for linuxkit: YAML config, for docker: Dockerfile)", - "cmd.build.flag.format": "Output format for linuxkit (iso-bios, qcow2-bios, raw, vmdk)", - "cmd.build.flag.push": "Push Docker image after build", - "cmd.build.flag.image": "Docker image name (e.g., host-uk/core-devops)", - "cmd.build.flag.no_sign": "Skip all code signing", - "cmd.build.flag.notarize": "Enable macOS notarization (requires Apple credentials)", - "cmd.build.label.build": "Build:", - "cmd.build.label.type": "Type:", - "cmd.build.label.output": "Output:", - "cmd.build.label.binary": "Binary:", - "cmd.build.label.targets": "Targets:", - "cmd.build.label.error": "Error:", - "cmd.build.label.success": "Success:", - "cmd.build.label.sign": "Sign:", - "cmd.build.label.archive": "Archive:", - "cmd.build.label.checksum": "Checksum:", - "cmd.build.label.ok": "OK:", - "cmd.build.building_project": "Building project", - "cmd.build.built_artifacts": "Built {{.Count}} artifact(s)", - "cmd.build.signing_binaries": "Signing binaries...", - "cmd.build.creating_archives": "Creating archives...", - "cmd.build.computing_checksums": "Computing checksums...", - "cmd.build.error.working_dir": "failed to get working directory", - "cmd.build.error.load_config": "failed to load config", - "cmd.build.error.detect_type": "failed to detect project type", - "cmd.build.error.no_project_type": "no supported project type detected in {{.Dir}}\nSupported types: go (go.mod), wails (wails.json), node (package.json), php (composer.json)", - "cmd.build.error.build_failed": "build failed", - "cmd.build.error.signing_failed": "signing failed", - "cmd.build.error.notarization_failed": "notarization failed", - "cmd.build.error.archive_failed": "archive failed", - "cmd.build.error.marshal_artifacts": "failed to marshal artifacts", - "cmd.build.error.checksum_failed": "checksum failed", - "cmd.build.error.write_checksums": "failed to write CHECKSUMS.txt", - "cmd.build.error.gpg_signing_failed": "GPG signing failed", - "cmd.build.error.invalid_target": "invalid target format \"{{.Target}}\", expected OS/arch (e.g., linux/amd64)", - "cmd.build.error.no_targets": "no valid targets specified", - "cmd.build.error.node_not_implemented": "Node.js builder not yet implemented", - "cmd.build.error.php_not_implemented": "PHP builder not yet implemented", - "cmd.build.error.unsupported_type": "unsupported project type", - "cmd.ai.short": "AI agent task management", - "cmd.ai.long": "Manage tasks from the core-agentic service for AI-assisted development.\n\nCommands:\n tasks List tasks (filterable by status, priority, labels)\n task View task details or auto-select highest priority\n task:update Update task status or progress\n task:complete Mark task as completed or failed\n task:commit Create git commit with task reference\n task:pr Create GitHub PR linked to task\n claude Claude Code integration\n\nWorkflow:\n core ai tasks # List pending tasks\n core ai task --auto --claim # Auto-select and claim a task\n core ai task:commit -m 'msg' # Commit with task reference\n core ai task:complete # Mark task done", - "cmd.ai.claude.short": "Claude Code integration", - "cmd.ai.claude.long": "Tools for working with Claude Code.\n\nCommands:\n run Run Claude in the current directory\n config Manage Claude configuration", - "cmd.ai.claude.run.short": "Run Claude Code in the current directory", - "cmd.ai.claude.config.short": "Manage Claude configuration", - "cmd.ai.tasks.short": "List available tasks from core-agentic", - "cmd.ai.tasks.long": "Lists tasks from the core-agentic service.\n\nConfiguration is loaded from:\n 1. Environment variables (AGENTIC_TOKEN, AGENTIC_BASE_URL)\n 2. .env file in current directory\n 3. ~/.core/agentic.yaml\n\nExamples:\n core ai tasks\n core ai tasks --status pending --priority high\n core ai tasks --labels bug,urgent", - "cmd.ai.tasks.none_found": "No tasks found.", - "cmd.ai.tasks.found": "{{.Count}} task(s) found:", - "cmd.ai.tasks.hint": "Use 'core ai task ' to view details", - "cmd.ai.tasks.flag.status": "Filter by status (pending, in_progress, completed, blocked)", - "cmd.ai.tasks.flag.priority": "Filter by priority (critical, high, medium, low)", - "cmd.ai.tasks.flag.labels": "Filter by labels (comma-separated)", - "cmd.ai.tasks.flag.limit": "Max number of tasks to return", - "cmd.ai.tasks.flag.project": "Filter by project", - "cmd.ai.task.short": "Show task details or auto-select a task", - "cmd.ai.task.long": "Shows details of a specific task or auto-selects the highest priority task.\n\nExamples:\n core ai task abc123 # Show task details\n core ai task abc123 --claim # Show and claim the task\n core ai task abc123 --context # Show task with gathered context\n core ai task --auto # Auto-select highest priority pending task", - "cmd.ai.task.no_pending": "No pending tasks available.", - "cmd.ai.task.id_required": "task ID required (or use --auto)", - "cmd.ai.task.context_failed": "Failed to build context", - "cmd.ai.task.claiming": "Claiming task...", - "cmd.ai.task.claimed": "Task claimed successfully!", - "cmd.ai.task.flag.auto": "Auto-select highest priority pending task", - "cmd.ai.task.flag.claim": "Claim the task after showing details", - "cmd.ai.task.flag.context": "Show gathered context for AI collaboration", - "cmd.ai.task_update.short": "Update task status or progress", - "cmd.ai.task_update.long": "Updates a task's status, progress, or adds notes.\n\nExamples:\n core ai task:update abc123 --status in_progress\n core ai task:update abc123 --progress 50 --notes 'Halfway done'", - "cmd.ai.task_update.flag_required": "at least one of --status, --progress, or --notes required", - "cmd.ai.task_update.success": "Task {{.ID}} updated successfully", - "cmd.ai.task_update.flag.status": "New status (pending, in_progress, completed, blocked)", - "cmd.ai.task_update.flag.progress": "Progress percentage (0-100)", - "cmd.ai.task_update.flag.notes": "Notes about the update", - "cmd.ai.task_complete.short": "Mark a task as completed", - "cmd.ai.task_complete.long": "Marks a task as completed with optional output and artifacts.\n\nExamples:\n core ai task:complete abc123 --output 'Feature implemented'\n core ai task:complete abc123 --failed --error 'Build failed'", - "cmd.ai.task_complete.success": "Task {{.ID}} completed successfully", - "cmd.ai.task_complete.failed": "Task {{.ID}} marked as failed", - "cmd.ai.task_complete.flag.output": "Summary of the completed work", - "cmd.ai.task_complete.flag.failed": "Mark the task as failed", - "cmd.ai.task_complete.flag.error": "Error message if failed", - "cmd.ai.task_commit.short": "Auto-commit changes with task reference", - "cmd.ai.task_commit.long": "Creates a git commit with a task reference and co-author attribution.\n\nCommit message format:\n feat(scope): description\n\n Task: #123\n Co-Authored-By: Claude \n\nExamples:\n core ai task:commit abc123 --message 'add user authentication'\n core ai task:commit abc123 -m 'fix login bug' --scope auth\n core ai task:commit abc123 -m 'update docs' --push", - "cmd.ai.task_commit.message_required": "commit message required (--message or -m)", - "cmd.ai.task_commit.no_changes": "No uncommitted changes to commit.", - "cmd.ai.task_commit.creating": "Creating commit for task {{.ID}}...", - "cmd.ai.task_commit.committed": "Committed:", - "cmd.ai.task_commit.pushing": "Pushing changes...", - "cmd.ai.task_commit.pushed": "Changes pushed successfully", - "cmd.ai.task_commit.flag.message": "Commit message (without task reference)", - "cmd.ai.task_commit.flag.scope": "Scope for the commit type (e.g., auth, api, ui)", - "cmd.ai.task_commit.flag.push": "Push changes after committing", - "cmd.ai.task_pr.short": "Create a pull request for a task", - "cmd.ai.task_pr.long": "Creates a GitHub pull request linked to a task.\n\nRequires the GitHub CLI (gh) to be installed and authenticated.\n\nExamples:\n core ai task:pr abc123\n core ai task:pr abc123 --title 'Add authentication feature'\n core ai task:pr abc123 --draft --labels 'enhancement,needs-review'\n core ai task:pr abc123 --base develop", - "cmd.ai.task_pr.branch_error": "cannot create PR from {{.Branch}} branch; create a feature branch first", - "cmd.ai.task_pr.pushing_branch": "Pushing branch {{.Branch}}...", - "cmd.ai.task_pr.creating": "Creating pull request...", - "cmd.ai.task_pr.created": "Pull request created!", - "cmd.ai.task_pr.flag.title": "PR title (defaults to task title)", - "cmd.ai.task_pr.flag.draft": "Create as draft PR", - "cmd.ai.task_pr.flag.labels": "Labels to add (comma-separated)", - "cmd.ai.task_pr.flag.base": "Base branch (defaults to main)", - "cmd.ai.priority.critical": "CRITICAL", - "cmd.ai.priority.high": "HIGH", - "cmd.ai.priority.medium": "MEDIUM", - "cmd.ai.priority.low": "LOW", - "cmd.ai.status.pending": "pending", - "cmd.ai.status.in_progress": "in_progress", - "cmd.ai.status.completed": "completed", - "cmd.ai.status.blocked": "blocked", - "cmd.ai.label.id": "ID:", - "cmd.ai.label.title": "Title:", - "cmd.ai.label.priority": "Priority:", - "cmd.ai.label.status": "Status:", - "cmd.ai.label.project": "Project:", - "cmd.ai.label.labels": "Labels:", - "cmd.ai.label.claimed_by": "Claimed by:", - "cmd.ai.label.created": "Created:", - "cmd.ai.label.description": "Description:", - "cmd.ai.label.related_files": "Related files:", - "cmd.ai.label.blocked_by": "Blocked by:", - "cmd.ai.label.url": "URL:", - "cmd.ai.error.load_config": "failed to load config", - "cmd.ai.error.list_tasks": "failed to list tasks", - "cmd.ai.error.get_task": "failed to get task", - "cmd.ai.error.claim_task": "failed to claim task", - "cmd.ai.error.update_task": "failed to update task", - "cmd.ai.error.complete_task": "failed to complete task", - "cmd.ai.error.working_dir": "failed to get working directory", - "cmd.ai.error.git_status": "failed to check git status", - "cmd.ai.error.commit": "failed to commit", - "cmd.ai.error.push": "failed to push", - "cmd.ai.error.get_branch": "failed to get current branch", - "cmd.ai.error.push_branch": "failed to push branch", - "cmd.ai.error.create_pr": "failed to create PR", - "cmd.vm.short": "LinuxKit VM management", - "cmd.vm.long": "Manage LinuxKit virtual machines.\n\nLinuxKit VMs are lightweight, immutable VMs built from YAML templates.\nThey run using qemu or hyperkit depending on your system.\n\nCommands:\n run Run a VM from image or template\n ps List running VMs\n stop Stop a running VM\n logs View VM logs\n exec Execute command in VM\n templates Manage LinuxKit templates", - "cmd.vm.run.short": "Run a LinuxKit image or template", - "cmd.vm.run.long": "Runs a LinuxKit image as a VM using the available hypervisor.\n\nSupported image formats: .iso, .qcow2, .vmdk, .raw\n\nYou can also run from a template using --template, which will build and run\nthe image automatically. Use --var to set template variables.\n\nExamples:\n core vm run image.iso\n core vm run -d image.qcow2\n core vm run --name myvm --memory 2048 --cpus 4 image.iso\n core vm run --template core-dev --var SSH_KEY=\"ssh-rsa AAAA...\"\n core vm run --template server-php --var SSH_KEY=\"...\" --var DOMAIN=example.com", - "cmd.vm.run.flag.name": "Name for the container", - "cmd.vm.run.flag.detach": "Run in detached mode (background)", - "cmd.vm.run.flag.memory": "Memory in MB (default: 1024)", - "cmd.vm.run.flag.cpus": "Number of CPUs (default: 1)", - "cmd.vm.run.flag.ssh_port": "SSH port for exec commands (default: 2222)", - "cmd.vm.run.flag.template": "Run from a LinuxKit template (build + run)", - "cmd.vm.run.flag.var": "Template variable in KEY=VALUE format (can be repeated)", - "cmd.vm.run.error.image_required": "image path is required (or use --template)", - "cmd.vm.ps.short": "List running VMs", - "cmd.vm.ps.long": "Lists all VMs. By default, only shows running VMs.\n\nExamples:\n core vm ps\n core vm ps -a", - "cmd.vm.ps.flag.all": "Show all containers (including stopped)", - "cmd.vm.ps.header": "ID\tNAME\tIMAGE\tSTATUS\tSTARTED\tPID", - "cmd.vm.ps.no_containers": "No containers", - "cmd.vm.ps.no_running": "No running containers", - "cmd.vm.stop.short": "Stop a running VM", - "cmd.vm.stop.long": "Stops a running VM by ID.\n\nExamples:\n core vm stop abc12345\n core vm stop abc1", - "cmd.vm.stop.stopping": "Stopping:", - "cmd.vm.stop.stopped": "Stopped", - "cmd.vm.logs.short": "View VM logs", - "cmd.vm.logs.long": "View logs from a VM.\n\nExamples:\n core vm logs abc12345\n core vm logs -f abc1", - "cmd.vm.logs.flag.follow": "Follow log output", - "cmd.vm.exec.short": "Execute a command in a VM", - "cmd.vm.exec.long": "Execute a command inside a running VM via SSH.\n\nExamples:\n core vm exec abc12345 ls -la\n core vm exec abc1 /bin/sh", - "cmd.vm.templates.short": "Manage LinuxKit templates", - "cmd.vm.templates.long": "Manage LinuxKit YAML templates for building VMs.\n\nTemplates provide pre-configured LinuxKit configurations for common use cases.\nThey support variable substitution with ${VAR} and ${VAR:-default} syntax.\n\nExamples:\n core vm templates # List available templates\n core vm templates show core-dev # Show template content\n core vm templates vars server-php # Show template variables", - "cmd.vm.templates.title": "Available LinuxKit Templates", - "cmd.vm.templates.header": "NAME\tDESCRIPTION", - "cmd.vm.templates.no_templates": "No templates available.", - "cmd.vm.templates.hint.show": "Show template:", - "cmd.vm.templates.hint.vars": "Show variables:", - "cmd.vm.templates.hint.run": "Run from template:", - "cmd.vm.templates.show.short": "Display template content", - "cmd.vm.templates.show.long": "Display the content of a LinuxKit template.\n\nExamples:\n core templates show core-dev\n core templates show server-php", - "cmd.vm.templates.vars.short": "Show template variables", - "cmd.vm.templates.vars.long": "Display all variables used in a template.\n\nShows required variables (no default) and optional variables (with defaults).\n\nExamples:\n core templates vars core-dev\n core templates vars server-php", - "cmd.vm.templates.vars.required": "Required Variables (no default):", - "cmd.vm.templates.vars.optional": "Optional Variables (with defaults):", - "cmd.vm.templates.vars.none": "No variables in this template.", - "cmd.vm.label.image": "Image:", - "cmd.vm.label.name": "Name:", - "cmd.vm.label.hypervisor": "Hypervisor:", - "cmd.vm.label.started": "Started:", - "cmd.vm.label.pid": "PID:", - "cmd.vm.label.container_stopped": "Container stopped:", - "cmd.vm.label.template": "Template:", - "cmd.vm.label.building": "Building:", - "cmd.vm.hint.view_logs": "Use 'core vm logs {{.ID}}' to view output", - "cmd.vm.hint.stop": "Use 'core vm stop {{.ID}}' to stop", - "cmd.vm.error.init_manager": "failed to initialize container manager", - "cmd.vm.error.run_container": "failed to run container", - "cmd.vm.error.list_containers": "failed to list containers", - "cmd.vm.error.stop_container": "failed to stop container", - "cmd.vm.error.get_logs": "failed to get logs", - "cmd.vm.error.id_required": "container ID is required", - "cmd.vm.error.id_and_cmd_required": "container ID and command are required", - "cmd.vm.error.no_match": "no container found matching: {{.ID}}", - "cmd.vm.error.multiple_match": "multiple containers match '{{.ID}}', be more specific", - "cmd.vm.error.template_required": "template name is required", - "cmd.vm.error.apply_template": "failed to apply template", - "cmd.vm.error.create_temp": "failed to create temp directory", - "cmd.vm.error.write_template": "failed to write template", - "cmd.vm.error.build_image": "failed to build image", - "cmd.vm.error.no_image_found": "no image found after build", - "cmd.vm.error.linuxkit_not_found": "linuxkit not found. Install with: brew install linuxkit (macOS) or see https://github.com/linuxkit/linuxkit", - "cmd.docs.short": "Documentation management", - "cmd.docs.long": "Manage documentation across all repos.\nScan for docs, check coverage, and sync to core-php/docs/packages/.", - "cmd.docs.list.short": "List documentation across repos", - "cmd.docs.list.long": "List documentation files for all repos in the workspace.\n\nShows README.md, CLAUDE.md, CHANGELOG.md, and docs/ directory status\nfor each repository.", - "cmd.docs.list.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.docs.list.header.repo": "Repo", - "cmd.docs.list.header.readme": "README", - "cmd.docs.list.header.claude": "CLAUDE", - "cmd.docs.list.header.changelog": "CHANGELOG", - "cmd.docs.list.header.docs": "docs/", - "cmd.docs.list.files_count": "{{.Count}} files", - "cmd.docs.list.coverage_label": "Coverage", - "cmd.docs.list.coverage_summary": "{{.WithDocs}} with docs, {{.WithoutDocs}} without", - "cmd.docs.sync.short": "Sync documentation to core-php/docs/packages/", - "cmd.docs.sync.long": "Sync documentation from all repos to a central location.\n\nCopies docs/ directories from each package to core-php/docs/packages/\nfor unified documentation builds.", - "cmd.docs.sync.flag.registry": "Path to repos.yaml (auto-detected if not specified)", - "cmd.docs.sync.flag.dry_run": "Show what would be synced without copying", - "cmd.docs.sync.flag.output": "Output directory (default: core-php/docs/packages)", - "cmd.docs.sync.no_docs_found": "No documentation found in any repos.", - "cmd.docs.sync.found_label": "Found", - "cmd.docs.sync.repos_with_docs": "{{.Count}} repo(s) with docs/ directories", - "cmd.docs.sync.files_count": "({{.Count}} files)", - "cmd.docs.sync.total_label": "Total:", - "cmd.docs.sync.total_summary": "{{.Files}} files from {{.Repos}} repos → {{.Output}}", - "cmd.docs.sync.dry_run_notice": "Dry run - no files copied", - "cmd.docs.sync.confirm": "Sync?", - "cmd.docs.sync.done_label": "Done:", - "cmd.docs.sync.synced_packages": "Synced {{.Count}} packages", - "cmd.docs.error.load_registry": "failed to load registry", - "cmd.docs.error.scan_directory": "failed to scan directory", - "cmd.pkg.short": "Package management for core-* repos", - "cmd.pkg.long": "Manage host-uk/core-* packages and repositories.\n\nCommands:\n search Search GitHub for packages\n install Clone a package from GitHub\n list List installed packages\n update Update installed packages\n outdated Check for outdated packages", - "cmd.pkg.no_description": "(no description)", - "cmd.pkg.search.short": "Search GitHub for packages", - "cmd.pkg.search.long": "Searches GitHub for repositories matching a pattern.\nUses gh CLI for authenticated search. Results are cached for 1 hour.\n\nExamples:\n core pkg search # List all host-uk repos\n core pkg search --pattern 'core-*' # Search for core-* repos\n core pkg search --org mycompany # Search different org\n core pkg search --refresh # Bypass cache", - "cmd.pkg.search.flag.org": "GitHub organization (default: host-uk)", - "cmd.pkg.search.flag.pattern": "Repo name pattern (* for wildcard)", - "cmd.pkg.search.flag.type": "Filter by type in name (mod, services, plug, website)", - "cmd.pkg.search.flag.limit": "Max results (default 50)", - "cmd.pkg.search.flag.refresh": "Bypass cache and fetch fresh data", - "cmd.pkg.search.cache_label": "Cache:", - "cmd.pkg.search.note_label": "Note:", - "cmd.pkg.search.fetching_label": "Fetching:", - "cmd.pkg.search.gh_token_warning": "GH_TOKEN env var is set - this may cause auth issues", - "cmd.pkg.search.gh_token_unset": "Unset it with: unset GH_TOKEN", - "cmd.pkg.search.no_repos_found": "No repositories found matching pattern.", - "cmd.pkg.search.found_repos": "Found {{.Count}} repositories:", - "cmd.pkg.search.private_label": "[private]", - "cmd.pkg.search.install_with": "Install with:", - "cmd.pkg.install.short": "Clone a package from GitHub", - "cmd.pkg.install.long": "Clones a repository from GitHub.\n\nExamples:\n core pkg install host-uk/core-php\n core pkg install host-uk/core-tenant --dir ./packages\n core pkg install host-uk/core-admin --add", - "cmd.pkg.install.flag.dir": "Target directory (default: ./packages or current dir)", - "cmd.pkg.install.flag.add": "Add to repos.yaml registry", - "cmd.pkg.install.skip_label": "Skip:", - "cmd.pkg.install.already_exists": "{{.Name}} already exists at {{.Path}}", - "cmd.pkg.install.installing_label": "Installing:", - "cmd.pkg.install.target_label": "Target:", - "cmd.pkg.install.cloning": "Cloning", - "cmd.pkg.install.add_to_registry": "add to registry", - "cmd.pkg.install.added_to_registry": "added to repos.yaml", - "cmd.pkg.install.done_label": "Done:", - "cmd.pkg.install.installed": "Installed {{.Name}}", - "cmd.pkg.list.short": "List installed packages", - "cmd.pkg.list.long": "Lists all packages in the current workspace.\n\nReads from repos.yaml or scans for git repositories.\n\nExamples:\n core pkg list", - "cmd.pkg.list.title": "Installed Packages", - "cmd.pkg.list.no_packages": "No packages in registry.", - "cmd.pkg.list.total_label": "Total:", - "cmd.pkg.list.summary": "{{.Installed}} installed, {{.Missing}} missing", - "cmd.pkg.list.install_missing": "Install missing:", - "cmd.pkg.update.short": "Update installed packages", - "cmd.pkg.update.long": "Pulls latest changes for installed packages.\n\nExamples:\n core pkg update core-php # Update specific package\n core pkg update --all # Update all packages", - "cmd.pkg.update.flag.all": "Update all packages", - "cmd.pkg.update.update_label": "Update:", - "cmd.pkg.update.updating": "Updating {{.Count}} package(s)", - "cmd.pkg.update.not_installed": "not installed", - "cmd.pkg.update.up_to_date": "up to date", - "cmd.pkg.update.done_label": "Done:", - "cmd.pkg.update.summary": "{{.Updated}} updated, {{.Skipped}} skipped, {{.Failed}} failed", - "cmd.pkg.outdated.short": "Check for outdated packages", - "cmd.pkg.outdated.long": "Checks which packages have unpulled commits.\n\nExamples:\n core pkg outdated", - "cmd.pkg.outdated.outdated_label": "Outdated:", - "cmd.pkg.outdated.checking": "Checking for updates...", - "cmd.pkg.outdated.commits_behind": "{{.Count}} commits behind", - "cmd.pkg.outdated.done_label": "Done:", - "cmd.pkg.outdated.all_up_to_date": "All packages up to date", - "cmd.pkg.outdated.summary_label": "Summary:", - "cmd.pkg.outdated.summary": "{{.Outdated}} outdated, {{.UpToDate}} up to date", - "cmd.pkg.outdated.update_with": "Update with:", - "cmd.pkg.error.gh_not_authenticated": "gh CLI not authenticated. Run: gh auth login", - "cmd.pkg.error.auth_failed": "authentication failed - try: unset GH_TOKEN && gh auth login", - "cmd.pkg.error.search_failed": "search failed: %s", - "cmd.pkg.error.parse_results": "failed to parse results: %w", - "cmd.pkg.error.repo_required": "repository is required (e.g., core pkg install host-uk/core-php)", - "cmd.pkg.error.invalid_repo_format": "invalid repo format: use org/repo (e.g., host-uk/core-php)", - "cmd.pkg.error.create_directory": "failed to create directory: %w", - "cmd.pkg.error.no_repos_yaml": "no repos.yaml found", - "cmd.pkg.error.no_repos_yaml_workspace": "no repos.yaml found - run from workspace directory", - "cmd.pkg.error.load_registry": "failed to load registry: %w", - "cmd.pkg.error.specify_package": "specify package name or use --all", - "cmd.ci.short": "Publish releases (dry-run by default)", - "cmd.ci.long": "Publishes pre-built artifacts from dist/ to configured targets.\nRun 'core build' first to create artifacts.\n\nSAFE BY DEFAULT: Runs in dry-run mode unless --we-are-go-for-launch is specified.\n\nConfiguration: .core/release.yaml", - "cmd.ci.init.short": "Initialize release configuration", - "cmd.ci.init.long": "Creates a .core/release.yaml configuration file interactively.", - "cmd.ci.init.config_exists": "Configuration already exists at", - "cmd.ci.init.overwrite_prompt": "Overwrite? [y/N]: ", - "cmd.ci.init.creating": "Creating release configuration", - "cmd.ci.init.project_name": "Project name", - "cmd.ci.init.github_repo": "GitHub repository (owner/repo):", - "cmd.ci.init.config_written": "Configuration written to", - "cmd.ci.changelog.short": "Generate changelog", - "cmd.ci.changelog.long": "Generates a changelog from conventional commits.", - "cmd.ci.changelog.flag.from": "Starting ref (default: previous tag)", - "cmd.ci.changelog.flag.to": "Ending ref (default: HEAD)", - "cmd.ci.version.short": "Show or set version", - "cmd.ci.version.long": "Shows the determined version or validates a version string.", - "cmd.ci.release.short": "Create a release", - "cmd.ci.flag.go_for_launch": "Actually publish (default is dry-run for safety)", - "cmd.ci.flag.version": "Version to release (e.g., v1.2.3)", - "cmd.ci.flag.draft": "Create release as a draft", - "cmd.ci.flag.prerelease": "Mark release as a prerelease", - "cmd.ci.publishing": "Publishing release", - "cmd.ci.dry_run_hint": "(dry-run) use --we-are-go-for-launch to publish", - "cmd.ci.go_for_launch": "GO FOR LAUNCH", - "cmd.ci.publish_completed": "Publish completed!", - "cmd.ci.label.ci": "CI:", - "cmd.ci.label.init": "Init:", - "cmd.ci.label.note": "Note:", - "cmd.ci.label.error": "Error:", - "cmd.ci.label.success": "Success:", - "cmd.ci.label.version": "Version:", - "cmd.ci.label.artifacts": "Artifacts:", - "cmd.ci.label.published": "Published:", - "cmd.ci.error.working_dir": "failed to get working directory", - "cmd.ci.error.load_config": "failed to load config", - "cmd.ci.error.write_config": "failed to write config", - "cmd.ci.error.no_publishers": "no publishers configured in .core/release.yaml", - "cmd.ci.error.generate_changelog": "failed to generate changelog", - "cmd.ci.error.determine_version": "failed to determine version", - "cmd.sdk.short": "SDK validation and API compatibility tools", - "cmd.sdk.long": "Tools for validating OpenAPI specs and checking API compatibility.\nTo generate SDKs, use: core build sdk\n\nCommands:\n diff Check for breaking API changes\n validate Validate OpenAPI spec syntax", - "cmd.sdk.diff.short": "Check for breaking API changes", - "cmd.sdk.diff.long": "Check for breaking API changes between spec versions.\n\nCompares a base spec (version tag or file) against the current spec\nand reports any breaking changes that would affect API consumers.", - "cmd.sdk.diff.flag.base": "Base spec (version tag or file)", - "cmd.sdk.diff.flag.spec": "Current spec file", - "cmd.sdk.diff.label": "SDK Diff:", - "cmd.sdk.diff.checking": "Checking for breaking changes", - "cmd.sdk.diff.base_label": "Base:", - "cmd.sdk.diff.current_label": "Current:", - "cmd.sdk.diff.breaking": "Breaking:", - "cmd.sdk.diff.error.base_required": "--base is required (version tag or file path)", - "cmd.sdk.validate.short": "Validate OpenAPI spec", - "cmd.sdk.validate.long": "Validate OpenAPI spec syntax.\n\nChecks that the OpenAPI specification file is valid and well-formed.", - "cmd.sdk.validate.flag.spec": "Path to OpenAPI spec file", - "cmd.sdk.validate.validating": "Validating OpenAPI spec", - "cmd.sdk.validate.spec_label": "Spec:", - "cmd.sdk.validate.valid": "Spec is valid", - "cmd.sdk.label.sdk": "SDK:", - "cmd.sdk.label.ok": "OK:", - "cmd.sdk.label.error": "Error:", - "cmd.sdk.error.working_dir": "failed to get working directory", - "cmd.test.short": "Run tests with coverage", - "cmd.test.long": "Runs Go tests with coverage reporting.\n\nSets MACOSX_DEPLOYMENT_TARGET=26.0 to suppress linker warnings on macOS.\n\nExamples:\n core test # Run all tests with coverage summary\n core test --verbose # Show test output as it runs\n core test --coverage # Show detailed per-package coverage\n core test --pkg ./pkg/... # Test specific packages\n core test --run TestName # Run specific test by name\n core test --short # Skip long-running tests\n core test --race # Enable race detector\n core test --json # Output JSON for CI/agents", - "cmd.test.running": "Running tests", - "cmd.test.all_passed": "All tests passed", - "cmd.test.tests_failed": "Tests failed", - "cmd.test.passed": "{{.Count}} passed", - "cmd.test.failed": "{{.Count}} failed", - "cmd.test.skipped": "{{.Count}} skipped", - "cmd.test.failed_packages": "Failed packages:", - "cmd.test.coverage_by_package": "Coverage by package:", - "cmd.test.flag.verbose": "Show test output as it runs (-v)", - "cmd.test.flag.coverage": "Show detailed per-package coverage", - "cmd.test.flag.short": "Skip long-running tests (-short)", - "cmd.test.flag.pkg": "Package pattern to test (default: ./...)", - "cmd.test.flag.run": "Run only tests matching this regex (-run)", - "cmd.test.flag.race": "Enable race detector (-race)", - "cmd.test.flag.json": "Output JSON for CI/agents", - "cmd.test.label.test": "Test:", - "cmd.test.label.package": "Package:", - "cmd.test.label.filter": "Filter:", - "cmd.test.label.coverage": "Coverage:", - "cmd.test.label.average": "Average", - "cmd.test.error.no_go_mod": "no go.mod found - run from a Go project directory", - "cmd.test.error.tests_failed": "tests failed", - "error.not_found": "Not found: {{.Item}}", - "error.invalid": "Invalid: {{.Item}}", - "error.permission": "Permission denied: {{.Item}}", - "error.timeout": "Operation timed out", - "error.network": "Network error: {{.Message}}", - "error.gh_not_found": "'gh' CLI not found. Install from https://cli.github.com/", - "error.registry_not_found": "No repos.yaml found", - "error.repo_not_found": "Repository '{{.Name}}' not found", - "label.status": "Status", - "label.branch": "Branch", - "label.commit": "Commit", - "label.message": "Message", - "label.author": "Author", - "label.date": "Date", - "label.duration": "Duration", - "label.coverage": "Coverage", - "label.package": "Package", - "label.registry": "Registry", - "label.scanning": "Scanning", - "label.total": "Total", - "lang.en": "English", - "lang.de": "German", - "lang.es": "Spanish", - "lang.fr": "French", - "lang.zh": "Chinese" + "gram": { + "verb": { + "analyse": { "base": "analyze", "past": "analyzed", "gerund": "analyzing" }, + "organise": { "base": "organize", "past": "organized", "gerund": "organizing" }, + "recognise": { "base": "recognize", "past": "recognized", "gerund": "recognizing" }, + "realise": { "base": "realize", "past": "realized", "gerund": "realizing" } + } + } }