@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,29 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ # Appends the EUXIS branding signature to every commit message.
4
+ # Signature source: ~/.euxis/data/config/branding/signature.txt
5
+
6
+ set -euo pipefail
7
+
8
+ # R5: validate commit message file argument
9
+ if [[ -z "${1:-}" || ! -f "${1:-}" ]]; then
10
+ exit 0 # No file provided — git will handle the error
11
+ fi
12
+
13
+ COMMIT_MSG_FILE="$1"
14
+ COMMIT_SOURCE="${2:-}"
15
+
16
+ # Skip merge commits, amends with existing signature, and squash
17
+ case "$COMMIT_SOURCE" in
18
+ merge | squash) exit 0 ;;
19
+ esac
20
+
21
+ SIGNATURE_FILE="$HOME/.euxis/data/config/branding/signature.txt"
22
+
23
+ # Only append if the signature file exists and message doesn't already have it
24
+ if [[ -f "$SIGNATURE_FILE" ]]; then
25
+ signature=$(cat "$SIGNATURE_FILE")
26
+ if ! grep -qF "THE ARCHITECT" "$COMMIT_MSG_FILE" 2>/dev/null; then
27
+ printf '\n%s\n' "$signature" >>"$COMMIT_MSG_FILE"
28
+ fi
29
+ fi
@@ -0,0 +1,158 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ # Provider-agnostic secrets bridge for dotfiles.
4
+
5
+ set -euo pipefail
6
+
7
+ DOT_SECRETS_HOME="${DOT_SECRETS_HOME:-$HOME/.config/dotfiles/secrets}"
8
+ DOT_SECRETS_STORE_DIR="${DOT_SECRETS_STORE_DIR:-$DOT_SECRETS_HOME/store}"
9
+ DOT_SECRETS_INDEX_FILE="${DOT_SECRETS_INDEX_FILE:-$DOT_SECRETS_HOME/index.txt}"
10
+ DOT_SECRETS_AGE_KEY="${DOT_SECRETS_AGE_KEY:-$HOME/.config/chezmoi/key.txt}"
11
+ DOT_SECRETS_SERVICE_PREFIX="${DOT_SECRETS_SERVICE_PREFIX:-dotfiles.secret}"
12
+
13
+ dot_secrets_ensure_layout() {
14
+ mkdir -p "$DOT_SECRETS_STORE_DIR"
15
+ touch "$DOT_SECRETS_INDEX_FILE"
16
+ chmod 700 "$DOT_SECRETS_HOME" 2>/dev/null || true
17
+ chmod 700 "$DOT_SECRETS_STORE_DIR" 2>/dev/null || true
18
+ chmod 600 "$DOT_SECRETS_INDEX_FILE" 2>/dev/null || true
19
+ }
20
+
21
+ dot_secrets_provider() {
22
+ local provider="${DOTFILES_SECRETS_PROVIDER:-auto}"
23
+ if [[ "$provider" != "auto" ]]; then
24
+ printf "%s\n" "$provider"
25
+ return 0
26
+ fi
27
+
28
+ if [[ "${OSTYPE:-}" == darwin* ]] && command -v security >/dev/null 2>&1; then
29
+ printf "macos-keychain\n"
30
+ return 0
31
+ fi
32
+ if command -v pass >/dev/null 2>&1; then
33
+ printf "pass\n"
34
+ return 0
35
+ fi
36
+ if command -v age >/dev/null 2>&1 && [[ -f "$DOT_SECRETS_AGE_KEY" ]]; then
37
+ printf "plain-enc\n"
38
+ return 0
39
+ fi
40
+ printf "none\n"
41
+ }
42
+
43
+ dot_secrets_index_add() {
44
+ local key="${1:-}"
45
+ [[ -n "$key" ]] || return 1
46
+ dot_secrets_ensure_layout
47
+ if ! grep -qxF "$key" "$DOT_SECRETS_INDEX_FILE" 2>/dev/null; then
48
+ printf "%s\n" "$key" >>"$DOT_SECRETS_INDEX_FILE"
49
+ fi
50
+ }
51
+
52
+ dot_secrets_index_list() {
53
+ dot_secrets_ensure_layout
54
+ awk 'NF > 0' "$DOT_SECRETS_INDEX_FILE" | sort -u
55
+ }
56
+
57
+ dot_secrets_store_macos() {
58
+ local key="$1"
59
+ local value="$2"
60
+ local service="${DOT_SECRETS_SERVICE_PREFIX}.${key}"
61
+ security add-generic-password -U -a "${USER:-dotfiles}" -s "$service" -w "$value" >/dev/null
62
+ }
63
+
64
+ dot_secrets_get_macos() {
65
+ local key="$1"
66
+ local service="${DOT_SECRETS_SERVICE_PREFIX}.${key}"
67
+ security find-generic-password -a "${USER:-dotfiles}" -s "$service" -w 2>/dev/null || return 1
68
+ }
69
+
70
+ dot_secrets_store_pass() {
71
+ local key="$1" value="$2"
72
+ printf "%s\n" "$value" | pass insert -m -f "dotfiles/${key}" >/dev/null
73
+ }
74
+
75
+ dot_secrets_get_pass() {
76
+ local key="$1"
77
+ pass show "dotfiles/${key}" 2>/dev/null | head -n1
78
+ }
79
+
80
+ dot_secrets_store_plain_enc() {
81
+ local key="$1" value="$2"
82
+ local tmp_rec file
83
+ [[ -f "$DOT_SECRETS_AGE_KEY" ]] || {
84
+ echo "age key not found: $DOT_SECRETS_AGE_KEY" >&2
85
+ return 1
86
+ }
87
+ command -v age >/dev/null 2>&1 || {
88
+ echo "age not installed" >&2
89
+ return 1
90
+ }
91
+ command -v age-keygen >/dev/null 2>&1 || {
92
+ echo "age-keygen not installed" >&2
93
+ return 1
94
+ }
95
+ dot_secrets_ensure_layout
96
+ tmp_rec="$(umask 077 && mktemp)"
97
+ file="$DOT_SECRETS_STORE_DIR/${key}.age"
98
+ trap 'rm -f "$tmp_rec"' RETURN
99
+ age-keygen -y "$DOT_SECRETS_AGE_KEY" >"$tmp_rec"
100
+ printf "%s" "$value" | age -R "$tmp_rec" -o "$file"
101
+ chmod 600 "$file" 2>/dev/null || true
102
+ }
103
+
104
+ dot_secrets_get_plain_enc() {
105
+ local key="$1"
106
+ local file="$DOT_SECRETS_STORE_DIR/${key}.age"
107
+ [[ -f "$DOT_SECRETS_AGE_KEY" ]] || return 1
108
+ [[ -f "$file" ]] || return 1
109
+ age -d -i "$DOT_SECRETS_AGE_KEY" "$file" 2>/dev/null || return 1
110
+ }
111
+
112
+ dot_secrets_set() {
113
+ local key="${1:-}" value="${2:-}" provider
114
+ [[ -n "$key" ]] || return 1
115
+ provider="$(dot_secrets_provider)"
116
+ case "$provider" in
117
+ macos-keychain) dot_secrets_store_macos "$key" "$value" ;;
118
+ pass) dot_secrets_store_pass "$key" "$value" ;;
119
+ plain-enc) dot_secrets_store_plain_enc "$key" "$value" ;;
120
+ *)
121
+ echo "No supported secrets provider detected." >&2
122
+ return 1
123
+ ;;
124
+ esac
125
+ dot_secrets_index_add "$key"
126
+ }
127
+
128
+ dot_secrets_get() {
129
+ local key="${1:-}" provider
130
+ [[ -n "$key" ]] || return 1
131
+ provider="$(dot_secrets_provider)"
132
+ case "$provider" in
133
+ macos-keychain) dot_secrets_get_macos "$key" ;;
134
+ pass) dot_secrets_get_pass "$key" ;;
135
+ plain-enc) dot_secrets_get_plain_enc "$key" ;;
136
+ *) return 1 ;;
137
+ esac
138
+ }
139
+
140
+ dot_secrets_bucket_keys() {
141
+ local data_file="${1:-}" bucket="${2:-}"
142
+ [[ -f "$data_file" ]] || return 1
143
+ [[ -n "$bucket" ]] || return 1
144
+ awk -v b="$bucket" '
145
+ $0 ~ "^[[:space:]]*" b "[[:space:]]*=" {
146
+ line=$0
147
+ gsub(/^.*\[/, "", line)
148
+ gsub(/\].*$/, "", line)
149
+ gsub(/"/, "", line)
150
+ n=split(line, arr, ",")
151
+ for (i=1; i<=n; i++) {
152
+ gsub(/^[[:space:]]+|[[:space:]]+$/, "", arr[i])
153
+ if (arr[i] != "") print arr[i]
154
+ }
155
+ exit
156
+ }
157
+ ' "$data_file"
158
+ }
@@ -0,0 +1,131 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ # Dependency update checker for nightly CI
4
+ # Reports available updates for all project dependencies
5
+
6
+ set -euo pipefail
7
+
8
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
+ REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
10
+ REPORT_DIR="$REPO_ROOT/nightly-reports"
11
+
12
+ mkdir -p "$REPORT_DIR"
13
+
14
+ check_github_actions_updates() {
15
+ echo "=== GitHub Actions Updates ===" >>"$REPORT_DIR/updates.txt"
16
+
17
+ # Extract all GitHub Actions from workflow files
18
+ find "$REPO_ROOT/.github/workflows" -name "*.yml" -o -name "*.yaml" | while read -r workflow; do
19
+ echo "Checking $(basename "$workflow")..." >&2
20
+ grep -E "uses: [^@]+@v[0-9]+" "$workflow" | sed 's/.*uses: //' | sort -u >>"$REPORT_DIR/actions-current.txt" 2>/dev/null || true
21
+ done
22
+
23
+ if [[ -f "$REPORT_DIR/actions-current.txt" ]]; then
24
+ # For each action, check if newer version exists (simplified check)
25
+ while read -r action_version; do
26
+ if [[ -n "$action_version" ]]; then
27
+ action_name=$(echo "$action_version" | cut -d'@' -f1)
28
+ current_version=$(echo "$action_version" | cut -d'@' -f2)
29
+ echo " $action_name: $current_version (check manually)" >>"$REPORT_DIR/updates.txt"
30
+ fi
31
+ done <"$REPORT_DIR/actions-current.txt"
32
+ fi
33
+
34
+ echo "" >>"$REPORT_DIR/updates.txt"
35
+ }
36
+
37
+ check_precommit_updates() {
38
+ echo "=== Pre-commit Hook Updates ===" >>"$REPORT_DIR/updates.txt"
39
+
40
+ if command -v pre-commit &>/dev/null && [[ -f "$REPO_ROOT/.pre-commit-config.yaml" ]]; then
41
+ cd "$REPO_ROOT"
42
+ pre-commit autoupdate --dry-run >>"$REPORT_DIR/updates.txt" 2>&1 || true
43
+ else
44
+ echo "pre-commit not available or config missing" >>"$REPORT_DIR/updates.txt"
45
+ fi
46
+
47
+ echo "" >>"$REPORT_DIR/updates.txt"
48
+ }
49
+
50
+ check_chezmoi_updates() {
51
+ echo "=== Chezmoi Updates ===" >>"$REPORT_DIR/updates.txt"
52
+
53
+ if command -v curl &>/dev/null; then
54
+ LATEST_VERSION=$(curl -s "https://api.github.com/repos/twpayne/chezmoi/releases/latest" | grep '"tag_name"' | cut -d'"' -f4 | sed 's/^v//')
55
+ CURRENT_VERSION=$(grep "CHEZMOI_VERSION:" "$REPO_ROOT/.github/workflows/ci.yml" | cut -d'"' -f2 | head -1)
56
+
57
+ echo "Current Chezmoi: $CURRENT_VERSION" >>"$REPORT_DIR/updates.txt"
58
+ echo "Latest Chezmoi: $LATEST_VERSION" >>"$REPORT_DIR/updates.txt"
59
+
60
+ if [[ "$CURRENT_VERSION" != "$LATEST_VERSION" ]]; then
61
+ echo "⚠️ Chezmoi update available: $CURRENT_VERSION → $LATEST_VERSION" >>"$REPORT_DIR/updates.txt"
62
+ else
63
+ echo "✅ Chezmoi is up to date" >>"$REPORT_DIR/updates.txt"
64
+ fi
65
+ else
66
+ echo "curl not available - cannot check Chezmoi version" >>"$REPORT_DIR/updates.txt"
67
+ fi
68
+
69
+ echo "" >>"$REPORT_DIR/updates.txt"
70
+ }
71
+
72
+ check_security_tools_updates() {
73
+ echo "=== Security Tools Updates ===" >>"$REPORT_DIR/updates.txt"
74
+
75
+ # Check shellcheck version
76
+ if command -v shellcheck &>/dev/null; then
77
+ SHELLCHECK_VERSION=$(shellcheck --version | grep version: | cut -d' ' -f2)
78
+ echo "Shellcheck: $SHELLCHECK_VERSION" >>"$REPORT_DIR/updates.txt"
79
+ fi
80
+
81
+ # Check other tools if available
82
+ for tool in shfmt stylua luacheck; do
83
+ if command -v "$tool" &>/dev/null; then
84
+ VERSION=$($tool --version 2>&1 | head -1 || echo "unknown")
85
+ echo "$tool: $VERSION" >>"$REPORT_DIR/updates.txt"
86
+ fi
87
+ done
88
+
89
+ echo "" >>"$REPORT_DIR/updates.txt"
90
+ }
91
+
92
+ generate_summary() {
93
+ {
94
+ echo "=== Update Summary ==="
95
+ echo "Generated: $(date -Iseconds)"
96
+ echo "Repository: $REPO_ROOT"
97
+ echo ""
98
+ } >>"$REPORT_DIR/updates.txt"
99
+
100
+ # Count potential updates (simplified heuristic)
101
+ local update_count
102
+ update_count=$(grep -c "⚠️\|→" "$REPORT_DIR/updates.txt" 2>/dev/null || echo "0")
103
+
104
+ if [[ $update_count -gt 0 ]]; then
105
+ echo "🔄 $update_count potential updates found" >>"$REPORT_DIR/updates.txt"
106
+ else
107
+ echo "✅ All dependencies appear current" >>"$REPORT_DIR/updates.txt"
108
+ fi
109
+ }
110
+
111
+ main() {
112
+ echo "Dependency Update Checker"
113
+ echo "========================"
114
+ echo "Checking for available updates..."
115
+
116
+ # Clear previous report
117
+ true >"$REPORT_DIR/updates.txt"
118
+
119
+ check_chezmoi_updates
120
+ check_precommit_updates
121
+ check_github_actions_updates
122
+ check_security_tools_updates
123
+ generate_summary
124
+
125
+ echo "Report generated: $REPORT_DIR/updates.txt"
126
+ echo ""
127
+ echo "Summary:"
128
+ tail -10 "$REPORT_DIR/updates.txt"
129
+ }
130
+
131
+ main "$@"
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ # Universal AI Toolchain Setup & Authentication.
4
+
5
+ set -euo pipefail
6
+
7
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
8
+ # shellcheck disable=SC1091
9
+ source "$SCRIPT_DIR/dot/lib/ui.sh"
10
+
11
+ ui_header "Universal AI Toolchain Setup"
12
+
13
+ setup_tool() {
14
+ local name="$1"
15
+ local cmd="$2"
16
+ local auth_cmd="$3"
17
+
18
+ ui_section "Setting up $name"
19
+ if command -v "$cmd" >/dev/null 2>&1; then
20
+ ui_info "Tool found, initiating authentication..."
21
+ eval "$auth_cmd" || ui_warn "$name" "Setup/Auth skipped or failed."
22
+ else
23
+ ui_err "$name" "Binary not found. Run 'dot apply' or install via mise first."
24
+ fi
25
+ }
26
+
27
+ # 1. Claude
28
+ setup_tool "Claude CLI" "claude" "claude --version" # Claude handles auth via web flow or env
29
+
30
+ # 2. Gemini
31
+ setup_tool "Gemini CLI" "gemini" "gemini info"
32
+
33
+ # 3. Copilot
34
+ setup_tool "Copilot CLI" "copilot" "copilot --version"
35
+
36
+ # 4. Kiro
37
+ setup_tool "Kiro CLI" "kiro-cli" "kiro-cli auth login"
38
+
39
+ # 6. Aider
40
+ setup_tool "Aider" "aider" "aider --version"
41
+
42
+ # 7. Autohand Code
43
+ setup_tool "Autohand Code" "autohand" "autohand --version"
44
+
45
+ # 8. Mistral Vibe
46
+ setup_tool "Mistral Vibe" "vibe" "vibe --version"
47
+
48
+ # 9. Qwen Code
49
+ setup_tool "Qwen Code" "qwen" "qwen --version"
50
+
51
+ # 10. ZAI
52
+ setup_tool "ZAI" "zai" "zai --version"
53
+
54
+ ui_header "AI Setup Complete"
55
+ ui_info "All tools are ready. Use 'dot ai' to check status."
@@ -0,0 +1,77 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ # Create an offline bundle of the dotfiles environment for air-gapped systems.
4
+
5
+ set -euo pipefail
6
+
7
+ _cleanup_files=()
8
+ trap 'rm -f "${_cleanup_files[@]}"' EXIT
9
+
10
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
11
+ # shellcheck disable=SC1091
12
+ source "$SCRIPT_DIR/dot/lib/ui.sh"
13
+ # shellcheck disable=SC1091
14
+ source "$SCRIPT_DIR/dot/lib/log.sh"
15
+ export DOT_COMMAND="bundle"
16
+
17
+ # Concurrency guard
18
+ LOCK_FILE="${XDG_RUNTIME_DIR:-/tmp}/dotfiles-bundle.lock"
19
+ exec 9>"$LOCK_FILE"
20
+ if ! flock -n 9; then
21
+ ui_warn "Already running" "Another bundle instance is active"
22
+ exit 0
23
+ fi
24
+
25
+ OUTPUT_DIR="${1:-$HOME/Downloads}"
26
+ TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
27
+ BUNDLE_FILE="$OUTPUT_DIR/dotfiles_offline_bundle_$TIMESTAMP.tar.zst"
28
+
29
+ dot_log info "bundle_start"
30
+ ui_header "Creating Offline Bundle (Zero-Network Mode)"
31
+
32
+ # Ensure target directory exists
33
+ mkdir -p "$OUTPUT_DIR"
34
+
35
+ ui_info "Gathering artifacts..."
36
+ # We use zstd for much faster compression of binary artifacts compared to gzip/xz
37
+ if ! command -v tar >/dev/null || ! command -v zstd >/dev/null; then
38
+ ui_err "tar and zstd are required for bundling."
39
+ exit 1
40
+ fi
41
+
42
+ # Define paths to bundle
43
+ declare -a paths_to_bundle=(
44
+ "$HOME/.dotfiles"
45
+ "$HOME/.config/chezmoi"
46
+ "$HOME/.local/share/mise"
47
+ )
48
+
49
+ # Optional: Add nix store if present and requested
50
+ if [[ -d "/nix/store" ]] && [[ "${DOTFILES_BUNDLE_NIX:-0}" == "1" ]]; then
51
+ ui_warn "Including Nix store. This will be very large."
52
+ paths_to_bundle+=("/nix/store" "/nix/var/nix" "$HOME/.nix-profile")
53
+ fi
54
+
55
+ # Filter only existing paths
56
+ declare -a valid_paths=()
57
+ for p in "${paths_to_bundle[@]}"; do
58
+ if [[ -e "$p" ]]; then
59
+ valid_paths+=("$p")
60
+ ui_bullet "Adding: $p"
61
+ fi
62
+ done
63
+
64
+ ui_info "Compressing artifacts (this may take a while)..."
65
+ # Use absolute paths and store them relative to / to preserve structure
66
+ tar --zstd -cf "$BUNDLE_FILE" -P "${valid_paths[@]}" 2>/dev/null || {
67
+ ui_err "Failed to create bundle."
68
+ exit 1
69
+ }
70
+
71
+ bundle_size=$(stat -c '%s' "$BUNDLE_FILE" 2>/dev/null || stat -f '%z' "$BUNDLE_FILE" 2>/dev/null || echo 0)
72
+ dot_log info "bundle_end" "file=$BUNDLE_FILE"
73
+ dot_metric "bundle_size" "$bundle_size" "bytes"
74
+ ui_ok "Bundle created" "$BUNDLE_FILE"
75
+ ui_info "To restore on an offline machine:"
76
+ ui_bullet "tar --zstd -xf $BUNDLE_FILE -P"
77
+ ui_bullet "cd ~/.dotfiles && ./install.sh --force"
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ # Chaos Engineering: Randomly corrupt config files to test self-healing (dot heal)
4
+ # USE WITH CAUTION: This intentionally breaks your environment.
5
+
6
+ set -euo pipefail
7
+
8
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
+ # shellcheck source=../dot/lib/ui.sh
10
+ # shellcheck disable=SC1091
11
+ source "$SCRIPT_DIR/../dot/lib/ui.sh"
12
+ ui_init
13
+
14
+ if [[ "${1:-}" != "--force" ]]; then
15
+ ui_err "WARNING" "This script will intentionally break your dotfiles configuration."
16
+ ui_info "Purpose" "Tests 'dot heal' auto-repair capabilities."
17
+ echo ""
18
+ ui_info "To run, execute" "${0} --force"
19
+ exit 1
20
+ fi
21
+
22
+ ui_warn "Initiating Chaos Engineering Sequence..."
23
+
24
+ # Target files for corruption/deletion
25
+ TARGETS=(
26
+ "$HOME/.config/starship.toml"
27
+ "$HOME/.zshrc"
28
+ "$HOME/.config/alacritty/alacritty.toml"
29
+ )
30
+
31
+ # 1. Configuration Deletion
32
+ for target in "${TARGETS[@]}"; do
33
+ if [[ -f "$target" ]] || [[ -L "$target" ]]; then
34
+ ui_err "Destroying" "$target"
35
+ rm -f "$target"
36
+ fi
37
+ done
38
+
39
+ # 2. Symlink Corruption
40
+ ui_err "Creating" "broken symlinks..."
41
+ ln -sf /tmp/nonexistent_file_xyz "$HOME/.config/broken_symlink_test"
42
+
43
+ # 3. Path Mutation
44
+ ui_err "Corrupting" "PATH..."
45
+ export PATH="/bin"
46
+
47
+ echo ""
48
+ ui_ok "Chaos injected" "State is drifted and broken."
49
+ ui_info "Recover" "dot heal"