{
  "tool": "Dify official OpenAI-API-compatible plugin",
  "pluginVersion": "0.0.68",
  "sdkVersion": "0.10.2",
  "sourceCommit": "a499463382018a15fdd73fe089e5d69a99feab70",
  "scope": "Actual unchanged official Python plugin class and public invoke method against local deterministic HTTP fixture. No Dify workspace UI, no real model, no apizt endpoint, no billing.",
  "results": [
    {
      "operation": "official-plugin.validate_credentials",
      "status": "passed"
    },
    {
      "operation": "official-plugin.invoke",
      "status": "passed",
      "result": [
        {
          "model": "tutorial-fixture",
          "prompt_messages": [],
          "system_fingerprint": null,
          "delta": {
            "index": 0,
            "message": {
              "role": "assistant",
              "content": "LOCAL_PROTOCOL_FIXTURE_OK",
              "name": null,
              "tool_calls": [],
              "opaque_body": null
            },
            "usage": {
              "prompt_tokens": 8,
              "prompt_unit_price": "0",
              "prompt_price_unit": "0",
              "prompt_price": "0E-7",
              "completion_tokens": 4,
              "completion_unit_price": "0",
              "completion_price_unit": "0",
              "completion_price": "0E-7",
              "total_tokens": 12,
              "total_price": "0E-7",
              "currency": "USD",
              "latency": 0.0016703750006854534
            },
            "finish_reason": null
          }
        }
      ]
    },
    {
      "operation": "duplicate-endpoint-negative-control",
      "status": "failed_as_expected",
      "error": "Credentials validation failed with status code 404 and response body {\"error\":{\"message\":\"fixture route not found\"}}"
    }
  ],
  "requests": [
    {
      "path": "/v1/chat/completions",
      "body": {
        "model": "tutorial-fixture",
        "max_tokens": 5,
        "messages": [
          {
            "role": "user",
            "content": "ping"
          }
        ]
      },
      "hasBearerHeader": true
    },
    {
      "path": "/v1/chat/completions",
      "body": {
        "model": "tutorial-fixture",
        "stream": false,
        "temperature": 0,
        "max_tokens": 32,
        "messages": [
          {
            "role": "user",
            "content": "Return a protocol fixture response"
          }
        ]
      },
      "hasBearerHeader": true
    },
    {
      "path": "/v1/chat/completions/chat/completions",
      "body": {
        "model": "tutorial-fixture",
        "max_tokens": 5,
        "messages": [
          {
            "role": "user",
            "content": "ping"
          }
        ]
      },
      "hasBearerHeader": true
    }
  ]
}