@tc9011/skills-manager 0.1.0 → 0.2.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/README.md CHANGED
@@ -1,16 +1,41 @@
1
+ <div align="center">
2
+
1
3
  # skills-manager
2
4
 
3
- A CLI companion to [vercel-labs/skills](https://github.com/vercel-labs/skills) that backs up your AI agent skills to GitHub and restores them with automatic agent symlink creation.
5
+ **Backup and restore your AI agent skills to GitHub.**
6
+
7
+ A CLI companion to [vercel-labs/skills](https://github.com/vercel-labs/skills) — push your `~/.agents/` directory to a remote repo, pull it on any machine, and automatically symlink skills to all your agents.
8
+
9
+ [![npm version](https://img.shields.io/npm/v/%40tc9011%2Fskills-manager?color=cb0000&label=npm)](https://www.npmjs.com/package/@tc9011/skills-manager)
10
+ [![CI](https://img.shields.io/github/actions/workflow/status/tc9011/skills-manager/ci.yml?label=CI)](https://github.com/tc9011/skills-manager/actions/workflows/ci.yml)
11
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)
12
+ [![Node.js](https://img.shields.io/badge/node-%3E%3D20-brightgreen.svg)](https://nodejs.org/)
13
+
14
+ </div>
15
+
16
+ ---
4
17
 
5
18
  ## Why
6
19
 
7
- `vercel-labs/skills` installs and manages skills, but it doesn't handle:
20
+ [vercel-labs/skills](https://github.com/vercel-labs/skills) installs and manages skills, but doesn't handle backup, restore, or cross-machine sync. `skills-manager` fills that gap:
21
+
22
+ - **Push** — commit and push `~/.agents/` (skills + lock file) to GitHub
23
+ - **Pull** — clone or pull your skills on any machine
24
+ - **Link** — read `.skill-lock.json` and create symlinks to every agent you use
25
+
26
+ > **Note:** This tool reads `.skill-lock.json` but never modifies it — that file is owned by `vercel-labs/skills`.
8
27
 
9
- - **Backup** — pushing your `~/.agents/` directory (skills + lock file) to a remote GitHub repo
10
- - **Restore** — cloning skills back on a new machine
11
- - **Agent linking** — reading `.skill-lock.json` and creating symlinks to every agent you use
28
+ ## Installation
12
29
 
13
- `skills-manager` fills that gap. It backs up the entire `~/.agents/` directory (including `.skill-lock.json` and `skills/`), reads the lock file that `vercel-labs/skills` owns (never modifies it), and creates relative symlinks from each agent's skills directory back to the canonical `~/.agents/skills/` source.
30
+ ```bash
31
+ # Run directly (no install)
32
+ npx @tc9011/skills-manager push
33
+
34
+ # Or install globally
35
+ npm install -g @tc9011/skills-manager
36
+ ```
37
+
38
+ **Requirements:** Node.js ≥ 20, [GitHub CLI](https://cli.github.com/) (`gh`) recommended for auth.
14
39
 
15
40
  ## Quick Start
16
41
 
@@ -18,18 +43,20 @@ A CLI companion to [vercel-labs/skills](https://github.com/vercel-labs/skills) t
18
43
  # 1. Backup skills to GitHub
19
44
  skills-manager push
20
45
 
21
- # 2. Restore skills on a new machine
46
+ # 2. Restore on a new machine
22
47
  skills-manager pull --repo owner/my-skills
23
48
 
24
- # 3. Link skills to your agents (auto-runs after pull)
49
+ # 3. Re-link skills to agents (auto-runs after pull)
25
50
  skills-manager link
26
51
  ```
27
52
 
53
+ On first run, `push` and `pull` will interactively set up a git repo and remote if `~/.agents/` isn't already one.
54
+
28
55
  ## Commands
29
56
 
30
- ### `push`
57
+ ### `skills-manager push`
31
58
 
32
- Commits and pushes the contents of `~/.agents/` (skills + `.skill-lock.json`) to its configured GitHub remote.
59
+ Commits and pushes `~/.agents/` to its configured GitHub remote.
33
60
 
34
61
  ```bash
35
62
  skills-manager push
@@ -40,11 +67,9 @@ skills-manager push -m "add new debugging skill"
40
67
  |--------|-------------|
41
68
  | `-m, --message <msg>` | Custom commit message (default: auto-generated) |
42
69
 
43
- **Prerequisites**: The `~/.agents/` directory must be a git repository with a remote configured.
44
-
45
- ### `pull`
70
+ ### `skills-manager pull`
46
71
 
47
- Clones or pulls the `~/.agents/` directory from GitHub, then automatically runs `link`.
72
+ Pulls from GitHub and automatically runs `link`.
48
73
 
49
74
  ```bash
50
75
  skills-manager pull --repo tc9011/my-skills
@@ -54,12 +79,12 @@ skills-manager pull --skip-link # pull only, don't link
54
79
 
55
80
  | Option | Description |
56
81
  |--------|-------------|
57
- | `-r, --repo <owner/name>` | GitHub repo to pull from (default: existing remote) |
82
+ | `-r, --repo <owner/name>` | GitHub repo to pull from |
58
83
  | `--skip-link` | Skip automatic agent linking after pull |
59
84
 
60
- ### `link`
85
+ ### `skills-manager link`
61
86
 
62
- Reads `~/.agents/.skill-lock.json` (owned by `vercel-labs/skills`) and creates relative symlinks from each agent's global skills directory to the canonical `~/.agents/skills/`.
87
+ Reads `.skill-lock.json` and creates relative symlinks from each agent's skills directory to the canonical `~/.agents/skills/`.
63
88
 
64
89
  ```bash
65
90
  skills-manager link
@@ -68,11 +93,11 @@ skills-manager link --agents cursor opencode claude-code
68
93
 
69
94
  | Option | Description |
70
95
  |--------|-------------|
71
- | `-a, --agents <ids...>` | Agent IDs to link (default: `lastSelectedAgents` from lock file) |
96
+ | `-a, --agents <ids...>` | Agent IDs to link (default: from lock file) |
72
97
 
73
- **Interactive**: Presents a multiselect prompt with all `lastSelectedAgents` pre-selected. You can deselect agents you don't want to link.
98
+ An interactive multiselect prompt lets you pick which agents to link. Only agents with local directories are pre-selected. Your selection is remembered for next time.
74
99
 
75
- **Symlink model**:
100
+ **Symlink model:**
76
101
 
77
102
  ```
78
103
  ~/.config/opencode/skills/my-skill → ../../../.agents/skills/my-skill (relative)
@@ -81,17 +106,20 @@ skills-manager link --agents cursor opencode claude-code
81
106
 
82
107
  ## Authentication
83
108
 
84
- Token resolution order:
109
+ Resolved in this order:
85
110
 
86
- 1. `gh auth token` — GitHub CLI (preferred)
87
- 2. `$GITHUB_TOKEN` environment variable
88
- 3. `$GH_TOKEN` environment variable
111
+ 1. **`gh auth token`** — GitHub CLI (recommended)
112
+ 2. **`$GITHUB_TOKEN`** environment variable
113
+ 3. **`$GH_TOKEN`** environment variable
89
114
 
90
- If none found, `push` and `pull` will fail with a clear error message. `link` does not require authentication.
115
+ If none found, you'll be prompted to run `gh auth login`. The `link` command does not require authentication.
91
116
 
92
117
  ## Supported Agents
93
118
 
94
- ### Universal Agents (share `.agents/skills`)
119
+ 41 agents matching the full [vercel-labs/skills](https://github.com/vercel-labs/skills) registry.
120
+
121
+ <details>
122
+ <summary><strong>Universal Agents</strong> (share <code>~/.agents/skills</code>)</summary>
95
123
 
96
124
  | Agent | ID | Global Path |
97
125
  |-------|----|-------------|
@@ -106,7 +134,10 @@ If none found, `push` and `pull` will fail with a clear error message. `link` do
106
134
  | Replit | `replit` | `~/.config/agents/skills` |
107
135
  | Universal | `universal` | `~/.config/agents/skills` |
108
136
 
109
- ### Non-Universal Agents (agent-specific paths)
137
+ </details>
138
+
139
+ <details>
140
+ <summary><strong>Non-Universal Agents</strong> (agent-specific paths)</summary>
110
141
 
111
142
  | Agent | ID | Global Path |
112
143
  |-------|----|-------------|
@@ -136,96 +167,110 @@ If none found, `push` and `pull` will fail with a clear error message. `link` do
136
167
  | Pochi | `pochi` | `~/.pochi/skills` |
137
168
  | Qoder | `qoder` | `~/.qoder/skills` |
138
169
  | Qwen Code | `qwen-code` | `~/.qwen/skills` |
139
- | Replit | `replit` | `~/.config/agents/skills` |
140
170
  | Roo Code | `roo` | `~/.roo/skills` |
141
171
  | Trae | `trae` | `~/.trae/skills` |
142
172
  | Trae CN | `trae-cn` | `~/.trae-cn/skills` |
143
173
  | Windsurf | `windsurf` | `~/.codeium/windsurf/skills` |
144
174
  | Zencoder | `zencoder` | `~/.zencoder/skills` |
145
175
 
146
- **41 agents total** — matching the full [vercel-labs/skills](https://github.com/vercel-labs/skills) agent registry.
176
+ </details>
147
177
 
148
178
  ## Environment Variables
149
179
 
150
180
  | Variable | Used By | Default |
151
181
  |----------|---------|---------|
152
- | `$GITHUB_TOKEN` | `push`, `pull` | — |
153
- | `$GH_TOKEN` | `push`, `pull` | — |
154
- | `$XDG_CONFIG_HOME` | `opencode`, `amp`, `kimi-cli`, `replit`, `universal` | `~/.config` |
155
- | `$CODEX_HOME` | `codex` | `~/.codex` |
156
- | `$CLAUDE_CONFIG_DIR` | `claude-code` | `~/.claude` |
182
+ | `GITHUB_TOKEN` | `push`, `pull` | — |
183
+ | `GH_TOKEN` | `push`, `pull` | — |
184
+ | `XDG_CONFIG_HOME` | `opencode`, `amp`, `kimi-cli`, `replit`, `universal` | `~/.config` |
185
+ | `CODEX_HOME` | `codex` | `~/.codex` |
186
+ | `CLAUDE_CONFIG_DIR` | `claude-code` | `~/.claude` |
187
+
188
+ ## How It Works
189
+
190
+ ```
191
+ ~/.agents/ ← Git repo (push/pull target)
192
+ ├── .skill-lock.json ← Owned by vercel-labs/skills (read-only)
193
+ └── skills/
194
+ ├── my-skill/
195
+ └── another-skill/
196
+
197
+ skills-manager link reads .skill-lock.json → creates relative symlinks:
198
+
199
+ ~/.cursor/skills/my-skill → ../../.agents/skills/my-skill
200
+ ~/.claude/skills/my-skill → ../../.agents/skills/my-skill
201
+ ~/.config/opencode/skills/my-skill → ../../../.agents/skills/my-skill
202
+ ```
157
203
 
158
- ## Development
204
+ ## Contributing
159
205
 
160
- ### Prerequisites
206
+ ### Setup
161
207
 
162
- - Node.js ≥ 20
163
- - GitHub CLI (`gh`) for authentication (recommended)
208
+ ```bash
209
+ git clone https://github.com/tc9011/skills-manager.git
210
+ cd skills-manager
211
+ npm install
212
+ ```
164
213
 
165
- ### Local Debugging
214
+ ### Development
166
215
 
167
216
  ```bash
168
- # Run any command directly with tsx (no build step needed)
217
+ # Run commands directly (no build step)
169
218
  npx tsx src/index.ts push
170
- npx tsx src/index.ts pull --repo owner/my-skills
171
219
  npx tsx src/index.ts link
172
- npx tsx src/index.ts link --agents cursor opencode
173
220
 
174
- # Or use the dev script (same thing)
221
+ # Or via npm script
175
222
  npm run dev -- push
176
- npm run dev -- link -- --agents cursor
177
223
  ```
178
224
 
179
- To simulate a real global install:
225
+ ### Testing
180
226
 
181
227
  ```bash
182
- npm link # register skills-manager globally
183
- skills-manager push # use it like an end user
184
- npm unlink -g skills-manager # clean up when done
228
+ npm test # run tests
229
+ npm run test:watch # watch mode
230
+ npm run test:coverage # with coverage report
185
231
  ```
186
232
 
187
- ### Scripts
233
+ ### Build
188
234
 
189
235
  ```bash
190
- npm install # install dependencies
191
- npm run dev # run via tsx (development)
192
- npm test # run tests (vitest)
193
- npm run test:watch # watch mode
194
- npm run build # compile TypeScript to dist/
236
+ npm run build # compile TypeScript → dist/
237
+ npm run lint # run ESLint
195
238
  ```
196
239
 
197
- ### Tech Stack
198
-
199
- - **Runtime**: Node.js + TypeScript (ESM)
200
- - **CLI framework**: [Commander.js](https://github.com/tj/commander.js)
201
- - **Git operations**: [simple-git](https://github.com/steveukx/git-js)
202
- - **Interactive prompts**: [@clack/prompts](https://github.com/bombshell-dev/clack)
203
- - **Testing**: [Vitest](https://vitest.dev/)
204
- - **Dev runner**: [tsx](https://github.com/privatenumber/tsx)
205
-
206
240
  ### Project Structure
207
241
 
208
242
  ```
209
243
  src/
210
- ├── index.ts # CLI entry point
211
- ├── agents.ts # 41-agent registry with path resolution
212
- ├── auth.ts # GitHub token resolution (gh CLI → env vars)
244
+ ├── index.ts # CLI entry point (Commander.js)
245
+ ├── agents.ts # 41-agent registry + path resolution
246
+ ├── auth.ts # GitHub token resolution
247
+ ├── config.ts # XDG-compliant config persistence
213
248
  ├── lockfile.ts # Read-only .skill-lock.json parser
214
249
  ├── linker.ts # Relative symlink creation
215
250
  ├── git-ops.ts # Git push/pull via simple-git
216
251
  └── commands/
217
- ├── push.ts # push command handler
218
- ├── pull.ts # pull command handler (auto-links)
219
- └── link.ts # link command handler (interactive)
252
+ ├── push.ts # Push handler
253
+ ├── pull.ts # Pull handler (auto-runs link)
254
+ └── link.ts # Link handler (interactive multiselect)
220
255
  ```
221
256
 
222
- ### Adding a New Agent
257
+ ### Releasing
258
+
259
+ Releases are fully automated with [semantic-release](https://github.com/semantic-release/semantic-release). Just use [Conventional Commits](https://www.conventionalcommits.org/) and push to `main`:
260
+
261
+ | Commit prefix | Version bump | Example |
262
+ |---|---|---|
263
+ | `fix:` | Patch (`0.1.0` → `0.1.1`) | `fix: handle missing config` |
264
+ | `feat:` | Minor (`0.1.0` → `0.2.0`) | `feat: add export command` |
265
+ | `feat!:` or `BREAKING CHANGE:` | Major (`0.1.0` → `1.0.0`) | `feat!: drop Node 18 support` |
223
266
 
224
- 1. Add the agent ID to the `AgentId` union type in `src/agents.ts`
225
- 2. Add the agent entry to `agentRegistry` with `displayName`, `projectPath`, `globalPath`, and `universal` flag
226
- 3. If the agent uses an environment variable for path resolution, add it to `getAgentGlobalPath()`
227
- 4. Add a test case in `src/agents.test.ts`
267
+ The CI pipeline will automatically:
268
+ 1. Analyze commits since last release
269
+ 2. Determine version bump
270
+ 3. Update `package.json` + `CHANGELOG.md`
271
+ 4. Publish to npm
272
+ 5. Create a GitHub Release with notes
228
273
 
229
274
  ## License
230
275
 
231
- MIT
276
+ [MIT](./LICENSE)
@@ -35,23 +35,33 @@ export async function pullCommand(options) {
35
35
  // Pull
36
36
  const spinner = p.spinner();
37
37
  spinner.start('Pulling skills from GitHub...');
38
+ let result;
38
39
  try {
39
- const result = await pullSkills(AGENTS_DIR, remoteUrl, token);
40
- spinner.stop(result.cloned
41
- ? 'Skills cloned successfully!'
42
- : 'Skills updated from remote.');
40
+ result = await pullSkills(AGENTS_DIR, remoteUrl, token);
41
+ if (result.cloned) {
42
+ spinner.stop('Skills cloned successfully!');
43
+ }
44
+ else if (result.pulled) {
45
+ spinner.stop('Skills updated from remote.');
46
+ }
47
+ else {
48
+ spinner.stop('Already up to date.');
49
+ }
43
50
  }
44
51
  catch (err) {
45
52
  spinner.stop('Pull failed.');
46
53
  p.cancel(String(err));
47
54
  throw new CliError(String(err));
48
55
  }
49
- // Auto-run link unless skipped
50
- if (!options.skipLink) {
56
+ // Auto-run link unless skipped or nothing changed
57
+ if (!options.skipLink && (result.cloned || result.pulled)) {
51
58
  await linkCommand({});
52
59
  }
53
- else {
60
+ else if (options.skipLink) {
54
61
  p.outro('Pull complete. Run `skills-manager link` to create agent symlinks.');
55
62
  }
63
+ else {
64
+ p.outro('No changes pulled. Skipping link.');
65
+ }
56
66
  }
57
67
  //# sourceMappingURL=pull.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EACL,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA8C;IAC9E,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAE/B,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAExC,uBAAuB;IACvB,IAAI,SAAiB,CAAC;IACtB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,QAAQ,EAAE,CAAC;YACb,SAAS,GAAG,QAAQ,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,+DAA+D;YAC/D,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;YAEhC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC;gBACxB,OAAO,EAAE,8CAA8C;gBACvD,WAAW,EAAE,uBAAuB;aACrC,CAAC,CAAC;YAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBAC5B,MAAM,IAAI,QAAQ,CAAC,yBAAyB,CAAC,CAAC;YAChD,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACpD,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO;IACP,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAE/C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CACV,MAAM,CAAC,MAAM;YACX,CAAC,CAAC,6BAA6B;YAC/B,CAAC,CAAC,6BAA6B,CAClC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACtB,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,+BAA+B;IAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,WAAW,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,CAAC,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;IAChF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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"}
package/dist/git-ops.js CHANGED
@@ -182,6 +182,8 @@ export async function pullSkills(dir, remoteUrl, token) {
182
182
  if (!localBranch.current || /^[0-9a-f]{7,40}$/.test(localBranch.current)) {
183
183
  await git.checkout(branch);
184
184
  }
185
+ // Capture HEAD before pull to detect if anything changed
186
+ const headBefore = await git.revparse(['HEAD']);
185
187
  const doPull = async () => {
186
188
  try {
187
189
  await git.pull('origin', branch, { '--rebase': null });
@@ -221,7 +223,10 @@ export async function pullSkills(dir, remoteUrl, token) {
221
223
  else {
222
224
  await doPull();
223
225
  }
224
- return { cloned: false, pulled: true };
226
+ // Compare HEAD after pull to detect if anything actually changed
227
+ const headAfter = await git.revparse(['HEAD']);
228
+ const hasChanges = headBefore !== headAfter;
229
+ return { cloned: false, pulled: hasChanges };
225
230
  }
226
231
  /**
227
232
  * Ensure a directory is a git repository. If not, runs `git init`.
@@ -1 +1 @@
1
- {"version":3,"file":"git-ops.js","sourceRoot":"","sources":["../src/git-ops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-ops.js","sourceRoot":"","sources":["../src/git-ops.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tc9011/skills-manager",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "Backup and restore AI agent skills to GitHub",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -51,11 +51,18 @@
51
51
  },
52
52
  "devDependencies": {
53
53
  "@eslint/js": "^10.0.1",
54
+ "@semantic-release/changelog": "^6.0.3",
55
+ "@semantic-release/commit-analyzer": "^13.0.1",
56
+ "@semantic-release/git": "^10.0.1",
57
+ "@semantic-release/github": "^12.0.6",
58
+ "@semantic-release/npm": "^13.1.5",
59
+ "@semantic-release/release-notes-generator": "^14.1.0",
54
60
  "@types/node": "^22.0.0",
55
61
  "@vitest/coverage-v8": "^3.2.4",
56
62
  "eslint": "^10.0.2",
57
63
  "husky": "^9.1.7",
58
64
  "lint-staged": "^16.3.1",
65
+ "semantic-release": "^25.0.3",
59
66
  "tsx": "^4.19.0",
60
67
  "typescript": "^5.7.0",
61
68
  "typescript-eslint": "^8.56.1",