@detergent-software/atk 8.7.0-dev.8 → 8.7.0
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.
- package/CHANGELOG.md +106 -0
- package/README.md +44 -12
- package/build/commands/audit.d.ts.map +1 -1
- package/build/commands/audit.js +13 -4
- package/build/commands/audit.js.map +1 -1
- package/build/commands/install.d.ts.map +1 -1
- package/build/commands/install.js +77 -20
- package/build/commands/install.js.map +1 -1
- package/build/commands/schema.d.ts +1 -1
- package/build/commands/sync.js +2 -2
- package/build/commands/sync.js.map +1 -1
- package/build/commands/update.js +2 -2
- package/build/commands/update.js.map +1 -1
- package/build/components/CrossScopeWarning.d.ts +12 -0
- package/build/components/CrossScopeWarning.d.ts.map +1 -0
- package/build/components/CrossScopeWarning.js +13 -0
- package/build/components/CrossScopeWarning.js.map +1 -0
- package/build/components/index.d.ts +1 -0
- package/build/components/index.d.ts.map +1 -1
- package/build/components/index.js +1 -0
- package/build/components/index.js.map +1 -1
- package/build/hooks/useUninstallState.d.ts +11 -8
- package/build/hooks/useUninstallState.d.ts.map +1 -1
- package/build/hooks/useUninstallState.js +42 -11
- package/build/hooks/useUninstallState.js.map +1 -1
- package/build/lib/adapter.d.ts +2 -1
- package/build/lib/adapter.d.ts.map +1 -1
- package/build/lib/adapter.js +17 -13
- package/build/lib/adapter.js.map +1 -1
- package/build/lib/checksum.d.ts.map +1 -1
- package/build/lib/checksum.js +2 -1
- package/build/lib/checksum.js.map +1 -1
- package/build/lib/config-entries.d.ts +15 -2
- package/build/lib/config-entries.d.ts.map +1 -1
- package/build/lib/config-entries.js +20 -0
- package/build/lib/config-entries.js.map +1 -1
- package/build/lib/config-lock.d.ts.map +1 -1
- package/build/lib/config-lock.js +2 -1
- package/build/lib/config-lock.js.map +1 -1
- package/build/lib/cross-scope.d.ts +50 -0
- package/build/lib/cross-scope.d.ts.map +1 -0
- package/build/lib/cross-scope.js +132 -0
- package/build/lib/cross-scope.js.map +1 -0
- package/build/lib/diagnostics.d.ts +13 -0
- package/build/lib/diagnostics.d.ts.map +1 -1
- package/build/lib/diagnostics.js +44 -9
- package/build/lib/diagnostics.js.map +1 -1
- package/build/lib/diff-command.d.ts.map +1 -1
- package/build/lib/diff-command.js +4 -4
- package/build/lib/diff-command.js.map +1 -1
- package/build/lib/init.d.ts.map +1 -1
- package/build/lib/init.js +2 -1
- package/build/lib/init.js.map +1 -1
- package/build/lib/installed-for-tool.d.ts.map +1 -1
- package/build/lib/installed-for-tool.js +2 -2
- package/build/lib/installed-for-tool.js.map +1 -1
- package/build/lib/installer.d.ts.map +1 -1
- package/build/lib/installer.js +49 -39
- package/build/lib/installer.js.map +1 -1
- package/build/lib/mover.d.ts.map +1 -1
- package/build/lib/mover.js +2 -2
- package/build/lib/mover.js.map +1 -1
- package/build/lib/owned-paths.d.ts.map +1 -1
- package/build/lib/owned-paths.js +4 -4
- package/build/lib/owned-paths.js.map +1 -1
- package/build/lib/root-path.d.ts +7 -0
- package/build/lib/root-path.d.ts.map +1 -0
- package/build/lib/root-path.js +10 -0
- package/build/lib/root-path.js.map +1 -0
- package/build/lib/schemas/adapter.d.ts +21 -0
- package/build/lib/schemas/adapter.d.ts.map +1 -1
- package/build/lib/schemas/adapter.js +11 -0
- package/build/lib/schemas/adapter.js.map +1 -1
- package/build/lib/schemas/lockfile.d.ts.map +1 -1
- package/build/lib/schemas/lockfile.js +5 -3
- package/build/lib/schemas/lockfile.js.map +1 -1
- package/build/lib/sync.d.ts.map +1 -1
- package/build/lib/sync.js +19 -7
- package/build/lib/sync.js.map +1 -1
- package/build/lib/tool-resolver.d.ts +9 -0
- package/build/lib/tool-resolver.d.ts.map +1 -1
- package/build/lib/tool-resolver.js +26 -0
- package/build/lib/tool-resolver.js.map +1 -1
- package/build/lib/uninstaller.d.ts +26 -4
- package/build/lib/uninstaller.d.ts.map +1 -1
- package/build/lib/uninstaller.js +65 -21
- package/build/lib/uninstaller.js.map +1 -1
- package/build/lib/updater.d.ts.map +1 -1
- package/build/lib/updater.js +2 -2
- package/build/lib/updater.js.map +1 -1
- package/package.json +1 -1
- package/tool-adapters/claude-code.json +8 -0
- package/tool-adapters/codex-cli.json +5 -0
- package/tool-adapters/copilot-cli.json +9 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,109 @@
|
|
|
1
|
+
## [8.7.0](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.6.1&targetVersion=GTv8.7.0) (2026-10-15)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* **cli:** add Codex and Copilot CLI user placements (ATK-327) ([0b86e3f](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/0b86e3f6269944ff09aa966dba6b5728dc050e07))
|
|
6
|
+
* **cli:** fill in Copilot's required MCP tools list (ATK-327) ([dd3baef](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/dd3baef9dff3f9a93475cc0f5b274870133eea41))
|
|
7
|
+
* **cli:** move an install between the project and user scope (ATK-334) ([62ca125](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/62ca125c40e3170176039335179defc48a64352a))
|
|
8
|
+
* **cli:** name the scope in atk browse output (ATK-475) ([7a939ad](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/7a939ad070870362943a85384f6dabfe2af5ee42))
|
|
9
|
+
* **cli:** name the scope in install, uninstall, update and friends ([40d5307](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/40d5307e228a4745061bce2fede7104332085dac))
|
|
10
|
+
* **cli:** place user-scope assets with per-scope adapter placements ([44d8990](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/44d89907b5aad63aa2483962fd29c4a08e37fbc2))
|
|
11
|
+
* **cli:** show user installs beside the project in list and outdated ([7d6af83](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/7d6af8355f94824387440466d4736699373c9274))
|
|
12
|
+
* **cli:** warn when an asset is already installed at the other scope ([340136e](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/340136ef832353e7bbdf19a11d958124fc24695c))
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* **cli:** base the cross-scope warning on what was installed ([99e12bb](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/99e12bbcb21ddd72d978349a69da38670bda27ba))
|
|
17
|
+
* **cli:** carry the user scope in fix-it hints and doctor ([5bda3f5](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/5bda3f58f866c099cb072ff50ff5ceaacfa59600))
|
|
18
|
+
* **cli:** create a new .claude.json private to its owner ([ad94489](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/ad944893acd45e58ec5eada111688ad6848373a3))
|
|
19
|
+
* **cli:** give Copilot user MCP stdio servers an empty args list (ATK-486) ([bd40014](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/bd4001458d11b4a0530e8212ae87e953b46abf88))
|
|
20
|
+
* **cli:** give doctor's hook-script check the scope root ([5b5dbd3](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/5b5dbd3dc3c4bbca55fed4d3a6f887ad356fb160))
|
|
21
|
+
* **cli:** give live sync the install hint for an empty lockfile ([216eb1b](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/216eb1b4399c45ad36a2ba164f1a0ca6bcfa2e02))
|
|
22
|
+
* **cli:** harden the .claude.json write and pass the scope from list ([d665ea3](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/d665ea31af4c54bb8707412252a2892a25b59cf1))
|
|
23
|
+
* **cli:** keep a moved MCP entry when the new file fails to merge (ATK-410) ([72044cd](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/72044cd6c16b92a7f9c1e45b12b764ae7610cf92))
|
|
24
|
+
* **cli:** keep a stale-command hook installed for rollback (ATK-501) ([aabcfa0](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/aabcfa0ca8101d160f32b1bda5fa987000ce5379))
|
|
25
|
+
* **cli:** keep a TOML config that only comments remain in ([9f27841](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/9f278410e1c9d2139d3baa4305189665d9959172))
|
|
26
|
+
* **cli:** keep config entries and tool names the user owns (ATK-487) ([39f59ec](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/39f59ec9102a7fb15f6a481e2ee5f3ac1275388d))
|
|
27
|
+
* **cli:** keep every tool's copy of an asset tracked (ATK-487) ([12d60f0](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/12d60f05bf7c9f8ea8dd49d796b3ac18ca4b828b))
|
|
28
|
+
* **cli:** keep list --json config-free and name the scope in prompts ([1667de1](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/1667de13d6c1ec0f785df42c000f2912a152a8e9))
|
|
29
|
+
* **cli:** keep the list cursor on its row after a two-scope refresh ([cd768ae](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/cd768ae3717705cda95509e3267fb6dcd351f0ee))
|
|
30
|
+
* **cli:** keep the user's comments when merging into a TOML config ([1cc1e1d](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/1cc1e1da8088c0af9c24414a27647b5ad0bbf985))
|
|
31
|
+
* **cli:** match browse's install line to its prompt (ATK-475) ([ebc1ee1](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/ebc1ee1218383069e4ac7561451cb75f0d04d967))
|
|
32
|
+
* **cli:** move a user-scope copy only when its placement moved (ATK-483) ([470554b](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/470554ba6186f2c9253c73097eacb7be54f3d825))
|
|
33
|
+
* **cli:** name atk setup --user in the remaining setup hints ([8dca428](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/8dca4280114a25dca20d362f5bcad3b458dc1f3d))
|
|
34
|
+
* **cli:** name no clash rule when the other scope has no tools ([755bd40](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/755bd40e7c46eabc8dc12f4bdae48a57fc7adaa4))
|
|
35
|
+
* **cli:** name the scope in the uninstall and prune prompts ([3f5570c](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/3f5570cddd2f9a35a13b7e23ad70aa449aacd41e))
|
|
36
|
+
* **cli:** name the scope when sync finds nothing installed ([825ac8b](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/825ac8b4d0f36b2112f0d8782e1b735d1f33ba9f))
|
|
37
|
+
* **cli:** name the variable's own value in the other-drive error (ATK-482) ([5a261bc](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/5a261bcc5bf1562cc91921ec3b666eb85ae3180c))
|
|
38
|
+
* **cli:** pass the scope from browse installs to the pin refusals ([87b66fb](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/87b66fb3a5e9081dc5a6772492fee1ca17c7c63e))
|
|
39
|
+
* **cli:** place Claude Code user assets in CLAUDE_CONFIG_DIR (ATK-470) ([ccf4890](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/ccf4890c191f47f481ecdd2d360eb9bbd0a34e4f))
|
|
40
|
+
* **cli:** place Codex and Copilot user assets in CODEX_HOME and XDG_CONFIG_HOME (ATK-482) ([ccd2b0a](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/ccd2b0a16c1df3695dafa50e122e122baf0f8bbd))
|
|
41
|
+
* **cli:** place Copilot MCP servers in .vscode/mcp.json (ATK-410) ([a2d981b](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/a2d981b5d91e03f2ad17d8aaecbae100839740d6))
|
|
42
|
+
* **cli:** place user assets in a config dir on another drive ([bbd61b7](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/bbd61b742582e61e6584fab4feff7b3713a40c2d))
|
|
43
|
+
* **cli:** plan the move under its locks and roll back per tool (ATK-334) ([e815fa9](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/e815fa9e61f27bac0cc25d4bcdca6d59f8e0f1e2))
|
|
44
|
+
* **cli:** re-place a hook placed with another scope's command (ATK-501) ([ef6f8d7](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/ef6f8d7a51be9349daf27d0309602d9cb5792ade))
|
|
45
|
+
* **cli:** read init's setup command only when a fork fails ([d7d20e6](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/d7d20e6efb0de164382f91399f69fc179387d7a1))
|
|
46
|
+
* **cli:** read VS Code-shaped MCP assets at Copilot's user scope (ATK-327) ([40cdca0](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/40cdca0b1f4fd3907863a1a5deac29838d9b1dc7))
|
|
47
|
+
* **cli:** refuse a network share config dir and fold drive case ([a6b8056](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/a6b8056ea00c2f7a2b1d9f2440bba954930a75d2))
|
|
48
|
+
* **cli:** refuse a relative CLAUDE_CONFIG_DIR (ATK-470) ([60c67dd](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/60c67ddc9b33becd1f83c8230dcff52982e702c4))
|
|
49
|
+
* **cli:** remove a moved user-scope copy only once the plan is in (ATK-483) ([7b533ea](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/7b533ea32feb8fc2e1e5581b8e97e6dd09accd25))
|
|
50
|
+
* **cli:** remove only ATK's files for the other tools an uninstall finds ([5a3b3ed](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/5a3b3eddc7e1b249da28ca8c068f153069ea5208))
|
|
51
|
+
* **cli:** remove user-scope copies where they were placed (ATK-483) ([5711cf8](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/5711cf81dc8416cf3e64909d0aa56de847e7b681))
|
|
52
|
+
|
|
53
|
+
### Refactoring
|
|
54
|
+
|
|
55
|
+
* **cli:** build the stdio entry defaults once per merge (ATK-486) ([b3178a3](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/b3178a37f060283ea109a63e5e202748e98d6f57))
|
|
56
|
+
|
|
57
|
+
### Documentation
|
|
58
|
+
|
|
59
|
+
* **cli:** document user-level installs in the README (ATK-332) ([ec7ccd6](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/ec7ccd640d630b29cb8b9cabafc388c528ce56fc))
|
|
60
|
+
* **cli:** say what sync does with moved config entries (ATK-410) ([eeb9855](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/eeb98558c746b264fc0ca0028e3c69667a6fe452))
|
|
61
|
+
|
|
62
|
+
## [8.7.0-dev.13](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.7.0-dev.12&targetVersion=GTv8.7.0-dev.13) (2026-10-15)
|
|
63
|
+
|
|
64
|
+
### Bug Fixes
|
|
65
|
+
|
|
66
|
+
* **cli:** give live sync the install hint for an empty lockfile ([216eb1b](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/216eb1b4399c45ad36a2ba164f1a0ca6bcfa2e02))
|
|
67
|
+
* **cli:** keep a stale-command hook installed for rollback (ATK-501) ([aabcfa0](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/aabcfa0ca8101d160f32b1bda5fa987000ce5379))
|
|
68
|
+
* **cli:** re-place a hook placed with another scope's command (ATK-501) ([ef6f8d7](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/ef6f8d7a51be9349daf27d0309602d9cb5792ade))
|
|
69
|
+
|
|
70
|
+
## [8.7.0-dev.12](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.7.0-dev.11&targetVersion=GTv8.7.0-dev.12) (2026-10-15)
|
|
71
|
+
|
|
72
|
+
### Documentation
|
|
73
|
+
|
|
74
|
+
* **cli:** document user-level installs in the README (ATK-332) ([ec7ccd6](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/ec7ccd640d630b29cb8b9cabafc388c528ce56fc))
|
|
75
|
+
|
|
76
|
+
## [8.7.0-dev.11](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.7.0-dev.10&targetVersion=GTv8.7.0-dev.11) (2026-10-15)
|
|
77
|
+
|
|
78
|
+
### Bug Fixes
|
|
79
|
+
|
|
80
|
+
* **cli:** keep config entries and tool names the user owns (ATK-487) ([39f59ec](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/39f59ec9102a7fb15f6a481e2ee5f3ac1275388d))
|
|
81
|
+
* **cli:** keep every tool's copy of an asset tracked (ATK-487) ([12d60f0](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/12d60f05bf7c9f8ea8dd49d796b3ac18ca4b828b))
|
|
82
|
+
* **cli:** remove only ATK's files for the other tools an uninstall finds ([5a3b3ed](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/5a3b3eddc7e1b249da28ca8c068f153069ea5208))
|
|
83
|
+
|
|
84
|
+
## [8.7.0-dev.10](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.7.0-dev.9&targetVersion=GTv8.7.0-dev.10) (2026-10-15)
|
|
85
|
+
|
|
86
|
+
### Bug Fixes
|
|
87
|
+
|
|
88
|
+
* **cli:** place user assets in a config dir on another drive ([bbd61b7](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/bbd61b742582e61e6584fab4feff7b3713a40c2d))
|
|
89
|
+
* **cli:** refuse a network share config dir and fold drive case ([a6b8056](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/a6b8056ea00c2f7a2b1d9f2440bba954930a75d2))
|
|
90
|
+
|
|
91
|
+
## [8.7.0-dev.9](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.7.0-dev.8&targetVersion=GTv8.7.0-dev.9) (2026-10-15)
|
|
92
|
+
|
|
93
|
+
### Features
|
|
94
|
+
|
|
95
|
+
* **cli:** warn when an asset is already installed at the other scope ([340136e](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/340136ef832353e7bbdf19a11d958124fc24695c))
|
|
96
|
+
|
|
97
|
+
### Bug Fixes
|
|
98
|
+
|
|
99
|
+
* **cli:** base the cross-scope warning on what was installed ([99e12bb](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/99e12bbcb21ddd72d978349a69da38670bda27ba))
|
|
100
|
+
* **cli:** give Copilot user MCP stdio servers an empty args list (ATK-486) ([bd40014](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/bd4001458d11b4a0530e8212ae87e953b46abf88))
|
|
101
|
+
* **cli:** name no clash rule when the other scope has no tools ([755bd40](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/755bd40e7c46eabc8dc12f4bdae48a57fc7adaa4))
|
|
102
|
+
|
|
103
|
+
### Refactoring
|
|
104
|
+
|
|
105
|
+
* **cli:** build the stdio entry defaults once per merge (ATK-486) ([b3178a3](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/b3178a37f060283ea109a63e5e202748e98d6f57))
|
|
106
|
+
|
|
1
107
|
## [8.7.0-dev.8](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.7.0-dev.7&targetVersion=GTv8.7.0-dev.8) (2026-10-15)
|
|
2
108
|
|
|
3
109
|
### Bug Fixes
|
package/README.md
CHANGED
|
@@ -79,6 +79,7 @@ atk update
|
|
|
79
79
|
| `atk list` | List all installed assets |
|
|
80
80
|
| `atk login` | Sign in with your Emergent (Microsoft Entra) account |
|
|
81
81
|
| `atk logout` | Sign out of your Emergent account |
|
|
82
|
+
| `atk move <asset>` | Move an installed asset between the project and the user scope |
|
|
82
83
|
| `atk outdated` | Show assets with available updates |
|
|
83
84
|
| `atk pin <asset>` | Pin an asset to its current version |
|
|
84
85
|
| `atk promote <name>` | Promote an org-scoped asset or bundle to global via PR |
|
|
@@ -257,6 +258,35 @@ This lets teams override global assets with org-specific versions while still in
|
|
|
257
258
|
|
|
258
259
|
There is no separate "create org" step. Publishing the first asset with an `org` value creates the namespace automatically. Org assets are stored under `assets/<type>s/@<org>/<name>/` in the registry.
|
|
259
260
|
|
|
261
|
+
## User Scope
|
|
262
|
+
|
|
263
|
+
Assets you want in every project, such as a skill you always use, go in your **user scope** instead of a project. Add `--user` to a command to work there from any directory:
|
|
264
|
+
|
|
265
|
+
```bash
|
|
266
|
+
# Once: pick the tools for your user scope
|
|
267
|
+
atk setup --user
|
|
268
|
+
|
|
269
|
+
# Install for yourself (~/.claude/skills/my-skill/ for Claude Code)
|
|
270
|
+
atk install my-skill --user
|
|
271
|
+
|
|
272
|
+
# Your user installs, and their updates
|
|
273
|
+
atk list --user
|
|
274
|
+
atk outdated --user
|
|
275
|
+
atk update --user
|
|
276
|
+
|
|
277
|
+
# Move a project install to your user scope, or back
|
|
278
|
+
atk move my-skill --to user
|
|
279
|
+
atk move my-skill --to project
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
- The user scope has its own lockfile, `~/.atk-lock.json`, and keeps its tools in the `user` section of `~/.atkrc.json`. Each tool's assets go in its own user directory (`~/.claude/`, `~/.codex/`, `~/.copilot/`), which follows `CLAUDE_CONFIG_DIR`, `CODEX_HOME` and `XDG_CONFIG_HOME` when they are set.
|
|
283
|
+
- **Read both, write one.** In a project, `atk list` and `atk outdated` show your user installs beside the project's, each with its scope (`--project` hides them). Commands that change installs touch one scope: a project `atk update` never changes your user installs. `atk install` warns when the other scope already has the asset, and says which copy each tool uses.
|
|
284
|
+
- **The user root** is your home directory unless the `userRoot` config key or the `ATK_USER_ROOT` environment variable says otherwise. A command run in the user root works in the user scope even without `--user`.
|
|
285
|
+
- **A new machine:** commit `~/.atk-lock.json` to your dotfiles, then run `atk setup --user` and `atk sync --user`; or publish a personal bundle and run `atk install <bundle> --user`.
|
|
286
|
+
- An existing home-directory install (`atk setup` run in `~` before CLI 8.6.0) is adopted by the first `atk setup --user`.
|
|
287
|
+
|
|
288
|
+
`--user` arrived in CLI 8.6.0; user-level placements, the both-scope views, the cross-scope warning and `atk move` in 8.7.0. The full reference is the `atk-guide` skill's `references/user-scope.md` (`atk install atk-guide`).
|
|
289
|
+
|
|
260
290
|
## Configuration
|
|
261
291
|
|
|
262
292
|
Manage user-level settings stored in `~/.atkrc.json`:
|
|
@@ -277,21 +307,23 @@ atk config org --reset
|
|
|
277
307
|
|
|
278
308
|
### Available Keys
|
|
279
309
|
|
|
280
|
-
| Key | Default | Description
|
|
281
|
-
| ----------------- | ----------------------------------------- |
|
|
282
|
-
| `apiUrl` | `https://func-atk-prod.azurewebsites.net` | ATK API base URL. The `ATK_API_URL` environment variable overrides it (e.g. to point at dev).
|
|
283
|
-
| `cacheDir` | `~/.atk/cache/` | Override cache directory
|
|
284
|
-
| `cacheTtlMinutes` | `5` | Cache TTL in minutes for registry data
|
|
285
|
-
| `checkUpdates` | `true` | Show a banner when a newer ATK version is available (in `--json` output, an `update-available` entry in `notices`)
|
|
286
|
-
| `org` | _(not set)_ | Default organization scope for asset resolution
|
|
310
|
+
| Key | Default | Description |
|
|
311
|
+
| ----------------- | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
|
312
|
+
| `apiUrl` | `https://func-atk-prod.azurewebsites.net` | ATK API base URL. The `ATK_API_URL` environment variable overrides it (e.g. to point at dev). |
|
|
313
|
+
| `cacheDir` | `~/.atk/cache/` | Override cache directory |
|
|
314
|
+
| `cacheTtlMinutes` | `5` | Cache TTL in minutes for registry data |
|
|
315
|
+
| `checkUpdates` | `true` | Show a banner when a newer ATK version is available (in `--json` output, an `update-available` entry in `notices`) |
|
|
316
|
+
| `org` | _(not set)_ | Default organization scope for asset resolution |
|
|
317
|
+
| `userRoot` | _(home directory)_ | Root of the user scope (`--user`). A relative or `~/` path is under the home directory. `ATK_USER_ROOT` overrides it. |
|
|
287
318
|
|
|
288
319
|
### Environment Variables
|
|
289
320
|
|
|
290
|
-
| Variable
|
|
291
|
-
|
|
|
292
|
-
| `ATK_API_URL`
|
|
293
|
-
| `ATK_WEB_URL`
|
|
294
|
-
| `ATK_TOKEN`
|
|
321
|
+
| Variable | Description |
|
|
322
|
+
| --------------- | ------------------------------------------------------------------------------------------------------ |
|
|
323
|
+
| `ATK_API_URL` | Overrides `apiUrl` (e.g. `https://func-atk-dev.azurewebsites.net` to target the dev API). |
|
|
324
|
+
| `ATK_WEB_URL` | Overrides the ATK web app base URL used for the `Web:` links in `info`, `browse`, `list` and `search`. |
|
|
325
|
+
| `ATK_TOKEN` | A raw Entra access token for the ATK API, for CI and agents. Wins over the `atk login` session. |
|
|
326
|
+
| `ATK_USER_ROOT` | Overrides `userRoot`: the root of the user scope, where `--user` puts its lockfile and placements. |
|
|
295
327
|
|
|
296
328
|
## Development
|
|
297
329
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/commands/audit.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/commands/audit.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0BxB,eAAO,MAAM,WAAW,mDAAmD,CAAC;AAE5E,eAAO,MAAM,OAAO;;;;;iBAoClB,CAAC;AAuCH,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAOF,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,2CA2UlF"}
|
package/build/commands/audit.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Box, Text } from 'ink';
|
|
3
3
|
import { existsSync } from 'node:fs';
|
|
4
|
-
import { join } from 'node:path';
|
|
5
4
|
import { option } from 'pastel';
|
|
6
5
|
import { z } from 'zod';
|
|
7
6
|
import { ErrorView, FileStatusIcon, Spinner } from '../components/index.js';
|
|
8
7
|
import { useCommand } from '../hooks/useCommand.js';
|
|
9
8
|
import { adapterAsPlaced, configDirMove, resolveInstalledPaths, userConfigDirPath } from '../lib/adapter.js';
|
|
10
9
|
import { declarationAllows, isExcludedAtVersion } from '../lib/asset-tools.js';
|
|
11
|
-
import { getConfigEntriesForTool, needsConfigRegistration, normalizeConfigPath } from '../lib/config-entries.js';
|
|
10
|
+
import { getConfigEntriesForTool, needsConfigRegistration, normalizeConfigPath, staleHookCommandEntries, } from '../lib/config-entries.js';
|
|
12
11
|
import { isFrozenInConfig } from '../lib/config.js';
|
|
13
12
|
import { identityKey, readLockfile } from '../lib/lockfile.js';
|
|
14
13
|
import { formatOrgName } from '../lib/org.js';
|
|
15
14
|
import { renderJson, useNonInteractive } from '../lib/output.js';
|
|
16
15
|
import { verifyOwnConfigEntries, verifyOwnFiles } from '../lib/owned-paths.js';
|
|
17
16
|
import { fetchRegistry, versionTools } from '../lib/registry.js';
|
|
17
|
+
import { fromRoot } from '../lib/root-path.js';
|
|
18
18
|
import { loadScopeConfig, resolveScope, scopedCommand } from '../lib/scope.js';
|
|
19
19
|
import { resolveTools } from '../lib/tool-resolver.js';
|
|
20
20
|
export const description = 'Verify asset integrity via checksum validation';
|
|
@@ -87,7 +87,7 @@ export default function Audit({ options: { json, projectRoot, tool, user } }) {
|
|
|
87
87
|
const lockedTools = registry && asset.type === 'hook' ? versionTools(registry, asset, asset.version) : null;
|
|
88
88
|
if (isExcludedAtVersion(asset, toolName, lockedTools) ||
|
|
89
89
|
!declarationAllows(asset.type, lockedTools ?? undefined, toolName)) {
|
|
90
|
-
const stillOnDisk = resolvedPaths.files.some((f) => existsSync(
|
|
90
|
+
const stillOnDisk = resolvedPaths.files.some((f) => existsSync(fromRoot(projectDir, f.installedPath)));
|
|
91
91
|
entries.push({
|
|
92
92
|
asset,
|
|
93
93
|
configFailures: [],
|
|
@@ -99,7 +99,7 @@ export default function Audit({ options: { json, projectRoot, tool, user } }) {
|
|
|
99
99
|
}
|
|
100
100
|
const filesToCheck = resolvedPaths.files.map((f) => ({
|
|
101
101
|
checksum: f.checksum,
|
|
102
|
-
path:
|
|
102
|
+
path: fromRoot(projectDir, f.installedPath),
|
|
103
103
|
}));
|
|
104
104
|
// A file holding the content of another asset that places it is not drift.
|
|
105
105
|
const failures = await verifyOwnFiles(filesToCheck, asset, lockfile, placedAdapter, projectDir);
|
|
@@ -137,6 +137,15 @@ export default function Audit({ options: { json, projectRoot, tool, user } }) {
|
|
|
137
137
|
reason: 'CONFIG_KEY_NOT_FOUND',
|
|
138
138
|
});
|
|
139
139
|
}
|
|
140
|
+
// A hook placed with another scope's rules: the group under each of these keys runs another
|
|
141
|
+
// command, so the one the placement registers isn't there (`atk sync` places it).
|
|
142
|
+
for (const stale of staleHookCommandEntries(asset, toolAdapter)) {
|
|
143
|
+
configFailures.push({
|
|
144
|
+
file: normalizeConfigPath(stale.file),
|
|
145
|
+
key: stale.key,
|
|
146
|
+
reason: 'CONFIG_KEY_NOT_FOUND',
|
|
147
|
+
});
|
|
148
|
+
}
|
|
140
149
|
// Determine overall asset status with priority:
|
|
141
150
|
// modified > config-modified > missing > config-missing > ok
|
|
142
151
|
let assetStatus = 'ok';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/commands/audit.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/commands/audit.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgDxB,eAAO,MAAM,WAAW,6DAA6D,CAAC;AAEtF,eAAO,MAAM,OAAO;;;;;;;;;;;;iBAoGlB,CAAC;AAEH,eAAO,MAAM,IAAI,gDAEf,CAAC;AAgDH,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAMF,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC9B,IAAI,EAAE,CAAC,OAAO,CAAC,EACf,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GACvF,EAAE,KAAK,2CAqCP"}
|
|
@@ -3,22 +3,24 @@ import { Box, Text, useApp, useStdin } from 'ink';
|
|
|
3
3
|
import { option } from 'pastel';
|
|
4
4
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
5
5
|
import { z } from 'zod';
|
|
6
|
-
import { DryRunBanner, ErrorView, InstallSummary, MultiSelectList, Spinner } from '../components/index.js';
|
|
6
|
+
import { CrossScopeWarning, DryRunBanner, ErrorView, InstallSummary, MultiSelectList, Spinner, } from '../components/index.js';
|
|
7
7
|
import { useCommand } from '../hooks/useCommand.js';
|
|
8
8
|
import { useResolvedScope } from '../hooks/useResolvedScope.js';
|
|
9
9
|
import { placesAsset } from '../lib/asset-tools.js';
|
|
10
10
|
import { resolveBundleVersion } from '../lib/bundle-version.js';
|
|
11
11
|
import { loadConfig } from '../lib/config.js';
|
|
12
|
+
import { crossScopeNotice, findCrossScopeInstalls } from '../lib/cross-scope.js';
|
|
12
13
|
import { errorGuidance, errorMessage } from '../lib/errors.js';
|
|
13
14
|
import { isInstalledForTool } from '../lib/installed-for-tool.js';
|
|
14
15
|
import { findInstalledAsset, identityKey, readLockfile, upgradeToDirectInstall, withLockfileErrorHandling, writeLockfile, } from '../lib/lockfile.js';
|
|
15
16
|
import { executeInstallPlanForTools, withoutKeptDependencies } from '../lib/multi-tool-install.js';
|
|
17
|
+
import { addNotice } from '../lib/notices.js';
|
|
16
18
|
import { formatOrgName, isBareOrgScope, parseBundleSpec, resolveActiveOrg } from '../lib/org.js';
|
|
17
19
|
import { renderJson, useNonInteractive } from '../lib/output.js';
|
|
18
20
|
import { fetchRegistry, findAsset, findBundle, getAssetsByOrg, isDeprecated, isLatestAlias } from '../lib/registry.js';
|
|
19
21
|
import { resolveBundleInstallPlan, resolveInstallPlan, resolveMultipleInstallPlans, } from '../lib/resolver.js';
|
|
20
22
|
import { scopeLabel } from '../lib/scope.js';
|
|
21
|
-
import {
|
|
23
|
+
import { resolvePlacingTools } from '../lib/tool-resolver.js';
|
|
22
24
|
import { parseNameVersion } from '../lib/version.js';
|
|
23
25
|
import Sync from './sync.js';
|
|
24
26
|
export const description = 'Install an asset or bundle (no args syncs from lockfile)';
|
|
@@ -130,6 +132,32 @@ async function bundleAtRequestedVersion(entry, requested, progress) {
|
|
|
130
132
|
}
|
|
131
133
|
return resolution.bundle;
|
|
132
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* The plan's assets (the asset, a bundle's members, their dependencies) that the other scope already
|
|
137
|
+
* has, as the outcome's `crossScope`. A dry run passes the whole resolved plan, so it warns about the
|
|
138
|
+
* same assets the install will. After an install, `installedAt` is the scope's root: the entries are
|
|
139
|
+
* read back from its lockfile, so an asset that failed or went to no tool is left out, and the tools
|
|
140
|
+
* it was skipped for (`excludedTools`) get no rule. In JSON mode it also records the `cross-scope`
|
|
141
|
+
* notice; a TTY run shows `CrossScopeWarning` under its summary instead. It never fails the install.
|
|
142
|
+
*/
|
|
143
|
+
async function crossScopeOf(plan, { installedAt, json, scope, tools }) {
|
|
144
|
+
try {
|
|
145
|
+
let assets = plan.entries.map((entry) => entry.asset);
|
|
146
|
+
if (installedAt !== undefined) {
|
|
147
|
+
const byKey = new Map(((await readLockfile(installedAt)).assets ?? []).map((a) => [identityKey(a), a]));
|
|
148
|
+
assets = assets.flatMap((asset) => byKey.get(identityKey(asset)) ?? []);
|
|
149
|
+
}
|
|
150
|
+
const [first, ...rest] = await findCrossScopeInstalls(assets, { scope, tools });
|
|
151
|
+
if (!first)
|
|
152
|
+
return {};
|
|
153
|
+
if (json)
|
|
154
|
+
addNotice(crossScopeNotice([first, ...rest]));
|
|
155
|
+
return { crossScope: [first, ...rest] };
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
return {};
|
|
159
|
+
}
|
|
160
|
+
}
|
|
133
161
|
function InstallAsset({ dryRun, force, json, org: cliOrg, pin, projectRoot, rawName, tool, user, }) {
|
|
134
162
|
const { json: effectiveJson } = useNonInteractive(json);
|
|
135
163
|
const { name: parsedName, version: requestedVersion } = parseNameVersion(rawName);
|
|
@@ -143,7 +171,7 @@ function InstallAsset({ dryRun, force, json, org: cliOrg, pin, projectRoot, rawN
|
|
|
143
171
|
const { root: projectDir, scope: installScope } = await resolve();
|
|
144
172
|
progress('Loading configuration...');
|
|
145
173
|
const config = await loadConfig();
|
|
146
|
-
const tools = await
|
|
174
|
+
const tools = await resolvePlacingTools(tool, projectDir);
|
|
147
175
|
const toolNames = tools.map((t) => t.tool);
|
|
148
176
|
progress('Fetching registry...');
|
|
149
177
|
const registry = await fetchRegistry({ force: true });
|
|
@@ -152,6 +180,7 @@ function InstallAsset({ dryRun, force, json, org: cliOrg, pin, projectRoot, rawN
|
|
|
152
180
|
// Resolve active org: inline @org/name takes priority over --org flag
|
|
153
181
|
const org = resolveActiveOrg(inlineOrg ?? cliOrg, currentLockfile.org, config.org);
|
|
154
182
|
const effectiveVersion = requestedVersion;
|
|
183
|
+
const crossScope = (plan, installedAt) => crossScopeOf(plan, { installedAt, json: effectiveJson, scope: installScope, tools: toolNames });
|
|
155
184
|
// Check if the name matches a bundle. Bundle identity is (name, org) with
|
|
156
185
|
// exact matching — an @org/name spec never falls back to a global bundle
|
|
157
186
|
// and a bare name never resolves to an org-scoped one.
|
|
@@ -200,19 +229,25 @@ function InstallAsset({ dryRun, force, json, org: cliOrg, pin, projectRoot, rawN
|
|
|
200
229
|
});
|
|
201
230
|
if (bundle) {
|
|
202
231
|
progress('Resolving bundle assets...');
|
|
203
|
-
const
|
|
232
|
+
const resolved = resolveBundleInstallPlan(registry, bundle);
|
|
204
233
|
return {
|
|
205
234
|
bundleName: bundle.name,
|
|
206
235
|
outcome: 'dry-run-bundle',
|
|
207
|
-
plan,
|
|
236
|
+
plan: asInstalled(resolved),
|
|
208
237
|
tools: toolNames,
|
|
209
238
|
version: bundle.version,
|
|
239
|
+
...(await crossScope(resolved)),
|
|
210
240
|
};
|
|
211
241
|
}
|
|
212
242
|
const versionLabel = effectiveVersion ? `@${effectiveVersion}` : '';
|
|
213
243
|
progress(`Resolving dependencies${versionLabel}...`);
|
|
214
|
-
const
|
|
215
|
-
return {
|
|
244
|
+
const resolved = resolveInstallPlan(registry, name, undefined, effectiveVersion, org);
|
|
245
|
+
return {
|
|
246
|
+
outcome: 'dry-run-install',
|
|
247
|
+
plan: asInstalled(resolved),
|
|
248
|
+
tools: toolNames,
|
|
249
|
+
...(await crossScope(resolved)),
|
|
250
|
+
};
|
|
216
251
|
}
|
|
217
252
|
return await withLockfileErrorHandling(projectDir, async () => {
|
|
218
253
|
if (bundle) {
|
|
@@ -269,7 +304,13 @@ function InstallAsset({ dryRun, force, json, org: cliOrg, pin, projectRoot, rawN
|
|
|
269
304
|
projectDir: projectDir,
|
|
270
305
|
scope: installScope,
|
|
271
306
|
});
|
|
272
|
-
return {
|
|
307
|
+
return {
|
|
308
|
+
bundleName: bundle.name,
|
|
309
|
+
outcome: 'bundle-installed',
|
|
310
|
+
toolResults,
|
|
311
|
+
version: bundle.version,
|
|
312
|
+
...(await crossScope(plan, projectDir)),
|
|
313
|
+
};
|
|
273
314
|
}
|
|
274
315
|
// Single asset installation flow
|
|
275
316
|
if (!force) {
|
|
@@ -318,7 +359,7 @@ function InstallAsset({ dryRun, force, json, org: cliOrg, pin, projectRoot, rawN
|
|
|
318
359
|
projectDir: projectDir,
|
|
319
360
|
scope: installScope,
|
|
320
361
|
});
|
|
321
|
-
return { outcome: 'installed', toolResults };
|
|
362
|
+
return { outcome: 'installed', toolResults, ...(await crossScope(plan, projectDir)) };
|
|
322
363
|
});
|
|
323
364
|
}, [cliOrg, dryRun, force, inlineOrg, name, pin, requestedVersion, tool]);
|
|
324
365
|
if (state.status === 'loading') {
|
|
@@ -347,7 +388,7 @@ function InstallAsset({ dryRun, force, json, org: cliOrg, pin, projectRoot, rawN
|
|
|
347
388
|
return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { children: [_jsx(Text, { color: 'yellow', children: "!" }), " Bundle ", _jsx(Text, { bold: true, children: data.bundleName }), " is already fully installed (v", data.version, ")", where, "."] }), _jsx(Text, { dimColor: true, children: "Use --force to reinstall." })] }));
|
|
348
389
|
}
|
|
349
390
|
if (data.outcome === 'bundle-installed') {
|
|
350
|
-
return (
|
|
391
|
+
return (_jsxs(Box, { flexDirection: 'column', children: [data.toolResults.map(({ results, skipped, tool: toolName, warnings }) => (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { color: 'green', children: ["\u2713 Bundle ", _jsx(Text, { bold: true, children: data.bundleName }), " v", data.version, " \u2014 ", results.length, " asset", results.length !== 1 ? 's' : ''] }), _jsx(InstallSummary, { results: results, skipped: skipped, tools: [toolName], warnings: warnings, where: label })] }, toolName))), _jsx(CrossScopeWarning, { installs: data.crossScope ?? [] })] }));
|
|
351
392
|
}
|
|
352
393
|
if (data.outcome === 'already-installed') {
|
|
353
394
|
return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { children: [_jsx(Text, { color: 'yellow', children: "!" }), " ", _jsx(Text, { bold: true, children: data.name }), " is already installed (v", data.version, ")", where, "."] }), _jsx(Text, { dimColor: true, children: "Use --force to reinstall." })] }));
|
|
@@ -356,15 +397,15 @@ function InstallAsset({ dryRun, force, json, org: cliOrg, pin, projectRoot, rawN
|
|
|
356
397
|
return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { color: 'green', children: ["\u2713 ", _jsx(Text, { bold: true, children: data.name }), " (v", data.version, ") is now a direct install", where, "."] }), _jsx(Text, { dimColor: true, children: "It will no longer be auto-removed when its parent is uninstalled." })] }));
|
|
357
398
|
}
|
|
358
399
|
if (data.outcome === 'dry-run-install') {
|
|
359
|
-
return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(DryRunBanner, { action: 'install', count: data.plan.totalCount, tools: data.tools, where: label }), _jsx(Text, { children: " " }), data.plan.entries.map((entry) => (_jsxs(Text, { children: [' ', entry.reason === 'dependency' ? (_jsxs(Text, { color: 'cyan', children: [formatOrgName(entry.asset.org, entry.asset.name), ' ', _jsxs(Text, { dimColor: true, children: ["(", entry.asset.type, ") v", entry.version, " \u2014 dependency"] })] })) : (_jsxs(Text, { children: [_jsx(Text, { bold: true, children: formatOrgName(entry.asset.org, entry.asset.name) }), _jsxs(Text, { dimColor: true, children: [' ', "(", entry.asset.type, ") v", entry.version] })] }))] }, identityKey(entry.asset))))] }));
|
|
400
|
+
return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(DryRunBanner, { action: 'install', count: data.plan.totalCount, tools: data.tools, where: label }), _jsx(Text, { children: " " }), data.plan.entries.map((entry) => (_jsxs(Text, { children: [' ', entry.reason === 'dependency' ? (_jsxs(Text, { color: 'cyan', children: [formatOrgName(entry.asset.org, entry.asset.name), ' ', _jsxs(Text, { dimColor: true, children: ["(", entry.asset.type, ") v", entry.version, " \u2014 dependency"] })] })) : (_jsxs(Text, { children: [_jsx(Text, { bold: true, children: formatOrgName(entry.asset.org, entry.asset.name) }), _jsxs(Text, { dimColor: true, children: [' ', "(", entry.asset.type, ") v", entry.version] })] }))] }, identityKey(entry.asset)))), _jsx(CrossScopeWarning, { installs: data.crossScope ?? [] })] }));
|
|
360
401
|
}
|
|
361
402
|
if (data.outcome === 'dry-run-bundle') {
|
|
362
|
-
return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(DryRunBanner, { action: 'install', count: data.plan.totalCount, tools: data.tools, where: label }), _jsx(Text, { children: " " }), _jsxs(Text, { children: [_jsxs(Text, { bold: true, color: 'magenta', children: ["Bundle: ", data.bundleName] }), _jsxs(Text, { dimColor: true, children: [" v", data.version] })] }), _jsx(Text, { children: " " }), data.plan.entries.map((entry) => (_jsxs(Text, { children: [' ', entry.reason === 'dependency' ? (_jsxs(Text, { color: 'cyan', children: [formatOrgName(entry.asset.org, entry.asset.name), ' ', _jsxs(Text, { dimColor: true, children: ["(", entry.asset.type, ") v", entry.version, " \u2014 dependency"] })] })) : (_jsxs(Text, { children: [_jsx(Text, { bold: true, children: formatOrgName(entry.asset.org, entry.asset.name) }), _jsxs(Text, { dimColor: true, children: [' ', "(", entry.asset.type, ") v", entry.version] })] }))] }, identityKey(entry.asset))))] }));
|
|
403
|
+
return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(DryRunBanner, { action: 'install', count: data.plan.totalCount, tools: data.tools, where: label }), _jsx(Text, { children: " " }), _jsxs(Text, { children: [_jsxs(Text, { bold: true, color: 'magenta', children: ["Bundle: ", data.bundleName] }), _jsxs(Text, { dimColor: true, children: [" v", data.version] })] }), _jsx(Text, { children: " " }), data.plan.entries.map((entry) => (_jsxs(Text, { children: [' ', entry.reason === 'dependency' ? (_jsxs(Text, { color: 'cyan', children: [formatOrgName(entry.asset.org, entry.asset.name), ' ', _jsxs(Text, { dimColor: true, children: ["(", entry.asset.type, ") v", entry.version, " \u2014 dependency"] })] })) : (_jsxs(Text, { children: [_jsx(Text, { bold: true, children: formatOrgName(entry.asset.org, entry.asset.name) }), _jsxs(Text, { dimColor: true, children: [' ', "(", entry.asset.type, ") v", entry.version] })] }))] }, identityKey(entry.asset)))), _jsx(CrossScopeWarning, { installs: data.crossScope ?? [] })] }));
|
|
363
404
|
}
|
|
364
405
|
if (data.outcome === 'deprecated') {
|
|
365
406
|
return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { color: 'yellow', children: ["Warning: \"", data.name, "\" is deprecated \u2014 ", data.reason] }), data.replacement && (_jsxs(Text, { children: ["Consider using", ' ', _jsx(Text, { bold: true, color: 'cyan', children: data.replacement }), ' ', "instead."] })), _jsx(Text, { dimColor: true, children: "Use --force to install anyway." })] }));
|
|
366
407
|
}
|
|
367
|
-
return (
|
|
408
|
+
return (_jsxs(Box, { flexDirection: 'column', children: [data.toolResults.map(({ results, skipped, tool: toolName, warnings }) => (_jsx(InstallSummary, { results: results, skipped: skipped, tools: [toolName], warnings: warnings, where: label }, toolName))), _jsx(CrossScopeWarning, { installs: data.crossScope ?? [] })] }));
|
|
368
409
|
}
|
|
369
410
|
function InstallOrg({ cliOrg, dryRun, force, json, orgName, pin, projectRoot, skipPicker, tool, user, }) {
|
|
370
411
|
const { exit } = useApp();
|
|
@@ -397,7 +438,7 @@ function InstallOrg({ cliOrg, dryRun, force, json, orgName, pin, projectRoot, sk
|
|
|
397
438
|
const { root: projectDir, scope } = await resolve();
|
|
398
439
|
setProgress('Loading configuration...');
|
|
399
440
|
const config = await loadConfig();
|
|
400
|
-
const tools = await
|
|
441
|
+
const tools = await resolvePlacingTools(tool, projectDir);
|
|
401
442
|
const toolNames = tools.map((t) => t.tool);
|
|
402
443
|
setProgress('Fetching registry...');
|
|
403
444
|
const registry = await fetchRegistry({ force: true });
|
|
@@ -446,13 +487,15 @@ function InstallOrg({ cliOrg, dryRun, force, json, orgName, pin, projectRoot, sk
|
|
|
446
487
|
const ctx = contextRef.current;
|
|
447
488
|
const refs = assetsToInstall.map((a) => ({ name: a.name, type: a.type }));
|
|
448
489
|
const plan = resolveMultipleInstallPlans(ctx.registry, refs, ctx.activeOrg);
|
|
490
|
+
const crossScope = (resolved, installedAt) => crossScopeOf(resolved, { installedAt, json: effectiveJson, scope: ctx.scope, tools: ctx.toolNames });
|
|
449
491
|
if (dryRun) {
|
|
450
492
|
const kept = withoutKeptDependencies(plan, ctx.lockfile, ctx.tools, {
|
|
451
493
|
projectDir: ctx.projectDir,
|
|
452
494
|
scope: ctx.scope,
|
|
453
495
|
});
|
|
496
|
+
const field = await crossScope(plan);
|
|
454
497
|
if (!cancelled)
|
|
455
|
-
setState({ phase: 'dry-run', plan: kept, tools: ctx.toolNames });
|
|
498
|
+
setState({ phase: 'dry-run', plan: kept, tools: ctx.toolNames, ...field });
|
|
456
499
|
return;
|
|
457
500
|
}
|
|
458
501
|
if (!cancelled)
|
|
@@ -471,8 +514,9 @@ function InstallOrg({ cliOrg, dryRun, force, json, orgName, pin, projectRoot, sk
|
|
|
471
514
|
projectDir: ctx.projectDir,
|
|
472
515
|
scope: ctx.scope,
|
|
473
516
|
}));
|
|
517
|
+
const field = await crossScope(plan, ctx.projectDir);
|
|
474
518
|
if (!cancelled)
|
|
475
|
-
setState({ phase: 'done', toolResults });
|
|
519
|
+
setState({ phase: 'done', toolResults, ...field });
|
|
476
520
|
}
|
|
477
521
|
catch (err) {
|
|
478
522
|
showError(err);
|
|
@@ -577,15 +621,28 @@ function InstallOrg({ cliOrg, dryRun, force, json, orgName, pin, projectRoot, sk
|
|
|
577
621
|
}
|
|
578
622
|
if (state.phase === 'dry-run') {
|
|
579
623
|
if (effectiveJson) {
|
|
580
|
-
return renderJson({
|
|
624
|
+
return renderJson({
|
|
625
|
+
crossScope: state.crossScope,
|
|
626
|
+
org: orgName,
|
|
627
|
+
outcome: 'dry-run-org',
|
|
628
|
+
plan: state.plan,
|
|
629
|
+
tools: state.tools,
|
|
630
|
+
...fields,
|
|
631
|
+
});
|
|
581
632
|
}
|
|
582
|
-
return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(DryRunBanner, { action: 'install', count: state.plan.totalCount, tools: state.tools, where: label }), _jsx(Text, { children: " " }), _jsx(Text, { children: _jsxs(Text, { bold: true, color: 'magenta', children: ["Org: @", orgName] }) }), _jsx(Text, { children: " " }), state.plan.entries.map((entry) => (_jsxs(Text, { children: [' ', entry.reason === 'dependency' ? (_jsxs(Text, { color: 'cyan', children: [formatOrgName(entry.asset.org, entry.asset.name), ' ', _jsxs(Text, { dimColor: true, children: ["(", entry.asset.type, ") v", entry.version, " \u2014 dependency"] })] })) : (_jsxs(Text, { children: [_jsx(Text, { bold: true, children: formatOrgName(entry.asset.org, entry.asset.name) }), _jsxs(Text, { dimColor: true, children: [' ', "(", entry.asset.type, ") v", entry.version] })] }))] }, identityKey(entry.asset))))] }));
|
|
633
|
+
return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(DryRunBanner, { action: 'install', count: state.plan.totalCount, tools: state.tools, where: label }), _jsx(Text, { children: " " }), _jsx(Text, { children: _jsxs(Text, { bold: true, color: 'magenta', children: ["Org: @", orgName] }) }), _jsx(Text, { children: " " }), state.plan.entries.map((entry) => (_jsxs(Text, { children: [' ', entry.reason === 'dependency' ? (_jsxs(Text, { color: 'cyan', children: [formatOrgName(entry.asset.org, entry.asset.name), ' ', _jsxs(Text, { dimColor: true, children: ["(", entry.asset.type, ") v", entry.version, " \u2014 dependency"] })] })) : (_jsxs(Text, { children: [_jsx(Text, { bold: true, children: formatOrgName(entry.asset.org, entry.asset.name) }), _jsxs(Text, { dimColor: true, children: [' ', "(", entry.asset.type, ") v", entry.version] })] }))] }, identityKey(entry.asset)))), _jsx(CrossScopeWarning, { installs: state.crossScope ?? [] })] }));
|
|
583
634
|
}
|
|
584
635
|
if (state.phase === 'done') {
|
|
585
636
|
if (effectiveJson) {
|
|
586
|
-
return renderJson({
|
|
637
|
+
return renderJson({
|
|
638
|
+
crossScope: state.crossScope,
|
|
639
|
+
org: orgName,
|
|
640
|
+
outcome: 'org-installed',
|
|
641
|
+
toolResults: state.toolResults,
|
|
642
|
+
...fields,
|
|
643
|
+
});
|
|
587
644
|
}
|
|
588
|
-
return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { color: 'green', children: ["\u2713 Installed from ", _jsxs(Text, { bold: true, children: ["@", orgName] })] }), state.toolResults.map(({ results, skipped, tool: toolName, warnings }) => (_jsx(InstallSummary, { results: results, skipped: skipped, tools: [toolName], warnings: warnings, where: label }, toolName)))] }));
|
|
645
|
+
return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { color: 'green', children: ["\u2713 Installed from ", _jsxs(Text, { bold: true, children: ["@", orgName] })] }), state.toolResults.map(({ results, skipped, tool: toolName, warnings }) => (_jsx(InstallSummary, { results: results, skipped: skipped, tools: [toolName], warnings: warnings, where: label }, toolName))), _jsx(CrossScopeWarning, { installs: state.crossScope ?? [] })] }));
|
|
589
646
|
}
|
|
590
647
|
return null;
|
|
591
648
|
}
|