fips-agents-cli 0.6.2__tar.gz → 0.8.2__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.8.2/.github/CODEOWNERS +2 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/.gitignore +4 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/CLAUDE.md +16 -5
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/PKG-INFO +140 -7
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/README.md +139 -6
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/pyproject.toml +1 -1
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/scripts/release.sh +27 -6
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/src/fips_agents_cli/cli.py +4 -0
- fips_agents_cli-0.8.2/src/fips_agents_cli/commands/add.py +211 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/src/fips_agents_cli/commands/create.py +25 -1
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/src/fips_agents_cli/commands/generate.py +1 -1
- fips_agents_cli-0.8.2/src/fips_agents_cli/commands/vendor.py +154 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/src/fips_agents_cli/tools/git.py +10 -1
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/src/fips_agents_cli/tools/project.py +130 -1
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/src/fips_agents_cli/version.py +1 -1
- fips_agents_cli-0.8.2/tests/fixtures/middleware_template/component.py.j2 +39 -0
- fips_agents_cli-0.8.2/tests/fixtures/middleware_template/test.py.j2 +40 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/tests/test_create.py +4 -4
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/tests/test_generate.py +117 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/.claude/commands/create-release.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/.claude/docs-state.json +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/.github/agents/README.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/.github/agents/create-release.agent.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/.github/workflows/test.yml +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/.github/workflows/workflow.yaml +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/LICENSE +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/RELEASE_CHECKLIST.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/docs/PUBLISHING.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/docs/QUICK_START_PUBLISHING.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/docs/README.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/llms.txt +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/planning/AGENT_FRAMEWORK_PLAN.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/planning/GENERATOR_IMPLEMENTATION_PLAN.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/planning/IMPLEMENTATION_SUMMARY.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/planning/MVP-PLAN.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/planning/PLAN.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/planning/PROMPT_ISSUE.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/planning/agent-registry-roadmap.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/planning/agent-template-gaps.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/planning/composable-agent-capabilities.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/research/BAML_RESEARCH_REPORT.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/research/Ignite-CLI-Architecture-Analysis.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/retrospectives/2026-04-06_issue-triage-v0.3.0/RETRO.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/retrospectives/2026-04-10_full-stack-integration/RETRO.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/scripts/README.md +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/src/fips_agents_cli/__init__.py +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/src/fips_agents_cli/__main__.py +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/src/fips_agents_cli/commands/__init__.py +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/src/fips_agents_cli/commands/model_car.py +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/src/fips_agents_cli/commands/patch.py +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/src/fips_agents_cli/tools/__init__.py +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/src/fips_agents_cli/tools/filesystem.py +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/src/fips_agents_cli/tools/generators.py +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/src/fips_agents_cli/tools/github.py +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/src/fips_agents_cli/tools/patching.py +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/src/fips_agents_cli/tools/validation.py +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/tests/__init__.py +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/tests/conftest.py +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/tests/test_filesystem.py +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/tests/test_generators.py +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/tests/test_github.py +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/tests/test_model_car.py +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/tests/test_project.py +0 -0
- {fips_agents_cli-0.6.2 → fips_agents_cli-0.8.2}/tests/test_validation.py +0 -0
|
@@ -25,6 +25,7 @@ MANIFEST
|
|
|
25
25
|
|
|
26
26
|
# Virtual environments
|
|
27
27
|
venv/
|
|
28
|
+
.venv/
|
|
28
29
|
env/
|
|
29
30
|
ENV/
|
|
30
31
|
env.bak/
|
|
@@ -88,3 +89,6 @@ tokens.txt
|
|
|
88
89
|
|
|
89
90
|
# Project specific
|
|
90
91
|
setup_structure.sh
|
|
92
|
+
|
|
93
|
+
# Session handoff notes (local-only — content lives in MEMORY.md)
|
|
94
|
+
NEXT_SESSION.md
|
|
@@ -6,7 +6,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|
|
6
6
|
|
|
7
7
|
**fips-agents-cli** is a Python-based CLI tool for scaffolding FIPS-compliant AI agent projects. It scaffolds MCP (Model Context Protocol) servers and AI agent projects from production-ready templates, customizes them for new projects, and prepares them for immediate development use.
|
|
8
8
|
|
|
9
|
-
**Current Status:** `create mcp-server`
|
|
9
|
+
**Current Status:** Scaffolding commands implemented: `create mcp-server`, `create agent`, `create gateway`, `create ui`, `create sandbox`, `create model-car`. Post-scaffolding commands: `generate` (tool, resource, prompt, middleware), `patch` (check, generators, core, docs, build, all), `add` (code-executor), `vendor`. Note: `create workflow` exists in code but is not yet working.
|
|
10
10
|
|
|
11
11
|
## Development Commands
|
|
12
12
|
|
|
@@ -91,18 +91,25 @@ This command will:
|
|
|
91
91
|
|
|
92
92
|
```bash
|
|
93
93
|
# 1. Update version in both files manually or use the script:
|
|
94
|
-
./scripts/release.sh <version>
|
|
94
|
+
./scripts/release.sh <version> [<summary>]
|
|
95
95
|
|
|
96
|
-
#
|
|
96
|
+
# Examples:
|
|
97
|
+
./scripts/release.sh 0.1.2
|
|
97
98
|
./scripts/release.sh 0.1.2 "Add new generator features"
|
|
98
99
|
|
|
99
100
|
# The script handles:
|
|
100
101
|
# - Updating version.py and pyproject.toml
|
|
102
|
+
# - Constructing the release commit message from the project convention
|
|
101
103
|
# - Committing changes (including README.md changelog)
|
|
102
104
|
# - Creating and pushing tag
|
|
103
105
|
# - Triggering GitHub Actions
|
|
104
106
|
```
|
|
105
107
|
|
|
108
|
+
**Release commit message convention**: `chore: Release fips-agents-cli vX.Y.Z`,
|
|
109
|
+
optionally followed by ` — <summary>`. The script always constructs the message
|
|
110
|
+
from the version argument; callers only supply the summary, never the full
|
|
111
|
+
message. This keeps `git log --grep "Release fips-agents-cli"` reliable.
|
|
112
|
+
|
|
106
113
|
**Note**: Always update the changelog in README.md before running the script.
|
|
107
114
|
|
|
108
115
|
See `RELEASE_CHECKLIST.md` for detailed release procedures and troubleshooting.
|
|
@@ -141,7 +148,7 @@ Two cloning strategies exist:
|
|
|
141
148
|
1. Clone monorepo, extract `templates/agent-loop/` subdirectory
|
|
142
149
|
2. Update `pyproject.toml` name field via tomlkit
|
|
143
150
|
3. String-replace `agent-template` → new name in Chart.yaml, values.yaml, AGENTS.md, Containerfile, Makefile
|
|
144
|
-
4. Source directories are NOT renamed — `
|
|
151
|
+
4. Source directories are NOT renamed — the agent-loop template ships with `src/agent.py` directly, not a project-named module
|
|
145
152
|
5. Initialize fresh git repository with initial commit
|
|
146
153
|
|
|
147
154
|
**Rich Console Output**: All user-facing output uses Rich library for:
|
|
@@ -272,7 +279,7 @@ def test_something(temp_dir):
|
|
|
272
279
|
|
|
273
280
|
**Agent Template** (`fips-agents/agent-template` — monorepo, `templates/agent-loop/`):
|
|
274
281
|
- `pyproject.toml` with project name (no entry point scripts)
|
|
275
|
-
- `src/
|
|
282
|
+
- `src/agent.py` user agent subclass (lives at this path directly — no project-named module wrapper)
|
|
276
283
|
- `chart/` Helm chart for OpenShift deployment
|
|
277
284
|
- `agent.yaml` configuration (customized via `/plan-agent`, not during scaffolding)
|
|
278
285
|
- `.claude/commands/` with agent development slash commands
|
|
@@ -325,6 +332,10 @@ Common causes:
|
|
|
325
332
|
2. Dependencies not installed: `pip install -e .[dev]`
|
|
326
333
|
3. Git not configured globally: `git config --global user.email "test@example.com"`
|
|
327
334
|
|
|
335
|
+
## Release Process Notes
|
|
336
|
+
|
|
337
|
+
When creating a new release, always update the changelog in README.md *before* running the release script. The changelog lives in the README under the `## Changelog` heading. Each version should have its own section with the version number and date, listing new features, fixes, and breaking changes. Forgetting the changelog entry leads to patch releases (like v0.8.1) that exist solely to backfill documentation — avoid that by treating the changelog update as a required step in every release.
|
|
338
|
+
|
|
328
339
|
## Repository-Specific Notes
|
|
329
340
|
|
|
330
341
|
- The main branch is `main` (not `master`)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fips-agents-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.8.2
|
|
4
4
|
Summary: CLI tool for creating and managing FIPS-compliant AI agent projects
|
|
5
5
|
Project-URL: Homepage, https://github.com/fips-agents/fips-agents-cli
|
|
6
6
|
Project-URL: Repository, https://github.com/fips-agents/fips-agents-cli
|
|
@@ -141,9 +141,11 @@ fips-agents patch all --dry-run
|
|
|
141
141
|
```bash
|
|
142
142
|
fips-agents --version
|
|
143
143
|
fips-agents --help
|
|
144
|
+
fips-agents add --help
|
|
144
145
|
fips-agents create --help
|
|
145
146
|
fips-agents generate --help
|
|
146
147
|
fips-agents patch --help
|
|
148
|
+
fips-agents vendor --help
|
|
147
149
|
```
|
|
148
150
|
|
|
149
151
|
---
|
|
@@ -215,6 +217,12 @@ Creates an AI agent project from the [agent-template](https://github.com/fips-ag
|
|
|
215
217
|
|
|
216
218
|
**Options:** Same as `create mcp-server` (see shared options table above).
|
|
217
219
|
|
|
220
|
+
**Additional option:**
|
|
221
|
+
|
|
222
|
+
| Option | Description |
|
|
223
|
+
|--------|-------------|
|
|
224
|
+
| `--vendored` | Copy fipsagents source into the project instead of using PyPI dependency |
|
|
225
|
+
|
|
218
226
|
**Examples:**
|
|
219
227
|
|
|
220
228
|
```bash
|
|
@@ -226,6 +234,9 @@ fips-agents create agent my-agent --github --org fips-agents
|
|
|
226
234
|
|
|
227
235
|
# Non-interactive mode
|
|
228
236
|
fips-agents create agent my-agent --yes --local
|
|
237
|
+
|
|
238
|
+
# Create with vendored fipsagents source
|
|
239
|
+
fips-agents create agent my-agent --vendored --local
|
|
229
240
|
```
|
|
230
241
|
|
|
231
242
|
#### `create gateway`
|
|
@@ -338,7 +349,7 @@ fips-agents create model-car https://huggingface.co/ibm-granite/granite-3.1-2b-i
|
|
|
338
349
|
|
|
339
350
|
### Generate Commands
|
|
340
351
|
|
|
341
|
-
The `generate` command group
|
|
352
|
+
The `generate` command group creates individual components (tools, resources, prompts, middleware) in existing projects.
|
|
342
353
|
|
|
343
354
|
**Run these commands from within your MCP server project directory.** The CLI locates the project root by looking for `pyproject.toml` with a `fastmcp` dependency.
|
|
344
355
|
|
|
@@ -600,6 +611,79 @@ Update all patchable file categories at once. Prompts for confirmation before st
|
|
|
600
611
|
|
|
601
612
|
All patch subcommands (except `check`) accept `--dry-run` to preview changes without modifying files.
|
|
602
613
|
|
|
614
|
+
---
|
|
615
|
+
|
|
616
|
+
### Add Commands
|
|
617
|
+
|
|
618
|
+
The `add` command group wires optional capabilities into existing agent projects created with `fips-agents create agent`.
|
|
619
|
+
|
|
620
|
+
**Run these commands from within your agent project directory.** The CLI locates the project root by looking for `agent.yaml`.
|
|
621
|
+
|
|
622
|
+
#### `add code-executor`
|
|
623
|
+
|
|
624
|
+
```bash
|
|
625
|
+
fips-agents add code-executor
|
|
626
|
+
```
|
|
627
|
+
|
|
628
|
+
Adds the `code_executor` tool to your agent's `tools/` directory and enables the sandbox sidecar in `chart/values.yaml`. The tool sends Python code to a sandbox container for isolated execution.
|
|
629
|
+
|
|
630
|
+
**What it does:**
|
|
631
|
+
|
|
632
|
+
1. Writes `tools/code_executor.py` with the sandbox client tool
|
|
633
|
+
2. Sets `sandbox.enabled: true` in `chart/values.yaml` (if the section exists)
|
|
634
|
+
3. Prints deployment guidance for sidecar and remote service modes
|
|
635
|
+
|
|
636
|
+
**Deployment modes:**
|
|
637
|
+
|
|
638
|
+
- **Sidecar** (default): The sandbox runs as a container in the same pod. The tool connects to `http://localhost:8000`.
|
|
639
|
+
- **Remote service**: The sandbox runs as a separate deployment. Set `SANDBOX_URL` to point to it.
|
|
640
|
+
|
|
641
|
+
**Example:**
|
|
642
|
+
|
|
643
|
+
```bash
|
|
644
|
+
cd my-research-agent
|
|
645
|
+
fips-agents add code-executor
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
---
|
|
649
|
+
|
|
650
|
+
### Vendor Commands
|
|
651
|
+
|
|
652
|
+
The `vendor` command copies the fipsagents source into your agent project, replacing the PyPI dependency. This gives you full control over the fipsagents code.
|
|
653
|
+
|
|
654
|
+
#### `vendor`
|
|
655
|
+
|
|
656
|
+
```bash
|
|
657
|
+
fips-agents vendor [OPTIONS]
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
Copies fipsagents source into `src/fipsagents/` and rewrites `pyproject.toml` to use individual dependencies instead of the fipsagents package.
|
|
661
|
+
|
|
662
|
+
**Options:**
|
|
663
|
+
|
|
664
|
+
| Option | Description |
|
|
665
|
+
|--------|-------------|
|
|
666
|
+
| `--update` | Update an already-vendored project with the latest upstream source |
|
|
667
|
+
| `--version TEXT` | Vendor a specific version tag (e.g., `fipsagents-v0.7.0`). Default: latest main |
|
|
668
|
+
|
|
669
|
+
**Examples:**
|
|
670
|
+
|
|
671
|
+
```bash
|
|
672
|
+
# Vendor into current project
|
|
673
|
+
fips-agents vendor
|
|
674
|
+
|
|
675
|
+
# Vendor a specific version
|
|
676
|
+
fips-agents vendor --version fipsagents-v0.7.0
|
|
677
|
+
|
|
678
|
+
# Update vendored source from upstream
|
|
679
|
+
fips-agents vendor --update
|
|
680
|
+
```
|
|
681
|
+
|
|
682
|
+
**When to use vendored vs. PyPI:**
|
|
683
|
+
|
|
684
|
+
- **PyPI dependency** (default): Best for teams running multiple agents that share the same fipsagents version. Centralized updates.
|
|
685
|
+
- **Vendored source**: Best for agents that need custom BaseAgent modifications, environments with no PyPI access, or when you want to read and debug the fipsagents source locally.
|
|
686
|
+
|
|
603
687
|
## Project Name Requirements
|
|
604
688
|
|
|
605
689
|
Project names must follow these rules:
|
|
@@ -628,10 +712,9 @@ pytest
|
|
|
628
712
|
|
|
629
713
|
```bash
|
|
630
714
|
cd my-research-agent
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
pytest
|
|
715
|
+
make install # Create venv, install dependencies
|
|
716
|
+
make run-local # Start HTTP server on port 8080
|
|
717
|
+
make test # Run tests
|
|
635
718
|
# See AGENTS.md for the /plan-agent slash command workflow
|
|
636
719
|
```
|
|
637
720
|
|
|
@@ -739,10 +822,12 @@ fips-agents-cli/
|
|
|
739
822
|
│ ├── cli.py # Main CLI application
|
|
740
823
|
│ ├── version.py # Version information
|
|
741
824
|
│ ├── commands/ # CLI command implementations
|
|
825
|
+
│ │ ├── add.py # add code-executor (wire capabilities)
|
|
742
826
|
│ │ ├── create.py # create mcp-server, agent, gateway, ui
|
|
743
827
|
│ │ ├── generate.py # generate tool/resource/prompt/middleware
|
|
744
828
|
│ │ ├── model_car.py # create model-car
|
|
745
|
-
│ │
|
|
829
|
+
│ │ ├── patch.py # patch command
|
|
830
|
+
│ │ └── vendor.py # vendor fipsagents source
|
|
746
831
|
│ └── tools/ # Utility modules
|
|
747
832
|
│ ├── filesystem.py
|
|
748
833
|
│ ├── git.py
|
|
@@ -861,6 +946,54 @@ MIT License - see LICENSE file for details
|
|
|
861
946
|
|
|
862
947
|
## Changelog
|
|
863
948
|
|
|
949
|
+
### Version 0.8.2
|
|
950
|
+
|
|
951
|
+
- Test: New `TestGenerateMiddlewareRealTemplate` integration test renders the real v3.x middleware Jinja2 template against each `--hook-type` and the no-flag case, with templates committed under `tests/fixtures/middleware_template/` so the suite runs offline (#3)
|
|
952
|
+
- Chore: `scripts/release.sh` now constructs the release commit message from the version argument using the project convention (`chore: Release fips-agents-cli vX.Y.Z` with optional ` — <summary>`); convention documented in CLAUDE.md (#4)
|
|
953
|
+
- Docs: Drop broken `See Also` links from `.fips-agents-cli/README.md` in scaffolded MCP projects (#5, fixed in `fips-agents/mcp-server-template`)
|
|
954
|
+
- Docs: Updated CLAUDE.md release section to reflect the new release-script signature
|
|
955
|
+
|
|
956
|
+
### Version 0.8.1
|
|
957
|
+
|
|
958
|
+
- Docs: Updated CLAUDE.md current-status line and added release-process notes
|
|
959
|
+
- Chore: Repository hardening — added CODEOWNERS and enabled main branch protection
|
|
960
|
+
- Chore: Black formatting drift cleanup; removed remaining "framework" language from docs in favor of "toolkit"
|
|
961
|
+
- Chore: `.venv/` and `NEXT_SESSION.md` gitignored
|
|
962
|
+
|
|
963
|
+
### Version 0.8.0
|
|
964
|
+
|
|
965
|
+
- Feature: New `--vendored` flag on `create agent` copies fipsagents source instead of PyPI dependency
|
|
966
|
+
- Feature: New `fips-agents vendor` command for post-scaffold vendoring of existing projects
|
|
967
|
+
- Feature: `fips-agents vendor --update` refreshes vendored source from upstream
|
|
968
|
+
- Feature: `fips-agents vendor --version` pins to a specific fipsagents release tag
|
|
969
|
+
- Fix: `customize_agent_project` now removes monorepo Makefile install line (matching workflow template behavior)
|
|
970
|
+
- Fix: Added `redeploy.sh` to agent project customization file list
|
|
971
|
+
|
|
972
|
+
### Version 0.7.0
|
|
973
|
+
|
|
974
|
+
- Feature: New `add` command group for composable agent capabilities
|
|
975
|
+
- Feature: `fips-agents add code-executor` wires sandbox code execution into existing agent projects (tool + Helm chart sidecar config)
|
|
976
|
+
- Improvement: Updated `generate` group description to reflect broader scope beyond MCP
|
|
977
|
+
|
|
978
|
+
### Version 0.6.2
|
|
979
|
+
|
|
980
|
+
- Fix: Go project scaffolding now updates import paths in all `.go` source files
|
|
981
|
+
- Fix: Go project scaffolding now updates Helm template references (`chart/templates/*.yaml`)
|
|
982
|
+
|
|
983
|
+
### Version 0.6.1
|
|
984
|
+
|
|
985
|
+
- Chore: Updated all project URLs from `rdwj/` to `fips-agents/` org
|
|
986
|
+
- Chore: Post-transfer PyPI publishing verification release
|
|
987
|
+
|
|
988
|
+
### Version 0.6.0
|
|
989
|
+
|
|
990
|
+
- Feature: Added `create sandbox` command for scaffolding code execution sandbox projects from fips-agents/code-sandbox template
|
|
991
|
+
- Feature: All template URLs consolidated under `github.com/fips-agents/` organization
|
|
992
|
+
|
|
993
|
+
### Version 0.5.1
|
|
994
|
+
|
|
995
|
+
- Fix: SSE streaming tool call ID tracking by `call_id` not array index
|
|
996
|
+
|
|
864
997
|
### Version 0.5.0
|
|
865
998
|
|
|
866
999
|
- Feature: Added `create gateway` command for scaffolding Go HTTP gateway projects from the gateway-template
|
|
@@ -108,9 +108,11 @@ fips-agents patch all --dry-run
|
|
|
108
108
|
```bash
|
|
109
109
|
fips-agents --version
|
|
110
110
|
fips-agents --help
|
|
111
|
+
fips-agents add --help
|
|
111
112
|
fips-agents create --help
|
|
112
113
|
fips-agents generate --help
|
|
113
114
|
fips-agents patch --help
|
|
115
|
+
fips-agents vendor --help
|
|
114
116
|
```
|
|
115
117
|
|
|
116
118
|
---
|
|
@@ -182,6 +184,12 @@ Creates an AI agent project from the [agent-template](https://github.com/fips-ag
|
|
|
182
184
|
|
|
183
185
|
**Options:** Same as `create mcp-server` (see shared options table above).
|
|
184
186
|
|
|
187
|
+
**Additional option:**
|
|
188
|
+
|
|
189
|
+
| Option | Description |
|
|
190
|
+
|--------|-------------|
|
|
191
|
+
| `--vendored` | Copy fipsagents source into the project instead of using PyPI dependency |
|
|
192
|
+
|
|
185
193
|
**Examples:**
|
|
186
194
|
|
|
187
195
|
```bash
|
|
@@ -193,6 +201,9 @@ fips-agents create agent my-agent --github --org fips-agents
|
|
|
193
201
|
|
|
194
202
|
# Non-interactive mode
|
|
195
203
|
fips-agents create agent my-agent --yes --local
|
|
204
|
+
|
|
205
|
+
# Create with vendored fipsagents source
|
|
206
|
+
fips-agents create agent my-agent --vendored --local
|
|
196
207
|
```
|
|
197
208
|
|
|
198
209
|
#### `create gateway`
|
|
@@ -305,7 +316,7 @@ fips-agents create model-car https://huggingface.co/ibm-granite/granite-3.1-2b-i
|
|
|
305
316
|
|
|
306
317
|
### Generate Commands
|
|
307
318
|
|
|
308
|
-
The `generate` command group
|
|
319
|
+
The `generate` command group creates individual components (tools, resources, prompts, middleware) in existing projects.
|
|
309
320
|
|
|
310
321
|
**Run these commands from within your MCP server project directory.** The CLI locates the project root by looking for `pyproject.toml` with a `fastmcp` dependency.
|
|
311
322
|
|
|
@@ -567,6 +578,79 @@ Update all patchable file categories at once. Prompts for confirmation before st
|
|
|
567
578
|
|
|
568
579
|
All patch subcommands (except `check`) accept `--dry-run` to preview changes without modifying files.
|
|
569
580
|
|
|
581
|
+
---
|
|
582
|
+
|
|
583
|
+
### Add Commands
|
|
584
|
+
|
|
585
|
+
The `add` command group wires optional capabilities into existing agent projects created with `fips-agents create agent`.
|
|
586
|
+
|
|
587
|
+
**Run these commands from within your agent project directory.** The CLI locates the project root by looking for `agent.yaml`.
|
|
588
|
+
|
|
589
|
+
#### `add code-executor`
|
|
590
|
+
|
|
591
|
+
```bash
|
|
592
|
+
fips-agents add code-executor
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
Adds the `code_executor` tool to your agent's `tools/` directory and enables the sandbox sidecar in `chart/values.yaml`. The tool sends Python code to a sandbox container for isolated execution.
|
|
596
|
+
|
|
597
|
+
**What it does:**
|
|
598
|
+
|
|
599
|
+
1. Writes `tools/code_executor.py` with the sandbox client tool
|
|
600
|
+
2. Sets `sandbox.enabled: true` in `chart/values.yaml` (if the section exists)
|
|
601
|
+
3. Prints deployment guidance for sidecar and remote service modes
|
|
602
|
+
|
|
603
|
+
**Deployment modes:**
|
|
604
|
+
|
|
605
|
+
- **Sidecar** (default): The sandbox runs as a container in the same pod. The tool connects to `http://localhost:8000`.
|
|
606
|
+
- **Remote service**: The sandbox runs as a separate deployment. Set `SANDBOX_URL` to point to it.
|
|
607
|
+
|
|
608
|
+
**Example:**
|
|
609
|
+
|
|
610
|
+
```bash
|
|
611
|
+
cd my-research-agent
|
|
612
|
+
fips-agents add code-executor
|
|
613
|
+
```
|
|
614
|
+
|
|
615
|
+
---
|
|
616
|
+
|
|
617
|
+
### Vendor Commands
|
|
618
|
+
|
|
619
|
+
The `vendor` command copies the fipsagents source into your agent project, replacing the PyPI dependency. This gives you full control over the fipsagents code.
|
|
620
|
+
|
|
621
|
+
#### `vendor`
|
|
622
|
+
|
|
623
|
+
```bash
|
|
624
|
+
fips-agents vendor [OPTIONS]
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
Copies fipsagents source into `src/fipsagents/` and rewrites `pyproject.toml` to use individual dependencies instead of the fipsagents package.
|
|
628
|
+
|
|
629
|
+
**Options:**
|
|
630
|
+
|
|
631
|
+
| Option | Description |
|
|
632
|
+
|--------|-------------|
|
|
633
|
+
| `--update` | Update an already-vendored project with the latest upstream source |
|
|
634
|
+
| `--version TEXT` | Vendor a specific version tag (e.g., `fipsagents-v0.7.0`). Default: latest main |
|
|
635
|
+
|
|
636
|
+
**Examples:**
|
|
637
|
+
|
|
638
|
+
```bash
|
|
639
|
+
# Vendor into current project
|
|
640
|
+
fips-agents vendor
|
|
641
|
+
|
|
642
|
+
# Vendor a specific version
|
|
643
|
+
fips-agents vendor --version fipsagents-v0.7.0
|
|
644
|
+
|
|
645
|
+
# Update vendored source from upstream
|
|
646
|
+
fips-agents vendor --update
|
|
647
|
+
```
|
|
648
|
+
|
|
649
|
+
**When to use vendored vs. PyPI:**
|
|
650
|
+
|
|
651
|
+
- **PyPI dependency** (default): Best for teams running multiple agents that share the same fipsagents version. Centralized updates.
|
|
652
|
+
- **Vendored source**: Best for agents that need custom BaseAgent modifications, environments with no PyPI access, or when you want to read and debug the fipsagents source locally.
|
|
653
|
+
|
|
570
654
|
## Project Name Requirements
|
|
571
655
|
|
|
572
656
|
Project names must follow these rules:
|
|
@@ -595,10 +679,9 @@ pytest
|
|
|
595
679
|
|
|
596
680
|
```bash
|
|
597
681
|
cd my-research-agent
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
pytest
|
|
682
|
+
make install # Create venv, install dependencies
|
|
683
|
+
make run-local # Start HTTP server on port 8080
|
|
684
|
+
make test # Run tests
|
|
602
685
|
# See AGENTS.md for the /plan-agent slash command workflow
|
|
603
686
|
```
|
|
604
687
|
|
|
@@ -706,10 +789,12 @@ fips-agents-cli/
|
|
|
706
789
|
│ ├── cli.py # Main CLI application
|
|
707
790
|
│ ├── version.py # Version information
|
|
708
791
|
│ ├── commands/ # CLI command implementations
|
|
792
|
+
│ │ ├── add.py # add code-executor (wire capabilities)
|
|
709
793
|
│ │ ├── create.py # create mcp-server, agent, gateway, ui
|
|
710
794
|
│ │ ├── generate.py # generate tool/resource/prompt/middleware
|
|
711
795
|
│ │ ├── model_car.py # create model-car
|
|
712
|
-
│ │
|
|
796
|
+
│ │ ├── patch.py # patch command
|
|
797
|
+
│ │ └── vendor.py # vendor fipsagents source
|
|
713
798
|
│ └── tools/ # Utility modules
|
|
714
799
|
│ ├── filesystem.py
|
|
715
800
|
│ ├── git.py
|
|
@@ -828,6 +913,54 @@ MIT License - see LICENSE file for details
|
|
|
828
913
|
|
|
829
914
|
## Changelog
|
|
830
915
|
|
|
916
|
+
### Version 0.8.2
|
|
917
|
+
|
|
918
|
+
- Test: New `TestGenerateMiddlewareRealTemplate` integration test renders the real v3.x middleware Jinja2 template against each `--hook-type` and the no-flag case, with templates committed under `tests/fixtures/middleware_template/` so the suite runs offline (#3)
|
|
919
|
+
- Chore: `scripts/release.sh` now constructs the release commit message from the version argument using the project convention (`chore: Release fips-agents-cli vX.Y.Z` with optional ` — <summary>`); convention documented in CLAUDE.md (#4)
|
|
920
|
+
- Docs: Drop broken `See Also` links from `.fips-agents-cli/README.md` in scaffolded MCP projects (#5, fixed in `fips-agents/mcp-server-template`)
|
|
921
|
+
- Docs: Updated CLAUDE.md release section to reflect the new release-script signature
|
|
922
|
+
|
|
923
|
+
### Version 0.8.1
|
|
924
|
+
|
|
925
|
+
- Docs: Updated CLAUDE.md current-status line and added release-process notes
|
|
926
|
+
- Chore: Repository hardening — added CODEOWNERS and enabled main branch protection
|
|
927
|
+
- Chore: Black formatting drift cleanup; removed remaining "framework" language from docs in favor of "toolkit"
|
|
928
|
+
- Chore: `.venv/` and `NEXT_SESSION.md` gitignored
|
|
929
|
+
|
|
930
|
+
### Version 0.8.0
|
|
931
|
+
|
|
932
|
+
- Feature: New `--vendored` flag on `create agent` copies fipsagents source instead of PyPI dependency
|
|
933
|
+
- Feature: New `fips-agents vendor` command for post-scaffold vendoring of existing projects
|
|
934
|
+
- Feature: `fips-agents vendor --update` refreshes vendored source from upstream
|
|
935
|
+
- Feature: `fips-agents vendor --version` pins to a specific fipsagents release tag
|
|
936
|
+
- Fix: `customize_agent_project` now removes monorepo Makefile install line (matching workflow template behavior)
|
|
937
|
+
- Fix: Added `redeploy.sh` to agent project customization file list
|
|
938
|
+
|
|
939
|
+
### Version 0.7.0
|
|
940
|
+
|
|
941
|
+
- Feature: New `add` command group for composable agent capabilities
|
|
942
|
+
- Feature: `fips-agents add code-executor` wires sandbox code execution into existing agent projects (tool + Helm chart sidecar config)
|
|
943
|
+
- Improvement: Updated `generate` group description to reflect broader scope beyond MCP
|
|
944
|
+
|
|
945
|
+
### Version 0.6.2
|
|
946
|
+
|
|
947
|
+
- Fix: Go project scaffolding now updates import paths in all `.go` source files
|
|
948
|
+
- Fix: Go project scaffolding now updates Helm template references (`chart/templates/*.yaml`)
|
|
949
|
+
|
|
950
|
+
### Version 0.6.1
|
|
951
|
+
|
|
952
|
+
- Chore: Updated all project URLs from `rdwj/` to `fips-agents/` org
|
|
953
|
+
- Chore: Post-transfer PyPI publishing verification release
|
|
954
|
+
|
|
955
|
+
### Version 0.6.0
|
|
956
|
+
|
|
957
|
+
- Feature: Added `create sandbox` command for scaffolding code execution sandbox projects from fips-agents/code-sandbox template
|
|
958
|
+
- Feature: All template URLs consolidated under `github.com/fips-agents/` organization
|
|
959
|
+
|
|
960
|
+
### Version 0.5.1
|
|
961
|
+
|
|
962
|
+
- Fix: SSE streaming tool call ID tracking by `call_id` not array index
|
|
963
|
+
|
|
831
964
|
### Version 0.5.0
|
|
832
965
|
|
|
833
966
|
- Feature: Added `create gateway` command for scaffolding Go HTTP gateway projects from the gateway-template
|
|
@@ -2,9 +2,20 @@
|
|
|
2
2
|
#
|
|
3
3
|
# release.sh - Automated release script for fips-agents-cli
|
|
4
4
|
#
|
|
5
|
-
# Usage: ./scripts/release.sh <version> <
|
|
5
|
+
# Usage: ./scripts/release.sh <version> [<summary>]
|
|
6
6
|
#
|
|
7
|
-
#
|
|
7
|
+
# The release commit message is always constructed from the version using
|
|
8
|
+
# the project convention:
|
|
9
|
+
#
|
|
10
|
+
# chore: Release fips-agents-cli vX.Y.Z
|
|
11
|
+
#
|
|
12
|
+
# If a summary is provided, it is appended after an em-dash:
|
|
13
|
+
#
|
|
14
|
+
# chore: Release fips-agents-cli vX.Y.Z — <summary>
|
|
15
|
+
#
|
|
16
|
+
# Examples:
|
|
17
|
+
# ./scripts/release.sh 0.1.2
|
|
18
|
+
# ./scripts/release.sh 0.1.2 "Add new generator features"
|
|
8
19
|
#
|
|
9
20
|
|
|
10
21
|
set -e # Exit on error
|
|
@@ -29,14 +40,16 @@ print_info() {
|
|
|
29
40
|
}
|
|
30
41
|
|
|
31
42
|
# Check arguments
|
|
32
|
-
if [ $# -
|
|
33
|
-
print_error "Usage: $0 <version> <
|
|
34
|
-
echo "
|
|
43
|
+
if [ $# -lt 1 ] || [ $# -gt 2 ]; then
|
|
44
|
+
print_error "Usage: $0 <version> [<summary>]"
|
|
45
|
+
echo "Examples:"
|
|
46
|
+
echo " $0 0.1.2"
|
|
47
|
+
echo " $0 0.1.2 \"Add new generator features\""
|
|
35
48
|
exit 1
|
|
36
49
|
fi
|
|
37
50
|
|
|
38
51
|
VERSION=$1
|
|
39
|
-
|
|
52
|
+
SUMMARY=${2:-}
|
|
40
53
|
|
|
41
54
|
# Validate version format (x.y.z)
|
|
42
55
|
if ! [[ $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
@@ -45,6 +58,14 @@ if ! [[ $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
|
45
58
|
exit 1
|
|
46
59
|
fi
|
|
47
60
|
|
|
61
|
+
# Construct the conventional release commit message.
|
|
62
|
+
# Convention: "chore: Release fips-agents-cli vX.Y.Z" with optional " — <summary>".
|
|
63
|
+
if [ -n "$SUMMARY" ]; then
|
|
64
|
+
COMMIT_MSG="chore: Release fips-agents-cli v${VERSION} — ${SUMMARY}"
|
|
65
|
+
else
|
|
66
|
+
COMMIT_MSG="chore: Release fips-agents-cli v${VERSION}"
|
|
67
|
+
fi
|
|
68
|
+
|
|
48
69
|
print_info "Preparing release v$VERSION"
|
|
49
70
|
echo
|
|
50
71
|
|
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
import click
|
|
4
4
|
from rich.console import Console
|
|
5
5
|
|
|
6
|
+
from fips_agents_cli.commands.add import add
|
|
6
7
|
from fips_agents_cli.commands.create import create
|
|
7
8
|
from fips_agents_cli.commands.generate import generate
|
|
8
9
|
from fips_agents_cli.commands.patch import patch
|
|
10
|
+
from fips_agents_cli.commands.vendor import vendor
|
|
9
11
|
from fips_agents_cli.version import __version__
|
|
10
12
|
|
|
11
13
|
console = Console()
|
|
@@ -24,9 +26,11 @@ def cli(ctx):
|
|
|
24
26
|
|
|
25
27
|
|
|
26
28
|
# Register commands
|
|
29
|
+
cli.add_command(add)
|
|
27
30
|
cli.add_command(create)
|
|
28
31
|
cli.add_command(generate)
|
|
29
32
|
cli.add_command(patch)
|
|
33
|
+
cli.add_command(vendor)
|
|
30
34
|
|
|
31
35
|
|
|
32
36
|
def main():
|