asap-protocol 2.1.0__tar.gz → 2.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/.gitignore +2 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/CHANGELOG.md +125 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/PKG-INFO +30 -53
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/README.md +24 -48
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/pyproject.toml +41 -7
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/__init__.py +1 -1
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/auth/__init__.py +30 -5
- asap_protocol-2.2.0/src/asap/auth/agent_jwt.py +420 -0
- asap_protocol-2.2.0/src/asap/auth/approval.py +398 -0
- asap_protocol-2.2.0/src/asap/auth/capabilities.py +282 -0
- asap_protocol-2.2.0/src/asap/auth/identity.py +217 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/auth/introspection.py +1 -10
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/auth/jwks.py +12 -25
- asap_protocol-2.2.0/src/asap/auth/lifecycle.py +67 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/auth/middleware.py +10 -19
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/auth/oauth2.py +1 -10
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/auth/oidc.py +4 -13
- asap_protocol-2.2.0/src/asap/auth/self_auth.py +144 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/cli.py +1 -1
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/client/http_client.py +1 -1
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/client/revocation.py +1 -1
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/crypto/trust.py +1 -1
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/discovery/dnssd.py +1 -1
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/discovery/registry.py +7 -13
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/discovery/validation.py +0 -6
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/economics/__init__.py +13 -1
- asap_protocol-2.2.0/src/asap/economics/audit.py +334 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/economics/delegation.py +5 -2
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/economics/sla.py +1 -1
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/economics/storage.py +37 -26
- asap_protocol-2.2.0/src/asap/errors.py +590 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/README.md +6 -0
- asap_protocol-2.2.0/src/asap/examples/a2h_approval.py +107 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/secure_agent.py +1 -1
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/storage_backends.py +1 -1
- asap_protocol-2.2.0/src/asap/examples/streaming_agent.py +97 -0
- asap_protocol-2.2.0/src/asap/handlers/__init__.py +22 -0
- asap_protocol-2.2.0/src/asap/handlers/hitl.py +72 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/integrations/__init__.py +11 -0
- asap_protocol-2.2.0/src/asap/integrations/a2h.py +554 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/integrations/crewai.py +7 -2
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/integrations/llamaindex.py +10 -4
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/integrations/vercel_ai.py +51 -5
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/mcp/client.py +0 -14
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/mcp/server.py +9 -22
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/models/constants.py +5 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/models/entities.py +9 -6
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/models/enums.py +1 -4
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/models/payloads.py +33 -3
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/observability/metrics.py +0 -1
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/state/__init__.py +5 -1
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/state/metering.py +42 -3
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/state/snapshot.py +67 -1
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/state/stores/__init__.py +18 -7
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/state/stores/memory.py +69 -1
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/state/stores/sqlite.py +176 -35
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/testing/__init__.py +10 -0
- asap_protocol-2.2.0/src/asap/testing/compliance.py +387 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/testing/mocks.py +0 -5
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/__init__.py +4 -0
- asap_protocol-2.2.0/src/asap/transport/_auth_helpers.py +13 -0
- asap_protocol-2.2.0/src/asap/transport/agent_routes.py +760 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/cache.py +24 -4
- asap_protocol-2.2.0/src/asap/transport/capability_routes.py +372 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/client.py +252 -80
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/compression.py +10 -6
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/executors.py +0 -9
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/handlers.py +124 -8
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/jsonrpc.py +6 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/middleware.py +73 -11
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/rate_limit.py +45 -7
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/server.py +597 -51
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/validators.py +6 -2
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/webhook.py +12 -4
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/websocket.py +76 -6
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/utils/sanitization.py +1 -7
- asap_protocol-2.1.0/.agents/rules/architecture-principles.md +0 -38
- asap_protocol-2.1.0/.agents/rules/frontend.md +0 -57
- asap_protocol-2.1.0/.agents/workflows/development.md +0 -87
- asap_protocol-2.1.0/.cursor/README.md +0 -33
- asap_protocol-2.1.0/.cursor/commands/create-prd.md +0 -60
- asap_protocol-2.1.0/.cursor/commands/generate-tasks.md +0 -125
- asap_protocol-2.1.0/.cursor/commands/reflect.md +0 -11
- asap_protocol-2.1.0/.cursor/commands/remove-ai-slop.md +0 -17
- asap_protocol-2.1.0/.cursor/commands/security-pr-review.md +0 -188
- asap_protocol-2.1.0/.cursor/commands/task-list-development.md +0 -87
- asap_protocol-2.1.0/.cursor/commands/test-coverage-review.md +0 -47
- asap_protocol-2.1.0/.cursor/design/landing-reference.png +0 -0
- asap_protocol-2.1.0/.cursor/design/mobile-strategy.md +0 -39
- asap_protocol-2.1.0/.cursor/dev-planning/architecture/rate-limiting.md +0 -411
- asap_protocol-2.1.0/.cursor/dev-planning/architecture/tech-stack-decisions.md +0 -313
- asap_protocol-2.1.0/.cursor/dev-planning/checkpoints.md +0 -187
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/security-review-report.md +0 -828
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v0.1.0/pre-pypi-release-review.md +0 -582
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v0.1.0/sprint3-code-review.md +0 -674
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v0.1.0/sprint4-code-review.md +0 -77
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v0.1.0/sprint5-code-review.md +0 -382
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v0.5.0/sprint-s1-code-review.md +0 -73
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v0.5.0/sprint-s2-code-review.md +0 -94
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v0.5.0/sprint-s2.5-code-review.md +0 -444
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v0.5.0/sprint-s3-code-review.md +0 -284
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v0.5.0/sprint-s4-code-review.md +0 -99
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v0.5.0/sprint-s5-code-review.md +0 -353
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.0.0/PR-23-security-review.md +0 -531
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.0.0/PR-25-performance-optimizations-review.md +0 -725
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.0.0/PR-26-review.md +0 -92
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.0.0/PR-27-review.md +0 -85
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.0.0/PR-30-review.md +0 -63
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.0.0/PR-31-observability-review.md +0 -656
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.0.0/PR-32-review.md +0 -125
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.0.0/PR-33-review.md +0 -42
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.0.0/PR-34-review.md +0 -721
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.1.0/PR-35-review.md +0 -200
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.1.0/PR-36-review.md +0 -81
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.1.0/PR-37-review.md +0 -233
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.1.0/PR-38-review.md +0 -155
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.1.0/PR-39-review.md +0 -102
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.1.0/PR-40-review.md +0 -285
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.2.0/PR-42-REVIEW.md +0 -35
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.2.0/PR-43-REVIEW.md +0 -48
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.2.0/PR-45-REVIEW.md +0 -51
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.3.0/PR-48-REVIEW.md +0 -419
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.3.0/PR-49-REVIEW.md +0 -175
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.3.0/PR-50-REVIEW.md +0 -262
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.4.0/PR-51-REVIEW.md +0 -42
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v1.4.0/PR-53-REVIEW.md +0 -217
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v2.0.0/PR-57-REVIEW.md +0 -399
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v2.0.0/PR-58-REVIEW.md +0 -518
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v2.0.0/PR-61-REVIEW.md +0 -297
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v2.1.0/PR-71-REVIEW.md +0 -173
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v2.1.0/PR-72-REVIEW.md +0 -66
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v2.1.0/PR-73-REVIEW.md +0 -134
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v2.1.0/PR-76-REVIEW.md +0 -176
- asap_protocol-2.1.0/.cursor/dev-planning/code-review/v2.1.0/pr-75-sprint-e4-registry-ux.md +0 -206
- asap_protocol-2.1.0/.cursor/dev-planning/lessons-learned/v1.0.0-retro.md +0 -61
- asap_protocol-2.1.0/.cursor/dev-planning/manual-release-testing.md +0 -52
- asap_protocol-2.1.0/.cursor/dev-planning/references/mcp-specs.md +0 -81
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v0.1.0/sprint-planning-v0.1.0.md +0 -240
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v0.1.0/tasks-prd-asap-implementation.md +0 -850
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v0.1.0/tasks-security-review-report.md +0 -343
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v0.1.0/tasks-sprint3-improvements.md +0 -371
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v0.5.0/tasks-v0.5.0-roadmap.md +0 -195
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v0.5.0/tasks-v0.5.0-s1-detailed.md +0 -231
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v0.5.0/tasks-v0.5.0-s2-detailed.md +0 -253
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v0.5.0/tasks-v0.5.0-s2.5-detailed.md +0 -174
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v0.5.0/tasks-v0.5.0-s3-detailed.md +0 -146
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v0.5.0/tasks-v0.5.0-s4-detailed.md +0 -108
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v0.5.0/tasks-v0.5.0-s5-detailed.md +0 -102
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.0.0/tasks-v1.0.0-docs-detailed.md +0 -244
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.0.0/tasks-v1.0.0-dx-detailed.md +0 -306
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.0.0/tasks-v1.0.0-observability-detailed.md +0 -201
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.0.0/tasks-v1.0.0-performance-detailed.md +0 -251
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.0.0/tasks-v1.0.0-release-detailed.md +0 -249
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.0.0/tasks-v1.0.0-roadmap.md +0 -450
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.0.0/tasks-v1.0.0-security-detailed.md +0 -230
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.0.0/tasks-v1.0.0-testing-detailed.md +0 -262
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.0.0/upstream-slowapi-deprecation.md +0 -55
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.1.0/backlog-v1.1.md +0 -139
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.1.0/sprint-S1-oauth2-foundation.md +0 -325
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.1.0/sprint-S2-wellknown-discovery.md +0 -419
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.1.0/sprint-S2.5-state-storage.md +0 -393
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.1.0/sprint-S3-websocket-binding.md +0 -396
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.1.0/sprint-S4-webhooks-release.md +0 -417
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.1.0/tasks-v1.1.0-roadmap.md +0 -284
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.2.0/deferred/DEFERRED-sprint-T3-registry-core.md +0 -206
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.2.0/deferred/DEFERRED-sprint-T4-registry-features.md +0 -184
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.2.0/deferred/DEFERRED-sprint-T6-deepeval-release.md +0 -208
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.2.0/sprint-T1-ed25519-pki.md +0 -208
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.2.0/sprint-T2-trust-levels-mtls.md +0 -213
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.2.0/sprint-T3-compliance-harness.md +0 -199
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.2.0/sprint-T4-testing-release.md +0 -127
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.2.0/tasks-v1.2.0-roadmap.md +0 -200
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.2.1/plan-security-remediation-pre-v1.3.md +0 -351
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.2.1/v1.2.0-security-review.md +0 -146
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.3.0/deferred/DEFERRED-sprint-E4-audit-release.md +0 -215
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.3.0/sprint-E1-usage-metering.md +0 -230
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.3.0/sprint-E2-delegation-tokens.md +0 -230
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.3.0/sprint-E3-sla-framework.md +0 -358
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.3.0/tasks-v1.3.0-roadmap.md +0 -208
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.4.0/sprint-S1-type-safety.md +0 -78
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.4.0/sprint-S2-pagination.md +0 -65
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v1.4.0/tasks-v1.4.0-roadmap.md +0 -27
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v2.0.0/deferred/DEFERRED-sprint-M1-production-registry.md +0 -112
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v2.0.0/deferred/DEFERRED-sprint-M2-service-integration.md +0 -99
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v2.0.0/launch-checklist-v2.0.md +0 -43
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v2.0.0/pre-M2-validation-guide.md +0 -234
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v2.0.0/sprint-M1-webapp-foundation.md +0 -254
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v2.0.0/sprint-M2-webapp-features.md +0 -177
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v2.0.0/sprint-M3-developer-experience.md +0 -266
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v2.0.0/sprint-M4-launch-prep.md +0 -241
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v2.0.0/tasks-v2.0.0-roadmap.md +0 -228
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v2.0.0/v2.0-marketplace-usage-foundation.md +0 -238
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v2.1.0/sprint-E1-trust-revocation.md +0 -150
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v2.1.0/sprint-E2-consumer-sdk.md +0 -139
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v2.1.0/sprint-E3-framework-integrations.md +0 -161
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v2.1.0/sprint-E4-registry-ux.md +0 -169
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v2.1.0/sprint-E5-openclaw-integration.md +0 -121
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v2.1.0/sprint-E6-pypi-distribution.md +0 -99
- asap_protocol-2.1.0/.cursor/dev-planning/tasks/v2.1.0/tasks-v2.1.0-roadmap.md +0 -187
- asap_protocol-2.1.0/.cursor/dev-planning/templates/task-template.md +0 -171
- asap_protocol-2.1.0/.cursor/product-specs/README.md +0 -46
- asap_protocol-2.1.0/.cursor/product-specs/decision-records/01-architecture.md +0 -251
- asap_protocol-2.1.0/.cursor/product-specs/decision-records/02-protocol.md +0 -196
- asap_protocol-2.1.0/.cursor/product-specs/decision-records/03-security.md +0 -141
- asap_protocol-2.1.0/.cursor/product-specs/decision-records/04-technology.md +0 -302
- asap_protocol-2.1.0/.cursor/product-specs/decision-records/05-product-strategy.md +0 -379
- asap_protocol-2.1.0/.cursor/product-specs/decision-records/README.md +0 -62
- asap_protocol-2.1.0/.cursor/product-specs/prd/prd-asap-implementation.md +0 -338
- asap_protocol-2.1.0/.cursor/product-specs/prd/prd-review-schedule.md +0 -226
- asap_protocol-2.1.0/.cursor/product-specs/prd/prd-v1-roadmap.md +0 -1403
- asap_protocol-2.1.0/.cursor/product-specs/prd/prd-v1.1-roadmap.md +0 -418
- asap_protocol-2.1.0/.cursor/product-specs/prd/prd-v1.2-roadmap.md +0 -287
- asap_protocol-2.1.0/.cursor/product-specs/prd/prd-v1.3-roadmap.md +0 -226
- asap_protocol-2.1.0/.cursor/product-specs/prd/prd-v1.4-roadmap.md +0 -92
- asap_protocol-2.1.0/.cursor/product-specs/prd/prd-v2.0-roadmap.md +0 -261
- asap_protocol-2.1.0/.cursor/product-specs/prd/prd-v2.1-ecosystem.md +0 -263
- asap_protocol-2.1.0/.cursor/product-specs/prd/prd-v2.2-scale.md +0 -194
- asap_protocol-2.1.0/.cursor/product-specs/prd/prd-v3.0-economy.md +0 -238
- asap_protocol-2.1.0/.cursor/rules/architecture-principles.mdc +0 -38
- asap_protocol-2.1.0/.cursor/rules/frontend-best-practices.mdc +0 -61
- asap_protocol-2.1.0/.cursor/rules/git-commits.mdc +0 -60
- asap_protocol-2.1.0/.cursor/rules/python-best-practices.mdc +0 -42
- asap_protocol-2.1.0/.cursor/rules/security-standards.mdc +0 -43
- asap_protocol-2.1.0/.cursor/rules/testing-rate-limiting.mdc +0 -157
- asap_protocol-2.1.0/.cursor/rules/testing-standards.mdc +0 -38
- asap_protocol-2.1.0/.cursor/settings.json +0 -7
- asap_protocol-2.1.0/.cursor/skills/code-quality-review/SKILL.md +0 -37
- asap_protocol-2.1.0/.cursor/skills/security-review/SKILL.md +0 -34
- asap_protocol-2.1.0/.cursor/skills/skill-creator/SKILL.md +0 -32
- asap_protocol-2.1.0/.cursor/skills/skill-creator/scripts/init_skill.py +0 -62
- asap_protocol-2.1.0/.github/ISSUE_TEMPLATE/bug_report.yml +0 -71
- asap_protocol-2.1.0/.github/ISSUE_TEMPLATE/feature_request.yml +0 -44
- asap_protocol-2.1.0/.github/ISSUE_TEMPLATE/register_agent.yml +0 -123
- asap_protocol-2.1.0/.github/ISSUE_TEMPLATE/remove_agent.yml +0 -29
- asap_protocol-2.1.0/.github/ISSUE_TEMPLATE/request_verification.yml +0 -57
- asap_protocol-2.1.0/.github/ISSUE_TEMPLATE/revoke_agent.yml +0 -38
- asap_protocol-2.1.0/.github/PULL_REQUEST_TEMPLATE.md +0 -38
- asap_protocol-2.1.0/.github/actions/setup-python/action.yml +0 -20
- asap_protocol-2.1.0/.github/assets/asap-protocol-banner.png +0 -0
- asap_protocol-2.1.0/.github/dependabot.yml +0 -33
- asap_protocol-2.1.0/.github/workflows/ci.yml +0 -156
- asap_protocol-2.1.0/.github/workflows/docs.yml +0 -42
- asap_protocol-2.1.0/.github/workflows/register-agent.yml +0 -100
- asap_protocol-2.1.0/.github/workflows/release.yml +0 -170
- asap_protocol-2.1.0/.github/workflows/remove-agent.yml +0 -100
- asap_protocol-2.1.0/.github/workflows/revoke-agent.yml +0 -113
- asap_protocol-2.1.0/.github/workflows/validate-registry.yml +0 -29
- asap_protocol-2.1.0/AGENTS.md +0 -65
- asap_protocol-2.1.0/CODE_OF_CONDUCT.md +0 -18
- asap_protocol-2.1.0/CONTRIBUTING.md +0 -151
- asap_protocol-2.1.0/Dockerfile +0 -98
- asap_protocol-2.1.0/SECURITY.md +0 -97
- asap_protocol-2.1.0/apps/web/.gitignore +0 -49
- asap_protocol-2.1.0/apps/web/.prettierrc +0 -8
- asap_protocol-2.1.0/apps/web/README.md +0 -36
- asap_protocol-2.1.0/apps/web/components.json +0 -23
- asap_protocol-2.1.0/apps/web/eslint.config.mjs +0 -22
- asap_protocol-2.1.0/apps/web/next.config.ts +0 -44
- asap_protocol-2.1.0/apps/web/package-lock.json +0 -16978
- asap_protocol-2.1.0/apps/web/package.json +0 -68
- asap_protocol-2.1.0/apps/web/playwright.config.ts +0 -79
- asap_protocol-2.1.0/apps/web/postcss.config.mjs +0 -7
- asap_protocol-2.1.0/apps/web/public/file.svg +0 -1
- asap_protocol-2.1.0/apps/web/public/globe.svg +0 -1
- asap_protocol-2.1.0/apps/web/public/icons/anthropic.svg +0 -1
- asap_protocol-2.1.0/apps/web/public/icons/crewai.svg +0 -1
- asap_protocol-2.1.0/apps/web/public/icons/huggingface.svg +0 -1
- asap_protocol-2.1.0/apps/web/public/icons/langchain.svg +0 -1
- asap_protocol-2.1.0/apps/web/public/icons/llamaindex.svg +0 -1
- asap_protocol-2.1.0/apps/web/public/icons/openclaw.svg +0 -242
- asap_protocol-2.1.0/apps/web/public/icons/pydantic.svg +0 -1
- asap_protocol-2.1.0/apps/web/public/icons/vercel.svg +0 -1
- asap_protocol-2.1.0/apps/web/public/next.svg +0 -1
- asap_protocol-2.1.0/apps/web/public/registry.json +0 -3082
- asap_protocol-2.1.0/apps/web/public/vercel.svg +0 -1
- asap_protocol-2.1.0/apps/web/public/window.svg +0 -1
- asap_protocol-2.1.0/apps/web/scripts/validate-github-pr-flow.mjs +0 -129
- asap_protocol-2.1.0/apps/web/scripts/validate-registry-fetch.mjs +0 -32
- asap_protocol-2.1.0/apps/web/src/app/agents/[id]/agent-detail-client.tsx +0 -236
- asap_protocol-2.1.0/apps/web/src/app/agents/[id]/error.tsx +0 -24
- asap_protocol-2.1.0/apps/web/src/app/agents/[id]/opengraph-image.tsx +0 -188
- asap_protocol-2.1.0/apps/web/src/app/agents/[id]/page.tsx +0 -58
- asap_protocol-2.1.0/apps/web/src/app/agents/[id]/usage-snippets.tsx +0 -217
- asap_protocol-2.1.0/apps/web/src/app/api/auth/[...nextauth]/route.ts +0 -3
- asap_protocol-2.1.0/apps/web/src/app/api/debug/token/route.ts +0 -35
- asap_protocol-2.1.0/apps/web/src/app/api/fixtures/registry/route.ts +0 -48
- asap_protocol-2.1.0/apps/web/src/app/api/health-check/route.ts +0 -46
- asap_protocol-2.1.0/apps/web/src/app/api/proxy/check/__tests__/route.test.ts +0 -100
- asap_protocol-2.1.0/apps/web/src/app/api/proxy/check/route.ts +0 -60
- asap_protocol-2.1.0/apps/web/src/app/apple-icon.png +0 -0
- asap_protocol-2.1.0/apps/web/src/app/browse/__tests__/browse-content.test.tsx +0 -118
- asap_protocol-2.1.0/apps/web/src/app/browse/agent-card-skeleton.tsx +0 -29
- asap_protocol-2.1.0/apps/web/src/app/browse/browse-content.tsx +0 -419
- asap_protocol-2.1.0/apps/web/src/app/browse/error.tsx +0 -24
- asap_protocol-2.1.0/apps/web/src/app/browse/load-test/page.tsx +0 -73
- asap_protocol-2.1.0/apps/web/src/app/browse/loading.tsx +0 -45
- asap_protocol-2.1.0/apps/web/src/app/browse/page.tsx +0 -34
- asap_protocol-2.1.0/apps/web/src/app/dashboard/__tests__/dashboard-actions.test.ts +0 -121
- asap_protocol-2.1.0/apps/web/src/app/dashboard/actions.ts +0 -93
- asap_protocol-2.1.0/apps/web/src/app/dashboard/dashboard-client.tsx +0 -244
- asap_protocol-2.1.0/apps/web/src/app/dashboard/error.tsx +0 -24
- asap_protocol-2.1.0/apps/web/src/app/dashboard/page.tsx +0 -38
- asap_protocol-2.1.0/apps/web/src/app/dashboard/register/__tests__/register-actions.test.ts +0 -152
- asap_protocol-2.1.0/apps/web/src/app/dashboard/register/__tests__/register-form.test.tsx +0 -218
- asap_protocol-2.1.0/apps/web/src/app/dashboard/register/actions.ts +0 -78
- asap_protocol-2.1.0/apps/web/src/app/dashboard/register/page.tsx +0 -31
- asap_protocol-2.1.0/apps/web/src/app/dashboard/register/register-form.tsx +0 -324
- asap_protocol-2.1.0/apps/web/src/app/dashboard/verify/__tests__/verify-actions.test.ts +0 -77
- asap_protocol-2.1.0/apps/web/src/app/dashboard/verify/__tests__/verify-form.test.tsx +0 -220
- asap_protocol-2.1.0/apps/web/src/app/dashboard/verify/actions.ts +0 -42
- asap_protocol-2.1.0/apps/web/src/app/dashboard/verify/page.tsx +0 -46
- asap_protocol-2.1.0/apps/web/src/app/dashboard/verify/verify-form.tsx +0 -216
- asap_protocol-2.1.0/apps/web/src/app/demos/page.tsx +0 -223
- asap_protocol-2.1.0/apps/web/src/app/developer-experience/page.tsx +0 -206
- asap_protocol-2.1.0/apps/web/src/app/docs/register/page.tsx +0 -156
- asap_protocol-2.1.0/apps/web/src/app/favicon.ico +0 -0
- asap_protocol-2.1.0/apps/web/src/app/features/[slug]/page.tsx +0 -191
- asap_protocol-2.1.0/apps/web/src/app/globals.css +0 -126
- asap_protocol-2.1.0/apps/web/src/app/icon.png +0 -0
- asap_protocol-2.1.0/apps/web/src/app/layout.tsx +0 -46
- asap_protocol-2.1.0/apps/web/src/app/legal/privacy-policy/page.tsx +0 -26
- asap_protocol-2.1.0/apps/web/src/app/legal/terms-of-service/page.tsx +0 -26
- asap_protocol-2.1.0/apps/web/src/app/page.tsx +0 -32
- asap_protocol-2.1.0/apps/web/src/app/sitemap.ts +0 -49
- asap_protocol-2.1.0/apps/web/src/app/test-register/page.tsx +0 -28
- asap_protocol-2.1.0/apps/web/src/app.test.tsx +0 -7
- asap_protocol-2.1.0/apps/web/src/auth.ts +0 -60
- asap_protocol-2.1.0/apps/web/src/components/agent/agent-status-badge.tsx +0 -83
- asap_protocol-2.1.0/apps/web/src/components/landing/FeaturedAgents.tsx +0 -96
- asap_protocol-2.1.0/apps/web/src/components/landing/FeaturesSection.tsx +0 -84
- asap_protocol-2.1.0/apps/web/src/components/landing/HeroSection.tsx +0 -136
- asap_protocol-2.1.0/apps/web/src/components/landing/HowItWorksSection.tsx +0 -76
- asap_protocol-2.1.0/apps/web/src/components/layout/Footer.tsx +0 -80
- asap_protocol-2.1.0/apps/web/src/components/layout/Header.tsx +0 -122
- asap_protocol-2.1.0/apps/web/src/components/theme-provider.tsx +0 -11
- asap_protocol-2.1.0/apps/web/src/components/ui/alert.tsx +0 -66
- asap_protocol-2.1.0/apps/web/src/components/ui/avatar.tsx +0 -109
- asap_protocol-2.1.0/apps/web/src/components/ui/badge.tsx +0 -46
- asap_protocol-2.1.0/apps/web/src/components/ui/button.tsx +0 -62
- asap_protocol-2.1.0/apps/web/src/components/ui/card.tsx +0 -75
- asap_protocol-2.1.0/apps/web/src/components/ui/carousel.tsx +0 -230
- asap_protocol-2.1.0/apps/web/src/components/ui/checkbox.tsx +0 -32
- asap_protocol-2.1.0/apps/web/src/components/ui/command.tsx +0 -161
- asap_protocol-2.1.0/apps/web/src/components/ui/dialog.tsx +0 -144
- asap_protocol-2.1.0/apps/web/src/components/ui/dropdown-menu.tsx +0 -257
- asap_protocol-2.1.0/apps/web/src/components/ui/form.tsx +0 -167
- asap_protocol-2.1.0/apps/web/src/components/ui/input.tsx +0 -21
- asap_protocol-2.1.0/apps/web/src/components/ui/label.tsx +0 -24
- asap_protocol-2.1.0/apps/web/src/components/ui/navigation-menu.tsx +0 -168
- asap_protocol-2.1.0/apps/web/src/components/ui/scroll-area.tsx +0 -56
- asap_protocol-2.1.0/apps/web/src/components/ui/select.tsx +0 -190
- asap_protocol-2.1.0/apps/web/src/components/ui/separator.tsx +0 -28
- asap_protocol-2.1.0/apps/web/src/components/ui/sheet.tsx +0 -143
- asap_protocol-2.1.0/apps/web/src/components/ui/skeleton.tsx +0 -13
- asap_protocol-2.1.0/apps/web/src/components/ui/tabs.tsx +0 -91
- asap_protocol-2.1.0/apps/web/src/components/ui/textarea.tsx +0 -18
- asap_protocol-2.1.0/apps/web/src/lib/github-issues.test.ts +0 -81
- asap_protocol-2.1.0/apps/web/src/lib/github-issues.ts +0 -76
- asap_protocol-2.1.0/apps/web/src/lib/rate-limit.ts +0 -84
- asap_protocol-2.1.0/apps/web/src/lib/register-schema.ts +0 -35
- asap_protocol-2.1.0/apps/web/src/lib/registry-schema.ts +0 -38
- asap_protocol-2.1.0/apps/web/src/lib/registry.ts +0 -117
- asap_protocol-2.1.0/apps/web/src/lib/url-validator-server.ts +0 -75
- asap_protocol-2.1.0/apps/web/src/lib/url-validator.test.ts +0 -148
- asap_protocol-2.1.0/apps/web/src/lib/url-validator.ts +0 -63
- asap_protocol-2.1.0/apps/web/src/lib/utils.ts +0 -6
- asap_protocol-2.1.0/apps/web/src/proxy.ts +0 -38
- asap_protocol-2.1.0/apps/web/src/types/next-auth.d.ts +0 -31
- asap_protocol-2.1.0/apps/web/src/types/protocol.d.ts +0 -1807
- asap_protocol-2.1.0/apps/web/src/types/registry.d.ts +0 -22
- asap_protocol-2.1.0/apps/web/tests/browse.spec.ts +0 -24
- asap_protocol-2.1.0/apps/web/tests/load/browse-500.spec.ts +0 -71
- asap_protocol-2.1.0/apps/web/tsconfig.json +0 -34
- asap_protocol-2.1.0/apps/web/vitest.config.ts +0 -19
- asap_protocol-2.1.0/apps/web/vitest.setup.ts +0 -10
- asap_protocol-2.1.0/asap-compliance/README.md +0 -69
- asap_protocol-2.1.0/asap-compliance/asap_compliance/__init__.py +0 -7
- asap_protocol-2.1.0/asap-compliance/asap_compliance/config.py +0 -22
- asap_protocol-2.1.0/asap-compliance/asap_compliance/harness.py +0 -32
- asap_protocol-2.1.0/asap-compliance/asap_compliance/pytest_plugin.py +0 -52
- asap_protocol-2.1.0/asap-compliance/asap_compliance/validators/__init__.py +0 -43
- asap_protocol-2.1.0/asap-compliance/asap_compliance/validators/handshake.py +0 -336
- asap_protocol-2.1.0/asap-compliance/asap_compliance/validators/schema.py +0 -285
- asap_protocol-2.1.0/asap-compliance/asap_compliance/validators/sla.py +0 -252
- asap_protocol-2.1.0/asap-compliance/asap_compliance/validators/state.py +0 -230
- asap_protocol-2.1.0/asap-compliance/pyproject.toml +0 -58
- asap_protocol-2.1.0/asap-compliance/tests/__init__.py +0 -1
- asap_protocol-2.1.0/asap-compliance/tests/conftest.py +0 -55
- asap_protocol-2.1.0/asap-compliance/tests/test_handshake.py +0 -296
- asap_protocol-2.1.0/asap-compliance/tests/test_plugin.py +0 -26
- asap_protocol-2.1.0/asap-compliance/tests/test_schema.py +0 -260
- asap_protocol-2.1.0/asap-compliance/tests/test_sla.py +0 -105
- asap_protocol-2.1.0/asap-compliance/tests/test_state.py +0 -99
- asap_protocol-2.1.0/asap-compliance/tests/test_state_integration.py +0 -96
- asap_protocol-2.1.0/asap-compliance/uv.lock +0 -1268
- asap_protocol-2.1.0/benchmarks/README.md +0 -391
- asap_protocol-2.1.0/benchmarks/RESULTS.md +0 -220
- asap_protocol-2.1.0/benchmarks/__init__.py +0 -14
- asap_protocol-2.1.0/benchmarks/benchmark_crypto.py +0 -129
- asap_protocol-2.1.0/benchmarks/benchmark_models.py +0 -288
- asap_protocol-2.1.0/benchmarks/benchmark_transport.py +0 -806
- asap_protocol-2.1.0/benchmarks/conftest.py +0 -86
- asap_protocol-2.1.0/benchmarks/load_test.py +0 -451
- asap_protocol-2.1.0/benchmarks/memory_test.py +0 -504
- asap_protocol-2.1.0/benchmarks/stress_test.py +0 -507
- asap_protocol-2.1.0/docs/adr/ADR-001-ulid-for-id-generation.md +0 -60
- asap_protocol-2.1.0/docs/adr/ADR-002-async-first-api-design.md +0 -52
- asap_protocol-2.1.0/docs/adr/ADR-003-jsonrpc20-binding.md +0 -58
- asap_protocol-2.1.0/docs/adr/ADR-004-pydantic-for-models.md +0 -58
- asap_protocol-2.1.0/docs/adr/ADR-005-state-machine-design.md +0 -53
- asap_protocol-2.1.0/docs/adr/ADR-006-security-defaults.md +0 -51
- asap_protocol-2.1.0/docs/adr/ADR-007-fastapi-for-server.md +0 -59
- asap_protocol-2.1.0/docs/adr/ADR-008-httpx-for-client.md +0 -59
- asap_protocol-2.1.0/docs/adr/ADR-009-snapshot-vs-event-sourced.md +0 -59
- asap_protocol-2.1.0/docs/adr/ADR-010-python-313-requirement.md +0 -52
- asap_protocol-2.1.0/docs/adr/ADR-011-per-sender-rate-limiting.md +0 -53
- asap_protocol-2.1.0/docs/adr/ADR-012-error-taxonomy.md +0 -53
- asap_protocol-2.1.0/docs/adr/ADR-013-mcp-integration-approach.md +0 -53
- asap_protocol-2.1.0/docs/adr/ADR-014-testing-strategy.md +0 -52
- asap_protocol-2.1.0/docs/adr/ADR-015-observability-design.md +0 -53
- asap_protocol-2.1.0/docs/adr/ADR-016-versioning-policy.md +0 -52
- asap_protocol-2.1.0/docs/adr/ADR-017-failure-injection-strategy.md +0 -58
- asap_protocol-2.1.0/docs/adr/README.md +0 -42
- asap_protocol-2.1.0/docs/adr/template.md +0 -51
- asap_protocol-2.1.0/docs/api-reference.md +0 -45
- asap_protocol-2.1.0/docs/best-practices/agent-failover-migration.md +0 -284
- asap_protocol-2.1.0/docs/deployment/kubernetes.md +0 -161
- asap_protocol-2.1.0/docs/error-handling.md +0 -376
- asap_protocol-2.1.0/docs/guides/compliance-testing.md +0 -110
- asap_protocol-2.1.0/docs/guides/identity-signing.md +0 -124
- asap_protocol-2.1.0/docs/guides/migration-v1.1-to-v1.2.md +0 -96
- asap_protocol-2.1.0/docs/guides/openclaw-integration.md +0 -175
- asap_protocol-2.1.0/docs/guides/registry-verification-review.md +0 -77
- asap_protocol-2.1.0/docs/guides/vercel-ai-sdk.md +0 -186
- asap_protocol-2.1.0/docs/index.md +0 -99
- asap_protocol-2.1.0/docs/mcp-integration.md +0 -96
- asap_protocol-2.1.0/docs/metrics.md +0 -426
- asap_protocol-2.1.0/docs/migration.md +0 -650
- asap_protocol-2.1.0/docs/observability.md +0 -127
- asap_protocol-2.1.0/docs/raw-fetch.md +0 -142
- asap_protocol-2.1.0/docs/security/mtls.md +0 -137
- asap_protocol-2.1.0/docs/security/v1.1-security-model.md +0 -167
- asap_protocol-2.1.0/docs/security.md +0 -1314
- asap_protocol-2.1.0/docs/state-management.md +0 -561
- asap_protocol-2.1.0/docs/testing.md +0 -914
- asap_protocol-2.1.0/docs/transport.md +0 -661
- asap_protocol-2.1.0/docs/troubleshooting.md +0 -405
- asap_protocol-2.1.0/docs/tutorials/first-agent.md +0 -163
- asap_protocol-2.1.0/docs/tutorials/multi-agent.md +0 -253
- asap_protocol-2.1.0/docs/tutorials/production-checklist.md +0 -141
- asap_protocol-2.1.0/docs/tutorials/resilience.md +0 -255
- asap_protocol-2.1.0/docs/tutorials/stateful-workflows.md +0 -253
- asap_protocol-2.1.0/helm/asap-agent/Chart.yaml +0 -17
- asap_protocol-2.1.0/helm/asap-agent/README.md +0 -69
- asap_protocol-2.1.0/helm/asap-agent/templates/NOTES.txt +0 -16
- asap_protocol-2.1.0/helm/asap-agent/templates/_helpers.tpl +0 -24
- asap_protocol-2.1.0/helm/asap-agent/templates/deployment.yaml +0 -78
- asap_protocol-2.1.0/helm/asap-agent/templates/ingress.yaml +0 -41
- asap_protocol-2.1.0/helm/asap-agent/templates/service.yaml +0 -15
- asap_protocol-2.1.0/helm/asap-agent/values.yaml +0 -87
- asap_protocol-2.1.0/k8s/README.md +0 -40
- asap_protocol-2.1.0/k8s/deployment.yaml +0 -81
- asap_protocol-2.1.0/k8s/ingress.yaml +0 -37
- asap_protocol-2.1.0/k8s/service.yaml +0 -22
- asap_protocol-2.1.0/mkdocs.yml +0 -92
- asap_protocol-2.1.0/packages/asap-openclaw-skill/README.md +0 -63
- asap_protocol-2.1.0/packages/asap-openclaw-skill/package-lock.json +0 -1467
- asap_protocol-2.1.0/packages/asap-openclaw-skill/package.json +0 -42
- asap_protocol-2.1.0/packages/asap-openclaw-skill/src/index.test.ts +0 -273
- asap_protocol-2.1.0/packages/asap-openclaw-skill/src/index.ts +0 -201
- asap_protocol-2.1.0/packages/asap-openclaw-skill/tsconfig.json +0 -17
- asap_protocol-2.1.0/registry.json +0 -3082
- asap_protocol-2.1.0/revoked_agents.json +0 -4
- asap_protocol-2.1.0/scripts/__init__.py +0 -5
- asap_protocol-2.1.0/scripts/export_schemas.py +0 -26
- asap_protocol-2.1.0/scripts/generate_types.py +0 -78
- asap_protocol-2.1.0/scripts/lib/__init__.py +0 -0
- asap_protocol-2.1.0/scripts/lib/debug_id.py +0 -16
- asap_protocol-2.1.0/scripts/lib/registry_io.py +0 -92
- asap_protocol-2.1.0/scripts/observability-stack/README.md +0 -27
- asap_protocol-2.1.0/scripts/observability-stack/docker-compose.yml +0 -35
- asap_protocol-2.1.0/scripts/observability-stack/grafana/provisioning/dashboards/dashboards.yaml +0 -11
- asap_protocol-2.1.0/scripts/observability-stack/grafana/provisioning/datasources/datasources.yaml +0 -9
- asap_protocol-2.1.0/scripts/observability-stack/prometheus.yml +0 -13
- asap_protocol-2.1.0/scripts/process_registration.py +0 -318
- asap_protocol-2.1.0/scripts/process_removal.py +0 -163
- asap_protocol-2.1.0/scripts/process_revocation.py +0 -194
- asap_protocol-2.1.0/scripts/regenerate_signed_fixtures.py +0 -70
- asap_protocol-2.1.0/scripts/seed_registry.py +0 -189
- asap_protocol-2.1.0/scripts/test_k8s_deploy.sh +0 -84
- asap_protocol-2.1.0/scripts/validate_registry.py +0 -96
- asap_protocol-2.1.0/scripts/validate_revoked.py +0 -69
- asap_protocol-2.1.0/src/asap/errors.py +0 -342
- asap_protocol-2.1.0/tests/__init__.py +0 -1
- asap_protocol-2.1.0/tests/auth/__init__.py +0 -1
- asap_protocol-2.1.0/tests/auth/test_identity_binding.py +0 -309
- asap_protocol-2.1.0/tests/auth/test_introspection.py +0 -445
- asap_protocol-2.1.0/tests/auth/test_jwks.py +0 -259
- asap_protocol-2.1.0/tests/auth/test_middleware.py +0 -359
- asap_protocol-2.1.0/tests/auth/test_oauth2.py +0 -270
- asap_protocol-2.1.0/tests/auth/test_oidc.py +0 -235
- asap_protocol-2.1.0/tests/auth/test_scopes.py +0 -123
- asap_protocol-2.1.0/tests/auth/test_server_oauth2_integration.py +0 -130
- asap_protocol-2.1.0/tests/auth/test_utils.py +0 -29
- asap_protocol-2.1.0/tests/chaos/__init__.py +0 -17
- asap_protocol-2.1.0/tests/chaos/conftest.py +0 -75
- asap_protocol-2.1.0/tests/chaos/test_clock_skew.py +0 -738
- asap_protocol-2.1.0/tests/chaos/test_crashes.py +0 -506
- asap_protocol-2.1.0/tests/chaos/test_message_reliability.py +0 -722
- asap_protocol-2.1.0/tests/chaos/test_network_partition.py +0 -484
- asap_protocol-2.1.0/tests/chaos/test_websocket_stability.py +0 -707
- asap_protocol-2.1.0/tests/client/__init__.py +0 -1
- asap_protocol-2.1.0/tests/client/test_cache.py +0 -118
- asap_protocol-2.1.0/tests/client/test_market.py +0 -321
- asap_protocol-2.1.0/tests/client/test_revocation.py +0 -191
- asap_protocol-2.1.0/tests/client/test_trust.py +0 -104
- asap_protocol-2.1.0/tests/compatibility/__init__.py +0 -1
- asap_protocol-2.1.0/tests/compatibility/test_v0_1_0_compatibility.py +0 -95
- asap_protocol-2.1.0/tests/compatibility/test_v0_3_0_compatibility.py +0 -119
- asap_protocol-2.1.0/tests/conftest.py +0 -143
- asap_protocol-2.1.0/tests/contract/__init__.py +0 -9
- asap_protocol-2.1.0/tests/contract/conftest.py +0 -48
- asap_protocol-2.1.0/tests/contract/test_schema_evolution.py +0 -601
- asap_protocol-2.1.0/tests/contract/test_v0_1_to_v1_0.py +0 -669
- asap_protocol-2.1.0/tests/contract/test_v0_5_to_v1_0.py +0 -819
- asap_protocol-2.1.0/tests/contract/test_v1_0_to_v0_5.py +0 -891
- asap_protocol-2.1.0/tests/crypto/__init__.py +0 -1
- asap_protocol-2.1.0/tests/crypto/test_keys.py +0 -234
- asap_protocol-2.1.0/tests/crypto/test_signing.py +0 -386
- asap_protocol-2.1.0/tests/crypto/test_trust.py +0 -199
- asap_protocol-2.1.0/tests/discovery/__init__.py +0 -1
- asap_protocol-2.1.0/tests/discovery/test_discovery_client.py +0 -196
- asap_protocol-2.1.0/tests/discovery/test_dnssd.py +0 -576
- asap_protocol-2.1.0/tests/discovery/test_health.py +0 -168
- asap_protocol-2.1.0/tests/discovery/test_registry.py +0 -341
- asap_protocol-2.1.0/tests/discovery/test_validation.py +0 -329
- asap_protocol-2.1.0/tests/discovery/test_wellknown.py +0 -131
- asap_protocol-2.1.0/tests/e2e/__init__.py +0 -1
- asap_protocol-2.1.0/tests/e2e/test_two_agents.py +0 -48
- asap_protocol-2.1.0/tests/economics/__init__.py +0 -1
- asap_protocol-2.1.0/tests/economics/test_delegation.py +0 -810
- asap_protocol-2.1.0/tests/economics/test_delegation_storage.py +0 -464
- asap_protocol-2.1.0/tests/economics/test_metering.py +0 -229
- asap_protocol-2.1.0/tests/economics/test_metering_hooks.py +0 -592
- asap_protocol-2.1.0/tests/economics/test_sla.py +0 -493
- asap_protocol-2.1.0/tests/economics/test_sla_api.py +0 -449
- asap_protocol-2.1.0/tests/economics/test_sla_storage.py +0 -467
- asap_protocol-2.1.0/tests/economics/test_storage.py +0 -897
- asap_protocol-2.1.0/tests/economics/test_usage_api.py +0 -925
- asap_protocol-2.1.0/tests/examples/__init__.py +0 -1
- asap_protocol-2.1.0/tests/examples/test_agent_failover.py +0 -655
- asap_protocol-2.1.0/tests/examples/test_coordinator.py +0 -302
- asap_protocol-2.1.0/tests/examples/test_echo_agent.py +0 -141
- asap_protocol-2.1.0/tests/examples/test_examples_dx.py +0 -607
- asap_protocol-2.1.0/tests/examples/test_run_demo.py +0 -169
- asap_protocol-2.1.0/tests/examples/test_storage_backends.py +0 -85
- asap_protocol-2.1.0/tests/factories.py +0 -97
- asap_protocol-2.1.0/tests/fixtures/asap_ca/README.md +0 -13
- asap_protocol-2.1.0/tests/fixtures/asap_ca/ca_private.pem +0 -3
- asap_protocol-2.1.0/tests/fixtures/asap_ca/ca_public_b64.txt +0 -1
- asap_protocol-2.1.0/tests/fixtures/manifest_with_sla.json +0 -23
- asap_protocol-2.1.0/tests/fixtures/self_signed_manifest.json +0 -1
- asap_protocol-2.1.0/tests/fixtures/verified_manifest.json +0 -1
- asap_protocol-2.1.0/tests/fuzz/__init__.py +0 -1
- asap_protocol-2.1.0/tests/fuzz/test_envelope_fuzz.py +0 -147
- asap_protocol-2.1.0/tests/integration/test_cross_version_compatibility.py +0 -97
- asap_protocol-2.1.0/tests/integration/test_v1_3_cross_feature.py +0 -402
- asap_protocol-2.1.0/tests/integrations/__init__.py +0 -1
- asap_protocol-2.1.0/tests/integrations/test_crewai.py +0 -199
- asap_protocol-2.1.0/tests/integrations/test_integrations_init.py +0 -38
- asap_protocol-2.1.0/tests/integrations/test_langchain.py +0 -196
- asap_protocol-2.1.0/tests/integrations/test_llamaindex.py +0 -200
- asap_protocol-2.1.0/tests/integrations/test_openclaw.py +0 -334
- asap_protocol-2.1.0/tests/integrations/test_pydanticai.py +0 -163
- asap_protocol-2.1.0/tests/integrations/test_smolagents.py +0 -185
- asap_protocol-2.1.0/tests/integrations/test_vercel_ai.py +0 -190
- asap_protocol-2.1.0/tests/mcp/__init__.py +0 -1
- asap_protocol-2.1.0/tests/mcp/test_asap_integration.py +0 -540
- asap_protocol-2.1.0/tests/mcp/test_client.py +0 -359
- asap_protocol-2.1.0/tests/mcp/test_protocol.py +0 -119
- asap_protocol-2.1.0/tests/mcp/test_serve.py +0 -267
- asap_protocol-2.1.0/tests/mcp/test_server_client.py +0 -329
- asap_protocol-2.1.0/tests/mcp/test_server_runner.py +0 -132
- asap_protocol-2.1.0/tests/mcp/test_server_stdio.py +0 -129
- asap_protocol-2.1.0/tests/models/test_base.py +0 -114
- asap_protocol-2.1.0/tests/models/test_entities.py +0 -1277
- asap_protocol-2.1.0/tests/models/test_enums.py +0 -247
- asap_protocol-2.1.0/tests/models/test_envelope.py +0 -271
- asap_protocol-2.1.0/tests/models/test_ids.py +0 -101
- asap_protocol-2.1.0/tests/models/test_parts.py +0 -508
- asap_protocol-2.1.0/tests/models/test_payloads.py +0 -652
- asap_protocol-2.1.0/tests/models/test_payloads_validation.py +0 -84
- asap_protocol-2.1.0/tests/observability/__init__.py +0 -1
- asap_protocol-2.1.0/tests/observability/test_grafana_dashboards.py +0 -80
- asap_protocol-2.1.0/tests/observability/test_jaeger_tracing.py +0 -236
- asap_protocol-2.1.0/tests/observability/test_logging.py +0 -319
- asap_protocol-2.1.0/tests/observability/test_logging_integration.py +0 -255
- asap_protocol-2.1.0/tests/observability/test_metrics.py +0 -478
- asap_protocol-2.1.0/tests/observability/test_trace_parser.py +0 -441
- asap_protocol-2.1.0/tests/observability/test_trace_ui.py +0 -89
- asap_protocol-2.1.0/tests/observability/test_tracing.py +0 -376
- asap_protocol-2.1.0/tests/properties/__init__.py +0 -1
- asap_protocol-2.1.0/tests/properties/test_model_properties.py +0 -683
- asap_protocol-2.1.0/tests/properties/test_state_machine_properties.py +0 -72
- asap_protocol-2.1.0/tests/scripts/__init__.py +0 -1
- asap_protocol-2.1.0/tests/scripts/test_process_registration.py +0 -476
- asap_protocol-2.1.0/tests/scripts/test_process_removal.py +0 -94
- asap_protocol-2.1.0/tests/scripts/test_process_revocation.py +0 -150
- asap_protocol-2.1.0/tests/scripts/test_seed_registry.py +0 -89
- asap_protocol-2.1.0/tests/state/__init__.py +0 -1
- asap_protocol-2.1.0/tests/state/test_machine.py +0 -237
- asap_protocol-2.1.0/tests/state/test_metering.py +0 -279
- asap_protocol-2.1.0/tests/state/test_snapshot.py +0 -727
- asap_protocol-2.1.0/tests/state/test_sqlite_store.py +0 -332
- asap_protocol-2.1.0/tests/state/test_storage_factory.py +0 -111
- asap_protocol-2.1.0/tests/test_cli.py +0 -1171
- asap_protocol-2.1.0/tests/test_cli_edge_cases.py +0 -156
- asap_protocol-2.1.0/tests/test_docs_links.py +0 -131
- asap_protocol-2.1.0/tests/test_docs_troubleshooting_smoke.py +0 -64
- asap_protocol-2.1.0/tests/test_errors.py +0 -279
- asap_protocol-2.1.0/tests/test_schemas.py +0 -214
- asap_protocol-2.1.0/tests/test_version.py +0 -9
- asap_protocol-2.1.0/tests/testing/__init__.py +0 -3
- asap_protocol-2.1.0/tests/testing/test_assertions.py +0 -174
- asap_protocol-2.1.0/tests/testing/test_fixtures.py +0 -101
- asap_protocol-2.1.0/tests/testing/test_mocks.py +0 -178
- asap_protocol-2.1.0/tests/transport/__init__.py +0 -1
- asap_protocol-2.1.0/tests/transport/conftest.py +0 -249
- asap_protocol-2.1.0/tests/transport/e2e/__init__.py +0 -5
- asap_protocol-2.1.0/tests/transport/e2e/test_circuit_breaker_e2e.py +0 -281
- asap_protocol-2.1.0/tests/transport/e2e/test_full_agent_flow.py +0 -459
- asap_protocol-2.1.0/tests/transport/integration/__init__.py +0 -8
- asap_protocol-2.1.0/tests/transport/integration/test_batch_auth_pooling.py +0 -545
- asap_protocol-2.1.0/tests/transport/integration/test_compression_server.py +0 -642
- asap_protocol-2.1.0/tests/transport/integration/test_health_probes.py +0 -47
- asap_protocol-2.1.0/tests/transport/integration/test_lambda_negotiation.py +0 -173
- asap_protocol-2.1.0/tests/transport/integration/test_metrics_cardinality.py +0 -141
- asap_protocol-2.1.0/tests/transport/integration/test_rate_limiting.py +0 -332
- asap_protocol-2.1.0/tests/transport/integration/test_request_size_limits.py +0 -227
- asap_protocol-2.1.0/tests/transport/integration/test_server_core.py +0 -923
- asap_protocol-2.1.0/tests/transport/integration/test_thread_pool_bounds.py +0 -238
- asap_protocol-2.1.0/tests/transport/integration/test_validation_order.py +0 -272
- asap_protocol-2.1.0/tests/transport/integration/test_websocket_e2e.py +0 -161
- asap_protocol-2.1.0/tests/transport/test_ack_aware_client.py +0 -308
- asap_protocol-2.1.0/tests/transport/test_client.py +0 -1358
- asap_protocol-2.1.0/tests/transport/test_client_edge_cases.py +0 -318
- asap_protocol-2.1.0/tests/transport/test_client_signing.py +0 -127
- asap_protocol-2.1.0/tests/transport/test_delegation_api.py +0 -636
- asap_protocol-2.1.0/tests/transport/test_handlers.py +0 -1020
- asap_protocol-2.1.0/tests/transport/test_jsonrpc.py +0 -419
- asap_protocol-2.1.0/tests/transport/test_message_ack.py +0 -338
- asap_protocol-2.1.0/tests/transport/test_middleware.py +0 -826
- asap_protocol-2.1.0/tests/transport/test_mtls.py +0 -204
- asap_protocol-2.1.0/tests/transport/test_server.py +0 -949
- asap_protocol-2.1.0/tests/transport/test_server_edge_cases.py +0 -387
- asap_protocol-2.1.0/tests/transport/test_sla_websocket.py +0 -162
- asap_protocol-2.1.0/tests/transport/test_websocket.py +0 -2773
- asap_protocol-2.1.0/tests/transport/test_websocket_rate_limit.py +0 -173
- asap_protocol-2.1.0/tests/transport/unit/__init__.py +0 -5
- asap_protocol-2.1.0/tests/transport/unit/test_bounded_executor.py +0 -174
- asap_protocol-2.1.0/tests/transport/unit/test_cache.py +0 -508
- asap_protocol-2.1.0/tests/transport/unit/test_circuit_breaker.py +0 -440
- asap_protocol-2.1.0/tests/transport/unit/test_circuit_breaker_persistence.py +0 -72
- asap_protocol-2.1.0/tests/transport/unit/test_client_coverage_gaps.py +0 -742
- asap_protocol-2.1.0/tests/transport/unit/test_compression.py +0 -427
- asap_protocol-2.1.0/tests/transport/unit/test_lambda_codec.py +0 -231
- asap_protocol-2.1.0/tests/transport/unit/test_retry_backoff.py +0 -509
- asap_protocol-2.1.0/tests/transport/unit/test_retry_edge_cases.py +0 -134
- asap_protocol-2.1.0/tests/transport/unit/test_validators.py +0 -299
- asap_protocol-2.1.0/tests/transport/unit/test_validators_edge_cases.py +0 -124
- asap_protocol-2.1.0/tests/transport/unit/test_webhook.py +0 -656
- asap_protocol-2.1.0/tests/utils/__init__.py +0 -3
- asap_protocol-2.1.0/tests/utils/test_sanitization.py +0 -163
- asap_protocol-2.1.0/uv.lock +0 -5711
- asap_protocol-2.1.0/vercel.json +0 -8
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/LICENSE +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/entities/agent.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/entities/artifact.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/entities/conversation.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/entities/manifest.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/entities/message.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/entities/state_snapshot.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/entities/task.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/envelope.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/parts/data_part.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/parts/file_part.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/parts/resource_part.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/parts/template_part.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/parts/text_part.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/payloads/artifact_notify.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/payloads/mcp_resource_data.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/payloads/mcp_resource_fetch.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/payloads/mcp_tool_call.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/payloads/mcp_tool_result.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/payloads/message_send.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/payloads/state_query.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/payloads/state_restore.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/payloads/task_cancel.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/payloads/task_request.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/payloads/task_response.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/schemas/payloads/task_update.schema.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/auth/scopes.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/auth/utils.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/client/__init__.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/client/cache.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/client/market.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/client/trust.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/crypto/__init__.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/crypto/keys.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/crypto/models.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/crypto/signing.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/crypto/trust_levels.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/discovery/__init__.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/discovery/health.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/discovery/wellknown.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/economics/delegation_storage.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/economics/hooks.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/economics/metering.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/economics/sla_storage.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/__init__.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/agent_failover.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/auth_patterns.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/coordinator.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/echo_agent.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/error_recovery.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/long_running.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/mcp_client_demo.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/mcp_integration.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/multi_step_workflow.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/orchestration.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/rate_limiting.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/run_demo.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/secure_handler.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/state_migration.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/streaming_response.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/v1_3_0_showcase.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/v1_4_0_showcase.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/examples/websocket_concept.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/integrations/langchain.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/integrations/openclaw.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/integrations/pydanticai.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/integrations/smolagents.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/mcp/__init__.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/mcp/protocol.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/mcp/serve.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/mcp/server_runner.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/models/__init__.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/models/base.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/models/envelope.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/models/ids.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/models/parts.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/models/types.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/models/validators.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/observability/__init__.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/observability/dashboards/README.md +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/observability/dashboards/asap-detailed.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/observability/dashboards/asap-red.json +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/observability/logging.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/observability/trace_parser.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/observability/trace_ui.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/observability/tracing.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/schemas.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/state/machine.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/testing/assertions.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/testing/fixtures.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/circuit_breaker.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/codecs/__init__.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/codecs/lambda_codec.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/delegation_api.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/mtls.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/sla_api.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/transport/usage_api.py +0 -0
- {asap_protocol-2.1.0 → asap_protocol-2.2.0}/src/asap/utils/__init__.py +0 -0
|
@@ -177,9 +177,11 @@ cython_debug/
|
|
|
177
177
|
|
|
178
178
|
# Project specific
|
|
179
179
|
!/.cursor/
|
|
180
|
+
/drafts/
|
|
180
181
|
# Strategy docs (private — do not commit)
|
|
181
182
|
.cursor/product-specs/strategy/
|
|
182
183
|
node_modules/
|
|
184
|
+
.pnpm-store/
|
|
183
185
|
.github/wiki/
|
|
184
186
|
|
|
185
187
|
# Next.js app lib (do not ignore; root lib/ is for Python)
|
|
@@ -12,6 +12,131 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
+
## [2.2.0] - 2026-04-15
|
|
16
|
+
|
|
17
|
+
Protocol Hardening release: per-runtime agent identity, capability-based authorization, approval flows, SSE streaming, structured error taxonomy, version negotiation, and async state stores.
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
#### Per-Runtime Agent Identity (S1, ADR-17 extension)
|
|
22
|
+
- **Host/Agent JWT**: `create_host_jwt`, `create_agent_jwt`, `verify_host_jwt`, `verify_agent_jwt` — Ed25519 (EdDSA) JWTs with `jti` replay cache (`auth/agent_jwt.py`)
|
|
23
|
+
- **Identity stores**: `HostIdentity`, `AgentSession`, `HostStore`, `AgentStore`, `InMemoryHostStore`, `InMemoryAgentStore` — per-host and per-agent identity with JWK thumbprint (RFC 7638) (`auth/identity.py`)
|
|
24
|
+
- **Agent endpoints**: `POST /asap/agent/register`, `GET /asap/agent/status`, `POST /asap/agent/revoke`, `POST /asap/agent/rotate-key` — Host JWT Bearer authentication (`transport/agent_routes.py`)
|
|
25
|
+
|
|
26
|
+
#### Capability-Based Authorization (S1)
|
|
27
|
+
- **Capability system**: `CapabilityDefinition`, `CapabilityGrant`, `CapabilityRegistry`, `validate_constraints` — grants with constraints (`max`, `min`, `in`, `not_in`) (`auth/capabilities.py`)
|
|
28
|
+
- **Capability endpoints**: `GET /asap/capability/list`, `GET /asap/capability/describe`, `POST /asap/capability/execute`, `POST /asap/agent/reactivate` (`transport/capability_routes.py`)
|
|
29
|
+
|
|
30
|
+
#### Agent Lifecycle (S1)
|
|
31
|
+
- **Session lifecycle**: `check_agent_expiry`, `extend_session`, `reactivate_agent` — TTL-based session management (`auth/lifecycle.py`)
|
|
32
|
+
|
|
33
|
+
#### Approval Flows (S2)
|
|
34
|
+
- **Device Authorization & CIBA**: `create_device_authorization`, `create_ciba_approval`, `select_approval_method`, `ApprovalStore`, `InMemoryApprovalStore` — RFC 8628 / CIBA-style approval (`auth/approval.py`)
|
|
35
|
+
- **A2H channel**: `A2HApprovalChannel` for agent-to-human approval resolution
|
|
36
|
+
|
|
37
|
+
#### Self-Auth Prevention (S2)
|
|
38
|
+
- **Fresh session**: `FreshSessionConfig`, `check_fresh_session`, `fresh_session_violation_detail` — time-windowed Host JWT validation (`auth/self_auth.py`)
|
|
39
|
+
- **WebAuthn**: Optional `WebAuthnVerifier` for high-risk capability registration
|
|
40
|
+
|
|
41
|
+
#### SSE Streaming (S3)
|
|
42
|
+
- **SSE endpoint**: `POST /asap/stream` returns `text/event-stream` with Envelope JSON events (`transport/server.py`)
|
|
43
|
+
- **TaskStream payload**: Streaming chunks with `chunk`, `progress`, `final`, `status` fields (`models/payloads.py`)
|
|
44
|
+
- **Client streaming**: `ASAPClient.stream(envelope)` parses SSE events into Envelope objects (`transport/client.py`)
|
|
45
|
+
- **Streaming handlers**: `HandlerRegistry.register_streaming_handler`, `dispatch_stream_async` for async generator handlers (`transport/handlers.py`)
|
|
46
|
+
|
|
47
|
+
#### Error Taxonomy (S3, PRD §4.7)
|
|
48
|
+
- **Error hierarchy**: `RecoverableError` / `FatalError` base classes with taxonomy URIs and JSON-RPC codes (-32000 to -32059) (`errors.py`)
|
|
49
|
+
- **Recovery hints**: `retry_after_ms`, `alternative_agents`, `fallback_action` on all ASAP errors
|
|
50
|
+
- **Remote errors**: `RemoteFatalRPCError`, `RemoteRecoverableRPCError` for client-side error reconstruction
|
|
51
|
+
- **Error code registry**: Documented in `docs/error-codes.md`
|
|
52
|
+
|
|
53
|
+
#### ASAP-Version Negotiation (S4)
|
|
54
|
+
- **Version header**: `ASAP-Version` request/response header for wire-level version negotiation (`models/constants.py`)
|
|
55
|
+
- **Version middleware**: `ASAPVersionMiddleware` validates version on `POST /asap` and `POST /asap/stream`; returns `VERSION_INCOMPATIBLE` JSON-RPC error for unsupported versions (`transport/middleware.py`)
|
|
56
|
+
- **Client negotiation**: `ASAPClient` sends supported versions and tracks `last_response_asap_version` (`transport/client.py`)
|
|
57
|
+
- **Manifest field**: `Manifest.supported_versions` for discovery-time version advertisement
|
|
58
|
+
|
|
59
|
+
#### Async State Stores (S4)
|
|
60
|
+
- **AsyncSnapshotStore**: Async protocol (`save`, `get`, `list_versions`, `delete`) replacing sync `SnapshotStore` (deprecated) (`state/snapshot.py`)
|
|
61
|
+
- **AsyncMeteringStore**: Async protocol (`record`, `query`, `aggregate`) replacing sync `MeteringStore` (deprecated) (`state/metering.py`)
|
|
62
|
+
- **SQLite async**: `SQLiteAsyncSnapshotStore` with WAL mode and pragma cache (`state/stores/sqlite.py`)
|
|
63
|
+
|
|
64
|
+
#### JSON-RPC Batch Operations (S5)
|
|
65
|
+
- **Server-side batch**: `POST /asap` accepts JSON arrays per JSON-RPC 2.0 batch spec; processes each request independently and returns array of responses (`transport/server.py`)
|
|
66
|
+
- **Batch size limit**: Configurable `max_batch_size` (default 50); oversized batches rejected with `INVALID_REQUEST` error
|
|
67
|
+
- **Rate limit integration**: `ASAPRateLimiter.check_n()` counts batch sub-requests against rate limits (`transport/rate_limit.py`)
|
|
68
|
+
- **Client batch**: `ASAPClient.batch(envelopes)` sends single HTTP request with JSON array body (`transport/client.py`)
|
|
69
|
+
|
|
70
|
+
#### Tamper-Evident Audit Logging (S5)
|
|
71
|
+
- **Audit models**: `AuditEntry` with SHA-256 hash chain (`prev_hash` → `hash`) for tamper detection (`economics/audit.py`)
|
|
72
|
+
- **AuditStore protocol**: `append`, `query`, `verify_chain`, `count` — with `InMemoryAuditStore` and `SQLiteAuditStore` implementations
|
|
73
|
+
- **Audit hooks**: Optional `audit_store` parameter in `create_app`; automatic logging of successful message processing
|
|
74
|
+
- **Audit API**: `GET /audit` with `urn`, `start`, `end`, `limit`, `offset` query parameters
|
|
75
|
+
|
|
76
|
+
#### Compliance Harness v2 (S5)
|
|
77
|
+
- **Harness runner**: `run_compliance_harness_v2(app)` validates ASGI applications against v2.2 spec (`testing/compliance.py`)
|
|
78
|
+
- **Check categories**: Identity, streaming, errors, versioning, batch, audit — each with multiple checks
|
|
79
|
+
- **Compliance report**: `ComplianceReport` with score (0.0–1.0), check results, and JSON export via `to_json()`
|
|
80
|
+
|
|
81
|
+
### Security
|
|
82
|
+
|
|
83
|
+
- **Dependency upgrades**: pillow 12.2.0 (CVE-2026-40192), pytest 9.0.3 (CVE-2025-71176), python-multipart 0.0.26 (CVE-2026-40347), langsmith 0.7.32 (GHSA-rr7j-v2q5-chgv)
|
|
84
|
+
- **Self-auth prevention**: Agents cannot register capabilities without fresh host session and optional WebAuthn verification
|
|
85
|
+
- **JTI replay cache**: Prevents JWT replay on mutating agent identity endpoints
|
|
86
|
+
|
|
87
|
+
### Changed
|
|
88
|
+
|
|
89
|
+
- **Wire version**: Default transport version bumped from `2.1` to `2.2`; backward compatible with `2.1`
|
|
90
|
+
- **State stores**: `SnapshotStore` and `MeteringStore` sync protocols deprecated in favor of async variants
|
|
91
|
+
|
|
92
|
+
### Technical Details
|
|
93
|
+
|
|
94
|
+
- **Python**: 3.13+
|
|
95
|
+
- **Tests**: 2941 passed, 7 skipped; full CI green (ruff, mypy, pytest, pip-audit)
|
|
96
|
+
- **Coverage**: ≥90% for new v2.2 modules
|
|
97
|
+
- **Full Changelog**: https://github.com/adriannoes/asap-protocol/compare/v2.1.1...v2.2.0
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## [2.1.1] - 2026-03-01
|
|
102
|
+
|
|
103
|
+
Patch release addressing tech debt and findings from the v2.1.0 Red-Team code review. Backward compatible with v2.1.0.
|
|
104
|
+
|
|
105
|
+
### Security
|
|
106
|
+
|
|
107
|
+
- **SEC-01 — JWT algorithm allowlist**: `jose_jwt.decode()` in `auth/jwks.py` and `auth/middleware.py` now restricts algorithms to `EdDSA`, `RS256`, `ES256`, preventing algorithm confusion attacks (RFC 8725 §3.2).
|
|
108
|
+
- **Delegation `aud` claim**: RFC 7519 allows `aud` as an array; `economics/delegation.py` now coerces list to first element instead of string repr.
|
|
109
|
+
- **Vercel AI router**: SECURITY WARNING in docstring and optional `api_key_header` parameter for auth.
|
|
110
|
+
- **Frontend SSRF**: Agent registration URL validation now resolves DNS and blocks private/loopback IPs (DNS rebinding protection).
|
|
111
|
+
|
|
112
|
+
### Architecture & Concurrency
|
|
113
|
+
|
|
114
|
+
- **ARCH-01 — SQLite async bridging**: `state/stores/sqlite.py` exposes `save_async`, `get_async`, `list_versions_async`, `delete_async` using aiosqlite directly, avoiding `_run_sync` and event-loop blocking under concurrent load.
|
|
115
|
+
- **CONC-01**: Replaced `threading.Lock` with `asyncio.Lock` in `auth/oidc.py` and `auth/jwks.py` for cache guards so the event loop is not blocked.
|
|
116
|
+
- **SQLite WAL mode**: `journal_mode=WAL` and `synchronous=NORMAL` applied when opening connections in snapshot store and economics storage for better concurrency.
|
|
117
|
+
- **Registry locks**: GIL-atomic `dict.setdefault()` for registry URL locks in `discovery/registry.py` (removed threading guard).
|
|
118
|
+
|
|
119
|
+
### Reliability & Limits
|
|
120
|
+
|
|
121
|
+
- **Webhook dead letters**: Capped at `MAX_DEAD_LETTERS` (1000) to prevent unbounded memory growth.
|
|
122
|
+
- **ManifestCache**: Background cleanup hook / periodic `cleanup_expired()` documented and ensured for memory release.
|
|
123
|
+
- **InMemoryNonceStore**: Cleanup probability increased; optional max-size fallback.
|
|
124
|
+
- **Rate limiting**: Optional Redis backend (`ASAP_RATE_LIMIT_BACKEND=redis://...`) for shared limits across workers.
|
|
125
|
+
|
|
126
|
+
### Code Quality
|
|
127
|
+
|
|
128
|
+
- **echo_handler**: `TaskRequest.model_validate(envelope.payload_dict)` instead of `**payload_dict` so Pydantic validators run.
|
|
129
|
+
- **Registry**: Empty-string coercion for `repository_url`/`documentation_url` (strip then None).
|
|
130
|
+
- **SQLiteMeteringStorage**: `_ensure_table_once` so schema is created once per instance.
|
|
131
|
+
- **Middleware docstring**: Backlog reference updated (v2.1.1).
|
|
132
|
+
- **Compression**: `prefer_fast_compression` option to prefer gzip over brotli for lower latency.
|
|
133
|
+
|
|
134
|
+
### Technical Details
|
|
135
|
+
|
|
136
|
+
- **Full Changelog**: https://github.com/adriannoes/asap-protocol/compare/v2.1.0...v2.1.1
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
15
140
|
## [2.1.0] - 2026-02-28
|
|
16
141
|
|
|
17
142
|
Consumer SDK, framework integrations, registry UX, agent revocation, and PyPI distribution. Backward compatible with v2.0.0.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: asap-protocol
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.2.0
|
|
4
4
|
Summary: Async Simple Agent Protocol - A streamlined protocol for agent-to-agent communication
|
|
5
5
|
Project-URL: Homepage, https://github.com/adriannoes/asap-protocol
|
|
6
6
|
Project-URL: Documentation, https://adriannoes.github.io/asap-protocol
|
|
@@ -21,13 +21,13 @@ Classifier: Topic :: System :: Distributed Computing
|
|
|
21
21
|
Classifier: Typing :: Typed
|
|
22
22
|
Requires-Python: >=3.13
|
|
23
23
|
Requires-Dist: aiosqlite>=0.20
|
|
24
|
-
Requires-Dist: authlib>=1.
|
|
24
|
+
Requires-Dist: authlib>=1.6.9
|
|
25
25
|
Requires-Dist: brotli>=1.2.0
|
|
26
|
-
Requires-Dist: cryptography>=
|
|
26
|
+
Requires-Dist: cryptography>=46.0.7
|
|
27
27
|
Requires-Dist: fastapi>=0.128.0
|
|
28
28
|
Requires-Dist: httpx[http2]>=0.28.1
|
|
29
29
|
Requires-Dist: jcs>=0.2.0
|
|
30
|
-
Requires-Dist: joserfc>=1.
|
|
30
|
+
Requires-Dist: joserfc>=1.6.3
|
|
31
31
|
Requires-Dist: jsonschema>=4.23.0
|
|
32
32
|
Requires-Dist: limits>=3.0
|
|
33
33
|
Requires-Dist: opentelemetry-api>=1.20
|
|
@@ -53,7 +53,7 @@ Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
|
|
|
53
53
|
Requires-Dist: pytest-benchmark>=5.1; extra == 'dev'
|
|
54
54
|
Requires-Dist: pytest-cov>=6.0; extra == 'dev'
|
|
55
55
|
Requires-Dist: pytest-xdist>=3.5.0; extra == 'dev'
|
|
56
|
-
Requires-Dist: pytest>=
|
|
56
|
+
Requires-Dist: pytest>=9.0.3; extra == 'dev'
|
|
57
57
|
Requires-Dist: ruff>=0.14.14; extra == 'dev'
|
|
58
58
|
Requires-Dist: types-jsonschema>=4.0.0; extra == 'dev'
|
|
59
59
|
Provides-Extra: dns-sd
|
|
@@ -62,6 +62,7 @@ Provides-Extra: docs
|
|
|
62
62
|
Requires-Dist: ghp-import>=2.1.0; extra == 'docs'
|
|
63
63
|
Requires-Dist: mkdocs-material>=9.5; extra == 'docs'
|
|
64
64
|
Requires-Dist: mkdocstrings[python]>=0.27; extra == 'docs'
|
|
65
|
+
Requires-Dist: pymdown-extensions>=10.21; extra == 'docs'
|
|
65
66
|
Provides-Extra: langchain
|
|
66
67
|
Requires-Dist: langchain-core>=0.2; extra == 'langchain'
|
|
67
68
|
Provides-Extra: llamaindex
|
|
@@ -87,9 +88,9 @@ Description-Content-Type: text/markdown
|
|
|
87
88
|
|
|
88
89
|
> A production-ready protocol for agent-to-agent communication and task coordination.
|
|
89
90
|
|
|
90
|
-
**Quick Info**: `v2.
|
|
91
|
+
**Quick Info**: `v2.1.1` | `Apache 2.0` | `Python 3.13+` | [Documentation](https://github.com/adriannoes/asap-protocol/blob/main/docs/index.md) | [PyPI](https://pypi.org/project/asap-protocol/) | [Changelog](https://github.com/adriannoes/asap-protocol/blob/main/CHANGELOG.md)
|
|
91
92
|
|
|
92
|
-
> 🚀 **Live now
|
|
93
|
+
> 🚀 **Live now** our [**agentic marketplace**](https://asap-protocol.vercel.app/) — Browse agents, register yours, request verification.
|
|
93
94
|
|
|
94
95
|
## Why ASAP?
|
|
95
96
|
|
|
@@ -98,13 +99,10 @@ Building multi-agent systems today suffers from three core technical challenges
|
|
|
98
99
|
2. **State Drift**: Lack of native persistence makes it impossible to reliably resume long-running agentic workflows.
|
|
99
100
|
3. **Fragmentation**: No unified way to handle task delegation, artifact exchange and tool execution (MCP) in a single envelope.
|
|
100
101
|
|
|
101
|
-
**ASAP** provides a production-ready communication layer that simplifies these complexities. It's ideal for **multi-agent orchestration**, **stateful workflows** (persistence, resumability), **MCP
|
|
102
|
+
**ASAP** provides a production-ready communication layer that simplifies these complexities. It's ideal for **multi-agent orchestration**, **stateful workflows** (persistence, resumability), **MCP support** and **production systems** requiring high-performance, type-safe agent communication.
|
|
102
103
|
|
|
103
104
|
For simple point-to-point communication, a basic HTTP API might suffice; ASAP shines when you need orchestration, state management and multi-agent coordination. See the [spec](https://github.com/adriannoes/asap-protocol/blob/main/.cursor/product-specs/strategy/v0-original-specs.md) for details.
|
|
104
105
|
|
|
105
|
-
### 🔌 Framework Ecosystem
|
|
106
|
-
ASAP is built for interoperability. Seamlessly integrate your agents into **LangChain**, **CrewAI**, **LlamaIndex**, and **OpenClaw** workflows using our growing library of native adapters and standardized tool-calling schemas.
|
|
107
|
-
|
|
108
106
|
### Key Features
|
|
109
107
|
|
|
110
108
|
- **Stateful orchestration** — Task state machine with snapshotting for resumable workflows.
|
|
@@ -112,8 +110,11 @@ ASAP is built for interoperability. Seamlessly integrate your agents into **Lang
|
|
|
112
110
|
- **Async-native** — `asyncio` + `httpx`; sync and async handlers supported.
|
|
113
111
|
- **MCP integration** — Tool execution and coordination in a single envelope.
|
|
114
112
|
- **Observable** — `trace_id` and `correlation_id` for debugging.
|
|
115
|
-
- **Security** — Bearer auth, OAuth2/JWT
|
|
116
|
-
- **Economics
|
|
113
|
+
- **Security** — Bearer auth, OAuth2/JWT, Ed25519 signed manifests, optional mTLS, replay prevention, HTTPS, rate limiting. [Security Model](https://github.com/adriannoes/asap-protocol/blob/main/docs/security/v1.1-security-model.md) (trust limits, Custom Claims).
|
|
114
|
+
- **Economics** — Usage metering, delegation tokens, SLA framework with breach alerts.
|
|
115
|
+
|
|
116
|
+
### 🆕 Framework Ecosystem
|
|
117
|
+
ASAP is built for interoperability. Seamlessly integrate your agents into **OpenClaw**, **LangChain**, **CrewAI** and **LlamaIndex** workflows using our growing library of native adapters and standardized tool-calling schemas.
|
|
117
118
|
|
|
118
119
|
## Installation
|
|
119
120
|
|
|
@@ -129,7 +130,7 @@ Or with pip:
|
|
|
129
130
|
pip install asap-protocol
|
|
130
131
|
```
|
|
131
132
|
|
|
132
|
-
📦 **Available on [PyPI](https://pypi.org/project/asap-protocol/)
|
|
133
|
+
📦 **Available on [PyPI](https://pypi.org/project/asap-protocol/)** — for reproducible environments, prefer `uv` when possible.
|
|
133
134
|
|
|
134
135
|
## Quick Start
|
|
135
136
|
|
|
@@ -139,23 +140,9 @@ pip install asap-protocol
|
|
|
139
140
|
uv run python -m asap.examples.run_demo
|
|
140
141
|
```
|
|
141
142
|
|
|
142
|
-
**v2.0.0** — [**Agent Marketplace**](https://asap-protocol.vercel.app/) — Browse, verify, and register agents. Lean Registry, Verified Badge, IssueOps.
|
|
143
|
-
|
|
144
|
-
**v1.4.0 showcase** (Pagination on Usage & SLA history):
|
|
145
|
-
|
|
146
|
-
```bash
|
|
147
|
-
uv run python -m asap.examples.v1_4_0_showcase
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
**v1.3.0 showcase** (Delegation + Metering + SLA in one command):
|
|
151
|
-
|
|
152
|
-
```bash
|
|
153
|
-
uv run python -m asap.examples.v1_3_0_showcase
|
|
154
|
-
```
|
|
155
|
-
|
|
156
143
|
**Build your first agent** [here](docs/tutorials/first-agent.md) — server setup, client code, step-by-step (~15 min).
|
|
157
144
|
|
|
158
|
-
[
|
|
145
|
+
[19 examples](src/asap/examples/README.md): orchestration, state migration, MCP, OAuth2, WebSocket, resilience.
|
|
159
146
|
|
|
160
147
|
## Testing
|
|
161
148
|
|
|
@@ -171,7 +158,7 @@ uv run pytest --cov=src --cov-report=term-missing
|
|
|
171
158
|
|
|
172
159
|
[Testing Guide](https://github.com/adriannoes/asap-protocol/blob/main/docs/testing.md) (structure, fixtures, property/load/chaos tests). [Contributing](https://github.com/adriannoes/asap-protocol/blob/main/CONTRIBUTING.md) (dev setup, CI).
|
|
173
160
|
|
|
174
|
-
### Compliance Harness
|
|
161
|
+
### Compliance Harness
|
|
175
162
|
|
|
176
163
|
Validate that your agent follows the ASAP protocol:
|
|
177
164
|
|
|
@@ -182,10 +169,6 @@ pytest --asap-agent-url https://your-agent.example.com -m asap_compliance
|
|
|
182
169
|
|
|
183
170
|
See [Compliance Testing Guide](https://github.com/adriannoes/asap-protocol/blob/main/docs/guides/compliance-testing.md) for handshake, schema and state machine validation.
|
|
184
171
|
|
|
185
|
-
## Benchmarks
|
|
186
|
-
|
|
187
|
-
[Benchmark Results](https://github.com/adriannoes/asap-protocol/blob/main/benchmarks/RESULTS.md): load (1,500+ RPS), stress, memory.
|
|
188
|
-
|
|
189
172
|
## Documentation
|
|
190
173
|
|
|
191
174
|
**Learn**
|
|
@@ -196,8 +179,8 @@ See [Compliance Testing Guide](https://github.com/adriannoes/asap-protocol/blob/
|
|
|
196
179
|
|
|
197
180
|
**Deep Dive**
|
|
198
181
|
- [State Management](https://github.com/adriannoes/asap-protocol/blob/main/docs/state-management.md) | [Best Practices: Failover & Migration](https://github.com/adriannoes/asap-protocol/blob/main/docs/best-practices/agent-failover-migration.md) | [Error Handling](https://github.com/adriannoes/asap-protocol/blob/main/docs/error-handling.md)
|
|
199
|
-
- [Transport](https://github.com/adriannoes/asap-protocol/blob/main/docs/transport.md) | [Security](https://github.com/adriannoes/asap-protocol/blob/main/docs/security.md) | [
|
|
200
|
-
-
|
|
182
|
+
- [Transport](https://github.com/adriannoes/asap-protocol/blob/main/docs/transport.md) | [Security](https://github.com/adriannoes/asap-protocol/blob/main/docs/security.md) | [Security Model](https://github.com/adriannoes/asap-protocol/blob/main/docs/security/v1.1-security-model.md) (OAuth2 trust, Custom Claims)
|
|
183
|
+
- [Identity Signing](https://github.com/adriannoes/asap-protocol/blob/main/docs/guides/identity-signing.md) | [Compliance Testing](https://github.com/adriannoes/asap-protocol/blob/main/docs/guides/compliance-testing.md) | [Migration v1.1 to v1.2](https://github.com/adriannoes/asap-protocol/blob/main/docs/guides/migration-v1.1-to-v1.2.md) | [mTLS](https://github.com/adriannoes/asap-protocol/blob/main/docs/security/mtls.md)
|
|
201
184
|
- [Observability](https://github.com/adriannoes/asap-protocol/blob/main/docs/observability.md) | [Testing](https://github.com/adriannoes/asap-protocol/blob/main/docs/testing.md)
|
|
202
185
|
|
|
203
186
|
**Decisions & Operations**
|
|
@@ -210,39 +193,33 @@ See [Compliance Testing Guide](https://github.com/adriannoes/asap-protocol/blob/
|
|
|
210
193
|
|
|
211
194
|
## CLI
|
|
212
195
|
|
|
213
|
-
**v1.1** adds OAuth2, WebSocket, Discovery (well-known + Lite Registry), State Storage (SQLite)
|
|
196
|
+
- **v1.1** adds OAuth2, WebSocket, Discovery (well-known + Lite Registry), State Storage (SQLite) and Webhooks.
|
|
197
|
+
- **v1.2** adds Ed25519 signed manifests, trust levels, optional mTLS and the [Compliance Harness](https://github.com/adriannoes/asap-protocol/blob/main/asap-compliance/README.md).
|
|
198
|
+
- **v1.3** adds delegation commands (`asap delegation create`, `asap delegation revoke`).
|
|
214
199
|
|
|
215
200
|
```bash
|
|
216
201
|
asap --version # Show version
|
|
217
202
|
asap list-schemas # List all available schemas
|
|
218
203
|
asap export-schemas # Export JSON schemas to file
|
|
219
|
-
asap keys generate -o key.pem # Generate Ed25519 keypair
|
|
220
|
-
asap manifest sign -k key.pem manifest.json # Sign manifest
|
|
221
|
-
asap manifest verify signed.json # Verify signature
|
|
222
|
-
asap manifest info signed.json # Show trust level
|
|
204
|
+
asap keys generate -o key.pem # Generate Ed25519 keypair
|
|
205
|
+
asap manifest sign -k key.pem manifest.json # Sign manifest
|
|
206
|
+
asap manifest verify signed.json # Verify signature
|
|
207
|
+
asap manifest info signed.json # Show trust level
|
|
223
208
|
```
|
|
224
209
|
|
|
225
210
|
See [CLI reference](https://github.com/adriannoes/asap-protocol/blob/main/docs/guides/identity-signing.md) or run `asap --help`.
|
|
226
211
|
|
|
227
212
|
See [docs index](https://github.com/adriannoes/asap-protocol/blob/main/docs/index.md#v11-features-api-reference--guides) and [Identity Signing](https://github.com/adriannoes/asap-protocol/blob/main/docs/guides/identity-signing.md) for details.
|
|
228
213
|
|
|
229
|
-
## What's Next?
|
|
230
|
-
|
|
231
|
-
ASAP is evolving toward an **Agent Marketplace** — an open ecosystem where AI agents discover, trust and collaborate autonomously:
|
|
232
|
-
|
|
233
|
-
- **v1.1**: Identity Layer (OAuth2, WebSocket, Discovery) ✅
|
|
234
|
-
- **v1.2**: Trust Layer (Signed Manifests, Compliance Harness, mTLS) ✅
|
|
235
|
-
- **v1.3**: Economics Layer (Metering, SLAs, Delegation) ✅
|
|
236
|
-
- **v1.4**: Resilience & Scale (Type Safety, Storage Pagination) ✅
|
|
237
|
-
- **v2.0**: Agent Marketplace with Web App (Lean Registry, Verified Badge, IssueOps) ✅
|
|
214
|
+
## 🔭 What's Next?
|
|
238
215
|
|
|
239
|
-
See our [vision document](https://github.com/adriannoes/asap-protocol/blob/main/.cursor/product-specs/strategy/vision-agent-marketplace.md) for the full roadmap.
|
|
216
|
+
ASAP is evolving toward an **Agent Marketplace** — an open ecosystem where AI agents discover, trust and collaborate autonomously. See our [vision document](https://github.com/adriannoes/asap-protocol/blob/main/.cursor/product-specs/strategy/vision-agent-marketplace.md) for the full roadmap.
|
|
240
217
|
|
|
241
218
|
## Contributing
|
|
242
219
|
|
|
243
|
-
**Community feedback and contributions are essential** for ASAP Protocol's evolution.
|
|
220
|
+
**Community feedback and contributions are essential** for ASAP Protocol's evolution. We're working on improvements and your input helps shape the future of the protocol.
|
|
244
221
|
|
|
245
|
-
|
|
222
|
+
Every contribution, from bug reports to feature suggestions, documentation improvements and code contributions, makes a real difference.
|
|
246
223
|
|
|
247
224
|
Check out our [contributing guidelines](https://github.com/adriannoes/asap-protocol/blob/main/CONTRIBUTING.md) to get started. It's easier than you think! 🚀
|
|
248
225
|
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
|
|
8
8
|
> A production-ready protocol for agent-to-agent communication and task coordination.
|
|
9
9
|
|
|
10
|
-
**Quick Info**: `v2.
|
|
10
|
+
**Quick Info**: `v2.1.1` | `Apache 2.0` | `Python 3.13+` | [Documentation](https://github.com/adriannoes/asap-protocol/blob/main/docs/index.md) | [PyPI](https://pypi.org/project/asap-protocol/) | [Changelog](https://github.com/adriannoes/asap-protocol/blob/main/CHANGELOG.md)
|
|
11
11
|
|
|
12
|
-
> 🚀 **Live now
|
|
12
|
+
> 🚀 **Live now** our [**agentic marketplace**](https://asap-protocol.vercel.app/) — Browse agents, register yours, request verification.
|
|
13
13
|
|
|
14
14
|
## Why ASAP?
|
|
15
15
|
|
|
@@ -18,13 +18,10 @@ Building multi-agent systems today suffers from three core technical challenges
|
|
|
18
18
|
2. **State Drift**: Lack of native persistence makes it impossible to reliably resume long-running agentic workflows.
|
|
19
19
|
3. **Fragmentation**: No unified way to handle task delegation, artifact exchange and tool execution (MCP) in a single envelope.
|
|
20
20
|
|
|
21
|
-
**ASAP** provides a production-ready communication layer that simplifies these complexities. It's ideal for **multi-agent orchestration**, **stateful workflows** (persistence, resumability), **MCP
|
|
21
|
+
**ASAP** provides a production-ready communication layer that simplifies these complexities. It's ideal for **multi-agent orchestration**, **stateful workflows** (persistence, resumability), **MCP support** and **production systems** requiring high-performance, type-safe agent communication.
|
|
22
22
|
|
|
23
23
|
For simple point-to-point communication, a basic HTTP API might suffice; ASAP shines when you need orchestration, state management and multi-agent coordination. See the [spec](https://github.com/adriannoes/asap-protocol/blob/main/.cursor/product-specs/strategy/v0-original-specs.md) for details.
|
|
24
24
|
|
|
25
|
-
### 🔌 Framework Ecosystem
|
|
26
|
-
ASAP is built for interoperability. Seamlessly integrate your agents into **LangChain**, **CrewAI**, **LlamaIndex**, and **OpenClaw** workflows using our growing library of native adapters and standardized tool-calling schemas.
|
|
27
|
-
|
|
28
25
|
### Key Features
|
|
29
26
|
|
|
30
27
|
- **Stateful orchestration** — Task state machine with snapshotting for resumable workflows.
|
|
@@ -32,8 +29,11 @@ ASAP is built for interoperability. Seamlessly integrate your agents into **Lang
|
|
|
32
29
|
- **Async-native** — `asyncio` + `httpx`; sync and async handlers supported.
|
|
33
30
|
- **MCP integration** — Tool execution and coordination in a single envelope.
|
|
34
31
|
- **Observable** — `trace_id` and `correlation_id` for debugging.
|
|
35
|
-
- **Security** — Bearer auth, OAuth2/JWT
|
|
36
|
-
- **Economics
|
|
32
|
+
- **Security** — Bearer auth, OAuth2/JWT, Ed25519 signed manifests, optional mTLS, replay prevention, HTTPS, rate limiting. [Security Model](https://github.com/adriannoes/asap-protocol/blob/main/docs/security/v1.1-security-model.md) (trust limits, Custom Claims).
|
|
33
|
+
- **Economics** — Usage metering, delegation tokens, SLA framework with breach alerts.
|
|
34
|
+
|
|
35
|
+
### 🆕 Framework Ecosystem
|
|
36
|
+
ASAP is built for interoperability. Seamlessly integrate your agents into **OpenClaw**, **LangChain**, **CrewAI** and **LlamaIndex** workflows using our growing library of native adapters and standardized tool-calling schemas.
|
|
37
37
|
|
|
38
38
|
## Installation
|
|
39
39
|
|
|
@@ -49,7 +49,7 @@ Or with pip:
|
|
|
49
49
|
pip install asap-protocol
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
📦 **Available on [PyPI](https://pypi.org/project/asap-protocol/)
|
|
52
|
+
📦 **Available on [PyPI](https://pypi.org/project/asap-protocol/)** — for reproducible environments, prefer `uv` when possible.
|
|
53
53
|
|
|
54
54
|
## Quick Start
|
|
55
55
|
|
|
@@ -59,23 +59,9 @@ pip install asap-protocol
|
|
|
59
59
|
uv run python -m asap.examples.run_demo
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
**v2.0.0** — [**Agent Marketplace**](https://asap-protocol.vercel.app/) — Browse, verify, and register agents. Lean Registry, Verified Badge, IssueOps.
|
|
63
|
-
|
|
64
|
-
**v1.4.0 showcase** (Pagination on Usage & SLA history):
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
uv run python -m asap.examples.v1_4_0_showcase
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
**v1.3.0 showcase** (Delegation + Metering + SLA in one command):
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
uv run python -m asap.examples.v1_3_0_showcase
|
|
74
|
-
```
|
|
75
|
-
|
|
76
62
|
**Build your first agent** [here](docs/tutorials/first-agent.md) — server setup, client code, step-by-step (~15 min).
|
|
77
63
|
|
|
78
|
-
[
|
|
64
|
+
[19 examples](src/asap/examples/README.md): orchestration, state migration, MCP, OAuth2, WebSocket, resilience.
|
|
79
65
|
|
|
80
66
|
## Testing
|
|
81
67
|
|
|
@@ -91,7 +77,7 @@ uv run pytest --cov=src --cov-report=term-missing
|
|
|
91
77
|
|
|
92
78
|
[Testing Guide](https://github.com/adriannoes/asap-protocol/blob/main/docs/testing.md) (structure, fixtures, property/load/chaos tests). [Contributing](https://github.com/adriannoes/asap-protocol/blob/main/CONTRIBUTING.md) (dev setup, CI).
|
|
93
79
|
|
|
94
|
-
### Compliance Harness
|
|
80
|
+
### Compliance Harness
|
|
95
81
|
|
|
96
82
|
Validate that your agent follows the ASAP protocol:
|
|
97
83
|
|
|
@@ -102,10 +88,6 @@ pytest --asap-agent-url https://your-agent.example.com -m asap_compliance
|
|
|
102
88
|
|
|
103
89
|
See [Compliance Testing Guide](https://github.com/adriannoes/asap-protocol/blob/main/docs/guides/compliance-testing.md) for handshake, schema and state machine validation.
|
|
104
90
|
|
|
105
|
-
## Benchmarks
|
|
106
|
-
|
|
107
|
-
[Benchmark Results](https://github.com/adriannoes/asap-protocol/blob/main/benchmarks/RESULTS.md): load (1,500+ RPS), stress, memory.
|
|
108
|
-
|
|
109
91
|
## Documentation
|
|
110
92
|
|
|
111
93
|
**Learn**
|
|
@@ -116,8 +98,8 @@ See [Compliance Testing Guide](https://github.com/adriannoes/asap-protocol/blob/
|
|
|
116
98
|
|
|
117
99
|
**Deep Dive**
|
|
118
100
|
- [State Management](https://github.com/adriannoes/asap-protocol/blob/main/docs/state-management.md) | [Best Practices: Failover & Migration](https://github.com/adriannoes/asap-protocol/blob/main/docs/best-practices/agent-failover-migration.md) | [Error Handling](https://github.com/adriannoes/asap-protocol/blob/main/docs/error-handling.md)
|
|
119
|
-
- [Transport](https://github.com/adriannoes/asap-protocol/blob/main/docs/transport.md) | [Security](https://github.com/adriannoes/asap-protocol/blob/main/docs/security.md) | [
|
|
120
|
-
-
|
|
101
|
+
- [Transport](https://github.com/adriannoes/asap-protocol/blob/main/docs/transport.md) | [Security](https://github.com/adriannoes/asap-protocol/blob/main/docs/security.md) | [Security Model](https://github.com/adriannoes/asap-protocol/blob/main/docs/security/v1.1-security-model.md) (OAuth2 trust, Custom Claims)
|
|
102
|
+
- [Identity Signing](https://github.com/adriannoes/asap-protocol/blob/main/docs/guides/identity-signing.md) | [Compliance Testing](https://github.com/adriannoes/asap-protocol/blob/main/docs/guides/compliance-testing.md) | [Migration v1.1 to v1.2](https://github.com/adriannoes/asap-protocol/blob/main/docs/guides/migration-v1.1-to-v1.2.md) | [mTLS](https://github.com/adriannoes/asap-protocol/blob/main/docs/security/mtls.md)
|
|
121
103
|
- [Observability](https://github.com/adriannoes/asap-protocol/blob/main/docs/observability.md) | [Testing](https://github.com/adriannoes/asap-protocol/blob/main/docs/testing.md)
|
|
122
104
|
|
|
123
105
|
**Decisions & Operations**
|
|
@@ -130,39 +112,33 @@ See [Compliance Testing Guide](https://github.com/adriannoes/asap-protocol/blob/
|
|
|
130
112
|
|
|
131
113
|
## CLI
|
|
132
114
|
|
|
133
|
-
**v1.1** adds OAuth2, WebSocket, Discovery (well-known + Lite Registry), State Storage (SQLite)
|
|
115
|
+
- **v1.1** adds OAuth2, WebSocket, Discovery (well-known + Lite Registry), State Storage (SQLite) and Webhooks.
|
|
116
|
+
- **v1.2** adds Ed25519 signed manifests, trust levels, optional mTLS and the [Compliance Harness](https://github.com/adriannoes/asap-protocol/blob/main/asap-compliance/README.md).
|
|
117
|
+
- **v1.3** adds delegation commands (`asap delegation create`, `asap delegation revoke`).
|
|
134
118
|
|
|
135
119
|
```bash
|
|
136
120
|
asap --version # Show version
|
|
137
121
|
asap list-schemas # List all available schemas
|
|
138
122
|
asap export-schemas # Export JSON schemas to file
|
|
139
|
-
asap keys generate -o key.pem # Generate Ed25519 keypair
|
|
140
|
-
asap manifest sign -k key.pem manifest.json # Sign manifest
|
|
141
|
-
asap manifest verify signed.json # Verify signature
|
|
142
|
-
asap manifest info signed.json # Show trust level
|
|
123
|
+
asap keys generate -o key.pem # Generate Ed25519 keypair
|
|
124
|
+
asap manifest sign -k key.pem manifest.json # Sign manifest
|
|
125
|
+
asap manifest verify signed.json # Verify signature
|
|
126
|
+
asap manifest info signed.json # Show trust level
|
|
143
127
|
```
|
|
144
128
|
|
|
145
129
|
See [CLI reference](https://github.com/adriannoes/asap-protocol/blob/main/docs/guides/identity-signing.md) or run `asap --help`.
|
|
146
130
|
|
|
147
131
|
See [docs index](https://github.com/adriannoes/asap-protocol/blob/main/docs/index.md#v11-features-api-reference--guides) and [Identity Signing](https://github.com/adriannoes/asap-protocol/blob/main/docs/guides/identity-signing.md) for details.
|
|
148
132
|
|
|
149
|
-
## What's Next?
|
|
150
|
-
|
|
151
|
-
ASAP is evolving toward an **Agent Marketplace** — an open ecosystem where AI agents discover, trust and collaborate autonomously:
|
|
152
|
-
|
|
153
|
-
- **v1.1**: Identity Layer (OAuth2, WebSocket, Discovery) ✅
|
|
154
|
-
- **v1.2**: Trust Layer (Signed Manifests, Compliance Harness, mTLS) ✅
|
|
155
|
-
- **v1.3**: Economics Layer (Metering, SLAs, Delegation) ✅
|
|
156
|
-
- **v1.4**: Resilience & Scale (Type Safety, Storage Pagination) ✅
|
|
157
|
-
- **v2.0**: Agent Marketplace with Web App (Lean Registry, Verified Badge, IssueOps) ✅
|
|
133
|
+
## 🔭 What's Next?
|
|
158
134
|
|
|
159
|
-
See our [vision document](https://github.com/adriannoes/asap-protocol/blob/main/.cursor/product-specs/strategy/vision-agent-marketplace.md) for the full roadmap.
|
|
135
|
+
ASAP is evolving toward an **Agent Marketplace** — an open ecosystem where AI agents discover, trust and collaborate autonomously. See our [vision document](https://github.com/adriannoes/asap-protocol/blob/main/.cursor/product-specs/strategy/vision-agent-marketplace.md) for the full roadmap.
|
|
160
136
|
|
|
161
137
|
## Contributing
|
|
162
138
|
|
|
163
|
-
**Community feedback and contributions are essential** for ASAP Protocol's evolution.
|
|
139
|
+
**Community feedback and contributions are essential** for ASAP Protocol's evolution. We're working on improvements and your input helps shape the future of the protocol.
|
|
164
140
|
|
|
165
|
-
|
|
141
|
+
Every contribution, from bug reports to feature suggestions, documentation improvements and code contributions, makes a real difference.
|
|
166
142
|
|
|
167
143
|
Check out our [contributing guidelines](https://github.com/adriannoes/asap-protocol/blob/main/CONTRIBUTING.md) to get started. It's easier than you think! 🚀
|
|
168
144
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "asap-protocol"
|
|
3
|
-
version = "2.
|
|
3
|
+
version = "2.2.0"
|
|
4
4
|
description = "Async Simple Agent Protocol - A streamlined protocol for agent-to-agent communication"
|
|
5
5
|
authors = [
|
|
6
6
|
{name = "ASAP Protocol Contributors"}
|
|
@@ -22,14 +22,14 @@ classifiers = [
|
|
|
22
22
|
|
|
23
23
|
dependencies = [
|
|
24
24
|
"aiosqlite>=0.20",
|
|
25
|
-
"cryptography>=
|
|
25
|
+
"cryptography>=46.0.7",
|
|
26
26
|
"jcs>=0.2.0",
|
|
27
27
|
"jsonschema>=4.23.0",
|
|
28
28
|
"pydantic>=2.12.5",
|
|
29
29
|
"fastapi>=0.128.0",
|
|
30
30
|
"httpx[http2]>=0.28.1",
|
|
31
|
-
"authlib>=1.
|
|
32
|
-
"joserfc>=1.
|
|
31
|
+
"authlib>=1.6.9",
|
|
32
|
+
"joserfc>=1.6.3",
|
|
33
33
|
"uvicorn>=0.34",
|
|
34
34
|
"python-ulid>=3.0",
|
|
35
35
|
"packaging>=25.0",
|
|
@@ -44,14 +44,12 @@ dependencies = [
|
|
|
44
44
|
"opentelemetry-instrumentation-fastapi>=0.41",
|
|
45
45
|
"opentelemetry-instrumentation-httpx>=0.41",
|
|
46
46
|
"opentelemetry-exporter-otlp-proto-grpc>=1.20",
|
|
47
|
-
"cryptography>=41.0",
|
|
48
|
-
"jcs>=0.2.0",
|
|
49
47
|
]
|
|
50
48
|
|
|
51
49
|
[project.optional-dependencies]
|
|
52
50
|
dev = [
|
|
53
51
|
"brotli>=1.1.0",
|
|
54
|
-
"pytest>=
|
|
52
|
+
"pytest>=9.0.3",
|
|
55
53
|
"pytest-asyncio>=0.24",
|
|
56
54
|
"pytest-cov>=6.0",
|
|
57
55
|
"pytest-benchmark>=5.1",
|
|
@@ -65,6 +63,7 @@ docs = [
|
|
|
65
63
|
"ghp-import>=2.1.0",
|
|
66
64
|
"mkdocs-material>=9.5",
|
|
67
65
|
"mkdocstrings[python]>=0.27",
|
|
66
|
+
"pymdown-extensions>=10.21",
|
|
68
67
|
]
|
|
69
68
|
dns-sd = [
|
|
70
69
|
"zeroconf>=0.80",
|
|
@@ -103,6 +102,31 @@ Repository = "https://github.com/adriannoes/asap-protocol"
|
|
|
103
102
|
Issues = "https://github.com/adriannoes/asap-protocol/issues"
|
|
104
103
|
"PyPI" = "https://pypi.org/project/asap-protocol/"
|
|
105
104
|
|
|
105
|
+
# Override transitive dependencies for security fixes:
|
|
106
|
+
# - pyjwt>=2.12.0 for CVE-2026-32597 (crit header validation)
|
|
107
|
+
# - pyasn1>=0.6.3 for CVE-2026-30922 (DoS via unbounded recursion)
|
|
108
|
+
# - tinytag>=2.2.1 for CVE-2026-32889
|
|
109
|
+
# - cryptography>=46.0.7 for CVE-2026-39892 / CVE-2026-34073 (name-constraint / peer identity)
|
|
110
|
+
# - requests>=2.33.0 for CVE-2026-25645 (extract_zipped_paths temp file)
|
|
111
|
+
# - pillow>=12.2.0 for CVE-2026-40192 (transitive, e.g. pdf/vision stacks)
|
|
112
|
+
# - pytest>=9.0.3 for CVE-2025-71176 (dev)
|
|
113
|
+
# - python-multipart>=0.0.26 for CVE-2026-40347 (FastAPI stack)
|
|
114
|
+
# - pygments>=2.20.0 for CVE-2026-4539
|
|
115
|
+
# - langsmith>=0.7.31 for GHSA-rr7j-v2q5-chgv
|
|
116
|
+
[tool.uv]
|
|
117
|
+
override-dependencies = [
|
|
118
|
+
"pyjwt>=2.12.0",
|
|
119
|
+
"pyasn1>=0.6.3",
|
|
120
|
+
"tinytag>=2.2.1",
|
|
121
|
+
"cryptography>=46.0.7",
|
|
122
|
+
"requests>=2.33.0",
|
|
123
|
+
"pillow>=12.2.0",
|
|
124
|
+
"pytest>=9.0.3",
|
|
125
|
+
"python-multipart>=0.0.26",
|
|
126
|
+
"pygments>=2.20.0",
|
|
127
|
+
"langsmith>=0.7.31",
|
|
128
|
+
]
|
|
129
|
+
|
|
106
130
|
[project.scripts]
|
|
107
131
|
asap = "asap.cli:main"
|
|
108
132
|
asap-mcp-server = "asap.mcp.serve:main"
|
|
@@ -114,6 +138,16 @@ build-backend = "hatchling.build"
|
|
|
114
138
|
[tool.hatch.build.targets.wheel]
|
|
115
139
|
packages = ["src/asap"]
|
|
116
140
|
|
|
141
|
+
[tool.hatch.build.targets.sdist]
|
|
142
|
+
include = [
|
|
143
|
+
"/src",
|
|
144
|
+
"/schemas",
|
|
145
|
+
"/pyproject.toml",
|
|
146
|
+
"/README.md",
|
|
147
|
+
"/LICENSE",
|
|
148
|
+
"/CHANGELOG.md",
|
|
149
|
+
]
|
|
150
|
+
|
|
117
151
|
[tool.ruff]
|
|
118
152
|
target-version = "py313"
|
|
119
153
|
line-length = 100
|