diff --git a/server/src/__tests__/adapter-routes.test.ts b/server/src/__tests__/adapter-routes.test.ts index d67a4f9bf5..289e25c7c2 100644 --- a/server/src/__tests__/adapter-routes.test.ts +++ b/server/src/__tests__/adapter-routes.test.ts @@ -129,6 +129,18 @@ describe("adapter routes", () => { expect(cursorAdapter).toBeDefined(); expect(cursorAdapter.capabilities.requiresMaterializedRuntimeSkills).toBe(true); expect(cursorAdapter.capabilities.supportsInstructionsBundle).toBe(true); + + // hermes_local currently supports skills + local JWT, but not the managed + // instructions bundle flow because the bundled adapter does not consume + // instructionsFilePath at runtime. + const hermesAdapter = res.body.find((a: any) => a.type === "hermes_local"); + expect(hermesAdapter).toBeDefined(); + expect(hermesAdapter.capabilities).toMatchObject({ + supportsInstructionsBundle: false, + supportsSkills: true, + supportsLocalAgentJwt: true, + requiresMaterializedRuntimeSkills: false, + }); }); it("GET /api/adapters derives supportsSkills from listSkills/syncSkills presence", async () => { diff --git a/server/src/adapters/registry.ts b/server/src/adapters/registry.ts index f6a1afca1e..d3fa0fbec7 100644 --- a/server/src/adapters/registry.ts +++ b/server/src/adapters/registry.ts @@ -209,8 +209,7 @@ const hermesLocalAdapter: ServerAdapterModule = { syncSkills: hermesSyncSkills, models: hermesModels, supportsLocalAgentJwt: true, - supportsInstructionsBundle: true, - instructionsPathKey: "instructionsFilePath", + supportsInstructionsBundle: false, requiresMaterializedRuntimeSkills: false, agentConfigurationDoc: hermesAgentConfigurationDoc, detectModel: () => detectModelFromHermes(), diff --git a/ui/src/adapters/use-adapter-capabilities.ts b/ui/src/adapters/use-adapter-capabilities.ts index 281d3adcc0..7c16e1c973 100644 --- a/ui/src/adapters/use-adapter-capabilities.ts +++ b/ui/src/adapters/use-adapter-capabilities.ts @@ -21,7 +21,7 @@ const KNOWN_DEFAULTS: Record = { gemini_local: { supportsInstructionsBundle: true, supportsSkills: true, supportsLocalAgentJwt: true, requiresMaterializedRuntimeSkills: true }, opencode_local: { supportsInstructionsBundle: true, supportsSkills: true, supportsLocalAgentJwt: true, requiresMaterializedRuntimeSkills: true }, pi_local: { supportsInstructionsBundle: true, supportsSkills: true, supportsLocalAgentJwt: true, requiresMaterializedRuntimeSkills: true }, - hermes_local: { supportsInstructionsBundle: true, supportsSkills: true, supportsLocalAgentJwt: true, requiresMaterializedRuntimeSkills: false }, + hermes_local: { supportsInstructionsBundle: false, supportsSkills: true, supportsLocalAgentJwt: true, requiresMaterializedRuntimeSkills: false }, openclaw_gateway: ALL_FALSE, };