@allthingsclaude/blueprints 0.1.1
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/LICENSE +21 -0
- package/README.md +413 -0
- package/bin/cli.js +4 -0
- package/content/agents/audit.md +553 -0
- package/content/agents/bootstrap.md +386 -0
- package/content/agents/finalize.md +490 -0
- package/content/agents/handoff.md +207 -0
- package/content/agents/implement.md +350 -0
- package/content/agents/parallelize.md +484 -0
- package/content/agents/plan.md +309 -0
- package/content/agents/research-codebase.md +33 -0
- package/content/agents/research-docs.md +34 -0
- package/content/agents/research-web.md +34 -0
- package/content/commands/audit.md +54 -0
- package/content/commands/bootstrap.md +46 -0
- package/content/commands/brainstorm.md +76 -0
- package/content/commands/challenge.md +26 -0
- package/content/commands/cleanup.md +326 -0
- package/content/commands/critique.md +34 -0
- package/content/commands/debug.md +283 -0
- package/content/commands/explain.md +340 -0
- package/content/commands/finalize.md +49 -0
- package/content/commands/flush.md +29 -0
- package/content/commands/handoff.md +46 -0
- package/content/commands/implement.md +67 -0
- package/content/commands/kickoff.md +65 -0
- package/content/commands/parallelize.md +118 -0
- package/content/commands/pickup.md +30 -0
- package/content/commands/plan.md +38 -0
- package/content/commands/refactor.md +406 -0
- package/content/commands/research.md +58 -0
- package/content/commands/test.md +229 -0
- package/content/commands/verify.md +16 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +150 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/installer.d.ts +49 -0
- package/dist/installer.d.ts.map +1 -0
- package/dist/installer.js +125 -0
- package/dist/installer.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run tests with intelligent analysis and fix suggestions
|
|
3
|
+
argument-hint: [optional: file pattern, test name, or "generate" for new tests]
|
|
4
|
+
author: "@markoradak"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Test Assistant
|
|
8
|
+
|
|
9
|
+
I'll help you run tests, analyze failures, and generate missing test coverage.
|
|
10
|
+
|
|
11
|
+
## Current State
|
|
12
|
+
|
|
13
|
+
**Working Directory**: !`pwd`
|
|
14
|
+
|
|
15
|
+
**Branch**: !`git branch --show-current`
|
|
16
|
+
|
|
17
|
+
**Test Configuration**:
|
|
18
|
+
!`ls -la vitest.config.* jest.config.* 2>/dev/null || echo "No test config found"`
|
|
19
|
+
|
|
20
|
+
**Test Files**:
|
|
21
|
+
!`find . -name "*.test.ts" -o -name "*.test.tsx" -o -name "*.spec.ts" -o -name "*.spec.tsx" 2>/dev/null | head -20 | wc -l` test files found
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Focus Area
|
|
26
|
+
|
|
27
|
+
$ARGUMENTS
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Test Workflow
|
|
32
|
+
|
|
33
|
+
Based on the arguments, determine the appropriate action:
|
|
34
|
+
|
|
35
|
+
### If no arguments or "run":
|
|
36
|
+
1. Run the full test suite: `pnpm test` or `pnpm test:run`
|
|
37
|
+
2. Analyze any failures
|
|
38
|
+
3. Provide fix suggestions
|
|
39
|
+
|
|
40
|
+
### If file pattern provided (e.g., "auth", "user.test.ts"):
|
|
41
|
+
1. Run targeted tests: `pnpm test [pattern]`
|
|
42
|
+
2. Show detailed output for failures
|
|
43
|
+
3. Suggest fixes
|
|
44
|
+
|
|
45
|
+
### If "generate" or "coverage":
|
|
46
|
+
1. Identify files without test coverage
|
|
47
|
+
2. Analyze the code structure
|
|
48
|
+
3. Generate test file templates with meaningful test cases
|
|
49
|
+
|
|
50
|
+
### If "watch":
|
|
51
|
+
1. Start test watcher: `pnpm test:watch` or `pnpm test --watch`
|
|
52
|
+
2. Provide guidance on TDD workflow
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Test Analysis Framework
|
|
57
|
+
|
|
58
|
+
When tests fail, analyze systematically:
|
|
59
|
+
|
|
60
|
+
### 1. Categorize Failures
|
|
61
|
+
|
|
62
|
+
**Assertion Failures**:
|
|
63
|
+
- Expected vs actual value mismatch
|
|
64
|
+
- Missing or incorrect mock data
|
|
65
|
+
- Race conditions or timing issues
|
|
66
|
+
|
|
67
|
+
**Runtime Errors**:
|
|
68
|
+
- Import/module resolution
|
|
69
|
+
- Missing dependencies or mocks
|
|
70
|
+
- Type errors at runtime
|
|
71
|
+
|
|
72
|
+
**Environment Issues**:
|
|
73
|
+
- Missing env variables
|
|
74
|
+
- Database connection failures
|
|
75
|
+
- External service dependencies
|
|
76
|
+
|
|
77
|
+
### 2. Root Cause Analysis
|
|
78
|
+
|
|
79
|
+
For each failure:
|
|
80
|
+
- Read the test file and understand intent
|
|
81
|
+
- Read the implementation being tested
|
|
82
|
+
- Identify the gap between expected and actual behavior
|
|
83
|
+
- Check if it's a test bug or implementation bug
|
|
84
|
+
|
|
85
|
+
### 3. Fix Suggestions
|
|
86
|
+
|
|
87
|
+
Provide specific, actionable fixes:
|
|
88
|
+
```markdown
|
|
89
|
+
### `path/to/file.test.ts:42` - Test Name
|
|
90
|
+
|
|
91
|
+
**Error**: [Error message]
|
|
92
|
+
|
|
93
|
+
**Root Cause**: [Analysis]
|
|
94
|
+
|
|
95
|
+
**Fix Option 1** (Update test):
|
|
96
|
+
```typescript
|
|
97
|
+
// Change this...
|
|
98
|
+
// To this...
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Fix Option 2** (Update implementation):
|
|
102
|
+
```typescript
|
|
103
|
+
// The implementation should...
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**Recommendation**: [Which fix is appropriate and why]
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Test Generation Guidelines
|
|
112
|
+
|
|
113
|
+
When generating tests:
|
|
114
|
+
|
|
115
|
+
### Structure
|
|
116
|
+
```typescript
|
|
117
|
+
import { describe, it, expect, vi, beforeEach } from 'vitest'
|
|
118
|
+
|
|
119
|
+
describe('[Component/Function Name]', () => {
|
|
120
|
+
beforeEach(() => {
|
|
121
|
+
// Reset mocks and state
|
|
122
|
+
})
|
|
123
|
+
|
|
124
|
+
describe('[method or behavior]', () => {
|
|
125
|
+
it('should [expected behavior] when [condition]', () => {
|
|
126
|
+
// Arrange
|
|
127
|
+
// Act
|
|
128
|
+
// Assert
|
|
129
|
+
})
|
|
130
|
+
|
|
131
|
+
it('should handle [edge case]', () => {
|
|
132
|
+
// Test edge cases
|
|
133
|
+
})
|
|
134
|
+
|
|
135
|
+
it('should throw when [error condition]', () => {
|
|
136
|
+
// Test error handling
|
|
137
|
+
})
|
|
138
|
+
})
|
|
139
|
+
})
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Coverage Priorities
|
|
143
|
+
1. **Happy path**: Normal expected usage
|
|
144
|
+
2. **Edge cases**: Empty inputs, boundaries, nulls
|
|
145
|
+
3. **Error cases**: Invalid inputs, network failures
|
|
146
|
+
4. **Integration points**: API calls, database operations
|
|
147
|
+
|
|
148
|
+
### Mocking Strategy
|
|
149
|
+
- Mock external dependencies (APIs, databases)
|
|
150
|
+
- Use real implementations for pure functions
|
|
151
|
+
- Mock time-sensitive operations (dates, timers)
|
|
152
|
+
- Use `vi.spyOn` for partial mocks
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Output Format
|
|
157
|
+
|
|
158
|
+
### After Running Tests
|
|
159
|
+
|
|
160
|
+
```markdown
|
|
161
|
+
# Test Results
|
|
162
|
+
|
|
163
|
+
**Suite**: [test suite name or pattern]
|
|
164
|
+
**Status**: [PASS/FAIL]
|
|
165
|
+
**Duration**: [time]
|
|
166
|
+
|
|
167
|
+
## Summary
|
|
168
|
+
- Total: [X] tests
|
|
169
|
+
- Passed: [Y]
|
|
170
|
+
- Failed: [Z]
|
|
171
|
+
- Skipped: [N]
|
|
172
|
+
|
|
173
|
+
## Failures (if any)
|
|
174
|
+
|
|
175
|
+
### 1. `path/to/test.ts:42` - [Test Name]
|
|
176
|
+
|
|
177
|
+
**Error**:
|
|
178
|
+
```
|
|
179
|
+
[Error output]
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
**Analysis**: [Root cause explanation]
|
|
183
|
+
|
|
184
|
+
**Suggested Fix**:
|
|
185
|
+
```typescript
|
|
186
|
+
[Code fix]
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Recommendations
|
|
192
|
+
|
|
193
|
+
- [Action item 1]
|
|
194
|
+
- [Action item 2]
|
|
195
|
+
|
|
196
|
+
## Next Steps
|
|
197
|
+
|
|
198
|
+
1. Fix failing tests (if any)
|
|
199
|
+
2. Run `pnpm test` to verify fixes
|
|
200
|
+
3. Consider adding tests for [uncovered area]
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Special Considerations
|
|
206
|
+
|
|
207
|
+
### Async Testing
|
|
208
|
+
- Use `async/await` properly
|
|
209
|
+
- Handle promise rejections
|
|
210
|
+
- Set appropriate timeouts
|
|
211
|
+
|
|
212
|
+
### Component Testing (React)
|
|
213
|
+
- Use `@testing-library/react`
|
|
214
|
+
- Test user behavior, not implementation
|
|
215
|
+
- Avoid testing internal state
|
|
216
|
+
|
|
217
|
+
### API/tRPC Testing
|
|
218
|
+
- Mock Prisma client
|
|
219
|
+
- Test input validation
|
|
220
|
+
- Verify error responses
|
|
221
|
+
|
|
222
|
+
### Database Testing
|
|
223
|
+
- Use transactions for isolation
|
|
224
|
+
- Clean up test data
|
|
225
|
+
- Consider test fixtures
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
Execute the appropriate test workflow based on the arguments provided. Use Bash to run tests, Read to analyze files, and provide comprehensive analysis of results.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Verification Mode
|
|
3
|
+
author: "@markoradak"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Verification Mode
|
|
7
|
+
|
|
8
|
+
Before proceeding with this task, perform a quick verification check:
|
|
9
|
+
|
|
10
|
+
1. **Is this the right approach?** Briefly mention if there's a more standard or efficient way
|
|
11
|
+
2. **Any gotchas?** Point out one potential issue or edge case to consider
|
|
12
|
+
3. **Quick alternative?** If there's an obviously better approach, mention it in one sentence
|
|
13
|
+
|
|
14
|
+
Keep it brief - just enough to make sure we're on the right track.
|
|
15
|
+
|
|
16
|
+
$ARGUMENTS
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { program } from 'commander';
|
|
3
|
+
import inquirer from 'inquirer';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import ora from 'ora';
|
|
6
|
+
import { installBlueprints, getDefaultClaudeDir, getInstallPaths } from './installer.js';
|
|
7
|
+
import { createRequire } from 'module';
|
|
8
|
+
const require = createRequire(import.meta.url);
|
|
9
|
+
const pkg = require('../package.json');
|
|
10
|
+
program
|
|
11
|
+
.name('blueprints')
|
|
12
|
+
.description(pkg.description)
|
|
13
|
+
.version(pkg.version)
|
|
14
|
+
.option('-g, --global', 'Install to default Claude directory (~/.claude)')
|
|
15
|
+
.option('-l, --local', 'Install to current directory (./.claude)')
|
|
16
|
+
.option('-p, --path <path>', 'Install to a custom path')
|
|
17
|
+
.option('-y, --yes', 'Skip confirmation prompts')
|
|
18
|
+
.parse(process.argv);
|
|
19
|
+
const options = program.opts();
|
|
20
|
+
async function main() {
|
|
21
|
+
console.log();
|
|
22
|
+
console.log(chalk.bold.cyan(' Claude Code Blueprints'));
|
|
23
|
+
console.log(chalk.dim(' Install commands and agents for enhanced AI-assisted development'));
|
|
24
|
+
console.log();
|
|
25
|
+
let targetPath;
|
|
26
|
+
let installType;
|
|
27
|
+
// Determine installation path
|
|
28
|
+
if (options.path) {
|
|
29
|
+
targetPath = options.path;
|
|
30
|
+
installType = 'custom';
|
|
31
|
+
}
|
|
32
|
+
else if (options.global) {
|
|
33
|
+
targetPath = getDefaultClaudeDir();
|
|
34
|
+
installType = 'global';
|
|
35
|
+
}
|
|
36
|
+
else if (options.local) {
|
|
37
|
+
targetPath = process.cwd();
|
|
38
|
+
installType = 'local';
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
// Interactive mode
|
|
42
|
+
const answer = await inquirer.prompt([
|
|
43
|
+
{
|
|
44
|
+
type: 'list',
|
|
45
|
+
name: 'location',
|
|
46
|
+
message: 'Where would you like to install the blueprints?',
|
|
47
|
+
choices: [
|
|
48
|
+
{
|
|
49
|
+
name: `Global Claude directory (${getDefaultClaudeDir()})`,
|
|
50
|
+
value: 'global',
|
|
51
|
+
short: 'Global'
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: `Current directory (${process.cwd()})`,
|
|
55
|
+
value: 'local',
|
|
56
|
+
short: 'Local'
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: 'Custom path...',
|
|
60
|
+
value: 'custom',
|
|
61
|
+
short: 'Custom'
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
]);
|
|
66
|
+
installType = answer.location;
|
|
67
|
+
if (installType === 'global') {
|
|
68
|
+
targetPath = getDefaultClaudeDir();
|
|
69
|
+
}
|
|
70
|
+
else if (installType === 'local') {
|
|
71
|
+
targetPath = process.cwd();
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
const customAnswer = await inquirer.prompt([
|
|
75
|
+
{
|
|
76
|
+
type: 'input',
|
|
77
|
+
name: 'customPath',
|
|
78
|
+
message: 'Enter the installation path:',
|
|
79
|
+
validate: (input) => input.trim().length > 0 || 'Please enter a valid path'
|
|
80
|
+
}
|
|
81
|
+
]);
|
|
82
|
+
targetPath = customAnswer.customPath;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Show what will be installed
|
|
86
|
+
const paths = getInstallPaths(targetPath);
|
|
87
|
+
console.log();
|
|
88
|
+
console.log(chalk.yellow('Installation Summary:'));
|
|
89
|
+
console.log(chalk.dim('─'.repeat(50)));
|
|
90
|
+
console.log(` ${chalk.bold('Commands:')} 20 files → ${chalk.cyan(paths.commands)}`);
|
|
91
|
+
console.log(` ${chalk.bold('Agents:')} 10 files → ${chalk.cyan(paths.agents)}`);
|
|
92
|
+
console.log(chalk.dim('─'.repeat(50)));
|
|
93
|
+
console.log();
|
|
94
|
+
// Confirm installation unless --yes flag is provided
|
|
95
|
+
if (!options.yes) {
|
|
96
|
+
const confirm = await inquirer.prompt([
|
|
97
|
+
{
|
|
98
|
+
type: 'confirm',
|
|
99
|
+
name: 'proceed',
|
|
100
|
+
message: 'Proceed with installation?',
|
|
101
|
+
default: true
|
|
102
|
+
}
|
|
103
|
+
]);
|
|
104
|
+
if (!confirm.proceed) {
|
|
105
|
+
console.log(chalk.yellow('Installation cancelled.'));
|
|
106
|
+
process.exit(0);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// Perform installation
|
|
110
|
+
const spinner = ora('Installing blueprints...').start();
|
|
111
|
+
try {
|
|
112
|
+
const result = await installBlueprints(targetPath);
|
|
113
|
+
spinner.succeed(chalk.green('Installation complete!'));
|
|
114
|
+
console.log();
|
|
115
|
+
console.log(chalk.dim('─'.repeat(50)));
|
|
116
|
+
console.log(` ${chalk.green('✓')} ${result.commands} commands installed`);
|
|
117
|
+
console.log(` ${chalk.green('✓')} ${result.agents} agents installed`);
|
|
118
|
+
console.log(chalk.dim('─'.repeat(50)));
|
|
119
|
+
console.log();
|
|
120
|
+
// Show next steps
|
|
121
|
+
console.log(chalk.bold('Next steps:'));
|
|
122
|
+
console.log();
|
|
123
|
+
if (installType === 'global') {
|
|
124
|
+
console.log(` ${chalk.cyan('1.')} Open Claude Code in any project`);
|
|
125
|
+
console.log(` ${chalk.cyan('2.')} Type ${chalk.yellow('/plan')} to start planning, ${chalk.yellow('/research')} to research, etc.`);
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
console.log(` ${chalk.cyan('1.')} Navigate to ${chalk.cyan(targetPath)}`);
|
|
129
|
+
console.log(` ${chalk.cyan('2.')} Open Claude Code: ${chalk.yellow('claude')}`);
|
|
130
|
+
console.log(` ${chalk.cyan('3.')} Type ${chalk.yellow('/plan')} to start planning, ${chalk.yellow('/research')} to research, etc.`);
|
|
131
|
+
}
|
|
132
|
+
console.log();
|
|
133
|
+
console.log(chalk.dim('Available commands: /audit, /bootstrap, /brainstorm, /challenge, /cleanup,'));
|
|
134
|
+
console.log(chalk.dim('/critique, /debug, /explain, /finalize, /flush, /handoff, /implement,'));
|
|
135
|
+
console.log(chalk.dim('/kickoff, /parallelize, /pickup, /plan, /refactor, /research, /test, /verify'));
|
|
136
|
+
console.log();
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
spinner.fail(chalk.red('Installation failed'));
|
|
140
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
141
|
+
console.error(chalk.red(`Error: ${errorMessage}`));
|
|
142
|
+
process.exit(1);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
main().catch((error) => {
|
|
146
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
147
|
+
console.error(chalk.red(`Unexpected error: ${errorMessage}`));
|
|
148
|
+
process.exit(1);
|
|
149
|
+
});
|
|
150
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @allthingsclaude/blueprints
|
|
3
|
+
*
|
|
4
|
+
* Install Claude Code commands and agents for enhanced AI-assisted development workflows.
|
|
5
|
+
*/
|
|
6
|
+
export { getDefaultClaudeDir, getInstallPaths, getSourcePaths, installBlueprints, checkExistingInstallation, ensureDir, copyDirectory } from './installer.js';
|
|
7
|
+
export type { InstallPaths, SourcePaths, InstallResult, ExistingInstallation } from './installer.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,yBAAyB,EACzB,SAAS,EACT,aAAa,EACd,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,oBAAoB,EACrB,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @allthingsclaude/blueprints
|
|
3
|
+
*
|
|
4
|
+
* Install Claude Code commands and agents for enhanced AI-assisted development workflows.
|
|
5
|
+
*/
|
|
6
|
+
export { getDefaultClaudeDir, getInstallPaths, getSourcePaths, installBlueprints, checkExistingInstallation, ensureDir, copyDirectory } from './installer.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,yBAAyB,EACzB,SAAS,EACT,aAAa,EACd,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export interface InstallPaths {
|
|
2
|
+
base: string;
|
|
3
|
+
commands: string;
|
|
4
|
+
agents: string;
|
|
5
|
+
}
|
|
6
|
+
export interface SourcePaths {
|
|
7
|
+
commands: string;
|
|
8
|
+
agents: string;
|
|
9
|
+
}
|
|
10
|
+
export interface InstallResult {
|
|
11
|
+
commands: number;
|
|
12
|
+
agents: number;
|
|
13
|
+
paths: InstallPaths;
|
|
14
|
+
}
|
|
15
|
+
export interface ExistingInstallation {
|
|
16
|
+
hasCommands: boolean;
|
|
17
|
+
hasAgents: boolean;
|
|
18
|
+
commandsPath: string;
|
|
19
|
+
agentsPath: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Get the default Claude directory based on the operating system
|
|
23
|
+
*/
|
|
24
|
+
export declare function getDefaultClaudeDir(): string;
|
|
25
|
+
/**
|
|
26
|
+
* Get the installation paths for commands and agents
|
|
27
|
+
*/
|
|
28
|
+
export declare function getInstallPaths(basePath: string): InstallPaths;
|
|
29
|
+
/**
|
|
30
|
+
* Get the source directory for blueprints (within the package)
|
|
31
|
+
*/
|
|
32
|
+
export declare function getSourcePaths(): SourcePaths;
|
|
33
|
+
/**
|
|
34
|
+
* Ensure a directory exists, creating it if necessary
|
|
35
|
+
*/
|
|
36
|
+
export declare function ensureDir(dirPath: string): void;
|
|
37
|
+
/**
|
|
38
|
+
* Copy all files from source to destination directory
|
|
39
|
+
*/
|
|
40
|
+
export declare function copyDirectory(srcDir: string, destDir: string): number;
|
|
41
|
+
/**
|
|
42
|
+
* Install blueprints to the target path
|
|
43
|
+
*/
|
|
44
|
+
export declare function installBlueprints(targetPath: string): Promise<InstallResult>;
|
|
45
|
+
/**
|
|
46
|
+
* Check if blueprints are already installed at a path
|
|
47
|
+
*/
|
|
48
|
+
export declare function checkExistingInstallation(targetPath: string): ExistingInstallation;
|
|
49
|
+
//# sourceMappingURL=installer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAa5C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAqB9D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAO5C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI/C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAsBrE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA0BlF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,CASlF"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import os from 'os';
|
|
4
|
+
import { fileURLToPath } from 'url';
|
|
5
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = path.dirname(__filename);
|
|
7
|
+
/**
|
|
8
|
+
* Get the default Claude directory based on the operating system
|
|
9
|
+
*/
|
|
10
|
+
export function getDefaultClaudeDir() {
|
|
11
|
+
const homeDir = os.homedir();
|
|
12
|
+
switch (process.platform) {
|
|
13
|
+
case 'win32':
|
|
14
|
+
// Windows: Use USERPROFILE or fallback to homedir
|
|
15
|
+
return path.join(process.env.USERPROFILE || homeDir, '.claude');
|
|
16
|
+
case 'darwin':
|
|
17
|
+
case 'linux':
|
|
18
|
+
default:
|
|
19
|
+
// macOS and Linux: ~/.claude
|
|
20
|
+
return path.join(homeDir, '.claude');
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Get the installation paths for commands and agents
|
|
25
|
+
*/
|
|
26
|
+
export function getInstallPaths(basePath) {
|
|
27
|
+
// Resolve ~ to home directory if present
|
|
28
|
+
let resolvedPath = basePath;
|
|
29
|
+
if (basePath.startsWith('~')) {
|
|
30
|
+
resolvedPath = path.join(os.homedir(), basePath.slice(1));
|
|
31
|
+
}
|
|
32
|
+
// If the path already ends with .claude, use it directly
|
|
33
|
+
// Otherwise, append .claude
|
|
34
|
+
let claudeDir;
|
|
35
|
+
if (resolvedPath.endsWith('.claude') || resolvedPath.includes('.claude' + path.sep)) {
|
|
36
|
+
claudeDir = resolvedPath;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
claudeDir = path.join(resolvedPath, '.claude');
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
base: claudeDir,
|
|
43
|
+
commands: path.join(claudeDir, 'commands'),
|
|
44
|
+
agents: path.join(claudeDir, 'agents')
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get the source directory for blueprints (within the package)
|
|
49
|
+
*/
|
|
50
|
+
export function getSourcePaths() {
|
|
51
|
+
// When compiled, __dirname will be in dist/, so we need to go up one level
|
|
52
|
+
const packageRoot = path.join(__dirname, '..');
|
|
53
|
+
return {
|
|
54
|
+
commands: path.join(packageRoot, 'content', 'commands'),
|
|
55
|
+
agents: path.join(packageRoot, 'content', 'agents')
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Ensure a directory exists, creating it if necessary
|
|
60
|
+
*/
|
|
61
|
+
export function ensureDir(dirPath) {
|
|
62
|
+
if (!fs.existsSync(dirPath)) {
|
|
63
|
+
fs.mkdirSync(dirPath, { recursive: true });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Copy all files from source to destination directory
|
|
68
|
+
*/
|
|
69
|
+
export function copyDirectory(srcDir, destDir) {
|
|
70
|
+
ensureDir(destDir);
|
|
71
|
+
const files = fs.readdirSync(srcDir);
|
|
72
|
+
let copiedCount = 0;
|
|
73
|
+
for (const file of files) {
|
|
74
|
+
const srcFile = path.join(srcDir, file);
|
|
75
|
+
const destFile = path.join(destDir, file);
|
|
76
|
+
const stat = fs.statSync(srcFile);
|
|
77
|
+
if (stat.isFile()) {
|
|
78
|
+
fs.copyFileSync(srcFile, destFile);
|
|
79
|
+
copiedCount++;
|
|
80
|
+
}
|
|
81
|
+
else if (stat.isDirectory()) {
|
|
82
|
+
// Recursively copy subdirectories
|
|
83
|
+
copiedCount += copyDirectory(srcFile, path.join(destDir, file));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return copiedCount;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Install blueprints to the target path
|
|
90
|
+
*/
|
|
91
|
+
export async function installBlueprints(targetPath) {
|
|
92
|
+
const sourcePaths = getSourcePaths();
|
|
93
|
+
const installPaths = getInstallPaths(targetPath);
|
|
94
|
+
// Verify source directories exist
|
|
95
|
+
if (!fs.existsSync(sourcePaths.commands)) {
|
|
96
|
+
throw new Error(`Source commands directory not found: ${sourcePaths.commands}`);
|
|
97
|
+
}
|
|
98
|
+
if (!fs.existsSync(sourcePaths.agents)) {
|
|
99
|
+
throw new Error(`Source agents directory not found: ${sourcePaths.agents}`);
|
|
100
|
+
}
|
|
101
|
+
// Ensure base .claude directory exists
|
|
102
|
+
ensureDir(installPaths.base);
|
|
103
|
+
// Copy commands
|
|
104
|
+
const commandsCount = copyDirectory(sourcePaths.commands, installPaths.commands);
|
|
105
|
+
// Copy agents
|
|
106
|
+
const agentsCount = copyDirectory(sourcePaths.agents, installPaths.agents);
|
|
107
|
+
return {
|
|
108
|
+
commands: commandsCount,
|
|
109
|
+
agents: agentsCount,
|
|
110
|
+
paths: installPaths
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Check if blueprints are already installed at a path
|
|
115
|
+
*/
|
|
116
|
+
export function checkExistingInstallation(targetPath) {
|
|
117
|
+
const paths = getInstallPaths(targetPath);
|
|
118
|
+
return {
|
|
119
|
+
hasCommands: fs.existsSync(paths.commands) && fs.readdirSync(paths.commands).length > 0,
|
|
120
|
+
hasAgents: fs.existsSync(paths.agents) && fs.readdirSync(paths.agents).length > 0,
|
|
121
|
+
commandsPath: paths.commands,
|
|
122
|
+
agentsPath: paths.agents
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=installer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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"}
|