idun-agent-engine 0.3.9__py3-none-any.whl → 0.4.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.
Files changed (39) hide show
  1. idun_agent_engine/_version.py +1 -1
  2. idun_agent_engine/agent/langgraph/langgraph.py +1 -1
  3. idun_agent_engine/core/app_factory.py +1 -1
  4. idun_agent_engine/core/config_builder.py +5 -6
  5. idun_agent_engine/guardrails/guardrails_hub/__init__.py +2 -2
  6. idun_agent_engine/mcp/__init__.py +18 -2
  7. idun_agent_engine/mcp/helpers.py +95 -45
  8. idun_agent_engine/mcp/registry.py +7 -1
  9. idun_agent_engine/server/lifespan.py +22 -0
  10. idun_agent_engine/telemetry/__init__.py +19 -0
  11. idun_agent_engine/telemetry/config.py +29 -0
  12. idun_agent_engine/telemetry/telemetry.py +248 -0
  13. {idun_agent_engine-0.3.9.dist-info → idun_agent_engine-0.4.0.dist-info}/METADATA +11 -7
  14. {idun_agent_engine-0.3.9.dist-info → idun_agent_engine-0.4.0.dist-info}/RECORD +39 -14
  15. idun_platform_cli/groups/init.py +23 -0
  16. idun_platform_cli/main.py +3 -0
  17. idun_platform_cli/tui/__init__.py +0 -0
  18. idun_platform_cli/tui/css/__init__.py +0 -0
  19. idun_platform_cli/tui/css/create_agent.py +789 -0
  20. idun_platform_cli/tui/css/main.py +92 -0
  21. idun_platform_cli/tui/main.py +87 -0
  22. idun_platform_cli/tui/schemas/__init__.py +0 -0
  23. idun_platform_cli/tui/schemas/create_agent.py +60 -0
  24. idun_platform_cli/tui/screens/__init__.py +0 -0
  25. idun_platform_cli/tui/screens/create_agent.py +482 -0
  26. idun_platform_cli/tui/utils/__init__.py +0 -0
  27. idun_platform_cli/tui/utils/config.py +161 -0
  28. idun_platform_cli/tui/validators/__init__.py +0 -0
  29. idun_platform_cli/tui/validators/guardrails.py +76 -0
  30. idun_platform_cli/tui/validators/mcps.py +84 -0
  31. idun_platform_cli/tui/validators/observability.py +65 -0
  32. idun_platform_cli/tui/widgets/__init__.py +15 -0
  33. idun_platform_cli/tui/widgets/guardrails_widget.py +348 -0
  34. idun_platform_cli/tui/widgets/identity_widget.py +234 -0
  35. idun_platform_cli/tui/widgets/mcps_widget.py +230 -0
  36. idun_platform_cli/tui/widgets/observability_widget.py +384 -0
  37. idun_platform_cli/tui/widgets/serve_widget.py +78 -0
  38. {idun_agent_engine-0.3.9.dist-info → idun_agent_engine-0.4.0.dist-info}/WHEEL +0 -0
  39. {idun_agent_engine-0.3.9.dist-info → idun_agent_engine-0.4.0.dist-info}/entry_points.txt +0 -0
@@ -1,17 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: idun-agent-engine
3
- Version: 0.3.9
3
+ Version: 0.4.0
4
4
  Summary: Python SDK and runtime to serve AI agents with FastAPI, LangGraph, and observability.
5
5
  Project-URL: Homepage, https://github.com/geoffreyharrazi/idun-agent-platform
6
6
  Project-URL: Repository, https://github.com/geoffreyharrazi/idun-agent-platform
7
7
  Project-URL: Documentation, https://github.com/geoffreyharrazi/idun-agent-platform/tree/main/libs/idun_agent_engine
8
8
  Project-URL: Issues, https://github.com/geoffreyharrazi/idun-agent-platform/issues
9
9
  Author-email: Geoffrey HARRAZI <geoffreyharrazi@gmail.com>
10
- License-Expression: MIT
10
+ License-Expression: GPL-3.0-only
11
11
  Keywords: agents,fastapi,langgraph,llm,observability,sdk
12
12
  Classifier: Framework :: FastAPI
13
13
  Classifier: Intended Audience :: Developers
14
- Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
15
15
  Classifier: Programming Language :: Python :: 3
16
16
  Classifier: Programming Language :: Python :: 3 :: Only
17
17
  Classifier: Programming Language :: Python :: 3.12
@@ -36,7 +36,7 @@ Requires-Dist: httpx<0.29.0,>=0.28.1
36
36
  Requires-Dist: idun-agent-schema<1.0.0,>=0.3.8
37
37
  Requires-Dist: langchain-core<2.0.0,>=1.0.0
38
38
  Requires-Dist: langchain-google-vertexai<4.0.0,>=2.0.27
39
- Requires-Dist: langchain-mcp-adapters<0.2.0,>=0.1.0
39
+ Requires-Dist: langchain-mcp-adapters<0.3.0,>=0.2.0
40
40
  Requires-Dist: langchain<2.0.0,>=1.0.0
41
41
  Requires-Dist: langfuse-haystack>=2.3.0
42
42
  Requires-Dist: langfuse<4.0.0,>=2.60.8
@@ -51,12 +51,16 @@ Requires-Dist: openinference-instrumentation-mcp<2.0.0,>=1.0.0
51
51
  Requires-Dist: openinference-instrumentation-vertexai<1.0.0,>=0.1.0
52
52
  Requires-Dist: opentelemetry-exporter-gcp-trace<2.0.0,>=1.6.0
53
53
  Requires-Dist: opentelemetry-exporter-otlp-proto-http<2.0.0,>=1.22.0
54
+ Requires-Dist: platformdirs<5.0.0,>=4.0.0
55
+ Requires-Dist: posthog<8.0.0,>=7.0.0
54
56
  Requires-Dist: psycopg-binary<4.0.0,>=3.3.0
55
57
  Requires-Dist: pydantic<3.0.0,>=2.11.7
56
58
  Requires-Dist: python-dotenv>=1.1.1
59
+ Requires-Dist: pyyaml<7.0.0,>=6.0.0
57
60
  Requires-Dist: sqlalchemy<3.0.0,>=2.0.36
58
61
  Requires-Dist: streamlit<2.0.0,>=1.47.1
59
62
  Requires-Dist: tavily-python<0.8.0,>=0.7.9
63
+ Requires-Dist: textual<7.4.0,>=7.3.0
60
64
  Requires-Dist: uvicorn<0.36.0,>=0.35.0
61
65
  Description-Content-Type: text/markdown
62
66
 
@@ -72,7 +76,7 @@ Idun Agent Engine is a lightweight runtime and SDK that wraps your agent with a
72
76
  pip install idun-agent-engine
73
77
  ```
74
78
 
75
- - Requires Python 3.13
79
+ - Requires Python 3.12+
76
80
  - Ships with FastAPI, Uvicorn, LangGraph, SQLite checkpointing, and optional observability hooks
77
81
 
78
82
  ## Quickstart
@@ -319,9 +323,9 @@ from idun_agent_engine import (
319
323
 
320
324
  Issues and PRs are welcome. See the repository:
321
325
 
322
- - Repo: `https://github.com/geoffreyharrazi/idun-agent-platform`
326
+ - Repo: `https://github.com/Idun-Group/idun-agent-platform`
323
327
  - Package path: `libs/idun_agent_engine`
324
- - Open an issue: `https://github.com/geoffreyharrazi/idun-agent-platform/issues`
328
+ - Open an issue: `https://github.com/Idun-Group/idun-agent-platform/issues`
325
329
 
326
330
  Run locally:
327
331
 
@@ -1,5 +1,5 @@
1
1
  idun_agent_engine/__init__.py,sha256=PhOL6foq5V0eXaoXw7xKUeCWXIWrOHrAFB8OuJnBqyM,550
2
- idun_agent_engine/_version.py,sha256=wg5TtrJHehk9ojgri-pSlGNV_tkiMqJWfjSzOxSjvMM,72
2
+ idun_agent_engine/_version.py,sha256=IhNtSwHLVf0OkJXf7kUXlUOI7HCuAsywgZymi_DTmac,72
3
3
  idun_agent_engine/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  idun_agent_engine/agent/__init__.py,sha256=foyOoRdI_04q1b6f2A5EXEpWSCKjZxpgWMWrKcsHNl8,220
5
5
  idun_agent_engine/agent/base.py,sha256=c-3gljSHQpm6aY0JNDmXkaPtcW55rXdsI8Cgv9l4bCs,3294
@@ -10,20 +10,20 @@ idun_agent_engine/agent/haystack/haystack.py,sha256=k4NAx_zTBO9uiExM9NtuDAN94H1l
10
10
  idun_agent_engine/agent/haystack/haystack_model.py,sha256=EtOYnsWRufcrQufTRMeB3V-rZVQqfnmwKwPsYGfZdCs,362
11
11
  idun_agent_engine/agent/haystack/utils.py,sha256=sKRoPhzZWFw1NPsYwCockafzMBCCq3lGOrndbNE_C3M,609
12
12
  idun_agent_engine/agent/langgraph/__init__.py,sha256=CoBdkp9P4livdy5B0bvj9o7ftoqKmXEr9cZv4TZLncs,107
13
- idun_agent_engine/agent/langgraph/langgraph.py,sha256=vM5ppt0s_2izzZVbVXXGXGCVUGSN-GZhvQ5-6YbOgVM,22904
13
+ idun_agent_engine/agent/langgraph/langgraph.py,sha256=cbVrUs74a0p6omypMHWO3-1uqGLtJdiyAMrCheQHF5w,22966
14
14
  idun_agent_engine/core/__init__.py,sha256=F0DMDlWcSWS_1dvh3xMbrdcVvZRHVnoAFFgREuSJfBI,408
15
- idun_agent_engine/core/app_factory.py,sha256=XiLrctFT_n8LP3flKFwJoJDbiWPiw98N9lbkpR8P1O0,2597
16
- idun_agent_engine/core/config_builder.py,sha256=HpKrWwpohuArICyuOd-0eUQMG0PP2ZfhZzRGjLP9yck,25841
15
+ idun_agent_engine/core/app_factory.py,sha256=2w4o7wV8FQCZdBTk3W7cS0vnmpUM_TdAmphFKHbL31w,2597
16
+ idun_agent_engine/core/config_builder.py,sha256=oTWzdaYARZUGvVKVznMZT7pPRKKbCKQuXkCTno0Xn-8,25757
17
17
  idun_agent_engine/core/engine_config.py,sha256=IR8WhbenDstNSL7ORrUW8AnzgS3exFQxtwip66pFhcM,545
18
18
  idun_agent_engine/core/server_runner.py,sha256=DwN5kHiKVvUJLw5iSkaxs2rKRaMgOwSUZmeUPSuDbf8,4899
19
19
  idun_agent_engine/guardrails/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
20
  idun_agent_engine/guardrails/base.py,sha256=rvi7gcuKK8-3GtGicWzMWYsKKv0g3LjGBI-FycxgKVU,814
21
- idun_agent_engine/guardrails/guardrails_hub/__init__.py,sha256=gz2E0wPBEKi69RRRgo3zDBYwaEyGxH6GDDNcG1l6Y3E,131
21
+ idun_agent_engine/guardrails/guardrails_hub/__init__.py,sha256=MwWdgrM1dNzKwuS9ZEFw5Cin91JXh2PYlMma8yZFO7o,123
22
22
  idun_agent_engine/guardrails/guardrails_hub/guardrails_hub.py,sha256=DgcUIDy9_bcVcpYVvDJowFe_QVlCpEkr8hntPRgRmS0,3456
23
23
  idun_agent_engine/guardrails/guardrails_hub/utils.py,sha256=bC6-MsCVF7xKTr48z7OzJJUeWvqAB7BiHeNTiKsme70,20
24
- idun_agent_engine/mcp/__init__.py,sha256=tsX4sJa7UZD-lr8O1acMwDrdDWJc_hMlB9IrX1NH8Wk,255
25
- idun_agent_engine/mcp/helpers.py,sha256=aFiLlk63pifBjGgctREFWxuSbb-um6QDOVpyikQ5NJ0,3224
26
- idun_agent_engine/mcp/registry.py,sha256=K9-OLF_7FoKmyrwi65i6E3goZROHLRgISlF1yPwkEm8,3996
24
+ idun_agent_engine/mcp/__init__.py,sha256=ygChpEQ4MzMpEifW3szi5kNiLIMhOhJEtqxy0nmewDU,501
25
+ idun_agent_engine/mcp/helpers.py,sha256=KYYAi9VxX6mRvw70ZiN_6rUz2fMt_KMn3-vUFoa6GC0,5084
26
+ idun_agent_engine/mcp/registry.py,sha256=8zt9o8MZmYKx55xb0E7n-qOCR_3m2-XGf7ToQEwHkTU,4229
27
27
  idun_agent_engine/observability/__init__.py,sha256=DCtK6b3xiX4dh0_8GBDOcSXQdcIJz2wTqqPa_ZFAES4,430
28
28
  idun_agent_engine/observability/base.py,sha256=C6mY_ZafDEHkMz8_ZeaEh--pyYuzJYEUqhoJ0sVP2wY,5570
29
29
  idun_agent_engine/observability/gcp_logging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -38,24 +38,49 @@ idun_agent_engine/observability/phoenix_local/__init__.py,sha256=m9dIw1GWGKAW4wP
38
38
  idun_agent_engine/observability/phoenix_local/phoenix_local_handler.py,sha256=wjOZuMpAxdD5D33rzxycNEzFMunETpPnYjiHjbjz5GA,4252
39
39
  idun_agent_engine/server/__init__.py,sha256=WaFektUsy37bNg2niAUy_TykzStukgWPnxC-t49CEwo,177
40
40
  idun_agent_engine/server/dependencies.py,sha256=MVH8STOQ8wu-iYE_28y5dvw5FGT5PX0uQl0ldkpxw6Y,2080
41
- idun_agent_engine/server/lifespan.py,sha256=sp1EaCRKHblRFwYHWWNQzuD3deFiFpb06QlSutvoZRo,3832
41
+ idun_agent_engine/server/lifespan.py,sha256=pTPZ36R4jlx1jq249kpj4DEe-opIGYiRNUHncKlnuGs,4670
42
42
  idun_agent_engine/server/server_config.py,sha256=RYA7Y0c5aRw_WXaX8svFUIEtTPqzn3o-WQRm2p52C6g,213
43
43
  idun_agent_engine/server/routers/__init__.py,sha256=BgNzSVvHtGPGn5zhXhomwpKlDYBkeFi7xCbdcWVOgc8,102
44
44
  idun_agent_engine/server/routers/agent.py,sha256=qLaVRKgMIu-YfOi-tPEzLNRZKZ4DaZEQ8KQ-4HrWbbY,9194
45
45
  idun_agent_engine/server/routers/agui.py,sha256=Z1G4fuo57MazQWfp7ao8QZ1or2H9BXLS_JB1nFPXAkE,1891
46
46
  idun_agent_engine/server/routers/base.py,sha256=wICOXCokCIRjmHuDPDTWqeXqOVPes1CtDtiR_HvtsF0,3756
47
+ idun_agent_engine/telemetry/__init__.py,sha256=oYmmgUYvuwM-eV1qBeTgy6HoG6H3LC_S4fMH04QiMWY,519
48
+ idun_agent_engine/telemetry/config.py,sha256=APSmZWocwSqB1xSxoZkJrSTZnWlBiQdif4whdXi8uBE,845
49
+ idun_agent_engine/telemetry/telemetry.py,sha256=g14ouZnSIV85A58HeAH5IlJ_IDKO_uYo7kFbWRo5PpI,7319
47
50
  idun_agent_engine/templates/__init__.py,sha256=xxbJZXaX6VEm_UrqzAOQcuujpEji5yqYzwQfwiqig8o,31
48
51
  idun_agent_engine/templates/correction.py,sha256=qApH4W99K31maxNrGf0hPVe_Wd4xjYjJrEKlu7PbRpw,1823
49
52
  idun_agent_engine/templates/deep_research.py,sha256=j4WypBkBz7V3EG-U8vawfNXDNhcCf2QiEK0veI4M68s,1077
50
53
  idun_agent_engine/templates/translation.py,sha256=vjp1yEyhDMFO4nEbq5WG7LAA7nLrhVAjznOkV7ob_Ss,2149
51
54
  idun_platform_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
- idun_platform_cli/main.py,sha256=jWL7Ob0p4KdRUqgPTP_EB68n7z2LyMKC2DeUsfWlBO4,200
55
+ idun_platform_cli/main.py,sha256=B7b1x0kgfuiAWGmSCFJeu_zkWiodJjOGu0nWuNAWM-k,299
53
56
  idun_platform_cli/groups/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
+ idun_platform_cli/groups/init.py,sha256=gQo_khZf-arvsG51bdwFXQyfaKvIBFaK9v5KU21AeDo,692
54
58
  idun_platform_cli/groups/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
59
  idun_platform_cli/groups/agent/main.py,sha256=QMGQi3JZ76SeFI3miIjVWpMt0L-hGz5FwxtTPQX4-Uw,301
56
60
  idun_platform_cli/groups/agent/package.py,sha256=LdIFAcfrlUcCssmSliYQIi0NFMuVkpx6t8WhMHATan8,2525
57
61
  idun_platform_cli/groups/agent/serve.py,sha256=2AbL0G1WqR33jlyiGaNvAoPZ3G1o52KYUptz_HaAjIg,3863
58
- idun_agent_engine-0.3.9.dist-info/METADATA,sha256=xUkcP9OMVWs9ftXHs0gmTnLdddG_t4eoNGc9Sbs15jI,10692
59
- idun_agent_engine-0.3.9.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
60
- idun_agent_engine-0.3.9.dist-info/entry_points.txt,sha256=XG3oxlSOaCrYKT1oyhKa0Ag1iJPMZ-WF6gaV_mzIJW4,52
61
- idun_agent_engine-0.3.9.dist-info/RECORD,,
62
+ idun_platform_cli/tui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
+ idun_platform_cli/tui/main.py,sha256=QO63okOX7s91r5JDA5mVjvmHuDSY9IArO6GQRaDYxCk,3083
64
+ idun_platform_cli/tui/css/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
+ idun_platform_cli/tui/css/create_agent.py,sha256=SxqNhB-sEbBcq9B_X4fktyhi31DJgJj61ymR4s0i9PE,12264
66
+ idun_platform_cli/tui/css/main.py,sha256=9ii_dobgiz2DNdFhOC6VZSRNrRybI1a6ZykXrVqn7A4,1185
67
+ idun_platform_cli/tui/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
+ idun_platform_cli/tui/schemas/create_agent.py,sha256=2jsZ5v1sZLKmypgimdVoeVjd-wOylTE3IUYPw63eb8Y,1512
69
+ idun_platform_cli/tui/screens/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
+ idun_platform_cli/tui/screens/create_agent.py,sha256=mtuN7HtQvwloiDZVIp9olJnEA9qHBmQPy-6YdiFXkaE,18332
71
+ idun_platform_cli/tui/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
+ idun_platform_cli/tui/utils/config.py,sha256=An-pfUiD-sYQ12QLiE_M0NHAcpBCYo4TnxUbAmqodIA,6316
73
+ idun_platform_cli/tui/validators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
+ idun_platform_cli/tui/validators/guardrails.py,sha256=XIDzouBtNo63ppyGFMx9lcRHquxOvhY67ouJpF01u50,2894
75
+ idun_platform_cli/tui/validators/mcps.py,sha256=oDxbxt7qOzsW8yjd_fwBnlDPOSxPqCXqbF5q8eEYRVQ,2852
76
+ idun_platform_cli/tui/validators/observability.py,sha256=IWNuJg42eZUxjV-7v12kms7DpJsAs3FSSD5zLU5eKUc,2436
77
+ idun_platform_cli/tui/widgets/__init__.py,sha256=d0tv94kZiFO6u7Rm8qvAXp5njDZqeVa7WfdU3A1GRdo,407
78
+ idun_platform_cli/tui/widgets/guardrails_widget.py,sha256=ZYnvdDiUkOcAAp8gcR8ThpL8wVeAlmQrhPj5j-gUdOw,14299
79
+ idun_platform_cli/tui/widgets/identity_widget.py,sha256=JWwfE4Dedv7F6r40tGnscHh8oevUr-_a-k5hZlXKvVg,8840
80
+ idun_platform_cli/tui/widgets/mcps_widget.py,sha256=x2IS0SKIX6sfM5yBXW2d_arxWnwuaTEKUfYMTK-hZHw,10958
81
+ idun_platform_cli/tui/widgets/observability_widget.py,sha256=Q2_vP7oC5LXznFUjMpse_1dLorrfGtbL11rhpEQOY8c,15064
82
+ idun_platform_cli/tui/widgets/serve_widget.py,sha256=B2wK16AHo8BP-igZ0MJWhdCzuILvTzT0zn8PSJ_Szvc,2950
83
+ idun_agent_engine-0.4.0.dist-info/METADATA,sha256=8PJDB-q0o90J46WfpMOrp13U9W-uJOeOYga1z2ZBeKA,10870
84
+ idun_agent_engine-0.4.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
85
+ idun_agent_engine-0.4.0.dist-info/entry_points.txt,sha256=XG3oxlSOaCrYKT1oyhKa0Ag1iJPMZ-WF6gaV_mzIJW4,52
86
+ idun_agent_engine-0.4.0.dist-info/RECORD,,
@@ -0,0 +1,23 @@
1
+ import sys
2
+
3
+ import click
4
+
5
+ from idun_platform_cli.tui.main import IdunApp
6
+
7
+
8
+ @click.command("init")
9
+ def init_command() -> None:
10
+ """Starts a terminal user interface that guides you through configuring and managing Idun agents."""
11
+ try:
12
+ app = IdunApp()
13
+ app.run()
14
+ except ImportError as e:
15
+ print(f"[ERROR]: Missing required dependency for TUI: {e}")
16
+ print("[INFO]: Make sure 'textual' is installed in your environment")
17
+ sys.exit(1)
18
+ except KeyboardInterrupt:
19
+ print("\n[INFO]: Initialization cancelled by user")
20
+ sys.exit(0)
21
+ except Exception as e:
22
+ print(f"[ERROR]: Failed to launch the Idun TUI: {e}")
23
+ sys.exit(1)
idun_platform_cli/main.py CHANGED
@@ -1,5 +1,7 @@
1
1
  import click
2
+
2
3
  from idun_platform_cli.groups.agent.main import agent
4
+ from idun_platform_cli.groups.init import init_command
3
5
 
4
6
 
5
7
  @click.group()
@@ -9,6 +11,7 @@ def cli():
9
11
 
10
12
 
11
13
  cli.add_command(agent)
14
+ cli.add_command(init_command, name="init")
12
15
 
13
16
  if __name__ == "__main__":
14
17
  cli()
File without changes
File without changes