asap-protocol 2.1.1__tar.gz → 2.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/.gitignore +4 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/CHANGELOG.md +194 -1
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/PKG-INFO +40 -37
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/README.md +31 -31
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/pyproject.toml +50 -7
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/__init__.py +1 -1
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/auth/__init__.py +30 -5
- asap_protocol-2.2.1/src/asap/auth/agent_jwt.py +420 -0
- asap_protocol-2.2.1/src/asap/auth/approval.py +398 -0
- asap_protocol-2.2.1/src/asap/auth/capabilities.py +282 -0
- asap_protocol-2.2.1/src/asap/auth/identity.py +217 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/auth/introspection.py +1 -10
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/auth/jwks.py +0 -6
- asap_protocol-2.2.1/src/asap/auth/lifecycle.py +67 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/auth/middleware.py +7 -17
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/auth/oauth2.py +1 -10
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/auth/oidc.py +0 -9
- asap_protocol-2.2.1/src/asap/auth/self_auth.py +276 -0
- asap_protocol-2.2.1/src/asap/auth/webauthn.py +473 -0
- asap_protocol-2.1.1/src/asap/cli.py → asap_protocol-2.2.1/src/asap/cli/__init__.py +7 -0
- asap_protocol-2.2.1/src/asap/cli/audit_export.py +194 -0
- asap_protocol-2.2.1/src/asap/cli/compliance_check.py +108 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/client/http_client.py +4 -2
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/client/market.py +27 -7
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/client/revocation.py +1 -1
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/crypto/trust.py +1 -1
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/discovery/dnssd.py +2 -1
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/discovery/registry.py +1 -1
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/discovery/validation.py +0 -6
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/economics/__init__.py +13 -1
- asap_protocol-2.2.1/src/asap/economics/audit.py +342 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/economics/delegation.py +1 -1
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/economics/delegation_storage.py +44 -44
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/economics/hooks.py +15 -13
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/economics/sla.py +3 -3
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/economics/sla_storage.py +20 -22
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/economics/storage.py +65 -62
- asap_protocol-2.2.1/src/asap/errors.py +590 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/README.md +6 -0
- asap_protocol-2.2.1/src/asap/examples/a2h_approval.py +107 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/secure_agent.py +1 -1
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/storage_backends.py +1 -1
- asap_protocol-2.2.1/src/asap/examples/streaming_agent.py +97 -0
- asap_protocol-2.2.1/src/asap/handlers/__init__.py +22 -0
- asap_protocol-2.2.1/src/asap/handlers/hitl.py +72 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/integrations/__init__.py +11 -0
- asap_protocol-2.2.1/src/asap/integrations/a2h.py +554 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/integrations/crewai.py +7 -2
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/integrations/llamaindex.py +10 -4
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/mcp/client.py +0 -14
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/mcp/server.py +9 -22
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/models/constants.py +5 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/models/entities.py +9 -6
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/models/enums.py +1 -4
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/models/payloads.py +33 -3
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/observability/metrics.py +0 -1
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/state/__init__.py +5 -1
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/state/metering.py +42 -3
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/state/snapshot.py +67 -1
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/state/stores/__init__.py +18 -7
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/state/stores/memory.py +69 -1
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/state/stores/sqlite.py +169 -68
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/testing/__init__.py +14 -0
- asap_protocol-2.2.1/src/asap/testing/asgi_factory.py +32 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/testing/assertions.py +33 -21
- asap_protocol-2.2.1/src/asap/testing/compliance.py +439 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/testing/mocks.py +0 -5
- asap_protocol-2.2.1/src/asap/transport/_auth_helpers.py +13 -0
- asap_protocol-2.2.1/src/asap/transport/agent_routes.py +772 -0
- asap_protocol-2.2.1/src/asap/transport/capability_routes.py +372 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/client.py +260 -82
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/executors.py +0 -9
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/handlers.py +123 -6
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/jsonrpc.py +6 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/middleware.py +70 -9
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/rate_limit.py +23 -2
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/server.py +624 -81
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/validators.py +5 -2
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/webhook.py +10 -3
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/websocket.py +76 -6
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/utils/sanitization.py +1 -7
- asap_protocol-2.1.1/.agents/rules/architecture-principles.md +0 -38
- asap_protocol-2.1.1/.agents/rules/frontend.md +0 -57
- asap_protocol-2.1.1/.agents/workflows/development.md +0 -87
- asap_protocol-2.1.1/.cursor/README.md +0 -33
- asap_protocol-2.1.1/.cursor/commands/create-prd.md +0 -60
- asap_protocol-2.1.1/.cursor/commands/generate-tasks.md +0 -125
- asap_protocol-2.1.1/.cursor/commands/reflect.md +0 -11
- asap_protocol-2.1.1/.cursor/commands/remove-ai-slop.md +0 -17
- asap_protocol-2.1.1/.cursor/commands/security-pr-review.md +0 -188
- asap_protocol-2.1.1/.cursor/commands/task-list-development.md +0 -87
- asap_protocol-2.1.1/.cursor/commands/test-coverage-review.md +0 -47
- asap_protocol-2.1.1/.cursor/design/landing-reference.png +0 -0
- asap_protocol-2.1.1/.cursor/design/mobile-strategy.md +0 -39
- asap_protocol-2.1.1/.cursor/dev-planning/architecture/rate-limiting.md +0 -411
- asap_protocol-2.1.1/.cursor/dev-planning/architecture/tech-stack-decisions.md +0 -313
- asap_protocol-2.1.1/.cursor/dev-planning/checkpoints.md +0 -187
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/security-review-report.md +0 -828
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v0.1.0/pre-pypi-release-review.md +0 -582
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v0.1.0/sprint3-code-review.md +0 -674
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v0.1.0/sprint4-code-review.md +0 -77
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v0.1.0/sprint5-code-review.md +0 -382
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v0.5.0/sprint-s1-code-review.md +0 -73
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v0.5.0/sprint-s2-code-review.md +0 -94
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v0.5.0/sprint-s2.5-code-review.md +0 -444
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v0.5.0/sprint-s3-code-review.md +0 -284
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v0.5.0/sprint-s4-code-review.md +0 -99
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v0.5.0/sprint-s5-code-review.md +0 -353
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.0.0/PR-23-security-review.md +0 -531
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.0.0/PR-25-performance-optimizations-review.md +0 -725
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.0.0/PR-26-review.md +0 -92
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.0.0/PR-27-review.md +0 -85
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.0.0/PR-30-review.md +0 -63
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.0.0/PR-31-observability-review.md +0 -656
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.0.0/PR-32-review.md +0 -125
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.0.0/PR-33-review.md +0 -42
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.0.0/PR-34-review.md +0 -721
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.1.0/PR-35-review.md +0 -200
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.1.0/PR-36-review.md +0 -81
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.1.0/PR-37-review.md +0 -233
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.1.0/PR-38-review.md +0 -155
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.1.0/PR-39-review.md +0 -102
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.1.0/PR-40-review.md +0 -285
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.2.0/PR-42-REVIEW.md +0 -35
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.2.0/PR-43-REVIEW.md +0 -48
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.2.0/PR-45-REVIEW.md +0 -51
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.3.0/PR-48-REVIEW.md +0 -419
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.3.0/PR-49-REVIEW.md +0 -175
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.3.0/PR-50-REVIEW.md +0 -262
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.4.0/PR-51-REVIEW.md +0 -42
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v1.4.0/PR-53-REVIEW.md +0 -217
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v2.0.0/PR-57-REVIEW.md +0 -399
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v2.0.0/PR-58-REVIEW.md +0 -518
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v2.0.0/PR-61-REVIEW.md +0 -297
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v2.1.0/PR-71-REVIEW.md +0 -173
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v2.1.0/PR-72-REVIEW.md +0 -66
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v2.1.0/PR-73-REVIEW.md +0 -134
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v2.1.0/PR-76-REVIEW.md +0 -176
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v2.1.0/pr-75-sprint-e4-registry-ux.md +0 -206
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v2.1.0/review-v2.0.md +0 -393
- asap_protocol-2.1.1/.cursor/dev-planning/code-review/v2.2.0/review-pr-82.md +0 -174
- asap_protocol-2.1.1/.cursor/dev-planning/lessons-learned/v1.0.0-retro.md +0 -61
- asap_protocol-2.1.1/.cursor/dev-planning/manual-release-testing.md +0 -52
- asap_protocol-2.1.1/.cursor/dev-planning/references/mcp-specs.md +0 -81
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v0.1.0/sprint-planning-v0.1.0.md +0 -240
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v0.1.0/tasks-prd-asap-implementation.md +0 -850
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v0.1.0/tasks-security-review-report.md +0 -343
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v0.1.0/tasks-sprint3-improvements.md +0 -371
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v0.5.0/tasks-v0.5.0-roadmap.md +0 -195
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v0.5.0/tasks-v0.5.0-s1-detailed.md +0 -231
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v0.5.0/tasks-v0.5.0-s2-detailed.md +0 -253
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v0.5.0/tasks-v0.5.0-s2.5-detailed.md +0 -174
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v0.5.0/tasks-v0.5.0-s3-detailed.md +0 -146
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v0.5.0/tasks-v0.5.0-s4-detailed.md +0 -108
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v0.5.0/tasks-v0.5.0-s5-detailed.md +0 -102
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.0.0/tasks-v1.0.0-docs-detailed.md +0 -244
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.0.0/tasks-v1.0.0-dx-detailed.md +0 -306
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.0.0/tasks-v1.0.0-observability-detailed.md +0 -201
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.0.0/tasks-v1.0.0-performance-detailed.md +0 -251
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.0.0/tasks-v1.0.0-release-detailed.md +0 -249
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.0.0/tasks-v1.0.0-roadmap.md +0 -450
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.0.0/tasks-v1.0.0-security-detailed.md +0 -230
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.0.0/tasks-v1.0.0-testing-detailed.md +0 -262
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.0.0/upstream-slowapi-deprecation.md +0 -55
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.1.0/backlog-v1.1.md +0 -139
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.1.0/sprint-S1-oauth2-foundation.md +0 -325
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.1.0/sprint-S2-wellknown-discovery.md +0 -419
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.1.0/sprint-S2.5-state-storage.md +0 -393
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.1.0/sprint-S3-websocket-binding.md +0 -396
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.1.0/sprint-S4-webhooks-release.md +0 -417
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.1.0/tasks-v1.1.0-roadmap.md +0 -284
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.2.0/deferred/DEFERRED-sprint-T3-registry-core.md +0 -206
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.2.0/deferred/DEFERRED-sprint-T4-registry-features.md +0 -184
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.2.0/deferred/DEFERRED-sprint-T6-deepeval-release.md +0 -208
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.2.0/sprint-T1-ed25519-pki.md +0 -208
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.2.0/sprint-T2-trust-levels-mtls.md +0 -213
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.2.0/sprint-T3-compliance-harness.md +0 -199
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.2.0/sprint-T4-testing-release.md +0 -127
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.2.0/tasks-v1.2.0-roadmap.md +0 -200
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.2.1/plan-security-remediation-pre-v1.3.md +0 -351
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.2.1/v1.2.0-security-review.md +0 -146
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.3.0/deferred/DEFERRED-sprint-E4-audit-release.md +0 -215
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.3.0/sprint-E1-usage-metering.md +0 -230
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.3.0/sprint-E2-delegation-tokens.md +0 -230
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.3.0/sprint-E3-sla-framework.md +0 -358
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.3.0/tasks-v1.3.0-roadmap.md +0 -208
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.4.0/sprint-S1-type-safety.md +0 -78
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.4.0/sprint-S2-pagination.md +0 -65
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v1.4.0/tasks-v1.4.0-roadmap.md +0 -27
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v2.0.0/deferred/DEFERRED-sprint-M1-production-registry.md +0 -112
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v2.0.0/deferred/DEFERRED-sprint-M2-service-integration.md +0 -99
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v2.0.0/launch-checklist-v2.0.md +0 -43
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v2.0.0/pre-M2-validation-guide.md +0 -234
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v2.0.0/sprint-M1-webapp-foundation.md +0 -254
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v2.0.0/sprint-M2-webapp-features.md +0 -177
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v2.0.0/sprint-M3-developer-experience.md +0 -266
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v2.0.0/sprint-M4-launch-prep.md +0 -241
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v2.0.0/tasks-v2.0.0-roadmap.md +0 -228
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v2.0.0/v2.0-marketplace-usage-foundation.md +0 -238
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v2.1.0/sprint-E1-trust-revocation.md +0 -150
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v2.1.0/sprint-E2-consumer-sdk.md +0 -139
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v2.1.0/sprint-E3-framework-integrations.md +0 -161
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v2.1.0/sprint-E4-registry-ux.md +0 -169
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v2.1.0/sprint-E5-openclaw-integration.md +0 -121
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v2.1.0/sprint-E6-pypi-distribution.md +0 -99
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v2.1.0/tasks-v2.1.0-roadmap.md +0 -187
- asap_protocol-2.1.1/.cursor/dev-planning/tasks/v2.2.0/tasks-v2.2.0-tech-debt.md +0 -182
- asap_protocol-2.1.1/.cursor/dev-planning/templates/task-template.md +0 -171
- asap_protocol-2.1.1/.cursor/product-specs/README.md +0 -46
- asap_protocol-2.1.1/.cursor/product-specs/decision-records/01-architecture.md +0 -251
- asap_protocol-2.1.1/.cursor/product-specs/decision-records/02-protocol.md +0 -196
- asap_protocol-2.1.1/.cursor/product-specs/decision-records/03-security.md +0 -141
- asap_protocol-2.1.1/.cursor/product-specs/decision-records/04-technology.md +0 -302
- asap_protocol-2.1.1/.cursor/product-specs/decision-records/05-product-strategy.md +0 -379
- asap_protocol-2.1.1/.cursor/product-specs/decision-records/README.md +0 -62
- asap_protocol-2.1.1/.cursor/product-specs/prd/prd-asap-implementation.md +0 -338
- asap_protocol-2.1.1/.cursor/product-specs/prd/prd-review-schedule.md +0 -226
- asap_protocol-2.1.1/.cursor/product-specs/prd/prd-v1-roadmap.md +0 -1403
- asap_protocol-2.1.1/.cursor/product-specs/prd/prd-v1.1-roadmap.md +0 -418
- asap_protocol-2.1.1/.cursor/product-specs/prd/prd-v1.2-roadmap.md +0 -287
- asap_protocol-2.1.1/.cursor/product-specs/prd/prd-v1.3-roadmap.md +0 -226
- asap_protocol-2.1.1/.cursor/product-specs/prd/prd-v1.4-roadmap.md +0 -92
- asap_protocol-2.1.1/.cursor/product-specs/prd/prd-v2.0-roadmap.md +0 -261
- asap_protocol-2.1.1/.cursor/product-specs/prd/prd-v2.1-ecosystem.md +0 -263
- asap_protocol-2.1.1/.cursor/product-specs/prd/prd-v2.2-scale.md +0 -195
- asap_protocol-2.1.1/.cursor/product-specs/prd/prd-v3.0-economy.md +0 -238
- asap_protocol-2.1.1/.cursor/rules/architecture-principles.mdc +0 -38
- asap_protocol-2.1.1/.cursor/rules/frontend-best-practices.mdc +0 -61
- asap_protocol-2.1.1/.cursor/rules/git-commits.mdc +0 -60
- asap_protocol-2.1.1/.cursor/rules/python-best-practices.mdc +0 -42
- asap_protocol-2.1.1/.cursor/rules/security-standards.mdc +0 -43
- asap_protocol-2.1.1/.cursor/rules/testing-rate-limiting.mdc +0 -157
- asap_protocol-2.1.1/.cursor/rules/testing-standards.mdc +0 -38
- asap_protocol-2.1.1/.cursor/settings.json +0 -7
- asap_protocol-2.1.1/.cursor/skills/code-quality-review/SKILL.md +0 -37
- asap_protocol-2.1.1/.cursor/skills/security-review/SKILL.md +0 -34
- asap_protocol-2.1.1/.cursor/skills/skill-creator/SKILL.md +0 -32
- asap_protocol-2.1.1/.cursor/skills/skill-creator/scripts/init_skill.py +0 -62
- asap_protocol-2.1.1/.github/ISSUE_TEMPLATE/bug_report.yml +0 -71
- asap_protocol-2.1.1/.github/ISSUE_TEMPLATE/feature_request.yml +0 -44
- asap_protocol-2.1.1/.github/ISSUE_TEMPLATE/register_agent.yml +0 -123
- asap_protocol-2.1.1/.github/ISSUE_TEMPLATE/remove_agent.yml +0 -29
- asap_protocol-2.1.1/.github/ISSUE_TEMPLATE/request_verification.yml +0 -57
- asap_protocol-2.1.1/.github/ISSUE_TEMPLATE/revoke_agent.yml +0 -38
- asap_protocol-2.1.1/.github/PULL_REQUEST_TEMPLATE.md +0 -38
- asap_protocol-2.1.1/.github/actions/setup-python/action.yml +0 -20
- asap_protocol-2.1.1/.github/assets/asap-protocol-banner.png +0 -0
- asap_protocol-2.1.1/.github/dependabot.yml +0 -33
- asap_protocol-2.1.1/.github/workflows/ci.yml +0 -156
- asap_protocol-2.1.1/.github/workflows/docs.yml +0 -42
- asap_protocol-2.1.1/.github/workflows/register-agent.yml +0 -100
- asap_protocol-2.1.1/.github/workflows/release.yml +0 -170
- asap_protocol-2.1.1/.github/workflows/remove-agent.yml +0 -100
- asap_protocol-2.1.1/.github/workflows/revoke-agent.yml +0 -113
- asap_protocol-2.1.1/.github/workflows/validate-registry.yml +0 -29
- asap_protocol-2.1.1/AGENTS.md +0 -65
- asap_protocol-2.1.1/CODE_OF_CONDUCT.md +0 -18
- asap_protocol-2.1.1/CONTRIBUTING.md +0 -151
- asap_protocol-2.1.1/Dockerfile +0 -98
- asap_protocol-2.1.1/SECURITY.md +0 -97
- asap_protocol-2.1.1/apps/web/.gitignore +0 -49
- asap_protocol-2.1.1/apps/web/.prettierrc +0 -8
- asap_protocol-2.1.1/apps/web/README.md +0 -36
- asap_protocol-2.1.1/apps/web/components.json +0 -23
- asap_protocol-2.1.1/apps/web/eslint.config.mjs +0 -22
- asap_protocol-2.1.1/apps/web/next.config.ts +0 -44
- asap_protocol-2.1.1/apps/web/package-lock.json +0 -16978
- asap_protocol-2.1.1/apps/web/package.json +0 -68
- asap_protocol-2.1.1/apps/web/playwright.config.ts +0 -79
- asap_protocol-2.1.1/apps/web/postcss.config.mjs +0 -7
- asap_protocol-2.1.1/apps/web/public/file.svg +0 -1
- asap_protocol-2.1.1/apps/web/public/globe.svg +0 -1
- asap_protocol-2.1.1/apps/web/public/icons/anthropic.svg +0 -1
- asap_protocol-2.1.1/apps/web/public/icons/crewai.svg +0 -1
- asap_protocol-2.1.1/apps/web/public/icons/huggingface.svg +0 -1
- asap_protocol-2.1.1/apps/web/public/icons/langchain.svg +0 -1
- asap_protocol-2.1.1/apps/web/public/icons/llamaindex.svg +0 -1
- asap_protocol-2.1.1/apps/web/public/icons/openclaw.svg +0 -242
- asap_protocol-2.1.1/apps/web/public/icons/pydantic.svg +0 -1
- asap_protocol-2.1.1/apps/web/public/icons/vercel.svg +0 -1
- asap_protocol-2.1.1/apps/web/public/next.svg +0 -1
- asap_protocol-2.1.1/apps/web/public/registry.json +0 -3082
- asap_protocol-2.1.1/apps/web/public/vercel.svg +0 -1
- asap_protocol-2.1.1/apps/web/public/window.svg +0 -1
- asap_protocol-2.1.1/apps/web/scripts/validate-github-pr-flow.mjs +0 -129
- asap_protocol-2.1.1/apps/web/scripts/validate-registry-fetch.mjs +0 -32
- asap_protocol-2.1.1/apps/web/src/app/agents/[id]/agent-detail-client.tsx +0 -239
- asap_protocol-2.1.1/apps/web/src/app/agents/[id]/error.tsx +0 -24
- asap_protocol-2.1.1/apps/web/src/app/agents/[id]/opengraph-image.tsx +0 -188
- asap_protocol-2.1.1/apps/web/src/app/agents/[id]/page.tsx +0 -58
- asap_protocol-2.1.1/apps/web/src/app/agents/[id]/usage-snippets.tsx +0 -217
- asap_protocol-2.1.1/apps/web/src/app/api/auth/[...nextauth]/route.ts +0 -3
- asap_protocol-2.1.1/apps/web/src/app/api/debug/token/route.ts +0 -35
- asap_protocol-2.1.1/apps/web/src/app/api/fixtures/registry/route.ts +0 -48
- asap_protocol-2.1.1/apps/web/src/app/api/health-check/route.ts +0 -46
- asap_protocol-2.1.1/apps/web/src/app/api/proxy/check/__tests__/route.test.ts +0 -100
- asap_protocol-2.1.1/apps/web/src/app/api/proxy/check/route.ts +0 -60
- asap_protocol-2.1.1/apps/web/src/app/apple-icon.png +0 -0
- asap_protocol-2.1.1/apps/web/src/app/browse/__tests__/browse-content.test.tsx +0 -118
- asap_protocol-2.1.1/apps/web/src/app/browse/agent-card-skeleton.tsx +0 -29
- asap_protocol-2.1.1/apps/web/src/app/browse/browse-content.tsx +0 -419
- asap_protocol-2.1.1/apps/web/src/app/browse/error.tsx +0 -24
- asap_protocol-2.1.1/apps/web/src/app/browse/load-test/page.tsx +0 -73
- asap_protocol-2.1.1/apps/web/src/app/browse/loading.tsx +0 -45
- asap_protocol-2.1.1/apps/web/src/app/browse/page.tsx +0 -34
- asap_protocol-2.1.1/apps/web/src/app/dashboard/__tests__/dashboard-actions.test.ts +0 -121
- asap_protocol-2.1.1/apps/web/src/app/dashboard/actions.ts +0 -93
- asap_protocol-2.1.1/apps/web/src/app/dashboard/dashboard-client.tsx +0 -244
- asap_protocol-2.1.1/apps/web/src/app/dashboard/error.tsx +0 -24
- asap_protocol-2.1.1/apps/web/src/app/dashboard/page.tsx +0 -38
- asap_protocol-2.1.1/apps/web/src/app/dashboard/register/__tests__/register-actions.test.ts +0 -152
- asap_protocol-2.1.1/apps/web/src/app/dashboard/register/__tests__/register-form.test.tsx +0 -218
- asap_protocol-2.1.1/apps/web/src/app/dashboard/register/actions.ts +0 -78
- asap_protocol-2.1.1/apps/web/src/app/dashboard/register/page.tsx +0 -31
- asap_protocol-2.1.1/apps/web/src/app/dashboard/register/register-form.tsx +0 -324
- asap_protocol-2.1.1/apps/web/src/app/dashboard/verify/__tests__/verify-actions.test.ts +0 -77
- asap_protocol-2.1.1/apps/web/src/app/dashboard/verify/__tests__/verify-form.test.tsx +0 -220
- asap_protocol-2.1.1/apps/web/src/app/dashboard/verify/actions.ts +0 -42
- asap_protocol-2.1.1/apps/web/src/app/dashboard/verify/page.tsx +0 -46
- asap_protocol-2.1.1/apps/web/src/app/dashboard/verify/verify-form.tsx +0 -216
- asap_protocol-2.1.1/apps/web/src/app/demos/page.tsx +0 -223
- asap_protocol-2.1.1/apps/web/src/app/developer-experience/page.tsx +0 -206
- asap_protocol-2.1.1/apps/web/src/app/docs/register/page.tsx +0 -156
- asap_protocol-2.1.1/apps/web/src/app/favicon.ico +0 -0
- asap_protocol-2.1.1/apps/web/src/app/features/[slug]/page.tsx +0 -191
- asap_protocol-2.1.1/apps/web/src/app/globals.css +0 -126
- asap_protocol-2.1.1/apps/web/src/app/icon.png +0 -0
- asap_protocol-2.1.1/apps/web/src/app/layout.tsx +0 -46
- asap_protocol-2.1.1/apps/web/src/app/legal/privacy-policy/page.tsx +0 -26
- asap_protocol-2.1.1/apps/web/src/app/legal/terms-of-service/page.tsx +0 -26
- asap_protocol-2.1.1/apps/web/src/app/page.tsx +0 -32
- asap_protocol-2.1.1/apps/web/src/app/sitemap.ts +0 -49
- asap_protocol-2.1.1/apps/web/src/app/test-register/page.tsx +0 -28
- asap_protocol-2.1.1/apps/web/src/app.test.tsx +0 -7
- asap_protocol-2.1.1/apps/web/src/auth.ts +0 -60
- asap_protocol-2.1.1/apps/web/src/components/agent/agent-status-badge.tsx +0 -83
- asap_protocol-2.1.1/apps/web/src/components/landing/FeaturedAgents.tsx +0 -96
- asap_protocol-2.1.1/apps/web/src/components/landing/FeaturesSection.tsx +0 -84
- asap_protocol-2.1.1/apps/web/src/components/landing/HeroSection.tsx +0 -136
- asap_protocol-2.1.1/apps/web/src/components/landing/HowItWorksSection.tsx +0 -76
- asap_protocol-2.1.1/apps/web/src/components/layout/Footer.tsx +0 -80
- asap_protocol-2.1.1/apps/web/src/components/layout/Header.tsx +0 -122
- asap_protocol-2.1.1/apps/web/src/components/theme-provider.tsx +0 -11
- asap_protocol-2.1.1/apps/web/src/components/ui/alert.tsx +0 -66
- asap_protocol-2.1.1/apps/web/src/components/ui/avatar.tsx +0 -109
- asap_protocol-2.1.1/apps/web/src/components/ui/badge.tsx +0 -46
- asap_protocol-2.1.1/apps/web/src/components/ui/button.tsx +0 -62
- asap_protocol-2.1.1/apps/web/src/components/ui/card.tsx +0 -75
- asap_protocol-2.1.1/apps/web/src/components/ui/carousel.tsx +0 -230
- asap_protocol-2.1.1/apps/web/src/components/ui/checkbox.tsx +0 -32
- asap_protocol-2.1.1/apps/web/src/components/ui/command.tsx +0 -161
- asap_protocol-2.1.1/apps/web/src/components/ui/dialog.tsx +0 -144
- asap_protocol-2.1.1/apps/web/src/components/ui/dropdown-menu.tsx +0 -257
- asap_protocol-2.1.1/apps/web/src/components/ui/form.tsx +0 -167
- asap_protocol-2.1.1/apps/web/src/components/ui/input.tsx +0 -21
- asap_protocol-2.1.1/apps/web/src/components/ui/label.tsx +0 -24
- asap_protocol-2.1.1/apps/web/src/components/ui/navigation-menu.tsx +0 -168
- asap_protocol-2.1.1/apps/web/src/components/ui/scroll-area.tsx +0 -56
- asap_protocol-2.1.1/apps/web/src/components/ui/select.tsx +0 -190
- asap_protocol-2.1.1/apps/web/src/components/ui/separator.tsx +0 -28
- asap_protocol-2.1.1/apps/web/src/components/ui/sheet.tsx +0 -143
- asap_protocol-2.1.1/apps/web/src/components/ui/skeleton.tsx +0 -13
- asap_protocol-2.1.1/apps/web/src/components/ui/tabs.tsx +0 -91
- asap_protocol-2.1.1/apps/web/src/components/ui/textarea.tsx +0 -18
- asap_protocol-2.1.1/apps/web/src/lib/github-issues.test.ts +0 -81
- asap_protocol-2.1.1/apps/web/src/lib/github-issues.ts +0 -76
- asap_protocol-2.1.1/apps/web/src/lib/rate-limit.ts +0 -84
- asap_protocol-2.1.1/apps/web/src/lib/register-schema.ts +0 -35
- asap_protocol-2.1.1/apps/web/src/lib/registry-schema.ts +0 -38
- asap_protocol-2.1.1/apps/web/src/lib/registry.ts +0 -117
- asap_protocol-2.1.1/apps/web/src/lib/url-validator-server.ts +0 -75
- asap_protocol-2.1.1/apps/web/src/lib/url-validator.test.ts +0 -148
- asap_protocol-2.1.1/apps/web/src/lib/url-validator.ts +0 -79
- asap_protocol-2.1.1/apps/web/src/lib/utils.ts +0 -6
- asap_protocol-2.1.1/apps/web/src/proxy.ts +0 -38
- asap_protocol-2.1.1/apps/web/src/types/next-auth.d.ts +0 -31
- asap_protocol-2.1.1/apps/web/src/types/protocol.d.ts +0 -1807
- asap_protocol-2.1.1/apps/web/src/types/registry.d.ts +0 -22
- asap_protocol-2.1.1/apps/web/tests/browse.spec.ts +0 -24
- asap_protocol-2.1.1/apps/web/tests/load/browse-500.spec.ts +0 -71
- asap_protocol-2.1.1/apps/web/tsconfig.json +0 -34
- asap_protocol-2.1.1/apps/web/vitest.config.ts +0 -19
- asap_protocol-2.1.1/apps/web/vitest.setup.ts +0 -10
- asap_protocol-2.1.1/asap-compliance/README.md +0 -69
- asap_protocol-2.1.1/asap-compliance/asap_compliance/__init__.py +0 -7
- asap_protocol-2.1.1/asap-compliance/asap_compliance/config.py +0 -22
- asap_protocol-2.1.1/asap-compliance/asap_compliance/harness.py +0 -32
- asap_protocol-2.1.1/asap-compliance/asap_compliance/pytest_plugin.py +0 -52
- asap_protocol-2.1.1/asap-compliance/asap_compliance/validators/__init__.py +0 -43
- asap_protocol-2.1.1/asap-compliance/asap_compliance/validators/handshake.py +0 -336
- asap_protocol-2.1.1/asap-compliance/asap_compliance/validators/schema.py +0 -285
- asap_protocol-2.1.1/asap-compliance/asap_compliance/validators/sla.py +0 -252
- asap_protocol-2.1.1/asap-compliance/asap_compliance/validators/state.py +0 -230
- asap_protocol-2.1.1/asap-compliance/pyproject.toml +0 -58
- asap_protocol-2.1.1/asap-compliance/tests/__init__.py +0 -1
- asap_protocol-2.1.1/asap-compliance/tests/conftest.py +0 -55
- asap_protocol-2.1.1/asap-compliance/tests/test_handshake.py +0 -296
- asap_protocol-2.1.1/asap-compliance/tests/test_plugin.py +0 -26
- asap_protocol-2.1.1/asap-compliance/tests/test_schema.py +0 -260
- asap_protocol-2.1.1/asap-compliance/tests/test_sla.py +0 -105
- asap_protocol-2.1.1/asap-compliance/tests/test_state.py +0 -99
- asap_protocol-2.1.1/asap-compliance/tests/test_state_integration.py +0 -96
- asap_protocol-2.1.1/asap-compliance/uv.lock +0 -1268
- asap_protocol-2.1.1/benchmarks/README.md +0 -391
- asap_protocol-2.1.1/benchmarks/RESULTS.md +0 -220
- asap_protocol-2.1.1/benchmarks/__init__.py +0 -14
- asap_protocol-2.1.1/benchmarks/benchmark_crypto.py +0 -129
- asap_protocol-2.1.1/benchmarks/benchmark_models.py +0 -288
- asap_protocol-2.1.1/benchmarks/benchmark_transport.py +0 -806
- asap_protocol-2.1.1/benchmarks/conftest.py +0 -86
- asap_protocol-2.1.1/benchmarks/load_test.py +0 -451
- asap_protocol-2.1.1/benchmarks/memory_test.py +0 -504
- asap_protocol-2.1.1/benchmarks/stress_test.py +0 -507
- asap_protocol-2.1.1/docs/adr/ADR-001-ulid-for-id-generation.md +0 -60
- asap_protocol-2.1.1/docs/adr/ADR-002-async-first-api-design.md +0 -52
- asap_protocol-2.1.1/docs/adr/ADR-003-jsonrpc20-binding.md +0 -58
- asap_protocol-2.1.1/docs/adr/ADR-004-pydantic-for-models.md +0 -58
- asap_protocol-2.1.1/docs/adr/ADR-005-state-machine-design.md +0 -53
- asap_protocol-2.1.1/docs/adr/ADR-006-security-defaults.md +0 -51
- asap_protocol-2.1.1/docs/adr/ADR-007-fastapi-for-server.md +0 -59
- asap_protocol-2.1.1/docs/adr/ADR-008-httpx-for-client.md +0 -59
- asap_protocol-2.1.1/docs/adr/ADR-009-snapshot-vs-event-sourced.md +0 -59
- asap_protocol-2.1.1/docs/adr/ADR-010-python-313-requirement.md +0 -52
- asap_protocol-2.1.1/docs/adr/ADR-011-per-sender-rate-limiting.md +0 -53
- asap_protocol-2.1.1/docs/adr/ADR-012-error-taxonomy.md +0 -53
- asap_protocol-2.1.1/docs/adr/ADR-013-mcp-integration-approach.md +0 -53
- asap_protocol-2.1.1/docs/adr/ADR-014-testing-strategy.md +0 -52
- asap_protocol-2.1.1/docs/adr/ADR-015-observability-design.md +0 -53
- asap_protocol-2.1.1/docs/adr/ADR-016-versioning-policy.md +0 -52
- asap_protocol-2.1.1/docs/adr/ADR-017-failure-injection-strategy.md +0 -58
- asap_protocol-2.1.1/docs/adr/README.md +0 -42
- asap_protocol-2.1.1/docs/adr/template.md +0 -51
- asap_protocol-2.1.1/docs/api-reference.md +0 -45
- asap_protocol-2.1.1/docs/best-practices/agent-failover-migration.md +0 -284
- asap_protocol-2.1.1/docs/deployment/kubernetes.md +0 -161
- asap_protocol-2.1.1/docs/error-handling.md +0 -376
- asap_protocol-2.1.1/docs/guides/compliance-testing.md +0 -110
- asap_protocol-2.1.1/docs/guides/identity-signing.md +0 -124
- asap_protocol-2.1.1/docs/guides/migration-v1.1-to-v1.2.md +0 -96
- asap_protocol-2.1.1/docs/guides/openclaw-integration.md +0 -175
- asap_protocol-2.1.1/docs/guides/registry-verification-review.md +0 -77
- asap_protocol-2.1.1/docs/guides/vercel-ai-sdk.md +0 -186
- asap_protocol-2.1.1/docs/index.md +0 -99
- asap_protocol-2.1.1/docs/mcp-integration.md +0 -96
- asap_protocol-2.1.1/docs/metrics.md +0 -426
- asap_protocol-2.1.1/docs/migration.md +0 -650
- asap_protocol-2.1.1/docs/observability.md +0 -127
- asap_protocol-2.1.1/docs/raw-fetch.md +0 -142
- asap_protocol-2.1.1/docs/security/mtls.md +0 -137
- asap_protocol-2.1.1/docs/security/v1.1-security-model.md +0 -167
- asap_protocol-2.1.1/docs/security.md +0 -1314
- asap_protocol-2.1.1/docs/state-management.md +0 -561
- asap_protocol-2.1.1/docs/testing.md +0 -914
- asap_protocol-2.1.1/docs/transport.md +0 -661
- asap_protocol-2.1.1/docs/troubleshooting.md +0 -405
- asap_protocol-2.1.1/docs/tutorials/first-agent.md +0 -163
- asap_protocol-2.1.1/docs/tutorials/multi-agent.md +0 -253
- asap_protocol-2.1.1/docs/tutorials/production-checklist.md +0 -141
- asap_protocol-2.1.1/docs/tutorials/resilience.md +0 -255
- asap_protocol-2.1.1/docs/tutorials/stateful-workflows.md +0 -253
- asap_protocol-2.1.1/helm/asap-agent/Chart.yaml +0 -17
- asap_protocol-2.1.1/helm/asap-agent/README.md +0 -69
- asap_protocol-2.1.1/helm/asap-agent/templates/NOTES.txt +0 -16
- asap_protocol-2.1.1/helm/asap-agent/templates/_helpers.tpl +0 -24
- asap_protocol-2.1.1/helm/asap-agent/templates/deployment.yaml +0 -78
- asap_protocol-2.1.1/helm/asap-agent/templates/ingress.yaml +0 -41
- asap_protocol-2.1.1/helm/asap-agent/templates/service.yaml +0 -15
- asap_protocol-2.1.1/helm/asap-agent/values.yaml +0 -87
- asap_protocol-2.1.1/k8s/README.md +0 -40
- asap_protocol-2.1.1/k8s/deployment.yaml +0 -81
- asap_protocol-2.1.1/k8s/ingress.yaml +0 -37
- asap_protocol-2.1.1/k8s/service.yaml +0 -22
- asap_protocol-2.1.1/mkdocs.yml +0 -92
- asap_protocol-2.1.1/packages/asap-openclaw-skill/README.md +0 -63
- asap_protocol-2.1.1/packages/asap-openclaw-skill/package-lock.json +0 -1467
- asap_protocol-2.1.1/packages/asap-openclaw-skill/package.json +0 -42
- asap_protocol-2.1.1/packages/asap-openclaw-skill/src/index.test.ts +0 -273
- asap_protocol-2.1.1/packages/asap-openclaw-skill/src/index.ts +0 -201
- asap_protocol-2.1.1/packages/asap-openclaw-skill/tsconfig.json +0 -17
- asap_protocol-2.1.1/registry.json +0 -3082
- asap_protocol-2.1.1/revoked_agents.json +0 -4
- asap_protocol-2.1.1/scripts/__init__.py +0 -5
- asap_protocol-2.1.1/scripts/export_schemas.py +0 -26
- asap_protocol-2.1.1/scripts/generate_types.py +0 -78
- asap_protocol-2.1.1/scripts/lib/__init__.py +0 -0
- asap_protocol-2.1.1/scripts/lib/debug_id.py +0 -16
- asap_protocol-2.1.1/scripts/lib/registry_io.py +0 -92
- asap_protocol-2.1.1/scripts/observability-stack/README.md +0 -27
- asap_protocol-2.1.1/scripts/observability-stack/docker-compose.yml +0 -35
- asap_protocol-2.1.1/scripts/observability-stack/grafana/provisioning/dashboards/dashboards.yaml +0 -11
- asap_protocol-2.1.1/scripts/observability-stack/grafana/provisioning/datasources/datasources.yaml +0 -9
- asap_protocol-2.1.1/scripts/observability-stack/prometheus.yml +0 -13
- asap_protocol-2.1.1/scripts/process_registration.py +0 -318
- asap_protocol-2.1.1/scripts/process_removal.py +0 -163
- asap_protocol-2.1.1/scripts/process_revocation.py +0 -194
- asap_protocol-2.1.1/scripts/regenerate_signed_fixtures.py +0 -70
- asap_protocol-2.1.1/scripts/seed_registry.py +0 -189
- asap_protocol-2.1.1/scripts/test_k8s_deploy.sh +0 -84
- asap_protocol-2.1.1/scripts/validate_registry.py +0 -96
- asap_protocol-2.1.1/scripts/validate_revoked.py +0 -69
- asap_protocol-2.1.1/src/asap/errors.py +0 -342
- asap_protocol-2.1.1/tests/__init__.py +0 -1
- asap_protocol-2.1.1/tests/auth/__init__.py +0 -1
- asap_protocol-2.1.1/tests/auth/test_identity_binding.py +0 -309
- asap_protocol-2.1.1/tests/auth/test_introspection.py +0 -445
- asap_protocol-2.1.1/tests/auth/test_jwks.py +0 -279
- asap_protocol-2.1.1/tests/auth/test_middleware.py +0 -359
- asap_protocol-2.1.1/tests/auth/test_oauth2.py +0 -270
- asap_protocol-2.1.1/tests/auth/test_oidc.py +0 -235
- asap_protocol-2.1.1/tests/auth/test_scopes.py +0 -123
- asap_protocol-2.1.1/tests/auth/test_server_oauth2_integration.py +0 -130
- asap_protocol-2.1.1/tests/auth/test_utils.py +0 -29
- asap_protocol-2.1.1/tests/chaos/__init__.py +0 -17
- asap_protocol-2.1.1/tests/chaos/conftest.py +0 -75
- asap_protocol-2.1.1/tests/chaos/test_clock_skew.py +0 -738
- asap_protocol-2.1.1/tests/chaos/test_crashes.py +0 -506
- asap_protocol-2.1.1/tests/chaos/test_message_reliability.py +0 -722
- asap_protocol-2.1.1/tests/chaos/test_network_partition.py +0 -484
- asap_protocol-2.1.1/tests/chaos/test_websocket_stability.py +0 -707
- asap_protocol-2.1.1/tests/client/__init__.py +0 -1
- asap_protocol-2.1.1/tests/client/test_cache.py +0 -118
- asap_protocol-2.1.1/tests/client/test_market.py +0 -321
- asap_protocol-2.1.1/tests/client/test_revocation.py +0 -191
- asap_protocol-2.1.1/tests/client/test_trust.py +0 -104
- asap_protocol-2.1.1/tests/compatibility/__init__.py +0 -1
- asap_protocol-2.1.1/tests/compatibility/test_v0_1_0_compatibility.py +0 -95
- asap_protocol-2.1.1/tests/compatibility/test_v0_3_0_compatibility.py +0 -119
- asap_protocol-2.1.1/tests/conftest.py +0 -143
- asap_protocol-2.1.1/tests/contract/__init__.py +0 -9
- asap_protocol-2.1.1/tests/contract/conftest.py +0 -48
- asap_protocol-2.1.1/tests/contract/test_schema_evolution.py +0 -601
- asap_protocol-2.1.1/tests/contract/test_v0_1_to_v1_0.py +0 -669
- asap_protocol-2.1.1/tests/contract/test_v0_5_to_v1_0.py +0 -819
- asap_protocol-2.1.1/tests/contract/test_v1_0_to_v0_5.py +0 -891
- asap_protocol-2.1.1/tests/crypto/__init__.py +0 -1
- asap_protocol-2.1.1/tests/crypto/test_keys.py +0 -234
- asap_protocol-2.1.1/tests/crypto/test_signing.py +0 -386
- asap_protocol-2.1.1/tests/crypto/test_trust.py +0 -199
- asap_protocol-2.1.1/tests/discovery/__init__.py +0 -1
- asap_protocol-2.1.1/tests/discovery/test_discovery_client.py +0 -196
- asap_protocol-2.1.1/tests/discovery/test_dnssd.py +0 -576
- asap_protocol-2.1.1/tests/discovery/test_health.py +0 -168
- asap_protocol-2.1.1/tests/discovery/test_registry.py +0 -364
- asap_protocol-2.1.1/tests/discovery/test_validation.py +0 -329
- asap_protocol-2.1.1/tests/discovery/test_wellknown.py +0 -131
- asap_protocol-2.1.1/tests/e2e/__init__.py +0 -1
- asap_protocol-2.1.1/tests/e2e/test_two_agents.py +0 -48
- asap_protocol-2.1.1/tests/economics/__init__.py +0 -1
- asap_protocol-2.1.1/tests/economics/test_delegation.py +0 -850
- asap_protocol-2.1.1/tests/economics/test_delegation_storage.py +0 -464
- asap_protocol-2.1.1/tests/economics/test_metering.py +0 -229
- asap_protocol-2.1.1/tests/economics/test_metering_hooks.py +0 -592
- asap_protocol-2.1.1/tests/economics/test_sla.py +0 -493
- asap_protocol-2.1.1/tests/economics/test_sla_api.py +0 -449
- asap_protocol-2.1.1/tests/economics/test_sla_storage.py +0 -467
- asap_protocol-2.1.1/tests/economics/test_storage.py +0 -897
- asap_protocol-2.1.1/tests/economics/test_usage_api.py +0 -925
- asap_protocol-2.1.1/tests/examples/__init__.py +0 -1
- asap_protocol-2.1.1/tests/examples/test_agent_failover.py +0 -655
- asap_protocol-2.1.1/tests/examples/test_coordinator.py +0 -302
- asap_protocol-2.1.1/tests/examples/test_echo_agent.py +0 -141
- asap_protocol-2.1.1/tests/examples/test_examples_dx.py +0 -607
- asap_protocol-2.1.1/tests/examples/test_run_demo.py +0 -169
- asap_protocol-2.1.1/tests/examples/test_storage_backends.py +0 -85
- asap_protocol-2.1.1/tests/factories.py +0 -97
- asap_protocol-2.1.1/tests/fixtures/asap_ca/README.md +0 -13
- asap_protocol-2.1.1/tests/fixtures/asap_ca/ca_private.pem +0 -3
- asap_protocol-2.1.1/tests/fixtures/asap_ca/ca_public_b64.txt +0 -1
- asap_protocol-2.1.1/tests/fixtures/manifest_with_sla.json +0 -23
- asap_protocol-2.1.1/tests/fixtures/self_signed_manifest.json +0 -1
- asap_protocol-2.1.1/tests/fixtures/verified_manifest.json +0 -1
- asap_protocol-2.1.1/tests/fuzz/__init__.py +0 -1
- asap_protocol-2.1.1/tests/fuzz/test_envelope_fuzz.py +0 -147
- asap_protocol-2.1.1/tests/integration/test_cross_version_compatibility.py +0 -97
- asap_protocol-2.1.1/tests/integration/test_v1_3_cross_feature.py +0 -402
- asap_protocol-2.1.1/tests/integrations/__init__.py +0 -1
- asap_protocol-2.1.1/tests/integrations/test_crewai.py +0 -199
- asap_protocol-2.1.1/tests/integrations/test_integrations_init.py +0 -38
- asap_protocol-2.1.1/tests/integrations/test_langchain.py +0 -196
- asap_protocol-2.1.1/tests/integrations/test_llamaindex.py +0 -200
- asap_protocol-2.1.1/tests/integrations/test_openclaw.py +0 -334
- asap_protocol-2.1.1/tests/integrations/test_pydanticai.py +0 -163
- asap_protocol-2.1.1/tests/integrations/test_smolagents.py +0 -185
- asap_protocol-2.1.1/tests/integrations/test_vercel_ai.py +0 -242
- asap_protocol-2.1.1/tests/mcp/__init__.py +0 -1
- asap_protocol-2.1.1/tests/mcp/test_asap_integration.py +0 -540
- asap_protocol-2.1.1/tests/mcp/test_client.py +0 -359
- asap_protocol-2.1.1/tests/mcp/test_protocol.py +0 -119
- asap_protocol-2.1.1/tests/mcp/test_serve.py +0 -267
- asap_protocol-2.1.1/tests/mcp/test_server_client.py +0 -329
- asap_protocol-2.1.1/tests/mcp/test_server_runner.py +0 -132
- asap_protocol-2.1.1/tests/mcp/test_server_stdio.py +0 -129
- asap_protocol-2.1.1/tests/models/test_base.py +0 -114
- asap_protocol-2.1.1/tests/models/test_entities.py +0 -1277
- asap_protocol-2.1.1/tests/models/test_enums.py +0 -247
- asap_protocol-2.1.1/tests/models/test_envelope.py +0 -271
- asap_protocol-2.1.1/tests/models/test_ids.py +0 -101
- asap_protocol-2.1.1/tests/models/test_parts.py +0 -508
- asap_protocol-2.1.1/tests/models/test_payloads.py +0 -652
- asap_protocol-2.1.1/tests/models/test_payloads_validation.py +0 -84
- asap_protocol-2.1.1/tests/observability/__init__.py +0 -1
- asap_protocol-2.1.1/tests/observability/test_grafana_dashboards.py +0 -80
- asap_protocol-2.1.1/tests/observability/test_jaeger_tracing.py +0 -236
- asap_protocol-2.1.1/tests/observability/test_logging.py +0 -319
- asap_protocol-2.1.1/tests/observability/test_logging_integration.py +0 -255
- asap_protocol-2.1.1/tests/observability/test_metrics.py +0 -478
- asap_protocol-2.1.1/tests/observability/test_trace_parser.py +0 -441
- asap_protocol-2.1.1/tests/observability/test_trace_ui.py +0 -89
- asap_protocol-2.1.1/tests/observability/test_tracing.py +0 -376
- asap_protocol-2.1.1/tests/properties/__init__.py +0 -1
- asap_protocol-2.1.1/tests/properties/test_model_properties.py +0 -683
- asap_protocol-2.1.1/tests/properties/test_state_machine_properties.py +0 -72
- asap_protocol-2.1.1/tests/scripts/__init__.py +0 -1
- asap_protocol-2.1.1/tests/scripts/test_process_registration.py +0 -476
- asap_protocol-2.1.1/tests/scripts/test_process_removal.py +0 -94
- asap_protocol-2.1.1/tests/scripts/test_process_revocation.py +0 -150
- asap_protocol-2.1.1/tests/scripts/test_seed_registry.py +0 -89
- asap_protocol-2.1.1/tests/state/__init__.py +0 -1
- asap_protocol-2.1.1/tests/state/test_machine.py +0 -237
- asap_protocol-2.1.1/tests/state/test_metering.py +0 -279
- asap_protocol-2.1.1/tests/state/test_snapshot.py +0 -727
- asap_protocol-2.1.1/tests/state/test_sqlite_store.py +0 -398
- asap_protocol-2.1.1/tests/state/test_storage_factory.py +0 -111
- asap_protocol-2.1.1/tests/test_cli.py +0 -1171
- asap_protocol-2.1.1/tests/test_cli_edge_cases.py +0 -156
- asap_protocol-2.1.1/tests/test_docs_links.py +0 -131
- asap_protocol-2.1.1/tests/test_docs_troubleshooting_smoke.py +0 -64
- asap_protocol-2.1.1/tests/test_errors.py +0 -279
- asap_protocol-2.1.1/tests/test_schemas.py +0 -214
- asap_protocol-2.1.1/tests/test_version.py +0 -9
- asap_protocol-2.1.1/tests/testing/__init__.py +0 -3
- asap_protocol-2.1.1/tests/testing/test_assertions.py +0 -174
- asap_protocol-2.1.1/tests/testing/test_fixtures.py +0 -101
- asap_protocol-2.1.1/tests/testing/test_mocks.py +0 -178
- asap_protocol-2.1.1/tests/transport/__init__.py +0 -1
- asap_protocol-2.1.1/tests/transport/conftest.py +0 -249
- asap_protocol-2.1.1/tests/transport/e2e/__init__.py +0 -5
- asap_protocol-2.1.1/tests/transport/e2e/test_circuit_breaker_e2e.py +0 -281
- asap_protocol-2.1.1/tests/transport/e2e/test_full_agent_flow.py +0 -459
- asap_protocol-2.1.1/tests/transport/integration/__init__.py +0 -8
- asap_protocol-2.1.1/tests/transport/integration/test_batch_auth_pooling.py +0 -545
- asap_protocol-2.1.1/tests/transport/integration/test_compression_server.py +0 -642
- asap_protocol-2.1.1/tests/transport/integration/test_health_probes.py +0 -47
- asap_protocol-2.1.1/tests/transport/integration/test_lambda_negotiation.py +0 -173
- asap_protocol-2.1.1/tests/transport/integration/test_metrics_cardinality.py +0 -141
- asap_protocol-2.1.1/tests/transport/integration/test_rate_limiting.py +0 -354
- asap_protocol-2.1.1/tests/transport/integration/test_request_size_limits.py +0 -227
- asap_protocol-2.1.1/tests/transport/integration/test_server_core.py +0 -923
- asap_protocol-2.1.1/tests/transport/integration/test_thread_pool_bounds.py +0 -238
- asap_protocol-2.1.1/tests/transport/integration/test_validation_order.py +0 -272
- asap_protocol-2.1.1/tests/transport/integration/test_websocket_e2e.py +0 -161
- asap_protocol-2.1.1/tests/transport/test_ack_aware_client.py +0 -308
- asap_protocol-2.1.1/tests/transport/test_client.py +0 -1358
- asap_protocol-2.1.1/tests/transport/test_client_edge_cases.py +0 -318
- asap_protocol-2.1.1/tests/transport/test_client_signing.py +0 -127
- asap_protocol-2.1.1/tests/transport/test_delegation_api.py +0 -636
- asap_protocol-2.1.1/tests/transport/test_handlers.py +0 -1050
- asap_protocol-2.1.1/tests/transport/test_jsonrpc.py +0 -419
- asap_protocol-2.1.1/tests/transport/test_message_ack.py +0 -338
- asap_protocol-2.1.1/tests/transport/test_middleware.py +0 -826
- asap_protocol-2.1.1/tests/transport/test_mtls.py +0 -204
- asap_protocol-2.1.1/tests/transport/test_server.py +0 -949
- asap_protocol-2.1.1/tests/transport/test_server_edge_cases.py +0 -387
- asap_protocol-2.1.1/tests/transport/test_sla_websocket.py +0 -162
- asap_protocol-2.1.1/tests/transport/test_websocket.py +0 -2773
- asap_protocol-2.1.1/tests/transport/test_websocket_rate_limit.py +0 -173
- asap_protocol-2.1.1/tests/transport/unit/__init__.py +0 -5
- asap_protocol-2.1.1/tests/transport/unit/test_bounded_executor.py +0 -174
- asap_protocol-2.1.1/tests/transport/unit/test_cache.py +0 -542
- asap_protocol-2.1.1/tests/transport/unit/test_circuit_breaker.py +0 -440
- asap_protocol-2.1.1/tests/transport/unit/test_circuit_breaker_persistence.py +0 -72
- asap_protocol-2.1.1/tests/transport/unit/test_client_coverage_gaps.py +0 -742
- asap_protocol-2.1.1/tests/transport/unit/test_compression.py +0 -435
- asap_protocol-2.1.1/tests/transport/unit/test_lambda_codec.py +0 -231
- asap_protocol-2.1.1/tests/transport/unit/test_retry_backoff.py +0 -509
- asap_protocol-2.1.1/tests/transport/unit/test_retry_edge_cases.py +0 -134
- asap_protocol-2.1.1/tests/transport/unit/test_validators.py +0 -321
- asap_protocol-2.1.1/tests/transport/unit/test_validators_edge_cases.py +0 -124
- asap_protocol-2.1.1/tests/transport/unit/test_webhook.py +0 -667
- asap_protocol-2.1.1/tests/utils/__init__.py +0 -3
- asap_protocol-2.1.1/tests/utils/test_sanitization.py +0 -163
- asap_protocol-2.1.1/uv.lock +0 -5711
- asap_protocol-2.1.1/vercel.json +0 -8
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/LICENSE +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/entities/agent.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/entities/artifact.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/entities/conversation.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/entities/manifest.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/entities/message.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/entities/state_snapshot.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/entities/task.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/envelope.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/parts/data_part.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/parts/file_part.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/parts/resource_part.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/parts/template_part.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/parts/text_part.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/payloads/artifact_notify.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/payloads/mcp_resource_data.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/payloads/mcp_resource_fetch.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/payloads/mcp_tool_call.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/payloads/mcp_tool_result.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/payloads/message_send.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/payloads/state_query.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/payloads/state_restore.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/payloads/task_cancel.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/payloads/task_request.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/payloads/task_response.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/schemas/payloads/task_update.schema.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/auth/scopes.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/auth/utils.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/client/__init__.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/client/cache.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/client/trust.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/crypto/__init__.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/crypto/keys.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/crypto/models.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/crypto/signing.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/crypto/trust_levels.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/discovery/__init__.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/discovery/health.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/discovery/wellknown.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/economics/metering.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/__init__.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/agent_failover.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/auth_patterns.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/coordinator.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/echo_agent.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/error_recovery.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/long_running.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/mcp_client_demo.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/mcp_integration.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/multi_step_workflow.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/orchestration.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/rate_limiting.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/run_demo.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/secure_handler.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/state_migration.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/streaming_response.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/v1_3_0_showcase.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/v1_4_0_showcase.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/examples/websocket_concept.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/integrations/langchain.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/integrations/openclaw.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/integrations/pydanticai.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/integrations/smolagents.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/integrations/vercel_ai.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/mcp/__init__.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/mcp/protocol.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/mcp/serve.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/mcp/server_runner.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/models/__init__.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/models/base.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/models/envelope.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/models/ids.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/models/parts.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/models/types.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/models/validators.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/observability/__init__.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/observability/dashboards/README.md +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/observability/dashboards/asap-detailed.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/observability/dashboards/asap-red.json +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/observability/logging.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/observability/trace_parser.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/observability/trace_ui.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/observability/tracing.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/schemas.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/state/machine.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/testing/fixtures.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/__init__.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/cache.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/circuit_breaker.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/codecs/__init__.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/codecs/lambda_codec.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/compression.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/delegation_api.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/mtls.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/sla_api.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/src/asap/transport/usage_api.py +0 -0
- {asap_protocol-2.1.1 → asap_protocol-2.2.1}/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)
|
|
@@ -192,3 +194,5 @@ node_modules/
|
|
|
192
194
|
|
|
193
195
|
# ESLint report (generated)
|
|
194
196
|
eslint-report.json
|
|
197
|
+
.vercel
|
|
198
|
+
.env*.local
|
|
@@ -7,8 +7,201 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## [2.2.1] - 2026-04-21
|
|
13
|
+
|
|
14
|
+
Patch release: optional WebAuthn verification, compliance and audit CLIs, docs,
|
|
15
|
+
and CI baselines.
|
|
16
|
+
|
|
10
17
|
### Added
|
|
11
|
-
|
|
18
|
+
|
|
19
|
+
- **WebAuthn (optional extra)**: `asap-protocol[webauthn]` enables real
|
|
20
|
+
registration/assertion verification when `ASAP_WEBAUTHN_RP_ID` and
|
|
21
|
+
`ASAP_WEBAUTHN_ORIGIN` are set; otherwise behavior matches v2.2.0. See
|
|
22
|
+
[v2.2.0 → v2.2.1 migration](docs/migration.md#upgrading-from-v220-to-v221).
|
|
23
|
+
- **`asap compliance-check`**: Runs Compliance Harness v2 against an agent
|
|
24
|
+
`HTTP(S)` base URL; `--output {text,json}`, `--exit-on-fail`, `--timeout`,
|
|
25
|
+
`--asap-version`. Documented in [docs/cli.md](docs/cli.md) and
|
|
26
|
+
[docs/ci-compliance.md](docs/ci-compliance.md) (Actions example with
|
|
27
|
+
`--exit-on-fail`).
|
|
28
|
+
- **`asap audit export`**: Exports hash-chained audit rows from SQLite or an
|
|
29
|
+
in-memory store; `--verify-chain` fails on tampering. Documented in
|
|
30
|
+
[docs/cli.md](docs/cli.md#asap-audit-export) and [docs/audit.md](docs/audit.md).
|
|
31
|
+
- **`apps/example-agent`**: Minimal installable example; CI runs Harness v2 and
|
|
32
|
+
fails on score < 1.0 (regression guard).
|
|
33
|
+
|
|
34
|
+
### Security
|
|
35
|
+
|
|
36
|
+
- **`python-dotenv`**: `tool.uv.override-dependencies` pins **≥ 1.2.2** (CVE-2026-28684)
|
|
37
|
+
on transitive installs.
|
|
38
|
+
- **`apps/web`**: Dependency updates closing npm audit findings (Next.js 16.2.4;
|
|
39
|
+
`micromatch` subtree forced to `picomatch` ≥ 2.3.2).
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
|
|
43
|
+
- **CLI package layout**: Typer subcommands live under `asap.cli` / `src/asap/cli/`
|
|
44
|
+
(replacing the monolithic `cli.py` module); `asap` console script unchanged.
|
|
45
|
+
- **`ResolvedAgent.run()`**: Tightens the contract from "tri-branch dict[str, Any]" to
|
|
46
|
+
"the TaskResponse.result dict, or empty dict if result is None". A protocol violation
|
|
47
|
+
(server responds with anything other than a TaskResponse envelope) now raises
|
|
48
|
+
`TypeError` so it surfaces at the call site instead of silently coercing into a dict.
|
|
49
|
+
Return type annotation remains `dict[str, Any]`; no caller API change. Closes the
|
|
50
|
+
deferred follow-up from v2.1 PR-73 review.
|
|
51
|
+
- **Dependency pins**: `cryptography`, `authlib`, `joserfc`, `pyjwt`, `webauthn` (extra),
|
|
52
|
+
and `pydantic` now carry explicit upper bounds to the next major version so breaking
|
|
53
|
+
upstream releases can't auto-install. Policy + bump procedure documented in
|
|
54
|
+
[SECURITY.md §Dependency policy](SECURITY.md#dependency-policy).
|
|
55
|
+
- **ID generation**: `asap.state.stores.sqlite`, `asap.economics.storage`,
|
|
56
|
+
`asap.economics.sla`, and `asap.integrations.a2h` now generate entity IDs through
|
|
57
|
+
`asap.models.ids.generate_id()` (ULID) instead of ad-hoc `uuid.uuid4()`. The
|
|
58
|
+
slowapi storage-URI suffix in `asap.transport.rate_limit` remains `uuid.uuid4().hex`
|
|
59
|
+
because it is a backend namespace, not a domain identifier; an inline comment
|
|
60
|
+
documents the distinction.
|
|
61
|
+
- **`asap.economics.storage` aggregate dispatch**: The six-branch `cast(list[UsageAggregate], ...)`
|
|
62
|
+
clusters in `InMemoryMeteringStorage.aggregate` and `SQLiteMeteringStorage.aggregate` are
|
|
63
|
+
consolidated into a single `_dispatch_aggregate(events, group_by)` helper. Eight
|
|
64
|
+
scattered casts become three, all documented in one place.
|
|
65
|
+
- **`asap.transport.server` helper types**: `_validate_envelope` and `_dispatch_to_handler`
|
|
66
|
+
now return a discriminable `EnvelopeOrError = JSONResponse | tuple[Envelope, str]`
|
|
67
|
+
union instead of `tuple[Envelope | None, JSONResponse | str]`. Callers narrow via
|
|
68
|
+
`isinstance(result, JSONResponse)` and no longer need `cast()` at the three call
|
|
69
|
+
sites. Internal-only refactor; public API unchanged.
|
|
70
|
+
- **`WebAuthnVerifierImpl.start_webauthn_*`**: Returns the full
|
|
71
|
+
`PublicKeyCredentialCreation/RequestOptions` dict from
|
|
72
|
+
`webauthn.helpers.options_to_json_dict` (previously a bare base64url
|
|
73
|
+
challenge). Integrators building a browser adapter get `rp`, `user`,
|
|
74
|
+
`pubKeyCredParams`, `allowCredentials`, and `userVerification` out of the
|
|
75
|
+
box and no longer need to hand-assemble the options envelope.
|
|
76
|
+
- **`default_webauthn_verifier()`**: The returned verifier is now cached
|
|
77
|
+
per-process (keyed by `extra_installed / rp_id / origin`). Pending
|
|
78
|
+
WebAuthn challenges persist across requests when the defensive fallback in
|
|
79
|
+
`agent_routes._webauthn_verifier` is hit — previously each fallback call
|
|
80
|
+
rebuilt an empty `InMemoryWebAuthnCredentialStore`, silently discarding
|
|
81
|
+
any `start_webauthn_assertion` state. Tests can reset the cache with
|
|
82
|
+
`asap.auth.self_auth.reset_default_webauthn_verifier_cache()`.
|
|
83
|
+
|
|
84
|
+
### Fixed
|
|
85
|
+
|
|
86
|
+
- **Swallowed exceptions in `finish_webauthn_assertion`**: Bare
|
|
87
|
+
`except Exception:` blocks now catch the specific
|
|
88
|
+
`InvalidAuthenticationResponse` / `ValueError` / `TypeError` classes and
|
|
89
|
+
emit structured warnings (`asap.webauthn.assertion.invalid`,
|
|
90
|
+
`.malformed_challenge`, `.challenge_mismatch`, `.unknown_credential`)
|
|
91
|
+
via `asap.observability.get_logger` so SIEM rules can detect
|
|
92
|
+
cloned-authenticator and replay patterns.
|
|
93
|
+
- **`WebAuthnCeremonyError` payload**: Public `detail` is now a stable,
|
|
94
|
+
PII-free identifier (`webauthn_registration_state_missing`,
|
|
95
|
+
`webauthn_registration_verification_failed`). `host_id` and the upstream
|
|
96
|
+
library reason are logged internally instead of leaking into the error
|
|
97
|
+
surface.
|
|
98
|
+
- **`audit export --verify-chain`**: Replaces fragile string-matching on
|
|
99
|
+
`"AUDIT_CHAIN_BROKEN"` with a dedicated `asap.economics.audit.AuditChainBroken`
|
|
100
|
+
exception. Invalid `--since` / `--until` ISO-8601 values now surface as
|
|
101
|
+
`typer.BadParameter` instead of an unhandled traceback.
|
|
102
|
+
- **CSV export determinism**: `asap audit export --format csv` now writes
|
|
103
|
+
rows with `lineterminator="\n"` for reproducible diffs on Linux CI.
|
|
104
|
+
- **Test fixtures**: `tests/cli/test_compliance_check.py` uvicorn fixtures
|
|
105
|
+
now stop the server cooperatively via `server.should_exit = True` +
|
|
106
|
+
`thread.join`, preventing the leaked-socket flakes flagged under
|
|
107
|
+
`pytest-xdist` on long suites.
|
|
108
|
+
|
|
109
|
+
### Known limitations
|
|
110
|
+
|
|
111
|
+
- **No reference HTTP enrollment route** for the WebAuthn registration
|
|
112
|
+
ceremony. `WebAuthnVerifierImpl.start_webauthn_registration` /
|
|
113
|
+
`.finish_webauthn_registration` are Python-only helpers in v2.2.1;
|
|
114
|
+
integrators must expose their own adapter route (see
|
|
115
|
+
[docs/security/self-authorization-prevention.md](docs/security/self-authorization-prevention.md#known-limitation-no-reference-http-enrollment-route-in-v221)).
|
|
116
|
+
A first-class `POST /asap/agent/webauthn/register/{begin,finish}` is
|
|
117
|
+
tracked for v2.3 (Adoption Multiplier), where new endpoint surface area
|
|
118
|
+
is permitted.
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## [2.2.0] - 2026-04-15
|
|
123
|
+
|
|
124
|
+
Protocol Hardening release: per-runtime agent identity, capability-based authorization, approval flows, SSE streaming, structured error taxonomy, version negotiation, and async state stores.
|
|
125
|
+
|
|
126
|
+
### Added
|
|
127
|
+
|
|
128
|
+
#### Per-Runtime Agent Identity (S1, ADR-17 extension)
|
|
129
|
+
- **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`)
|
|
130
|
+
- **Identity stores**: `HostIdentity`, `AgentSession`, `HostStore`, `AgentStore`, `InMemoryHostStore`, `InMemoryAgentStore` — per-host and per-agent identity with JWK thumbprint (RFC 7638) (`auth/identity.py`)
|
|
131
|
+
- **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`)
|
|
132
|
+
|
|
133
|
+
#### Capability-Based Authorization (S1)
|
|
134
|
+
- **Capability system**: `CapabilityDefinition`, `CapabilityGrant`, `CapabilityRegistry`, `validate_constraints` — grants with constraints (`max`, `min`, `in`, `not_in`) (`auth/capabilities.py`)
|
|
135
|
+
- **Capability endpoints**: `GET /asap/capability/list`, `GET /asap/capability/describe`, `POST /asap/capability/execute`, `POST /asap/agent/reactivate` (`transport/capability_routes.py`)
|
|
136
|
+
|
|
137
|
+
#### Agent Lifecycle (S1)
|
|
138
|
+
- **Session lifecycle**: `check_agent_expiry`, `extend_session`, `reactivate_agent` — TTL-based session management (`auth/lifecycle.py`)
|
|
139
|
+
|
|
140
|
+
#### Approval Flows (S2)
|
|
141
|
+
- **Device Authorization & CIBA**: `create_device_authorization`, `create_ciba_approval`, `select_approval_method`, `ApprovalStore`, `InMemoryApprovalStore` — RFC 8628 / CIBA-style approval (`auth/approval.py`)
|
|
142
|
+
- **A2H channel**: `A2HApprovalChannel` for agent-to-human approval resolution
|
|
143
|
+
|
|
144
|
+
#### Self-Auth Prevention (S2)
|
|
145
|
+
- **Fresh session**: `FreshSessionConfig`, `check_fresh_session`, `fresh_session_violation_detail` — time-windowed Host JWT validation (`auth/self_auth.py`)
|
|
146
|
+
- **WebAuthn**: Optional `WebAuthnVerifier` for high-risk capability registration
|
|
147
|
+
|
|
148
|
+
#### SSE Streaming (S3)
|
|
149
|
+
- **SSE endpoint**: `POST /asap/stream` returns `text/event-stream` with Envelope JSON events (`transport/server.py`)
|
|
150
|
+
- **TaskStream payload**: Streaming chunks with `chunk`, `progress`, `final`, `status` fields (`models/payloads.py`)
|
|
151
|
+
- **Client streaming**: `ASAPClient.stream(envelope)` parses SSE events into Envelope objects (`transport/client.py`)
|
|
152
|
+
- **Streaming handlers**: `HandlerRegistry.register_streaming_handler`, `dispatch_stream_async` for async generator handlers (`transport/handlers.py`)
|
|
153
|
+
|
|
154
|
+
#### Error Taxonomy (S3, PRD §4.7)
|
|
155
|
+
- **Error hierarchy**: `RecoverableError` / `FatalError` base classes with taxonomy URIs and JSON-RPC codes (-32000 to -32059) (`errors.py`)
|
|
156
|
+
- **Recovery hints**: `retry_after_ms`, `alternative_agents`, `fallback_action` on all ASAP errors
|
|
157
|
+
- **Remote errors**: `RemoteFatalRPCError`, `RemoteRecoverableRPCError` for client-side error reconstruction
|
|
158
|
+
- **Error code registry**: Documented in `docs/error-codes.md`
|
|
159
|
+
|
|
160
|
+
#### ASAP-Version Negotiation (S4)
|
|
161
|
+
- **Version header**: `ASAP-Version` request/response header for wire-level version negotiation (`models/constants.py`)
|
|
162
|
+
- **Version middleware**: `ASAPVersionMiddleware` validates version on `POST /asap` and `POST /asap/stream`; returns `VERSION_INCOMPATIBLE` JSON-RPC error for unsupported versions (`transport/middleware.py`)
|
|
163
|
+
- **Client negotiation**: `ASAPClient` sends supported versions and tracks `last_response_asap_version` (`transport/client.py`)
|
|
164
|
+
- **Manifest field**: `Manifest.supported_versions` for discovery-time version advertisement
|
|
165
|
+
|
|
166
|
+
#### Async State Stores (S4)
|
|
167
|
+
- **AsyncSnapshotStore**: Async protocol (`save`, `get`, `list_versions`, `delete`) replacing sync `SnapshotStore` (deprecated) (`state/snapshot.py`)
|
|
168
|
+
- **AsyncMeteringStore**: Async protocol (`record`, `query`, `aggregate`) replacing sync `MeteringStore` (deprecated) (`state/metering.py`)
|
|
169
|
+
- **SQLite async**: `SQLiteAsyncSnapshotStore` with WAL mode and pragma cache (`state/stores/sqlite.py`)
|
|
170
|
+
|
|
171
|
+
#### JSON-RPC Batch Operations (S5)
|
|
172
|
+
- **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`)
|
|
173
|
+
- **Batch size limit**: Configurable `max_batch_size` (default 50); oversized batches rejected with `INVALID_REQUEST` error
|
|
174
|
+
- **Rate limit integration**: `ASAPRateLimiter.check_n()` counts batch sub-requests against rate limits (`transport/rate_limit.py`)
|
|
175
|
+
- **Client batch**: `ASAPClient.batch(envelopes)` sends single HTTP request with JSON array body (`transport/client.py`)
|
|
176
|
+
|
|
177
|
+
#### Tamper-Evident Audit Logging (S5)
|
|
178
|
+
- **Audit models**: `AuditEntry` with SHA-256 hash chain (`prev_hash` → `hash`) for tamper detection (`economics/audit.py`)
|
|
179
|
+
- **AuditStore protocol**: `append`, `query`, `verify_chain`, `count` — with `InMemoryAuditStore` and `SQLiteAuditStore` implementations
|
|
180
|
+
- **Audit hooks**: Optional `audit_store` parameter in `create_app`; automatic logging of successful message processing
|
|
181
|
+
- **Audit API**: `GET /audit` with `urn`, `start`, `end`, `limit`, `offset` query parameters
|
|
182
|
+
|
|
183
|
+
#### Compliance Harness v2 (S5)
|
|
184
|
+
- **Harness runner**: `run_compliance_harness_v2(app)` validates ASGI applications against v2.2 spec (`testing/compliance.py`)
|
|
185
|
+
- **Check categories**: Identity, streaming, errors, versioning, batch, audit — each with multiple checks
|
|
186
|
+
- **Compliance report**: `ComplianceReport` with score (0.0–1.0), check results, and JSON export via `to_json()`
|
|
187
|
+
|
|
188
|
+
### Security
|
|
189
|
+
|
|
190
|
+
- **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)
|
|
191
|
+
- **Self-auth prevention**: Agents cannot register capabilities without fresh host session and optional WebAuthn verification
|
|
192
|
+
- **JTI replay cache**: Prevents JWT replay on mutating agent identity endpoints
|
|
193
|
+
|
|
194
|
+
### Changed
|
|
195
|
+
|
|
196
|
+
- **Wire version**: Default transport version bumped from `2.1` to `2.2`; backward compatible with `2.1`
|
|
197
|
+
- **State stores**: `SnapshotStore` and `MeteringStore` sync protocols deprecated in favor of async variants
|
|
198
|
+
|
|
199
|
+
### Technical Details
|
|
200
|
+
|
|
201
|
+
- **Python**: 3.13+
|
|
202
|
+
- **Tests**: 2941 passed, 7 skipped; full CI green (ruff, mypy, pytest, pip-audit)
|
|
203
|
+
- **Coverage**: ≥90% for new v2.2 modules
|
|
204
|
+
- **Full Changelog**: https://github.com/adriannoes/asap-protocol/compare/v2.1.1...v2.2.0
|
|
12
205
|
|
|
13
206
|
---
|
|
14
207
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: asap-protocol
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.2.1
|
|
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
|
|
24
|
+
Requires-Dist: authlib<2,>=1.6.11
|
|
25
25
|
Requires-Dist: brotli>=1.2.0
|
|
26
|
-
Requires-Dist: cryptography
|
|
26
|
+
Requires-Dist: cryptography<47,>=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
|
|
30
|
+
Requires-Dist: joserfc<2,>=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
|
|
@@ -36,7 +36,7 @@ Requires-Dist: opentelemetry-instrumentation-fastapi>=0.41
|
|
|
36
36
|
Requires-Dist: opentelemetry-instrumentation-httpx>=0.41
|
|
37
37
|
Requires-Dist: opentelemetry-sdk>=1.20
|
|
38
38
|
Requires-Dist: packaging>=25.0
|
|
39
|
-
Requires-Dist: pydantic
|
|
39
|
+
Requires-Dist: pydantic<3,>=2.12.5
|
|
40
40
|
Requires-Dist: python-ulid>=3.0
|
|
41
41
|
Requires-Dist: structlog>=24.1
|
|
42
42
|
Requires-Dist: typer>=0.21.1
|
|
@@ -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
|
|
@@ -76,6 +77,8 @@ Provides-Extra: redis
|
|
|
76
77
|
Requires-Dist: redis>=5.0.0; extra == 'redis'
|
|
77
78
|
Provides-Extra: smolagents
|
|
78
79
|
Requires-Dist: smolagents>=1.0; extra == 'smolagents'
|
|
80
|
+
Provides-Extra: webauthn
|
|
81
|
+
Requires-Dist: webauthn<3,>=2.6; extra == 'webauthn'
|
|
79
82
|
Description-Content-Type: text/markdown
|
|
80
83
|
|
|
81
84
|
# ASAP: Async Simple Agent Protocol
|
|
@@ -87,9 +90,9 @@ Description-Content-Type: text/markdown
|
|
|
87
90
|
|
|
88
91
|
> A production-ready protocol for agent-to-agent communication and task coordination.
|
|
89
92
|
|
|
90
|
-
**Quick Info**: `v2.1
|
|
93
|
+
**Quick Info**: `v2.2.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
94
|
|
|
92
|
-
> 🚀 **Live now** our agentic marketplace**](https://asap-protocol.vercel.app/) —
|
|
95
|
+
> 🚀 **Live now** our [**agentic marketplace**](https://asap-protocol.vercel.app/) — browse agents, register yours, request verification.
|
|
93
96
|
|
|
94
97
|
## Why ASAP?
|
|
95
98
|
|
|
@@ -98,7 +101,7 @@ Building multi-agent systems today suffers from three core technical challenges
|
|
|
98
101
|
2. **State Drift**: Lack of native persistence makes it impossible to reliably resume long-running agentic workflows.
|
|
99
102
|
3. **Fragmentation**: No unified way to handle task delegation, artifact exchange and tool execution (MCP) in a single envelope.
|
|
100
103
|
|
|
101
|
-
**ASAP** provides a production-ready communication layer that simplifies these complexities. It's ideal for **multi-agent orchestration**, **stateful workflows** (persistence, resumability), **MCP
|
|
104
|
+
**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
105
|
|
|
103
106
|
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
107
|
|
|
@@ -109,11 +112,13 @@ For simple point-to-point communication, a basic HTTP API might suffice; ASAP sh
|
|
|
109
112
|
- **Async-native** — `asyncio` + `httpx`; sync and async handlers supported.
|
|
110
113
|
- **MCP integration** — Tool execution and coordination in a single envelope.
|
|
111
114
|
- **Observable** — `trace_id` and `correlation_id` for debugging.
|
|
112
|
-
- **Security** — Bearer auth, OAuth2/JWT
|
|
115
|
+
- **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).
|
|
116
|
+
- **Identity & capabilities (v2.2, WebAuthn real in v2.2.1)** — Per-runtime Host/Agent JWTs, capability grants with constraints (`max`, `min`, `in`, `not_in`), approval flows (device authorization / CIBA-style), real WebAuthn attestation/assertion for high-risk registration (opt-in via `asap-protocol[webauthn]`).
|
|
117
|
+
- **Streaming & wire protocol (v2.2)** — `POST /asap/stream` (SSE / `TaskStream`), JSON-RPC 2.0 batch on `POST /asap`, `ASAP-Version` negotiation, tamper-evident audit logging, Compliance Harness v2.
|
|
113
118
|
- **Economics** — Usage metering, delegation tokens, SLA framework with breach alerts.
|
|
114
119
|
|
|
115
120
|
### 🆕 Framework Ecosystem
|
|
116
|
-
ASAP is built for interoperability. Seamlessly integrate your agents into **OpenClaw
|
|
121
|
+
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
122
|
|
|
118
123
|
## Installation
|
|
119
124
|
|
|
@@ -129,7 +134,7 @@ Or with pip:
|
|
|
129
134
|
pip install asap-protocol
|
|
130
135
|
```
|
|
131
136
|
|
|
132
|
-
📦 **Available on [PyPI](https://pypi.org/project/asap-protocol/)
|
|
137
|
+
📦 **Available on [PyPI](https://pypi.org/project/asap-protocol/)** — for reproducible environments, prefer `uv` when possible.
|
|
133
138
|
|
|
134
139
|
## Quick Start
|
|
135
140
|
|
|
@@ -168,10 +173,6 @@ pytest --asap-agent-url https://your-agent.example.com -m asap_compliance
|
|
|
168
173
|
|
|
169
174
|
See [Compliance Testing Guide](https://github.com/adriannoes/asap-protocol/blob/main/docs/guides/compliance-testing.md) for handshake, schema and state machine validation.
|
|
170
175
|
|
|
171
|
-
## Benchmarks
|
|
172
|
-
|
|
173
|
-
[Benchmark Results](https://github.com/adriannoes/asap-protocol/blob/main/benchmarks/RESULTS.md): load (1,500+ RPS), stress, memory.
|
|
174
|
-
|
|
175
176
|
## Documentation
|
|
176
177
|
|
|
177
178
|
**Learn**
|
|
@@ -187,7 +188,7 @@ See [Compliance Testing Guide](https://github.com/adriannoes/asap-protocol/blob/
|
|
|
187
188
|
- [Observability](https://github.com/adriannoes/asap-protocol/blob/main/docs/observability.md) | [Testing](https://github.com/adriannoes/asap-protocol/blob/main/docs/testing.md)
|
|
188
189
|
|
|
189
190
|
**Decisions & Operations**
|
|
190
|
-
- [ADRs](https://github.com/adriannoes/asap-protocol/tree/main/docs/adr) —
|
|
191
|
+
- [ADRs](https://github.com/adriannoes/asap-protocol/tree/main/docs/adr) — 19 Architecture Decision Records
|
|
191
192
|
- [Tech Stack](https://github.com/adriannoes/asap-protocol/blob/main/.cursor/dev-planning/architecture/tech-stack-decisions.md) — Rationale for Python, Pydantic, Next.js choices
|
|
192
193
|
- [Deployment](https://github.com/adriannoes/asap-protocol/blob/main/docs/deployment/kubernetes.md) | [Troubleshooting](https://github.com/adriannoes/asap-protocol/blob/main/docs/troubleshooting.md)
|
|
193
194
|
|
|
@@ -196,40 +197,42 @@ See [Compliance Testing Guide](https://github.com/adriannoes/asap-protocol/blob/
|
|
|
196
197
|
|
|
197
198
|
## CLI
|
|
198
199
|
|
|
199
|
-
**v1.1** adds OAuth2, WebSocket, Discovery (well-known + Lite Registry), State Storage (SQLite), and Webhooks. **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). **v1.3** adds delegation commands (`asap delegation create`, `asap delegation revoke`).
|
|
200
|
-
|
|
201
200
|
```bash
|
|
202
201
|
asap --version # Show version
|
|
203
202
|
asap list-schemas # List all available schemas
|
|
204
203
|
asap export-schemas # Export JSON schemas to file
|
|
205
|
-
asap
|
|
206
|
-
asap
|
|
207
|
-
asap
|
|
208
|
-
asap manifest
|
|
204
|
+
asap compliance-check --url https://agent.example # Compliance Harness v2 (HTTP(S))
|
|
205
|
+
asap audit export --store memory --format json # Export audit log (stdout)
|
|
206
|
+
asap keys generate -o key.pem # Generate Ed25519 keypair
|
|
207
|
+
asap manifest sign -k key.pem manifest.json # Sign manifest
|
|
208
|
+
asap manifest verify signed.json # Verify signature
|
|
209
|
+
asap manifest info signed.json # Show trust level
|
|
209
210
|
```
|
|
210
211
|
|
|
211
|
-
See [CLI reference](
|
|
212
|
+
See the [CLI reference](docs/cli.md) for `compliance-check` and `audit export` flag details, the [CI compliance gate](docs/ci-compliance.md) for wiring `compliance-check` into GitHub Actions, the [audit export guide](docs/audit.md), [Identity Signing](docs/guides/identity-signing.md), or run `asap --help` for the full command surface.
|
|
212
213
|
|
|
213
|
-
|
|
214
|
+
## Version History
|
|
214
215
|
|
|
215
|
-
|
|
216
|
+
- **v1.1** adds OAuth2, WebSocket, Discovery (well-known + Lite Registry), State Storage (SQLite) and Webhooks.
|
|
217
|
+
- **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).
|
|
218
|
+
- **v1.3** adds delegation commands (`asap delegation create`, `asap delegation revoke`).
|
|
219
|
+
- **v2.0** adds the Lean Marketplace Web App (Next.js), Lite Registry on GitHub Pages, IssueOps registration, OAuth sign-in for developers, and Verified Badge flow.
|
|
220
|
+
- **v2.1** adds the Consumer SDK (`MarketClient`), optional framework extras (LangChain, CrewAI, LlamaIndex, SmolAgents, OpenClaw, …), and registry UX improvements on PyPI.
|
|
221
|
+
- **v2.1.1** is a patch release: JWT algorithm allowlist, SQLite async bridging, optional Redis-backed rate limits, SSRF hardening in the web app, and related reliability fixes (see [Changelog](https://github.com/adriannoes/asap-protocol/blob/main/CHANGELOG.md)).
|
|
222
|
+
- **v2.2** adds per-runtime agent identity, capability-based authorization, SSE streaming (`POST /asap/stream`), `ASAP-Version` negotiation, JSON-RPC batch requests, tamper-evident audit logging, async state stores, and Compliance Harness v2.
|
|
223
|
+
- **v2.2.1** closes the SELF-002 follow-up with **real WebAuthn** attestation/assertion via the opt-in `asap-protocol[webauthn]` extra, ships the `asap compliance-check` and `asap audit export` CLIs, promotes the client SDK `ResolvedAgent.run()` to a typed contract (raises `TypeError` on protocol violation), introduces the `asap.economics.audit.AuditChainBroken` exception for scripted tamper handling, and pins upper bounds on security-sensitive deps (`cryptography`, `authlib`, `joserfc`, `pyjwt`, `webauthn`, `pydantic`) — see [dependency policy](https://github.com/adriannoes/asap-protocol/blob/main/SECURITY.md#dependency-policy) and full notes in the [Changelog](https://github.com/adriannoes/asap-protocol/blob/main/CHANGELOG.md).
|
|
216
224
|
|
|
217
|
-
|
|
225
|
+
For a structured index of per-version features, see the [docs index](https://github.com/adriannoes/asap-protocol/blob/main/docs/index.md#v11-features-api-reference--guides).
|
|
218
226
|
|
|
219
|
-
|
|
220
|
-
- **v1.2**: Trust Layer (Signed Manifests, Compliance Harness, mTLS) ✅
|
|
221
|
-
- **v1.3**: Economics Layer (Metering, SLAs, Delegation) ✅
|
|
222
|
-
- **v1.4**: Resilience & Scale (Type Safety, Storage Pagination) ✅
|
|
223
|
-
- **v2.0**: Agent Marketplace with Web App (Lean Registry, Verified Badge, IssueOps) ✅
|
|
224
|
-
- **v2.1**: PyPI distribution, Consumer SDK, framework integrations (LangChain, CrewAI, LlamaIndex, SmolAgents, OpenClaw) ✅
|
|
227
|
+
## 🔭 What's Next?
|
|
225
228
|
|
|
226
|
-
See our [vision document](https://github.com/adriannoes/asap-protocol/blob/main/.cursor/product-specs/strategy/vision-agent-marketplace.md) for the full roadmap.
|
|
229
|
+
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.
|
|
227
230
|
|
|
228
231
|
## Contributing
|
|
229
232
|
|
|
230
|
-
**Community feedback and contributions are essential** for ASAP Protocol's evolution.
|
|
233
|
+
**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.
|
|
231
234
|
|
|
232
|
-
|
|
235
|
+
Every contribution, from bug reports to feature suggestions, documentation improvements and code contributions, makes a real difference.
|
|
233
236
|
|
|
234
237
|
Check out our [contributing guidelines](https://github.com/adriannoes/asap-protocol/blob/main/CONTRIBUTING.md) to get started. It's easier than you think! 🚀
|
|
235
238
|
|
|
@@ -239,4 +242,4 @@ This project is licensed under the Apache 2.0 License - see the [license](https:
|
|
|
239
242
|
|
|
240
243
|
---
|
|
241
244
|
|
|
242
|
-
**Built with [Cursor](https://cursor.com/)
|
|
245
|
+
**Built with [Cursor](https://cursor.com/) and [Claude Code](https://claude.com/claude-code)** — primarily Claude Opus 4.7 (1M context) with Cursor Composer 1.5, Gemini 3.1 Pro, and Kimi K2.5 as collaborators.
|
|
@@ -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.1
|
|
10
|
+
**Quick Info**: `v2.2.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** our agentic marketplace**](https://asap-protocol.vercel.app/) —
|
|
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,7 +18,7 @@ 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
|
|
|
@@ -29,11 +29,13 @@ For simple point-to-point communication, a basic HTTP API might suffice; ASAP sh
|
|
|
29
29
|
- **Async-native** — `asyncio` + `httpx`; sync and async handlers supported.
|
|
30
30
|
- **MCP integration** — Tool execution and coordination in a single envelope.
|
|
31
31
|
- **Observable** — `trace_id` and `correlation_id` for debugging.
|
|
32
|
-
- **Security** — Bearer auth, OAuth2/JWT
|
|
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
|
+
- **Identity & capabilities (v2.2, WebAuthn real in v2.2.1)** — Per-runtime Host/Agent JWTs, capability grants with constraints (`max`, `min`, `in`, `not_in`), approval flows (device authorization / CIBA-style), real WebAuthn attestation/assertion for high-risk registration (opt-in via `asap-protocol[webauthn]`).
|
|
34
|
+
- **Streaming & wire protocol (v2.2)** — `POST /asap/stream` (SSE / `TaskStream`), JSON-RPC 2.0 batch on `POST /asap`, `ASAP-Version` negotiation, tamper-evident audit logging, Compliance Harness v2.
|
|
33
35
|
- **Economics** — Usage metering, delegation tokens, SLA framework with breach alerts.
|
|
34
36
|
|
|
35
37
|
### 🆕 Framework Ecosystem
|
|
36
|
-
ASAP is built for interoperability. Seamlessly integrate your agents into **OpenClaw
|
|
38
|
+
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
39
|
|
|
38
40
|
## Installation
|
|
39
41
|
|
|
@@ -49,7 +51,7 @@ Or with pip:
|
|
|
49
51
|
pip install asap-protocol
|
|
50
52
|
```
|
|
51
53
|
|
|
52
|
-
📦 **Available on [PyPI](https://pypi.org/project/asap-protocol/)
|
|
54
|
+
📦 **Available on [PyPI](https://pypi.org/project/asap-protocol/)** — for reproducible environments, prefer `uv` when possible.
|
|
53
55
|
|
|
54
56
|
## Quick Start
|
|
55
57
|
|
|
@@ -88,10 +90,6 @@ pytest --asap-agent-url https://your-agent.example.com -m asap_compliance
|
|
|
88
90
|
|
|
89
91
|
See [Compliance Testing Guide](https://github.com/adriannoes/asap-protocol/blob/main/docs/guides/compliance-testing.md) for handshake, schema and state machine validation.
|
|
90
92
|
|
|
91
|
-
## Benchmarks
|
|
92
|
-
|
|
93
|
-
[Benchmark Results](https://github.com/adriannoes/asap-protocol/blob/main/benchmarks/RESULTS.md): load (1,500+ RPS), stress, memory.
|
|
94
|
-
|
|
95
93
|
## Documentation
|
|
96
94
|
|
|
97
95
|
**Learn**
|
|
@@ -107,7 +105,7 @@ See [Compliance Testing Guide](https://github.com/adriannoes/asap-protocol/blob/
|
|
|
107
105
|
- [Observability](https://github.com/adriannoes/asap-protocol/blob/main/docs/observability.md) | [Testing](https://github.com/adriannoes/asap-protocol/blob/main/docs/testing.md)
|
|
108
106
|
|
|
109
107
|
**Decisions & Operations**
|
|
110
|
-
- [ADRs](https://github.com/adriannoes/asap-protocol/tree/main/docs/adr) —
|
|
108
|
+
- [ADRs](https://github.com/adriannoes/asap-protocol/tree/main/docs/adr) — 19 Architecture Decision Records
|
|
111
109
|
- [Tech Stack](https://github.com/adriannoes/asap-protocol/blob/main/.cursor/dev-planning/architecture/tech-stack-decisions.md) — Rationale for Python, Pydantic, Next.js choices
|
|
112
110
|
- [Deployment](https://github.com/adriannoes/asap-protocol/blob/main/docs/deployment/kubernetes.md) | [Troubleshooting](https://github.com/adriannoes/asap-protocol/blob/main/docs/troubleshooting.md)
|
|
113
111
|
|
|
@@ -116,40 +114,42 @@ See [Compliance Testing Guide](https://github.com/adriannoes/asap-protocol/blob/
|
|
|
116
114
|
|
|
117
115
|
## CLI
|
|
118
116
|
|
|
119
|
-
**v1.1** adds OAuth2, WebSocket, Discovery (well-known + Lite Registry), State Storage (SQLite), and Webhooks. **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). **v1.3** adds delegation commands (`asap delegation create`, `asap delegation revoke`).
|
|
120
|
-
|
|
121
117
|
```bash
|
|
122
118
|
asap --version # Show version
|
|
123
119
|
asap list-schemas # List all available schemas
|
|
124
120
|
asap export-schemas # Export JSON schemas to file
|
|
125
|
-
asap
|
|
126
|
-
asap
|
|
127
|
-
asap
|
|
128
|
-
asap manifest
|
|
121
|
+
asap compliance-check --url https://agent.example # Compliance Harness v2 (HTTP(S))
|
|
122
|
+
asap audit export --store memory --format json # Export audit log (stdout)
|
|
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
|
|
129
127
|
```
|
|
130
128
|
|
|
131
|
-
See [CLI reference](
|
|
129
|
+
See the [CLI reference](docs/cli.md) for `compliance-check` and `audit export` flag details, the [CI compliance gate](docs/ci-compliance.md) for wiring `compliance-check` into GitHub Actions, the [audit export guide](docs/audit.md), [Identity Signing](docs/guides/identity-signing.md), or run `asap --help` for the full command surface.
|
|
132
130
|
|
|
133
|
-
|
|
131
|
+
## Version History
|
|
134
132
|
|
|
135
|
-
|
|
133
|
+
- **v1.1** adds OAuth2, WebSocket, Discovery (well-known + Lite Registry), State Storage (SQLite) and Webhooks.
|
|
134
|
+
- **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).
|
|
135
|
+
- **v1.3** adds delegation commands (`asap delegation create`, `asap delegation revoke`).
|
|
136
|
+
- **v2.0** adds the Lean Marketplace Web App (Next.js), Lite Registry on GitHub Pages, IssueOps registration, OAuth sign-in for developers, and Verified Badge flow.
|
|
137
|
+
- **v2.1** adds the Consumer SDK (`MarketClient`), optional framework extras (LangChain, CrewAI, LlamaIndex, SmolAgents, OpenClaw, …), and registry UX improvements on PyPI.
|
|
138
|
+
- **v2.1.1** is a patch release: JWT algorithm allowlist, SQLite async bridging, optional Redis-backed rate limits, SSRF hardening in the web app, and related reliability fixes (see [Changelog](https://github.com/adriannoes/asap-protocol/blob/main/CHANGELOG.md)).
|
|
139
|
+
- **v2.2** adds per-runtime agent identity, capability-based authorization, SSE streaming (`POST /asap/stream`), `ASAP-Version` negotiation, JSON-RPC batch requests, tamper-evident audit logging, async state stores, and Compliance Harness v2.
|
|
140
|
+
- **v2.2.1** closes the SELF-002 follow-up with **real WebAuthn** attestation/assertion via the opt-in `asap-protocol[webauthn]` extra, ships the `asap compliance-check` and `asap audit export` CLIs, promotes the client SDK `ResolvedAgent.run()` to a typed contract (raises `TypeError` on protocol violation), introduces the `asap.economics.audit.AuditChainBroken` exception for scripted tamper handling, and pins upper bounds on security-sensitive deps (`cryptography`, `authlib`, `joserfc`, `pyjwt`, `webauthn`, `pydantic`) — see [dependency policy](https://github.com/adriannoes/asap-protocol/blob/main/SECURITY.md#dependency-policy) and full notes in the [Changelog](https://github.com/adriannoes/asap-protocol/blob/main/CHANGELOG.md).
|
|
136
141
|
|
|
137
|
-
|
|
142
|
+
For a structured index of per-version features, see the [docs index](https://github.com/adriannoes/asap-protocol/blob/main/docs/index.md#v11-features-api-reference--guides).
|
|
138
143
|
|
|
139
|
-
|
|
140
|
-
- **v1.2**: Trust Layer (Signed Manifests, Compliance Harness, mTLS) ✅
|
|
141
|
-
- **v1.3**: Economics Layer (Metering, SLAs, Delegation) ✅
|
|
142
|
-
- **v1.4**: Resilience & Scale (Type Safety, Storage Pagination) ✅
|
|
143
|
-
- **v2.0**: Agent Marketplace with Web App (Lean Registry, Verified Badge, IssueOps) ✅
|
|
144
|
-
- **v2.1**: PyPI distribution, Consumer SDK, framework integrations (LangChain, CrewAI, LlamaIndex, SmolAgents, OpenClaw) ✅
|
|
144
|
+
## 🔭 What's Next?
|
|
145
145
|
|
|
146
|
-
See our [vision document](https://github.com/adriannoes/asap-protocol/blob/main/.cursor/product-specs/strategy/vision-agent-marketplace.md) for the full roadmap.
|
|
146
|
+
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.
|
|
147
147
|
|
|
148
148
|
## Contributing
|
|
149
149
|
|
|
150
|
-
**Community feedback and contributions are essential** for ASAP Protocol's evolution.
|
|
150
|
+
**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.
|
|
151
151
|
|
|
152
|
-
|
|
152
|
+
Every contribution, from bug reports to feature suggestions, documentation improvements and code contributions, makes a real difference.
|
|
153
153
|
|
|
154
154
|
Check out our [contributing guidelines](https://github.com/adriannoes/asap-protocol/blob/main/CONTRIBUTING.md) to get started. It's easier than you think! 🚀
|
|
155
155
|
|
|
@@ -159,4 +159,4 @@ This project is licensed under the Apache 2.0 License - see the [license](https:
|
|
|
159
159
|
|
|
160
160
|
---
|
|
161
161
|
|
|
162
|
-
**Built with [Cursor](https://cursor.com/)
|
|
162
|
+
**Built with [Cursor](https://cursor.com/) and [Claude Code](https://claude.com/claude-code)** — primarily Claude Opus 4.7 (1M context) with Cursor Composer 1.5, Gemini 3.1 Pro, and Kimi K2.5 as collaborators.
|