Skip to content

Commit afaed59

Browse files
rrbandanickboldt
andauthored
feat(augment): add augment AI assistant workspace (#2555)
* feat(augment): add augment AI assistant workspace Introduces the augment plugin family (frontend, backend, common) under workspaces/augment. Provides a chat interface backed by Llama Stack with multi-agent orchestration, RAG, MCP tool calling, and configurable safety guardrails. Key capabilities: - Multi-agent architecture with router, cluster-engineer, and product-knowledge specialist agents - Streaming chat via SSE with conversation history - MCP server integration for live OpenShift cluster operations and Red Hat knowledge platform queries - Human-in-the-loop tool approval - RHDH dynamic plugin support (frontend scalprum + backend) - Configurable security modes (none, plugin-only, full) - Response evaluation via Llama Stack Scoring API Signed-off-by: Raghu Banda <rbanda@redhat.com> * Apply suggestion from @nickboldt * Apply suggestion from @nickboldt * fix(augment): fix CI and SonarCloud issues --------- Signed-off-by: Raghu Banda <rbanda@redhat.com> Co-authored-by: Nick Boldt <nboldt@redhat.com>
1 parent e46b7c8 commit afaed59

624 files changed

Lines changed: 159216 additions & 18 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@red-hat-developer-hub/backstage-plugin-augment': minor
3+
'@red-hat-developer-hub/backstage-plugin-augment-backend': minor
4+
'@red-hat-developer-hub/backstage-plugin-augment-common': minor
5+
---
6+
7+
Initial release of the Augment AI assistant plugin for Backstage. Provides a chat interface backed by Llama Stack with RAG, tool calling, multi-agent orchestration, and configurable safety guardrails.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json",
3+
"changelog": "@changesets/cli/changelog",
4+
"commit": false,
5+
"fixed": [],
6+
"linked": [],
7+
"access": "public",
8+
"baseBranch": "main",
9+
"updateInternalDependencies": "patch",
10+
"privatePackages": {
11+
"tag": false,
12+
"version": false
13+
}
14+
}

workspaces/augment/.dockerignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
.git
2+
.yarn/cache
3+
.yarn/install-state.gz
4+
node_modules
5+
packages/*/src
6+
packages/*/node_modules
7+
plugins
8+
*.local.yaml

workspaces/augment/.eslintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
playwright.config.ts

workspaces/augment/.eslintrc.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = require('../../.eslintrc.cjs');

workspaces/augment/.gitignore

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
# macOS
2+
.DS_Store
3+
4+
# Logs
5+
logs
6+
*.log
7+
npm-debug.log*
8+
yarn-debug.log*
9+
yarn-error.log*
10+
lerna-debug.log*
11+
12+
# Coverage directory generated when running tests with coverage
13+
coverage
14+
15+
# Dependencies
16+
node_modules/
17+
118
# Yarn files
219
.pnp.*
320
.yarn/*
@@ -6,3 +23,36 @@
623
!.yarn/releases
724
!.yarn/sdks
825
!.yarn/versions
26+
27+
# Node version directives
28+
.nvmrc
29+
30+
# dotenv environment variables file
31+
.env
32+
.env.test
33+
34+
# Build output
35+
dist
36+
dist-types
37+
38+
# Temporary change files created by Vim
39+
*.swp
40+
41+
# MkDocs build output
42+
site
43+
44+
# Local configuration files
45+
*.local.yaml
46+
47+
# Sensitive credentials
48+
*-credentials.yaml
49+
50+
# vscode database functionality support files
51+
*.session.sql
52+
53+
# E2E test reports
54+
e2e-test-report/
55+
56+
# Dev/ops helper scripts (keep local, not shipped with plugin)
57+
plugins/augment-common/docs/scripts/
58+
plugins/augment-backend/scripts/

workspaces/augment/.prettierignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
dist
2+
dist-types
3+
coverage
4+
.vscode
5+
.eslintrc.js
6+
7+
generated
8+
report.api.md
9+
knip-report.md

workspaces/augment/README.md

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,29 @@
1-
# Augment AI Assistant Workspace
1+
# Augment Workspace
22

3-
This workspace contains the Augment AI assistant plugins for Backstage:
3+
This workspace contains the Augment plugin family for Red Hat Developer Hub.
44

5-
- **@red-hat-developer-hub/backstage-plugin-augment** — Frontend chat interface with streaming responses, conversation history, and admin settings
6-
- **@red-hat-developer-hub/backstage-plugin-augment-backend** — Backend plugin providing Responses API integration with Llama Stack, MCP server proxy, RAG, and multi-agent orchestration
7-
- **@red-hat-developer-hub/backstage-plugin-augment-common** — Shared types, API refs, and permission definitions
5+
Augment is a configurable AI assistant with RAG, multi-agent orchestration, tool calling via MCP servers, and safety guardrails.
86

9-
## Maintainers
7+
## Plugins
108

11-
- @rrbanda
12-
- @pkliczewski
9+
| Plugin | Description |
10+
| ------------------------------------------------------------------------------------- | ---------------------------- |
11+
| [@red-hat-developer-hub/backstage-plugin-augment](./plugins/augment/) | Frontend plugin |
12+
| [@red-hat-developer-hub/backstage-plugin-augment-backend](./plugins/augment-backend/) | Backend plugin |
13+
| [@red-hat-developer-hub/backstage-plugin-augment-common](./plugins/augment-common/) | Shared types and permissions |
14+
15+
## Development
16+
17+
```bash
18+
# Install dependencies
19+
yarn install
20+
21+
# Start the dev server
22+
yarn dev
23+
24+
# Run tests
25+
yarn test:all
26+
27+
# Build all plugins
28+
yarn build:all
29+
```

workspaces/augment/app-config.yaml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
app:
2+
title: Augment AI Assistant
3+
baseUrl: http://localhost:3000
4+
5+
organization:
6+
name: Red Hat
7+
8+
backend:
9+
baseUrl: http://localhost:7007
10+
listen:
11+
port: 7007
12+
csp:
13+
connect-src: ["'self'", 'http:', 'https:']
14+
cors:
15+
origin: http://localhost:3000
16+
methods: [GET, HEAD, PATCH, POST, PUT, DELETE]
17+
credentials: true
18+
database:
19+
client: better-sqlite3
20+
connection: ':memory:'
21+
22+
auth:
23+
environment: development
24+
providers:
25+
guest: {}
26+
27+
catalog:
28+
import:
29+
entityFilename: catalog-info.yaml
30+
pullRequestBranchName: backstage-integration
31+
rules:
32+
- allow: [Component, System, API, Resource, Location]
33+
34+
# Augment plugin configuration
35+
augment:
36+
llamaStack:
37+
baseUrl: ${AUGMENT_LLAMA_STACK_URL:-http://localhost:8321}
38+
model: ${AUGMENT_MODEL:-meta-llama/Llama-3.3-70B-Instruct}

workspaces/augment/backstage.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{ "version": "1.45.0" }

0 commit comments

Comments
 (0)