@sebastienrousseau/dotfiles 0.2.501 → 0.2.503

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (420) hide show
  1. package/CHANGELOG.md +155 -4
  2. package/LICENSE +21 -1283
  3. package/README.md +40 -8
  4. package/docs/CONFIG_STRATEGY.md +124 -0
  5. package/docs/COPYRIGHT +1 -1
  6. package/docs/GOVERNANCE.md +98 -0
  7. package/docs/MAINTAINERS.md +41 -0
  8. package/docs/OPENCODE.md +127 -0
  9. package/docs/README.md +2 -0
  10. package/docs/STRUCTURE.md +102 -0
  11. package/docs/adr/ADR-011-nushell-tier3-keep.md +2 -2
  12. package/docs/architecture/AI_COST_OPTIMIZATION.md +143 -0
  13. package/docs/architecture/REPO_LAYOUT.md +8 -8
  14. package/docs/archive/MILESTONE_v0.2.493.md +1 -1
  15. package/docs/index.md +2 -2
  16. package/docs/interop/POWERSHELL.md +1 -1
  17. package/docs/manual/00-introduction.md +1 -1
  18. package/docs/manual/01-concepts/02-trust-model.md +1 -1
  19. package/docs/manual/03-reference/01-dot-cli.md +63 -45
  20. package/docs/manual/03-reference/02-config-files.md +2 -2
  21. package/docs/manual/03-reference/05-feature-flags.md +62 -3
  22. package/docs/manual/_toc.yml +1 -1
  23. package/docs/manual/command-index.md +72 -55
  24. package/docs/manual/index.md +66 -0
  25. package/docs/operations/CI_COMPOSITES.md +2 -2
  26. package/docs/operations/COMPLETIONS.md +2 -2
  27. package/docs/operations/COVERAGE.md +40 -6
  28. package/docs/operations/HARD_AUDIT_2026.md +631 -0
  29. package/docs/operations/MAINTENANCE.md +3 -3
  30. package/docs/operations/MANIFEST.md +127 -0
  31. package/docs/operations/REGISTRY.md +89 -0
  32. package/docs/operations/RELEASE_PIPELINE.md +130 -0
  33. package/docs/operations/RFC_v0_2_503_reorganization.md +280 -0
  34. package/docs/operations/ROADMAP_2026.md +665 -0
  35. package/docs/operations/ROADMAP_V0_2_503.md +134 -0
  36. package/docs/operations/TESTING.md +17 -0
  37. package/docs/operations/TRACEABILITY.md +9 -3
  38. package/docs/operations/VERSION_SYNC.md +4 -4
  39. package/docs/reference/POWERSHELL_PARITY.md +81 -0
  40. package/docs/registry.json +6 -0
  41. package/docs/schema/dot-env-v1.json +110 -0
  42. package/docs/security/CI_EGRESS_ALLOWLIST.md +1 -1
  43. package/docs/security/CI_PINNING.md +121 -0
  44. package/docs/security/COMMIT_SIGNING.md +138 -0
  45. package/docs/security/DEPS_DEV_EXCEPTIONS.md +2 -2
  46. package/docs/security/DISCLOSURE.md +130 -0
  47. package/docs/security/FUZZING.md +114 -0
  48. package/docs/security/INSTALL_VERIFICATION.md +2 -2
  49. package/docs/security/KEY_ROTATION.md +81 -1
  50. package/docs/security/POLICY_RELEASES.md +2 -2
  51. package/docs/security/SCORECARD.md +130 -15
  52. package/docs/security/SHELL_EXEMPTIONS.md +4 -4
  53. package/docs/security/VERIFY_RELEASE.md +201 -0
  54. package/docs/security/security-pubkey.asc +15 -0
  55. package/install.sh +67 -38
  56. package/package.json +1 -1
  57. package/scripts/README.md +123 -0
  58. package/scripts/ci/check-copyright-headers.sh +4 -93
  59. package/scripts/ci/check-shell-preamble.sh +4 -103
  60. package/scripts/ci/guard-gitleaks-checkout.sh +4 -54
  61. package/scripts/diagnostics/a2a-conformance.sh +4 -4
  62. package/scripts/diagnostics/alias-governance.sh +1 -1
  63. package/scripts/diagnostics/aliases-cheatsheet.sh +2 -2
  64. package/scripts/diagnostics/benchmark.sh +4 -4
  65. package/scripts/diagnostics/conflicts.sh +2 -2
  66. package/scripts/diagnostics/doctor-unified.sh +2 -2
  67. package/scripts/diagnostics/doctor.sh +45 -15
  68. package/scripts/diagnostics/drift-dashboard.sh +2 -2
  69. package/scripts/diagnostics/health.sh +4 -4
  70. package/scripts/diagnostics/history-analysis.sh +2 -2
  71. package/scripts/diagnostics/mcp-doctor.sh +10 -7
  72. package/scripts/diagnostics/perf.sh +4 -4
  73. package/scripts/diagnostics/scorecard.sh +4 -4
  74. package/scripts/diagnostics/security-score.sh +2 -2
  75. package/scripts/diagnostics/smoke-test.sh +2 -2
  76. package/scripts/diagnostics/snapshot.sh +2 -2
  77. package/scripts/diagnostics/verify.sh +4 -4
  78. package/scripts/diagnostics/version-locks.sh +2 -2
  79. package/scripts/diagnostics/workstation-attestation.sh +14 -14
  80. package/scripts/dot/commands/agent.sh +27 -22
  81. package/scripts/dot/commands/agents.sh +335 -0
  82. package/scripts/dot/commands/ai.sh +144 -25
  83. package/scripts/dot/commands/aliases.sh +10 -8
  84. package/scripts/dot/commands/appearance.sh +2 -2
  85. package/scripts/dot/commands/core.sh +12 -6
  86. package/scripts/dot/commands/diagnostics.sh +5 -5
  87. package/scripts/dot/commands/env-emit.sh +202 -0
  88. package/scripts/dot/commands/fleet.sh +290 -14
  89. package/scripts/dot/commands/init.sh +184 -0
  90. package/scripts/dot/commands/lint.sh +9 -4
  91. package/scripts/dot/commands/manual.sh +3 -3
  92. package/scripts/dot/commands/meta.sh +19 -10
  93. package/scripts/dot/commands/patterns.sh +2 -2
  94. package/scripts/dot/commands/registry.sh +263 -0
  95. package/scripts/dot/commands/restore.sh +4 -4
  96. package/scripts/dot/commands/secrets.sh +4 -3
  97. package/scripts/dot/commands/security.sh +2 -2
  98. package/scripts/dot/commands/tools.sh +62 -4
  99. package/scripts/dot/powershell/Dot.psm1 +199 -0
  100. package/scripts/fonts/install-nerd-fonts.sh +2 -2
  101. package/scripts/git-hooks/pre-commit-audit.sh +2 -2
  102. package/scripts/git-hooks/pre-push +13 -0
  103. package/scripts/lib/secrets_provider.sh +32 -6
  104. package/scripts/ops/ai-setup.sh +1 -1
  105. package/scripts/ops/bundle.sh +2 -2
  106. package/scripts/ops/chaos.sh +2 -2
  107. package/scripts/ops/chezmoi-apply.sh +4 -4
  108. package/scripts/ops/heal.sh +4 -4
  109. package/scripts/ops/post-apply-repair.sh +2 -2
  110. package/scripts/ops/prewarm.sh +2 -2
  111. package/scripts/ops/release.sh +4 -4
  112. package/scripts/ops/rollback.sh +18 -4
  113. package/scripts/ops/setup.sh +2 -2
  114. package/scripts/qa/check-version-consistency.sh +123 -0
  115. package/scripts/qa/coverage-baseline.sh +1 -1
  116. package/scripts/qa/docs-coverage.sh +2 -2
  117. package/scripts/qa/powershell-contract.ps1 +1 -1
  118. package/scripts/qa/scorecard-snapshot.sh +127 -0
  119. package/scripts/security/backup.sh +2 -2
  120. package/scripts/security/check-disclosure-key-expiry.sh +110 -0
  121. package/scripts/security/dns-doh.sh +4 -4
  122. package/scripts/security/encryption-check.sh +4 -4
  123. package/scripts/security/enforce-policies.sh +2 -2
  124. package/scripts/security/firewall.sh +4 -4
  125. package/scripts/security/lock-configs.sh +11 -2
  126. package/scripts/security/lock-screen.sh +4 -4
  127. package/scripts/security/manage-secrets.sh +2 -2
  128. package/scripts/security/ssh-cert.sh +2 -2
  129. package/scripts/security/telemetry-kill.sh +4 -4
  130. package/scripts/security/usb-safety.sh +4 -4
  131. package/scripts/theme/extract-heic-frames.sh +114 -0
  132. package/scripts/theme/rebuild-themes.sh +8 -1
  133. package/scripts/theme/switch.sh +13 -6
  134. package/scripts/theme/wallpaper-sync.sh +297 -93
  135. package/scripts/tuning/linux.sh +2 -2
  136. package/scripts/tuning/macos.sh +2 -2
  137. package/scripts/version-sync.sh +58 -7
  138. package/dot_config/.module-manifest.json +0 -69
  139. package/dot_config/ai/identity.md +0 -23
  140. package/dot_config/ai/patterns/architect.md +0 -16
  141. package/dot_config/ai/patterns/hardener.md +0 -15
  142. package/dot_config/ai/patterns/refactor.md +0 -15
  143. package/dot_config/aider/aider.conf.yml +0 -32
  144. package/dot_config/alacritty/alacritty.toml.tmpl +0 -55
  145. package/dot_config/ansible/ansible.cfg +0 -11
  146. package/dot_config/atuin/config.toml.tmpl +0 -47
  147. package/dot_config/bat/config +0 -23
  148. package/dot_config/brave-flags.conf.tmpl +0 -7
  149. package/dot_config/btop/btop.conf +0 -16
  150. package/dot_config/btop/themes/tokyonight.theme +0 -34
  151. package/dot_config/bun/bunfig.toml.tmpl +0 -33
  152. package/dot_config/claude/mcp_servers.json +0 -20
  153. package/dot_config/containers/containers.conf +0 -14
  154. package/dot_config/curl/dot_curlrc +0 -18
  155. package/dot_config/dlv/config.yml +0 -39
  156. package/dot_config/docker/config.json +0 -15
  157. package/dot_config/dotfiles/agent-card.json +0 -29
  158. package/dot_config/dotfiles/agent-profiles.json +0 -92
  159. package/dot_config/dotfiles/boot/README.md +0 -13
  160. package/dot_config/dotfiles/grub/README.md +0 -13
  161. package/dot_config/dotfiles/lock/README.md +0 -13
  162. package/dot_config/dotfiles/mcp-lock.json +0 -33
  163. package/dot_config/dotfiles/mcp-policy.json +0 -52
  164. package/dot_config/dotfiles/mcp-registry.json +0 -47
  165. package/dot_config/dotfiles/model-registry.json +0 -20
  166. package/dot_config/dotfiles/policy-bundles.json +0 -38
  167. package/dot_config/dotfiles/prompt-registry.json +0 -16
  168. package/dot_config/dotfiles/versions.env +0 -18
  169. package/dot_config/duf/duf.conf +0 -6
  170. package/dot_config/duti/defaults.duti +0 -5
  171. package/dot_config/emoji/emoji.txt +0 -34
  172. package/dot_config/environment.d/50-ssh-agent.conf +0 -2
  173. package/dot_config/environment.d/90-wayland.conf +0 -19
  174. package/dot_config/fastfetch/config.jsonc +0 -28
  175. package/dot_config/firefox/user.js.tmpl +0 -58
  176. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +0 -9
  177. package/dot_config/fish/completions/dot.fish.tmpl +0 -115
  178. package/dot_config/fish/conf.d/000-perf-cache.fish +0 -56
  179. package/dot_config/fish/conf.d/aliases.fish.tmpl +0 -77
  180. package/dot_config/fish/conf.d/env.fish.tmpl +0 -48
  181. package/dot_config/fish/conf.d/functions.fish.tmpl +0 -22
  182. package/dot_config/fish/conf.d/init.fish.tmpl +0 -172
  183. package/dot_config/fish/config.fish.tmpl +0 -44
  184. package/dot_config/fish/fish_plugins +0 -1
  185. package/dot_config/fish/functions/_.fish +0 -3
  186. package/dot_config/fish/functions/_cached_eval.fish +0 -131
  187. package/dot_config/fish/functions/_cached_eval_clear.fish +0 -17
  188. package/dot_config/fish/functions/als.fish +0 -46
  189. package/dot_config/fish/functions/bg-upgrade.fish +0 -7
  190. package/dot_config/fish/functions/c.fish +0 -3
  191. package/dot_config/fish/functions/cat.fish +0 -9
  192. package/dot_config/fish/functions/d.fish +0 -7
  193. package/dot_config/fish/functions/dot.fish +0 -34
  194. package/dot_config/fish/functions/h.fish +0 -3
  195. package/dot_config/fish/functions/l.fish +0 -7
  196. package/dot_config/fish/functions/la.fish +0 -7
  197. package/dot_config/fish/functions/ll.fish +0 -7
  198. package/dot_config/fish/functions/log_error.fish +0 -13
  199. package/dot_config/fish/functions/log_info.fish +0 -13
  200. package/dot_config/fish/functions/lr.fish +0 -7
  201. package/dot_config/fish/functions/lra.fish +0 -7
  202. package/dot_config/fish/functions/ls.fish +0 -7
  203. package/dot_config/fish/functions/lt.fish +0 -7
  204. package/dot_config/fish/functions/lta.fish +0 -7
  205. package/dot_config/fish/functions/notify-run.fish +0 -11
  206. package/dot_config/fish/functions/q.fish +0 -3
  207. package/dot_config/fish/functions/silent-run.fish +0 -7
  208. package/dot_config/fish/functions/yy.fish +0 -8
  209. package/dot_config/flatpak/flatpak.list +0 -4
  210. package/dot_config/fontconfig/fonts.conf.tmpl +0 -57
  211. package/dot_config/foot/foot.ini.tmpl +0 -33
  212. package/dot_config/fuzzel/fuzzel.ini.tmpl +0 -18
  213. package/dot_config/fzf/fzf.zsh +0 -48
  214. package/dot_config/gem/gemrc +0 -9
  215. package/dot_config/gh/config.yml +0 -12
  216. package/dot_config/ghostty/config.tmpl +0 -165
  217. package/dot_config/git/allowed_signers.tmpl +0 -18
  218. package/dot_config/git/attributes +0 -12
  219. package/dot_config/git/commit-template +0 -10
  220. package/dot_config/git/hooks/executable_commit-msg +0 -146
  221. package/dot_config/git/ignore +0 -27
  222. package/dot_config/gnupg/gpg-agent.conf +0 -11
  223. package/dot_config/go/golangci.yml +0 -118
  224. package/dot_config/go/gopls.json +0 -30
  225. package/dot_config/goose/config.yaml +0 -29
  226. package/dot_config/gtk-3.0/gtk.css.tmpl +0 -184
  227. package/dot_config/gtk-3.0/settings.ini.tmpl +0 -27
  228. package/dot_config/gtk-4.0/gtk.css.tmpl +0 -252
  229. package/dot_config/gtk-4.0/settings.ini.tmpl +0 -18
  230. package/dot_config/htop/htoprc +0 -20
  231. package/dot_config/inputrc +0 -2
  232. package/dot_config/ipython/profile_default/ipython_config.py +0 -19
  233. package/dot_config/just/justfile +0 -122
  234. package/dot_config/k9s/config.yaml +0 -65
  235. package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
  236. package/dot_config/kanshi/config.tmpl +0 -22
  237. package/dot_config/karabiner/karabiner.json +0 -14
  238. package/dot_config/kitty/kitty.conf.tmpl +0 -53
  239. package/dot_config/lazydocker/config.yml +0 -186
  240. package/dot_config/lazygit/config.yml +0 -35
  241. package/dot_config/mako/config +0 -47
  242. package/dot_config/mas/masapps.txt +0 -5
  243. package/dot_config/micro/settings.json +0 -3
  244. package/dot_config/mimeapps.list +0 -77
  245. package/dot_config/minikube/config.json +0 -13
  246. package/dot_config/mise/config.toml +0 -99
  247. package/dot_config/mongosh/mongoshrc.js +0 -68
  248. package/dot_config/mpv/input.conf +0 -47
  249. package/dot_config/mpv/mpv.conf +0 -47
  250. package/dot_config/mycli/myclirc +0 -67
  251. package/dot_config/nano/nanorc +0 -28
  252. package/dot_config/ncdu/config +0 -12
  253. package/dot_config/niri/config.kdl.tmpl +0 -327
  254. package/dot_config/nushell/aliases.nu +0 -18
  255. package/dot_config/nushell/cached_eval.nu +0 -80
  256. package/dot_config/nushell/completions.nu.tmpl +0 -52
  257. package/dot_config/nushell/config.nu.tmpl +0 -86
  258. package/dot_config/nushell/env.nu.tmpl +0 -102
  259. package/dot_config/nushell/functions.nu.tmpl +0 -17
  260. package/dot_config/nvim/init.lua +0 -18
  261. package/dot_config/nvim/lazy-lock.json +0 -58
  262. package/dot_config/nvim/lua/config/autocmds.lua +0 -107
  263. package/dot_config/nvim/lua/config/keymaps.lua +0 -92
  264. package/dot_config/nvim/lua/config/lazy.lua +0 -44
  265. package/dot_config/nvim/lua/config/options.lua +0 -49
  266. package/dot_config/nvim/lua/plugins/ai.lua +0 -75
  267. package/dot_config/nvim/lua/plugins/coding.lua +0 -216
  268. package/dot_config/nvim/lua/plugins/completion.lua +0 -60
  269. package/dot_config/nvim/lua/plugins/dap.lua +0 -412
  270. package/dot_config/nvim/lua/plugins/editor.lua +0 -55
  271. package/dot_config/nvim/lua/plugins/git.lua +0 -10
  272. package/dot_config/nvim/lua/plugins/lsp.lua +0 -156
  273. package/dot_config/nvim/lua/plugins/markdown.lua +0 -18
  274. package/dot_config/nvim/lua/plugins/rust.lua +0 -34
  275. package/dot_config/nvim/lua/plugins/sessions.lua +0 -33
  276. package/dot_config/nvim/lua/plugins/ui.lua +0 -509
  277. package/dot_config/paru/paru.conf +0 -10
  278. package/dot_config/pip/pip.conf.tmpl +0 -32
  279. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +0 -81
  280. package/dot_config/pueue/pueue.yml +0 -34
  281. package/dot_config/pypoetry/config.toml +0 -6
  282. package/dot_config/pyrightconfig.json +0 -5
  283. package/dot_config/raycast/README.md +0 -13
  284. package/dot_config/redis/redisclirc +0 -41
  285. package/dot_config/ripgrep/ripgreprc +0 -21
  286. package/dot_config/shell/00-core-paths.sh.tmpl +0 -134
  287. package/dot_config/shell/05-core-safety.sh +0 -48
  288. package/dot_config/shell/10-secrets.sh +0 -41
  289. package/dot_config/shell/40-fzf-defaults.sh.tmpl +0 -17
  290. package/dot_config/shell/40-ls-colors.sh +0 -49
  291. package/dot_config/shell/50-logic-functions-core.sh.tmpl +0 -11
  292. package/dot_config/shell/50-logic-functions.sh.tmpl +0 -11
  293. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +0 -65
  294. package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -121
  295. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -55
  296. package/dot_config/shell/Brewfile +0 -207
  297. package/dot_config/shell/Brewfile.cask +0 -92
  298. package/dot_config/shell/Brewfile.cli +0 -127
  299. package/dot_config/shell/README.md +0 -284
  300. package/dot_config/shell/als_data.txt.tmpl +0 -65
  301. package/dot_config/shell/custom/auto_ls.zsh +0 -20
  302. package/dot_config/shell/custom/context_suggest.zsh +0 -68
  303. package/dot_config/shell/custom/error_analysis.zsh +0 -45
  304. package/dot_config/sops/dot_sops.yaml +0 -23
  305. package/dot_config/starship.toml.tmpl +0 -202
  306. package/dot_config/swaylock/config +0 -43
  307. package/dot_config/systemd/user/dotfiles-maintenance.service +0 -8
  308. package/dot_config/systemd/user/dotfiles-maintenance.timer +0 -11
  309. package/dot_config/systemd/user/pueued.service +0 -12
  310. package/dot_config/systemd/user/ssh-agent.service +0 -12
  311. package/dot_config/task/Taskfile.yml +0 -86
  312. package/dot_config/tflint/tflint.hcl +0 -9
  313. package/dot_config/tmux/tmux.conf.tmpl +0 -223
  314. package/dot_config/topgrade.toml.tmpl +0 -54
  315. package/dot_config/user-dirs.dirs +0 -10
  316. package/dot_config/vscode/extensions.txt +0 -11
  317. package/dot_config/vscode/settings.json.tmpl +0 -82
  318. package/dot_config/waybar/config.jsonc.tmpl +0 -90
  319. package/dot_config/waybar/style.css.tmpl +0 -211
  320. package/dot_config/wezterm/wezterm.lua.tmpl +0 -64
  321. package/dot_config/wget/wgetrc +0 -12
  322. package/dot_config/xdg-desktop-portal/niri-portals.conf +0 -5
  323. package/dot_config/yarn/yarnrc.yml +0 -36
  324. package/dot_config/yazi/keymap.toml +0 -67
  325. package/dot_config/yazi/theme.toml +0 -102
  326. package/dot_config/yazi/yazi.toml +0 -40
  327. package/dot_config/zathura/zathurarc +0 -52
  328. package/dot_config/zellij/config.kdl.tmpl +0 -79
  329. package/dot_config/zsh/dot_zprofile +0 -7
  330. package/dot_config/zsh/dot_zshenv +0 -5
  331. package/dot_config/zsh/dot_zshrc.tmpl +0 -635
  332. package/dot_config/zsh/rc.d/00-alias-shims.zsh +0 -99
  333. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -18
  334. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
  335. package/dot_config/zsh/rc.d/20-zinit.zsh +0 -65
  336. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -214
  337. package/dot_config/zsh/rc.d/40-bell.zsh +0 -20
  338. package/dot_config/zsh/rc.d/50-login-fortune.zsh +0 -9
  339. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +0 -32
  340. package/dot_local/bin/executable_ai-update +0 -195
  341. package/dot_local/bin/executable_ai_core +0 -152
  342. package/dot_local/bin/executable_antigravity +0 -11
  343. package/dot_local/bin/executable_b64 +0 -84
  344. package/dot_local/bin/executable_bm +0 -79
  345. package/dot_local/bin/executable_cb +0 -39
  346. package/dot_local/bin/executable_dot +0 -596
  347. package/dot_local/bin/executable_dot-ai +0 -36
  348. package/dot_local/bin/executable_dot-bootstrap +0 -77
  349. package/dot_local/bin/executable_dot-launch-or-focus +0 -52
  350. package/dot_local/bin/executable_dot-load-benchmark +0 -31
  351. package/dot_local/bin/executable_dot-load-benchmark-pty +0 -77
  352. package/dot_local/bin/executable_dot-theme-sync +0 -952
  353. package/dot_local/bin/executable_dot_completion +0 -57
  354. package/dot_local/bin/executable_dtags +0 -28
  355. package/dot_local/bin/executable_epoch +0 -67
  356. package/dot_local/bin/executable_extract +0 -41
  357. package/dot_local/bin/executable_gbd +0 -52
  358. package/dot_local/bin/executable_gd +0 -42
  359. package/dot_local/bin/executable_git-ai-commit +0 -175
  360. package/dot_local/bin/executable_git-ai-diff +0 -169
  361. package/dot_local/bin/executable_gl +0 -101
  362. package/dot_local/bin/executable_hash +0 -161
  363. package/dot_local/bin/executable_hashsum +0 -160
  364. package/dot_local/bin/executable_hex +0 -115
  365. package/dot_local/bin/executable_jsonv +0 -78
  366. package/dot_local/bin/executable_jwt +0 -94
  367. package/dot_local/bin/executable_kill-port +0 -75
  368. package/dot_local/bin/executable_lorem +0 -118
  369. package/dot_local/bin/executable_mkscript +0 -35
  370. package/dot_local/bin/executable_monitor +0 -56
  371. package/dot_local/bin/executable_myip +0 -51
  372. package/dot_local/bin/executable_notify +0 -24
  373. package/dot_local/bin/executable_open +0 -38
  374. package/dot_local/bin/executable_pw +0 -27
  375. package/dot_local/bin/executable_rec-start +0 -46
  376. package/dot_local/bin/executable_rec-stop +0 -35
  377. package/dot_local/bin/executable_regex +0 -132
  378. package/dot_local/bin/executable_start-niri +0 -8
  379. package/dot_local/bin/executable_tmux-sessionizer +0 -314
  380. package/dot_local/bin/executable_tour +0 -177
  381. package/dot_local/bin/executable_up +0 -23
  382. package/dot_local/bin/executable_update +0 -142
  383. package/dot_local/bin/executable_uuid +0 -87
  384. package/dot_local/bin/executable_win +0 -32
  385. package/dot_local/bin/executable_yamlv +0 -57
  386. package/dot_local/share/bash-completion/completions/dot +0 -72
  387. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  388. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  389. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  390. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  391. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  392. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  393. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  394. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  395. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  396. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  397. package/dot_local/share/man/man1/dot.1 +0 -149
  398. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +0 -64
  399. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +0 -18
  400. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +0 -13
  401. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +0 -6
  402. package/dot_local/share/zsh/completions/.keep +0 -0
  403. package/dot_local/share/zsh/completions/_dot +0 -283
  404. package/scripts/ci/check-dangerous-chmod.sh +0 -19
  405. package/scripts/ci/check-deps-dev.sh +0 -236
  406. package/scripts/ci/check-insecure-tls.sh +0 -61
  407. package/scripts/ci/check-regression-traceability.sh +0 -67
  408. package/scripts/ci/install-chezmoi-verified.sh +0 -64
  409. package/scripts/ci/run-coverage.sh +0 -362
  410. package/scripts/ci/validate-chezmoidata.sh +0 -25
  411. package/scripts/ci/validate-ci-config.sh +0 -224
  412. package/scripts/docs/build-manual.sh +0 -883
  413. package/scripts/docs/check-manual.sh +0 -213
  414. package/scripts/dot/lib/bento.sh +0 -50
  415. package/scripts/dot/lib/log.sh +0 -200
  416. package/scripts/dot/lib/platform.sh +0 -99
  417. package/scripts/dot/lib/ui.sh +0 -518
  418. package/scripts/dot/lib/utils.sh +0 -377
  419. package/scripts/maintenance/check-updates.sh +0 -131
  420. package/scripts/release/package-policy-bundles.sh +0 -125
@@ -1,635 +0,0 @@
1
- # .dotfiles (v{{ .dotfiles_version }}) - <https://dotfiles.io>
2
- # Made With ❤️ in London, United Kingdom
3
- # Designed by
4
- # Copyright (c) 2015-2026. All rights reserved.
5
- # License: MIT
6
-
7
- # Performance optimization - skip if not interactive
8
- [[ -o interactive ]] || return
9
-
10
- # Only source once if being re-sourced (in the same shell scope)
11
- if [[ -v DOTFILES_SOURCED ]]; then
12
- return
13
- fi
14
- DOTFILES_SOURCED=1
15
-
16
- {{- /* Input Validation: Ensure crucial variables are set */ -}}
17
- {{- if not .chezmoi.homeDir -}}
18
- {{- fail "Critical Error: .chezmoi.homeDir is not set!" -}}
19
- {{- end -}}
20
-
21
- {{- if eq .chezmoi.os "darwin" }}
22
- export FORCE_COLOR_OS="macOS"
23
- {{- else if eq .chezmoi.os "linux" }}
24
- export FORCE_COLOR_OS="Linux"
25
- {{- else if eq .chezmoi.os "windows" }}
26
- export FORCE_COLOR_OS="Windows"
27
- {{- end }}
28
-
29
- {{- $profile := default "laptop" .profile -}}
30
- {{- $features := default (dict "zsh" true "nvim" true "tmux" true "gui" true "secrets" true) .features -}}
31
- {{- $theme := default "big-sur-dark" .theme -}}
32
- {{- $strict_mode := default false (index . "strict_mode") -}}
33
- {{- $enabled := list -}}
34
- {{- range $k, $v := $features }}{{- if $v }}{{- $enabled = append $enabled $k }}{{- end }}{{- end }}
35
-
36
- export DOTFILES_PROFILE="{{ $profile }}"
37
- export DOTFILES_FEATURES="{{ join "," $enabled }}"
38
- export DOTFILES_THEME="{{ $theme }}"
39
- : ${DOTFILES_STARTUP_MODE:=full}
40
- : ${DOTFILES_FAST:=0}
41
- : ${DOTFILES_ULTRA_FAST:=0}
42
- : ${DOTFILES_AI:=0}
43
- : ${DOTFILES_ALIAS_STRICT_MODE:={{ if $strict_mode }}1{{ else }}0{{ end }}}
44
- : ${DOTFILES_ULTRA_FAST_PROMPT:=1}
45
- : ${DOTFILES_LAYERS_LOAD:=ondemand}
46
- : ${DOTFILES_LAYERS_PREWARM:=system,text,api}
47
- : ${DOTFILES_ALIAS_WRAPPER:={{ if .features.alias_wrapper }}1{{ else }}0{{ end }}}
48
-
49
- # Default compinit based on profile (can be overridden by env)
50
- if [[ -z "${DOTFILES_ENABLE_COMPINIT+x}" ]]; then
51
- case "${DOTFILES_PROFILE}" in
52
- laptop|desktop) DOTFILES_ENABLE_COMPINIT=1 ;;
53
- *) DOTFILES_ENABLE_COMPINIT=0 ;;
54
- esac
55
- fi
56
-
57
- # Startup mode override (if explicit mode set and flags not already set)
58
- if [[ "${DOTFILES_FAST}" == "0" ]] && [[ "${DOTFILES_ULTRA_FAST}" == "0" ]]; then
59
- if [[ "${DOTFILES_STARTUP_MODE}" == "fast" ]]; then
60
- DOTFILES_FAST=1
61
- elif [[ "${DOTFILES_STARTUP_MODE}" == "ultra" ]]; then
62
- DOTFILES_ULTRA_FAST=1
63
- DOTFILES_FAST=1
64
- fi
65
- fi
66
-
67
- # Ultra-fast mode: minimal init (skip rc.d, plugins, prompts, AI, completions)
68
- if [[ "${DOTFILES_ULTRA_FAST}" == "1" ]]; then
69
- export DOTFILES_FAST=1
70
- if [[ "${DOTFILES_ULTRA_FAST_PROMPT}" == "1" ]]; then
71
- PROMPT='%n@%m:%~%# '
72
- RPROMPT=''
73
- fi
74
- # Ensure no precmd/preexec hooks run in ultra-fast mode
75
- precmd_functions=()
76
- preexec_functions=()
77
- unset -f precmd preexec
78
- typeset -aU path
79
- return
80
- fi
81
-
82
- # Cached eval helper — sources cached init scripts, regenerates when stale
83
- # Debug/Trace modes — observability for shell startup
84
- : ${DOTFILES_DEBUG:=0}
85
- : ${DOTFILES_TRACE:=0}
86
-
87
- if [[ "${DOTFILES_TRACE}" == "1" ]]; then
88
- _dotfiles_trace_dir="${XDG_STATE_HOME:-$HOME/.local/state}/dotfiles"
89
- mkdir -p "$_dotfiles_trace_dir"
90
- exec 3>&2 2>"$_dotfiles_trace_dir/debug.log"
91
- PS4='+%D{%s.%6.} %N:%i> '
92
- set -x
93
- fi
94
-
95
- if [[ "${DOTFILES_DEBUG}" == "1" ]]; then
96
- _dotfiles_debug_start=${EPOCHREALTIME:-$(date +%s.%N)}
97
- _dotfiles_debug() {
98
- local now=${EPOCHREALTIME:-$(date +%s.%N)}
99
- local elapsed
100
- elapsed=$(printf '%.0f' "$(( (now - _dotfiles_debug_start) * 1000 ))")
101
- printf '[debug %4dms] %s\n' "$elapsed" "$1" >&2
102
- }
103
- _dotfiles_debug "startup begins"
104
- else
105
- _dotfiles_debug() { :; }
106
- fi
107
-
108
- _SHELL_CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/zsh"
109
- [[ -d "$_SHELL_CACHE" ]] || mkdir -p "$_SHELL_CACHE"
110
-
111
- # Append a timing event to ${XDG_STATE_HOME:-~/.local/state}/dotfiles/eval-timings.jsonl.
112
- # Read by `dot perf --by-tool` to attribute startup time per tool.
113
- _cached_eval_log_timing() {
114
- emulate -L zsh
115
- setopt no_clobber 2>/dev/null && unsetopt no_clobber
116
- local label="$1" t0="$2" t1="$3" rc="${4:-0}" shell="${5:-zsh}"
117
- local log_dir="${XDG_STATE_HOME:-$HOME/.local/state}/dotfiles"
118
- [[ -d "$log_dir" ]] || mkdir -p "$log_dir" 2>/dev/null || return 0
119
- local logfile="$log_dir/eval-timings.jsonl"
120
- [[ -f "$logfile" ]] || touch "$logfile" 2>/dev/null || return 0
121
- local ms_int=0
122
- if [[ -n "$t0" && -n "$t1" ]]; then
123
- ms_int=$(printf '%.0f' "$(( (t1 - t0) * 1000 ))" 2>/dev/null) || ms_int=0
124
- fi
125
- printf '{"ts":"%s","shell":"%s","label":"%s","ms":%s,"rc":%s}\n' \
126
- "$(date -u +%Y-%m-%dT%H:%M:%SZ)" "$shell" "$label" "$ms_int" "$rc" \
127
- >> "$logfile" 2>/dev/null || true
128
- }
129
-
130
- # Cache and source a tool's init output, with mtime/realpath/file-arg invalidation.
131
- #
132
- # Runs <cmd args...> on cache miss, vets the output for shell-injection
133
- # patterns, writes atomically, sources, and precompiles via zcompile in
134
- # the background. Cache invalidates when the binary's mtime is newer,
135
- # its realpath has changed (PATH-shadow swap), or a file-path argument
136
- # is newer than the cache.
137
- #
138
- # @arg $1 string Cache label (cache file: $_SHELL_CACHE/<label>.zsh)
139
- # @arg $2..N string Command and args to run on cache miss
140
- # @env EVALCACHE_DISABLE Set to "true" to bypass cache read AND write
141
- # @env EVALCACHE_TIMING Set to "1" to log per-call timing for `dot perf --by-tool`
142
- # @stdout Sourced cache content
143
- # @stderr Warning on init failure or suspicious-output rejection
144
- # @exitcode 0 Cache hit, successful regeneration, or successful bypass
145
- # @exitcode 1 Suspicious pattern detected in init output
146
- # @exitcode * Init command's exit code on non-zero return
147
- _cached_eval() {
148
- if [[ "$EVALCACHE_TIMING" != "1" ]]; then
149
- _cached_eval_impl "$@"
150
- return
151
- fi
152
- zmodload zsh/datetime 2>/dev/null
153
- local _ce_t0="${EPOCHREALTIME:-$(date +%s.%N 2>/dev/null || echo 0)}"
154
- _cached_eval_impl "$@"
155
- local _ce_rc=$?
156
- local _ce_t1="${EPOCHREALTIME:-$(date +%s.%N 2>/dev/null || echo 0)}"
157
- _cached_eval_log_timing "${1:-unknown}" "$_ce_t0" "$_ce_t1" "$_ce_rc" "zsh"
158
- return $_ce_rc
159
- }
160
-
161
- _cached_eval_impl() {
162
- local label=$1; shift
163
-
164
- # Debug bypass: skip cache read AND write entirely.
165
- # Set EVALCACHE_DISABLE=true to eval directly without touching cache files.
166
- if [[ "$EVALCACHE_DISABLE" == "true" ]]; then
167
- eval "$("$@" 2>/dev/null)"
168
- return $?
169
- fi
170
-
171
- local cache="$_SHELL_CACHE/${label}.zsh"
172
- local pin="${cache}.bin"
173
- local bin="${commands[$1]}"
174
- local real_bin=""
175
- [[ -n "$bin" ]] && real_bin=${bin:A}
176
-
177
- # Cache is valid when: it exists non-empty, the binary is not newer than it,
178
- # the recorded realpath (if any) still matches the current realpath, and no
179
- # file-path argument has been modified since cache write.
180
- local cache_valid=1
181
- if [[ ! -s "$cache" ]]; then
182
- cache_valid=0
183
- elif [[ -n "$bin" && "$bin" -nt "$cache" ]]; then
184
- cache_valid=0
185
- elif [[ -f "$pin" && -n "$real_bin" ]]; then
186
- local pinned_real
187
- pinned_real=$(<"$pin")
188
- [[ -n "$pinned_real" && "$pinned_real" != "$real_bin" ]] && cache_valid=0
189
- fi
190
- if (( cache_valid )); then
191
- local arg
192
- for arg in "${@:2}"; do
193
- if [[ -f "$arg" && "$arg" -nt "$cache" ]]; then
194
- cache_valid=0
195
- break
196
- fi
197
- done
198
- fi
199
-
200
- if (( cache_valid )); then
201
- source "$cache"
202
- return
203
- fi
204
-
205
- local init_output rc
206
- init_output=$("$@" 2>/dev/null)
207
- rc=$?
208
- if (( rc != 0 )); then
209
- print -u2 "[WARN] $label init exited $rc; not caching"
210
- return $rc
211
- fi
212
-
213
- # Reject suspicious patterns indicating malicious payloads
214
- local suspicious_re='(curl[[:space:]].*\|[[:space:]]*(ba)?sh|wget[[:space:]].*\|[[:space:]]*(ba)?sh|nc[[:space:]]+-e|/dev/tcp/|base64[[:space:]]+-d[[:space:]]*\|)'
215
- if printf '%s\n' "$init_output" | LC_ALL=C grep -Eqs -- "$suspicious_re"; then
216
- print -u2 "[WARN] Suspicious output from $label init, skipping"
217
- return 1
218
- fi
219
-
220
- print -r -- "$init_output" > "${cache}.tmp.$$"
221
- mv "${cache}.tmp.$$" "$cache"
222
- if [[ -n "$real_bin" ]]; then
223
- print -r -- "$real_bin" > "${pin}.tmp.$$"
224
- mv "${pin}.tmp.$$" "$pin"
225
- fi
226
- source "$cache"
227
- { zcompile "$cache" } &!
228
- }
229
-
230
- # Clear cache files written by _cached_eval.
231
- #
232
- # Safe by design: only deletes *.zsh / *.zsh.bin / *.zwc files in
233
- # $_SHELL_CACHE, leaving any unrelated content untouched.
234
- #
235
- # @noargs
236
- # @stdout Single-line summary: "Cleared N cached eval file(s) from <dir>"
237
- # @exitcode 0 Always (no-op when cache dir doesn't exist)
238
- _cached_eval_clear() {
239
- local cache_dir="$_SHELL_CACHE"
240
- [[ -d "$cache_dir" ]] || return 0
241
- local count=0 f
242
- for f in "$cache_dir"/*.zsh(N) "$cache_dir"/*.zsh.bin(N) "$cache_dir"/*.zwc(N); do
243
- rm -f -- "$f" && (( count++ ))
244
- done
245
- printf 'Cleared %d cached eval file(s) from %s\n' "$count" "$cache_dir"
246
- }
247
-
248
- # Lightweight precmd hook manager (faster than add-zsh-hook)
249
- _dotfiles_add_precmd() {
250
- local fn="$1"
251
- [[ -z "$fn" ]] && return 0
252
- precmd_functions=(${precmd_functions:#$fn} "$fn")
253
- }
254
-
255
- _dotfiles_del_precmd() {
256
- local fn="$1"
257
- [[ -z "$fn" ]] && return 0
258
- precmd_functions=(${precmd_functions:#$fn})
259
- }
260
-
261
- # ==============================================================================
262
- # Dotfiles 2026: Zero-Jank & Artifact-Only Mode Foundation
263
- # ==============================================================================
264
- export DOTFILES_ARTIFACT_MODE="${DOTFILES_ARTIFACT_MODE:-0}"
265
-
266
- if [[ "$DOTFILES_ARTIFACT_MODE" == "1" ]]; then
267
- # The Canvas: Strip away all visual noise.
268
- export PROMPT="%F{green}➜ %f"
269
- export RPROMPT=""
270
- # Suppress all background job notifications
271
- setopt NO_NOTIFY
272
- setopt NO_MONITOR
273
- fi
274
- # ==============================================================================
275
-
276
- # Lightweight preexec hook manager
277
- _dotfiles_add_preexec() {
278
- local fn="$1"
279
- [[ -z "$fn" ]] && return 0
280
- preexec_functions=(${preexec_functions:#$fn} "$fn")
281
- }
282
-
283
- _dotfiles_del_preexec() {
284
- local fn="$1"
285
- [[ -z "$fn" ]] && return 0
286
- preexec_functions=(${preexec_functions:#$fn})
287
- }
288
-
289
- ## 🆅🅰🆁🅸🅰🆁🅸🅰🅱🅻🅴🆂 - Core variables, plugins, and options
290
- ZSH_RC_DIR="${HOME}/.config/zsh/rc.d"
291
- if [[ -d "${ZSH_RC_DIR}" ]]; then
292
- for rc_file in "${ZSH_RC_DIR}"/**/*.zsh(N); do
293
- source "${rc_file}"
294
- done
295
- fi
296
-
297
- # User-local rc.d extensions (not managed by chezmoi)
298
- if [[ -d "${ZDOTDIR:-$HOME/.config/zsh}/rc.d.local" ]]; then
299
- for _rc_local in "${ZDOTDIR:-$HOME/.config/zsh}"/rc.d.local/*.zsh(N); do
300
- source "$_rc_local"
301
- done
302
- unset _rc_local
303
- fi
304
-
305
- ###############################
306
- # Performance: Auto-Zcompile #
307
- ###############################
308
- zcompile_many() {
309
- local f
310
- for f; do
311
- # Compile if source is newer than .zwc or .zwc doesn't exist
312
- if [[ -f "$f" ]]; then
313
- if [[ ! -f "${f}.zwc" || "$f" -nt "${f}.zwc" ]]; then
314
- zcompile "$f"
315
- fi
316
- fi
317
- done
318
- }
319
-
320
- # Compile main config and generated files in background
321
- if [[ -o interactive ]]; then
322
- (
323
- zcompile_many "${HOME}/.zshrc" \
324
- "${HOME}/.config/shell/aliases.sh" \
325
- "${HOME}/.config/shell/paths.sh" \
326
- "${HOME}/.config/shell/functions.sh" \
327
- "${HOME}/.config/shell/00-core-paths.sh" \
328
- "${HOME}/.config/shell/05-core-safety.sh" \
329
- "${HOME}/.config/shell/40-ls-colors.sh" \
330
- "${HOME}/.config/shell/50-logic-functions-core.sh" \
331
- "${HOME}/.config/shell/90-ux-aliases.sh" \
332
- /opt/homebrew/opt/fzf/shell/completion.zsh \
333
- /opt/homebrew/opt/fzf/shell/key-bindings.zsh &
334
- )
335
- fi
336
-
337
- # Legacy Loader (Disabled in favor of Chezmoi Universal Config)
338
- # _DOTFILES_CACHE="${HOME}/.zsh_dotfiles_cache"
339
- # load_dotfiles() { ... }
340
- # load_dotfiles
341
-
342
- # Remove duplicates in zsh $PATH
343
- typeset -aU path
344
-
345
- # Load local customizations if they exist
346
- [[ -f "${HOME}/.zshrc.local" ]] && source "${HOME}/.zshrc.local"
347
-
348
- # Vendor / Enterprise Hooks (Site-local overrides)
349
- # Supports drop-in configs from system management tools
350
- if [[ -d "/etc/dotfiles/defaults.d" ]]; then
351
- for hook in /etc/dotfiles/defaults.d/*.sh(N); do
352
- source "$hook"
353
- done
354
- fi
355
-
356
- # Load Chezmoi-managed Universal Configuration Layers (Lexical Order)
357
- # 00-19: Core (Paths, Safety)
358
- # 20-49: Middleware (Exports, Options)
359
- # 50-89: Toolchain & Logic (Functions, Rust tools)
360
- # 90-99: UX (Aliases, Prompts)
361
- #
362
- # Optimized loading of core configurations + eager aliases
363
- if [[ "${DOTFILES_FAST}" == "1" ]]; then
364
- _core_layers=(00-core-paths 05-core-safety)
365
- else
366
- _core_layers=(00-core-paths 05-core-safety 90-ux-aliases)
367
- fi
368
- for core_layer in "${_core_layers[@]}"; do
369
- [[ -f "${HOME}/.config/shell/${core_layer}.sh" ]] && source "${HOME}/.config/shell/${core_layer}.sh"
370
- done
371
- unset _core_layers
372
-
373
- # Starship prompt (eager — must survive cache clears for consistent UI)
374
- if [[ "$DOTFILES_ARTIFACT_MODE" != "1" ]] && (( ${+commands[starship]} )); then
375
- _cached_eval starship-init starship init zsh
376
- # Transient Prompt: collapse the prompt of past commands to the
377
- # [character] glyph after Enter, reducing scrollback noise.
378
- #
379
- # Forward-compatibility hook. Starship's `enable_transience` function
380
- # is currently defined only by `starship init fish` (upstream issue
381
- # starship/starship#3522 tracks the zsh equivalent). On zsh the
382
- # `${+functions[enable_transience]}` guard evaluates to 0, so the
383
- # block silently no-ops. When upstream ships the zsh-side function,
384
- # this code activates automatically — no zshrc change needed.
385
- #
386
- # The `_DOTFILES_STARSHIP_TRANSIENT` flag prevents the lazy-hydration
387
- # path below (which also re-runs starship init) from binding the
388
- # widgets twice.
389
- if [[ -z "${_DOTFILES_STARSHIP_TRANSIENT:-}" ]] && (( ${+functions[enable_transience]} )); then
390
- enable_transience
391
- _DOTFILES_STARSHIP_TRANSIENT=1
392
- fi
393
- fi
394
-
395
- # User-local modules (aliases, functions — not managed by chezmoi)
396
- for _mod_dir in "${XDG_CONFIG_HOME:-$HOME/.config}/dotfiles/modules.d"/*(N/); do
397
- for _mod_file in "$_mod_dir"/*.sh(N); do
398
- source "$_mod_file"
399
- done
400
- done
401
- unset _mod_dir _mod_file
402
-
403
- if [[ "${DOTFILES_FAST}" != "1" ]]; then
404
- # On-demand loading of heavy layers (functions + aliases only when needed)
405
- DOTFILES_LAYERS_LOADED=0
406
- DOTFILES_LAYERS_LOAD_STATE=idle
407
- unset DOTFILES_LAYERS_LOAD_STATUS
408
- _dotfiles_load_heavy_layers_stage1() {
409
- [[ "${DOTFILES_LAYERS_LOAD_STATE}" == "stage1" || "${DOTFILES_LAYERS_LOAD_STATE}" == "ready" ]] && return 0
410
- DOTFILES_LAYERS_LOAD_STATE=loading
411
- unset DOTFILES_LAYERS_LOAD_STATUS
412
- [[ -f "${HOME}/.config/shell/10-secrets.sh" ]] && source "${HOME}/.config/shell/10-secrets.sh"
413
- [[ -f "${HOME}/.config/shell/40-ls-colors.sh" ]] && source "${HOME}/.config/shell/40-ls-colors.sh"
414
- [[ -f "${HOME}/.config/shell/50-logic-functions-core.sh" ]] && source "${HOME}/.config/shell/50-logic-functions-core.sh"
415
- [[ -f "${HOME}/.config/shell/91-ux-aliases-lazy.sh" ]] && source "${HOME}/.config/shell/91-ux-aliases-lazy.sh"
416
- DOTFILES_LAYERS_LOAD_STATE=stage1
417
- }
418
-
419
- _dotfiles_load_heavy_layers_stage2() {
420
- [[ "${DOTFILES_LAYERS_LOAD_STATE}" == "ready" ]] && return 0
421
- [[ -f "${HOME}/.config/shell/51-logic-functions-extra.sh" ]] && source "${HOME}/.config/shell/51-logic-functions-extra.sh"
422
- # Compile extra functions for faster future loads
423
- if command -v zcompile >/dev/null 2>&1; then
424
- { [[ ! -f "${HOME}/.config/shell/51-logic-functions-extra.sh.zwc" || "${HOME}/.config/shell/51-logic-functions-extra.sh" -nt "${HOME}/.config/shell/51-logic-functions-extra.sh.zwc" ]] && zcompile "${HOME}/.config/shell/51-logic-functions-extra.sh" } &!
425
- fi
426
- DOTFILES_LAYERS_LOAD_STATE=ready
427
- DOTFILES_LAYERS_LOAD_STATUS=ready
428
- export DOTFILES_LAYERS_LOAD_STATUS
429
- }
430
-
431
- _dotfiles_prewarm_groups() {
432
- local -a _groups
433
- _groups=(${(s:,:)DOTFILES_LAYERS_PREWARM})
434
- local g
435
- for g in "${_groups[@]}"; do
436
- [[ -z "$g" ]] && continue
437
- if (( ${+functions[_dotfiles_load_group_${g}]} )); then
438
- "_dotfiles_load_group_${g}"
439
- fi
440
- done
441
- }
442
-
443
- _dotfiles_load_heavy_layers() {
444
- [[ "${DOTFILES_LAYERS_LOADED}" == "1" ]] && return 0
445
- DOTFILES_LAYERS_LOADED=1
446
- _dotfiles_load_heavy_layers_stage1
447
- _dotfiles_load_heavy_layers_stage2
448
- }
449
-
450
- # Optional background prewarm for heavy layers (idle after first prompt)
451
- _dotfiles_schedule_heavy_layers() {
452
- if [[ "${DOTFILES_LAYERS_LOAD}" == "background" ]]; then
453
- if [[ -n "${ZSH_EXECUTION_STRING:-}" ]]; then
454
- (sleep 1; _dotfiles_load_heavy_layers_stage1; _dotfiles_load_heavy_layers_stage2; _dotfiles_prewarm_groups) &
455
- else
456
- zmodload zsh/sched 2>/dev/null || return 0
457
- sched +1 _dotfiles_load_heavy_layers_stage1
458
- sched +2 _dotfiles_load_heavy_layers_stage2
459
- # Prewarm selected groups after stage2 loads stubs
460
- sched +3 _dotfiles_prewarm_groups
461
- fi
462
- fi
463
- }
464
- # Compatibility: use add-zsh-hook when available (tests rely on this)
465
- autoload -Uz add-zsh-hook
466
- _load_deferred_layers() {
467
- if (( ${+functions[add-zsh-hook]} )); then
468
- add-zsh-hook -d precmd _load_deferred_layers
469
- else
470
- _dotfiles_del_precmd _load_deferred_layers
471
- fi
472
- _dotfiles_schedule_heavy_layers
473
- }
474
- if (( ${+functions[add-zsh-hook]} )); then
475
- add-zsh-hook precmd _load_deferred_layers
476
- else
477
- _dotfiles_add_precmd _load_deferred_layers
478
- fi
479
-
480
- # Capture existing command_not_found handler (if any)
481
- if (( ${+functions[command_not_found_handler]} )); then
482
- functions[_dotfiles_prev_command_not_found_handler]="${functions[command_not_found_handler]}"
483
- fi
484
-
485
- command_not_found_handler() {
486
- local cmd="$1"
487
- shift || true
488
-
489
- if [[ "${DOTFILES_LAYERS_LOADED}" != "1" ]]; then
490
- _dotfiles_load_heavy_layers_stage1
491
- if (( ${+functions[$cmd]} )); then
492
- "$cmd" "$@"
493
- return $?
494
- fi
495
- if alias "$cmd" >/dev/null 2>&1; then
496
- local -a _args
497
- _args=("$@")
498
- eval "$cmd ${(@q)_args}"
499
- unset _args
500
- return $?
501
- fi
502
- _dotfiles_load_heavy_layers_stage2
503
- if (( ${+functions[$cmd]} )); then
504
- "$cmd" "$@"
505
- return $?
506
- fi
507
- if alias "$cmd" >/dev/null 2>&1; then
508
- local -a _args2
509
- _args2=("$@")
510
- eval "$cmd ${(@q)_args2}"
511
- unset _args2
512
- return $?
513
- fi
514
- fi
515
-
516
- if (( ${+functions[_dotfiles_prev_command_not_found_handler]} )); then
517
- _dotfiles_prev_command_not_found_handler "$cmd" "$@"
518
- return $?
519
- fi
520
-
521
- print -r -- "zsh: command not found: ${cmd}" >&2
522
- return 127
523
- }
524
-
525
- # dot load: force heavy layers now
526
- unalias dot 2>/dev/null
527
- functions[dot]='
528
- if [[ "$1" == "load" ]]; then
529
- if [[ "$2" == "--background" ]]; then
530
- DOTFILES_LAYERS_LOAD=background
531
- _dotfiles_schedule_heavy_layers
532
- return 0
533
- fi
534
- if [[ "$2" == "--status" ]]; then
535
- if [[ "$3" == "--watch" ]]; then
536
- local _timeout="${4:-5}"
537
- local _t0=$EPOCHREALTIME
538
- if [[ "${DOTFILES_LAYERS_LOAD_STATE:-idle}" == "idle" ]]; then
539
- _dotfiles_load_heavy_layers
540
- fi
541
- while [[ "${DOTFILES_LAYERS_LOAD_STATE:-idle}" != "ready" ]]; do
542
- sleep 0.1
543
- if [[ -n "${_timeout}" && "${_timeout}" != "0" ]]; then
544
- local _t1=$EPOCHREALTIME
545
- if (( (_t1 - _t0) >= _timeout )); then
546
- print -r -- "timeout"
547
- return 124
548
- fi
549
- fi
550
- done
551
- fi
552
- print -r -- "${DOTFILES_LAYERS_LOAD_STATE:-idle}"
553
- return 0
554
- fi
555
- _dotfiles_load_heavy_layers
556
- return 0
557
- fi
558
- "$HOME/.local/bin/dot" "$@"
559
- '
560
- fi
561
-
562
- # Essential Aliases (fallback if 90-ux-aliases.sh is unavailable)
563
- if command -v bat >/dev/null; then
564
- alias cat="bat"
565
- fi
566
-
567
-
568
- if [[ "${DOTFILES_FAST}" != "1" ]]; then
569
- ## AI / Predictive Shell (opt-in)
570
- if [[ "${DOTFILES_AI}" == "1" ]]; then
571
- [[ -f "$HOME/.config/shell/custom/context_suggest.zsh" ]] && source "$HOME/.config/shell/custom/context_suggest.zsh"
572
- [[ -f "$HOME/.config/shell/custom/error_analysis.zsh" ]] && source "$HOME/.config/shell/custom/error_analysis.zsh"
573
- fi
574
-
575
- : ${DOTFILES_DEFER_TOOLS:=1}
576
-
577
- # Dotfiles 2026 Async Loader: Move heavy binary path resolution to background
578
- _dotfiles_async_init() {
579
- [[ "$DOTFILES_FAST" == "1" ]] && return
580
- local tools=(mise atuin starship zoxide)
581
- local t
582
- for t in $tools; do
583
- if [[ -x "${commands[$t]}" ]]; then
584
- case "$t" in
585
- mise)
586
- _cached_eval mise-init mise activate zsh
587
- ;;
588
- atuin)
589
- _cached_eval atuin-init atuin init zsh
590
- ;;
591
- starship)
592
- if [[ "$DOTFILES_ARTIFACT_MODE" == "0" ]]; then
593
- _cached_eval starship-init starship init zsh
594
- if [[ -z "${_DOTFILES_STARSHIP_TRANSIENT:-}" ]] && (( ${+functions[enable_transience]} )); then
595
- enable_transience
596
- _DOTFILES_STARSHIP_TRANSIENT=1
597
- fi
598
- fi
599
- ;;
600
- zoxide)
601
- _cached_eval zoxide-init zoxide init zsh
602
- ;;
603
- esac
604
- fi
605
- done
606
- }
607
-
608
- # Deferred Hydration for Zero-Jank Experience
609
- _dotfiles_deferred_hydration() {
610
- # Unregister self
611
- _dotfiles_del_precmd _dotfiles_deferred_hydration
612
- _dotfiles_del_preexec _dotfiles_deferred_hydration
613
-
614
- # Check if already hydrated in this shell instance
615
- [[ -n "$DOTFILES_HYDRATED" ]] && return 0
616
- export DOTFILES_HYDRATED=1
617
-
618
- _dotfiles_async_init
619
-
620
- # Bento-Grid 2.0 (Liquid Glass Dashboard)
621
- # Only render if interactive and not in restricted ultra-fast mode
622
- if [[ "$DOTFILES_ARTIFACT_MODE" == "1" ]]; then
623
- [[ -f "$HOME/.dotfiles/scripts/dot/lib/bento.sh" ]] && (bash "$HOME/.dotfiles/scripts/dot/lib/bento.sh" </dev/null; kill -WINCH $$) &!
624
- fi
625
- }
626
-
627
- # 1. Idle trigger (500ms)
628
- zmodload zsh/sched 2>/dev/null
629
- sched +1 _dotfiles_deferred_hydration 2>/dev/null
630
-
631
- # 2. First-action trigger (Prompt or Enter)
632
- _dotfiles_add_precmd _dotfiles_deferred_hydration
633
- _dotfiles_add_preexec _dotfiles_deferred_hydration
634
-
635
- fi