agentforge-graph 0.3.3__tar.gz → 0.5.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.5.0}/.agentforge-state/managed-files.lock +37 -37
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/.claude/CLAUDE.md +11 -4
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/.env.example +1 -1
- agentforge_graph-0.5.0/.github/ISSUE_TEMPLATE/bug_report.md +41 -0
- agentforge_graph-0.5.0/.github/ISSUE_TEMPLATE/config.yml +8 -0
- agentforge_graph-0.5.0/.github/ISSUE_TEMPLATE/feature_request.md +27 -0
- agentforge_graph-0.5.0/.github/PULL_REQUEST_TEMPLATE.md +22 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/.github/copilot-instructions.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/.github/workflows/ci.yml +15 -3
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/AGENTS.md +3 -5
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/CHANGELOG.md +228 -7
- agentforge_graph-0.5.0/CITATION.cff +26 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/CLAUDE.md +1 -1
- agentforge_graph-0.5.0/CODE_OF_CONDUCT.md +62 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/CONTRIBUTING.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/NOTICE +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/PKG-INFO +136 -48
- agentforge_graph-0.5.0/README.md +364 -0
- agentforge_graph-0.5.0/SECURITY.md +44 -0
- agentforge_graph-0.5.0/agentforge.yaml +149 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/ARCHITECTURE.md +10 -8
- agentforge_graph-0.5.0/docs/assets/demo.gif +0 -0
- agentforge_graph-0.5.0/docs/assets/demo.tape +34 -0
- agentforge_graph-0.5.0/docs/assets/setups.gif +0 -0
- agentforge_graph-0.5.0/docs/assets/setups.tape +47 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/enhancements/ENH-003-pluggable-model-provider-registry.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/enhancements/ENH-004-first-party-storage-backends.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/enhancements/ENH-005-http-mcp-transport-auth.md +10 -8
- agentforge_graph-0.5.0/docs/enhancements/ENH-010-surrealdb-storage-backend.md +114 -0
- agentforge_graph-0.5.0/docs/enhancements/ENH-011-cross-file-framework-resolution.md +173 -0
- agentforge_graph-0.5.0/docs/enhancements/ENH-012-additional-framework-packs.md +64 -0
- agentforge_graph-0.5.0/docs/enhancements/ENH-013-rerank-measurement-campaign.md +73 -0
- agentforge_graph-0.5.0/docs/enhancements/ENH-017-surface-framework-upgrade-drift.md +140 -0
- agentforge_graph-0.5.0/docs/enhancements/ENH-018-store-location-and-central-hosting.md +154 -0
- agentforge_graph-0.5.0/docs/enhancements/ENH-019-serve-mcp-workdir-autodiscovery.md +100 -0
- agentforge_graph-0.5.0/docs/enhancements/ENH-020-federated-multi-repo-mcp.md +170 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/enhancements/README.md +14 -0
- agentforge_graph-0.5.0/docs/enhancements/THEME-org-central-knowledge.md +95 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/features/TRACKER.md +28 -9
- agentforge_graph-0.5.0/docs/guides/01-getting-started.md +35 -0
- agentforge_graph-0.5.0/docs/guides/02-indexing-and-retrieval.md +81 -0
- agentforge_graph-0.5.0/docs/guides/03-framework-extraction.md +113 -0
- agentforge_graph-0.5.0/docs/guides/04-cross-file-framework-resolution.md +132 -0
- agentforge_graph-0.5.0/docs/guides/05-architecture-decisions.md +61 -0
- agentforge_graph-0.5.0/docs/guides/06-temporal-history.md +56 -0
- agentforge_graph-0.5.0/docs/guides/07-enrichment.md +59 -0
- agentforge_graph-0.3.3/docs/guides/model-providers.md → agentforge_graph-0.5.0/docs/guides/08-model-providers.md +4 -0
- agentforge_graph-0.5.0/docs/guides/09-storage-backends.md +165 -0
- agentforge_graph-0.3.3/docs/guides/using-over-mcp.md → agentforge_graph-0.5.0/docs/guides/10-using-over-mcp.md +61 -1
- agentforge_graph-0.5.0/docs/guides/README.md +42 -0
- agentforge_graph-0.5.0/docs/guides/getting-started/1-single-repo.md +122 -0
- agentforge_graph-0.5.0/docs/guides/getting-started/2-workspace.md +117 -0
- agentforge_graph-0.5.0/docs/guides/getting-started/3-central-store.md +95 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/01-set-up-new-agent.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/02-add-a-tool.md +16 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/03-add-a-pipeline-task.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/04-pick-reasoning-strategy.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/05-write-prompts.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/06-test-your-agent.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/07-debug-a-run.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/08-add-memory.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/09-add-mcp.md +16 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/10-add-evaluators.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/11-add-safety-guardrails.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/12-add-observability.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/13-configure-multi-provider.md +40 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/14-deploy-your-agent.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/15-upgrade-your-agent.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/16-configuration-reference.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/17-add-reranker.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/18-add-hybrid-search.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/19-add-graphrag.md +7 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/20-apply-schema-migrations.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/21-use-streaming-guardrails.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/runbooks/README.md +1 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/validation/README.md +1 -1
- agentforge_graph-0.5.0/docs/validation/rerank/agentforge-graph.yaml +56 -0
- agentforge_graph-0.5.0/docs/validation/rerank/benchmark.md +87 -0
- agentforge_graph-0.5.0/docs/validation/rerank/click.yaml +44 -0
- agentforge_graph-0.5.0/docs/validation/rerank/results.md +81 -0
- agentforge_graph-0.5.0/examples/README.md +52 -0
- agentforge_graph-0.5.0/examples/fastapi-shop/app.py +49 -0
- agentforge_graph-0.5.0/examples/microservices/README.md +70 -0
- agentforge_graph-0.5.0/examples/microservices/gateway/app.py +12 -0
- agentforge_graph-0.5.0/examples/microservices/gateway/client.py +10 -0
- agentforge_graph-0.5.0/examples/microservices/orders/app.py +21 -0
- agentforge_graph-0.5.0/examples/microservices/payments/openapi.yaml +16 -0
- agentforge_graph-0.5.0/examples/microservices/web/app.js +8 -0
- agentforge_graph-0.5.0/examples/microservices/workspace.yaml +16 -0
- agentforge_graph-0.5.0/examples/workspace.yaml +21 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/pyproject.toml +31 -7
- agentforge_graph-0.5.0/scripts/render-setups-gif.sh +26 -0
- agentforge_graph-0.5.0/scripts/rerank_benchmark.py +225 -0
- agentforge_graph-0.5.0/scripts/rerank_eval.py +159 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/__init__.py +0 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/cli.py +201 -10
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/config.py +70 -15
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/core/kinds.py +10 -0
- agentforge_graph-0.5.0/src/agentforge_graph/frameworks/cross_file.py +300 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/extractor.py +36 -9
- agentforge_graph-0.5.0/src/agentforge_graph/frameworks/packs/_csharp_ast.py +73 -0
- agentforge_graph-0.5.0/src/agentforge_graph/frameworks/packs/_go_ast.py +49 -0
- agentforge_graph-0.5.0/src/agentforge_graph/frameworks/packs/_php_ast.py +45 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/packs/_python_ast.py +31 -0
- agentforge_graph-0.5.0/src/agentforge_graph/frameworks/packs/_ruby_ast.py +43 -0
- agentforge_graph-0.5.0/src/agentforge_graph/frameworks/packs/aspnet/__init__.py +209 -0
- agentforge_graph-0.5.0/src/agentforge_graph/frameworks/packs/aspnet/routes.scm +5 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/packs/fastapi/__init__.py +82 -3
- agentforge_graph-0.5.0/src/agentforge_graph/frameworks/packs/fastapi/include.scm +7 -0
- agentforge_graph-0.5.0/src/agentforge_graph/frameworks/packs/gin/__init__.py +135 -0
- agentforge_graph-0.5.0/src/agentforge_graph/frameworks/packs/gin/routes.scm +10 -0
- agentforge_graph-0.5.0/src/agentforge_graph/frameworks/packs/httpclient/__init__.py +160 -0
- agentforge_graph-0.5.0/src/agentforge_graph/frameworks/packs/httpclient/calls.scm +8 -0
- agentforge_graph-0.5.0/src/agentforge_graph/frameworks/packs/httpclient/clients.scm +10 -0
- agentforge_graph-0.5.0/src/agentforge_graph/frameworks/packs/jshttpclient/__init__.py +137 -0
- agentforge_graph-0.5.0/src/agentforge_graph/frameworks/packs/jshttpclient/calls.scm +12 -0
- agentforge_graph-0.5.0/src/agentforge_graph/frameworks/packs/laravel/__init__.py +155 -0
- agentforge_graph-0.5.0/src/agentforge_graph/frameworks/packs/laravel/routes.scm +7 -0
- agentforge_graph-0.5.0/src/agentforge_graph/frameworks/packs/rails/__init__.py +218 -0
- agentforge_graph-0.5.0/src/agentforge_graph/frameworks/packs/rails/routes.scm +7 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/registry.py +12 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/codegraph.py +46 -12
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/incremental/indexer.py +7 -12
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/pipeline.py +32 -10
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/report.py +20 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/main.py +0 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/retrieve/rerank.py +71 -3
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/serve/__init__.py +2 -1
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/serve/engine.py +46 -8
- agentforge_graph-0.5.0/src/agentforge_graph/serve/federation.py +287 -0
- agentforge_graph-0.5.0/src/agentforge_graph/serve/http_runner.py +64 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/serve/server.py +40 -13
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/serve/tools.py +222 -44
- agentforge_graph-0.5.0/src/agentforge_graph/serve/workspace.py +76 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/store/__init__.py +4 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/store/facade.py +23 -11
- agentforge_graph-0.5.0/src/agentforge_graph/store/location.py +96 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/store/registry.py +11 -2
- agentforge_graph-0.5.0/src/agentforge_graph/store/surreal_store.py +405 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/temporal/backfill.py +2 -1
- agentforge_graph-0.5.0/tests/frameworks/fixtures/aspnet/UsersController.cs +26 -0
- agentforge_graph-0.5.0/tests/frameworks/fixtures/fastapi_multifile/db.py +5 -0
- agentforge_graph-0.5.0/tests/frameworks/fixtures/fastapi_multifile/main.py +15 -0
- agentforge_graph-0.5.0/tests/frameworks/fixtures/fastapi_multifile/payments/routes.py +15 -0
- agentforge_graph-0.5.0/tests/frameworks/fixtures/fastapi_multifile/pyproject.toml +4 -0
- agentforge_graph-0.5.0/tests/frameworks/fixtures/gin/go.mod +5 -0
- agentforge_graph-0.5.0/tests/frameworks/fixtures/gin/main.go +22 -0
- agentforge_graph-0.5.0/tests/frameworks/fixtures/laravel/app/Http/Controllers/UserController.php +16 -0
- agentforge_graph-0.5.0/tests/frameworks/fixtures/laravel/routes/web.php +10 -0
- agentforge_graph-0.5.0/tests/frameworks/fixtures/rails/app/controllers/home_controller.rb +5 -0
- agentforge_graph-0.5.0/tests/frameworks/fixtures/rails/app/controllers/users_controller.rb +9 -0
- agentforge_graph-0.5.0/tests/frameworks/fixtures/rails/config/routes.rb +6 -0
- agentforge_graph-0.5.0/tests/frameworks/test_aspnet_integration.py +65 -0
- agentforge_graph-0.5.0/tests/frameworks/test_aspnet_pack.py +86 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/test_contract.py +2 -0
- agentforge_graph-0.5.0/tests/frameworks/test_fastapi_crossfile_integration.py +117 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/test_fastapi_pack.py +54 -0
- agentforge_graph-0.5.0/tests/frameworks/test_gin_integration.py +86 -0
- agentforge_graph-0.5.0/tests/frameworks/test_gin_pack.py +109 -0
- agentforge_graph-0.5.0/tests/frameworks/test_httpclient.py +122 -0
- agentforge_graph-0.5.0/tests/frameworks/test_jshttpclient.py +58 -0
- agentforge_graph-0.5.0/tests/frameworks/test_laravel_integration.py +77 -0
- agentforge_graph-0.5.0/tests/frameworks/test_laravel_pack.py +78 -0
- agentforge_graph-0.5.0/tests/frameworks/test_rails_integration.py +65 -0
- agentforge_graph-0.5.0/tests/frameworks/test_rails_pack.py +84 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/retrieve/test_rerank.py +58 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/serve/test_cli.py +2 -0
- agentforge_graph-0.5.0/tests/serve/test_federation.py +138 -0
- agentforge_graph-0.5.0/tests/serve/test_openapi_anchoring.py +120 -0
- agentforge_graph-0.5.0/tests/serve/test_org_central_e2e.py +131 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/serve/test_schemas.py +5 -1
- agentforge_graph-0.5.0/tests/serve/test_service_map.py +105 -0
- agentforge_graph-0.5.0/tests/serve/test_trace.py +91 -0
- agentforge_graph-0.5.0/tests/store/test_location.py +105 -0
- agentforge_graph-0.5.0/tests/store/test_surreal_conformance.py +73 -0
- agentforge_graph-0.5.0/tests/temporal/__init__.py +0 -0
- agentforge_graph-0.5.0/tests/test_cli_path_args.py +137 -0
- agentforge_graph-0.5.0/tests/test_config.py +82 -0
- agentforge_graph-0.5.0/tests/test_read_only.py +90 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/uv.lock +554 -23
- agentforge_graph-0.3.3/README.md +0 -283
- agentforge_graph-0.3.3/agentforge.yaml +0 -24
- agentforge_graph-0.3.3/ckg.yaml +0 -116
- agentforge_graph-0.3.3/docs/guides/storage-backends.md +0 -88
- agentforge_graph-0.3.3/src/agentforge_graph/serve/http_runner.py +0 -133
- agentforge_graph-0.3.3/tests/test_cli_path_args.py +0 -60
- agentforge_graph-0.3.3/tests/test_config.py +0 -53
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/.agentforge-state/answers.yml +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/.claude/settings.local.json +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/.claude/standards/coding.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/.claude/standards/testing.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/.cursorrules +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/.gitignore +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/.gitkeep +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/.pre-commit-config.yaml +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/LICENSE +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/adr/0001-build-on-agentforge-framework.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/adr/0002-tree-sitter-over-compiler-grade-extraction.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/adr/0003-stable-symbol-ids-and-per-file-subgraphs.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/adr/0004-provenance-on-every-fact.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/adr/0005-reserve-higher-level-node-kinds-up-front.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/adr/0006-embedded-first-pluggable-storage.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/adr/0007-ast-aware-chunking-with-chunk-symbol-separation.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/adr/0008-hybrid-retrieval-vector-then-graph.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/adr/0009-top-10-language-scope-with-support-tiers.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/adr/README.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/bugs/BUG-001-src-layout-import-resolution.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/bugs/BUG-002-retrieval-scores-render-zero.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/bugs/BUG-003-adr-readme-ingested-as-decision.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/bugs/BUG-004-relative-from-import-resolution.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/bugs/BUG-005-typescript-abstract-class-not-extracted.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/bugs/BUG-006-commonjs-require-not-resolved.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/bugs/BUG-007-overload-resolution-nondeterministic.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/bugs/BUG-008-rerank-yaml-boolean-breaks-query.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/bugs/README.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/design/README.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/design/design-001-core-contracts-module.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/design/design-002-tree-sitter-ingestion.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/design/design-003-graph-storage-adapters.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/design/design-004-incremental-indexing.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/design/design-005-ast-chunking-and-embeddings.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/design/design-006-hybrid-retrieval.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/design/design-007-repo-map.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/design/design-008-mcp-server-and-tool-api.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/design/design-009-temporal-evolution-layer.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/design/design-010-adr-and-docs-ingestion.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/design/design-011-framework-extractors.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/design/design-012-llm-enrichment.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/design/design-012b-summaries.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/enhancements/ENH-001-pattern-recall-tuning.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/enhancements/ENH-002-parallelize-enrichment-calls.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/enhancements/ENH-006-cli-path-arg-consistency.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/enhancements/ENH-007-repomap-public-api-orientation.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/enhancements/ENH-008-typescript-symbol-completeness.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/enhancements/ENH-009-retrieval-precision-dense-codebases.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/features/README.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/features/feat-001-graph-schema-and-core-contracts.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/features/feat-002-tree-sitter-ingestion.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/features/feat-003-graph-storage-adapters.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/features/feat-004-incremental-indexing.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/features/feat-005-ast-chunking-and-embeddings.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/features/feat-006-hybrid-retrieval.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/features/feat-007-repo-map-summarization.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/features/feat-008-mcp-server-and-tool-api.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/features/feat-009-temporal-evolution-layer.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/features/feat-010-adr-and-docs-ingestion.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/features/feat-011-framework-extractors.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/features/feat-012-llm-enrichment.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/known-limitations/KL-001-llm-summary-hallucination.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/known-limitations/README.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/open-source-ckg-research.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/validation/cpp-fmt.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/validation/csharp-newtonsoft-json.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/validation/go-cobra.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/validation/java-gson.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/validation/javascript-express-chalk.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/validation/php-monolog.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/validation/python-click.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/validation/ruby-thor.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/validation/rust-serde-json.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/validation/typescript-zod.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/docs/validation/w4-agent-dogfood.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/chunking/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/chunking/cast.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/chunking/chunk.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/chunking/tokens.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/core/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/core/conformance.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/core/contracts.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/core/models.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/core/provenance.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/core/symbols.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/embed/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/embed/base.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/embed/bedrock.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/embed/fake.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/embed/openai.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/embed/pipeline.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/embed/registry.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/embed/report.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/enrich/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/enrich/anthropic.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/enrich/anthropic_client.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/enrich/bedrock.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/enrich/bedrock_client.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/enrich/bedrock_summarizer.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/enrich/claude.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/enrich/enricher.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/enrich/governs.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/enrich/governs_enricher.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/enrich/heuristics.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/enrich/judge.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/enrich/registry.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/enrich/report.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/enrich/summarizer.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/enrich/summary_enricher.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/enrich/taxonomy.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/base.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/detect.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/orm.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/packs/_js_ast.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/packs/django/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/packs/django/models.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/packs/express/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/packs/express/routes.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/packs/fastapi/depends.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/packs/fastapi/routes.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/packs/flask/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/packs/flask/routes.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/packs/nestjs/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/packs/nestjs/routes.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/packs/spring/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/packs/spring/routes.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/packs/sqlalchemy/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/frameworks/packs/sqlalchemy/models.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/extractor.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/incremental/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/incremental/detect.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/incremental/dirty.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/incremental/meta.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/incremental/ports.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/cpp/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/cpp/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/cpp/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/csharp/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/csharp/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/csharp/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/go/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/go/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/go/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/java/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/java/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/java/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/javascript/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/javascript/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/javascript/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/php/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/php/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/php/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/python/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/python/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/python/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/ruby/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/ruby/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/ruby/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/rust/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/rust/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/rust/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/typescript/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/typescript/references.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/packs/typescript/structure.scm +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/resolver.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/ingest/source.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/knowledge/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/knowledge/adr.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/knowledge/commits.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/knowledge/ingest.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/knowledge/mentions.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/knowledge/report.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/providers.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/repomap/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/repomap/rank.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/repomap/render.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/repomap/repomap.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/retrieve/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/retrieve/pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/retrieve/retriever.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/retrieve/scoring.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/store/_rowmap.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/store/errors.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/store/kuzu_store.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/store/lance_store.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/store/neo4j_store.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/store/pgvector_store.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/temporal/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/temporal/events.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/temporal/index.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/temporal/mining.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/temporal/recorder.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/src/agentforge_graph/temporal/store.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/chunking/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/chunking/test_cast.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/chunking/test_layering.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/core/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/core/test_conformance.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/core/test_kinds.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/core/test_layering.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/core/test_models.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/core/test_provenance.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/core/test_symbols.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/core/test_vector_contracts.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/embed/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/embed/test_bedrock.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/embed/test_cli.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/embed/test_fake.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/embed/test_openai.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/embed/test_openai_live.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/embed/test_pipeline.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/embed/test_registry.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/enrich/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/enrich/conftest.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/enrich/test_anthropic.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/enrich/test_anthropic_live.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/enrich/test_bedrock.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/enrich/test_bedrock_client.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/enrich/test_claude.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/enrich/test_enricher.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/enrich/test_heuristics.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/enrich/test_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/enrich/test_live.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/enrich/test_registry.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/enrich/test_summaries.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/enrich/test_summaries_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/enrich/test_summaries_live.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/fixtures/django/models.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/fixtures/express/app.js +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/fixtures/fastapi/app.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/fixtures/fastapi/pyproject.toml +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/fixtures/fastapi/service.py +0 -0
- {agentforge_graph-0.3.3/tests/ingest → agentforge_graph-0.5.0/tests/frameworks/fixtures/fastapi_multifile/payments}/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/fixtures/flask/app.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/fixtures/nestjs/users.controller.ts +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/fixtures/spring/Helper.java +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/fixtures/spring/UserController.java +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/fixtures/sqlalchemy/models.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/test_detect.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/test_django_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/test_django_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/test_express_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/test_express_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/test_flask_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/test_flask_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/test_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/test_layering.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/test_nestjs_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/test_nestjs_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/test_spring_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/test_spring_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/test_sqlalchemy_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/frameworks/test_sqlalchemy_pack.py +0 -0
- {agentforge_graph-0.3.3/tests/ingest/incremental → agentforge_graph-0.5.0/tests/ingest}/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/conftest.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/fixtures/javascript/mathutils.js +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/fixtures/javascript/shapes.js +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/fixtures/python/mathutils.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/fixtures/python/shapes.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/fixtures/typescript/mathutils.ts +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/fixtures/typescript/shapes.ts +0 -0
- {agentforge_graph-0.3.3/tests/knowledge → agentforge_graph-0.5.0/tests/ingest/incremental}/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/incremental/test_equivalence.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/incremental/test_incremental.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_aliased_imports.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_cli.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_codegraph.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_cpp_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_csharp_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_docstrings.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_export_member.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_go_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_go_receiver_calls.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_inherited_method_calls.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_inherits.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_inherits_packs.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_java_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_javascript_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_jsdoc.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_layering.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_member_calls.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_member_calls_packs.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_module_member_calls.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_php_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_pipeline.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_python_extractor.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_qualified_bases.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_resolver.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_ruby_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_rust_pack.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_source.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_src_layout.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/ingest/test_typescript_pack.py +0 -0
- {agentforge_graph-0.3.3/tests/repomap → agentforge_graph-0.5.0/tests/knowledge}/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/knowledge/fixtures/repo/docs/adr/0007-old-payments.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/knowledge/fixtures/repo/docs/adr/0012-idempotency.md +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/knowledge/fixtures/repo/src/app/payments.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/knowledge/test_adr_parser.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/knowledge/test_commit_messages.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/knowledge/test_discover.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/knowledge/test_doc_embedding.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/knowledge/test_doc_globs.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/knowledge/test_infer_governs.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/knowledge/test_integration.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/knowledge/test_layering.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/knowledge/test_mentions.py +0 -0
- {agentforge_graph-0.3.3/tests/retrieve → agentforge_graph-0.5.0/tests/repomap}/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/repomap/test_cli.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/repomap/test_edge_cases.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/repomap/test_layering.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/repomap/test_rank.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/repomap/test_render.py +0 -0
- {agentforge_graph-0.3.3/tests/serve → agentforge_graph-0.5.0/tests/retrieve}/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/retrieve/test_cli.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/retrieve/test_doc_weight.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/retrieve/test_filters.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/retrieve/test_layering.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/retrieve/test_live_relevance.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/retrieve/test_pack_scoring.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/retrieve/test_retriever.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/retrieve/test_temporal_item.py +0 -0
- {agentforge_graph-0.3.3/tests/store → agentforge_graph-0.5.0/tests/serve}/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/serve/test_binding.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/serve/test_engine.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/serve/test_guardrails.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/serve/test_http_auth.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/serve/test_live_agent.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/serve/test_tools.py +0 -0
- {agentforge_graph-0.3.3/tests/temporal → agentforge_graph-0.5.0/tests/store}/__init__.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/store/test_facade.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/store/test_kuzu_conformance.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/store/test_kuzu_internals.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/store/test_lance_conformance.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/store/test_layering.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/store/test_neo4j_conformance.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/store/test_pgvector_conformance.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/store/test_server_drivers.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/temporal/test_asof.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/temporal/test_backfill.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/temporal/test_denormalize.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/temporal/test_index.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/temporal/test_lifecycle.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/temporal/test_mining.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/temporal/test_read_e2e.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/temporal/test_store.py +0 -0
- {agentforge_graph-0.3.3 → agentforge_graph-0.5.0}/tests/test_providers.py +0 -0
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
forked: false
|
|
3
3
|
hash: 8a75b914bdf3cadbde5693497f0c1812a67ee01fde9e2166e97006a299b78962
|
|
4
4
|
source_module: template:minimal:_shared
|
|
5
|
-
source_version: 0.
|
|
5
|
+
source_version: 0.3.1
|
|
6
6
|
.env.example:
|
|
7
7
|
forked: false
|
|
8
|
-
hash:
|
|
8
|
+
hash: a3c0f025887da55714180c85a24c96234d93e8f407b33a77be603ccc7d23dba8
|
|
9
9
|
source_module: template:minimal
|
|
10
|
-
source_version: 0.
|
|
10
|
+
source_version: 0.3.1
|
|
11
11
|
.github/copilot-instructions.md:
|
|
12
12
|
forked: false
|
|
13
13
|
hash: 23c6e939d9d162837a85f0e3859f8e5808327aa77380d2a8e07f5b8c91d423e2
|
|
14
14
|
source_module: template:minimal:_shared
|
|
15
|
-
source_version: 0.
|
|
15
|
+
source_version: 0.3.1
|
|
16
16
|
.gitignore:
|
|
17
|
-
forked:
|
|
17
|
+
forked: true
|
|
18
18
|
hash: e2e64343502ba0a2753b9b76908c3861fcdcafa1f4052c9da02be123f3d7404a
|
|
19
19
|
source_module: template:minimal
|
|
20
20
|
source_version: 0.2.4
|
|
@@ -22,24 +22,24 @@
|
|
|
22
22
|
forked: false
|
|
23
23
|
hash: 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
|
|
24
24
|
source_module: template:minimal:_shared
|
|
25
|
-
source_version: 0.
|
|
25
|
+
source_version: 0.3.1
|
|
26
26
|
AGENTS.md:
|
|
27
27
|
forked: false
|
|
28
|
-
hash:
|
|
28
|
+
hash: 8156ae690c999929ef55b587dc911fa0abe7b75dbc2d16f893b2f53b736352a5
|
|
29
29
|
source_module: template:minimal:_shared
|
|
30
|
-
source_version: 0.
|
|
30
|
+
source_version: 0.3.1
|
|
31
31
|
CLAUDE.md:
|
|
32
32
|
forked: false
|
|
33
33
|
hash: 9120f1c4a7740f3147e85b6010ea0c0cd12d09e886b496fd6d0b958e2239b469
|
|
34
34
|
source_module: template:minimal:_shared
|
|
35
|
-
source_version: 0.
|
|
35
|
+
source_version: 0.3.1
|
|
36
36
|
README.md:
|
|
37
|
-
forked:
|
|
37
|
+
forked: true
|
|
38
38
|
hash: c474ab3012ec420a13389cd5cbfeebc1d69ee35b4f9ad0c6fb84a0404d820303
|
|
39
39
|
source_module: template:minimal
|
|
40
40
|
source_version: 0.2.4
|
|
41
41
|
agentforge.yaml:
|
|
42
|
-
forked:
|
|
42
|
+
forked: true
|
|
43
43
|
hash: 3f971e1f7bac5a4d647849d5f6fcdf7b9cb7ad2e399247b38d66c726918e6d98
|
|
44
44
|
source_module: template:minimal
|
|
45
45
|
source_version: 0.2.4
|
|
@@ -47,124 +47,124 @@ docs/runbooks/01-set-up-new-agent.md:
|
|
|
47
47
|
forked: false
|
|
48
48
|
hash: 9767d5fccc9a78206289504337f26b3ebfd18a62c4ec68c75d5684e64f2ff0d3
|
|
49
49
|
source_module: template:minimal:_shared
|
|
50
|
-
source_version: 0.
|
|
50
|
+
source_version: 0.3.1
|
|
51
51
|
docs/runbooks/02-add-a-tool.md:
|
|
52
52
|
forked: false
|
|
53
53
|
hash: 54e75ed0aa463dcc143fbee577746b7d853ca19c7b31d4ed91557f2afb1b5f03
|
|
54
54
|
source_module: template:minimal:_shared
|
|
55
|
-
source_version: 0.
|
|
55
|
+
source_version: 0.3.1
|
|
56
56
|
docs/runbooks/03-add-a-pipeline-task.md:
|
|
57
57
|
forked: false
|
|
58
58
|
hash: e02a38df57668ab1873d35c83c666bc0b3e4f01f9836babe1eb780eb3a3e3d0b
|
|
59
59
|
source_module: template:minimal:_shared
|
|
60
|
-
source_version: 0.
|
|
60
|
+
source_version: 0.3.1
|
|
61
61
|
docs/runbooks/04-pick-reasoning-strategy.md:
|
|
62
62
|
forked: false
|
|
63
63
|
hash: abe78f8b53fe324f2b86c0a7c69822425c3e267ed232c83021baca0cf6eb804b
|
|
64
64
|
source_module: template:minimal:_shared
|
|
65
|
-
source_version: 0.
|
|
65
|
+
source_version: 0.3.1
|
|
66
66
|
docs/runbooks/05-write-prompts.md:
|
|
67
67
|
forked: false
|
|
68
68
|
hash: 248e76f52c90220d05d1bb2ad1976643d8e68896e5888e9da4b5ccdbf25ccaae
|
|
69
69
|
source_module: template:minimal:_shared
|
|
70
|
-
source_version: 0.
|
|
70
|
+
source_version: 0.3.1
|
|
71
71
|
docs/runbooks/06-test-your-agent.md:
|
|
72
72
|
forked: false
|
|
73
73
|
hash: 81af251a9a4ce45d3b80bf07ffd88173926363fa2e27d7c958279c3b760fdd9b
|
|
74
74
|
source_module: template:minimal:_shared
|
|
75
|
-
source_version: 0.
|
|
75
|
+
source_version: 0.3.1
|
|
76
76
|
docs/runbooks/07-debug-a-run.md:
|
|
77
77
|
forked: false
|
|
78
78
|
hash: 336052b797bc5f39d29ed754fec76e37c50511515a765fbe874cacb1dd06165f
|
|
79
79
|
source_module: template:minimal:_shared
|
|
80
|
-
source_version: 0.
|
|
80
|
+
source_version: 0.3.1
|
|
81
81
|
docs/runbooks/08-add-memory.md:
|
|
82
82
|
forked: false
|
|
83
83
|
hash: 34357485fbb087775cfd99e55500515795e7ff4207b1257b9b66b77b55e82ea5
|
|
84
84
|
source_module: template:minimal:_shared
|
|
85
|
-
source_version: 0.
|
|
85
|
+
source_version: 0.3.1
|
|
86
86
|
docs/runbooks/09-add-mcp.md:
|
|
87
87
|
forked: false
|
|
88
88
|
hash: 3e945da99f484716937036b6dd4686a3f84b3784c877e3ef01166ea1b7399cb2
|
|
89
89
|
source_module: template:minimal:_shared
|
|
90
|
-
source_version: 0.
|
|
90
|
+
source_version: 0.3.1
|
|
91
91
|
docs/runbooks/10-add-evaluators.md:
|
|
92
92
|
forked: false
|
|
93
93
|
hash: acfbdccaaad2ffb9c6fdd7a99de9a42a5fac365585d5cb7fd3e8230ee77bbf26
|
|
94
94
|
source_module: template:minimal:_shared
|
|
95
|
-
source_version: 0.
|
|
95
|
+
source_version: 0.3.1
|
|
96
96
|
docs/runbooks/11-add-safety-guardrails.md:
|
|
97
97
|
forked: false
|
|
98
98
|
hash: c52053398767e28ec3d6c1e334a7b8fdf9359276ab3248ebdda956d0ec610daf
|
|
99
99
|
source_module: template:minimal:_shared
|
|
100
|
-
source_version: 0.
|
|
100
|
+
source_version: 0.3.1
|
|
101
101
|
docs/runbooks/12-add-observability.md:
|
|
102
102
|
forked: false
|
|
103
103
|
hash: b9ce79b8f258b393fd9fc5d9aa4f453503399b3415ac893af3cfd158271302ec
|
|
104
104
|
source_module: template:minimal:_shared
|
|
105
|
-
source_version: 0.
|
|
105
|
+
source_version: 0.3.1
|
|
106
106
|
docs/runbooks/13-configure-multi-provider.md:
|
|
107
107
|
forked: false
|
|
108
|
-
hash:
|
|
108
|
+
hash: b61977c4acbc0d51b10bf56e65c1ecbc819410a966c8cce41852b3153992e1a1
|
|
109
109
|
source_module: template:minimal:_shared
|
|
110
|
-
source_version: 0.
|
|
110
|
+
source_version: 0.3.1
|
|
111
111
|
docs/runbooks/14-deploy-your-agent.md:
|
|
112
112
|
forked: false
|
|
113
113
|
hash: e036df7d4cf3f2d144fb8dd05b747539483b507340fc3ea474c4d1e016424b29
|
|
114
114
|
source_module: template:minimal:_shared
|
|
115
|
-
source_version: 0.
|
|
115
|
+
source_version: 0.3.1
|
|
116
116
|
docs/runbooks/15-upgrade-your-agent.md:
|
|
117
117
|
forked: false
|
|
118
118
|
hash: 81034a5ee4c294ab12d356461a75f065cb6c2cb42dcc23cc71ce05d0b11098ee
|
|
119
119
|
source_module: template:minimal:_shared
|
|
120
|
-
source_version: 0.
|
|
120
|
+
source_version: 0.3.1
|
|
121
121
|
docs/runbooks/16-configuration-reference.md:
|
|
122
122
|
forked: false
|
|
123
123
|
hash: e2cf5067d2fb8ef6ba9e3c1f0f7a39f63082b9685ee687385a0bf2d115b014b6
|
|
124
124
|
source_module: template:minimal:_shared
|
|
125
|
-
source_version: 0.
|
|
125
|
+
source_version: 0.3.1
|
|
126
126
|
docs/runbooks/17-add-reranker.md:
|
|
127
127
|
forked: false
|
|
128
128
|
hash: 2718f76d448ecbe0831c09bcd8431e914b911d487ef50dbb09a4c06bc7bfc36b
|
|
129
129
|
source_module: template:minimal:_shared
|
|
130
|
-
source_version: 0.
|
|
130
|
+
source_version: 0.3.1
|
|
131
131
|
docs/runbooks/18-add-hybrid-search.md:
|
|
132
132
|
forked: false
|
|
133
133
|
hash: 4f5a8eabfd560ef02552ff24ce9f75288f87a096750cb04e6eb457989e954ba1
|
|
134
134
|
source_module: template:minimal:_shared
|
|
135
|
-
source_version: 0.
|
|
135
|
+
source_version: 0.3.1
|
|
136
136
|
docs/runbooks/19-add-graphrag.md:
|
|
137
137
|
forked: false
|
|
138
138
|
hash: 39504e95e5eee24c3e533ceaacbb1479406c36d83969d53aca2fe1d06fb69a8f
|
|
139
139
|
source_module: template:minimal:_shared
|
|
140
|
-
source_version: 0.
|
|
140
|
+
source_version: 0.3.1
|
|
141
141
|
docs/runbooks/20-apply-schema-migrations.md:
|
|
142
142
|
forked: false
|
|
143
143
|
hash: eef758aedb2670f7cbdbb1222b06f8f41e4a786852f344199bf1f5ec63ce2f24
|
|
144
144
|
source_module: template:minimal:_shared
|
|
145
|
-
source_version: 0.
|
|
145
|
+
source_version: 0.3.1
|
|
146
146
|
docs/runbooks/21-use-streaming-guardrails.md:
|
|
147
147
|
forked: false
|
|
148
148
|
hash: 66b694aabc6e09a4c599d4e347044f8b21ce0c24feaea3157349a667e428d518
|
|
149
149
|
source_module: template:minimal:_shared
|
|
150
|
-
source_version: 0.
|
|
150
|
+
source_version: 0.3.1
|
|
151
151
|
docs/runbooks/README.md:
|
|
152
152
|
forked: false
|
|
153
153
|
hash: baeef86ba55cd2185c5ae2fa3b070771dd90e6e19fa9826472ea5f7772b7b249
|
|
154
154
|
source_module: template:minimal:_shared
|
|
155
|
-
source_version: 0.
|
|
155
|
+
source_version: 0.3.1
|
|
156
156
|
pyproject.toml:
|
|
157
|
-
forked:
|
|
157
|
+
forked: true
|
|
158
158
|
hash: 6f314576dc1d2b62ea17fe94d39b0a69d98bda996c89685ee084539312387d95
|
|
159
159
|
source_module: template:minimal
|
|
160
160
|
source_version: 0.2.4
|
|
161
161
|
src/agentforge_graph/__init__.py:
|
|
162
|
-
forked:
|
|
162
|
+
forked: true
|
|
163
163
|
hash: b6f9eb202d197dad3ae57d0defe4396b9e14ff0b56a7949cf760492c452a5401
|
|
164
164
|
source_module: template:minimal
|
|
165
165
|
source_version: 0.2.4
|
|
166
166
|
src/agentforge_graph/main.py:
|
|
167
|
-
forked:
|
|
167
|
+
forked: true
|
|
168
168
|
hash: c05d490b5a1c7dd8ab3bda75558a7083cf22c8676f872476cb50c087edfbc020
|
|
169
169
|
source_module: template:minimal
|
|
170
170
|
source_version: 0.2.4
|
|
@@ -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:` / …)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- AGENTFORGE-MANAGED: template:minimal@0.
|
|
1
|
+
<!-- AGENTFORGE-MANAGED: template:minimal@0.3.1 hash:23c6e939d9d1 -->
|
|
2
2
|
See [AGENTS.md](../AGENTS.md) for project conventions. AGENTS.md
|
|
3
3
|
is the canonical source for AI-assistant instructions. This file
|
|
4
4
|
exists so GitHub Copilot's native
|
|
@@ -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
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
<!-- AGENTFORGE-MANAGED: template:minimal@0.
|
|
1
|
+
<!-- AGENTFORGE-MANAGED: template:minimal@0.3.1 hash:8156ae690c99 -->
|
|
2
2
|
# AgentForge agent — AI assistant instructions
|
|
3
3
|
|
|
4
|
-
This project is built on **AgentForge 0.
|
|
4
|
+
This project is built on **AgentForge 0.3.1**. Use
|
|
5
5
|
these rules when suggesting changes. The file is read by Claude
|
|
6
6
|
Code, Cursor, Aider, and any tool following the
|
|
7
7
|
[AGENTS.md convention](https://agents.md).
|
|
8
8
|
|
|
9
9
|
## Project shape (you must respect this)
|
|
10
10
|
|
|
11
|
-
- Framework version: `0.
|
|
11
|
+
- Framework version: `0.3.1`
|
|
12
12
|
- Template: `minimal`
|
|
13
13
|
- Project slug: `agentforge-graph`
|
|
14
14
|
- LLM provider: `anthropic`
|
|
@@ -161,6 +161,4 @@ design-doc-first for features. Gate every change on
|
|
|
161
161
|
**Dogfood:** `ckg index . && ckg serve-mcp --repo .` exposes this repo's own
|
|
162
162
|
graph (decisions, routes, impact, summaries) — useful grounded context for an
|
|
163
163
|
assistant working here.
|
|
164
|
-
|
|
165
164
|
<!-- agentforge:end-custom -->
|
|
166
|
-
|
|
@@ -8,6 +8,226 @@ on a schema mismatch is **rebuild** (ADR-0006).
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [0.5.0] — 2026-06-21
|
|
12
|
+
|
|
13
|
+
The **org-level central knowledge** release — take CKG from "indexes my one repo"
|
|
14
|
+
to "is my org's shared code brain": host the index **centrally** and consume it
|
|
15
|
+
**read-only**, serve a multi-repo **workspace** from one federated MCP endpoint,
|
|
16
|
+
and **trace requests across services** (HTTP client → route, matched by path or
|
|
17
|
+
OpenAPI contract). (Also: the scaffold template was upgraded to AgentForge 0.3.1.)
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- **`ckg services-map` and `ckg trace` CLI commands** (ENH-020). The cross-service
|
|
22
|
+
call graph and request tracing — previously MCP-only — are now on the command
|
|
23
|
+
line: `ckg services-map --workspace workspace.yaml` prints `from → to` edges
|
|
24
|
+
(with handler + `via`), and `ckg trace <service> --workspace …
|
|
25
|
+
[--direction downstream|upstream] [--depth N]` walks the graph (data flow /
|
|
26
|
+
blast radius). See the org topology from a terminal, not just an agent.
|
|
27
|
+
- **Microservices demo + end-to-end test** for the org-central features. A
|
|
28
|
+
bundled `examples/microservices` workspace (web→gateway→orders→payments,
|
|
29
|
+
spanning JS `fetch`, Python `httpx`/`requests`, and a contract-first OpenAPI
|
|
30
|
+
service) with a runnable walkthrough, plus an automated e2e test that exercises
|
|
31
|
+
ENH-018 (central hosting + read-only), ENH-019 (cwd discovery) and ENH-020
|
|
32
|
+
(federation + `ckg_services_map` + `ckg_trace`) in one flow — the demo is the
|
|
33
|
+
test fixture, so they can't drift.
|
|
34
|
+
- **OpenAPI contract anchoring for the cross-service map** (ENH-020 C-full). When
|
|
35
|
+
a member ships an OpenAPI/Swagger spec (`openapi.{json,yaml,yml}` /
|
|
36
|
+
`swagger.{json,yaml}` at the repo root), `service_map` now matches calls against
|
|
37
|
+
the **declared contract** too — giving authoritative paths, the `operationId` as
|
|
38
|
+
the handler, and coverage for **contract-first services with no detected
|
|
39
|
+
framework**. A framework route and its spec twin are deduped (param-agnostic) so
|
|
40
|
+
they never make a call ambiguous; each edge reports its `via` (`framework` |
|
|
41
|
+
`openapi`). Precision + coverage upgrade over URL-string matching alone.
|
|
42
|
+
- **JS/TS cross-service calls (fetch / axios)** (ENH-020 C-full). A new
|
|
43
|
+
`jshttpclient` pack (spanning `.js` + `.ts`) captures `fetch("…")`,
|
|
44
|
+
`axios.get("…")` / `axios.post("…")` and `axios("…")` as `ServiceCall` nodes —
|
|
45
|
+
`fetch`'s method read from a literal `{ method: "POST" }` option, default GET.
|
|
46
|
+
So a JS/TS frontend or BFF now appears as a caller in the cross-service map /
|
|
47
|
+
`ckg_services_map` / `ckg_trace`, not just Python services.
|
|
48
|
+
- **HTTP client coverage: instance clients + `base_url`** (ENH-020 C-full). The
|
|
49
|
+
`httpclient` pack now also captures calls through a client *instance* —
|
|
50
|
+
`s = requests.Session(); s.get(…)` and `c = httpx.Client(base_url="http://orders");
|
|
51
|
+
c.get("/v1/x")` — composing `base_url + path` into the matched URL. This is the
|
|
52
|
+
dominant real-world pattern (previously only module-qualified `requests.get(…)`
|
|
53
|
+
with a literal URL was seen), so the cross-service map covers far more actual
|
|
54
|
+
calls. Still conservative: dynamic URLs are counted, not guessed.
|
|
55
|
+
- **`ckg_trace` — walk a request across services** (ENH-020 C-full). From a
|
|
56
|
+
starting service, trace the cross-service call graph `downstream` (what it
|
|
57
|
+
calls — data flow) or `upstream` (who calls it — blast radius), to a depth.
|
|
58
|
+
Returns the reachable hops (with hop numbers) and the services reached; cycles
|
|
59
|
+
terminate. Turns the `ckg_services_map` edges into the answer to *"what does
|
|
60
|
+
this service depend on / which services break if I change it"* — impact
|
|
61
|
+
analysis that spans service boundaries. Federation-only tool.
|
|
62
|
+
- **Cross-service call graph** (ENH-020, C-full increment 2). The federated MCP
|
|
63
|
+
server now draws **who-calls-whom across services**: it matches each member's
|
|
64
|
+
outbound `ServiceCall` to a `Route` in *another* member by `(method, path)` —
|
|
65
|
+
with path-parameter awareness (`{id}` / `:id` / `<id>`) — and exposes the org
|
|
66
|
+
call graph via a new `ckg_services_map` tool (`from_service → to_service`,
|
|
67
|
+
method, path, handler, plus `unresolved` calls). Computed live because member
|
|
68
|
+
graphs are separate stores; unique-match-only (ADR-0004) — an ambiguous call is
|
|
69
|
+
reported, never guessed. This completes the microservices payoff: an agent can
|
|
70
|
+
see the whole org's service topology from one endpoint.
|
|
71
|
+
- **Outbound HTTP client calls are captured** (ENH-020, C-full increment 1).
|
|
72
|
+
A new `httpclient` framework pack records module-qualified `requests.get("…")`
|
|
73
|
+
/ `httpx.post("…")` calls as `ServiceCall` graph nodes (method + URL + path),
|
|
74
|
+
riding the caller file's subgraph like routes. Surfaced via
|
|
75
|
+
`CodeGraph.service_calls()` and `ckg service-calls`. Conservative (ADR-0004):
|
|
76
|
+
literal URLs only; dynamic URLs / client-instance calls are counted, not
|
|
77
|
+
guessed. This is the **caller side** of a cross-service edge — at federation
|
|
78
|
+
time these match `Route` nodes in other services (the next increment:
|
|
79
|
+
`ckg_services_map` / `ckg_trace`).
|
|
80
|
+
- **Federated MCP over a workspace** (ENH-020, C-lite). `ckg serve-mcp
|
|
81
|
+
--workspace workspace.yaml` serves **many member repos/services from one
|
|
82
|
+
endpoint**. The **survey tools** (`ckg_search`, `ckg_routes`, `ckg_decisions`,
|
|
83
|
+
`ckg_status`) fan across every member and tag each result with its `service`
|
|
84
|
+
(with a per-service staleness envelope); the **pinpoint tools** (`ckg_symbol`,
|
|
85
|
+
`ckg_impact`, `ckg_neighbors`, `ckg_explain`, `ckg_history`, `ckg_repo_map`)
|
|
86
|
+
take a `service` to target one member. A single repo is unchanged (no
|
|
87
|
+
`services` envelope). This is the microservices payoff of the
|
|
88
|
+
org-central-knowledge theme — one code brain for the whole org. (Cross-service
|
|
89
|
+
*contract edges* — tracing a request across services — are the next phase,
|
|
90
|
+
C-full.) Also fixes the MCP `_Engine` to honor `store.central_root` (ENH-018).
|
|
91
|
+
- **Read-only consumers** (ENH-018). `store.read_only: true` (or `--read-only` /
|
|
92
|
+
`$CKG_READ_ONLY`) makes a store consume-only: the write verbs (`index`,
|
|
93
|
+
`embed`, `enrich`) refuse with a clear message and a non-zero exit, and opening
|
|
94
|
+
a *missing* index errors instead of silently creating one. Read verbs
|
|
95
|
+
(`query`, `map`, `routes`, `serve-mcp`, …) work normally. This is what lets a
|
|
96
|
+
team host one central index (built by CI) and hand it to many developers and
|
|
97
|
+
agents without risk of accidental mutation.
|
|
98
|
+
- **Host the index outside the repo with `store.central_root`** (ENH-018).
|
|
99
|
+
By default the index stays in the gitignored `.ckg/` inside the repo (the
|
|
100
|
+
laptop story, unchanged). Set `store.central_root: /shared/ckg` and each repo's
|
|
101
|
+
artifacts move to a stable, **collision-free per-repo subdir** under that root
|
|
102
|
+
— keyed by git remote (`org/repo`, host-independent) or `<dirname>-<hash>` with
|
|
103
|
+
no remote — so a team/CI can build once and host many repos centrally. The
|
|
104
|
+
`.ckg` root is now resolved through one helper (`store.location.resolve_root`),
|
|
105
|
+
de-duplicating ~10 call sites. `ckg status` shows the resolved location
|
|
106
|
+
(`(central)` when hosting is on). First rung of the org-central-knowledge theme.
|
|
107
|
+
- **`ckg` now discovers the repo root from the working directory** (ENH-019).
|
|
108
|
+
When no path is given, every subcommand — including `ckg serve-mcp` — walks up
|
|
109
|
+
from the cwd to the nearest `.ckg/` / `agentforge.yaml` / `ckg.yaml` / `.git`
|
|
110
|
+
(nearest wins), like `git`. So a bare `ckg serve-mcp` from anywhere inside a
|
|
111
|
+
repo serves *that* repo — no `--repo` needed — which is what an MCP client
|
|
112
|
+
launching the server in a project directory wants. Falls back to `.` when no
|
|
113
|
+
marker is found (unchanged for a bare directory); an explicit positional /
|
|
114
|
+
`--path` / `--repo` always wins; when discovery climbs above the cwd the
|
|
115
|
+
resolved root is announced on stderr. First rung of the org-central-knowledge
|
|
116
|
+
theme (zero-config consumption).
|
|
117
|
+
|
|
118
|
+
### Changed
|
|
119
|
+
|
|
120
|
+
- **Getting-started guides reorganised by setup** into three step-by-step
|
|
121
|
+
walkthroughs — [single repo](docs/guides/getting-started/1-single-repo.md),
|
|
122
|
+
[workspace](docs/guides/getting-started/2-workspace.md), and
|
|
123
|
+
[central store](docs/guides/getting-started/3-central-store.md) — under a hub
|
|
124
|
+
(`01-getting-started.md`, kept so existing links resolve). The 10 topic guides
|
|
125
|
+
are unchanged.
|
|
126
|
+
- **README refreshed for the three setups** with a new `docs/assets/setups.gif`
|
|
127
|
+
(single repo → central store → workspace `services-map` / `trace`), rendered by
|
|
128
|
+
`scripts/render-setups-gif.sh`.
|
|
129
|
+
- **Scaffold template upgraded to AgentForge 0.3.1** (`agentforge upgrade`); the
|
|
130
|
+
files we own are forked so future upgrades skip them.
|
|
131
|
+
|
|
132
|
+
## [0.4.0] — 2026-06-20
|
|
133
|
+
|
|
134
|
+
### Changed
|
|
135
|
+
|
|
136
|
+
- **Consolidated engine config into `agentforge.yaml` (`app:` section).**
|
|
137
|
+
agentforge-py 0.3.x added a sanctioned `app:` passthrough to its strict config
|
|
138
|
+
file — the fix for the workaround that forced a separate `ckg.yaml`. The engine
|
|
139
|
+
now reads its config from `app:` (or a top-level standalone `ckg.yaml`, still
|
|
140
|
+
supported) using **plain pyyaml, no `agentforge` import** (ADR-0001), and
|
|
141
|
+
**auto-discovers** the file in the repo (previously only `--config` was read).
|
|
142
|
+
One config file. `config.resolve_config()` + `app:`-aware `_read_block`.
|
|
143
|
+
- **HTTP MCP auth now rides the framework's `from_http(middleware=)` seam**
|
|
144
|
+
(agentforge-mcp 0.3.x), replacing the `CkgHttpRunner` that reimplemented ~60
|
|
145
|
+
lines of HTTP-serve internals to add a bearer gate. `BearerAuthMiddleware`
|
|
146
|
+
unchanged; verified live (401 / pass-through). (ENH-005.)
|
|
147
|
+
- **Upgraded the AgentForge framework pin to `>=0.3,<0.4`** (from the validated
|
|
148
|
+
0.2.x line). Re-validated: the full gate (666 tests / 95%, ruff + mypy) and an
|
|
149
|
+
MCP server-construction smoke pass on `agentforge-py` 0.3.1 — the `Tool` /
|
|
150
|
+
`BudgetPolicy` / `MCPServer` surfaces are unchanged.
|
|
151
|
+
|
|
152
|
+
### Added
|
|
153
|
+
|
|
154
|
+
- **Bedrock-native reranker + measurement campaign (ENH-013).** A torch-free
|
|
155
|
+
`BedrockRerankScorer` (AWS Bedrock Rerank API — Cohere Rerank 3.5 / Amazon
|
|
156
|
+
Rerank) behind the existing `CrossScorer` seam, selected via
|
|
157
|
+
`rerank_model: bedrock:cohere.rerank-v3-5:0` — reuses the AWS creds the embedder
|
|
158
|
+
already uses, no `rerank`/torch extra. A two-corpus campaign (harness
|
|
159
|
+
`scripts/rerank_eval.py`, [results](docs/validation/rerank/results.md)) found
|
|
160
|
+
the cross-encoder is an **ordering** win (MRR +10–16% at blend weight 0.3) over
|
|
161
|
+
an already-recall-saturated base, costing ~540 ms/query — so rerank **stays
|
|
162
|
+
opt-in**, with the Bedrock config @ `w=0.3` documented as the recommended
|
|
163
|
+
precision setting. New `retrieve.rerank_region` config. A **rigorous follow-up
|
|
164
|
+
benchmark** (`scripts/rerank_benchmark.py`, objective docstring→code labels,
|
|
165
|
+
388 queries / 4 OSS repos) confirms base retrieval MRR 0.95 / recall@1 0.92 and
|
|
166
|
+
a statistically-significant rerank lift (ΔMRR +0.019, p<0.001) — surfaced in the
|
|
167
|
+
README's "Retrieval quality (measured)" section.
|
|
168
|
+
|
|
169
|
+
- **Four new framework packs — Go / C# / PHP / Ruby routes (ENH-012).** Framework
|
|
170
|
+
awareness now spans **11 packs** across six languages. Each rides a small new
|
|
171
|
+
`_<lang>_ast` helper and is conservative (ADR-0004); detection uses import
|
|
172
|
+
markers since these languages' deps live outside the scanned manifests.
|
|
173
|
+
- **Gin** (Go) — `r.GET("/x", handler)` method calls → `Route` + `HANDLED_BY`
|
|
174
|
+
to the Go function (mirrors Express).
|
|
175
|
+
- **ASP.NET** (C#) — `[HttpGet("/x")]` attributes on controllers → `Route` +
|
|
176
|
+
`HANDLED_BY` to `Class#method`; `[Route]` base path + `[controller]` token
|
|
177
|
+
(mirrors Spring).
|
|
178
|
+
- **Laravel** (PHP) — `Route::get('/x', [C::class, 'm'])` / `'C@m'` / invokable.
|
|
179
|
+
- **Rails** (Ruby) — `routes.rb` explicit `get '/x' => 'c#a'` / `to:` / `root`.
|
|
180
|
+
|
|
181
|
+
Laravel and Rails name their handler in another file, so a new **generic
|
|
182
|
+
cross-file route-handler grounding** pass-2 step (`frameworks/cross_file.py`)
|
|
183
|
+
resolves the controller reference to the real `Class#method` symbol anywhere in
|
|
184
|
+
the repo (unique-match), emitting `HANDLED_BY` — globally idempotent, surfaced
|
|
185
|
+
as `IndexReport.route_handlers_grounded`. ORM models (EF Core / Eloquent /
|
|
186
|
+
ActiveRecord), the ASP.NET minimal API, and the Rails resourceful DSL are
|
|
187
|
+
follow-ups.
|
|
188
|
+
|
|
189
|
+
- **Cross-file framework resolution — route prefixes + DI grounding (ENH-011).**
|
|
190
|
+
A globally-idempotent pass-2 (`frameworks/cross_file.py`) stitches the
|
|
191
|
+
compose-points real apps split across files, reading only the persisted graph
|
|
192
|
+
(`IMPORTS` edges + node attrs), unique-match-only (ADR-0004):
|
|
193
|
+
- `app.include_router(payments.router, prefix="/api")` composes `/api` onto the
|
|
194
|
+
included router's routes. The base `path` is preserved; the composed URL is a
|
|
195
|
+
new `path_pattern` attr (`RouteInfo.path_pattern`, shown by `ckg routes` and
|
|
196
|
+
returned by the `ckg_routes` MCP tool). New `RouteMount` node kind.
|
|
197
|
+
- `Depends(get_db)` grounds the provider *name* to the `get_db` function symbol
|
|
198
|
+
in its module via a new `PROVIDED_BY` edge (+ `Service.provider_symbol`).
|
|
199
|
+
|
|
200
|
+
Ships for **FastAPI**; Flask / Express / Django reuse the same framework-
|
|
201
|
+
agnostic pass-2 (per-pack pass-1 capture pending). New `RouteMount` /
|
|
202
|
+
`PROVIDED_BY` kinds are additive and migration-free (the stores key edges/nodes
|
|
203
|
+
by a `kind` string column). `IndexReport.route_prefixes_composed` /
|
|
204
|
+
`di_providers_grounded`; `incremental == full` preserved. New runbook:
|
|
205
|
+
`docs/guides/04-cross-file-framework-resolution.md`.
|
|
206
|
+
|
|
207
|
+
- **`CITATION.cff`** — GitHub "Cite this repository" metadata.
|
|
208
|
+
|
|
209
|
+
- **Consumer feature guides + a runnable example.** New `docs/guides/` for the
|
|
210
|
+
headline features — framework extraction (routes/models/services), architecture
|
|
211
|
+
decisions, temporal/history, enrichment, and an index→query walkthrough — plus
|
|
212
|
+
`examples/fastapi-shop/`, a tiny FastAPI+SQLAlchemy app you can index in one
|
|
213
|
+
command to see routes/models/services (output verified against the CLI).
|
|
214
|
+
|
|
215
|
+
- **Project metadata + community health.** `[project.urls]` (Homepage,
|
|
216
|
+
Repository, Changelog, Issues, Documentation) so the PyPI page links out;
|
|
217
|
+
`SECURITY.md`, `CODE_OF_CONDUCT.md`, GitHub issue + PR templates; README doc
|
|
218
|
+
links made absolute so they resolve on the PyPI project page.
|
|
219
|
+
|
|
220
|
+
- **SurrealDB storage backend — graph + vectors in one (ENH-010).** A first-party
|
|
221
|
+
`surrealdb` driver for *both* `store.graph.driver` and `store.vectors.driver`,
|
|
222
|
+
so one multi-model server is a complete backend (`pip install
|
|
223
|
+
agentforge-graph[surrealdb]`). It passes the same `GraphStoreConformance` /
|
|
224
|
+
`VectorStoreConformance` suites as Kuzu/Neo4j/LanceDB/pgvector — verified
|
|
225
|
+
against a live SurrealDB in the `server-backends` CI job. Nodes/edges are
|
|
226
|
+
document tables on the shared open schema (hash-keyed records, the symbol id in
|
|
227
|
+
a `key` field); vector search is brute-force cosine in `[0, 1]`. This makes the
|
|
228
|
+
"day-one, plug in a different DB" promise provable end-to-end against an
|
|
229
|
+
independent third backend.
|
|
230
|
+
|
|
11
231
|
## [0.3.3] - 2026-06-19
|
|
12
232
|
|
|
13
233
|
Leaner base install + the refreshed README on PyPI.
|
|
@@ -429,10 +649,11 @@ questions over the tools, unattended.
|
|
|
429
649
|
on a real repo (fixed BUG-008, a default-config `ckg query` break); and parse
|
|
430
650
|
coverage holds at scale (`django`, 2922 files, ~100%, no crash).
|
|
431
651
|
|
|
432
|
-
[Unreleased]: https://github.com/Scaffoldic/agentforge-
|
|
433
|
-
[0.
|
|
434
|
-
[0.3.
|
|
435
|
-
[0.3.
|
|
436
|
-
[0.3.
|
|
437
|
-
[0.
|
|
438
|
-
[0.
|
|
652
|
+
[Unreleased]: https://github.com/Scaffoldic/agentforge-graph/compare/v0.4.0...HEAD
|
|
653
|
+
[0.4.0]: https://github.com/Scaffoldic/agentforge-graph/compare/v0.3.3...v0.4.0
|
|
654
|
+
[0.3.3]: https://github.com/Scaffoldic/agentforge-graph/compare/v0.3.2...v0.3.3
|
|
655
|
+
[0.3.2]: https://github.com/Scaffoldic/agentforge-graph/compare/v0.3.1...v0.3.2
|
|
656
|
+
[0.3.1]: https://github.com/Scaffoldic/agentforge-graph/compare/v0.3.0...v0.3.1
|
|
657
|
+
[0.3.0]: https://github.com/Scaffoldic/agentforge-graph/compare/v0.2.0...v0.3.0
|
|
658
|
+
[0.2.0]: https://github.com/Scaffoldic/agentforge-graph/compare/v0.1.0...v0.2.0
|
|
659
|
+
[0.1.0]: https://github.com/Scaffoldic/agentforge-graph/releases/tag/v0.1.0
|