fips-agents-cli 0.6.2__tar.gz → 0.7.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.
Files changed (60) hide show
  1. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/PKG-INFO +63 -2
  2. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/README.md +62 -1
  3. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/pyproject.toml +1 -1
  4. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/src/fips_agents_cli/cli.py +2 -0
  5. fips_agents_cli-0.7.0/src/fips_agents_cli/commands/add.py +211 -0
  6. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/src/fips_agents_cli/commands/generate.py +1 -1
  7. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/src/fips_agents_cli/version.py +1 -1
  8. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/.claude/commands/create-release.md +0 -0
  9. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/.claude/docs-state.json +0 -0
  10. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/.github/agents/README.md +0 -0
  11. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/.github/agents/create-release.agent.md +0 -0
  12. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/.github/workflows/test.yml +0 -0
  13. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/.github/workflows/workflow.yaml +0 -0
  14. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/.gitignore +0 -0
  15. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/CLAUDE.md +0 -0
  16. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/LICENSE +0 -0
  17. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/RELEASE_CHECKLIST.md +0 -0
  18. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/docs/PUBLISHING.md +0 -0
  19. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/docs/QUICK_START_PUBLISHING.md +0 -0
  20. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/docs/README.md +0 -0
  21. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/llms.txt +0 -0
  22. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/planning/AGENT_FRAMEWORK_PLAN.md +0 -0
  23. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/planning/GENERATOR_IMPLEMENTATION_PLAN.md +0 -0
  24. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/planning/IMPLEMENTATION_SUMMARY.md +0 -0
  25. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/planning/MVP-PLAN.md +0 -0
  26. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/planning/PLAN.md +0 -0
  27. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/planning/PROMPT_ISSUE.md +0 -0
  28. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/planning/agent-registry-roadmap.md +0 -0
  29. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/planning/agent-template-gaps.md +0 -0
  30. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/planning/composable-agent-capabilities.md +0 -0
  31. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/research/BAML_RESEARCH_REPORT.md +0 -0
  32. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/research/Ignite-CLI-Architecture-Analysis.md +0 -0
  33. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/retrospectives/2026-04-06_issue-triage-v0.3.0/RETRO.md +0 -0
  34. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/retrospectives/2026-04-10_full-stack-integration/RETRO.md +0 -0
  35. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/scripts/README.md +0 -0
  36. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/scripts/release.sh +0 -0
  37. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/src/fips_agents_cli/__init__.py +0 -0
  38. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/src/fips_agents_cli/__main__.py +0 -0
  39. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/src/fips_agents_cli/commands/__init__.py +0 -0
  40. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/src/fips_agents_cli/commands/create.py +0 -0
  41. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/src/fips_agents_cli/commands/model_car.py +0 -0
  42. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/src/fips_agents_cli/commands/patch.py +0 -0
  43. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/src/fips_agents_cli/tools/__init__.py +0 -0
  44. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/src/fips_agents_cli/tools/filesystem.py +0 -0
  45. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/src/fips_agents_cli/tools/generators.py +0 -0
  46. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/src/fips_agents_cli/tools/git.py +0 -0
  47. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/src/fips_agents_cli/tools/github.py +0 -0
  48. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/src/fips_agents_cli/tools/patching.py +0 -0
  49. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/src/fips_agents_cli/tools/project.py +0 -0
  50. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/src/fips_agents_cli/tools/validation.py +0 -0
  51. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/tests/__init__.py +0 -0
  52. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/tests/conftest.py +0 -0
  53. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/tests/test_create.py +0 -0
  54. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/tests/test_filesystem.py +0 -0
  55. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/tests/test_generate.py +0 -0
  56. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/tests/test_generators.py +0 -0
  57. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/tests/test_github.py +0 -0
  58. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/tests/test_model_car.py +0 -0
  59. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.0}/tests/test_project.py +0 -0
  60. {fips_agents_cli-0.6.2 → fips_agents_cli-0.7.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.6.2
3
+ Version: 0.7.0
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,6 +141,7 @@ 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
@@ -338,7 +339,7 @@ fips-agents create model-car https://huggingface.co/ibm-granite/granite-3.1-2b-i
338
339
 
339
340
  ### Generate Commands
340
341
 
341
- The `generate` command group scaffolds MCP components (tools, resources, prompts, middleware) in existing MCP server projects created with `fips-agents create mcp-server`.
342
+ The `generate` command group creates individual components (tools, resources, prompts, middleware) in existing projects.
342
343
 
343
344
  **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
345
 
@@ -600,6 +601,40 @@ Update all patchable file categories at once. Prompts for confirmation before st
600
601
 
601
602
  All patch subcommands (except `check`) accept `--dry-run` to preview changes without modifying files.
602
603
 
604
+ ---
605
+
606
+ ### Add Commands
607
+
608
+ The `add` command group wires optional capabilities into existing agent projects created with `fips-agents create agent`.
609
+
610
+ **Run these commands from within your agent project directory.** The CLI locates the project root by looking for `agent.yaml`.
611
+
612
+ #### `add code-executor`
613
+
614
+ ```bash
615
+ fips-agents add code-executor
616
+ ```
617
+
618
+ 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.
619
+
620
+ **What it does:**
621
+
622
+ 1. Writes `tools/code_executor.py` with the sandbox client tool
623
+ 2. Sets `sandbox.enabled: true` in `chart/values.yaml` (if the section exists)
624
+ 3. Prints deployment guidance for sidecar and remote service modes
625
+
626
+ **Deployment modes:**
627
+
628
+ - **Sidecar** (default): The sandbox runs as a container in the same pod. The tool connects to `http://localhost:8000`.
629
+ - **Remote service**: The sandbox runs as a separate deployment. Set `SANDBOX_URL` to point to it.
630
+
631
+ **Example:**
632
+
633
+ ```bash
634
+ cd my-research-agent
635
+ fips-agents add code-executor
636
+ ```
637
+
603
638
  ## Project Name Requirements
604
639
 
605
640
  Project names must follow these rules:
@@ -739,6 +774,7 @@ fips-agents-cli/
739
774
  │ ├── cli.py # Main CLI application
740
775
  │ ├── version.py # Version information
741
776
  │ ├── commands/ # CLI command implementations
777
+ │ │ ├── add.py # add code-executor (wire capabilities)
742
778
  │ │ ├── create.py # create mcp-server, agent, gateway, ui
743
779
  │ │ ├── generate.py # generate tool/resource/prompt/middleware
744
780
  │ │ ├── model_car.py # create model-car
@@ -861,6 +897,31 @@ MIT License - see LICENSE file for details
861
897
 
862
898
  ## Changelog
863
899
 
900
+ ### Version 0.7.0
901
+
902
+ - Feature: New `add` command group for composable agent capabilities
903
+ - Feature: `fips-agents add code-executor` wires sandbox code execution into existing agent projects (tool + Helm chart sidecar config)
904
+ - Improvement: Updated `generate` group description to reflect broader scope beyond MCP
905
+
906
+ ### Version 0.6.2
907
+
908
+ - Fix: Go project scaffolding now updates import paths in all `.go` source files
909
+ - Fix: Go project scaffolding now updates Helm template references (`chart/templates/*.yaml`)
910
+
911
+ ### Version 0.6.1
912
+
913
+ - Chore: Updated all project URLs from `rdwj/` to `fips-agents/` org
914
+ - Chore: Post-transfer PyPI publishing verification release
915
+
916
+ ### Version 0.6.0
917
+
918
+ - Feature: Added `create sandbox` command for scaffolding code execution sandbox projects from fips-agents/code-sandbox template
919
+ - Feature: All template URLs consolidated under `github.com/fips-agents/` organization
920
+
921
+ ### Version 0.5.1
922
+
923
+ - Fix: SSE streaming tool call ID tracking by `call_id` not array index
924
+
864
925
  ### Version 0.5.0
865
926
 
866
927
  - Feature: Added `create gateway` command for scaffolding Go HTTP gateway projects from the gateway-template
@@ -108,6 +108,7 @@ 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
@@ -305,7 +306,7 @@ fips-agents create model-car https://huggingface.co/ibm-granite/granite-3.1-2b-i
305
306
 
306
307
  ### Generate Commands
307
308
 
308
- The `generate` command group scaffolds MCP components (tools, resources, prompts, middleware) in existing MCP server projects created with `fips-agents create mcp-server`.
309
+ The `generate` command group creates individual components (tools, resources, prompts, middleware) in existing projects.
309
310
 
310
311
  **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
312
 
@@ -567,6 +568,40 @@ Update all patchable file categories at once. Prompts for confirmation before st
567
568
 
568
569
  All patch subcommands (except `check`) accept `--dry-run` to preview changes without modifying files.
569
570
 
571
+ ---
572
+
573
+ ### Add Commands
574
+
575
+ The `add` command group wires optional capabilities into existing agent projects created with `fips-agents create agent`.
576
+
577
+ **Run these commands from within your agent project directory.** The CLI locates the project root by looking for `agent.yaml`.
578
+
579
+ #### `add code-executor`
580
+
581
+ ```bash
582
+ fips-agents add code-executor
583
+ ```
584
+
585
+ 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.
586
+
587
+ **What it does:**
588
+
589
+ 1. Writes `tools/code_executor.py` with the sandbox client tool
590
+ 2. Sets `sandbox.enabled: true` in `chart/values.yaml` (if the section exists)
591
+ 3. Prints deployment guidance for sidecar and remote service modes
592
+
593
+ **Deployment modes:**
594
+
595
+ - **Sidecar** (default): The sandbox runs as a container in the same pod. The tool connects to `http://localhost:8000`.
596
+ - **Remote service**: The sandbox runs as a separate deployment. Set `SANDBOX_URL` to point to it.
597
+
598
+ **Example:**
599
+
600
+ ```bash
601
+ cd my-research-agent
602
+ fips-agents add code-executor
603
+ ```
604
+
570
605
  ## Project Name Requirements
571
606
 
572
607
  Project names must follow these rules:
@@ -706,6 +741,7 @@ fips-agents-cli/
706
741
  │ ├── cli.py # Main CLI application
707
742
  │ ├── version.py # Version information
708
743
  │ ├── commands/ # CLI command implementations
744
+ │ │ ├── add.py # add code-executor (wire capabilities)
709
745
  │ │ ├── create.py # create mcp-server, agent, gateway, ui
710
746
  │ │ ├── generate.py # generate tool/resource/prompt/middleware
711
747
  │ │ ├── model_car.py # create model-car
@@ -828,6 +864,31 @@ MIT License - see LICENSE file for details
828
864
 
829
865
  ## Changelog
830
866
 
867
+ ### Version 0.7.0
868
+
869
+ - Feature: New `add` command group for composable agent capabilities
870
+ - Feature: `fips-agents add code-executor` wires sandbox code execution into existing agent projects (tool + Helm chart sidecar config)
871
+ - Improvement: Updated `generate` group description to reflect broader scope beyond MCP
872
+
873
+ ### Version 0.6.2
874
+
875
+ - Fix: Go project scaffolding now updates import paths in all `.go` source files
876
+ - Fix: Go project scaffolding now updates Helm template references (`chart/templates/*.yaml`)
877
+
878
+ ### Version 0.6.1
879
+
880
+ - Chore: Updated all project URLs from `rdwj/` to `fips-agents/` org
881
+ - Chore: Post-transfer PyPI publishing verification release
882
+
883
+ ### Version 0.6.0
884
+
885
+ - Feature: Added `create sandbox` command for scaffolding code execution sandbox projects from fips-agents/code-sandbox template
886
+ - Feature: All template URLs consolidated under `github.com/fips-agents/` organization
887
+
888
+ ### Version 0.5.1
889
+
890
+ - Fix: SSE streaming tool call ID tracking by `call_id` not array index
891
+
831
892
  ### Version 0.5.0
832
893
 
833
894
  - Feature: Added `create gateway` command for scaffolding Go HTTP gateway projects from the gateway-template
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "fips-agents-cli"
7
- version = "0.6.2"
7
+ version = "0.7.0"
8
8
  description = "CLI tool for creating and managing FIPS-compliant AI agent projects"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -3,6 +3,7 @@
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
@@ -24,6 +25,7 @@ def cli(ctx):
24
25
 
25
26
 
26
27
  # Register commands
28
+ cli.add_command(add)
27
29
  cli.add_command(create)
28
30
  cli.add_command(generate)
29
31
  cli.add_command(patch)
@@ -0,0 +1,211 @@
1
+ """Add command group for wiring capabilities into existing agent projects."""
2
+
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ import click
7
+ from rich.console import Console
8
+ from rich.panel import Panel
9
+
10
+ console = Console()
11
+
12
+ # The code_executor tool source, embedded directly to avoid network dependencies.
13
+ # Source: agent-template/examples/code-sandbox-agent/tools/code_executor.py
14
+ CODE_EXECUTOR_TOOL_SOURCE = '''\
15
+ """Code execution tool — sends Python code to the sandbox sidecar."""
16
+
17
+ import os
18
+
19
+ import httpx
20
+
21
+ from fipsagents.baseagent.tools import tool
22
+
23
+ SANDBOX_URL = os.environ.get("SANDBOX_URL", "http://localhost:8000")
24
+
25
+
26
+ @tool(
27
+ description="Execute Python code in an isolated sandbox and return the output. "
28
+ "Use this for any computation, math, data processing, or logic that "
29
+ "benefits from exact results. The code runs in a restricted environment "
30
+ "with access to: math, statistics, itertools, functools, re, datetime, "
31
+ "collections, json, csv, string, textwrap, decimal, fractions, random, "
32
+ "operator, typing. Use print() to produce output.",
33
+ visibility="llm_only",
34
+ )
35
+ async def code_executor(code: str, timeout: float = 10.0) -> str:
36
+ """Execute Python code in the sandbox sidecar.
37
+
38
+ Args:
39
+ code: Python source code to execute. Must use print() for output.
40
+ timeout: Maximum execution time in seconds (1-30).
41
+ """
42
+ timeout = max(1.0, min(timeout, 30.0))
43
+
44
+ async with httpx.AsyncClient(timeout=timeout + 5) as client:
45
+ try:
46
+ resp = await client.post(
47
+ f"{SANDBOX_URL}/execute",
48
+ json={"code": code, "timeout": timeout},
49
+ )
50
+ except httpx.ConnectError:
51
+ return (
52
+ "ERROR: Cannot connect to sandbox sidecar at "
53
+ f"{SANDBOX_URL}. Is it running?"
54
+ )
55
+ except httpx.TimeoutException:
56
+ return "ERROR: Request to sandbox timed out."
57
+
58
+ data = resp.json()
59
+
60
+ if resp.status_code == 400:
61
+ if "violations" in data:
62
+ violations = "\\n".join(f" - {v}" for v in data["violations"])
63
+ return f"CODE BLOCKED by sandbox guardrails:\\n{violations}"
64
+ return f"ERROR: {data.get(\'error\', \'Unknown error\')}"
65
+
66
+ stdout = data.get("stdout", "").strip()
67
+ stderr = data.get("stderr", "").strip()
68
+ exit_code = data.get("exit_code", -1)
69
+ timed_out = data.get("timed_out", False)
70
+
71
+ if timed_out:
72
+ return f"TIMEOUT: Code exceeded {timeout}s limit.\\nPartial output:\\n{stdout}"
73
+
74
+ parts = []
75
+ if stdout:
76
+ parts.append(stdout)
77
+ if stderr:
78
+ parts.append(f"STDERR:\\n{stderr}")
79
+ if exit_code != 0:
80
+ parts.append(f"(exit code {exit_code})")
81
+
82
+ return "\\n".join(parts) if parts else "(no output — did you forget print()?)"
83
+ '''
84
+
85
+
86
+ def _find_agent_project_root() -> Path | None:
87
+ """Find the agent project root by looking for agent.yaml."""
88
+ current = Path.cwd()
89
+ for parent in [current] + list(current.parents):
90
+ if (parent / "agent.yaml").exists():
91
+ return parent
92
+ return None
93
+
94
+
95
+ @click.group()
96
+ def add():
97
+ """Add capabilities to an existing agent project."""
98
+ pass
99
+
100
+
101
+ @add.command("code-executor")
102
+ def code_executor_cmd():
103
+ """Wire sandbox code execution into the current agent project.
104
+
105
+ Adds the code_executor tool to tools/ and enables the sandbox sidecar
106
+ in chart/values.yaml. Run from your agent project root directory.
107
+
108
+ Example:
109
+
110
+ cd my-research-agent
111
+
112
+ fips-agents add code-executor
113
+ """
114
+ try:
115
+ # Step 1: Detect project root
116
+ project_root = _find_agent_project_root()
117
+ if project_root is None:
118
+ console.print(
119
+ "[red]Error:[/red] Not in an agent project directory.\n"
120
+ "Could not find agent.yaml in this directory or any parent.\n\n"
121
+ "[yellow]Hint:[/yellow] Run this command from an agent project "
122
+ "created with [dim]fips-agents create agent[/dim]."
123
+ )
124
+ sys.exit(1)
125
+
126
+ console.print(f"[green]Found project root:[/green] {project_root}")
127
+
128
+ # Step 2: Check tools/ directory exists
129
+ tools_dir = project_root / "tools"
130
+ if not tools_dir.exists():
131
+ console.print(
132
+ "[red]Error:[/red] No tools/ directory found in project root.\n\n"
133
+ "[yellow]Hint:[/yellow] Create it with: [dim]mkdir tools[/dim]"
134
+ )
135
+ sys.exit(1)
136
+
137
+ # Step 3: Write the tool file
138
+ tool_file = tools_dir / "code_executor.py"
139
+ if tool_file.exists():
140
+ console.print(
141
+ "[yellow]Warning:[/yellow] tools/code_executor.py already exists. Skipping."
142
+ )
143
+ else:
144
+ tool_file.write_text(CODE_EXECUTOR_TOOL_SOURCE)
145
+ console.print("[green]+[/green] Created tools/code_executor.py")
146
+
147
+ # Step 4: Update chart/values.yaml if present
148
+ values_file = project_root / "chart" / "values.yaml"
149
+ if values_file.exists():
150
+ values_content = values_file.read_text()
151
+ if "sandbox:" in values_content:
152
+ if "enabled: false" in values_content:
153
+ values_content = values_content.replace("enabled: false", "enabled: true", 1)
154
+ values_file.write_text(values_content)
155
+ console.print("[green]+[/green] Set sandbox.enabled: true in chart/values.yaml")
156
+ elif "enabled: true" in values_content:
157
+ console.print("[dim]sandbox.enabled already true in chart/values.yaml[/dim]")
158
+ else:
159
+ console.print(
160
+ "[yellow]Warning:[/yellow] Found sandbox: section in "
161
+ "chart/values.yaml but could not locate enabled field. "
162
+ "Please set sandbox.enabled: true manually."
163
+ )
164
+ else:
165
+ console.print(
166
+ "[yellow]Warning:[/yellow] No sandbox: section in chart/values.yaml.\n"
167
+ " Add the following to your values.yaml:\n"
168
+ " [dim]sandbox:\n"
169
+ " enabled: true\n"
170
+ " image: <your-sandbox-image>[/dim]"
171
+ )
172
+ else:
173
+ console.print("[dim]No chart/values.yaml found (not using Helm chart). Skipping.[/dim]")
174
+
175
+ # Step 5: Success panel
176
+ next_steps = """
177
+ [bold cyan]Next Steps:[/bold cyan]
178
+
179
+ 1. Build or deploy the sandbox sidecar:
180
+ [dim]fips-agents create sandbox my-sandbox[/dim]
181
+ or use the pre-built image from fips-agents/code-sandbox
182
+
183
+ 2. Configure the sandbox URL for your agent:
184
+
185
+ [bold]Sidecar mode[/bold] (same pod, default):
186
+ The tool defaults to http://localhost:8000
187
+ No extra config needed if sandbox runs as a sidecar container.
188
+
189
+ [bold]Remote service mode[/bold] (separate deployment):
190
+ Set the SANDBOX_URL environment variable:
191
+ [dim]export SANDBOX_URL=http://sandbox-service:8000[/dim]
192
+
193
+ 3. The agent will auto-discover tools/code_executor.py.
194
+ Use it in your agent's step() by calling:
195
+ [dim]await self.use_tool("code_executor", code="print(1+1)")[/dim]
196
+ """
197
+
198
+ console.print(
199
+ Panel(
200
+ f"[bold green]Code executor tool added.[/bold green]\n{next_steps}",
201
+ border_style="green",
202
+ padding=(1, 2),
203
+ )
204
+ )
205
+
206
+ except KeyboardInterrupt:
207
+ console.print("\n[yellow]Operation cancelled.[/yellow]")
208
+ sys.exit(130)
209
+ except Exception as e:
210
+ console.print(f"\n[red]Error:[/red] {e}")
211
+ sys.exit(1)
@@ -301,7 +301,7 @@ def generate_component_workflow(
301
301
 
302
302
  @click.group()
303
303
  def generate():
304
- """Generate new MCP components in existing projects."""
304
+ """Generate individual components (tools, prompts, resources, middleware) in existing projects."""
305
305
  pass
306
306
 
307
307
 
@@ -1,3 +1,3 @@
1
1
  """Version information for fips-agents-cli."""
2
2
 
3
- __version__ = "0.6.2"
3
+ __version__ = "0.7.0"
File without changes