Skip to content

Commit b064693

Browse files
committed
Ensure init and init with --template work as expected.
Do not install project packages in the init process, instead add them as dependencies in the project's pyproject.toml file.
1 parent e5dd690 commit b064693

File tree

3 files changed

+15
-17
lines changed

3 files changed

+15
-17
lines changed

agentstack/cli/cli.py

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -123,18 +123,9 @@ def init_project_builder(
123123

124124
log.debug(f"project_details: {project_details}" f"framework: {framework}" f"design: {design}")
125125
insert_template(project_details, framework, design, template_data)
126+
path = Path(project_details['name'])
126127
for tool_data in tools:
127-
generation.add_tool(tool_data['name'], agents=tool_data['agents'], path=project_details['name'])
128-
129-
try:
130-
packaging.install(f'{AGENTSTACK_PACKAGE}[{framework}]', path=slug_name)
131-
except Exception:
132-
print(
133-
term_color(
134-
f"Failed to install dependencies for {slug_name}. Please try again by running `agentstack update`",
135-
'red',
136-
)
137-
)
128+
generation.add_tool(tool_data['name'], agents=tool_data['agents'], path=path)
138129

139130

140131
def welcome_message():
@@ -392,7 +383,9 @@ def insert_template(
392383
design: dict,
393384
template_data: Optional[dict] = None,
394385
):
395-
framework = FrameworkData(framework_name.lower())
386+
framework = FrameworkData(
387+
name=framework_name.lower(),
388+
)
396389
project_metadata = ProjectMetadata(
397390
project_name=project_details["name"],
398391
description=project_details["description"],
@@ -432,7 +425,7 @@ def insert_template(
432425
"red",
433426
)
434427
)
435-
return
428+
sys.exit(1)
436429

437430
cookiecutter(str(template_path), no_input=True, extra_context=None)
438431

@@ -455,10 +448,13 @@ def insert_template(
455448
"🚀 \033[92mAgentStack project generated successfully!\033[0m\n\n"
456449
" Next, run:\n"
457450
f" cd {project_metadata.project_slug}\n"
458-
" poetry install\n"
459-
" agentstack run\n\n"
451+
" python -m venv .venv\n"
452+
" source .venv/bin/activate\n"
453+
" poetry install\n\n"
460454
" Add agents and tasks with:\n"
461455
" `agentstack generate agent/task <name>`\n\n"
456+
" Run your agent with:\n"
457+
" agentstack run\n\n"
462458
" Run `agentstack quickstart` or `agentstack docs` for next steps.\n"
463459
)
464460

agentstack/templates/crewai/{{cookiecutter.project_metadata.project_slug}}/pyproject.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ version = "{{cookiecutter.project_metadata.version}}"
44
description = "{{cookiecutter.project_metadata.description}}"
55
authors = ["{{cookiecutter.project_metadata.author_name}}"]
66
license = "{{cookiecutter.project_metadata.license}}"
7+
package-mode = false
78

89
[tool.poetry.dependencies]
910
python = ">=3.10,<=3.13"
11+
agentstack = {extras = ["{{cookiecutter.framework}}"], version="{{cookiecutter.project_metadata.agentstack_version}}"}
1012

1113
[project.scripts]
1214
{{cookiecutter.project_metadata.project_name}} = "{{cookiecutter.project_metadata.project_name}}.main:run"

agentstack/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ def get_telemetry_opt_out(path: Optional[str] = None) -> bool:
5858
Gets the telemetry opt out setting.
5959
First checks the environment variable AGENTSTACK_TELEMETRY_OPT_OUT.
6060
If that is not set, it checks the agentstack.json file.
61+
Otherwise we can assume the user has not opted out.
6162
"""
6263
from agentstack.generation import ConfigFile
6364

@@ -67,8 +68,7 @@ def get_telemetry_opt_out(path: Optional[str] = None) -> bool:
6768
agentstack_config = ConfigFile(path)
6869
return bool(agentstack_config.telemetry_opt_out)
6970
except FileNotFoundError:
70-
print("\033[31mFile agentstack.json does not exist. Are you in the right directory?\033[0m")
71-
sys.exit(1)
71+
return False
7272

7373

7474
def camel_to_snake(name):

0 commit comments

Comments
 (0)