fips-agents-cli 0.4.0__tar.gz → 0.6.0__tar.gz
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.
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/PKG-INFO +127 -5
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/README.md +126 -4
- fips_agents_cli-0.6.0/planning/agent-registry-roadmap.md +156 -0
- fips_agents_cli-0.6.0/planning/agent-template-gaps.md +321 -0
- fips_agents_cli-0.6.0/planning/composable-agent-capabilities.md +126 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/pyproject.toml +1 -1
- fips_agents_cli-0.6.0/retrospectives/2026-04-10_full-stack-integration/RETRO.md +64 -0
- fips_agents_cli-0.6.0/src/fips_agents_cli/commands/create.py +2135 -0
- fips_agents_cli-0.6.0/src/fips_agents_cli/tools/project.py +532 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/src/fips_agents_cli/version.py +1 -1
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/tests/test_create.py +118 -0
- fips_agents_cli-0.6.0/tests/test_project.py +405 -0
- fips_agents_cli-0.4.0/src/fips_agents_cli/commands/create.py +0 -792
- fips_agents_cli-0.4.0/src/fips_agents_cli/tools/project.py +0 -284
- fips_agents_cli-0.4.0/tests/test_project.py +0 -192
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/.claude/commands/create-release.md +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/.claude/docs-state.json +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/.github/agents/README.md +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/.github/agents/create-release.agent.md +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/.github/workflows/test.yml +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/.github/workflows/workflow.yaml +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/.gitignore +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/CLAUDE.md +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/LICENSE +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/RELEASE_CHECKLIST.md +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/docs/PUBLISHING.md +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/docs/QUICK_START_PUBLISHING.md +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/docs/README.md +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/llms.txt +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/planning/AGENT_FRAMEWORK_PLAN.md +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/planning/GENERATOR_IMPLEMENTATION_PLAN.md +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/planning/IMPLEMENTATION_SUMMARY.md +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/planning/MVP-PLAN.md +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/planning/PLAN.md +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/planning/PROMPT_ISSUE.md +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/research/BAML_RESEARCH_REPORT.md +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/research/Ignite-CLI-Architecture-Analysis.md +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/retrospectives/2026-04-06_issue-triage-v0.3.0/RETRO.md +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/scripts/README.md +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/scripts/release.sh +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/src/fips_agents_cli/__init__.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/src/fips_agents_cli/__main__.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/src/fips_agents_cli/cli.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/src/fips_agents_cli/commands/__init__.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/src/fips_agents_cli/commands/generate.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/src/fips_agents_cli/commands/model_car.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/src/fips_agents_cli/commands/patch.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/src/fips_agents_cli/tools/__init__.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/src/fips_agents_cli/tools/filesystem.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/src/fips_agents_cli/tools/generators.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/src/fips_agents_cli/tools/git.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/src/fips_agents_cli/tools/github.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/src/fips_agents_cli/tools/patching.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/src/fips_agents_cli/tools/validation.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/tests/__init__.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/tests/conftest.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/tests/test_filesystem.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/tests/test_generate.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/tests/test_generators.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/tests/test_github.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/tests/test_model_car.py +0 -0
- {fips_agents_cli-0.4.0 → fips_agents_cli-0.6.0}/tests/test_validation.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fips-agents-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.0
|
|
4
4
|
Summary: CLI tool for creating and managing FIPS-compliant AI agent projects
|
|
5
5
|
Project-URL: Homepage, https://github.com/rdwj/fips-agents-cli
|
|
6
6
|
Project-URL: Repository, https://github.com/rdwj/fips-agents-cli
|
|
@@ -38,7 +38,7 @@ A command-line tool for creating and managing FIPS-compliant AI agent projects.
|
|
|
38
38
|
## Features
|
|
39
39
|
|
|
40
40
|
- 🚀 Quick project scaffolding from templates
|
|
41
|
-
- 📦 MCP server, AI agent, and ModelCar project generation
|
|
41
|
+
- 📦 MCP server, AI agent, Go gateway, chat UI, sandbox, and ModelCar project generation
|
|
42
42
|
- 🔧 Automatic project customization (pyproject.toml, module names, entry points)
|
|
43
43
|
- ⚡ Component generation (tools, resources, prompts, middleware) with Jinja2 templates
|
|
44
44
|
- 🎨 Beautiful CLI output with Rich
|
|
@@ -100,6 +100,15 @@ fips-agents create mcp-server my-mcp-server
|
|
|
100
100
|
# AI agent
|
|
101
101
|
fips-agents create agent my-research-agent
|
|
102
102
|
|
|
103
|
+
# Go HTTP gateway (proxies to an agent backend)
|
|
104
|
+
fips-agents create gateway my-gateway
|
|
105
|
+
|
|
106
|
+
# Chat UI (connects to a gateway or agent)
|
|
107
|
+
fips-agents create ui my-chat-ui
|
|
108
|
+
|
|
109
|
+
# Code execution sandbox (sidecar for agents)
|
|
110
|
+
fips-agents create sandbox my-sandbox
|
|
111
|
+
|
|
103
112
|
# ModelCar (HuggingFace model as container)
|
|
104
113
|
fips-agents create model-car ibm-granite/granite-3.1-2b-instruct \
|
|
105
114
|
quay.io/user/models:granite-3.1-2b-instruct
|
|
@@ -143,9 +152,9 @@ fips-agents patch --help
|
|
|
143
152
|
|
|
144
153
|
The `create` command group scaffolds new projects from templates.
|
|
145
154
|
|
|
146
|
-
#### Shared Options (mcp-server
|
|
155
|
+
#### Shared Options (mcp-server, agent, gateway, ui)
|
|
147
156
|
|
|
148
|
-
|
|
157
|
+
All `create` subcommands (except `model-car`) accept the same options:
|
|
149
158
|
|
|
150
159
|
| Option | Description |
|
|
151
160
|
|--------|-------------|
|
|
@@ -219,6 +228,81 @@ fips-agents create agent my-agent --github --org redhat-ai-americas
|
|
|
219
228
|
fips-agents create agent my-agent --yes --local
|
|
220
229
|
```
|
|
221
230
|
|
|
231
|
+
#### `create gateway`
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
fips-agents create gateway <project-name> [OPTIONS]
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Creates a Go HTTP gateway project from the [gateway-template](https://github.com/redhat-ai-americas/gateway-template) repository. The gateway proxies OpenAI-compatible `/v1/chat/completions` requests to an agent backend, with SSE streaming support, heartbeat keepalives, health/readiness probes, and an A2A agent discovery card.
|
|
238
|
+
|
|
239
|
+
**Arguments:**
|
|
240
|
+
|
|
241
|
+
- `project-name` — Name for your gateway project
|
|
242
|
+
|
|
243
|
+
**Options:** Same shared options as above.
|
|
244
|
+
|
|
245
|
+
**Examples:**
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
# Create gateway project
|
|
249
|
+
fips-agents create gateway my-gateway
|
|
250
|
+
|
|
251
|
+
# Create with GitHub repo
|
|
252
|
+
fips-agents create gateway my-gateway --github --org my-org
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
#### `create ui`
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
fips-agents create ui <project-name> [OPTIONS]
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Creates a chat UI project from the [ui-template](https://github.com/redhat-ai-americas/ui-template) repository. A Go server with embedded HTML/CSS/JS that provides a browser-based chat interface. Includes a built-in reverse proxy to the backend API, SSE streaming, and markdown rendering.
|
|
262
|
+
|
|
263
|
+
**Arguments:**
|
|
264
|
+
|
|
265
|
+
- `project-name` — Name for your UI project
|
|
266
|
+
|
|
267
|
+
**Options:** Same shared options as above.
|
|
268
|
+
|
|
269
|
+
**Examples:**
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
# Create UI project
|
|
273
|
+
fips-agents create ui my-chat-ui
|
|
274
|
+
|
|
275
|
+
# Create with GitHub repo
|
|
276
|
+
fips-agents create ui my-chat-ui --github --private
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
#### `create sandbox`
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
fips-agents create sandbox <project-name> [OPTIONS]
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
Creates a code execution sandbox project from the [code-sandbox](https://github.com/fips-agents/code-sandbox) repository. The sandbox provides a FastAPI-based sidecar for secure code execution inside agent pods, with multiple language profiles (base, data-science).
|
|
286
|
+
|
|
287
|
+
**Arguments:**
|
|
288
|
+
|
|
289
|
+
- `project-name` -- Name for your sandbox project
|
|
290
|
+
|
|
291
|
+
**Options:** Same shared options as above.
|
|
292
|
+
|
|
293
|
+
**Examples:**
|
|
294
|
+
|
|
295
|
+
```bash
|
|
296
|
+
# Create sandbox project
|
|
297
|
+
fips-agents create sandbox my-sandbox
|
|
298
|
+
|
|
299
|
+
# Create with GitHub repo
|
|
300
|
+
fips-agents create sandbox my-sandbox --github --private
|
|
301
|
+
|
|
302
|
+
# Non-interactive mode
|
|
303
|
+
fips-agents create sandbox my-sandbox --yes --local
|
|
304
|
+
```
|
|
305
|
+
|
|
222
306
|
#### `create model-car`
|
|
223
307
|
|
|
224
308
|
```bash
|
|
@@ -551,6 +635,36 @@ pytest
|
|
|
551
635
|
# See AGENTS.md for the /plan-agent slash command workflow
|
|
552
636
|
```
|
|
553
637
|
|
|
638
|
+
### Gateway
|
|
639
|
+
|
|
640
|
+
```bash
|
|
641
|
+
cd my-gateway
|
|
642
|
+
make build # Build the Go binary
|
|
643
|
+
make run # Run locally (set BACKEND_URL to your agent)
|
|
644
|
+
make build-openshift PROJECT=my-gateway # Build on OpenShift
|
|
645
|
+
make deploy PROJECT=my-gateway # Deploy via Helm
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
### Chat UI
|
|
649
|
+
|
|
650
|
+
```bash
|
|
651
|
+
cd my-chat-ui
|
|
652
|
+
make build # Build the Go binary
|
|
653
|
+
make run # Run locally (set API_URL to your gateway/agent)
|
|
654
|
+
make build-openshift PROJECT=my-chat-ui # Build on OpenShift
|
|
655
|
+
make deploy PROJECT=my-chat-ui # Deploy via Helm
|
|
656
|
+
```
|
|
657
|
+
|
|
658
|
+
### Sandbox
|
|
659
|
+
|
|
660
|
+
```bash
|
|
661
|
+
cd my-sandbox
|
|
662
|
+
make install # Install dependencies
|
|
663
|
+
make test # Run tests
|
|
664
|
+
make build # Build container
|
|
665
|
+
make build PROFILE=data-science # Build with profile
|
|
666
|
+
```
|
|
667
|
+
|
|
554
668
|
### ModelCar
|
|
555
669
|
|
|
556
670
|
```bash
|
|
@@ -625,7 +739,7 @@ fips-agents-cli/
|
|
|
625
739
|
│ ├── cli.py # Main CLI application
|
|
626
740
|
│ ├── version.py # Version information
|
|
627
741
|
│ ├── commands/ # CLI command implementations
|
|
628
|
-
│ │ ├── create.py # create mcp-server,
|
|
742
|
+
│ │ ├── create.py # create mcp-server, agent, gateway, ui
|
|
629
743
|
│ │ ├── generate.py # generate tool/resource/prompt/middleware
|
|
630
744
|
│ │ ├── model_car.py # create model-car
|
|
631
745
|
│ │ └── patch.py # patch command
|
|
@@ -747,6 +861,14 @@ MIT License - see LICENSE file for details
|
|
|
747
861
|
|
|
748
862
|
## Changelog
|
|
749
863
|
|
|
864
|
+
### Version 0.5.0
|
|
865
|
+
|
|
866
|
+
- Feature: Added `create gateway` command for scaffolding Go HTTP gateway projects from the gateway-template
|
|
867
|
+
- Feature: Added `create ui` command for scaffolding chat UI projects from the ui-template
|
|
868
|
+
- Feature: Go project customization pipeline (`customize_go_project`) handles go.mod, Helm charts, Containerfile, Makefile, and static HTML
|
|
869
|
+
- Fix: Agent scaffolding now replaces `agent-template` in all Helm chart templates, preventing resource name collisions
|
|
870
|
+
- Fix: Agent scaffolding now replaces `OWNER/REPO` placeholder in Containerfile with actual GitHub repo
|
|
871
|
+
|
|
750
872
|
### Version 0.4.0
|
|
751
873
|
|
|
752
874
|
- Feature: Added `create agent` command for scaffolding AI agent projects from the agent-loop template
|
|
@@ -5,7 +5,7 @@ A command-line tool for creating and managing FIPS-compliant AI agent projects.
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
7
|
- 🚀 Quick project scaffolding from templates
|
|
8
|
-
- 📦 MCP server, AI agent, and ModelCar project generation
|
|
8
|
+
- 📦 MCP server, AI agent, Go gateway, chat UI, sandbox, and ModelCar project generation
|
|
9
9
|
- 🔧 Automatic project customization (pyproject.toml, module names, entry points)
|
|
10
10
|
- ⚡ Component generation (tools, resources, prompts, middleware) with Jinja2 templates
|
|
11
11
|
- 🎨 Beautiful CLI output with Rich
|
|
@@ -67,6 +67,15 @@ fips-agents create mcp-server my-mcp-server
|
|
|
67
67
|
# AI agent
|
|
68
68
|
fips-agents create agent my-research-agent
|
|
69
69
|
|
|
70
|
+
# Go HTTP gateway (proxies to an agent backend)
|
|
71
|
+
fips-agents create gateway my-gateway
|
|
72
|
+
|
|
73
|
+
# Chat UI (connects to a gateway or agent)
|
|
74
|
+
fips-agents create ui my-chat-ui
|
|
75
|
+
|
|
76
|
+
# Code execution sandbox (sidecar for agents)
|
|
77
|
+
fips-agents create sandbox my-sandbox
|
|
78
|
+
|
|
70
79
|
# ModelCar (HuggingFace model as container)
|
|
71
80
|
fips-agents create model-car ibm-granite/granite-3.1-2b-instruct \
|
|
72
81
|
quay.io/user/models:granite-3.1-2b-instruct
|
|
@@ -110,9 +119,9 @@ fips-agents patch --help
|
|
|
110
119
|
|
|
111
120
|
The `create` command group scaffolds new projects from templates.
|
|
112
121
|
|
|
113
|
-
#### Shared Options (mcp-server
|
|
122
|
+
#### Shared Options (mcp-server, agent, gateway, ui)
|
|
114
123
|
|
|
115
|
-
|
|
124
|
+
All `create` subcommands (except `model-car`) accept the same options:
|
|
116
125
|
|
|
117
126
|
| Option | Description |
|
|
118
127
|
|--------|-------------|
|
|
@@ -186,6 +195,81 @@ fips-agents create agent my-agent --github --org redhat-ai-americas
|
|
|
186
195
|
fips-agents create agent my-agent --yes --local
|
|
187
196
|
```
|
|
188
197
|
|
|
198
|
+
#### `create gateway`
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
fips-agents create gateway <project-name> [OPTIONS]
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Creates a Go HTTP gateway project from the [gateway-template](https://github.com/redhat-ai-americas/gateway-template) repository. The gateway proxies OpenAI-compatible `/v1/chat/completions` requests to an agent backend, with SSE streaming support, heartbeat keepalives, health/readiness probes, and an A2A agent discovery card.
|
|
205
|
+
|
|
206
|
+
**Arguments:**
|
|
207
|
+
|
|
208
|
+
- `project-name` — Name for your gateway project
|
|
209
|
+
|
|
210
|
+
**Options:** Same shared options as above.
|
|
211
|
+
|
|
212
|
+
**Examples:**
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
# Create gateway project
|
|
216
|
+
fips-agents create gateway my-gateway
|
|
217
|
+
|
|
218
|
+
# Create with GitHub repo
|
|
219
|
+
fips-agents create gateway my-gateway --github --org my-org
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
#### `create ui`
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
fips-agents create ui <project-name> [OPTIONS]
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Creates a chat UI project from the [ui-template](https://github.com/redhat-ai-americas/ui-template) repository. A Go server with embedded HTML/CSS/JS that provides a browser-based chat interface. Includes a built-in reverse proxy to the backend API, SSE streaming, and markdown rendering.
|
|
229
|
+
|
|
230
|
+
**Arguments:**
|
|
231
|
+
|
|
232
|
+
- `project-name` — Name for your UI project
|
|
233
|
+
|
|
234
|
+
**Options:** Same shared options as above.
|
|
235
|
+
|
|
236
|
+
**Examples:**
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
# Create UI project
|
|
240
|
+
fips-agents create ui my-chat-ui
|
|
241
|
+
|
|
242
|
+
# Create with GitHub repo
|
|
243
|
+
fips-agents create ui my-chat-ui --github --private
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
#### `create sandbox`
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
fips-agents create sandbox <project-name> [OPTIONS]
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Creates a code execution sandbox project from the [code-sandbox](https://github.com/fips-agents/code-sandbox) repository. The sandbox provides a FastAPI-based sidecar for secure code execution inside agent pods, with multiple language profiles (base, data-science).
|
|
253
|
+
|
|
254
|
+
**Arguments:**
|
|
255
|
+
|
|
256
|
+
- `project-name` -- Name for your sandbox project
|
|
257
|
+
|
|
258
|
+
**Options:** Same shared options as above.
|
|
259
|
+
|
|
260
|
+
**Examples:**
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
# Create sandbox project
|
|
264
|
+
fips-agents create sandbox my-sandbox
|
|
265
|
+
|
|
266
|
+
# Create with GitHub repo
|
|
267
|
+
fips-agents create sandbox my-sandbox --github --private
|
|
268
|
+
|
|
269
|
+
# Non-interactive mode
|
|
270
|
+
fips-agents create sandbox my-sandbox --yes --local
|
|
271
|
+
```
|
|
272
|
+
|
|
189
273
|
#### `create model-car`
|
|
190
274
|
|
|
191
275
|
```bash
|
|
@@ -518,6 +602,36 @@ pytest
|
|
|
518
602
|
# See AGENTS.md for the /plan-agent slash command workflow
|
|
519
603
|
```
|
|
520
604
|
|
|
605
|
+
### Gateway
|
|
606
|
+
|
|
607
|
+
```bash
|
|
608
|
+
cd my-gateway
|
|
609
|
+
make build # Build the Go binary
|
|
610
|
+
make run # Run locally (set BACKEND_URL to your agent)
|
|
611
|
+
make build-openshift PROJECT=my-gateway # Build on OpenShift
|
|
612
|
+
make deploy PROJECT=my-gateway # Deploy via Helm
|
|
613
|
+
```
|
|
614
|
+
|
|
615
|
+
### Chat UI
|
|
616
|
+
|
|
617
|
+
```bash
|
|
618
|
+
cd my-chat-ui
|
|
619
|
+
make build # Build the Go binary
|
|
620
|
+
make run # Run locally (set API_URL to your gateway/agent)
|
|
621
|
+
make build-openshift PROJECT=my-chat-ui # Build on OpenShift
|
|
622
|
+
make deploy PROJECT=my-chat-ui # Deploy via Helm
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
### Sandbox
|
|
626
|
+
|
|
627
|
+
```bash
|
|
628
|
+
cd my-sandbox
|
|
629
|
+
make install # Install dependencies
|
|
630
|
+
make test # Run tests
|
|
631
|
+
make build # Build container
|
|
632
|
+
make build PROFILE=data-science # Build with profile
|
|
633
|
+
```
|
|
634
|
+
|
|
521
635
|
### ModelCar
|
|
522
636
|
|
|
523
637
|
```bash
|
|
@@ -592,7 +706,7 @@ fips-agents-cli/
|
|
|
592
706
|
│ ├── cli.py # Main CLI application
|
|
593
707
|
│ ├── version.py # Version information
|
|
594
708
|
│ ├── commands/ # CLI command implementations
|
|
595
|
-
│ │ ├── create.py # create mcp-server,
|
|
709
|
+
│ │ ├── create.py # create mcp-server, agent, gateway, ui
|
|
596
710
|
│ │ ├── generate.py # generate tool/resource/prompt/middleware
|
|
597
711
|
│ │ ├── model_car.py # create model-car
|
|
598
712
|
│ │ └── patch.py # patch command
|
|
@@ -714,6 +828,14 @@ MIT License - see LICENSE file for details
|
|
|
714
828
|
|
|
715
829
|
## Changelog
|
|
716
830
|
|
|
831
|
+
### Version 0.5.0
|
|
832
|
+
|
|
833
|
+
- Feature: Added `create gateway` command for scaffolding Go HTTP gateway projects from the gateway-template
|
|
834
|
+
- Feature: Added `create ui` command for scaffolding chat UI projects from the ui-template
|
|
835
|
+
- Feature: Go project customization pipeline (`customize_go_project`) handles go.mod, Helm charts, Containerfile, Makefile, and static HTML
|
|
836
|
+
- Fix: Agent scaffolding now replaces `agent-template` in all Helm chart templates, preventing resource name collisions
|
|
837
|
+
- Fix: Agent scaffolding now replaces `OWNER/REPO` placeholder in Containerfile with actual GitHub repo
|
|
838
|
+
|
|
717
839
|
### Version 0.4.0
|
|
718
840
|
|
|
719
841
|
- Feature: Added `create agent` command for scaffolding AI agent projects from the agent-loop template
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# Agent Registry — Research and Roadmap
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-04-10
|
|
4
|
+
**Status:** Research complete, not yet planned for implementation
|
|
5
|
+
|
|
6
|
+
## Concept
|
|
7
|
+
|
|
8
|
+
`fips-agents create registry my-registry` deploys a self-hosted registry to OpenShift with a UI for browsing and managing registered agents, MCP servers, tools, and prompts. Teams register their deployed services with `fips-agents register`, making them discoverable across the organization.
|
|
9
|
+
|
|
10
|
+
## Industry Landscape (April 2026)
|
|
11
|
+
|
|
12
|
+
### What exists
|
|
13
|
+
|
|
14
|
+
**Agent discovery standards:**
|
|
15
|
+
- **A2A Agent Cards** — JSON metadata at `/.well-known/agent.json` describing an agent's capabilities, endpoints, and auth. Linux Foundation stewardship. No registry standard yet (active discussion in a2aproject/A2A#741).
|
|
16
|
+
- **MCP Server Cards** — `.well-known` metadata for MCP servers, on the 2026 MCP roadmap. The official MCP Registry (registry.modelcontextprotocol.io) has ~2,000 entries but is public/community-oriented, not enterprise.
|
|
17
|
+
- **Agent Connect Protocol (ACP)** — Cisco-led (AGNTCY/Linux Foundation), defines REST/OpenAPI for invoking and configuring agents. Complements A2A.
|
|
18
|
+
|
|
19
|
+
**Cloud provider registries:**
|
|
20
|
+
- **AWS Agent Registry** (preview April 2026) — private governed catalog for agents, tools, skills, MCP servers. Semantic search, approval workflows, IAM + OAuth, CloudTrail audit. Auto-discovers from live A2A/MCP endpoints.
|
|
21
|
+
- **Microsoft Entra Agent Registry** — agent identity and governance in the Microsoft ecosystem.
|
|
22
|
+
- **Google Vertex AI Agent Builder** — tool governance layer with admin-curated catalogs.
|
|
23
|
+
|
|
24
|
+
**Open source:**
|
|
25
|
+
- **mcp-gateway-registry** (agentic-community) — OAuth (Keycloak/Entra), per-tool RBAC, audit trails, reverse proxy to MCP servers. Closest to what we'd want.
|
|
26
|
+
- **kagent** — Kubernetes-native agentic AI, CRD-based. Early stage.
|
|
27
|
+
|
|
28
|
+
**Prompt registries:**
|
|
29
|
+
- MLflow Prompt Registry, Langfuse, PromptLayer, LangSmith — versioning, environment aliases, A/B testing. Standalone products, not integrated with agent/tool registries.
|
|
30
|
+
|
|
31
|
+
**Red Hat direction:**
|
|
32
|
+
- MCP registry, catalog, and gateway stack planned for OpenShift AI
|
|
33
|
+
- MCP servers as items in the AI Assets catalog
|
|
34
|
+
- Longer-term "MCP-as-a-Service" vision
|
|
35
|
+
|
|
36
|
+
### What's missing
|
|
37
|
+
|
|
38
|
+
No single open-source system unifies agents, MCP servers, tools, and prompts in one governed catalog with Kubernetes-native lifecycle. The pieces exist in isolation:
|
|
39
|
+
- AWS has the richest registry but is cloud-locked
|
|
40
|
+
- MCP has a public registry but no enterprise governance
|
|
41
|
+
- Prompt registries are standalone products
|
|
42
|
+
- RBAC is protocol-specific (no cross-protocol standard)
|
|
43
|
+
- A2A deliberately punts on the registry problem
|
|
44
|
+
|
|
45
|
+
### RBAC for agents
|
|
46
|
+
|
|
47
|
+
Traditional RBAC is insufficient — agents chain multi-step plans autonomously. Emerging model is **dynamic RBAC**: bind an agent's declared purpose + operational context + verified identity to minimal, temporary permissions. Per-tool RBAC (mcp-gateway-registry), relationship-based access (Oso ReBAC), and IAM-based governance (AWS) are the main approaches.
|
|
48
|
+
|
|
49
|
+
## What We'd Build
|
|
50
|
+
|
|
51
|
+
### Phase 1: Discovery registry (near-term, after composable capabilities)
|
|
52
|
+
|
|
53
|
+
A lightweight catalog service that stores and serves metadata:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
fips-agents create registry my-registry # Deploy to OpenShift
|
|
57
|
+
fips-agents register # Register current project
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**What it stores:**
|
|
61
|
+
- Agent Cards (A2A-compatible JSON) — name, description, capabilities, endpoint, version
|
|
62
|
+
- MCP Server Cards — name, tools list, endpoint, transport
|
|
63
|
+
- Tool manifests — name, description, parameters, which agent/MCP server provides them
|
|
64
|
+
- Prompt entries — name, description, version, variables, template preview
|
|
65
|
+
|
|
66
|
+
**How registration works:**
|
|
67
|
+
- `fips-agents register` reads the current project type and metadata:
|
|
68
|
+
- Agent: reads `/.well-known/agent.json` from the running service (or generates from agent.yaml)
|
|
69
|
+
- MCP server: reads tool list from the running server (or from project structure)
|
|
70
|
+
- Prompts: reads from `prompts/` directory
|
|
71
|
+
- Pushes the metadata to the registry's API
|
|
72
|
+
- Registry stores it and makes it browsable
|
|
73
|
+
|
|
74
|
+
**UI:**
|
|
75
|
+
- Browse agents, MCP servers, tools, prompts in a web dashboard
|
|
76
|
+
- Search by name, capability, description
|
|
77
|
+
- View agent cards, tool schemas, prompt templates
|
|
78
|
+
- Show deployment status (healthy/unhealthy via health probes)
|
|
79
|
+
- Links to OpenShift console for the underlying deployments
|
|
80
|
+
|
|
81
|
+
**Tech stack:**
|
|
82
|
+
- Go server (consistent with gateway/UI templates) or Python FastAPI
|
|
83
|
+
- PostgreSQL for metadata storage
|
|
84
|
+
- OpenShift Route for the UI
|
|
85
|
+
- Helm chart for deployment
|
|
86
|
+
- Periodic health checks against registered endpoints
|
|
87
|
+
|
|
88
|
+
### Phase 2: Governance (later)
|
|
89
|
+
|
|
90
|
+
Add approval workflows, RBAC, and audit:
|
|
91
|
+
- Admin approval required before an agent/tool is visible to others
|
|
92
|
+
- Role-based access: who can register, who can discover, who can invoke
|
|
93
|
+
- Audit trail: who registered what, when, who accessed it
|
|
94
|
+
- Integration with OpenShift RBAC (ServiceAccounts, Roles)
|
|
95
|
+
- Keycloak/OIDC for auth (follow mcp-gateway-registry pattern)
|
|
96
|
+
|
|
97
|
+
### Phase 3: Enterprise tool/prompt catalog (distant)
|
|
98
|
+
|
|
99
|
+
- Curated enterprise tools that any agent can use (governed, versioned)
|
|
100
|
+
- Enterprise prompt library with approval workflows
|
|
101
|
+
- Agent RBAC: which agents can use which tools (policy-based)
|
|
102
|
+
- Integration with Red Hat's AI Hub / OpenShift AI catalog
|
|
103
|
+
|
|
104
|
+
## CLI Integration
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
# Deploy a registry
|
|
108
|
+
fips-agents create registry my-registry
|
|
109
|
+
cd my-registry && make deploy PROJECT=my-registry
|
|
110
|
+
|
|
111
|
+
# Register the thing you're working on
|
|
112
|
+
cd ../my-agent
|
|
113
|
+
fips-agents register # auto-detect project type, register with default registry
|
|
114
|
+
fips-agents register --registry my-registry # explicit registry
|
|
115
|
+
fips-agents register --type agent # force type
|
|
116
|
+
fips-agents register --type mcp-server
|
|
117
|
+
|
|
118
|
+
# Browse
|
|
119
|
+
fips-agents registry list # list all registered items
|
|
120
|
+
fips-agents registry list --type agent # filter by type
|
|
121
|
+
fips-agents registry search "web search" # semantic search
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
The `register` command could also be a post-deploy hook in the Makefile:
|
|
125
|
+
```makefile
|
|
126
|
+
deploy: ## Deploy to OpenShift and register
|
|
127
|
+
helm upgrade --install ...
|
|
128
|
+
fips-agents register --registry $(REGISTRY_URL)
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Open Questions
|
|
132
|
+
|
|
133
|
+
1. **Storage**: PostgreSQL vs CRDs? CRDs are more Kubernetes-native but harder to query. PostgreSQL is simpler for search and UI.
|
|
134
|
+
2. **Health monitoring**: Should the registry actively poll registered endpoints, or rely on passive registration updates?
|
|
135
|
+
3. **Scope**: Should the registry be namespace-scoped, cluster-scoped, or multi-cluster?
|
|
136
|
+
4. **Red Hat alignment**: How does this relate to Red Hat's planned MCP catalog in OpenShift AI? Complement or conflict?
|
|
137
|
+
5. **Standards**: Should agent cards be A2A-native, or a superset that includes MCP/tool/prompt metadata?
|
|
138
|
+
6. **Auth for registration**: How does `fips-agents register` authenticate with the registry? OpenShift token? API key?
|
|
139
|
+
|
|
140
|
+
## Relationship to Other Roadmap Items
|
|
141
|
+
|
|
142
|
+
- **HTTP mode** (Phase 1 of composable capabilities) must ship first — agents need `/.well-known/agent.json` to be registerable
|
|
143
|
+
- **A2A agent cards** are already in the gateway template — the registry reads these
|
|
144
|
+
- **MCP server template** already produces discoverable tools — the registry catalogs them
|
|
145
|
+
- **Multi-agent orchestration** benefits most from a registry — orchestrator agents can discover specialized agents dynamically
|
|
146
|
+
|
|
147
|
+
## References
|
|
148
|
+
|
|
149
|
+
- A2A Protocol: https://a2a-protocol.org/latest/specification/
|
|
150
|
+
- A2A Registry Discussion: https://github.com/a2aproject/A2A/discussions/741
|
|
151
|
+
- MCP Registry: https://registry.modelcontextprotocol.io/
|
|
152
|
+
- MCP 2026 Roadmap: https://blog.modelcontextprotocol.io/posts/2026-mcp-roadmap/
|
|
153
|
+
- mcp-gateway-registry: https://github.com/agentic-community/mcp-gateway-registry
|
|
154
|
+
- AWS Agent Registry: https://aws.amazon.com/blogs/machine-learning/the-future-of-managing-agents-at-scale-aws-agent-registry-now-in-preview/
|
|
155
|
+
- AGNTCY ACP Spec: https://github.com/agntcy/acp-spec
|
|
156
|
+
- kagent: https://kagent.dev/
|