fix: complete OpenClaw plugin compatibility with test coverage

- Add test OpenClaw plugins: oc-simple (openclaw.plugin.json) and oc-pkg (package.json#extensions)
- Fix plugin.go Start() to detect package.json#openclaw.extensions as OC manifest
- Add hasOCExtensions() helper for package.json OC field detection
- Tests: simulator with manifest entry discovery, package.json extension discovery,
  full Plugin.Start() -> loadOCPlugin() -> register -> call pipeline
This commit is contained in:
root
2026-07-04 13:46:15 +08:00
parent 2d86f37e1f
commit f68c8fff16
7 changed files with 290 additions and 1 deletions

View File

@ -0,0 +1,33 @@
module.exports = {
default: {
id: 'oc-pkg',
name: 'OC Package',
version: '2.0.0',
description: 'Test plugin discovered via package.json extensions',
register(api) {
api.registerTool({
name: 'add',
description: 'Add two numbers',
parameters: {
type: 'object',
properties: {
a: { type: 'number', description: 'First number' },
b: { type: 'number', description: 'Second number' },
},
required: ['a', 'b'],
},
execute(id, params) {
return String(params.a + params.b);
},
});
api.registerTool({
name: 'info',
description: 'Return plugin info',
execute(id, params) {
return JSON.stringify({ id: this.id, name: this.name, version: this.version });
},
});
},
},
};

View File

@ -0,0 +1,8 @@
{
"name": "oc-pkg",
"version": "2.0.0",
"description": "OC plugin with package.json entry discovery",
"openclaw": {
"extensions": ["lib/entry.js"]
}
}