mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-08 15:12:55 +00:00
* feat(skills): fetch ClawHub skill verification * feat(skills): resolve ClawHub verification targets * feat(skills): add ClawHub verify command * docs(skills): document ClawHub verification * test(skills): type verify CLI fixture * fix(skills): fetch verified skill card URL * fix(skills): bound verified card downloads * fix(skills): fail closed on malformed verification * fix(skills): corroborate ClawHub install origins * feat(skills): surface ClawHub trust in control UI * chore(protocol): refresh generated gateway models * chore(ui): refresh i18n raw copy baseline * docs: clarify skills verify wording * fix: fail closed on skill trust mismatches * fix: reject incomplete clawhub provenance * fix: satisfy trust verdict lint * fix: restore ci checks after main merge
66 lines
2.4 KiB
TypeScript
66 lines
2.4 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { GATEWAY_EVENTS, listGatewayMethods } from "./server-methods-list.js";
|
|
|
|
describe("GATEWAY_EVENTS", () => {
|
|
it("advertises Talk event streams in hello features", () => {
|
|
expect(GATEWAY_EVENTS).toContain("talk.event");
|
|
expect(GATEWAY_EVENTS).not.toContain("talk.realtime.relay");
|
|
expect(GATEWAY_EVENTS).not.toContain("talk.transcription.relay");
|
|
});
|
|
});
|
|
|
|
describe("listGatewayMethods", () => {
|
|
it("advertises plugin surface refresh for capability rotation", () => {
|
|
expect(listGatewayMethods()).toContain("node.pluginSurface.refresh");
|
|
});
|
|
|
|
it("advertises ClawHub skill trust methods", () => {
|
|
const methods = listGatewayMethods();
|
|
expect(methods).toContain("skills.securityVerdicts");
|
|
expect(methods).toContain("skills.skillCard");
|
|
});
|
|
|
|
it("does not advertise hidden core handlers", () => {
|
|
const methods = listGatewayMethods();
|
|
expect(methods).not.toContain("config.openFile");
|
|
expect(methods).not.toContain("chat.inject");
|
|
expect(methods).not.toContain("nativeHook.invoke");
|
|
expect(methods).not.toContain("sessions.usage");
|
|
});
|
|
|
|
it("preserves the legacy advertised method order", () => {
|
|
const methods = listGatewayMethods();
|
|
expect(methods.slice(0, 5)).toEqual([
|
|
"health",
|
|
"diagnostics.stability",
|
|
"doctor.memory.status",
|
|
"doctor.memory.dreamDiary",
|
|
"doctor.memory.backfillDreamDiary",
|
|
]);
|
|
expect(methods.slice(32, 37)).toEqual([
|
|
"exec.approvals.get",
|
|
"exec.approvals.set",
|
|
"exec.approvals.node.get",
|
|
"exec.approvals.node.set",
|
|
"exec.approval.get",
|
|
]);
|
|
});
|
|
|
|
it("advertises the versioned Talk session RPCs", () => {
|
|
const methods = listGatewayMethods();
|
|
expect(methods).toContain("talk.client.create");
|
|
expect(methods).toContain("talk.client.toolCall");
|
|
expect(methods).toContain("talk.client.steer");
|
|
expect(methods).toContain("talk.session.create");
|
|
expect(methods).toContain("talk.session.join");
|
|
expect(methods).toContain("talk.session.appendAudio");
|
|
expect(methods).toContain("talk.session.startTurn");
|
|
expect(methods).toContain("talk.session.endTurn");
|
|
expect(methods).toContain("talk.session.cancelTurn");
|
|
expect(methods).toContain("talk.session.cancelOutput");
|
|
expect(methods).toContain("talk.session.submitToolResult");
|
|
expect(methods).toContain("talk.session.steer");
|
|
expect(methods).toContain("talk.session.close");
|
|
});
|
|
});
|