crprotocol 5.0.0__tar.gz → 5.1.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.
- crprotocol-5.1.0/.coverage.konvidi.pid29996.XQNEr1Cx.HLpP21RTVxfh +0 -0
- crprotocol-5.1.0/.coverage.konvidi.pid29996.Xr8Aseyx.HNQIp837rWOh +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.github/workflows/ci.yml +1 -1
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.gitignore +2 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/AI Agent adoption/CRP-SKILL.md +1 -1
- crprotocol-5.0.0/site-docs/llms-full.txt → crprotocol-5.1.0/AI Agent adoption/llms-full.txt +1 -1
- {crprotocol-5.0.0 → crprotocol-5.1.0}/AI Agent adoption/llms.txt +1 -1
- {crprotocol-5.0.0 → crprotocol-5.1.0}/CHANGELOG.md +81 -1
- {crprotocol-5.0.0 → crprotocol-5.1.0}/CRPv4_Implementation_Rounds.md +6 -3
- {crprotocol-5.0.0 → crprotocol-5.1.0}/CRPv5_FINALISATION_TRACKING.md +39 -4
- {crprotocol-5.0.0 → crprotocol-5.1.0}/PKG-INFO +11 -9
- {crprotocol-5.0.0 → crprotocol-5.1.0}/RAILWAY_DEPLOYMENT_GUIDE.md +8 -6
- {crprotocol-5.0.0 → crprotocol-5.1.0}/RAILWAY_VARIABLES.md +25 -17
- {crprotocol-5.0.0 → crprotocol-5.1.0}/README.md +10 -8
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/__init__.py +17 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/_version.py +1 -1
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/extraction/stage3_gliner.py +15 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/scan/github_app.py +11 -3
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/scan/remediation.py +8 -1
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/sdk/client.py +61 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/stl/__init__.py +9 -1
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/stl/operation_state.py +13 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/stl/positioned.py +210 -7
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/auth.py +12 -6
- crprotocol-5.1.0/crp_test_groups/group1.txt +20 -0
- crprotocol-5.1.0/crp_test_groups/group2.txt +20 -0
- crprotocol-5.1.0/crp_test_groups/group3.txt +20 -0
- crprotocol-5.1.0/crp_test_groups/group4.txt +20 -0
- crprotocol-5.1.0/examples/crp_demos/e2e_v5_test.py +314 -0
- crprotocol-5.1.0/examples/crp_demos/positioned_benchmark.py +232 -0
- crprotocol-5.1.0/examples/crp_demos/quality_benchmark.py +216 -0
- crprotocol-5.1.0/examples/crp_demos/safety_checkpoint_test.py +192 -0
- crprotocol-5.1.0/examples/crp_demos/sqb_positioned.py +155 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/v4/server.py +26 -1
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/v4/static/app.js +31 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/v4/static/index.html +5 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/v4/static/style.css +34 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/mkdocs.yml +2 -1
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/aiuc-1.md +468 -468
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/activation.md +44 -44
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/adapters.md +12 -12
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/advanced.md +100 -100
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/agent.md +44 -44
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/ckf.md +92 -92
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/cli.md +36 -36
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/comply.md +116 -116
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/config.md +12 -12
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/config_schema.md +12 -12
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/continuation.md +100 -92
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/core.md +180 -172
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/envelope.md +76 -76
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/extraction.md +108 -108
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/gateway.md +36 -36
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/headers.md +60 -60
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/index.md +44 -43
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/integrations.md +44 -36
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/license_guard.md +12 -12
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/observability.md +60 -60
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/policy.md +76 -76
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/provenance.md +132 -124
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/providers.md +92 -92
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/resources.md +52 -44
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/scan.md +36 -36
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/schemas.md +12 -12
- crprotocol-5.1.0/site-docs/api/modules/sdk.md +60 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/security.md +156 -148
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/state.md +212 -212
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/modules/stl.md +76 -52
- crprotocol-5.1.0/site-docs/api/modules/tools.md +52 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/control-evidence.md +194 -194
- crprotocol-5.0.0/site-docs/crpv4-roadmap.md → crprotocol-5.1.0/site-docs/crpv5-roadmap.md +201 -199
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/index.md +494 -494
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/products/comply.md +1 -1
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/protocol/context-sources.md +2 -2
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/protocol/index.md +101 -101
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/sdk/index.md +3 -3
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/sdk/tools-and-agents.md +100 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/testing/benchmarks.md +73 -13
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/testing/running-tests.md +2 -2
- {crprotocol-5.0.0 → crprotocol-5.1.0}/slides.md +39 -5
- crprotocol-5.1.0/sqb_results/positioned_kimi.json +56 -0
- crprotocol-5.1.0/sqb_results/quality_benchmark.json +64 -0
- crprotocol-5.1.0/sqb_results/sqb_positioned_kimi.json +45 -0
- crprotocol-5.1.0/sqb_results/sqb_positioned_local_w6.json +45 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_comply_quota_gate.py +5 -4
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_crp_mcp_auth.py +38 -2
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_dispatch_positioned.py +31 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_gap_fixes_live.py +73 -19
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_github_app.py +19 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_orchestrator_perf.py +20 -2
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_positioned.py +74 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_smoke.py +1 -1
- crprotocol-5.0.0/kimi_moonshot_api_key.txt +0 -1
- crprotocol-5.0.0/site-docs/api/modules/sdk.md +0 -28
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.dockerignore +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.github/CODEOWNERS +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.github/FUNDING.yml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.github/ISSUE_TEMPLATE/spec-clarification.yml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.github/workflows/docs.yml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.github/workflows/link-check-config.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.github/workflows/link-check.yml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.github/workflows/validate-schemas.yml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.kimi/skills/crp-auth-expert/SKILL.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.kimi/skills/crp-comply-expert/SKILL.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.kimi/skills/crp-gateway-expert/SKILL.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.kimi/skills/crp-v4-expert/SKILL.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.kimi/skills/crp-v4-specs/SKILL.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.kimi/skills/programmatic-video-production/SKILL.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.kimi/skills/programmatic-video-production/references/tool-comparison.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/.pre-commit-config.yaml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/3.1.0 +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/AGENTS.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/AI Agent adoption/CRP-AGENT-ADOPTION-STRATEGY.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/AI Agent adoption/CRP-MCP-SERVER-SPECIFICATION.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/BENCHMARKS.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/CNAME +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/CODE_OF_CONDUCT.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/CONTRIBUTING.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/CRP Comply LLM connection methods issues prompt.txt +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/CRP protocol ecosystem figure.png +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/CRP-COMPLY-AI-SAFETY-PLAN.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/CRP-COMPLY-UPGRADE-REPORT-v2.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/CRP-COMPLY-UPGRADE-REPORT.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/CRP-SHARED-HERO-POSITIONING.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/CRP-v4-SPRINT-REPORT.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/CRP-v4-VISUAL-AUDIT-RATING.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/CRP_CAPABILITIES.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/CRP_Comply_github_app_details.txt +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/CRP_SLM_PROTOCOL_PROPOSAL.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/CRP_protocol_FULL_transparent_white.png +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/CRPv4_realised_deliverables.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/D1_CRP_Protocol_Marketing_Update.docx +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/Dockerfile +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/GOVERNANCE.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/HOSTING_POSITIONING.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/INTERNAL_DOCS.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/LICENSE.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/NOTICE +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SECURITY.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SITE_NAVIGATION_AND_PUBLISHING.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/CRP-BUILD-PROMPT.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/CRP-CODER-BRIEF.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/CRP-GATEWAY-BLUEPRINT.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/CRP-MASTER-INDEX.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/CRP-SDK-REFERENCE.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-FEASIBILITY.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-IANA-RESPONSE-STRATEGY.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-IETF-EMAIL-TEMPLATES.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-PUBLIC-CHECKLIST.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SITE-STRATEGY.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-001-core-protocol.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-002-headers.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-003-envelope.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-004-continuation.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-005-dpe.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-006-safety-policy.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-007-session-token.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-008-dispatch.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-009-ckf.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-010-regulatory-mapping.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-011-audit-trail.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-012-multi-agent-safety.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-013-github-action.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-014-conformance.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-015-security-privacy.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-016-gateway-service.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-017-zero-ckf-mode.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-018-air.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-019-cognitive-quality.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-020-cognitive-load-distribution.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-021-reasoning-orchestration.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-022-execution-fabric.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-023-amplification-boundary.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-024-coverage-differential-retrieval.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-025-graph-retrieval.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-026-semantic-quality-benchmark.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-027-retrieval-integrity.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-028-conversational-context.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-029-ephemeral-tool-context.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-030-cognitive-state-relay.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-031-semantic-task-layer.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-032-developer-experience.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-033-safety-control-plane.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-034-safety-coverage.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-035-context-lifecycle.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-036-scan-remediation.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-037-unified-config.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-038-storage-backends.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-039-semantic-code-ingestion.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-040-crp-comply.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-041-adoption-ecosystem.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-HOSTING-CONTROL.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SUBMISSION-GUIDE.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-MASTER-INDEX.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-SPEC-040-crp-comply.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS-2.06.2026/CRP-SPEC-041-adoption-ecosystem.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-FEASIBILITY.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-IETF-EMAIL-TEMPLATES.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-PUBLIC-CHECKLIST.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SITE-STRATEGY.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SPEC-001-core-protocol.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SPEC-002-headers.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SPEC-003-envelope.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SPEC-004-continuation.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SPEC-005-dpe.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SPEC-006-safety-policy.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SPEC-007-session-token.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SPEC-008-dispatch.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SPEC-009-ckf.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SPEC-010-regulatory-mapping.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SPEC-011-audit-trail.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SPEC-012-multi-agent-safety.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SPEC-013-github-action.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SPEC-014-conformance.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SPEC-015-security-privacy.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SPEC-016-gateway-service.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SPEC-017-zero-ckf-mode.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SPEC-HOSTING-CONTROL.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-SUBMISSION-GUIDE.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/CRP-V3-IMPLEMENTATION-PLAN.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/Overview of all documents.docx +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/SUBMISSION-GUIDE.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/TRACKING_OF_PROGRESS.MD +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/crp-headers-spec.html +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/crp-product-ecosystem.html +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_27-05-2027/crp-v3-complete-spec.html +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/Automated prompt-response review, questions, actions and insights.txt +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/CRP-AUTH-MIGRATION-SPRINT-SUMMARY.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/CRP-AUTH-POSTGRESQL-MIGRATION-PLAN.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/CRP-AUTH-USER-MANAGEMENT-SOLUTION.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/CRP-BUILD-PROMPT.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/CRP-CODER-BRIEF.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/CRP-COMPLY-BUILDER-PROMPT.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/CRP-COMPLY-UPGRADE-HANDOFF.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/CRP-ECOSYSTEM-BOUNDARIES.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/CRP-GATEWAY-BLUEPRINT.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/CRP-GATEWAY-PRODUCT-OVERVIEW.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/CRP-GITHUB-APP-GUIDE.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/CRP-GITHUB-CONNECTIVITY-SOLUTION.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/CRP-MARKET-STRATEGY.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/CRP-MASTER-INDEX.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/CRP-RAILWAY-SETUP-GUIDE.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/CRP-SDK-REFERENCE.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/CRP-STRIPE-SETUP-GUIDE.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/CRP-V4-UPGRADE-PROMPT.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/CRP-v4-PHASED-IMPLEMENTATION-REPORT.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/adversarially-robust-safety.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/mfa_plan.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-FEASIBILITY.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-IANA-RESPONSE-STRATEGY.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-IETF-EMAIL-TEMPLATES.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-PUBLIC-CHECKLIST.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SITE-STRATEGY.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-001-core-protocol.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-002-headers.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-003-envelope.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-004-continuation.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-005-dpe.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-006-safety-policy.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-007-session-token.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-008-dispatch.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-009-ckf.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-010-regulatory-mapping.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-011-audit-trail.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-012-multi-agent-safety.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-013-github-action.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-014-conformance.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-015-security-privacy.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-016-gateway-service.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-017-zero-ckf-mode.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-018-air.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-019-cognitive-quality.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-020-cognitive-load-distribution.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-021-reasoning-orchestration.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-022-execution-fabric.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-023-amplification-boundary.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-024-coverage-differential-retrieval.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-025-graph-retrieval.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-026-semantic-quality-benchmark.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-027-retrieval-integrity.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-028-conversational-context.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-029-ephemeral-tool-context.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-030-cognitive-state-relay.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-031-semantic-task-layer.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-032-developer-experience.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-033-safety-control-plane.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-034-safety-coverage.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-035-context-lifecycle.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-036-scan-remediation.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-037-unified-config.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-038-storage-backends.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-039-semantic-code-ingestion.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-040-crp-comply.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-041-adoption-ecosystem.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-042-comply-upgrade-integration.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-043-gateway-runtime-product.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-044-authoritative-domain-agent.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-045-knowledge-learning.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-046-user-defined-cognition.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-047-monetisation-payments.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-048-comply-lowcode-github.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-049-slm-agent-execution.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-050-tool-capability-fabric.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-HOSTING-CONTROL.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/SPECS_5_06_2026_CRP_v4/specs/CRP-SUBMISSION-GUIDE.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/STRIPE_MONETISATION.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/TRADEMARK.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/WASA_AI_CRITICAL_GAP_AUDIT.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/_MConverter.eu_agentic_ai_slm_report.agent.final.footnote.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/agentic_ai_slm_report.agent.final.footnote.docx +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/android-chrome-192x192.png +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/android-chrome-512x512.png +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/apple-touch-icon.png +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/__main__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/_typing.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/activation/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/activation/mode.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/activation/onboarding.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/activation/policy_adjust.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/activation/stages.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/adapters.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/advanced/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/advanced/auto_ingest.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/advanced/cqs.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/advanced/cross_window.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/advanced/curator.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/advanced/feedback.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/advanced/hierarchical.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/advanced/meta_learning.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/advanced/parallel.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/advanced/review_cycle.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/advanced/scale_mode.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/advanced/source_grounding.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/agent/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/agent/budget.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/agent/chain.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/agent/oversight.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/agent/propagation.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/ckf/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/ckf/cdgr.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/ckf/community.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/ckf/fabric.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/ckf/gc.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/ckf/graph_edges.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/ckf/graph_walk.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/ckf/merge.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/ckf/pattern_query.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/ckf/pubsub.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/ckf/semantic.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/cli/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/cli/main.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/cli/sidecar.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/cli/startup.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/comply/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/comply/billing/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/comply/billing/checkout.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/comply/billing/constants.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/comply/billing/entitlements.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/comply/billing/metering.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/comply/billing/reconciliation.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/comply/billing/webhook.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/comply/checkpoint_inbox.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/comply/gateway_client.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/comply/gateway_proxy.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/comply/github_routes.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/comply/header_mapping.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/comply/no_code.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/comply/quota_gate.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/comply/signup.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/config.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/config_schema.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/continuation/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/continuation/completion.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/continuation/degradation.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/continuation/document_map.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/continuation/flow.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/continuation/gap.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/continuation/input_planner.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/continuation/manager.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/continuation/quality_monitor.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/continuation/stitch.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/continuation/trigger.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/continuation/voice.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/app_profile.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/batch.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/circuit_breaker.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/config.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/context_enforcer.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/context_source.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/context_tools.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/dispatch_router.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/errors.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/extraction_facade.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/facilitator.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/idempotency.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/ledger_backends.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/manifest_derive.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/manifest_ledger.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/orchestrator.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/relay_strategies.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/security_manager.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/session.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/task_intent.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/core/window.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/envelope/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/envelope/builder.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/envelope/cdr.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/envelope/decomposer.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/envelope/formatter.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/envelope/packer.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/envelope/reranker.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/envelope/retrieval_integrity.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/envelope/scoring.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/extraction/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/extraction/complexity.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/extraction/contradiction.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/extraction/pipeline.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/extraction/quality_gate.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/extraction/stage1_regex.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/extraction/stage2_statistical.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/extraction/stage4_uie.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/extraction/stage5_discourse.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/extraction/stage6_llm.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/extraction/structured_output.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/extraction/types.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/gateway/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/gateway/api.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/gateway/key_vault.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/gateway/router.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/headers/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/headers/conditional.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/headers/emit.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/headers/halt.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/headers/middleware.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/headers/names.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/headers/parse.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/integrations/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/integrations/_common.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/integrations/anthropic_hook.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/integrations/app_discovery.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/integrations/langchain_hook.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/integrations/openai_hook.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/license_guard.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/observability/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/observability/audit.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/observability/events.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/observability/metrics.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/observability/quality.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/observability/structured_logging.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/observability/telemetry.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/policy/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/policy/enforce.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/policy/grammar.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/policy/inheritance.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/policy/mode.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/policy/model.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/policy/nonce.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/policy/profiles.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/policy/report.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/provenance/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/provenance/_embeddings.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/provenance/_types.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/provenance/amplifiers.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/provenance/attribution_scorer.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/provenance/calibration.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/provenance/claim_detector.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/provenance/contradiction_detector.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/provenance/distortion_detector.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/provenance/entailment_verifier.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/provenance/fabrication_detector.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/provenance/hallucination_scorer.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/provenance/omission_analyzer.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/provenance/provenance_chain.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/provenance/report_generator.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/provenance/rqa.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/provenance/rqa_stages.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/provenance/window_chain.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/providers/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/providers/anthropic.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/providers/base.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/providers/custom.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/providers/diagnostic.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/providers/discovery.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/providers/llamacpp.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/providers/manager.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/providers/ollama.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/providers/openai.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/providers/tokenizers.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/py.typed +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/resources/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/resources/adaptive_allocator.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/resources/cost_model.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/resources/governor.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/resources/overhead_manager.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/resources/resource_manager.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/scan/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/scan/semantic_ingestion.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/scan/templates/README.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/schemas/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/schemas/cost-estimate.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/schemas/crp-error.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/schemas/envelope-preview.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/schemas/persisted-state-header.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/schemas/quality-report.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/schemas/session-handle.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/schemas/session-status.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/schemas/stream-event.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/schemas/task-intent.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/sdk/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/sdk/dynamic.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/sdk/proxies.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/sdk/proxies_extra.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/sdk/proxies_more.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/sdk/response.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/security/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/security/audit_trail.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/security/binding.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/security/checkpoint.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/security/clarify.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/security/compliance.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/security/consent.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/security/control_plane.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/security/coverage.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/security/embedding_defense.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/security/encryption.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/security/injection.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/security/integrity.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/security/privacy.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/security/quarantine.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/security/rbac.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/security/safety_manifest.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/security/session_token.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/security/validation.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/backends/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/backends/base.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/backends/memory.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/backends/redis.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/backends/s3.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/backends/sqlite.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/cold_storage.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/compaction.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/coverage_set.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/critical_state.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/cso.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/event_log.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/fact.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/horizons.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/scratch_buffer.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/serialization.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/session_cleanup.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/snapshot.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/storage/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/storage/ephemeral_store.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/storage/hot_cache.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/storage/inverted_index.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/storage/rolling_log.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/storage/router.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/state/warm_store.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/stl/classifier.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/stl/depth_model.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/stl/frame_builder.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/stl/goal_compass.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/stl/orchestrator.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/stl/tool_positioner.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/tools/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/tools/adapters.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/tools/capability_fabric.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/tools/descriptor.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/tools/executor.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp/tools/profiles.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_envelope_budget +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/.env.example +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/.env.hosted.template +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/agent_tools.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/backend_client.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/billing.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/capabilities.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/checkpoint_policy.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/checkpoint_service.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/completions.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/comply_tools.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/config_tools.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/connectors/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/connectors/base.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/connectors/comply.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/connectors/console.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/connectors/email.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/connectors/fcm.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/connectors/gmail.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/connectors/pagerduty.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/connectors/slack.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/connectors/sms.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/connectors/webhook.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/corpus.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/dpe_tools.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/gateway_tools.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/headers_lint.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/local_tools.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/permissions.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/prompts.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/resources.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/safety_tools.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/scaffold.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/scan_tools.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/server.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_mcp/types.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_shared/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_shared/audit.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_shared/auth.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_shared/crp_headers.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_shared/db.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_shared/passkey.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_shared/schema.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/crp_shared/session_token.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/AUDIT_REPORT_ROUND_1_SITE_FIXES.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/AUDIT_REPORT_ROUND_2_VISUAL_IMPROVEMENTS.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/Analysis_of_benchmark_results.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/CRP_AVAILABILITY.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/CRP_CHECKPOINTS_SETUP_GUIDE.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/CRP_DEMO_VIDEO_SCRIPT.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/CRP_MCP_ACTIONABLE_DEPLOYMENT_GUIDE.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/CRP_MCP_CONNECTORS_SETUP_GUIDE.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/CRP_MCP_ENVIRONMENT_MAPPING.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/CRP_MCP_PRODUCTION_CHECKLIST.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/CRP_MCP_SECURITY_AND_CHECKPOINTS_REPORT.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/CRP_SCAN_ACTION_GUIDE.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/CRP_SCAN_ACTION_PLAN.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/CRP_SCAN_MARKETPLACE_AND_PARTNERSHIP.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/CRP_SDK_CONTEXT_SAFETY_GAP_REPORT.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/CRP_SPEC_REALITY_MAP.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/CRP_V3_COMPLETENESS.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/DEMO_REPRODUCTION_AND_VIDEO_GUIDE.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/DOCS_PLATFORM_EVALUATION.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/DOCS_QUALITY_STRATEGY.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/GATEWAY_BACKEND_INTEGRATION.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/GATEWAY_RAILWAY_DEPLOY.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/GITHUB_ACTION_PUBLISH.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/LINKEDIN_LAUNCH_SERIES.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/OPERATIONS_RUNBOOK.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/SEO_AEO_GEO_STRATEGY.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/UX_ACCESSIBILITY_IMPROVEMENTS.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/VS_CODE_EXTENSION_PUBLISH.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/docs/WASA_INTEGRATION_TUTORIAL.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/async_usage.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/benchmark_continuation.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/choose_provider.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/comply_demo.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/README.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/_benchmark_results/20260601_140350_comparison.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/_benchmark_results/20260601_140350_crp_document.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/_benchmark_results/20260601_140350_hierarchical_document.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/_benchmark_results/20260601_140350_injection_document.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/_benchmark_results/20260601_140350_rag_document.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/comparison_backend.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/pipeline.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/positioned_8b_validation.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/run_benchmark.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/server.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/sqb_benchmark.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/sqb_kimi_judge.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/static/app.js +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/static/comparison.html +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/static/context.html +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/static/context.js +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/static/index.html +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/static/safety.html +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/static/safety.js +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/static/style.css +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/strategies/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/strategies/base.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/strategies/crp_strategy.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/strategies/hierarchical_strategy.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/strategies/injection_strategy.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/strategies/rag_strategy.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/crp_demos/v4/run_demo.ps1 +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/demo_app/README.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/demo_app/demo.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/demo_app/demo_v1.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/extraction-pipeline.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/ingestion.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/local-model.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/multi-provider.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/multi_turn.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/quickstart.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/quickstart.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/scribe_demo.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/session-resumption.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/examples/streaming.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/favicon-16x16.png +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/favicon-32x32.png +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/favicon.ico +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/hooks/mkdocs_hooks.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/local-llm-resource-management-report.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/media/FINAL_CRP_Full_logo-transparent.png +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/message for AI safety.txt +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/migrations/001_initial.sql +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/overrides/404.html +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/overrides/main.html +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/overrides/partials/logo.html +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/pyproject.toml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/rfcs/0000-template.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/rfcs/0001-initial-release.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/schemas/capability-descriptor.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/schemas/cost-estimate.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/schemas/crp-error.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/schemas/envelope-preview.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/schemas/openapi.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/schemas/persisted-state-header.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/schemas/quality-report.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/schemas/session-handle.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/schemas/session-status.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/schemas/stream-event.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/schemas/task-intent.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/scripts/audit_docs.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/scripts/audit_docstrings.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/scripts/auto_docstrings.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/scripts/demo_varied_tests.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/scripts/gen_changelog.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/scripts/generate_api_reference.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/scripts/probe_safety.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/scripts/probe_varied_use_cases.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/scripts/validate_crp_mcp.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/scripts/verify_v4_demo.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/BingSiteAuth.xml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/CNAME +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/.meta.yml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/activation.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/advanced.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/agent.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/ckf.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/cli.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/client.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/compliance.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/comply.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/config.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/continuation.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/core.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/cso.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/dispatch.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/envelope.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/errors.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/events.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/extraction.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/gateway.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/headers.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/index.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/observability.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/policy.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/provenance.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/providers.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/reasoning.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/resources.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/safety.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/scan.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/schemas.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/security.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/api/state.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/assets/CRP_protocol_ecosystem_transparent.png +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/assets/favicon/android-chrome-192x192.png +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/assets/favicon/android-chrome-512x512.png +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/assets/favicon/apple-touch-icon.png +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/assets/favicon/favicon-16x16.png +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/assets/favicon/favicon-32x32.png +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/assets/favicon/favicon.ico +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/assets/favicon/site.webmanifest +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/assets/logo-full-readme.png +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/assets/logo-full.png +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/assets/logo-small.png +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/assets/og-image.png +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/capabilities.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/cite.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/compliance/.meta.yml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/compliance/eu-ai-act.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/compliance/gdpr.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/compliance/index.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/compliance/iso-42001.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/compliance/nist-ai-rmf.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/compliance/security.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/contributing.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/faq.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/getting-started/.meta.yml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/getting-started/cli.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/getting-started/index.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/getting-started/installation.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/getting-started/licensing.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/getting-started/local-models.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/getting-started/operating-the-ecosystem.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/getting-started/providers.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/getting-started/quickstart.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/guides/.meta.yml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/guides/demo-app.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/guides/gateway-railway.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/guides/index.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/guides/ingestion.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/guides/multi-turn.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/guides/sdk-phases.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/guides/sdk.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/guides/session-persistence.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/guides/sidecar.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/guides/streaming.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/javascripts/ticker.js +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/legal/.meta.yml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/legal/ai-policy.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/legal/cookie-policy.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/legal/index.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/legal/information-security-policy.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/legal/privacy-policy.md +0 -0
- {crprotocol-5.0.0/AI Agent adoption → crprotocol-5.1.0/site-docs}/llms-full.txt +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/llms.txt +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/pricing.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/products/.meta.yml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/products/gateway.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/products/index.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/products/scan.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/products/scribe.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/products/visualise.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/protocol/.meta.yml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/protocol/ckf.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/protocol/conformance.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/protocol/continuation.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/protocol/core.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/protocol/dispatch-strategies.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/protocol/envelope.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/protocol/extraction.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/protocol/headers.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/protocol/meta-learning.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/protocol/multi-agent.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/protocol/provenance.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/protocol/quality-tiers.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/protocol/research.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/protocol/safety-policy.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/protocol/session-token.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/protocol/zero-ckf-mode.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/robots.txt +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/safety/.meta.yml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/safety/black-box.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/safety/coverage.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/safety/dpe.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/safety/index.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/safety/safety-policy.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/sdk/.meta.yml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/sdk/ai-safety.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/sdk/async.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/sdk/configuration.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/sdk/context-management.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/sdk/errors.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/.meta.yml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-001-core-protocol.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-002-headers.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-003-envelope.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-004-continuation.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-005-dpe.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-006-safety-policy.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-007-session-token.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-008-dispatch.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-009-ckf.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-010-regulatory-mapping.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-011-audit-trail.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-012-multi-agent-safety.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-013-github-action.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-014-conformance.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-015-security-privacy.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-016-gateway-service.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-017-zero-ckf-mode.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-018-air.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-019-cognitive-quality.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-020-cognitive-load-distribution.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-021-reasoning-orchestration.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-022-execution-fabric.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-023-amplification-boundary.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-024-coverage-differential-retrieval.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-025-graph-retrieval.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-026-semantic-quality-benchmark.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-027-retrieval-integrity.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-028-conversational-context.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-029-ephemeral-tool-context.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-030-cognitive-state-relay.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-031-semantic-task-layer.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-032-developer-experience.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-033-safety-control-plane.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-034-safety-coverage.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-035-context-lifecycle.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-036-scan-remediation.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-037-unified-config.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-038-storage-backends.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-039-semantic-code-ingestion.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-040-crp-comply.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-041-adoption-ecosystem.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-042-comply-upgrade-integration.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-043-gateway-runtime-product.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-044-authoritative-domain-agent.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-045-knowledge-learning.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-046-user-defined-cognition.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-047-monetisation-payments.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-048-comply-lowcode-github.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SPEC-HOSTING-CONTROL.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/CRP-SUBMISSION-GUIDE.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/spec/index.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/standards.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/stylesheets/extra.css +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/tags.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/terms-of-service.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/testing/.meta.yml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/testing/index.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/testing/reproduce.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/topics/.meta.yml +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/topics/ai-compliance.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/topics/ai-governance.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/topics/ai-safety.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/topics/context-management.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/topics/crp-vs-rag-mcp.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/topics/index.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/who-is-it-for.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/site-docs/why-crp.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/skills/visual-expert/SKILL.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/specification/01_RESEARCH_FOUNDATIONS.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/specification/02_CORE_PROTOCOL.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/specification/03_CONTEXT_ENVELOPE.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/specification/04_TOKEN_GENERATION_PROTOCOL.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/specification/05_SYSTEM_WIDE_INTEGRATION.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/specification/06_IMPLEMENTATION_PLAN.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/specification/07_SECURITY.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/specification/08_MONETIZATION.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/specification/09_DEPLOYMENT.md +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/sqb_results/v5_local_8b.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/conformance/__init__.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/conformance/levels.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/conformance/runner.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/conformance/test_conformance.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/conformance/vectors/agent.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/conformance/vectors/dpe.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/conformance/vectors/headers.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/conformance/vectors/hmac.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/conformance/vectors/safety_policy.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/conformance/vectors/session.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/conftest.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/killer_test/crp_killer_report.json +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/killer_test/crp_killer_report.txt +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/killer_test/crp_killer_test.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/killer_test/debug_gap.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/killer_test/debug_gap2.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_adaptive_allocator.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_adversarial_provenance.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_agentic.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_app_profile.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_app_profile_integration.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_audit.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_audit_integration.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_benchmarks.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_checkpoint_inbox.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_ckf_gate.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_compliance_security.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_compliance_wiring.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_comply_billing.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_comply_gateway_proxy.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_context_enforcer.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_context_source.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_crp_headers.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_crp_mcp.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_crp_mcp_backends.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_crp_mcp_billing.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_crp_mcp_checkpoint.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_crp_mcp_checkpoint_policy.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_crp_mcp_connectors.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_crp_mcp_coverage.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_crp_mcp_permissions.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_cso.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_decision_provenance.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_decision_provenance_engine.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_discovery_provider_bridge.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_entailment_risk.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_fidelity_verification.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_gaps_2_3.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_gateway.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_gateway_client.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_github_routes.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_governor_clarify.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_horizons.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_input_continuation.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_integration.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_ip_protection.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_live_comprehensive.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_live_full_capture.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_live_long_generation.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_live_verification.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_manifest_ledger.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_no_code.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_operation_state.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_phase1.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_phase2.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_phase3.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_phase4.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_phase5.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_phase6.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_phase7.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_phase8.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_phase9.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_production_hardening.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_relay_strategies.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_resource_manager.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_retrieval_integrity.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_safety_control_plane.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_scan_r3.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_scoring_robustness.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_scratch_buffer.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_sdk_dynamic.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_sdk_extra_namespaces.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_sdk_generated_reference.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_sdk_level0.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_sdk_level2.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_sdk_more_namespaces.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_sdk_namespaces.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_security_modules.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_session_token.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_signup.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_stl.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_tcf.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_tool_relay.py +0 -0
- {crprotocol-5.0.0 → crprotocol-5.1.0}/tests/test_unified_config.py +0 -0
|
Binary file
|
|
Binary file
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# CRP — Context Relay Protocol: Agent Integration Guide
|
|
2
2
|
|
|
3
3
|
> This file teaches an AI coding agent how to add AI governance, safety, and compliance
|
|
4
|
-
> to an application using
|
|
4
|
+
> to an application using CRPv5. If you are an AI agent helping a developer govern, secure,
|
|
5
5
|
> or make their LLM application audit-ready, this is your reference.
|
|
6
6
|
>
|
|
7
7
|
> For the short discovery file, see `https://crprotocol.io/llms.txt`.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# CRP — Context Relay Protocol: Agent Integration Guide
|
|
2
2
|
|
|
3
3
|
> This file teaches an AI coding agent how to add AI governance, safety, and compliance
|
|
4
|
-
> to an application using
|
|
4
|
+
> to an application using CRPv5. If you are an AI agent helping a developer govern, secure,
|
|
5
5
|
> or make their LLM application audit-ready, this is your reference.
|
|
6
6
|
>
|
|
7
7
|
> For the short discovery file, see `https://crprotocol.io/llms.txt`.
|
|
@@ -11,7 +11,87 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
|
11
11
|
|
|
12
12
|
## [Unreleased]
|
|
13
13
|
|
|
14
|
-
## [5.
|
|
14
|
+
## [5.1.0] - 2026-07-04
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
- **Context-overflow guard in the positioned loop (`crp/stl/positioned.py`).**
|
|
18
|
+
`provider_model_call` previously sent a fixed `max_tokens` with no check against
|
|
19
|
+
the connected provider's real context window, even though `count_tokens()` and
|
|
20
|
+
`context_window_size()` are mandatory on the `LLMProvider` ABC. Added
|
|
21
|
+
`guard_prompt_budget()` (exported via `crp.stl`): caps `max_tokens` and, only if
|
|
22
|
+
still necessary, trims the **oldest** prompt content (preserving the task/operation
|
|
23
|
+
frame) so input, tool-call frames, continuation windows, and accumulated
|
|
24
|
+
multi-turn CSO state can never overflow the model's actual window — local or
|
|
25
|
+
frontier. Verified end-to-end against a live 8196-token local model across a
|
|
26
|
+
6-turn multi-turn/tool-call/continuation stress scenario with zero overflow
|
|
27
|
+
errors (see `crp-comply/scripts/context_overflow_stress.py`).
|
|
28
|
+
- **Continuation anti-repetition** (`crp/stl/positioned.py`): the continuation loop
|
|
29
|
+
now feeds a `DocumentMap`-derived table of covered sections into each window's
|
|
30
|
+
prompt and applies an n-gram repetition guard (retry once, then stop) — reduces
|
|
31
|
+
4-gram repetition on Kimi to a 3.66% mean across the SQB test cases (was
|
|
32
|
+
15–30% under the naive continuation harness).
|
|
33
|
+
- **GitHub App: wrong installation-repos endpoint** (`crp/scan/github_app.py`).
|
|
34
|
+
`list_repos()` called `GET /installations/{installation_id}/repositories`,
|
|
35
|
+
which is not a real GitHub API route (always 404, regardless of a valid
|
|
36
|
+
installation ID/token). The correct endpoint is `GET /installation/repositories`
|
|
37
|
+
(singular, no ID in the path — the installation is implied entirely by the
|
|
38
|
+
installation access token used for auth). Also switched the auth header to
|
|
39
|
+
`Bearer` (matching `X-GitHub-Api-Version: 2022-11-28`) for consistency with
|
|
40
|
+
`installation_token()`. Added a URL-asserting regression test — the previous
|
|
41
|
+
test mocked `requests.get` without checking the actual URL, so it never
|
|
42
|
+
caught this.
|
|
43
|
+
- **`crp.scan.remediation.RemediationEngine.open_pr()` crashed in production**
|
|
44
|
+
whenever `crp.scan.github_app` was importable (i.e. always, once installed):
|
|
45
|
+
it called `GithubAppClient()` with no arguments, but the class requires
|
|
46
|
+
`app_id` + `private_key_pem`. Fixed to use the existing
|
|
47
|
+
`GithubAppClient.from_env()` factory, catching `RuntimeError` (env vars not
|
|
48
|
+
configured) alongside the existing `ImportError` (module not installed) —
|
|
49
|
+
both now return the same graceful fallback string instead of crashing.
|
|
50
|
+
- **`crp_mcp.auth.ClerkTokenVerifier` / `authenticate()` used non-existent
|
|
51
|
+
`AccessToken` fields.** The real `mcp.server.auth.provider.AccessToken`
|
|
52
|
+
pydantic model only has `token`/`client_id`/`scopes`/`expires_at`/`resource`
|
|
53
|
+
— no `subject` or `claims` field. Constructing it with those kwargs silently
|
|
54
|
+
dropped them, and `authenticate()` reading `access_token.claims` would raise
|
|
55
|
+
`AttributeError` in production whenever FastMCP's auth middleware path was
|
|
56
|
+
taken (not caught, not covered by any prior test). Fixed to store the
|
|
57
|
+
resolved user id in `client_id` and re-derive claims via
|
|
58
|
+
`_verify_token(access_token.token)` (the JWKS client is already cached).
|
|
59
|
+
Added a regression test exercising the FastMCP-context path directly.
|
|
60
|
+
- **`.github/workflows/ci.yml` never installed the `[mcp]` extras** (mcp,
|
|
61
|
+
pyyaml, httpx, `pyjwt[crypto]`, stripe, google-auth) — only `[dev]`. This
|
|
62
|
+
meant `crp_mcp`/comply/scan tests that depend on those packages could never
|
|
63
|
+
correctly run in CI. Changed to `pip install -e ".[full,mcp,dev]"`.
|
|
64
|
+
- **Windows GLiNER/PyTorch native crash (fatal access violation during
|
|
65
|
+
`GLiNER.from_pretrained()`).** Root-caused as a Windows OpenMP
|
|
66
|
+
duplicate-runtime conflict — numpy, scipy, scikit-learn, and torch each
|
|
67
|
+
bundle their own OpenMP DLL, and loading more than one in the same process
|
|
68
|
+
can crash natively when GLiNER's model weights are loaded. Not a CRP logic
|
|
69
|
+
bug, but genuinely fixable rather than merely a "disable stage 3"
|
|
70
|
+
workaround: `crp/__init__.py` now sets `KMP_DUPLICATE_LIB_OK=TRUE` and
|
|
71
|
+
`OMP_NUM_THREADS=1` (Windows-only, before any other CRP import, so it takes
|
|
72
|
+
effect before numpy/scipy/torch are first loaded), and
|
|
73
|
+
`crp/extraction/stage3_gliner.py` additionally caps `torch.set_num_threads(1)`
|
|
74
|
+
at the GLiNER model-load call site. Verified via a repeated fresh-load
|
|
75
|
+
stress test (15/15 clean runs) with zero effect on Linux/macOS.
|
|
76
|
+
- Several previously-failing tests were stale rather than indicating real
|
|
77
|
+
bugs, and have been corrected to match intentional prior refactors:
|
|
78
|
+
`test_gap_fixes_live.py` (7 tests) checked `CRPOrchestrator.dispatch`
|
|
79
|
+
directly via `inspect.getsource()`, but `dispatch()` is now a thin
|
|
80
|
+
thread-safety wrapper around `_dispatch_locked()` (added for reentrant
|
|
81
|
+
locking) — updated to inspect `_dispatch_locked`; two more assumed eager
|
|
82
|
+
embedding-model loading, which is intentionally lazy by default
|
|
83
|
+
(`eager_load_models`) — updated to opt in explicitly.
|
|
84
|
+
`test_comply_quota_gate.py` (2 tests) hardcoded a stale `"2026-06"` billing
|
|
85
|
+
period key that no longer matches `period_key()`'s real current-month
|
|
86
|
+
output — updated to call `period_key()`. `test_orchestrator_perf.py`'s
|
|
87
|
+
Ollama-probe-timeout test assumed no local Ollama instance is ever running —
|
|
88
|
+
now mocks `urllib.request.urlopen` so it is deterministic regardless of the
|
|
89
|
+
host machine. `test_sdk_generated_reference.py` (2 tests) failed because
|
|
90
|
+
`site-docs/api/modules/` was out of sync with the current module list
|
|
91
|
+
(`crp.tools` was added without regenerating docs) — regenerated via
|
|
92
|
+
`scripts/generate_api_reference.py`.
|
|
93
|
+
|
|
94
|
+
|
|
15
95
|
|
|
16
96
|
CRP v5 turns the protocol from an inference-governance layer into a full
|
|
17
97
|
**agentic execution** layer for small/local language models. The doctrine is
|
|
@@ -5,7 +5,10 @@
|
|
|
5
5
|
**Target:** CRP v4.0.0
|
|
6
6
|
**PyPI publish token (use only after v4.0.0 fully passes SQB gate):**
|
|
7
7
|
```
|
|
8
|
-
|
|
8
|
+
[REDACTED 2026-07-02 -- this token was committed in plaintext and has been
|
|
9
|
+
removed. Treat it as compromised; rotate on PyPI if not already rotated.
|
|
10
|
+
NEVER commit publish tokens to the repository -- pass via TWINE_PASSWORD
|
|
11
|
+
env var or an untracked local file instead.]
|
|
9
12
|
```
|
|
10
13
|
|
|
11
14
|
---
|
|
@@ -169,7 +172,7 @@ git push origin v4.0.0
|
|
|
169
172
|
|
|
170
173
|
#### 2e. PyPI publish
|
|
171
174
|
```cmd
|
|
172
|
-
.venv\Scripts\python.exe -m twine upload dist/crprotocol-4.0.0-*.whl --username __token__ --password
|
|
175
|
+
.venv\Scripts\python.exe -m twine upload dist/crprotocol-4.0.0-*.whl --username __token__ --password %PYPI_TOKEN%
|
|
173
176
|
```
|
|
174
177
|
|
|
175
178
|
### PYTEST NOTE (for B4.1)
|
|
@@ -1385,7 +1388,7 @@ Document all v4.0.0 changes:
|
|
|
1385
1388
|
pip install twine
|
|
1386
1389
|
python -m twine upload dist/crprotocol-4.0.0-*.whl \
|
|
1387
1390
|
--username __token__ \
|
|
1388
|
-
--password
|
|
1391
|
+
--password "$PYPI_TOKEN"
|
|
1389
1392
|
```
|
|
1390
1393
|
|
|
1391
1394
|
#### B4.4 — GitHub Push
|
|
@@ -49,8 +49,8 @@ Legend: ☐ not started · ◐ in progress · ☑ done
|
|
|
49
49
|
| **4** | **Make STL live** — real positioned loop (`run_positioned`); preventive-safety gate; INTEGRATE→CSO; structured-decoding contract at the `model_call` boundary | `crp/stl/positioned.py` | ☑ **done** — live loop + 8B validation; full 13-stage DPE verify is a follow-up |
|
|
50
50
|
| **5** | **Observation Store + Resource Governor + Visibility event stream** | `crp/state/`, `crp/observability/`, `crp/resources/` | ☑ **done** — `ResourceGovernor` (slow-and-steady, device-tier capping); observations→CSO; OSM event stream |
|
|
51
51
|
| **6** | **CLARIFY + Checkpoint consolidation** — make checkpoints faultless, test them, wire CLARIFY | `crp/security/clarify.py`, `crp/security/checkpoint.py` | ☑ **done** — sync `clarify` bridge (Invariant 10 fallback); CLARIFY op + oversight approval wired; async `Checkpoint` retained for webhooks |
|
|
52
|
-
| **7** | **Expose** — `client.dispatch_positioned()` / execution-mode `positioned-tool-loop`; preventive safety gate; SDK + Gateway wiring | `crp/sdk/client.py`, `crp/core/orchestrator.py`, `crp-gateway/` |
|
|
53
|
-
| **8** | **Version bump 5.0.0**, promote SPEC-049/050 from draft, conformance, CHANGELOG | `crp/_version.py`, specs, `CHANGELOG.md` |
|
|
52
|
+
| **7** | **Expose** — `client.dispatch_positioned()` / execution-mode `positioned-tool-loop`; preventive safety gate; SDK + Gateway wiring | `crp/sdk/client.py`, `crp/core/orchestrator.py`, `crp-gateway/` | ☑ **done** — `dispatch_positioned()` wired; `CRP-Agent-*` headers; validated live on 8B (191-token bounded window). Gateway-product wiring tracked separately in the `crp-gateway` repo |
|
|
53
|
+
| **8** | **Version bump 5.0.0**, promote SPEC-049/050 from draft, conformance, CHANGELOG | `crp/_version.py`, specs, `CHANGELOG.md` | ☑ **done** — 5.0.0 shipped to PyPI; SPEC-049/050 → Stable; CHANGELOG written; tagged `v5.0.0` |
|
|
54
54
|
|
|
55
55
|
---
|
|
56
56
|
|
|
@@ -161,5 +161,40 @@ CRP makes **two distinct guarantees**, and it is important not to conflate them:
|
|
|
161
161
|
|
|
162
162
|
---
|
|
163
163
|
|
|
164
|
-
|
|
165
|
-
|
|
164
|
+
## 9. Realised state audit (2026-07-01) — the honest answer
|
|
165
|
+
|
|
166
|
+
> **What is really the state of CRPv5?** The positioned agentic loop is **real and
|
|
167
|
+
> working for single- and multi-turn requests**, proven end-to-end on Kimi (frontier)
|
|
168
|
+
> and the local 8B. It is **not yet** wired to the v4 deep-context/continuation
|
|
169
|
+
> subsystems. Below is the audited truth.
|
|
170
|
+
|
|
171
|
+
### Working (verified end-to-end, local 8B + Kimi + logic)
|
|
172
|
+
| Use case | Status | Evidence |
|
|
173
|
+
|----------|--------|----------|
|
|
174
|
+
| Tool-call agentic execution | ✅ working | `run_positioned` + TCF + executor; e2e local 3/3, Kimi 3/3 |
|
|
175
|
+
| Context positioning (in-turn) | ✅ working | CSO `to_prompt_context` carries facts across operations; e2e PASS |
|
|
176
|
+
| **Multi-turn state relay** | ✅ **NEW, working** | `prior_cso` param seeds established_facts/observations/decisions; window advances; e2e Kimi PASS + regression test `test_multi_turn_state_relay` |
|
|
177
|
+
| CLARIFY / human-in-the-loop | ✅ working | `resolve_clarification`; e2e PASS |
|
|
178
|
+
| Preventive oversight halt | ✅ working | `_preventive_check` + oversight set; e2e PASS |
|
|
179
|
+
| Resource-governed profile | ✅ working | `ResourceGovernor.plan`; e2e PASS |
|
|
180
|
+
| Bounded working set | ✅ working | 68 tok across 5 relayed turns; ≤206 tok on real tasks |
|
|
181
|
+
|
|
182
|
+
### Honest gaps (NOT yet wired into the positioned loop)
|
|
183
|
+
| Gap | Impact | Where it lives |
|
|
184
|
+
|-----|--------|----------------|
|
|
185
|
+
| Output continuation (one operation exceeding the token wall) | Long single-operation generations truncate; mitigated because work is split into operations and turns | `crp/continuation/` exists, not called from `positioned.py` |
|
|
186
|
+
| CDR/CDGR auto-retrieval | `context_facts` is passed in manually, not retrieved by novelty/graph walk | `crp/envelope/cdr.py`, `crp/ckf/cdgr.py` exist, not imported |
|
|
187
|
+
| Multi-horizon context / scratch buffer | Frame builder uses a flat fact list, no PERSISTENT/CONVERSATIONAL/EPHEMERAL blend | `crp/state/horizons.py`, `scratch_buffer.py` exist, not imported |
|
|
188
|
+
| DPE verification in the loop | No credibility/entailment gate on each operation's output | `crp/provenance/` exists, not imported |
|
|
189
|
+
|
|
190
|
+
### Verdict
|
|
191
|
+
The loop is a **real agentic executor with proven multi-turn continuity and bounded
|
|
192
|
+
windows**. The remaining gaps are *depth* enhancements (auto-retrieval, output
|
|
193
|
+
continuation, DPE gating) — valuable next, but the core "positioning + multi-turn +
|
|
194
|
+
context carry-forward" is done and tested. Test harnesses: `examples/crp_demos/e2e_v5_test.py`
|
|
195
|
+
(every use case, local+Kimi+logic) and `examples/crp_demos/positioned_benchmark.py`.
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
*Tracking report generated 2026-06-30; realised-state audit added 2026-07-01.*
|
|
200
|
+
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: crprotocol
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.1.0
|
|
4
4
|
Summary: Context Relay Protocol — unbounded context, unbounded generation, amplified reasoning for LLMs
|
|
5
5
|
Project-URL: Homepage, https://crprotocol.io
|
|
6
6
|
Project-URL: Documentation, https://crprotocol.io
|
|
@@ -89,13 +89,13 @@ Description-Content-Type: text/markdown
|
|
|
89
89
|
<p align="center">
|
|
90
90
|
<a href="LICENSE.md"><img src="https://img.shields.io/badge/Spec-CC_BY--SA_4.0-blue.svg" alt="Spec: CC BY-SA 4.0"></a>
|
|
91
91
|
<a href="LICENSE.md"><img src="https://img.shields.io/badge/Code-ELv2-orange.svg" alt="Code: Elastic License 2.0"></a>
|
|
92
|
-
<img src="https://img.shields.io/badge/Spec_Version-
|
|
92
|
+
<img src="https://img.shields.io/badge/Spec_Version-5.1.0-brightgreen.svg" alt="Spec Version: 5.1.0">
|
|
93
93
|
<img src="https://img.shields.io/badge/RFC_2119-Conformant-orange.svg" alt="RFC 2119">
|
|
94
94
|
<img src="https://img.shields.io/badge/Language_Neutral-JSON_Schema-yellow.svg" alt="Language Neutral">
|
|
95
|
-
<img src="https://img.shields.io/badge/Status-
|
|
95
|
+
<img src="https://img.shields.io/badge/Status-v5.1.0_Stable-brightgreen.svg" alt="Status: v5.1.0 Stable">
|
|
96
96
|
<a href="https://github.com/AutoCyber-AI/context-relay-protocol/actions"><img src="https://img.shields.io/github/actions/workflow/status/AutoCyber-AI/context-relay-protocol/ci.yml?label=CI" alt="CI"></a>
|
|
97
97
|
<img src="https://img.shields.io/badge/python-3.10%2B-blue.svg" alt="Python 3.10+">
|
|
98
|
-
<img src="https://img.shields.io/badge/tests-
|
|
98
|
+
<img src="https://img.shields.io/badge/tests-2%2C796-brightgreen.svg" alt="2,796 tests">
|
|
99
99
|
</p>
|
|
100
100
|
|
|
101
101
|
<p align="center">
|
|
@@ -1136,7 +1136,7 @@ Full error taxonomy with all codes in [§6.10.4](specification/02_CORE_PROTOCOL.
|
|
|
1136
1136
|
|
|
1137
1137
|
| Language | Status | Package | Repository |
|
|
1138
1138
|
|----------|--------|---------|------------|
|
|
1139
|
-
| **Python** | ✅
|
|
1139
|
+
| **Python** | ✅ v5.1.0 | `pip install crprotocol` | This repository |
|
|
1140
1140
|
| **TypeScript** | 📋 Planned | `npm install @crp/sdk` | `crp-typescript` |
|
|
1141
1141
|
| **Rust** | 📋 Planned | `cargo add crp` | `crp-rust` |
|
|
1142
1142
|
|
|
@@ -1270,11 +1270,13 @@ All configuration is optional. CRP works with zero configuration if you pass you
|
|
|
1270
1270
|
## Roadmap
|
|
1271
1271
|
|
|
1272
1272
|
### Phase 1: Open Specification ✅
|
|
1273
|
-
### Phase
|
|
1273
|
+
### Phase 5: v5.1 Agentic Execution ← **We are here**
|
|
1274
1274
|
- [x] Publish CRP v2.0 specification (9 documents, ~19,200 lines)
|
|
1275
1275
|
- [x] JSON Schema definitions for all API types
|
|
1276
|
-
- [
|
|
1277
|
-
- [
|
|
1276
|
+
- [x] Reference SDK: Python (`pip install crprotocol`)
|
|
1277
|
+
- [x] Positioned agentic loop + Tool Capability Fabric (SPEC-049/050)
|
|
1278
|
+
- [x] Multi-turn CSO relay and continuation anti-repetition
|
|
1279
|
+
- [ ] Benchmark results published to BENCHMARKS.md
|
|
1278
1280
|
- [ ] arXiv technical report with empirical evaluation
|
|
1279
1281
|
|
|
1280
1282
|
### Phase 2: Ecosystem
|
|
@@ -1398,7 +1400,7 @@ See [LICENSE.md](LICENSE.md) for the full license text.
|
|
|
1398
1400
|
---
|
|
1399
1401
|
|
|
1400
1402
|
<p align="center">
|
|
1401
|
-
<strong>Context Relay Protocol
|
|
1403
|
+
<strong>Context Relay Protocol v5.1.0</strong><br>
|
|
1402
1404
|
Zero configuration. Unbounded input. Unbounded output. Amplified reasoning.<br>
|
|
1403
1405
|
Better context at every scale. Honest degradation. Quality-tiered.<br>
|
|
1404
1406
|
Peak quality. Every window.
|
|
@@ -58,11 +58,13 @@ In the Railway project → click your service → **Variables** tab → **"New V
|
|
|
58
58
|
```
|
|
59
59
|
# ── Clerk ────────────────────────────────────────────────────────
|
|
60
60
|
CLERK_ISSUER=https://clerk.scribe.crprotocol.io
|
|
61
|
-
CLERK_SECRET_KEY=
|
|
61
|
+
CLERK_SECRET_KEY=sk_live_...
|
|
62
62
|
|
|
63
|
-
# ── Stripe
|
|
63
|
+
# ── Stripe ──────────────────────────────────────────────────────────
|
|
64
|
+
# NEVER commit real values here. Pull from your local .env / secrets manager
|
|
65
|
+
# and paste directly into Railway's Variables UI -- never into this file.
|
|
64
66
|
STRIPE_SECRET_KEY=<value from your .env file>
|
|
65
|
-
STRIPE_WEBHOOK_SECRET=
|
|
67
|
+
STRIPE_WEBHOOK_SECRET=whsec_...
|
|
66
68
|
STRIPE_SCRIBE_PRO_PRICE_ID=price_1TMSB5GRBK524I7zhmUgLmfm
|
|
67
69
|
STRIPE_SCRIBE_ENTERPRISE_PRICE_ID=price_1TMSB5GRBK524I7zCIU71YN6
|
|
68
70
|
|
|
@@ -92,11 +94,11 @@ VITE_CLERK_PUBLISHABLE_KEY=pk_live_<get-from-clerk-dashboard>
|
|
|
92
94
|
```
|
|
93
95
|
# ── Clerk ────────────────────────────────────────────────────────
|
|
94
96
|
CLERK_ISSUER=https://clerk.comply.crprotocol.io
|
|
95
|
-
CLERK_SECRET_KEY=
|
|
97
|
+
CLERK_SECRET_KEY=sk_live_...
|
|
96
98
|
|
|
97
|
-
# ── Stripe
|
|
99
|
+
# ── Stripe ──────────────────────────────────────────────────────────
|
|
98
100
|
STRIPE_SECRET_KEY=<value from your .env file>
|
|
99
|
-
STRIPE_WEBHOOK_SECRET=
|
|
101
|
+
STRIPE_WEBHOOK_SECRET=whsec_...
|
|
100
102
|
STRIPE_COMPLY_PRO_PRICE_ID=price_1TMSGAGRBK524I7zvSYEwg9S
|
|
101
103
|
STRIPE_COMPLY_ENTERPRISE_PRICE_ID=price_1TMSGAGRBK524I7z9ebppShK
|
|
102
104
|
STRIPE_COMPLY_CLOUD_PRICE_ID=price_1TMSGAGRBK524I7zaSuQMMzb
|
|
@@ -20,12 +20,12 @@ Paste these directly into Railway → Service → Variables → **Raw Editor**.
|
|
|
20
20
|
|
|
21
21
|
```
|
|
22
22
|
CLERK_ISSUER=https://clerk.scribe.crprotocol.io
|
|
23
|
-
CLERK_SECRET_KEY=
|
|
24
|
-
STRIPE_SECRET_KEY=
|
|
25
|
-
STRIPE_WEBHOOK_SECRET=
|
|
23
|
+
CLERK_SECRET_KEY=sk_live_...
|
|
24
|
+
STRIPE_SECRET_KEY=sk_live_...
|
|
25
|
+
STRIPE_WEBHOOK_SECRET=whsec_...
|
|
26
26
|
STRIPE_SCRIBE_PRO_PRICE_ID=price_1TMSB5GRBK524I7zhmUgLmfm
|
|
27
27
|
STRIPE_SCRIBE_ENTERPRISE_PRICE_ID=price_1TMSB5GRBK524I7zCIU71YN6
|
|
28
|
-
CRP_SCRIBE_JWT_SECRET
|
|
28
|
+
CRP_SCRIBE_JWT_SECRET=<generate-your-own-random-secret>
|
|
29
29
|
CRP_SCRIBE_DATA_DIR=/app/data
|
|
30
30
|
CRP_SCRIBE_FRONTEND_DIR=/app/frontend/dist
|
|
31
31
|
CRP_SCRIBE_BASE_URL=https://scribe.crprotocol.io
|
|
@@ -33,18 +33,23 @@ CRP_SCRIBE_CORS_ORIGINS=https://scribe.crprotocol.io
|
|
|
33
33
|
PYTHONUNBUFFERED=1
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
+
> **NEVER commit real secret values to this file.** Pull the actual values from
|
|
37
|
+
> your local `.env` / secrets manager and paste them directly into Railway's
|
|
38
|
+
> Variables UI -- never into a git-tracked file. This file documents variable
|
|
39
|
+
> *names* and *shape* only.
|
|
40
|
+
|
|
36
41
|
### All Scribe Variables at a Glance
|
|
37
42
|
|
|
38
43
|
| Variable | Value | Build-time? |
|
|
39
44
|
|---|---|---|
|
|
40
45
|
| `VITE_CLERK_PUBLISHABLE_KEY` | `pk_live_Y2xlcmsuc2NyaWJlLmNycHJvdG9jb2wuaW8k` | **YES — toggle ON** |
|
|
41
46
|
| `CLERK_ISSUER` | `https://clerk.scribe.crprotocol.io` | No |
|
|
42
|
-
| `CLERK_SECRET_KEY` | `
|
|
43
|
-
| `STRIPE_SECRET_KEY` |
|
|
44
|
-
| `STRIPE_WEBHOOK_SECRET` | `
|
|
47
|
+
| `CLERK_SECRET_KEY` | `sk_live_...` (see Clerk dashboard) | No |
|
|
48
|
+
| `STRIPE_SECRET_KEY` | `sk_live_...` (see Stripe dashboard) | No |
|
|
49
|
+
| `STRIPE_WEBHOOK_SECRET` | `whsec_...` (see Stripe webhook config) | No |
|
|
45
50
|
| `STRIPE_SCRIBE_PRO_PRICE_ID` | `price_1TMSB5GRBK524I7zhmUgLmfm` | No |
|
|
46
51
|
| `STRIPE_SCRIBE_ENTERPRISE_PRICE_ID` | `price_1TMSB5GRBK524I7zCIU71YN6` | No |
|
|
47
|
-
| `CRP_SCRIBE_JWT_SECRET` |
|
|
52
|
+
| `CRP_SCRIBE_JWT_SECRET` | `<generate-your-own-random-secret>` | No |
|
|
48
53
|
| `CRP_SCRIBE_DATA_DIR` | `/app/data` | No |
|
|
49
54
|
| `CRP_SCRIBE_FRONTEND_DIR` | `/app/frontend/dist` | No |
|
|
50
55
|
| `CRP_SCRIBE_BASE_URL` | `https://scribe.crprotocol.io` | No |
|
|
@@ -65,13 +70,13 @@ PYTHONUNBUFFERED=1
|
|
|
65
70
|
|
|
66
71
|
```
|
|
67
72
|
CLERK_ISSUER=https://clerk.comply.crprotocol.io
|
|
68
|
-
CLERK_SECRET_KEY=
|
|
69
|
-
STRIPE_SECRET_KEY=
|
|
70
|
-
STRIPE_WEBHOOK_SECRET=
|
|
73
|
+
CLERK_SECRET_KEY=sk_live_...
|
|
74
|
+
STRIPE_SECRET_KEY=sk_live_...
|
|
75
|
+
STRIPE_WEBHOOK_SECRET=whsec_...
|
|
71
76
|
STRIPE_COMPLY_PRO_PRICE_ID=price_1TMSGAGRBK524I7zvSYEwg9S
|
|
72
77
|
STRIPE_COMPLY_ENTERPRISE_PRICE_ID=price_1TMSGAGRBK524I7z9ebppShK
|
|
73
78
|
STRIPE_COMPLY_CLOUD_PRICE_ID=price_1TMSGAGRBK524I7zaSuQMMzb
|
|
74
|
-
CRP_COMPLY_JWT_SECRET
|
|
79
|
+
CRP_COMPLY_JWT_SECRET=<generate-your-own-random-secret>
|
|
75
80
|
CRP_COMPLY_DATA_DIR=/app/data
|
|
76
81
|
CRP_COMPLY_FRONTEND_DIR=/app/frontend/dist
|
|
77
82
|
CRP_COMPLY_BASE_URL=https://comply.crprotocol.io
|
|
@@ -79,7 +84,10 @@ CRP_COMPLY_CORS_ORIGINS=https://comply.crprotocol.io
|
|
|
79
84
|
PYTHONUNBUFFERED=1
|
|
80
85
|
```
|
|
81
86
|
|
|
82
|
-
>
|
|
87
|
+
> **NEVER commit real secret values to this file.** Pull the actual values from
|
|
88
|
+
> your local `.env` / secrets manager and paste them directly into Railway's
|
|
89
|
+
> Variables UI -- never into a git-tracked file. This file documents variable
|
|
90
|
+
> *names* and *shape* only.
|
|
83
91
|
|
|
84
92
|
### All Comply Variables at a Glance
|
|
85
93
|
|
|
@@ -87,13 +95,13 @@ PYTHONUNBUFFERED=1
|
|
|
87
95
|
|---|---|---|
|
|
88
96
|
| `VITE_CLERK_PUBLISHABLE_KEY` | `pk_live_Y2xlcmsuY29tcGx5LmNycHJvdG9jb2wuaW8k` | **YES — toggle ON** |
|
|
89
97
|
| `CLERK_ISSUER` | `https://clerk.comply.crprotocol.io` | No |
|
|
90
|
-
| `CLERK_SECRET_KEY` | `
|
|
91
|
-
| `STRIPE_SECRET_KEY` |
|
|
92
|
-
| `STRIPE_WEBHOOK_SECRET` | `
|
|
98
|
+
| `CLERK_SECRET_KEY` | `sk_live_...` (see Clerk dashboard) | No |
|
|
99
|
+
| `STRIPE_SECRET_KEY` | `sk_live_...` (see Stripe dashboard) | No |
|
|
100
|
+
| `STRIPE_WEBHOOK_SECRET` | `whsec_...` (see Stripe webhook config) | No |
|
|
93
101
|
| `STRIPE_COMPLY_PRO_PRICE_ID` | `price_1TMSGAGRBK524I7zvSYEwg9S` | No |
|
|
94
102
|
| `STRIPE_COMPLY_ENTERPRISE_PRICE_ID` | `price_1TMSGAGRBK524I7z9ebppShK` | No |
|
|
95
103
|
| `STRIPE_COMPLY_CLOUD_PRICE_ID` | `price_1TMSGAGRBK524I7zaSuQMMzb` | No |
|
|
96
|
-
| `CRP_COMPLY_JWT_SECRET` |
|
|
104
|
+
| `CRP_COMPLY_JWT_SECRET` | `<generate-your-own-random-secret>` | No |
|
|
97
105
|
| `CRP_COMPLY_DATA_DIR` | `/app/data` | No |
|
|
98
106
|
| `CRP_COMPLY_FRONTEND_DIR` | `/app/frontend/dist` | No |
|
|
99
107
|
| `CRP_COMPLY_BASE_URL` | `https://comply.crprotocol.io` | No |
|
|
@@ -16,13 +16,13 @@
|
|
|
16
16
|
<p align="center">
|
|
17
17
|
<a href="LICENSE.md"><img src="https://img.shields.io/badge/Spec-CC_BY--SA_4.0-blue.svg" alt="Spec: CC BY-SA 4.0"></a>
|
|
18
18
|
<a href="LICENSE.md"><img src="https://img.shields.io/badge/Code-ELv2-orange.svg" alt="Code: Elastic License 2.0"></a>
|
|
19
|
-
<img src="https://img.shields.io/badge/Spec_Version-
|
|
19
|
+
<img src="https://img.shields.io/badge/Spec_Version-5.1.0-brightgreen.svg" alt="Spec Version: 5.1.0">
|
|
20
20
|
<img src="https://img.shields.io/badge/RFC_2119-Conformant-orange.svg" alt="RFC 2119">
|
|
21
21
|
<img src="https://img.shields.io/badge/Language_Neutral-JSON_Schema-yellow.svg" alt="Language Neutral">
|
|
22
|
-
<img src="https://img.shields.io/badge/Status-
|
|
22
|
+
<img src="https://img.shields.io/badge/Status-v5.1.0_Stable-brightgreen.svg" alt="Status: v5.1.0 Stable">
|
|
23
23
|
<a href="https://github.com/AutoCyber-AI/context-relay-protocol/actions"><img src="https://img.shields.io/github/actions/workflow/status/AutoCyber-AI/context-relay-protocol/ci.yml?label=CI" alt="CI"></a>
|
|
24
24
|
<img src="https://img.shields.io/badge/python-3.10%2B-blue.svg" alt="Python 3.10+">
|
|
25
|
-
<img src="https://img.shields.io/badge/tests-
|
|
25
|
+
<img src="https://img.shields.io/badge/tests-2%2C796-brightgreen.svg" alt="2,796 tests">
|
|
26
26
|
</p>
|
|
27
27
|
|
|
28
28
|
<p align="center">
|
|
@@ -1063,7 +1063,7 @@ Full error taxonomy with all codes in [§6.10.4](specification/02_CORE_PROTOCOL.
|
|
|
1063
1063
|
|
|
1064
1064
|
| Language | Status | Package | Repository |
|
|
1065
1065
|
|----------|--------|---------|------------|
|
|
1066
|
-
| **Python** | ✅
|
|
1066
|
+
| **Python** | ✅ v5.1.0 | `pip install crprotocol` | This repository |
|
|
1067
1067
|
| **TypeScript** | 📋 Planned | `npm install @crp/sdk` | `crp-typescript` |
|
|
1068
1068
|
| **Rust** | 📋 Planned | `cargo add crp` | `crp-rust` |
|
|
1069
1069
|
|
|
@@ -1197,11 +1197,13 @@ All configuration is optional. CRP works with zero configuration if you pass you
|
|
|
1197
1197
|
## Roadmap
|
|
1198
1198
|
|
|
1199
1199
|
### Phase 1: Open Specification ✅
|
|
1200
|
-
### Phase
|
|
1200
|
+
### Phase 5: v5.1 Agentic Execution ← **We are here**
|
|
1201
1201
|
- [x] Publish CRP v2.0 specification (9 documents, ~19,200 lines)
|
|
1202
1202
|
- [x] JSON Schema definitions for all API types
|
|
1203
|
-
- [
|
|
1204
|
-
- [
|
|
1203
|
+
- [x] Reference SDK: Python (`pip install crprotocol`)
|
|
1204
|
+
- [x] Positioned agentic loop + Tool Capability Fabric (SPEC-049/050)
|
|
1205
|
+
- [x] Multi-turn CSO relay and continuation anti-repetition
|
|
1206
|
+
- [ ] Benchmark results published to BENCHMARKS.md
|
|
1205
1207
|
- [ ] arXiv technical report with empirical evaluation
|
|
1206
1208
|
|
|
1207
1209
|
### Phase 2: Ecosystem
|
|
@@ -1325,7 +1327,7 @@ See [LICENSE.md](LICENSE.md) for the full license text.
|
|
|
1325
1327
|
---
|
|
1326
1328
|
|
|
1327
1329
|
<p align="center">
|
|
1328
|
-
<strong>Context Relay Protocol
|
|
1330
|
+
<strong>Context Relay Protocol v5.1.0</strong><br>
|
|
1329
1331
|
Zero configuration. Unbounded input. Unbounded output. Amplified reasoning.<br>
|
|
1330
1332
|
Better context at every scale. Honest degradation. Quality-tiered.<br>
|
|
1331
1333
|
Peak quality. Every window.
|
|
@@ -16,6 +16,23 @@ Usage::
|
|
|
16
16
|
|
|
17
17
|
from __future__ import annotations
|
|
18
18
|
|
|
19
|
+
import os
|
|
20
|
+
import sys
|
|
21
|
+
|
|
22
|
+
# ── Windows OpenMP duplicate-runtime crash mitigation ────────────────────
|
|
23
|
+
# On Windows, numpy/scipy/scikit-learn/torch each bundle their own OpenMP
|
|
24
|
+
# runtime DLL. When several of them coexist in one process (as they do once
|
|
25
|
+
# the optional [nlp]/[full] extras — sentence-transformers, GLiNER, torch —
|
|
26
|
+
# are installed alongside numpy/scipy/scikit-learn), loading more than one
|
|
27
|
+
# OpenMP runtime can trigger a native access violation (observed as a fatal
|
|
28
|
+
# crash inside `torch`'s C extension during model loading, e.g.
|
|
29
|
+
# `GLiNER.from_pretrained(...)`). This must be set BEFORE numpy/scipy/torch
|
|
30
|
+
# are first imported anywhere in the process, so it lives at the very top of
|
|
31
|
+
# this package's __init__, ahead of every other CRP import.
|
|
32
|
+
if sys.platform == "win32":
|
|
33
|
+
os.environ.setdefault("KMP_DUPLICATE_LIB_OK", "TRUE")
|
|
34
|
+
os.environ.setdefault("OMP_NUM_THREADS", "1")
|
|
35
|
+
|
|
19
36
|
from crp._version import __version__
|
|
20
37
|
from crp.config import CRPConfig
|
|
21
38
|
from crp.core.config import ConfigurationResolver
|
|
@@ -129,6 +129,21 @@ class GLiNERExtractor:
|
|
|
129
129
|
return None
|
|
130
130
|
|
|
131
131
|
try:
|
|
132
|
+
import sys
|
|
133
|
+
|
|
134
|
+
if sys.platform == "win32":
|
|
135
|
+
# Extra hardening beyond the process-level env vars set in
|
|
136
|
+
# crp/__init__.py: also cap torch's own intra-op thread pool.
|
|
137
|
+
# Prevents a Windows-only native access violation caused by
|
|
138
|
+
# multiple OpenMP runtimes (numpy/scipy/sklearn/torch) racing
|
|
139
|
+
# during model weight loading — see crp/__init__.py comment.
|
|
140
|
+
try:
|
|
141
|
+
import torch # type: ignore[import-untyped]
|
|
142
|
+
|
|
143
|
+
torch.set_num_threads(1)
|
|
144
|
+
except Exception:
|
|
145
|
+
pass
|
|
146
|
+
|
|
132
147
|
from gliner import GLiNER # type: ignore[import-untyped]
|
|
133
148
|
|
|
134
149
|
self._model = GLiNER.from_pretrained("urchade/gliner_base") # type: ignore[assignment]
|
|
@@ -124,12 +124,20 @@ class GithubAppClient:
|
|
|
124
124
|
# ------------------------------------------------------------------
|
|
125
125
|
|
|
126
126
|
def list_repos(self, installation_id: str | int) -> list[dict[str, Any]]:
|
|
127
|
-
"""List repositories accessible to this installation.
|
|
127
|
+
"""List repositories accessible to this installation.
|
|
128
|
+
|
|
129
|
+
GitHub's endpoint for this is ``GET /installation/repositories``
|
|
130
|
+
(singular ``installation``, no ID in the path) -- the installation
|
|
131
|
+
is implied entirely by the installation access token used for auth.
|
|
132
|
+
There is no ``/installations/{id}/repositories`` route; using it
|
|
133
|
+
returns a 404 regardless of a valid installation_id/token.
|
|
134
|
+
"""
|
|
128
135
|
token = self.installation_token(installation_id)
|
|
129
|
-
url = f"{_GITHUB_API_BASE}/
|
|
136
|
+
url = f"{_GITHUB_API_BASE}/installation/repositories"
|
|
130
137
|
headers = {
|
|
131
|
-
"Authorization": f"
|
|
138
|
+
"Authorization": f"Bearer {token}",
|
|
132
139
|
"Accept": "application/vnd.github+json",
|
|
140
|
+
"X-GitHub-Api-Version": "2022-11-28",
|
|
133
141
|
}
|
|
134
142
|
repos: list[dict[str, Any]] = []
|
|
135
143
|
while url:
|
|
@@ -263,7 +263,14 @@ class RemediationEngine:
|
|
|
263
263
|
# NEVER commit to base_branch directly — use the PR branch from the proposal
|
|
264
264
|
pr_branch = proposal.pr_branch
|
|
265
265
|
|
|
266
|
-
|
|
266
|
+
try:
|
|
267
|
+
github = GithubAppClient.from_env()
|
|
268
|
+
except RuntimeError:
|
|
269
|
+
return (
|
|
270
|
+
f"[GitHub App not configured — set GITHUB_APP_ID + "
|
|
271
|
+
f"GITHUB_APP_PRIVATE_KEY (or GITHUB_APP_PRIVATE_KEY_PATH). "
|
|
272
|
+
f"Proposed branch: {proposal.pr_branch}]"
|
|
273
|
+
)
|
|
267
274
|
token = github.installation_token(installation_id)
|
|
268
275
|
# Split owner/repo from the repo full name
|
|
269
276
|
owner_name, repo_name = repo.split("/", 1) if "/" in repo else ("", repo)
|