@localtech/claude-code-toolkit 1.0.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/README.md +421 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +166 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/install.d.ts +8 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +183 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/list.d.ts +2 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +134 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/template.d.ts +2 -0
- package/dist/commands/template.d.ts.map +1 -0
- package/dist/commands/template.js +281 -0
- package/dist/commands/template.js.map +1 -0
- package/dist/commands/update.d.ts +2 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +20 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.installToolkit = installToolkit;
|
|
37
|
+
const fs = __importStar(require("fs-extra"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const child_process_1 = require("child_process");
|
|
40
|
+
async function installToolkit(options = {}) {
|
|
41
|
+
const cwd = process.cwd();
|
|
42
|
+
const toolkitRoot = path.dirname(path.dirname(__dirname));
|
|
43
|
+
console.log('Installing Claude Code toolkit in:', cwd);
|
|
44
|
+
// Create .claude directory structure
|
|
45
|
+
const claudeDir = path.join(cwd, '.claude');
|
|
46
|
+
await fs.ensureDir(claudeDir);
|
|
47
|
+
// Copy agents configuration
|
|
48
|
+
if (!options.noAgents) {
|
|
49
|
+
const agentsSource = path.join(toolkitRoot, '.claude', 'AGENTS.md');
|
|
50
|
+
const agentsDest = path.join(claudeDir, 'AGENTS.md');
|
|
51
|
+
if (await fs.pathExists(agentsSource)) {
|
|
52
|
+
if (options.force || !(await fs.pathExists(agentsDest))) {
|
|
53
|
+
await fs.copy(agentsSource, agentsDest);
|
|
54
|
+
console.log('✅ Agents configuration installed');
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
console.log('⚠️ Agents configuration already exists (use --force to overwrite)');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Copy CLAUDE.md configuration
|
|
62
|
+
const claudeConfigSource = path.join(toolkitRoot, '.claude', 'CLAUDE.md');
|
|
63
|
+
const claudeConfigDest = path.join(claudeDir, 'CLAUDE.md');
|
|
64
|
+
if (await fs.pathExists(claudeConfigSource)) {
|
|
65
|
+
if (options.force || !(await fs.pathExists(claudeConfigDest))) {
|
|
66
|
+
await fs.copy(claudeConfigSource, claudeConfigDest);
|
|
67
|
+
console.log('✅ Claude configuration installed');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Copy skills
|
|
71
|
+
if (!options.noSkills) {
|
|
72
|
+
const skillsSource = path.join(toolkitRoot, '.claude', 'skills');
|
|
73
|
+
const skillsDest = path.join(claudeDir, 'skills');
|
|
74
|
+
if (await fs.pathExists(skillsSource)) {
|
|
75
|
+
if (options.force || !(await fs.pathExists(skillsDest))) {
|
|
76
|
+
await fs.copy(skillsSource, skillsDest);
|
|
77
|
+
console.log('✅ Skills installed');
|
|
78
|
+
// Create ZIP files for each skill
|
|
79
|
+
const skills = await fs.readdir(skillsDest);
|
|
80
|
+
for (const skill of skills) {
|
|
81
|
+
const skillPath = path.join(skillsDest, skill);
|
|
82
|
+
if ((await fs.stat(skillPath)).isDirectory()) {
|
|
83
|
+
const zipName = `${skill}.zip`;
|
|
84
|
+
const zipPath = path.join(cwd, zipName);
|
|
85
|
+
try {
|
|
86
|
+
// Create ZIP using PowerShell (since we're on Windows)
|
|
87
|
+
const psCommand = `Compress-Archive -Path "${skillPath}" -DestinationPath "${zipPath}" -Force`;
|
|
88
|
+
(0, child_process_1.execSync)(`powershell -Command "${psCommand}"`, { stdio: 'inherit' });
|
|
89
|
+
console.log(`📦 ${skill} packaged as ${zipName}`);
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
console.log(`⚠️ Could not create ZIP for ${skill}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
console.log('⚠️ Skills already exist (use --force to overwrite)');
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Copy hooks
|
|
103
|
+
if (!options.noHooks) {
|
|
104
|
+
const hooksSource = path.join(toolkitRoot, '.claude', 'hooks');
|
|
105
|
+
const hooksDest = path.join(claudeDir, 'hooks');
|
|
106
|
+
if (await fs.pathExists(hooksSource)) {
|
|
107
|
+
if (options.force || !(await fs.pathExists(hooksDest))) {
|
|
108
|
+
await fs.copy(hooksSource, hooksDest);
|
|
109
|
+
// Make hook scripts executable (on Unix-like systems)
|
|
110
|
+
try {
|
|
111
|
+
const hookFiles = await fs.readdir(hooksDest);
|
|
112
|
+
for (const file of hookFiles) {
|
|
113
|
+
if (file.endsWith('.sh')) {
|
|
114
|
+
const filePath = path.join(hooksDest, file);
|
|
115
|
+
// Note: chmod may not work on Windows, but we'll try
|
|
116
|
+
try {
|
|
117
|
+
fs.chmodSync(filePath, '755');
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
// Ignore on Windows
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
// Ignore chmod errors
|
|
127
|
+
}
|
|
128
|
+
console.log('✅ Hooks installed');
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
console.log('⚠️ Hooks already exist (use --force to overwrite)');
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// Copy memory system
|
|
136
|
+
const memorySource = path.join(toolkitRoot, '.claude', 'memory');
|
|
137
|
+
const memoryDest = path.join(claudeDir, 'memory');
|
|
138
|
+
if (await fs.pathExists(memorySource)) {
|
|
139
|
+
if (options.force || !(await fs.pathExists(memoryDest))) {
|
|
140
|
+
await fs.copy(memorySource, memoryDest);
|
|
141
|
+
console.log('✅ Memory system installed');
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// Create initial project context
|
|
145
|
+
const contextFile = path.join(memoryDest, 'context.md');
|
|
146
|
+
if (await fs.pathExists(path.dirname(contextFile))) {
|
|
147
|
+
const projectName = path.basename(cwd);
|
|
148
|
+
const context = `# Current Project Context
|
|
149
|
+
|
|
150
|
+
## Project Overview
|
|
151
|
+
**Name**: ${projectName}
|
|
152
|
+
**Type**: New project with Claude Code toolkit
|
|
153
|
+
**Status**: Setup phase - toolkit installed
|
|
154
|
+
|
|
155
|
+
## Active Components
|
|
156
|
+
- Professional Documentation Writer skill
|
|
157
|
+
- Mobile UI/UX Master skill
|
|
158
|
+
- Claude Code Hooks Master skill
|
|
159
|
+
- Persistent Memory System skill
|
|
160
|
+
- Six specialized agents (code-reviewer, doc-writer, test-generator, debugger, researcher, mobile-ui-specialist)
|
|
161
|
+
- Global configuration in CLAUDE.md
|
|
162
|
+
- Hook automation system (pre-commit, post-commit, pre-push, custom)
|
|
163
|
+
|
|
164
|
+
## Next Steps
|
|
165
|
+
1. Upload skills to Claude settings
|
|
166
|
+
2. Set up hooks: .claude/hooks/hook-manager.sh setup
|
|
167
|
+
3. Install git hooks: .claude/hooks/hook-manager.sh install
|
|
168
|
+
4. Start development with enhanced AI assistance
|
|
169
|
+
|
|
170
|
+
## Recent Changes
|
|
171
|
+
- ${new Date().toISOString().split('T')[0]}: Claude Code toolkit installed
|
|
172
|
+
- Skills and hooks configured for optimal development workflow
|
|
173
|
+
`;
|
|
174
|
+
await fs.writeFile(contextFile, context);
|
|
175
|
+
}
|
|
176
|
+
console.log('\n🎉 Claude Code toolkit installation complete!');
|
|
177
|
+
console.log('\n📋 Next steps:');
|
|
178
|
+
console.log('1. Upload skill ZIP files to https://claude.ai/settings → Skills');
|
|
179
|
+
console.log('2. Set up hooks: .claude/hooks/hook-manager.sh setup');
|
|
180
|
+
console.log('3. Install git hooks: .claude/hooks/hook-manager.sh install');
|
|
181
|
+
console.log('4. Start coding with AI-enhanced workflows!');
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,wCA2JC;AAtKD,6CAA+B;AAC/B,2CAA6B;AAC7B,iDAAyC;AASlC,KAAK,UAAU,cAAc,CAAC,UAA0B,EAAE;IAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAE1D,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;IAEvD,qCAAqC;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC5C,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAE9B,4BAA4B;IAC5B,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACpE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAErD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACtC,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBACxD,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC1E,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAE3D,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC5C,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;YAC9D,MAAM,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,cAAc;IACd,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAElD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACtC,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBACxD,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBAElC,kCAAkC;gBAClC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;oBAC/C,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;wBAC7C,MAAM,OAAO,GAAG,GAAG,KAAK,MAAM,CAAC;wBAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;wBAExC,IAAI,CAAC;4BACH,uDAAuD;4BACvD,MAAM,SAAS,GAAG,2BAA2B,SAAS,uBAAuB,OAAO,UAAU,CAAC;4BAC/F,IAAA,wBAAQ,EAAC,wBAAwB,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;4BACrE,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,gBAAgB,OAAO,EAAE,CAAC,CAAC;wBACpD,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,OAAO,CAAC,GAAG,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;wBACvD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAED,aAAa;IACb,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEhD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;gBACvD,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAEtC,sDAAsD;gBACtD,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBAC9C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;wBAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;4BACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;4BAC5C,qDAAqD;4BACrD,IAAI,CAAC;gCACH,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;4BAChC,CAAC;4BAAC,MAAM,CAAC;gCACP,oBAAoB;4BACtB,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,sBAAsB;gBACxB,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAElD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACxD,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACxD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG;;;YAGR,WAAW;;;;;;;;;;;;;;;;;;;;IAoBnB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;CAEzC,CAAC;QAEE,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAIA,wBAAsB,cAAc,kBA2FnC"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.listComponents = listComponents;
|
|
40
|
+
const fs = __importStar(require("fs-extra"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
43
|
+
async function listComponents() {
|
|
44
|
+
const toolkitRoot = path.dirname(path.dirname(__dirname));
|
|
45
|
+
const claudeDir = path.join(toolkitRoot, '.claude');
|
|
46
|
+
console.log(chalk_1.default.blue('🔍 Claude Code Toolkit Components\n'));
|
|
47
|
+
// List agents
|
|
48
|
+
console.log(chalk_1.default.yellow('🤖 Agents:'));
|
|
49
|
+
const agentsFile = path.join(claudeDir, 'AGENTS.md');
|
|
50
|
+
if (await fs.pathExists(agentsFile)) {
|
|
51
|
+
const content = await fs.readFile(agentsFile, 'utf-8');
|
|
52
|
+
const agentMatches = content.match(/\*\*Name\*\*: ([^\n]+)/g);
|
|
53
|
+
if (agentMatches) {
|
|
54
|
+
agentMatches.forEach(match => {
|
|
55
|
+
const agentName = match.replace('**Name**: ', '');
|
|
56
|
+
console.log(` ✅ ${agentName}`);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
console.log(' ❌ No agents configuration found');
|
|
62
|
+
}
|
|
63
|
+
// List skills
|
|
64
|
+
console.log(chalk_1.default.yellow('\n🛠️ Skills:'));
|
|
65
|
+
const skillsDir = path.join(claudeDir, 'skills');
|
|
66
|
+
if (await fs.pathExists(skillsDir)) {
|
|
67
|
+
const skills = await fs.readdir(skillsDir);
|
|
68
|
+
for (const skill of skills) {
|
|
69
|
+
const skillPath = path.join(skillsDir, skill);
|
|
70
|
+
if ((await fs.stat(skillPath)).isDirectory()) {
|
|
71
|
+
const skillMdPath = path.join(skillPath, 'SKILL.md');
|
|
72
|
+
if (await fs.pathExists(skillMdPath)) {
|
|
73
|
+
const content = await fs.readFile(skillMdPath, 'utf-8');
|
|
74
|
+
const nameMatch = content.match(/name: ([^\n]+)/);
|
|
75
|
+
const descMatch = content.match(/description: ([^\n]+)/);
|
|
76
|
+
const name = nameMatch ? nameMatch[1] : skill;
|
|
77
|
+
const desc = descMatch ? descMatch[1] : 'No description';
|
|
78
|
+
console.log(` ✅ ${name}: ${desc}`);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
console.log(` ✅ ${skill}: Skill directory (no SKILL.md)`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
console.log(' ❌ No skills directory found');
|
|
88
|
+
}
|
|
89
|
+
// List hooks
|
|
90
|
+
console.log(chalk_1.default.yellow('\n🔄 Hooks:'));
|
|
91
|
+
const hooksDir = path.join(claudeDir, 'hooks');
|
|
92
|
+
if (await fs.pathExists(hooksDir)) {
|
|
93
|
+
const hookTypes = ['pre-commit', 'post-commit', 'pre-push', 'custom'];
|
|
94
|
+
for (const hookType of hookTypes) {
|
|
95
|
+
const typeDir = path.join(hooksDir, hookType);
|
|
96
|
+
if (await fs.pathExists(typeDir)) {
|
|
97
|
+
const hooks = await fs.readdir(typeDir);
|
|
98
|
+
const scriptHooks = hooks.filter(h => h.endsWith('.sh'));
|
|
99
|
+
if (scriptHooks.length > 0) {
|
|
100
|
+
console.log(` ✅ ${hookType}: ${scriptHooks.join(', ')}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
console.log(' ❌ No hooks directory found');
|
|
107
|
+
}
|
|
108
|
+
// List memory system
|
|
109
|
+
console.log(chalk_1.default.yellow('\n🧠 Memory System:'));
|
|
110
|
+
const memoryDir = path.join(claudeDir, 'memory');
|
|
111
|
+
if (await fs.pathExists(memoryDir)) {
|
|
112
|
+
const memoryFiles = await fs.readdir(memoryDir);
|
|
113
|
+
memoryFiles.forEach(file => {
|
|
114
|
+
const fileName = file.replace('.md', '');
|
|
115
|
+
console.log(` ✅ ${fileName} tracking`);
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
console.log(' ❌ No memory system found');
|
|
120
|
+
}
|
|
121
|
+
console.log(chalk_1.default.yellow('\n📊 Global Configuration:'));
|
|
122
|
+
const claudeMd = path.join(claudeDir, 'CLAUDE.md');
|
|
123
|
+
if (await fs.pathExists(claudeMd)) {
|
|
124
|
+
console.log(' ✅ CLAUDE.md: Global prompts and settings');
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
console.log(' ❌ CLAUDE.md: Global configuration not found');
|
|
128
|
+
}
|
|
129
|
+
console.log(chalk_1.default.blue('\n💡 Usage:'));
|
|
130
|
+
console.log(' Install in current project: claude-toolkit install');
|
|
131
|
+
console.log(' Create new project: claude-toolkit template <name>');
|
|
132
|
+
console.log(' Check installation: claude-toolkit doctor');
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"AAIA,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE,MAAgB,iBAyC/E"}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.createTemplate = createTemplate;
|
|
37
|
+
const fs = __importStar(require("fs-extra"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const child_process_1 = require("child_process");
|
|
40
|
+
async function createTemplate(projectName, type = 'react') {
|
|
41
|
+
const cwd = process.cwd();
|
|
42
|
+
const projectPath = path.join(cwd, projectName);
|
|
43
|
+
const toolkitRoot = path.dirname(path.dirname(__dirname));
|
|
44
|
+
// Check if directory already exists
|
|
45
|
+
if (await fs.pathExists(projectPath)) {
|
|
46
|
+
throw new Error(`Directory "${projectName}" already exists`);
|
|
47
|
+
}
|
|
48
|
+
console.log(`Creating ${type} project "${projectName}" with Claude Code toolkit...`);
|
|
49
|
+
// Create project directory
|
|
50
|
+
await fs.ensureDir(projectPath);
|
|
51
|
+
// Copy appropriate template based on type
|
|
52
|
+
const templatesDir = path.join(toolkitRoot, 'templates');
|
|
53
|
+
const templatePath = path.join(templatesDir, type);
|
|
54
|
+
if (await fs.pathExists(templatePath)) {
|
|
55
|
+
// Copy template files
|
|
56
|
+
await fs.copy(templatePath, projectPath);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
// Create basic structure based on type
|
|
60
|
+
await createBasicStructure(projectPath, type);
|
|
61
|
+
}
|
|
62
|
+
// Install Claude Code toolkit
|
|
63
|
+
process.chdir(projectPath);
|
|
64
|
+
await installClaudeToolkit(projectPath, toolkitRoot);
|
|
65
|
+
// Initialize git repository
|
|
66
|
+
try {
|
|
67
|
+
(0, child_process_1.execSync)('git init', { stdio: 'inherit' });
|
|
68
|
+
(0, child_process_1.execSync)('git add .', { stdio: 'inherit' });
|
|
69
|
+
(0, child_process_1.execSync)('git commit -m "Initial commit with Claude Code toolkit"', { stdio: 'inherit' });
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
console.log('⚠️ Git initialization skipped (git may not be available)');
|
|
73
|
+
}
|
|
74
|
+
console.log(`\n🎉 Project "${projectName}" created successfully!`);
|
|
75
|
+
}
|
|
76
|
+
async function createBasicStructure(projectPath, type) {
|
|
77
|
+
const packageJson = {
|
|
78
|
+
name: path.basename(projectPath),
|
|
79
|
+
version: '0.1.0',
|
|
80
|
+
private: true,
|
|
81
|
+
scripts: {
|
|
82
|
+
dev: 'echo "Start development server"',
|
|
83
|
+
build: 'echo "Build for production"',
|
|
84
|
+
test: 'echo "Run tests"'
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
// Type-specific configurations
|
|
88
|
+
switch (type) {
|
|
89
|
+
case 'react':
|
|
90
|
+
packageJson.scripts = {
|
|
91
|
+
dev: 'vite',
|
|
92
|
+
build: 'vite build',
|
|
93
|
+
preview: 'vite preview'
|
|
94
|
+
};
|
|
95
|
+
packageJson.dependencies = {
|
|
96
|
+
'react': '^18.2.0',
|
|
97
|
+
'react-dom': '^18.2.0'
|
|
98
|
+
};
|
|
99
|
+
packageJson.devDependencies = {
|
|
100
|
+
'@vitejs/plugin-react': '^4.0.0',
|
|
101
|
+
'vite': '^4.3.0',
|
|
102
|
+
'typescript': '^5.0.0'
|
|
103
|
+
};
|
|
104
|
+
// Create basic React files
|
|
105
|
+
await fs.writeFile(path.join(projectPath, 'index.html'), `<!DOCTYPE html>
|
|
106
|
+
<html lang="en">
|
|
107
|
+
<head>
|
|
108
|
+
<meta charset="UTF-8" />
|
|
109
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
110
|
+
<title>${packageJson.name}</title>
|
|
111
|
+
</head>
|
|
112
|
+
<body>
|
|
113
|
+
<div id="root"></div>
|
|
114
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
115
|
+
</body>
|
|
116
|
+
</html>`);
|
|
117
|
+
await fs.ensureDir(path.join(projectPath, 'src'));
|
|
118
|
+
await fs.writeFile(path.join(projectPath, 'src/main.tsx'), `import React from 'react'
|
|
119
|
+
import ReactDOM from 'react-dom/client'
|
|
120
|
+
import App from './App.tsx'
|
|
121
|
+
|
|
122
|
+
ReactDOM.createRoot(document.getElementById('root')!).render(
|
|
123
|
+
<React.StrictMode>
|
|
124
|
+
<App />
|
|
125
|
+
</React.StrictMode>,
|
|
126
|
+
)`);
|
|
127
|
+
await fs.writeFile(path.join(projectPath, 'src/App.tsx'), `import React from 'react'
|
|
128
|
+
|
|
129
|
+
function App() {
|
|
130
|
+
return (
|
|
131
|
+
<div>
|
|
132
|
+
<h1>Welcome to ${packageJson.name}</h1>
|
|
133
|
+
<p>Built with Claude Code toolkit</p>
|
|
134
|
+
</div>
|
|
135
|
+
)
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export default App`);
|
|
139
|
+
break;
|
|
140
|
+
case 'vue':
|
|
141
|
+
packageJson.scripts = {
|
|
142
|
+
dev: 'vite',
|
|
143
|
+
build: 'vite build',
|
|
144
|
+
preview: 'vite preview'
|
|
145
|
+
};
|
|
146
|
+
packageJson.dependencies = {
|
|
147
|
+
'vue': '^3.3.0'
|
|
148
|
+
};
|
|
149
|
+
packageJson.devDependencies = {
|
|
150
|
+
'@vitejs/plugin-vue': '^4.2.0',
|
|
151
|
+
'vite': '^4.3.0',
|
|
152
|
+
'typescript': '^5.0.0'
|
|
153
|
+
};
|
|
154
|
+
break;
|
|
155
|
+
case 'node':
|
|
156
|
+
packageJson.scripts = {
|
|
157
|
+
start: 'node src/index.js',
|
|
158
|
+
dev: 'nodemon src/index.js',
|
|
159
|
+
test: 'jest'
|
|
160
|
+
};
|
|
161
|
+
packageJson.dependencies = {
|
|
162
|
+
'express': '^4.18.0'
|
|
163
|
+
};
|
|
164
|
+
packageJson.devDependencies = {
|
|
165
|
+
'nodemon': '^3.0.0',
|
|
166
|
+
'jest': '^29.0.0'
|
|
167
|
+
};
|
|
168
|
+
await fs.ensureDir(path.join(projectPath, 'src'));
|
|
169
|
+
await fs.writeFile(path.join(projectPath, 'src/index.js'), `const express = require('express');
|
|
170
|
+
const app = express();
|
|
171
|
+
const port = process.env.PORT || 3000;
|
|
172
|
+
|
|
173
|
+
app.get('/', (req, res) => {
|
|
174
|
+
res.json({ message: 'Hello from ${packageJson.name}!' });
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
app.listen(port, () => {
|
|
178
|
+
console.log(\`Server running on port \${port}\`);
|
|
179
|
+
});`);
|
|
180
|
+
break;
|
|
181
|
+
case 'python':
|
|
182
|
+
packageJson.scripts = {
|
|
183
|
+
start: 'python src/main.py',
|
|
184
|
+
dev: 'python -m uvicorn src.main:app --reload',
|
|
185
|
+
test: 'pytest'
|
|
186
|
+
};
|
|
187
|
+
await fs.ensureDir(path.join(projectPath, 'src'));
|
|
188
|
+
await fs.writeFile(path.join(projectPath, 'src/main.py'), `from fastapi import FastAPI
|
|
189
|
+
|
|
190
|
+
app = FastAPI(title="${packageJson.name}")
|
|
191
|
+
|
|
192
|
+
@app.get("/")
|
|
193
|
+
async def root():
|
|
194
|
+
return {"message": "Hello from ${packageJson.name}!", "toolkit": "Claude Code"}
|
|
195
|
+
|
|
196
|
+
@app.get("/health")
|
|
197
|
+
async def health():
|
|
198
|
+
return {"status": "healthy"}`);
|
|
199
|
+
await fs.writeFile(path.join(projectPath, 'requirements.txt'), `fastapi==0.104.0
|
|
200
|
+
uvicorn[standard]==0.24.0
|
|
201
|
+
pytest==7.4.0`);
|
|
202
|
+
break;
|
|
203
|
+
default:
|
|
204
|
+
throw new Error(`Unsupported project type: ${type}`);
|
|
205
|
+
}
|
|
206
|
+
// Write package.json
|
|
207
|
+
await fs.writeJson(path.join(projectPath, 'package.json'), packageJson, { spaces: 2 });
|
|
208
|
+
// Create README
|
|
209
|
+
const readme = `# ${packageJson.name}
|
|
210
|
+
|
|
211
|
+
Created with Claude Code toolkit.
|
|
212
|
+
|
|
213
|
+
## Getting Started
|
|
214
|
+
|
|
215
|
+
\`\`\`bash
|
|
216
|
+
npm install
|
|
217
|
+
npm run dev
|
|
218
|
+
\`\`\`
|
|
219
|
+
|
|
220
|
+
## Claude Code Features
|
|
221
|
+
|
|
222
|
+
This project includes:
|
|
223
|
+
- 🤖 Specialized AI agents for development tasks
|
|
224
|
+
- 🛠️ Reusable skills for common workflows
|
|
225
|
+
- 🔄 Automated hooks for quality assurance
|
|
226
|
+
- 📚 Persistent memory system
|
|
227
|
+
- 🎨 Professional UI/UX patterns
|
|
228
|
+
|
|
229
|
+
## Next Steps
|
|
230
|
+
|
|
231
|
+
1. Upload skills to [Claude.ai settings](https://claude.ai/settings)
|
|
232
|
+
2. Set up hooks: \`.claude/hooks/hook-manager.sh setup\`
|
|
233
|
+
3. Install git hooks: \`.claude/hooks/hook-manager.sh install\`
|
|
234
|
+
4. Start developing with AI-enhanced workflows!
|
|
235
|
+
|
|
236
|
+
## Available Agents
|
|
237
|
+
|
|
238
|
+
- **code-reviewer**: Automated code quality checks
|
|
239
|
+
- **doc-writer**: Professional documentation generation
|
|
240
|
+
- **test-generator**: Comprehensive test suite creation
|
|
241
|
+
- **debugger**: Systematic debugging assistance
|
|
242
|
+
- **researcher**: Technical research and insights
|
|
243
|
+
- **mobile-ui-specialist**: Professional mobile UI/UX
|
|
244
|
+
|
|
245
|
+
## Available Skills
|
|
246
|
+
|
|
247
|
+
- **professional-documentation-writer**: Creates comprehensive docs
|
|
248
|
+
- **mobile-ui-ux-master**: Eliminates layout and consistency issues
|
|
249
|
+
- **claude-code-hooks-master**: Automation and workflow enhancement
|
|
250
|
+
- **persistent-memory-system**: Project knowledge management
|
|
251
|
+
`;
|
|
252
|
+
await fs.writeFile(path.join(projectPath, 'README.md'), readme);
|
|
253
|
+
}
|
|
254
|
+
async function installClaudeToolkit(projectPath, toolkitRoot) {
|
|
255
|
+
const originalCwd = process.cwd();
|
|
256
|
+
try {
|
|
257
|
+
process.chdir(projectPath);
|
|
258
|
+
// Copy Claude Code configurations
|
|
259
|
+
const claudeSource = path.join(toolkitRoot, '.claude');
|
|
260
|
+
const claudeDest = path.join(projectPath, '.claude');
|
|
261
|
+
if (await fs.pathExists(claudeSource)) {
|
|
262
|
+
await fs.copy(claudeSource, claudeDest);
|
|
263
|
+
console.log('✅ Claude Code toolkit integrated');
|
|
264
|
+
}
|
|
265
|
+
// Install dependencies for toolkit features
|
|
266
|
+
const packageJson = await fs.readJson(path.join(projectPath, 'package.json'));
|
|
267
|
+
if (!packageJson.dependencies)
|
|
268
|
+
packageJson.dependencies = {};
|
|
269
|
+
if (!packageJson.devDependencies)
|
|
270
|
+
packageJson.devDependencies = {};
|
|
271
|
+
// Add styled-components for mobile UI skill
|
|
272
|
+
packageJson.dependencies['styled-components'] = '^6.1.0';
|
|
273
|
+
packageJson.devDependencies['@types/styled-components'] = '^5.1.0';
|
|
274
|
+
await fs.writeJson(path.join(projectPath, 'package.json'), packageJson, { spaces: 2 });
|
|
275
|
+
console.log('✅ Dependencies configured');
|
|
276
|
+
}
|
|
277
|
+
finally {
|
|
278
|
+
process.chdir(originalCwd);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
//# sourceMappingURL=template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAEA,wBAAsB,aAAa,kBAelC"}
|