diff --git a/integrations/catalog.json b/integrations/catalog.json index 59b7b3e..00c0c19 100644 --- a/integrations/catalog.json +++ b/integrations/catalog.json @@ -456,12 +456,13 @@ "integration_mode": "command_hooks", "config_format": "json", "config_paths": [ - "$QWEN_HOME/settings.json", - "~/.qwen/settings.json", - ".qwen/settings.json" + "$QWEN_CODE_SYSTEM_DEFAULTS_PATH", "/Library/Application Support/QwenCode/system-defaults.json", "/etc/qwen-code/system-defaults.json", "C:\\ProgramData\\qwen-code\\system-defaults.json", + "$QWEN_HOME/settings.json", "~/.qwen/settings.json", ".qwen/settings.json", + "$QWEN_CODE_SYSTEM_SETTINGS_PATH", "/Library/Application Support/QwenCode/settings.json", "/etc/qwen-code/settings.json", "C:\\ProgramData\\qwen-code\\settings.json", + "$QWEN_CODE_TRUSTED_FOLDERS_PATH", "$QWEN_HOME/trustedFolders.json", "~/.qwen/trustedFolders.json" ], - "events": { "before_tool": "PreToolUse", "after_tool": "PostToolUse" }, - "event_fields": { "name": "tool_name", "input": "tool_input", "session": "session_id" }, + "events": { "before_tool": "PreToolUse", "after_tool": "PostToolUse", "after_tool_failure": "PostToolUseFailure" }, + "event_fields": { "name": "tool_name", "input": "tool_input", "session": "session_id", "call_id": "tool_use_id/tool_call_id", "output": "tool_response", "error": "error" }, "blocking": { "mechanism": "exit_code_2", "failure_mode": "fail_open" }, "adapters": { "node": true, "python": true, "go": true }, "delivery_state": "available", diff --git a/test/integration-catalog-contracts.test.mjs b/test/integration-catalog-contracts.test.mjs index 3fba799..89586a8 100644 --- a/test/integration-catalog-contracts.test.mjs +++ b/test/integration-catalog-contracts.test.mjs @@ -400,18 +400,33 @@ test('high-drift providers retain their verified hook contracts', async () => { }); assert.equal(providers.get('qwen').config_format, 'json'); assert.deepEqual(providers.get('qwen').config_paths, [ + '$QWEN_CODE_SYSTEM_DEFAULTS_PATH', + '/Library/Application Support/QwenCode/system-defaults.json', + '/etc/qwen-code/system-defaults.json', + 'C:\\ProgramData\\qwen-code\\system-defaults.json', '$QWEN_HOME/settings.json', '~/.qwen/settings.json', '.qwen/settings.json', + '$QWEN_CODE_SYSTEM_SETTINGS_PATH', + '/Library/Application Support/QwenCode/settings.json', + '/etc/qwen-code/settings.json', + 'C:\\ProgramData\\qwen-code\\settings.json', + '$QWEN_CODE_TRUSTED_FOLDERS_PATH', + '$QWEN_HOME/trustedFolders.json', + '~/.qwen/trustedFolders.json', ]); assert.deepEqual(providers.get('qwen').events, { before_tool: 'PreToolUse', after_tool: 'PostToolUse', + after_tool_failure: 'PostToolUseFailure', }); assert.deepEqual(providers.get('qwen').event_fields, { name: 'tool_name', input: 'tool_input', session: 'session_id', + call_id: 'tool_use_id/tool_call_id', + output: 'tool_response', + error: 'error', }); assert.deepEqual(providers.get('qwen').blocking, { mechanism: 'exit_code_2',