@visulima/vis 1.0.0-alpha.4 → 1.0.0-alpha.6

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 (129) hide show
  1. package/CHANGELOG.md +164 -75
  2. package/README.md +144 -14
  3. package/dist/ai-analysis.d.ts +3 -17
  4. package/dist/ai-cache.d.ts +1 -1
  5. package/dist/ai-types.d.ts +16 -0
  6. package/dist/bin.js +353 -215
  7. package/dist/cache-directory.d.ts +73 -0
  8. package/dist/catalog.d.ts +22 -4
  9. package/dist/codeowners.d.ts +30 -0
  10. package/dist/commands/action-graph.d.ts +8 -0
  11. package/dist/commands/audit.d.ts +3 -3
  12. package/dist/commands/cache.d.ts +86 -0
  13. package/dist/commands/ci.d.ts +19 -0
  14. package/dist/commands/docker.d.ts +22 -0
  15. package/dist/commands/generate.d.ts +10 -0
  16. package/dist/commands/ignore-helpers.d.ts +157 -0
  17. package/dist/commands/ignore.d.ts +17 -0
  18. package/dist/commands/info.d.ts +3 -0
  19. package/dist/commands/list.d.ts +3 -0
  20. package/dist/commands/migrate/backup.d.ts +8 -0
  21. package/dist/commands/migrate/constants.d.ts +6 -2
  22. package/dist/commands/migrate/gitleaks.d.ts +29 -0
  23. package/dist/commands/migrate/json.d.ts +4 -2
  24. package/dist/commands/migrate/kingfisher.d.ts +14 -0
  25. package/dist/commands/migrate/moon.d.ts +5 -0
  26. package/dist/commands/migrate/nano-staged.d.ts +30 -0
  27. package/dist/commands/migrate/nx.d.ts +12 -0
  28. package/dist/commands/migrate/prompt.d.ts +2 -0
  29. package/dist/commands/migrate/secretlint.d.ts +14 -0
  30. package/dist/commands/migrate/shared.d.ts +29 -0
  31. package/dist/commands/migrate/turborepo.d.ts +11 -0
  32. package/dist/commands/migrate/types.d.ts +8 -1
  33. package/dist/commands/migrate/verify.d.ts +12 -0
  34. package/dist/commands/run.d.ts +13 -0
  35. package/dist/commands/sbom.d.ts +10 -0
  36. package/dist/commands/secrets.d.ts +3 -0
  37. package/dist/commands/staged.d.ts +7 -0
  38. package/dist/commands/status.d.ts +3 -0
  39. package/dist/commands/sync.d.ts +16 -0
  40. package/dist/commands/task-why.d.ts +3 -0
  41. package/dist/config.d.ts +18 -3
  42. package/dist/config.js +1 -1
  43. package/dist/docker.d.ts +73 -0
  44. package/dist/flakiness.d.ts +40 -0
  45. package/dist/generate/discover.d.ts +29 -0
  46. package/dist/generate/index.d.ts +32 -0
  47. package/dist/generate/index.js +1 -0
  48. package/dist/generate/loader.d.ts +15 -0
  49. package/dist/generate/moon-adapter/filename-interp.d.ts +42 -0
  50. package/dist/generate/moon-adapter/filters.d.ts +22 -0
  51. package/dist/generate/moon-adapter/frontmatter.d.ts +39 -0
  52. package/dist/generate/moon-adapter/index.d.ts +19 -0
  53. package/dist/generate/moon-adapter/tera-subset.d.ts +85 -0
  54. package/dist/generate/moon-adapter/util.d.ts +14 -0
  55. package/dist/generate/prompts.d.ts +25 -0
  56. package/dist/generate/remote.d.ts +43 -0
  57. package/dist/generate/runner.d.ts +37 -0
  58. package/dist/generate/types.d.ts +152 -0
  59. package/dist/hooks.d.ts +118 -0
  60. package/dist/native-binding.d.ts +8 -1
  61. package/dist/packem_chunks/index.js +7 -0
  62. package/dist/packem_chunks/loader.js +1 -0
  63. package/dist/packem_shared/otelPlugin-CJLkguJ8.js +1 -0
  64. package/dist/plugins/otel.d.ts +63 -0
  65. package/dist/pm-runner.d.ts +24 -3
  66. package/dist/run-report.d.ts +40 -0
  67. package/dist/runtime-check.d.ts +27 -0
  68. package/dist/sbom/cyclonedx.d.ts +39 -0
  69. package/dist/sbom/installed-package.d.ts +49 -0
  70. package/dist/sbom/license.d.ts +31 -0
  71. package/dist/sbom/lockfile.d.ts +34 -0
  72. package/dist/sbom/purl.d.ts +25 -0
  73. package/dist/sbom/resolve-specifier.d.ts +24 -0
  74. package/dist/sbom/types.d.ts +196 -0
  75. package/dist/secrets/baseline.d.ts +20 -0
  76. package/dist/secrets/format.d.ts +14 -0
  77. package/dist/secrets/git.d.ts +6 -0
  78. package/dist/secrets/spinner.d.ts +9 -0
  79. package/dist/selectors.d.ts +81 -0
  80. package/dist/shell-history.d.ts +16 -0
  81. package/dist/staged/cli-parse.d.ts +18 -0
  82. package/dist/staged/config.d.ts +14 -0
  83. package/dist/staged/errors/apply-empty-commit-error.d.ts +4 -0
  84. package/dist/staged/errors/config-error.d.ts +4 -0
  85. package/dist/staged/errors/get-backup-stash-error.d.ts +4 -0
  86. package/dist/staged/errors/git-error.d.ts +6 -0
  87. package/dist/staged/errors/index.d.ts +12 -0
  88. package/dist/staged/errors/restore-original-state-error.d.ts +4 -0
  89. package/dist/staged/errors/staged-error.d.ts +8 -0
  90. package/dist/staged/errors/task-error.d.ts +6 -0
  91. package/dist/staged/git/diff.d.ts +76 -0
  92. package/dist/staged/git/exec.d.ts +43 -0
  93. package/dist/staged/git/index.d.ts +77 -0
  94. package/dist/staged/git/stash.d.ts +37 -0
  95. package/dist/staged/index.d.ts +13 -0
  96. package/dist/staged/match.d.ts +12 -0
  97. package/dist/staged/renderer/index.d.ts +9 -0
  98. package/dist/staged/renderer/ink/index.d.ts +4 -0
  99. package/dist/staged/renderer/plain.d.ts +12 -0
  100. package/dist/staged/tasks/build.d.ts +13 -0
  101. package/dist/staged/tasks/exec.d.ts +56 -0
  102. package/dist/staged/tasks/run.d.ts +26 -0
  103. package/dist/staged/types.d.ts +173 -0
  104. package/dist/target-discovery.d.ts +59 -0
  105. package/dist/target-options.d.ts +261 -0
  106. package/dist/tui/components/OutputPanel.d.ts +2 -1
  107. package/dist/tui/components/TaskListPanel.d.ts +1 -1
  108. package/dist/tui/components/TaskStore.d.ts +1 -1
  109. package/dist/tui/components/devcontainer/DevcontainerStore.d.ts +1 -1
  110. package/dist/tui/components/devcontainer/catalogs/mount-suggestions.d.ts +1 -1
  111. package/dist/tui/components/devcontainer/sections/GeneralSection.d.ts +1 -1
  112. package/dist/tui/components/devcontainer/sections/PreviewPanel.d.ts +1 -1
  113. package/dist/tui/components/devcontainer/types.d.ts +4 -4
  114. package/dist/tui/components/graph/GraphStore.d.ts +1 -1
  115. package/dist/tui/components/graph/ProjectDetailPanel.d.ts +1 -1
  116. package/dist/tui/components/optimize/OptimizeDetailPanel.d.ts +1 -1
  117. package/dist/tui/components/optimize/OptimizeStore.d.ts +1 -1
  118. package/dist/tui/components/update/PackageDetailPanel.d.ts +1 -1
  119. package/dist/tui/components/update/PackageListPanel.d.ts +4 -1
  120. package/dist/tui/components/update/UpdateStore.d.ts +1 -1
  121. package/dist/tui/components/update/VisUpdateApp.d.ts +8 -1
  122. package/dist/tui/dynamic-life-cycle.d.ts +2 -1
  123. package/dist/tui/static-life-cycle.d.ts +7 -1
  124. package/dist/watch.d.ts +65 -0
  125. package/dist/workspace.d.ts +366 -6
  126. package/index.js +727 -554
  127. package/package.json +38 -33
  128. package/schemas/project.schema.json +344 -0
  129. package/schemas/vis-config.schema.json +331 -0
package/CHANGELOG.md CHANGED
@@ -1,109 +1,198 @@
1
+ ## @visulima/vis [1.0.0-alpha.6](https://github.com/visulima/visulima/compare/@visulima/vis@1.0.0-alpha.5...@visulima/vis@1.0.0-alpha.6) (2026-04-22)
2
+
3
+ ### Features
4
+
5
+ * Add comprehensive workspace configuration and command infrastructure ([#609](https://github.com/visulima/visulima/issues/609)) ([f4347bf](https://github.com/visulima/visulima/commit/f4347bfdcdd1b228cd9d842a927e446aaf23f035))
6
+ * Add CycloneDX 1.6 SBOM generation with `vis sbom` command ([#611](https://github.com/visulima/visulima/issues/611)) ([1e95276](https://github.com/visulima/visulima/commit/1e9527630958722a0f0f7e79d18bb23b5a57e0df))
7
+ * Add CycloneDX SBOM schema validation and TypeScript types ([#610](https://github.com/visulima/visulima/issues/610)) ([bd37e64](https://github.com/visulima/visulima/commit/bd37e6454f43116af94b5b6ae59d70d2cbe51d45))
8
+ * Migrate pnpm config from .npmrc to pnpm-workspace.yaml for v11 ([#608](https://github.com/visulima/visulima/issues/608)) ([af9321c](https://github.com/visulima/visulima/commit/af9321ccd2bacefbbda95248aea155c76c5d53ad))
9
+ * **secret-scanner:** regroup ScanOptions, add weak-passwords preset, polish SARIF ([1ddbfac](https://github.com/visulima/visulima/commit/1ddbfac6781408d750856003b5b5f53408afa5b3))
10
+ * **secret-scanner:** rust-native secret scanner with vis integration ([926a583](https://github.com/visulima/visulima/commit/926a5830efca68d9956f053496b0a5efb359eccd))
11
+ * **task-runner:** output globs, auto-writes, parallel cache IO ([137f53f](https://github.com/visulima/visulima/commit/137f53f7f5a4d8c16df511c9d145b2c158025a32))
12
+ * **vis, staged:** add env-var concurrency + fast-fail SIGKILL ([8fc5ae3](https://github.com/visulima/visulima/commit/8fc5ae3147901560f4b06848187da61d7a98819d))
13
+ * **vis, staged:** case-insensitive globs, auto-stage, parseConcurrent extraction ([671fa42](https://github.com/visulima/visulima/commit/671fa424f57cb1a94ef3d95be3d60b8632201675))
14
+ * **vis:** add `vis migrate kingfisher` for MongoDB Kingfisher users ([d7d8a5e](https://github.com/visulima/visulima/commit/d7d8a5e43c3d1d588180fcbe37e6789f68fa8d74))
15
+ * **vis:** add built-in staged-files workflow ([34c005a](https://github.com/visulima/visulima/commit/34c005a2fef371bda48139a5aba8c8858a1c8a42)), closes [#990](https://github.com/visulima/visulima/issues/990) [#1713](https://github.com/visulima/visulima/issues/1713) [#1722](https://github.com/visulima/visulima/issues/1722) [#33](https://github.com/visulima/visulima/issues/33)
16
+ * **vis:** add cache command for task runner cache ([#607](https://github.com/visulima/visulima/issues/607)) ([6752769](https://github.com/visulima/visulima/commit/67527692562b3dd9c03bb6a67c084ff1e694a560))
17
+ * **vis:** add info command for registry metadata lookup ([6e9c43d](https://github.com/visulima/visulima/commit/6e9c43d480445ff5b932193c44bbd9556cca3180))
18
+ * **vis:** add vis generate scaffolding command ([5e0bea1](https://github.com/visulima/visulima/commit/5e0bea179dd93bac8a5663e9d51a843c8f626c1b))
19
+ * **vis:** OTel plugin, --last-details, per-instance hook errors ([79c660f](https://github.com/visulima/visulima/commit/79c660f92e6982248dacd5e2bba0f113df338baf))
20
+ * **vis:** plugin API, task metadata, watch ergonomics, and run polish ([065c0dc](https://github.com/visulima/visulima/commit/065c0dc646f7e2769dcab9c01e0db52b401fcf99)), closes [#324](https://github.com/visulima/visulima/issues/324)
21
+ * **vis:** update secrets command for new scanner API + docs ([00bb0f0](https://github.com/visulima/visulima/commit/00bb0f057237e0ce88043f2c120d23b84f59d818))
22
+
23
+ ### Bug Fixes
24
+
25
+ * **ci:** publish native addons via local semantic-release plugin ([974beb2](https://github.com/visulima/visulima/commit/974beb2d021e7b2afc86b958bd2137be88d2f464))
26
+ * **tooling:** resolve eslint and formatting issues ([399d292](https://github.com/visulima/visulima/commit/399d29282be5b29bb26b4e5b24d45e2a6cdeeca3))
27
+ * **tui:** inline component and hook barrel exports in ink entry ([1cf8dd2](https://github.com/visulima/visulima/commit/1cf8dd25c91a2001268fb9d964d95df649bf7832))
28
+ * **vis:** add missing space and drop extra line in update progress UI ([db1bac1](https://github.com/visulima/visulima/commit/db1bac1ecff50eac682a5cb33958cd30e4da2bf6))
29
+ * **vis:** filter truncated SBOM hashes that fail CycloneDX 1.6 schema validation ([34c7b22](https://github.com/visulima/visulima/commit/34c7b2268f68eac1095835aa65e21f998c3a63dc))
30
+ * **vis:** fixed types ([ff39190](https://github.com/visulima/visulima/commit/ff39190d92644bf592cbb1df81d69c224ede2bff))
31
+ * **vis:** harden vis generate edge cases and migrate moon templates ([ed37000](https://github.com/visulima/visulima/commit/ed3700059e34c2fb563890edf49fd6050ddfad37))
32
+ * **vis:** recover -- passthrough in generate and create commands ([688e6a9](https://github.com/visulima/visulima/commit/688e6a9b58766b341cc510d048669b753a30345a))
33
+ * **vis:** resolve type errors across commands, tui and utils ([187d460](https://github.com/visulima/visulima/commit/187d4607732799ac1711d2097f90666674850c75))
34
+
35
+ ### Documentation
36
+
37
+ * **vis:** correct vis generate partial detection and lock CLI surface ([45b40a0](https://github.com/visulima/visulima/commit/45b40a072ffd61274309b3dbe63a3413e764cb9d))
38
+
39
+ ### Miscellaneous Chores
40
+
41
+ * **api-platform:** apply pending lint and source updates ([3fb0043](https://github.com/visulima/visulima/commit/3fb0043a4cf35f752ca89a09a077100ae0142da8))
42
+ * bump engines.node to ^22.14.0 || >=24.10.0 ([c3d0931](https://github.com/visulima/visulima/commit/c3d0931d1504e4f21ebf50ea680cfa7ce4ba15ce))
43
+ * remove unused deprecated aliases ([#612](https://github.com/visulima/visulima/issues/612)) ([24ee546](https://github.com/visulima/visulima/commit/24ee546bcb2c17b8915622e4878797c00aa1d813))
44
+ * **vis:** apply pending lint and source updates ([f1f3a92](https://github.com/visulima/visulima/commit/f1f3a92c952d129cdcedae137de4b0e77ea787b4))
45
+ * **vis:** apply prettier and declare staged killSignal option ([23af135](https://github.com/visulima/visulima/commit/23af1357f19c22f3d4a67962ab2e28ac2ce64af1))
46
+ * **vis:** bump @eslint-react/eslint-plugin + fix revealed issues ([1c19670](https://github.com/visulima/visulima/commit/1c1967040e627d29857768150a992ff1e77fd3c1))
47
+ * **vis:** enforce curly braces and apply lint fixes ([9cf1d21](https://github.com/visulima/visulima/commit/9cf1d21f53bdb09fd93b30c7f9de758f16f8960d))
48
+ * **vis:** tighten toolbox, cache, and TUI typings ([a761ad7](https://github.com/visulima/visulima/commit/a761ad76d9200e1751e4ac1c7efd6619d1d1cde0))
49
+
50
+ ### Code Refactoring
51
+
52
+ * replace inline import() types with top-level imports ([4569a4c](https://github.com/visulima/visulima/commit/4569a4ca04723da069f985855dcfab292f7347e1))
53
+ * **vis, staged:** move env-var concurrency fallback to the CLI layer ([31cb567](https://github.com/visulima/visulima/commit/31cb56767158e53f02ce2c5602a0221a774995b0))
54
+ * **vis:** read passthrough from toolbox.rawUnknown ([8d73d9c](https://github.com/visulima/visulima/commit/8d73d9c00924e02b98965d4cd89c8672a4fdffb8))
55
+ * **vis:** use @visulima/fs helpers, remove compiled artifacts from src ([dc03e7c](https://github.com/visulima/visulima/commit/dc03e7c053e8d7fb747cde38924efce6f489ca7f))
56
+
57
+ ### Tests
58
+
59
+ * **vis:** add gated remote template integration test ([a626e56](https://github.com/visulima/visulima/commit/a626e5675630db044230400794a02d37ecbc0d31)), closes [visulima/visulima#alpha](https://github.com/visulima/visulima/issues/alpha)
60
+ * **vis:** remove native binding guard from tests ([40e8707](https://github.com/visulima/visulima/commit/40e870700930b1284701d0a33a72e589e1d3facd))
61
+
62
+
63
+ ### Dependencies
64
+
65
+ * **@visulima/cerebro:** upgraded to 3.0.0-alpha.11
66
+ * **@visulima/secret-scanner:** upgraded to 1.0.0-alpha.1
67
+ * **@visulima/tui:** upgraded to 1.0.0-alpha.3
68
+
69
+ ## @visulima/vis [1.0.0-alpha.5](https://github.com/visulima/visulima/compare/@visulima/vis@1.0.0-alpha.4...@visulima/vis@1.0.0-alpha.5) (2026-04-09)
70
+
71
+ ### Features
72
+
73
+ - **vis:** add includeLocked, packageMode, depFields, maturity period to update command ([4cf85e1](https://github.com/visulima/visulima/commit/4cf85e163e392d9dd48c3119c13d3e7a7c9a782e))
74
+
75
+ ### Bug Fixes
76
+
77
+ - **vis:** use camelCase option names for cerebro CLI flags ([7f187a5](https://github.com/visulima/visulima/commit/7f187a557eb85ced5e2995b4e1a7cebc61484c45))
78
+
79
+ ### Documentation
80
+
81
+ - **vis:** document new update command options and configuration ([3e72240](https://github.com/visulima/visulima/commit/3e72240dbddebb3abf896a6c941e713ba460a73d))
82
+
83
+ ### Tests
84
+
85
+ - **vis:** add tests for update command features and fix config tests ([52635db](https://github.com/visulima/visulima/commit/52635db43243e47f781bc8bd3e79d620b72ecfb5))
86
+
87
+ ### Dependencies
88
+
89
+ - **@visulima/tui:** upgraded to 1.0.0-alpha.2
90
+
1
91
  ## @visulima/vis [1.0.0-alpha.4](https://github.com/visulima/visulima/compare/@visulima/vis@1.0.0-alpha.3...@visulima/vis@1.0.0-alpha.4) (2026-04-08)
2
92
 
3
93
  ### Features
4
94
 
5
- * add comprehensive `vis create` scaffolding command ([#602](https://github.com/visulima/visulima/issues/602)) ([e029146](https://github.com/visulima/visulima/commit/e0291469fc8c55e76721333a20753c802820d3de))
6
- * Add native Rust bindings for package manager operations ([#596](https://github.com/visulima/visulima/issues/596)) ([2ec22d0](https://github.com/visulima/visulima/commit/2ec22d023eade3fed67fb811696fbd8f7b52569d))
7
- * Add Socket.dev security intelligence integration ([#599](https://github.com/visulima/visulima/issues/599)) ([c2e2b8a](https://github.com/visulima/visulima/commit/c2e2b8a55d1688c43b1deed82b8d954bc294fa11))
8
- * Add sort-package-json command with native Rust implementation ([#601](https://github.com/visulima/visulima/issues/601)) ([8c5d2c3](https://github.com/visulima/visulima/commit/8c5d2c311d30077384df1b9194a870ac6687a0a4))
9
- * Add typosquat detection for package names ([#603](https://github.com/visulima/visulima/issues/603)) ([16ef5e8](https://github.com/visulima/visulima/commit/16ef5e8acc3670cf1bf883f7a5d9483f331b6133))
10
- * **cerebro:** add addGlobalOption API for CLI-wide options ([ccc1cc0](https://github.com/visulima/visulima/commit/ccc1cc085ed0189be49ab8da7d9dbbc69ba07c72))
11
- * **task-runner, vis:** project constraints, CI partitioning, affected scopes ([29295e9](https://github.com/visulima/visulima/commit/29295e989ecdfe2019469d1917a6c90a92e17bcf))
12
- * **tui:** add TreeView component with keyboard navigation and selection ([f3421e3](https://github.com/visulima/visulima/commit/f3421e36540f8c7a229e0176c683cb94c0d46e0f))
13
- * **vis:** add ignore option to update config and check non-catalog package.json deps ([27e22dd](https://github.com/visulima/visulima/commit/27e22dd7efa30b7d77b8360b9eac9c7245de92a7))
14
- * **vis:** add interactive devcontainer command for creating/editing .devcontainer/devcontainer.json ([9e1665f](https://github.com/visulima/visulima/commit/9e1665fb5a8cee7979a15d6b0a4ba7fa10cfe27c))
15
- * **vis:** add interactive progress bar and replace CI detection with is-in-ci ([255a1b1](https://github.com/visulima/visulima/commit/255a1b100d0dd4bc614094f292b61fc88bc4ad62))
16
- * **vis:** add interactive TUI for update and check commands ([3e96e7e](https://github.com/visulima/visulima/commit/3e96e7e68c444368ed91bc0654bbbfb9b857e7c5))
17
- * **vis:** add navigation and scrollbar to run command task list ([83abf11](https://github.com/visulima/visulima/commit/83abf11670ea924e9df0a966bd9ce1049dcdcb5e))
18
- * **vis:** add terminal links, use cerebro performance helpers ([abc7f89](https://github.com/visulima/visulima/commit/abc7f8937ce43c8446e422f48e5e307b7d0843b0))
19
- * **vis:** add TUI lifecycles with dynamic and static terminal output ([d7eeae1](https://github.com/visulima/visulima/commit/d7eeae1e51c4ffa707f7506ef0ed2f7860f37faf))
20
- * **vis:** expand devcontainer command with templates, validation, and config properties ([807e730](https://github.com/visulima/visulima/commit/807e730a43f0ea644d016b4f5506706972d2ff41))
21
- * **vis:** group CLI commands into logical categories for help output ([0a4cac8](https://github.com/visulima/visulima/commit/0a4cac859c8edf7aacdacca7b9a03219967d525a))
22
- * **vis:** interactive TUI graph viewer, enriched sample workspace ([b821f34](https://github.com/visulima/visulima/commit/b821f34b5b125aef107c7bca1b2aab7d84826651))
23
- * **vis:** redesign TUI with 3-view architecture and NX-style layout ([72da46f](https://github.com/visulima/visulima/commit/72da46fd9dac1227c0abc80709196e7c9b89c017))
24
- * **vis:** replace inline TUI with full-screen Nx-style interactive task runner ([1409aad](https://github.com/visulima/visulima/commit/1409aad879c713051bba12298a3feb1d5ba852f2))
25
- * **vis:** set terminal title to project name on startup ([204622a](https://github.com/visulima/visulima/commit/204622acd943ccad738b33f5e945190e38f5839f))
26
- * **vis:** use concurrent process runner with bounded output buffering ([901c02f](https://github.com/visulima/visulima/commit/901c02fc5a5e131c1d3316c869b321390de901a4))
95
+ - add comprehensive `vis create` scaffolding command ([#602](https://github.com/visulima/visulima/issues/602)) ([e029146](https://github.com/visulima/visulima/commit/e0291469fc8c55e76721333a20753c802820d3de))
96
+ - Add native Rust bindings for package manager operations ([#596](https://github.com/visulima/visulima/issues/596)) ([2ec22d0](https://github.com/visulima/visulima/commit/2ec22d023eade3fed67fb811696fbd8f7b52569d))
97
+ - Add Socket.dev security intelligence integration ([#599](https://github.com/visulima/visulima/issues/599)) ([c2e2b8a](https://github.com/visulima/visulima/commit/c2e2b8a55d1688c43b1deed82b8d954bc294fa11))
98
+ - Add sort-package-json command with native Rust implementation ([#601](https://github.com/visulima/visulima/issues/601)) ([8c5d2c3](https://github.com/visulima/visulima/commit/8c5d2c311d30077384df1b9194a870ac6687a0a4))
99
+ - Add typosquat detection for package names ([#603](https://github.com/visulima/visulima/issues/603)) ([16ef5e8](https://github.com/visulima/visulima/commit/16ef5e8acc3670cf1bf883f7a5d9483f331b6133))
100
+ - **cerebro:** add addGlobalOption API for CLI-wide options ([ccc1cc0](https://github.com/visulima/visulima/commit/ccc1cc085ed0189be49ab8da7d9dbbc69ba07c72))
101
+ - **task-runner, vis:** project constraints, CI partitioning, affected scopes ([29295e9](https://github.com/visulima/visulima/commit/29295e989ecdfe2019469d1917a6c90a92e17bcf))
102
+ - **tui:** add TreeView component with keyboard navigation and selection ([f3421e3](https://github.com/visulima/visulima/commit/f3421e36540f8c7a229e0176c683cb94c0d46e0f))
103
+ - **vis:** add ignore option to update config and check non-catalog package.json deps ([27e22dd](https://github.com/visulima/visulima/commit/27e22dd7efa30b7d77b8360b9eac9c7245de92a7))
104
+ - **vis:** add interactive devcontainer command for creating/editing .devcontainer/devcontainer.json ([9e1665f](https://github.com/visulima/visulima/commit/9e1665fb5a8cee7979a15d6b0a4ba7fa10cfe27c))
105
+ - **vis:** add interactive progress bar and replace CI detection with is-in-ci ([255a1b1](https://github.com/visulima/visulima/commit/255a1b100d0dd4bc614094f292b61fc88bc4ad62))
106
+ - **vis:** add interactive TUI for update and check commands ([3e96e7e](https://github.com/visulima/visulima/commit/3e96e7e68c444368ed91bc0654bbbfb9b857e7c5))
107
+ - **vis:** add navigation and scrollbar to run command task list ([83abf11](https://github.com/visulima/visulima/commit/83abf11670ea924e9df0a966bd9ce1049dcdcb5e))
108
+ - **vis:** add terminal links, use cerebro performance helpers ([abc7f89](https://github.com/visulima/visulima/commit/abc7f8937ce43c8446e422f48e5e307b7d0843b0))
109
+ - **vis:** add TUI lifecycles with dynamic and static terminal output ([d7eeae1](https://github.com/visulima/visulima/commit/d7eeae1e51c4ffa707f7506ef0ed2f7860f37faf))
110
+ - **vis:** expand devcontainer command with templates, validation, and config properties ([807e730](https://github.com/visulima/visulima/commit/807e730a43f0ea644d016b4f5506706972d2ff41))
111
+ - **vis:** group CLI commands into logical categories for help output ([0a4cac8](https://github.com/visulima/visulima/commit/0a4cac859c8edf7aacdacca7b9a03219967d525a))
112
+ - **vis:** interactive TUI graph viewer, enriched sample workspace ([b821f34](https://github.com/visulima/visulima/commit/b821f34b5b125aef107c7bca1b2aab7d84826651))
113
+ - **vis:** redesign TUI with 3-view architecture and NX-style layout ([72da46f](https://github.com/visulima/visulima/commit/72da46fd9dac1227c0abc80709196e7c9b89c017))
114
+ - **vis:** replace inline TUI with full-screen Nx-style interactive task runner ([1409aad](https://github.com/visulima/visulima/commit/1409aad879c713051bba12298a3feb1d5ba852f2))
115
+ - **vis:** set terminal title to project name on startup ([204622a](https://github.com/visulima/visulima/commit/204622acd943ccad738b33f5e945190e38f5839f))
116
+ - **vis:** use concurrent process runner with bounded output buffering ([901c02f](https://github.com/visulima/visulima/commit/901c02fc5a5e131c1d3316c869b321390de901a4))
27
117
 
28
118
  ### Bug Fixes
29
119
 
30
- * resolve failing tests across multiple packages ([2b4b6f0](https://github.com/visulima/visulima/commit/2b4b6f04169b60fdc4cf77b293015436a272c0fb))
31
- * **tsconfig:** add node types and fix implicit any parameter ([1744d82](https://github.com/visulima/visulima/commit/1744d82a07fca03f2e6ff660b918e9b2623acf69))
32
- * **tui:** apply upstream ResizeObserver NaN guard and measurement extraction ([bcd4fd1](https://github.com/visulima/visulima/commit/bcd4fd16e7e0fda7d3de09657dfe76ce46fa370a))
33
- * **tui:** prevent interactive apps from exiting on beforeExit ([449e84c](https://github.com/visulima/visulima/commit/449e84ca739d9dd48728f40ad9514359306f9527))
34
- * **vis,tui:** fix 10 code review issues across TUI components ([3410347](https://github.com/visulima/visulima/commit/34103473cb661cca4187661e59b396eecff1bdec))
35
- * **vis,tui:** validate directory in detectPm and use useLayoutEffect in StaticRender ([de53e9b](https://github.com/visulima/visulima/commit/de53e9b7a944a3778f0d10f1daa1653a1063d9b3))
36
- * **vis:** add explicit type annotation for isolatedDeclarations compatibility ([235d389](https://github.com/visulima/visulima/commit/235d389f8fd3ffa4de2d867eaff781dccd99be20))
37
- * **vis:** add explicit type annotations for isolatedDeclarations compatibility ([5a5f35c](https://github.com/visulima/visulima/commit/5a5f35cd0e92aff38f4c7bd8f31dda5e813ff568))
38
- * **vis:** exclude native binding deps from unused dependency check ([0e8409e](https://github.com/visulima/visulima/commit/0e8409e66676803fb1494fa32df64cdc44969966))
39
- * **vis:** expand StagedConfig type and support Bun object-form workspaces ([af810bc](https://github.com/visulima/visulima/commit/af810bc10a512ec0ed390152e9d59ece681f7360))
40
- * **vis:** fix broken lib-a dep in sample workspace example ([538b7d4](https://github.com/visulima/visulima/commit/538b7d42d0b09313ff87342143f0c7502788092b))
41
- * **vis:** fix failing tests across tui, catalog, and pm-runner modules ([1c29189](https://github.com/visulima/visulima/commit/1c29189ad39061085cc10ca316d1128d52e88811))
42
- * **vis:** fix tips CI test by resetting modules before doMock ([c578ef5](https://github.com/visulima/visulima/commit/c578ef55c1176397448136c8e190992cdf50eb08))
43
- * **vis:** improve devcontainer TUI scrolling, mount suggestions, and review fixes ([6bb03da](https://github.com/visulima/visulima/commit/6bb03dae9f48d9a6461bdfce2ad29da3f16c4ecf))
44
- * **vis:** overhaul TUI with pail InteractiveManager and tabular layout ([ecab9ff](https://github.com/visulima/visulima/commit/ecab9ffc61531b76a58b89202401f1266a5decea))
45
- * **vis:** resolve eslint errors ([b9ee58b](https://github.com/visulima/visulima/commit/b9ee58b179588fa9f3c08178f26dac7cc8e7f6c5))
46
- * **vis:** resolve test failures across multiple modules ([5728d8a](https://github.com/visulima/visulima/commit/5728d8aabae0fb0bb8c64527f61b8663b73148f2))
47
- * **vis:** support Bun object-form workspaces in migration catalog handling ([f44a17f](https://github.com/visulima/visulima/commit/f44a17fe7836febfac4012f744438df70f36af6b))
48
- * **vis:** TUI polish - compact split, responsive layout, double output fix ([e0487ea](https://github.com/visulima/visulima/commit/e0487ea735ecc2734046ccaedc9588a8ca165674)), closes [#1e1e1e](https://github.com/visulima/visulima/issues/1e1e1e)
120
+ - resolve failing tests across multiple packages ([2b4b6f0](https://github.com/visulima/visulima/commit/2b4b6f04169b60fdc4cf77b293015436a272c0fb))
121
+ - **tsconfig:** add node types and fix implicit any parameter ([1744d82](https://github.com/visulima/visulima/commit/1744d82a07fca03f2e6ff660b918e9b2623acf69))
122
+ - **tui:** apply upstream ResizeObserver NaN guard and measurement extraction ([bcd4fd1](https://github.com/visulima/visulima/commit/bcd4fd16e7e0fda7d3de09657dfe76ce46fa370a))
123
+ - **tui:** prevent interactive apps from exiting on beforeExit ([449e84c](https://github.com/visulima/visulima/commit/449e84ca739d9dd48728f40ad9514359306f9527))
124
+ - **vis,tui:** fix 10 code review issues across TUI components ([3410347](https://github.com/visulima/visulima/commit/34103473cb661cca4187661e59b396eecff1bdec))
125
+ - **vis,tui:** validate directory in detectPm and use useLayoutEffect in StaticRender ([de53e9b](https://github.com/visulima/visulima/commit/de53e9b7a944a3778f0d10f1daa1653a1063d9b3))
126
+ - **vis:** add explicit type annotation for isolatedDeclarations compatibility ([235d389](https://github.com/visulima/visulima/commit/235d389f8fd3ffa4de2d867eaff781dccd99be20))
127
+ - **vis:** add explicit type annotations for isolatedDeclarations compatibility ([5a5f35c](https://github.com/visulima/visulima/commit/5a5f35cd0e92aff38f4c7bd8f31dda5e813ff568))
128
+ - **vis:** exclude native binding deps from unused dependency check ([0e8409e](https://github.com/visulima/visulima/commit/0e8409e66676803fb1494fa32df64cdc44969966))
129
+ - **vis:** expand StagedConfig type and support Bun object-form workspaces ([af810bc](https://github.com/visulima/visulima/commit/af810bc10a512ec0ed390152e9d59ece681f7360))
130
+ - **vis:** fix broken lib-a dep in sample workspace example ([538b7d4](https://github.com/visulima/visulima/commit/538b7d42d0b09313ff87342143f0c7502788092b))
131
+ - **vis:** fix failing tests across tui, catalog, and pm-runner modules ([1c29189](https://github.com/visulima/visulima/commit/1c29189ad39061085cc10ca316d1128d52e88811))
132
+ - **vis:** fix tips CI test by resetting modules before doMock ([c578ef5](https://github.com/visulima/visulima/commit/c578ef55c1176397448136c8e190992cdf50eb08))
133
+ - **vis:** improve devcontainer TUI scrolling, mount suggestions, and review fixes ([6bb03da](https://github.com/visulima/visulima/commit/6bb03dae9f48d9a6461bdfce2ad29da3f16c4ecf))
134
+ - **vis:** overhaul TUI with pail InteractiveManager and tabular layout ([ecab9ff](https://github.com/visulima/visulima/commit/ecab9ffc61531b76a58b89202401f1266a5decea))
135
+ - **vis:** resolve eslint errors ([b9ee58b](https://github.com/visulima/visulima/commit/b9ee58b179588fa9f3c08178f26dac7cc8e7f6c5))
136
+ - **vis:** resolve test failures across multiple modules ([5728d8a](https://github.com/visulima/visulima/commit/5728d8aabae0fb0bb8c64527f61b8663b73148f2))
137
+ - **vis:** support Bun object-form workspaces in migration catalog handling ([f44a17f](https://github.com/visulima/visulima/commit/f44a17fe7836febfac4012f744438df70f36af6b))
138
+ - **vis:** TUI polish - compact split, responsive layout, double output fix ([e0487ea](https://github.com/visulima/visulima/commit/e0487ea735ecc2734046ccaedc9588a8ca165674)), closes [#1e1e1e](https://github.com/visulima/visulima/issues/1e1e1e)
49
139
 
50
140
  ### Performance Improvements
51
141
 
52
- * **vis:** wrap immutable TUI components with StaticRender ([00e47e9](https://github.com/visulima/visulima/commit/00e47e9f7a6c562570e0b090b7940389451aa1ef))
142
+ - **vis:** wrap immutable TUI components with StaticRender ([00e47e9](https://github.com/visulima/visulima/commit/00e47e9f7a6c562570e0b090b7940389451aa1ef))
53
143
 
54
144
  ### Styles
55
145
 
56
- * cs fixs ([0666662](https://github.com/visulima/visulima/commit/066666293c50cde41c796dc38b4b62c48531a3c0))
146
+ - cs fixs ([0666662](https://github.com/visulima/visulima/commit/066666293c50cde41c796dc38b4b62c48531a3c0))
57
147
 
58
148
  ### Miscellaneous Chores
59
149
 
60
- * added og images ([02d9d1e](https://github.com/visulima/visulima/commit/02d9d1e47be3ce75679ea89e857dc4e4bfe4946b))
61
- * apply linting and formatting fixes across packages ([5d150a5](https://github.com/visulima/visulima/commit/5d150a578f9ce861c791843c683deeb849b774a9))
62
- * update git ignore ([67ac9cf](https://github.com/visulima/visulima/commit/67ac9cfd5969f54fbbbb426b3277472f75b0d520))
63
- * update license.md ([d4fb70e](https://github.com/visulima/visulima/commit/d4fb70ec954722345967ef2c607322402d25f2d9))
64
- * update lock file ([e58ef7c](https://github.com/visulima/visulima/commit/e58ef7c5764fc262e72504f31b4d97def449ee89))
65
- * **vis:** add .gitignore for cache, update changelog and lint fixes ([32d5ae8](https://github.com/visulima/visulima/commit/32d5ae841e79cb436273a73003ca42e610e912a5))
66
- * **vis:** apply auto-fix formatting ([098aa0f](https://github.com/visulima/visulima/commit/098aa0fabf17efee373987006a9ed9bad150f69d))
67
- * **vis:** apply linter auto-fixes ([c6ca2aa](https://github.com/visulima/visulima/commit/c6ca2aa6b648fcb90ef16a24502bbc753cdce712))
68
- * **vis:** apply prettier formatting ([05476bc](https://github.com/visulima/visulima/commit/05476bc9d9c1fd8a34423081159558576bfa6490))
69
- * **vis:** expand braceless if/else statements to block syntax ([85f2595](https://github.com/visulima/visulima/commit/85f259532872b6d478e96a42b8122db6730ef280))
70
- * **vis:** expand inline if-return to block syntax ([69a6c77](https://github.com/visulima/visulima/commit/69a6c7778eb40c33fd945e85a1c11607ae8c62c5))
71
- * **vis:** migrate .prettierrc.cjs to prettier.config.js ([2caed59](https://github.com/visulima/visulima/commit/2caed5911cd31a89f4db68c570a11cc74080820a))
150
+ - added og images ([02d9d1e](https://github.com/visulima/visulima/commit/02d9d1e47be3ce75679ea89e857dc4e4bfe4946b))
151
+ - apply linting and formatting fixes across packages ([5d150a5](https://github.com/visulima/visulima/commit/5d150a578f9ce861c791843c683deeb849b774a9))
152
+ - update git ignore ([67ac9cf](https://github.com/visulima/visulima/commit/67ac9cfd5969f54fbbbb426b3277472f75b0d520))
153
+ - update license.md ([d4fb70e](https://github.com/visulima/visulima/commit/d4fb70ec954722345967ef2c607322402d25f2d9))
154
+ - update lock file ([e58ef7c](https://github.com/visulima/visulima/commit/e58ef7c5764fc262e72504f31b4d97def449ee89))
155
+ - **vis:** add .gitignore for cache, update changelog and lint fixes ([32d5ae8](https://github.com/visulima/visulima/commit/32d5ae841e79cb436273a73003ca42e610e912a5))
156
+ - **vis:** apply auto-fix formatting ([098aa0f](https://github.com/visulima/visulima/commit/098aa0fabf17efee373987006a9ed9bad150f69d))
157
+ - **vis:** apply linter auto-fixes ([c6ca2aa](https://github.com/visulima/visulima/commit/c6ca2aa6b648fcb90ef16a24502bbc753cdce712))
158
+ - **vis:** apply prettier formatting ([05476bc](https://github.com/visulima/visulima/commit/05476bc9d9c1fd8a34423081159558576bfa6490))
159
+ - **vis:** expand braceless if/else statements to block syntax ([85f2595](https://github.com/visulima/visulima/commit/85f259532872b6d478e96a42b8122db6730ef280))
160
+ - **vis:** expand inline if-return to block syntax ([69a6c77](https://github.com/visulima/visulima/commit/69a6c7778eb40c33fd945e85a1c11607ae8c62c5))
161
+ - **vis:** migrate .prettierrc.cjs to prettier.config.js ([2caed59](https://github.com/visulima/visulima/commit/2caed5911cd31a89f4db68c570a11cc74080820a))
72
162
 
73
163
  ### Code Refactoring
74
164
 
75
- * **vis:** address review findings across optimize and audit ([317dca8](https://github.com/visulima/visulima/commit/317dca88a16f6604c267f9240556d7e15a563a95))
76
- * **vis:** apply Nothing design system to TUI components ([3d0517d](https://github.com/visulima/visulima/commit/3d0517d6225f75ea2e2ccf6170efdfa7911bf0c2))
77
- * **vis:** unify TUI style across run and update commands ([2c85520](https://github.com/visulima/visulima/commit/2c855204a1972596e079a42e12b3a79aba6c657c))
78
- * **vis:** update commands, TUI components, and project scaffolding ([26b40fb](https://github.com/visulima/visulima/commit/26b40fb3521411f750d176ad638c353bd7e36f44))
165
+ - **vis:** address review findings across optimize and audit ([317dca8](https://github.com/visulima/visulima/commit/317dca88a16f6604c267f9240556d7e15a563a95))
166
+ - **vis:** apply Nothing design system to TUI components ([3d0517d](https://github.com/visulima/visulima/commit/3d0517d6225f75ea2e2ccf6170efdfa7911bf0c2))
167
+ - **vis:** unify TUI style across run and update commands ([2c85520](https://github.com/visulima/visulima/commit/2c855204a1972596e079a42e12b3a79aba6c657c))
168
+ - **vis:** update commands, TUI components, and project scaffolding ([26b40fb](https://github.com/visulima/visulima/commit/26b40fb3521411f750d176ad638c353bd7e36f44))
79
169
 
80
170
  ### Tests
81
171
 
82
- * **vis:** add 50 sample workspace packages for TUI testing ([579d05b](https://github.com/visulima/visulima/commit/579d05b46e2f5bad73297dfab823016663d3041e))
172
+ - **vis:** add 50 sample workspace packages for TUI testing ([579d05b](https://github.com/visulima/visulima/commit/579d05b46e2f5bad73297dfab823016663d3041e))
83
173
 
84
174
  ### Build System
85
175
 
86
- * regenerate NAPI-RS bindings as ESM ([f202caf](https://github.com/visulima/visulima/commit/f202caf3dc383a2ec24815c4935d8d68c29f33d0))
87
- * switch NAPI-RS native builds to ESM output ([3d7cd61](https://github.com/visulima/visulima/commit/3d7cd615ad830392005915735c11771e0247ef3f))
176
+ - regenerate NAPI-RS bindings as ESM ([f202caf](https://github.com/visulima/visulima/commit/f202caf3dc383a2ec24815c4935d8d68c29f33d0))
177
+ - switch NAPI-RS native builds to ESM output ([3d7cd61](https://github.com/visulima/visulima/commit/3d7cd615ad830392005915735c11771e0247ef3f))
88
178
 
89
179
  ### Continuous Integration
90
180
 
91
- * distribute native artifacts for all three packages (task-runner, tui, vis) ([78760ec](https://github.com/visulima/visulima/commit/78760ec805ee4ed38a134ab18fa39b398527cef9))
92
-
181
+ - distribute native artifacts for all three packages (task-runner, tui, vis) ([78760ec](https://github.com/visulima/visulima/commit/78760ec805ee4ed38a134ab18fa39b398527cef9))
93
182
 
94
183
  ### Dependencies
95
184
 
96
- * **@visulima/ansi:** upgraded to 4.0.0-alpha.8
97
- * **@visulima/cerebro:** upgraded to 3.0.0-alpha.10
98
- * **@visulima/colorize:** upgraded to 2.0.0-alpha.8
99
- * **@visulima/find-ai-runner:** upgraded to 1.0.0-alpha.3
100
- * **@visulima/find-cache-dir:** upgraded to 3.0.0-alpha.7
101
- * **@visulima/fs:** upgraded to 5.0.0-alpha.7
102
- * **@visulima/humanizer:** upgraded to 3.0.0-alpha.9
103
- * **@visulima/package:** upgraded to 5.0.0-alpha.7
104
- * **@visulima/path:** upgraded to 3.0.0-alpha.8
105
- * **@visulima/task-runner:** upgraded to 1.0.0-alpha.4
106
- * **@visulima/tui:** upgraded to 1.0.0-alpha.1
185
+ - **@visulima/ansi:** upgraded to 4.0.0-alpha.8
186
+ - **@visulima/cerebro:** upgraded to 3.0.0-alpha.10
187
+ - **@visulima/colorize:** upgraded to 2.0.0-alpha.8
188
+ - **@visulima/find-ai-runner:** upgraded to 1.0.0-alpha.3
189
+ - **@visulima/find-cache-dir:** upgraded to 3.0.0-alpha.7
190
+ - **@visulima/fs:** upgraded to 5.0.0-alpha.7
191
+ - **@visulima/humanizer:** upgraded to 3.0.0-alpha.9
192
+ - **@visulima/package:** upgraded to 5.0.0-alpha.7
193
+ - **@visulima/path:** upgraded to 3.0.0-alpha.8
194
+ - **@visulima/task-runner:** upgraded to 1.0.0-alpha.4
195
+ - **@visulima/tui:** upgraded to 1.0.0-alpha.1
107
196
 
108
197
  ## @visulima/vis [1.0.0-alpha.3](https://github.com/visulima/visulima/compare/@visulima/vis@1.0.0-alpha.2...@visulima/vis@1.0.0-alpha.3) (2026-03-26)
109
198
 
package/README.md CHANGED
@@ -88,20 +88,150 @@ vis hook install
88
88
 
89
89
  ## Commands
90
90
 
91
- | Command | Alias | Description |
92
- | ----------------------- | ----- | ----------------------------------------------------------------- |
93
- | `vis create [template]` | | Scaffold a new project from templates, npm packages, or git repos |
94
- | `vis init` | | Initialize vis.config.ts with security defaults |
95
- | `vis run <target>` | | Run a target across workspace projects with caching |
96
- | `vis affected <target>` | | Run tasks only on projects affected by git changes |
97
- | `vis graph` | | Visualize the project dependency graph |
98
- | `vis check [packages]` | `c` | Check for outdated dependencies in workspace catalogs |
99
- | `vis update [packages]` | `up` | Update packages to their latest versions |
100
- | `vis install` | `i` | Install dependencies via the detected package manager |
101
- | `vis dlx <package>` | | Execute a remote package without permanent installation |
102
- | `vis audit` | | Audit dependencies for security vulnerabilities |
103
- | `vis clean` | | Remove build artifacts, caches, and node_modules |
104
- | `vis hook <action>` | | Manage git hooks (install, uninstall, migrate) |
91
+ | Command | Alias | Description |
92
+ | ----------------------- | ------ | -------------------------------------------------------------------- |
93
+ | `vis create [template]` | | Scaffold a new project from templates, npm packages, or git repos |
94
+ | `vis generate [name]` | | Scaffold files from an in-repo template (native TS or moon-format) |
95
+ | `vis init` | | Initialize vis.config.ts with security defaults |
96
+ | `vis run <target>` | | Run a target across workspace projects with caching |
97
+ | `vis affected <target>` | | Run tasks only on projects affected by git changes |
98
+ | `vis ignore <project>` | | CI build gating for Vercel / Netlify "Ignored Build Step" |
99
+ | `vis graph` | | Visualize the project dependency graph |
100
+ | `vis check [packages]` | `c` | Check for outdated dependencies in workspace catalogs |
101
+ | `vis update [packages]` | `up` | Update packages to their latest versions |
102
+ | `vis install` | `i` | Install dependencies via the detected package manager |
103
+ | `vis info <package>` | `view` | Show npm registry metadata for a package (wraps `npm view` et al.) |
104
+ | `vis dlx <package>` | | Execute a remote package without permanent installation |
105
+ | `vis audit` | | Audit dependencies for security vulnerabilities |
106
+ | `vis clean` | | Remove build artifacts, caches, and node_modules |
107
+ | `vis hook <action>` | | Manage git hooks (install, uninstall, migrate) |
108
+ | `vis secrets [paths]` | | Scan for hardcoded secrets / credentials (Rust-native) |
109
+ | `vis staged` | | Run tasks on staged files (built-in `lint-staged` replacement) |
110
+ | `vis migrate <type>` | | Migrate from other tools — now including `gitleaks` and `secretlint` |
111
+
112
+ For `vis ignore`, see the [command reference](./docs/commands/ignore.mdx) and the [deployment build gating section](./docs/guides/ci-cd.mdx#deployment-build-gating) of the CI/CD guide.
113
+
114
+ ### Scanning for secrets
115
+
116
+ `vis secrets` wraps [`@visulima/secret-scanner`](../secret-scanner) — a Rust port of the gitleaks detection engine — with ergonomic flags for the common workflows.
117
+
118
+ ```sh
119
+ vis secrets # scan the workspace (grouped, colourised output)
120
+ vis secrets --staged # pre-commit mode: scan staged files only
121
+ vis secrets --since main # scan files changed since the `main` branch
122
+ vis secrets --affected # scan only files affected by the current branch
123
+ vis secrets --init # scaffold an initial .secrets-baseline.json
124
+ vis secrets --list-rules # print all bundled detection rules
125
+ vis secrets --enable-rule tag:preset:weak-passwords # enable an opt-in rule group additively
126
+ vis secrets --exclude 'dist/**' --exclude-from .secretsignore # extra walker exclusions
127
+ vis secrets --include-rule stripe-access-token # check a single rule
128
+ vis secrets --exclude-rule generic-api-key # drop a noisy rule
129
+ vis secrets --baseline .secrets-baseline.json # suppress triaged findings; print diff
130
+ vis secrets --update-baseline # merge current findings into the baseline
131
+ vis secrets --format sarif > report.sarif # SARIF for GitHub code-scanning
132
+ ```
133
+
134
+ **Suppression** — inline (`// gitleaks:allow`), block (`gitleaks:allow-start` … `gitleaks:allow-end`), or a baseline JSON (sole fingerprint store). See the [secret-scanner README](../secret-scanner/README.md#suppression) for details.
135
+
136
+ **CI example** (GitHub Actions, SARIF upload):
137
+
138
+ ```yaml
139
+ name: Secrets
140
+ on: [push, pull_request]
141
+ jobs:
142
+ scan:
143
+ runs-on: ubuntu-latest
144
+ permissions: { security-events: write, contents: read }
145
+ steps:
146
+ - uses: actions/checkout@v4
147
+ - uses: pnpm/action-setup@v4
148
+ - run: pnpm install
149
+ - run: pnpm vis secrets --format sarif > report.sarif
150
+ continue-on-error: true
151
+ - uses: github/codeql-action/upload-sarif@v3
152
+ with: { sarif_file: report.sarif }
153
+ ```
154
+
155
+ ### Migrations
156
+
157
+ `vis migrate` now speaks two security tools:
158
+
159
+ ```sh
160
+ vis migrate gitleaks # keeps gitleaks.toml, rewrites scripts/hooks to `vis secrets`
161
+ vis migrate secretlint # removes @secretlint/*, rewrites scripts/hooks, notes active rules
162
+ ```
163
+
164
+ Every destructive step writes a `.bak` sidecar first and prompts for confirmation (skip with `-y`). Dry-run previews are available via `--dry-run`.
165
+
166
+ ### Running tasks on staged files
167
+
168
+ `vis staged` is a built-in replacement for `lint-staged` — the same config shape, no peer dependency, and an integrated task renderer. Requires Git ≥ 2.32.
169
+
170
+ Declare the patterns and tasks under `staged` in `vis.config.ts`:
171
+
172
+ ```ts
173
+ // vis.config.ts
174
+ import { defineConfig } from "@visulima/vis/config";
175
+
176
+ export default defineConfig({
177
+ staged: {
178
+ "*.{ts,tsx}": ["eslint --fix", "prettier --write"],
179
+ "*.md": "prettier --write",
180
+ "package.json": (files) => `sort-package-json ${files.join(" ")}`,
181
+ },
182
+ });
183
+ ```
184
+
185
+ Each key is a glob (basename or path-style — path-style matches resolve relative to `cwd`). Each value is one of:
186
+
187
+ - a command string — split into argv, invoked with matched files appended;
188
+ - a `string[]` array — commands run serially for that pattern;
189
+ - a function `(files) => string | string[] | {title, task}` — generate dynamic commands or a custom task;
190
+ - a `{ title, task }` object — runs `task(files)` with no argv construction, useful for in-process side effects.
191
+
192
+ `vis.config.ts` is the single source of truth — no standalone `.lintstagedrc*` or `.vis-staged.*` files are read at runtime. Migrating from lint-staged or nano-staged? Run `vis migrate lint-staged` (or `vis migrate nano-staged`) to move the config in and remove the legacy files.
193
+
194
+ #### Command-line flags
195
+
196
+ ```sh
197
+ vis staged # run tasks on the current staged set
198
+ vis staged --verbose # show stdout/stderr on success as well as failure
199
+ vis staged --no-stash # skip the backup stash (faster, but no recovery on failure)
200
+ vis staged --diff HEAD~1 # operate on a range instead of `--staged`
201
+ vis staged --diff-filter=ACM # override the default ACMR filter
202
+ vis staged --concurrent 4 # cap parallel pattern execution
203
+ vis staged --continue-on-error # don't short-circuit on the first failure
204
+ vis staged --fail-on-changes # non-zero exit if tasks modified staged content
205
+ vis staged --hide-unstaged # hide all unstaged edits on tracked files
206
+ vis staged --hide-all # hide unstaged edits AND untracked files
207
+ vis staged --relative # pass paths relative to cwd to tasks
208
+ vis staged --revert # restore pre-task state on failure
209
+ vis staged --allow-empty # allow a commit when tasks revert everything
210
+ vis staged --auto-stage # auto-stage new files tasks create (codegen, lockfile regen, …)
211
+ vis staged --force-kill # kill in-flight tasks with SIGKILL on fast-fail (default: SIGTERM)
212
+ ```
213
+
214
+ #### Environment variables
215
+
216
+ | Variable | Description |
217
+ | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
218
+ | `VIS_STAGED_CONCURRENT` | Concurrency fallback when `--concurrent` is not passed. Same value shape as the flag (`true`, `false`, or an integer). Useful in CI so you don't repeat the flag on every invocation. |
219
+
220
+ #### How it behaves
221
+
222
+ 1. A hidden backup stash is created (via `git stash create` + `git stash store`, so the working tree is untouched).
223
+ 2. For partially-staged files, the unstaged delta is captured as a patch and the working tree is reset to the staged content. `--hide-all` extends this to every unstaged change _and_ untracked files via a single `git stash push --include-untracked`.
224
+ 3. Tasks run — patterns in parallel (capped at `os.availableParallelism()` by default), commands within a pattern serially.
225
+ 4. Task-driven edits are re-staged with `git update-index --again` (with a `git add -u` fallback for deletions), so commits made via pathspec (`git commit -m "…" .`) keep working.
226
+ 5. The unstaged patch — or the hide-all stash — is re-applied and the backup stash is dropped on success. On failure without `--revert`, the backup stash is preserved and the recovery sha is surfaced to the user. Ctrl+C aborts in-flight commands and still runs the restore path; a second Ctrl+C exits immediately.
227
+
228
+ #### Migrating from lint-staged
229
+
230
+ ```sh
231
+ vis migrate lint-staged # moves the config into vis.config.ts and rewrites hooks
232
+ ```
233
+
234
+ The migrator detects `package.json` keys, `.lintstagedrc*` files, and `lint-staged.config.*`, prompts before rewriting husky/vis hooks to call `vis staged`, and removes `lint-staged` from the dependency list.
105
235
 
106
236
  ## Documentation
107
237
 
@@ -1,4 +1,5 @@
1
1
  import type { AiProviderInfo } from "@visulima/find-ai-runner";
2
+ import type { AiAnalysisResult, AiRecommendation, AnalysisType } from "./ai-types.d.ts";
2
3
  import type { OutdatedEntry } from "./catalog.d.ts";
3
4
  interface AiConfig {
4
5
  /** Cache TTL in milliseconds. Overrides default (1h / 30min for security). */
@@ -8,25 +9,9 @@ interface AiConfig {
8
9
  /** Use a specific provider, skip auto-detection. */
9
10
  provider?: string;
10
11
  }
11
- type AnalysisType = "compatibility" | "impact" | "recommend" | "security";
12
12
  declare const DEFAULT_PRIORITY: Record<string, number>;
13
13
  /** Resolve which AI provider to use based on config and availability. */
14
14
  declare const resolveProvider: (config?: AiConfig) => AiProviderInfo | undefined;
15
- interface AiRecommendation {
16
- action: "defer" | "review" | "skip" | "update";
17
- breakingChanges: string[];
18
- effort: "high" | "low" | "medium";
19
- package: string;
20
- reason: string;
21
- riskLevel: "critical" | "high" | "low" | "medium";
22
- }
23
- interface AiAnalysisResult {
24
- analysisType: AnalysisType;
25
- provider: string;
26
- recommendations: AiRecommendation[];
27
- summary: string;
28
- warnings: string[];
29
- }
30
15
  declare const validateAnalysisType: (type: string) => AnalysisType;
31
16
  declare const buildAnalysisPrompt: (outdated: OutdatedEntry[], analysisType?: AnalysisType) => string;
32
17
  declare const extractJson: (text: string) => unknown | undefined;
@@ -36,5 +21,6 @@ declare const ruleBasedAnalysis: (outdated: OutdatedEntry[], analysisType: Analy
36
21
  declare const formatAiAnalysis: (result: AiAnalysisResult) => string;
37
22
  declare const formatAiAnalysisJson: (result: AiAnalysisResult) => string;
38
23
  declare const runAiAnalysis: (outdated: OutdatedEntry[], logger: Console, config?: AiConfig, analysisType?: AnalysisType) => Promise<AiAnalysisResult>;
39
- export type { AiAnalysisResult, AiConfig, AiRecommendation, AnalysisType };
24
+ export type { AiConfig };
40
25
  export { buildAnalysisPrompt, DEFAULT_PRIORITY, extractJson, formatAiAnalysis, formatAiAnalysisJson, normalizeRecommendation, parseAiResponse, resolveProvider, ruleBasedAnalysis, runAiAnalysis, validateAnalysisType, };
26
+ export { type AiAnalysisResult, type AiRecommendation, type AnalysisType } from "./ai-types.d.ts";
@@ -1,4 +1,4 @@
1
- import type { AiAnalysisResult, AnalysisType } from "./ai-analysis.d.ts";
1
+ import type { AiAnalysisResult, AnalysisType } from "./ai-types.d.ts";
2
2
  import type { OutdatedEntry } from "./catalog.d.ts";
3
3
  interface CacheEntry {
4
4
  createdAt: number;
@@ -0,0 +1,16 @@
1
+ export type AnalysisType = "compatibility" | "impact" | "recommend" | "security";
2
+ export interface AiRecommendation {
3
+ action: "defer" | "review" | "skip" | "update";
4
+ breakingChanges: string[];
5
+ effort: "high" | "low" | "medium";
6
+ package: string;
7
+ reason: string;
8
+ riskLevel: "critical" | "high" | "low" | "medium";
9
+ }
10
+ export interface AiAnalysisResult {
11
+ analysisType: AnalysisType;
12
+ provider: string;
13
+ recommendations: AiRecommendation[];
14
+ summary: string;
15
+ warnings: string[];
16
+ }