@sebastienrousseau/dotfiles 0.2.502 → 0.2.503
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +83 -9
- package/LICENSE +21 -1283
- package/README.md +5 -3
- package/docs/CONFIG_STRATEGY.md +124 -0
- package/docs/COPYRIGHT +1 -1
- package/docs/GOVERNANCE.md +98 -0
- package/docs/MAINTAINERS.md +41 -0
- package/docs/OPENCODE.md +127 -0
- package/docs/README.md +2 -0
- package/docs/STRUCTURE.md +102 -0
- package/docs/adr/ADR-011-nushell-tier3-keep.md +2 -2
- package/docs/architecture/AI_COST_OPTIMIZATION.md +143 -0
- package/docs/architecture/REPO_LAYOUT.md +8 -8
- package/docs/archive/MILESTONE_v0.2.493.md +1 -1
- package/docs/index.md +2 -2
- package/docs/interop/POWERSHELL.md +1 -1
- package/docs/manual/00-introduction.md +1 -1
- package/docs/manual/01-concepts/02-trust-model.md +1 -1
- package/docs/manual/03-reference/02-config-files.md +2 -2
- package/docs/manual/_toc.yml +1 -1
- package/docs/manual/command-index.md +72 -59
- package/docs/operations/CI_COMPOSITES.md +2 -2
- package/docs/operations/COMPLETIONS.md +2 -2
- package/docs/operations/COVERAGE.md +5 -5
- package/docs/operations/HARD_AUDIT_2026.md +11 -11
- package/docs/operations/MAINTENANCE.md +3 -3
- package/docs/operations/MANIFEST.md +127 -0
- package/docs/operations/RELEASE_PIPELINE.md +130 -0
- package/docs/operations/RFC_v0_2_503_reorganization.md +280 -0
- package/docs/operations/ROADMAP_2026.md +6 -6
- package/docs/operations/ROADMAP_V0_2_503.md +134 -0
- package/docs/operations/TESTING.md +17 -0
- package/docs/operations/TRACEABILITY.md +6 -3
- package/docs/operations/VERSION_SYNC.md +4 -4
- package/docs/reference/POWERSHELL_PARITY.md +8 -7
- package/docs/schema/dot-env-v1.json +110 -0
- package/docs/security/CI_EGRESS_ALLOWLIST.md +1 -1
- package/docs/security/CI_PINNING.md +17 -9
- package/docs/security/DEPS_DEV_EXCEPTIONS.md +2 -2
- package/docs/security/FUZZING.md +114 -0
- package/docs/security/INSTALL_VERIFICATION.md +2 -2
- package/docs/security/POLICY_RELEASES.md +2 -2
- package/docs/security/SCORECARD.md +58 -3
- package/docs/security/SHELL_EXEMPTIONS.md +4 -4
- package/docs/security/VERIFY_RELEASE.md +201 -0
- package/install.sh +27 -5
- package/package.json +1 -1
- package/scripts/README.md +123 -0
- package/scripts/ci/check-copyright-headers.sh +4 -93
- package/scripts/ci/check-shell-preamble.sh +4 -103
- package/scripts/ci/guard-gitleaks-checkout.sh +4 -54
- package/scripts/diagnostics/a2a-conformance.sh +4 -4
- package/scripts/diagnostics/alias-governance.sh +1 -1
- package/scripts/diagnostics/aliases-cheatsheet.sh +2 -2
- package/scripts/diagnostics/benchmark.sh +4 -4
- package/scripts/diagnostics/conflicts.sh +2 -2
- package/scripts/diagnostics/doctor-unified.sh +2 -2
- package/scripts/diagnostics/doctor.sh +10 -10
- package/scripts/diagnostics/drift-dashboard.sh +2 -2
- package/scripts/diagnostics/health.sh +4 -4
- package/scripts/diagnostics/history-analysis.sh +2 -2
- package/scripts/diagnostics/mcp-doctor.sh +10 -7
- package/scripts/diagnostics/perf.sh +4 -4
- package/scripts/diagnostics/scorecard.sh +4 -4
- package/scripts/diagnostics/security-score.sh +2 -2
- package/scripts/diagnostics/smoke-test.sh +2 -2
- package/scripts/diagnostics/snapshot.sh +2 -2
- package/scripts/diagnostics/verify.sh +4 -4
- package/scripts/diagnostics/version-locks.sh +2 -2
- package/scripts/diagnostics/workstation-attestation.sh +14 -14
- package/scripts/dot/commands/agent.sh +8 -0
- package/scripts/dot/commands/agents.sh +14 -4
- package/scripts/dot/commands/ai.sh +144 -25
- package/scripts/dot/commands/appearance.sh +2 -2
- package/scripts/dot/commands/core.sh +2 -2
- package/scripts/dot/commands/diagnostics.sh +5 -5
- package/scripts/dot/commands/env-emit.sh +202 -0
- package/scripts/dot/commands/fleet.sh +12 -11
- package/scripts/dot/commands/init.sh +4 -4
- package/scripts/dot/commands/lint.sh +9 -4
- package/scripts/dot/commands/manual.sh +3 -3
- package/scripts/dot/commands/meta.sh +12 -6
- package/scripts/dot/commands/patterns.sh +2 -2
- package/scripts/dot/commands/registry.sh +4 -4
- package/scripts/dot/commands/restore.sh +4 -4
- package/scripts/dot/commands/secrets.sh +4 -3
- package/scripts/dot/commands/security.sh +2 -2
- package/scripts/dot/commands/tools.sh +13 -3
- package/scripts/dot/powershell/Dot.psm1 +199 -0
- package/scripts/fonts/install-nerd-fonts.sh +2 -2
- package/scripts/git-hooks/pre-commit-audit.sh +2 -2
- package/scripts/git-hooks/pre-push +13 -0
- package/scripts/ops/ai-setup.sh +1 -1
- package/scripts/ops/bundle.sh +2 -2
- package/scripts/ops/chaos.sh +2 -2
- package/scripts/ops/chezmoi-apply.sh +4 -4
- package/scripts/ops/heal.sh +4 -4
- package/scripts/ops/post-apply-repair.sh +2 -2
- package/scripts/ops/prewarm.sh +2 -2
- package/scripts/ops/release.sh +4 -4
- package/scripts/ops/rollback.sh +4 -4
- package/scripts/ops/setup.sh +2 -2
- package/scripts/qa/check-version-consistency.sh +123 -0
- package/scripts/qa/coverage-baseline.sh +1 -1
- package/scripts/qa/docs-coverage.sh +2 -2
- package/scripts/qa/powershell-contract.ps1 +1 -1
- package/scripts/qa/scorecard-snapshot.sh +127 -0
- package/scripts/security/backup.sh +2 -2
- package/scripts/security/dns-doh.sh +4 -4
- package/scripts/security/encryption-check.sh +4 -4
- package/scripts/security/enforce-policies.sh +2 -2
- package/scripts/security/firewall.sh +4 -4
- package/scripts/security/lock-screen.sh +4 -4
- package/scripts/security/manage-secrets.sh +2 -2
- package/scripts/security/ssh-cert.sh +2 -2
- package/scripts/security/telemetry-kill.sh +4 -4
- package/scripts/security/usb-safety.sh +4 -4
- package/scripts/theme/extract-heic-frames.sh +114 -0
- package/scripts/theme/rebuild-themes.sh +8 -1
- package/scripts/theme/switch.sh +13 -6
- package/scripts/theme/wallpaper-sync.sh +297 -93
- package/scripts/tuning/linux.sh +2 -2
- package/scripts/tuning/macos.sh +2 -2
- package/scripts/version-sync.sh +55 -7
- package/dot_config/.module-manifest.json +0 -69
- package/dot_config/ai/identity.md +0 -23
- package/dot_config/ai/patterns/architect.md +0 -16
- package/dot_config/ai/patterns/hardener.md +0 -15
- package/dot_config/ai/patterns/refactor.md +0 -15
- package/dot_config/aider/aider.conf.yml +0 -32
- package/dot_config/alacritty/alacritty.toml.tmpl +0 -55
- package/dot_config/ansible/ansible.cfg +0 -11
- package/dot_config/atuin/config.toml.tmpl +0 -47
- package/dot_config/bat/config +0 -23
- package/dot_config/brave-flags.conf.tmpl +0 -7
- package/dot_config/btop/btop.conf +0 -16
- package/dot_config/btop/themes/tokyonight.theme +0 -34
- package/dot_config/bun/bunfig.toml.tmpl +0 -33
- package/dot_config/claude/mcp_servers.json +0 -20
- package/dot_config/containers/containers.conf +0 -14
- package/dot_config/curl/dot_curlrc +0 -18
- package/dot_config/dlv/config.yml +0 -39
- package/dot_config/docker/config.json +0 -15
- package/dot_config/dotfiles/agent-card.json +0 -29
- package/dot_config/dotfiles/agent-profiles.json +0 -92
- package/dot_config/dotfiles/boot/README.md +0 -13
- package/dot_config/dotfiles/grub/README.md +0 -13
- package/dot_config/dotfiles/lock/README.md +0 -13
- package/dot_config/dotfiles/mcp-lock.json +0 -33
- package/dot_config/dotfiles/mcp-policy.json +0 -52
- package/dot_config/dotfiles/mcp-registry.json +0 -47
- package/dot_config/dotfiles/model-registry.json +0 -20
- package/dot_config/dotfiles/policy-bundles.json +0 -38
- package/dot_config/dotfiles/prompt-registry.json +0 -16
- package/dot_config/dotfiles/versions.env +0 -18
- package/dot_config/duf/duf.conf +0 -6
- package/dot_config/duti/defaults.duti +0 -5
- package/dot_config/emoji/emoji.txt +0 -34
- package/dot_config/environment.d/50-ssh-agent.conf +0 -2
- package/dot_config/environment.d/90-wayland.conf +0 -19
- package/dot_config/fastfetch/config.jsonc +0 -28
- package/dot_config/firefox/user.js.tmpl +0 -58
- package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +0 -9
- package/dot_config/fish/completions/dot.fish.tmpl +0 -115
- package/dot_config/fish/conf.d/000-perf-cache.fish +0 -56
- package/dot_config/fish/conf.d/aliases.fish.tmpl +0 -77
- package/dot_config/fish/conf.d/direnv.fish +0 -4
- package/dot_config/fish/conf.d/env.fish.tmpl +0 -48
- package/dot_config/fish/conf.d/functions.fish.tmpl +0 -22
- package/dot_config/fish/conf.d/init.fish.tmpl +0 -172
- package/dot_config/fish/conf.d/mise-activate.fish +0 -5
- package/dot_config/fish/config.fish.tmpl +0 -44
- package/dot_config/fish/fish_plugins +0 -1
- package/dot_config/fish/functions/_.fish +0 -3
- package/dot_config/fish/functions/_cached_eval.fish +0 -131
- package/dot_config/fish/functions/_cached_eval_clear.fish +0 -17
- package/dot_config/fish/functions/als.fish +0 -46
- package/dot_config/fish/functions/bg-upgrade.fish +0 -7
- package/dot_config/fish/functions/c.fish +0 -3
- package/dot_config/fish/functions/cat.fish +0 -9
- package/dot_config/fish/functions/d.fish +0 -7
- package/dot_config/fish/functions/dot.fish +0 -34
- package/dot_config/fish/functions/h.fish +0 -3
- package/dot_config/fish/functions/l.fish +0 -7
- package/dot_config/fish/functions/la.fish +0 -7
- package/dot_config/fish/functions/ll.fish +0 -7
- package/dot_config/fish/functions/log_error.fish +0 -13
- package/dot_config/fish/functions/log_info.fish +0 -13
- package/dot_config/fish/functions/lr.fish +0 -7
- package/dot_config/fish/functions/lra.fish +0 -7
- package/dot_config/fish/functions/ls.fish +0 -7
- package/dot_config/fish/functions/lt.fish +0 -7
- package/dot_config/fish/functions/lta.fish +0 -7
- package/dot_config/fish/functions/notify-run.fish +0 -11
- package/dot_config/fish/functions/q.fish +0 -3
- package/dot_config/fish/functions/silent-run.fish +0 -7
- package/dot_config/fish/functions/yy.fish +0 -8
- package/dot_config/flatpak/flatpak.list +0 -4
- package/dot_config/fontconfig/fonts.conf.tmpl +0 -57
- package/dot_config/foot/foot.ini.tmpl +0 -33
- package/dot_config/fuzzel/fuzzel.ini.tmpl +0 -18
- package/dot_config/fzf/fzf.zsh +0 -48
- package/dot_config/gem/gemrc +0 -9
- package/dot_config/gh/config.yml +0 -12
- package/dot_config/ghostty/config.tmpl +0 -165
- package/dot_config/git/allowed_signers.tmpl +0 -18
- package/dot_config/git/attributes +0 -12
- package/dot_config/git/commit-template +0 -10
- package/dot_config/git/hooks/executable_commit-msg +0 -146
- package/dot_config/git/ignore +0 -27
- package/dot_config/gnupg/gpg-agent.conf +0 -11
- package/dot_config/go/golangci.yml +0 -118
- package/dot_config/go/gopls.json +0 -30
- package/dot_config/goose/config.yaml +0 -29
- package/dot_config/gtk-3.0/gtk.css.tmpl +0 -184
- package/dot_config/gtk-3.0/settings.ini.tmpl +0 -27
- package/dot_config/gtk-4.0/gtk.css.tmpl +0 -252
- package/dot_config/gtk-4.0/settings.ini.tmpl +0 -18
- package/dot_config/htop/htoprc +0 -20
- package/dot_config/inputrc +0 -2
- package/dot_config/ipython/profile_default/ipython_config.py +0 -19
- package/dot_config/just/justfile +0 -122
- package/dot_config/k9s/config.yaml +0 -65
- package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
- package/dot_config/kanshi/config.tmpl +0 -22
- package/dot_config/karabiner/karabiner.json +0 -14
- package/dot_config/kitty/kitty.conf.tmpl +0 -53
- package/dot_config/lazydocker/config.yml +0 -186
- package/dot_config/lazygit/config.yml +0 -35
- package/dot_config/mako/config +0 -47
- package/dot_config/mas/masapps.txt +0 -5
- package/dot_config/micro/settings.json +0 -3
- package/dot_config/mimeapps.list +0 -77
- package/dot_config/minikube/config.json +0 -13
- package/dot_config/mise/config.toml +0 -99
- package/dot_config/mongosh/mongoshrc.js +0 -68
- package/dot_config/mpv/input.conf +0 -47
- package/dot_config/mpv/mpv.conf +0 -47
- package/dot_config/mycli/myclirc +0 -67
- package/dot_config/nano/nanorc +0 -28
- package/dot_config/ncdu/config +0 -12
- package/dot_config/niri/config.kdl.tmpl +0 -327
- package/dot_config/nushell/aliases.nu +0 -18
- package/dot_config/nushell/cached_eval.nu +0 -80
- package/dot_config/nushell/completions.nu.tmpl +0 -52
- package/dot_config/nushell/config.nu.tmpl +0 -86
- package/dot_config/nushell/env.nu.tmpl +0 -102
- package/dot_config/nushell/functions.nu.tmpl +0 -17
- package/dot_config/nvim/init.lua +0 -18
- package/dot_config/nvim/lazy-lock.json +0 -58
- package/dot_config/nvim/lua/config/autocmds.lua +0 -107
- package/dot_config/nvim/lua/config/keymaps.lua +0 -92
- package/dot_config/nvim/lua/config/lazy.lua +0 -44
- package/dot_config/nvim/lua/config/options.lua +0 -49
- package/dot_config/nvim/lua/plugins/ai.lua +0 -75
- package/dot_config/nvim/lua/plugins/coding.lua +0 -216
- package/dot_config/nvim/lua/plugins/completion.lua +0 -60
- package/dot_config/nvim/lua/plugins/dap.lua +0 -412
- package/dot_config/nvim/lua/plugins/editor.lua +0 -55
- package/dot_config/nvim/lua/plugins/git.lua +0 -10
- package/dot_config/nvim/lua/plugins/lsp.lua +0 -156
- package/dot_config/nvim/lua/plugins/markdown.lua +0 -18
- package/dot_config/nvim/lua/plugins/rust.lua +0 -34
- package/dot_config/nvim/lua/plugins/sessions.lua +0 -33
- package/dot_config/nvim/lua/plugins/ui.lua +0 -509
- package/dot_config/paru/paru.conf +0 -10
- package/dot_config/pip/pip.conf.tmpl +0 -32
- package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +0 -81
- package/dot_config/pueue/pueue.yml +0 -34
- package/dot_config/pypoetry/config.toml +0 -6
- package/dot_config/pyrightconfig.json +0 -5
- package/dot_config/raycast/README.md +0 -13
- package/dot_config/redis/redisclirc +0 -41
- package/dot_config/ripgrep/ripgreprc +0 -21
- package/dot_config/shell/00-core-paths.sh.tmpl +0 -141
- package/dot_config/shell/05-core-safety.sh +0 -48
- package/dot_config/shell/10-secrets.sh +0 -41
- package/dot_config/shell/40-fzf-defaults.sh.tmpl +0 -17
- package/dot_config/shell/40-ls-colors.sh +0 -49
- package/dot_config/shell/50-logic-functions-core.sh.tmpl +0 -11
- package/dot_config/shell/50-logic-functions.sh.tmpl +0 -11
- package/dot_config/shell/51-logic-functions-extra.sh.tmpl +0 -65
- package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -121
- package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -55
- package/dot_config/shell/Brewfile +0 -207
- package/dot_config/shell/Brewfile.cask +0 -92
- package/dot_config/shell/Brewfile.cli +0 -127
- package/dot_config/shell/README.md +0 -284
- package/dot_config/shell/als_data.txt.tmpl +0 -65
- package/dot_config/shell/custom/auto_ls.zsh +0 -20
- package/dot_config/shell/custom/context_suggest.zsh +0 -68
- package/dot_config/shell/custom/error_analysis.zsh +0 -45
- package/dot_config/sops/dot_sops.yaml +0 -23
- package/dot_config/starship.toml.tmpl +0 -202
- package/dot_config/swaylock/config +0 -43
- package/dot_config/systemd/user/dotfiles-maintenance.service +0 -8
- package/dot_config/systemd/user/dotfiles-maintenance.timer +0 -11
- package/dot_config/systemd/user/pueued.service +0 -12
- package/dot_config/systemd/user/ssh-agent.service +0 -12
- package/dot_config/task/Taskfile.yml +0 -86
- package/dot_config/tflint/tflint.hcl +0 -9
- package/dot_config/tmux/tmux.conf.tmpl +0 -223
- package/dot_config/topgrade.toml.tmpl +0 -54
- package/dot_config/user-dirs.dirs +0 -10
- package/dot_config/vscode/extensions.txt +0 -11
- package/dot_config/vscode/settings.json.tmpl +0 -82
- package/dot_config/waybar/config.jsonc.tmpl +0 -90
- package/dot_config/waybar/style.css.tmpl +0 -211
- package/dot_config/wezterm/wezterm.lua.tmpl +0 -64
- package/dot_config/wget/wgetrc +0 -12
- package/dot_config/xdg-desktop-portal/niri-portals.conf +0 -5
- package/dot_config/yarn/yarnrc.yml +0 -36
- package/dot_config/yazi/keymap.toml +0 -67
- package/dot_config/yazi/theme.toml +0 -102
- package/dot_config/yazi/yazi.toml +0 -40
- package/dot_config/zathura/zathurarc +0 -52
- package/dot_config/zellij/config.kdl.tmpl +0 -79
- package/dot_config/zsh/dot_zprofile +0 -7
- package/dot_config/zsh/dot_zshenv +0 -5
- package/dot_config/zsh/dot_zshrc.tmpl +0 -688
- package/dot_config/zsh/rc.d/00-alias-shims.zsh +0 -99
- package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -18
- package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
- package/dot_config/zsh/rc.d/20-zinit.zsh +0 -65
- package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -214
- package/dot_config/zsh/rc.d/40-bell.zsh +0 -20
- package/dot_config/zsh/rc.d/50-login-fortune.zsh +0 -9
- package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +0 -32
- package/dot_local/bin/executable_ai-update +0 -195
- package/dot_local/bin/executable_ai_core +0 -152
- package/dot_local/bin/executable_antigravity +0 -11
- package/dot_local/bin/executable_b64 +0 -84
- package/dot_local/bin/executable_bm +0 -79
- package/dot_local/bin/executable_cb +0 -39
- package/dot_local/bin/executable_dot +0 -636
- package/dot_local/bin/executable_dot-ai +0 -36
- package/dot_local/bin/executable_dot-bootstrap +0 -76
- package/dot_local/bin/executable_dot-launch-or-focus +0 -52
- package/dot_local/bin/executable_dot-load-benchmark +0 -31
- package/dot_local/bin/executable_dot-load-benchmark-pty +0 -77
- package/dot_local/bin/executable_dot-theme-sync +0 -952
- package/dot_local/bin/executable_dot_completion +0 -57
- package/dot_local/bin/executable_dtags +0 -28
- package/dot_local/bin/executable_epoch +0 -67
- package/dot_local/bin/executable_extract +0 -41
- package/dot_local/bin/executable_gbd +0 -52
- package/dot_local/bin/executable_gd +0 -42
- package/dot_local/bin/executable_git-ai-commit +0 -175
- package/dot_local/bin/executable_git-ai-diff +0 -169
- package/dot_local/bin/executable_gl +0 -101
- package/dot_local/bin/executable_hash +0 -161
- package/dot_local/bin/executable_hashsum +0 -160
- package/dot_local/bin/executable_hex +0 -115
- package/dot_local/bin/executable_jsonv +0 -78
- package/dot_local/bin/executable_jwt +0 -94
- package/dot_local/bin/executable_kill-port +0 -75
- package/dot_local/bin/executable_lorem +0 -118
- package/dot_local/bin/executable_mkscript +0 -35
- package/dot_local/bin/executable_monitor +0 -56
- package/dot_local/bin/executable_myip +0 -51
- package/dot_local/bin/executable_notify +0 -24
- package/dot_local/bin/executable_open +0 -38
- package/dot_local/bin/executable_pw +0 -27
- package/dot_local/bin/executable_rec-start +0 -46
- package/dot_local/bin/executable_rec-stop +0 -35
- package/dot_local/bin/executable_regex +0 -132
- package/dot_local/bin/executable_start-niri +0 -8
- package/dot_local/bin/executable_tmux-sessionizer +0 -314
- package/dot_local/bin/executable_tour +0 -177
- package/dot_local/bin/executable_up +0 -23
- package/dot_local/bin/executable_update +0 -142
- package/dot_local/bin/executable_uuid +0 -87
- package/dot_local/bin/executable_win +0 -32
- package/dot_local/bin/executable_yamlv +0 -57
- package/dot_local/share/bash-completion/completions/dot +0 -72
- package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
- package/dot_local/share/man/man1/dot.1 +0 -149
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +0 -64
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +0 -18
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +0 -13
- package/dot_local/share/wayland-sessions/niri.desktop.tmpl +0 -6
- package/dot_local/share/zsh/completions/.keep +0 -0
- package/dot_local/share/zsh/completions/_dot +0 -287
- package/scripts/ci/check-dangerous-chmod.sh +0 -19
- package/scripts/ci/check-deps-dev.sh +0 -236
- package/scripts/ci/check-insecure-tls.sh +0 -61
- package/scripts/ci/check-regression-traceability.sh +0 -67
- package/scripts/ci/dot-cli-startup-bench.sh +0 -126
- package/scripts/ci/install-chezmoi-verified.sh +0 -67
- package/scripts/ci/lint-reusable-pins.sh +0 -78
- package/scripts/ci/run-coverage.sh +0 -451
- package/scripts/ci/validate-chezmoidata.sh +0 -25
- package/scripts/ci/validate-ci-config.sh +0 -224
- package/scripts/ci/windows-smoke-test.ps1 +0 -136
- package/scripts/docs/build-manual.sh +0 -883
- package/scripts/docs/check-manual.sh +0 -213
- package/scripts/dot/lib/bento.sh +0 -50
- package/scripts/dot/lib/log.sh +0 -200
- package/scripts/dot/lib/platform.sh +0 -112
- package/scripts/dot/lib/ui.sh +0 -650
- package/scripts/dot/lib/utils.sh +0 -377
- package/scripts/maintenance/check-updates.sh +0 -131
- package/scripts/release/package-policy-bundles.sh +0 -125
|
@@ -1,106 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
# Copyright (c) 2015-2026 Dotfiles. All rights reserved.
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
7
|
-
# Skip-rules:
|
|
8
|
-
# * Sourced libraries that declare themselves as such via a "Sourced by ..."
|
|
9
|
-
# header comment in the first 15 lines.
|
|
10
|
-
# * Explicit opt-out via `# preamble:skip` marker in the first 15 lines
|
|
11
|
-
# (used by completion files, init fragments, and other library code that
|
|
12
|
-
# is loaded into the caller's shell context).
|
|
13
|
-
# * Files under tests/ (the test runner sets shell options for its children).
|
|
14
|
-
#
|
|
15
|
-
# Invocation:
|
|
16
|
-
# * pre-commit local hook (files passed as args)
|
|
17
|
-
# * standalone: ./scripts/ci/check-shell-preamble.sh # full repo
|
|
18
|
-
# ./scripts/ci/check-shell-preamble.sh file.sh # explicit
|
|
19
|
-
# =============================================================================
|
|
20
|
-
|
|
3
|
+
# Compat shim: the canonical script moved to tools/ci/ in v0.2.503.
|
|
4
|
+
# Pinned reusable workflows on master still reference the old path;
|
|
5
|
+
# this delegates so they keep working until the next pin bump.
|
|
21
6
|
set -euo pipefail
|
|
22
|
-
|
|
23
|
-
check_one() {
|
|
24
|
-
local f="$1"
|
|
25
|
-
|
|
26
|
-
[[ -f "$f" ]] || return 0
|
|
27
|
-
|
|
28
|
-
local shebang
|
|
29
|
-
shebang="$(head -1 "$f" 2>/dev/null || true)"
|
|
30
|
-
|
|
31
|
-
# Only check files with a bash or sh shebang.
|
|
32
|
-
case "$shebang" in
|
|
33
|
-
*bash*) ;;
|
|
34
|
-
*sh) ;;
|
|
35
|
-
*) return 0 ;;
|
|
36
|
-
esac
|
|
37
|
-
|
|
38
|
-
# Skip files declaring themselves as sourced libraries or opting out.
|
|
39
|
-
if head -15 "$f" | grep -Eq '^# *(Sourced by |preamble:skip|shellcheck source-only)'; then
|
|
40
|
-
return 0
|
|
41
|
-
fi
|
|
42
|
-
|
|
43
|
-
# Skip the test suite — tests are sourced by tests/framework/test_runner.sh
|
|
44
|
-
# which manages shell options for its children.
|
|
45
|
-
case "$f" in
|
|
46
|
-
tests/*) return 0 ;;
|
|
47
|
-
# Bulk-sourced fragments. These directories contain hundreds of
|
|
48
|
-
# alias / function / PATH snippets that are sourced into the
|
|
49
|
-
# caller's shell context — adding `set -e` locally would corrupt
|
|
50
|
-
# the caller. Path-skipped en masse rather than annotated per-file
|
|
51
|
-
# (would be 300+ marker comments).
|
|
52
|
-
.chezmoitemplates/aliases/*) return 0 ;;
|
|
53
|
-
.chezmoitemplates/functions/*) return 0 ;;
|
|
54
|
-
.chezmoitemplates/paths/*) return 0 ;;
|
|
55
|
-
# dot_config/shell/* and scripts/dot/lib/* are also sourced but
|
|
56
|
-
# have explicit `# Sourced by` headers as of #854 (defense in
|
|
57
|
-
# depth — the lint also accepts them on header alone).
|
|
58
|
-
dot_local/bin/executable_dot_completion) return 0 ;; # zsh completion, sourced into shell
|
|
59
|
-
esac
|
|
60
|
-
|
|
61
|
-
# Required preamble lives within the first 50 lines (after optional docstring).
|
|
62
|
-
local preamble_re
|
|
63
|
-
case "$shebang" in
|
|
64
|
-
*bash*)
|
|
65
|
-
preamble_re='^[[:space:]]*set[[:space:]]+-([eu]+o[[:space:]]+pipefail|euo[[:space:]]+pipefail|eu[[:space:]]*$)'
|
|
66
|
-
;;
|
|
67
|
-
*sh)
|
|
68
|
-
preamble_re='^[[:space:]]*set[[:space:]]+-eu[o]?'
|
|
69
|
-
;;
|
|
70
|
-
esac
|
|
71
|
-
|
|
72
|
-
if ! head -50 "$f" | grep -Eq "$preamble_re"; then
|
|
73
|
-
echo "MISSING preamble: $f"
|
|
74
|
-
return 1
|
|
75
|
-
fi
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
fail=0
|
|
79
|
-
if [[ $# -gt 0 ]]; then
|
|
80
|
-
for f in "$@"; do
|
|
81
|
-
check_one "$f" || fail=1
|
|
82
|
-
done
|
|
83
|
-
else
|
|
84
|
-
# Full-repo scan
|
|
85
|
-
while IFS= read -r f; do
|
|
86
|
-
check_one "$f" || fail=1
|
|
87
|
-
done < <(git ls-files | grep -E '\.sh$|^dot_local/bin/executable_|^scripts/.+\.sh$')
|
|
88
|
-
fi
|
|
89
|
-
|
|
90
|
-
if [[ $fail -ne 0 ]]; then
|
|
91
|
-
cat >&2 <<'MSG'
|
|
92
|
-
|
|
93
|
-
Some shell scripts are missing the safety preamble.
|
|
94
|
-
* bash → `set -euo pipefail`
|
|
95
|
-
* sh → `set -eu`
|
|
96
|
-
|
|
97
|
-
If the file is a sourced library, add this header to its first 15 lines:
|
|
98
|
-
# Sourced by <parent>.sh; inherits set -euo pipefail
|
|
99
|
-
|
|
100
|
-
If the file is a shell init fragment / completion that must NOT enforce its own
|
|
101
|
-
options on the caller, add this marker instead:
|
|
102
|
-
# preamble:skip
|
|
103
|
-
|
|
104
|
-
MSG
|
|
105
|
-
exit 1
|
|
106
|
-
fi
|
|
7
|
+
exec bash "$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)/tools/ci/check-shell-preamble.sh" "$@"
|
|
@@ -1,57 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
# Copyright (c) 2015-2026 Dotfiles. All rights reserved.
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
|
|
3
|
+
# Compat shim: the canonical script moved to tools/ci/ in v0.2.503.
|
|
4
|
+
# Pinned reusable workflows on master still reference the old path;
|
|
5
|
+
# this delegates so they keep working until the next pin bump.
|
|
6
6
|
set -euo pipefail
|
|
7
|
-
|
|
8
|
-
check_workflow() {
|
|
9
|
-
local workflow="$1"
|
|
10
|
-
local failed=0
|
|
11
|
-
local line_no
|
|
12
|
-
|
|
13
|
-
while IFS=: read -r line_no _; do
|
|
14
|
-
local start end context
|
|
15
|
-
start=$((line_no - 16))
|
|
16
|
-
end=$((line_no + 2))
|
|
17
|
-
if [[ "$start" -lt 1 ]]; then
|
|
18
|
-
start=1
|
|
19
|
-
fi
|
|
20
|
-
|
|
21
|
-
context="$(sed -n "${start},${end}p" "$workflow")"
|
|
22
|
-
|
|
23
|
-
if [[ "$context" != *"actions/checkout"* ]]; then
|
|
24
|
-
echo "ERROR: $workflow:$line_no missing nearby checkout for gitleaks step."
|
|
25
|
-
failed=1
|
|
26
|
-
continue
|
|
27
|
-
fi
|
|
28
|
-
|
|
29
|
-
if [[ "$context" != *"fetch-depth: 1"* ]]; then
|
|
30
|
-
echo "ERROR: $workflow:$line_no gitleaks step must use checkout fetch-depth: 1."
|
|
31
|
-
failed=1
|
|
32
|
-
fi
|
|
33
|
-
|
|
34
|
-
if [[ "$context" == *"fetch-depth: 0"* ]]; then
|
|
35
|
-
echo "ERROR: $workflow:$line_no gitleaks step contains forbidden fetch-depth: 0."
|
|
36
|
-
failed=1
|
|
37
|
-
fi
|
|
38
|
-
done < <(grep -n "gitleaks/gitleaks-action" "$workflow" || true)
|
|
39
|
-
|
|
40
|
-
return "$failed"
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
main() {
|
|
44
|
-
local failed=0
|
|
45
|
-
|
|
46
|
-
check_workflow ".github/workflows/ci.yml" || failed=1
|
|
47
|
-
check_workflow ".github/workflows/security-enhanced.yml" || failed=1
|
|
48
|
-
|
|
49
|
-
if [[ "$failed" -ne 0 ]]; then
|
|
50
|
-
echo "Gitleaks checkout guard failed."
|
|
51
|
-
exit 1
|
|
52
|
-
fi
|
|
53
|
-
|
|
54
|
-
echo "Gitleaks checkout guard passed."
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
main "$@"
|
|
7
|
+
exec bash "$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)/tools/ci/guard-gitleaks-checkout.sh" "$@"
|
|
@@ -7,8 +7,8 @@ set -euo pipefail
|
|
|
7
7
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
8
8
|
REPO_ROOT="${REPO_ROOT:-$(cd "$SCRIPT_DIR/../.." && pwd)}"
|
|
9
9
|
|
|
10
|
-
# shellcheck source
|
|
11
|
-
source "$SCRIPT_DIR
|
|
10
|
+
# shellcheck source=../../lib/dot/ui.sh
|
|
11
|
+
source "$SCRIPT_DIR/../../lib/dot/ui.sh"
|
|
12
12
|
|
|
13
13
|
JSON_MODE=0
|
|
14
14
|
STRICT_MODE=0
|
|
@@ -35,8 +35,8 @@ command -v jq >/dev/null 2>&1 || {
|
|
|
35
35
|
|
|
36
36
|
a2a_card="$REPO_ROOT/.well-known/agent-card.json"
|
|
37
37
|
legacy_doc="$REPO_ROOT/.well-known/agent.json"
|
|
38
|
-
internal_card="$REPO_ROOT/dot_config/dotfiles/agent-card.json"
|
|
39
|
-
agent_profiles="$REPO_ROOT/dot_config/dotfiles/agent-profiles.json"
|
|
38
|
+
internal_card="$REPO_ROOT/defaults/dot_config/dotfiles/agent-card.json"
|
|
39
|
+
agent_profiles="$REPO_ROOT/defaults/dot_config/dotfiles/agent-profiles.json"
|
|
40
40
|
status="healthy"
|
|
41
41
|
issues=()
|
|
42
42
|
|
|
@@ -110,7 +110,7 @@ if [[ -f "$deprecations_file" ]]; then
|
|
|
110
110
|
alias_found=1
|
|
111
111
|
fi
|
|
112
112
|
function_found=0
|
|
113
|
-
if rg -q --glob '*.sh' --glob '*.aliases.sh' --glob '*.tmpl' "^[[:space:]]*(function[[:space:]]+)?${alias_name}[[:space:]]*\\(\\)" "$SCRIPT_DIR
|
|
113
|
+
if rg -q --glob '*.sh' --glob '*.aliases.sh' --glob '*.tmpl' "^[[:space:]]*(function[[:space:]]+)?${alias_name}[[:space:]]*\\(\\)" "$SCRIPT_DIR/../../defaults/.chezmoitemplates/aliases" "$SCRIPT_DIR/../../scripts/dot"; then
|
|
114
114
|
function_found=1
|
|
115
115
|
fi
|
|
116
116
|
if [[ $alias_found -eq 1 || $function_found -eq 1 ]]; then
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
set -euo pipefail
|
|
4
4
|
|
|
5
5
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
|
-
# shellcheck source
|
|
6
|
+
# shellcheck source=../../lib/dot/utils.sh
|
|
7
7
|
# shellcheck disable=SC1091
|
|
8
|
-
source "$SCRIPT_DIR
|
|
8
|
+
source "$SCRIPT_DIR/../../lib/dot/utils.sh"
|
|
9
9
|
|
|
10
10
|
src_dir="$(require_source_dir)"
|
|
11
11
|
manifest="$src_dir/scripts/diagnostics/aliases-manifest.sh"
|
|
@@ -44,12 +44,12 @@ _cleanup_files=()
|
|
|
44
44
|
trap 'rm -f "${_cleanup_files[@]}"' EXIT
|
|
45
45
|
|
|
46
46
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
47
|
-
# shellcheck source
|
|
47
|
+
# shellcheck source=../../lib/dot/ui.sh
|
|
48
48
|
# shellcheck disable=SC1091
|
|
49
|
-
source "$SCRIPT_DIR
|
|
50
|
-
# shellcheck source
|
|
49
|
+
source "$SCRIPT_DIR/../../lib/dot/ui.sh"
|
|
50
|
+
# shellcheck source=../../lib/dot/log.sh
|
|
51
51
|
# shellcheck disable=SC1091
|
|
52
|
-
source "$SCRIPT_DIR
|
|
52
|
+
source "$SCRIPT_DIR/../../lib/dot/log.sh"
|
|
53
53
|
export DOT_COMMAND="benchmark"
|
|
54
54
|
|
|
55
55
|
BENCHMARK_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/dotfiles/benchmarks"
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
|
|
8
8
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
9
|
-
# shellcheck source
|
|
9
|
+
# shellcheck source=../../lib/dot/ui.sh
|
|
10
10
|
# shellcheck disable=SC1091
|
|
11
|
-
source "$SCRIPT_DIR
|
|
11
|
+
source "$SCRIPT_DIR/../../lib/dot/ui.sh"
|
|
12
12
|
|
|
13
13
|
ui_init
|
|
14
14
|
|
|
@@ -8,9 +8,9 @@ trap 'rm -f "${_cleanup_files[@]}"' EXIT
|
|
|
8
8
|
|
|
9
9
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
10
10
|
REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
11
|
-
# shellcheck source
|
|
11
|
+
# shellcheck source=../../lib/dot/ui.sh
|
|
12
12
|
# shellcheck disable=SC1091
|
|
13
|
-
source "$SCRIPT_DIR
|
|
13
|
+
source "$SCRIPT_DIR/../../lib/dot/ui.sh"
|
|
14
14
|
ui_init
|
|
15
15
|
|
|
16
16
|
passthrough=()
|
|
@@ -19,15 +19,15 @@
|
|
|
19
19
|
set -euo pipefail
|
|
20
20
|
|
|
21
21
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
22
|
-
# shellcheck source
|
|
22
|
+
# shellcheck source=../../lib/dot/ui.sh
|
|
23
23
|
# shellcheck disable=SC1091
|
|
24
|
-
source "$SCRIPT_DIR
|
|
25
|
-
# shellcheck source
|
|
24
|
+
source "$SCRIPT_DIR/../../lib/dot/ui.sh"
|
|
25
|
+
# shellcheck source=../../lib/dot/platform.sh
|
|
26
26
|
# shellcheck disable=SC1091
|
|
27
|
-
source "$SCRIPT_DIR
|
|
28
|
-
# shellcheck source
|
|
27
|
+
source "$SCRIPT_DIR/../../lib/dot/platform.sh"
|
|
28
|
+
# shellcheck source=../../lib/dot/log.sh
|
|
29
29
|
# shellcheck disable=SC1091
|
|
30
|
-
source "$SCRIPT_DIR
|
|
30
|
+
source "$SCRIPT_DIR/../../lib/dot/log.sh"
|
|
31
31
|
export DOT_COMMAND="doctor"
|
|
32
32
|
|
|
33
33
|
ui_init
|
|
@@ -607,11 +607,11 @@ if command -v zsh >/dev/null 2>&1; then
|
|
|
607
607
|
fi
|
|
608
608
|
|
|
609
609
|
# 4. PATH length. Each entry is searched on every command resolution.
|
|
610
|
-
# A mise-managed dev machine routinely adds
|
|
611
|
-
#
|
|
612
|
-
#
|
|
610
|
+
# A mise-managed 2026 dev machine routinely adds 60-90 entries (one per
|
|
611
|
+
# installed tool version + per-shim path), so the warn/fail thresholds
|
|
612
|
+
# reflect that baseline rather than a lean default (~40).
|
|
613
613
|
path_count=$(printf '%s' "${PATH:-}" | tr ':' '\n' | grep -c . || true)
|
|
614
|
-
if [[ "$path_count" -le
|
|
614
|
+
if [[ "$path_count" -le 75 ]]; then
|
|
615
615
|
_ok "PATH length" "$path_count entries"
|
|
616
616
|
elif [[ "$path_count" -le 120 ]]; then
|
|
617
617
|
_warn "PATH length" "$path_count entries — consider pruning"
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
set -euo pipefail
|
|
31
31
|
|
|
32
32
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
33
|
-
# shellcheck source
|
|
33
|
+
# shellcheck source=../../lib/dot/ui.sh
|
|
34
34
|
# shellcheck disable=SC1091
|
|
35
|
-
source "$SCRIPT_DIR
|
|
35
|
+
source "$SCRIPT_DIR/../../lib/dot/ui.sh"
|
|
36
36
|
|
|
37
37
|
JSON_MODE=0
|
|
38
38
|
SHOW_DIFF="${DOTFILES_DRIFT_SHOW_DIFF:-0}"
|
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
|
|
8
8
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
9
|
-
# shellcheck source
|
|
9
|
+
# shellcheck source=../../lib/dot/ui.sh
|
|
10
10
|
# shellcheck disable=SC1091
|
|
11
|
-
source "$SCRIPT_DIR
|
|
12
|
-
# shellcheck source
|
|
11
|
+
source "$SCRIPT_DIR/../../lib/dot/ui.sh"
|
|
12
|
+
# shellcheck source=../../lib/dot/log.sh
|
|
13
13
|
# shellcheck disable=SC1091
|
|
14
|
-
source "$SCRIPT_DIR
|
|
14
|
+
source "$SCRIPT_DIR/../../lib/dot/log.sh"
|
|
15
15
|
|
|
16
16
|
# Portable has_command (self-contained; no dependency on utils.sh)
|
|
17
17
|
has_command() { command -v "$1" >/dev/null 2>&1; }
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
set -euo pipefail
|
|
4
4
|
|
|
5
5
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
|
-
# shellcheck source
|
|
6
|
+
# shellcheck source=../../lib/dot/ui.sh
|
|
7
7
|
# shellcheck disable=SC1091
|
|
8
|
-
source "$SCRIPT_DIR
|
|
8
|
+
source "$SCRIPT_DIR/../../lib/dot/ui.sh"
|
|
9
9
|
|
|
10
10
|
histfile="${HISTFILE:-$HOME/.zsh_history}"
|
|
11
11
|
db="${DOTFILES_HISTORY_DB:-$HOME/.local/share/dotfiles/history.sqlite}"
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
set -euo pipefail
|
|
32
32
|
|
|
33
33
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
34
|
-
# shellcheck source
|
|
34
|
+
# shellcheck source=../../lib/dot/ui.sh
|
|
35
35
|
# shellcheck disable=SC1091
|
|
36
|
-
source "$SCRIPT_DIR
|
|
36
|
+
source "$SCRIPT_DIR/../../lib/dot/ui.sh"
|
|
37
37
|
|
|
38
38
|
# Parse arguments
|
|
39
39
|
STRICT_MODE=0
|
|
@@ -93,14 +93,17 @@ log_warn() {
|
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
MCP_CONFIG="${MCP_CONFIG:-$HOME/.config/claude/mcp_servers.json}"
|
|
96
|
-
if [[ ! -f "$MCP_CONFIG"
|
|
97
|
-
|
|
96
|
+
if [[ ! -f "$MCP_CONFIG" ]]; then
|
|
97
|
+
for cand in "$HOME/.dotfiles/defaults/dot_config/claude/mcp_servers.json" \
|
|
98
|
+
"$HOME/.dotfiles/dot_config/claude/mcp_servers.json"; do
|
|
99
|
+
[[ -f "$cand" ]] && MCP_CONFIG="$cand" && break
|
|
100
|
+
done
|
|
98
101
|
fi
|
|
99
102
|
|
|
100
103
|
REPO_ROOT="${REPO_ROOT:-$(cd "$SCRIPT_DIR/../.." && pwd)}"
|
|
101
|
-
MCP_POLICY_CONFIG="${MCP_POLICY_CONFIG:-$REPO_ROOT/dot_config/dotfiles/mcp-policy.json}"
|
|
102
|
-
MCP_LOCK_CONFIG="${MCP_LOCK_CONFIG:-$REPO_ROOT/dot_config/dotfiles/mcp-lock.json}"
|
|
103
|
-
MCP_REGISTRY_CONFIG="${MCP_REGISTRY_CONFIG:-$REPO_ROOT/dot_config/dotfiles/mcp-registry.json}"
|
|
104
|
+
MCP_POLICY_CONFIG="${MCP_POLICY_CONFIG:-$REPO_ROOT/defaults/dot_config/dotfiles/mcp-policy.json}"
|
|
105
|
+
MCP_LOCK_CONFIG="${MCP_LOCK_CONFIG:-$REPO_ROOT/defaults/dot_config/dotfiles/mcp-lock.json}"
|
|
106
|
+
MCP_REGISTRY_CONFIG="${MCP_REGISTRY_CONFIG:-$REPO_ROOT/defaults/dot_config/dotfiles/mcp-registry.json}"
|
|
104
107
|
|
|
105
108
|
if [[ "$JSON_MODE" -ne 1 ]]; then
|
|
106
109
|
ui_init
|
|
@@ -9,12 +9,12 @@ _cleanup_files=()
|
|
|
9
9
|
trap 'rm -f "${_cleanup_files[@]}"' EXIT
|
|
10
10
|
|
|
11
11
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
12
|
-
# shellcheck source
|
|
12
|
+
# shellcheck source=../../lib/dot/ui.sh
|
|
13
13
|
# shellcheck disable=SC1091
|
|
14
|
-
source "$SCRIPT_DIR
|
|
15
|
-
# shellcheck source
|
|
14
|
+
source "$SCRIPT_DIR/../../lib/dot/ui.sh"
|
|
15
|
+
# shellcheck source=../../lib/dot/log.sh
|
|
16
16
|
# shellcheck disable=SC1091
|
|
17
|
-
source "$SCRIPT_DIR
|
|
17
|
+
source "$SCRIPT_DIR/../../lib/dot/log.sh"
|
|
18
18
|
export DOT_COMMAND="perf"
|
|
19
19
|
|
|
20
20
|
ui_init
|
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
|
|
8
8
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
9
|
-
# shellcheck source
|
|
9
|
+
# shellcheck source=../../lib/dot/ui.sh
|
|
10
10
|
# shellcheck disable=SC1091
|
|
11
|
-
source "$SCRIPT_DIR
|
|
12
|
-
# shellcheck source
|
|
11
|
+
source "$SCRIPT_DIR/../../lib/dot/ui.sh"
|
|
12
|
+
# shellcheck source=../../lib/dot/log.sh
|
|
13
13
|
# shellcheck disable=SC1091
|
|
14
|
-
source "$SCRIPT_DIR
|
|
14
|
+
source "$SCRIPT_DIR/../../lib/dot/log.sh"
|
|
15
15
|
export DOT_COMMAND="scorecard"
|
|
16
16
|
|
|
17
17
|
ui_init
|
|
@@ -30,9 +30,9 @@ set -euo pipefail
|
|
|
30
30
|
set +o xtrace 2>/dev/null || true
|
|
31
31
|
|
|
32
32
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
33
|
-
# shellcheck source
|
|
33
|
+
# shellcheck source=../../lib/dot/ui.sh
|
|
34
34
|
# shellcheck disable=SC1091
|
|
35
|
-
source "$SCRIPT_DIR
|
|
35
|
+
source "$SCRIPT_DIR/../../lib/dot/ui.sh"
|
|
36
36
|
|
|
37
37
|
# Parse arguments
|
|
38
38
|
VERBOSE=true
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
set -euo pipefail
|
|
6
6
|
|
|
7
7
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
8
|
-
# shellcheck source
|
|
8
|
+
# shellcheck source=../../lib/dot/ui.sh
|
|
9
9
|
# shellcheck disable=SC1091
|
|
10
|
-
source "$SCRIPT_DIR
|
|
10
|
+
source "$SCRIPT_DIR/../../lib/dot/ui.sh"
|
|
11
11
|
ui_init
|
|
12
12
|
|
|
13
13
|
ui_header "Dotfiles Smoke Tests"
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
|
|
8
8
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
9
|
-
# shellcheck source
|
|
9
|
+
# shellcheck source=../../lib/dot/ui.sh
|
|
10
10
|
# shellcheck disable=SC1091
|
|
11
|
-
source "$SCRIPT_DIR
|
|
11
|
+
source "$SCRIPT_DIR/../../lib/dot/ui.sh"
|
|
12
12
|
|
|
13
13
|
ui_init
|
|
14
14
|
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
|
|
8
8
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
9
|
-
# shellcheck source
|
|
9
|
+
# shellcheck source=../../lib/dot/ui.sh
|
|
10
10
|
# shellcheck disable=SC1091
|
|
11
|
-
source "$SCRIPT_DIR
|
|
11
|
+
source "$SCRIPT_DIR/../../lib/dot/ui.sh"
|
|
12
12
|
|
|
13
13
|
ui_init
|
|
14
14
|
ui_dot_banner "Diagnostics"
|
|
@@ -43,8 +43,8 @@ resolve_dot_bin() {
|
|
|
43
43
|
elif [[ -d "$HOME/.local/share/chezmoi" ]]; then
|
|
44
44
|
src_dir="$HOME/.local/share/chezmoi"
|
|
45
45
|
fi
|
|
46
|
-
if [[ -n "$src_dir" && -x "$src_dir/
|
|
47
|
-
printf "%s\n" "$src_dir/
|
|
46
|
+
if [[ -n "$src_dir" && -x "$src_dir/bin/dot" ]]; then
|
|
47
|
+
printf "%s\n" "$src_dir/bin/dot"
|
|
48
48
|
return
|
|
49
49
|
fi
|
|
50
50
|
return 1
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
|
|
8
8
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
9
|
-
# shellcheck source
|
|
9
|
+
# shellcheck source=../../lib/dot/ui.sh
|
|
10
10
|
# shellcheck disable=SC1091
|
|
11
|
-
source "$SCRIPT_DIR
|
|
11
|
+
source "$SCRIPT_DIR/../../lib/dot/ui.sh"
|
|
12
12
|
|
|
13
13
|
ui_init
|
|
14
14
|
|
|
@@ -13,12 +13,12 @@ REPO_ROOT="${REPO_ROOT:-$(cd "$SCRIPT_DIR/../.." && pwd)}"
|
|
|
13
13
|
# without the env-prefix dance that confuses shellcheck (SC2097/SC2098).
|
|
14
14
|
export REPO_ROOT
|
|
15
15
|
|
|
16
|
-
# shellcheck source
|
|
17
|
-
source "$SCRIPT_DIR
|
|
18
|
-
# shellcheck source
|
|
19
|
-
source "$SCRIPT_DIR
|
|
20
|
-
# shellcheck source
|
|
21
|
-
source "$SCRIPT_DIR
|
|
16
|
+
# shellcheck source=../../lib/dot/ui.sh
|
|
17
|
+
source "$SCRIPT_DIR/../../lib/dot/ui.sh"
|
|
18
|
+
# shellcheck source=../../lib/dot/platform.sh
|
|
19
|
+
source "$SCRIPT_DIR/../../lib/dot/platform.sh"
|
|
20
|
+
# shellcheck source=../../lib/dot/utils.sh
|
|
21
|
+
source "$SCRIPT_DIR/../../lib/dot/utils.sh"
|
|
22
22
|
|
|
23
23
|
JSON_MODE=0
|
|
24
24
|
WRITE_PATH=""
|
|
@@ -72,14 +72,14 @@ platform_id="$(dot_platform_id)"
|
|
|
72
72
|
host_os="$(dot_host_os)"
|
|
73
73
|
arch="$(uname -m)"
|
|
74
74
|
hostname_value="$(hostname 2>/dev/null || true)"
|
|
75
|
-
agent_profile_file="$REPO_ROOT/dot_config/dotfiles/agent-profiles.json"
|
|
76
|
-
agent_card_file="$REPO_ROOT/dot_config/dotfiles/agent-card.json"
|
|
75
|
+
agent_profile_file="$REPO_ROOT/defaults/dot_config/dotfiles/agent-profiles.json"
|
|
76
|
+
agent_card_file="$REPO_ROOT/defaults/dot_config/dotfiles/agent-card.json"
|
|
77
77
|
agent_state_file="${AGENT_STATE_FILE:-$HOME/.config/dotfiles/agent-mode.env}"
|
|
78
|
-
policy_bundles_file="$REPO_ROOT/dot_config/dotfiles/policy-bundles.json"
|
|
79
|
-
model_registry_file="$REPO_ROOT/dot_config/dotfiles/model-registry.json"
|
|
80
|
-
prompt_registry_file="$REPO_ROOT/dot_config/dotfiles/prompt-registry.json"
|
|
81
|
-
mcp_policy_file="$REPO_ROOT/dot_config/dotfiles/mcp-policy.json"
|
|
82
|
-
mcp_registry_file="$REPO_ROOT/dot_config/dotfiles/mcp-registry.json"
|
|
78
|
+
policy_bundles_file="$REPO_ROOT/defaults/dot_config/dotfiles/policy-bundles.json"
|
|
79
|
+
model_registry_file="$REPO_ROOT/defaults/dot_config/dotfiles/model-registry.json"
|
|
80
|
+
prompt_registry_file="$REPO_ROOT/defaults/dot_config/dotfiles/prompt-registry.json"
|
|
81
|
+
mcp_policy_file="$REPO_ROOT/defaults/dot_config/dotfiles/mcp-policy.json"
|
|
82
|
+
mcp_registry_file="$REPO_ROOT/defaults/dot_config/dotfiles/mcp-registry.json"
|
|
83
83
|
signing_format="$(git config --global gpg.format 2>/dev/null || echo ssh)"
|
|
84
84
|
signing_key="$(git config --global user.signingkey 2>/dev/null || true)"
|
|
85
85
|
allowed_signers="$(git config --global gpg.ssh.allowedSignersFile 2>/dev/null || echo "$HOME/.config/git/allowed_signers")"
|
|
@@ -94,7 +94,7 @@ if [[ -z "$current_profile" ]] && [[ -f "$agent_profile_file" ]]; then
|
|
|
94
94
|
current_profile="$(jq -r '.defaultProfile // "ask"' "$agent_profile_file")"
|
|
95
95
|
fi
|
|
96
96
|
|
|
97
|
-
MCP_CONFIG="$REPO_ROOT/dot_config/claude/mcp_servers.json"
|
|
97
|
+
MCP_CONFIG="$REPO_ROOT/defaults/dot_config/claude/mcp_servers.json"
|
|
98
98
|
export MCP_CONFIG
|
|
99
99
|
mcp_summary="$(bash "$REPO_ROOT/scripts/diagnostics/mcp-doctor.sh" --strict --json)"
|
|
100
100
|
|
|
@@ -9,6 +9,14 @@ set -euo pipefail
|
|
|
9
9
|
# These functions are sourced by meta.sh for dispatch.
|
|
10
10
|
|
|
11
11
|
_agent_repo_root() {
|
|
12
|
+
# Post-Phase-4b: agent profile/card JSON ships under defaults/dot_config/.
|
|
13
|
+
# Prefer the chezmoi source dir so callers can append dot_config/... directly.
|
|
14
|
+
local dir
|
|
15
|
+
dir="$(resolve_chezmoi_source_dir)"
|
|
16
|
+
[[ -n "$dir" ]] && {
|
|
17
|
+
printf '%s\n' "$dir"
|
|
18
|
+
return
|
|
19
|
+
}
|
|
12
20
|
require_source_dir
|
|
13
21
|
}
|
|
14
22
|
|
|
@@ -25,8 +25,8 @@ set -euo pipefail
|
|
|
25
25
|
|
|
26
26
|
# shellcheck disable=SC1091
|
|
27
27
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
28
|
-
source "$SCRIPT_DIR
|
|
29
|
-
source "$SCRIPT_DIR
|
|
28
|
+
source "$SCRIPT_DIR/../../../lib/dot/ui.sh"
|
|
29
|
+
source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
|
|
30
30
|
|
|
31
31
|
_agents_repo_root() {
|
|
32
32
|
# Resolve the chezmoi source dir (where CLAUDE.md/AGENTS.md live).
|
|
@@ -40,16 +40,26 @@ _agents_repo_root() {
|
|
|
40
40
|
# we treat that as "not a match" and fall through to git, rather
|
|
41
41
|
# than accepting the wrong candidate.
|
|
42
42
|
local candidate=""
|
|
43
|
+
# Sanity probe: post-Phase-4b the data file lives at
|
|
44
|
+
# defaults/.chezmoidata.toml; older deployments kept it at the root.
|
|
45
|
+
_has_chezmoidata() {
|
|
46
|
+
[[ -f "$1/.chezmoidata.toml" || -f "$1/defaults/.chezmoidata.toml" ]]
|
|
47
|
+
}
|
|
43
48
|
if command -v chezmoi >/dev/null 2>&1; then
|
|
44
49
|
candidate="$(chezmoi source-path 2>/dev/null || true)"
|
|
45
|
-
|
|
50
|
+
# chezmoi source-path returns defaults/ when .chezmoiroot is set;
|
|
51
|
+
# peel back one level so callers receive the actual repo root.
|
|
52
|
+
if [[ -n "$candidate" && -f "$candidate/.chezmoidata.toml" && "$(basename "$candidate")" == "defaults" ]]; then
|
|
53
|
+
candidate="$(dirname "$candidate")"
|
|
54
|
+
fi
|
|
55
|
+
if [[ -n "$candidate" ]] && ! _has_chezmoidata "$candidate"; then
|
|
46
56
|
candidate=""
|
|
47
57
|
fi
|
|
48
58
|
fi
|
|
49
59
|
if [[ -z "$candidate" ]]; then
|
|
50
60
|
candidate="$(git -C "$PWD" rev-parse --show-toplevel 2>/dev/null || true)"
|
|
51
61
|
fi
|
|
52
|
-
if [[ -z "$candidate" ]] ||
|
|
62
|
+
if [[ -z "$candidate" ]] || ! _has_chezmoidata "$candidate"; then
|
|
53
63
|
return 1
|
|
54
64
|
fi
|
|
55
65
|
printf '%s\n' "$candidate"
|