import type { MockAdapterConfig } from '../../llm/adapters/mock-adapter'

/**
 * Single tool call scenario
 */
export const singleToolScenario: MockAdapterConfig = {
  responses: [
    {
      reasoning: 'I need to use the tool',
      nextActions: [{ type: 'tool-call', id: 'call-1', name: 'test_tool', input: { data: 'test' } }]
    },
    {
      reasoning: 'Tool executed successfully',
      nextActions: [{ type: 'complete' }]
    }
  ],
  completionOutput: { status: 'success' }
}

/**
 * Knowledge map navigation scenario
 */
export const knowledgeNavigationScenario: MockAdapterConfig = {
  responses: [
    {
      reasoning: 'I need access to test tools',
      nextActions: [{ type: 'navigate-knowledge', id: 'nav-1', nodeId: 'test-tools' }]
    },
    {
      reasoning: 'Tools loaded, now I can use them',
      nextActions: [{ type: 'tool-call', id: 'call-1', name: 'test_tool_1', input: { input: 'test' } }]
    },
    {
      reasoning: 'Task complete',
      nextActions: [{ type: 'complete' }]
    }
  ],
  completionOutput: { result: 'Task completed with loaded tools' }
}

/**
 * Multi-tool chaining scenario
 */
export const multiToolScenario: MockAdapterConfig = {
  responses: [
    {
      reasoning: 'First, request approval',
      nextActions: [{ type: 'tool-call', id: 'call-1', name: 'request_approval', input: { amount: 1000 } }]
    },
    {
      reasoning: 'Approval sent, now notify user',
      nextActions: [{ type: 'tool-call', id: 'call-2', name: 'notify_user', input: { title: 'Approval Sent' } }]
    },
    {
      reasoning: 'All tasks complete',
      nextActions: [{ type: 'complete' }]
    }
  ],
  completionOutput: { status: 'completed', approvalId: 'task-123', notificationId: 'notif-456' }
}
