janito 3.5.1__py3-none-any.whl → 3.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.
Files changed (161) hide show
  1. janito/README.md +1 -4
  2. janito/cli/chat_mode/bindings.py +0 -50
  3. janito/cli/chat_mode/session.py +1 -12
  4. janito/cli/chat_mode/shell/commands/multi.py +0 -5
  5. janito/cli/chat_mode/shell/commands/security/allowed_sites.py +33 -47
  6. janito/cli/cli_commands/list_plugins.py +43 -52
  7. janito/cli/core/getters.py +0 -3
  8. janito/cli/core/model_guesser.py +24 -40
  9. janito/cli/main_cli.py +12 -9
  10. janito/cli/prompt_core.py +9 -47
  11. janito/cli/rich_terminal_reporter.py +2 -2
  12. janito/docs/GETTING_STARTED.md +1 -1
  13. janito/drivers/openai/driver.py +0 -1
  14. janito/drivers/zai/driver.py +0 -1
  15. janito/i18n/it.py +46 -46
  16. janito/llm/agent.py +16 -32
  17. janito/llm/auth_utils.py +5 -14
  18. janito/llm/driver.py +0 -8
  19. janito/plugins/__init__.py +12 -31
  20. janito/plugins/auto_loader.py +11 -12
  21. janito/plugins/auto_loader_fixed.py +11 -12
  22. janito/{plugin_system → plugins}/base.py +2 -5
  23. janito/plugins/builtin.py +1 -15
  24. janito/plugins/core_adapter.py +11 -89
  25. janito/plugins/core_loader.py +120 -0
  26. janito/plugins/core_loader_fixed.py +125 -0
  27. janito/plugins/discovery.py +5 -5
  28. janito/plugins/discovery_core.py +9 -14
  29. janito/plugins/manager.py +1 -1
  30. janito/providers/__init__.py +0 -1
  31. janito/providers/moonshot/model_info.py +11 -0
  32. janito/tools/__init__.py +7 -31
  33. janito/tools/adapters/__init__.py +1 -6
  34. janito/tools/adapters/local/__init__.py +70 -7
  35. janito/{plugins/tools → tools/adapters/local}/ask_user.py +3 -3
  36. janito/{plugins/tools → tools/adapters/local}/create_file.py +6 -6
  37. janito/{plugins/tools → tools/adapters/local}/fetch_url.py +3 -3
  38. janito/{plugins/tools → tools/adapters/local}/python_code_run.py +7 -23
  39. janito/{plugins/tools → tools/adapters/local}/python_command_run.py +5 -21
  40. janito/{plugins/tools → tools/adapters/local}/python_file_run.py +5 -21
  41. janito/{plugins/tools → tools/adapters/local}/replace_text_in_file.py +4 -4
  42. janito/{plugins/tools → tools/adapters/local}/run_bash_command.py +3 -3
  43. janito/{plugins/tools → tools/adapters/local}/run_powershell_command.py +3 -3
  44. janito/{plugins/tools → tools/adapters/local}/show_image.py +6 -15
  45. janito/{plugins/core/imagedisplay/tools → tools/adapters/local}/show_image_grid.py +5 -13
  46. janito/tools/function_adapter.py +65 -0
  47. janito/tools/loop_protection_decorator.py +117 -114
  48. janito-3.7.0.dist-info/METADATA +84 -0
  49. {janito-3.5.1.dist-info → janito-3.7.0.dist-info}/RECORD +88 -157
  50. janito/cli/cli_commands/check_tools.py +0 -212
  51. janito/llm/cancellation_manager.py +0 -63
  52. janito/llm/enter_cancellation.py +0 -107
  53. janito/plugin_system/__init__.py +0 -10
  54. janito/plugin_system/core_loader.py +0 -217
  55. janito/plugin_system/core_loader_fixed.py +0 -225
  56. janito/plugins/core/__init__.py +0 -7
  57. janito/plugins/core/codeanalyzer/__init__.py +0 -43
  58. janito/plugins/core/filemanager/__init__.py +0 -124
  59. janito/plugins/core/filemanager/tools/create_file.py +0 -87
  60. janito/plugins/core/filemanager/tools/replace_text_in_file.py +0 -270
  61. janito/plugins/core/imagedisplay/__init__.py +0 -14
  62. janito/plugins/core/imagedisplay/plugin.py +0 -51
  63. janito/plugins/core/imagedisplay/tools/__init__.py +0 -1
  64. janito/plugins/core/imagedisplay/tools/show_image.py +0 -83
  65. janito/plugins/core/system/__init__.py +0 -23
  66. janito/plugins/core/system/tools/run_bash_command.py +0 -204
  67. janito/plugins/core/system/tools/run_powershell_command.py +0 -234
  68. janito/plugins/dev/__init__.py +0 -7
  69. janito/plugins/dev/pythondev/__init__.py +0 -37
  70. janito/plugins/dev/visualization/__init__.py +0 -23
  71. janito/plugins/example_plugin.py +0 -108
  72. janito/plugins/tools/__init__.py +0 -10
  73. janito/plugins/tools/copy_file.py +0 -87
  74. janito/plugins/tools/core_tools_plugin.py +0 -87
  75. janito/plugins/tools/create_directory.py +0 -70
  76. janito/plugins/tools/decorators.py +0 -19
  77. janito/plugins/tools/delete_text_in_file.py +0 -134
  78. janito/plugins/tools/find_files.py +0 -143
  79. janito/plugins/tools/get_file_outline/__init__.py +0 -7
  80. janito/plugins/tools/get_file_outline/core.py +0 -122
  81. janito/plugins/tools/get_file_outline/java_outline.py +0 -47
  82. janito/plugins/tools/get_file_outline/markdown_outline.py +0 -14
  83. janito/plugins/tools/get_file_outline/python_outline.py +0 -303
  84. janito/plugins/tools/get_file_outline/search_outline.py +0 -36
  85. janito/plugins/tools/move_file.py +0 -131
  86. janito/plugins/tools/open_html_in_browser.py +0 -51
  87. janito/plugins/tools/open_url.py +0 -37
  88. janito/plugins/tools/read_chart.py +0 -259
  89. janito/plugins/tools/read_files.py +0 -58
  90. janito/plugins/tools/remove_directory.py +0 -55
  91. janito/plugins/tools/remove_file.py +0 -58
  92. janito/plugins/tools/search_text/__init__.py +0 -7
  93. janito/plugins/tools/search_text/core.py +0 -205
  94. janito/plugins/tools/search_text/match_lines.py +0 -67
  95. janito/plugins/tools/search_text/pattern_utils.py +0 -73
  96. janito/plugins/tools/search_text/traverse_directory.py +0 -145
  97. janito/plugins/tools/show_image_grid.py +0 -85
  98. janito/plugins/tools/validate_file_syntax/__init__.py +0 -7
  99. janito/plugins/tools/validate_file_syntax/core.py +0 -114
  100. janito/plugins/tools/validate_file_syntax/css_validator.py +0 -35
  101. janito/plugins/tools/validate_file_syntax/html_validator.py +0 -100
  102. janito/plugins/tools/validate_file_syntax/jinja2_validator.py +0 -50
  103. janito/plugins/tools/validate_file_syntax/js_validator.py +0 -27
  104. janito/plugins/tools/validate_file_syntax/json_validator.py +0 -6
  105. janito/plugins/tools/validate_file_syntax/markdown_validator.py +0 -109
  106. janito/plugins/tools/validate_file_syntax/ps1_validator.py +0 -32
  107. janito/plugins/tools/validate_file_syntax/python_validator.py +0 -5
  108. janito/plugins/tools/validate_file_syntax/xml_validator.py +0 -11
  109. janito/plugins/tools/validate_file_syntax/yaml_validator.py +0 -6
  110. janito/plugins/tools/view_file.py +0 -172
  111. janito/plugins/ui/__init__.py +0 -7
  112. janito/plugins/ui/userinterface/__init__.py +0 -16
  113. janito/plugins/ui/userinterface/tools/ask_user.py +0 -110
  114. janito/plugins/web/__init__.py +0 -7
  115. janito/plugins/web/webtools/__init__.py +0 -33
  116. janito/plugins/web/webtools/tools/fetch_url.py +0 -458
  117. janito/providers/together/__init__.py +0 -1
  118. janito/providers/together/model_info.py +0 -69
  119. janito/providers/together/provider.py +0 -108
  120. janito/tools/cli_initializer.py +0 -88
  121. janito/tools/initialize.py +0 -70
  122. janito-3.5.1.dist-info/METADATA +0 -229
  123. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/copy_file.py +0 -0
  124. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/create_directory.py +0 -0
  125. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/delete_text_in_file.py +0 -0
  126. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/find_files.py +0 -0
  127. /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/get_file_outline/__init__.py +0 -0
  128. /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/get_file_outline/core.py +0 -0
  129. /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/get_file_outline/java_outline.py +0 -0
  130. /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/get_file_outline/markdown_outline.py +0 -0
  131. /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/get_file_outline/python_outline.py +0 -0
  132. /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/get_file_outline/search_outline.py +0 -0
  133. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/move_file.py +0 -0
  134. /janito/{plugins/web/webtools/tools → tools/adapters/local}/open_html_in_browser.py +0 -0
  135. /janito/{plugins/web/webtools/tools → tools/adapters/local}/open_url.py +0 -0
  136. /janito/{plugins/dev/visualization/tools → tools/adapters/local}/read_chart.py +0 -0
  137. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/read_files.py +0 -0
  138. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/remove_directory.py +0 -0
  139. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/remove_file.py +0 -0
  140. /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/search_text/__init__.py +0 -0
  141. /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/search_text/core.py +0 -0
  142. /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/search_text/match_lines.py +0 -0
  143. /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/search_text/pattern_utils.py +0 -0
  144. /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/search_text/traverse_directory.py +0 -0
  145. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/__init__.py +0 -0
  146. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/core.py +0 -0
  147. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/css_validator.py +0 -0
  148. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/html_validator.py +0 -0
  149. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/jinja2_validator.py +0 -0
  150. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/js_validator.py +0 -0
  151. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/json_validator.py +0 -0
  152. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/markdown_validator.py +0 -0
  153. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/ps1_validator.py +0 -0
  154. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/python_validator.py +0 -0
  155. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/xml_validator.py +0 -0
  156. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/yaml_validator.py +0 -0
  157. /janito/{plugins/core/filemanager/tools → tools/adapters/local}/view_file.py +0 -0
  158. {janito-3.5.1.dist-info → janito-3.7.0.dist-info}/WHEEL +0 -0
  159. {janito-3.5.1.dist-info → janito-3.7.0.dist-info}/entry_points.txt +0 -0
  160. {janito-3.5.1.dist-info → janito-3.7.0.dist-info}/licenses/LICENSE +0 -0
  161. {janito-3.5.1.dist-info → janito-3.7.0.dist-info}/top_level.txt +0 -0
@@ -1,88 +0,0 @@
1
- """
2
- CLI-specific tool initialization for janito.
3
-
4
- This module provides functions to initialize tools specifically for CLI usage,
5
- handling circular imports and ensuring proper registration.
6
- """
7
-
8
- import sys
9
- from pathlib import Path
10
- from typing import List, Optional
11
-
12
- # Ensure current directory is in path
13
- sys.path.insert(0, str(Path.cwd()))
14
-
15
-
16
- def initialize_cli_tools():
17
- """Initialize tools for CLI usage, avoiding circular imports."""
18
- try:
19
- from janito.tools.adapters.local.adapter import LocalToolsAdapter
20
- from janito.plugin_system.core_loader_fixed import load_core_plugin
21
- from janito.tools.permissions import set_global_allowed_permissions
22
- from janito.tools.tool_base import ToolPermissions
23
-
24
- # Create adapter
25
- adapter = LocalToolsAdapter()
26
-
27
- # Set permissions for CLI
28
- set_global_allowed_permissions(
29
- ToolPermissions(read=True, write=True, execute=True)
30
- )
31
-
32
- # Core plugins to load
33
- core_plugins = [
34
- "core.filemanager",
35
- "core.codeanalyzer",
36
- "core.system",
37
- "core.imagedisplay",
38
- "dev.pythondev",
39
- "dev.visualization",
40
- ]
41
-
42
- loaded_count = 0
43
- for plugin_name in core_plugins:
44
- plugin = load_core_plugin(plugin_name)
45
- if plugin:
46
- tools = plugin.get_tools()
47
- for tool_class in tools:
48
- try:
49
- adapter.register_tool(tool_class)
50
- loaded_count += 1
51
- except ValueError:
52
- # Tool already registered, skip
53
- pass
54
-
55
- return adapter, loaded_count
56
-
57
- except Exception as e:
58
- print(f"Error initializing CLI tools: {e}", file=sys.stderr)
59
- return None, 0
60
-
61
-
62
- def get_cli_tools_adapter():
63
- """Get a CLI-initialized tools adapter."""
64
- adapter, count = initialize_cli_tools()
65
- if adapter and count > 0:
66
- return adapter
67
- return None
68
-
69
-
70
- def list_cli_tools():
71
- """List all available CLI tools."""
72
- adapter = get_cli_tools_adapter()
73
- if not adapter:
74
- return []
75
-
76
- return adapter.list_tools()
77
-
78
-
79
- if __name__ == "__main__":
80
- adapter, count = initialize_cli_tools()
81
- if adapter:
82
- tools = adapter.list_tools()
83
- print(f"CLI initialized {count} tools")
84
- print(f"Available tools: {len(tools)}")
85
- for tool in sorted(tools):
86
- print(f" - {tool}")
87
- else:
88
- print("Failed to initialize CLI tools")
@@ -1,70 +0,0 @@
1
- """
2
- Initialize janito tools for CLI and programmatic usage.
3
-
4
- This module provides functions to load core plugins and register their tools
5
- with the local tools adapter.
6
- """
7
-
8
- import sys
9
- from pathlib import Path
10
- from typing import List, Optional
11
-
12
- from janito.plugin_system.core_loader_fixed import load_core_plugin
13
- from janito.tools.adapters.local.adapter import LocalToolsAdapter
14
-
15
-
16
- def initialize_tools(adapter: Optional[LocalToolsAdapter] = None) -> LocalToolsAdapter:
17
- """
18
- Initialize all janito tools by loading core plugins and registering tools.
19
-
20
- Args:
21
- adapter: LocalToolsAdapter instance to register tools with.
22
- If None, creates a new instance.
23
-
24
- Returns:
25
- LocalToolsAdapter with all tools registered.
26
- """
27
- if adapter is None:
28
- adapter = LocalToolsAdapter()
29
-
30
- # Core plugins to load
31
- core_plugins = [
32
- "core.filemanager",
33
- "core.codeanalyzer",
34
- "core.system",
35
- "core.imagedisplay",
36
- "dev.pythondev",
37
- "dev.visualization",
38
- ]
39
-
40
- loaded_count = 0
41
- for plugin_name in core_plugins:
42
- plugin = load_core_plugin(plugin_name)
43
- if plugin:
44
- tools = plugin.get_tools()
45
- for tool_class in tools:
46
- adapter.register_tool(tool_class)
47
- loaded_count += 1
48
-
49
- return adapter
50
-
51
-
52
- def get_initialized_adapter() -> LocalToolsAdapter:
53
- """Get a pre-initialized LocalToolsAdapter with all tools registered."""
54
- return initialize_tools()
55
-
56
-
57
- def list_available_tools() -> List[str]:
58
- """Get a list of all available tool names."""
59
- adapter = get_initialized_adapter()
60
- return sorted(list(adapter._tools.keys()))
61
-
62
-
63
- if __name__ == "__main__":
64
- adapter = initialize_tools()
65
- tools = sorted(list(adapter._tools.keys()))
66
-
67
- print(f"Initialized {len(tools)} tools")
68
- print("Available tools:")
69
- for tool_name in tools:
70
- print(f" - {tool_name}")
@@ -1,229 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: janito
3
- Version: 3.5.1
4
- Summary: A new Python package called janito.
5
- Author-email: João Pinto <janito@ikignosis.org>
6
- Project-URL: Homepage, https://github.com/ikignosis/janito
7
- Requires-Python: >=3.7
8
- Description-Content-Type: text/markdown
9
- License-File: LICENSE
10
- Requires-Dist: attrs==25.3.0
11
- Requires-Dist: rich==14.0.0
12
- Requires-Dist: pathspec==0.12.1
13
- Requires-Dist: setuptools>=61.0
14
- Requires-Dist: pyyaml>=6.0
15
- Requires-Dist: jinja2>=3.0.0
16
- Requires-Dist: prompt_toolkit>=3.0.51
17
- Requires-Dist: lxml>=5.4.0
18
- Requires-Dist: requests>=2.32.4
19
- Requires-Dist: bs4>=0.0.2
20
- Requires-Dist: questionary>=2.0.1
21
- Requires-Dist: openai>=1.68.0
22
- Requires-Dist: Pillow>=10.0.0
23
- Provides-Extra: dev
24
- Requires-Dist: pytest; extra == "dev"
25
- Requires-Dist: pre-commit; extra == "dev"
26
- Requires-Dist: ruff==0.11.9; extra == "dev"
27
- Requires-Dist: detect-secrets==1.4.0; extra == "dev"
28
- Requires-Dist: codespell==2.4.1; extra == "dev"
29
- Requires-Dist: black; extra == "dev"
30
- Requires-Dist: questionary>=2.0.1; extra == "dev"
31
- Requires-Dist: setuptools_scm>=8.0; extra == "dev"
32
- Provides-Extra: coder
33
- Dynamic: license-file
34
-
35
- # Janito CLI
36
-
37
- A powerful command-line tool for running LLM-powered workflows with built-in tool execution capabilities.
38
-
39
- ## Quick Start
40
-
41
- ### Installation
42
-
43
- ```bash
44
- pip install janito
45
- ```
46
-
47
- ### First-Time Setup
48
-
49
- 1. **Get your API key**: Sign up at [Moonshot AI](https://platform.moonshot.cn/) and get your API key
50
- 2. **Set your API key**:
51
- ```bash
52
- janito --set-api-key YOUR_MOONSHOT_API_KEY -p moonshot
53
- ```
54
-
55
- ### Basic Usage
56
-
57
- **Moonshot (Recommended - Default Provider)**
58
- ```bash
59
- # Using the default provider (moonshot) and model
60
- janito "Create a Python script that reads a CSV file"
61
-
62
- # Using a specific Moonshot model
63
- janito -m kimi-k1-8k "Explain quantum computing"
64
- ```
65
-
66
- **Other Providers**
67
- ```bash
68
- # OpenAI
69
- janito -p openai -m gpt-4 "Write a React component"
70
-
71
- # Anthropic
72
- janito -p anthropic -m claude-3-5-sonnet-20241022 "Analyze this code"
73
-
74
- # Google
75
- janito -p google -m gemini-2.0-flash-exp "Generate unit tests"
76
- ```
77
-
78
- ### Interactive Chat Mode
79
-
80
- Start an interactive session (default mode):
81
- ```bash
82
- janito
83
- ```
84
-
85
- Or explicitly:
86
- ```bash
87
- janito --chat
88
- ```
89
-
90
- In chat mode, you can:
91
-
92
- - Have multi-turn conversations
93
- - Execute code and commands
94
- - Read and write files
95
- - Use built-in tools
96
-
97
- ### Available Commands
98
-
99
- - `janito --list-providers` - List all supported providers
100
- - `janito --list-models` - List all available models
101
- - `janito --list-tools` - List available tools
102
- - `janito --show-config` - Show current configuration
103
-
104
- ### Configuration
105
-
106
- Set default provider and model:
107
- ```bash
108
- janito --set provider=moonshot
109
- janito --set model=kimi-k1-8k
110
- ```
111
-
112
- ## Providers
113
-
114
- ### Moonshot (Recommended)
115
-
116
- - **Models**: kimi-k1-8k, kimi-k1-32k, kimi-k1-128k, kimi-k2-turbo-preview
117
- - **Strengths**: Excellent Chinese/English support, competitive pricing, fast responses
118
- - **Setup**: Get API key from [Moonshot AI Platform](https://platform.moonshot.cn/)
119
-
120
- ### OpenAI
121
-
122
- - **Models**: gpt-5, gpt-4.1, gpt-4o, gpt-4-turbo, gpt-3.5-turbo
123
- - **Setup**: Get API key from [OpenAI Platform](https://platform.openai.com/)
124
-
125
- ### Anthropic
126
-
127
- - **Models**: claude-3-7-sonnet-20250219, claude-3-5-sonnet-20241022, claude-3-opus-20250514
128
- - **Setup**: Get API key from [Anthropic Console](https://console.anthropic.com/)
129
-
130
- ### IBM WatsonX
131
-
132
- - **Models**: ibm/granite-3-8b-instruct, ibm/granite-3-2b-instruct, meta-llama/llama-3-1-8b-instruct, meta-llama/llama-3-1-70b-instruct, mistralai/mistral-large
133
- - **Strengths**: Enterprise-grade AI, IBM Granite models, hosted Llama and Mistral models
134
- - **Setup**: Get API key and project ID from [IBM Cloud](https://cloud.ibm.com/)
135
-
136
- ### Google
137
-
138
- - **Models**: gemini-2.5-flash, gemini-2.5-pro, gemini-2.5-flash-lite-preview-06-17
139
- - **Setup**: Get API key from [Google AI Studio](https://makersuite.google.com/)
140
-
141
- ## Advanced Features
142
-
143
- ### 🚀 New in v3.1.0: Enter Key Cancellation
144
- **Chat Mode Enhancement**: Press **Enter** at any time to instantly cancel long-running requests in interactive chat mode. No more waiting for stuck requests!
145
-
146
- ### Tool Usage
147
-
148
- Janito includes powerful built-in tools for:
149
-
150
- - File operations (read, write, search)
151
- - Code execution
152
- - Web scraping
153
- - System commands
154
- - And more...
155
-
156
- ### Profiles
157
- Use predefined system prompts:
158
- ```bash
159
- janito --developer "Create a REST API" # Same as --profile developer
160
- janito --market "Analyze market trends" # Same as --profile market-analyst
161
- ```
162
-
163
- ### Environment Variables
164
- You can also configure via environment variables:
165
-
166
- **Moonshot:**
167
- ```bash
168
- export MOONSHOT_API_KEY=your_key_here
169
- export JANITO_PROVIDER=moonshot
170
- export JANITO_MODEL=kimi-k1-8k
171
- ```
172
-
173
- **OpenAI:**
174
- ```bash
175
- export OPENAI_API_KEY=your_key_here
176
- export JANITO_PROVIDER=openai
177
- export JANITO_MODEL=gpt-5
178
- ```
179
-
180
- **IBM WatsonX:**
181
- ```bash
182
- export WATSONX_API_KEY=your_key_here
183
- export WATSONX_PROJECT_ID=your_project_id
184
- export WATSONX_SPACE_ID=your_space_id # optional
185
- export JANITO_PROVIDER=ibm
186
- export JANITO_MODEL=ibm/granite-3-8b-instruct
187
- ```
188
-
189
- **Anthropic:**
190
- ```bash
191
- export ANTHROPIC_API_KEY=your_key_here
192
- export JANITO_PROVIDER=anthropic
193
- export JANITO_MODEL=claude-3-7-sonnet-20250219
194
- ```
195
-
196
- **Google:**
197
- ```bash
198
- export GOOGLE_API_KEY=your_key_here
199
- export JANITO_PROVIDER=google
200
- export JANITO_MODEL=gemini-2.5-flash
201
- ```
202
-
203
- ## Examples
204
-
205
- ### Code Generation
206
- ```bash
207
- janito "Create a Python FastAPI application with user authentication"
208
- ```
209
-
210
- ### File Analysis
211
- ```bash
212
- janito "Analyze the performance bottlenecks in my_app.py"
213
- ```
214
-
215
- ### Data Processing
216
- ```bash
217
- janito "Process this CSV file and generate summary statistics"
218
- ```
219
-
220
- ### Web Development
221
- ```bash
222
- janito "Create a responsive landing page with Tailwind CSS"
223
- ```
224
-
225
- ## Support
226
-
227
- - **Documentation**: Check individual provider directories for detailed setup guides
228
- - **Issues**: Report bugs and feature requests on GitHub
229
- - **Discord**: Join our community for help and discussions
File without changes