crprotocol 4.3.0__tar.gz → 4.3.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (978) hide show
  1. {crprotocol-4.3.0 → crprotocol-4.3.1}/CHANGELOG.md +20 -0
  2. {crprotocol-4.3.0 → crprotocol-4.3.1}/PKG-INFO +1 -1
  3. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/__init__.py +6 -0
  4. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/_version.py +1 -1
  5. crprotocol-4.3.1/crp/core/app_profile.py +295 -0
  6. crprotocol-4.3.1/crp/integrations/app_discovery.py +194 -0
  7. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/providers/discovery.py +523 -486
  8. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/providers/llamacpp.py +399 -231
  9. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/providers/ollama.py +375 -250
  10. crprotocol-4.3.1/tests/test_app_profile.py +100 -0
  11. crprotocol-4.3.1/tests/test_discovery_provider_bridge.py +56 -0
  12. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_tool_relay.py +91 -0
  13. {crprotocol-4.3.0 → crprotocol-4.3.1}/.dockerignore +0 -0
  14. {crprotocol-4.3.0 → crprotocol-4.3.1}/.github/CODEOWNERS +0 -0
  15. {crprotocol-4.3.0 → crprotocol-4.3.1}/.github/FUNDING.yml +0 -0
  16. {crprotocol-4.3.0 → crprotocol-4.3.1}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  17. {crprotocol-4.3.0 → crprotocol-4.3.1}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  18. {crprotocol-4.3.0 → crprotocol-4.3.1}/.github/ISSUE_TEMPLATE/spec-clarification.yml +0 -0
  19. {crprotocol-4.3.0 → crprotocol-4.3.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  20. {crprotocol-4.3.0 → crprotocol-4.3.1}/.github/workflows/ci.yml +0 -0
  21. {crprotocol-4.3.0 → crprotocol-4.3.1}/.github/workflows/docs.yml +0 -0
  22. {crprotocol-4.3.0 → crprotocol-4.3.1}/.github/workflows/link-check-config.json +0 -0
  23. {crprotocol-4.3.0 → crprotocol-4.3.1}/.github/workflows/link-check.yml +0 -0
  24. {crprotocol-4.3.0 → crprotocol-4.3.1}/.github/workflows/validate-schemas.yml +0 -0
  25. {crprotocol-4.3.0 → crprotocol-4.3.1}/.gitignore +0 -0
  26. {crprotocol-4.3.0 → crprotocol-4.3.1}/.kimi/skills/crp-auth-expert/SKILL.md +0 -0
  27. {crprotocol-4.3.0 → crprotocol-4.3.1}/.kimi/skills/crp-comply-expert/SKILL.md +0 -0
  28. {crprotocol-4.3.0 → crprotocol-4.3.1}/.kimi/skills/crp-gateway-expert/SKILL.md +0 -0
  29. {crprotocol-4.3.0 → crprotocol-4.3.1}/.kimi/skills/crp-v4-expert/SKILL.md +0 -0
  30. {crprotocol-4.3.0 → crprotocol-4.3.1}/.kimi/skills/crp-v4-specs/SKILL.md +0 -0
  31. {crprotocol-4.3.0 → crprotocol-4.3.1}/.kimi/skills/programmatic-video-production/SKILL.md +0 -0
  32. {crprotocol-4.3.0 → crprotocol-4.3.1}/.kimi/skills/programmatic-video-production/references/tool-comparison.md +0 -0
  33. {crprotocol-4.3.0 → crprotocol-4.3.1}/.pre-commit-config.yaml +0 -0
  34. {crprotocol-4.3.0 → crprotocol-4.3.1}/3.1.0 +0 -0
  35. {crprotocol-4.3.0 → crprotocol-4.3.1}/AGENTS.md +0 -0
  36. {crprotocol-4.3.0 → crprotocol-4.3.1}/AI Agent adoption/CRP-AGENT-ADOPTION-STRATEGY.md +0 -0
  37. {crprotocol-4.3.0 → crprotocol-4.3.1}/AI Agent adoption/CRP-MCP-SERVER-SPECIFICATION.md +0 -0
  38. {crprotocol-4.3.0 → crprotocol-4.3.1}/AI Agent adoption/CRP-SKILL.md +0 -0
  39. {crprotocol-4.3.0 → crprotocol-4.3.1}/AI Agent adoption/llms-full.txt +0 -0
  40. {crprotocol-4.3.0 → crprotocol-4.3.1}/AI Agent adoption/llms.txt +0 -0
  41. {crprotocol-4.3.0 → crprotocol-4.3.1}/BENCHMARKS.md +0 -0
  42. {crprotocol-4.3.0 → crprotocol-4.3.1}/CNAME +0 -0
  43. {crprotocol-4.3.0 → crprotocol-4.3.1}/CODE_OF_CONDUCT.md +0 -0
  44. {crprotocol-4.3.0 → crprotocol-4.3.1}/CONTRIBUTING.md +0 -0
  45. {crprotocol-4.3.0 → crprotocol-4.3.1}/CRP Comply LLM connection methods issues prompt.txt +0 -0
  46. {crprotocol-4.3.0 → crprotocol-4.3.1}/CRP protocol ecosystem figure.png +0 -0
  47. {crprotocol-4.3.0 → crprotocol-4.3.1}/CRP-COMPLY-AI-SAFETY-PLAN.md +0 -0
  48. {crprotocol-4.3.0 → crprotocol-4.3.1}/CRP-COMPLY-UPGRADE-REPORT-v2.md +0 -0
  49. {crprotocol-4.3.0 → crprotocol-4.3.1}/CRP-COMPLY-UPGRADE-REPORT.md +0 -0
  50. {crprotocol-4.3.0 → crprotocol-4.3.1}/CRP-SHARED-HERO-POSITIONING.md +0 -0
  51. {crprotocol-4.3.0 → crprotocol-4.3.1}/CRP-v4-SPRINT-REPORT.md +0 -0
  52. {crprotocol-4.3.0 → crprotocol-4.3.1}/CRP-v4-VISUAL-AUDIT-RATING.md +0 -0
  53. {crprotocol-4.3.0 → crprotocol-4.3.1}/CRP_CAPABILITIES.md +0 -0
  54. {crprotocol-4.3.0 → crprotocol-4.3.1}/CRP_Comply_github_app_details.txt +0 -0
  55. {crprotocol-4.3.0 → crprotocol-4.3.1}/CRP_protocol_FULL_transparent_white.png +0 -0
  56. {crprotocol-4.3.0 → crprotocol-4.3.1}/CRPv4_Implementation_Rounds.md +0 -0
  57. {crprotocol-4.3.0 → crprotocol-4.3.1}/CRPv4_realised_deliverables.md +0 -0
  58. {crprotocol-4.3.0 → crprotocol-4.3.1}/D1_CRP_Protocol_Marketing_Update.docx +0 -0
  59. {crprotocol-4.3.0 → crprotocol-4.3.1}/Dockerfile +0 -0
  60. {crprotocol-4.3.0 → crprotocol-4.3.1}/GOVERNANCE.md +0 -0
  61. {crprotocol-4.3.0 → crprotocol-4.3.1}/HOSTING_POSITIONING.md +0 -0
  62. {crprotocol-4.3.0 → crprotocol-4.3.1}/INTERNAL_DOCS.md +0 -0
  63. {crprotocol-4.3.0 → crprotocol-4.3.1}/LICENSE.md +0 -0
  64. {crprotocol-4.3.0 → crprotocol-4.3.1}/NOTICE +0 -0
  65. {crprotocol-4.3.0 → crprotocol-4.3.1}/RAILWAY_DEPLOYMENT_GUIDE.md +0 -0
  66. {crprotocol-4.3.0 → crprotocol-4.3.1}/RAILWAY_VARIABLES.md +0 -0
  67. {crprotocol-4.3.0 → crprotocol-4.3.1}/README.md +0 -0
  68. {crprotocol-4.3.0 → crprotocol-4.3.1}/SECURITY.md +0 -0
  69. {crprotocol-4.3.0 → crprotocol-4.3.1}/SITE_NAVIGATION_AND_PUBLISHING.md +0 -0
  70. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/CRP-BUILD-PROMPT.md +0 -0
  71. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/CRP-CODER-BRIEF.md +0 -0
  72. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/CRP-GATEWAY-BLUEPRINT.md +0 -0
  73. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/CRP-MASTER-INDEX.md +0 -0
  74. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/CRP-SDK-REFERENCE.md +0 -0
  75. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-FEASIBILITY.md +0 -0
  76. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-IANA-RESPONSE-STRATEGY.md +0 -0
  77. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-IETF-EMAIL-TEMPLATES.md +0 -0
  78. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-PUBLIC-CHECKLIST.md +0 -0
  79. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SITE-STRATEGY.md +0 -0
  80. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-001-core-protocol.md +0 -0
  81. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-002-headers.md +0 -0
  82. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-003-envelope.md +0 -0
  83. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-004-continuation.md +0 -0
  84. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-005-dpe.md +0 -0
  85. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-006-safety-policy.md +0 -0
  86. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-007-session-token.md +0 -0
  87. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-008-dispatch.md +0 -0
  88. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-009-ckf.md +0 -0
  89. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-010-regulatory-mapping.md +0 -0
  90. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-011-audit-trail.md +0 -0
  91. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-012-multi-agent-safety.md +0 -0
  92. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-013-github-action.md +0 -0
  93. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-014-conformance.md +0 -0
  94. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-015-security-privacy.md +0 -0
  95. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-016-gateway-service.md +0 -0
  96. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-017-zero-ckf-mode.md +0 -0
  97. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-018-air.md +0 -0
  98. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-019-cognitive-quality.md +0 -0
  99. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-020-cognitive-load-distribution.md +0 -0
  100. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-021-reasoning-orchestration.md +0 -0
  101. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-022-execution-fabric.md +0 -0
  102. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-023-amplification-boundary.md +0 -0
  103. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-024-coverage-differential-retrieval.md +0 -0
  104. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-025-graph-retrieval.md +0 -0
  105. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-026-semantic-quality-benchmark.md +0 -0
  106. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-027-retrieval-integrity.md +0 -0
  107. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-028-conversational-context.md +0 -0
  108. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-029-ephemeral-tool-context.md +0 -0
  109. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-030-cognitive-state-relay.md +0 -0
  110. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-031-semantic-task-layer.md +0 -0
  111. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-032-developer-experience.md +0 -0
  112. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-033-safety-control-plane.md +0 -0
  113. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-034-safety-coverage.md +0 -0
  114. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-035-context-lifecycle.md +0 -0
  115. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-036-scan-remediation.md +0 -0
  116. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-037-unified-config.md +0 -0
  117. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-038-storage-backends.md +0 -0
  118. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-039-semantic-code-ingestion.md +0 -0
  119. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-040-crp-comply.md +0 -0
  120. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-041-adoption-ecosystem.md +0 -0
  121. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SPEC-HOSTING-CONTROL.md +0 -0
  122. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-COMPLETE-PACKAGE/crp-coder-package/specs/CRP-SUBMISSION-GUIDE.md +0 -0
  123. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-MASTER-INDEX.md +0 -0
  124. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-SPEC-040-crp-comply.md +0 -0
  125. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS-2.06.2026/CRP-SPEC-041-adoption-ecosystem.md +0 -0
  126. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-FEASIBILITY.md +0 -0
  127. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-IETF-EMAIL-TEMPLATES.md +0 -0
  128. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-PUBLIC-CHECKLIST.md +0 -0
  129. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SITE-STRATEGY.md +0 -0
  130. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SPEC-001-core-protocol.md +0 -0
  131. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SPEC-002-headers.md +0 -0
  132. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SPEC-003-envelope.md +0 -0
  133. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SPEC-004-continuation.md +0 -0
  134. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SPEC-005-dpe.md +0 -0
  135. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SPEC-006-safety-policy.md +0 -0
  136. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SPEC-007-session-token.md +0 -0
  137. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SPEC-008-dispatch.md +0 -0
  138. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SPEC-009-ckf.md +0 -0
  139. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SPEC-010-regulatory-mapping.md +0 -0
  140. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SPEC-011-audit-trail.md +0 -0
  141. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SPEC-012-multi-agent-safety.md +0 -0
  142. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SPEC-013-github-action.md +0 -0
  143. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SPEC-014-conformance.md +0 -0
  144. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SPEC-015-security-privacy.md +0 -0
  145. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SPEC-016-gateway-service.md +0 -0
  146. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SPEC-017-zero-ckf-mode.md +0 -0
  147. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SPEC-HOSTING-CONTROL.md +0 -0
  148. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-SUBMISSION-GUIDE.md +0 -0
  149. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/CRP-V3-IMPLEMENTATION-PLAN.md +0 -0
  150. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/Overview of all documents.docx +0 -0
  151. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/SUBMISSION-GUIDE.md +0 -0
  152. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/TRACKING_OF_PROGRESS.MD +0 -0
  153. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/crp-headers-spec.html +0 -0
  154. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/crp-product-ecosystem.html +0 -0
  155. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_27-05-2027/crp-v3-complete-spec.html +0 -0
  156. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/Automated prompt-response review, questions, actions and insights.txt +0 -0
  157. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/CRP-AUTH-MIGRATION-SPRINT-SUMMARY.md +0 -0
  158. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/CRP-AUTH-POSTGRESQL-MIGRATION-PLAN.md +0 -0
  159. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/CRP-AUTH-USER-MANAGEMENT-SOLUTION.md +0 -0
  160. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/CRP-BUILD-PROMPT.md +0 -0
  161. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/CRP-CODER-BRIEF.md +0 -0
  162. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/CRP-COMPLY-BUILDER-PROMPT.md +0 -0
  163. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/CRP-COMPLY-UPGRADE-HANDOFF.md +0 -0
  164. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/CRP-ECOSYSTEM-BOUNDARIES.md +0 -0
  165. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/CRP-GATEWAY-BLUEPRINT.md +0 -0
  166. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/CRP-GATEWAY-PRODUCT-OVERVIEW.md +0 -0
  167. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/CRP-GITHUB-APP-GUIDE.md +0 -0
  168. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/CRP-GITHUB-CONNECTIVITY-SOLUTION.md +0 -0
  169. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/CRP-MARKET-STRATEGY.md +0 -0
  170. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/CRP-MASTER-INDEX.md +0 -0
  171. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/CRP-RAILWAY-SETUP-GUIDE.md +0 -0
  172. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/CRP-SDK-REFERENCE.md +0 -0
  173. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/CRP-STRIPE-SETUP-GUIDE.md +0 -0
  174. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/CRP-V4-UPGRADE-PROMPT.md +0 -0
  175. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/CRP-v4-PHASED-IMPLEMENTATION-REPORT.md +0 -0
  176. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/adversarially-robust-safety.md +0 -0
  177. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/mfa_plan.md +0 -0
  178. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-FEASIBILITY.md +0 -0
  179. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-IANA-RESPONSE-STRATEGY.md +0 -0
  180. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-IETF-EMAIL-TEMPLATES.md +0 -0
  181. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-PUBLIC-CHECKLIST.md +0 -0
  182. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SITE-STRATEGY.md +0 -0
  183. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-001-core-protocol.md +0 -0
  184. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-002-headers.md +0 -0
  185. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-003-envelope.md +0 -0
  186. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-004-continuation.md +0 -0
  187. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-005-dpe.md +0 -0
  188. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-006-safety-policy.md +0 -0
  189. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-007-session-token.md +0 -0
  190. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-008-dispatch.md +0 -0
  191. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-009-ckf.md +0 -0
  192. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-010-regulatory-mapping.md +0 -0
  193. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-011-audit-trail.md +0 -0
  194. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-012-multi-agent-safety.md +0 -0
  195. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-013-github-action.md +0 -0
  196. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-014-conformance.md +0 -0
  197. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-015-security-privacy.md +0 -0
  198. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-016-gateway-service.md +0 -0
  199. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-017-zero-ckf-mode.md +0 -0
  200. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-018-air.md +0 -0
  201. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-019-cognitive-quality.md +0 -0
  202. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-020-cognitive-load-distribution.md +0 -0
  203. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-021-reasoning-orchestration.md +0 -0
  204. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-022-execution-fabric.md +0 -0
  205. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-023-amplification-boundary.md +0 -0
  206. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-024-coverage-differential-retrieval.md +0 -0
  207. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-025-graph-retrieval.md +0 -0
  208. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-026-semantic-quality-benchmark.md +0 -0
  209. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-027-retrieval-integrity.md +0 -0
  210. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-028-conversational-context.md +0 -0
  211. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-029-ephemeral-tool-context.md +0 -0
  212. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-030-cognitive-state-relay.md +0 -0
  213. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-031-semantic-task-layer.md +0 -0
  214. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-032-developer-experience.md +0 -0
  215. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-033-safety-control-plane.md +0 -0
  216. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-034-safety-coverage.md +0 -0
  217. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-035-context-lifecycle.md +0 -0
  218. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-036-scan-remediation.md +0 -0
  219. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-037-unified-config.md +0 -0
  220. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-038-storage-backends.md +0 -0
  221. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-039-semantic-code-ingestion.md +0 -0
  222. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-040-crp-comply.md +0 -0
  223. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-041-adoption-ecosystem.md +0 -0
  224. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-042-comply-upgrade-integration.md +0 -0
  225. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-043-gateway-runtime-product.md +0 -0
  226. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-044-authoritative-domain-agent.md +0 -0
  227. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-045-knowledge-learning.md +0 -0
  228. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-046-user-defined-cognition.md +0 -0
  229. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-047-monetisation-payments.md +0 -0
  230. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-048-comply-lowcode-github.md +0 -0
  231. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SPEC-HOSTING-CONTROL.md +0 -0
  232. {crprotocol-4.3.0 → crprotocol-4.3.1}/SPECS_5_06_2026_CRP_v4/specs/CRP-SUBMISSION-GUIDE.md +0 -0
  233. {crprotocol-4.3.0 → crprotocol-4.3.1}/STRIPE_MONETISATION.md +0 -0
  234. {crprotocol-4.3.0 → crprotocol-4.3.1}/TRADEMARK.md +0 -0
  235. {crprotocol-4.3.0 → crprotocol-4.3.1}/android-chrome-192x192.png +0 -0
  236. {crprotocol-4.3.0 → crprotocol-4.3.1}/android-chrome-512x512.png +0 -0
  237. {crprotocol-4.3.0 → crprotocol-4.3.1}/apple-touch-icon.png +0 -0
  238. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/__main__.py +0 -0
  239. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/_typing.py +0 -0
  240. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/activation/__init__.py +0 -0
  241. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/activation/mode.py +0 -0
  242. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/activation/onboarding.py +0 -0
  243. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/activation/policy_adjust.py +0 -0
  244. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/activation/stages.py +0 -0
  245. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/adapters.py +0 -0
  246. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/advanced/__init__.py +0 -0
  247. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/advanced/auto_ingest.py +0 -0
  248. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/advanced/cqs.py +0 -0
  249. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/advanced/cross_window.py +0 -0
  250. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/advanced/curator.py +0 -0
  251. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/advanced/feedback.py +0 -0
  252. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/advanced/hierarchical.py +0 -0
  253. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/advanced/meta_learning.py +0 -0
  254. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/advanced/parallel.py +0 -0
  255. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/advanced/review_cycle.py +0 -0
  256. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/advanced/scale_mode.py +0 -0
  257. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/advanced/source_grounding.py +0 -0
  258. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/agent/__init__.py +0 -0
  259. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/agent/budget.py +0 -0
  260. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/agent/chain.py +0 -0
  261. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/agent/oversight.py +0 -0
  262. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/agent/propagation.py +0 -0
  263. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/ckf/__init__.py +0 -0
  264. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/ckf/cdgr.py +0 -0
  265. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/ckf/community.py +0 -0
  266. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/ckf/fabric.py +0 -0
  267. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/ckf/gc.py +0 -0
  268. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/ckf/graph_edges.py +0 -0
  269. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/ckf/graph_walk.py +0 -0
  270. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/ckf/merge.py +0 -0
  271. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/ckf/pattern_query.py +0 -0
  272. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/ckf/pubsub.py +0 -0
  273. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/ckf/semantic.py +0 -0
  274. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/cli/__init__.py +0 -0
  275. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/cli/main.py +0 -0
  276. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/cli/sidecar.py +0 -0
  277. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/cli/startup.py +0 -0
  278. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/comply/__init__.py +0 -0
  279. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/comply/billing/__init__.py +0 -0
  280. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/comply/billing/checkout.py +0 -0
  281. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/comply/billing/constants.py +0 -0
  282. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/comply/billing/entitlements.py +0 -0
  283. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/comply/billing/metering.py +0 -0
  284. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/comply/billing/reconciliation.py +0 -0
  285. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/comply/billing/webhook.py +0 -0
  286. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/comply/checkpoint_inbox.py +0 -0
  287. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/comply/gateway_client.py +0 -0
  288. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/comply/gateway_proxy.py +0 -0
  289. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/comply/github_routes.py +0 -0
  290. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/comply/header_mapping.py +0 -0
  291. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/comply/no_code.py +0 -0
  292. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/comply/quota_gate.py +0 -0
  293. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/comply/signup.py +0 -0
  294. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/config.py +0 -0
  295. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/config_schema.py +0 -0
  296. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/continuation/__init__.py +0 -0
  297. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/continuation/completion.py +0 -0
  298. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/continuation/degradation.py +0 -0
  299. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/continuation/document_map.py +0 -0
  300. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/continuation/flow.py +0 -0
  301. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/continuation/gap.py +0 -0
  302. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/continuation/input_planner.py +0 -0
  303. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/continuation/manager.py +0 -0
  304. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/continuation/quality_monitor.py +0 -0
  305. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/continuation/stitch.py +0 -0
  306. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/continuation/trigger.py +0 -0
  307. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/continuation/voice.py +0 -0
  308. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/__init__.py +0 -0
  309. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/batch.py +0 -0
  310. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/circuit_breaker.py +0 -0
  311. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/config.py +0 -0
  312. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/context_enforcer.py +0 -0
  313. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/context_source.py +0 -0
  314. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/context_tools.py +0 -0
  315. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/dispatch_router.py +0 -0
  316. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/errors.py +0 -0
  317. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/extraction_facade.py +0 -0
  318. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/facilitator.py +0 -0
  319. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/idempotency.py +0 -0
  320. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/ledger_backends.py +0 -0
  321. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/manifest_derive.py +0 -0
  322. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/manifest_ledger.py +0 -0
  323. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/orchestrator.py +0 -0
  324. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/relay_strategies.py +0 -0
  325. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/security_manager.py +0 -0
  326. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/session.py +0 -0
  327. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/task_intent.py +0 -0
  328. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/core/window.py +0 -0
  329. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/envelope/__init__.py +0 -0
  330. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/envelope/builder.py +0 -0
  331. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/envelope/cdr.py +0 -0
  332. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/envelope/decomposer.py +0 -0
  333. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/envelope/formatter.py +0 -0
  334. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/envelope/packer.py +0 -0
  335. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/envelope/reranker.py +0 -0
  336. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/envelope/retrieval_integrity.py +0 -0
  337. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/envelope/scoring.py +0 -0
  338. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/extraction/__init__.py +0 -0
  339. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/extraction/complexity.py +0 -0
  340. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/extraction/contradiction.py +0 -0
  341. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/extraction/pipeline.py +0 -0
  342. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/extraction/quality_gate.py +0 -0
  343. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/extraction/stage1_regex.py +0 -0
  344. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/extraction/stage2_statistical.py +0 -0
  345. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/extraction/stage3_gliner.py +0 -0
  346. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/extraction/stage4_uie.py +0 -0
  347. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/extraction/stage5_discourse.py +0 -0
  348. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/extraction/stage6_llm.py +0 -0
  349. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/extraction/structured_output.py +0 -0
  350. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/extraction/types.py +0 -0
  351. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/gateway/__init__.py +0 -0
  352. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/gateway/api.py +0 -0
  353. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/gateway/key_vault.py +0 -0
  354. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/gateway/router.py +0 -0
  355. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/headers/__init__.py +0 -0
  356. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/headers/conditional.py +0 -0
  357. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/headers/emit.py +0 -0
  358. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/headers/halt.py +0 -0
  359. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/headers/middleware.py +0 -0
  360. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/headers/names.py +0 -0
  361. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/headers/parse.py +0 -0
  362. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/integrations/__init__.py +0 -0
  363. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/integrations/_common.py +0 -0
  364. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/integrations/anthropic_hook.py +0 -0
  365. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/integrations/langchain_hook.py +0 -0
  366. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/integrations/openai_hook.py +0 -0
  367. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/license_guard.py +0 -0
  368. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/observability/__init__.py +0 -0
  369. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/observability/audit.py +0 -0
  370. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/observability/events.py +0 -0
  371. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/observability/metrics.py +0 -0
  372. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/observability/quality.py +0 -0
  373. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/observability/structured_logging.py +0 -0
  374. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/observability/telemetry.py +0 -0
  375. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/policy/__init__.py +0 -0
  376. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/policy/enforce.py +0 -0
  377. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/policy/grammar.py +0 -0
  378. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/policy/inheritance.py +0 -0
  379. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/policy/mode.py +0 -0
  380. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/policy/model.py +0 -0
  381. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/policy/nonce.py +0 -0
  382. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/policy/profiles.py +0 -0
  383. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/policy/report.py +0 -0
  384. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/provenance/__init__.py +0 -0
  385. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/provenance/_embeddings.py +0 -0
  386. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/provenance/_types.py +0 -0
  387. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/provenance/amplifiers.py +0 -0
  388. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/provenance/attribution_scorer.py +0 -0
  389. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/provenance/calibration.py +0 -0
  390. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/provenance/claim_detector.py +0 -0
  391. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/provenance/contradiction_detector.py +0 -0
  392. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/provenance/distortion_detector.py +0 -0
  393. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/provenance/entailment_verifier.py +0 -0
  394. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/provenance/fabrication_detector.py +0 -0
  395. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/provenance/hallucination_scorer.py +0 -0
  396. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/provenance/omission_analyzer.py +0 -0
  397. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/provenance/provenance_chain.py +0 -0
  398. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/provenance/report_generator.py +0 -0
  399. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/provenance/rqa.py +0 -0
  400. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/provenance/rqa_stages.py +0 -0
  401. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/provenance/window_chain.py +0 -0
  402. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/providers/__init__.py +0 -0
  403. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/providers/anthropic.py +0 -0
  404. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/providers/base.py +0 -0
  405. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/providers/custom.py +0 -0
  406. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/providers/diagnostic.py +0 -0
  407. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/providers/manager.py +0 -0
  408. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/providers/openai.py +0 -0
  409. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/providers/tokenizers.py +0 -0
  410. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/py.typed +0 -0
  411. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/resources/__init__.py +0 -0
  412. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/resources/adaptive_allocator.py +0 -0
  413. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/resources/cost_model.py +0 -0
  414. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/resources/overhead_manager.py +0 -0
  415. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/resources/resource_manager.py +0 -0
  416. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/scan/__init__.py +0 -0
  417. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/scan/github_app.py +0 -0
  418. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/scan/remediation.py +0 -0
  419. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/scan/semantic_ingestion.py +0 -0
  420. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/scan/templates/README.md +0 -0
  421. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/schemas/__init__.py +0 -0
  422. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/schemas/cost-estimate.json +0 -0
  423. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/schemas/crp-error.json +0 -0
  424. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/schemas/envelope-preview.json +0 -0
  425. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/schemas/persisted-state-header.json +0 -0
  426. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/schemas/quality-report.json +0 -0
  427. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/schemas/session-handle.json +0 -0
  428. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/schemas/session-status.json +0 -0
  429. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/schemas/stream-event.json +0 -0
  430. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/schemas/task-intent.json +0 -0
  431. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/sdk/__init__.py +0 -0
  432. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/sdk/client.py +0 -0
  433. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/sdk/dynamic.py +0 -0
  434. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/sdk/proxies.py +0 -0
  435. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/sdk/proxies_extra.py +0 -0
  436. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/sdk/proxies_more.py +0 -0
  437. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/sdk/response.py +0 -0
  438. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/security/__init__.py +0 -0
  439. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/security/audit_trail.py +0 -0
  440. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/security/binding.py +0 -0
  441. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/security/checkpoint.py +0 -0
  442. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/security/compliance.py +0 -0
  443. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/security/consent.py +0 -0
  444. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/security/control_plane.py +0 -0
  445. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/security/coverage.py +0 -0
  446. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/security/embedding_defense.py +0 -0
  447. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/security/encryption.py +0 -0
  448. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/security/injection.py +0 -0
  449. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/security/integrity.py +0 -0
  450. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/security/privacy.py +0 -0
  451. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/security/quarantine.py +0 -0
  452. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/security/rbac.py +0 -0
  453. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/security/safety_manifest.py +0 -0
  454. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/security/session_token.py +0 -0
  455. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/security/validation.py +0 -0
  456. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/__init__.py +0 -0
  457. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/backends/__init__.py +0 -0
  458. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/backends/base.py +0 -0
  459. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/backends/memory.py +0 -0
  460. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/backends/redis.py +0 -0
  461. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/backends/s3.py +0 -0
  462. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/backends/sqlite.py +0 -0
  463. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/cold_storage.py +0 -0
  464. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/compaction.py +0 -0
  465. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/coverage_set.py +0 -0
  466. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/critical_state.py +0 -0
  467. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/cso.py +0 -0
  468. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/event_log.py +0 -0
  469. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/fact.py +0 -0
  470. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/horizons.py +0 -0
  471. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/scratch_buffer.py +0 -0
  472. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/serialization.py +0 -0
  473. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/session_cleanup.py +0 -0
  474. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/snapshot.py +0 -0
  475. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/storage/__init__.py +0 -0
  476. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/storage/ephemeral_store.py +0 -0
  477. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/storage/hot_cache.py +0 -0
  478. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/storage/inverted_index.py +0 -0
  479. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/storage/rolling_log.py +0 -0
  480. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/storage/router.py +0 -0
  481. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/state/warm_store.py +0 -0
  482. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/stl/__init__.py +0 -0
  483. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/stl/classifier.py +0 -0
  484. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/stl/depth_model.py +0 -0
  485. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/stl/frame_builder.py +0 -0
  486. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/stl/goal_compass.py +0 -0
  487. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp/stl/orchestrator.py +0 -0
  488. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_envelope_budget +0 -0
  489. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/.env.example +0 -0
  490. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/.env.hosted.template +0 -0
  491. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/__init__.py +0 -0
  492. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/agent_tools.py +0 -0
  493. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/auth.py +0 -0
  494. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/backend_client.py +0 -0
  495. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/billing.py +0 -0
  496. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/capabilities.py +0 -0
  497. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/checkpoint_policy.py +0 -0
  498. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/checkpoint_service.py +0 -0
  499. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/completions.py +0 -0
  500. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/comply_tools.py +0 -0
  501. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/config_tools.py +0 -0
  502. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/connectors/__init__.py +0 -0
  503. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/connectors/base.py +0 -0
  504. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/connectors/comply.py +0 -0
  505. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/connectors/console.py +0 -0
  506. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/connectors/email.py +0 -0
  507. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/connectors/fcm.py +0 -0
  508. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/connectors/gmail.py +0 -0
  509. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/connectors/pagerduty.py +0 -0
  510. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/connectors/slack.py +0 -0
  511. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/connectors/sms.py +0 -0
  512. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/connectors/webhook.py +0 -0
  513. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/corpus.py +0 -0
  514. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/dpe_tools.py +0 -0
  515. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/gateway_tools.py +0 -0
  516. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/headers_lint.py +0 -0
  517. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/local_tools.py +0 -0
  518. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/permissions.py +0 -0
  519. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/prompts.py +0 -0
  520. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/resources.py +0 -0
  521. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/safety_tools.py +0 -0
  522. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/scaffold.py +0 -0
  523. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/scan_tools.py +0 -0
  524. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/server.py +0 -0
  525. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_mcp/types.py +0 -0
  526. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_shared/__init__.py +0 -0
  527. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_shared/audit.py +0 -0
  528. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_shared/auth.py +0 -0
  529. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_shared/crp_headers.py +0 -0
  530. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_shared/db.py +0 -0
  531. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_shared/passkey.py +0 -0
  532. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_shared/schema.py +0 -0
  533. {crprotocol-4.3.0 → crprotocol-4.3.1}/crp_shared/session_token.py +0 -0
  534. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/AUDIT_REPORT_ROUND_1_SITE_FIXES.md +0 -0
  535. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/AUDIT_REPORT_ROUND_2_VISUAL_IMPROVEMENTS.md +0 -0
  536. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/Analysis_of_benchmark_results.md +0 -0
  537. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/CRP_AVAILABILITY.md +0 -0
  538. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/CRP_CHECKPOINTS_SETUP_GUIDE.md +0 -0
  539. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/CRP_DEMO_VIDEO_SCRIPT.md +0 -0
  540. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/CRP_MCP_ACTIONABLE_DEPLOYMENT_GUIDE.md +0 -0
  541. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/CRP_MCP_CONNECTORS_SETUP_GUIDE.md +0 -0
  542. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/CRP_MCP_ENVIRONMENT_MAPPING.md +0 -0
  543. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/CRP_MCP_PRODUCTION_CHECKLIST.md +0 -0
  544. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/CRP_MCP_SECURITY_AND_CHECKPOINTS_REPORT.md +0 -0
  545. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/CRP_SCAN_ACTION_GUIDE.md +0 -0
  546. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/CRP_SCAN_ACTION_PLAN.md +0 -0
  547. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/CRP_SCAN_MARKETPLACE_AND_PARTNERSHIP.md +0 -0
  548. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/CRP_SDK_CONTEXT_SAFETY_GAP_REPORT.md +0 -0
  549. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/CRP_SPEC_REALITY_MAP.md +0 -0
  550. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/CRP_V3_COMPLETENESS.md +0 -0
  551. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/DEMO_REPRODUCTION_AND_VIDEO_GUIDE.md +0 -0
  552. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/DOCS_PLATFORM_EVALUATION.md +0 -0
  553. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/DOCS_QUALITY_STRATEGY.md +0 -0
  554. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/GATEWAY_BACKEND_INTEGRATION.md +0 -0
  555. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/GATEWAY_RAILWAY_DEPLOY.md +0 -0
  556. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/GITHUB_ACTION_PUBLISH.md +0 -0
  557. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/LINKEDIN_LAUNCH_SERIES.md +0 -0
  558. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/OPERATIONS_RUNBOOK.md +0 -0
  559. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/SEO_AEO_GEO_STRATEGY.md +0 -0
  560. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/UX_ACCESSIBILITY_IMPROVEMENTS.md +0 -0
  561. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/VS_CODE_EXTENSION_PUBLISH.md +0 -0
  562. {crprotocol-4.3.0 → crprotocol-4.3.1}/docs/WASA_INTEGRATION_TUTORIAL.md +0 -0
  563. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/async_usage.py +0 -0
  564. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/benchmark_continuation.py +0 -0
  565. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/choose_provider.py +0 -0
  566. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/comply_demo.py +0 -0
  567. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/README.md +0 -0
  568. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/__init__.py +0 -0
  569. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/_benchmark_results/20260601_140350_comparison.json +0 -0
  570. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/_benchmark_results/20260601_140350_crp_document.md +0 -0
  571. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/_benchmark_results/20260601_140350_hierarchical_document.md +0 -0
  572. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/_benchmark_results/20260601_140350_injection_document.md +0 -0
  573. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/_benchmark_results/20260601_140350_rag_document.md +0 -0
  574. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/comparison_backend.py +0 -0
  575. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/pipeline.py +0 -0
  576. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/run_benchmark.py +0 -0
  577. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/server.py +0 -0
  578. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/sqb_benchmark.py +0 -0
  579. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/static/app.js +0 -0
  580. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/static/comparison.html +0 -0
  581. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/static/context.html +0 -0
  582. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/static/context.js +0 -0
  583. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/static/index.html +0 -0
  584. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/static/safety.html +0 -0
  585. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/static/safety.js +0 -0
  586. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/static/style.css +0 -0
  587. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/strategies/__init__.py +0 -0
  588. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/strategies/base.py +0 -0
  589. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/strategies/crp_strategy.py +0 -0
  590. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/strategies/hierarchical_strategy.py +0 -0
  591. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/strategies/injection_strategy.py +0 -0
  592. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/strategies/rag_strategy.py +0 -0
  593. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/v4/server.py +0 -0
  594. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/v4/static/app.js +0 -0
  595. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/v4/static/index.html +0 -0
  596. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/crp_demos/v4/static/style.css +0 -0
  597. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/demo_app/README.md +0 -0
  598. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/demo_app/demo.py +0 -0
  599. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/demo_app/demo_v1.py +0 -0
  600. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/extraction-pipeline.md +0 -0
  601. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/ingestion.py +0 -0
  602. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/local-model.md +0 -0
  603. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/multi-provider.md +0 -0
  604. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/multi_turn.py +0 -0
  605. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/quickstart.md +0 -0
  606. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/quickstart.py +0 -0
  607. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/scribe_demo.py +0 -0
  608. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/session-resumption.md +0 -0
  609. {crprotocol-4.3.0 → crprotocol-4.3.1}/examples/streaming.py +0 -0
  610. {crprotocol-4.3.0 → crprotocol-4.3.1}/favicon-16x16.png +0 -0
  611. {crprotocol-4.3.0 → crprotocol-4.3.1}/favicon-32x32.png +0 -0
  612. {crprotocol-4.3.0 → crprotocol-4.3.1}/favicon.ico +0 -0
  613. {crprotocol-4.3.0 → crprotocol-4.3.1}/hooks/mkdocs_hooks.py +0 -0
  614. {crprotocol-4.3.0 → crprotocol-4.3.1}/media/FINAL_CRP_Full_logo-transparent.png +0 -0
  615. {crprotocol-4.3.0 → crprotocol-4.3.1}/message for AI safety.txt +0 -0
  616. {crprotocol-4.3.0 → crprotocol-4.3.1}/migrations/001_initial.sql +0 -0
  617. {crprotocol-4.3.0 → crprotocol-4.3.1}/mkdocs.yml +0 -0
  618. {crprotocol-4.3.0 → crprotocol-4.3.1}/overrides/404.html +0 -0
  619. {crprotocol-4.3.0 → crprotocol-4.3.1}/overrides/main.html +0 -0
  620. {crprotocol-4.3.0 → crprotocol-4.3.1}/overrides/partials/logo.html +0 -0
  621. {crprotocol-4.3.0 → crprotocol-4.3.1}/pyproject.toml +0 -0
  622. {crprotocol-4.3.0 → crprotocol-4.3.1}/rfcs/0000-template.md +0 -0
  623. {crprotocol-4.3.0 → crprotocol-4.3.1}/rfcs/0001-initial-release.md +0 -0
  624. {crprotocol-4.3.0 → crprotocol-4.3.1}/schemas/cost-estimate.json +0 -0
  625. {crprotocol-4.3.0 → crprotocol-4.3.1}/schemas/crp-error.json +0 -0
  626. {crprotocol-4.3.0 → crprotocol-4.3.1}/schemas/envelope-preview.json +0 -0
  627. {crprotocol-4.3.0 → crprotocol-4.3.1}/schemas/openapi.json +0 -0
  628. {crprotocol-4.3.0 → crprotocol-4.3.1}/schemas/persisted-state-header.json +0 -0
  629. {crprotocol-4.3.0 → crprotocol-4.3.1}/schemas/quality-report.json +0 -0
  630. {crprotocol-4.3.0 → crprotocol-4.3.1}/schemas/session-handle.json +0 -0
  631. {crprotocol-4.3.0 → crprotocol-4.3.1}/schemas/session-status.json +0 -0
  632. {crprotocol-4.3.0 → crprotocol-4.3.1}/schemas/stream-event.json +0 -0
  633. {crprotocol-4.3.0 → crprotocol-4.3.1}/schemas/task-intent.json +0 -0
  634. {crprotocol-4.3.0 → crprotocol-4.3.1}/scripts/audit_docs.py +0 -0
  635. {crprotocol-4.3.0 → crprotocol-4.3.1}/scripts/audit_docstrings.py +0 -0
  636. {crprotocol-4.3.0 → crprotocol-4.3.1}/scripts/auto_docstrings.py +0 -0
  637. {crprotocol-4.3.0 → crprotocol-4.3.1}/scripts/demo_varied_tests.py +0 -0
  638. {crprotocol-4.3.0 → crprotocol-4.3.1}/scripts/gen_changelog.py +0 -0
  639. {crprotocol-4.3.0 → crprotocol-4.3.1}/scripts/generate_api_reference.py +0 -0
  640. {crprotocol-4.3.0 → crprotocol-4.3.1}/scripts/probe_safety.py +0 -0
  641. {crprotocol-4.3.0 → crprotocol-4.3.1}/scripts/probe_varied_use_cases.py +0 -0
  642. {crprotocol-4.3.0 → crprotocol-4.3.1}/scripts/validate_crp_mcp.py +0 -0
  643. {crprotocol-4.3.0 → crprotocol-4.3.1}/scripts/verify_v4_demo.py +0 -0
  644. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/BingSiteAuth.xml +0 -0
  645. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/CNAME +0 -0
  646. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/aiuc-1.md +0 -0
  647. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/.meta.yml +0 -0
  648. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/activation.md +0 -0
  649. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/advanced.md +0 -0
  650. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/agent.md +0 -0
  651. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/ckf.md +0 -0
  652. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/cli.md +0 -0
  653. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/client.md +0 -0
  654. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/compliance.md +0 -0
  655. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/comply.md +0 -0
  656. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/config.md +0 -0
  657. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/continuation.md +0 -0
  658. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/core.md +0 -0
  659. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/cso.md +0 -0
  660. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/dispatch.md +0 -0
  661. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/envelope.md +0 -0
  662. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/errors.md +0 -0
  663. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/events.md +0 -0
  664. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/extraction.md +0 -0
  665. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/gateway.md +0 -0
  666. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/headers.md +0 -0
  667. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/index.md +0 -0
  668. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/activation.md +0 -0
  669. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/adapters.md +0 -0
  670. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/advanced.md +0 -0
  671. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/agent.md +0 -0
  672. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/ckf.md +0 -0
  673. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/cli.md +0 -0
  674. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/comply.md +0 -0
  675. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/config.md +0 -0
  676. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/config_schema.md +0 -0
  677. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/continuation.md +0 -0
  678. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/core.md +0 -0
  679. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/envelope.md +0 -0
  680. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/extraction.md +0 -0
  681. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/gateway.md +0 -0
  682. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/headers.md +0 -0
  683. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/index.md +0 -0
  684. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/integrations.md +0 -0
  685. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/license_guard.md +0 -0
  686. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/observability.md +0 -0
  687. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/policy.md +0 -0
  688. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/provenance.md +0 -0
  689. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/providers.md +0 -0
  690. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/resources.md +0 -0
  691. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/scan.md +0 -0
  692. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/schemas.md +0 -0
  693. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/sdk.md +0 -0
  694. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/security.md +0 -0
  695. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/state.md +0 -0
  696. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/modules/stl.md +0 -0
  697. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/observability.md +0 -0
  698. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/policy.md +0 -0
  699. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/provenance.md +0 -0
  700. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/providers.md +0 -0
  701. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/reasoning.md +0 -0
  702. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/resources.md +0 -0
  703. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/safety.md +0 -0
  704. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/scan.md +0 -0
  705. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/schemas.md +0 -0
  706. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/security.md +0 -0
  707. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/api/state.md +0 -0
  708. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/assets/CRP_protocol_ecosystem_transparent.png +0 -0
  709. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/assets/favicon/android-chrome-192x192.png +0 -0
  710. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/assets/favicon/android-chrome-512x512.png +0 -0
  711. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/assets/favicon/apple-touch-icon.png +0 -0
  712. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/assets/favicon/favicon-16x16.png +0 -0
  713. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/assets/favicon/favicon-32x32.png +0 -0
  714. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/assets/favicon/favicon.ico +0 -0
  715. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/assets/favicon/site.webmanifest +0 -0
  716. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/assets/logo-full-readme.png +0 -0
  717. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/assets/logo-full.png +0 -0
  718. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/assets/logo-small.png +0 -0
  719. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/assets/og-image.png +0 -0
  720. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/capabilities.md +0 -0
  721. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/cite.md +0 -0
  722. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/compliance/.meta.yml +0 -0
  723. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/compliance/eu-ai-act.md +0 -0
  724. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/compliance/gdpr.md +0 -0
  725. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/compliance/index.md +0 -0
  726. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/compliance/iso-42001.md +0 -0
  727. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/compliance/nist-ai-rmf.md +0 -0
  728. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/compliance/security.md +0 -0
  729. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/contributing.md +0 -0
  730. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/control-evidence.md +0 -0
  731. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/crpv4-roadmap.md +0 -0
  732. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/faq.md +0 -0
  733. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/getting-started/.meta.yml +0 -0
  734. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/getting-started/cli.md +0 -0
  735. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/getting-started/index.md +0 -0
  736. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/getting-started/installation.md +0 -0
  737. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/getting-started/licensing.md +0 -0
  738. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/getting-started/local-models.md +0 -0
  739. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/getting-started/operating-the-ecosystem.md +0 -0
  740. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/getting-started/providers.md +0 -0
  741. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/getting-started/quickstart.md +0 -0
  742. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/guides/.meta.yml +0 -0
  743. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/guides/demo-app.md +0 -0
  744. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/guides/gateway-railway.md +0 -0
  745. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/guides/index.md +0 -0
  746. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/guides/ingestion.md +0 -0
  747. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/guides/multi-turn.md +0 -0
  748. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/guides/sdk-phases.md +0 -0
  749. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/guides/sdk.md +0 -0
  750. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/guides/session-persistence.md +0 -0
  751. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/guides/sidecar.md +0 -0
  752. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/guides/streaming.md +0 -0
  753. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/index.md +0 -0
  754. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/javascripts/ticker.js +0 -0
  755. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/legal/.meta.yml +0 -0
  756. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/legal/ai-policy.md +0 -0
  757. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/legal/cookie-policy.md +0 -0
  758. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/legal/index.md +0 -0
  759. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/legal/information-security-policy.md +0 -0
  760. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/legal/privacy-policy.md +0 -0
  761. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/llms-full.txt +0 -0
  762. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/llms.txt +0 -0
  763. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/pricing.md +0 -0
  764. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/products/.meta.yml +0 -0
  765. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/products/comply.md +0 -0
  766. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/products/gateway.md +0 -0
  767. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/products/index.md +0 -0
  768. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/products/scan.md +0 -0
  769. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/products/scribe.md +0 -0
  770. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/products/visualise.md +0 -0
  771. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/protocol/.meta.yml +0 -0
  772. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/protocol/ckf.md +0 -0
  773. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/protocol/conformance.md +0 -0
  774. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/protocol/context-sources.md +0 -0
  775. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/protocol/continuation.md +0 -0
  776. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/protocol/core.md +0 -0
  777. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/protocol/dispatch-strategies.md +0 -0
  778. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/protocol/envelope.md +0 -0
  779. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/protocol/extraction.md +0 -0
  780. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/protocol/headers.md +0 -0
  781. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/protocol/index.md +0 -0
  782. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/protocol/meta-learning.md +0 -0
  783. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/protocol/multi-agent.md +0 -0
  784. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/protocol/provenance.md +0 -0
  785. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/protocol/quality-tiers.md +0 -0
  786. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/protocol/research.md +0 -0
  787. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/protocol/safety-policy.md +0 -0
  788. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/protocol/session-token.md +0 -0
  789. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/protocol/zero-ckf-mode.md +0 -0
  790. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/robots.txt +0 -0
  791. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/safety/.meta.yml +0 -0
  792. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/safety/black-box.md +0 -0
  793. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/safety/coverage.md +0 -0
  794. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/safety/dpe.md +0 -0
  795. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/safety/index.md +0 -0
  796. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/safety/safety-policy.md +0 -0
  797. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/sdk/.meta.yml +0 -0
  798. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/sdk/ai-safety.md +0 -0
  799. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/sdk/async.md +0 -0
  800. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/sdk/configuration.md +0 -0
  801. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/sdk/context-management.md +0 -0
  802. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/sdk/errors.md +0 -0
  803. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/sdk/index.md +0 -0
  804. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/sdk/tools-and-agents.md +0 -0
  805. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/.meta.yml +0 -0
  806. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-001-core-protocol.md +0 -0
  807. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-002-headers.md +0 -0
  808. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-003-envelope.md +0 -0
  809. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-004-continuation.md +0 -0
  810. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-005-dpe.md +0 -0
  811. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-006-safety-policy.md +0 -0
  812. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-007-session-token.md +0 -0
  813. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-008-dispatch.md +0 -0
  814. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-009-ckf.md +0 -0
  815. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-010-regulatory-mapping.md +0 -0
  816. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-011-audit-trail.md +0 -0
  817. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-012-multi-agent-safety.md +0 -0
  818. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-013-github-action.md +0 -0
  819. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-014-conformance.md +0 -0
  820. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-015-security-privacy.md +0 -0
  821. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-016-gateway-service.md +0 -0
  822. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-017-zero-ckf-mode.md +0 -0
  823. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-018-air.md +0 -0
  824. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-019-cognitive-quality.md +0 -0
  825. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-020-cognitive-load-distribution.md +0 -0
  826. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-021-reasoning-orchestration.md +0 -0
  827. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-022-execution-fabric.md +0 -0
  828. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-023-amplification-boundary.md +0 -0
  829. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-024-coverage-differential-retrieval.md +0 -0
  830. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-025-graph-retrieval.md +0 -0
  831. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-026-semantic-quality-benchmark.md +0 -0
  832. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-027-retrieval-integrity.md +0 -0
  833. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-028-conversational-context.md +0 -0
  834. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-029-ephemeral-tool-context.md +0 -0
  835. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-030-cognitive-state-relay.md +0 -0
  836. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-031-semantic-task-layer.md +0 -0
  837. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-032-developer-experience.md +0 -0
  838. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-033-safety-control-plane.md +0 -0
  839. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-034-safety-coverage.md +0 -0
  840. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-035-context-lifecycle.md +0 -0
  841. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-036-scan-remediation.md +0 -0
  842. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-037-unified-config.md +0 -0
  843. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-038-storage-backends.md +0 -0
  844. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-039-semantic-code-ingestion.md +0 -0
  845. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-040-crp-comply.md +0 -0
  846. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-041-adoption-ecosystem.md +0 -0
  847. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-042-comply-upgrade-integration.md +0 -0
  848. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-043-gateway-runtime-product.md +0 -0
  849. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-044-authoritative-domain-agent.md +0 -0
  850. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-045-knowledge-learning.md +0 -0
  851. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-046-user-defined-cognition.md +0 -0
  852. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-047-monetisation-payments.md +0 -0
  853. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-048-comply-lowcode-github.md +0 -0
  854. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SPEC-HOSTING-CONTROL.md +0 -0
  855. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/CRP-SUBMISSION-GUIDE.md +0 -0
  856. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/spec/index.md +0 -0
  857. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/standards.md +0 -0
  858. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/stylesheets/extra.css +0 -0
  859. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/tags.md +0 -0
  860. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/terms-of-service.md +0 -0
  861. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/testing/.meta.yml +0 -0
  862. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/testing/benchmarks.md +0 -0
  863. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/testing/index.md +0 -0
  864. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/testing/reproduce.md +0 -0
  865. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/testing/running-tests.md +0 -0
  866. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/topics/.meta.yml +0 -0
  867. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/topics/ai-compliance.md +0 -0
  868. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/topics/ai-governance.md +0 -0
  869. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/topics/ai-safety.md +0 -0
  870. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/topics/context-management.md +0 -0
  871. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/topics/crp-vs-rag-mcp.md +0 -0
  872. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/topics/index.md +0 -0
  873. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/who-is-it-for.md +0 -0
  874. {crprotocol-4.3.0 → crprotocol-4.3.1}/site-docs/why-crp.md +0 -0
  875. {crprotocol-4.3.0 → crprotocol-4.3.1}/skills/visual-expert/SKILL.md +0 -0
  876. {crprotocol-4.3.0 → crprotocol-4.3.1}/specification/01_RESEARCH_FOUNDATIONS.md +0 -0
  877. {crprotocol-4.3.0 → crprotocol-4.3.1}/specification/02_CORE_PROTOCOL.md +0 -0
  878. {crprotocol-4.3.0 → crprotocol-4.3.1}/specification/03_CONTEXT_ENVELOPE.md +0 -0
  879. {crprotocol-4.3.0 → crprotocol-4.3.1}/specification/04_TOKEN_GENERATION_PROTOCOL.md +0 -0
  880. {crprotocol-4.3.0 → crprotocol-4.3.1}/specification/05_SYSTEM_WIDE_INTEGRATION.md +0 -0
  881. {crprotocol-4.3.0 → crprotocol-4.3.1}/specification/06_IMPLEMENTATION_PLAN.md +0 -0
  882. {crprotocol-4.3.0 → crprotocol-4.3.1}/specification/07_SECURITY.md +0 -0
  883. {crprotocol-4.3.0 → crprotocol-4.3.1}/specification/08_MONETIZATION.md +0 -0
  884. {crprotocol-4.3.0 → crprotocol-4.3.1}/specification/09_DEPLOYMENT.md +0 -0
  885. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/__init__.py +0 -0
  886. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/conformance/__init__.py +0 -0
  887. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/conformance/levels.py +0 -0
  888. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/conformance/runner.py +0 -0
  889. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/conformance/test_conformance.py +0 -0
  890. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/conformance/vectors/agent.json +0 -0
  891. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/conformance/vectors/dpe.json +0 -0
  892. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/conformance/vectors/headers.json +0 -0
  893. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/conformance/vectors/hmac.json +0 -0
  894. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/conformance/vectors/safety_policy.json +0 -0
  895. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/conformance/vectors/session.json +0 -0
  896. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/conftest.py +0 -0
  897. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/killer_test/crp_killer_report.json +0 -0
  898. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/killer_test/crp_killer_report.txt +0 -0
  899. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/killer_test/crp_killer_test.py +0 -0
  900. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/killer_test/debug_gap.py +0 -0
  901. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/killer_test/debug_gap2.py +0 -0
  902. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_adaptive_allocator.py +0 -0
  903. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_adversarial_provenance.py +0 -0
  904. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_agentic.py +0 -0
  905. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_audit.py +0 -0
  906. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_audit_integration.py +0 -0
  907. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_benchmarks.py +0 -0
  908. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_checkpoint_inbox.py +0 -0
  909. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_ckf_gate.py +0 -0
  910. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_compliance_security.py +0 -0
  911. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_compliance_wiring.py +0 -0
  912. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_comply_billing.py +0 -0
  913. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_comply_gateway_proxy.py +0 -0
  914. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_comply_quota_gate.py +0 -0
  915. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_context_enforcer.py +0 -0
  916. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_context_source.py +0 -0
  917. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_crp_headers.py +0 -0
  918. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_crp_mcp.py +0 -0
  919. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_crp_mcp_auth.py +0 -0
  920. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_crp_mcp_backends.py +0 -0
  921. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_crp_mcp_billing.py +0 -0
  922. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_crp_mcp_checkpoint.py +0 -0
  923. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_crp_mcp_checkpoint_policy.py +0 -0
  924. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_crp_mcp_connectors.py +0 -0
  925. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_crp_mcp_coverage.py +0 -0
  926. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_crp_mcp_permissions.py +0 -0
  927. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_cso.py +0 -0
  928. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_decision_provenance.py +0 -0
  929. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_decision_provenance_engine.py +0 -0
  930. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_entailment_risk.py +0 -0
  931. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_fidelity_verification.py +0 -0
  932. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_gap_fixes_live.py +0 -0
  933. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_gaps_2_3.py +0 -0
  934. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_gateway.py +0 -0
  935. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_gateway_client.py +0 -0
  936. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_github_app.py +0 -0
  937. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_github_routes.py +0 -0
  938. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_horizons.py +0 -0
  939. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_input_continuation.py +0 -0
  940. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_integration.py +0 -0
  941. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_ip_protection.py +0 -0
  942. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_live_comprehensive.py +0 -0
  943. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_live_full_capture.py +0 -0
  944. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_live_long_generation.py +0 -0
  945. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_live_verification.py +0 -0
  946. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_manifest_ledger.py +0 -0
  947. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_no_code.py +0 -0
  948. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_orchestrator_perf.py +0 -0
  949. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_phase1.py +0 -0
  950. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_phase2.py +0 -0
  951. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_phase3.py +0 -0
  952. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_phase4.py +0 -0
  953. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_phase5.py +0 -0
  954. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_phase6.py +0 -0
  955. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_phase7.py +0 -0
  956. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_phase8.py +0 -0
  957. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_phase9.py +0 -0
  958. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_production_hardening.py +0 -0
  959. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_relay_strategies.py +0 -0
  960. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_resource_manager.py +0 -0
  961. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_retrieval_integrity.py +0 -0
  962. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_safety_control_plane.py +0 -0
  963. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_scan_r3.py +0 -0
  964. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_scoring_robustness.py +0 -0
  965. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_scratch_buffer.py +0 -0
  966. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_sdk_dynamic.py +0 -0
  967. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_sdk_extra_namespaces.py +0 -0
  968. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_sdk_generated_reference.py +0 -0
  969. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_sdk_level0.py +0 -0
  970. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_sdk_level2.py +0 -0
  971. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_sdk_more_namespaces.py +0 -0
  972. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_sdk_namespaces.py +0 -0
  973. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_security_modules.py +0 -0
  974. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_session_token.py +0 -0
  975. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_signup.py +0 -0
  976. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_smoke.py +0 -0
  977. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_stl.py +0 -0
  978. {crprotocol-4.3.0 → crprotocol-4.3.1}/tests/test_unified_config.py +0 -0
@@ -11,6 +11,26 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
11
11
 
12
12
  ## [Unreleased]
13
13
 
14
+ ## [4.3.1] - 2026-06-28
15
+
16
+ ### Added
17
+ - **Native tool calling for local runtimes.** `OllamaAdapter` and
18
+ `LlamaCppAdapter` now implement `generate_chat_with_tools()` with
19
+ OpenAI-compatible tool schemas, so `dispatch_with_tools()` works against
20
+ Ollama, llama.cpp server, and LM Studio (via OpenAI-compatible discovery).
21
+ - **Application capability contract.** New `crp.core.app_profile` module with
22
+ `ApplicationProfile`, `FrameworkKind`, `ProviderKind`, `ContextStrategy`,
23
+ `ToolInfo`, and `build_profile_from_messages()` so applications can declare
24
+ or be discovered: framework, provider, context window, tool registry,
25
+ MCP servers, RAG sources, and context-management strategy.
26
+ - **Framework discovery helpers** in `crp.integrations.app_discovery`:
27
+ `profile_from_langchain()`, `profile_from_llamaindex()`,
28
+ `profile_from_openai_tools()`, `profile_from_mcp_servers()`.
29
+ - **Discovery-to-provider bridge.** `DetectedModel.to_provider()` returns a
30
+ ready-to-use CRP adapter (`OllamaAdapter`, `LlamaCppAdapter`, or
31
+ `OpenAIAdapter` for LM Studio / OpenAI-compatible servers) from a discovery
32
+ report.
33
+
14
34
  ## [4.3.0] - 2026-06-28
15
35
 
16
36
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crprotocol
3
- Version: 4.3.0
3
+ Version: 4.3.1
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
@@ -125,6 +125,12 @@ def __getattr__(name: str):
125
125
  "SafetyControlPlane": "crp.security.control_plane",
126
126
  "Checkpoint": "crp.security.checkpoint",
127
127
  "SafetyManifest": "crp.security.safety_manifest",
128
+ "ApplicationProfile": "crp.core.app_profile",
129
+ "FrameworkKind": "crp.core.app_profile",
130
+ "ProviderKind": "crp.core.app_profile",
131
+ "ContextStrategy": "crp.core.app_profile",
132
+ "ToolInfo": "crp.core.app_profile",
133
+ "build_profile_from_messages": "crp.core.app_profile",
128
134
  }
129
135
  if name in _ADVANCED:
130
136
  import importlib
@@ -2,4 +2,4 @@
2
2
  # Licensed under Elastic License 2.0 — see LICENSE.md for details.
3
3
  """CRP — Context Relay Protocol SDK."""
4
4
 
5
- __version__ = "4.3.0"
5
+ __version__ = "4.3.1"
@@ -0,0 +1,295 @@
1
+ # Copyright © 2025-2026 Constantinos Vidiniotis. All rights reserved.
2
+ # Licensed under Elastic License 2.0 — see LICENSE.md for details.
3
+ """Application capability contract and strategy discovery (CRP-SPEC-008 extension).
4
+
5
+ Most applications already have their own context-management and tool-calling
6
+ strategy before CRP is introduced: a LangChain chain with a set of tools, a
7
+ LlamaIndex RAG pipeline, a custom sliding-window summariser, etc. Rather than
8
+ forcing the integrator to throw that away, :class:`ApplicationProfile` lets CRP
9
+ *discover* or be *told* what the application already does, so CRP can:
10
+
11
+ 1. Avoid duplicating existing retrieval (don't build a second vector index if
12
+ the app already has one).
13
+ 2. Delegate tool execution to the application's own tool registry when possible.
14
+ 3. Choose a compatible relay strategy (push vs pull vs reflexive) based on the
15
+ app's actual provider and context budget.
16
+ 4. Record provenance accurately for audit (this fact came from the app's
17
+ existing RAG, not from CRP's warm store).
18
+
19
+ The profile is intentionally a *contract*, not a config file. It can be:
20
+
21
+ * **Declared** by the integrator (authoritative).
22
+ * **Derived** from a message list and an optional tool list (heuristic).
23
+ * **Detected** from a framework object such as a LangChain ``BaseCallbackHandler``
24
+ or LlamaIndex ``QueryEngine`` (best-effort).
25
+ """
26
+
27
+ from __future__ import annotations
28
+
29
+ from dataclasses import dataclass, field
30
+ from enum import Enum
31
+ from typing import Any
32
+
33
+ from crp.core.context_source import ContextManifest, ContextSource, SourceKind, SourceOrigin
34
+
35
+
36
+ class FrameworkKind(str, Enum):
37
+ """Known application/framework integrations."""
38
+
39
+ UNKNOWN = "unknown"
40
+ LANGCHAIN = "langchain"
41
+ LLAMAINDEX = "llamaindex"
42
+ HAYSTACK = "haystack"
43
+ OPENAI = "openai"
44
+ ANTHROPIC = "anthropic"
45
+ CUSTOM = "custom"
46
+
47
+
48
+ class ContextStrategy(str, Enum):
49
+ """How the application manages long conversation context."""
50
+
51
+ UNKNOWN = "unknown"
52
+ FULL_HISTORY = "full_history" # Replays every turn verbatim
53
+ SLIDING_WINDOW = "sliding_window" # Keeps last N turns
54
+ SUMMARIZATION = "summarization" # Condenses old turns
55
+ RAG = "rag" # Retrieves relevant chunks
56
+ LONG_CONTEXT = "long_context" # Relies on huge native context
57
+ HYBRID = "hybrid" # Mix of the above
58
+
59
+
60
+ class ProviderKind(str, Enum):
61
+ """Broad provider families CRP knows how to govern."""
62
+
63
+ UNKNOWN = "unknown"
64
+ OPENAI = "openai"
65
+ ANTHROPIC = "anthropic"
66
+ OLLAMA = "ollama"
67
+ LLAMA_CPP = "llama_cpp"
68
+ LM_STUDIO = "lm_studio"
69
+ CUSTOM = "custom"
70
+
71
+
72
+ @dataclass
73
+ class ToolInfo:
74
+ """A tool the application already exposes."""
75
+
76
+ name: str
77
+ description: str = ""
78
+ parameters: dict[str, Any] = field(default_factory=dict)
79
+ source: str = "declared" # "declared" | "derived" | "mcp" | "langchain" | ...
80
+
81
+
82
+ @dataclass
83
+ class ApplicationProfile:
84
+ """Capability contract for an existing application.
85
+
86
+ Fields are optional; missing fields mean "unknown / not provided" and CRP
87
+ falls back to its own defaults.
88
+ """
89
+
90
+ framework: FrameworkKind = FrameworkKind.UNKNOWN
91
+ provider: ProviderKind = ProviderKind.UNKNOWN
92
+ provider_model: str = ""
93
+ context_window: int | None = None
94
+ max_output_tokens: int | None = None
95
+ context_strategy: ContextStrategy = ContextStrategy.UNKNOWN
96
+ tools: list[ToolInfo] = field(default_factory=list)
97
+ mcp_servers: list[str] = field(default_factory=list)
98
+ rag_sources: list[ContextSource] = field(default_factory=list)
99
+ long_context_caching: bool = False
100
+ sliding_window_size: int | None = None
101
+ metadata: dict[str, Any] = field(default_factory=dict)
102
+
103
+ def supports_tools(self) -> bool:
104
+ """Return True if the profile indicates tool-calling is available."""
105
+ return len(self.tools) > 0 or len(self.mcp_servers) > 0
106
+
107
+ def to_manifest(self) -> ContextManifest:
108
+ """Convert the profile's RAG/sources into a :class:`ContextManifest`."""
109
+ manifest = ContextManifest()
110
+ for src in self.rag_sources:
111
+ manifest.add(src)
112
+ if self.context_strategy in {ContextStrategy.RAG, ContextStrategy.HYBRID}:
113
+ # Add a generic RAG placeholder if no explicit sources were given.
114
+ if not self.rag_sources:
115
+ manifest.add(ContextSource(
116
+ kind=SourceKind.RAG_RETRIEVAL,
117
+ source_id="application_rag",
118
+ origin=SourceOrigin.DECLARED,
119
+ ))
120
+ for tool in self.tools:
121
+ manifest.add(ContextSource(
122
+ kind=SourceKind.FUNCTION_CALL,
123
+ source_id=tool.name,
124
+ description=tool.description,
125
+ origin=SourceOrigin.DECLARED,
126
+ ))
127
+ return manifest
128
+
129
+ def to_dict(self) -> dict[str, Any]:
130
+ """Serialize to a JSON-safe dict."""
131
+ return {
132
+ "framework": self.framework.value,
133
+ "provider": self.provider.value,
134
+ "provider_model": self.provider_model,
135
+ "context_window": self.context_window,
136
+ "max_output_tokens": self.max_output_tokens,
137
+ "context_strategy": self.context_strategy.value,
138
+ "tools": [
139
+ {
140
+ "name": t.name,
141
+ "description": t.description,
142
+ "parameters": t.parameters,
143
+ "source": t.source,
144
+ }
145
+ for t in self.tools
146
+ ],
147
+ "mcp_servers": list(self.mcp_servers),
148
+ "rag_sources": [s.to_dict() for s in self.rag_sources],
149
+ "long_context_caching": self.long_context_caching,
150
+ "sliding_window_size": self.sliding_window_size,
151
+ "metadata": dict(self.metadata),
152
+ }
153
+
154
+ @classmethod
155
+ def from_dict(cls, data: dict[str, Any]) -> "ApplicationProfile":
156
+ """Restore from a JSON-safe dict."""
157
+ return cls(
158
+ framework=FrameworkKind(data.get("framework", "unknown")),
159
+ provider=ProviderKind(data.get("provider", "unknown")),
160
+ provider_model=data.get("provider_model", ""),
161
+ context_window=data.get("context_window"),
162
+ max_output_tokens=data.get("max_output_tokens"),
163
+ context_strategy=ContextStrategy(data.get("context_strategy", "unknown")),
164
+ tools=[
165
+ ToolInfo(
166
+ name=t["name"],
167
+ description=t.get("description", ""),
168
+ parameters=t.get("parameters", {}),
169
+ source=t.get("source", "declared"),
170
+ )
171
+ for t in data.get("tools", [])
172
+ ],
173
+ mcp_servers=list(data.get("mcp_servers", [])),
174
+ rag_sources=[
175
+ ContextSource.from_dict(s) for s in data.get("rag_sources", [])
176
+ ],
177
+ long_context_caching=bool(data.get("long_context_caching", False)),
178
+ sliding_window_size=data.get("sliding_window_size"),
179
+ metadata=dict(data.get("metadata", {})),
180
+ )
181
+
182
+
183
+ def detect_framework(messages: list[dict[str, Any]]) -> FrameworkKind:
184
+ """Heuristically detect the framework from message content/structure."""
185
+ if not messages:
186
+ return FrameworkKind.UNKNOWN
187
+
188
+ # Look for framework-specific metadata in message dicts.
189
+ for m in messages:
190
+ if not isinstance(m, dict):
191
+ continue
192
+ meta = m.get("metadata") or m.get("additional_kwargs") or {}
193
+ if isinstance(meta, dict):
194
+ keys = " ".join(str(k).lower() for k in meta.keys())
195
+ if "langchain" in keys or "lc_serializable" in keys:
196
+ return FrameworkKind.LANGCHAIN
197
+ if "llamaindex" in keys or "index_id" in keys:
198
+ return FrameworkKind.LLAMAINDEX
199
+
200
+ # Tool-call message shapes
201
+ has_tool_calls = any(
202
+ isinstance(m.get("tool_calls"), list) or m.get("role") in {"tool", "function"}
203
+ for m in messages
204
+ )
205
+ if has_tool_calls:
206
+ # OpenAI/Anthropic native shapes are most common
207
+ return FrameworkKind.OPENAI
208
+
209
+ return FrameworkKind.UNKNOWN
210
+
211
+
212
+ def detect_context_strategy(messages: list[dict[str, Any]]) -> ContextStrategy:
213
+ """Heuristically detect how the app manages context.
214
+
215
+ This is best-effort: we look at message-count patterns, presence of
216
+ summarising system prompts, and explicit metadata.
217
+ """
218
+ if not messages:
219
+ return ContextStrategy.UNKNOWN
220
+
221
+ # Explicit metadata wins.
222
+ for m in messages:
223
+ meta = m.get("metadata") or m.get("additional_kwargs") or {}
224
+ if isinstance(meta, dict):
225
+ strategy = str(meta.get("context_strategy", "")).lower()
226
+ if strategy:
227
+ try:
228
+ return ContextStrategy(strategy)
229
+ except ValueError:
230
+ pass
231
+
232
+ system = " ".join(
233
+ str(m.get("content", "")).lower() for m in messages if m.get("role") == "system"
234
+ )
235
+ if ("summary" in system or "summarize" in system) and "conversation" in system:
236
+ return ContextStrategy.SUMMARIZATION
237
+ if "last" in system and ("messages" in system or "turns" in system):
238
+ return ContextStrategy.SLIDING_WINDOW
239
+ if len(messages) > 20:
240
+ # Very long verbatim history often means full replay or long-context.
241
+ return ContextStrategy.FULL_HISTORY
242
+
243
+ return ContextStrategy.UNKNOWN
244
+
245
+
246
+ def build_profile_from_messages(
247
+ messages: list[dict[str, Any]],
248
+ *,
249
+ tools: list[dict[str, Any]] | None = None,
250
+ provider: ProviderKind | None = None,
251
+ context_window: int | None = None,
252
+ ) -> ApplicationProfile:
253
+ """Derive an application profile from observed messages and tools.
254
+
255
+ The derived profile is *observed*, not authoritative. Use it for
256
+ negotiation and audit, but prefer an explicitly declared profile when
257
+ accuracy matters.
258
+ """
259
+ profile = ApplicationProfile(
260
+ framework=detect_framework(messages),
261
+ context_strategy=detect_context_strategy(messages),
262
+ provider=provider or ProviderKind.UNKNOWN,
263
+ context_window=context_window,
264
+ )
265
+
266
+ for tool in tools or []:
267
+ if isinstance(tool, ToolInfo):
268
+ profile.tools.append(tool)
269
+ continue
270
+ if isinstance(tool, dict):
271
+ func = tool.get("function", {}) or tool
272
+ profile.tools.append(ToolInfo(
273
+ name=func.get("name", tool.get("name", "unknown")),
274
+ description=func.get("description", ""),
275
+ parameters=func.get("parameters", func.get("arguments", {})),
276
+ source="derived",
277
+ ))
278
+
279
+ # Detect RAG evidence in messages (e.g. retrieved chunks, sources).
280
+ for m in messages:
281
+ meta = m.get("metadata") or {}
282
+ if isinstance(meta, dict):
283
+ sources = meta.get("sources") or meta.get("retrieved_chunks") or []
284
+ if sources:
285
+ profile.context_strategy = ContextStrategy.RAG
286
+ for src in sources:
287
+ if isinstance(src, dict):
288
+ profile.rag_sources.append(ContextSource(
289
+ kind=SourceKind.RAG_RETRIEVAL,
290
+ source_id=src.get("name", "retrieved_source"),
291
+ metadata={"snippet": str(src.get("content", ""))[:200]},
292
+ origin=SourceOrigin.OBSERVED,
293
+ ))
294
+
295
+ return profile
@@ -0,0 +1,194 @@
1
+ # Copyright © 2025-2026 Constantinos Vidiniotis. All rights reserved.
2
+ # Licensed under Elastic License 2.0 — see LICENSE.md for details.
3
+ """Discover an existing application's tools and context strategy.
4
+
5
+ This module introspects common LLM frameworks *without* hard-depending on them.
6
+ Every import of an external package is guarded so CRP still works when the
7
+ framework is not installed.
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ from typing import Any
13
+
14
+ from crp.core.app_profile import (
15
+ ApplicationProfile,
16
+ ContextStrategy,
17
+ FrameworkKind,
18
+ ProviderKind,
19
+ ToolInfo,
20
+ )
21
+ from crp.core.context_source import ContextSource, SourceKind
22
+
23
+
24
+ def _langchain_tools(obj: Any) -> list[ToolInfo]:
25
+ """Extract ToolInfo objects from a LangChain tool list or agent executor."""
26
+ tools: list[ToolInfo] = []
27
+ if obj is None:
28
+ return tools
29
+
30
+ items: list[Any] = []
31
+ if isinstance(obj, (list, tuple)):
32
+ items = list(obj)
33
+ elif hasattr(obj, "tools") and isinstance(getattr(obj, "tools"), (list, tuple)):
34
+ items = list(getattr(obj, "tools"))
35
+
36
+ for item in items:
37
+ if item is None:
38
+ continue
39
+ name = ""
40
+ description = ""
41
+ params: dict[str, Any] = {}
42
+
43
+ if isinstance(item, dict):
44
+ name = item.get("name", "")
45
+ description = item.get("description", "")
46
+ params = item.get("parameters", item.get("args_schema", {}))
47
+ else:
48
+ name = getattr(item, "name", "") or getattr(item, "__name__", "")
49
+ description = getattr(item, "description", "") or getattr(item, "__doc__", "")
50
+ schema = getattr(item, "args_schema", None)
51
+ if schema is not None:
52
+ try:
53
+ params = schema.schema() if hasattr(schema, "schema") else dict(schema)
54
+ except Exception:
55
+ params = {}
56
+
57
+ if name:
58
+ tools.append(ToolInfo(
59
+ name=name,
60
+ description=str(description)[:500],
61
+ parameters=params if isinstance(params, dict) else {},
62
+ source="langchain",
63
+ ))
64
+ return tools
65
+
66
+
67
+ def _llamaindex_tools(obj: Any) -> list[ToolInfo]:
68
+ """Extract ToolInfo objects from a LlamaIndex QueryEngine or tool list."""
69
+ tools: list[ToolInfo] = []
70
+ if obj is None:
71
+ return tools
72
+
73
+ items: list[Any] = []
74
+ if isinstance(obj, (list, tuple)):
75
+ items = list(obj)
76
+ elif hasattr(obj, "get_tools"):
77
+ try:
78
+ items = list(obj.get_tools())
79
+ except Exception:
80
+ pass
81
+
82
+ for item in items:
83
+ if item is None:
84
+ continue
85
+ name = ""
86
+ description = ""
87
+ params: dict[str, Any] = {}
88
+
89
+ if isinstance(item, dict):
90
+ name = item.get("name", "")
91
+ description = item.get("description", "")
92
+ params = item.get("parameters", {})
93
+ else:
94
+ name = getattr(item, "metadata", {}).get("name", "") if hasattr(item, "metadata") else ""
95
+ if not name:
96
+ name = getattr(item, "__class__", type(item)).__name__
97
+ description = getattr(item, "metadata", {}).get("description", "")
98
+
99
+ if name:
100
+ tools.append(ToolInfo(
101
+ name=name,
102
+ description=str(description)[:500],
103
+ parameters=params,
104
+ source="llamaindex",
105
+ ))
106
+ return tools
107
+
108
+
109
+ def profile_from_langchain(
110
+ llm: Any | None = None,
111
+ tools: Any | None = None,
112
+ chain: Any | None = None,
113
+ ) -> ApplicationProfile:
114
+ """Build an :class:`ApplicationProfile` from a LangChain setup.
115
+
116
+ Args:
117
+ llm: A LangChain LLM/chat-model instance (used for provider hints).
118
+ tools: A list of LangChain tools or an agent/executor with ``.tools``.
119
+ chain: A LangChain chain (used for framework detection).
120
+ """
121
+ profile = ApplicationProfile(framework=FrameworkKind.LANGCHAIN)
122
+
123
+ # Provider hint from LLM class name / model kwargs
124
+ if llm is not None:
125
+ cls_name = getattr(llm, "__class__", type(llm)).__name__.lower()
126
+ if "openai" in cls_name:
127
+ profile.provider = ProviderKind.OPENAI
128
+ elif "anthropic" in cls_name:
129
+ profile.provider = ProviderKind.ANTHROPIC
130
+ elif "ollama" in cls_name:
131
+ profile.provider = ProviderKind.OLLAMA
132
+ elif "llama" in cls_name:
133
+ profile.provider = ProviderKind.LLAMA_CPP
134
+
135
+ model = getattr(llm, "model", "") or getattr(llm, "model_name", "")
136
+ if isinstance(model, str):
137
+ profile.provider_model = model
138
+
139
+ profile.tools = _langchain_tools(tools)
140
+ return profile
141
+
142
+
143
+ def profile_from_llamaindex(
144
+ query_engine: Any | None = None,
145
+ tools: Any | None = None,
146
+ ) -> ApplicationProfile:
147
+ """Build an :class:`ApplicationProfile` from a LlamaIndex setup."""
148
+ profile = ApplicationProfile(framework=FrameworkKind.LLAMAINDEX)
149
+ profile.tools = _llamaindex_tools(tools)
150
+
151
+ if query_engine is not None:
152
+ # Best-effort: mark RAG if a query engine is present.
153
+ profile.context_strategy = ContextStrategy.RAG
154
+ profile.rag_sources.append(ContextSource(
155
+ kind=SourceKind.RAG_RETRIEVAL,
156
+ name=getattr(query_engine, "__class__", type(query_engine)).__name__,
157
+ origin="DECLARED",
158
+ ))
159
+
160
+ return profile
161
+
162
+
163
+ def profile_from_openai_tools(
164
+ tools: list[dict[str, Any]],
165
+ model: str = "",
166
+ ) -> ApplicationProfile:
167
+ """Build an :class:`ApplicationProfile` from an OpenAI-style tool list."""
168
+ profile = ApplicationProfile(
169
+ framework=FrameworkKind.OPENAI,
170
+ provider=ProviderKind.OPENAI,
171
+ provider_model=model,
172
+ )
173
+ for tool in tools:
174
+ func = tool.get("function", {}) or tool
175
+ profile.tools.append(ToolInfo(
176
+ name=func.get("name", tool.get("name", "unknown")),
177
+ description=func.get("description", ""),
178
+ parameters=func.get("parameters", {}),
179
+ source="openai",
180
+ ))
181
+ return profile
182
+
183
+
184
+ def profile_from_mcp_servers(
185
+ servers: list[str] | list[dict[str, Any]],
186
+ ) -> ApplicationProfile:
187
+ """Build an :class:`ApplicationProfile` from a list of MCP server refs."""
188
+ profile = ApplicationProfile()
189
+ for srv in servers or []:
190
+ if isinstance(srv, str):
191
+ profile.mcp_servers.append(srv)
192
+ elif isinstance(srv, dict):
193
+ profile.mcp_servers.append(srv.get("name", srv.get("url", str(srv))))
194
+ return profile