Commit graph mcpb/src
Author SHA1 Message Date
Joan Xie
fefd9e1d21
fix: add schemas re-export file and update tests to use correct manifest version
- Create src/schemas.ts to re-export from schemas/index.ts for test imports
- Update test manifests to use manifest_version "0.2" instead of "1.0" or "1.0.0"
- Fix import sorting and formatting issues in schema files
- Export McpbManifestSchema from schemas/index.ts
2025-09-24 14:12:10 -07:00
Joan Xie
ccb19277c4
feat: export constants from package entrypoints 2025-09-24 14:03:03 -07:00
Joan Xie
76b79551ab
fix: use CURRENT_MANIFEST_VERSION in pack.ts version check 2025-09-24 13:58:45 -07:00
Joan Xie
3a0d4a8635
feat: create schema version map with CURRENT_MANIFEST_SCHEMA selector 2025-09-24 13:57:19 -07:00
Joan Xie
fe733e3450
refactor: use MANIFEST_VERSION variable in z.literal() instead of hardcoded strings 2025-09-24 13:54:38 -07:00
Joan Xie
6bfd100b60
feat: export CURRENT_MANIFEST_VERSION from schemas index 2025-09-24 13:53:13 -07:00
Joan Xie
336e878252
fix: add dxt_version support to v0.2 schemas with deprecation notice 2025-09-24 13:51:40 -07:00
Joan Xie
9f078c6163
fix: add deprecation notice to dxt_version in v0.1 schemas 2025-09-24 13:50:16 -07:00
Joan Xie
16f173824c
fix: correct strict schemas for v0.1 and v0.2 2025-09-24 13:48:52 -07:00
Joan Xie
3d9c966951
fix: rename CURRENT_MANIFEST_VERSION to MANIFEST_VERSION and set correct versions 2025-09-24 13:45:19 -07:00
Joan Xie
2e9e70c5ff
fix: update schema imports to versioned paths 2025-09-24 13:43:02 -07:00
Joan Xie
8e2ec66564
fix: add privacy_policies and passthrough to loose schema v0.2 2025-09-24 13:42:03 -07:00
Joan Xie
a43769d94b
feat: restructure schemas into versioned folders
- Move schemas.ts and schemas-loose.ts into separate versioned folders
- Create schemas/0.1.ts and schemas/0.2.ts for strict validation
- Create schemas_loose/0.1.ts and schemas_loose/0.2.ts for loose validation
- Add index files to export all historical schema versions
- Update all imports to use schemas/0.2.ts
- Enforce exact version values using z.literal() for both v0.1 and v0.2
- Remove dxt_version support from v0.2 schemas
- Remove all passthrough() from v0.2 strict schemas
- Validate privacy_policies as URLs in v0.2

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 13:42:03 -07:00
Joan Xie
232e6b3f91
improve schema validation logs 2025-09-22 15:17:16 -07:00
Joan Xie
f92fe4ab69
feat: validate manifest version during pack command
Add validation to ensure the manifest_version matches the current expected
version (0.2) during the mcpb pack command. This prevents users from
packing extensions with outdated or incorrect manifest versions.

Changes:
- Add CURRENT_MANIFEST_VERSION constant to centralize version management
- Validate manifest version in pack command before creating bundle
- Update init command to use version constant
- Update tests to use version constant
- Fix prettier formatting issues
2025-09-22 14:43:28 -07:00
Joan Xie
a48002ec69
feat: add privacy_policies field to manifest schema
Add optional privacy_policies array field to manifest.json that allows
developers to declare their data handling practices. This field accepts
an array of privacy policy statements that describe how the extension
collects, uses, and protects user data.

- Update manifest schema to include privacy_policies field
- Add empty privacy_policies array to all example manifests
- Document the new field in MANIFEST.md
2025-09-12 11:53:11 -07:00
Joan Xie
5a46a05108
Revert "feat: replace manifest_version with $schema field"
This reverts commit 7997e72758.
2025-08-27 11:24:18 -07:00
Joan Xie
7997e72758
feat: replace manifest_version with $schema field
- Replace manifest_version with $schema field pointing to official schema URL
- Support backward compatibility with legacy dxt_version field
- Update all examples and tests to use new $schema field
- Mark dxt_version as deprecated but still functional
- Require either $schema or dxt_version (at least one must be present)
2025-08-27 10:38:57 -07:00
Joan Xie
76949836e0
fix: update schema to reflect manifest_version 2025-08-25 21:09:45 -07:00
Joan Xie
0b2658f5b0
lint 2025-08-21 15:28:01 -07:00
Joan Xie
e1938b9933
rename dxt -> mcpb 2025-08-21 14:56:54 -07:00
Felix Rieseberg
bf01918080
fix: allow repeat runs of "dxt clean" (#83) 2025-07-31 13:07:28 -07:00
Jacob
b062c0efad
fix: missing extension directory prefix in 'mcp_config' of python (#80) 2025-07-23 09:55:54 -07:00
Felix Rieseberg
7c9d61d9e6
chore: A round of "yarn fix" for everyone (#75) 2025-07-18 10:09:52 -07:00
David Dworken
08b34f4f76
fix: prevent zip slip attacks in DXT unpack function (#74)
* fix: prevent zip slip attacks in DXT unpack function

Add path validation to prevent directory traversal attacks when unpacking DXT files.
The fix validates that extracted file paths remain within the intended output directory
before writing files to disk.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: make zip slip protection cross-platform compatible

Use path.sep instead of hardcoded '/' separator to ensure path validation
works correctly on both Windows and Unix systems. This fixes failing tests
on Windows while maintaining security protection against directory traversal.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-18 09:35:32 -07:00
Samuel Attard
505c81a258
feat: add clean command to clean manifest and trip dev deps for node (#67)
* feat: add clean command to clean manifest and trip dev deps for node

* fix: lazy import no loop

* Update src/cli/cli.ts

Co-authored-by: Felix Rieseberg <f@anthropic.com>

---------

Co-authored-by: Felix Rieseberg <f@anthropic.com>
2025-07-11 15:30:08 -07:00
Samuel Attard
9523b5af19
fix: strictly validate manifests (#66)
* fix: strictly validate manifests

* spec: align tests with strict schema
2025-07-11 14:36:52 -07:00
Samuel Attard
2dcc7efe6f
fix: handle invalid values in arrays (#61) 2025-07-10 16:10:48 -07:00
Felix Rieseberg
e2a87144e9
fix: Go back to zod/v3 (#59) 2025-07-10 15:31:26 -07:00
Erik Brakke
83b5a773ae
fix: preserve file permissions during unpack operation (#43)
- Parse ZIP central directory to extract Unix file permissions
- Restore executable permissions using chmodSync after unpacking files
- Skip permission restoration on Windows (Unix-only feature)
- Add comprehensive test to verify executable and regular file permissions are preserved
- Fix test setup to use npm instead of yarn for consistent build process

Fixes issue where executable files lose their execute permissions after being packed and unpacked, which is critical for extensions containing binary executables or shell scripts.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-10 09:09:07 -07:00
Felix Rieseberg
3c1bb1c25e
chore: 0.2.1 (#53)
* chore: Lint

* chore: 0.2.1
2025-07-08 16:22:47 -07:00
Alex Yang
ac2df7c157
chore: update tsconfig (#51) 2025-07-08 15:49:07 -07:00
Samuel Attard
2654e313b9
feat: also emit dxt signature info schema (#44) 2025-07-06 16:35:55 -07:00
Samuel Attard
9ce2d6fd0e
fix: move to standard ignore implementation (#50) 2025-07-06 16:35:24 -07:00
Alex Yang
9849e046a9
feat: emit json schema in npm package 2025-07-03 15:45:39 -07:00
Suyog Sonwalkar
2c1d058085
Adding unpack as cli command and exposing via index.ts for typescript usage. (#5) 2025-06-28 16:41:53 -07:00
Andrew A. Johnson
b22675cef9
fix: maintain unix file permissions from file read to zip options (#14) 2025-06-28 16:41:10 -07:00
Felix Rieseberg
3a2984409e
feat: Ignore .env files, too (#23) 2025-06-28 16:11:39 -07:00
Felix Rieseberg
e192e488c3
feat: Negation patterns (#24) 2025-06-28 16:11:32 -07:00
Felix Rieseberg
0172c07623
🚀 Hello World 2025-06-26 08:38:59 -07:00