@anytio/pspm 0.3.0 → 0.4.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 CHANGED
@@ -5,6 +5,59 @@ All notable changes to the PSPM CLI will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.4.0] - 2026-02-09
9
+
10
+ ### Added
11
+
12
+ - **Publish size limit (10MB)**: Packages exceeding 10MB are rejected with actionable suggestions
13
+ - Client-side validation catches oversized packages before upload
14
+ - Server-side schema validation updated from 50MB to 10MB
15
+ - Helpful error messages suggest using `files` field, `.pspmignore`, or removing build artifacts
16
+
17
+ - **Publish preview with confirmation**: Users now see a full preview before publishing
18
+ - Displays tarball contents with file sizes (sorted by size)
19
+ - Shows package size, unpacked size, file count, and integrity hashes
20
+ - Requires explicit confirmation (`y/N`) before uploading to registry
21
+
22
+ ## [0.3.4] - 2026-01-29
23
+
24
+ ### Added
25
+
26
+ - **`version` command**: Bump package version in `pspm.json` without publishing (like `npm version`)
27
+ - `pspm version major` - Bump major version (1.0.0 → 2.0.0)
28
+ - `pspm version minor` - Bump minor version (1.0.0 → 1.1.0)
29
+ - `pspm version patch` - Bump patch version (1.0.0 → 1.0.1)
30
+ - `pspm version patch --dry-run` - Preview changes without writing
31
+
32
+ - **Visibility support for publish command**: Set package visibility during publish
33
+ - `pspm publish --access public` - Publish and make public in one step
34
+ - `pspm publish --access private` - Explicitly publish as private
35
+
36
+ - **Dependency visibility in publish**: Published packages now include their dependencies in the manifest
37
+
38
+ ### Fixed
39
+
40
+ - **Registry subdomain compatibility**: SDK now correctly handles registry URLs with subdomains
41
+ - **Improved CLI error messages**: Better extraction and display of API error details
42
+
43
+ ## [0.3.3] - 2026-01-28
44
+
45
+ ### Fixed
46
+
47
+ - Strip registry subdomain for web app and server URLs
48
+
49
+ ## [0.3.2] - 2026-01-28
50
+
51
+ ### Added
52
+
53
+ - Registry subdomain support for multi-tenant deployments
54
+
55
+ ## [0.3.1] - 2026-01-27
56
+
57
+ ### Changed
58
+
59
+ - Version bump for npm publish
60
+
8
61
  ## [0.3.0] - 2026-01-27
9
62
 
10
63
  ### Added
@@ -17,8 +70,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
17
70
 
18
71
  - **Local directory support (file: protocol)**: Install skills from local directories for development and testing
19
72
  - `pspm add file:../path/to/skill` - Install from local directory
73
+ - `pspm add ../my-skill` - Also works without the `file:` prefix
74
+ - Creates symlinks in `.pspm/skills/_local/{name}` for instant updates
20
75
  - `localDependencies` field in `pspm.json` for local packages
21
- - Lockfile version bumped to 4 to support `localPackages`
76
+ - `localPackages` in lockfile (v4) tracks installed local packages
77
+ - Validates that directory exists and contains SKILL.md or pspm.json
78
+ - Provides helpful error messages: "Directory not found", "Not a valid skill directory"
79
+
80
+ ### Fixed
81
+
82
+ - **Improved error messages for `access` command**: Now provides specific feedback for different specifier types
83
+ - GitHub specifiers explain that visibility only applies to registry packages
84
+ - Local file specifiers explain they are not registry packages
85
+ - Invalid registry specifiers show examples of correct format
22
86
 
23
87
  ## [0.2.0] - 2026-01-23
24
88
 
package/CLI_GUIDE.md CHANGED
@@ -36,6 +36,7 @@ Commands:
36
36
  install|i [options] [specifiers...] Install skills from lockfile, or add and install specific packages
37
37
  link [options] Recreate agent symlinks without reinstalling
38
38
  update [options] Update all skills to latest compatible versions
39
+ version <bump> Bump package version (major, minor, patch)
39
40
  publish [options] Publish current directory as a skill
40
41
  unpublish [options] <specifier> Remove a published skill version (only within 72 hours of publishing)
41
42
  access [options] [specifier] Change package visibility (public/private)
@@ -77,7 +78,7 @@ pspm whoami
77
78
  # Output:
78
79
  # Username: myuser
79
80
  # User ID: user_123
80
- # Registry: https://pspm.dev
81
+ # Registry: https://registry.pspm.dev
81
82
  ```
82
83
 
83
84
  ## Configuration
@@ -92,7 +93,7 @@ pspm config show
92
93
  # Output:
93
94
  # Resolved Configuration:
94
95
  #
95
- # Registry URL: https://pspm.dev
96
+ # Registry URL: https://registry.pspm.dev
96
97
  # API Key: ***
97
98
  # Username: myuser
98
99
  #
@@ -158,6 +159,11 @@ pspm add github:owner/repo@main # Entire repo, specific branch
158
159
  pspm add github:owner/repo/path/to/skill # Subdirectory, default branch
159
160
  pspm add github:owner/repo/path@v1.0.0 # Subdirectory with tag/ref
160
161
 
162
+ # Local directory specifiers (for development):
163
+ pspm add file:../my-skill # Relative path
164
+ pspm add file:./local-skill # Current directory relative
165
+ pspm add file:/absolute/path/to/skill # Absolute path
166
+
161
167
  # Add multiple skills at once:
162
168
  pspm add @user/alice/skill1 @user/bob/skill2
163
169
 
@@ -235,6 +241,30 @@ pspm update
235
241
  pspm update --dry-run # Preview updates without applying
236
242
  ```
237
243
 
244
+ ## Versioning
245
+
246
+ ### Bump Version
247
+
248
+ Bump the package version in `pspm.json` without publishing (similar to `npm version`):
249
+
250
+ ```bash
251
+ pspm version <bump>
252
+
253
+ # Bump types:
254
+ pspm version major # 1.0.0 → 2.0.0
255
+ pspm version minor # 1.0.0 → 1.1.0
256
+ pspm version patch # 1.0.0 → 1.0.1
257
+
258
+ # Options:
259
+ pspm version patch --dry-run # Preview what would change
260
+ ```
261
+
262
+ The command:
263
+ - Reads the current version from `pspm.json`
264
+ - Increments the version according to semver rules
265
+ - Writes the updated version back to `pspm.json`
266
+ - Outputs the new version (e.g., `v1.0.1`)
267
+
238
268
  ## Publishing
239
269
 
240
270
  ### Publish Skill
@@ -313,7 +343,7 @@ INI format configuration file:
313
343
  ```ini
314
344
  ; PSPM Configuration
315
345
 
316
- registry = https://pspm.dev
346
+ registry = https://registry.pspm.dev
317
347
  authToken = sk_...
318
348
  username = myuser
319
349
 
@@ -345,7 +375,16 @@ Package manifest file (created with `pspm init`):
345
375
  "version": "1.0.0",
346
376
  "description": "A helpful skill for...",
347
377
  "author": "Your Name",
348
- "files": ["pspm.json", "SKILL.md", "runtime", "scripts", "data"]
378
+ "files": ["pspm.json", "SKILL.md", "runtime", "scripts", "data"],
379
+ "dependencies": {
380
+ "@user/other/skill": "^1.0.0"
381
+ },
382
+ "githubDependencies": {
383
+ "github:owner/repo/skills/example": "main"
384
+ },
385
+ "localDependencies": {
386
+ "file:../my-local-skill": "*"
387
+ }
349
388
  }
350
389
  ```
351
390
 
@@ -353,12 +392,12 @@ Package manifest file (created with `pspm init`):
353
392
 
354
393
  ```json
355
394
  {
356
- "lockfileVersion": 3,
357
- "registryUrl": "https://pspm.dev",
395
+ "lockfileVersion": 4,
396
+ "registryUrl": "https://registry.pspm.dev",
358
397
  "packages": {
359
398
  "@user/bsheng/vite_slides": {
360
399
  "version": "2.0.0",
361
- "resolved": "https://pspm.dev/...",
400
+ "resolved": "https://registry.pspm.dev/...",
362
401
  "integrity": "sha256-abc123..."
363
402
  }
364
403
  },
@@ -370,6 +409,14 @@ Package manifest file (created with `pspm init`):
370
409
  "gitCommit": "abc1234567890...",
371
410
  "gitRef": "main"
372
411
  }
412
+ },
413
+ "localPackages": {
414
+ "file:../my-local-skill": {
415
+ "version": "local",
416
+ "path": "../my-local-skill",
417
+ "resolvedPath": "/absolute/path/to/my-local-skill",
418
+ "name": "my-local-skill"
419
+ }
373
420
  }
374
421
  }
375
422
  ```
@@ -402,10 +449,12 @@ project/
402
449
  │ ├── skills/ # Installed skills
403
450
  │ │ ├── {username}/ # Registry skills
404
451
  │ │ │ └── {skillname}/
405
- │ │ └── _github/ # GitHub skills
406
- │ │ └── {owner}/
407
- │ │ └── {repo}/
408
- │ │ └── {path}/
452
+ │ │ ├── _github/ # GitHub skills
453
+ │ │└── {owner}/
454
+ │ │└── {repo}/
455
+ │ │└── {path}/
456
+ │ │ └── _local/ # Local skill symlinks
457
+ │ │ └── {name} -> ../../../path/to/local/skill
409
458
  │ └── cache/ # Tarball cache
410
459
  ├── .claude/
411
460
  │ └── skills/ # Symlinks for claude-code agent
@@ -428,6 +477,31 @@ export PSPM_API_KEY=sk_ci_key
428
477
  pspm install --frozen-lockfile
429
478
  ```
430
479
 
480
+ ### Local Development Workflow
481
+
482
+ Use local dependencies to develop and test skills before publishing:
483
+
484
+ ```bash
485
+ # Add a local skill for development
486
+ pspm add file:../my-skill
487
+
488
+ # The skill is symlinked, so changes are instant
489
+ # No need to reinstall after editing the local skill
490
+
491
+ # When ready to publish
492
+ cd ../my-skill
493
+ pspm publish
494
+ ```
495
+
496
+ In your `pspm.json`:
497
+ ```json
498
+ {
499
+ "localDependencies": {
500
+ "file:../my-local-skill": "*"
501
+ }
502
+ }
503
+ ```
504
+
431
505
  ### Publishing Workflow
432
506
 
433
507
  ```bash
package/README.md CHANGED
@@ -113,6 +113,15 @@ pspm link --agent codex # Recreate symlinks for specifi
113
113
 
114
114
  Default is all agents (`claude-code`, `codex`, `cursor`, `gemini`, `kiro`, `opencode`). Use `--agent claude-code` to install for a single agent.
115
115
 
116
+ ### Versioning
117
+
118
+ ```bash
119
+ pspm version major # Bump major version (1.0.0 → 2.0.0)
120
+ pspm version minor # Bump minor version (1.0.0 → 1.1.0)
121
+ pspm version patch # Bump patch version (1.0.0 → 1.0.1)
122
+ pspm version patch --dry-run # Preview changes without writing
123
+ ```
124
+
116
125
  ### Publishing
117
126
 
118
127
  ```bash
@@ -123,6 +132,9 @@ pspm unpublish <spec> --force # Remove a published skill version
123
132
  pspm deprecate <spec> [msg] # Mark a version as deprecated
124
133
  ```
125
134
 
135
+ **Publish preview:** Before uploading, `pspm publish` shows a preview of included files, package size, and requires confirmation. Max package size is **10MB**.
136
+
137
+
126
138
  ### Visibility
127
139
 
128
140
  ```bash
@@ -147,7 +159,7 @@ PSPM uses a simple npm-like INI configuration format.
147
159
 
148
160
  ```ini
149
161
  ; PSPM Configuration
150
- registry = https://pspm.dev
162
+ registry = https://registry.pspm.dev
151
163
  authToken = sk_...
152
164
  username = myuser
153
165
  ```
@@ -165,12 +177,12 @@ registry = https://custom-registry.example.com
165
177
 
166
178
  ```json
167
179
  {
168
- "lockfileVersion": 3,
169
- "registryUrl": "https://pspm.dev",
180
+ "lockfileVersion": 4,
181
+ "registryUrl": "https://registry.pspm.dev",
170
182
  "packages": {
171
183
  "@user/username/skillname": {
172
184
  "version": "1.0.0",
173
- "resolved": "https://pspm.dev/...",
185
+ "resolved": "https://registry.pspm.dev/@user/username/skillname/1.0.0",
174
186
  "integrity": "sha256-..."
175
187
  }
176
188
  },
@@ -182,6 +194,14 @@ registry = https://custom-registry.example.com
182
194
  "gitCommit": "abc1234567890...",
183
195
  "gitRef": "main"
184
196
  }
197
+ },
198
+ "localPackages": {
199
+ "file:../my-local-skill": {
200
+ "version": "local",
201
+ "path": "../my-local-skill",
202
+ "resolvedPath": "/absolute/path/to/my-local-skill",
203
+ "name": "my-local-skill"
204
+ }
185
205
  }
186
206
  }
187
207
  ```
@@ -206,11 +226,13 @@ project/
206
226
  │ │ ├── username/ # Registry skills
207
227
  │ │ │ └── skillname/
208
228
  │ │ │ └── SKILL.md
209
- │ │ └── _github/ # GitHub skills
210
- │ │ └── owner/
211
- │ │ └── repo/
212
- │ │ └── path/
213
- │ │ └── SKILL.md
229
+ │ │ ├── _github/ # GitHub skills
230
+ │ │└── owner/
231
+ │ │└── repo/
232
+ │ │└── path/
233
+ │ │└── SKILL.md
234
+ │ │ └── _local/ # Local skill symlinks
235
+ │ │ └── skillname -> ../../../path/to/local/skill
214
236
  │ └── cache/ # Tarball cache
215
237
  ├── .claude/
216
238
  │ └── skills/ # Symlinks for claude-code agent