Commit graph

103 commits

Author SHA1 Message Date
Joan Xie
b5fa7df6eb
feat: generate JSON schemas for all manifest versions
Updated build script to generate JSON schemas for all historical manifest
versions (v0.1, v0.2, v0.3) in addition to the latest version.

Changes:
- Generate mcpb-manifest-v0.1.schema.json
- Generate mcpb-manifest-v0.2.schema.json
- Generate mcpb-manifest-v0.3.schema.json
- Generate mcpb-manifest-latest.schema.json
- Keep mcpb-manifest.schema.json as alias for latest
- All schemas generated to both dist/ and schemas/ directories
- Added exports in package.json for all versioned schemas

Benefits:
- Tools can validate against specific manifest versions
- Backwards compatibility for all historical versions
- Latest schema always available at predictable path
- JSON schema files match the Zod schema versions

Usage:
import manifestSchema from '@anthropic-ai/mcpb/mcpb-manifest-v0.2.schema.json'
import latestSchema from '@anthropic-ai/mcpb/mcpb-manifest-latest.schema.json'
2025-10-29 16:39:57 -07:00
Joan Xie
faafd4523a
feat: make McpbManifest a discriminated union of all versions
Changed McpbManifest type from a single version to a discriminated union
of all historical manifest versions (0.1, 0.2, 0.3).

This allows the type system to properly handle manifests from any version
while maintaining type safety through the manifest_version/dxt_version
discriminator field.

Benefits:
- Type-safe handling of multiple manifest versions
- TypeScript can narrow types based on version field
- No need for type assertions when working with versioned manifests
- Maintains backward compatibility with all historical versions
2025-10-29 16:33:23 -07:00
Joan Xie
67938cdab9
feat: export versioned schemas in package.json
Add exports for versioned schemas to allow consumers to import:
- ./schemas: All versioned schemas (v0_1, v0_2, v0_3, latest)
- ./schemas/*: Specific schema versions (./schemas/0.1, ./schemas/any, etc.)
- ./schemas-loose: Loose validation schemas

This enables cleaner imports like:
import { McpbManifestSchema } from '@anthropic-ai/mcpb/schemas/any'
import * as v0_2 from '@anthropic-ai/mcpb/schemas/0.2'
import * as schemas from '@anthropic-ai/mcpb/schemas'
2025-10-29 16:30:32 -07:00
joan-anthropic
7961b32cfc
Merge pull request #137 from anthropics/chore/1.1.2 v1.1.2
chore: update to 1.1.2
2025-10-29 15:49:49 -07:00
Joan Xie
f37496928b
chore: update to 1.1.2 2025-10-29 15:47:25 -07:00
joan-anthropic
49c68b0452
Merge pull request #132 from asklar/user/asklar/localization
[0.3] Add localization/theming
2025-10-27 14:23:32 -07:00
Alexander Sklar
55154fa6fb
fix linting 2025-10-27 14:06:11 -07:00
Alexander Sklar
d929b8c33c
add default for resources property 2025-10-27 11:33:35 -07:00
joan-anthropic
ef6908e612
Merge pull request #117 from anthropics/fix/json-schema-generation
fix: restore JSON schema generation
2025-10-27 10:38:16 -07:00
Alexander Sklar
18d096526e
fix typo 2025-10-27 09:57:53 -07:00
Alexander Sklar
bdcfeadac5
. 2025-10-27 09:43:54 -07:00
Alexander Sklar
1640adefe8
Add localization/theming feature to 0.3 version 2025-10-24 15:48:46 -07:00
Joan Xie
2a0ba89918
fix: improve JSON schema generation and publishing
- Refactor JSON schema generation to use zod-to-json-schema
- Publish manifest schema to schemas/ directory
- Update package.json exports for schema files
- Add WIP version 0.3 support
- Clean up schema generation scripts

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-20 17:16:06 -07:00
joan-anthropic
d595dd66dc
Merge pull request #114 from anthropics/feat/versioned-schemas
feat: versioned schemas
2025-10-20 17:12:19 -07:00
Joan Xie
f7efd3a444
add WIP 0.3 2025-10-20 17:07:44 -07:00
Joan Xie
143aa9a63c
test: skip _meta tests for v0.3 2025-10-20 17:07:44 -07:00
joan-anthropic
2b193ac391
Merge pull request #127 from anthropics/docs/license-and-contributing
chore: Add CONTRIBUTING.md
2025-10-20 16:49:03 -07:00
Joan Xie
0496e93851
add req for commit signing 2025-10-20 08:41:45 -07:00
Joan Xie
ec05e897c7
Add CONTRIBUTING.md and rename LICENSE.md to LICENSE
- Add comprehensive contributing guidelines with setup instructions, workflow, and code standards
- Rename LICENSE.md to LICENSE to follow standard naming convention and fix README link

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-18 11:16:27 -07:00
Joan Xie
e2d6836622
Merge branch 'main' into feat/versioned-schemas 2025-10-17 16:05:16 -07:00
joan-anthropic
d12057eefd
Merge pull request #124 from asklar/user/asklar/static_responses_and_extensions
Add _meta to manifest schema and tests
2025-10-10 16:46:02 -07:00
Alexander Sklar
443d849420
Refactor manifest schema to replace static_responses and client_extensions with _meta for improved organization 2025-10-10 16:43:33 -07:00
Alexander Sklar
caa61bcc49
Update example to be more real 2025-10-10 16:43:18 -07:00
Alexander Sklar
90c18ca9fb
Add static_responses and client_extensions to manifest schema and tests 2025-10-10 16:43:03 -07:00
Samuel Attard
e9aa4d0029
build: use yarn v4 (#125) 2025-10-10 14:43:35 -07:00
Joan Xie
6c05338904
refactor: remove schemas.ts re-export, use explicit imports in tests
- Remove src/schemas.ts file
- Update tests to import directly from src/schemas/index.js
2025-09-24 14:28:06 -07:00
Joan Xie
4c100e26da
refactor: rename CURRENT_MANIFEST_VERSION to LATEST_MANIFEST_VERSION
- Rename CURRENT_MANIFEST_VERSION to LATEST_MANIFEST_VERSION
- Rename CURRENT_MANIFEST_SCHEMA to LATEST_MANIFEST_SCHEMA
- Rename CURRENT_MANIFEST_SCHEMA_LOOSE to LATEST_MANIFEST_SCHEMA_LOOSE
- Update all references throughout codebase and tests
2025-09-24 14:26:55 -07:00
Joan Xie
412b124b96
refactor: update all references to use schemas/latest instead of schemas/0.2
- Update src/index.ts, types.ts, browser.ts, cli.ts, and node.ts
- All package entrypoints now use latest.ts for easier version management
2025-09-24 14:22:47 -07:00
Joan Xie
c4a9500c84
feat: add schema helper aliases (latest)
- Add schemas/latest.ts and schemas_loose/latest.ts as aliases to current version
- Update constants.ts to use latest.ts instead of hardcoded version imports
- This makes version updates easier - only need to update latest.ts pointer
2025-09-24 14:21:01 -07:00
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
adam jones
9ac5d8806c
Merge pull request #104 from asklar/patch-1
Change syntax highlighting to jsonc in MANIFEST.md
2025-09-24 11:47:21 +01:00
adam jones
f2284f6681
Merge pull request #108 from nicolasff/manifest-md-jsonc-syntax
docs: use jsonc syntax highlighting for manifest example
2025-09-24 11:47:01 +01:00
adam jones
8c231cfbdb
Merge pull request #111 from anthropics/jwei/push-for-node
Add language choice recommendation to readme
2025-09-24 11:46:35 +01:00
Justin Wei
454b0be584
Add language choice recommendation to readme 2025-09-23 20:22:21 -04:00
joan-anthropic
c2d42b3e0a
Merge pull request #109 from anthropics/feat/validate-manifest-version-in-pack v1.1.1
feat: validate manifest version during pack command
2025-09-22 15:42:51 -07:00
Joan Xie
b7a2acb969
bump version 2025-09-22 15:32:23 -07:00
Joan Xie
e772ed753d
fix: update test to match new validation message
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 15:28:42 -07:00
Joan Xie
232e6b3f91
improve schema validation logs 2025-09-22 15:17:16 -07:00