Migrate existing plugins to capability manifest protocol#375
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
…sion point IDs Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
|
This PR is very large. Consider breaking it into smaller PRs for easier review. |
There was a problem hiding this comment.
Pull request overview
This pull request successfully extends three existing ObjectStack plugins with capability manifests introduced in PR #374, enabling cross-vendor interoperability and automated discovery within the plugin ecosystem. The changes are purely additive metadata declarations without any runtime modifications.
Changes:
- Added comprehensive capability manifests to Memory Driver, Hono Server, and MSW plugins
- Documented protocol implementations, conformance levels, provided interfaces, dependencies, and extension points
- Updated README files to reference the new capability manifests
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/plugins/driver-memory/objectstack.config.ts | Added capability manifest declaring partial conformance to storage protocol v1 with 8 DriverInterface methods documented |
| packages/plugins/driver-memory/README.md | New comprehensive documentation with capability overview and usage examples |
| packages/plugins/plugin-hono-server/objectstack.config.ts | Added capability manifest with full HTTP/REST API protocol conformance and extension points for middleware/routes |
| packages/plugins/plugin-hono-server/README.md | New comprehensive documentation including API endpoints, architecture diagrams, and deployment guides |
| packages/plugins/plugin-msw/objectstack.config.ts | Added capability manifest for mock service protocol with ObjectStackServer interface and dependency declarations |
| packages/plugins/plugin-msw/README.md | Updated to reference capability protocol and link to manifest |
| type: 'action', | ||
| cardinality: 'multiple', | ||
| contract: { | ||
| input: 'MSWHandler', |
There was a problem hiding this comment.
The extension point contract is missing the 'description' field. According to the ExtensionPointSchema in plugin-capability.zod.ts (line 255-259), the contract object can have 'input', 'output', and 'signature' fields, but only 'input' is provided here. For consistency with the 'route' extension point (lines 219-222), consider also adding either an 'output' field or a 'signature' field to fully document the handler contract.
| input: 'MSWHandler', | |
| input: 'MSWHandler', | |
| output: 'void', |
| cardinality: 'multiple', | ||
| contract: { | ||
| input: 'MSWHandler', | ||
| description: 'MSW HTTP handler definition', |
There was a problem hiding this comment.
The 'description' field is not a valid property of the contract object according to ExtensionPointSchema (packages/spec/src/system/plugin-capability.zod.ts:255-259). The contract object only supports 'input', 'output', and 'signature' fields. Either move this description to the extension point's main description field (line 254) or remove it from the contract object.
| description: 'MSW HTTP handler definition', |
Extends existing plugins with capability manifests introduced in #374 for cross-vendor interoperability and automated discovery.
Changes
Memory Driver (
com.objectstack.driver.memory)com.objectstack.protocol.storage.v1Hono Server (
com.objectstack.server.hono)middlewareandroutefor plugin compositionMSW Plugin (
com.objectstack.plugin.msw)Example
Naming Conventions
All IDs follow reverse domain notation:
com.objectstack.{type}.{name}{domain}.protocol.{name}.v{major}{plugin-id}.interface.{name}{plugin-id}.extension.{name}Backward compatible - manifests are declarative metadata, no runtime changes.
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.