Files
TextNLPClassifierApp/graphify-out/cache/ast/v0.9.47-s2/084a9de66475aad2eb213ff906128d4094408891bd8ddbbd9f0e5674a1cb6192.json
andreferraro 6a45368cb0 feat(extractor): implement multi-engine article content extractor
- Added scripts/extract_article_contents.py for batch scraping with stealth Foxcape and triple extraction (Trafilatura, Newspaper4k, Readability)
- Created unit, integration, and E2E test suite in tests/test_extract_article_contents.py (90/90 passing)
- Updated specs/003-article-content-extractor and README.md with usage documentation and CLI contracts
- Passed ruff linting/formatting and mypy type checking cleanly
2026-08-20 19:22:20 -03:00

1 line
6.1 KiB
JSON

{"nodes": [{"id": "$graphify-root$_src_adapters_llm_py", "label": "llm.py", "file_type": "code", "source_file": "src/adapters/llm.py", "source_location": "L1"}, {"id": "$graphify-root$_src_adapters_llm_llmfallbackadapter", "label": "LLMFallbackAdapter", "file_type": "code", "source_file": "src/adapters/llm.py", "source_location": "L15", "_callable": true, "_callable_class": true}, {"id": "basenlpadapter", "label": "BaseNLPAdapter", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/src/adapters/llm.py"}, {"id": "$graphify-root$_src_adapters_llm_llmfallbackadapter_init", "label": ".__init__()", "file_type": "code", "source_file": "src/adapters/llm.py", "source_location": "L18", "_callable": true}, {"id": "$graphify-root$_src_adapters_llm_llmfallbackadapter_is_available", "label": ".is_available()", "file_type": "code", "source_file": "src/adapters/llm.py", "source_location": "L22", "_callable": true}, {"id": "$graphify-root$_src_adapters_llm_llmfallbackadapter_evaluate_similarity", "label": ".evaluate_similarity()", "file_type": "code", "source_file": "src/adapters/llm.py", "source_location": "L25", "_callable": true}, {"id": "$graphify-root$_src_adapters_llm_llmfallbackadapter_disambiguate", "label": ".disambiguate()", "file_type": "code", "source_file": "src/adapters/llm.py", "source_location": "L28", "_callable": true}, {"id": "ecpsnapshot", "label": "ECPSnapshot", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/src/adapters/llm.py"}, {"id": "classificationresult", "label": "ClassificationResult", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/src/adapters/llm.py"}, {"id": "$graphify-root$_src_adapters_llm_rationale_1", "label": "Optional LLM fallback adapter (Tier 3). Disabled by default. Provides fallback\u2026", "file_type": "rationale", "source_file": "src/adapters/llm.py", "source_location": "L1"}, {"id": "$graphify-root$_src_adapters_llm_rationale_16", "label": "Optional adapter for LLM fallback boundary disambiguation.", "file_type": "rationale", "source_file": "src/adapters/llm.py", "source_location": "L16"}], "edges": [{"source": "$graphify-root$_src_adapters_llm_py", "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "src/adapters/llm.py", "source_location": "L9", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_llm_py", "target": "src_adapters_base", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "src/adapters/llm.py", "source_location": "L11", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_llm_py", "target": "src_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "src/adapters/llm.py", "source_location": "L12", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_llm_py", "target": "$graphify-root$_src_adapters_llm_llmfallbackadapter", "relation": "contains", "confidence": "EXTRACTED", "source_file": "src/adapters/llm.py", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_llm_llmfallbackadapter", "target": "basenlpadapter", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "src/adapters/llm.py", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_llm_llmfallbackadapter", "target": "$graphify-root$_src_adapters_llm_llmfallbackadapter_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/adapters/llm.py", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_llm_llmfallbackadapter", "target": "$graphify-root$_src_adapters_llm_llmfallbackadapter_is_available", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/adapters/llm.py", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_llm_llmfallbackadapter", "target": "$graphify-root$_src_adapters_llm_llmfallbackadapter_evaluate_similarity", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/adapters/llm.py", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_llm_llmfallbackadapter", "target": "$graphify-root$_src_adapters_llm_llmfallbackadapter_disambiguate", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/adapters/llm.py", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_llm_llmfallbackadapter_disambiguate", "target": "ecpsnapshot", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "src/adapters/llm.py", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_llm_llmfallbackadapter_disambiguate", "target": "classificationresult", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "src/adapters/llm.py", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_llm_llmfallbackadapter_disambiguate", "target": "classificationresult", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "src/adapters/llm.py", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_llm_llmfallbackadapter_disambiguate", "target": "$graphify-root$_src_adapters_llm_llmfallbackadapter_is_available", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "src/adapters/llm.py", "source_location": "L35", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_llm_rationale_1", "target": "$graphify-root$_src_adapters_llm_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "src/adapters/llm.py", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_llm_rationale_16", "target": "$graphify-root$_src_adapters_llm_llmfallbackadapter", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "src/adapters/llm.py", "source_location": "L16", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_src_adapters_llm_llmfallbackadapter_init", "callee": "get", "is_member_call": true, "source_file": "src/adapters/llm.py", "source_location": "L20", "receiver": null}]}