@bluefly/openstandardagents 0.3.0 → 0.3.1
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/CHANGELOG.md +1 -1
- package/README.md +58 -218
- package/dist/cli/commands/diff.command.d.ts +7 -0
- package/dist/cli/commands/diff.command.d.ts.map +1 -0
- package/dist/cli/commands/diff.command.js +181 -0
- package/dist/cli/commands/diff.command.js.map +1 -0
- package/dist/cli/commands/docs.command.d.ts +7 -0
- package/dist/cli/commands/docs.command.d.ts.map +1 -0
- package/dist/cli/commands/docs.command.js +274 -0
- package/dist/cli/commands/docs.command.js.map +1 -0
- package/dist/cli/commands/lint.command.d.ts +7 -0
- package/dist/cli/commands/lint.command.d.ts.map +1 -0
- package/dist/cli/commands/lint.command.js +342 -0
- package/dist/cli/commands/lint.command.js.map +1 -0
- package/dist/cli/commands/serve.command.d.ts +7 -0
- package/dist/cli/commands/serve.command.d.ts.map +1 -0
- package/dist/cli/commands/serve.command.js +232 -0
- package/dist/cli/commands/serve.command.js.map +1 -0
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/di-container.d.ts.map +1 -1
- package/dist/di-container.js +3 -0
- package/dist/di-container.js.map +1 -1
- package/dist/services/git.service.d.ts +40 -0
- package/dist/services/git.service.d.ts.map +1 -0
- package/dist/services/git.service.js +122 -0
- package/dist/services/git.service.js.map +1 -0
- package/dist/spec/v0.3.1/UNIFIED-SCHEMA.md +120 -0
- package/dist/spec/v0.3.1/adapters/drupal.md +541 -0
- package/dist/spec/v0.3.1/adapters/symfony.md +659 -0
- package/dist/spec/v0.3.1/agent-test.schema.json +75 -0
- package/dist/spec/v0.3.1/examples/drupal-content-writer.ossa.yaml +110 -0
- package/dist/spec/v0.3.1/examples/drupal-moderation-assistant.ossa.yaml +96 -0
- package/dist/spec/v0.3.1/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
- package/dist/spec/v0.3.1/extensions/drupal.md +417 -0
- package/dist/spec/v0.3.1/ossa-0.3.0.schema.json +2787 -0
- package/dist/spec/v0.3.1/ossa-0.3.1.schema.json +2806 -0
- package/dist/spec/v0.3.1/protocols/sse.md +494 -0
- package/dist/spec/v0.3.1/protocols/webrtc.md +600 -0
- package/dist/spec/v0.3.1/protocols/websocket.md +362 -0
- package/dist/spec/v0.3.1/schemas/agent-unified.yaml +165 -0
- package/dist/spec/v0.3.1/schemas/capabilities.yaml +102 -0
- package/dist/spec/v0.3.1/schemas/functions.yaml +75 -0
- package/dist/spec/v0.3.1/schemas/messaging/channel.schema.json +245 -0
- package/dist/spec/v0.3.1/schemas/messaging/delivery-receipt.schema.json +192 -0
- package/dist/spec/v0.3.1/schemas/messaging/message.schema.json +205 -0
- package/dist/spec/v0.3.1/schemas/messaging/subscription.schema.json +214 -0
- package/dist/spec/v0.3.1/schemas/runtime.yaml +102 -0
- package/dist/spec/v0.3.1/schemas/taxonomy.yaml +533 -0
- package/dist/spec/v0.3.1/schemas/unified-llm.yaml +91 -0
- package/dist/spec/v0.3.1/taxonomy.yaml +256 -0
- package/dist/testing/fixtures.d.ts.map +1 -1
- package/dist/testing/fixtures.js +3 -2
- package/dist/testing/fixtures.js.map +1 -1
- package/package.json +3 -31
- package/spec/v0.3.1/UNIFIED-SCHEMA.md +120 -0
- package/spec/v0.3.1/adapters/drupal.md +541 -0
- package/spec/v0.3.1/adapters/symfony.md +659 -0
- package/spec/v0.3.1/agent-test.schema.json +75 -0
- package/spec/v0.3.1/examples/drupal-content-writer.ossa.yaml +110 -0
- package/spec/v0.3.1/examples/drupal-moderation-assistant.ossa.yaml +96 -0
- package/spec/v0.3.1/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
- package/spec/v0.3.1/extensions/drupal.md +417 -0
- package/spec/v0.3.1/ossa-0.3.0.schema.json +2787 -0
- package/spec/v0.3.1/ossa-0.3.1.schema.json +2806 -0
- package/spec/v0.3.1/protocols/sse.md +494 -0
- package/spec/v0.3.1/protocols/webrtc.md +600 -0
- package/spec/v0.3.1/protocols/websocket.md +362 -0
- package/spec/v0.3.1/schemas/agent-unified.yaml +165 -0
- package/spec/v0.3.1/schemas/capabilities.yaml +102 -0
- package/spec/v0.3.1/schemas/functions.yaml +75 -0
- package/spec/v0.3.1/schemas/messaging/channel.schema.json +245 -0
- package/spec/v0.3.1/schemas/messaging/delivery-receipt.schema.json +192 -0
- package/spec/v0.3.1/schemas/messaging/message.schema.json +205 -0
- package/spec/v0.3.1/schemas/messaging/subscription.schema.json +214 -0
- package/spec/v0.3.1/schemas/runtime.yaml +102 -0
- package/spec/v0.3.1/schemas/taxonomy.yaml +533 -0
- package/spec/v0.3.1/schemas/unified-llm.yaml +91 -0
- package/spec/v0.3.1/taxonomy.yaml +256 -0
- package/dist/types/generated/ossa-0.3.0.types.d.ts +0 -316
- package/dist/types/generated/ossa-0.3.0.types.d.ts.map +0 -1
- package/dist/types/generated/ossa-0.3.0.types.js +0 -8
- package/dist/types/generated/ossa-0.3.0.types.js.map +0 -1
- package/dist/types/generated/ossa-0.3.0.zod.d.ts +0 -17
- package/dist/types/generated/ossa-0.3.0.zod.d.ts.map +0 -1
- package/dist/types/generated/ossa-0.3.0.zod.js +0 -3
- package/dist/types/generated/ossa-0.3.0.zod.js.map +0 -1
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# OSSA v0.3.1 - Agent Taxonomy Specification
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# Hierarchical classification system for agents with cross-cutting concerns
|
|
5
|
+
# Issue: https://gitlab.com/blueflyio/openstandardagents/-/issues/194
|
|
6
|
+
# =============================================================================
|
|
7
|
+
|
|
8
|
+
apiVersion: ossa/v0.3.1
|
|
9
|
+
kind: TaxonomySpec
|
|
10
|
+
version: "1.0.0"
|
|
11
|
+
|
|
12
|
+
# =============================================================================
|
|
13
|
+
# PRIMARY DOMAINS
|
|
14
|
+
# Top-level classification - every agent belongs to exactly one domain
|
|
15
|
+
# =============================================================================
|
|
16
|
+
domains:
|
|
17
|
+
security:
|
|
18
|
+
description: "Authentication, authorization, encryption, compliance, vulnerability management"
|
|
19
|
+
subdomains:
|
|
20
|
+
- auth # Authentication & authorization
|
|
21
|
+
- encryption # Encryption & key management
|
|
22
|
+
- compliance # Regulatory compliance (SOC2, ISO, GDPR)
|
|
23
|
+
- vulnerability # Vulnerability scanning & remediation
|
|
24
|
+
- secrets # Secrets management & rotation
|
|
25
|
+
- threat-detection # Threat detection & response
|
|
26
|
+
examples:
|
|
27
|
+
- security-scanner
|
|
28
|
+
- compliance-checker
|
|
29
|
+
- secret-detector
|
|
30
|
+
- threat-modeler
|
|
31
|
+
|
|
32
|
+
infrastructure:
|
|
33
|
+
description: "DevOps, CI/CD, deployment, configuration, cloud resources"
|
|
34
|
+
subdomains:
|
|
35
|
+
- ci-cd # CI/CD pipeline management
|
|
36
|
+
- gitops # GitOps workflows
|
|
37
|
+
- deployment # Deployment automation
|
|
38
|
+
- configuration # Configuration management
|
|
39
|
+
- networking # Network configuration
|
|
40
|
+
- storage # Storage management
|
|
41
|
+
- kubernetes # Kubernetes orchestration
|
|
42
|
+
- cloud # Cloud provider management
|
|
43
|
+
examples:
|
|
44
|
+
- deployment-manager
|
|
45
|
+
- pipeline-fixer
|
|
46
|
+
- infrastructure-provisioner
|
|
47
|
+
- incident-responder
|
|
48
|
+
|
|
49
|
+
documentation:
|
|
50
|
+
description: "Documentation, wiki, guides, knowledge management"
|
|
51
|
+
subdomains:
|
|
52
|
+
- api-docs # API documentation
|
|
53
|
+
- user-guides # User guides & tutorials
|
|
54
|
+
- wiki # Wiki management
|
|
55
|
+
- knowledge-base # Knowledge base management
|
|
56
|
+
- changelog # Changelog & release notes
|
|
57
|
+
examples:
|
|
58
|
+
- documentation-generator
|
|
59
|
+
- wiki-manager
|
|
60
|
+
- api-docs-generator
|
|
61
|
+
|
|
62
|
+
backend:
|
|
63
|
+
description: "API, database, services, business logic"
|
|
64
|
+
subdomains:
|
|
65
|
+
- api # API design & implementation
|
|
66
|
+
- database # Database management
|
|
67
|
+
- services # Microservices
|
|
68
|
+
- messaging # Message queues & events
|
|
69
|
+
- caching # Caching strategies
|
|
70
|
+
- integration # System integration
|
|
71
|
+
examples:
|
|
72
|
+
- api-builder
|
|
73
|
+
- database-migrator
|
|
74
|
+
- service-orchestrator
|
|
75
|
+
|
|
76
|
+
frontend:
|
|
77
|
+
description: "UI/UX, web, mobile interfaces"
|
|
78
|
+
subdomains:
|
|
79
|
+
- web # Web applications
|
|
80
|
+
- mobile # Mobile applications
|
|
81
|
+
- design-system # Design system components
|
|
82
|
+
- accessibility # Accessibility (a11y)
|
|
83
|
+
- performance # Frontend performance
|
|
84
|
+
examples:
|
|
85
|
+
- ui-reviewer
|
|
86
|
+
- accessibility-checker
|
|
87
|
+
- design-system-manager
|
|
88
|
+
|
|
89
|
+
data:
|
|
90
|
+
description: "Data engineering, analytics, ML/AI operations"
|
|
91
|
+
subdomains:
|
|
92
|
+
- analytics # Business analytics
|
|
93
|
+
- ml-ops # ML operations
|
|
94
|
+
- etl # Extract, transform, load
|
|
95
|
+
- data-quality # Data quality & validation
|
|
96
|
+
- data-governance # Data governance
|
|
97
|
+
- streaming # Real-time data streaming
|
|
98
|
+
examples:
|
|
99
|
+
- analytics-collector
|
|
100
|
+
- ml-model-manager
|
|
101
|
+
- data-quality-checker
|
|
102
|
+
|
|
103
|
+
agents:
|
|
104
|
+
description: "OSSA agents, automation, orchestration, meta-operations"
|
|
105
|
+
subdomains:
|
|
106
|
+
- orchestration # Multi-agent orchestration
|
|
107
|
+
- workers # Worker agents
|
|
108
|
+
- supervisors # Supervisor agents
|
|
109
|
+
- mesh # Agent mesh networking
|
|
110
|
+
- training # Agent training & improvement
|
|
111
|
+
- registry # Agent registry management
|
|
112
|
+
examples:
|
|
113
|
+
- master-orchestrator
|
|
114
|
+
- agent-trainer
|
|
115
|
+
- workflow-builder
|
|
116
|
+
|
|
117
|
+
development:
|
|
118
|
+
description: "Software development, code quality, testing"
|
|
119
|
+
subdomains:
|
|
120
|
+
- code-review # Code review automation
|
|
121
|
+
- testing # Test generation & execution
|
|
122
|
+
- refactoring # Code refactoring
|
|
123
|
+
- debugging # Debugging assistance
|
|
124
|
+
- ide # IDE integration
|
|
125
|
+
examples:
|
|
126
|
+
- code-reviewer
|
|
127
|
+
- test-generator
|
|
128
|
+
- refactoring-assistant
|
|
129
|
+
|
|
130
|
+
content:
|
|
131
|
+
description: "Content management, editing, publishing"
|
|
132
|
+
subdomains:
|
|
133
|
+
- authoring # Content authoring
|
|
134
|
+
- editing # Content editing
|
|
135
|
+
- publishing # Content publishing
|
|
136
|
+
- research # Research & knowledge gathering
|
|
137
|
+
- localization # Internationalization & localization
|
|
138
|
+
examples:
|
|
139
|
+
- content-orchestrator
|
|
140
|
+
- editor
|
|
141
|
+
- researcher
|
|
142
|
+
- publisher
|
|
143
|
+
|
|
144
|
+
# =============================================================================
|
|
145
|
+
# CROSS-CUTTING CONCERNS
|
|
146
|
+
# Tags that can apply to any agent regardless of domain
|
|
147
|
+
# An agent can have multiple concerns
|
|
148
|
+
# =============================================================================
|
|
149
|
+
concerns:
|
|
150
|
+
quality:
|
|
151
|
+
description: "Testing, code quality, standards enforcement"
|
|
152
|
+
applies_to: ["development", "backend", "frontend", "infrastructure"]
|
|
153
|
+
|
|
154
|
+
observability:
|
|
155
|
+
description: "Metrics, logging, tracing, monitoring"
|
|
156
|
+
applies_to: ["*"] # All domains
|
|
157
|
+
|
|
158
|
+
governance:
|
|
159
|
+
description: "Policies, compliance, audit trails"
|
|
160
|
+
applies_to: ["*"]
|
|
161
|
+
|
|
162
|
+
performance:
|
|
163
|
+
description: "Optimization, caching, scaling"
|
|
164
|
+
applies_to: ["*"]
|
|
165
|
+
|
|
166
|
+
architecture:
|
|
167
|
+
description: "Design patterns, system structure"
|
|
168
|
+
applies_to: ["development", "backend", "infrastructure", "agents"]
|
|
169
|
+
|
|
170
|
+
cost:
|
|
171
|
+
description: "FinOps, resource optimization, budget management"
|
|
172
|
+
applies_to: ["infrastructure", "data", "agents"]
|
|
173
|
+
|
|
174
|
+
reliability:
|
|
175
|
+
description: "SRE, uptime, resilience, disaster recovery"
|
|
176
|
+
applies_to: ["infrastructure", "backend", "agents"]
|
|
177
|
+
|
|
178
|
+
# =============================================================================
|
|
179
|
+
# AGENT TYPE CLASSIFICATION
|
|
180
|
+
# Based on OSSA spec.type field
|
|
181
|
+
# =============================================================================
|
|
182
|
+
agent_types:
|
|
183
|
+
worker:
|
|
184
|
+
description: "Executes specific tasks, no delegation"
|
|
185
|
+
typical_domains: ["development", "security", "documentation"]
|
|
186
|
+
|
|
187
|
+
supervisor:
|
|
188
|
+
description: "Coordinates other agents, can delegate"
|
|
189
|
+
typical_domains: ["agents", "infrastructure"]
|
|
190
|
+
|
|
191
|
+
orchestrator:
|
|
192
|
+
description: "High-level coordination, workflow management"
|
|
193
|
+
typical_domains: ["agents"]
|
|
194
|
+
|
|
195
|
+
specialist:
|
|
196
|
+
description: "Deep expertise in narrow domain"
|
|
197
|
+
typical_domains: ["security", "data", "backend"]
|
|
198
|
+
|
|
199
|
+
# =============================================================================
|
|
200
|
+
# USAGE IN AGENT MANIFESTS
|
|
201
|
+
# =============================================================================
|
|
202
|
+
# Example usage in OSSA agent manifest:
|
|
203
|
+
#
|
|
204
|
+
# metadata:
|
|
205
|
+
# name: security-scanner
|
|
206
|
+
# labels:
|
|
207
|
+
# domain: security
|
|
208
|
+
# subdomain: vulnerability
|
|
209
|
+
# concerns: quality,compliance
|
|
210
|
+
#
|
|
211
|
+
# spec:
|
|
212
|
+
# type: worker
|
|
213
|
+
# taxonomy:
|
|
214
|
+
# domain: security
|
|
215
|
+
# subdomain: vulnerability
|
|
216
|
+
# capability: scan_vulnerabilities
|
|
217
|
+
# concerns:
|
|
218
|
+
# - quality
|
|
219
|
+
# - compliance
|
|
220
|
+
|
|
221
|
+
# =============================================================================
|
|
222
|
+
# VALIDATION RULES
|
|
223
|
+
# =============================================================================
|
|
224
|
+
validation:
|
|
225
|
+
rules:
|
|
226
|
+
- name: valid-domain
|
|
227
|
+
description: "Domain must be from approved list"
|
|
228
|
+
severity: error
|
|
229
|
+
|
|
230
|
+
- name: valid-subdomain
|
|
231
|
+
description: "Subdomain must belong to specified domain"
|
|
232
|
+
severity: error
|
|
233
|
+
|
|
234
|
+
- name: concerns-applicable
|
|
235
|
+
description: "Concerns must be applicable to domain"
|
|
236
|
+
severity: warning
|
|
237
|
+
|
|
238
|
+
- name: type-domain-match
|
|
239
|
+
description: "Agent type should match typical domains"
|
|
240
|
+
severity: info
|
|
241
|
+
|
|
242
|
+
# =============================================================================
|
|
243
|
+
# MIGRATION FROM LEGACY
|
|
244
|
+
# =============================================================================
|
|
245
|
+
migration:
|
|
246
|
+
deprecated_domains:
|
|
247
|
+
ci-cd: { domain: infrastructure, subdomain: ci-cd }
|
|
248
|
+
gitops: { domain: infrastructure, subdomain: gitops }
|
|
249
|
+
deployment: { domain: infrastructure, subdomain: deployment }
|
|
250
|
+
configuration: { domain: infrastructure, subdomain: configuration }
|
|
251
|
+
cost-management: { domain: infrastructure, concerns: [cost] }
|
|
252
|
+
database: { domain: backend, subdomain: database }
|
|
253
|
+
performance: { concerns: [performance] }
|
|
254
|
+
observability: { concerns: [observability] }
|
|
255
|
+
governance: { concerns: [governance] }
|
|
256
|
+
architecture: { concerns: [architecture] }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/testing/fixtures.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/testing/fixtures.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGnD;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAmBhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAiDnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,SA+B/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,SAyD5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,GAclC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAkDnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;CAW3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;IAuB7B,CAAC"}
|
package/dist/testing/fixtures.js
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
* Test Fixtures
|
|
3
3
|
* Sample agent manifests and test data for testing
|
|
4
4
|
*/
|
|
5
|
+
import { getApiVersion } from '../utils/version.js';
|
|
5
6
|
/**
|
|
6
7
|
* Basic valid agent manifest
|
|
7
8
|
*/
|
|
8
9
|
export const basicAgentManifest = {
|
|
9
|
-
apiVersion:
|
|
10
|
+
apiVersion: getApiVersion(),
|
|
10
11
|
kind: 'Agent',
|
|
11
12
|
metadata: {
|
|
12
13
|
name: 'test-agent',
|
|
@@ -178,7 +179,7 @@ export const agentWithTests = {
|
|
|
178
179
|
* Invalid agent manifest (missing required fields)
|
|
179
180
|
*/
|
|
180
181
|
export const invalidAgentManifest = {
|
|
181
|
-
apiVersion:
|
|
182
|
+
apiVersion: getApiVersion(),
|
|
182
183
|
kind: 'Agent',
|
|
183
184
|
metadata: {
|
|
184
185
|
name: 'invalid-agent',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/testing/fixtures.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/testing/fixtures.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bluefly/openstandardagents",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"exports": {
|
|
5
|
-
"./schema": "./spec/v0.3.
|
|
5
|
+
"./schema": "./spec/v0.3.1/ossa-0.3.1.schema.json",
|
|
6
6
|
".": {
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
8
8
|
"import": "./dist/index.js",
|
|
@@ -75,17 +75,13 @@
|
|
|
75
75
|
"scripts": {
|
|
76
76
|
"// ──────────────────────────────────────────────────────────────": "",
|
|
77
77
|
"// BUILD & DEVELOPMENT": "",
|
|
78
|
-
"// ──────────────────────────────────────────────────────────────": "",
|
|
79
78
|
"prebuild": "npm run docs:process",
|
|
80
79
|
"build": "tsc && npm run build:assets",
|
|
81
80
|
"build:assets": "cp -r spec dist/",
|
|
82
81
|
"build:clean": "npm run clean && npm run build",
|
|
83
82
|
"dev": "tsc --watch",
|
|
84
83
|
"clean": "rm -rf dist coverage .tsbuildinfo",
|
|
85
|
-
|
|
86
|
-
"// ──────────────────────────────────────────────────────────────": "",
|
|
87
84
|
"// TESTING": "",
|
|
88
|
-
"// ──────────────────────────────────────────────────────────────": "",
|
|
89
85
|
"test": "jest",
|
|
90
86
|
"test:unit": "jest tests/unit",
|
|
91
87
|
"test:integration": "jest tests/integration",
|
|
@@ -93,10 +89,7 @@
|
|
|
93
89
|
"test:coverage": "jest --coverage",
|
|
94
90
|
"test:watch": "jest --watch",
|
|
95
91
|
"test:ci": "jest --ci --coverage --reporters=default --reporters=jest-junit",
|
|
96
|
-
|
|
97
|
-
"// ──────────────────────────────────────────────────────────────": "",
|
|
98
92
|
"// CODE QUALITY": "",
|
|
99
|
-
"// ──────────────────────────────────────────────────────────────": "",
|
|
100
93
|
"typecheck": "tsc --noEmit",
|
|
101
94
|
"lint": "eslint src tests --ext .ts",
|
|
102
95
|
"lint:fix": "eslint src tests --ext .ts --fix",
|
|
@@ -104,56 +97,35 @@
|
|
|
104
97
|
"format:check": "prettier --check 'src/**/*.ts' 'tests/**/*.ts'",
|
|
105
98
|
"quality": "npm run typecheck && npm run lint && npm run format:check",
|
|
106
99
|
"quality:fix": "npm run lint:fix && npm run format",
|
|
107
|
-
|
|
108
|
-
"// ──────────────────────────────────────────────────────────────": "",
|
|
109
100
|
"// VALIDATION": "",
|
|
110
|
-
"// ──────────────────────────────────────────────────────────────": "",
|
|
111
101
|
"validate": "npm run validate:schema && npm run validate:examples",
|
|
112
102
|
"validate:schema": "tsx scripts/validate-schema.ts",
|
|
113
103
|
"validate:examples": "find examples -name '*.yaml' -o -name '*.yml' | xargs -I {} sh -c 'yq eval . {} > /dev/null || exit 1'",
|
|
114
104
|
"validate:all": "node scripts/validate-all.js",
|
|
115
105
|
"validate:power": "tsx bin/validate-ossa.ts",
|
|
116
|
-
|
|
117
|
-
"// ──────────────────────────────────────────────────────────────": "",
|
|
118
106
|
"// VERSION MANAGEMENT (via ossa CLI - single source of truth)": "",
|
|
119
|
-
"// ──────────────────────────────────────────────────────────────": "",
|
|
120
107
|
"version:status": "node dist/cli/index.js release version status",
|
|
121
108
|
"version:bump": "node dist/cli/index.js release version bump",
|
|
122
109
|
"version:sync": "node dist/cli/index.js release version sync",
|
|
123
110
|
"version:check": "node dist/cli/index.js release version check",
|
|
124
111
|
"version:examples": "node dist/cli/index.js release version examples",
|
|
125
|
-
|
|
126
|
-
"// ──────────────────────────────────────────────────────────────": "",
|
|
127
112
|
"// DOCUMENTATION": "",
|
|
128
|
-
"// ──────────────────────────────────────────────────────────────": "",
|
|
129
113
|
"docs:process": "tsx scripts/process-doc-templates.ts",
|
|
130
114
|
"docs:check": "test -f README.md && test -f CHANGELOG.md",
|
|
131
115
|
"docs:generate": "tsx scripts/generate-api-docs.ts && tsx scripts/generate-cli-docs.ts && tsx scripts/generate-schema-docs.ts && tsx scripts/generate-examples-docs.ts && tsx scripts/generate-agents-catalog.ts && tsx scripts/generate-types-docs.ts && tsx scripts/generate-errors-docs.ts && tsx scripts/generate-config-docs.ts && tsx scripts/lowercase-docs.ts",
|
|
132
|
-
|
|
133
|
-
"// ──────────────────────────────────────────────────────────────": "",
|
|
134
116
|
"// CODE GENERATION": "",
|
|
135
|
-
"// ──────────────────────────────────────────────────────────────": "",
|
|
136
117
|
"gen:types": "tsx scripts/gen-types.ts",
|
|
137
118
|
"gen:zod": "tsx scripts/gen-zod.ts",
|
|
138
119
|
"gen:all": "npm run gen:types && npm run gen:zod",
|
|
139
|
-
|
|
140
|
-
"// ──────────────────────────────────────────────────────────────": "",
|
|
141
120
|
"// SYNC & COMPLIANCE": "",
|
|
142
|
-
"// ──────────────────────────────────────────────────────────────": "",
|
|
143
121
|
"sync:pr": "tsx src/cli/commands/github-sync.command.ts pr",
|
|
144
122
|
"sync:batch": "tsx src/cli/commands/github-sync.command.ts batch",
|
|
145
123
|
"sync:list": "tsx src/cli/commands/github-sync.command.ts list",
|
|
146
124
|
"compliance:audit": "tsx scripts/compliance-audit.ts",
|
|
147
|
-
|
|
148
|
-
"// ──────────────────────────────────────────────────────────────": "",
|
|
149
125
|
"// MAINTENANCE": "",
|
|
150
|
-
"// ──────────────────────────────────────────────────────────────": "",
|
|
151
126
|
"fix:schemas": "node scripts/fix-schema-formats.js",
|
|
152
127
|
"prepare": "husky install || true",
|
|
153
|
-
|
|
154
|
-
"// ──────────────────────────────────────────────────────────────": "",
|
|
155
128
|
"// RELEASE & PUBLISH": "",
|
|
156
|
-
"// ──────────────────────────────────────────────────────────────": "",
|
|
157
129
|
"prerelease": "npm run quality && npm run test && npm run validate",
|
|
158
130
|
"prepublishOnly": "npm run build:clean && npm run test && npm run lint",
|
|
159
131
|
"release:check": "npm run prerelease && echo '✅ Ready for release'"
|
|
@@ -218,7 +190,7 @@
|
|
|
218
190
|
"semantic-release": "^25.0.1",
|
|
219
191
|
"ts-jest": "^29.4.4",
|
|
220
192
|
"ts-node": "^10.9.2",
|
|
221
|
-
"tsx": "^4.
|
|
193
|
+
"tsx": "^4.21.0",
|
|
222
194
|
"typescript": "^5.9.3"
|
|
223
195
|
}
|
|
224
196
|
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# OSSA v0.3.1 - Unified Agent Schema
|
|
2
|
+
|
|
3
|
+
## The Rocketship 🚀
|
|
4
|
+
|
|
5
|
+
This schema unifies OSSA, GitLab Duo, Google A2A, and MCP into a single universal agent platform.
|
|
6
|
+
|
|
7
|
+
### What Changed
|
|
8
|
+
|
|
9
|
+
**Before (v0.2.x):**
|
|
10
|
+
```yaml
|
|
11
|
+
llm:
|
|
12
|
+
provider: anthropic
|
|
13
|
+
model: claude-sonnet-4-20250514
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
**After (v0.3.1):**
|
|
17
|
+
```yaml
|
|
18
|
+
llm:
|
|
19
|
+
provider: ${LLM_PROVIDER:-anthropic}
|
|
20
|
+
model: ${LLM_MODEL:-claude-sonnet}
|
|
21
|
+
profile: ${LLM_PROFILE:-balanced}
|
|
22
|
+
fallback_models:
|
|
23
|
+
- provider: ${LLM_FALLBACK_PROVIDER_1:-openai}
|
|
24
|
+
model: ${LLM_FALLBACK_MODEL_1:-gpt-4o}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Key Features
|
|
28
|
+
|
|
29
|
+
1. **Zero Hardcoded Models** - All LLM config is runtime-configurable
|
|
30
|
+
2. **Execution Profiles** - Google A2A compatible (fast/balanced/deep/safe)
|
|
31
|
+
3. **Multi-Runtime Support** - Works with Duo, A2A, OSSA, MCP
|
|
32
|
+
4. **Fallback Models** - Multi-provider resilience
|
|
33
|
+
5. **Structured Functions** - A2A/OpenAI function calling format
|
|
34
|
+
6. **Extensions** - Pluggable external behaviors
|
|
35
|
+
|
|
36
|
+
### Compatibility Matrix
|
|
37
|
+
|
|
38
|
+
| Feature | OSSA v0.2.x | Duo | A2A | v0.3.1 |
|
|
39
|
+
|---------|-------------|-----|-----|--------|
|
|
40
|
+
| Runtime-configurable models | ❌ | ❌ | ✅ | ✅ |
|
|
41
|
+
| Execution profiles | ❌ | ❌ | ✅ | ✅ |
|
|
42
|
+
| Multi-provider fallback | partial | ❌ | ✅ | ✅ |
|
|
43
|
+
| Structured functions | ❌ | partial | ✅ | ✅ |
|
|
44
|
+
| Extensions | partial | partial | ✅ | ✅ |
|
|
45
|
+
|
|
46
|
+
### Migration
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# Auto-migrate all agents
|
|
50
|
+
./scripts/migrate-to-unified-llm.sh
|
|
51
|
+
|
|
52
|
+
# Generate new agent
|
|
53
|
+
./scripts/generate-agent.sh my-agent worker
|
|
54
|
+
|
|
55
|
+
# Validate
|
|
56
|
+
ossa validate examples/
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Environment Variables
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Primary LLM
|
|
63
|
+
export LLM_PROVIDER=anthropic
|
|
64
|
+
export LLM_MODEL=claude-sonnet-4
|
|
65
|
+
export LLM_PROFILE=balanced
|
|
66
|
+
|
|
67
|
+
# Fallbacks
|
|
68
|
+
export LLM_FALLBACK_PROVIDER_1=openai
|
|
69
|
+
export LLM_FALLBACK_MODEL_1=gpt-4o
|
|
70
|
+
|
|
71
|
+
# Runtime
|
|
72
|
+
export AGENT_RUNTIME=unified
|
|
73
|
+
export AGENT_SCHEDULING=fair
|
|
74
|
+
export AGENT_PRIORITY=normal
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Execution Profiles
|
|
78
|
+
|
|
79
|
+
- **fast** - Quick responses (4K tokens, temp=0.0)
|
|
80
|
+
- **balanced** - General ops (16K tokens, temp=0.1)
|
|
81
|
+
- **deep** - Analysis (32K tokens, temp=0.2, reasoning enabled)
|
|
82
|
+
- **safe** - Compliance (temp=0.0, validation required)
|
|
83
|
+
|
|
84
|
+
### CI Enforcement
|
|
85
|
+
|
|
86
|
+
Add to `.gitlab-ci.yml`:
|
|
87
|
+
|
|
88
|
+
```yaml
|
|
89
|
+
include:
|
|
90
|
+
- local: .gitlab/ci/validate-no-hardcoded-models.yml
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
This blocks any MR with hardcoded model names.
|
|
94
|
+
|
|
95
|
+
### Example Agent
|
|
96
|
+
|
|
97
|
+
See: `examples/unified/security-scanner.ossa.yaml`
|
|
98
|
+
|
|
99
|
+
### Schema Files
|
|
100
|
+
|
|
101
|
+
- `schemas/unified-llm.yaml` - LLM configuration
|
|
102
|
+
- `schemas/runtime.yaml` - Runtime declaration
|
|
103
|
+
- `schemas/capabilities.yaml` - Capability definitions
|
|
104
|
+
- `schemas/functions.yaml` - Function declarations
|
|
105
|
+
- `schemas/agent-unified.yaml` - Complete agent schema
|
|
106
|
+
|
|
107
|
+
### Why This Matters
|
|
108
|
+
|
|
109
|
+
1. **No More Breaking Changes** - Model updates don't require code changes
|
|
110
|
+
2. **Multi-Provider** - Switch between Anthropic/OpenAI/Google/Groq instantly
|
|
111
|
+
3. **Future-Proof** - New runtimes (A2A, Duo) work without modification
|
|
112
|
+
4. **Cost Optimization** - Use cheap models for triage, expensive for analysis
|
|
113
|
+
5. **Compliance** - Audit trail of which models were used when
|
|
114
|
+
|
|
115
|
+
### Next Steps
|
|
116
|
+
|
|
117
|
+
1. Run migration: `./scripts/migrate-to-unified-llm.sh`
|
|
118
|
+
2. Update CI: Add validation rule
|
|
119
|
+
3. Test: `ossa validate examples/`
|
|
120
|
+
4. Deploy: Agents auto-detect runtime
|