@bluefly/openstandardagents 0.4.6 → 0.4.8
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.
- package/.version.json +3 -3
- package/CHANGELOG.md +16 -0
- package/README.md +1 -0
- package/dist/.version.json +3 -3
- package/dist/adapters/mcp/converter.js +4 -3
- package/dist/adapters/npm/adapter.js +2 -1
- package/dist/adapters/openai-agents/adapter.js +1 -1
- package/dist/cli/commands/config.command.d.ts +7 -0
- package/dist/cli/commands/config.command.js +92 -0
- package/dist/cli/commands/migrate.command.js +1 -1
- package/dist/cli/commands/sign.command.d.ts +3 -0
- package/dist/cli/commands/sign.command.js +42 -0
- package/dist/cli/commands/skills.command.js +4 -6
- package/dist/config/cli-config.d.ts +33 -0
- package/dist/config/cli-config.js +107 -0
- package/dist/mcp-server/index.js +0 -0
- package/dist/package.json +8 -9
- package/dist/services/governance/cedar-provider.js +2 -1
- package/dist/services/release-automation/base-crud.service.d.ts +93 -0
- package/dist/services/release-automation/base-crud.service.js +68 -0
- package/dist/services/release-automation/generate-changelog.d.ts +7 -0
- package/dist/services/release-automation/generate-changelog.js +288 -0
- package/dist/services/release-automation/increment-dev-tag.d.ts +7 -0
- package/dist/services/release-automation/increment-dev-tag.js +160 -0
- package/dist/services/release-automation/index.d.ts +12 -0
- package/dist/services/release-automation/index.js +12 -0
- package/dist/services/release-automation/merge-request.service.d.ts +119 -0
- package/dist/services/release-automation/merge-request.service.js +212 -0
- package/dist/services/release-automation/milestone.service.d.ts +104 -0
- package/dist/services/release-automation/milestone.service.js +207 -0
- package/dist/services/release-automation/release-agent.service.d.ts +39 -0
- package/dist/services/release-automation/release-agent.service.js +43 -0
- package/dist/services/release-automation/release-buttons.d.ts +7 -0
- package/dist/services/release-automation/release-buttons.js +207 -0
- package/dist/services/release-automation/release.service.d.ts +118 -0
- package/dist/services/release-automation/release.service.js +207 -0
- package/dist/services/release-automation/schemas/release.schema.d.ts +299 -0
- package/dist/services/release-automation/schemas/release.schema.js +272 -0
- package/dist/services/release-automation/tag.service.d.ts +99 -0
- package/dist/services/release-automation/tag.service.js +183 -0
- package/dist/services/release-automation/webhook.service.d.ts +37 -0
- package/dist/services/release-automation/webhook.service.js +187 -0
- package/dist/skills/test-skill/README.md +36 -0
- package/dist/skills/test-skill/SKILL.md +31 -0
- package/dist/skills/test-skill/index.d.ts +31 -0
- package/dist/skills/test-skill/install.js +44 -0
- package/dist/skills/test-skill/package.json +36 -0
- package/dist/spec/reference/reference-agents/compliance-auditor/manifest.ossa.yaml +1 -1
- package/dist/spec/reference/reference-agents/doc-agent/manifest.ossa.yaml +1 -1
- package/dist/spec/reference/reference-agents/mr-reviewer/manifest.ossa.yaml +1 -1
- package/dist/spec/reference/reference-agents/ossa-validator-v0.3/manifest.ossa.yaml +1 -1
- package/dist/spec/reference/reference-agents/pipeline-fixer/manifest.ossa.yaml +1 -1
- package/dist/spec/reference/reference-agents/release-orchestrator/manifest.ossa.yaml +1 -1
- package/dist/spec/uadp/README.md +393 -0
- package/dist/spec/uadp/openapi.yaml +387 -0
- package/dist/spec/uadp/schemas/uadp-agents-response.schema.json +68 -0
- package/dist/spec/uadp/schemas/uadp-federation-response.schema.json +46 -0
- package/dist/spec/uadp/schemas/uadp-manifest.schema.json +82 -0
- package/dist/spec/uadp/schemas/uadp-skills-response.schema.json +72 -0
- package/dist/spec/v0.4/agent-card.schema.json +1 -1
- package/dist/spec/v0.4/agent.schema.json +15 -15
- package/dist/spec/v0.4/extensions/a2a/a2a.schema.json +1 -1
- package/dist/spec/v0.4/extensions/ag2/ag2.schema.json +1 -1
- package/dist/spec/v0.4/extensions/crewai/crewai.schema.json +1 -1
- package/dist/spec/v0.4/extensions/kagent/kagent.schema.json +1 -1
- package/dist/spec/v0.4/extensions/langchain/langchain.schema.json +1 -1
- package/dist/spec/v0.4/extensions/langgraph/langgraph.schema.json +1 -1
- package/dist/spec/v0.4/extensions/mcp/mcp.schema.json +1 -1
- package/dist/spec/v0.5/agent-card.schema.json +477 -0
- package/dist/spec/v0.5/agent.schema.json +1556 -0
- package/dist/spec/v0.5/conformance/profiles/baseline.json +19 -0
- package/dist/spec/v0.5/conformance/profiles/enterprise.json +20 -0
- package/dist/spec/v0.5/extensions/a2a/README.md +193 -0
- package/dist/spec/v0.5/extensions/a2a/a2a.schema.json +77 -0
- package/dist/spec/v0.5/extensions/ag2/ag2.schema.json +277 -0
- package/dist/spec/v0.5/extensions/cognition/cognition.schema.json +94 -0
- package/dist/spec/v0.5/extensions/cognition/thought-node.schema.json +80 -0
- package/dist/spec/v0.5/extensions/crewai/crewai.schema.json +256 -0
- package/dist/spec/v0.5/extensions/drupal/drupal.schema.json +318 -0
- package/dist/spec/v0.5/extensions/evals/evals.schema.json +597 -0
- package/dist/spec/v0.5/extensions/governance/governance-extension.yaml +161 -0
- package/dist/spec/v0.5/extensions/identity/identity.schema.json +302 -0
- package/dist/spec/v0.5/extensions/kagent/README.md +315 -0
- package/dist/spec/v0.5/extensions/kagent/kagent.schema.json +624 -0
- package/dist/spec/v0.5/extensions/langchain/langchain.schema.json +243 -0
- package/dist/spec/v0.5/extensions/langgraph/langgraph.schema.json +211 -0
- package/dist/spec/v0.5/extensions/mcp/README.md +276 -0
- package/dist/spec/v0.5/extensions/mcp/mcp.schema.json +84 -0
- package/dist/spec/v0.5/extensions/memory/memory.schema.json +7 -0
- package/dist/spec/v0.5/extensions/team/team.schema.json +304 -0
- package/dist/spec/v0.5/extensions/token-efficiency/token-efficiency.schema.json +47 -0
- package/dist/spec/v0.5/mcp.schema.json +1 -0
- package/dist/spec/v0.5/skill.schema.json +1 -0
- package/dist/spec/v0.5/validator.schema.json +282 -0
- package/dist/validation/error-codes.js +1 -1
- package/examples/a2a/agent-handoff.ossa.yaml +1 -1
- package/examples/a2a/service-discovery.ossa.yaml +1 -1
- package/examples/adapters/drupal-eca-mapping.yaml +1 -1
- package/examples/adapters/drupal-eca-task.yaml +1 -1
- package/examples/adapters/drupal-flowdrop-mapping.yaml +1 -1
- package/examples/adapters/drupal-maestro-mapping.yaml +1 -1
- package/examples/adapters/mistral-agent.yaml +1 -1
- package/examples/adapters/symfony-messenger-task.yaml +1 -1
- package/examples/adapters/symfony-messenger-workflow.yaml +1 -1
- package/examples/adk-integration/code-review-workflow.yml +1 -1
- package/examples/adk-integration/customer-support.yml +1 -1
- package/examples/adk-integration/data-pipeline.yml +1 -1
- package/examples/advanced/reasoning-agent.yaml +1 -1
- package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -1
- package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
- package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
- package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
- package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
- package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
- package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
- package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
- package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
- package/examples/agent-taxonomy-example.ossa.yaml +1 -1
- package/examples/agents/01-customer-support-bot/agent.ossa.yaml +1 -1
- package/examples/agents/02-code-review-agent/agent.ossa.yaml +1 -1
- package/examples/agents/03-data-analysis-agent/agent.ossa.yaml +1 -1
- package/examples/agents/04-content-moderator/agent.ossa.yaml +1 -1
- package/examples/agents/05-sales-assistant/agent.ossa.yaml +1 -1
- package/examples/agents/06-devops-agent/agent.ossa.yaml +1 -1
- package/examples/agents/07-research-assistant/agent.ossa.yaml +1 -1
- package/examples/agents/08-email-triage-agent/agent.ossa.yaml +1 -1
- package/examples/agents/09-security-scanner/agent.ossa.yaml +1 -1
- package/examples/agents/10-meeting-assistant/agent.ossa.yaml +1 -1
- package/examples/agents/architecture-healer-enterprise.yaml +1 -1
- package/examples/agents/dependency-healer-npm.yaml +1 -1
- package/examples/agents/spec-healer-openapi.yaml +1 -1
- package/examples/agents/wiki-healer-production.yaml +1 -1
- package/examples/agents-md/monorepo-agent.ossa.yaml +1 -1
- package/examples/agentscope/react-assistant/README.md +111 -0
- package/examples/agentscope/react-assistant/agent.ossa.yaml +132 -0
- package/examples/agentscope/react-assistant/skills/code-analysis/SKILL.md +18 -0
- package/examples/agentscope/react-assistant/skills/question-answering/SKILL.md +18 -0
- package/examples/autonomous-evolution/self-evolving-agent.ossa.yaml +1 -1
- package/examples/bridges/.gitlab-ci.yml +2 -2
- package/examples/build-once-use-everywhere/agent.ossa.yaml +1 -1
- package/examples/claude-code/code-reviewer.ossa.yaml +1 -1
- package/examples/claude-code/ossa-validator.ossa.yaml +1 -1
- package/examples/common_npm/agent-router.ossa.yaml +1 -1
- package/examples/contracts/data-consumer.ossa.yaml +1 -1
- package/examples/contracts/data-producer-v2.ossa.yaml +1 -1
- package/examples/contracts/data-producer.ossa.yaml +1 -1
- package/examples/drupal/QUICKSTART.md +17 -3
- package/examples/drupal/ai_agents_agentscope/README.md +62 -0
- package/examples/drupal/ai_agents_agentscope/ai_agents_agentscope.info.yml +13 -0
- package/examples/drupal/ai_agents_agentscope/ai_agents_agentscope.services.yml +4 -0
- package/examples/drupal/ai_agents_agentscope/config/install/ai_agents_agentscope.settings.yml +3 -0
- package/examples/drupal/ai_agents_agentscope/config/schema/ai_agents_agentscope.schema.yml +14 -0
- package/examples/drupal/ai_agents_agentscope/src/AgentScopeRuntime.php +11 -0
- package/examples/drupal/ai_agents_agentscope/src/Plugin/AiAgent/AgentScopeAgent.php +10 -0
- package/examples/drupal/ai_agents_agentscope/src/Plugin/AiProvider/AgentScopeProvider.php +217 -0
- package/examples/drupal/ai_agents_agentscope/src/Plugin/Derivative/AgentScopeDeriver.php +10 -0
- package/examples/drupal/ai_agents_agentscope/src/Service/AgentScopeAdapter.php +9 -0
- package/examples/drupal/content-moderator.ossa.yaml +1 -1
- package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -1
- package/examples/export/langchain/production-agent-with-memory/agent.ossa.yaml +1 -1
- package/examples/export/langchain/production-agent-with-tools/agent.ossa.yaml +1 -1
- package/examples/extensions/agents-md-advanced.yml +1 -1
- package/examples/extensions/agents-md-basic.yml +1 -1
- package/examples/extensions/agents-md-sync.yml +1 -1
- package/examples/extensions/agents-md-v1.yml +1 -1
- package/examples/extensions/drupal-v1.yml +1 -1
- package/examples/extensions/encryption-multi-provider.yaml +4 -4
- package/examples/extensions/kagent-v1.yml +1 -1
- package/examples/extensions/knowledge-sources.yaml +1 -1
- package/examples/extensions/mcp-full-featured.yaml +1 -1
- package/examples/getting-started/01-minimal-agent.ossa.yaml +1 -1
- package/examples/getting-started/02-agent-with-tools.ossa.yaml +1 -1
- package/examples/getting-started/03-agent-with-safety.ossa.yaml +1 -1
- package/examples/getting-started/04-agent-with-messaging.ossa.yaml +1 -1
- package/examples/getting-started/05-workflow-composition.ossa.yaml +1 -1
- package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
- package/examples/gitlab-agents/daily-code-scan/.gitlab-ci.yml +2 -2
- package/examples/gitlab-agents/duo-comment-responder/.gitlab-ci.yml +2 -2
- package/examples/gitlab-agents/mr-reviewer/.gitlab-ci.yml +2 -2
- package/examples/gitlab-agents/pipeline-auto-fix/.gitlab-ci.yml +2 -2
- package/examples/gitlab-agents/pre-commit-quality-check/.gitlab-ci.yml +2 -2
- package/examples/gitlab-agents/pre-push-validation/.gitlab-ci.yml +2 -2
- package/examples/hierarchical-agent.ossa.yaml +1 -1
- package/examples/infrastructure/token-rotation/manifest.ossa.yaml +1 -1
- package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +1 -1
- package/examples/kagent/compliance-validator.ossa.yaml +1 -1
- package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
- package/examples/kagent/documentation-agent.ossa.yaml +1 -1
- package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -1
- package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
- package/examples/kagent/security-scanner.ossa.yaml +1 -1
- package/examples/knowledge-graph/drupal-agent-with-kg.ossa.yaml +1 -1
- package/examples/mcp/browser-puppeteer.ossa.yaml +1 -1
- package/examples/mcp/database-mcp.ossa.yaml +1 -1
- package/examples/mcp/filesystem-mcp.ossa.yaml +1 -1
- package/examples/messaging/dependency-healer.ossa.yaml +1 -1
- package/examples/messaging/incident-responder.ossa.yaml +1 -1
- package/examples/messaging/routing-rules.ossa.yaml +1 -1
- package/examples/messaging/security-scanner.ossa.yaml +1 -1
- package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
- package/examples/migrations/langchain/01-python-react-agent-after.ossa.yaml +1 -1
- package/examples/migrations/langchain/02-typescript-conversational-after.ossa.yaml +1 -1
- package/examples/migrations/langchain/03-sequential-chain-after.ossa.yaml +1 -1
- package/examples/migrations/langchain/04-config-based-after.ossa.yaml +1 -1
- package/examples/migrations/swarm-to-ossa/after-handoffs.ossa.yaml +6 -6
- package/examples/migrations/swarm-to-ossa/after-triage-agent.ossa.yaml +3 -3
- package/examples/mr-reviewer-with-governance.ossa.yaml +1 -1
- package/examples/multi-agent/conditional-router.ossa.yaml +1 -1
- package/examples/multi-agent/parallel-execution.ossa.yaml +1 -1
- package/examples/multi-agent/sequential-pipeline.ossa.yaml +1 -1
- package/examples/multi-agent-research-workflow.ossa.yaml +1 -1
- package/examples/multi-platform/single-manifest/agent.ossa.yaml +1 -1
- package/examples/observability/activity-stream-full.yaml +1 -1
- package/examples/openai/basic-agent.ossa.yaml +1 -1
- package/examples/ossa-templates/01-code-assistant.ossa.yaml +1 -1
- package/examples/ossa-templates/02-security-scanner.ossa.yaml +1 -1
- package/examples/ossa-templates/03-ci-pipeline.ossa.yaml +1 -1
- package/examples/ossa-templates/04-code-reviewer.ossa.yaml +1 -1
- package/examples/ossa-templates/05-doc-generator.ossa.yaml +1 -1
- package/examples/ossa-templates/06-compliance-validator.ossa.yaml +1 -1
- package/examples/ossa-templates/07-workflow-orchestrator.ossa.yaml +1 -1
- package/examples/ossa-templates/08-content-writer.ossa.yaml +1 -1
- package/examples/ossa-templates/09-test-generator.ossa.yaml +1 -1
- package/examples/ossa-templates/10-data-transformer.ossa.yaml +1 -1
- package/examples/ossa-templates/11-react-performance-expert.ossa.yaml +1 -1
- package/examples/ossa-templates/12-typescript-type-safety-expert.ossa.yaml +1 -1
- package/examples/ossa-templates/13-accessibility-champion.ossa.yaml +1 -1
- package/examples/ossa-templates/14-security-hardening-agent.ossa.yaml +1 -1
- package/examples/pipeline-agent.ossa.yaml +1 -1
- package/examples/production/document-analyzer-openai.yml +1 -1
- package/examples/production-ready/01-customer-support-bot/agent.ossa.yaml +1 -1
- package/examples/production-ready/02-code-review-agent/agent.ossa.yaml +1 -1
- package/examples/production-ready/03-data-analysis-agent/agent.ossa.yaml +1 -1
- package/examples/production-ready/04-content-moderator/agent.ossa.yaml +1 -1
- package/examples/production-ready/05-sales-assistant/agent.ossa.yaml +1 -1
- package/examples/production-ready/06-devops-agent/agent.ossa.yaml +1 -1
- package/examples/production-ready/07-research-assistant/agent.ossa.yaml +1 -1
- package/examples/production-ready/08-email-triage-agent/agent.ossa.yaml +1 -1
- package/examples/production-ready/09-security-scanner/agent.ossa.yaml +1 -1
- package/examples/production-ready/10-meeting-assistant/agent.ossa.yaml +1 -1
- package/examples/quickstart/support-agent.ossa.yaml +1 -1
- package/examples/real-world/gitlab-cicd-optimizer.ossa.yaml +1 -1
- package/examples/real-world/rag-documentation-assistant.ossa.yaml +1 -1
- package/examples/registry/agents/code-reviewer/agent.yaml +1 -1
- package/examples/registry/agents/security-scanner/agent.yaml +1 -1
- package/examples/runtime-adapters/bedrock-claude-example.ossa.yaml +1 -1
- package/examples/schema/reusable-components.yaml +1 -1
- package/examples/showcase/ci-pipeline.ossa.yaml +1 -1
- package/examples/showcase/code-assistant.ossa.yaml +1 -1
- package/examples/showcase/code-reviewer.ossa.yaml +1 -1
- package/examples/showcase/compliance-checker.ossa.yaml +1 -1
- package/examples/showcase/compliance-validator.ossa.yaml +1 -1
- package/examples/showcase/content-writer.ossa.yaml +1 -1
- package/examples/showcase/customer-support.ossa.yaml +1 -1
- package/examples/showcase/data-processing-pipeline.ossa.yaml +1 -1
- package/examples/showcase/data-transformer.ossa.yaml +1 -1
- package/examples/showcase/doc-generator.ossa.yaml +1 -1
- package/examples/showcase/full-power-agent.ossa.yaml +1 -1
- package/examples/showcase/security-scanner-enhanced.ossa.yaml +1 -1
- package/examples/showcase/security-scanner.ossa.yaml +1 -1
- package/examples/showcase/team-leader.ossa.yaml +1 -1
- package/examples/showcase/test-generator.ossa.yaml +1 -1
- package/examples/showcase/workflow-orchestrator.ossa.yaml +1 -1
- package/examples/skills-example.ossa.yaml +1 -1
- package/examples/swarm-agent.ossa.yaml +1 -1
- package/examples/tasks/batch-email-sender.yaml +1 -1
- package/examples/tasks/data-transform.yaml +1 -1
- package/examples/tasks/publish-content.yaml +1 -1
- package/examples/team-agent.ossa.yaml +1 -1
- package/examples/templates/ossa-compliance.yaml +1 -1
- package/examples/unified/security-scanner.ossa.yaml +1 -1
- package/examples/workflows/batch-email-campaign.yaml +1 -1
- package/examples/workflows/content-review-publish.yaml +1 -1
- package/examples/workflows/simple-etl.yaml +1 -1
- package/package.json +6 -7
- package/spec/reference/reference-agents/compliance-auditor/manifest.ossa.yaml +1 -1
- package/spec/reference/reference-agents/doc-agent/manifest.ossa.yaml +1 -1
- package/spec/reference/reference-agents/mr-reviewer/manifest.ossa.yaml +1 -1
- package/spec/reference/reference-agents/ossa-validator-v0.3/manifest.ossa.yaml +1 -1
- package/spec/reference/reference-agents/pipeline-fixer/manifest.ossa.yaml +1 -1
- package/spec/reference/reference-agents/release-orchestrator/manifest.ossa.yaml +1 -1
- package/spec/v0.4/agent-card.schema.json +1 -1
- package/spec/v0.4/agent.schema.json +84 -15
- package/spec/v0.4/extensions/a2a/a2a.schema.json +1 -1
- package/spec/v0.4/extensions/ag2/ag2.schema.json +1 -1
- package/spec/v0.4/extensions/crewai/crewai.schema.json +1 -1
- package/spec/v0.4/extensions/kagent/kagent.schema.json +1 -1
- package/spec/v0.4/extensions/langchain/langchain.schema.json +1 -1
- package/spec/v0.4/extensions/langgraph/langgraph.schema.json +1 -1
- package/spec/v0.4/extensions/mcp/mcp.schema.json +1 -1
- package/templates/agent-types/claude-agent.ossa.yaml +1 -1
- package/templates/agent-types/kagent.ossa.yaml +1 -1
- package/templates/agent-types/langchain-agent.ossa.yaml +1 -1
- package/templates/agent-types/openapi-agent.ossa.yaml +1 -1
- package/templates/agent-types/swarm-agents.ossa.yaml +1 -1
- package/templates/ci-cd/gitlab-ci.deploy.yml +2 -2
- package/templates/validators/capability-compatibility.ossa.yaml +1 -1
- package/templates/validators/coordination-consistency.ossa.yaml +1 -1
- package/templates/validators/pattern-requirements.ossa.yaml +1 -1
- package/templates/validators/transport-compatibility.ossa.yaml +1 -1
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
# Universal AI Discovery Protocol (UADP)
|
|
2
|
+
|
|
3
|
+
**Version:** 0.1.0
|
|
4
|
+
**Status:** Draft
|
|
5
|
+
**Spec URI:** `https://openstandardagents.org/spec/uadp/v0.1`
|
|
6
|
+
|
|
7
|
+
## 1. Overview
|
|
8
|
+
|
|
9
|
+
The Universal AI Discovery Protocol (UADP) is a decentralized, hybrid-federated protocol for the discovery, validation, and exchange of AI Agents, Skills, Tools, and Marketplaces. Built on top of the [Open Standard for Agent Systems (OSSA)](https://openstandardagents.org), UADP allows any organization, department, or individual to host a "UADP Node" that acts as an API-first microservice registry for any AI capability.
|
|
10
|
+
|
|
11
|
+
Drawing inspiration from ActivityPub and WebFinger, UADP ensures that AI resources built on one platform can seamlessly discover and securely utilize capabilities hosted on an entirely different platform. Whether it's an agent marketplace, a skills registry, an MCP tool directory, or an enterprise AI hub — if it speaks UADP, it's discoverable.
|
|
12
|
+
|
|
13
|
+
**Any system that implements the endpoints below is a UADP node.** There is no required language, framework, or database. A static JSON file on GitHub Pages, a Flask app, an Express server, a Drupal site, or a Kubernetes sidecar — all valid.
|
|
14
|
+
|
|
15
|
+
## 2. Conformance
|
|
16
|
+
|
|
17
|
+
The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY" in this document are to be interpreted as described in [RFC 2119](https://www.rfc-editor.org/rfc/rfc2119).
|
|
18
|
+
|
|
19
|
+
A conforming UADP node:
|
|
20
|
+
- MUST serve `GET /.well-known/uadp.json` (Section 3)
|
|
21
|
+
- MUST serve at least one of: `GET /uadp/v1/skills` or `GET /uadp/v1/agents` (Section 4)
|
|
22
|
+
- SHOULD serve `GET /uadp/v1/federation` (Section 5)
|
|
23
|
+
- MUST return `Content-Type: application/json` for all UADP endpoints
|
|
24
|
+
- MUST return OSSA-formatted payloads (`apiVersion: ossa/v0.4` or later)
|
|
25
|
+
|
|
26
|
+
## 3. Discovery Layer
|
|
27
|
+
|
|
28
|
+
### 3.1 Well-Known Endpoint
|
|
29
|
+
|
|
30
|
+
Every UADP node MUST publish a JSON document at:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
GET /.well-known/uadp.json
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Response** (`UadpManifest`):
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"protocol_version": "0.1.0",
|
|
41
|
+
"node_name": "Acme Corp Skills Hub",
|
|
42
|
+
"node_description": "Enterprise AI skills registry for Acme Corp",
|
|
43
|
+
"contact": "admin@acme.com",
|
|
44
|
+
"endpoints": {
|
|
45
|
+
"skills": "https://api.acme.com/uadp/v1/skills",
|
|
46
|
+
"agents": "https://api.acme.com/uadp/v1/agents",
|
|
47
|
+
"federation": "https://api.acme.com/uadp/v1/federation",
|
|
48
|
+
"validate": "https://api.acme.com/uadp/v1/skills/validate"
|
|
49
|
+
},
|
|
50
|
+
"capabilities": ["skills", "agents", "federation", "validation"],
|
|
51
|
+
"public_key": "-----BEGIN PUBLIC KEY-----\n...",
|
|
52
|
+
"ossa_versions": ["v0.4", "v0.5"]
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
| Field | Type | Required | Description |
|
|
57
|
+
|-------|------|----------|-------------|
|
|
58
|
+
| `protocol_version` | string | MUST | Semver. Current: `"0.1.0"` |
|
|
59
|
+
| `node_name` | string | MUST | Human-readable node name |
|
|
60
|
+
| `node_description` | string | SHOULD | Short description of the node |
|
|
61
|
+
| `contact` | string | SHOULD | Admin contact (email or URL) |
|
|
62
|
+
| `endpoints` | object | MUST | Map of capability name to absolute URL |
|
|
63
|
+
| `endpoints.skills` | string | MUST* | Skills listing endpoint |
|
|
64
|
+
| `endpoints.agents` | string | MUST* | Agents listing endpoint |
|
|
65
|
+
| `endpoints.federation` | string | SHOULD | Federation/peering endpoint |
|
|
66
|
+
| `endpoints.validate` | string | MAY | Manifest validation endpoint |
|
|
67
|
+
| `capabilities` | string[] | SHOULD | List of supported capabilities |
|
|
68
|
+
| `public_key` | string | MAY | PEM-encoded public key for signature verification |
|
|
69
|
+
| `ossa_versions` | string[] | SHOULD | Supported OSSA spec versions |
|
|
70
|
+
|
|
71
|
+
*At least one of `endpoints.skills` or `endpoints.agents` MUST be present.
|
|
72
|
+
|
|
73
|
+
### 3.2 Discovery Flow
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
Client UADP Node
|
|
77
|
+
| |
|
|
78
|
+
| GET /.well-known/uadp.json |
|
|
79
|
+
|-------------------------------->|
|
|
80
|
+
| 200 OK { endpoints: {...} } |
|
|
81
|
+
|<--------------------------------|
|
|
82
|
+
| |
|
|
83
|
+
| GET /uadp/v1/skills?search=... |
|
|
84
|
+
|-------------------------------->|
|
|
85
|
+
| 200 OK { data: [...], meta } |
|
|
86
|
+
|<--------------------------------|
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## 4. Resource Endpoints
|
|
90
|
+
|
|
91
|
+
### 4.1 Skills Endpoint
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
GET /uadp/v1/skills
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Query Parameters:**
|
|
98
|
+
|
|
99
|
+
| Param | Type | Default | Description |
|
|
100
|
+
|-------|------|---------|-------------|
|
|
101
|
+
| `search` | string | `""` | Full-text search across name + description |
|
|
102
|
+
| `category` | string | — | Filter by category |
|
|
103
|
+
| `capability` | string | — | Filter by capability tag |
|
|
104
|
+
| `trust_tier` | string | — | Filter: `official`, `verified-signature`, `signed`, `community`, `experimental` |
|
|
105
|
+
| `page` | integer | `1` | Page number (1-indexed) |
|
|
106
|
+
| `limit` | integer | `20` | Items per page (max 100) |
|
|
107
|
+
|
|
108
|
+
**Response** (`UadpSkillsResponse`):
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"data": [
|
|
113
|
+
{
|
|
114
|
+
"apiVersion": "ossa/v0.4",
|
|
115
|
+
"kind": "Skill",
|
|
116
|
+
"metadata": {
|
|
117
|
+
"name": "code-review",
|
|
118
|
+
"version": "1.2.0",
|
|
119
|
+
"description": "Reviews code for quality, security, and best practices",
|
|
120
|
+
"uri": "uadp://acme.com/skills/code-review",
|
|
121
|
+
"category": "development",
|
|
122
|
+
"trust_tier": "verified-signature",
|
|
123
|
+
"created": "2026-01-15T10:30:00Z",
|
|
124
|
+
"updated": "2026-02-20T14:00:00Z"
|
|
125
|
+
},
|
|
126
|
+
"spec": {
|
|
127
|
+
"capabilities": ["analysis", "security"],
|
|
128
|
+
"inputs": { "code": { "type": "string", "required": true } },
|
|
129
|
+
"outputs": { "review": { "type": "string" } }
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"meta": {
|
|
134
|
+
"total": 42,
|
|
135
|
+
"page": 1,
|
|
136
|
+
"limit": 20,
|
|
137
|
+
"node_name": "Acme Corp Skills Hub"
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### 4.2 Agents Endpoint
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
GET /uadp/v1/agents
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Same query parameters as Skills. Response shape:
|
|
149
|
+
|
|
150
|
+
```json
|
|
151
|
+
{
|
|
152
|
+
"data": [
|
|
153
|
+
{
|
|
154
|
+
"apiVersion": "ossa/v0.4",
|
|
155
|
+
"kind": "Agent",
|
|
156
|
+
"metadata": {
|
|
157
|
+
"name": "security-auditor",
|
|
158
|
+
"version": "2.0.0",
|
|
159
|
+
"description": "Audits infrastructure for vulnerabilities",
|
|
160
|
+
"uri": "uadp://acme.com/agents/security-auditor"
|
|
161
|
+
},
|
|
162
|
+
"spec": {
|
|
163
|
+
"role": "You are a security auditor...",
|
|
164
|
+
"skills": ["code-review", "dependency-scan"],
|
|
165
|
+
"llm": { "provider": "anthropic", "model": "claude-sonnet-4-5-20250514" }
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
],
|
|
169
|
+
"meta": {
|
|
170
|
+
"total": 12,
|
|
171
|
+
"page": 1,
|
|
172
|
+
"limit": 20,
|
|
173
|
+
"node_name": "Acme Corp Skills Hub"
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### 4.3 Validation Endpoint (Optional)
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
POST /uadp/v1/skills/validate
|
|
182
|
+
Content-Type: application/json
|
|
183
|
+
|
|
184
|
+
{
|
|
185
|
+
"manifest": "apiVersion: ossa/v0.4\nkind: Skill\nmetadata:\n name: my-skill\n..."
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
**Response:**
|
|
190
|
+
|
|
191
|
+
```json
|
|
192
|
+
{
|
|
193
|
+
"valid": true,
|
|
194
|
+
"errors": [],
|
|
195
|
+
"warnings": ["metadata.version is recommended"]
|
|
196
|
+
}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### 4.4 Common Response Envelope
|
|
200
|
+
|
|
201
|
+
All list endpoints MUST return:
|
|
202
|
+
|
|
203
|
+
```json
|
|
204
|
+
{
|
|
205
|
+
"data": [ ... ],
|
|
206
|
+
"meta": {
|
|
207
|
+
"total": <integer>,
|
|
208
|
+
"page": <integer>,
|
|
209
|
+
"limit": <integer>,
|
|
210
|
+
"node_name": <string>
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Error responses MUST use standard HTTP status codes with:
|
|
216
|
+
|
|
217
|
+
```json
|
|
218
|
+
{
|
|
219
|
+
"error": "<human-readable message>",
|
|
220
|
+
"code": "<machine-readable error code>"
|
|
221
|
+
}
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
## 5. Federation
|
|
225
|
+
|
|
226
|
+
### 5.1 Federation Endpoint
|
|
227
|
+
|
|
228
|
+
```
|
|
229
|
+
GET /uadp/v1/federation
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
Returns this node's peer list and federation metadata:
|
|
233
|
+
|
|
234
|
+
```json
|
|
235
|
+
{
|
|
236
|
+
"protocol_version": "0.1.0",
|
|
237
|
+
"node_name": "Acme Corp Skills Hub",
|
|
238
|
+
"peers": [
|
|
239
|
+
{
|
|
240
|
+
"url": "https://skills.sh",
|
|
241
|
+
"name": "Skills.sh",
|
|
242
|
+
"status": "healthy",
|
|
243
|
+
"last_synced": "2026-03-05T12:00:00Z",
|
|
244
|
+
"skill_count": 150
|
|
245
|
+
}
|
|
246
|
+
]
|
|
247
|
+
}
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### 5.2 Peer Registration
|
|
251
|
+
|
|
252
|
+
```
|
|
253
|
+
POST /uadp/v1/federation
|
|
254
|
+
Content-Type: application/json
|
|
255
|
+
|
|
256
|
+
{
|
|
257
|
+
"url": "https://my-node.example.com",
|
|
258
|
+
"name": "My UADP Node"
|
|
259
|
+
}
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
The receiving node SHOULD:
|
|
263
|
+
1. Fetch `{url}/.well-known/uadp.json` to validate the peer
|
|
264
|
+
2. If valid, add to its peer list
|
|
265
|
+
3. Return `201 Created` with the peer record
|
|
266
|
+
|
|
267
|
+
The receiving node MAY require authentication for peer registration.
|
|
268
|
+
|
|
269
|
+
### 5.3 Peer Discovery Flow
|
|
270
|
+
|
|
271
|
+
```
|
|
272
|
+
Node A Node B
|
|
273
|
+
| |
|
|
274
|
+
| POST /uadp/v1/federation |
|
|
275
|
+
| { url: "https://node-a.com" } |
|
|
276
|
+
|-------------------------------->|
|
|
277
|
+
| |
|
|
278
|
+
| Node B validates: |
|
|
279
|
+
| GET node-a.com/.well-known/ |
|
|
280
|
+
| uadp.json |
|
|
281
|
+
|<--------------------------------|
|
|
282
|
+
| 200 OK (valid UADP manifest) |
|
|
283
|
+
|-------------------------------->|
|
|
284
|
+
| |
|
|
285
|
+
| 201 Created { peer: {...} } |
|
|
286
|
+
|<--------------------------------|
|
|
287
|
+
| |
|
|
288
|
+
| Node B can now query: |
|
|
289
|
+
| GET node-a.com/uadp/v1/skills |
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
### 5.4 Circuit Breaker
|
|
293
|
+
|
|
294
|
+
Implementations SHOULD implement a circuit breaker for peer health:
|
|
295
|
+
- Track consecutive fetch failures per peer
|
|
296
|
+
- After N failures (recommended: 3), mark peer as `degraded`
|
|
297
|
+
- Stop active fetching from degraded peers
|
|
298
|
+
- Retry after a backoff period (recommended: 24 hours)
|
|
299
|
+
- On successful fetch, reset failure count and mark `healthy`
|
|
300
|
+
|
|
301
|
+
Peer status values: `healthy`, `degraded`, `unreachable`
|
|
302
|
+
|
|
303
|
+
## 6. Trust Tiers
|
|
304
|
+
|
|
305
|
+
UADP defines five trust tiers for skills and agents:
|
|
306
|
+
|
|
307
|
+
| Tier | Badge | Description |
|
|
308
|
+
|------|-------|-------------|
|
|
309
|
+
| `official` | Shield (gold) | Published by the OSSA project or node operator |
|
|
310
|
+
| `verified-signature` | Shield (blue) | Cryptographically signed + verified identity |
|
|
311
|
+
| `signed` | Shield (green) | Cryptographically signed (identity not verified) |
|
|
312
|
+
| `community` | Shield (gray) | Published by authenticated user, no signature |
|
|
313
|
+
| `experimental` | Shield (orange) | Unreviewed, use at own risk |
|
|
314
|
+
|
|
315
|
+
Nodes SHOULD include `trust_tier` in skill/agent metadata. Consuming nodes SHOULD display trust badges to users.
|
|
316
|
+
|
|
317
|
+
## 7. Agent Identifiers (GAID)
|
|
318
|
+
|
|
319
|
+
Skills and agents MAY include a Global Agent Identifier (GAID) using the `uadp://` URI scheme:
|
|
320
|
+
|
|
321
|
+
```
|
|
322
|
+
uadp://<namespace>/<type>/<name>
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
Examples:
|
|
326
|
+
- `uadp://acme.com/skills/code-review`
|
|
327
|
+
- `uadp://marketplace.openstandardagents.org/agents/security-auditor`
|
|
328
|
+
- `uadp://skills.sh/skills/web-search`
|
|
329
|
+
|
|
330
|
+
GAIDs enable cross-registry resolution: a consumer seeing `uadp://skills.sh/skills/web-search` knows to query `skills.sh/.well-known/uadp.json` to find the skills endpoint, then search for `web-search`.
|
|
331
|
+
|
|
332
|
+
## 8. OSSA Integration
|
|
333
|
+
|
|
334
|
+
UADP is the transport and discovery layer; OSSA is the payload format.
|
|
335
|
+
|
|
336
|
+
- All items in `data[]` arrays MUST include `apiVersion` (e.g., `ossa/v0.4`) and `kind` (`Skill` or `Agent`)
|
|
337
|
+
- All items MUST include a `metadata` object with at least `name`
|
|
338
|
+
- Items SHOULD include a `spec` object with the OSSA specification body
|
|
339
|
+
- Consumers SHOULD validate incoming payloads against the OSSA schema before importing
|
|
340
|
+
|
|
341
|
+
Because OSSA enforces explicit `safety` guardrails declaratively, a downstream node can statically validate an upstream tool's safety requirements *before* importing it.
|
|
342
|
+
|
|
343
|
+
## 9. Security Considerations
|
|
344
|
+
|
|
345
|
+
- Nodes SHOULD serve all endpoints over HTTPS
|
|
346
|
+
- Write endpoints (POST to federation, skill publishing) SHOULD require authentication
|
|
347
|
+
- Read endpoints (GET skills, agents, federation) SHOULD be publicly accessible
|
|
348
|
+
- Nodes MUST NOT execute code from discovered skills without explicit user consent
|
|
349
|
+
- Signature verification using `public_key` from the well-known manifest is RECOMMENDED for high-trust deployments
|
|
350
|
+
- Rate limiting on all endpoints is RECOMMENDED
|
|
351
|
+
|
|
352
|
+
## 10. Implementing a Minimal UADP Node
|
|
353
|
+
|
|
354
|
+
The simplest possible UADP node is two static JSON files:
|
|
355
|
+
|
|
356
|
+
```
|
|
357
|
+
your-domain.com/
|
|
358
|
+
.well-known/uadp.json <- discovery manifest
|
|
359
|
+
uadp/v1/skills <- skills list (can be static JSON)
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
A more complete implementation adds:
|
|
363
|
+
- Database-backed skill/agent storage
|
|
364
|
+
- Federation with peer discovery and caching
|
|
365
|
+
- Authentication for write operations
|
|
366
|
+
- Manifest validation service
|
|
367
|
+
|
|
368
|
+
Reference implementations:
|
|
369
|
+
- **Drupal**: `ai_agents_marketplace` module (PHP)
|
|
370
|
+
- **Express**: `@ossa/uadp-node` (TypeScript) — planned
|
|
371
|
+
- **Static**: GitHub Pages with JSON files — planned
|
|
372
|
+
|
|
373
|
+
## Appendix A: JSON Schemas
|
|
374
|
+
|
|
375
|
+
See `schemas/` directory:
|
|
376
|
+
- `uadp-manifest.schema.json` — `/.well-known/uadp.json` validation
|
|
377
|
+
- `uadp-skills-response.schema.json` — `/uadp/v1/skills` response
|
|
378
|
+
- `uadp-agents-response.schema.json` — `/uadp/v1/agents` response
|
|
379
|
+
- `uadp-federation-response.schema.json` — `/uadp/v1/federation` response
|
|
380
|
+
|
|
381
|
+
## Appendix B: OpenAPI Specification
|
|
382
|
+
|
|
383
|
+
See `openapi.yaml` for the complete OpenAPI 3.1 definition of all UADP endpoints.
|
|
384
|
+
|
|
385
|
+
## Appendix C: Changelog
|
|
386
|
+
|
|
387
|
+
### 0.1.0 (2026-03-06)
|
|
388
|
+
- Initial draft specification
|
|
389
|
+
- Discovery layer (`/.well-known/uadp.json`)
|
|
390
|
+
- Skills and Agents endpoints with OSSA payloads
|
|
391
|
+
- Federation with peer registration and circuit breaker
|
|
392
|
+
- Trust tiers and GAID identifiers
|
|
393
|
+
- Validation endpoint
|