@bluefly/openstandardagents 0.4.9 → 0.5.0
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 +8 -8
- package/README.md +68 -58
- package/bin/postinstall +0 -0
- package/dist/.version.json +3 -3
- package/dist/adapters/claude-code/adapter.js +2 -2
- package/dist/adapters/docker/generators.js +19 -19
- package/dist/adapters/drupal/generator.js +76 -76
- package/dist/adapters/openai-agents/adapter.js +2 -2
- package/dist/cli/schema-driven/schema-loader.js +5 -5
- package/dist/mcp-server/__tests__/mcp-server.spec.js +20 -11
- package/dist/mcp-server/index.js +0 -0
- package/dist/package.json +24 -11
- package/dist/services/export/langchain/langchain-exporter.js +2 -2
- package/dist/services/export/langchain/memory-generator.js +2 -2
- package/dist/services/export/testing/test-generator.js +1 -1
- package/dist/services/taxonomy-service.d.ts +3 -3
- package/dist/skills/test-skill/package.json +1 -1
- package/dist/spec/extensions/role-manifest.md +188 -0
- package/dist/spec/v0.4/extensions/mcp/README.md +1 -1
- package/dist/spec/v0.5/agent.schema.json +2 -1
- package/dist/spec/v0.5/extensions/mcp/README.md +1 -1
- package/dist/spec/v0.5/role.schema.json +268 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +2 -0
- package/dist/types/role.d.ts +126 -0
- package/dist/types/role.js +38 -0
- package/dist/validation/validator.js +1 -1
- package/examples/agents/01-customer-support-bot/agent.ossa.yaml +24 -31
- package/examples/agents/05-sales-assistant/agent.ossa.yaml +35 -23
- package/examples/agents/07-research-assistant/agent.ossa.yaml +27 -21
- package/examples/agents/10-meeting-assistant/agent.ossa.yaml +27 -35
- package/examples/agents/security-audit-agent.ossa.yaml +234 -0
- package/examples/agentscope/react-assistant/agent.ossa.yaml +36 -32
- package/examples/drupal/content-moderator.ossa.yaml +2 -2
- package/examples/drupal/drupal-contributor.ossa.yaml +247 -0
- package/examples/export/langchain/production-agent-with-memory/README.md +1 -1
- package/examples/export/langchain/production-agent-with-memory/agent.ossa.yaml +13 -23
- package/examples/export/langchain/production-agent-with-streaming/agent.ossa.yaml +1 -15
- package/examples/export/langchain/production-agent-with-tools/agent.ossa.yaml +28 -29
- 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/README.md +3 -3
- package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
- package/examples/gitlab-agents/gitlab-ci-agent.ossa.yaml +221 -0
- package/examples/hierarchical-agent.ossa.yaml +10 -53
- package/examples/kagent/ossa-kagent-anthropic.ossa.yaml +2 -25
- package/examples/kagent/ossa-kagent-mcp-tools.ossa.yaml +2 -30
- package/examples/kagent/ossa-kagent-multi-tool.ossa.yaml +2 -18
- package/examples/kagent/ossa-kagent-poc.ossa.yaml +2 -16
- package/examples/pipeline-agent.ossa.yaml +3 -3
- package/examples/platform-specific/claude-code-subagent.yaml +1 -1
- package/examples/platform-specific/cursor-coding-agent.yaml +1 -1
- package/examples/platform-specific/warp-terminal-agent.yaml +1 -1
- package/examples/production-ready/01-customer-support-bot/agent.ossa.yaml +24 -31
- package/examples/production-ready/05-sales-assistant/agent.ossa.yaml +35 -23
- package/examples/production-ready/07-research-assistant/agent.ossa.yaml +27 -19
- package/examples/production-ready/10-meeting-assistant/agent.ossa.yaml +27 -35
- package/examples/reference-implementations/python-client/examples/basic_usage.py +0 -0
- package/examples/reference-implementations/python-client/examples/publish_agent.py +0 -0
- package/examples/roles/drupal-developer.role.yaml +37 -0
- package/examples/roles/platform-operator.role.yaml +28 -0
- package/examples/roles/security-auditor.role.yaml +27 -0
- package/examples/swarm-agent.ossa.yaml +13 -51
- package/examples/team-agent.ossa.yaml +12 -61
- package/examples/team-lead-teammate.ossa.yaml +12 -17
- package/openapi/agent-communication.yaml +260 -212
- package/openapi/agent-crud.yaml +217 -187
- package/openapi/agent-discovery.yaml +119 -81
- package/openapi/agent-identity.yaml +219 -187
- package/openapi/agent-taxonomy.yaml +95 -38
- package/openapi/agents-md-service.yaml +103 -30
- package/openapi/cli/openapi.yaml +147 -40
- package/openapi/core/ossa-core-api.openapi.yaml +327 -271
- package/openapi/core/ossa-registry-api.openapi.yaml +298 -235
- package/openapi/core/ossa-registry.openapi.yaml +299 -159
- package/openapi/core/unified-agent-gateway.openapi.yaml +234 -170
- package/openapi/daemon-api.openapi.yaml +323 -181
- package/openapi/dev-cli/openapi.yaml +137 -113
- package/openapi/github-sync.yaml +62 -19
- package/openapi/marketplace-plugin.openapi.yaml +539 -466
- package/openapi/ossa-api.openapi.yaml +354 -213
- package/openapi/ossa-cli-enhancements.openapi.yaml +108 -89
- package/openapi/ossa-cli.yaml +260 -184
- package/openapi/protocols/sse-streams.yaml +66 -74
- package/openapi/protocols/websocket-events.yaml +61 -54
- package/openapi/reference-implementations/aiflow-bridge-api.openapi.yaml +37 -20
- package/openapi/reference-implementations/compliance-agent-api.openapi.yaml +35 -23
- package/openapi/reference-implementations/crewai-agent-api.openapi.yaml +29 -18
- package/openapi/reference-implementations/critic-agent-api.openapi.yaml +45 -19
- package/openapi/reference-implementations/document-analyzer-api.openapi.yaml +30 -24
- package/openapi/reference-implementations/drupal-agent-api.openapi.yaml +101 -50
- package/openapi/reference-implementations/getting-started-hello-world-api.openapi.yaml +33 -22
- package/openapi/reference-implementations/gitlab-ml-recommender-api.openapi.yaml +20 -16
- package/openapi/reference-implementations/governor-agent-api.openapi.yaml +41 -23
- package/openapi/reference-implementations/helm-generator.openapi.yaml +88 -46
- package/openapi/reference-implementations/integrator-agent-api.openapi.yaml +30 -20
- package/openapi/reference-implementations/judge-agent-api.openapi.yaml +22 -16
- package/openapi/reference-implementations/k8s-troubleshooter-api.openapi.yaml +32 -18
- package/openapi/reference-implementations/langchain-agent-api.openapi.yaml +32 -21
- package/openapi/reference-implementations/monitor-agent-api.openapi.yaml +34 -21
- package/openapi/reference-implementations/orchestrator-agent-api.openapi.yaml +49 -27
- package/openapi/reference-implementations/quickstart-support-agent-api.openapi.yaml +27 -19
- package/openapi/reference-implementations/self-evolving-ecosystem.openapi.yaml +427 -293
- package/openapi/reference-implementations/worker-agent-api.openapi.yaml +34 -23
- package/openapi/reference-implementations/workflow-orchestrator-api.openapi.yaml +35 -21
- package/openapi/release-automation.openapi.yaml +47 -13
- package/openapi/schemas/common/agent.yaml +30 -29
- package/openapi/schemas/common/errors.yaml +13 -3
- package/openapi/schemas/common/metadata.yaml +22 -7
- package/openapi/schemas/common/pagination.yaml +18 -6
- package/openapi/schemas/common/security.yaml +13 -5
- package/openapi/schemas/index.yaml +49 -42
- package/openapi/uadp-asyncapi.yaml +4 -2
- package/openapi/uadp-openapi.yaml +243 -165
- package/openapi/version-management.openapi.yaml +142 -135
- package/package.json +114 -103
- package/spec/extensions/role-manifest.md +188 -0
- package/spec/v0.4/extensions/mcp/README.md +1 -1
- package/spec/v0.5/agent.schema.json +2 -1
- package/spec/v0.5/extensions/mcp/README.md +1 -1
- package/spec/v0.5/role.schema.json +268 -0
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
apiVersion: ossa/v0.5
|
|
2
|
+
kind: Agent
|
|
3
|
+
metadata:
|
|
4
|
+
name: security-audit-agent
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
description: Repository security scanner. Runs static analysis, dependency audits, secret detection, and Dragonfly audit rules against codebases. Reports findings with severity and remediation guidance.
|
|
7
|
+
labels:
|
|
8
|
+
use-case: security-audit
|
|
9
|
+
production-ready: 'false'
|
|
10
|
+
ossa-native: 'true'
|
|
11
|
+
agentType: custom
|
|
12
|
+
agentKind: specialist
|
|
13
|
+
identity:
|
|
14
|
+
namespace: blueflyio/ossa
|
|
15
|
+
agent_id: security-audit-agent
|
|
16
|
+
version: 1.0.0
|
|
17
|
+
publisher:
|
|
18
|
+
name: BlueFly.io
|
|
19
|
+
email: agents@bluefly.io
|
|
20
|
+
website: https://openstandardagents.org
|
|
21
|
+
created_at: 2026-03-10T12:00:00Z
|
|
22
|
+
updated_at: 2026-03-10T12:00:00Z
|
|
23
|
+
catalog:
|
|
24
|
+
published: true
|
|
25
|
+
visibility: public
|
|
26
|
+
categories:
|
|
27
|
+
- security
|
|
28
|
+
- code-quality
|
|
29
|
+
- compliance
|
|
30
|
+
tags:
|
|
31
|
+
- security
|
|
32
|
+
- audit
|
|
33
|
+
- phpstan
|
|
34
|
+
- phpcs
|
|
35
|
+
- dragonfly
|
|
36
|
+
- ossa-native
|
|
37
|
+
spec:
|
|
38
|
+
role: |
|
|
39
|
+
You are a security audit specialist agent.
|
|
40
|
+
|
|
41
|
+
Your mission:
|
|
42
|
+
1. Scan repositories for vulnerabilities using static analysis tools
|
|
43
|
+
2. Run PHPStan at strictest levels for type safety issues
|
|
44
|
+
3. Run PHPCS for coding standard violations
|
|
45
|
+
4. Execute Dragonfly audit rules for anti-patterns and best practices
|
|
46
|
+
5. Check for exposed secrets and credentials
|
|
47
|
+
6. Produce structured reports with severity ratings and remediation steps
|
|
48
|
+
|
|
49
|
+
Guidelines:
|
|
50
|
+
- Never output or log actual secret values
|
|
51
|
+
- Classify findings by severity: critical, high, medium, low, informational
|
|
52
|
+
- Provide actionable remediation for each finding
|
|
53
|
+
- Reference CWE/CVE identifiers where applicable
|
|
54
|
+
- Map findings to NIST AI RMF and OWASP Top 10 where relevant
|
|
55
|
+
llm:
|
|
56
|
+
provider: anthropic
|
|
57
|
+
model: claude-sonnet-4-20250514
|
|
58
|
+
temperature: 0.1
|
|
59
|
+
max_tokens: 16384
|
|
60
|
+
tools:
|
|
61
|
+
- type: command
|
|
62
|
+
name: phpstan_analyze
|
|
63
|
+
description: Run PHPStan static analysis
|
|
64
|
+
operation: read
|
|
65
|
+
command: phpstan analyse
|
|
66
|
+
parameters:
|
|
67
|
+
path:
|
|
68
|
+
type: string
|
|
69
|
+
description: Path to analyze
|
|
70
|
+
level:
|
|
71
|
+
type: number
|
|
72
|
+
description: Analysis strictness 0-9
|
|
73
|
+
default: 8
|
|
74
|
+
- type: command
|
|
75
|
+
name: phpcs_check
|
|
76
|
+
description: Run PHP CodeSniffer checks
|
|
77
|
+
operation: read
|
|
78
|
+
command: phpcs
|
|
79
|
+
parameters:
|
|
80
|
+
path:
|
|
81
|
+
type: string
|
|
82
|
+
description: Path to check
|
|
83
|
+
standard:
|
|
84
|
+
type: string
|
|
85
|
+
default: Drupal,DrupalPractice
|
|
86
|
+
- type: command
|
|
87
|
+
name: npm_audit
|
|
88
|
+
description: Run npm audit for JS/TS dependencies
|
|
89
|
+
operation: read
|
|
90
|
+
command: npm audit
|
|
91
|
+
parameters:
|
|
92
|
+
path:
|
|
93
|
+
type: string
|
|
94
|
+
description: Project path with package.json
|
|
95
|
+
- type: command
|
|
96
|
+
name: secret_scan
|
|
97
|
+
description: Scan for exposed secrets and credentials
|
|
98
|
+
operation: read
|
|
99
|
+
command: git secrets --scan
|
|
100
|
+
parameters:
|
|
101
|
+
path:
|
|
102
|
+
type: string
|
|
103
|
+
description: Repository path to scan
|
|
104
|
+
- type: api
|
|
105
|
+
name: dragonfly_audit
|
|
106
|
+
description: Run Dragonfly audit rules from catalog
|
|
107
|
+
operation: read
|
|
108
|
+
parameters:
|
|
109
|
+
rule_set:
|
|
110
|
+
type: string
|
|
111
|
+
description: Audit rule set (e.g. anti-patterns, best-practices, a11y, seo)
|
|
112
|
+
target_url:
|
|
113
|
+
type: string
|
|
114
|
+
description: URL or path to audit
|
|
115
|
+
capabilities:
|
|
116
|
+
- name: static-analysis
|
|
117
|
+
description: PHPStan and PHPCS code analysis
|
|
118
|
+
- name: dependency-audit
|
|
119
|
+
description: npm/composer dependency vulnerability checks
|
|
120
|
+
- name: secret-detection
|
|
121
|
+
description: Scan for exposed credentials and secrets
|
|
122
|
+
- name: dragonfly-audit
|
|
123
|
+
description: Run Dragonfly quality audit rules
|
|
124
|
+
- name: compliance-mapping
|
|
125
|
+
description: Map findings to NIST, OWASP, CWE frameworks
|
|
126
|
+
safety:
|
|
127
|
+
guardrails:
|
|
128
|
+
- never_output_secrets
|
|
129
|
+
- read_only_operations
|
|
130
|
+
- audit_all_actions
|
|
131
|
+
pii_handling: redact
|
|
132
|
+
audit_all_actions: true
|
|
133
|
+
max_cost_per_execution: 0.4
|
|
134
|
+
observability:
|
|
135
|
+
telemetry:
|
|
136
|
+
enabled: true
|
|
137
|
+
export_traces: true
|
|
138
|
+
export_metrics: true
|
|
139
|
+
security:
|
|
140
|
+
tier: tier_1_read
|
|
141
|
+
threat_model:
|
|
142
|
+
- category: information-disclosure
|
|
143
|
+
severity: critical
|
|
144
|
+
mitigations:
|
|
145
|
+
- output-filtering
|
|
146
|
+
- secret-redaction
|
|
147
|
+
description: Must never expose secrets found during scanning
|
|
148
|
+
capabilities:
|
|
149
|
+
required:
|
|
150
|
+
- filesystem-read
|
|
151
|
+
- network-outbound
|
|
152
|
+
- process-spawn
|
|
153
|
+
- tool-execution
|
|
154
|
+
optional:
|
|
155
|
+
- browser
|
|
156
|
+
sandboxing:
|
|
157
|
+
required: true
|
|
158
|
+
type: container
|
|
159
|
+
resource_limits:
|
|
160
|
+
max_memory_mb: 2048
|
|
161
|
+
max_cpu_cores: 2
|
|
162
|
+
max_execution_seconds: 600
|
|
163
|
+
network_access:
|
|
164
|
+
allowed_domains:
|
|
165
|
+
- registry.npmjs.org
|
|
166
|
+
- packagist.org
|
|
167
|
+
- api.anthropic.com
|
|
168
|
+
- nvd.nist.gov
|
|
169
|
+
protocols:
|
|
170
|
+
- https
|
|
171
|
+
egress_policy: allow-list
|
|
172
|
+
data_classification: confidential
|
|
173
|
+
audit:
|
|
174
|
+
log_inputs: true
|
|
175
|
+
log_outputs: false
|
|
176
|
+
log_tool_calls: true
|
|
177
|
+
retention_days: 365
|
|
178
|
+
protocols:
|
|
179
|
+
mcp:
|
|
180
|
+
version: 1.0.0
|
|
181
|
+
role: client
|
|
182
|
+
capabilities:
|
|
183
|
+
tools: true
|
|
184
|
+
resources: true
|
|
185
|
+
prompts: false
|
|
186
|
+
sampling: false
|
|
187
|
+
servers:
|
|
188
|
+
- name: dragonfly
|
|
189
|
+
transport: stdio
|
|
190
|
+
command: dragonfly
|
|
191
|
+
tools:
|
|
192
|
+
- dragonfly_audit
|
|
193
|
+
a2a:
|
|
194
|
+
version: 0.2.0
|
|
195
|
+
endpoint: https://openstandardagents.org/agents/security-audit-agent
|
|
196
|
+
agent_card:
|
|
197
|
+
name: Security Audit Agent
|
|
198
|
+
description: Run repository security audits and compliance scans
|
|
199
|
+
skills:
|
|
200
|
+
- id: audit-repository
|
|
201
|
+
name: Audit Repository
|
|
202
|
+
description: Run a security audit on a repository
|
|
203
|
+
capabilities:
|
|
204
|
+
streaming: false
|
|
205
|
+
pushNotifications: false
|
|
206
|
+
stateTransitionHistory: true
|
|
207
|
+
authentication:
|
|
208
|
+
schemes:
|
|
209
|
+
- none
|
|
210
|
+
governance:
|
|
211
|
+
authorization:
|
|
212
|
+
clearance_level: 1
|
|
213
|
+
policy_references:
|
|
214
|
+
- blueflyio/cedar-policies
|
|
215
|
+
tool_permissions:
|
|
216
|
+
- tool: phpstan_analyze
|
|
217
|
+
risk_level: low
|
|
218
|
+
- tool: phpcs_check
|
|
219
|
+
risk_level: low
|
|
220
|
+
- tool: npm_audit
|
|
221
|
+
risk_level: low
|
|
222
|
+
- tool: secret_scan
|
|
223
|
+
risk_level: medium
|
|
224
|
+
- tool: dragonfly_audit
|
|
225
|
+
risk_level: medium
|
|
226
|
+
quality_requirements:
|
|
227
|
+
confidence_threshold: 0.9
|
|
228
|
+
security_score_threshold: 90
|
|
229
|
+
max_vulnerability_count: 0
|
|
230
|
+
compliance:
|
|
231
|
+
frameworks:
|
|
232
|
+
- NIST-800-53
|
|
233
|
+
data_classification: confidential
|
|
234
|
+
audit_logging_required: true
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
apiVersion: ossa/v0.
|
|
1
|
+
apiVersion: ossa/v0.5
|
|
2
2
|
kind: Agent
|
|
3
3
|
metadata:
|
|
4
4
|
name: agentscope-react-assistant
|
|
5
|
-
namespace: bluefly
|
|
6
|
-
version:
|
|
7
|
-
description:
|
|
5
|
+
namespace: bluefly-examples
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
description: Example ReAct agent powered by AgentScope runtime with MCP tool integration, A2A protocol support, and Mem0 long-term memory.
|
|
8
8
|
agentType: agentscope
|
|
9
9
|
agentKind: assistant
|
|
10
10
|
status: active
|
|
@@ -14,17 +14,14 @@ metadata:
|
|
|
14
14
|
framework: agentscope
|
|
15
15
|
identity:
|
|
16
16
|
agent_id: agentscope-react-assistant
|
|
17
|
-
namespace: bluefly
|
|
18
|
-
version:
|
|
17
|
+
namespace: bluefly-examples
|
|
18
|
+
version: 1.0.0
|
|
19
19
|
publisher:
|
|
20
20
|
name: BlueFly Collective
|
|
21
21
|
website: https://bluefly.io
|
|
22
|
-
|
|
23
22
|
spec:
|
|
24
|
-
role:
|
|
25
|
-
You are a helpful assistant that uses tools to answer questions accurately.
|
|
26
|
-
Always verify information before responding. Use available MCP tools for
|
|
27
|
-
real-time data retrieval and knowledge base queries.
|
|
23
|
+
role: |
|
|
24
|
+
You are a helpful assistant that uses tools to answer questions accurately. Always verify information before responding. Use available MCP tools for real-time data retrieval and knowledge base queries.
|
|
28
25
|
llm:
|
|
29
26
|
provider: anthropic
|
|
30
27
|
model: claude-sonnet-4-20250514
|
|
@@ -39,18 +36,19 @@ spec:
|
|
|
39
36
|
- type: mcp
|
|
40
37
|
name: knowledge-base
|
|
41
38
|
endpoint: https://gkg.blueflyagents.com/mcp/sse
|
|
42
|
-
description:
|
|
39
|
+
description: Graph knowledge base for codebase analysis
|
|
43
40
|
- type: mcp
|
|
44
41
|
name: web-search
|
|
45
42
|
endpoint: https://mcp.blueflyagents.com/api/mcp/sse
|
|
46
|
-
description:
|
|
43
|
+
description: Web search and content retrieval
|
|
47
44
|
inputs:
|
|
48
45
|
type: object
|
|
49
46
|
properties:
|
|
50
47
|
query:
|
|
51
48
|
type: string
|
|
52
|
-
description:
|
|
53
|
-
required:
|
|
49
|
+
description: User query or task
|
|
50
|
+
required:
|
|
51
|
+
- query
|
|
54
52
|
outputs:
|
|
55
53
|
type: object
|
|
56
54
|
properties:
|
|
@@ -60,23 +58,26 @@ spec:
|
|
|
60
58
|
type: integer
|
|
61
59
|
confidence:
|
|
62
60
|
type: number
|
|
63
|
-
|
|
64
61
|
security:
|
|
65
62
|
tier: tier_1_read
|
|
66
63
|
capabilities:
|
|
67
|
-
required:
|
|
68
|
-
|
|
64
|
+
required:
|
|
65
|
+
- network-outbound
|
|
66
|
+
- tool-execution
|
|
67
|
+
optional:
|
|
68
|
+
- memory-extended
|
|
69
69
|
network_access:
|
|
70
70
|
allowed_domains:
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
protocols:
|
|
71
|
+
- '*.blueflyagents.com'
|
|
72
|
+
- api.anthropic.com
|
|
73
|
+
protocols:
|
|
74
|
+
- https
|
|
75
|
+
- wss
|
|
74
76
|
egress_policy: allow-list
|
|
75
77
|
data_classification: internal
|
|
76
|
-
|
|
77
78
|
protocols:
|
|
78
79
|
mcp:
|
|
79
|
-
version:
|
|
80
|
+
version: 1.0.0
|
|
80
81
|
role: client
|
|
81
82
|
capabilities:
|
|
82
83
|
tools: true
|
|
@@ -84,23 +85,22 @@ protocols:
|
|
|
84
85
|
prompts: false
|
|
85
86
|
sampling: false
|
|
86
87
|
a2a:
|
|
87
|
-
version:
|
|
88
|
+
version: 0.2.1
|
|
88
89
|
endpoint: https://agents.blueflyagents.com/a2a/react-assistant
|
|
89
90
|
agent_card:
|
|
90
91
|
name: AgentScope React Assistant
|
|
91
|
-
description:
|
|
92
|
+
description: ReAct agent with tool use and memory
|
|
92
93
|
skills:
|
|
93
94
|
- id: question-answering
|
|
94
95
|
name: Question Answering
|
|
95
|
-
description:
|
|
96
|
+
description: Answer questions using tools and knowledge
|
|
96
97
|
- id: code-analysis
|
|
97
98
|
name: Code Analysis
|
|
98
|
-
description:
|
|
99
|
+
description: Analyze code using knowledge graph
|
|
99
100
|
capabilities:
|
|
100
101
|
streaming: true
|
|
101
102
|
pushNotifications: false
|
|
102
103
|
stateTransitionHistory: false
|
|
103
|
-
|
|
104
104
|
token_efficiency:
|
|
105
105
|
serialization_profile: compact
|
|
106
106
|
observation_format: projected
|
|
@@ -109,13 +109,17 @@ token_efficiency:
|
|
|
109
109
|
max_output_tokens: 4096
|
|
110
110
|
allocation_strategy: adaptive
|
|
111
111
|
routing:
|
|
112
|
-
cascade:
|
|
113
|
-
|
|
112
|
+
cascade:
|
|
113
|
+
- claude-haiku-4-5-20251001
|
|
114
|
+
- claude-sonnet-4-20250514
|
|
115
|
+
- claude-opus-4-20250514
|
|
116
|
+
complexity_threshold:
|
|
117
|
+
- 0.3
|
|
118
|
+
- 0.7
|
|
114
119
|
strategy: cost_optimized
|
|
115
|
-
|
|
116
120
|
extensions:
|
|
117
121
|
agentscope:
|
|
118
|
-
version:
|
|
122
|
+
version: 1.0.16
|
|
119
123
|
agent_class: ReActAgent
|
|
120
124
|
capabilities:
|
|
121
125
|
- rag
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
apiVersion: ossa/v0.5.0
|
|
2
|
+
kind: Agent
|
|
3
|
+
metadata:
|
|
4
|
+
name: drupal-contributor
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
description: >-
|
|
7
|
+
Autonomous Drupal issue contributor. Discovers issues on Drupal.org,
|
|
8
|
+
analyzes discussions, implements patches, pushes merge requests, and
|
|
9
|
+
monitors CI pipelines. The first OSSA-native development agent.
|
|
10
|
+
labels:
|
|
11
|
+
use-case: open-source-contribution
|
|
12
|
+
drupal-version: "11"
|
|
13
|
+
production-ready: "false"
|
|
14
|
+
ossa-native: "true"
|
|
15
|
+
agentType: custom
|
|
16
|
+
agentKind: worker
|
|
17
|
+
identity:
|
|
18
|
+
namespace: blueflyio/ossa
|
|
19
|
+
agent_id: drupal-contributor
|
|
20
|
+
version: 1.0.0
|
|
21
|
+
publisher:
|
|
22
|
+
name: BlueFly.io
|
|
23
|
+
email: agents@bluefly.io
|
|
24
|
+
website: https://openstandardagents.org
|
|
25
|
+
created_at: "2026-03-10T12:00:00Z"
|
|
26
|
+
updated_at: "2026-03-10T12:00:00Z"
|
|
27
|
+
catalog:
|
|
28
|
+
published: true
|
|
29
|
+
visibility: public
|
|
30
|
+
categories:
|
|
31
|
+
- development
|
|
32
|
+
- open-source
|
|
33
|
+
- drupal
|
|
34
|
+
tags:
|
|
35
|
+
- drupal
|
|
36
|
+
- contributor
|
|
37
|
+
- issue-fixing
|
|
38
|
+
- merge-request
|
|
39
|
+
- ci-monitoring
|
|
40
|
+
- ossa-native
|
|
41
|
+
|
|
42
|
+
spec:
|
|
43
|
+
role: |
|
|
44
|
+
You are an autonomous Drupal open-source contributor agent.
|
|
45
|
+
|
|
46
|
+
Your mission:
|
|
47
|
+
1. Discover open issues on Drupal.org via the drupalorg-cli
|
|
48
|
+
2. Analyze issue discussions and existing patches
|
|
49
|
+
3. Implement fixes following Drupal coding standards
|
|
50
|
+
4. Run static analysis (PHPStan, PHPCS) before pushing
|
|
51
|
+
5. Create merge requests on GitLab
|
|
52
|
+
6. Monitor CI pipeline results and iterate
|
|
53
|
+
|
|
54
|
+
Guidelines:
|
|
55
|
+
- Follow Drupal coding standards strictly
|
|
56
|
+
- Write tests for all changes
|
|
57
|
+
- Keep patches minimal and focused
|
|
58
|
+
- Provide clear commit messages referencing the issue
|
|
59
|
+
- Respect human reviewer feedback
|
|
60
|
+
|
|
61
|
+
llm:
|
|
62
|
+
provider: anthropic
|
|
63
|
+
model: claude-sonnet-4-20250514
|
|
64
|
+
temperature: 0.2
|
|
65
|
+
max_tokens: 8192
|
|
66
|
+
|
|
67
|
+
tools:
|
|
68
|
+
- type: command
|
|
69
|
+
name: drupal_issue_context
|
|
70
|
+
description: Fetch issue details and discussion from Drupal.org
|
|
71
|
+
operation: read
|
|
72
|
+
command: drupalorg issue:show
|
|
73
|
+
parameters:
|
|
74
|
+
issue_id:
|
|
75
|
+
type: string
|
|
76
|
+
description: Drupal.org issue ID (e.g. 3456789)
|
|
77
|
+
|
|
78
|
+
- type: function
|
|
79
|
+
name: drupal_issue_checkout
|
|
80
|
+
description: Checkout issue branch for local development
|
|
81
|
+
operation: write
|
|
82
|
+
command: drupalorg issue:checkout
|
|
83
|
+
parameters:
|
|
84
|
+
issue_id:
|
|
85
|
+
type: string
|
|
86
|
+
description: Drupal.org issue ID to checkout
|
|
87
|
+
|
|
88
|
+
- type: function
|
|
89
|
+
name: drupal_mr_diff
|
|
90
|
+
description: Show merge request diff for review
|
|
91
|
+
operation: read
|
|
92
|
+
command: drupalorg mr:diff
|
|
93
|
+
parameters:
|
|
94
|
+
mr_id:
|
|
95
|
+
type: string
|
|
96
|
+
description: Merge request ID on Drupal.org GitLab
|
|
97
|
+
|
|
98
|
+
- type: function
|
|
99
|
+
name: phpstan_analyze
|
|
100
|
+
description: Run PHPStan static analysis on changed files
|
|
101
|
+
operation: read
|
|
102
|
+
command: phpstan analyse
|
|
103
|
+
parameters:
|
|
104
|
+
path:
|
|
105
|
+
type: string
|
|
106
|
+
description: Path to analyze (file or directory)
|
|
107
|
+
level:
|
|
108
|
+
type: number
|
|
109
|
+
description: Analysis level 0-9
|
|
110
|
+
default: 6
|
|
111
|
+
|
|
112
|
+
- type: command
|
|
113
|
+
name: phpcs_check
|
|
114
|
+
description: Run PHP CodeSniffer with Drupal coding standards
|
|
115
|
+
operation: read
|
|
116
|
+
command: phpcs
|
|
117
|
+
parameters:
|
|
118
|
+
path:
|
|
119
|
+
type: string
|
|
120
|
+
description: Path to check
|
|
121
|
+
standard:
|
|
122
|
+
type: string
|
|
123
|
+
description: Coding standard to use
|
|
124
|
+
default: Drupal,DrupalPractice
|
|
125
|
+
|
|
126
|
+
- type: command
|
|
127
|
+
name: git_push_mr
|
|
128
|
+
description: Stage, commit, and push changes to create a merge request
|
|
129
|
+
operation: write
|
|
130
|
+
command: git
|
|
131
|
+
parameters:
|
|
132
|
+
message:
|
|
133
|
+
type: string
|
|
134
|
+
description: Commit message referencing the issue
|
|
135
|
+
branch:
|
|
136
|
+
type: string
|
|
137
|
+
description: Target branch for the merge request
|
|
138
|
+
|
|
139
|
+
capabilities:
|
|
140
|
+
- name: issue-analysis
|
|
141
|
+
description: Analyze Drupal.org issue context and patches
|
|
142
|
+
- name: code-implementation
|
|
143
|
+
description: Implement fixes following Drupal standards
|
|
144
|
+
- name: static-analysis
|
|
145
|
+
description: Run PHPStan and PHPCS checks
|
|
146
|
+
- name: merge-request-creation
|
|
147
|
+
description: Create and manage GitLab merge requests
|
|
148
|
+
- name: ci-monitoring
|
|
149
|
+
description: Monitor CI pipeline results
|
|
150
|
+
|
|
151
|
+
safety:
|
|
152
|
+
guardrails:
|
|
153
|
+
- no_production_deploys
|
|
154
|
+
- human_review_required_before_merge
|
|
155
|
+
- follow_drupal_coding_standards
|
|
156
|
+
- audit_all_actions
|
|
157
|
+
pii_handling: none
|
|
158
|
+
audit_all_actions: true
|
|
159
|
+
max_cost_per_execution: 0.50
|
|
160
|
+
|
|
161
|
+
observability:
|
|
162
|
+
telemetry:
|
|
163
|
+
enabled: true
|
|
164
|
+
export_traces: true
|
|
165
|
+
export_metrics: true
|
|
166
|
+
|
|
167
|
+
security:
|
|
168
|
+
tier: tier_2_write_limited
|
|
169
|
+
threat_model:
|
|
170
|
+
- category: prompt-injection
|
|
171
|
+
severity: medium
|
|
172
|
+
mitigations:
|
|
173
|
+
- input-validation
|
|
174
|
+
- output-filtering
|
|
175
|
+
description: Issue text from Drupal.org could contain adversarial content
|
|
176
|
+
- category: supply-chain
|
|
177
|
+
severity: high
|
|
178
|
+
mitigations:
|
|
179
|
+
- dependency-scanning
|
|
180
|
+
- code-review
|
|
181
|
+
description: Patches must be reviewed before merge
|
|
182
|
+
capabilities:
|
|
183
|
+
required:
|
|
184
|
+
- filesystem-read
|
|
185
|
+
- filesystem-write
|
|
186
|
+
- network-outbound
|
|
187
|
+
- process-spawn
|
|
188
|
+
- tool-execution
|
|
189
|
+
optional:
|
|
190
|
+
- browser
|
|
191
|
+
sandboxing:
|
|
192
|
+
required: true
|
|
193
|
+
type: container
|
|
194
|
+
resource_limits:
|
|
195
|
+
max_memory_mb: 2048
|
|
196
|
+
max_cpu_cores: 2
|
|
197
|
+
max_execution_seconds: 600
|
|
198
|
+
max_disk_mb: 1024
|
|
199
|
+
network_access:
|
|
200
|
+
allowed_domains:
|
|
201
|
+
- "*.drupal.org"
|
|
202
|
+
- "*.drupalcode.org"
|
|
203
|
+
- "gitlab.com"
|
|
204
|
+
- "api.anthropic.com"
|
|
205
|
+
protocols:
|
|
206
|
+
- https
|
|
207
|
+
egress_policy: allow-list
|
|
208
|
+
data_classification: internal
|
|
209
|
+
audit:
|
|
210
|
+
log_inputs: true
|
|
211
|
+
log_outputs: true
|
|
212
|
+
log_tool_calls: true
|
|
213
|
+
retention_days: 90
|
|
214
|
+
|
|
215
|
+
protocols:
|
|
216
|
+
mcp:
|
|
217
|
+
version: 1.0.0
|
|
218
|
+
role: client
|
|
219
|
+
capabilities:
|
|
220
|
+
tools: true
|
|
221
|
+
resources: true
|
|
222
|
+
servers:
|
|
223
|
+
- name: drupalorg-cli
|
|
224
|
+
transport: stdio
|
|
225
|
+
command: drupalorg
|
|
226
|
+
a2a:
|
|
227
|
+
version: 0.2.0
|
|
228
|
+
endpoint: https://openstandardagents.org/agents/drupal-contributor
|
|
229
|
+
agent_card:
|
|
230
|
+
name: drupal-contributor
|
|
231
|
+
description: Analyze and fix a Drupal.org issue
|
|
232
|
+
skills:
|
|
233
|
+
- id: fix-drupal-issue
|
|
234
|
+
name: fix-drupal-issue
|
|
235
|
+
description: Analyze and fix a Drupal.org issue
|
|
236
|
+
capabilities:
|
|
237
|
+
stateTransitionHistory: true
|
|
238
|
+
|
|
239
|
+
governance:
|
|
240
|
+
authorization:
|
|
241
|
+
policy_references:
|
|
242
|
+
- blueflyio/cedar-policies
|
|
243
|
+
compliance:
|
|
244
|
+
frameworks:
|
|
245
|
+
- NIST-800-53
|
|
246
|
+
data_classification: internal
|
|
247
|
+
audit_logging_required: true
|
|
@@ -328,7 +328,7 @@ REDIS_URL=redis://localhost:6379
|
|
|
328
328
|
|
|
329
329
|
**PostgreSQL Backend:**
|
|
330
330
|
```bash
|
|
331
|
-
POSTGRES_URL=postgresql://postgres
|
|
331
|
+
POSTGRES_URL=postgresql://postgres:${POSTGRES_PASSWORD}@localhost:5432/agent_memory
|
|
332
332
|
```
|
|
333
333
|
|
|
334
334
|
**OpenAI API (for Summary/Entity Memory):**
|