feat(extractor): add Google News headlines extractor with Foxcape headless and URL resolution

- Add standalone CLI script scripts/extract_google_news.py for Google News RSS scraping
- Integrate foxcape in headless mode as primary stealth anti-bot engine
- Implement parallel article URL resolution using googlenewsdecoder and ThreadPoolExecutor
- Support language and regional locale mapping (-l, --lang, --locale)
- Implement real-time progress logging in stderr and --silent flag
- Add unit, integration, and live E2E tests in tests/test_extract_google_news.py
- Add full SpecKit documentation (specs/002-google-news-extractor/)
- Create comprehensive README.md covering both NLP Classifier and Google News Extractor
This commit is contained in:
2026-08-20 11:50:16 -03:00
parent 67cc40f91a
commit 6e3d57619b
59 changed files with 16118 additions and 2160 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "$graphify-root$_specs_002_google_news_extractor_plan_md", "label": "plan.md", "file_type": "document", "node_kind": "page", "source_file": "specs/002-google-news-extractor/plan.md", "source_location": "L1"}, {"id": "$graphify-root$_specs_002_google_news_extractor_plan_implementation_plan_google_news_headlines_extractor", "label": "Implementation Plan: Google News Headlines Extractor", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/plan.md", "source_location": "L1"}, {"id": "$graphify-root$_specs_002_google_news_extractor_plan_summary", "label": "Summary", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/plan.md", "source_location": "L7"}, {"id": "$graphify-root$_specs_002_google_news_extractor_plan_technical_context", "label": "Technical Context", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/plan.md", "source_location": "L11"}, {"id": "$graphify-root$_specs_002_google_news_extractor_plan_architecture_pipeline", "label": "Architecture & Pipeline", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/plan.md", "source_location": "L28"}, {"id": "$graphify-root$_specs_002_google_news_extractor_plan_project_structure", "label": "Project Structure", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/plan.md", "source_location": "L45"}, {"id": "$graphify-root$_specs_002_google_news_extractor_plan_documentation_this_feature", "label": "Documentation (this feature)", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/plan.md", "source_location": "L47"}, {"id": "$graphify-root$_specs_002_google_news_extractor_plan_source_code", "label": "Source Code", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/plan.md", "source_location": "L63"}], "edges": [{"source": "$graphify-root$_specs_002_google_news_extractor_plan_md", "target": "$graphify-root$_specs_002_google_news_extractor_plan_implementation_plan_google_news_headlines_extractor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/plan.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_plan_md", "target": "$graphify-root$_specs_002_google_news_extractor_spec_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/plan.md", "source_location": "L3", "weight": 1.0, "target_file": "$graphify-root$/specs/002-google-news-extractor/spec.md"}, {"source": "$graphify-root$_specs_002_google_news_extractor_plan_implementation_plan_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_plan_summary", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/plan.md", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_plan_implementation_plan_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_plan_technical_context", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/plan.md", "source_location": "L11", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_plan_implementation_plan_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_plan_architecture_pipeline", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/plan.md", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_plan_implementation_plan_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_plan_project_structure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/plan.md", "source_location": "L45", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_plan_project_structure", "target": "$graphify-root$_specs_002_google_news_extractor_plan_documentation_this_feature", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/plan.md", "source_location": "L47", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_plan_project_structure", "target": "$graphify-root$_specs_002_google_news_extractor_plan_source_code", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/plan.md", "source_location": "L63", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "pkg_text_nlp_classifier", "label": "text-nlp-classifier", "file_type": "code", "type": "package", "ecosystem": "python", "source_file": "pyproject.toml", "source_location": "L1", "version": "0.1.0"}], "edges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_md", "label": "cli_contract.md", "file_type": "document", "node_kind": "page", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L1"}, {"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", "label": "CLI Contract: Google News Headlines Extractor", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L1"}, {"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_1_comando_e_argumentos", "label": "1. Comando e Argumentos", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L3"}, {"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_sintaxe", "label": "Sintaxe", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L5"}, {"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_argumentos_de_linha_de_comando", "label": "Argumentos de Linha de Comando", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L10"}, {"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_2_c\u00f3digos_de_sa\u00edda_exit_codes", "label": "2. C\u00f3digos de Sa\u00edda (Exit Codes)", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L25"}, {"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_3_protocolo_de_streams_stdout_stderr", "label": "3. Protocolo de Streams (Stdout / Stderr)", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L35"}], "edges": [{"source": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_md", "target": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_1_comando_e_argumentos", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L3", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_1_comando_e_argumentos", "target": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_sintaxe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L5", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_1_comando_e_argumentos", "target": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_argumentos_de_linha_de_comando", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L10", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_2_c\u00f3digos_de_sa\u00edda_exit_codes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_3_protocolo_de_streams_stdout_stderr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L35", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "$graphify-root$_specs_002_google_news_extractor_data_model_md", "label": "data-model.md", "file_type": "document", "node_kind": "page", "source_file": "specs/002-google-news-extractor/data-model.md", "source_location": "L1"}, {"id": "$graphify-root$_specs_002_google_news_extractor_data_model_data_model_google_news_headlines_extractor", "label": "Data Model: Google News Headlines Extractor", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/data-model.md", "source_location": "L1"}, {"id": "$graphify-root$_specs_002_google_news_extractor_data_model_1_entidades_de_dom\u00ednio_dtos", "label": "1. Entidades de Dom\u00ednio & DTOs", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/data-model.md", "source_location": "L3"}, {"id": "$graphify-root$_specs_002_google_news_extractor_data_model_1_1_searchquery_par\u00e2metros_da_busca", "label": "1.1 SearchQuery (Par\u00e2metros da Busca)", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/data-model.md", "source_location": "L5"}, {"id": "$graphify-root$_specs_002_google_news_extractor_data_model_1_2_newsarticle_item_de_not\u00edcia", "label": "1.2 NewsArticle (Item de Not\u00edcia)", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/data-model.md", "source_location": "L15"}, {"id": "$graphify-root$_specs_002_google_news_extractor_data_model_1_3_extractionresult_sa\u00edda_estruturada_consolidada", "label": "1.3 ExtractionResult (Sa\u00edda Estruturada Consolidada)", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/data-model.md", "source_location": "L26"}, {"id": "$graphify-root$_specs_002_google_news_extractor_data_model_2_esquema_json_de_sa\u00edda", "label": "2. Esquema JSON de Sa\u00edda", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/data-model.md", "source_location": "L41"}], "edges": [{"source": "$graphify-root$_specs_002_google_news_extractor_data_model_md", "target": "$graphify-root$_specs_002_google_news_extractor_data_model_data_model_google_news_headlines_extractor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/data-model.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_data_model_data_model_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_data_model_1_entidades_de_dom\u00ednio_dtos", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/data-model.md", "source_location": "L3", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_data_model_1_entidades_de_dom\u00ednio_dtos", "target": "$graphify-root$_specs_002_google_news_extractor_data_model_1_1_searchquery_par\u00e2metros_da_busca", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/data-model.md", "source_location": "L5", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_data_model_1_entidades_de_dom\u00ednio_dtos", "target": "$graphify-root$_specs_002_google_news_extractor_data_model_1_2_newsarticle_item_de_not\u00edcia", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/data-model.md", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_data_model_1_entidades_de_dom\u00ednio_dtos", "target": "$graphify-root$_specs_002_google_news_extractor_data_model_1_3_extractionresult_sa\u00edda_estruturada_consolidada", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/data-model.md", "source_location": "L26", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_data_model_data_model_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_data_model_2_esquema_json_de_sa\u00edda", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/data-model.md", "source_location": "L41", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_md", "label": "cli_contract.md", "file_type": "document", "node_kind": "page", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L1"}, {"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", "label": "CLI Contract: Google News Headlines Extractor", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L1"}, {"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_1_comando_e_argumentos", "label": "1. Comando e Argumentos", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L3"}, {"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_sintaxe", "label": "Sintaxe", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L5"}, {"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_argumentos_de_linha_de_comando", "label": "Argumentos de Linha de Comando", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L10"}, {"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_2_c\u00f3digos_de_sa\u00edda_exit_codes", "label": "2. C\u00f3digos de Sa\u00edda (Exit Codes)", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L23"}, {"id": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_3_protocolo_de_streams_stdout_stderr", "label": "3. Protocolo de Streams (Stdout / Stderr)", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L33"}], "edges": [{"source": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_md", "target": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_1_comando_e_argumentos", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L3", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_1_comando_e_argumentos", "target": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_sintaxe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L5", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_1_comando_e_argumentos", "target": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_argumentos_de_linha_de_comando", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L10", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_2_c\u00f3digos_de_sa\u00edda_exit_codes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_contracts_cli_contract_3_protocolo_de_streams_stdout_stderr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", "source_location": "L33", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "$graphify-root$_specs_002_google_news_extractor_checklists_requirements_md", "label": "requirements.md", "file_type": "document", "node_kind": "page", "source_file": "specs/002-google-news-extractor/checklists/requirements.md", "source_location": "L1"}, {"id": "$graphify-root$_specs_002_google_news_extractor_checklists_requirements_specification_quality_checklist_google_news_headlines_extractor", "label": "Specification Quality Checklist: Google News Headlines Extractor", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/checklists/requirements.md", "source_location": "L1"}, {"id": "$graphify-root$_specs_002_google_news_extractor_checklists_requirements_content_quality", "label": "Content Quality", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/checklists/requirements.md", "source_location": "L7"}, {"id": "$graphify-root$_specs_002_google_news_extractor_checklists_requirements_requirement_completeness", "label": "Requirement Completeness", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/checklists/requirements.md", "source_location": "L14"}, {"id": "$graphify-root$_specs_002_google_news_extractor_checklists_requirements_feature_readiness", "label": "Feature Readiness", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/checklists/requirements.md", "source_location": "L25"}, {"id": "$graphify-root$_specs_002_google_news_extractor_checklists_requirements_notes", "label": "Notes", "file_type": "document", "node_kind": "heading", "source_file": "specs/002-google-news-extractor/checklists/requirements.md", "source_location": "L32"}], "edges": [{"source": "$graphify-root$_specs_002_google_news_extractor_checklists_requirements_md", "target": "$graphify-root$_specs_002_google_news_extractor_checklists_requirements_specification_quality_checklist_google_news_headlines_extractor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/checklists/requirements.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_checklists_requirements_md", "target": "$graphify-root$_specs_002_google_news_extractor_spec_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/checklists/requirements.md", "source_location": "L5", "weight": 1.0, "target_file": "$graphify-root$/specs/002-google-news-extractor/spec.md"}, {"source": "$graphify-root$_specs_002_google_news_extractor_checklists_requirements_specification_quality_checklist_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_checklists_requirements_content_quality", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/checklists/requirements.md", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_checklists_requirements_specification_quality_checklist_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_checklists_requirements_requirement_completeness", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/checklists/requirements.md", "source_location": "L14", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_checklists_requirements_specification_quality_checklist_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_checklists_requirements_feature_readiness", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/checklists/requirements.md", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_specs_002_google_news_extractor_checklists_requirements_specification_quality_checklist_google_news_headlines_extractor", "target": "$graphify-root$_specs_002_google_news_extractor_checklists_requirements_notes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/002-google-news-extractor/checklists/requirements.md", "source_location": "L32", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "$graphify-root$_scripts_init_py", "label": "__init__.py", "file_type": "code", "source_file": "scripts/__init__.py", "source_location": "L1"}, {"id": "$graphify-root$_scripts_init_rationale_1", "label": "M\u00f3dulo de scripts utilit\u00e1rios do projeto.", "file_type": "rationale", "source_file": "scripts/__init__.py", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_scripts_init_rationale_1", "target": "$graphify-root$_scripts_init_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/__init__.py", "source_location": "L1", "weight": 1.0}], "raw_calls": []}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long