#!/usr/bin/env bash
set -euo pipefail

: "${MCP_ACCESS_TOKEN:?Run OAuth login first and export MCP_ACCESS_TOKEN}"
export MCP_URL="${MCP_URL:-https://mcp.docintel.adar.agomoniai.com/mcp}"
export MCP_PROTOCOL_VERSION="${MCP_PROTOCOL_VERSION:-2025-06-18}"
export WORKSPACE_ID="${WORKSPACE_ID:-}"
export DOCUMENT_ID="${DOCUMENT_ID:-}"

source ./docintel-mcp-client.sh

echo "Initialize"
mcp_request "$(jq -cn \
  --arg version "$MCP_PROTOCOL_VERSION" \
  '{jsonrpc:"2.0",id:1,method:"initialize",params:{protocolVersion:$version,capabilities:{},clientInfo:{name:"docintel-smoke",version:"1.0"}}}')" | jq

echo "Tools"
mcp_request '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
  | jq -r '.result.tools[]?.name' | sort

echo "Resource templates"
mcp_request '{"jsonrpc":"2.0","id":3,"method":"resources/templates/list","params":{}}' \
  | jq -r '.result.resourceTemplates[]?.uriTemplate'

echo "Workspaces"
mcp_tool list_workspaces '{}' | tool_data | jq

echo "Documents"
mcp_tool list_documents "$(jq -cn \
  --arg workspace_id "$WORKSPACE_ID" \
  '{workspace_id:(if $workspace_id == "" then null else $workspace_id end)}')" \
  | tee /tmp/docintel-documents.json | tool_data | jq

if [[ -n "$DOCUMENT_ID" ]]; then
  echo "Document metadata"
  mcp_tool get_document "$(jq -cn --arg document_id "$DOCUMENT_ID" \
    '{document_id:$document_id}')" | tool_data | jq

  echo "Grounded Q&A"
  mcp_tool search_knowledgebase "$(jq -cn \
    --arg workspace_id "$WORKSPACE_ID" \
    --arg document_id "$DOCUMENT_ID" \
    --arg question "What are the key facts, risks, and next actions?" \
    '{
      question:$question,
      workspace_id:(if $workspace_id == "" then null else $workspace_id end),
      document_ids:[$document_id],
      redact_pii:false
    }')" | tool_data | jq
else
  echo "Set DOCUMENT_ID to run document metadata and grounded Q&A checks."
fi
