From a6807281faf8c6246110bf5937a82296be4f458d Mon Sep 17 00:00:00 2001 From: Imanol Maiztegui Date: Sun, 28 Jun 2026 22:32:20 +0200 Subject: [PATCH] fix(config): add agent requirements schema --- apps/web/src/app/config.json/extras.ts | 5 +++++ apps/web/src/tests/cli-config-schema.test.ts | 10 ++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/apps/web/src/app/config.json/extras.ts b/apps/web/src/app/config.json/extras.ts index dee8d53edb..8130a11ce5 100644 --- a/apps/web/src/app/config.json/extras.ts +++ b/apps/web/src/app/config.json/extras.ts @@ -103,6 +103,11 @@ export const kiloExtras = { description: 'Enable AI-powered codebase search', type: 'boolean', }, + agent_requirements: { + description: + 'Require declared agent skills, MCPs, and VS Code extensions before VS Code prompts can run', + type: 'boolean', + }, native_notebook_tools: { description: 'Enable native tools for reading, editing, and executing VS Code notebooks', type: 'boolean', diff --git a/apps/web/src/tests/cli-config-schema.test.ts b/apps/web/src/tests/cli-config-schema.test.ts index fd506ab25a..8d4c371ea8 100644 --- a/apps/web/src/tests/cli-config-schema.test.ts +++ b/apps/web/src/tests/cli-config-schema.test.ts @@ -58,7 +58,10 @@ describe('kilo config.json schema merge', () => { }); test('terminal_command_display is an enum of expanded/collapsed', () => { - const tcd = props.terminal_command_display as { type: string; enum: string[] }; + const tcd = props.terminal_command_display as { + type: string; + enum: string[]; + }; expect(tcd.type).toBe('string'); expect(tcd.enum).toEqual(['expanded', 'collapsed']); }); @@ -91,7 +94,9 @@ describe('kilo config.json schema merge', () => { test('adds notebook permission keys without dropping upstream', () => { const defs = out.$defs as Record; - const permissionConfig = defs.PermissionConfig as { anyOf: Array> }; + const permissionConfig = defs.PermissionConfig as { + anyOf: Array>; + }; const permissionObject = permissionConfig.anyOf.find(variant => variant.type === 'object') as { properties: Record; }; @@ -111,6 +116,7 @@ describe('kilo config.json schema merge', () => { test('adds kilo experimental keys without dropping upstream', () => { const exp = props.experimental as { properties: Record }; expect(exp.properties.codebase_search).toBeDefined(); + expect(exp.properties.agent_requirements).toEqual(expect.objectContaining({ type: 'boolean' })); expect(exp.properties.native_notebook_tools).toEqual( expect.objectContaining({ type: 'boolean' }) );