






















@@ -313,15 +313,15 @@ describe("runBeforeToolCallHook — embedded mode approvals", () => {
313313expect(runBeforeToolCallMock).not.toHaveBeenCalled();
314314});
315315316-it("requires approval before skill_research applies a proposal", async () => {
316+it("requires approval before skill_workshop applies a proposal", async () => {
317317(hookRunner.hasHooks as ReturnType<typeof vi.fn>).mockReturnValue(false);
318318mockCallGatewayTool.mockResolvedValueOnce({
319-id: "skill-research-approval",
319+id: "skill-workshop-approval",
320320decision: PluginApprovalResolutions.ALLOW_ONCE,
321321});
322322323323const result = await runBeforeToolCallHook({
324-toolName: "skill_research",
324+toolName: "skill_workshop",
325325params: { action: "apply", proposal_id: "weather-20260530-a1b2c3d4e5" },
326326toolCallId: "call-skill-apply",
327327ctx: {
@@ -342,24 +342,24 @@ describe("runBeforeToolCallHook — embedded mode approvals", () => {
342342params: { action: "apply", proposal_id: "weather-20260530-a1b2c3d4e5" },
343343approvalResolution: PluginApprovalResolutions.ALLOW_ONCE,
344344});
345-const approvalCall = requireApprovalRequestCall("skill_research approval request");
345+const approvalCall = requireApprovalRequestCall("skill_workshop approval request");
346346expect(approvalCall.request.pluginId).toBeUndefined();
347347expect(approvalCall.request.title).toBe("Apply workspace skill proposal");
348348expect(approvalCall.request.description).toBe(
349349"Apply a pending workspace skill proposal into live workspace skills.",
350350);
351351expect(approvalCall.request.severity).toBe("warning");
352352expect(approvalCall.request.allowedDecisions).toEqual(["allow-once", "deny"]);
353-expect(approvalCall.request.toolName).toBe("skill_research");
353+expect(approvalCall.request.toolName).toBe("skill_workshop");
354354expect(approvalCall.request.toolCallId).toBe("call-skill-apply");
355355expect(runBeforeToolCallMock).not.toHaveBeenCalled();
356356});
357357358-it("does not require skill_research lifecycle approval in auto mode", async () => {
358+it("does not require skill_workshop lifecycle approval in auto mode", async () => {
359359(hookRunner.hasHooks as ReturnType<typeof vi.fn>).mockReturnValue(false);
360360361361const result = await runBeforeToolCallHook({
362-toolName: "skill_research",
362+toolName: "skill_workshop",
363363params: { action: "reject", proposal_id: "weather-20260530-a1b2c3d4e5" },
364364ctx: {
365365config: {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。