@bluefly/openstandardagents 0.5.3 → 0.5.4
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/README.md +215 -28
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,19 +1,35 @@
|
|
|
1
1
|
# Open Standard for Software Agents (OSSA)
|
|
2
2
|
|
|
3
|
+
OSSA is an open standard for defining, validating, discovering, and governing software agents.
|
|
4
|
+
|
|
5
|
+
OSSA is not a framework. It is a contract layer: schema, identity, capabilities, policy bindings, discovery metadata, and validation rules that allow agents to be portable across runtimes and organizations.
|
|
6
|
+
|
|
7
|
+
> Development happens on [GitLab](https://gitlab.com/blueflyio/ossa/openstandardagents) (source of truth).
|
|
8
|
+
> [Source](https://gitlab.com/blueflyio/ossa/openstandardagents) | [Issues](https://gitlab.com/blueflyio/ossa/openstandardagents/-/issues) | [npm](https://www.npmjs.com/package/@bluefly/openstandardagents)
|
|
9
|
+
|
|
10
|
+
## Why OSSA Exists
|
|
11
|
+
|
|
12
|
+
Agent systems are fragmenting across IDEs, model providers, MCP servers, workflow engines, Drupal, GitLab, Kubernetes, and private enterprise platforms.
|
|
13
|
+
|
|
14
|
+
OSSA provides a stable contract for agent identity, manifests, tool declarations, capability boundaries, governance metadata, runtime interoperability, discovery, validation, and auditability.
|
|
15
|
+
|
|
16
|
+
Without a contract layer, every integration is bespoke. With OSSA, one manifest describes an agent and any conforming runtime can consume it.
|
|
17
|
+
|
|
18
|
+
## Core Analogy
|
|
19
|
+
|
|
3
20
|
**OpenAPI : APIs :: OSSA : Agents**
|
|
4
21
|
|
|
5
|
-
|
|
22
|
+
OpenAPI does not implement your API. It describes it.
|
|
23
|
+
OSSA does not implement your agent. It describes it.
|
|
24
|
+
|
|
25
|
+
## Package
|
|
6
26
|
|
|
7
|
-
|
|
8
|
-
|----------|----------|
|
|
9
|
-
| Specification (v0.5) | [`spec/v0.5/`](spec/v0.5/) |
|
|
10
|
-
| Discovery document | [`.well-known/ossa.json`](.well-known/ossa.json) |
|
|
11
|
-
| Migration from pre-recovery tree | [`MIGRATION.md`](MIGRATION.md) |
|
|
12
|
-
| Operator detail | [`docs/spec.md`](docs/spec.md) |
|
|
27
|
+
**npm:** `@bluefly/openstandardagents`
|
|
13
28
|
|
|
14
|
-
|
|
29
|
+
Current stable release: `0.5.1`
|
|
30
|
+
Prepared release: `0.5.2`
|
|
15
31
|
|
|
16
|
-
|
|
32
|
+
> **Note:** `0.5.3` was accidentally published during recovery and is deprecated. Do not use it.
|
|
17
33
|
|
|
18
34
|
```bash
|
|
19
35
|
npm install @bluefly/openstandardagents@0.5.2
|
|
@@ -23,21 +39,91 @@ Requires Node.js 20+.
|
|
|
23
39
|
|
|
24
40
|
## CLI
|
|
25
41
|
|
|
26
|
-
|
|
42
|
+
```bash
|
|
43
|
+
npx ossa validate ./agent.ossa.yaml
|
|
44
|
+
npx ossa validate-spec
|
|
45
|
+
npx ossa discover https://example.com
|
|
46
|
+
npx ossa resolve-did did:web:example.com:agent:demo
|
|
47
|
+
npx ossa lint-openapi
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Exit code `0` means valid. Non-zero prints JSON-pointer paths and error messages.
|
|
51
|
+
|
|
52
|
+
From a repo clone (avoids conflicting global shims):
|
|
27
53
|
|
|
28
54
|
```bash
|
|
29
55
|
pnpm install
|
|
30
56
|
pnpm build
|
|
31
57
|
pnpm run ossa validate path/to/agent.ossa.yaml
|
|
32
|
-
pnpm run ossa validate-spec
|
|
33
|
-
pnpm run ossa resolve-did did:web:example.com:agent:demo
|
|
34
|
-
pnpm run ossa discover https://openstandardagents.org
|
|
35
|
-
pnpm run ossa lint-openapi
|
|
36
58
|
```
|
|
37
59
|
|
|
38
|
-
|
|
60
|
+
## What This Package Contains
|
|
61
|
+
|
|
62
|
+
- JSON Schemas for OSSA v0.5 manifests (agent, workflow, registry, policy-binding)
|
|
63
|
+
- Reference OpenAPI contracts (invocation, compliance-engine)
|
|
64
|
+
- Validation utilities (programmatic and CLI)
|
|
65
|
+
- CLI entrypoint (`ossa`)
|
|
66
|
+
- Reference agent manifests
|
|
67
|
+
- Well-known discovery document (`.well-known/ossa.json`)
|
|
68
|
+
|
|
69
|
+
## What This Package Does Not Contain
|
|
70
|
+
|
|
71
|
+
- Agent runtime
|
|
72
|
+
- Orchestration engine
|
|
73
|
+
- MCP server implementation
|
|
74
|
+
- Deployment controller
|
|
75
|
+
- Drupal module
|
|
76
|
+
- GitLab automation
|
|
77
|
+
- Policy decision point
|
|
78
|
+
|
|
79
|
+
Those belong in adjacent projects (see Project Ecosystem below).
|
|
80
|
+
|
|
81
|
+
## OSSA v0.5 Concepts
|
|
39
82
|
|
|
40
|
-
|
|
83
|
+
**Agent Manifest** — Defines an agent's identity, role, tools, capabilities, governance metadata, and interoperability surfaces.
|
|
84
|
+
|
|
85
|
+
**Role** — A behavioral and operational profile used by an agent, IDE, runtime, or workflow.
|
|
86
|
+
|
|
87
|
+
**Tool** — A callable capability declared by the manifest and enforced by the runtime or policy layer.
|
|
88
|
+
|
|
89
|
+
**Workflow** — A deterministic or semi-deterministic process composed from agents, tools, events, or external systems.
|
|
90
|
+
|
|
91
|
+
**Registry** — A discoverable index of agent manifests and related metadata.
|
|
92
|
+
|
|
93
|
+
**Policy Binding** — A link between an agent/action/resource and an external policy authority such as Cedar or ContractPlane.
|
|
94
|
+
|
|
95
|
+
## Minimal Manifest Example
|
|
96
|
+
|
|
97
|
+
```yaml
|
|
98
|
+
apiVersion: ossa/v0.5
|
|
99
|
+
kind: Agent
|
|
100
|
+
metadata:
|
|
101
|
+
name: accessibility-reviewer
|
|
102
|
+
namespace: blueflyio
|
|
103
|
+
version: 1.0.0
|
|
104
|
+
uuid: 7e3f4b8d-2c91-4a6e-b015-9f8d3e2c7a64
|
|
105
|
+
spec:
|
|
106
|
+
role: accessibility-reviewer
|
|
107
|
+
description: Reviews content and rendered pages for accessibility issues.
|
|
108
|
+
tools:
|
|
109
|
+
- name: drupal_render_api
|
|
110
|
+
type: mcp
|
|
111
|
+
- name: axe_core_scanner
|
|
112
|
+
type: external
|
|
113
|
+
capabilities:
|
|
114
|
+
- name: scan_page_accessibility
|
|
115
|
+
- name: generate_remediation_plan
|
|
116
|
+
governance:
|
|
117
|
+
cedar_policy_pack: accessibility-reviewer-v1
|
|
118
|
+
trust_tier: T2
|
|
119
|
+
evidence_required: true
|
|
120
|
+
discovery:
|
|
121
|
+
duadp: true
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Validation
|
|
125
|
+
|
|
126
|
+
### Programmatic
|
|
41
127
|
|
|
42
128
|
```typescript
|
|
43
129
|
import { validateManifestFile } from '@bluefly/openstandardagents';
|
|
@@ -45,30 +131,131 @@ import { validateManifestFile } from '@bluefly/openstandardagents';
|
|
|
45
131
|
const result = await validateManifestFile('agent.ossa.yaml');
|
|
46
132
|
if (!result.valid) {
|
|
47
133
|
console.error(result.errors);
|
|
134
|
+
process.exit(1);
|
|
48
135
|
}
|
|
49
136
|
```
|
|
50
137
|
|
|
51
|
-
|
|
138
|
+
### CLI
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
ossa validate ./agent.ossa.yaml
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Exports
|
|
145
|
+
|
|
146
|
+
| Export | Purpose |
|
|
147
|
+
|--------|---------|
|
|
148
|
+
| `@bluefly/openstandardagents` | Validator entrypoint |
|
|
149
|
+
| `@bluefly/openstandardagents/schema` | v0.5 agent schema |
|
|
150
|
+
| `@bluefly/openstandardagents/schema/v0.5` | Explicit v0.5 agent schema |
|
|
151
|
+
| `@bluefly/openstandardagents/schema/workflow` | Workflow schema |
|
|
152
|
+
| `@bluefly/openstandardagents/schema/registry` | Registry schema |
|
|
153
|
+
| `@bluefly/openstandardagents/schema/policy-binding` | Policy binding schema |
|
|
154
|
+
| `@bluefly/openstandardagents/openapi/invocation` | Invocation OpenAPI contract |
|
|
155
|
+
| `@bluefly/openstandardagents/well-known` | OSSA well-known discovery document |
|
|
156
|
+
| `@bluefly/openstandardagents/validation` | Validation utilities (alias) |
|
|
157
|
+
|
|
158
|
+
## Project Ecosystem
|
|
159
|
+
|
|
160
|
+
| Project | Role |
|
|
161
|
+
|---------|------|
|
|
162
|
+
| [openstandardagents](https://gitlab.com/blueflyio/ossa/openstandardagents) | OSSA schemas, CLI, validator, reference contracts |
|
|
163
|
+
| [duadp](https://gitlab.com/blueflyio/duadp/duadp) | Federated discovery and agent registry resolution |
|
|
164
|
+
| [agents](https://gitlab.com/blueflyio/agentictools/agents) | Canonical Bluefly agent manifests, including @blu |
|
|
165
|
+
| [skills](https://gitlab.com/blueflyio/agentictools/skills) | Reusable skill packages referenced by agents |
|
|
166
|
+
| [compliance-engine](https://gitlab.com/blueflyio/agent-platform/services/compliance-engine) | Cedar policy evaluation, evidence, and OSSA validation API |
|
|
167
|
+
| [cedar-policies](https://gitlab.com/blueflyio/cedar-policies) | Cedar policy source (product IP) |
|
|
168
|
+
| [ai_agents_ossa](https://gitlab.com/blueflyio/agent-platform/drupal/ai_agents_ossa) | Drupal bridge between OSSA manifests and AI Agents |
|
|
169
|
+
| [api_normalization](https://gitlab.com/blueflyio/agent-platform/drupal/api_normalization) | API/OpenAPI normalization layer |
|
|
170
|
+
| [kb_cache](https://gitlab.com/blueflyio/agent-platform/drupal/kb_cache) | Contextual memory and retrieval engine |
|
|
171
|
+
| [ContextControl.ai](https://gitlab.com/blueflyio/contextcontrol.ai) | Governed Drupal-based context/control plane |
|
|
172
|
+
| [blu-cli](https://gitlab.com/blueflyio/blu/blu-cli) | Governed Bluefly operator CLI |
|
|
173
|
+
| [context-cli](https://gitlab.com/blueflyio/contextcontrol.ai/context-cli) | ContextControl/knowledge workflow CLI |
|
|
174
|
+
| [gitlab_components](https://gitlab.com/blueflyio/gitlab_components) | Reusable CI/CD pipeline components |
|
|
175
|
+
| [ossa-studio](https://gitlab.com/blueflyio/ossa/lab/ossa-studio) | Visual/modeling surface for OSSA authoring |
|
|
52
176
|
|
|
53
|
-
|
|
54
|
-
|---------|--------|
|
|
55
|
-
| Agent manifests (Blu, platform agents) | [`WORKING_DEMOs/agents`](https://gitlab.com/blueflyio/agents) |
|
|
56
|
-
| Cedar policy source | `WORKING_DEMOs/cedar-policies` |
|
|
57
|
-
| OSSA validate + Cedar (HTTP) | compliance-engine (`POST /api/v1/compliance/ossa/validate`) |
|
|
58
|
-
| Export to K8s, Kagent, Drupal | `ossa-deploy`, `agent-buildkit`, `platform-agents` |
|
|
59
|
-
| DUADP discovery | `@bluefly/duadp` |
|
|
177
|
+
## Relationship to DUADP
|
|
60
178
|
|
|
61
|
-
|
|
179
|
+
DUADP handles discovery. OSSA defines what is discovered.
|
|
180
|
+
|
|
181
|
+
OSSA answers: What is this agent? What can it do? What tools does it declare? What policy bindings apply? What schema validates it?
|
|
182
|
+
|
|
183
|
+
DUADP answers: Where is the agent card? How is it resolved? How is it revoked? How is it discovered across organizations?
|
|
184
|
+
|
|
185
|
+
## Relationship to ContractPlane and Cedar
|
|
186
|
+
|
|
187
|
+
OSSA declares governance metadata and policy bindings. It does not evaluate policy.
|
|
188
|
+
|
|
189
|
+
ContractPlane and Cedar are policy/evidence enforcement layers that consume OSSA manifests and evaluate actions before runtime execution. Cedar policies are authored in `cedar-policies` and evaluated by `compliance-engine`.
|
|
190
|
+
|
|
191
|
+
## Relationship to Drupal
|
|
192
|
+
|
|
193
|
+
Drupal is one implementation surface for OSSA-governed agents. OSSA remains runtime-agnostic. Drupal is an implementation target, not a dependency of the standard.
|
|
194
|
+
|
|
195
|
+
Relevant Drupal modules: `ai`, `ai_agents`, `ai_agents_ossa`, `tool`, `mcp`, `orchestration`, `eca`, `agui`, `api_normalization`, `ai_context`, `kb_cache`.
|
|
196
|
+
|
|
197
|
+
## Why OSSA + DUADP
|
|
198
|
+
|
|
199
|
+
AI agents need the same foundational infrastructure the internet has: identity, discovery, and governance.
|
|
200
|
+
|
|
201
|
+
```
|
|
202
|
+
Identity (OSSA) — Agent DID, signed manifests, Cedar policy bindings
|
|
203
|
+
Discovery (DUADP) — Federated DNS + WebFinger, gossip, trust-tier gating
|
|
204
|
+
Execution (yours) — Kubernetes, Claude, LangChain, Drupal, or any runtime
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
OSSA defines the agent. DUADP discovers it. Your runtime executes it.
|
|
208
|
+
|
|
209
|
+
## Development
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
pnpm install
|
|
213
|
+
pnpm build
|
|
214
|
+
pnpm typecheck
|
|
215
|
+
pnpm test
|
|
216
|
+
pnpm validate
|
|
217
|
+
pnpm gen:check
|
|
218
|
+
pnpm publint
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
Full CI-equivalent gate:
|
|
62
222
|
|
|
63
223
|
```bash
|
|
64
224
|
pnpm ci:validate
|
|
65
225
|
```
|
|
66
226
|
|
|
67
|
-
Runs install, build, typecheck, vitest conformance,
|
|
227
|
+
Runs install, build, typecheck, vitest conformance, schema validation, OpenAPI validation, generated-code checks, and package dry-run. All jobs are fail-closed.
|
|
228
|
+
|
|
229
|
+
## Conformance Targets
|
|
230
|
+
|
|
231
|
+
Tests validate the canonical platform agent at `WORKING_DEMOs/agents/agents/@blu/agent.ossa.yaml` when `OSSA_AGENTS_ROOT` points at that repo (default relative path from this checkout). Toy example directories are not shipped in this package.
|
|
232
|
+
|
|
233
|
+
## Release Policy
|
|
234
|
+
|
|
235
|
+
- Release branches are protected.
|
|
236
|
+
- Release artifacts must pass build, typecheck, tests, schema validation, OpenAPI validation, generated-code checks, and package dry-run.
|
|
237
|
+
- npm versions are immutable after publish.
|
|
238
|
+
- Package contents must be allowlisted through `files`.
|
|
239
|
+
- Do not publish from a dirty working tree.
|
|
240
|
+
- Do not publish from a generated temporary tree unless the package identity and tarball contents are verified.
|
|
241
|
+
|
|
242
|
+
## npm State
|
|
68
243
|
|
|
69
|
-
|
|
244
|
+
`0.5.1` is the current stable release. `0.5.2` is prepared and in pre-release validation.
|
|
70
245
|
|
|
71
|
-
|
|
246
|
+
`0.5.3` was accidentally published during recovery and is **deprecated**. Do not use it.
|
|
247
|
+
|
|
248
|
+
## Contributing
|
|
249
|
+
|
|
250
|
+
Use GitLab issues and merge requests against the source of truth:
|
|
251
|
+
|
|
252
|
+
https://gitlab.com/blueflyio/ossa/openstandardagents
|
|
253
|
+
|
|
254
|
+
Before submitting:
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
pnpm ci:validate
|
|
258
|
+
```
|
|
72
259
|
|
|
73
260
|
## License
|
|
74
261
|
|