@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,13 +0,0 @@
1
- function log_error --description 'Log error message'
2
- if set -q NO_COLOR; or not isatty 2
3
- set -l RED ""
4
- set -l NC ""
5
- printf "[ERROR] %s
6
- " "$argv[1]" >&2
7
- else
8
- set -l RED (set_color red)
9
- set -l NC (set_color normal)
10
- printf "%s[ERROR]%s %s
11
- " "$RED" "$NC" "$argv[1]" >&2
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- function log_info --description 'Log info message'
2
- if set -q NO_COLOR; or not isatty 1
3
- set -l BLUE ""
4
- set -l NC ""
5
- printf "[INFO] %s
6
- " "$argv[1]"
7
- else
8
- set -l BLUE (set_color blue)
9
- set -l NC (set_color normal)
10
- printf "%s[INFO]%s %s
11
- " "$BLUE" "$NC" "$argv[1]"
12
- end
13
- end
@@ -1,7 +0,0 @@
1
- function lr --wraps=ls --description 'List contents of directory recursively'
2
- if command -v eza >/dev/null 2>&1
3
- eza -alF --recurse --sort Name --icons --group-directories-first $argv
4
- else
5
- ls -lAR $argv
6
- end
7
- end
@@ -1,7 +0,0 @@
1
- function lra --wraps=ls --description 'List contents of directory recursively including hidden files'
2
- if command -v eza >/dev/null 2>&1
3
- eza -alF --recurse --all --sort Name --icons --group-directories-first $argv
4
- else
5
- ls -lAR $argv
6
- end
7
- end
@@ -1,7 +0,0 @@
1
- function ls --description 'List contents of directory'
2
- if command -v eza >/dev/null 2>&1
3
- eza --sort Name --icons --group-directories-first $argv
4
- else
5
- command ls $argv
6
- end
7
- end
@@ -1,7 +0,0 @@
1
- function lt --wraps=ls --description 'List contents of directory in tree format'
2
- if command -v eza >/dev/null 2>&1
3
- eza -aT --sort Name --icons --group-directories-first $argv
4
- else
5
- ls -R $argv
6
- end
7
- end
@@ -1,7 +0,0 @@
1
- function lta --wraps=ls --description 'List contents of directory in tree format including hidden files'
2
- if command -v eza >/dev/null 2>&1
3
- eza -aT --all --sort Name --icons --group-directories-first $argv
4
- else
5
- ls -aR $argv
6
- end
7
- end
@@ -1,11 +0,0 @@
1
- function notify-run --description 'Submit a command to pueue and notify when done'
2
- if test -z "$argv"
3
- echo "Usage: notify-run <command>"
4
- return 1
5
- end
6
- set -l task_id (pueue add --print-id -- $argv)
7
- echo "Task $task_id submitted: $argv"
8
- # Run a background process to wait and notify
9
- fish -c "pueue wait $task_id; and echo '✅ Task $task_id finished: $argv'" &
10
- disown
11
- end
@@ -1,3 +0,0 @@
1
- function q --description 'Exit shell'
2
- exit $argv
3
- end
@@ -1,7 +0,0 @@
1
- function silent-run --description 'Submit a command to pueue and forget about it'
2
- if test -z "$argv"
3
- echo "Usage: silent-run <command>"
4
- return 1
5
- end
6
- pueue add -- $argv
7
- end
@@ -1,8 +0,0 @@
1
- function yy --description 'Run Yazi and change directory on exit'
2
- set tmp (mktemp -t "yazi-cwd.XXXXXX")
3
- yazi $argv --cwd-file="$tmp"
4
- if set cwd (command cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
5
- builtin cd -- "$cwd"
6
- end
7
- rm -f -- "$tmp"
8
- end
@@ -1,4 +0,0 @@
1
- # Flatpak apps to install (one per line). Example:
2
- # com.spotify.Client
3
- # org.mozilla.firefox
4
- # com.visualstudio.code
@@ -1,57 +0,0 @@
1
- {{ if eq .chezmoi.os "linux" -}}
2
- <?xml version="1.0"?>
3
- <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
4
- <fontconfig>
5
- <!-- Antialiasing -->
6
- <match target="font">
7
- <edit mode="assign" name="antialias">
8
- <bool>true</bool>
9
- </edit>
10
- </match>
11
-
12
- <!-- Hinting -->
13
- <match target="font">
14
- <edit mode="assign" name="hinting">
15
- <bool>true</bool>
16
- </edit>
17
- </match>
18
-
19
- <!-- Hint Style -->
20
- <match target="font">
21
- <edit mode="assign" name="hintstyle">
22
- <const>hintslight</const>
23
- </edit>
24
- </match>
25
-
26
- <!-- LCD Filter -->
27
- <match target="font">
28
- <edit mode="assign" name="lcdfilter">
29
- <const>lcddefault</const>
30
- </edit>
31
- </match>
32
-
33
- <!-- Wayland grayscale rendering avoids color fringing on mixed-density panels -->
34
- <match target="font">
35
- <edit mode="assign" name="rgba">
36
- <const>{{ if or .features.linux_desktop .features.niri }}none{{ else }}rgb{{ end }}</const>
37
- </edit>
38
- </match>
39
-
40
- <match target="font">
41
- <edit mode="assign" name="autohint">
42
- <bool>false</bool>
43
- </edit>
44
- </match>
45
-
46
- <!-- Default Monospace Font -->
47
- <alias>
48
- <family>monospace</family>
49
- <prefer>
50
- <family>JetBrainsMono Nerd Font</family>
51
- <family>Symbols Nerd Font</family>
52
- <family>Noto Color Emoji</family>
53
- </prefer>
54
- </alias>
55
-
56
- </fontconfig>
57
- {{ end -}}
@@ -1,33 +0,0 @@
1
- {{- $t := index .themes (default "big-sur-dark" .theme) -}}
2
- {{- if not $t -}}{{- $t = index .themes "big-sur-dark" -}}{{- end }}
3
- {{- $tt := $t -}}
4
- {{- $themeName := default "big-sur-dark" .theme -}}
5
- {{- if hasSuffix "-light" $themeName -}}
6
- {{- $darkTheme := index .themes (printf "%s-dark" (trimSuffix "-light" $themeName)) -}}
7
- {{- if $darkTheme -}}{{- $tt = $darkTheme -}}{{- end -}}
8
- {{- end }}
9
- [main]
10
- font={{ .terminal_font_family }}:size={{ .terminal_font_size }}
11
- pad=10x10
12
- term=xterm-256color
13
-
14
- [colors]
15
- alpha=0.95
16
- background={{ trimPrefix "#" $tt.term.bg }}
17
- foreground={{ trimPrefix "#" $tt.term.fg }}
18
- regular0={{ trimPrefix "#" $tt.term.c0 }}
19
- regular1={{ trimPrefix "#" $tt.term.c1 }}
20
- regular2={{ trimPrefix "#" $tt.term.c2 }}
21
- regular3={{ trimPrefix "#" $tt.term.c3 }}
22
- regular4={{ trimPrefix "#" $tt.term.c4 }}
23
- regular5={{ trimPrefix "#" $tt.term.c5 }}
24
- regular6={{ trimPrefix "#" $tt.term.c6 }}
25
- regular7={{ trimPrefix "#" $tt.term.c7 }}
26
- bright0={{ trimPrefix "#" $tt.term.c8 }}
27
- bright1={{ trimPrefix "#" $tt.term.c9 }}
28
- bright2={{ trimPrefix "#" $tt.term.c10 }}
29
- bright3={{ trimPrefix "#" $tt.term.c11 }}
30
- bright4={{ trimPrefix "#" $tt.term.c12 }}
31
- bright5={{ trimPrefix "#" $tt.term.c13 }}
32
- bright6={{ trimPrefix "#" $tt.term.c14 }}
33
- bright7={{ trimPrefix "#" $tt.term.c15 }}
@@ -1,18 +0,0 @@
1
- {{- $t := index .themes (default "big-sur-dark" .theme) -}}
2
- {{- if not $t -}}{{- $t = index .themes "big-sur-dark" -}}{{- end }}
3
- [main]
4
- font={{ .terminal_font_family }}:size={{ .terminal_font_size }}
5
- terminal=ghostty
6
- width=42
7
- horizontal-pad=18
8
- vertical-pad=14
9
- inner-pad=10
10
- layer=overlay
11
-
12
- [colors]
13
- background={{ trimPrefix "#" $t.term.bg }}ee
14
- text={{ trimPrefix "#" $t.term.fg }}ff
15
- match={{ trimPrefix "#" $t.term.c5 }}ff
16
- selection={{ trimPrefix "#" $t.term.c0 }}ff
17
- selection-text={{ trimPrefix "#" $t.term.fg }}ff
18
- border={{ trimPrefix "#" $t.term.c4 }}ff
@@ -1,48 +0,0 @@
1
- # Setup fzf (managed by dotfiles)
2
- # --------------------------------
3
- # ~/.fzf/bin is added to PATH in dot_config/shell/00-core-paths.sh.tmpl
4
-
5
- if command -v fzf >/dev/null 2>&1; then
6
- # Initialize key bindings and completion (requires interactive TTY)
7
- if [[ -o interactive ]] && [[ -t 1 ]]; then
8
- # Use _cached_eval when available (sourced from zshrc), else direct init
9
- if (( ${+functions[_cached_eval]} )) && fzf --zsh &>/dev/null; then
10
- _cached_eval fzf-init fzf --zsh
11
- elif fzf --help 2>/dev/null | grep -q -- '--zsh'; then
12
- source <(fzf --zsh)
13
- else
14
- # Fallback for older fzf builds without --zsh
15
- if [[ -f /usr/share/fzf/completion.zsh ]]; then
16
- source /usr/share/fzf/completion.zsh
17
- elif [[ -f /usr/share/doc/fzf/examples/completion.zsh ]]; then
18
- source /usr/share/doc/fzf/examples/completion.zsh
19
- fi
20
- if [[ -f /usr/share/fzf/key-bindings.zsh ]]; then
21
- source /usr/share/fzf/key-bindings.zsh
22
- elif [[ -f /usr/share/doc/fzf/examples/key-bindings.zsh ]]; then
23
- source /usr/share/doc/fzf/examples/key-bindings.zsh
24
- fi
25
- fi
26
- fi
27
-
28
- # Source commands (fd preferred for speed, rg as fallback)
29
- if command -v fd >/dev/null 2>&1; then
30
- export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git'
31
- export FZF_CTRL_T_COMMAND='fd --type f --hidden --follow --exclude .git'
32
- export FZF_ALT_C_COMMAND='fd --type d --hidden --follow --exclude .git'
33
- elif command -v rg >/dev/null 2>&1; then
34
- export FZF_DEFAULT_COMMAND='rg --files --hidden --follow --glob "!.git/*"'
35
- fi
36
-
37
- # Default options: layout, preview, border
38
- export FZF_DEFAULT_OPTS="\
39
- --height=40% --layout=reverse --border=rounded \
40
- --info=inline --marker='*' --pointer='>' \
41
- --bind='ctrl-/:toggle-preview'"
42
-
43
- # Ctrl-T: file picker with preview
44
- export FZF_CTRL_T_OPTS="--preview 'bat --color=always --style=numbers --line-range=:200 {} 2>/dev/null || cat {}'"
45
-
46
- # Alt-C: directory picker with tree preview
47
- export FZF_ALT_C_OPTS="--preview 'eza --tree --level=2 --color=always {} 2>/dev/null || ls -la {}'"
48
- fi
@@ -1,9 +0,0 @@
1
- ---
2
- :backtrace: false
3
- :benchmark: false
4
- :bulk_threshold: 1000
5
- :sources:
6
- - https://rubygems.org/
7
- :update_sources: true
8
- :verbose: true
9
- gem: "--no-ri --no-rdoc"
@@ -1,12 +0,0 @@
1
- aliases:
2
- co: pr checkout
3
- pv: pr view --web
4
- prc: pr create
5
- prw: pr view --web
6
- prl: pr list
7
- rel: release list
8
- repo: repo view --web
9
- issuec: issue create
10
- issuel: issue list
11
- issuev: issue view
12
- version: "1"
@@ -1,165 +0,0 @@
1
- ###############################################
2
- # ██████╗ ██████╗ ████████╗███████╗██╗██╗ ███████╗███████╗
3
- # ██╔══██╗██╔═══██╗╚══██╔══╝██╔════╝██║██║ ██╔════╝██╔════╝
4
- # ██║ ██║██║ ██║ ██║ █████╗ ██║██║ █████╗ ███████╗
5
- # ██║ ██║██║ ██║ ██║ ██╔══╝ ██║██║ ██╔══╝ ╚════██║
6
- # ██████╔╝╚██████╔╝ ██║ ██║ ██║███████╗███████╗███████║
7
- # ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
8
- #
9
- # Simply design to fit your shell life
10
- # Ghostty Configuration (v{{ .dotfiles_version }})
11
- # Cross-Platform: macOS, Linux, WSL
12
- ###############################################
13
-
14
- {{- $theme := default "tokyonight-night" .theme -}}
15
- {{- $fontFamily := default "JetBrains Mono" .terminal_font_family -}}
16
- {{- $fontSize := default 12 .terminal_font_size -}}
17
- {{- $linuxDesktop := or .features.linux_desktop .features.niri -}}
18
- {{- $wsl := and (hasKey .chezmoi.kernel "osrelease") (contains "microsoft" (get .chezmoi.kernel "osrelease" | default "")) -}}
19
-
20
- ##########
21
- # Theme #
22
- ##########
23
- # Managed by chezmoi from DOTFILES_THEME
24
-
25
- ###############
26
- # Appearance #
27
- ###############
28
- background-opacity = {{ if eq .chezmoi.os "darwin" }}0.92{{ else }}0.96{{ end }}
29
- background-blur = {{ if eq .chezmoi.os "darwin" }}14{{ else }}0{{ end }}
30
- window-padding-x = 16
31
- window-padding-y = 12
32
- window-padding-balance = true
33
- window-padding-color = background
34
- unfocused-split-opacity = 0.95
35
-
36
- ############
37
- # macOS UI #
38
- ############
39
- macos-titlebar-style = tabs
40
- macos-option-as-alt = true
41
- window-colorspace = display-p3
42
- window-save-state = always
43
- window-vsync = true
44
-
45
- ################
46
- # Linux / WSL #
47
- ################
48
- # Enterprise tweaks for Linux consistency
49
- gtk-titlebar = true
50
- # gtk-single-instance = true
51
- # linux-cme-preedit-ime = true
52
-
53
- ################
54
- # Typography #
55
- ################
56
- # Primary: User preference (Apple Native)
57
- # Fallback logic is handled by Ghostty attempting the first found.
58
- font-family = "{{ $fontFamily }}"
59
- {{- if eq .chezmoi.os "darwin" }}
60
- {{- if ne $fontFamily "SF Mono" }}
61
- font-family = "SF Mono"
62
- {{- end }}
63
- {{- else }}
64
- {{- if ne $fontFamily "JetBrainsMono Nerd Font" }}
65
- font-family = "JetBrainsMono Nerd Font"
66
- {{- end }}
67
- {{- end }}
68
- font-family = "JetBrains Mono"
69
- font-family = "Noto Sans Mono"
70
- font-family = "Roboto Mono"
71
-
72
- font-size = {{ $fontSize }}
73
- adjust-cell-width = -1
74
- font-thicken = {{ if eq .chezmoi.os "darwin" }}false{{ else }}true{{ end }}
75
- font-thicken-strength = {{ if eq .chezmoi.os "darwin" }}0{{ else }}1{{ end }}
76
- adjust-cell-height = {{ if eq .chezmoi.os "darwin" }}1{{ else }}2{{ end }}
77
- adjust-font-baseline = {{ if eq .chezmoi.os "darwin" }}-1{{ else }}0{{ end }}
78
-
79
- #####################
80
- # Behaviour / UX #
81
- #####################
82
- scrollback-limit = 10000
83
- working-directory = home
84
- window-inherit-working-directory = true
85
- {{ $shell := default "zsh" .default_shell -}}
86
- shell-integration = {{ if eq $shell "nu" }}none{{ else }}{{ $shell }}{{ end }}
87
- {{ if eq .chezmoi.os "darwin" -}}
88
- command = {{ lookPath $shell }}
89
- {{- else -}}
90
- command = /usr/bin/env {{ $shell }}
91
- {{- end }}
92
- quit-after-last-window-closed = true
93
- {{- if $linuxDesktop }}
94
- gtk-tabs-location = top
95
- copy-on-select = clipboard
96
- {{- end }}
97
- {{- if $wsl }}
98
- window-decoration = auto
99
- clipboard-read = allow
100
- clipboard-write = allow
101
- {{- end }}
102
-
103
- ################
104
- # Keybindings #
105
- ################
106
- keybind = cmd+shift+,=reload_config
107
- keybind = opt+super+left=previous_tab
108
- keybind = opt+super+right=next_tab
109
- # Linux/Windows friendly alternatives (using Alt/Ctrl)
110
- keybind = ctrl+shift+,=reload_config
111
-
112
- {{- if eq .chezmoi.os "linux" }}
113
- ####################################
114
- # Linux Mac-style terminal keys #
115
- # (keyd maps physical Cmd to Ctrl) #
116
- ####################################
117
- # copy_to_clipboard only fires when text is selected,
118
- # otherwise Ctrl+C passes through as SIGINT
119
- keybind = ctrl+c=copy_to_clipboard
120
- keybind = ctrl+v=paste_from_clipboard
121
- keybind = ctrl+t=new_tab
122
- keybind = ctrl+w=close_surface
123
- keybind = ctrl+n=new_window
124
- keybind = ctrl+q=quit
125
- keybind = ctrl+shift+left_bracket=previous_tab
126
- keybind = ctrl+shift+right_bracket=next_tab
127
- keybind = ctrl+equal=increase_font_size:1
128
- keybind = ctrl+minus=decrease_font_size:1
129
- keybind = ctrl+zero=reset_font_size
130
- keybind = ctrl+k=clear_screen
131
- {{- end }}
132
-
133
- ################
134
- # Colors #
135
- ################
136
- {{- $t := index .themes (default "big-sur-dark" .theme) -}}
137
- {{- if not $t -}}{{- $t = index .themes "big-sur-dark" -}}{{- end }}
138
- {{- $tt := $t -}}
139
- {{- $themeName := default "big-sur-dark" .theme -}}
140
- {{- if hasSuffix "-light" $themeName -}}
141
- {{- $darkTheme := index .themes (printf "%s-dark" (trimSuffix "-light" $themeName)) -}}
142
- {{- if $darkTheme -}}{{- $tt = $darkTheme -}}{{- end -}}
143
- {{- end }}
144
- background = {{ $tt.term.bg }}
145
- foreground = {{ $tt.term.fg }}
146
- cursor-color = {{ $tt.term.cursor }}
147
- cursor-text = {{ $tt.term.cursor_text }}
148
- selection-background = {{ $tt.term.sel_bg }}
149
- selection-foreground = {{ $tt.term.sel_fg }}
150
- palette = 0={{ $tt.term.c0 }}
151
- palette = 1={{ $tt.term.c1 }}
152
- palette = 2={{ $tt.term.c2 }}
153
- palette = 3={{ $tt.term.c3 }}
154
- palette = 4={{ $tt.term.c4 }}
155
- palette = 5={{ $tt.term.c5 }}
156
- palette = 6={{ $tt.term.c6 }}
157
- palette = 7={{ $tt.term.c7 }}
158
- palette = 8={{ $tt.term.c8 }}
159
- palette = 9={{ $tt.term.c9 }}
160
- palette = 10={{ $tt.term.c10 }}
161
- palette = 11={{ $tt.term.c11 }}
162
- palette = 12={{ $tt.term.c12 }}
163
- palette = 13={{ $tt.term.c13 }}
164
- palette = 14={{ $tt.term.c14 }}
165
- palette = 15={{ $tt.term.c15 }}
@@ -1,18 +0,0 @@
1
- # Git SSH allowed signers
2
- #
3
- # Populate this file with trusted signer entries in the format:
4
- # principal[,principal...] keytype base64-encoded-key
5
- #
6
- # Example:
7
- # jane.doe@example.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI...
8
- #
9
- # Git verifies SSH-signed commits against this trust roster.
10
- {{- if and (hasKey . "git_email") .git_email (eq .git_email "sebastian.rousseau@gmail.com") }}
11
- sebastian.rousseau@gmail.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKY+QFE+TjJyo1txN/p+THGR2nWYmSjojdKmYWEvD4dh
12
- sebastian.rousseau@gmail.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII32YuD6LxBOeFb5kG4Fqbm62kn9OkcHNPJtktO8iYVF
13
- sebastian.rousseau@gmail.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGeTXmJCl9Nw7fnsc2PPSkvIRgEIG8LJGulQoes2Dm5t
14
- sebastian.rousseau@gmail.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMeRLA7lL2oDcbHwahn36SvPvdFMN5r2c15d64NLgJlo
15
- sebastian.rousseau@gmail.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA9dcL2VJY0gswNoKjytR9NgNaa32oxaVWZTXcpLz9a/
16
- sebastian.rousseau@gmail.com sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIPX+TMKQfHnwGUP0geGZZ2wF4m+q32pnqhRRH0hCHfcFAAAABHNzaDo=
17
- sebastian.rousseau@gmail.com sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIIjCZ1135o3W7QWp5dANjj2CtHVpVfbCeAKLBgfrpgx2AAAABHNzaDo=
18
- {{- end }}
@@ -1,12 +0,0 @@
1
- # Global gitattributes (dotfiles)
2
- * text=auto
3
-
4
- # Normalize line endings for common text formats
5
- *.sh text eol=lf
6
- *.zsh text eol=lf
7
- *.lua text eol=lf
8
- *.yml text eol=lf
9
- *.yaml text eol=lf
10
- *.json text eol=lf
11
- *.toml text eol=lf
12
- *.md text eol=lf
@@ -1,10 +0,0 @@
1
-
2
- # <type>: <subject> (max 50 chars)
3
- #
4
- # Types: feat, fix, docs, style, refactor, perf, test, build, ci, chore
5
- #
6
- # Body: explain WHAT and WHY (not HOW) — wrap at 72 chars
7
- #
8
- # Footer: reference issues, breaking changes
9
- # Fixes #123
10
- # BREAKING CHANGE: description
@@ -1,146 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- # ── AI Attribution (Linux kernel coding-assistants standard) ──────────
5
- # Appends "Assisted-by:" trailer to commit messages when authored during
6
- # an AI coding assistant session. Detects the active tool automatically.
7
- #
8
- # Reference: https://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst
9
- # Format: Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]
10
-
11
- detect_ai_agent() {
12
- # Default model when running under Claude Code. Override at any time
13
- # without editing this hook by exporting CLAUDE_MODEL in your shell
14
- # rc, e.g. `export CLAUDE_MODEL=claude-opus-4-7`. Kept current with
15
- # the latest generally-available Opus at time of last hook update.
16
- local claude_default="${CLAUDE_MODEL:-claude-opus-4-7}"
17
-
18
- # Claude Code (Anthropic). The CLI actually sets CLAUDECODE=1 (no
19
- # underscore); the other vars are kept as historical aliases and for
20
- # API-key-only sessions.
21
- if [[ -n "${CLAUDECODE:-}" \
22
- || -n "${CLAUDE_CODE:-}" \
23
- || -n "${CLAUDE_SESSION_ID:-}" \
24
- || -n "${CLAUDE_CODE_ENTRYPOINT:-}" \
25
- || -n "${ANTHROPIC_API_KEY:-}" ]]; then
26
- echo "Claude:${claude_default}"
27
- return
28
- fi
29
-
30
- # GitHub Copilot CLI
31
- if [[ -n "${GITHUB_COPILOT_CLI:-}" || -n "${COPILOT_SESSION:-}" ]]; then
32
- echo "Copilot:copilot-cli"
33
- return
34
- fi
35
-
36
- # Aider
37
- if [[ -n "${AIDER_SESSION:-}" || -n "${AIDER_MODEL:-}" ]]; then
38
- echo "Aider:${AIDER_MODEL:-unknown}"
39
- return
40
- fi
41
-
42
- # OpenCode
43
- if [[ -n "${OPENCODE_SESSION:-}" ]]; then
44
- echo "OpenCode:${OPENCODE_MODEL:-unknown}"
45
- return
46
- fi
47
-
48
- # Gemini CLI (Google)
49
- if [[ -n "${GEMINI_API_KEY:-}" && -n "${GEMINI_SESSION:-}" ]]; then
50
- echo "Gemini:gemini-cli"
51
- return
52
- fi
53
-
54
- # Mistral Vibe
55
- if [[ -n "${MISTRAL_API_KEY:-}" && -n "${MISTRAL_SESSION:-}" ]]; then
56
- echo "Mistral:mistral-vibe"
57
- return
58
- fi
59
-
60
- # Qwen Code
61
- if [[ -n "${QWEN_SESSION:-}" ]]; then
62
- echo "Qwen:qwen-code"
63
- return
64
- fi
65
-
66
- # Kiro (AWS)
67
- if [[ -n "${KIRO_SESSION:-}" || -n "${KIRO_CLI:-}" ]]; then
68
- echo "Kiro:kiro-cli"
69
- return
70
- fi
71
-
72
- # Autohand Code
73
- if [[ -n "${AUTOHAND_SESSION:-}" ]]; then
74
- echo "Autohand:autohand-code"
75
- return
76
- fi
77
-
78
- # ZAI (Zhipu)
79
- if [[ -n "${ZAI_SESSION:-}" ]]; then
80
- echo "ZAI:zai-cli"
81
- return
82
- fi
83
-
84
- # Shell-GPT
85
- if [[ -n "${SHELL_GPT_SESSION:-}" ]]; then
86
- echo "ShellGPT:shell-gpt"
87
- return
88
- fi
89
-
90
- # Ollama (local)
91
- if [[ -n "${OLLAMA_SESSION:-}" ]]; then
92
- echo "Ollama:${OLLAMA_MODEL:-local}"
93
- return
94
- fi
95
-
96
- # Fallback: check if any known AI process is in the tree.
97
- # Uses the same overridable default as the env-var path above so a
98
- # single export keeps both sites in sync.
99
- if pgrep -q "claude" 2>/dev/null; then
100
- echo "Claude:${claude_default}"
101
- return
102
- fi
103
-
104
- # No AI detected
105
- echo ""
106
- }
107
-
108
- # ── Branding Signature ────────────────────────────────────────────────
109
- sig_file="/Users/seb/.euxis/data/config/branding/signature.txt"
110
- msg_file="${1:-}"
111
-
112
- [[ -n "$msg_file" && -f "$msg_file" ]] || exit 0
113
-
114
- # Skip merge commits, fixups, and squashes
115
- first_line="$(head -1 "$msg_file")"
116
- if [[ "$first_line" =~ ^Merge\ |^fixup!\ |^squash!\ ]]; then
117
- exit 0
118
- fi
119
-
120
- # ── Inject AI attribution if not already present ──────────────────────
121
- # Line-anchored: a literal mention of `Assisted-by:` inside the commit
122
- # body (e.g. when the commit message *describes* the trailer) must not
123
- # fool the hook into skipping injection. Trailers always start at col 1.
124
- if ! grep -Eq "^Assisted-by:" "$msg_file"; then
125
- ai_agent="$(detect_ai_agent)"
126
- if [[ -n "$ai_agent" ]]; then
127
- printf '\nAssisted-by: %s\n' "$ai_agent" >> "$msg_file"
128
- fi
129
- fi
130
-
131
- # ── Inject branding signature if not already present ──────────────────
132
- [[ -f "$sig_file" ]] || exit 0
133
-
134
- first_sig_line="$(sed -n '1p' "$sig_file")"
135
- [[ -n "$first_sig_line" ]] || exit 0
136
-
137
- if grep -Fqx -- "$first_sig_line" "$msg_file"; then
138
- exit 0
139
- fi
140
-
141
- if [[ -s "$msg_file" ]]; then
142
- printf '\n' >> "$msg_file"
143
- fi
144
-
145
- cat "$sig_file" >> "$msg_file"
146
- printf '\n' >> "$msg_file"