liteagents 2.8.1 → 2.8.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/CHANGELOG.md +24 -0
- package/README.md +2 -5
- package/cli.js +11 -221
- package/installer/path-manager.js +0 -199
- package/package.json +2 -6
- package/packages/claude/plugins/live-canvas-marketplace/plugins/live-canvas-channel/package-lock.json +5 -5
- package/postinstall.js +1 -1
- package/docs/.gitkeep +0 -1
- package/docs/CONTRIBUTING.md +0 -739
- package/docs/ERROR_HANDLING_IMPLEMENTATION.md +0 -327
- package/docs/INSTALLATION_DEMO.md +0 -691
- package/docs/INSTALLATION_LOCATIONS.md +0 -289
- package/docs/INSTALLER_GUIDE.md +0 -1586
- package/docs/INTEGRATION_ISSUES_9.1.md +0 -341
- package/docs/KNOWLEDGE_BASE.md +0 -727
- package/docs/LONG_TERM_MEMORY.md +0 -449
- package/docs/MIGRATION.md +0 -384
- package/docs/PACKAGE_BASELINE.md +0 -557
- package/docs/PACKAGE_VALIDATION_REPORT.md +0 -427
- package/docs/PASS_INTEGRATION.md +0 -307
- package/docs/PASS_QUICK_START.md +0 -150
- package/docs/PRIVACY.md +0 -203
- package/docs/PUBLISHING.md +0 -266
- package/docs/QUICK-START.md +0 -318
- package/docs/RELEASE_NOTES_1.2.0.md +0 -323
- package/docs/SECURITY.md +0 -317
- package/docs/SILENT_MODE_GUIDE.md +0 -526
- package/docs/SKILLS_CONVERSION.md +0 -154
- package/docs/TESTING.md +0 -582
- package/docs/TEST_COVERAGE.md +0 -347
- package/docs/TROUBLESHOOTING.md +0 -788
- package/docs/UPDATED_VARIANT_CONFIGURATION.md +0 -274
- package/docs/VARIANT_CONFIGURATION.md +0 -440
package/CHANGELOG.md
CHANGED
|
@@ -17,6 +17,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
17
17
|
|
|
18
18
|
---
|
|
19
19
|
|
|
20
|
+
## [2.8.2] - 2026-05-24
|
|
21
|
+
|
|
22
|
+
Maintenance release: removes the last of the legacy 3-variant system, fixes the broken `liteag` alias and post-install message, and trims the shipped documentation down to the README plus an accurate installer guide. No changes to the installed agents/commands/skills.
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
- **`npm test` (the CI publish gate) was failing, blocking releases.** The installer test suites still assumed the removed 3-variant system (Lite/Standard/Pro). The multi-tool suite has been rewritten for the single-variant installer (one `pro` package per tool), and the cross-platform suite's terminal checks no longer assert raw environment presence (`stdout` TTY, `TERM`, `SHELL`) — those failed whenever output is piped (i.e. always under the runner and in CI). They now verify the installer's graceful fallback instead. `npm test` passes 138/138, including under a minimal CI environment.
|
|
26
|
+
- **The `liteag` short alias was broken.** Its `cli.js` was a leftover 3-variant wrapper that defaulted to a non-existent `standard` variant, looked for a `.claude-plugin/plugin-standard.json` that no longer exists, and exited 1. It now simply forwards all arguments to the real interactive installer (`installer/cli.js`), so `liteag` and `liteagents` behave identically (check existing installs, backup, install, uninstall). The actual installer was not modified.
|
|
27
|
+
- **`postinstall` pointed at a command that doesn't exist.** The post-install message told users to run `$ agentic-kit`; the published bin is `liteagents`. Corrected.
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
- **Content-integrity check in the multi-tool test suite.** It now pins the expected per-tool counts of agents, commands, skills, and plugins (counting `.md` dispatch entries and skill/plugin directories, not raw files). Accidentally adding or removing a command/skill/agent fails the publish gate with the exact delta until the expected number is updated deliberately — so the CI gate now protects what actually ships, not just installer plumbing.
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
- **Rewrote `docs/INSTALLER_GUIDE.md` to match the actual installer** (1586 → ~430 lines). Removed the entire fictional "Command-Line Flags" section (the installer takes no flags — it is interactive only), the Lite/Standard/Pro variant system, invented agent lists and component counts, and corrected the default install paths (`~/.config/opencode`, `~/.config/amp`, `~/.factory` — the old guide listed `~/.opencode`/`~/.ampcode`/`~/.droid`, none of which the installer uses). Added an accurate interactive walkthrough and an Uninstalling section, and dropped links to deleted/nonexistent docs.
|
|
34
|
+
|
|
35
|
+
### Removed
|
|
36
|
+
- **Trimmed `docs/` to one guide.** Removed 20 internal/maintainer/stale docs (~7,500 lines) that shipped to users — implementation notes, QA/test reports, `pass`/publishing guides, the variant-era `MIGRATION.md`/`RELEASE_NOTES_1.2.0.md`, `KNOWLEDGE_BASE.md`, `CONTRIBUTING.md`, `PRIVACY.md` (telemetry is a no-op stub), `SECURITY.md`, etc. The README plus the rewritten `docs/INSTALLER_GUIDE.md` are the documentation now.
|
|
37
|
+
- **Stopped shipping `docs/` in the npm package** (dropped from `package.json` `files`, along with the broken root `QUICK-START.md`/`TROUBLESHOOTING.md` entries that never existed). End users get the README; the installer guide lives in the repo. Fixed the README's broken doc links and pointed `CLAUDE.md` and the package validator at the surviving guide.
|
|
38
|
+
- Stale `variant-system` npm keyword — there is one package per tool, not a variant matrix.
|
|
39
|
+
- Dead 3-variant migration code in `installer/path-manager.js` (`detectLegacyInstallation`, `countLegacyComponents`, `classifyVariantFromComponents`, `createManifestForLegacy`). These classified pre-1.2.0 installs into lite/standard/pro by counting `resources`/`hooks` dirs that no longer exist, and nothing in the installer ever called them. Verified the installer still installs, backs up, and uninstalls correctly after removal; `npm test` 138/138 and the installation-engine suite 60/60 still pass.
|
|
40
|
+
- Obsolete documentation describing removed features: `docs/VARIANT_CONFIGURATION.md`, `docs/UPDATED_VARIANT_CONFIGURATION.md` (the 3-variant matrix), `docs/SILENT_MODE_GUIDE.md` and `docs/INSTALLATION_DEMO.md` (a `--variant`/`--tools`/`--silent` flag CLI the installer never had — it is interactive only). Dropped the stale `VARIANT_CONFIGURATION.md` entry from `scripts/validate-package.js`.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
20
44
|
## [2.8.1] - 2026-05-22
|
|
21
45
|
|
|
22
46
|
### Changed
|
package/README.md
CHANGED
|
@@ -166,10 +166,7 @@ Results land in `.claude/friction/antigen_review.md` with projects, error patter
|
|
|
166
166
|
|
|
167
167
|
| Document | Description |
|
|
168
168
|
|----------|-------------|
|
|
169
|
-
| **[INSTALLER_GUIDE.md](docs/INSTALLER_GUIDE.md)** | Complete installation guide
|
|
170
|
-
| **[KNOWLEDGE_BASE.md](docs/KNOWLEDGE_BASE.md)** | Complete reference: agents, commands, architecture |
|
|
171
|
-
| **[QUICK-START.md](QUICK-START.md)** | 15-minute onboarding guide |
|
|
172
|
-
| **[TROUBLESHOOTING.md](TROUBLESHOOTING.md)** | Common issues and solutions |
|
|
169
|
+
| **[INSTALLER_GUIDE.md](docs/INSTALLER_GUIDE.md)** | Complete installation guide, troubleshooting, and FAQ |
|
|
173
170
|
| **[subagentic-manual.md](packages/subagentic-manual.md)** | Detailed agent/command reference |
|
|
174
171
|
|
|
175
172
|
---
|
|
@@ -224,4 +221,4 @@ Apache-2.0 © 2026 hamr0 — see [LICENSE](LICENSE).
|
|
|
224
221
|
|
|
225
222
|
---
|
|
226
223
|
|
|
227
|
-
**Need help?**
|
|
224
|
+
**Need help?** See the [Installer Guide](docs/INSTALLER_GUIDE.md) or [open an issue](https://github.com/hamr0/liteagents/issues)
|
package/cli.js
CHANGED
|
@@ -1,230 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* `liteag` — short alias for the `liteagents` installer.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* Usage:
|
|
10
|
-
* npx liteagents # Install standard variant (default)
|
|
11
|
-
* npx liteagents --variant=lite # Install lite variant via flag
|
|
12
|
-
* npx liteagents --variant=pro # Install pro variant via flag
|
|
13
|
-
* npx agkit # Shorter alias
|
|
14
|
-
* npx liteagents --help # Show help message
|
|
6
|
+
* Forwards all arguments to the interactive installer (installer/cli.js),
|
|
7
|
+
* which checks for existing installs, backs up, installs to each tool's
|
|
8
|
+
* path, and uninstalls. This wrapper adds no behavior of its own.
|
|
15
9
|
*/
|
|
16
10
|
|
|
17
|
-
const fs = require('fs');
|
|
18
11
|
const path = require('path');
|
|
12
|
+
const { spawnSync } = require('child_process');
|
|
19
13
|
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
green: '\x1b[32m',
|
|
25
|
-
blue: '\x1b[34m',
|
|
26
|
-
yellow: '\x1b[33m',
|
|
27
|
-
cyan: '\x1b[36m',
|
|
28
|
-
magenta: '\x1b[35m'
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
// Parse command line arguments
|
|
32
|
-
const args = process.argv.slice(2);
|
|
33
|
-
const hasHelpFlag = args.includes('--help') || args.includes('-h');
|
|
34
|
-
const variantFlag = args.find(arg => arg.startsWith('--variant='));
|
|
35
|
-
const requestedVariant = variantFlag ? variantFlag.split('=')[1] : null;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Display help message
|
|
39
|
-
*/
|
|
40
|
-
function showHelp() {
|
|
41
|
-
console.log(`
|
|
42
|
-
${colors.bright}${colors.cyan}Agentic Toolkit${colors.reset} - AI-Driven Software Development Toolkit
|
|
43
|
-
|
|
44
|
-
${colors.bright}DESCRIPTION:${colors.reset}
|
|
45
|
-
Comprehensive toolkit with 13 specialized agents and 14 powerful skills
|
|
46
|
-
for agile software development, product management, and content creation.
|
|
47
|
-
|
|
48
|
-
${colors.bright}VARIANTS:${colors.reset}
|
|
49
|
-
${colors.green}lite${colors.reset} 3 agents, 0 skills - Minimal dependencies
|
|
50
|
-
${colors.blue}standard${colors.reset} 13 agents, 8 skills - Recommended for most users
|
|
51
|
-
${colors.magenta}pro${colors.reset} 13 agents, 14 skills - Maximum capabilities
|
|
52
|
-
|
|
53
|
-
${colors.bright}USAGE:${colors.reset}
|
|
54
|
-
${colors.cyan}npx liteagents${colors.reset} # Install standard variant (default)
|
|
55
|
-
${colors.cyan}npx liteagents --variant=lite${colors.reset} # Install lite variant via flag
|
|
56
|
-
${colors.cyan}npx liteagents --variant=pro${colors.reset} # Install pro variant via flag
|
|
57
|
-
${colors.cyan}npx agkit${colors.reset} # Shorter alias
|
|
58
|
-
|
|
59
|
-
${colors.bright}CLAUDE CODE MARKETPLACE:${colors.reset}
|
|
60
|
-
You can also install this plugin directly in Claude Code:
|
|
61
|
-
|
|
62
|
-
${colors.cyan}/plugin marketplace add agentic-kit${colors.reset} # Standard variant
|
|
63
|
-
${colors.cyan}/plugin marketplace add agentic-kit-lite${colors.reset} # Lite variant
|
|
64
|
-
${colors.cyan}/plugin marketplace add agentic-kit-pro${colors.reset} # Pro variant
|
|
65
|
-
|
|
66
|
-
${colors.bright}AGENT INVOCATION:${colors.reset}
|
|
67
|
-
After installation, invoke agents using:
|
|
68
|
-
${colors.cyan}@Master:${colors.reset} [your request]
|
|
69
|
-
${colors.cyan}@Orchestrator:${colors.reset} [your request]
|
|
70
|
-
${colors.cyan}@ProductManager:${colors.reset} [your request]
|
|
71
|
-
|
|
72
|
-
${colors.bright}MORE INFORMATION:${colors.reset}
|
|
73
|
-
README: https://github.com/yourusername/agentic-toolkit#readme
|
|
74
|
-
Documentation: See README.md, QUICK-START.md, and VARIANTS.md
|
|
75
|
-
Issues: https://github.com/yourusername/agentic-toolkit/issues
|
|
76
|
-
|
|
77
|
-
${colors.bright}VERSION:${colors.reset}
|
|
78
|
-
1.0.0
|
|
79
|
-
`);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Display variant information
|
|
84
|
-
*/
|
|
85
|
-
function showVariantInfo(variant) {
|
|
86
|
-
const variantInfo = {
|
|
87
|
-
lite: {
|
|
88
|
-
name: 'Lite',
|
|
89
|
-
color: colors.green,
|
|
90
|
-
agents: 3,
|
|
91
|
-
skills: 0,
|
|
92
|
-
description: 'Minimal dependencies with 3 core agents',
|
|
93
|
-
agents_list: ['Master', 'Orchestrator', 'Scrum Master']
|
|
94
|
-
},
|
|
95
|
-
standard: {
|
|
96
|
-
name: 'Standard',
|
|
97
|
-
color: colors.blue,
|
|
98
|
-
agents: 13,
|
|
99
|
-
skills: 8,
|
|
100
|
-
description: 'All 13 agents with 8 core production skills',
|
|
101
|
-
skills_list: ['PDF', 'DOCX', 'XLSX', 'PPTX', 'Canvas Design', 'Theme Factory', 'Brand Guidelines', 'Internal Communications']
|
|
102
|
-
},
|
|
103
|
-
pro: {
|
|
104
|
-
name: 'Pro',
|
|
105
|
-
color: colors.magenta,
|
|
106
|
-
agents: 13,
|
|
107
|
-
skills: 16,
|
|
108
|
-
description: 'All 13 agents with complete skill set (16 skills)',
|
|
109
|
-
skills_list: ['All Standard skills', '+ 8 advanced skills']
|
|
110
|
-
}
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
const info = variantInfo[variant];
|
|
114
|
-
|
|
115
|
-
console.log(`
|
|
116
|
-
${colors.bright}${info.color}Agentic Toolkit - ${info.name} Variant${colors.reset}
|
|
117
|
-
|
|
118
|
-
${colors.bright}SELECTED VARIANT:${colors.reset}
|
|
119
|
-
${info.color}${info.name}${colors.reset} - ${info.description}
|
|
120
|
-
|
|
121
|
-
${colors.bright}FEATURES:${colors.reset}
|
|
122
|
-
Agents: ${colors.cyan}${info.agents}${colors.reset}
|
|
123
|
-
Skills: ${colors.cyan}${info.skills}${colors.reset}
|
|
124
|
-
|
|
125
|
-
${colors.bright}INSTALLATION:${colors.reset}
|
|
126
|
-
This plugin is now ready to use with Claude Code.
|
|
127
|
-
|
|
128
|
-
${colors.bright}GETTING STARTED:${colors.reset}
|
|
129
|
-
1. Verify installation by typing: ${colors.cyan}@Master: *help${colors.reset}
|
|
130
|
-
2. See available agents and their capabilities
|
|
131
|
-
3. Read QUICK-START.md for example workflows
|
|
132
|
-
|
|
133
|
-
${colors.bright}EXAMPLE COMMANDS:${colors.reset}
|
|
134
|
-
${colors.cyan}@Master:${colors.reset} Show me what you can do
|
|
135
|
-
${colors.cyan}@Orchestrator:${colors.reset} Help me plan a new feature
|
|
136
|
-
${colors.cyan}@ProductManager:${colors.reset} Create a PRD for user authentication
|
|
137
|
-
|
|
138
|
-
${colors.bright}DOCUMENTATION:${colors.reset}
|
|
139
|
-
${colors.yellow}README.md${colors.reset} - Full documentation
|
|
140
|
-
${colors.yellow}QUICK-START.md${colors.reset} - Getting started guide
|
|
141
|
-
${colors.yellow}VARIANTS.md${colors.reset} - Variant comparison
|
|
142
|
-
${colors.yellow}TROUBLESHOOTING.md${colors.reset} - Common issues and solutions
|
|
143
|
-
|
|
144
|
-
${colors.green}Installation successful!${colors.reset}
|
|
145
|
-
`);
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Detect variant from npm package tag or flags
|
|
150
|
-
*/
|
|
151
|
-
function detectVariant() {
|
|
152
|
-
// Check for explicit variant flag
|
|
153
|
-
if (requestedVariant) {
|
|
154
|
-
if (['lite', 'standard', 'pro'].includes(requestedVariant)) {
|
|
155
|
-
return requestedVariant;
|
|
156
|
-
} else {
|
|
157
|
-
console.error(`${colors.yellow}Warning:${colors.reset} Invalid variant '${requestedVariant}'. Using 'standard' instead.`);
|
|
158
|
-
console.error(`Valid variants: lite, standard, pro`);
|
|
159
|
-
return 'standard';
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// Check npm package tag (when installed via npm install agentic-kit@lite, etc.)
|
|
164
|
-
// This would be available in process.env.npm_package_config_variant
|
|
165
|
-
// For now, default to 'standard'
|
|
166
|
-
return 'standard';
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Verify plugin manifest exists for selected variant
|
|
171
|
-
*/
|
|
172
|
-
function verifyManifest(variant) {
|
|
173
|
-
const manifestPath = path.join(__dirname, '.claude-plugin', `plugin-${variant}.json`);
|
|
174
|
-
|
|
175
|
-
if (!fs.existsSync(manifestPath)) {
|
|
176
|
-
console.error(`${colors.yellow}Warning:${colors.reset} Manifest file not found: ${manifestPath}`);
|
|
177
|
-
console.error(`This may indicate an incomplete installation.`);
|
|
178
|
-
return false;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
try {
|
|
182
|
-
const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
|
|
183
|
-
if (manifest.variant !== variant) {
|
|
184
|
-
console.error(`${colors.yellow}Warning:${colors.reset} Manifest variant mismatch. Expected '${variant}', found '${manifest.variant}'`);
|
|
185
|
-
return false;
|
|
186
|
-
}
|
|
187
|
-
return true;
|
|
188
|
-
} catch (error) {
|
|
189
|
-
console.error(`${colors.yellow}Error:${colors.reset} Failed to parse manifest: ${error.message}`);
|
|
190
|
-
return false;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* Main CLI execution
|
|
196
|
-
*/
|
|
197
|
-
function main() {
|
|
198
|
-
// Show help if requested
|
|
199
|
-
if (hasHelpFlag) {
|
|
200
|
-
showHelp();
|
|
201
|
-
process.exit(0);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
// Detect which variant to use
|
|
205
|
-
const variant = detectVariant();
|
|
206
|
-
|
|
207
|
-
// Display welcome message
|
|
208
|
-
console.log(`${colors.bright}${colors.cyan}Initializing Agentic Toolkit...${colors.reset}\n`);
|
|
209
|
-
|
|
210
|
-
// Verify the manifest exists
|
|
211
|
-
const manifestValid = verifyManifest(variant);
|
|
212
|
-
|
|
213
|
-
if (!manifestValid) {
|
|
214
|
-
console.error(`\n${colors.yellow}Installation may be incomplete. Please check the package contents.${colors.reset}`);
|
|
215
|
-
console.error(`If problems persist, reinstall with: ${colors.cyan}npm install agentic-kit@${variant}${colors.reset}\n`);
|
|
216
|
-
process.exit(1);
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
// Show variant information
|
|
220
|
-
showVariantInfo(variant);
|
|
221
|
-
|
|
222
|
-
// For Claude Code plugin installation, the actual plugin loading
|
|
223
|
-
// is handled by Claude Code itself. This CLI just provides helpful
|
|
224
|
-
// output and verification.
|
|
225
|
-
|
|
226
|
-
process.exit(0);
|
|
227
|
-
}
|
|
14
|
+
const installer = path.join(__dirname, 'installer', 'cli.js');
|
|
15
|
+
const result = spawnSync(process.execPath, [installer, ...process.argv.slice(2)], {
|
|
16
|
+
stdio: 'inherit'
|
|
17
|
+
});
|
|
228
18
|
|
|
229
|
-
//
|
|
230
|
-
|
|
19
|
+
// Mirror the installer's exit code; treat signal termination as failure.
|
|
20
|
+
process.exit(result.status === null ? 1 : result.status);
|
|
@@ -223,205 +223,6 @@ class PathManager {
|
|
|
223
223
|
return fullPath;
|
|
224
224
|
}
|
|
225
225
|
|
|
226
|
-
/**
|
|
227
|
-
* Detect legacy installation (from version < 1.2.0)
|
|
228
|
-
* Legacy installations don't have manifest.json
|
|
229
|
-
*
|
|
230
|
-
* @param {string} toolId - Tool identifier (claude, opencode, ampcode, droid)
|
|
231
|
-
* @returns {Promise<Object>} Detection result with installation details
|
|
232
|
-
*/
|
|
233
|
-
async detectLegacyInstallation(toolId) {
|
|
234
|
-
const installPath = this.getDefaultPath(toolId);
|
|
235
|
-
if (!installPath) {
|
|
236
|
-
return { isLegacy: false, exists: false };
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
const fullPath = this.expandPath(installPath);
|
|
240
|
-
|
|
241
|
-
try {
|
|
242
|
-
// Check if directory exists
|
|
243
|
-
const dirStats = await fs.promises.stat(fullPath);
|
|
244
|
-
if (!dirStats.isDirectory()) {
|
|
245
|
-
return { isLegacy: false, exists: false };
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
// Check for manifest.json
|
|
249
|
-
const manifestPath = path.join(fullPath, 'manifest.json');
|
|
250
|
-
const hasManifest = fs.existsSync(manifestPath);
|
|
251
|
-
|
|
252
|
-
if (hasManifest) {
|
|
253
|
-
// Has manifest, not a legacy installation
|
|
254
|
-
return {
|
|
255
|
-
isLegacy: false,
|
|
256
|
-
exists: true,
|
|
257
|
-
path: fullPath,
|
|
258
|
-
reason: 'Installation has manifest.json (v1.2.0+)'
|
|
259
|
-
};
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
// No manifest - this is a legacy installation
|
|
263
|
-
// Count components to classify variant
|
|
264
|
-
const components = await this.countLegacyComponents(fullPath);
|
|
265
|
-
|
|
266
|
-
// Classify variant based on component counts
|
|
267
|
-
const variant = this.classifyVariantFromComponents(components);
|
|
268
|
-
|
|
269
|
-
return {
|
|
270
|
-
isLegacy: true,
|
|
271
|
-
exists: true,
|
|
272
|
-
path: fullPath,
|
|
273
|
-
components: components,
|
|
274
|
-
suggestedVariant: variant,
|
|
275
|
-
reason: 'No manifest.json found (pre-1.2.0 installation)'
|
|
276
|
-
};
|
|
277
|
-
} catch (error) {
|
|
278
|
-
return {
|
|
279
|
-
isLegacy: false,
|
|
280
|
-
exists: false,
|
|
281
|
-
error: error.message
|
|
282
|
-
};
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
/**
|
|
287
|
-
* Count components in legacy installation
|
|
288
|
-
*
|
|
289
|
-
* @private
|
|
290
|
-
* @param {string} installPath - Installation directory path
|
|
291
|
-
* @returns {Promise<Object>} Component counts
|
|
292
|
-
*/
|
|
293
|
-
async countLegacyComponents(installPath) {
|
|
294
|
-
const components = {
|
|
295
|
-
agents: 0,
|
|
296
|
-
skills: 0,
|
|
297
|
-
resources: 0,
|
|
298
|
-
hooks: 0
|
|
299
|
-
};
|
|
300
|
-
|
|
301
|
-
// Count agents
|
|
302
|
-
try {
|
|
303
|
-
const agentsDir = path.join(installPath, 'agents');
|
|
304
|
-
const agentFiles = await fs.promises.readdir(agentsDir);
|
|
305
|
-
components.agents = agentFiles.filter(f => f.endsWith('.md')).length;
|
|
306
|
-
} catch (error) {
|
|
307
|
-
// Directory doesn't exist or can't read
|
|
308
|
-
components.agents = 0;
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
// Count skills
|
|
312
|
-
try {
|
|
313
|
-
const skillsDir = path.join(installPath, 'skills');
|
|
314
|
-
const skillFiles = await fs.promises.readdir(skillsDir);
|
|
315
|
-
components.skills = skillFiles.filter(f => f.endsWith('.md')).length;
|
|
316
|
-
} catch (error) {
|
|
317
|
-
components.skills = 0;
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
// Count resources
|
|
321
|
-
try {
|
|
322
|
-
const resourcesDir = path.join(installPath, 'resources');
|
|
323
|
-
const resourceFiles = await fs.promises.readdir(resourcesDir);
|
|
324
|
-
components.resources = resourceFiles.length;
|
|
325
|
-
} catch (error) {
|
|
326
|
-
components.resources = 0;
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
// Count hooks
|
|
330
|
-
try {
|
|
331
|
-
const hooksDir = path.join(installPath, 'hooks');
|
|
332
|
-
const hookFiles = await fs.promises.readdir(hooksDir);
|
|
333
|
-
components.hooks = hookFiles.filter(f => f.endsWith('.js')).length;
|
|
334
|
-
} catch (error) {
|
|
335
|
-
components.hooks = 0;
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
return components;
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
/**
|
|
342
|
-
* Classify variant based on component counts
|
|
343
|
-
*
|
|
344
|
-
* @private
|
|
345
|
-
* @param {Object} components - Component counts
|
|
346
|
-
* @returns {string} Suggested variant (lite, standard, pro, or custom)
|
|
347
|
-
*/
|
|
348
|
-
classifyVariantFromComponents(components) {
|
|
349
|
-
const { agents, skills } = components;
|
|
350
|
-
|
|
351
|
-
// Lite: 3 agents, 0 skills
|
|
352
|
-
if (agents === 3 && skills === 0) {
|
|
353
|
-
return 'lite';
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
// Pro: 13 agents, 9+ skills
|
|
357
|
-
if (agents >= 13 && skills >= 9) {
|
|
358
|
-
return 'pro';
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
// Standard: 13 agents, 1-8 skills (or close to it)
|
|
362
|
-
if (agents >= 10 && skills >= 1 && skills <= 8) {
|
|
363
|
-
return 'standard';
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
// If 3 agents or fewer, likely lite
|
|
367
|
-
if (agents <= 3) {
|
|
368
|
-
return 'lite';
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
// If many agents (10+), likely standard or pro
|
|
372
|
-
if (agents >= 10) {
|
|
373
|
-
return skills >= 9 ? 'pro' : 'standard';
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
// Default to standard for anything in between
|
|
377
|
-
return 'standard';
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
/**
|
|
381
|
-
* Create manifest for legacy installation
|
|
382
|
-
*
|
|
383
|
-
* @param {string} toolId - Tool identifier
|
|
384
|
-
* @param {Object} components - Component counts
|
|
385
|
-
* @param {string} variant - Classified variant
|
|
386
|
-
* @returns {Promise<Object>} Created manifest
|
|
387
|
-
*/
|
|
388
|
-
async createManifestForLegacy(toolId, components, variant) {
|
|
389
|
-
const installPath = this.expandPath(this.getDefaultPath(toolId));
|
|
390
|
-
const manifestPath = path.join(installPath, 'manifest.json');
|
|
391
|
-
|
|
392
|
-
const manifest = {
|
|
393
|
-
tool: toolId,
|
|
394
|
-
variant: variant,
|
|
395
|
-
version: '1.2.0',
|
|
396
|
-
installed_at: new Date().toISOString(),
|
|
397
|
-
migrated_from: 'legacy',
|
|
398
|
-
components: components,
|
|
399
|
-
paths: {
|
|
400
|
-
agents: path.join(installPath, 'agents'),
|
|
401
|
-
skills: path.join(installPath, 'skills'),
|
|
402
|
-
resources: path.join(installPath, 'resources'),
|
|
403
|
-
hooks: path.join(installPath, 'hooks')
|
|
404
|
-
},
|
|
405
|
-
files: {
|
|
406
|
-
total: components.agents + components.skills + components.resources + components.hooks,
|
|
407
|
-
size: 'unknown'
|
|
408
|
-
},
|
|
409
|
-
migration: {
|
|
410
|
-
from_version: 'unknown',
|
|
411
|
-
migrated_at: new Date().toISOString(),
|
|
412
|
-
migration_type: 'automatic'
|
|
413
|
-
}
|
|
414
|
-
};
|
|
415
|
-
|
|
416
|
-
// Write manifest with secure permissions
|
|
417
|
-
await fs.promises.writeFile(
|
|
418
|
-
manifestPath,
|
|
419
|
-
JSON.stringify(manifest, null, 2),
|
|
420
|
-
{ mode: 0o600 }
|
|
421
|
-
);
|
|
422
|
-
|
|
423
|
-
return manifest;
|
|
424
|
-
}
|
|
425
226
|
}
|
|
426
227
|
|
|
427
228
|
module.exports = PathManager;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "liteagents",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.2",
|
|
4
4
|
"description": "AI development toolkit with 11 specialized agents and 23 commands including live-canvas UI design with click-to-annotate feedback. Simple one-question installer for Claude, Opencode, Ampcode, and Droid.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -42,8 +42,7 @@
|
|
|
42
42
|
"xlsx",
|
|
43
43
|
"pptx",
|
|
44
44
|
"document-generation",
|
|
45
|
-
"cli"
|
|
46
|
-
"variant-system"
|
|
45
|
+
"cli"
|
|
47
46
|
],
|
|
48
47
|
"author": "hamr0 <avoidaccess@msn.com>",
|
|
49
48
|
"license": "Apache-2.0",
|
|
@@ -66,13 +65,10 @@
|
|
|
66
65
|
"installer/",
|
|
67
66
|
"packages/",
|
|
68
67
|
"tools/",
|
|
69
|
-
"docs/",
|
|
70
68
|
"cli.js",
|
|
71
69
|
"index.js",
|
|
72
70
|
"postinstall.js",
|
|
73
71
|
"README.md",
|
|
74
|
-
"QUICK-START.md",
|
|
75
|
-
"TROUBLESHOOTING.md",
|
|
76
72
|
"CHANGELOG.md",
|
|
77
73
|
"LICENSE"
|
|
78
74
|
],
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "live-canvas-channel",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "live-canvas-channel",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.5.0",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@modelcontextprotocol/sdk": "^1.0.0"
|
|
@@ -836,9 +836,9 @@
|
|
|
836
836
|
}
|
|
837
837
|
},
|
|
838
838
|
"node_modules/qs": {
|
|
839
|
-
"version": "6.15.
|
|
840
|
-
"resolved": "https://registry.npmjs.org/qs/-/qs-6.15.
|
|
841
|
-
"integrity": "sha512-
|
|
839
|
+
"version": "6.15.2",
|
|
840
|
+
"resolved": "https://registry.npmjs.org/qs/-/qs-6.15.2.tgz",
|
|
841
|
+
"integrity": "sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==",
|
|
842
842
|
"license": "BSD-3-Clause",
|
|
843
843
|
"dependencies": {
|
|
844
844
|
"side-channel": "^1.1.0"
|
package/postinstall.js
CHANGED
|
@@ -15,7 +15,7 @@ console.log(`==========================================${colors.reset}`);
|
|
|
15
15
|
console.log('');
|
|
16
16
|
console.log(`${colors.bright}${colors.yellow}Next step: Run the installer${colors.reset}`);
|
|
17
17
|
console.log('');
|
|
18
|
-
console.log(` ${colors.cyan}$
|
|
18
|
+
console.log(` ${colors.cyan}$ liteagents${colors.reset}`);
|
|
19
19
|
console.log('');
|
|
20
20
|
console.log(`${colors.green}==========================================${colors.reset}`);
|
|
21
21
|
console.log('');
|
package/docs/.gitkeep
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# Documentation directory
|