agentforge-graph 0.3.3__tar.gz → 0.4.0__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.
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/.claude/CLAUDE.md +11 -4
- agentforge_graph-0.4.0/.github/ISSUE_TEMPLATE/bug_report.md +41 -0
- agentforge_graph-0.4.0/.github/ISSUE_TEMPLATE/config.yml +8 -0
- agentforge_graph-0.4.0/.github/ISSUE_TEMPLATE/feature_request.md +27 -0
- agentforge_graph-0.4.0/.github/PULL_REQUEST_TEMPLATE.md +22 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/.github/workflows/ci.yml +15 -3
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/CHANGELOG.md +107 -7
- agentforge_graph-0.4.0/CITATION.cff +26 -0
- agentforge_graph-0.4.0/CODE_OF_CONDUCT.md +62 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/CONTRIBUTING.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/NOTICE +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/PKG-INFO +92 -41
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/README.md +81 -37
- agentforge_graph-0.4.0/SECURITY.md +44 -0
- agentforge_graph-0.4.0/agentforge.yaml +150 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/ARCHITECTURE.md +10 -8
- agentforge_graph-0.4.0/docs/assets/demo.gif +0 -0
- agentforge_graph-0.4.0/docs/assets/demo.tape +34 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/enhancements/ENH-003-pluggable-model-provider-registry.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/enhancements/ENH-004-first-party-storage-backends.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/enhancements/ENH-005-http-mcp-transport-auth.md +10 -8
- agentforge_graph-0.4.0/docs/enhancements/ENH-010-surrealdb-storage-backend.md +114 -0
- agentforge_graph-0.4.0/docs/enhancements/ENH-011-cross-file-framework-resolution.md +173 -0
- agentforge_graph-0.4.0/docs/enhancements/ENH-012-additional-framework-packs.md +64 -0
- agentforge_graph-0.4.0/docs/enhancements/ENH-013-rerank-measurement-campaign.md +73 -0
- agentforge_graph-0.4.0/docs/enhancements/ENH-017-surface-framework-upgrade-drift.md +66 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/enhancements/README.md +2 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/features/TRACKER.md +9 -8
- agentforge_graph-0.4.0/docs/guides/01-getting-started.md +116 -0
- agentforge_graph-0.4.0/docs/guides/02-indexing-and-retrieval.md +81 -0
- agentforge_graph-0.4.0/docs/guides/03-framework-extraction.md +113 -0
- agentforge_graph-0.4.0/docs/guides/04-cross-file-framework-resolution.md +132 -0
- agentforge_graph-0.4.0/docs/guides/05-architecture-decisions.md +61 -0
- agentforge_graph-0.4.0/docs/guides/06-temporal-history.md +56 -0
- agentforge_graph-0.4.0/docs/guides/07-enrichment.md +59 -0
- agentforge_graph-0.3.3/docs/guides/model-providers.md → agentforge_graph-0.4.0/docs/guides/08-model-providers.md +4 -0
- agentforge_graph-0.3.3/docs/guides/storage-backends.md → agentforge_graph-0.4.0/docs/guides/09-storage-backends.md +42 -11
- agentforge_graph-0.3.3/docs/guides/using-over-mcp.md → agentforge_graph-0.4.0/docs/guides/10-using-over-mcp.md +6 -1
- agentforge_graph-0.4.0/docs/guides/README.md +27 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/validation/README.md +1 -1
- agentforge_graph-0.4.0/docs/validation/rerank/agentforge-graph.yaml +56 -0
- agentforge_graph-0.4.0/docs/validation/rerank/benchmark.md +87 -0
- agentforge_graph-0.4.0/docs/validation/rerank/click.yaml +44 -0
- agentforge_graph-0.4.0/docs/validation/rerank/results.md +81 -0
- agentforge_graph-0.4.0/examples/README.md +52 -0
- agentforge_graph-0.4.0/examples/fastapi-shop/app.py +49 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/pyproject.toml +31 -6
- agentforge_graph-0.4.0/scripts/rerank_benchmark.py +225 -0
- agentforge_graph-0.4.0/scripts/rerank_eval.py +159 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/cli.py +8 -3
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/config.py +62 -15
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/core/kinds.py +9 -0
- agentforge_graph-0.4.0/src/agentforge_graph/frameworks/cross_file.py +300 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/extractor.py +36 -9
- agentforge_graph-0.4.0/src/agentforge_graph/frameworks/packs/_csharp_ast.py +73 -0
- agentforge_graph-0.4.0/src/agentforge_graph/frameworks/packs/_go_ast.py +49 -0
- agentforge_graph-0.4.0/src/agentforge_graph/frameworks/packs/_php_ast.py +45 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/packs/_python_ast.py +31 -0
- agentforge_graph-0.4.0/src/agentforge_graph/frameworks/packs/_ruby_ast.py +43 -0
- agentforge_graph-0.4.0/src/agentforge_graph/frameworks/packs/aspnet/__init__.py +209 -0
- agentforge_graph-0.4.0/src/agentforge_graph/frameworks/packs/aspnet/routes.scm +5 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/packs/fastapi/__init__.py +82 -3
- agentforge_graph-0.4.0/src/agentforge_graph/frameworks/packs/fastapi/include.scm +7 -0
- agentforge_graph-0.4.0/src/agentforge_graph/frameworks/packs/gin/__init__.py +135 -0
- agentforge_graph-0.4.0/src/agentforge_graph/frameworks/packs/gin/routes.scm +10 -0
- agentforge_graph-0.4.0/src/agentforge_graph/frameworks/packs/laravel/__init__.py +155 -0
- agentforge_graph-0.4.0/src/agentforge_graph/frameworks/packs/laravel/routes.scm +7 -0
- agentforge_graph-0.4.0/src/agentforge_graph/frameworks/packs/rails/__init__.py +218 -0
- agentforge_graph-0.4.0/src/agentforge_graph/frameworks/packs/rails/routes.scm +7 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/registry.py +8 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/codegraph.py +12 -3
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/incremental/indexer.py +7 -12
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/pipeline.py +32 -10
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/report.py +5 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/retrieve/rerank.py +71 -3
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/serve/engine.py +16 -4
- agentforge_graph-0.4.0/src/agentforge_graph/serve/http_runner.py +64 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/serve/server.py +13 -6
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/store/facade.py +7 -3
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/store/registry.py +11 -2
- agentforge_graph-0.4.0/src/agentforge_graph/store/surreal_store.py +405 -0
- agentforge_graph-0.4.0/tests/frameworks/fixtures/aspnet/UsersController.cs +26 -0
- agentforge_graph-0.4.0/tests/frameworks/fixtures/fastapi_multifile/db.py +5 -0
- agentforge_graph-0.4.0/tests/frameworks/fixtures/fastapi_multifile/main.py +15 -0
- agentforge_graph-0.4.0/tests/frameworks/fixtures/fastapi_multifile/payments/routes.py +15 -0
- agentforge_graph-0.4.0/tests/frameworks/fixtures/fastapi_multifile/pyproject.toml +4 -0
- agentforge_graph-0.4.0/tests/frameworks/fixtures/gin/go.mod +5 -0
- agentforge_graph-0.4.0/tests/frameworks/fixtures/gin/main.go +22 -0
- agentforge_graph-0.4.0/tests/frameworks/fixtures/laravel/app/Http/Controllers/UserController.php +16 -0
- agentforge_graph-0.4.0/tests/frameworks/fixtures/laravel/routes/web.php +10 -0
- agentforge_graph-0.4.0/tests/frameworks/fixtures/rails/app/controllers/home_controller.rb +5 -0
- agentforge_graph-0.4.0/tests/frameworks/fixtures/rails/app/controllers/users_controller.rb +9 -0
- agentforge_graph-0.4.0/tests/frameworks/fixtures/rails/config/routes.rb +6 -0
- agentforge_graph-0.4.0/tests/frameworks/test_aspnet_integration.py +65 -0
- agentforge_graph-0.4.0/tests/frameworks/test_aspnet_pack.py +86 -0
- agentforge_graph-0.4.0/tests/frameworks/test_fastapi_crossfile_integration.py +117 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/test_fastapi_pack.py +54 -0
- agentforge_graph-0.4.0/tests/frameworks/test_gin_integration.py +86 -0
- agentforge_graph-0.4.0/tests/frameworks/test_gin_pack.py +109 -0
- agentforge_graph-0.4.0/tests/frameworks/test_laravel_integration.py +77 -0
- agentforge_graph-0.4.0/tests/frameworks/test_laravel_pack.py +78 -0
- agentforge_graph-0.4.0/tests/frameworks/test_rails_integration.py +65 -0
- agentforge_graph-0.4.0/tests/frameworks/test_rails_pack.py +84 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/retrieve/test_rerank.py +58 -0
- agentforge_graph-0.4.0/tests/store/test_surreal_conformance.py +73 -0
- agentforge_graph-0.4.0/tests/temporal/__init__.py +0 -0
- agentforge_graph-0.4.0/tests/test_config.py +82 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/uv.lock +553 -22
- agentforge_graph-0.3.3/.claude/settings.local.json +0 -7
- agentforge_graph-0.3.3/agentforge.yaml +0 -24
- agentforge_graph-0.3.3/ckg.yaml +0 -116
- agentforge_graph-0.3.3/src/agentforge_graph/serve/http_runner.py +0 -133
- agentforge_graph-0.3.3/tests/test_config.py +0 -53
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/.agentforge-state/answers.yml +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/.agentforge-state/managed-files.lock +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/.claude/standards/coding.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/.claude/standards/testing.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/.cursorrules +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/.env.example +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/.github/copilot-instructions.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/.gitignore +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/.gitkeep +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/.pre-commit-config.yaml +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/AGENTS.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/CLAUDE.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/LICENSE +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/adr/0001-build-on-agentforge-framework.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/adr/0002-tree-sitter-over-compiler-grade-extraction.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/adr/0003-stable-symbol-ids-and-per-file-subgraphs.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/adr/0004-provenance-on-every-fact.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/adr/0005-reserve-higher-level-node-kinds-up-front.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/adr/0006-embedded-first-pluggable-storage.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/adr/0007-ast-aware-chunking-with-chunk-symbol-separation.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/adr/0008-hybrid-retrieval-vector-then-graph.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/adr/0009-top-10-language-scope-with-support-tiers.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/adr/README.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/bugs/BUG-001-src-layout-import-resolution.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/bugs/BUG-002-retrieval-scores-render-zero.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/bugs/BUG-003-adr-readme-ingested-as-decision.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/bugs/BUG-004-relative-from-import-resolution.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/bugs/BUG-005-typescript-abstract-class-not-extracted.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/bugs/BUG-006-commonjs-require-not-resolved.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/bugs/BUG-007-overload-resolution-nondeterministic.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/bugs/BUG-008-rerank-yaml-boolean-breaks-query.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/bugs/README.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/design/README.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/design/design-001-core-contracts-module.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/design/design-002-tree-sitter-ingestion.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/design/design-003-graph-storage-adapters.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/design/design-004-incremental-indexing.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/design/design-005-ast-chunking-and-embeddings.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/design/design-006-hybrid-retrieval.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/design/design-007-repo-map.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/design/design-008-mcp-server-and-tool-api.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/design/design-009-temporal-evolution-layer.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/design/design-010-adr-and-docs-ingestion.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/design/design-011-framework-extractors.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/design/design-012-llm-enrichment.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/design/design-012b-summaries.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/enhancements/ENH-001-pattern-recall-tuning.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/enhancements/ENH-002-parallelize-enrichment-calls.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/enhancements/ENH-006-cli-path-arg-consistency.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/enhancements/ENH-007-repomap-public-api-orientation.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/enhancements/ENH-008-typescript-symbol-completeness.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/enhancements/ENH-009-retrieval-precision-dense-codebases.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/features/README.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/features/feat-001-graph-schema-and-core-contracts.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/features/feat-002-tree-sitter-ingestion.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/features/feat-003-graph-storage-adapters.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/features/feat-004-incremental-indexing.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/features/feat-005-ast-chunking-and-embeddings.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/features/feat-006-hybrid-retrieval.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/features/feat-007-repo-map-summarization.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/features/feat-008-mcp-server-and-tool-api.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/features/feat-009-temporal-evolution-layer.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/features/feat-010-adr-and-docs-ingestion.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/features/feat-011-framework-extractors.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/features/feat-012-llm-enrichment.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/known-limitations/KL-001-llm-summary-hallucination.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/known-limitations/README.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/open-source-ckg-research.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/01-set-up-new-agent.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/02-add-a-tool.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/03-add-a-pipeline-task.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/04-pick-reasoning-strategy.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/05-write-prompts.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/06-test-your-agent.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/07-debug-a-run.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/08-add-memory.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/09-add-mcp.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/10-add-evaluators.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/11-add-safety-guardrails.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/12-add-observability.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/13-configure-multi-provider.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/14-deploy-your-agent.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/15-upgrade-your-agent.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/16-configuration-reference.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/17-add-reranker.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/18-add-hybrid-search.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/19-add-graphrag.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/20-apply-schema-migrations.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/21-use-streaming-guardrails.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/runbooks/README.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/validation/cpp-fmt.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/validation/csharp-newtonsoft-json.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/validation/go-cobra.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/validation/java-gson.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/validation/javascript-express-chalk.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/validation/php-monolog.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/validation/python-click.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/validation/ruby-thor.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/validation/rust-serde-json.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/validation/typescript-zod.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/docs/validation/w4-agent-dogfood.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/chunking/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/chunking/cast.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/chunking/chunk.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/chunking/tokens.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/core/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/core/conformance.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/core/contracts.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/core/models.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/core/provenance.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/core/symbols.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/embed/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/embed/base.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/embed/bedrock.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/embed/fake.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/embed/openai.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/embed/pipeline.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/embed/registry.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/embed/report.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/enrich/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/enrich/anthropic.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/enrich/anthropic_client.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/enrich/bedrock.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/enrich/bedrock_client.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/enrich/bedrock_summarizer.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/enrich/claude.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/enrich/enricher.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/enrich/governs.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/enrich/governs_enricher.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/enrich/heuristics.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/enrich/judge.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/enrich/registry.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/enrich/report.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/enrich/summarizer.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/enrich/summary_enricher.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/enrich/taxonomy.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/base.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/detect.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/orm.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/packs/_js_ast.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/packs/django/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/packs/django/models.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/packs/express/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/packs/express/routes.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/packs/fastapi/depends.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/packs/fastapi/routes.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/packs/flask/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/packs/flask/routes.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/packs/nestjs/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/packs/nestjs/routes.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/packs/spring/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/packs/spring/routes.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/packs/sqlalchemy/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/frameworks/packs/sqlalchemy/models.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/extractor.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/incremental/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/incremental/detect.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/incremental/dirty.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/incremental/meta.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/incremental/ports.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/cpp/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/cpp/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/cpp/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/csharp/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/csharp/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/csharp/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/go/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/go/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/go/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/java/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/java/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/java/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/javascript/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/javascript/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/javascript/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/php/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/php/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/php/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/python/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/python/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/python/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/ruby/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/ruby/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/ruby/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/rust/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/rust/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/rust/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/typescript/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/typescript/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/packs/typescript/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/resolver.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/ingest/source.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/knowledge/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/knowledge/adr.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/knowledge/commits.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/knowledge/ingest.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/knowledge/mentions.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/knowledge/report.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/main.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/providers.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/repomap/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/repomap/rank.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/repomap/render.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/repomap/repomap.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/retrieve/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/retrieve/pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/retrieve/retriever.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/retrieve/scoring.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/serve/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/serve/tools.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/store/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/store/_rowmap.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/store/errors.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/store/kuzu_store.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/store/lance_store.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/store/neo4j_store.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/store/pgvector_store.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/temporal/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/temporal/backfill.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/temporal/events.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/temporal/index.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/temporal/mining.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/temporal/recorder.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/src/agentforge_graph/temporal/store.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/chunking/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/chunking/test_cast.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/chunking/test_layering.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/core/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/core/test_conformance.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/core/test_kinds.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/core/test_layering.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/core/test_models.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/core/test_provenance.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/core/test_symbols.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/core/test_vector_contracts.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/embed/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/embed/test_bedrock.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/embed/test_cli.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/embed/test_fake.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/embed/test_openai.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/embed/test_openai_live.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/embed/test_pipeline.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/embed/test_registry.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/enrich/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/enrich/conftest.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/enrich/test_anthropic.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/enrich/test_anthropic_live.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/enrich/test_bedrock.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/enrich/test_bedrock_client.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/enrich/test_claude.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/enrich/test_enricher.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/enrich/test_heuristics.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/enrich/test_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/enrich/test_live.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/enrich/test_registry.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/enrich/test_summaries.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/enrich/test_summaries_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/enrich/test_summaries_live.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/fixtures/django/models.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/fixtures/express/app.js +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/fixtures/fastapi/app.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/fixtures/fastapi/pyproject.toml +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/fixtures/fastapi/service.py +0 -0
- {agentforge_graph-0.3.3/tests/ingest → agentforge_graph-0.4.0/tests/frameworks/fixtures/fastapi_multifile/payments}/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/fixtures/flask/app.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/fixtures/nestjs/users.controller.ts +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/fixtures/spring/Helper.java +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/fixtures/spring/UserController.java +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/fixtures/sqlalchemy/models.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/test_contract.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/test_detect.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/test_django_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/test_django_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/test_express_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/test_express_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/test_flask_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/test_flask_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/test_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/test_layering.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/test_nestjs_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/test_nestjs_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/test_spring_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/test_spring_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/test_sqlalchemy_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/frameworks/test_sqlalchemy_pack.py +0 -0
- {agentforge_graph-0.3.3/tests/ingest/incremental → agentforge_graph-0.4.0/tests/ingest}/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/conftest.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/fixtures/javascript/mathutils.js +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/fixtures/javascript/shapes.js +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/fixtures/python/mathutils.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/fixtures/python/shapes.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/fixtures/typescript/mathutils.ts +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/fixtures/typescript/shapes.ts +0 -0
- {agentforge_graph-0.3.3/tests/knowledge → agentforge_graph-0.4.0/tests/ingest/incremental}/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/incremental/test_equivalence.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/incremental/test_incremental.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_aliased_imports.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_cli.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_codegraph.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_cpp_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_csharp_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_docstrings.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_export_member.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_go_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_go_receiver_calls.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_inherited_method_calls.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_inherits.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_inherits_packs.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_java_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_javascript_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_jsdoc.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_layering.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_member_calls.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_member_calls_packs.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_module_member_calls.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_php_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_pipeline.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_python_extractor.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_qualified_bases.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_resolver.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_ruby_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_rust_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_source.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_src_layout.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/ingest/test_typescript_pack.py +0 -0
- {agentforge_graph-0.3.3/tests/repomap → agentforge_graph-0.4.0/tests/knowledge}/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/knowledge/fixtures/repo/docs/adr/0007-old-payments.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/knowledge/fixtures/repo/docs/adr/0012-idempotency.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/knowledge/fixtures/repo/src/app/payments.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/knowledge/test_adr_parser.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/knowledge/test_commit_messages.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/knowledge/test_discover.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/knowledge/test_doc_embedding.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/knowledge/test_doc_globs.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/knowledge/test_infer_governs.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/knowledge/test_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/knowledge/test_layering.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/knowledge/test_mentions.py +0 -0
- {agentforge_graph-0.3.3/tests/retrieve → agentforge_graph-0.4.0/tests/repomap}/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/repomap/test_cli.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/repomap/test_edge_cases.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/repomap/test_layering.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/repomap/test_rank.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/repomap/test_render.py +0 -0
- {agentforge_graph-0.3.3/tests/serve → agentforge_graph-0.4.0/tests/retrieve}/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/retrieve/test_cli.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/retrieve/test_doc_weight.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/retrieve/test_filters.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/retrieve/test_layering.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/retrieve/test_live_relevance.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/retrieve/test_pack_scoring.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/retrieve/test_retriever.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/retrieve/test_temporal_item.py +0 -0
- {agentforge_graph-0.3.3/tests/store → agentforge_graph-0.4.0/tests/serve}/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/serve/test_binding.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/serve/test_cli.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/serve/test_engine.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/serve/test_guardrails.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/serve/test_http_auth.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/serve/test_live_agent.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/serve/test_schemas.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/serve/test_tools.py +0 -0
- {agentforge_graph-0.3.3/tests/temporal → agentforge_graph-0.4.0/tests/store}/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/store/test_facade.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/store/test_kuzu_conformance.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/store/test_kuzu_internals.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/store/test_lance_conformance.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/store/test_layering.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/store/test_neo4j_conformance.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/store/test_pgvector_conformance.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/store/test_server_drivers.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/temporal/test_asof.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/temporal/test_backfill.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/temporal/test_denormalize.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/temporal/test_index.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/temporal/test_lifecycle.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/temporal/test_mining.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/temporal/test_read_e2e.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/temporal/test_store.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/test_cli_path_args.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.4.0}/tests/test_providers.py +0 -0
|
@@ -35,10 +35,17 @@
|
|
|
35
35
|
`agentforge add module` does **not** work here (it shells out to
|
|
36
36
|
`pip`, absent in uv venvs) — declare modules in `pyproject.toml`
|
|
37
37
|
and `uv sync` instead.
|
|
38
|
-
- **
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
- **One config file: `agentforge.yaml`.** Framework keys at the top
|
|
39
|
+
level; this agent's engine config (store/ingest/chunking/embed/
|
|
40
|
+
retrieve/serve/…) under the framework's `app:` passthrough
|
|
41
|
+
(agentforge-py ≥0.3). The engine reads `app:` with **plain pyyaml,
|
|
42
|
+
no `agentforge` import** (ADR-0001) — `config.resolve_config()`
|
|
43
|
+
discovers `agentforge.yaml` (with `app:`) or a standalone `ckg.yaml`,
|
|
44
|
+
and `_read_block` reads from `app.<key>` or top-level. A standalone
|
|
45
|
+
`ckg.yaml` is still supported (framework-free use). *(History: we
|
|
46
|
+
used a separate `ckg.yaml` because 0.2.4's strict validator rejected
|
|
47
|
+
app keys — fixed upstream in 0.3.x via `app:`; see
|
|
48
|
+
`docs/framework/upgrade-0.2.4-to-0.3.x.md`.)*
|
|
42
49
|
- **Framework learnings go in `docs/framework/`** — local-only,
|
|
43
50
|
git-ignored. Log any framework bug/hack/workaround/missing-feature
|
|
44
51
|
there as you hit it (baseline: agentforge-py 0.2.4).
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Something the engine, CLI, or MCP server got wrong
|
|
4
|
+
title: "[bug] "
|
|
5
|
+
labels: bug
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## What happened
|
|
9
|
+
|
|
10
|
+
A clear description of the bug, and what you expected instead.
|
|
11
|
+
|
|
12
|
+
## Reproduce
|
|
13
|
+
|
|
14
|
+
Steps / the smallest repo or snippet that triggers it:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
ckg index .
|
|
18
|
+
ckg ... # the command that misbehaves
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
If it's an extraction/resolution issue, a **minimal source file** that reproduces
|
|
22
|
+
it helps a lot.
|
|
23
|
+
|
|
24
|
+
## Environment
|
|
25
|
+
|
|
26
|
+
- agentforge-graph version: `ckg --version` (or `pip show agentforge-graph`)
|
|
27
|
+
- Python version:
|
|
28
|
+
- OS:
|
|
29
|
+
- Store backend (if not default): `kuzu`/`neo4j`/`pgvector`/`surrealdb`/…
|
|
30
|
+
- Language(s) involved (if extraction): Python / TS / Go / …
|
|
31
|
+
- Provider (if embed/enrich): `bedrock`/`openai`/`anthropic`/`fake`/…
|
|
32
|
+
|
|
33
|
+
## Logs / output
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
paste the relevant output, error, or stack trace
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Notes
|
|
40
|
+
|
|
41
|
+
Anything else — was it incremental vs full index, a specific framework pack, etc.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
blank_issues_enabled: true
|
|
2
|
+
contact_links:
|
|
3
|
+
- name: Security vulnerability
|
|
4
|
+
url: https://github.com/Scaffoldic/agentforge-graph/security/advisories/new
|
|
5
|
+
about: Please report security issues privately — see SECURITY.md, not a public issue.
|
|
6
|
+
- name: Question / usage help
|
|
7
|
+
url: https://github.com/Scaffoldic/agentforge-graph/discussions
|
|
8
|
+
about: Ask how to use the engine, MCP tools, or a provider/backend.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Propose a capability, a language/framework pack, or a backend
|
|
4
|
+
title: "[feat] "
|
|
5
|
+
labels: enhancement
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## The problem / use case
|
|
9
|
+
|
|
10
|
+
What are you trying to do that the engine doesn't support today? Who's it for —
|
|
11
|
+
a human, or a coding agent consuming the graph?
|
|
12
|
+
|
|
13
|
+
## Proposed solution
|
|
14
|
+
|
|
15
|
+
What you'd like to see. If it's a new **language pack**, **framework pack**,
|
|
16
|
+
**storage backend**, or **model provider**, note the target (e.g. "Rails routes",
|
|
17
|
+
"SurrealDB", "Gemini embeddings") — these ride documented extension points (see
|
|
18
|
+
[`CONTRIBUTING.md`](../../CONTRIBUTING.md) §5).
|
|
19
|
+
|
|
20
|
+
## Alternatives considered
|
|
21
|
+
|
|
22
|
+
Other approaches, or how you work around it now.
|
|
23
|
+
|
|
24
|
+
## Scope
|
|
25
|
+
|
|
26
|
+
- [ ] I'd be willing to help implement this
|
|
27
|
+
- [ ] This needs a design discussion first
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<!-- Thanks for contributing! Keep PRs to one feature/fix = one branch = one PR. -->
|
|
2
|
+
|
|
3
|
+
## What & why
|
|
4
|
+
|
|
5
|
+
What this changes and the motivation. Link the issue / feature spec / ADR if any
|
|
6
|
+
(e.g. `Closes #123`, `feat-0NN`, `ENH-0NN`).
|
|
7
|
+
|
|
8
|
+
## How
|
|
9
|
+
|
|
10
|
+
A short note on the approach — and, if it touches an extension point (a language
|
|
11
|
+
/ framework pack, storage backend, model provider, MCP tool, enricher), how it
|
|
12
|
+
rides the existing rails.
|
|
13
|
+
|
|
14
|
+
## Checklist
|
|
15
|
+
|
|
16
|
+
- [ ] `uv run ruff format --check . && uv run ruff check . && uv run mypy src` clean
|
|
17
|
+
- [ ] `uv run pytest` green (≥90% coverage)
|
|
18
|
+
- [ ] New behavior has tests (golden + end-to-end where it applies; new backends
|
|
19
|
+
pass the conformance suite)
|
|
20
|
+
- [ ] Docs updated (README / a `docs/guides/` page / CHANGELOG `[Unreleased]`)
|
|
21
|
+
- [ ] No new `agentforge` import inside the deterministic engine (ADR-0001)
|
|
22
|
+
- [ ] Conventional-commit title (`feat:` / `fix:` / `docs:` / `chore:` / …)
|
|
@@ -55,7 +55,7 @@ jobs:
|
|
|
55
55
|
# no secrets), so Neo4j/pgvector are verified in CI — not just locally. Separate
|
|
56
56
|
# job so a DB hiccup can't fail the core gate; both must pass to merge.
|
|
57
57
|
server-backends:
|
|
58
|
-
name: server backends (neo4j + pgvector conformance)
|
|
58
|
+
name: server backends (neo4j + pgvector + surrealdb conformance)
|
|
59
59
|
runs-on: ubuntu-latest
|
|
60
60
|
services:
|
|
61
61
|
neo4j:
|
|
@@ -81,14 +81,26 @@ jobs:
|
|
|
81
81
|
uses: astral-sh/setup-uv@v6
|
|
82
82
|
with:
|
|
83
83
|
enable-cache: true
|
|
84
|
-
- name: Sync dependencies (+ neo4j + pgvector extras)
|
|
85
|
-
run: uv sync --extra dev --extra engine --extra neo4j --extra pgvector
|
|
84
|
+
- name: Sync dependencies (+ neo4j + pgvector + surrealdb extras)
|
|
85
|
+
run: uv sync --extra dev --extra engine --extra neo4j --extra pgvector --extra surrealdb
|
|
86
|
+
# SurrealDB needs its `start` command + args, which a `services:` container
|
|
87
|
+
# can't express — so run it directly and wait for the /health endpoint.
|
|
88
|
+
- name: Start SurrealDB
|
|
89
|
+
run: |
|
|
90
|
+
docker run -d --name surreal -p 8000:8000 \
|
|
91
|
+
surrealdb/surrealdb:latest start --user root --pass root memory
|
|
92
|
+
for i in $(seq 1 30); do
|
|
93
|
+
curl -sf http://localhost:8000/health && break
|
|
94
|
+
sleep 1
|
|
95
|
+
done
|
|
86
96
|
- name: Server-backend conformance
|
|
87
97
|
env:
|
|
88
98
|
CKG_NEO4J_URI: bolt://localhost:7687
|
|
89
99
|
CKG_NEO4J_PASSWORD: ckgckgckg
|
|
90
100
|
CKG_PGVECTOR_DSN: postgresql://postgres:ckg@localhost:5432/ckg
|
|
101
|
+
CKG_SURREALDB_URL: ws://localhost:8000/rpc
|
|
91
102
|
run: >-
|
|
92
103
|
uv run pytest --no-cov
|
|
93
104
|
tests/store/test_neo4j_conformance.py
|
|
94
105
|
tests/store/test_pgvector_conformance.py
|
|
106
|
+
tests/store/test_surreal_conformance.py
|
|
@@ -8,6 +8,105 @@ on a schema mismatch is **rebuild** (ADR-0006).
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [0.4.0] — 2026-06-20
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- **Consolidated engine config into `agentforge.yaml` (`app:` section).**
|
|
16
|
+
agentforge-py 0.3.x added a sanctioned `app:` passthrough to its strict config
|
|
17
|
+
file — the fix for the workaround that forced a separate `ckg.yaml`. The engine
|
|
18
|
+
now reads its config from `app:` (or a top-level standalone `ckg.yaml`, still
|
|
19
|
+
supported) using **plain pyyaml, no `agentforge` import** (ADR-0001), and
|
|
20
|
+
**auto-discovers** the file in the repo (previously only `--config` was read).
|
|
21
|
+
One config file. `config.resolve_config()` + `app:`-aware `_read_block`.
|
|
22
|
+
- **HTTP MCP auth now rides the framework's `from_http(middleware=)` seam**
|
|
23
|
+
(agentforge-mcp 0.3.x), replacing the `CkgHttpRunner` that reimplemented ~60
|
|
24
|
+
lines of HTTP-serve internals to add a bearer gate. `BearerAuthMiddleware`
|
|
25
|
+
unchanged; verified live (401 / pass-through). (ENH-005.)
|
|
26
|
+
- **Upgraded the AgentForge framework pin to `>=0.3,<0.4`** (from the validated
|
|
27
|
+
0.2.x line). Re-validated: the full gate (666 tests / 95%, ruff + mypy) and an
|
|
28
|
+
MCP server-construction smoke pass on `agentforge-py` 0.3.1 — the `Tool` /
|
|
29
|
+
`BudgetPolicy` / `MCPServer` surfaces are unchanged.
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
|
|
33
|
+
- **Bedrock-native reranker + measurement campaign (ENH-013).** A torch-free
|
|
34
|
+
`BedrockRerankScorer` (AWS Bedrock Rerank API — Cohere Rerank 3.5 / Amazon
|
|
35
|
+
Rerank) behind the existing `CrossScorer` seam, selected via
|
|
36
|
+
`rerank_model: bedrock:cohere.rerank-v3-5:0` — reuses the AWS creds the embedder
|
|
37
|
+
already uses, no `rerank`/torch extra. A two-corpus campaign (harness
|
|
38
|
+
`scripts/rerank_eval.py`, [results](docs/validation/rerank/results.md)) found
|
|
39
|
+
the cross-encoder is an **ordering** win (MRR +10–16% at blend weight 0.3) over
|
|
40
|
+
an already-recall-saturated base, costing ~540 ms/query — so rerank **stays
|
|
41
|
+
opt-in**, with the Bedrock config @ `w=0.3` documented as the recommended
|
|
42
|
+
precision setting. New `retrieve.rerank_region` config. A **rigorous follow-up
|
|
43
|
+
benchmark** (`scripts/rerank_benchmark.py`, objective docstring→code labels,
|
|
44
|
+
388 queries / 4 OSS repos) confirms base retrieval MRR 0.95 / recall@1 0.92 and
|
|
45
|
+
a statistically-significant rerank lift (ΔMRR +0.019, p<0.001) — surfaced in the
|
|
46
|
+
README's "Retrieval quality (measured)" section.
|
|
47
|
+
|
|
48
|
+
- **Four new framework packs — Go / C# / PHP / Ruby routes (ENH-012).** Framework
|
|
49
|
+
awareness now spans **11 packs** across six languages. Each rides a small new
|
|
50
|
+
`_<lang>_ast` helper and is conservative (ADR-0004); detection uses import
|
|
51
|
+
markers since these languages' deps live outside the scanned manifests.
|
|
52
|
+
- **Gin** (Go) — `r.GET("/x", handler)` method calls → `Route` + `HANDLED_BY`
|
|
53
|
+
to the Go function (mirrors Express).
|
|
54
|
+
- **ASP.NET** (C#) — `[HttpGet("/x")]` attributes on controllers → `Route` +
|
|
55
|
+
`HANDLED_BY` to `Class#method`; `[Route]` base path + `[controller]` token
|
|
56
|
+
(mirrors Spring).
|
|
57
|
+
- **Laravel** (PHP) — `Route::get('/x', [C::class, 'm'])` / `'C@m'` / invokable.
|
|
58
|
+
- **Rails** (Ruby) — `routes.rb` explicit `get '/x' => 'c#a'` / `to:` / `root`.
|
|
59
|
+
|
|
60
|
+
Laravel and Rails name their handler in another file, so a new **generic
|
|
61
|
+
cross-file route-handler grounding** pass-2 step (`frameworks/cross_file.py`)
|
|
62
|
+
resolves the controller reference to the real `Class#method` symbol anywhere in
|
|
63
|
+
the repo (unique-match), emitting `HANDLED_BY` — globally idempotent, surfaced
|
|
64
|
+
as `IndexReport.route_handlers_grounded`. ORM models (EF Core / Eloquent /
|
|
65
|
+
ActiveRecord), the ASP.NET minimal API, and the Rails resourceful DSL are
|
|
66
|
+
follow-ups.
|
|
67
|
+
|
|
68
|
+
- **Cross-file framework resolution — route prefixes + DI grounding (ENH-011).**
|
|
69
|
+
A globally-idempotent pass-2 (`frameworks/cross_file.py`) stitches the
|
|
70
|
+
compose-points real apps split across files, reading only the persisted graph
|
|
71
|
+
(`IMPORTS` edges + node attrs), unique-match-only (ADR-0004):
|
|
72
|
+
- `app.include_router(payments.router, prefix="/api")` composes `/api` onto the
|
|
73
|
+
included router's routes. The base `path` is preserved; the composed URL is a
|
|
74
|
+
new `path_pattern` attr (`RouteInfo.path_pattern`, shown by `ckg routes` and
|
|
75
|
+
returned by the `ckg_routes` MCP tool). New `RouteMount` node kind.
|
|
76
|
+
- `Depends(get_db)` grounds the provider *name* to the `get_db` function symbol
|
|
77
|
+
in its module via a new `PROVIDED_BY` edge (+ `Service.provider_symbol`).
|
|
78
|
+
|
|
79
|
+
Ships for **FastAPI**; Flask / Express / Django reuse the same framework-
|
|
80
|
+
agnostic pass-2 (per-pack pass-1 capture pending). New `RouteMount` /
|
|
81
|
+
`PROVIDED_BY` kinds are additive and migration-free (the stores key edges/nodes
|
|
82
|
+
by a `kind` string column). `IndexReport.route_prefixes_composed` /
|
|
83
|
+
`di_providers_grounded`; `incremental == full` preserved. New runbook:
|
|
84
|
+
`docs/guides/04-cross-file-framework-resolution.md`.
|
|
85
|
+
|
|
86
|
+
- **`CITATION.cff`** — GitHub "Cite this repository" metadata.
|
|
87
|
+
|
|
88
|
+
- **Consumer feature guides + a runnable example.** New `docs/guides/` for the
|
|
89
|
+
headline features — framework extraction (routes/models/services), architecture
|
|
90
|
+
decisions, temporal/history, enrichment, and an index→query walkthrough — plus
|
|
91
|
+
`examples/fastapi-shop/`, a tiny FastAPI+SQLAlchemy app you can index in one
|
|
92
|
+
command to see routes/models/services (output verified against the CLI).
|
|
93
|
+
|
|
94
|
+
- **Project metadata + community health.** `[project.urls]` (Homepage,
|
|
95
|
+
Repository, Changelog, Issues, Documentation) so the PyPI page links out;
|
|
96
|
+
`SECURITY.md`, `CODE_OF_CONDUCT.md`, GitHub issue + PR templates; README doc
|
|
97
|
+
links made absolute so they resolve on the PyPI project page.
|
|
98
|
+
|
|
99
|
+
- **SurrealDB storage backend — graph + vectors in one (ENH-010).** A first-party
|
|
100
|
+
`surrealdb` driver for *both* `store.graph.driver` and `store.vectors.driver`,
|
|
101
|
+
so one multi-model server is a complete backend (`pip install
|
|
102
|
+
agentforge-graph[surrealdb]`). It passes the same `GraphStoreConformance` /
|
|
103
|
+
`VectorStoreConformance` suites as Kuzu/Neo4j/LanceDB/pgvector — verified
|
|
104
|
+
against a live SurrealDB in the `server-backends` CI job. Nodes/edges are
|
|
105
|
+
document tables on the shared open schema (hash-keyed records, the symbol id in
|
|
106
|
+
a `key` field); vector search is brute-force cosine in `[0, 1]`. This makes the
|
|
107
|
+
"day-one, plug in a different DB" promise provable end-to-end against an
|
|
108
|
+
independent third backend.
|
|
109
|
+
|
|
11
110
|
## [0.3.3] - 2026-06-19
|
|
12
111
|
|
|
13
112
|
Leaner base install + the refreshed README on PyPI.
|
|
@@ -429,10 +528,11 @@ questions over the tools, unattended.
|
|
|
429
528
|
on a real repo (fixed BUG-008, a default-config `ckg query` break); and parse
|
|
430
529
|
coverage holds at scale (`django`, 2922 files, ~100%, no crash).
|
|
431
530
|
|
|
432
|
-
[Unreleased]: https://github.com/Scaffoldic/agentforge-
|
|
433
|
-
[0.
|
|
434
|
-
[0.3.
|
|
435
|
-
[0.3.
|
|
436
|
-
[0.3.
|
|
437
|
-
[0.
|
|
438
|
-
[0.
|
|
531
|
+
[Unreleased]: https://github.com/Scaffoldic/agentforge-graph/compare/v0.4.0...HEAD
|
|
532
|
+
[0.4.0]: https://github.com/Scaffoldic/agentforge-graph/compare/v0.3.3...v0.4.0
|
|
533
|
+
[0.3.3]: https://github.com/Scaffoldic/agentforge-graph/compare/v0.3.2...v0.3.3
|
|
534
|
+
[0.3.2]: https://github.com/Scaffoldic/agentforge-graph/compare/v0.3.1...v0.3.2
|
|
535
|
+
[0.3.1]: https://github.com/Scaffoldic/agentforge-graph/compare/v0.3.0...v0.3.1
|
|
536
|
+
[0.3.0]: https://github.com/Scaffoldic/agentforge-graph/compare/v0.2.0...v0.3.0
|
|
537
|
+
[0.2.0]: https://github.com/Scaffoldic/agentforge-graph/compare/v0.1.0...v0.2.0
|
|
538
|
+
[0.1.0]: https://github.com/Scaffoldic/agentforge-graph/releases/tag/v0.1.0
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
cff-version: 1.2.0
|
|
2
|
+
message: "If you use this software, please cite it as below."
|
|
3
|
+
title: agentforge-graph
|
|
4
|
+
abstract: >-
|
|
5
|
+
A Code Knowledge Graph (CKG) engine and agent toolset: it turns a repository
|
|
6
|
+
into a typed, provenance-tracked graph — symbols, calls, imports, API routes,
|
|
7
|
+
ORM models, dependency injection, architecture decisions, git history, and LLM
|
|
8
|
+
summaries — and serves that knowledge to coding agents over MCP or as an
|
|
9
|
+
AgentForge toolset.
|
|
10
|
+
type: software
|
|
11
|
+
authors:
|
|
12
|
+
- family-names: Joshi
|
|
13
|
+
given-names: Khemchand
|
|
14
|
+
email: engg.kjoshi@gmail.com
|
|
15
|
+
repository-code: "https://github.com/Scaffoldic/agentforge-graph"
|
|
16
|
+
url: "https://pypi.org/project/agentforge-graph/"
|
|
17
|
+
license: Apache-2.0
|
|
18
|
+
keywords:
|
|
19
|
+
- code-knowledge-graph
|
|
20
|
+
- knowledge-graph
|
|
21
|
+
- code-search
|
|
22
|
+
- static-analysis
|
|
23
|
+
- tree-sitter
|
|
24
|
+
- mcp
|
|
25
|
+
- ai-agents
|
|
26
|
+
- retrieval-augmented-generation
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our Pledge
|
|
4
|
+
|
|
5
|
+
We as members, contributors, and leaders pledge to make participation in our
|
|
6
|
+
community a harassment-free experience for everyone, regardless of age, body
|
|
7
|
+
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
|
8
|
+
identity and expression, level of experience, education, socio-economic status,
|
|
9
|
+
nationality, personal appearance, race, religion, or sexual identity and
|
|
10
|
+
orientation.
|
|
11
|
+
|
|
12
|
+
We pledge to act and interact in ways that contribute to an open, welcoming,
|
|
13
|
+
diverse, inclusive, and healthy community.
|
|
14
|
+
|
|
15
|
+
## Our Standards
|
|
16
|
+
|
|
17
|
+
Examples of behavior that contributes to a positive environment:
|
|
18
|
+
|
|
19
|
+
- Demonstrating empathy and kindness toward other people
|
|
20
|
+
- Being respectful of differing opinions, viewpoints, and experiences
|
|
21
|
+
- Giving and gracefully accepting constructive feedback
|
|
22
|
+
- Accepting responsibility and apologizing to those affected by our mistakes
|
|
23
|
+
- Focusing on what is best for the overall community
|
|
24
|
+
|
|
25
|
+
Examples of unacceptable behavior:
|
|
26
|
+
|
|
27
|
+
- The use of sexualized language or imagery, and sexual attention or advances
|
|
28
|
+
- Trolling, insulting or derogatory comments, and personal or political attacks
|
|
29
|
+
- Public or private harassment
|
|
30
|
+
- Publishing others' private information without explicit permission
|
|
31
|
+
- Other conduct which could reasonably be considered inappropriate in a
|
|
32
|
+
professional setting
|
|
33
|
+
|
|
34
|
+
## Enforcement Responsibilities
|
|
35
|
+
|
|
36
|
+
Community leaders are responsible for clarifying and enforcing our standards and
|
|
37
|
+
will take appropriate and fair corrective action in response to any behavior
|
|
38
|
+
they deem inappropriate, threatening, offensive, or harmful.
|
|
39
|
+
|
|
40
|
+
## Scope
|
|
41
|
+
|
|
42
|
+
This Code of Conduct applies within all community spaces, and also applies when
|
|
43
|
+
an individual is officially representing the community in public spaces.
|
|
44
|
+
|
|
45
|
+
## Enforcement
|
|
46
|
+
|
|
47
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
|
48
|
+
reported to the community leaders responsible for enforcement at
|
|
49
|
+
**engg.kjoshi@gmail.com**. All complaints will be reviewed and investigated
|
|
50
|
+
promptly and fairly. Community leaders are obligated to respect the privacy and
|
|
51
|
+
security of the reporter of any incident.
|
|
52
|
+
|
|
53
|
+
## Attribution
|
|
54
|
+
|
|
55
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
|
56
|
+
version 2.1, available at
|
|
57
|
+
<https://www.contributor-covenant.org/version/2/1/code_of_conduct.html>.
|
|
58
|
+
|
|
59
|
+
[homepage]: https://www.contributor-covenant.org
|
|
60
|
+
|
|
61
|
+
For answers to common questions about this code of conduct, see the FAQ at
|
|
62
|
+
<https://www.contributor-covenant.org/faq>.
|
|
@@ -107,7 +107,7 @@ core change needed. **First-party built-ins already ship** for embeddings
|
|
|
107
107
|
(`bedrock`, `openai`, `fake`) and enrichment (`bedrock`, `anthropic`, `scripted`);
|
|
108
108
|
`embed.base_url` makes the `openai` driver work against any OpenAI-compatible
|
|
109
109
|
local server. See the full guide:
|
|
110
|
-
[`docs/guides/model-providers.md`](docs/guides/model-providers.md).
|
|
110
|
+
[`docs/guides/08-model-providers.md`](docs/guides/08-model-providers.md).
|
|
111
111
|
|
|
112
112
|
To add a **new** one out-of-tree:
|
|
113
113
|
1. Implement `Embedder` (`embed/base.py`) and/or `PatternJudge` / `Summarizer`
|
|
@@ -2,7 +2,7 @@ agentforge-graph
|
|
|
2
2
|
Copyright 2026 The agentforge-graph Authors
|
|
3
3
|
|
|
4
4
|
This product includes software developed at the agentforge-graph project
|
|
5
|
-
(https://github.com/Scaffoldic/agentforge-
|
|
5
|
+
(https://github.com/Scaffoldic/agentforge-graph).
|
|
6
6
|
|
|
7
7
|
Built on AgentForge (https://github.com/Scaffoldic/agentforge-py),
|
|
8
8
|
Copyright 2026 The AgentForge Authors, licensed under Apache-2.0.
|