naas-abi-cli 1.6.0__py3-none-any.whl → 1.7.0__py3-none-any.whl

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.
@@ -48,12 +48,15 @@ def main():
48
48
  "uv run --active python -m naas_abi_cli.cli".split(" ")
49
49
  + sys.argv[1:]
50
50
  )
51
- subprocess.run(
52
- arguments,
53
- cwd=os.getcwd(),
54
- env={**os.environ, "LOCAL_UV_RAN": "true"},
55
- check=True,
56
- )
51
+ try:
52
+ subprocess.run(
53
+ arguments,
54
+ cwd=os.getcwd(),
55
+ env={**os.environ, "LOCAL_UV_RAN": "true"},
56
+ check=True,
57
+ )
58
+ except Exception:
59
+ pass
57
60
 
58
61
  return
59
62
  _main()
naas_abi_cli/cli/chat.py CHANGED
@@ -3,14 +3,14 @@ from naas_abi_core import logger
3
3
 
4
4
 
5
5
  @click.command("chat")
6
- @click.argument("module-name", type=str, default=None)
7
- @click.argument("agent-name", type=str, default=None)
8
- def chat(module_name: str | None, agent_name: str | None):
6
+ @click.argument("module-name", type=str, default="")
7
+ @click.argument("agent-name", type=str, default="")
8
+ def chat(module_name: str = "", agent_name: str = ""):
9
9
  from naas_abi_core.engine.Engine import Engine
10
10
 
11
11
  engine = Engine()
12
12
 
13
- if module_name is None and agent_name is None:
13
+ if module_name == "" and agent_name == "":
14
14
  module_name, agent_name = engine.configuration.default_agent.split(" ")
15
15
 
16
16
  engine.load(module_names=[module_name])
@@ -1,10 +1,48 @@
1
+ import os
2
+
1
3
  import click
4
+ import naas_abi_cli
5
+ from naas_abi_cli.cli.utils.Copier import Copier
2
6
 
3
7
  from .new import new
4
8
 
5
9
 
10
+ def sanitize_module_name(module_name: str) -> str:
11
+ return module_name.replace("-", "_").replace(" ", "_").lower()
12
+
13
+
6
14
  @new.command("module")
7
- @click.argument("module-name")
8
- @click.argument("module-path")
9
- def new_module(module_name: str, module_path: str):
10
- pass
15
+ @click.argument("module_name", required=True)
16
+ @click.argument("module_path", required=False, default=".")
17
+ def _new_module(module_name: str, module_path: str = "."):
18
+ new_module(module_name, module_path)
19
+
20
+
21
+ def new_module(module_name: str, module_path: str = "."):
22
+ module_name = sanitize_module_name(module_name)
23
+
24
+ if module_path == ".":
25
+ module_path = os.path.join(os.getcwd(), module_name)
26
+ else:
27
+ module_path = os.path.join(module_path, module_name)
28
+
29
+ if not os.path.exists(module_path):
30
+ os.makedirs(module_path, exist_ok=True)
31
+ elif len(os.listdir(module_path)) > 0:
32
+ print(f"Folder {module_path} already exists and is not empty.")
33
+ exit(1)
34
+
35
+ copier = Copier(
36
+ templates_path=os.path.join(
37
+ os.path.dirname(naas_abi_cli.__file__), "cli/new/templates/module"
38
+ ),
39
+ destination_path=module_path,
40
+ )
41
+
42
+ copier.copy(
43
+ values={
44
+ "module_name": module_name,
45
+ "module_name_snake": module_name.replace("-", "_"),
46
+ "module_name_pascal": module_name.replace("-", "").capitalize(),
47
+ }
48
+ )
@@ -5,6 +5,7 @@ import click
5
5
  import naas_abi_cli
6
6
  from naas_abi_cli.cli.utils.Copier import Copier
7
7
 
8
+ from .module import new_module
8
9
  from .new import new
9
10
 
10
11
 
@@ -44,6 +45,9 @@ def new_project(project_name: str | None, project_path: str | None):
44
45
  }
45
46
  )
46
47
 
48
+ # Calling new_module to create the module in the src folder
49
+ new_module(project_name, os.path.join(project_path, "src"))
50
+
47
51
  # Run dependency install without shell to avoid quoting issues on paths with spaces.
48
52
  subprocess.run(
49
53
  [
@@ -6,10 +6,10 @@ from naas_abi_core.services.agent.Agent import (
6
6
  AgentSharedState,
7
7
  )
8
8
 
9
- NAME = "{{project_name_snake}} Agent"
9
+ NAME = "{{module_name_snake}} Agent"
10
10
  DESCRIPTION = "An helpful agent that can help you with your tasks."
11
11
  SYSTEM_PROMPT = """
12
- You are {{project_name_snake}} Agent.
12
+ You are {{module_name_snake}} Agent.
13
13
  """
14
14
 
15
15
 
@@ -17,7 +17,7 @@ def create_agent(
17
17
  agent_shared_state: Optional[AgentSharedState] = None,
18
18
  agent_configuration: Optional[AgentConfiguration] = None,
19
19
  ) -> Optional[Agent]:
20
- #from {{project_name_snake}} import ABIModule
20
+ #from {{module_name_snake}} import ABIModule
21
21
 
22
22
  # Set model
23
23
  from naas_abi_marketplace.ai.chatgpt.models.gpt_5 import model as chatgpt_model
@@ -36,7 +36,7 @@ def create_agent(
36
36
 
37
37
  agents: list = []
38
38
 
39
- return {{project_name_pascal}}Agent(
39
+ return {{module_name_pascal}}Agent(
40
40
  name=NAME,
41
41
  description=DESCRIPTION,
42
42
  chat_model=model,
@@ -48,5 +48,5 @@ def create_agent(
48
48
  )
49
49
 
50
50
 
51
- class {{project_name_pascal}}Agent(Agent):
51
+ class {{module_name_pascal}}Agent(Agent):
52
52
  pass
@@ -7,6 +7,13 @@ requires-python = ">=3.12"
7
7
  dependencies = [
8
8
  ]
9
9
 
10
+ [build-system]
11
+ requires = ["setuptools"]
12
+ build-backend = "setuptools.build_meta"
13
+
14
+ [tool.setuptools.packages.find]
15
+ where = ["src"]
16
+
10
17
 
11
18
  # [tool.uv.sources]
12
19
  # naas-abi = { path = ".abi/libs/naas-abi", editable = true }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: naas-abi-cli
3
- Version: 1.6.0
3
+ Version: 1.7.0
4
4
  Summary: Abi cli allowing you to build your AI system.
5
5
  Project-URL: Homepage, https://github.com/jupyter-naas/abi
6
6
  Project-URL: Repository, https://github.com/jupyter-naas/abi/tree/main/libs/naas-abi-cli
@@ -1,7 +1,7 @@
1
1
  naas_abi_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- naas_abi_cli/cli/__init__.py,sha256=JJbXMmjdp4TUYkgpVhuTOH5acecBeYT-26xl8jX_Nv0,1340
2
+ naas_abi_cli/cli/__init__.py,sha256=U5B_FHw3WZrDBehe1GBSHMNUVbrrZMZDsRvYOKzIg54,1456
3
3
  naas_abi_cli/cli/agent.py,sha256=fMdbC7HsrOfZSf5zVRHWSmyrejI5mUdRlAT5v5YHXzk,658
4
- naas_abi_cli/cli/chat.py,sha256=2m8Ezf5mfXf3d8NMBBRQKrJ1w5sS7dfNccKUh6yCnyY,960
4
+ naas_abi_cli/cli/chat.py,sha256=fobZsW4hCoTe5VJbWDmFR5gUhd91Y1K1D5fJ_H5fshg,948
5
5
  naas_abi_cli/cli/config.py,sha256=CcdDX6HKCP32NjRhbVsCOwLUC9LmaqTm2sv8W5rOt00,1484
6
6
  naas_abi_cli/cli/deploy.py,sha256=F4ZO-_ZVfBj93m7WQw5C7qAo3s7D3APl3-ePTpdFTYI,6670
7
7
  naas_abi_cli/cli/init.py,sha256=Pcy2-hy-FvpXf3UOKMP6agWyFrCl9z-KP5ktEWltPy0,220
@@ -9,24 +9,24 @@ naas_abi_cli/cli/module.py,sha256=TBl-SpeGUcy1Rrp40Irbt34yQS00xJcNje-OijNE4Hk,71
9
9
  naas_abi_cli/cli/run.py,sha256=OLrAs0mtnI0jvyW5Bb_Jd3Sp-bWDMdulCcsPixEq-6s,308
10
10
  naas_abi_cli/cli/secret.py,sha256=u_yUZgVEcns-CM-qsIIZUHX8j8T6aioJYluqSQhnXFE,2491
11
11
  naas_abi_cli/cli/new/__init__.py,sha256=i-lOPJh8DL729CFhZyuXZibsaswsqPj5e7u_N68xXeM,156
12
- naas_abi_cli/cli/new/module.py,sha256=e4gXnE7iQ4aCJpAU-0iMrHQ11T-PS11UDuifBLwyYFs,183
12
+ naas_abi_cli/cli/new/module.py,sha256=a3lKkMcgX1mkDFQBhvg3cORcjZYP9RLrNclwznnzfR4,1383
13
13
  naas_abi_cli/cli/new/new.py,sha256=sfNmeoNZLGhjKRKSHuwEl1vtuxWR_SII0qOo9BVoEwY,55
14
- naas_abi_cli/cli/new/project.py,sha256=rqM7peahVhqdteo8HjWm-ZQW30LfVYYPfuZV2Y2tR2g,1966
14
+ naas_abi_cli/cli/new/project.py,sha256=V6FW7FW9lZSkR4waOICk_xw7YzYq5c1FUe9sHEqApGU,2126
15
+ naas_abi_cli/cli/new/templates/module/__init__.py,sha256=RrPtAs9r4Kf6ZUNkrA2P9BAmQftVZYnid5hZrT7A6wE,912
16
+ naas_abi_cli/cli/new/templates/module/agents/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
+ naas_abi_cli/cli/new/templates/module/agents/{{module_name_pascal}}Agent.py,sha256=2R0rzjD5YOuIRVzSA_2bSioOniiJOqWcnUWNoZ3DJS8,1323
18
+ naas_abi_cli/cli/new/templates/module/orchestrations/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
+ naas_abi_cli/cli/new/templates/module/pipelines/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
+ naas_abi_cli/cli/new/templates/module/workflows/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
21
  naas_abi_cli/cli/new/templates/project/.gitignore,sha256=UGpJjKfZf8Gv1AD8aCgx0EDGsY_7j4viVinCdxDZMhQ,18
16
22
  naas_abi_cli/cli/new/templates/project/Dockerfile,sha256=1qKIDdqwc_JYJE9ROHFqsq3RPyYpkfqjZHKACCMR4JE,147
17
23
  naas_abi_cli/cli/new/templates/project/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
- naas_abi_cli/cli/new/templates/project/pyproject.toml,sha256=fvQumyCVeMfVWssZrK6movGnVE4q1Wnh2su3URRl8k8,409
24
+ naas_abi_cli/cli/new/templates/project/pyproject.toml,sha256=9MHoNOtG2DkS4LE1GZwBFF6Frw4gsl-hb5Mojba0AUM,540
19
25
  naas_abi_cli/cli/new/templates/project/.github/workflows/release.yaml,sha256=7uV4SE20zvAfJKr1caKLbHIC3eyBmS-LOwjkKe6plhI,596
20
- naas_abi_cli/cli/new/templates/project/{{project_name_snake}}/__init__.py,sha256=RrPtAs9r4Kf6ZUNkrA2P9BAmQftVZYnid5hZrT7A6wE,912
21
- naas_abi_cli/cli/new/templates/project/{{project_name_snake}}/agents/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- naas_abi_cli/cli/new/templates/project/{{project_name_snake}}/agents/{{project_name_pascal}}Agent.py,sha256=AAbYlAmmp8zC6Tp5WVelvHSMUYYgJCEko4zAhkGUaAg,1328
23
- naas_abi_cli/cli/new/templates/project/{{project_name_snake}}/orchestrations/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- naas_abi_cli/cli/new/templates/project/{{project_name_snake}}/pipelines/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
- naas_abi_cli/cli/new/templates/project/{{project_name_snake}}/workflows/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
26
  naas_abi_cli/cli/utils/Copier.py,sha256=cYo-5INC0jSrxcBgf2tvhahMr-92j2-BLpSmb6nQ1pc,3269
27
27
  naas_abi_cli/cli/new/templates/project/config.prod.yaml,sha256=Y57Qzz_yt8tfHbtDqGCSQxOkwnLgF4eoGOWOq66xSA8,1877
28
28
  naas_abi_cli/cli/new/templates/project/config.yaml,sha256=iQAAO6N3xO7iszG33vbSAljO11Pcf4KOvW3N-avJrsQ,1610
29
- naas_abi_cli-1.6.0.dist-info/METADATA,sha256=xZnpMmt1NfX0MZHPAkGpmPWp0bIQm1l2EKUcaGCtmmc,7371
30
- naas_abi_cli-1.6.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
31
- naas_abi_cli-1.6.0.dist-info/entry_points.txt,sha256=ufNXhYVU3uo5dcZ8e1kdEJv1oh2Vons7LHJPg35cP4w,46
32
- naas_abi_cli-1.6.0.dist-info/RECORD,,
29
+ naas_abi_cli-1.7.0.dist-info/METADATA,sha256=FqG1WZQ3z1EB3ZA6SgV4nDcLNXo8hOKr5gqrLhdRkmI,7371
30
+ naas_abi_cli-1.7.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
31
+ naas_abi_cli-1.7.0.dist-info/entry_points.txt,sha256=ufNXhYVU3uo5dcZ8e1kdEJv1oh2Vons7LHJPg35cP4w,46
32
+ naas_abi_cli-1.7.0.dist-info/RECORD,,