@sebastienrousseau/dotfiles 0.2.499 → 0.2.500

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 (538) hide show
  1. package/CHANGELOG.md +375 -0
  2. package/LICENSE +1283 -0
  3. package/README.md +284 -0
  4. package/docs/.vitepress/reports/localization-readability-audit.md +69 -0
  5. package/docs/AI.md +102 -0
  6. package/docs/COPYRIGHT +4 -3
  7. package/docs/NAMING_CONVENTIONS.md +95 -0
  8. package/docs/README.md +78 -0
  9. package/docs/adr/ADR-001-ci-cd-pipeline.md +101 -0
  10. package/docs/adr/ADR-002-shell-performance.md +121 -0
  11. package/docs/adr/ADR-003-security-first.md +140 -0
  12. package/docs/adr/ADR-004-cli-architecture.md +157 -0
  13. package/docs/adr/ADR-005-chezmoi-choice.md +89 -0
  14. package/docs/adr/ADR-006-shell-selection.md +115 -0
  15. package/docs/adr/ADR-007-multi-shell-parity.md +53 -0
  16. package/docs/adr/ADR-008-alias-system-architecture.md +85 -0
  17. package/docs/adr/README.md +32 -0
  18. package/docs/architecture/ARCHITECTURE.md +113 -0
  19. package/docs/architecture/INTEROP.md +36 -0
  20. package/docs/architecture/REPO_LAYOUT.md +237 -0
  21. package/docs/architecture/WALKTHROUGH.md +82 -0
  22. package/docs/architecture/fleet-deployment.md +73 -0
  23. package/docs/archive/EUXIS_2026_REVIEW.md +119 -0
  24. package/docs/archive/LEGACY_ROADMAP.md +142 -0
  25. package/docs/archive/MILESTONE_v0.2.493.md +43 -0
  26. package/docs/{PLAN.md → archive/PLAN.md} +4 -4
  27. package/docs/archive/REPO_AUDIT.md +23 -0
  28. package/docs/guides/INSTALL.md +140 -0
  29. package/docs/guides/NEOVIM_IDE_GUIDE.md +52 -0
  30. package/docs/guides/THEMING.md +222 -0
  31. package/docs/guides/TROUBLESHOOTING.md +148 -0
  32. package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +723 -0
  33. package/docs/index.md +39 -0
  34. package/docs/interop/A2A.md +32 -0
  35. package/docs/manual/00-introduction.md +85 -0
  36. package/docs/manual/01-concepts/01-architecture.md +134 -0
  37. package/docs/manual/01-concepts/02-trust-model.md +178 -0
  38. package/docs/manual/01-concepts/03-theme-engine.md +182 -0
  39. package/docs/manual/01-concepts/04-fleet.md +142 -0
  40. package/docs/manual/01-concepts/05-self-healing.md +197 -0
  41. package/docs/manual/02-tutorials/01-first-install.md +192 -0
  42. package/docs/manual/02-tutorials/02-add-wallpaper.md +211 -0
  43. package/docs/manual/02-tutorials/03-create-profile.md +238 -0
  44. package/docs/manual/02-tutorials/04-encrypt-secret.md +275 -0
  45. package/docs/manual/02-tutorials/05-deploy-fleet.md +279 -0
  46. package/docs/manual/03-reference/01-dot-cli.md +413 -0
  47. package/docs/manual/03-reference/02-config-files.md +259 -0
  48. package/docs/manual/03-reference/03-environment.md +120 -0
  49. package/docs/manual/03-reference/04-templates.md +184 -0
  50. package/docs/manual/03-reference/05-feature-flags.md +118 -0
  51. package/docs/manual/04-cookbook/01-recipes.md +281 -0
  52. package/docs/manual/04-cookbook/02-troubleshooting.md +319 -0
  53. package/docs/manual/04-cookbook/03-faq.md +167 -0
  54. package/docs/manual/05-appendices/A-platform-matrix.md +97 -0
  55. package/docs/manual/05-appendices/B-security-checklist.md +78 -0
  56. package/docs/manual/05-appendices/C-glossary.md +36 -0
  57. package/docs/manual/05-appendices/D-bibliography.md +54 -0
  58. package/docs/manual/05-appendices/E-license.md +34 -0
  59. package/docs/manual/_toc.yml +58 -0
  60. package/docs/manual/command-index.md +58 -0
  61. package/docs/manual/concept-index.md +164 -0
  62. package/docs/operations/ATTESTATION.md +39 -0
  63. package/docs/operations/MAINTENANCE.md +59 -0
  64. package/docs/operations/MIGRATION.md +101 -0
  65. package/docs/operations/OPERATIONS.md +164 -0
  66. package/docs/operations/RELIABILITY.md +116 -0
  67. package/docs/{ROADMAP.md → operations/ROADMAP.md} +22 -22
  68. package/docs/operations/TESTING.md +195 -0
  69. package/docs/operations/TRACEABILITY.md +31 -0
  70. package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +61 -0
  71. package/docs/operations/VERSION_SYNC.md +344 -0
  72. package/docs/reference/ALIASES.md +124 -0
  73. package/docs/reference/ALIASES_CHEATSHEET.md +28 -0
  74. package/docs/reference/ALIASES_DEPRECATIONS.md +9 -0
  75. package/docs/reference/FEATURES.md +62 -0
  76. package/docs/reference/FONTS.md +108 -0
  77. package/docs/reference/PROFILES.md +65 -0
  78. package/docs/reference/SCREENSHOTS.md +117 -0
  79. package/docs/reference/SCRIPTS.md +67 -0
  80. package/docs/reference/SUPPORT_MATRIX.md +74 -0
  81. package/docs/reference/THEMES.md +113 -0
  82. package/docs/reference/TOOLS.md +105 -0
  83. package/docs/reference/UTILS.md +151 -0
  84. package/docs/security/AI_ACT_COMPLIANCE.md +90 -0
  85. package/docs/security/AUTOMATION_SECRETS.md +22 -0
  86. package/docs/security/COMPLIANCE.md +453 -0
  87. package/docs/security/ENCRYPTION.md +52 -0
  88. package/docs/security/FMEA.md +155 -0
  89. package/docs/security/INCIDENT_RESPONSE.md +575 -0
  90. package/docs/security/KEYS.md +45 -0
  91. package/docs/security/KEY_ROTATION.md +219 -0
  92. package/docs/security/MCP_POLICY.md +69 -0
  93. package/docs/security/POLICY_RELEASES.md +33 -0
  94. package/docs/security/README.md +24 -0
  95. package/docs/security/SECRETS.md +146 -0
  96. package/docs/security/SECURITY.md +41 -0
  97. package/docs/security/SECURITY_CHECKLIST.md +44 -0
  98. package/docs/security/SOUP_REGISTER.md +32 -0
  99. package/docs/security/THREAT_MODEL.md +120 -0
  100. package/docs/security/VERIFICATION_VALIDATION.md +224 -0
  101. package/docs/themes/README.md +6 -0
  102. package/docs/themes/VISUAL_INTEGRITY_REPORT.md +26 -0
  103. package/docs/themes/hero-shot.svg +78 -0
  104. package/dot_config/.module-manifest.json +69 -0
  105. package/dot_config/ai/identity.md +20 -0
  106. package/dot_config/ai/patterns/architect.md +14 -0
  107. package/dot_config/ai/patterns/hardener.md +13 -0
  108. package/dot_config/ai/patterns/refactor.md +13 -0
  109. package/dot_config/aider/aider.conf.yml +32 -0
  110. package/dot_config/alacritty/alacritty.toml.tmpl +55 -0
  111. package/dot_config/ansible/ansible.cfg +11 -0
  112. package/dot_config/atuin/config.toml +40 -0
  113. package/dot_config/bat/config +23 -0
  114. package/dot_config/brave-flags.conf.tmpl +7 -0
  115. package/dot_config/btop/btop.conf +16 -0
  116. package/dot_config/btop/themes/tokyonight.theme +34 -0
  117. package/dot_config/bun/bunfig.toml.tmpl +33 -0
  118. package/dot_config/claude/mcp_servers.json +20 -0
  119. package/dot_config/containers/containers.conf +14 -0
  120. package/dot_config/curl/dot_curlrc +18 -0
  121. package/dot_config/dlv/config.yml +39 -0
  122. package/dot_config/docker/config.json +15 -0
  123. package/dot_config/dotfiles/agent-card.json +29 -0
  124. package/dot_config/dotfiles/agent-profiles.json +92 -0
  125. package/dot_config/dotfiles/boot/README.md +11 -0
  126. package/dot_config/dotfiles/grub/README.md +11 -0
  127. package/dot_config/dotfiles/lock/README.md +11 -0
  128. package/dot_config/dotfiles/mcp-lock.json +33 -0
  129. package/dot_config/dotfiles/mcp-policy.json +52 -0
  130. package/dot_config/dotfiles/mcp-registry.json +47 -0
  131. package/dot_config/dotfiles/model-registry.json +20 -0
  132. package/dot_config/dotfiles/policy-bundles.json +38 -0
  133. package/dot_config/dotfiles/prompt-registry.json +16 -0
  134. package/dot_config/dotfiles/versions.env +18 -0
  135. package/dot_config/duf/duf.conf +6 -0
  136. package/dot_config/duti/defaults.duti +5 -0
  137. package/dot_config/emoji/emoji.txt +34 -0
  138. package/dot_config/environment.d/50-ssh-agent.conf +2 -0
  139. package/dot_config/environment.d/90-wayland.conf +19 -0
  140. package/dot_config/fastfetch/config.jsonc +28 -0
  141. package/dot_config/firefox/user.js.tmpl +58 -0
  142. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +9 -0
  143. package/dot_config/fish/completions/dot.fish.tmpl +115 -0
  144. package/dot_config/fish/conf.d/000-perf-cache.fish +56 -0
  145. package/dot_config/fish/conf.d/aliases.fish.tmpl +77 -0
  146. package/dot_config/fish/conf.d/env.fish.tmpl +48 -0
  147. package/dot_config/fish/conf.d/functions.fish.tmpl +22 -0
  148. package/dot_config/fish/conf.d/init.fish.tmpl +151 -0
  149. package/dot_config/fish/config.fish.tmpl +44 -0
  150. package/dot_config/fish/fish_plugins +1 -0
  151. package/dot_config/fish/functions/_.fish +3 -0
  152. package/dot_config/fish/functions/_cached_eval.fish +58 -0
  153. package/dot_config/fish/functions/als.fish +46 -0
  154. package/dot_config/fish/functions/bg-upgrade.fish +7 -0
  155. package/dot_config/fish/functions/c.fish +3 -0
  156. package/dot_config/fish/functions/cat.fish +9 -0
  157. package/dot_config/fish/functions/d.fish +7 -0
  158. package/dot_config/fish/functions/dot.fish +34 -0
  159. package/dot_config/fish/functions/h.fish +3 -0
  160. package/dot_config/fish/functions/l.fish +7 -0
  161. package/dot_config/fish/functions/la.fish +7 -0
  162. package/dot_config/fish/functions/ll.fish +7 -0
  163. package/dot_config/fish/functions/log_error.fish +13 -0
  164. package/dot_config/fish/functions/log_info.fish +13 -0
  165. package/dot_config/fish/functions/lr.fish +7 -0
  166. package/dot_config/fish/functions/lra.fish +7 -0
  167. package/dot_config/fish/functions/ls.fish +7 -0
  168. package/dot_config/fish/functions/lt.fish +7 -0
  169. package/dot_config/fish/functions/lta.fish +7 -0
  170. package/dot_config/fish/functions/notify-run.fish +11 -0
  171. package/dot_config/fish/functions/q.fish +3 -0
  172. package/dot_config/fish/functions/silent-run.fish +7 -0
  173. package/dot_config/fish/functions/yy.fish +8 -0
  174. package/dot_config/flatpak/flatpak.list +4 -0
  175. package/dot_config/fontconfig/fonts.conf.tmpl +57 -0
  176. package/dot_config/foot/foot.ini.tmpl +33 -0
  177. package/dot_config/fuzzel/fuzzel.ini.tmpl +18 -0
  178. package/dot_config/fzf/fzf.zsh +48 -0
  179. package/dot_config/gem/gemrc +9 -0
  180. package/dot_config/gh/config.yml +12 -0
  181. package/dot_config/ghostty/config.tmpl +165 -0
  182. package/dot_config/git/allowed_signers.tmpl +18 -0
  183. package/dot_config/git/attributes +12 -0
  184. package/dot_config/git/commit-template +10 -0
  185. package/dot_config/git/ignore +27 -0
  186. package/dot_config/gnupg/gpg-agent.conf +11 -0
  187. package/dot_config/go/golangci.yml +118 -0
  188. package/dot_config/go/gopls.json +30 -0
  189. package/dot_config/goose/config.yaml +29 -0
  190. package/dot_config/gtk-3.0/gtk.css.tmpl +184 -0
  191. package/dot_config/gtk-3.0/settings.ini.tmpl +27 -0
  192. package/dot_config/gtk-4.0/gtk.css.tmpl +252 -0
  193. package/dot_config/gtk-4.0/settings.ini.tmpl +18 -0
  194. package/dot_config/htop/htoprc +20 -0
  195. package/dot_config/inputrc +2 -0
  196. package/dot_config/ipython/profile_default/ipython_config.py +19 -0
  197. package/dot_config/just/justfile +122 -0
  198. package/dot_config/k9s/config.yaml +65 -0
  199. package/dot_config/k9s/skins/catppuccin-mocha.yaml +116 -0
  200. package/dot_config/kanshi/config.tmpl +22 -0
  201. package/dot_config/karabiner/karabiner.json +14 -0
  202. package/dot_config/kitty/kitty.conf.tmpl +53 -0
  203. package/dot_config/lazydocker/config.yml +186 -0
  204. package/dot_config/lazygit/config.yml +35 -0
  205. package/dot_config/mako/config +47 -0
  206. package/dot_config/mas/masapps.txt +5 -0
  207. package/dot_config/micro/settings.json +3 -0
  208. package/dot_config/mimeapps.list +77 -0
  209. package/dot_config/minikube/config.json +13 -0
  210. package/dot_config/mise/config.toml +99 -0
  211. package/dot_config/mongosh/mongoshrc.js +68 -0
  212. package/dot_config/mpv/input.conf +47 -0
  213. package/dot_config/mpv/mpv.conf +47 -0
  214. package/dot_config/mycli/myclirc +67 -0
  215. package/dot_config/nano/nanorc +28 -0
  216. package/dot_config/ncdu/config +12 -0
  217. package/dot_config/niri/config.kdl.tmpl +327 -0
  218. package/dot_config/nushell/aliases.nu +18 -0
  219. package/dot_config/nushell/completions.nu.tmpl +52 -0
  220. package/dot_config/nushell/config.nu.tmpl +86 -0
  221. package/dot_config/nushell/env.nu.tmpl +94 -0
  222. package/dot_config/nushell/functions.nu.tmpl +17 -0
  223. package/dot_config/nvim/init.lua +18 -0
  224. package/dot_config/nvim/lazy-lock.json +58 -0
  225. package/dot_config/nvim/lua/config/autocmds.lua +107 -0
  226. package/dot_config/nvim/lua/config/keymaps.lua +92 -0
  227. package/dot_config/nvim/lua/config/lazy.lua +44 -0
  228. package/dot_config/nvim/lua/config/options.lua +49 -0
  229. package/dot_config/nvim/lua/plugins/ai.lua +75 -0
  230. package/dot_config/nvim/lua/plugins/coding.lua +216 -0
  231. package/dot_config/nvim/lua/plugins/completion.lua +60 -0
  232. package/dot_config/nvim/lua/plugins/dap.lua +412 -0
  233. package/dot_config/nvim/lua/plugins/editor.lua +55 -0
  234. package/dot_config/nvim/lua/plugins/git.lua +10 -0
  235. package/dot_config/nvim/lua/plugins/lsp.lua +156 -0
  236. package/dot_config/nvim/lua/plugins/markdown.lua +18 -0
  237. package/dot_config/nvim/lua/plugins/rust.lua +34 -0
  238. package/dot_config/nvim/lua/plugins/sessions.lua +33 -0
  239. package/dot_config/nvim/lua/plugins/ui.lua +509 -0
  240. package/dot_config/paru/paru.conf +10 -0
  241. package/dot_config/pip/pip.conf.tmpl +32 -0
  242. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +81 -0
  243. package/dot_config/pueue/pueue.yml +34 -0
  244. package/dot_config/pypoetry/config.toml +6 -0
  245. package/dot_config/pyrightconfig.json +5 -0
  246. package/dot_config/raycast/README.md +13 -0
  247. package/dot_config/redis/redisclirc +41 -0
  248. package/dot_config/ripgrep/ripgreprc +21 -0
  249. package/dot_config/shell/00-core-paths.sh.tmpl +133 -0
  250. package/dot_config/shell/05-core-safety.sh +47 -0
  251. package/dot_config/shell/10-secrets.sh +40 -0
  252. package/dot_config/shell/40-fzf-defaults.sh.tmpl +16 -0
  253. package/dot_config/shell/40-ls-colors.sh +48 -0
  254. package/dot_config/shell/50-logic-functions-core.sh.tmpl +10 -0
  255. package/dot_config/shell/50-logic-functions.sh.tmpl +10 -0
  256. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +64 -0
  257. package/dot_config/shell/90-ux-aliases.sh.tmpl +120 -0
  258. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +54 -0
  259. package/dot_config/shell/Brewfile +207 -0
  260. package/dot_config/shell/Brewfile.cask +92 -0
  261. package/dot_config/shell/Brewfile.cli +127 -0
  262. package/dot_config/shell/README.md +267 -0
  263. package/dot_config/shell/als_data.txt.tmpl +65 -0
  264. package/dot_config/shell/custom/auto_ls.zsh +20 -0
  265. package/dot_config/shell/custom/context_suggest.zsh +68 -0
  266. package/dot_config/shell/custom/error_analysis.zsh +45 -0
  267. package/dot_config/sops/dot_sops.yaml +23 -0
  268. package/dot_config/starship.toml.tmpl +202 -0
  269. package/dot_config/swaylock/config +43 -0
  270. package/dot_config/systemd/user/dotfiles-maintenance.service +8 -0
  271. package/dot_config/systemd/user/dotfiles-maintenance.timer +11 -0
  272. package/dot_config/systemd/user/pueued.service +12 -0
  273. package/dot_config/systemd/user/ssh-agent.service +12 -0
  274. package/dot_config/task/Taskfile.yml +86 -0
  275. package/dot_config/tflint/tflint.hcl +9 -0
  276. package/dot_config/tmux/tmux.conf.tmpl +223 -0
  277. package/dot_config/topgrade.toml.tmpl +54 -0
  278. package/dot_config/user-dirs.dirs +9 -0
  279. package/dot_config/vscode/extensions.txt +11 -0
  280. package/dot_config/vscode/settings.json.tmpl +82 -0
  281. package/dot_config/waybar/config.jsonc.tmpl +90 -0
  282. package/dot_config/waybar/style.css.tmpl +211 -0
  283. package/dot_config/wezterm/wezterm.lua.tmpl +64 -0
  284. package/dot_config/wget/wgetrc +12 -0
  285. package/dot_config/xdg-desktop-portal/niri-portals.conf +5 -0
  286. package/dot_config/yarn/yarnrc.yml +36 -0
  287. package/dot_config/yazi/keymap.toml +67 -0
  288. package/dot_config/yazi/theme.toml +102 -0
  289. package/dot_config/yazi/yazi.toml +40 -0
  290. package/dot_config/zathura/zathurarc +52 -0
  291. package/dot_config/zellij/config.kdl.tmpl +79 -0
  292. package/dot_config/zsh/dot_zprofile +7 -0
  293. package/dot_config/zsh/dot_zshenv +5 -0
  294. package/dot_config/zsh/dot_zshrc.tmpl +498 -0
  295. package/dot_config/zsh/rc.d/00-alias-shims.zsh +77 -0
  296. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +18 -0
  297. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +28 -0
  298. package/dot_config/zsh/rc.d/20-zinit.zsh +65 -0
  299. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +194 -0
  300. package/dot_config/zsh/rc.d/40-bell.zsh +20 -0
  301. package/dot_config/zsh/rc.d/50-login-fortune.zsh +9 -0
  302. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +32 -0
  303. package/dot_local/bin/__pycache__/executable_dot-load-benchmark-ptycpython-312.pyc +0 -0
  304. package/dot_local/bin/executable_ai-update +195 -0
  305. package/dot_local/bin/executable_ai_core +152 -0
  306. package/dot_local/bin/executable_antigravity +11 -0
  307. package/dot_local/bin/executable_b64 +84 -0
  308. package/dot_local/bin/executable_bm +77 -0
  309. package/dot_local/bin/executable_cb +39 -0
  310. package/dot_local/bin/executable_dot +589 -0
  311. package/dot_local/bin/executable_dot-ai +36 -0
  312. package/dot_local/bin/executable_dot-bootstrap +77 -0
  313. package/dot_local/bin/executable_dot-launch-or-focus +52 -0
  314. package/dot_local/bin/executable_dot-load-benchmark +31 -0
  315. package/dot_local/bin/executable_dot-load-benchmark-pty +77 -0
  316. package/dot_local/bin/executable_dot-theme-sync +952 -0
  317. package/dot_local/bin/executable_dot_completion +57 -0
  318. package/dot_local/bin/executable_dtags +28 -0
  319. package/dot_local/bin/executable_epoch +67 -0
  320. package/dot_local/bin/executable_extract +41 -0
  321. package/dot_local/bin/executable_gbd +52 -0
  322. package/dot_local/bin/executable_gd +42 -0
  323. package/dot_local/bin/executable_git-ai-commit +175 -0
  324. package/dot_local/bin/executable_git-ai-diff +169 -0
  325. package/dot_local/bin/executable_gl +101 -0
  326. package/dot_local/bin/executable_hash +161 -0
  327. package/dot_local/bin/executable_hashsum +160 -0
  328. package/dot_local/bin/executable_hex +115 -0
  329. package/dot_local/bin/executable_jsonv +78 -0
  330. package/dot_local/bin/executable_jwt +94 -0
  331. package/dot_local/bin/executable_kill-port +75 -0
  332. package/dot_local/bin/executable_lorem +118 -0
  333. package/dot_local/bin/executable_mkscript +35 -0
  334. package/dot_local/bin/executable_monitor +56 -0
  335. package/dot_local/bin/executable_myip +51 -0
  336. package/dot_local/bin/executable_notify +22 -0
  337. package/dot_local/bin/executable_open +36 -0
  338. package/dot_local/bin/executable_pw +27 -0
  339. package/dot_local/bin/executable_rec-start +46 -0
  340. package/dot_local/bin/executable_rec-stop +35 -0
  341. package/dot_local/bin/executable_regex +132 -0
  342. package/dot_local/bin/executable_start-niri +8 -0
  343. package/dot_local/bin/executable_tmux-sessionizer +314 -0
  344. package/dot_local/bin/executable_tour +175 -0
  345. package/dot_local/bin/executable_up +21 -0
  346. package/dot_local/bin/executable_update +142 -0
  347. package/dot_local/bin/executable_uuid +87 -0
  348. package/dot_local/bin/executable_win +32 -0
  349. package/dot_local/bin/executable_yamlv +57 -0
  350. package/dot_local/share/bash-completion/completions/dot +72 -0
  351. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  352. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  353. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  354. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  355. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  356. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  357. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  358. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  359. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  360. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  361. package/dot_local/share/man/man1/dot.1 +149 -0
  362. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +64 -0
  363. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +18 -0
  364. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +13 -0
  365. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +6 -0
  366. package/dot_local/share/zsh/completions/.keep +0 -0
  367. package/dot_local/share/zsh/completions/_dot +283 -0
  368. package/install.sh +342 -0
  369. package/package.json +1 -1
  370. package/scripts/ci/check-copyright-headers.sh +96 -0
  371. package/scripts/ci/guard-gitleaks-checkout.sh +57 -0
  372. package/scripts/ci/install-chezmoi-verified.sh +64 -0
  373. package/scripts/ci/validate-ci-config.sh +224 -0
  374. package/scripts/demo/record.sh +42 -0
  375. package/scripts/diagnostics/a2a-conformance.sh +162 -0
  376. package/scripts/diagnostics/alias-governance.sh +137 -0
  377. package/scripts/diagnostics/aliases-cheatsheet.sh +73 -0
  378. package/scripts/diagnostics/aliases-manifest.sh +31 -0
  379. package/scripts/diagnostics/benchmark.sh +381 -0
  380. package/scripts/diagnostics/conflicts.sh +72 -0
  381. package/scripts/diagnostics/doctor-unified.sh +38 -0
  382. package/scripts/diagnostics/doctor.sh +541 -0
  383. package/scripts/diagnostics/drift-dashboard.sh +37 -0
  384. package/scripts/diagnostics/health.sh +597 -0
  385. package/scripts/diagnostics/history-analysis.sh +85 -0
  386. package/scripts/diagnostics/mcp-doctor.sh +575 -0
  387. package/scripts/diagnostics/perf.sh +225 -0
  388. package/scripts/diagnostics/scorecard.sh +118 -0
  389. package/scripts/diagnostics/secret-governance.sh +58 -0
  390. package/scripts/diagnostics/security-score.sh +438 -0
  391. package/scripts/diagnostics/smoke-test.sh +87 -0
  392. package/scripts/diagnostics/snapshot.sh +89 -0
  393. package/scripts/diagnostics/verify.sh +107 -0
  394. package/scripts/{verify_state.sh → diagnostics/verify_state.sh} +22 -22
  395. package/scripts/diagnostics/version-locks.sh +79 -0
  396. package/scripts/diagnostics/workstation-attestation.sh +181 -0
  397. package/scripts/docs/build-manual.sh +883 -0
  398. package/scripts/docs/check-manual.sh +213 -0
  399. package/scripts/dot/commands/agent.sh +465 -0
  400. package/scripts/dot/commands/ai.sh +416 -0
  401. package/scripts/dot/commands/aliases.sh +250 -0
  402. package/scripts/dot/commands/appearance.sh +80 -0
  403. package/scripts/dot/commands/core.sh +185 -0
  404. package/scripts/dot/commands/diagnostics.sh +229 -0
  405. package/scripts/dot/commands/fleet.sh +399 -0
  406. package/scripts/dot/commands/lint.sh +177 -0
  407. package/scripts/dot/commands/manual.sh +168 -0
  408. package/scripts/dot/commands/meta.sh +248 -0
  409. package/scripts/dot/commands/patterns.sh +54 -0
  410. package/scripts/dot/commands/restore.sh +231 -0
  411. package/scripts/dot/commands/secrets.sh +223 -0
  412. package/scripts/dot/commands/security.sh +76 -0
  413. package/scripts/dot/commands/tools.sh +469 -0
  414. package/scripts/dot/data/alias-deprecations.tsv +2 -0
  415. package/scripts/dot/lib/bento.sh +49 -0
  416. package/scripts/dot/lib/log.sh +194 -0
  417. package/scripts/dot/lib/platform.sh +98 -0
  418. package/scripts/dot/lib/ui.sh +507 -0
  419. package/scripts/dot/lib/utils.sh +372 -0
  420. package/scripts/fonts/install-nerd-fonts.sh +68 -0
  421. package/scripts/fonts/patch-fonts.sh +35 -0
  422. package/scripts/git-hooks/install.sh +11 -0
  423. package/scripts/git-hooks/pre-commit +12 -0
  424. package/scripts/git-hooks/pre-commit-audit.sh +145 -0
  425. package/scripts/git-hooks/pre-push +29 -0
  426. package/scripts/git-hooks/prepare-commit-msg +29 -0
  427. package/scripts/lib/secrets_provider.sh +158 -0
  428. package/scripts/maintenance/check-updates.sh +131 -0
  429. package/scripts/ops/ai-setup.sh +55 -0
  430. package/scripts/ops/bundle.sh +77 -0
  431. package/scripts/ops/chaos.sh +49 -0
  432. package/scripts/ops/chezmoi-apply.sh +270 -0
  433. package/scripts/ops/chezmoi-diff.sh +15 -0
  434. package/scripts/ops/chezmoi-remove.sh +45 -0
  435. package/scripts/ops/chezmoi-update.sh +48 -0
  436. package/scripts/ops/heal-chezmoi.sh +51 -0
  437. package/scripts/ops/heal-system.sh +128 -0
  438. package/scripts/ops/heal-tools.sh +340 -0
  439. package/scripts/ops/heal.sh +222 -0
  440. package/scripts/ops/post-apply-repair.sh +106 -0
  441. package/scripts/ops/prewarm.sh +127 -0
  442. package/scripts/ops/release.sh +252 -0
  443. package/scripts/ops/rollback.sh +589 -0
  444. package/scripts/ops/setup.sh +137 -0
  445. package/scripts/ops/teleport.sh +33 -0
  446. package/scripts/qa/coverage-baseline.sh +60 -0
  447. package/scripts/qa/docs-coverage.sh +111 -0
  448. package/scripts/qa/reliability-audit.sh +138 -0
  449. package/scripts/qa/traceability-coverage.sh +116 -0
  450. package/scripts/qa/validate-examples.sh +26 -0
  451. package/scripts/qa/wsl-contract.sh +11 -0
  452. package/scripts/release/package-policy-bundles.sh +125 -0
  453. package/scripts/secrets/age-init.sh +70 -0
  454. package/scripts/secrets/create-secrets-file.sh +45 -0
  455. package/scripts/secrets/encrypt-ssh-key.sh +43 -0
  456. package/scripts/security/backup.sh +57 -0
  457. package/scripts/security/dns-doh.sh +51 -0
  458. package/scripts/security/encryption-check.sh +54 -0
  459. package/scripts/security/enforce-policies.sh +334 -0
  460. package/scripts/security/firewall.sh +90 -0
  461. package/scripts/security/lock-configs.sh +57 -0
  462. package/scripts/security/lock-screen.sh +55 -0
  463. package/scripts/security/manage-secrets.sh +428 -0
  464. package/scripts/security/ssh-cert.sh +203 -0
  465. package/scripts/security/telemetry-kill.sh +50 -0
  466. package/scripts/security/usb-safety.sh +51 -0
  467. package/scripts/theme/apply-gnome-theme.sh +328 -0
  468. package/scripts/theme/extract-theme.py +677 -0
  469. package/scripts/theme/install-boot-logo.sh +62 -0
  470. package/scripts/theme/install-catppuccin-themes.sh +370 -0
  471. package/scripts/theme/install-cursors.sh +25 -0
  472. package/scripts/theme/install-file-icons.sh +26 -0
  473. package/scripts/theme/install-grub-theme.sh +61 -0
  474. package/scripts/theme/install-lock-icon.sh +30 -0
  475. package/scripts/theme/merge-wallpaper.sh +141 -0
  476. package/scripts/theme/rebuild-themes.sh +309 -0
  477. package/scripts/theme/switch.sh +421 -0
  478. package/scripts/theme/wallpaper-rotate.sh +136 -0
  479. package/scripts/theme/wallpaper-sync.sh +397 -0
  480. package/scripts/tools/cmatrix.sh +21 -0
  481. package/scripts/{detect-collisions.py → tools/detect-collisions.py} +2 -2
  482. package/scripts/tools/emoji-picker.sh +48 -0
  483. package/scripts/tools/figlet-banner.sh +18 -0
  484. package/scripts/tools/log-rotate.sh +30 -0
  485. package/scripts/tools/lolcat-wrap.sh +19 -0
  486. package/scripts/tools/pipes.sh +48 -0
  487. package/scripts/tuning/linux.sh +185 -0
  488. package/scripts/tuning/macos.sh +55 -0
  489. package/scripts/uninstall.sh +85 -0
  490. package/scripts/version-sync.sh +487 -0
  491. package/templates/chezmoi-data/geekom-a9.toml.example +21 -0
  492. package/templates/chezmoi-data/mac-m1.toml.example +16 -0
  493. package/templates/chezmoi-data/mac-t2-linux.toml.example +21 -0
  494. package/templates/chezmoi-data/surface-pro-7p.toml.example +21 -0
  495. package/templates/projects/go/.github/workflows/ci.yml +31 -0
  496. package/templates/projects/go/README.md +4 -0
  497. package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +1 -0
  498. package/templates/projects/go/go.sum +0 -0
  499. package/templates/projects/molecule/README.md +7 -0
  500. package/templates/projects/molecule/converge.yml +7 -0
  501. package/templates/projects/molecule/molecule.yml +16 -0
  502. package/templates/projects/node/.github/workflows/ci.yml +30 -0
  503. package/templates/projects/node/README.md +4 -0
  504. package/templates/projects/node/package-lock.json +12 -0
  505. package/templates/projects/node/src/index.js +1 -0
  506. package/templates/projects/packer/README.md +15 -0
  507. package/templates/projects/packer/main.pkr.hcl +15 -0
  508. package/templates/projects/python/.github/workflows/ci.yml +34 -0
  509. package/templates/projects/python/README.md +4 -0
  510. package/templates/projects/python/pyproject.toml +15 -0
  511. package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
  512. package/templates/projects/python/tests/test_basic.py +1 -0
  513. package/docs/ARCHITECTURE.md +0 -62
  514. package/docs/COMPLIANCE.md +0 -47
  515. package/docs/OPERATIONS.md +0 -103
  516. package/docs/PR_DESCRIPTION.md +0 -150
  517. package/docs/ROADMAP_legacy.md +0 -556
  518. package/docs/SECURITY_CHECKLIST.md +0 -25
  519. package/docs/TASK.md +0 -99
  520. package/docs/WALKTHROUGH.md +0 -46
  521. package/scripts/backup.sh +0 -142
  522. package/scripts/banner.sh +0 -20
  523. package/scripts/benchmark.sh +0 -20
  524. package/scripts/build.sh +0 -41
  525. package/scripts/clean.sh +0 -31
  526. package/scripts/compile.sh +0 -54
  527. package/scripts/copy.sh +0 -108
  528. package/scripts/doctor.sh +0 -79
  529. package/scripts/dotfiles.sh +0 -63
  530. package/scripts/download.sh +0 -35
  531. package/scripts/help.sh +0 -57
  532. package/scripts/lock-configs.sh +0 -57
  533. package/scripts/package.sh +0 -46
  534. package/scripts/ssh.sh +0 -55
  535. package/scripts/teleport.sh +0 -23
  536. package/scripts/test-aliases.sh +0 -25
  537. package/scripts/test_smoke.sh +0 -88
  538. package/scripts/unpack.sh +0 -28
@@ -0,0 +1,589 @@
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.500
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.500"
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
+ gemini|ai
348
+ kiro|ai
349
+ sgpt|ai
350
+ ollama|ai
351
+ opencode|ai
352
+ aider|ai
353
+ env|tools
354
+ profile|tools
355
+ tools|tools
356
+ new|tools
357
+ packages|tools
358
+ aliases|tools
359
+ alias-check|tools
360
+ setup|tools
361
+ log-rotate|tools
362
+ lint|tools
363
+ theme|appearance
364
+ wallpaper|appearance
365
+ fonts|appearance
366
+ tune|appearance
367
+ secrets-init|secrets
368
+ secrets|secrets
369
+ secrets-create|secrets
370
+ ssh-key|secrets
371
+ ssh-cert|secrets
372
+ backup|security
373
+ encrypt-check|security
374
+ firewall|security
375
+ telemetry|security
376
+ dns-doh|security
377
+ lock-screen|security
378
+ usb-safety|security
379
+ upgrade|meta
380
+ cache-refresh|meta
381
+ prewarm|meta
382
+ docs|meta
383
+ learn|meta
384
+ keys|meta
385
+ sandbox|meta
386
+ mcp|meta
387
+ mode|meta
388
+ agent|meta
389
+ fleet|fleet
390
+ patterns|patterns
391
+ manual|manual
392
+ search|search
393
+ help|help
394
+ --help|help
395
+ -h|help
396
+ --version|version
397
+ -v|version
398
+ version|version
399
+ EOF
400
+ }
401
+
402
+ _dot_command_route() {
403
+ local command_name="${1:-}"
404
+ if [[ -z "$command_name" ]]; then
405
+ return 1
406
+ fi
407
+ awk -F'|' -v command_name="$command_name" '$1 == command_name { print $2; exit }' < <(_dot_command_routes)
408
+ }
409
+
410
+ show_help_overview() {
411
+ ui_dot_banner "Reference"
412
+ ui_header "Dotfiles"
413
+ ui_meta "Usage" "dot [command]"
414
+ ui_meta "Version" "v$VERSION"
415
+ echo ""
416
+
417
+ ui_info "What it is" "A single command for setting up, checking, and maintaining this shell environment."
418
+ ui_info "Platforms" "macOS, Linux, and WSL"
419
+ ui_info "Start" "Run 'dot sync', then 'dot doctor', then 'dot learn'"
420
+ echo ""
421
+
422
+ local current_section="" section="" command_name="" description="" detail=""
423
+ while IFS='|' read -r section command_name description detail; do
424
+ if [[ "$section" != "$current_section" ]]; then
425
+ if [[ -n "$current_section" ]]; then
426
+ echo ""
427
+ fi
428
+ ui_section "$section"
429
+ current_section="$section"
430
+ fi
431
+ ui_cmd "$command_name" "$description"
432
+ done < <(_dot_help_overview_specs)
433
+ echo ""
434
+ ui_info "Next" "Run 'dot help all' for the full command list"
435
+ ui_info "Detail" "Run 'dot help <command>' for one command"
436
+ }
437
+
438
+ show_help_all() {
439
+ ui_dot_banner "Reference"
440
+ ui_header "Dotfiles Command Reference"
441
+ ui_meta "Usage" "dot [command]"
442
+ ui_meta "Version" "v$VERSION"
443
+ echo ""
444
+
445
+ local current_section="" section="" command_name="" description="" detail=""
446
+ while IFS='|' read -r section command_name description detail; do
447
+ if [[ "$command_name" == "help all" ]]; then
448
+ continue
449
+ fi
450
+ if [[ "$section" != "$current_section" ]]; then
451
+ if [[ -n "$current_section" ]]; then
452
+ echo ""
453
+ fi
454
+ ui_section "$section"
455
+ current_section="$section"
456
+ fi
457
+ ui_cmd "$command_name" "$description"
458
+ done < <(_dot_help_specs)
459
+ }
460
+
461
+ show_help_command() {
462
+ local command_name="${1:-}"
463
+ local normalized summary examples
464
+
465
+ normalized="$command_name"
466
+ if [[ "$command_name" == "version" || "$command_name" == "-v" ]]; then
467
+ normalized="--version"
468
+ fi
469
+
470
+ summary="$(_dot_help_summary "$normalized")"
471
+ examples="$(_dot_help_examples "$normalized")"
472
+
473
+ if [[ -z "$summary" ]]; then
474
+ ui_fail "Unknown help topic: $command_name"
475
+ ui_info "Hint" "Try 'dot help all' or 'dot search <keyword>'"
476
+ exit 1
477
+ fi
478
+
479
+ ui_dot_banner "Reference"
480
+ ui_header "dot $command_name"
481
+ echo ""
482
+ ui_info "Summary" "$summary"
483
+ if [[ -n "$examples" ]]; then
484
+ echo ""
485
+ ui_section "Examples"
486
+ while IFS= read -r example; do
487
+ [[ -n "$example" ]] || continue
488
+ ui_cmd "$example" ""
489
+ done < <(printf '%b\n' "$examples")
490
+ fi
491
+ }
492
+
493
+ show_help() {
494
+ local topic="${1:-}"
495
+ case "$topic" in
496
+ "")
497
+ show_help_overview
498
+ ;;
499
+ all)
500
+ show_help_all
501
+ ;;
502
+ *)
503
+ show_help_command "$topic"
504
+ ;;
505
+ esac
506
+ }
507
+
508
+ resolve_source_dir() { _resolve_source_dir; }
509
+
510
+ # ─── Dispatcher ───────────────────────────────────────────────────────────────
511
+ # Routes COMMAND to the appropriate command module in scripts/dot/commands/.
512
+ # Each module receives the original COMMAND as its first argument so that its
513
+ # internal case statement can dispatch to the right sub-function.
514
+ _SOURCE_DIR="$(_resolve_source_dir)"
515
+ _CMD_DIR="${_SOURCE_DIR}/scripts/dot/commands"
516
+
517
+ _dispatch() {
518
+ local module="$1"
519
+ shift # remove module name; remaining $@ are the user's extra args
520
+ local cmd_file="${_CMD_DIR}/${module}.sh"
521
+ if [[ -f "$cmd_file" ]]; then
522
+ # shellcheck disable=SC1090
523
+ exec bash "$cmd_file" "$COMMAND" "$@"
524
+ else
525
+ ui_fail "Command module not found: $cmd_file"
526
+ exit 1
527
+ fi
528
+ }
529
+
530
+ if [[ -z "$COMMAND" ]]; then
531
+ show_help
532
+ exit 0
533
+ fi
534
+
535
+ route="$(_dot_command_route "$COMMAND" || true)"
536
+
537
+ case "$route" in
538
+ core | diagnostics | ai | tools | appearance | secrets | security | meta | fleet)
539
+ _dispatch "$route" "$@"
540
+ ;;
541
+
542
+ manual)
543
+ if [[ -n "$_SOURCE_DIR" ]] && [[ -f "$_SOURCE_DIR/scripts/dot/commands/manual.sh" ]]; then
544
+ exec bash "$_SOURCE_DIR/scripts/dot/commands/manual.sh" "$@"
545
+ else
546
+ ui_fail "manual.sh not found"
547
+ exit 1
548
+ fi
549
+ ;;
550
+
551
+ patterns)
552
+ if [[ -n "$_SOURCE_DIR" ]] && [[ -f "$_SOURCE_DIR/scripts/dot/commands/patterns.sh" ]]; then
553
+ exec bash "$_SOURCE_DIR/scripts/dot/commands/patterns.sh" "$@"
554
+ else
555
+ ui_fail "patterns.sh not found"
556
+ exit 1
557
+ fi
558
+ ;;
559
+
560
+ search)
561
+ keyword="${1:-}"
562
+ if [[ -z "$keyword" ]]; then
563
+ echo "Usage: dot search <keyword>"
564
+ exit 1
565
+ fi
566
+ show_help_all | grep -i --color=auto "$keyword" || echo "No commands matching '$keyword'"
567
+ exit 0
568
+ ;;
569
+
570
+ help)
571
+ show_help "$@"
572
+ ;;
573
+
574
+ version)
575
+ show_version
576
+ ;;
577
+
578
+ # User-provided custom commands
579
+ *)
580
+ _user_cmd="${XDG_CONFIG_HOME:-$HOME/.config}/dotfiles/commands/${COMMAND}.sh"
581
+ if [[ -f "$_user_cmd" ]]; then
582
+ source "$_user_cmd" "$@"
583
+ else
584
+ echo "Unknown command: ${COMMAND:-}" >&2
585
+ echo "Run 'dot help' for available commands." >&2
586
+ exit 1
587
+ fi
588
+ ;;
589
+ 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"