The OpenAI API was rejecting function declarations due to empty properties in
the extracted_content object type. This fix adds required properties to comply
with OpenAI's schema requirements:
- Add 'text' property for storing extracted page content
- Add 'metadata' object with 'source' property for content attribution
- Maintain existing functionality while satisfying API schema validation
Error resolved:
"GenerateContentRequest.tools[0].function_declarations[0].parameters.properties[extracted_content].properties: should be non-empty for OBJECT type"