@sebastienrousseau/dotfiles 0.2.499 → 0.2.501

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) hide show
  1. package/CHANGELOG.md +452 -0
  2. package/LICENSE +1283 -0
  3. package/README.md +322 -0
  4. package/docs/.vitepress/reports/localization-readability-audit.md +73 -0
  5. package/docs/AI.md +108 -0
  6. package/docs/CNAME +1 -0
  7. package/docs/COPYRIGHT +4 -3
  8. package/docs/NAMING_CONVENTIONS.md +102 -0
  9. package/docs/README.md +82 -0
  10. package/docs/_config.yml +59 -0
  11. package/docs/adr/ADR-001-ci-cd-pipeline.md +118 -0
  12. package/docs/adr/ADR-002-shell-performance.md +130 -0
  13. package/docs/adr/ADR-003-security-first.md +158 -0
  14. package/docs/adr/ADR-004-cli-architecture.md +171 -0
  15. package/docs/adr/ADR-005-chezmoi-choice.md +99 -0
  16. package/docs/adr/ADR-006-shell-selection.md +124 -0
  17. package/docs/adr/ADR-007-multi-shell-parity.md +62 -0
  18. package/docs/adr/ADR-008-alias-system-architecture.md +95 -0
  19. package/docs/adr/ADR-009-wallpaper-driven-theming.md +131 -0
  20. package/docs/adr/ADR-010-starship-transient-prompt.md +144 -0
  21. package/docs/adr/ADR-011-nushell-tier3-keep.md +144 -0
  22. package/docs/adr/README.md +39 -0
  23. package/docs/architecture/ARCHITECTURE.md +117 -0
  24. package/docs/architecture/INTEROP.md +44 -0
  25. package/docs/architecture/REPO_LAYOUT.md +241 -0
  26. package/docs/architecture/WALKTHROUGH.md +86 -0
  27. package/docs/architecture/fleet-deployment.md +77 -0
  28. package/docs/archive/EUXIS_2026_REVIEW.md +127 -0
  29. package/docs/archive/LEGACY_ROADMAP.md +160 -0
  30. package/docs/archive/MILESTONE_v0.2.493.md +47 -0
  31. package/docs/{PLAN.md → archive/PLAN.md} +50 -12
  32. package/docs/archive/REPO_AUDIT.md +31 -0
  33. package/docs/guides/INSTALL.md +144 -0
  34. package/docs/guides/NEOVIM_IDE_GUIDE.md +61 -0
  35. package/docs/guides/THEMING.md +230 -0
  36. package/docs/guides/TROUBLESHOOTING.md +176 -0
  37. package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +792 -0
  38. package/docs/index.md +43 -0
  39. package/docs/interop/A2A.md +39 -0
  40. package/docs/interop/POWERSHELL.md +102 -0
  41. package/docs/manual/00-introduction.md +89 -0
  42. package/docs/manual/01-concepts/01-architecture.md +138 -0
  43. package/docs/manual/01-concepts/02-trust-model.md +182 -0
  44. package/docs/manual/01-concepts/03-theme-engine.md +186 -0
  45. package/docs/manual/01-concepts/04-fleet.md +148 -0
  46. package/docs/manual/01-concepts/05-self-healing.md +204 -0
  47. package/docs/manual/02-tutorials/01-first-install.md +197 -0
  48. package/docs/manual/02-tutorials/02-add-wallpaper.md +216 -0
  49. package/docs/manual/02-tutorials/03-create-profile.md +244 -0
  50. package/docs/manual/02-tutorials/04-encrypt-secret.md +281 -0
  51. package/docs/manual/02-tutorials/05-deploy-fleet.md +283 -0
  52. package/docs/manual/03-reference/01-dot-cli.md +417 -0
  53. package/docs/manual/03-reference/02-config-files.md +265 -0
  54. package/docs/manual/03-reference/03-environment.md +124 -0
  55. package/docs/manual/03-reference/04-templates.md +190 -0
  56. package/docs/manual/03-reference/05-feature-flags.md +128 -0
  57. package/docs/manual/04-cookbook/01-recipes.md +285 -0
  58. package/docs/manual/04-cookbook/02-troubleshooting.md +351 -0
  59. package/docs/manual/04-cookbook/03-faq.md +175 -0
  60. package/docs/manual/05-appendices/A-platform-matrix.md +101 -0
  61. package/docs/manual/05-appendices/B-security-checklist.md +84 -0
  62. package/docs/manual/05-appendices/C-glossary.md +40 -0
  63. package/docs/manual/05-appendices/D-bibliography.md +58 -0
  64. package/docs/manual/05-appendices/E-license.md +38 -0
  65. package/docs/manual/_toc.yml +58 -0
  66. package/docs/manual/command-index.md +62 -0
  67. package/docs/manual/concept-index.md +168 -0
  68. package/docs/operations/ATTESTATION.md +44 -0
  69. package/docs/operations/CI_CADENCE.md +107 -0
  70. package/docs/operations/CI_COMPOSITES.md +156 -0
  71. package/docs/operations/COMPLETIONS.md +123 -0
  72. package/docs/operations/COVERAGE.md +148 -0
  73. package/docs/operations/DRIFT.md +107 -0
  74. package/docs/operations/MAINTENANCE.md +63 -0
  75. package/docs/operations/MIGRATION.md +109 -0
  76. package/docs/operations/OPERATIONS.md +188 -0
  77. package/docs/operations/PERFORMANCE.md +133 -0
  78. package/docs/operations/RELIABILITY.md +122 -0
  79. package/docs/{ROADMAP.md → operations/ROADMAP.md} +57 -39
  80. package/docs/operations/TESTING.md +199 -0
  81. package/docs/operations/TRACEABILITY.md +35 -0
  82. package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +65 -0
  83. package/docs/operations/VERSION_SYNC.md +393 -0
  84. package/docs/reference/ALIASES.md +131 -0
  85. package/docs/reference/ALIASES_CHEATSHEET.md +32 -0
  86. package/docs/reference/ALIASES_DEPRECATIONS.md +13 -0
  87. package/docs/reference/FEATURES.md +66 -0
  88. package/docs/reference/FONTS.md +112 -0
  89. package/docs/reference/PROFILES.md +69 -0
  90. package/docs/reference/SCREENSHOTS.md +121 -0
  91. package/docs/reference/SCRIPTS.md +71 -0
  92. package/docs/reference/SUPPORT_MATRIX.md +80 -0
  93. package/docs/reference/THEMES.md +117 -0
  94. package/docs/reference/TOOLS.md +109 -0
  95. package/docs/reference/UTILS.md +155 -0
  96. package/docs/security/AI_ACT_COMPLIANCE.md +94 -0
  97. package/docs/security/AUDIT_BYPASS.md +103 -0
  98. package/docs/security/AUTOMATION_SECRETS.md +26 -0
  99. package/docs/security/CI_EGRESS_ALLOWLIST.md +127 -0
  100. package/docs/security/COMPLIANCE.md +458 -0
  101. package/docs/security/DEPS_DEV_EXCEPTIONS.md +86 -0
  102. package/docs/security/ENCRYPTION.md +57 -0
  103. package/docs/security/FMEA.md +159 -0
  104. package/docs/security/HISTORY_FILTERING.md +132 -0
  105. package/docs/security/INCIDENT_RESPONSE.md +579 -0
  106. package/docs/security/INSTALL_VERIFICATION.md +122 -0
  107. package/docs/security/KEYS.md +49 -0
  108. package/docs/security/KEY_ROTATION.md +223 -0
  109. package/docs/security/MCP_POLICY.md +78 -0
  110. package/docs/security/POLICY_RELEASES.md +37 -0
  111. package/docs/security/README.md +28 -0
  112. package/docs/security/SCORECARD.md +80 -0
  113. package/docs/security/SECRETS.md +158 -0
  114. package/docs/security/SECURITY.md +45 -0
  115. package/docs/security/SECURITY_CHECKLIST.md +55 -0
  116. package/docs/security/SHELL_EXEMPTIONS.md +145 -0
  117. package/docs/security/SOUP_REGISTER.md +36 -0
  118. package/docs/security/THREAT_MODEL.md +130 -0
  119. package/docs/security/VERIFICATION_VALIDATION.md +228 -0
  120. package/docs/themes/README.md +10 -0
  121. package/docs/themes/VISUAL_INTEGRITY_REPORT.md +30 -0
  122. package/docs/themes/hero-shot.svg +78 -0
  123. package/dot_config/.module-manifest.json +69 -0
  124. package/dot_config/ai/identity.md +23 -0
  125. package/dot_config/ai/patterns/architect.md +16 -0
  126. package/dot_config/ai/patterns/hardener.md +15 -0
  127. package/dot_config/ai/patterns/refactor.md +15 -0
  128. package/dot_config/aider/aider.conf.yml +32 -0
  129. package/dot_config/alacritty/alacritty.toml.tmpl +55 -0
  130. package/dot_config/ansible/ansible.cfg +11 -0
  131. package/dot_config/atuin/config.toml.tmpl +47 -0
  132. package/dot_config/bat/config +23 -0
  133. package/dot_config/brave-flags.conf.tmpl +7 -0
  134. package/dot_config/btop/btop.conf +16 -0
  135. package/dot_config/btop/themes/tokyonight.theme +34 -0
  136. package/dot_config/bun/bunfig.toml.tmpl +33 -0
  137. package/dot_config/claude/mcp_servers.json +20 -0
  138. package/dot_config/containers/containers.conf +14 -0
  139. package/dot_config/curl/dot_curlrc +18 -0
  140. package/dot_config/dlv/config.yml +39 -0
  141. package/dot_config/docker/config.json +15 -0
  142. package/dot_config/dotfiles/agent-card.json +29 -0
  143. package/dot_config/dotfiles/agent-profiles.json +92 -0
  144. package/dot_config/dotfiles/boot/README.md +13 -0
  145. package/dot_config/dotfiles/grub/README.md +13 -0
  146. package/dot_config/dotfiles/lock/README.md +13 -0
  147. package/dot_config/dotfiles/mcp-lock.json +33 -0
  148. package/dot_config/dotfiles/mcp-policy.json +52 -0
  149. package/dot_config/dotfiles/mcp-registry.json +47 -0
  150. package/dot_config/dotfiles/model-registry.json +20 -0
  151. package/dot_config/dotfiles/policy-bundles.json +38 -0
  152. package/dot_config/dotfiles/prompt-registry.json +16 -0
  153. package/dot_config/dotfiles/versions.env +18 -0
  154. package/dot_config/duf/duf.conf +6 -0
  155. package/dot_config/duti/defaults.duti +5 -0
  156. package/dot_config/emoji/emoji.txt +34 -0
  157. package/dot_config/environment.d/50-ssh-agent.conf +2 -0
  158. package/dot_config/environment.d/90-wayland.conf +19 -0
  159. package/dot_config/fastfetch/config.jsonc +28 -0
  160. package/dot_config/firefox/user.js.tmpl +58 -0
  161. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +9 -0
  162. package/dot_config/fish/completions/dot.fish.tmpl +115 -0
  163. package/dot_config/fish/conf.d/000-perf-cache.fish +56 -0
  164. package/dot_config/fish/conf.d/aliases.fish.tmpl +77 -0
  165. package/dot_config/fish/conf.d/env.fish.tmpl +48 -0
  166. package/dot_config/fish/conf.d/functions.fish.tmpl +22 -0
  167. package/dot_config/fish/conf.d/init.fish.tmpl +172 -0
  168. package/dot_config/fish/config.fish.tmpl +44 -0
  169. package/dot_config/fish/fish_plugins +1 -0
  170. package/dot_config/fish/functions/_.fish +3 -0
  171. package/dot_config/fish/functions/_cached_eval.fish +131 -0
  172. package/dot_config/fish/functions/_cached_eval_clear.fish +17 -0
  173. package/dot_config/fish/functions/als.fish +46 -0
  174. package/dot_config/fish/functions/bg-upgrade.fish +7 -0
  175. package/dot_config/fish/functions/c.fish +3 -0
  176. package/dot_config/fish/functions/cat.fish +9 -0
  177. package/dot_config/fish/functions/d.fish +7 -0
  178. package/dot_config/fish/functions/dot.fish +34 -0
  179. package/dot_config/fish/functions/h.fish +3 -0
  180. package/dot_config/fish/functions/l.fish +7 -0
  181. package/dot_config/fish/functions/la.fish +7 -0
  182. package/dot_config/fish/functions/ll.fish +7 -0
  183. package/dot_config/fish/functions/log_error.fish +13 -0
  184. package/dot_config/fish/functions/log_info.fish +13 -0
  185. package/dot_config/fish/functions/lr.fish +7 -0
  186. package/dot_config/fish/functions/lra.fish +7 -0
  187. package/dot_config/fish/functions/ls.fish +7 -0
  188. package/dot_config/fish/functions/lt.fish +7 -0
  189. package/dot_config/fish/functions/lta.fish +7 -0
  190. package/dot_config/fish/functions/notify-run.fish +11 -0
  191. package/dot_config/fish/functions/q.fish +3 -0
  192. package/dot_config/fish/functions/silent-run.fish +7 -0
  193. package/dot_config/fish/functions/yy.fish +8 -0
  194. package/dot_config/flatpak/flatpak.list +4 -0
  195. package/dot_config/fontconfig/fonts.conf.tmpl +57 -0
  196. package/dot_config/foot/foot.ini.tmpl +33 -0
  197. package/dot_config/fuzzel/fuzzel.ini.tmpl +18 -0
  198. package/dot_config/fzf/fzf.zsh +48 -0
  199. package/dot_config/gem/gemrc +9 -0
  200. package/dot_config/gh/config.yml +12 -0
  201. package/dot_config/ghostty/config.tmpl +165 -0
  202. package/dot_config/git/allowed_signers.tmpl +18 -0
  203. package/dot_config/git/attributes +12 -0
  204. package/dot_config/git/commit-template +10 -0
  205. package/dot_config/git/hooks/executable_commit-msg +146 -0
  206. package/dot_config/git/ignore +27 -0
  207. package/dot_config/gnupg/gpg-agent.conf +11 -0
  208. package/dot_config/go/golangci.yml +118 -0
  209. package/dot_config/go/gopls.json +30 -0
  210. package/dot_config/goose/config.yaml +29 -0
  211. package/dot_config/gtk-3.0/gtk.css.tmpl +184 -0
  212. package/dot_config/gtk-3.0/settings.ini.tmpl +27 -0
  213. package/dot_config/gtk-4.0/gtk.css.tmpl +252 -0
  214. package/dot_config/gtk-4.0/settings.ini.tmpl +18 -0
  215. package/dot_config/htop/htoprc +20 -0
  216. package/dot_config/inputrc +2 -0
  217. package/dot_config/ipython/profile_default/ipython_config.py +19 -0
  218. package/dot_config/just/justfile +122 -0
  219. package/dot_config/k9s/config.yaml +65 -0
  220. package/dot_config/k9s/skins/catppuccin-mocha.yaml +116 -0
  221. package/dot_config/kanshi/config.tmpl +22 -0
  222. package/dot_config/karabiner/karabiner.json +14 -0
  223. package/dot_config/kitty/kitty.conf.tmpl +53 -0
  224. package/dot_config/lazydocker/config.yml +186 -0
  225. package/dot_config/lazygit/config.yml +35 -0
  226. package/dot_config/mako/config +47 -0
  227. package/dot_config/mas/masapps.txt +5 -0
  228. package/dot_config/micro/settings.json +3 -0
  229. package/dot_config/mimeapps.list +77 -0
  230. package/dot_config/minikube/config.json +13 -0
  231. package/dot_config/mise/config.toml +99 -0
  232. package/dot_config/mongosh/mongoshrc.js +68 -0
  233. package/dot_config/mpv/input.conf +47 -0
  234. package/dot_config/mpv/mpv.conf +47 -0
  235. package/dot_config/mycli/myclirc +67 -0
  236. package/dot_config/nano/nanorc +28 -0
  237. package/dot_config/ncdu/config +12 -0
  238. package/dot_config/niri/config.kdl.tmpl +327 -0
  239. package/dot_config/nushell/aliases.nu +18 -0
  240. package/dot_config/nushell/cached_eval.nu +80 -0
  241. package/dot_config/nushell/completions.nu.tmpl +52 -0
  242. package/dot_config/nushell/config.nu.tmpl +86 -0
  243. package/dot_config/nushell/env.nu.tmpl +102 -0
  244. package/dot_config/nushell/functions.nu.tmpl +17 -0
  245. package/dot_config/nvim/init.lua +18 -0
  246. package/dot_config/nvim/lazy-lock.json +58 -0
  247. package/dot_config/nvim/lua/config/autocmds.lua +107 -0
  248. package/dot_config/nvim/lua/config/keymaps.lua +92 -0
  249. package/dot_config/nvim/lua/config/lazy.lua +44 -0
  250. package/dot_config/nvim/lua/config/options.lua +49 -0
  251. package/dot_config/nvim/lua/plugins/ai.lua +75 -0
  252. package/dot_config/nvim/lua/plugins/coding.lua +216 -0
  253. package/dot_config/nvim/lua/plugins/completion.lua +60 -0
  254. package/dot_config/nvim/lua/plugins/dap.lua +412 -0
  255. package/dot_config/nvim/lua/plugins/editor.lua +55 -0
  256. package/dot_config/nvim/lua/plugins/git.lua +10 -0
  257. package/dot_config/nvim/lua/plugins/lsp.lua +156 -0
  258. package/dot_config/nvim/lua/plugins/markdown.lua +18 -0
  259. package/dot_config/nvim/lua/plugins/rust.lua +34 -0
  260. package/dot_config/nvim/lua/plugins/sessions.lua +33 -0
  261. package/dot_config/nvim/lua/plugins/ui.lua +509 -0
  262. package/dot_config/paru/paru.conf +10 -0
  263. package/dot_config/pip/pip.conf.tmpl +32 -0
  264. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +81 -0
  265. package/dot_config/pueue/pueue.yml +34 -0
  266. package/dot_config/pypoetry/config.toml +6 -0
  267. package/dot_config/pyrightconfig.json +5 -0
  268. package/dot_config/raycast/README.md +13 -0
  269. package/dot_config/redis/redisclirc +41 -0
  270. package/dot_config/ripgrep/ripgreprc +21 -0
  271. package/dot_config/shell/00-core-paths.sh.tmpl +134 -0
  272. package/dot_config/shell/05-core-safety.sh +48 -0
  273. package/dot_config/shell/10-secrets.sh +41 -0
  274. package/dot_config/shell/40-fzf-defaults.sh.tmpl +17 -0
  275. package/dot_config/shell/40-ls-colors.sh +49 -0
  276. package/dot_config/shell/50-logic-functions-core.sh.tmpl +11 -0
  277. package/dot_config/shell/50-logic-functions.sh.tmpl +11 -0
  278. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +65 -0
  279. package/dot_config/shell/90-ux-aliases.sh.tmpl +121 -0
  280. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +55 -0
  281. package/dot_config/shell/Brewfile +207 -0
  282. package/dot_config/shell/Brewfile.cask +92 -0
  283. package/dot_config/shell/Brewfile.cli +127 -0
  284. package/dot_config/shell/README.md +284 -0
  285. package/dot_config/shell/als_data.txt.tmpl +65 -0
  286. package/dot_config/shell/custom/auto_ls.zsh +20 -0
  287. package/dot_config/shell/custom/context_suggest.zsh +68 -0
  288. package/dot_config/shell/custom/error_analysis.zsh +45 -0
  289. package/dot_config/sops/dot_sops.yaml +23 -0
  290. package/dot_config/starship.toml.tmpl +202 -0
  291. package/dot_config/swaylock/config +43 -0
  292. package/dot_config/systemd/user/dotfiles-maintenance.service +8 -0
  293. package/dot_config/systemd/user/dotfiles-maintenance.timer +11 -0
  294. package/dot_config/systemd/user/pueued.service +12 -0
  295. package/dot_config/systemd/user/ssh-agent.service +12 -0
  296. package/dot_config/task/Taskfile.yml +86 -0
  297. package/dot_config/tflint/tflint.hcl +9 -0
  298. package/dot_config/tmux/tmux.conf.tmpl +223 -0
  299. package/dot_config/topgrade.toml.tmpl +54 -0
  300. package/dot_config/user-dirs.dirs +10 -0
  301. package/dot_config/vscode/extensions.txt +11 -0
  302. package/dot_config/vscode/settings.json.tmpl +82 -0
  303. package/dot_config/waybar/config.jsonc.tmpl +90 -0
  304. package/dot_config/waybar/style.css.tmpl +211 -0
  305. package/dot_config/wezterm/wezterm.lua.tmpl +64 -0
  306. package/dot_config/wget/wgetrc +12 -0
  307. package/dot_config/xdg-desktop-portal/niri-portals.conf +5 -0
  308. package/dot_config/yarn/yarnrc.yml +36 -0
  309. package/dot_config/yazi/keymap.toml +67 -0
  310. package/dot_config/yazi/theme.toml +102 -0
  311. package/dot_config/yazi/yazi.toml +40 -0
  312. package/dot_config/zathura/zathurarc +52 -0
  313. package/dot_config/zellij/config.kdl.tmpl +79 -0
  314. package/dot_config/zsh/dot_zprofile +7 -0
  315. package/dot_config/zsh/dot_zshenv +5 -0
  316. package/dot_config/zsh/dot_zshrc.tmpl +635 -0
  317. package/dot_config/zsh/rc.d/00-alias-shims.zsh +99 -0
  318. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +18 -0
  319. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +28 -0
  320. package/dot_config/zsh/rc.d/20-zinit.zsh +65 -0
  321. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +214 -0
  322. package/dot_config/zsh/rc.d/40-bell.zsh +20 -0
  323. package/dot_config/zsh/rc.d/50-login-fortune.zsh +9 -0
  324. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +32 -0
  325. package/dot_local/bin/executable_ai-update +195 -0
  326. package/dot_local/bin/executable_ai_core +152 -0
  327. package/dot_local/bin/executable_antigravity +11 -0
  328. package/dot_local/bin/executable_b64 +84 -0
  329. package/dot_local/bin/executable_bm +79 -0
  330. package/dot_local/bin/executable_cb +39 -0
  331. package/dot_local/bin/executable_dot +596 -0
  332. package/dot_local/bin/executable_dot-ai +36 -0
  333. package/dot_local/bin/executable_dot-bootstrap +77 -0
  334. package/dot_local/bin/executable_dot-launch-or-focus +52 -0
  335. package/dot_local/bin/executable_dot-load-benchmark +31 -0
  336. package/dot_local/bin/executable_dot-load-benchmark-pty +77 -0
  337. package/dot_local/bin/executable_dot-theme-sync +952 -0
  338. package/dot_local/bin/executable_dot_completion +57 -0
  339. package/dot_local/bin/executable_dtags +28 -0
  340. package/dot_local/bin/executable_epoch +67 -0
  341. package/dot_local/bin/executable_extract +41 -0
  342. package/dot_local/bin/executable_gbd +52 -0
  343. package/dot_local/bin/executable_gd +42 -0
  344. package/dot_local/bin/executable_git-ai-commit +175 -0
  345. package/dot_local/bin/executable_git-ai-diff +169 -0
  346. package/dot_local/bin/executable_gl +101 -0
  347. package/dot_local/bin/executable_hash +161 -0
  348. package/dot_local/bin/executable_hashsum +160 -0
  349. package/dot_local/bin/executable_hex +115 -0
  350. package/dot_local/bin/executable_jsonv +78 -0
  351. package/dot_local/bin/executable_jwt +94 -0
  352. package/dot_local/bin/executable_kill-port +75 -0
  353. package/dot_local/bin/executable_lorem +118 -0
  354. package/dot_local/bin/executable_mkscript +35 -0
  355. package/dot_local/bin/executable_monitor +56 -0
  356. package/dot_local/bin/executable_myip +51 -0
  357. package/dot_local/bin/executable_notify +24 -0
  358. package/dot_local/bin/executable_open +38 -0
  359. package/dot_local/bin/executable_pw +27 -0
  360. package/dot_local/bin/executable_rec-start +46 -0
  361. package/dot_local/bin/executable_rec-stop +35 -0
  362. package/dot_local/bin/executable_regex +132 -0
  363. package/dot_local/bin/executable_start-niri +8 -0
  364. package/dot_local/bin/executable_tmux-sessionizer +314 -0
  365. package/dot_local/bin/executable_tour +177 -0
  366. package/dot_local/bin/executable_up +23 -0
  367. package/dot_local/bin/executable_update +142 -0
  368. package/dot_local/bin/executable_uuid +87 -0
  369. package/dot_local/bin/executable_win +32 -0
  370. package/dot_local/bin/executable_yamlv +57 -0
  371. package/dot_local/share/bash-completion/completions/dot +72 -0
  372. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  373. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  374. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  375. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  376. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  377. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  378. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  379. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  380. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  381. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  382. package/dot_local/share/man/man1/dot.1 +149 -0
  383. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +64 -0
  384. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +18 -0
  385. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +13 -0
  386. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +6 -0
  387. package/dot_local/share/zsh/completions/.keep +0 -0
  388. package/dot_local/share/zsh/completions/_dot +283 -0
  389. package/install.sh +350 -0
  390. package/package.json +1 -1
  391. package/scripts/ci/check-copyright-headers.sh +96 -0
  392. package/scripts/ci/check-dangerous-chmod.sh +19 -0
  393. package/scripts/ci/check-deps-dev.sh +236 -0
  394. package/scripts/ci/check-insecure-tls.sh +61 -0
  395. package/scripts/ci/check-regression-traceability.sh +67 -0
  396. package/scripts/ci/check-shell-preamble.sh +106 -0
  397. package/scripts/ci/guard-gitleaks-checkout.sh +57 -0
  398. package/scripts/ci/install-chezmoi-verified.sh +64 -0
  399. package/scripts/ci/run-coverage.sh +362 -0
  400. package/scripts/ci/validate-chezmoidata.sh +25 -0
  401. package/scripts/ci/validate-ci-config.sh +224 -0
  402. package/scripts/demo/record.sh +42 -0
  403. package/scripts/diagnostics/a2a-conformance.sh +162 -0
  404. package/scripts/diagnostics/alias-governance.sh +137 -0
  405. package/scripts/diagnostics/aliases-cheatsheet.sh +73 -0
  406. package/scripts/diagnostics/aliases-manifest.sh +31 -0
  407. package/scripts/diagnostics/benchmark.sh +381 -0
  408. package/scripts/diagnostics/conflicts.sh +72 -0
  409. package/scripts/diagnostics/doctor-unified.sh +38 -0
  410. package/scripts/diagnostics/doctor.sh +709 -0
  411. package/scripts/diagnostics/drift-dashboard.sh +201 -0
  412. package/scripts/diagnostics/health.sh +614 -0
  413. package/scripts/diagnostics/history-analysis.sh +85 -0
  414. package/scripts/diagnostics/mcp-doctor.sh +575 -0
  415. package/scripts/diagnostics/perf.sh +452 -0
  416. package/scripts/diagnostics/scorecard.sh +118 -0
  417. package/scripts/diagnostics/secret-governance.sh +58 -0
  418. package/scripts/diagnostics/security-score.sh +438 -0
  419. package/scripts/diagnostics/smoke-test.sh +87 -0
  420. package/scripts/diagnostics/snapshot.sh +89 -0
  421. package/scripts/diagnostics/verify.sh +107 -0
  422. package/scripts/{verify_state.sh → diagnostics/verify_state.sh} +22 -22
  423. package/scripts/diagnostics/version-locks.sh +79 -0
  424. package/scripts/diagnostics/workstation-attestation.sh +186 -0
  425. package/scripts/docs/build-manual.sh +883 -0
  426. package/scripts/docs/check-manual.sh +213 -0
  427. package/scripts/dot/commands/agent.sh +474 -0
  428. package/scripts/dot/commands/ai.sh +481 -0
  429. package/scripts/dot/commands/aliases.sh +250 -0
  430. package/scripts/dot/commands/appearance.sh +80 -0
  431. package/scripts/dot/commands/core.sh +185 -0
  432. package/scripts/dot/commands/diagnostics.sh +229 -0
  433. package/scripts/dot/commands/fleet.sh +399 -0
  434. package/scripts/dot/commands/lint.sh +177 -0
  435. package/scripts/dot/commands/manual.sh +168 -0
  436. package/scripts/dot/commands/meta.sh +248 -0
  437. package/scripts/dot/commands/patterns.sh +54 -0
  438. package/scripts/dot/commands/restore.sh +231 -0
  439. package/scripts/dot/commands/secrets.sh +223 -0
  440. package/scripts/dot/commands/security.sh +76 -0
  441. package/scripts/dot/commands/tools.sh +469 -0
  442. package/scripts/dot/data/alias-deprecations.tsv +2 -0
  443. package/scripts/dot/lib/bento.sh +50 -0
  444. package/scripts/dot/lib/log.sh +200 -0
  445. package/scripts/dot/lib/platform.sh +99 -0
  446. package/scripts/dot/lib/ui.sh +518 -0
  447. package/scripts/dot/lib/utils.sh +377 -0
  448. package/scripts/fonts/install-nerd-fonts.sh +68 -0
  449. package/scripts/fonts/patch-fonts.sh +35 -0
  450. package/scripts/git-hooks/install.sh +11 -0
  451. package/scripts/git-hooks/pre-commit +12 -0
  452. package/scripts/git-hooks/pre-commit-audit.sh +145 -0
  453. package/scripts/git-hooks/pre-push +92 -0
  454. package/scripts/git-hooks/prepare-commit-msg +29 -0
  455. package/scripts/lib/secrets_provider.sh +158 -0
  456. package/scripts/maintenance/check-updates.sh +131 -0
  457. package/scripts/ops/ai-setup.sh +55 -0
  458. package/scripts/ops/bundle.sh +77 -0
  459. package/scripts/ops/chaos.sh +49 -0
  460. package/scripts/ops/chezmoi-apply.sh +270 -0
  461. package/scripts/ops/chezmoi-diff.sh +15 -0
  462. package/scripts/ops/chezmoi-remove.sh +45 -0
  463. package/scripts/ops/chezmoi-update.sh +48 -0
  464. package/scripts/ops/heal-chezmoi.sh +86 -0
  465. package/scripts/ops/heal-system.sh +128 -0
  466. package/scripts/ops/heal-tools.sh +340 -0
  467. package/scripts/ops/heal.sh +222 -0
  468. package/scripts/ops/post-apply-repair.sh +106 -0
  469. package/scripts/ops/prewarm.sh +127 -0
  470. package/scripts/ops/release.sh +252 -0
  471. package/scripts/ops/rollback.sh +589 -0
  472. package/scripts/ops/setup.sh +137 -0
  473. package/scripts/ops/teleport.sh +33 -0
  474. package/scripts/qa/coverage-baseline.sh +60 -0
  475. package/scripts/qa/docs-coverage.sh +111 -0
  476. package/scripts/qa/powershell-contract.ps1 +95 -0
  477. package/scripts/qa/reliability-audit.sh +138 -0
  478. package/scripts/qa/traceability-coverage.sh +116 -0
  479. package/scripts/qa/validate-examples.sh +26 -0
  480. package/scripts/qa/wsl-contract.sh +11 -0
  481. package/scripts/release/package-policy-bundles.sh +125 -0
  482. package/scripts/secrets/age-init.sh +70 -0
  483. package/scripts/secrets/create-secrets-file.sh +45 -0
  484. package/scripts/secrets/encrypt-ssh-key.sh +43 -0
  485. package/scripts/security/backup.sh +57 -0
  486. package/scripts/security/dns-doh.sh +51 -0
  487. package/scripts/security/encryption-check.sh +54 -0
  488. package/scripts/security/enforce-policies.sh +334 -0
  489. package/scripts/security/firewall.sh +90 -0
  490. package/scripts/security/lock-configs.sh +57 -0
  491. package/scripts/security/lock-screen.sh +55 -0
  492. package/scripts/security/manage-secrets.sh +428 -0
  493. package/scripts/security/ssh-cert.sh +203 -0
  494. package/scripts/security/telemetry-kill.sh +50 -0
  495. package/scripts/security/usb-safety.sh +51 -0
  496. package/scripts/theme/apply-gnome-theme.sh +328 -0
  497. package/scripts/theme/extract-theme.py +677 -0
  498. package/scripts/theme/install-boot-logo.sh +62 -0
  499. package/scripts/theme/install-catppuccin-themes.sh +370 -0
  500. package/scripts/theme/install-cursors.sh +25 -0
  501. package/scripts/theme/install-file-icons.sh +26 -0
  502. package/scripts/theme/install-grub-theme.sh +61 -0
  503. package/scripts/theme/install-lock-icon.sh +30 -0
  504. package/scripts/theme/merge-wallpaper.sh +145 -0
  505. package/scripts/theme/rebuild-themes.sh +309 -0
  506. package/scripts/theme/switch.sh +431 -0
  507. package/scripts/theme/wallpaper-rotate.sh +136 -0
  508. package/scripts/theme/wallpaper-sync.sh +397 -0
  509. package/scripts/tools/cmatrix.sh +21 -0
  510. package/scripts/{detect-collisions.py → tools/detect-collisions.py} +2 -2
  511. package/scripts/tools/emoji-picker.sh +48 -0
  512. package/scripts/tools/figlet-banner.sh +18 -0
  513. package/scripts/tools/log-rotate.sh +30 -0
  514. package/scripts/tools/lolcat-wrap.sh +19 -0
  515. package/scripts/tools/pipes.sh +48 -0
  516. package/scripts/tuning/linux.sh +185 -0
  517. package/scripts/tuning/macos.sh +55 -0
  518. package/scripts/uninstall.sh +85 -0
  519. package/scripts/version-sync.sh +487 -0
  520. package/templates/chezmoi-data/geekom-a9.toml.example +21 -0
  521. package/templates/chezmoi-data/mac-m1.toml.example +16 -0
  522. package/templates/chezmoi-data/mac-t2-linux.toml.example +21 -0
  523. package/templates/chezmoi-data/surface-pro-7p.toml.example +21 -0
  524. package/templates/projects/go/.github/workflows/ci.yml +31 -0
  525. package/templates/projects/go/README.md +4 -0
  526. package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +1 -0
  527. package/templates/projects/go/go.sum +0 -0
  528. package/templates/projects/molecule/README.md +7 -0
  529. package/templates/projects/molecule/converge.yml +7 -0
  530. package/templates/projects/molecule/molecule.yml +16 -0
  531. package/templates/projects/node/.github/workflows/ci.yml +30 -0
  532. package/templates/projects/node/README.md +4 -0
  533. package/templates/projects/node/package-lock.json +12 -0
  534. package/templates/projects/node/src/index.js +1 -0
  535. package/templates/projects/packer/README.md +15 -0
  536. package/templates/projects/packer/main.pkr.hcl +15 -0
  537. package/templates/projects/python/.github/workflows/ci.yml +34 -0
  538. package/templates/projects/python/README.md +4 -0
  539. package/templates/projects/python/pyproject.toml +15 -0
  540. package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
  541. package/templates/projects/python/tests/test_basic.py +1 -0
  542. package/docs/ARCHITECTURE.md +0 -62
  543. package/docs/COMPLIANCE.md +0 -47
  544. package/docs/OPERATIONS.md +0 -103
  545. package/docs/PR_DESCRIPTION.md +0 -150
  546. package/docs/ROADMAP_legacy.md +0 -556
  547. package/docs/SECURITY_CHECKLIST.md +0 -25
  548. package/docs/TASK.md +0 -99
  549. package/docs/WALKTHROUGH.md +0 -46
  550. package/scripts/backup.sh +0 -142
  551. package/scripts/banner.sh +0 -20
  552. package/scripts/benchmark.sh +0 -20
  553. package/scripts/build.sh +0 -41
  554. package/scripts/clean.sh +0 -31
  555. package/scripts/compile.sh +0 -54
  556. package/scripts/copy.sh +0 -108
  557. package/scripts/doctor.sh +0 -79
  558. package/scripts/dotfiles.sh +0 -63
  559. package/scripts/download.sh +0 -35
  560. package/scripts/help.sh +0 -57
  561. package/scripts/lock-configs.sh +0 -57
  562. package/scripts/package.sh +0 -46
  563. package/scripts/ssh.sh +0 -55
  564. package/scripts/teleport.sh +0 -23
  565. package/scripts/test-aliases.sh +0 -25
  566. package/scripts/test_smoke.sh +0 -88
  567. package/scripts/unpack.sh +0 -28
@@ -0,0 +1,596 @@
1
+ #!/usr/bin/env bash
2
+ # shellcheck disable=SC2034
3
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
4
+ set -euo pipefail
5
+
6
+ # Dotfiles CLI Entry Point - v0.2.501
7
+
8
+ # Ensure XDG Base Directory variables are set
9
+ export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
10
+ export XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
11
+ export XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
12
+ export XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}"
13
+
14
+ # Ensure PIPX paths are set
15
+ export PIPX_HOME="${XDG_DATA_HOME}/pipx"
16
+ export PIPX_BIN_DIR="${HOME}/.local/bin"
17
+
18
+ # Ensure Nix is in PATH if installed
19
+ if [ -e "${HOME}/.nix-profile/etc/profile.d/nix.sh" ]; then
20
+ # shellcheck disable=SC1091
21
+ . "${HOME}/.nix-profile/etc/profile.d/nix.sh"
22
+ fi
23
+
24
+ VERSION="0.2.501"
25
+
26
+ COMMAND="${1:-}"
27
+ if [ -n "${1:-}" ]; then
28
+ shift
29
+ fi
30
+
31
+ # Resolve source directory (needed early for ui.sh sourcing)
32
+ _resolve_source_dir() {
33
+ local dir=""
34
+ local script_path=""
35
+ local script_dir=""
36
+ local repo_candidate=""
37
+
38
+ if script_path="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd 2>/dev/null)"; then
39
+ script_dir="$script_path"
40
+ repo_candidate="$(cd "$script_dir/../.." && pwd 2>/dev/null || true)"
41
+ if [ -n "$repo_candidate" ] && [ -f "$repo_candidate/scripts/dot/lib/ui.sh" ]; then
42
+ dir="$repo_candidate"
43
+ fi
44
+ fi
45
+
46
+ if [ -z "$dir" ] && [ -n "${CHEZMOI_SOURCE_DIR:-}" ] && [ -d "$CHEZMOI_SOURCE_DIR" ]; then
47
+ dir="$CHEZMOI_SOURCE_DIR"
48
+ elif [ -z "$dir" ] && [ -d "$HOME/.dotfiles" ]; then
49
+ dir="$HOME/.dotfiles"
50
+ elif [ -z "$dir" ] && [ -d "$HOME/.local/share/chezmoi" ]; then
51
+ dir="$HOME/.local/share/chezmoi"
52
+ elif [ -z "$dir" ] && [ -f "package.json" ] && grep -q '"name": "dotfiles"' package.json 2>/dev/null; then
53
+ dir="$(pwd)"
54
+ fi
55
+ echo "$dir"
56
+ }
57
+
58
+ # Source shared UI library for consistent colors, checkmarks, and formatting.
59
+ # Falls back to minimal inline definitions if the source directory is unavailable.
60
+ _DOT_SRC="$(_resolve_source_dir)"
61
+ if [ -n "$_DOT_SRC" ] && [ -f "$_DOT_SRC/scripts/dot/lib/ui.sh" ]; then
62
+ # shellcheck source=../../scripts/dot/lib/ui.sh
63
+ # shellcheck disable=SC1091
64
+ source "$_DOT_SRC/scripts/dot/lib/ui.sh"
65
+ ui_init
66
+ else
67
+ # Minimal fallback when source dir is not available (e.g. first install)
68
+ # shellcheck disable=SC2034
69
+ UI_COLOR=0
70
+ BOLD=""
71
+ NORMAL=""
72
+ RED=""
73
+ GREEN=""
74
+ YELLOW=""
75
+ BLUE=""
76
+ CYAN=""
77
+ GRAY=""
78
+ MAGENTA=""
79
+ ui_init() {
80
+ if [[ -t 1 ]] && [[ -z "${NO_COLOR:-}" ]]; then
81
+ UI_COLOR=1
82
+ BASH_BOLD=$'\033[1m'
83
+ NORMAL=$'\033[0m'
84
+ RED=$'\033[38;5;196m'
85
+ GREEN=$'\033[38;5;42m'
86
+ YELLOW=$'\033[38;5;214m'
87
+ BLUE=$'\033[38;5;63m'
88
+ CYAN=$'\033[38;5;81m'
89
+ GRAY=$'\033[38;5;244m'
90
+ MAGENTA=$'\033[38;5;211m'
91
+ fi
92
+ }
93
+ ui_header() {
94
+ ui_init
95
+ printf "\n %s%s%s\n\n" "${BOLD}${BLUE}" "$1" "$NORMAL"
96
+ }
97
+ ui_section() {
98
+ ui_init
99
+ printf " %s%s%s\n" "${BOLD}${CYAN}" "$1" "$NORMAL"
100
+ }
101
+ ui_cmd() {
102
+ ui_init
103
+ printf " %s•%s %s%-16s%s %s\n" "$GREEN" "$NORMAL" "$GREEN" "$1" "$NORMAL" "$2"
104
+ }
105
+ ui_ok() {
106
+ ui_init
107
+ printf " %s✓%s %-35s %s\n" "$GREEN" "$NORMAL" "$1" "${2:-}"
108
+ }
109
+ ui_info() {
110
+ ui_init
111
+ printf " %s•%s %-35s %s\n" "$GRAY" "$NORMAL" "$1" "${2:-}"
112
+ }
113
+ ui_meta() {
114
+ ui_init
115
+ printf " %s•%s %-14s %s\n" "$GRAY" "$NORMAL" "$1" "${2:-}"
116
+ }
117
+ ui_kv() {
118
+ ui_init
119
+ printf " %s%-14s%s %s\n" "$BOLD" "$1" "$NORMAL" "$2"
120
+ }
121
+ ui_warn() {
122
+ ui_init
123
+ printf " %s⚠%s %-35s %s\n" "$YELLOW" "$NORMAL" "$1" "${2:-}"
124
+ }
125
+ ui_err() {
126
+ ui_init
127
+ printf " %s✗%s %-35s %s\n" "$RED" "$NORMAL" "$1" "${2:-}" >&2
128
+ }
129
+ ui_clear_line() { printf '\r\033[K'; }
130
+ ui_toast() { case "$1" in success | ok) ui_ok "$2" ;; error | err) ui_err "$2" ;; warn) ui_warn "$2" ;; *) ui_info "$2" ;; esac }
131
+ fi
132
+
133
+ # Alias ui_fail → ui_err for backward compatibility in this script
134
+ ui_fail() { ui_err "$@"; }
135
+
136
+ ui_dot_banner() {
137
+ local section="${1:-Dot}"
138
+ if declare -F ui_product_banner >/dev/null 2>&1; then
139
+ ui_product_banner "Dot • $section"
140
+ return 0
141
+ fi
142
+ if declare -F ui_logo_dot >/dev/null 2>&1; then
143
+ ui_logo_dot "Dot • $section"
144
+ fi
145
+ }
146
+
147
+ show_version() {
148
+ ui_dot_banner "Reference"
149
+ ui_header "Dotfiles Version"
150
+ echo ""
151
+ ui_ok "Version" ".dotfiles $VERSION"
152
+ if [[ -n "$_DOT_SRC" ]]; then
153
+ ui_ok "Source" "$_DOT_SRC"
154
+ fi
155
+ }
156
+
157
+ _dot_help_overview_specs() {
158
+ cat <<'EOF'
159
+ Start Here|sync|Apply dotfiles to this machine.|Use after clone or after changes.
160
+ Start Here|doctor|Check the environment and surface issues.|Use when something feels off.
161
+ Start Here|learn|Open the guided tour.|Best first stop for new users.
162
+ Start Here|help|Show the overview or help for one command.|Use `dot help <command>` for detail.
163
+ Daily Use|status|Show local drift.|See what changed since the last apply.
164
+ Daily Use|diff|Preview pending changes.|Safe way to inspect before applying.
165
+ Daily Use|edit|Open the source directory.|Use the configured editor.
166
+ Daily Use|upgrade|Update tools and dotfiles.|Runs the managed upgrade path.
167
+ Inspect and Repair|doctor|Run the main health check.|Supports deeper audit flags.
168
+ Inspect and Repair|attest|Export workstation evidence.|Use `--json|-j`, `--write|-w`, or `--fleet-store|-F`.
169
+ Inspect and Repair|rollback|Return to a previous state.|Use after a broken change.
170
+ Inspect and Repair|lint|Check shell script quality.|Supports `--check|-c` and `--fix|-f`.
171
+ AI and Agents|ai|Show installed AI tools.|Launches the AI status view.
172
+ AI and Agents|mcp|Inspect MCP policy and registry.|Supports `--strict|-s` and `--json|-j`.
173
+ AI and Agents|mode|Show or set the agent profile.|Profiles: ask, plan, apply, audit.
174
+ AI and Agents|agent|Show agent metadata, logs, checkpoints, and conformance.|Use for card, log, checkpoint, and conformance.
175
+ Fleet|fleet|Show fleet node status, drift, and namespace.|Enterprise fleet management.
176
+ Configuration|env|Show managed tool versions.|Backed by mise.
177
+ Configuration|profile|Show or switch the active profile.|Use for machine-specific behavior.
178
+ Configuration|secrets|Edit or manage encrypted secrets.|Subcommands cover set, get, list, load.
179
+ Configuration|theme|Switch the terminal theme.|Light or dark.
180
+ Reference|search|Find commands by keyword.|Example: `dot search security`.
181
+ Reference|help all|Show the full command reference.|Lists every public command.
182
+ Reference|version|Show version information.|Matches `dot --version`.
183
+ EOF
184
+ }
185
+
186
+ _dot_help_specs() {
187
+ cat <<'EOF'
188
+ Core|sync|Apply dotfiles (alias for apply; --pull to fetch, --check to preview)|Use after clone or after changes.
189
+ Core|add|Add a file to chezmoi source|Start managing a file in the source tree.
190
+ Core|diff|Show chezmoi diff with exclusions|Preview pending changes before apply.
191
+ Core|status|Show configuration drift (chezmoi status)|Inspect the current managed state.
192
+ Core|edit|Open chezmoi source in $EDITOR|Jump into the source tree quickly.
193
+ Core|cd|Print source directory path (use: cd $(dot cd))|Useful in shell scripts and jump helpers.
194
+ Core|commit|AI-powered conventional commit|Wraps the commit helper flow.
195
+ Diagnostics|doctor|Deep audit: tools, paths, portability, AI analysis (--ai|-A)|Main health and repair entrypoint.
196
+ Diagnostics|attest|Export workstation attestation evidence (--json|-j, --write|-w, --fleet-store|-F)|Produce machine-readable evidence.
197
+ Diagnostics|score|System health and security scorecard|Quick high-level readout.
198
+ Diagnostics|snapshot|Capture baseline system snapshot|Use before larger changes.
199
+ Diagnostics|chaos|Simulate config corruption to test self-healing|Advanced validation path.
200
+ Diagnostics|bundle|Create offline archive of dotfiles environment|Portable support artifact.
201
+ Diagnostics|rollback|Rollback dotfiles to a previous state|Use after a bad apply.
202
+ Diagnostics|history|Shell history analysis|Inspect command usage patterns.
203
+ Diagnostics|perf|Show performance mode and quick timing|Startup and shell timing surface.
204
+ Diagnostics|metrics|Show recent observability metrics (JSONL)|Recent runtime events and counters.
205
+ Diagnostics|load-bench|Measure time to heavy-layer readiness|Performance benchmarking helper.
206
+ AI|ai|AI CLI status & launcher|Overview of installed AI tools.
207
+ AI|ai-setup|Interactive setup for all AI CLI tools|Initial AI tool bootstrap.
208
+ AI|ai-query|Context-aware RAG query over your dotfiles|Ask questions over the repo state.
209
+ AI|mcp|Inspect MCP policy, supply chain, and registry|Governance and validation surface.
210
+ AI|mode|Set or inspect agent operating profiles (ask/plan/apply/audit)|Bounded-autonomy controls.
211
+ AI|agent|Profile-aware execution, agent card, a2a-card, session log, checkpoints, and conformance|Agent metadata and local audit trail.
212
+ AI|cl|Claude CLI with context patterns|Context-aware Anthropic bridge.
213
+ AI|copilot|GitHub Copilot CLI with context patterns|Context-aware Copilot bridge.
214
+ AI|gemini|Gemini CLI with context patterns|Context-aware Gemini bridge.
215
+ AI|kiro|Kiro CLI with context patterns|Context-aware Kiro bridge.
216
+ AI|sgpt|Shell-GPT with context patterns|Context-aware Shell-GPT bridge.
217
+ AI|ollama|Ollama with context patterns|Context-aware local-model bridge.
218
+ AI|opencode|OpenCode with context patterns|Context-aware OpenCode bridge.
219
+ AI|aider|Aider with context patterns|Context-aware Aider bridge.
220
+ Tools|env|Tool versions (mise)|Managed runtime versions.
221
+ Tools|profile|Show/switch configuration profile|Profile-specific behavior.
222
+ Tools|keys|Keybindings (sign-check: verify git signing)|Keyboard and signing references.
223
+ Tools|tools|Show or install nix packages|Package helper entrypoint.
224
+ Tools|new|Create a new project from a template|Project scaffold helper.
225
+ Tools|sandbox|Launch a safe sandbox preview (Docker/Podman)|Disposable environment for testing.
226
+ Tools|lint|Lint shell scripts (--fix|-f to auto-format, --check|-c for CI)|Shell quality gate.
227
+ Tools|learn|Start the interactive tour of your new tools|Guided onboarding.
228
+ Tools|docs|Show repo README|Open the main documentation.
229
+ Appearance|theme|Switch terminal theme (dark/light)|Terminal appearance control.
230
+ Appearance|wallpaper|Apply a wallpaper from your library [macOS,Linux]|Desktop customization helper.
231
+ Appearance|fonts|Install Nerd Fonts (JetBrainsMono by default)|Font bootstrap helper.
232
+ Appearance|tune|Apply OS tuning (opt-in) [macOS,Linux]|Host tuning entrypoint.
233
+ Secrets|secrets-init|Initialize age key for secrets|First-time secrets setup.
234
+ Secrets|secrets|Edit encrypted secrets (age)|Primary secrets entrypoint.
235
+ Secrets|secrets-create|Create an encrypted secrets file|Create a new secret payload.
236
+ Secrets|ssh-key|Encrypt an SSH key locally with age|Protect local SSH keys.
237
+ Secrets|ssh-cert|Manage short-lived SSH certificates|SSH certificate workflow.
238
+ Security (opt-in)|backup|Create a compressed backup of your home|Safety copy before risky changes.
239
+ Security (opt-in)|encrypt-check|Check disk encryption status|Host security inspection.
240
+ Security (opt-in)|firewall|Apply firewall hardening [macOS,Linux]|Opt-in host hardening.
241
+ Security (opt-in)|telemetry|Disable OS telemetry [macOS,Linux]|Privacy-focused host control.
242
+ Security (opt-in)|dns-doh|Enable DNS-over-HTTPS [macOS,Linux]|Secure DNS helper.
243
+ Security (opt-in)|lock-screen|Enforce lock screen idle settings [Linux]|Linux workstation hardening.
244
+ Security (opt-in)|usb-safety|Disable automount for removable media [Linux]|Linux removable-media hardening.
245
+ Fleet|fleet|Show fleet node status, drift, and namespace (--json for machine output)|Fleet management surface.
246
+ Fleet|fleet drift|Check for configuration drift across managed files|Drift detection and reporting.
247
+ Fleet|fleet namespace|Show or set the active namespace for multi-tenant isolation|Namespace management.
248
+ Fleet|fleet events|Show recent fleet events from local event log|Fleet observability.
249
+ Meta|upgrade|Update system toolchains, plugins, and dotfiles|Managed upgrade flow.
250
+ Meta|packages|List installed packages and package managers|Inventory and package surfaces.
251
+ Meta|cache-refresh|Regenerate shell caches for ultra-fast startup|Refresh generated shell state.
252
+ Meta|search|Find commands by keyword|Find the right command quickly.
253
+ Meta|version|Show version information.|Matches `dot --version`.
254
+ Meta|help|Show this help message|Overview or focused command help.
255
+ EOF
256
+ }
257
+
258
+ _dot_help_details() {
259
+ cat <<'EOF'
260
+ sync|Apply the current dotfiles to this machine.|dot sync\ndot sync --check
261
+ add|Start managing a file with chezmoi.|dot add ~/.gitconfig
262
+ diff|Show pending dotfile changes before applying.|dot diff
263
+ status|Show local drift in the managed home state.|dot status
264
+ edit|Open the dotfiles source tree in the configured editor.|dot edit
265
+ upgrade|Run the managed update path for tools and dotfiles.|dot upgrade
266
+ doctor|Inspect shell tools, paths, portability, and health.|dot doctor\ndot doctor --score\ndot doctor -H
267
+ attest|Export workstation attestation evidence.|dot attest\ndot attest --json\ndot attest -F /srv/dotfiles-fleet
268
+ health|Run the health dashboard with optional fixes.|dot health -v\ndot health -j\ndot health -f
269
+ perf|Measure shell performance and emit structured timing.|dot perf -j -r 1\ndot perf -p\ndot perf -t 200
270
+ security-score|Assess workstation security posture.|dot security-score -j\ndot security-score -q
271
+ snapshot|Capture the current workstation snapshot.|dot snapshot -b\ndot snapshot -b -f
272
+ verify|Run post-change verification checks.|dot verify\ndot verify -s
273
+ restore|Restore from a backup or git ref.|dot restore -l\ndot restore -L\ndot restore -g HEAD~1
274
+ rollback|Restore a previous configuration snapshot.|dot rollback
275
+ lint|Run shell quality checks for the repo.|dot lint\ndot lint -c\ndot lint -f
276
+ ai|Show installed AI tools and entrypoints.|dot ai
277
+ mcp|Inspect MCP configuration, policy, and registry.|dot mcp\ndot mcp -s -j\ndot mcp registry
278
+ mode|Inspect or switch the active agent mode.|dot mode list\ndot mode show ask\ndot mode set audit
279
+ agent|Inspect agent metadata or run profile-aware actions.|dot agent card\ndot agent a2a-card --validate\ndot agent checkpoint list\ndot agent conformance --strict --json
280
+ fleet|Show fleet node status, drift, and namespace.|dot fleet\ndot fleet status --json\ndot fleet drift\ndot fleet namespace set engineering
281
+ env|Show managed tool versions and runtime state.|dot env
282
+ profile|Show or switch the active configuration profile.|dot profile
283
+ secrets|Manage encrypted secrets and environment loading.|dot secrets edit\ndot secrets list\ndot secrets load ai
284
+ theme|Switch the terminal theme.|dot theme light\ndot theme dark
285
+ learn|Open the guided tour of the toolchain.|dot learn
286
+ search|Find commands by keyword across the public surface.|dot search ai
287
+ help|Show the overview or a focused command reference.|dot help\ndot help doctor\ndot help all
288
+ --version|Show the installed dotfiles version.|dot --version\ndot version
289
+ version|Show the installed dotfiles version.|dot --version\ndot version
290
+ EOF
291
+ }
292
+
293
+ _dot_help_summary() {
294
+ local command_name="${1:-}"
295
+ awk -F'|' -v command_name="$command_name" '$1 == command_name { print $2; exit }' < <(_dot_help_details)
296
+ }
297
+
298
+ _dot_help_examples() {
299
+ local command_name="${1:-}"
300
+ awk -F'|' -v command_name="$command_name" '$1 == command_name { print $3; exit }' < <(_dot_help_details)
301
+ }
302
+
303
+ _dot_command_routes() {
304
+ cat <<'EOF'
305
+ sync|core
306
+ apply|core
307
+ update|core
308
+ add|core
309
+ diff|core
310
+ status|core
311
+ remove|core
312
+ cd|core
313
+ edit|core
314
+ commit|core
315
+ clean-cache|core
316
+ doctor|diagnostics
317
+ scorecard|diagnostics
318
+ score|diagnostics
319
+ snapshot|diagnostics
320
+ history|diagnostics
321
+ perf|diagnostics
322
+ load-bench|diagnostics
323
+ load-bench-pty|diagnostics
324
+ chaos|diagnostics
325
+ bundle|diagnostics
326
+ rollback|diagnostics
327
+ heal|diagnostics
328
+ health|diagnostics
329
+ health-check|diagnostics
330
+ smoke-test|diagnostics
331
+ verify|diagnostics
332
+ attest|diagnostics
333
+ attestation|diagnostics
334
+ security-score|diagnostics
335
+ drift|diagnostics
336
+ benchmark|diagnostics
337
+ intelligence|diagnostics
338
+ conflicts|diagnostics
339
+ locks|diagnostics
340
+ restore|diagnostics
341
+ metrics|diagnostics
342
+ ai|ai
343
+ ai-setup|ai
344
+ ai-query|ai
345
+ cl|ai
346
+ claude|ai
347
+ codex|ai
348
+ copilot|ai
349
+ gemini|ai
350
+ goose|ai
351
+ kiro|ai
352
+ sgpt|ai
353
+ ollama|ai
354
+ opencode|ai
355
+ aider|ai
356
+ autohand|ai
357
+ vibe|ai
358
+ qwen|ai
359
+ zai|ai
360
+ env|tools
361
+ profile|tools
362
+ tools|tools
363
+ new|tools
364
+ packages|tools
365
+ aliases|tools
366
+ alias-check|tools
367
+ setup|tools
368
+ log-rotate|tools
369
+ lint|tools
370
+ theme|appearance
371
+ wallpaper|appearance
372
+ fonts|appearance
373
+ tune|appearance
374
+ secrets-init|secrets
375
+ secrets|secrets
376
+ secrets-create|secrets
377
+ ssh-key|secrets
378
+ ssh-cert|secrets
379
+ backup|security
380
+ encrypt-check|security
381
+ firewall|security
382
+ telemetry|security
383
+ dns-doh|security
384
+ lock-screen|security
385
+ usb-safety|security
386
+ upgrade|meta
387
+ cache-refresh|meta
388
+ prewarm|meta
389
+ docs|meta
390
+ learn|meta
391
+ keys|meta
392
+ sandbox|meta
393
+ mcp|meta
394
+ mode|meta
395
+ agent|meta
396
+ fleet|fleet
397
+ patterns|patterns
398
+ manual|manual
399
+ search|search
400
+ help|help
401
+ --help|help
402
+ -h|help
403
+ --version|version
404
+ -v|version
405
+ version|version
406
+ EOF
407
+ }
408
+
409
+ _dot_command_route() {
410
+ local command_name="${1:-}"
411
+ if [[ -z "$command_name" ]]; then
412
+ return 1
413
+ fi
414
+ awk -F'|' -v command_name="$command_name" '$1 == command_name { print $2; exit }' < <(_dot_command_routes)
415
+ }
416
+
417
+ show_help_overview() {
418
+ ui_dot_banner "Reference"
419
+ ui_header "Dotfiles"
420
+ ui_meta "Usage" "dot [command]"
421
+ ui_meta "Version" "v$VERSION"
422
+ echo ""
423
+
424
+ ui_info "What it is" "A single command for setting up, checking, and maintaining this shell environment."
425
+ ui_info "Platforms" "macOS, Linux, and WSL"
426
+ ui_info "Start" "Run 'dot sync', then 'dot doctor', then 'dot learn'"
427
+ echo ""
428
+
429
+ local current_section="" section="" command_name="" description="" detail=""
430
+ while IFS='|' read -r section command_name description detail; do
431
+ if [[ "$section" != "$current_section" ]]; then
432
+ if [[ -n "$current_section" ]]; then
433
+ echo ""
434
+ fi
435
+ ui_section "$section"
436
+ current_section="$section"
437
+ fi
438
+ ui_cmd "$command_name" "$description"
439
+ done < <(_dot_help_overview_specs)
440
+ echo ""
441
+ ui_info "Next" "Run 'dot help all' for the full command list"
442
+ ui_info "Detail" "Run 'dot help <command>' for one command"
443
+ }
444
+
445
+ show_help_all() {
446
+ ui_dot_banner "Reference"
447
+ ui_header "Dotfiles Command Reference"
448
+ ui_meta "Usage" "dot [command]"
449
+ ui_meta "Version" "v$VERSION"
450
+ echo ""
451
+
452
+ local current_section="" section="" command_name="" description="" detail=""
453
+ while IFS='|' read -r section command_name description detail; do
454
+ if [[ "$command_name" == "help all" ]]; then
455
+ continue
456
+ fi
457
+ if [[ "$section" != "$current_section" ]]; then
458
+ if [[ -n "$current_section" ]]; then
459
+ echo ""
460
+ fi
461
+ ui_section "$section"
462
+ current_section="$section"
463
+ fi
464
+ ui_cmd "$command_name" "$description"
465
+ done < <(_dot_help_specs)
466
+ }
467
+
468
+ show_help_command() {
469
+ local command_name="${1:-}"
470
+ local normalized summary examples
471
+
472
+ normalized="$command_name"
473
+ if [[ "$command_name" == "version" || "$command_name" == "-v" ]]; then
474
+ normalized="--version"
475
+ fi
476
+
477
+ summary="$(_dot_help_summary "$normalized")"
478
+ examples="$(_dot_help_examples "$normalized")"
479
+
480
+ if [[ -z "$summary" ]]; then
481
+ ui_fail "Unknown help topic: $command_name"
482
+ ui_info "Hint" "Try 'dot help all' or 'dot search <keyword>'"
483
+ exit 1
484
+ fi
485
+
486
+ ui_dot_banner "Reference"
487
+ ui_header "dot $command_name"
488
+ echo ""
489
+ ui_info "Summary" "$summary"
490
+ if [[ -n "$examples" ]]; then
491
+ echo ""
492
+ ui_section "Examples"
493
+ while IFS= read -r example; do
494
+ [[ -n "$example" ]] || continue
495
+ ui_cmd "$example" ""
496
+ done < <(printf '%b\n' "$examples")
497
+ fi
498
+ }
499
+
500
+ show_help() {
501
+ local topic="${1:-}"
502
+ case "$topic" in
503
+ "")
504
+ show_help_overview
505
+ ;;
506
+ all)
507
+ show_help_all
508
+ ;;
509
+ *)
510
+ show_help_command "$topic"
511
+ ;;
512
+ esac
513
+ }
514
+
515
+ resolve_source_dir() { _resolve_source_dir; }
516
+
517
+ # ─── Dispatcher ───────────────────────────────────────────────────────────────
518
+ # Routes COMMAND to the appropriate command module in scripts/dot/commands/.
519
+ # Each module receives the original COMMAND as its first argument so that its
520
+ # internal case statement can dispatch to the right sub-function.
521
+ _SOURCE_DIR="$(_resolve_source_dir)"
522
+ _CMD_DIR="${_SOURCE_DIR}/scripts/dot/commands"
523
+
524
+ _dispatch() {
525
+ local module="$1"
526
+ shift # remove module name; remaining $@ are the user's extra args
527
+ local cmd_file="${_CMD_DIR}/${module}.sh"
528
+ if [[ -f "$cmd_file" ]]; then
529
+ # shellcheck disable=SC1090
530
+ exec bash "$cmd_file" "$COMMAND" "$@"
531
+ else
532
+ ui_fail "Command module not found: $cmd_file"
533
+ exit 1
534
+ fi
535
+ }
536
+
537
+ if [[ -z "$COMMAND" ]]; then
538
+ show_help
539
+ exit 0
540
+ fi
541
+
542
+ route="$(_dot_command_route "$COMMAND" || true)"
543
+
544
+ case "$route" in
545
+ core | diagnostics | ai | tools | appearance | secrets | security | meta | fleet)
546
+ _dispatch "$route" "$@"
547
+ ;;
548
+
549
+ manual)
550
+ if [[ -n "$_SOURCE_DIR" ]] && [[ -f "$_SOURCE_DIR/scripts/dot/commands/manual.sh" ]]; then
551
+ exec bash "$_SOURCE_DIR/scripts/dot/commands/manual.sh" "$@"
552
+ else
553
+ ui_fail "manual.sh not found"
554
+ exit 1
555
+ fi
556
+ ;;
557
+
558
+ patterns)
559
+ if [[ -n "$_SOURCE_DIR" ]] && [[ -f "$_SOURCE_DIR/scripts/dot/commands/patterns.sh" ]]; then
560
+ exec bash "$_SOURCE_DIR/scripts/dot/commands/patterns.sh" "$@"
561
+ else
562
+ ui_fail "patterns.sh not found"
563
+ exit 1
564
+ fi
565
+ ;;
566
+
567
+ search)
568
+ keyword="${1:-}"
569
+ if [[ -z "$keyword" ]]; then
570
+ echo "Usage: dot search <keyword>"
571
+ exit 1
572
+ fi
573
+ show_help_all | grep -i --color=auto "$keyword" || echo "No commands matching '$keyword'"
574
+ exit 0
575
+ ;;
576
+
577
+ help)
578
+ show_help "$@"
579
+ ;;
580
+
581
+ version)
582
+ show_version
583
+ ;;
584
+
585
+ # User-provided custom commands
586
+ *)
587
+ _user_cmd="${XDG_CONFIG_HOME:-$HOME/.config}/dotfiles/commands/${COMMAND}.sh"
588
+ if [[ -f "$_user_cmd" ]]; then
589
+ source "$_user_cmd" "$@"
590
+ else
591
+ echo "Unknown command: ${COMMAND:-}" >&2
592
+ echo "Run 'dot help' for available commands." >&2
593
+ exit 1
594
+ fi
595
+ ;;
596
+ esac
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env bash
2
+ # shellcheck disable=SC2034,SC1091
3
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
4
+ # Dotfiles AI RAG (Retrieval-Augmented Generation)
5
+ # Usage: dot ai-query "how do I list files?"
6
+
7
+ set -euo pipefail
8
+
9
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
10
+ # shellcheck source=../scripts/dot/lib/ui.sh
11
+ source "$HOME/.dotfiles/scripts/dot/lib/ui.sh"
12
+
13
+ QUERY="${1:-}"
14
+ if [[ -z "$QUERY" ]]; then
15
+ echo "Usage: dot ai-query 'your question'"
16
+ exit 1
17
+ fi
18
+
19
+ DOTFILES_DIR="${HOME}/.dotfiles"
20
+
21
+ ui_info "Searching dotfiles context for: $QUERY..."
22
+ # 1. Retrieval: Use ripgrep to find relevant snippets from docs and configs
23
+ CONTEXT=$(rg -i --no-filename --no-line-number -C 2 -m 10 "$(echo "$QUERY" | tr ' ' '|')" "$DOTFILES_DIR/docs" "$DOTFILES_DIR/dot_config/shell" "$DOTFILES_DIR/.chezmoitemplates" 2>/dev/null || true)
24
+
25
+ if [[ -z "$CONTEXT" ]]; then
26
+ CONTEXT="No specific context found in the local repository."
27
+ fi
28
+
29
+ # 2. Augmented Generation: Pipe to the Dotfiles AI Bridge
30
+ # We use the 'architect' pattern to ensure the AI knows how to interpret dotfiles
31
+ ui_info "Generating context-aware answer..."
32
+ dot cl --pattern architect "Answer the following question based on this local dotfiles context:
33
+ ---
34
+ $CONTEXT
35
+ ---
36
+ User Question: $QUERY"