| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- const assert = require('assert/strict');
- const service = require('../mcp/src/dashboard/workspace-library-service');
- function flatten(nodes = []) {
- return nodes.flatMap(node => [node, ...(node.children ? flatten(node.children) : [])]);
- }
- function main() {
- const registry = service.listSkillRegistry();
- assert.equal(registry.status, 'ok');
- assert.ok(registry.data.summary.packageCount >= 1);
- assert.ok(registry.data.summary.skillCount >= 18);
- assert.ok(registry.data.summary.uniqueCapabilityCount >= 16);
- const tree = service.listKnowledgeTree();
- assert.equal(tree.status, 'ok');
- assert.ok(tree.data.summary.libraryCount >= 5);
- assert.ok(tree.data.summary.fileCount >= 20);
- assert.equal(Object.hasOwn(tree.data.summary, 'propertyCount'), false);
- const nodes = flatten(tree.data.roots);
- const rules = nodes.find(node => node.name === 'rules.md');
- assert.ok(rules, 'rules.md should exist');
- const rulesFile = service.readKnowledgeFile(rules.id);
- assert.equal(rulesFile.data.kind, 'markdown');
- assert.match(rulesFile.data.content, /不编造价格/);
- assert.equal(typeof service.listProperties, 'undefined');
- assert.equal(typeof service.getProperty, 'undefined');
- assert.equal(registry.data.packages.flatMap(item => item.skills).some(item => item.name === 'qiwei-real-estate-auto-reply'), false);
- const firstSkill = registry.data.packages[0].skills[0];
- const skill = service.getSkillDetail(firstSkill.id);
- assert.equal(skill.data.id, firstSkill.id);
- assert.ok(skill.data.content.includes('#'));
- assert.throws(
- () => service.readKnowledgeFile(`agent-knowledge~${Buffer.from('../.env.local').toString('base64url')}`),
- /禁止访问/,
- );
- process.stdout.write(`${JSON.stringify({
- status: 'ok',
- packageCount: registry.data.summary.packageCount,
- skillCount: registry.data.summary.skillCount,
- libraryCount: tree.data.summary.libraryCount,
- fileCount: tree.data.summary.fileCount,
- propertySurfaceRemoved: true,
- pathTraversalBlocked: true,
- }, null, 2)}\n`);
- }
- main();
|