janito 1.7.0__py3-none-any.whl → 1.8.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 (115) hide show
  1. janito/__init__.py +1 -1
  2. janito/agent/config.py +1 -1
  3. janito/agent/config_defaults.py +2 -2
  4. janito/agent/conversation.py +70 -27
  5. janito/agent/conversation_api.py +104 -4
  6. janito/agent/conversation_exceptions.py +6 -0
  7. janito/agent/conversation_tool_calls.py +17 -3
  8. janito/agent/event.py +24 -0
  9. janito/agent/event_dispatcher.py +24 -0
  10. janito/agent/event_handler_protocol.py +5 -0
  11. janito/agent/event_system.py +15 -0
  12. janito/agent/message_handler.py +4 -1
  13. janito/agent/message_handler_protocol.py +5 -0
  14. janito/agent/openai_client.py +5 -8
  15. janito/agent/openai_schema_generator.py +23 -4
  16. janito/agent/profile_manager.py +15 -83
  17. janito/agent/queued_message_handler.py +22 -3
  18. janito/agent/rich_message_handler.py +66 -72
  19. janito/agent/templates/profiles/system_prompt_template_base.txt.j2 +14 -0
  20. janito/agent/templates/profiles/system_prompt_template_base_pt.txt.j2 +13 -0
  21. janito/agent/test_handler_protocols.py +47 -0
  22. janito/agent/tests/__init__.py +1 -0
  23. janito/agent/tool_base.py +1 -1
  24. janito/agent/tool_executor.py +109 -0
  25. janito/agent/tool_registry.py +3 -75
  26. janito/agent/tool_use_tracker.py +46 -0
  27. janito/agent/tools/__init__.py +8 -9
  28. janito/agent/tools/ask_user.py +19 -11
  29. janito/agent/tools/create_directory.py +43 -28
  30. janito/agent/tools/create_file.py +60 -29
  31. janito/agent/tools/dir_walk_utils.py +16 -0
  32. janito/agent/tools/fetch_url.py +10 -11
  33. janito/agent/tools/find_files.py +49 -32
  34. janito/agent/tools/get_lines.py +54 -18
  35. janito/agent/tools/memory.py +32 -52
  36. janito/agent/tools/move_file.py +72 -23
  37. janito/agent/tools/outline_file/__init__.py +85 -0
  38. janito/agent/tools/outline_file/formatting.py +20 -0
  39. janito/agent/tools/outline_file/markdown_outline.py +14 -0
  40. janito/agent/tools/outline_file/python_outline.py +71 -0
  41. janito/agent/tools/present_choices.py +62 -0
  42. janito/agent/tools/present_choices_test.py +18 -0
  43. janito/agent/tools/remove_directory.py +31 -26
  44. janito/agent/tools/remove_file.py +31 -13
  45. janito/agent/tools/replace_text_in_file.py +135 -36
  46. janito/agent/tools/run_bash_command.py +47 -50
  47. janito/agent/tools/run_powershell_command.py +52 -36
  48. janito/agent/tools/run_python_command.py +49 -29
  49. janito/agent/tools/search_outline.py +17 -0
  50. janito/agent/tools/search_text.py +208 -0
  51. janito/agent/tools/tools_utils.py +47 -4
  52. janito/agent/tools/utils.py +14 -15
  53. janito/agent/tools/validate_file_syntax.py +163 -0
  54. janito/cli/arg_parser.py +36 -4
  55. janito/cli/logging_setup.py +7 -2
  56. janito/cli/main.py +96 -2
  57. janito/cli/runner/_termweb_log_utils.py +17 -0
  58. janito/cli/runner/cli_main.py +119 -77
  59. janito/cli/runner/config.py +2 -2
  60. janito/cli/termweb_starter.py +73 -0
  61. janito/cli_chat_shell/chat_loop.py +42 -7
  62. janito/cli_chat_shell/chat_state.py +1 -1
  63. janito/cli_chat_shell/chat_ui.py +0 -1
  64. janito/cli_chat_shell/commands/__init__.py +15 -6
  65. janito/cli_chat_shell/commands/{history_reset.py → history_start.py} +13 -5
  66. janito/cli_chat_shell/commands/lang.py +16 -0
  67. janito/cli_chat_shell/commands/prompt.py +42 -0
  68. janito/cli_chat_shell/commands/session_control.py +36 -1
  69. janito/cli_chat_shell/commands/termweb_log.py +86 -0
  70. janito/cli_chat_shell/commands/utility.py +5 -2
  71. janito/cli_chat_shell/commands/verbose.py +29 -0
  72. janito/cli_chat_shell/session_manager.py +9 -1
  73. janito/cli_chat_shell/shell_command_completer.py +20 -0
  74. janito/cli_chat_shell/ui.py +110 -99
  75. janito/i18n/__init__.py +35 -0
  76. janito/i18n/messages.py +23 -0
  77. janito/i18n/pt.py +46 -0
  78. janito/rich_utils.py +43 -43
  79. janito/termweb/app.py +95 -0
  80. janito/termweb/static/editor.html +238 -0
  81. janito/termweb/static/editor.html.bak +238 -0
  82. janito/termweb/static/explorer.html.bak +59 -0
  83. janito/termweb/static/favicon.ico +0 -0
  84. janito/termweb/static/favicon.ico.bak +0 -0
  85. janito/termweb/static/index.html +55 -0
  86. janito/termweb/static/index.html.bak +55 -0
  87. janito/termweb/static/index.html.bak.bak +175 -0
  88. janito/termweb/static/landing.html.bak +36 -0
  89. janito/termweb/static/termicon.svg +1 -0
  90. janito/termweb/static/termweb.css +235 -0
  91. janito/termweb/static/termweb.css.bak +286 -0
  92. janito/termweb/static/termweb.js +187 -0
  93. janito/termweb/static/termweb.js.bak +187 -0
  94. janito/termweb/static/termweb.js.bak.bak +157 -0
  95. janito/termweb/static/termweb_quickopen.js +135 -0
  96. janito/termweb/static/termweb_quickopen.js.bak +125 -0
  97. janito/web/app.py +4 -4
  98. {janito-1.7.0.dist-info → janito-1.8.0.dist-info}/METADATA +58 -25
  99. janito-1.8.0.dist-info/RECORD +127 -0
  100. {janito-1.7.0.dist-info → janito-1.8.0.dist-info}/WHEEL +1 -1
  101. janito/agent/templates/profiles/system_prompt_template_base.toml +0 -76
  102. janito/agent/templates/profiles/system_prompt_template_default.toml +0 -3
  103. janito/agent/templates/profiles/system_prompt_template_technical.toml +0 -13
  104. janito/agent/tests/test_prompt_toml.py +0 -61
  105. janito/agent/tool_registry_core.py +0 -2
  106. janito/agent/tools/get_file_outline.py +0 -146
  107. janito/agent/tools/py_compile_file.py +0 -40
  108. janito/agent/tools/replace_file.py +0 -51
  109. janito/agent/tools/search_files.py +0 -65
  110. janito/cli/runner/scan.py +0 -57
  111. janito/cli_chat_shell/commands/system.py +0 -73
  112. janito-1.7.0.dist-info/RECORD +0 -89
  113. {janito-1.7.0.dist-info → janito-1.8.0.dist-info}/entry_points.txt +0 -0
  114. {janito-1.7.0.dist-info → janito-1.8.0.dist-info}/licenses/LICENSE +0 -0
  115. {janito-1.7.0.dist-info → janito-1.8.0.dist-info}/top_level.txt +0 -0
janito/cli/runner/scan.py DELETED
@@ -1,57 +0,0 @@
1
- import os
2
- from janito.agent.profile_manager import AgentProfileManager
3
- from janito.agent.runtime_config import unified_config
4
- from janito.agent.config import get_api_key
5
-
6
-
7
- def scan_project():
8
- prompt_path = os.path.abspath(
9
- os.path.join(
10
- os.path.dirname(__file__),
11
- "..",
12
- "..",
13
- "agent",
14
- "templates",
15
- "detect_tech_prompt.j2",
16
- )
17
- )
18
- with open(prompt_path, "r", encoding="utf-8") as f:
19
- detect_prompt = f.read()
20
- api_key = get_api_key()
21
- model = unified_config.get("model")
22
- base_url = unified_config.get("base_url", "https://openrouter.ai/api/v1")
23
- azure_openai_api_version = unified_config.get(
24
- "azure_openai_api_version", "2023-05-15"
25
- )
26
- use_azure_openai = unified_config.get("use_azure_openai", False)
27
- profile_manager = AgentProfileManager(
28
- api_key=api_key,
29
- model=model,
30
- role=unified_config.get("role", "software engineer"),
31
- interaction_style=unified_config.get("interaction_style", "default"),
32
- interaction_mode=unified_config.get("interaction_mode", "prompt"),
33
- verbose_tools=True,
34
- base_url=base_url,
35
- azure_openai_api_version=azure_openai_api_version,
36
- use_azure_openai=use_azure_openai,
37
- )
38
- agent = profile_manager.agent
39
- from janito.agent.rich_message_handler import RichMessageHandler
40
-
41
- message_handler = RichMessageHandler()
42
- messages = [{"role": "system", "content": detect_prompt}]
43
- print("🔍 Scanning project for relevant tech/skills...")
44
- result = agent.chat(
45
- messages,
46
- message_handler=message_handler,
47
- spinner=True,
48
- max_rounds=50,
49
- verbose_response=False,
50
- verbose_events=False,
51
- stream=False,
52
- )
53
- os.makedirs(".janito", exist_ok=True)
54
- tech_txt = os.path.join(".janito", "tech.txt")
55
- with open(tech_txt, "w", encoding="utf-8") as f:
56
- f.write(result["content"].strip() + "\n")
57
- print(f"✅ Tech/skills detected and saved to {tech_txt}")
@@ -1,73 +0,0 @@
1
- from janito.agent.runtime_config import runtime_config
2
-
3
-
4
- def handle_system(console, **kwargs):
5
- profile_manager = kwargs.get("profile_manager")
6
- prompt = profile_manager.system_prompt_template if profile_manager else None
7
- if not prompt and profile_manager:
8
- prompt = profile_manager.render_prompt()
9
- console.print(f"[bold magenta]System Prompt:[/bold magenta]\n{prompt}")
10
-
11
-
12
- def handle_role(console, *args, **kwargs):
13
- state = kwargs.get("state")
14
- profile_manager = kwargs.get("profile_manager")
15
- if not args:
16
- console.print("[bold red]Usage: /role <new role description>[/bold red]")
17
- return
18
- new_role = " ".join(args)
19
- if profile_manager:
20
- profile_manager.set_role(new_role)
21
- # Update system message in conversation
22
- found = False
23
- for msg in state["messages"]:
24
- if msg.get("role") == "system":
25
- msg["content"] = (
26
- profile_manager.system_prompt_template if profile_manager else new_role
27
- )
28
- found = True
29
- break
30
- if not found:
31
- state["messages"].insert(0, {"role": "system", "content": new_role})
32
- # Also store the raw role string
33
- if profile_manager:
34
- setattr(profile_manager, "role_name", new_role)
35
- runtime_config.set("role", new_role)
36
- console.print(f"[bold green]System role updated to:[/bold green] {new_role}")
37
-
38
-
39
- def handle_style(console, *args, **kwargs):
40
- """/style <new_style> - Change the interaction style (e.g., default, technical)"""
41
- state = kwargs.get("state")
42
- profile_manager = kwargs.get("profile_manager")
43
- if not args:
44
- current = getattr(profile_manager, "interaction_style", "default")
45
- console.print(f"[bold green]Current style:[/bold green] {current}")
46
- return
47
- new_style = args[0]
48
- if profile_manager:
49
- profile_manager.set_interaction_style(new_style)
50
- # Update system message in conversation
51
- found = False
52
- for msg in state["messages"]:
53
- if msg.get("role") == "system":
54
- msg["content"] = (
55
- profile_manager.system_prompt_template
56
- if profile_manager
57
- else msg["content"]
58
- )
59
- found = True
60
- break
61
- if not found:
62
- state["messages"].insert(
63
- 0,
64
- {
65
- "role": "system",
66
- "content": (
67
- profile_manager.system_prompt_template
68
- if profile_manager
69
- else new_style
70
- ),
71
- },
72
- )
73
- console.print(f"[bold green]Interaction style updated to:[/bold green] {new_style}")
@@ -1,89 +0,0 @@
1
- janito/__init__.py,sha256=XDkqD7tg6140OaT-GWVelJpBREPl5hVT6A8vmk41J2M,23
2
- janito/__main__.py,sha256=KKIoPBE9xPcb54PRYO2UOt0ti04iAwLeJlg8YY36vew,76
3
- janito/rich_utils.py,sha256=gZ4uAYyAeSk_H1uCGYhYkFoel5Z1SDmNhp241pnniqg,1085
4
- janito/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- janito/agent/config.py,sha256=vygbu5gW-NVk0rAL5fOMD2AQPl2QoGbA65AHf1Ppcqk,4653
6
- janito/agent/config_defaults.py,sha256=_fkVCbnp0JUeYV_0mvoh8a4R_oJQer-lBZS71PR76O8,529
7
- janito/agent/config_utils.py,sha256=UmvR236wDrMc-aTy9LxVbop6YeoJaaPb1d2DBMlkSRg,254
8
- janito/agent/content_handler.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- janito/agent/conversation.py,sha256=bTHCmOphS-fQHSUkF2mL0oTIwT-9IsGbA3Ajy7ZgRCI,5178
10
- janito/agent/conversation_api.py,sha256=v85_BwcyNceeYZorDKnjpgpDUY5sfvTwQMoVjXxAdmE,3441
11
- janito/agent/conversation_exceptions.py,sha256=F36wOPRx0yFaiQUuVqxktkRdNlnXVOUovAEdB40poNM,260
12
- janito/agent/conversation_tool_calls.py,sha256=7RWy_TVxXZY8Cmafy2XtSF1sCLf9O3NIC7dw1PtVYqk,874
13
- janito/agent/conversation_ui.py,sha256=y4f0IoJQoWGrFMB3yi7uIwXokuTjhFtJGK_R7zcTv3w,397
14
- janito/agent/message_handler.py,sha256=Za4xUflbRvamlJP_4_YEStOiXuCYYjI1uQkHabTaUtA,754
15
- janito/agent/openai_client.py,sha256=nsBQZQ_F_wBd6kVTbbT0Jr5LM0suMGkEtGsCY_r7K88,4707
16
- janito/agent/openai_schema_generator.py,sha256=hqe7VVIf5mPcnSn38_MOlI9HJtTayN-aAXJz9iwxp4s,4821
17
- janito/agent/platform_discovery.py,sha256=yp6KTvc-_u22Dr8-J4cdjVMUS8HkCf343aeSGRu2wek,2712
18
- janito/agent/profile_manager.py,sha256=Kzf1PhG5JtbYVXb-ikshwsFwNs1Xwa4KPi-SLRDGKIM,6097
19
- janito/agent/queued_message_handler.py,sha256=sWyadc4h1xkFn_kgO0Hp5lgzj_8J23i-tV31M1lNtV0,1422
20
- janito/agent/rich_live.py,sha256=NKWU89hRakiJ-0N6FPg40bYREOxQizqicbDv9eUfsKs,927
21
- janito/agent/rich_message_handler.py,sha256=I2eXkE91Zqbz9losj2SDkEYRpHtJAd_u-P46x3QpOPY,2512
22
- janito/agent/runtime_config.py,sha256=xSx0-RD-WVA9niSCEmEn2ZPLFbQfRhPwwGIa8tid_v8,901
23
- janito/agent/tool_base.py,sha256=b7WJkoCUObFK-WjUXfUm874UmKujYQFAyC7FVkxDOMo,1901
24
- janito/agent/tool_registry.py,sha256=Wa1mNzTBKsxQyFCc2hQgDDRrb-m6TI_XbBGebCzr-6U,4037
25
- janito/agent/tool_registry_core.py,sha256=bF7rRn3ZMpU7JXBFhYQPg2XxczhN572Xc5pbdLBPkvE,148
26
- janito/agent/templates/profiles/system_prompt_template_base.toml,sha256=yXFmiSs-wcbhQsWifCw3EUbak_cLeLEUKiaCSius7W8,3566
27
- janito/agent/templates/profiles/system_prompt_template_default.toml,sha256=RNxWgiaxBd92QNmKnHzCpzZpCUwop33q8BKlSJEd7as,158
28
- janito/agent/templates/profiles/system_prompt_template_technical.toml,sha256=VBCThop4M44TuV7JtfHLeXNKlrOfuV7T0jBgj_Gy2oE,679
29
- janito/agent/tests/test_prompt_toml.py,sha256=f7MitmT-5EIl2NFcy89xWPmBSb5ELhwKmiTH2777rFY,2016
30
- janito/agent/tools/__init__.py,sha256=13ocBokds3I00rQg871yaKNbNDlSGXljcMRpq2FiO-4,1085
31
- janito/agent/tools/ask_user.py,sha256=HHbNGwZiV-ec5Zb3zx9DpwBsWY_fgbHU6AXmbGkHrFA,3195
32
- janito/agent/tools/create_directory.py,sha256=YLDaINn0OJG6DmOsJEu9K0NjTu4sGrGVCNNVxn7U46Q,2156
33
- janito/agent/tools/create_file.py,sha256=wkPpo42KS3958Jialjyt8_Lv0CXIRgOmUI5EJ7wNw3o,2230
34
- janito/agent/tools/fetch_url.py,sha256=xsNdxfyDBj6nLYBsMiQoBr685-TUxRx3s3893F7E2ek,2027
35
- janito/agent/tools/find_files.py,sha256=tyB9WoUHK4qFakiQRKNZR5xyG1U20aJwjptqDef4A_I,2182
36
- janito/agent/tools/get_file_outline.py,sha256=5rxDh_tDu-SDfQQj54Qy3KlBqHPh4QTzg5971ea6QcE,6733
37
- janito/agent/tools/get_lines.py,sha256=TqlhItxUXHpbqEHs2Jnsas2ijXBWWTYHHnFDVAO4hTo,3760
38
- janito/agent/tools/gitignore_utils.py,sha256=fDLyRZmCu6Hqhp1BEN8hs7oG0FtA-1SM9TGDz4g0lbw,1470
39
- janito/agent/tools/memory.py,sha256=ApfXwfggSCa08f-e0pfHVBIjlFpYv_MDiOo7Cah0oYM,2516
40
- janito/agent/tools/move_file.py,sha256=6-90TNlL9JnhWMFCtoy59TRZq2xk6VrP8Mv-EpPDP80,2568
41
- janito/agent/tools/py_compile_file.py,sha256=pfHDXVa75WhO5Io_rXF0DnIB8y2BypoAsS4wNCVANeE,1601
42
- janito/agent/tools/remove_directory.py,sha256=oMme-7e6hZG5Z0Wxu6SpdWjop_yMMZlrBtwkoqfn2NY,2192
43
- janito/agent/tools/remove_file.py,sha256=dq17r-vd61LGS6RLic77BlD6ZzuAjWBBUGtUsX5PCTk,1731
44
- janito/agent/tools/replace_file.py,sha256=oex5dncfny0Lv9om3LVs1u77IOemKZ7Cjh4IRIz_paM,2381
45
- janito/agent/tools/replace_text_in_file.py,sha256=DNafuM6CFTKVEimP6jb9IHglG3BGCezQDLRbqSJ6TfI,5288
46
- janito/agent/tools/rich_live.py,sha256=KpAN-dF0h9LZnYvSK-UKR_sbDnnDw0jUxY3cj_EW_wQ,1215
47
- janito/agent/tools/run_bash_command.py,sha256=bSWpEklSABWwt_p_snahiCCJXOgahaVWZvVu9q1OX68,7372
48
- janito/agent/tools/run_powershell_command.py,sha256=5oEP3_Sf_k9uKBlGwlDxQOVEVG-rgOUdIJqnxF3fHF4,7080
49
- janito/agent/tools/run_python_command.py,sha256=mR8hRWSzBMDI7BbRWBPaun2J6H5V2lstoef1SeOVLYM,6232
50
- janito/agent/tools/search_files.py,sha256=AEcEqm1LnD2avn9jiJoI13PtTOY8cZ5TlwlvO4-sF5w,2914
51
- janito/agent/tools/tools_utils.py,sha256=ud0S8uVe1I3hKQBdQMf_RcYEDt7baTGBGeDd5IU23-o,358
52
- janito/agent/tools/utils.py,sha256=zsW-ROZJYYFeDAhwN0YHMAqsnjfBXPdvJJVAa_TmQ1g,1136
53
- janito/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
- janito/cli/_print_config.py,sha256=C_27QdwzhqorzeJflBFK0f46zTUtqqmdYe3EBurjOOE,3574
55
- janito/cli/_utils.py,sha256=tRAUMDWKczd81ZvKYkwpsHWSeLzQoVlOoQ-lOw9Iujw,291
56
- janito/cli/arg_parser.py,sha256=AXzq6TIRjD7EBWb176CCszMz7LWuCtMu4c0a03XRQk8,5897
57
- janito/cli/config_commands.py,sha256=vfU7XciVMRNR5kDvn6tnCo1PLvSEXg0Y0PzLcDEFI9w,8539
58
- janito/cli/logging_setup.py,sha256=u2FxjJo-klLsY6aHxBuDymDYnuw9bc--1aqqsVeW9jc,1213
59
- janito/cli/main.py,sha256=GYVkD0tTzG91HTVI5ovOELm7QsZK8MKJ2aWkRRQztVQ,1298
60
- janito/cli/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
- janito/cli/runner/cli_main.py,sha256=98M9SGh-KdM4Sw7zVbJciM18wpNawy8nvbXqP5RuJ1w,4928
62
- janito/cli/runner/config.py,sha256=dxF8BdJDRXJc7rR3pMAp3KEw4zo2Y2dlrwRtsK3jam4,1744
63
- janito/cli/runner/formatting.py,sha256=k0mtHoglqR8fKcebSK81iWTT_EL-gDl7eNfjlFZRY6g,287
64
- janito/cli/runner/scan.py,sha256=cOxaiSm_NM5hHzI6RoVROuLhYdpg0xPLN86ocGGOFk0,2107
65
- janito/cli_chat_shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
- janito/cli_chat_shell/chat_loop.py,sha256=Wbjw_2ltrE53jj4-l6itKtzE0-PDytgMTr0ZEHBq4SM,4607
67
- janito/cli_chat_shell/chat_state.py,sha256=5wLSjZV0y5fHyU-Lkl4J4-G2GRY0n7gfcAof3515_Bo,1162
68
- janito/cli_chat_shell/chat_ui.py,sha256=VfDGvRU79FBFXZWzIhi0lTlObssee3SJ7qIqBSiwIDc,1361
69
- janito/cli_chat_shell/config_shell.py,sha256=sG04S_z27wI7nXKMaVDcwDpBCuo6Cvd4uhutUQesJKo,3807
70
- janito/cli_chat_shell/load_prompt.py,sha256=gHedc5TtaFBKiGgwRM_u9nVnBuLHDTSa8VPlPOtoMEA,2125
71
- janito/cli_chat_shell/session_manager.py,sha256=qzCDpAAXx_YZRVF4GwWPwbkxROwj_14jF52QjkjDGP4,2136
72
- janito/cli_chat_shell/ui.py,sha256=sra742hbgGh5-lBR_GcZMrj68tnDFWYOMMMJj-RAy1M,6879
73
- janito/cli_chat_shell/commands/__init__.py,sha256=9awuBXqZ_jWCigM86qFzDJ-1HZrIw5byPlGKGqTOBOQ,1436
74
- janito/cli_chat_shell/commands/config.py,sha256=JTQwIuSBunxDwvGsU_Cu78GkQNYCtDFTPZ7HOxNOZCY,945
75
- janito/cli_chat_shell/commands/history_reset.py,sha256=GBY8Cpcm2yE1C3DhiWWQwS7WFYPxoJ3LPmD0hCx8ut8,1017
76
- janito/cli_chat_shell/commands/session.py,sha256=64H9UYB-LRSWzMar_C7iNM06MqrKmpRm_Dk9XXIMCiM,1739
77
- janito/cli_chat_shell/commands/session_control.py,sha256=7G4XYfI22fHguJgIbIrbcQ_fIbcrvd1gBBXRuYUqtBU,333
78
- janito/cli_chat_shell/commands/sum.py,sha256=S_46ubHUnGoLNwL5_0VeDmA5YYo99aX8baZuBdU1gZ8,1829
79
- janito/cli_chat_shell/commands/system.py,sha256=ixKp6JLagcs6zsXsmTvzSNY4TUFIVzRxhiZfLvI-OJU,2717
80
- janito/cli_chat_shell/commands/utility.py,sha256=QUa35hppatRLY24DuXiEIn7gCIcNz4w4qbkRC157QOU,936
81
- janito/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
- janito/web/__main__.py,sha256=5Ck6okOZmxKYkQ-ir4mxXDH7XWMNR-9szgsm0UyQLE0,734
83
- janito/web/app.py,sha256=Uvl6gHxkWPov_iD1mhx8Nwt3WZK2rFw7Sgfw7-5qhRk,7357
84
- janito-1.7.0.dist-info/licenses/LICENSE,sha256=sHBqv0bvtrb29H7WRR-Z603YHm9pLtJIo3nHU_9cmgE,1091
85
- janito-1.7.0.dist-info/METADATA,sha256=LPIYR8A5UejBMfHNFbLF73qJmDcC0CKm6KQLVbyDf9Y,11062
86
- janito-1.7.0.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
87
- janito-1.7.0.dist-info/entry_points.txt,sha256=wIo5zZxbmu4fC-ZMrsKD0T0vq7IqkOOLYhrqRGypkx4,48
88
- janito-1.7.0.dist-info/top_level.txt,sha256=m0NaVCq0-ivxbazE2-ND0EA9Hmuijj_OGkmCbnBcCig,7
89
- janito-1.7.0.dist-info/RECORD,,