rust-crate-pipeline 1.3.6__tar.gz → 1.4.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. rust_crate_pipeline-1.4.1/CHANGELOG_v1.4.0.md +21 -0
  2. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/PKG-INFO +61 -2
  3. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/README.md +60 -1
  4. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/README_LLM_PROVIDERS.md +9 -0
  5. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/pyproject.toml +1 -1
  6. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/ai_processing.py +718 -598
  7. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/azure_ai_processing.py +461 -452
  8. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/core/canon_registry.py +2 -2
  9. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/github_token_checker.py +108 -108
  10. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/version.py +1 -1
  11. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline.egg-info/PKG-INFO +61 -2
  12. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline.egg-info/SOURCES.txt +5 -15
  13. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/setup.py +1 -1
  14. rust_crate_pipeline-1.4.1/tests/test_analysis.py +382 -0
  15. rust_crate_pipeline-1.4.1/tests/test_config.py +187 -0
  16. rust_crate_pipeline-1.4.1/tests/test_core_modules.py +352 -0
  17. rust_crate_pipeline-1.4.1/tests/test_github_token_checker.py +188 -0
  18. rust_crate_pipeline-1.3.6/tests/test_build.py +0 -59
  19. rust_crate_pipeline-1.3.6/tests/test_config_coverage.py +0 -59
  20. rust_crate_pipeline-1.3.6/tests/test_crawl4ai_basic.py +0 -69
  21. rust_crate_pipeline-1.3.6/tests/test_crawl4ai_demo.py +0 -162
  22. rust_crate_pipeline-1.3.6/tests/test_crawl4ai_integration.py +0 -207
  23. rust_crate_pipeline-1.3.6/tests/test_crawl4ai_integration_fixed.py +0 -195
  24. rust_crate_pipeline-1.3.6/tests/test_github_token_checker_coverage.py +0 -300
  25. rust_crate_pipeline-1.3.6/tests/test_logging.py +0 -62
  26. rust_crate_pipeline-1.3.6/tests/test_main_integration.py +0 -205
  27. rust_crate_pipeline-1.3.6/tests/test_main_module_coverage.py +0 -52
  28. rust_crate_pipeline-1.3.6/tests/test_optimization_validation.py +0 -198
  29. rust_crate_pipeline-1.3.6/tests/test_rule_zero_lookup.py +0 -80
  30. rust_crate_pipeline-1.3.6/tests/test_rust_analyzer_coverage.py +0 -40
  31. rust_crate_pipeline-1.3.6/tests/test_sigil_unified.py +0 -448
  32. rust_crate_pipeline-1.3.6/tests/test_thread_free.py +0 -225
  33. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/.aider.chat.history.md +0 -0
  34. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/CHANGELOG_v1.3.0.txt +0 -0
  35. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/CHANGELOG_v1.3.1.md +0 -0
  36. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/CHANGELOG_v1.3.2.md +0 -0
  37. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/CHANGELOG_v1.3.3.md +0 -0
  38. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/CHANGELOG_v1.3.4.md +0 -0
  39. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/CHANGELOG_v1.3.5.md +0 -0
  40. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/CHANGELOG_v1.3.6.md +0 -0
  41. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/CRAWL4AI_TYPE_ANALYSIS.md +0 -0
  42. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/LICENSE +0 -0
  43. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/MANIFEST.in +0 -0
  44. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/requirements-crawl4ai.txt +0 -0
  45. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/requirements-dev.txt +0 -0
  46. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/requirements.txt +0 -0
  47. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/__init__.py +0 -0
  48. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/__main__.py +0 -0
  49. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/analysis.py +0 -0
  50. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/config.py +0 -0
  51. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/core/__init__.py +0 -0
  52. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/core/irl_engine.py +0 -0
  53. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/core/sacred_chain.py +0 -0
  54. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/crate_analysis.py +0 -0
  55. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/crate_list.txt +0 -0
  56. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/main.py +0 -0
  57. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/network.py +0 -0
  58. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/pipeline.py +0 -0
  59. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/production_config.py +0 -0
  60. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/progress_monitor.py +0 -0
  61. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/scraping/__init__.py +0 -0
  62. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/scraping/unified_scraper.py +0 -0
  63. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/unified_llm_processor.py +0 -0
  64. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/unified_pipeline.py +0 -0
  65. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/utils/file_utils.py +0 -0
  66. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline/utils/logging_utils.py +0 -0
  67. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline.egg-info/dependency_links.txt +0 -0
  68. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline.egg-info/entry_points.txt +0 -0
  69. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline.egg-info/not-zip-safe +0 -0
  70. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline.egg-info/requires.txt +0 -0
  71. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/rust_crate_pipeline.egg-info/top_level.txt +0 -0
  72. {rust_crate_pipeline-1.3.6 → rust_crate_pipeline-1.4.1}/setup.cfg +0 -0
@@ -0,0 +1,21 @@
1
+ # Changelog v1.4.0
2
+
3
+ ## [1.4.0] - 2025-06-28
4
+
5
+ ### Added
6
+ - Robust Ed25519 and RSA cryptographic signing for RAG database
7
+ - Automated provenance and signature validation workflows
8
+ - GitHub Actions for signature/hash validation and RAG auto-update
9
+ - Docker image and compose updates for new version
10
+
11
+ ### Fixed
12
+ - Signature validation for Ed25519 keys in both scripts and CI
13
+ - Public key tracking in git, private key protection
14
+ - Workflow reliability for PyPI and Docker builds
15
+
16
+ ### Changed
17
+ - Version bump to 1.4.0 (minor release)
18
+ - All version references updated
19
+ - RAG and provenance now reflect new version
20
+
21
+ ---
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rust-crate-pipeline
3
- Version: 1.3.6
3
+ Version: 1.4.1
4
4
  Summary: A comprehensive pipeline for analyzing Rust crates with AI enrichment and enhanced scraping
5
5
  Home-page: https://github.com/SigilDERG/rust-crate-pipeline
6
6
  Author: SigilDERG Team
@@ -386,6 +386,13 @@ docker run -it -v $(pwd):/app rust-crate-pipeline
386
386
 
387
387
  ## Recent Improvements
388
388
 
389
+ ### Version 1.4.0
390
+ - **Security**: Robust Ed25519/RSA cryptographic signing and provenance
391
+ - **Automation**: Automated RAG and provenance workflows
392
+ - **CI/CD**: Improved GitHub Actions for validation and publishing
393
+ - **Docker**: Updated Docker image and compose for new version
394
+ - **Bug Fixes**: Workflow and validation fixes for Ed25519
395
+
389
396
  ### Version 1.3.6
390
397
  - **Python 3.12+ Requirement**: Updated to use modern type annotations and language features
391
398
  - **Type Safety**: Enhanced type annotations throughout the codebase with modern syntax
@@ -453,4 +460,56 @@ Or, text attribution:
453
460
 
454
461
  ```
455
462
  This project uses Crawl4AI (https://github.com/unclecode/crawl4ai) for web data extraction.
456
- ```
463
+ ```
464
+
465
+ ## 🚀 Unified, Cross-Platform, Multi-Provider LLM Support
466
+
467
+ This project supports **all major LLM providers** (cloud and local) on **Mac, Linux, and Windows** using a single, unified interface. All LLM calls are routed through the `UnifiedLLMProcessor` and `LLMConfig` abstractions, ensuring:
468
+
469
+ - **One code path for all providers:** Azure OpenAI, OpenAI, Anthropic, Google, Cohere, HuggingFace, Ollama, LM Studio, and any OpenAI-compatible endpoint.
470
+ - **Cross-platform compatibility:** Works out of the box on Mac, Linux, and Windows.
471
+ - **Configurable via CLI and config files:** Select provider, model, API key, endpoint, and provider-specific options at runtime.
472
+ - **Easy extensibility:** Add new providers by updating your config or CLI arguments—no code changes needed.
473
+
474
+ ### 📖 Provider Setup & Usage
475
+ - See [`README_LLM_PROVIDERS.md`](./README_LLM_PROVIDERS.md) for full details, setup instructions, and usage examples for every supported provider.
476
+ - Run `python run_pipeline_with_llm.py --help` for CLI options and provider-specific arguments.
477
+
478
+ ### 🧩 Example Usage
479
+ ```bash
480
+ # Azure OpenAI
481
+ python run_pipeline_with_llm.py --llm-provider azure --llm-model gpt-4o --crates tokio
482
+
483
+ # Ollama (local)
484
+ python run_pipeline_with_llm.py --llm-provider ollama --llm-model llama2 --crates serde
485
+
486
+ # OpenAI API
487
+ python run_pipeline_with_llm.py --llm-provider openai --llm-model gpt-4 --llm-api-key YOUR_KEY --crates tokio
488
+
489
+ # Anthropic Claude
490
+ python run_pipeline_with_llm.py --llm-provider anthropic --llm-model claude-3-sonnet --llm-api-key YOUR_KEY --crates serde
491
+ ```
492
+
493
+ ### 🔒 Security & Best Practices
494
+ - Store API keys as environment variables.
495
+ - Use local providers (Ollama, LM Studio) for full privacy—no data leaves your machine.
496
+ - All LLM calls are routed through a single, auditable interface for maximum maintainability and security.
497
+
498
+ ### 🧪 Testing
499
+ - Run `python test_unified_llm.py` to verify provider support and configuration.
500
+
501
+ For more, see [`README_LLM_PROVIDERS.md`](./README_LLM_PROVIDERS.md) and the CLI help output.
502
+
503
+ ## Public RAG Database Hash Verification
504
+
505
+ The canonical hash of the RAG SQLite database (`sigil_rag_cache.db`) is stored in the public file `sigil_rag_cache.hash`.
506
+
507
+ - **Purpose:** Anyone can verify the integrity of the RAG database by comparing its SHA256 hash to the value in `sigil_rag_cache.hash`.
508
+ - **How to verify:**
509
+
510
+ ```sh
511
+ python audits/validate_db_hash.py --db sigil_rag_cache.db --expected-hash "$(cat sigil_rag_cache.hash)"
512
+ ```
513
+
514
+ - **CI/CD:** The GitHub Actions workflow `.github/workflows/validate-db-hash.yml` automatically checks this on every push.
515
+ - **No secrets required:** The hash is public and verifiable by anyone.
@@ -339,6 +339,13 @@ docker run -it -v $(pwd):/app rust-crate-pipeline
339
339
 
340
340
  ## Recent Improvements
341
341
 
342
+ ### Version 1.4.0
343
+ - **Security**: Robust Ed25519/RSA cryptographic signing and provenance
344
+ - **Automation**: Automated RAG and provenance workflows
345
+ - **CI/CD**: Improved GitHub Actions for validation and publishing
346
+ - **Docker**: Updated Docker image and compose for new version
347
+ - **Bug Fixes**: Workflow and validation fixes for Ed25519
348
+
342
349
  ### Version 1.3.6
343
350
  - **Python 3.12+ Requirement**: Updated to use modern type annotations and language features
344
351
  - **Type Safety**: Enhanced type annotations throughout the codebase with modern syntax
@@ -406,4 +413,56 @@ Or, text attribution:
406
413
 
407
414
  ```
408
415
  This project uses Crawl4AI (https://github.com/unclecode/crawl4ai) for web data extraction.
409
- ```
416
+ ```
417
+
418
+ ## 🚀 Unified, Cross-Platform, Multi-Provider LLM Support
419
+
420
+ This project supports **all major LLM providers** (cloud and local) on **Mac, Linux, and Windows** using a single, unified interface. All LLM calls are routed through the `UnifiedLLMProcessor` and `LLMConfig` abstractions, ensuring:
421
+
422
+ - **One code path for all providers:** Azure OpenAI, OpenAI, Anthropic, Google, Cohere, HuggingFace, Ollama, LM Studio, and any OpenAI-compatible endpoint.
423
+ - **Cross-platform compatibility:** Works out of the box on Mac, Linux, and Windows.
424
+ - **Configurable via CLI and config files:** Select provider, model, API key, endpoint, and provider-specific options at runtime.
425
+ - **Easy extensibility:** Add new providers by updating your config or CLI arguments—no code changes needed.
426
+
427
+ ### 📖 Provider Setup & Usage
428
+ - See [`README_LLM_PROVIDERS.md`](./README_LLM_PROVIDERS.md) for full details, setup instructions, and usage examples for every supported provider.
429
+ - Run `python run_pipeline_with_llm.py --help` for CLI options and provider-specific arguments.
430
+
431
+ ### 🧩 Example Usage
432
+ ```bash
433
+ # Azure OpenAI
434
+ python run_pipeline_with_llm.py --llm-provider azure --llm-model gpt-4o --crates tokio
435
+
436
+ # Ollama (local)
437
+ python run_pipeline_with_llm.py --llm-provider ollama --llm-model llama2 --crates serde
438
+
439
+ # OpenAI API
440
+ python run_pipeline_with_llm.py --llm-provider openai --llm-model gpt-4 --llm-api-key YOUR_KEY --crates tokio
441
+
442
+ # Anthropic Claude
443
+ python run_pipeline_with_llm.py --llm-provider anthropic --llm-model claude-3-sonnet --llm-api-key YOUR_KEY --crates serde
444
+ ```
445
+
446
+ ### 🔒 Security & Best Practices
447
+ - Store API keys as environment variables.
448
+ - Use local providers (Ollama, LM Studio) for full privacy—no data leaves your machine.
449
+ - All LLM calls are routed through a single, auditable interface for maximum maintainability and security.
450
+
451
+ ### 🧪 Testing
452
+ - Run `python test_unified_llm.py` to verify provider support and configuration.
453
+
454
+ For more, see [`README_LLM_PROVIDERS.md`](./README_LLM_PROVIDERS.md) and the CLI help output.
455
+
456
+ ## Public RAG Database Hash Verification
457
+
458
+ The canonical hash of the RAG SQLite database (`sigil_rag_cache.db`) is stored in the public file `sigil_rag_cache.hash`.
459
+
460
+ - **Purpose:** Anyone can verify the integrity of the RAG database by comparing its SHA256 hash to the value in `sigil_rag_cache.hash`.
461
+ - **How to verify:**
462
+
463
+ ```sh
464
+ python audits/validate_db_hash.py --db sigil_rag_cache.db --expected-hash "$(cat sigil_rag_cache.hash)"
465
+ ```
466
+
467
+ - **CI/CD:** The GitHub Actions workflow `.github/workflows/validate-db-hash.yml` automatically checks this on every push.
468
+ - **No secrets required:** The hash is public and verifiable by anyone.
@@ -1,3 +1,12 @@
1
+ > **All LLM usage in this project is unified and cross-platform.**
2
+ >
3
+ > - All LLM calls are routed through the `UnifiedLLMProcessor` and `LLMConfig` abstractions.
4
+ > - This ensures support for all major providers (cloud and local) on Mac, Linux, and Windows.
5
+ > - **All new LLM features must use this pattern.**
6
+ > - The project is future-proof: as [LiteLLM](https://github.com/BerriAI/litellm) adds new providers, you can use them immediately by updating your config/CLI—no code changes needed.
7
+
8
+ ---
9
+
1
10
  # Unified LLM Provider Support for Rust Crate Pipeline
2
11
 
3
12
  This document describes the comprehensive LLM provider support in the Rust Crate Pipeline, allowing you to use any LiteLLM-compatible provider for AI-powered crate analysis.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "rust-crate-pipeline"
7
- version = "1.3.6"
7
+ version = "1.4.1"
8
8
  authors = [
9
9
  {name = "SigilDERG Team", email = "sigilderg@example.com"}
10
10
  ]