@sebastienrousseau/dotfiles 0.2.502 → 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 (412) hide show
  1. package/CHANGELOG.md +83 -9
  2. package/LICENSE +21 -1283
  3. package/README.md +5 -3
  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/02-config-files.md +2 -2
  20. package/docs/manual/_toc.yml +1 -1
  21. package/docs/manual/command-index.md +72 -59
  22. package/docs/operations/CI_COMPOSITES.md +2 -2
  23. package/docs/operations/COMPLETIONS.md +2 -2
  24. package/docs/operations/COVERAGE.md +5 -5
  25. package/docs/operations/HARD_AUDIT_2026.md +11 -11
  26. package/docs/operations/MAINTENANCE.md +3 -3
  27. package/docs/operations/MANIFEST.md +127 -0
  28. package/docs/operations/RELEASE_PIPELINE.md +130 -0
  29. package/docs/operations/RFC_v0_2_503_reorganization.md +280 -0
  30. package/docs/operations/ROADMAP_2026.md +6 -6
  31. package/docs/operations/ROADMAP_V0_2_503.md +134 -0
  32. package/docs/operations/TESTING.md +17 -0
  33. package/docs/operations/TRACEABILITY.md +6 -3
  34. package/docs/operations/VERSION_SYNC.md +4 -4
  35. package/docs/reference/POWERSHELL_PARITY.md +8 -7
  36. package/docs/schema/dot-env-v1.json +110 -0
  37. package/docs/security/CI_EGRESS_ALLOWLIST.md +1 -1
  38. package/docs/security/CI_PINNING.md +17 -9
  39. package/docs/security/DEPS_DEV_EXCEPTIONS.md +2 -2
  40. package/docs/security/FUZZING.md +114 -0
  41. package/docs/security/INSTALL_VERIFICATION.md +2 -2
  42. package/docs/security/POLICY_RELEASES.md +2 -2
  43. package/docs/security/SCORECARD.md +58 -3
  44. package/docs/security/SHELL_EXEMPTIONS.md +4 -4
  45. package/docs/security/VERIFY_RELEASE.md +201 -0
  46. package/install.sh +27 -5
  47. package/package.json +1 -1
  48. package/scripts/README.md +123 -0
  49. package/scripts/ci/check-copyright-headers.sh +4 -93
  50. package/scripts/ci/check-shell-preamble.sh +4 -103
  51. package/scripts/ci/guard-gitleaks-checkout.sh +4 -54
  52. package/scripts/diagnostics/a2a-conformance.sh +4 -4
  53. package/scripts/diagnostics/alias-governance.sh +1 -1
  54. package/scripts/diagnostics/aliases-cheatsheet.sh +2 -2
  55. package/scripts/diagnostics/benchmark.sh +4 -4
  56. package/scripts/diagnostics/conflicts.sh +2 -2
  57. package/scripts/diagnostics/doctor-unified.sh +2 -2
  58. package/scripts/diagnostics/doctor.sh +10 -10
  59. package/scripts/diagnostics/drift-dashboard.sh +2 -2
  60. package/scripts/diagnostics/health.sh +4 -4
  61. package/scripts/diagnostics/history-analysis.sh +2 -2
  62. package/scripts/diagnostics/mcp-doctor.sh +10 -7
  63. package/scripts/diagnostics/perf.sh +4 -4
  64. package/scripts/diagnostics/scorecard.sh +4 -4
  65. package/scripts/diagnostics/security-score.sh +2 -2
  66. package/scripts/diagnostics/smoke-test.sh +2 -2
  67. package/scripts/diagnostics/snapshot.sh +2 -2
  68. package/scripts/diagnostics/verify.sh +4 -4
  69. package/scripts/diagnostics/version-locks.sh +2 -2
  70. package/scripts/diagnostics/workstation-attestation.sh +14 -14
  71. package/scripts/dot/commands/agent.sh +8 -0
  72. package/scripts/dot/commands/agents.sh +14 -4
  73. package/scripts/dot/commands/ai.sh +144 -25
  74. package/scripts/dot/commands/appearance.sh +2 -2
  75. package/scripts/dot/commands/core.sh +2 -2
  76. package/scripts/dot/commands/diagnostics.sh +5 -5
  77. package/scripts/dot/commands/env-emit.sh +202 -0
  78. package/scripts/dot/commands/fleet.sh +12 -11
  79. package/scripts/dot/commands/init.sh +4 -4
  80. package/scripts/dot/commands/lint.sh +9 -4
  81. package/scripts/dot/commands/manual.sh +3 -3
  82. package/scripts/dot/commands/meta.sh +12 -6
  83. package/scripts/dot/commands/patterns.sh +2 -2
  84. package/scripts/dot/commands/registry.sh +4 -4
  85. package/scripts/dot/commands/restore.sh +4 -4
  86. package/scripts/dot/commands/secrets.sh +4 -3
  87. package/scripts/dot/commands/security.sh +2 -2
  88. package/scripts/dot/commands/tools.sh +13 -3
  89. package/scripts/dot/powershell/Dot.psm1 +199 -0
  90. package/scripts/fonts/install-nerd-fonts.sh +2 -2
  91. package/scripts/git-hooks/pre-commit-audit.sh +2 -2
  92. package/scripts/git-hooks/pre-push +13 -0
  93. package/scripts/ops/ai-setup.sh +1 -1
  94. package/scripts/ops/bundle.sh +2 -2
  95. package/scripts/ops/chaos.sh +2 -2
  96. package/scripts/ops/chezmoi-apply.sh +4 -4
  97. package/scripts/ops/heal.sh +4 -4
  98. package/scripts/ops/post-apply-repair.sh +2 -2
  99. package/scripts/ops/prewarm.sh +2 -2
  100. package/scripts/ops/release.sh +4 -4
  101. package/scripts/ops/rollback.sh +4 -4
  102. package/scripts/ops/setup.sh +2 -2
  103. package/scripts/qa/check-version-consistency.sh +123 -0
  104. package/scripts/qa/coverage-baseline.sh +1 -1
  105. package/scripts/qa/docs-coverage.sh +2 -2
  106. package/scripts/qa/powershell-contract.ps1 +1 -1
  107. package/scripts/qa/scorecard-snapshot.sh +127 -0
  108. package/scripts/security/backup.sh +2 -2
  109. package/scripts/security/dns-doh.sh +4 -4
  110. package/scripts/security/encryption-check.sh +4 -4
  111. package/scripts/security/enforce-policies.sh +2 -2
  112. package/scripts/security/firewall.sh +4 -4
  113. package/scripts/security/lock-screen.sh +4 -4
  114. package/scripts/security/manage-secrets.sh +2 -2
  115. package/scripts/security/ssh-cert.sh +2 -2
  116. package/scripts/security/telemetry-kill.sh +4 -4
  117. package/scripts/security/usb-safety.sh +4 -4
  118. package/scripts/theme/extract-heic-frames.sh +114 -0
  119. package/scripts/theme/rebuild-themes.sh +8 -1
  120. package/scripts/theme/switch.sh +13 -6
  121. package/scripts/theme/wallpaper-sync.sh +297 -93
  122. package/scripts/tuning/linux.sh +2 -2
  123. package/scripts/tuning/macos.sh +2 -2
  124. package/scripts/version-sync.sh +55 -7
  125. package/dot_config/.module-manifest.json +0 -69
  126. package/dot_config/ai/identity.md +0 -23
  127. package/dot_config/ai/patterns/architect.md +0 -16
  128. package/dot_config/ai/patterns/hardener.md +0 -15
  129. package/dot_config/ai/patterns/refactor.md +0 -15
  130. package/dot_config/aider/aider.conf.yml +0 -32
  131. package/dot_config/alacritty/alacritty.toml.tmpl +0 -55
  132. package/dot_config/ansible/ansible.cfg +0 -11
  133. package/dot_config/atuin/config.toml.tmpl +0 -47
  134. package/dot_config/bat/config +0 -23
  135. package/dot_config/brave-flags.conf.tmpl +0 -7
  136. package/dot_config/btop/btop.conf +0 -16
  137. package/dot_config/btop/themes/tokyonight.theme +0 -34
  138. package/dot_config/bun/bunfig.toml.tmpl +0 -33
  139. package/dot_config/claude/mcp_servers.json +0 -20
  140. package/dot_config/containers/containers.conf +0 -14
  141. package/dot_config/curl/dot_curlrc +0 -18
  142. package/dot_config/dlv/config.yml +0 -39
  143. package/dot_config/docker/config.json +0 -15
  144. package/dot_config/dotfiles/agent-card.json +0 -29
  145. package/dot_config/dotfiles/agent-profiles.json +0 -92
  146. package/dot_config/dotfiles/boot/README.md +0 -13
  147. package/dot_config/dotfiles/grub/README.md +0 -13
  148. package/dot_config/dotfiles/lock/README.md +0 -13
  149. package/dot_config/dotfiles/mcp-lock.json +0 -33
  150. package/dot_config/dotfiles/mcp-policy.json +0 -52
  151. package/dot_config/dotfiles/mcp-registry.json +0 -47
  152. package/dot_config/dotfiles/model-registry.json +0 -20
  153. package/dot_config/dotfiles/policy-bundles.json +0 -38
  154. package/dot_config/dotfiles/prompt-registry.json +0 -16
  155. package/dot_config/dotfiles/versions.env +0 -18
  156. package/dot_config/duf/duf.conf +0 -6
  157. package/dot_config/duti/defaults.duti +0 -5
  158. package/dot_config/emoji/emoji.txt +0 -34
  159. package/dot_config/environment.d/50-ssh-agent.conf +0 -2
  160. package/dot_config/environment.d/90-wayland.conf +0 -19
  161. package/dot_config/fastfetch/config.jsonc +0 -28
  162. package/dot_config/firefox/user.js.tmpl +0 -58
  163. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +0 -9
  164. package/dot_config/fish/completions/dot.fish.tmpl +0 -115
  165. package/dot_config/fish/conf.d/000-perf-cache.fish +0 -56
  166. package/dot_config/fish/conf.d/aliases.fish.tmpl +0 -77
  167. package/dot_config/fish/conf.d/direnv.fish +0 -4
  168. package/dot_config/fish/conf.d/env.fish.tmpl +0 -48
  169. package/dot_config/fish/conf.d/functions.fish.tmpl +0 -22
  170. package/dot_config/fish/conf.d/init.fish.tmpl +0 -172
  171. package/dot_config/fish/conf.d/mise-activate.fish +0 -5
  172. package/dot_config/fish/config.fish.tmpl +0 -44
  173. package/dot_config/fish/fish_plugins +0 -1
  174. package/dot_config/fish/functions/_.fish +0 -3
  175. package/dot_config/fish/functions/_cached_eval.fish +0 -131
  176. package/dot_config/fish/functions/_cached_eval_clear.fish +0 -17
  177. package/dot_config/fish/functions/als.fish +0 -46
  178. package/dot_config/fish/functions/bg-upgrade.fish +0 -7
  179. package/dot_config/fish/functions/c.fish +0 -3
  180. package/dot_config/fish/functions/cat.fish +0 -9
  181. package/dot_config/fish/functions/d.fish +0 -7
  182. package/dot_config/fish/functions/dot.fish +0 -34
  183. package/dot_config/fish/functions/h.fish +0 -3
  184. package/dot_config/fish/functions/l.fish +0 -7
  185. package/dot_config/fish/functions/la.fish +0 -7
  186. package/dot_config/fish/functions/ll.fish +0 -7
  187. package/dot_config/fish/functions/log_error.fish +0 -13
  188. package/dot_config/fish/functions/log_info.fish +0 -13
  189. package/dot_config/fish/functions/lr.fish +0 -7
  190. package/dot_config/fish/functions/lra.fish +0 -7
  191. package/dot_config/fish/functions/ls.fish +0 -7
  192. package/dot_config/fish/functions/lt.fish +0 -7
  193. package/dot_config/fish/functions/lta.fish +0 -7
  194. package/dot_config/fish/functions/notify-run.fish +0 -11
  195. package/dot_config/fish/functions/q.fish +0 -3
  196. package/dot_config/fish/functions/silent-run.fish +0 -7
  197. package/dot_config/fish/functions/yy.fish +0 -8
  198. package/dot_config/flatpak/flatpak.list +0 -4
  199. package/dot_config/fontconfig/fonts.conf.tmpl +0 -57
  200. package/dot_config/foot/foot.ini.tmpl +0 -33
  201. package/dot_config/fuzzel/fuzzel.ini.tmpl +0 -18
  202. package/dot_config/fzf/fzf.zsh +0 -48
  203. package/dot_config/gem/gemrc +0 -9
  204. package/dot_config/gh/config.yml +0 -12
  205. package/dot_config/ghostty/config.tmpl +0 -165
  206. package/dot_config/git/allowed_signers.tmpl +0 -18
  207. package/dot_config/git/attributes +0 -12
  208. package/dot_config/git/commit-template +0 -10
  209. package/dot_config/git/hooks/executable_commit-msg +0 -146
  210. package/dot_config/git/ignore +0 -27
  211. package/dot_config/gnupg/gpg-agent.conf +0 -11
  212. package/dot_config/go/golangci.yml +0 -118
  213. package/dot_config/go/gopls.json +0 -30
  214. package/dot_config/goose/config.yaml +0 -29
  215. package/dot_config/gtk-3.0/gtk.css.tmpl +0 -184
  216. package/dot_config/gtk-3.0/settings.ini.tmpl +0 -27
  217. package/dot_config/gtk-4.0/gtk.css.tmpl +0 -252
  218. package/dot_config/gtk-4.0/settings.ini.tmpl +0 -18
  219. package/dot_config/htop/htoprc +0 -20
  220. package/dot_config/inputrc +0 -2
  221. package/dot_config/ipython/profile_default/ipython_config.py +0 -19
  222. package/dot_config/just/justfile +0 -122
  223. package/dot_config/k9s/config.yaml +0 -65
  224. package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
  225. package/dot_config/kanshi/config.tmpl +0 -22
  226. package/dot_config/karabiner/karabiner.json +0 -14
  227. package/dot_config/kitty/kitty.conf.tmpl +0 -53
  228. package/dot_config/lazydocker/config.yml +0 -186
  229. package/dot_config/lazygit/config.yml +0 -35
  230. package/dot_config/mako/config +0 -47
  231. package/dot_config/mas/masapps.txt +0 -5
  232. package/dot_config/micro/settings.json +0 -3
  233. package/dot_config/mimeapps.list +0 -77
  234. package/dot_config/minikube/config.json +0 -13
  235. package/dot_config/mise/config.toml +0 -99
  236. package/dot_config/mongosh/mongoshrc.js +0 -68
  237. package/dot_config/mpv/input.conf +0 -47
  238. package/dot_config/mpv/mpv.conf +0 -47
  239. package/dot_config/mycli/myclirc +0 -67
  240. package/dot_config/nano/nanorc +0 -28
  241. package/dot_config/ncdu/config +0 -12
  242. package/dot_config/niri/config.kdl.tmpl +0 -327
  243. package/dot_config/nushell/aliases.nu +0 -18
  244. package/dot_config/nushell/cached_eval.nu +0 -80
  245. package/dot_config/nushell/completions.nu.tmpl +0 -52
  246. package/dot_config/nushell/config.nu.tmpl +0 -86
  247. package/dot_config/nushell/env.nu.tmpl +0 -102
  248. package/dot_config/nushell/functions.nu.tmpl +0 -17
  249. package/dot_config/nvim/init.lua +0 -18
  250. package/dot_config/nvim/lazy-lock.json +0 -58
  251. package/dot_config/nvim/lua/config/autocmds.lua +0 -107
  252. package/dot_config/nvim/lua/config/keymaps.lua +0 -92
  253. package/dot_config/nvim/lua/config/lazy.lua +0 -44
  254. package/dot_config/nvim/lua/config/options.lua +0 -49
  255. package/dot_config/nvim/lua/plugins/ai.lua +0 -75
  256. package/dot_config/nvim/lua/plugins/coding.lua +0 -216
  257. package/dot_config/nvim/lua/plugins/completion.lua +0 -60
  258. package/dot_config/nvim/lua/plugins/dap.lua +0 -412
  259. package/dot_config/nvim/lua/plugins/editor.lua +0 -55
  260. package/dot_config/nvim/lua/plugins/git.lua +0 -10
  261. package/dot_config/nvim/lua/plugins/lsp.lua +0 -156
  262. package/dot_config/nvim/lua/plugins/markdown.lua +0 -18
  263. package/dot_config/nvim/lua/plugins/rust.lua +0 -34
  264. package/dot_config/nvim/lua/plugins/sessions.lua +0 -33
  265. package/dot_config/nvim/lua/plugins/ui.lua +0 -509
  266. package/dot_config/paru/paru.conf +0 -10
  267. package/dot_config/pip/pip.conf.tmpl +0 -32
  268. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +0 -81
  269. package/dot_config/pueue/pueue.yml +0 -34
  270. package/dot_config/pypoetry/config.toml +0 -6
  271. package/dot_config/pyrightconfig.json +0 -5
  272. package/dot_config/raycast/README.md +0 -13
  273. package/dot_config/redis/redisclirc +0 -41
  274. package/dot_config/ripgrep/ripgreprc +0 -21
  275. package/dot_config/shell/00-core-paths.sh.tmpl +0 -141
  276. package/dot_config/shell/05-core-safety.sh +0 -48
  277. package/dot_config/shell/10-secrets.sh +0 -41
  278. package/dot_config/shell/40-fzf-defaults.sh.tmpl +0 -17
  279. package/dot_config/shell/40-ls-colors.sh +0 -49
  280. package/dot_config/shell/50-logic-functions-core.sh.tmpl +0 -11
  281. package/dot_config/shell/50-logic-functions.sh.tmpl +0 -11
  282. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +0 -65
  283. package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -121
  284. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -55
  285. package/dot_config/shell/Brewfile +0 -207
  286. package/dot_config/shell/Brewfile.cask +0 -92
  287. package/dot_config/shell/Brewfile.cli +0 -127
  288. package/dot_config/shell/README.md +0 -284
  289. package/dot_config/shell/als_data.txt.tmpl +0 -65
  290. package/dot_config/shell/custom/auto_ls.zsh +0 -20
  291. package/dot_config/shell/custom/context_suggest.zsh +0 -68
  292. package/dot_config/shell/custom/error_analysis.zsh +0 -45
  293. package/dot_config/sops/dot_sops.yaml +0 -23
  294. package/dot_config/starship.toml.tmpl +0 -202
  295. package/dot_config/swaylock/config +0 -43
  296. package/dot_config/systemd/user/dotfiles-maintenance.service +0 -8
  297. package/dot_config/systemd/user/dotfiles-maintenance.timer +0 -11
  298. package/dot_config/systemd/user/pueued.service +0 -12
  299. package/dot_config/systemd/user/ssh-agent.service +0 -12
  300. package/dot_config/task/Taskfile.yml +0 -86
  301. package/dot_config/tflint/tflint.hcl +0 -9
  302. package/dot_config/tmux/tmux.conf.tmpl +0 -223
  303. package/dot_config/topgrade.toml.tmpl +0 -54
  304. package/dot_config/user-dirs.dirs +0 -10
  305. package/dot_config/vscode/extensions.txt +0 -11
  306. package/dot_config/vscode/settings.json.tmpl +0 -82
  307. package/dot_config/waybar/config.jsonc.tmpl +0 -90
  308. package/dot_config/waybar/style.css.tmpl +0 -211
  309. package/dot_config/wezterm/wezterm.lua.tmpl +0 -64
  310. package/dot_config/wget/wgetrc +0 -12
  311. package/dot_config/xdg-desktop-portal/niri-portals.conf +0 -5
  312. package/dot_config/yarn/yarnrc.yml +0 -36
  313. package/dot_config/yazi/keymap.toml +0 -67
  314. package/dot_config/yazi/theme.toml +0 -102
  315. package/dot_config/yazi/yazi.toml +0 -40
  316. package/dot_config/zathura/zathurarc +0 -52
  317. package/dot_config/zellij/config.kdl.tmpl +0 -79
  318. package/dot_config/zsh/dot_zprofile +0 -7
  319. package/dot_config/zsh/dot_zshenv +0 -5
  320. package/dot_config/zsh/dot_zshrc.tmpl +0 -688
  321. package/dot_config/zsh/rc.d/00-alias-shims.zsh +0 -99
  322. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -18
  323. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
  324. package/dot_config/zsh/rc.d/20-zinit.zsh +0 -65
  325. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -214
  326. package/dot_config/zsh/rc.d/40-bell.zsh +0 -20
  327. package/dot_config/zsh/rc.d/50-login-fortune.zsh +0 -9
  328. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +0 -32
  329. package/dot_local/bin/executable_ai-update +0 -195
  330. package/dot_local/bin/executable_ai_core +0 -152
  331. package/dot_local/bin/executable_antigravity +0 -11
  332. package/dot_local/bin/executable_b64 +0 -84
  333. package/dot_local/bin/executable_bm +0 -79
  334. package/dot_local/bin/executable_cb +0 -39
  335. package/dot_local/bin/executable_dot +0 -636
  336. package/dot_local/bin/executable_dot-ai +0 -36
  337. package/dot_local/bin/executable_dot-bootstrap +0 -76
  338. package/dot_local/bin/executable_dot-launch-or-focus +0 -52
  339. package/dot_local/bin/executable_dot-load-benchmark +0 -31
  340. package/dot_local/bin/executable_dot-load-benchmark-pty +0 -77
  341. package/dot_local/bin/executable_dot-theme-sync +0 -952
  342. package/dot_local/bin/executable_dot_completion +0 -57
  343. package/dot_local/bin/executable_dtags +0 -28
  344. package/dot_local/bin/executable_epoch +0 -67
  345. package/dot_local/bin/executable_extract +0 -41
  346. package/dot_local/bin/executable_gbd +0 -52
  347. package/dot_local/bin/executable_gd +0 -42
  348. package/dot_local/bin/executable_git-ai-commit +0 -175
  349. package/dot_local/bin/executable_git-ai-diff +0 -169
  350. package/dot_local/bin/executable_gl +0 -101
  351. package/dot_local/bin/executable_hash +0 -161
  352. package/dot_local/bin/executable_hashsum +0 -160
  353. package/dot_local/bin/executable_hex +0 -115
  354. package/dot_local/bin/executable_jsonv +0 -78
  355. package/dot_local/bin/executable_jwt +0 -94
  356. package/dot_local/bin/executable_kill-port +0 -75
  357. package/dot_local/bin/executable_lorem +0 -118
  358. package/dot_local/bin/executable_mkscript +0 -35
  359. package/dot_local/bin/executable_monitor +0 -56
  360. package/dot_local/bin/executable_myip +0 -51
  361. package/dot_local/bin/executable_notify +0 -24
  362. package/dot_local/bin/executable_open +0 -38
  363. package/dot_local/bin/executable_pw +0 -27
  364. package/dot_local/bin/executable_rec-start +0 -46
  365. package/dot_local/bin/executable_rec-stop +0 -35
  366. package/dot_local/bin/executable_regex +0 -132
  367. package/dot_local/bin/executable_start-niri +0 -8
  368. package/dot_local/bin/executable_tmux-sessionizer +0 -314
  369. package/dot_local/bin/executable_tour +0 -177
  370. package/dot_local/bin/executable_up +0 -23
  371. package/dot_local/bin/executable_update +0 -142
  372. package/dot_local/bin/executable_uuid +0 -87
  373. package/dot_local/bin/executable_win +0 -32
  374. package/dot_local/bin/executable_yamlv +0 -57
  375. package/dot_local/share/bash-completion/completions/dot +0 -72
  376. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  377. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  378. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  379. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  380. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  381. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  382. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  383. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  384. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  385. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  386. package/dot_local/share/man/man1/dot.1 +0 -149
  387. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +0 -64
  388. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +0 -18
  389. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +0 -13
  390. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +0 -6
  391. package/dot_local/share/zsh/completions/.keep +0 -0
  392. package/dot_local/share/zsh/completions/_dot +0 -287
  393. package/scripts/ci/check-dangerous-chmod.sh +0 -19
  394. package/scripts/ci/check-deps-dev.sh +0 -236
  395. package/scripts/ci/check-insecure-tls.sh +0 -61
  396. package/scripts/ci/check-regression-traceability.sh +0 -67
  397. package/scripts/ci/dot-cli-startup-bench.sh +0 -126
  398. package/scripts/ci/install-chezmoi-verified.sh +0 -67
  399. package/scripts/ci/lint-reusable-pins.sh +0 -78
  400. package/scripts/ci/run-coverage.sh +0 -451
  401. package/scripts/ci/validate-chezmoidata.sh +0 -25
  402. package/scripts/ci/validate-ci-config.sh +0 -224
  403. package/scripts/ci/windows-smoke-test.ps1 +0 -136
  404. package/scripts/docs/build-manual.sh +0 -883
  405. package/scripts/docs/check-manual.sh +0 -213
  406. package/scripts/dot/lib/bento.sh +0 -50
  407. package/scripts/dot/lib/log.sh +0 -200
  408. package/scripts/dot/lib/platform.sh +0 -112
  409. package/scripts/dot/lib/ui.sh +0 -650
  410. package/scripts/dot/lib/utils.sh +0 -377
  411. package/scripts/maintenance/check-updates.sh +0 -131
  412. package/scripts/release/package-policy-bundles.sh +0 -125
@@ -1,377 +0,0 @@
1
- #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
- # Sourced by scripts/dot/commands/*.sh and dot_local/bin/executable_dot; inherits set -euo pipefail.
4
- # Dotfiles CLI Utilities
5
- # Shared functions for dot command modules
6
-
7
- # Re-source guard: cheap short-circuit when sourced from multiple modules.
8
- [[ "${_DOT_LIB_UTILS_LOADED:-0}" == "1" ]] && return 0
9
- _DOT_LIB_UTILS_LOADED=1
10
-
11
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
12
- # shellcheck source=ui.sh
13
- source "$SCRIPT_DIR/ui.sh"
14
- # shellcheck source=platform.sh
15
- source "$SCRIPT_DIR/platform.sh"
16
-
17
- _DOT_SOURCE_DIR_CACHE=""
18
-
19
- ## resolve_source_dir — Locate the dotfiles source tree.
20
- ## Checks (in order): relative to this script, $CHEZMOI_SOURCE_DIR,
21
- ## ~/.dotfiles, ~/.local/share/chezmoi. Caches the result for the process.
22
- ## Prints the absolute path (or empty string if not found). Exit: always 0.
23
- resolve_source_dir() {
24
- if [[ -n "${_DOT_SOURCE_DIR_CACHE:-}" ]] && [[ -d "$_DOT_SOURCE_DIR_CACHE" ]]; then
25
- printf "%s\n" "$_DOT_SOURCE_DIR_CACHE"
26
- return
27
- fi
28
-
29
- local dir=""
30
- local repo_candidate=""
31
-
32
- if repo_candidate="$(cd "$SCRIPT_DIR/../../.." && pwd 2>/dev/null)"; then
33
- :
34
- else
35
- repo_candidate=""
36
- fi
37
- if [[ -n "$repo_candidate" && -f "$repo_candidate/scripts/dot/lib/ui.sh" ]]; then
38
- dir="$repo_candidate"
39
- elif [ -n "${CHEZMOI_SOURCE_DIR:-}" ] && [ -d "$CHEZMOI_SOURCE_DIR" ]; then
40
- dir="$CHEZMOI_SOURCE_DIR"
41
- elif [ -d "$HOME/.dotfiles" ]; then
42
- dir="$HOME/.dotfiles"
43
- elif [ -d "$HOME/.local/share/chezmoi" ]; then
44
- dir="$HOME/.local/share/chezmoi"
45
- fi
46
-
47
- if [ -n "$dir" ]; then
48
- # Resolve symlinks for consistent path handling
49
- if command -v realpath >/dev/null 2>&1; then
50
- dir="$(realpath "$dir")"
51
- elif command -v readlink >/dev/null 2>&1; then
52
- dir="$(readlink -f "$dir" 2>/dev/null || echo "$dir")"
53
- fi
54
- _DOT_SOURCE_DIR_CACHE="$dir"
55
- printf "%s\n" "$dir"
56
- else
57
- printf "%s\n" ""
58
- fi
59
- }
60
-
61
- ## run_script — Resolve source dir, find a script, exec it (never returns).
62
- ## Usage: run_script <relative-script-path> <not-found-label> [args...]
63
- ## Exit: 1 if source dir or script not found; otherwise execs into the script.
64
- run_script() {
65
- local script_rel="$1"
66
- local label="$2"
67
- shift 2
68
- local src_dir
69
- src_dir="$(resolve_source_dir)"
70
- if [ -z "$src_dir" ]; then
71
- echo "Dotfiles source not found." >&2
72
- exit 1
73
- fi
74
- if [ -f "$src_dir/$script_rel" ]; then
75
- exec bash "$src_dir/$script_rel" "$@"
76
- else
77
- echo "$label not found." >&2
78
- exit 1
79
- fi
80
- }
81
-
82
- ## require_source_dir — Print source dir path or exit 1 if not found.
83
- require_source_dir() {
84
- local src_dir
85
- src_dir="$(resolve_source_dir)"
86
- if [ -z "$src_dir" ]; then
87
- echo "Dotfiles source not found." >&2
88
- exit 1
89
- fi
90
- echo "$src_dir"
91
- }
92
-
93
- ## has_command <name> — Return 0 if <name> is on PATH, 1 otherwise.
94
- has_command() {
95
- command -v "$1" >/dev/null 2>&1
96
- }
97
-
98
- ## validate_name <name> [label] — Die if name contains unsafe characters.
99
- ## Allowed: [a-zA-Z0-9._-]. This prevents shell injection when names appear
100
- ## in paths or eval contexts. Exit: 0 if valid, calls die() if invalid.
101
- validate_name() {
102
- local name="$1" label="${2:-name}"
103
- if [[ ! "$name" =~ ^[a-zA-Z0-9._-]+$ ]]; then
104
- die "Invalid $label: $name (only alphanumeric, dash, underscore, dot allowed)"
105
- fi
106
- }
107
-
108
- ## validate_xdg_path <var_name> <path> — Warn and return 1 if path is not absolute.
109
- validate_xdg_path() {
110
- local var_name="$1" path="$2"
111
- if [[ -n "$path" ]] && [[ "$path" != /* ]]; then
112
- ui_warn "$var_name" "Not an absolute path: $path (ignoring, using default)"
113
- return 1
114
- fi
115
- return 0
116
- }
117
-
118
- ## die <message> [code] — Print error to stderr and exit (default code 1).
119
- die() {
120
- ui_err "$1" >&2
121
- exit "${2:-1}"
122
- }
123
-
124
- # Print warning message
125
- warn() {
126
- ui_warn "$1" >&2
127
- }
128
-
129
- # Print info message
130
- info() {
131
- ui_info "$1"
132
- }
133
-
134
- # Print the dot logo once per process for interactive sessions.
135
- ui_logo_once() {
136
- local title="${1:-Dot}"
137
- ui_init
138
- if [[ "${DOTFILES_SHOW_LOGO:-1}" != "1" ]]; then
139
- return
140
- fi
141
- if [[ ! -t 1 ]]; then
142
- return
143
- fi
144
- if [[ "${DOTFILES_LOGO_PRINTED:-0}" = "1" ]]; then
145
- return
146
- fi
147
- ui_product_banner "$title"
148
- }
149
-
150
- dotfiles_version() {
151
- local src_dir version=""
152
- src_dir="$(resolve_source_dir)"
153
-
154
- if [[ -n "$src_dir" ]] && [[ -f "$src_dir/package.json" ]]; then
155
- version="$(sed -n 's/^[[:space:]]*"version"[[:space:]]*:[[:space:]]*"\([0-9][0-9.]*\)".*/\1/p' "$src_dir/package.json" | head -1)"
156
- fi
157
-
158
- if [[ -z "$version" ]] && [[ -n "${DOTFILES_VERSION:-}" ]]; then
159
- version="$DOTFILES_VERSION"
160
- fi
161
-
162
- if [[ -z "$version" ]]; then
163
- version="unknown"
164
- fi
165
-
166
- printf "%s\n" "$version"
167
- }
168
-
169
- dot_command_summary() {
170
- case "${1:-}" in
171
- apply | sync)
172
- echo "Apply dotfiles changes (sync is an alias for apply)."
173
- ;;
174
- update)
175
- echo "Pull latest changes from remote, then apply."
176
- ;;
177
- add)
178
- echo "Add a file into chezmoi source management."
179
- ;;
180
- diff)
181
- echo "Show pending managed-file differences."
182
- ;;
183
- status)
184
- echo "Show current configuration drift status."
185
- ;;
186
- remove)
187
- echo "Safely remove a managed file from source."
188
- ;;
189
- cd)
190
- echo "Print the dotfiles source directory path."
191
- ;;
192
- edit)
193
- echo "Open dotfiles source in your editor."
194
- ;;
195
- doctor)
196
- echo "Deep audit: tools, paths, portability, AI analysis."
197
- ;;
198
- heal)
199
- echo "Auto-repair broken symlinks, missing tools, and drift."
200
- ;;
201
- health | health-check)
202
- echo "Dashboard with health score, checks, and auto-fix (--fix)."
203
- ;;
204
- security-score)
205
- echo "Calculate and print security posture score."
206
- ;;
207
- scorecard)
208
- echo "Show unified health, security, and performance scorecard."
209
- ;;
210
- perf)
211
- echo "Profile shell startup performance (3-run average)."
212
- ;;
213
- conflicts)
214
- echo "Report alias and command conflicts."
215
- ;;
216
- locks)
217
- echo "Show version locks for key tools."
218
- ;;
219
- snapshot)
220
- echo "Capture a baseline system snapshot."
221
- ;;
222
- rollback)
223
- echo "Rollback dotfiles state to a prior point."
224
- ;;
225
- restore)
226
- echo "Restore files from backup or git reference."
227
- ;;
228
- drift)
229
- echo "Display detailed drift information."
230
- ;;
231
- history)
232
- echo "Analyze shell command history."
233
- ;;
234
- benchmark)
235
- echo "Measure shell startup performance."
236
- ;;
237
- verify)
238
- echo "Run post-merge verification checks."
239
- ;;
240
- tools)
241
- echo "Browse or install toolchain components."
242
- ;;
243
- aliases)
244
- echo "List, search, and explain configured aliases."
245
- ;;
246
- new)
247
- echo "Create a new project from templates."
248
- ;;
249
- packages)
250
- echo "List package managers and package stats."
251
- ;;
252
- log-rotate)
253
- echo "Rotate dotfiles local log files."
254
- ;;
255
- setup)
256
- echo "Interactive setup for profiles, features, and secrets."
257
- ;;
258
- theme)
259
- echo "Switch terminal appearance theme."
260
- ;;
261
- wallpaper)
262
- echo "Apply or sync wallpapers."
263
- ;;
264
- fonts)
265
- echo "Install Nerd Fonts for terminal tooling."
266
- ;;
267
- tune)
268
- echo "Apply OS-level tuning defaults."
269
- ;;
270
- secrets-init)
271
- echo "Initialize age key for encrypted secrets."
272
- ;;
273
- secrets)
274
- echo "Manage secrets (set/get/list/load/provider)."
275
- ;;
276
- env)
277
- echo "List mise-managed toolchain versions and sources."
278
- ;;
279
- secrets-create)
280
- echo "Create a new encrypted secrets file."
281
- ;;
282
- ssh-key)
283
- echo "Encrypt an SSH key using age."
284
- ;;
285
- backup)
286
- echo "Create a compressed backup."
287
- ;;
288
- encrypt-check)
289
- echo "Check disk encryption status."
290
- ;;
291
- firewall)
292
- echo "Apply firewall hardening settings."
293
- ;;
294
- telemetry)
295
- echo "Disable telemetry where supported."
296
- ;;
297
- dns-doh)
298
- echo "Enable DNS-over-HTTPS."
299
- ;;
300
- lock-screen)
301
- echo "Harden lock-screen idle policy."
302
- ;;
303
- usb-safety)
304
- echo "Disable risky removable-media automount."
305
- ;;
306
- fleet)
307
- echo "Show fleet node status, drift, and namespace."
308
- ;;
309
- upgrade)
310
- echo "Update system toolchains, plugins, and dotfiles."
311
- ;;
312
- docs)
313
- echo "Show dotfiles documentation."
314
- ;;
315
- learn)
316
- echo "Start the interactive onboarding tour."
317
- ;;
318
- keys)
319
- echo "Show keybindings catalog."
320
- ;;
321
- sandbox)
322
- echo "Start isolated sandbox environment."
323
- ;;
324
- mcp)
325
- echo "Run MCP configuration diagnostics."
326
- ;;
327
- metrics)
328
- echo "Show recent observability metrics from JSONL."
329
- ;;
330
- cache-refresh | prewarm)
331
- echo "Regenerate shell caches for ultra-fast startup."
332
- ;;
333
- search)
334
- echo "Find commands by keyword."
335
- ;;
336
- help | --help | -h)
337
- echo "Show command usage and reference."
338
- ;;
339
- --version | -v | version)
340
- echo "Show dotfiles and environment versions."
341
- ;;
342
- *)
343
- echo "Run a dotfiles command."
344
- ;;
345
- esac
346
- }
347
-
348
- dot_ui_command_banner() {
349
- local section="${1:-Dot}"
350
- local cmd="${2:-}"
351
- shift 2 || true
352
- local version summary
353
-
354
- for arg in "$@"; do
355
- case "$arg" in
356
- --json | -j)
357
- return
358
- ;;
359
- esac
360
- done
361
-
362
- ui_logo_once "Dot • $section"
363
-
364
- if [[ "${DOTFILES_SHOW_LOGO:-1}" != "1" ]] || [[ ! -t 1 ]]; then
365
- return
366
- fi
367
-
368
- version="$(dotfiles_version)"
369
- summary="$(dot_command_summary "$cmd")"
370
-
371
- ui_key_value "Version" "v${version}"
372
- if [[ -n "$cmd" ]]; then
373
- ui_key_value "Command" "dot ${cmd}"
374
- fi
375
- ui_key_value "Summary" "$summary"
376
- printf "\n"
377
- }
@@ -1,131 +0,0 @@
1
- #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
- # Dependency update checker for nightly CI
4
- # Reports available updates for all project dependencies
5
-
6
- set -euo pipefail
7
-
8
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
- REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
10
- REPORT_DIR="$REPO_ROOT/nightly-reports"
11
-
12
- mkdir -p "$REPORT_DIR"
13
-
14
- check_github_actions_updates() {
15
- echo "=== GitHub Actions Updates ===" >>"$REPORT_DIR/updates.txt"
16
-
17
- # Extract all GitHub Actions from workflow files
18
- find "$REPO_ROOT/.github/workflows" -name "*.yml" -o -name "*.yaml" | while read -r workflow; do
19
- echo "Checking $(basename "$workflow")..." >&2
20
- grep -E "uses: [^@]+@v[0-9]+" "$workflow" | sed 's/.*uses: //' | sort -u >>"$REPORT_DIR/actions-current.txt" 2>/dev/null || true
21
- done
22
-
23
- if [[ -f "$REPORT_DIR/actions-current.txt" ]]; then
24
- # For each action, check if newer version exists (simplified check)
25
- while read -r action_version; do
26
- if [[ -n "$action_version" ]]; then
27
- action_name=$(echo "$action_version" | cut -d'@' -f1)
28
- current_version=$(echo "$action_version" | cut -d'@' -f2)
29
- echo " $action_name: $current_version (check manually)" >>"$REPORT_DIR/updates.txt"
30
- fi
31
- done <"$REPORT_DIR/actions-current.txt"
32
- fi
33
-
34
- echo "" >>"$REPORT_DIR/updates.txt"
35
- }
36
-
37
- check_precommit_updates() {
38
- echo "=== Pre-commit Hook Updates ===" >>"$REPORT_DIR/updates.txt"
39
-
40
- if command -v pre-commit &>/dev/null && [[ -f "$REPO_ROOT/.pre-commit-config.yaml" ]]; then
41
- cd "$REPO_ROOT"
42
- pre-commit autoupdate --dry-run >>"$REPORT_DIR/updates.txt" 2>&1 || true
43
- else
44
- echo "pre-commit not available or config missing" >>"$REPORT_DIR/updates.txt"
45
- fi
46
-
47
- echo "" >>"$REPORT_DIR/updates.txt"
48
- }
49
-
50
- check_chezmoi_updates() {
51
- echo "=== Chezmoi Updates ===" >>"$REPORT_DIR/updates.txt"
52
-
53
- if command -v curl &>/dev/null; then
54
- LATEST_VERSION=$(curl -s "https://api.github.com/repos/twpayne/chezmoi/releases/latest" | grep '"tag_name"' | cut -d'"' -f4 | sed 's/^v//')
55
- CURRENT_VERSION=$(grep "CHEZMOI_VERSION:" "$REPO_ROOT/.github/workflows/ci.yml" | cut -d'"' -f2 | head -1)
56
-
57
- echo "Current Chezmoi: $CURRENT_VERSION" >>"$REPORT_DIR/updates.txt"
58
- echo "Latest Chezmoi: $LATEST_VERSION" >>"$REPORT_DIR/updates.txt"
59
-
60
- if [[ "$CURRENT_VERSION" != "$LATEST_VERSION" ]]; then
61
- echo "⚠️ Chezmoi update available: $CURRENT_VERSION → $LATEST_VERSION" >>"$REPORT_DIR/updates.txt"
62
- else
63
- echo "✅ Chezmoi is up to date" >>"$REPORT_DIR/updates.txt"
64
- fi
65
- else
66
- echo "curl not available - cannot check Chezmoi version" >>"$REPORT_DIR/updates.txt"
67
- fi
68
-
69
- echo "" >>"$REPORT_DIR/updates.txt"
70
- }
71
-
72
- check_security_tools_updates() {
73
- echo "=== Security Tools Updates ===" >>"$REPORT_DIR/updates.txt"
74
-
75
- # Check shellcheck version
76
- if command -v shellcheck &>/dev/null; then
77
- SHELLCHECK_VERSION=$(shellcheck --version | grep version: | cut -d' ' -f2)
78
- echo "Shellcheck: $SHELLCHECK_VERSION" >>"$REPORT_DIR/updates.txt"
79
- fi
80
-
81
- # Check other tools if available
82
- for tool in shfmt stylua luacheck; do
83
- if command -v "$tool" &>/dev/null; then
84
- VERSION=$($tool --version 2>&1 | head -1 || echo "unknown")
85
- echo "$tool: $VERSION" >>"$REPORT_DIR/updates.txt"
86
- fi
87
- done
88
-
89
- echo "" >>"$REPORT_DIR/updates.txt"
90
- }
91
-
92
- generate_summary() {
93
- {
94
- echo "=== Update Summary ==="
95
- echo "Generated: $(date -Iseconds)"
96
- echo "Repository: $REPO_ROOT"
97
- echo ""
98
- } >>"$REPORT_DIR/updates.txt"
99
-
100
- # Count potential updates (simplified heuristic)
101
- local update_count
102
- update_count=$(grep -c "⚠️\|→" "$REPORT_DIR/updates.txt" 2>/dev/null || echo "0")
103
-
104
- if [[ $update_count -gt 0 ]]; then
105
- echo "🔄 $update_count potential updates found" >>"$REPORT_DIR/updates.txt"
106
- else
107
- echo "✅ All dependencies appear current" >>"$REPORT_DIR/updates.txt"
108
- fi
109
- }
110
-
111
- main() {
112
- echo "Dependency Update Checker"
113
- echo "========================"
114
- echo "Checking for available updates..."
115
-
116
- # Clear previous report
117
- true >"$REPORT_DIR/updates.txt"
118
-
119
- check_chezmoi_updates
120
- check_precommit_updates
121
- check_github_actions_updates
122
- check_security_tools_updates
123
- generate_summary
124
-
125
- echo "Report generated: $REPORT_DIR/updates.txt"
126
- echo ""
127
- echo "Summary:"
128
- tail -10 "$REPORT_DIR/updates.txt"
129
- }
130
-
131
- main "$@"
@@ -1,125 +0,0 @@
1
- #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
- ## Package tracked governance artifacts into a release bundle.
4
-
5
- set -euo pipefail
6
-
7
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
- REPO_ROOT="${REPO_ROOT:-$(cd "$SCRIPT_DIR/../.." && pwd)}"
9
-
10
- OUTPUT_DIR="${OUTPUT_DIR:-$REPO_ROOT/dist/policy-bundles}"
11
- BUNDLE_VERSION="${BUNDLE_VERSION:-$(jq -r '.schemaVersion' "$REPO_ROOT/dot_config/dotfiles/policy-bundles.json")}"
12
- JSON_MODE=0
13
-
14
- while [[ $# -gt 0 ]]; do
15
- case "$1" in
16
- --output-dir | -o)
17
- OUTPUT_DIR="${2:-}"
18
- shift 2
19
- ;;
20
- --version | -v)
21
- BUNDLE_VERSION="${2:-}"
22
- shift 2
23
- ;;
24
- --json | -j)
25
- JSON_MODE=1
26
- shift
27
- ;;
28
- *)
29
- shift
30
- ;;
31
- esac
32
- done
33
-
34
- command -v jq >/dev/null 2>&1 || {
35
- echo "jq is required for policy bundle packaging." >&2
36
- exit 1
37
- }
38
-
39
- bundle_root="$OUTPUT_DIR/policy-bundles-$BUNDLE_VERSION"
40
- archive_file="$OUTPUT_DIR/policy-bundles-$BUNDLE_VERSION.tar.gz"
41
- checksum_file="$OUTPUT_DIR/policy-bundles-$BUNDLE_VERSION.sha256"
42
-
43
- rm -rf "$bundle_root"
44
- mkdir -p "$bundle_root/dot_config/dotfiles" "$bundle_root/.well-known" "$bundle_root/docs/security" "$bundle_root/docs/operations" "$bundle_root/docs/interop"
45
-
46
- files=(
47
- "dot_config/dotfiles/policy-bundles.json"
48
- "dot_config/dotfiles/model-registry.json"
49
- "dot_config/dotfiles/prompt-registry.json"
50
- "dot_config/dotfiles/agent-profiles.json"
51
- "dot_config/dotfiles/agent-card.json"
52
- "dot_config/dotfiles/mcp-policy.json"
53
- "dot_config/dotfiles/mcp-registry.json"
54
- "dot_config/dotfiles/mcp-lock.json"
55
- ".well-known/agent.json"
56
- ".well-known/agent-card.json"
57
- ".well-known/mcp/server-card.json"
58
- "docs/security/MCP_POLICY.md"
59
- "docs/operations/TRUSTED_AGENT_WORKSTATION.md"
60
- "docs/interop/A2A.md"
61
- )
62
-
63
- for file in "${files[@]}"; do
64
- [[ -f "$REPO_ROOT/$file" ]] || {
65
- echo "Missing required policy bundle artifact: $file" >&2
66
- exit 1
67
- }
68
- mkdir -p "$bundle_root/$(dirname "$file")"
69
- cp "$REPO_ROOT/$file" "$bundle_root/$file"
70
- done
71
-
72
- jq empty "$bundle_root/dot_config/dotfiles/policy-bundles.json" >/dev/null
73
- jq empty "$bundle_root/dot_config/dotfiles/model-registry.json" >/dev/null
74
- jq empty "$bundle_root/dot_config/dotfiles/prompt-registry.json" >/dev/null
75
- jq empty "$bundle_root/dot_config/dotfiles/agent-profiles.json" >/dev/null
76
- jq empty "$bundle_root/dot_config/dotfiles/agent-card.json" >/dev/null
77
- jq empty "$bundle_root/dot_config/dotfiles/mcp-policy.json" >/dev/null
78
- jq empty "$bundle_root/dot_config/dotfiles/mcp-registry.json" >/dev/null
79
- jq empty "$bundle_root/dot_config/dotfiles/mcp-lock.json" >/dev/null
80
- jq empty "$bundle_root/.well-known/agent.json" >/dev/null
81
-
82
- tar -C "$OUTPUT_DIR" -czf "$archive_file" "policy-bundles-$BUNDLE_VERSION"
83
- sha256sum "$archive_file" >"$checksum_file"
84
-
85
- # Generate CycloneDX SBOM
86
- sbom_file="$bundle_root/sbom.cyclonedx.json"
87
- if command -v syft >/dev/null 2>&1; then
88
- syft dir:"$bundle_root" -o cyclonedx-json >"$sbom_file" 2>/dev/null
89
- else
90
- # Minimal CycloneDX manifest via jq
91
- jq -n \
92
- --arg version "$BUNDLE_VERSION" \
93
- --arg timestamp "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
94
- '{
95
- bomFormat: "CycloneDX",
96
- specVersion: "1.5",
97
- version: 1,
98
- metadata: {
99
- timestamp: $timestamp,
100
- component: {
101
- type: "application",
102
- name: "dotfiles-policy-bundles",
103
- version: $version
104
- }
105
- },
106
- components: []
107
- }' >"$sbom_file"
108
- fi
109
-
110
- # Re-create archive with SBOM included
111
- tar -C "$OUTPUT_DIR" -czf "$archive_file" "policy-bundles-$BUNDLE_VERSION"
112
- sha256sum "$archive_file" >"$checksum_file"
113
-
114
- if [[ "$JSON_MODE" -eq 1 ]]; then
115
- jq -n \
116
- --arg version "$BUNDLE_VERSION" \
117
- --arg output_dir "$OUTPUT_DIR" \
118
- --arg archive "$archive_file" \
119
- --arg checksum "$checksum_file" \
120
- --arg sbom "$sbom_file" \
121
- '{version: $version, output_dir: $output_dir, archive: $archive, checksum: $checksum, sbom: $sbom}'
122
- else
123
- printf 'Policy bundle archive: %s\n' "$archive_file"
124
- printf 'Policy bundle checksum: %s\n' "$checksum_file"
125
- fi