@bluefly/openstandardagents 0.5.3 → 0.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +216 -29
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,43 +1,129 @@
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
- `@bluefly/openstandardagents` is a **spec-first** npm package: JSON Schema for agent manifests, a minimal invocation OpenAPI contract, a validator, and a small CLI. It is not a deployment framework, mesh runtime, or IDE plugin host.
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
- | Resource | Location |
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
- Development: [GitLab](https://gitlab.com/blueflyio/ossa/openstandardagents) (source of truth). Issues and MRs belong there.
29
+ Current stable release: `0.5.1`
30
+ Prepared release: `0.5.2`
15
31
 
16
- ## Install
32
+ > **Note:** `0.5.3` was accidentally published during recovery and is deprecated. Do not use it.
17
33
 
18
34
  ```bash
19
- npm install @bluefly/openstandardagents@0.5.2
35
+ npm install @bluefly/openstandardagents@0.5.5
20
36
  ```
21
37
 
22
38
  Requires Node.js 20+.
23
39
 
24
40
  ## CLI
25
41
 
26
- After clone, build workspace packages then use the repo script (avoids conflicting global `ossa` shims):
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
- Exit code `0` prints `valid` for manifest validation; non-zero prints JSON-pointer paths and messages.
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
- ## Programmatic validation
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
- ## What belongs elsewhere
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
- | Concern | Owner |
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
- ## CI (this repository)
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, `validate:schema`, and `validate:openapi`. All jobs are fail-closed.
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
- ## Conformance targets
244
+ `0.5.1` is the current stable release. `0.5.2` is prepared and in pre-release validation.
70
245
 
71
- 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.
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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bluefly/openstandardagents",
3
- "version": "0.5.3",
3
+ "version": "0.5.5",
4
4
  "description": "OSSA - Open Standard for Software Agents. Spec-first schemas, validator, and CLI.",
5
5
  "bin": {
6
6
  "ossa": "packages/cli/dist/cli.js"