@maccesar/titools 5.2.1 → 5.2.2
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/CONTRIBUTING.md +13 -0
- package/README.md +3 -0
- package/lib/commands/uninstall.js +19 -16
- package/lib/commands/update.js +1 -1
- package/lib/utils.js +2 -0
- package/package.json +1 -1
package/CONTRIBUTING.md
CHANGED
|
@@ -38,6 +38,19 @@ they are repository tooling and are not installed as CLI commands.
|
|
|
38
38
|
- CLI modules use ESM imports with explicit `.js` extensions. Use asynchronous
|
|
39
39
|
child processes inside spinners so the UI remains responsive.
|
|
40
40
|
|
|
41
|
+
## Shared CLI engine
|
|
42
|
+
|
|
43
|
+
TiTools and [AISkills](https://github.com/macCesar/aiskills) share the installer,
|
|
44
|
+
updater, cache, prompts, marketplace detection, cleanup and release machinery.
|
|
45
|
+
For shared changes, port behavior and relevant regression tests in both directions
|
|
46
|
+
before closing the work. Verify each repository independently with focused checks
|
|
47
|
+
and record corresponding implementation/test paths, results and justified product
|
|
48
|
+
exceptions. Existing equivalent behavior must be inspected and verified too.
|
|
49
|
+
An incomplete port or failed verification blocks completion and the affected
|
|
50
|
+
release. Catalogs, Titanium project detection, ti-pro and Knowledge Index remain
|
|
51
|
+
product-specific; version numbers and publication authorization stay separate.
|
|
52
|
+
Keep private audit/session evidence outside public commits.
|
|
53
|
+
|
|
41
54
|
## Public repository boundaries
|
|
42
55
|
|
|
43
56
|
Commit product source, public guides, tests, reusable maintenance scripts and
|
package/README.md
CHANGED
|
@@ -824,6 +824,9 @@ What it does:
|
|
|
824
824
|
- Knowledge index blocks from instruction files (`AGENTS.md`, `CLAUDE.md`, `GEMINI.md`)
|
|
825
825
|
- Skills from global (`~/.agents/skills/`) or project directory
|
|
826
826
|
- Platform symlinks from global or project directory
|
|
827
|
+
- Current or retired slash commands, selected separately for home and project
|
|
828
|
+
- Home and project mirror selections always target their named directory, including with `--local`
|
|
829
|
+
- Mirror removal is not preselected
|
|
827
830
|
- Removes both current and legacy artifacts
|
|
828
831
|
- Removes Claude Code auto-update hook
|
|
829
832
|
- Cleans up cache directory (`~/.titools/`)
|
|
@@ -40,14 +40,13 @@ export async function uninstallCommand(options) {
|
|
|
40
40
|
|
|
41
41
|
const projectDir = resolve(process.cwd());
|
|
42
42
|
const isProject = isTitaniumProject(projectDir);
|
|
43
|
-
const baseDir = options.local ? projectDir : undefined;
|
|
44
43
|
if (options.local) {
|
|
45
44
|
console.log(chalk.cyan('Mode: Local uninstallation (current project)'));
|
|
46
45
|
console.log('');
|
|
47
46
|
}
|
|
48
47
|
|
|
49
48
|
// Detect installed platforms
|
|
50
|
-
const detectedPlatforms = detectPlatforms(
|
|
49
|
+
const detectedPlatforms = detectPlatforms();
|
|
51
50
|
|
|
52
51
|
const knowledgeFiles = ['AGENTS.md', 'CLAUDE.md', 'GEMINI.md'];
|
|
53
52
|
const existingKnowledgeFiles = knowledgeFiles
|
|
@@ -86,12 +85,11 @@ export async function uninstallCommand(options) {
|
|
|
86
85
|
if (hasHomeAgents || hasProjectAgents) {
|
|
87
86
|
choices.push({ name: '`ti-pro` for Claude Code', value: 'agents', checked: true });
|
|
88
87
|
}
|
|
89
|
-
if (hasHomeCommands
|
|
90
|
-
choices.push({
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
});
|
|
88
|
+
if (hasHomeCommands) {
|
|
89
|
+
choices.push({ name: 'Slash commands from `home` directory', value: 'commands-home', checked: true });
|
|
90
|
+
}
|
|
91
|
+
if (hasProjectCommands) {
|
|
92
|
+
choices.push({ name: 'Slash commands from `project` directory', value: 'commands-project', checked: false });
|
|
95
93
|
}
|
|
96
94
|
if (hasKnowledgeBlocks) {
|
|
97
95
|
choices.push({ name: 'Knowledge index from context files', value: 'knowledge', checked: true });
|
|
@@ -220,17 +218,22 @@ export async function uninstallCommand(options) {
|
|
|
220
218
|
}
|
|
221
219
|
}
|
|
222
220
|
|
|
223
|
-
if (targets.includes('commands')) {
|
|
221
|
+
if (targets.includes('commands-home')) {
|
|
224
222
|
spinner.start('Removing slash commands...');
|
|
225
|
-
const
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
223
|
+
const result = removeCommands(undefined);
|
|
224
|
+
if (result.removed.length > 0) {
|
|
225
|
+
spinner.succeed(`${result.removed.length} slash commands removed`);
|
|
226
|
+
actionTaken = true;
|
|
227
|
+
} else {
|
|
228
|
+
spinner.info('No slash commands to remove');
|
|
229
229
|
}
|
|
230
|
+
}
|
|
230
231
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
232
|
+
if (targets.includes('commands-project')) {
|
|
233
|
+
spinner.start('Removing slash commands...');
|
|
234
|
+
const result = removeCommands(projectDir);
|
|
235
|
+
if (result.removed.length > 0) {
|
|
236
|
+
spinner.succeed(`${result.removed.length} slash commands removed`);
|
|
234
237
|
actionTaken = true;
|
|
235
238
|
} else {
|
|
236
239
|
spinner.info('No slash commands to remove');
|
package/lib/commands/update.js
CHANGED
|
@@ -227,7 +227,7 @@ export async function updateCommand(options) {
|
|
|
227
227
|
console.log('');
|
|
228
228
|
console.log(chalk.red('Error: Could not locate skills source directory.'));
|
|
229
229
|
console.log('Try reinstalling with:');
|
|
230
|
-
console.log(` ${chalk.cyan('npm install -g titools')}`);
|
|
230
|
+
console.log(` ${chalk.cyan('npm install -g @maccesar/titools')}`);
|
|
231
231
|
return;
|
|
232
232
|
}
|
|
233
233
|
|
package/lib/utils.js
CHANGED
package/package.json
CHANGED