steinn 0.1.0a1__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 (50) hide show
  1. steinn-0.1.0a1.dist-info/METADATA +152 -0
  2. steinn-0.1.0a1.dist-info/RECORD +50 -0
  3. steinn-0.1.0a1.dist-info/WHEEL +4 -0
  4. steinn-0.1.0a1.dist-info/entry_points.txt +3 -0
  5. steinn-0.1.0a1.dist-info/licenses/LICENSE +26 -0
  6. steinn_ai/__init__.py +14 -0
  7. steinn_ai/__main__.py +14 -0
  8. steinn_ai/agent/__init__.py +1 -0
  9. steinn_ai/agent/auth.py +808 -0
  10. steinn_ai/agent/budget.py +168 -0
  11. steinn_ai/agent/client.py +72 -0
  12. steinn_ai/agent/context.py +366 -0
  13. steinn_ai/agent/conversation.py +52 -0
  14. steinn_ai/agent/environment.py +260 -0
  15. steinn_ai/agent/mcp/__init__.py +24 -0
  16. steinn_ai/agent/mcp/client.py +110 -0
  17. steinn_ai/agent/mcp/config.py +116 -0
  18. steinn_ai/agent/mcp/convert.py +47 -0
  19. steinn_ai/agent/mcp/manager.py +101 -0
  20. steinn_ai/agent/permissions.py +208 -0
  21. steinn_ai/agent/stream.py +435 -0
  22. steinn_ai/agent/templates/callback_error.html +89 -0
  23. steinn_ai/agent/templates/callback_success.html +89 -0
  24. steinn_ai/agent/tools/__init__.py +166 -0
  25. steinn_ai/agent/tools/bash.py +35 -0
  26. steinn_ai/agent/tools/codebase.py +637 -0
  27. steinn_ai/agent/tools/definitions.py +135 -0
  28. steinn_ai/agent/tools/file.py +436 -0
  29. steinn_ai/agent/tools/web.py +91 -0
  30. steinn_ai/cli.py +78 -0
  31. steinn_ai/config.py +161 -0
  32. steinn_ai/exceptions.py +59 -0
  33. steinn_ai/indexer.py +497 -0
  34. steinn_ai/init.py +2213 -0
  35. steinn_ai/logger.py +90 -0
  36. steinn_ai/parser/__init__.py +85 -0
  37. steinn_ai/parser/fallback.py +119 -0
  38. steinn_ai/parser/languages.py +152 -0
  39. steinn_ai/parser/treesitter.py +718 -0
  40. steinn_ai/parser/usages.py +642 -0
  41. steinn_ai/repl/__init__.py +1 -0
  42. steinn_ai/repl/commands.py +144 -0
  43. steinn_ai/repl/loop.py +1338 -0
  44. steinn_ai/repl/mermaid.py +371 -0
  45. steinn_ai/repl/prompt.py +598 -0
  46. steinn_ai/repl/render.py +1874 -0
  47. steinn_ai/repl/select.py +296 -0
  48. steinn_ai/repl/theme.py +170 -0
  49. steinn_ai/telemetry.py +106 -0
  50. steinn_ai/watcher.py +337 -0
@@ -0,0 +1,152 @@
1
+ Metadata-Version: 2.4
2
+ Name: steinn
3
+ Version: 0.1.0a1
4
+ Summary: Steinn AI — an AI coding assistant
5
+ License: Copyright (c) 2026 Steinn Labs Pvt Ltd. All rights reserved.
6
+
7
+ The Steinn AI CLI ("the Software") is proprietary software of Steinn Labs
8
+ Pvt Ltd. The Software is publicly distributed via package registries (PyPI,
9
+ Homebrew) so that end users may install and run it for its intended
10
+ purpose. No other rights are granted.
11
+
12
+ In particular, no right is granted to:
13
+ - copy or redistribute the Software,
14
+ - modify the Software or create derivative works,
15
+ - reverse-engineer, decompile, or disassemble the Software,
16
+ - sub-license, rent, lease, or sell the Software,
17
+ except as expressly permitted in a written agreement with Steinn Labs Pvt Ltd.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT.
22
+ IN NO EVENT SHALL STEINN LABS PVT LTD BE LIABLE FOR ANY CLAIM, DAMAGES, OR
23
+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE,
24
+ ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25
+ OTHER DEALINGS IN THE SOFTWARE.
26
+
27
+ This file is a placeholder. Replace it with the finalised end-user
28
+ license agreement reviewed by legal counsel before public release.
29
+
30
+ For licensing inquiries: legal@steinn.ai
31
+ License-File: LICENSE
32
+ Author: Jeet Patel
33
+ Author-email: jeet@steinnlabs.com
34
+ Requires-Python: >=3.12
35
+ Classifier: Development Status :: 3 - Alpha
36
+ Classifier: Environment :: Console
37
+ Classifier: Intended Audience :: Developers
38
+ Classifier: License :: Other/Proprietary License
39
+ Classifier: Operating System :: OS Independent
40
+ Classifier: Programming Language :: Python :: 3.12
41
+ Classifier: Topic :: Software Development
42
+ Requires-Dist: ddgs (>=9.13.0,<10.0.0)
43
+ Requires-Dist: httpx (>=0.28.0,<0.29.0)
44
+ Requires-Dist: keyring (>=25.6.0,<26.0.0)
45
+ Requires-Dist: mcp (>=1.27.0,<2.0.0)
46
+ Requires-Dist: platformdirs (>=4.0.0,<5.0.0)
47
+ Requires-Dist: prompt-toolkit (>=3.0.50,<4.0.0)
48
+ Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
49
+ Requires-Dist: rich (>=14.0.0,<15.0.0)
50
+ Requires-Dist: sentry-sdk (>=2.20.0,<3.0.0)
51
+ Requires-Dist: structlog (>=25.0.0,<26.0.0)
52
+ Requires-Dist: term-image (>=0.7.1,<0.8.0)
53
+ Requires-Dist: trafilatura (>=2.0.0,<3.0.0)
54
+ Requires-Dist: tree-sitter (==0.25.2)
55
+ Requires-Dist: tree-sitter-bash (==0.25.1)
56
+ Requires-Dist: tree-sitter-c (==0.24.2)
57
+ Requires-Dist: tree-sitter-c-sharp (==0.23.5)
58
+ Requires-Dist: tree-sitter-cpp (==0.23.4)
59
+ Requires-Dist: tree-sitter-css (==0.25.0)
60
+ Requires-Dist: tree-sitter-elixir (==0.3.5)
61
+ Requires-Dist: tree-sitter-go (==0.25.0)
62
+ Requires-Dist: tree-sitter-html (==0.23.2)
63
+ Requires-Dist: tree-sitter-java (==0.23.5)
64
+ Requires-Dist: tree-sitter-javascript (==0.25.0)
65
+ Requires-Dist: tree-sitter-kotlin (==1.1.0)
66
+ Requires-Dist: tree-sitter-lua (==0.5.0)
67
+ Requires-Dist: tree-sitter-php (==0.24.1)
68
+ Requires-Dist: tree-sitter-python (==0.25.0)
69
+ Requires-Dist: tree-sitter-ruby (==0.23.1)
70
+ Requires-Dist: tree-sitter-rust (==0.24.2)
71
+ Requires-Dist: tree-sitter-scala (==0.26.0)
72
+ Requires-Dist: tree-sitter-swift (==0.7.3)
73
+ Requires-Dist: tree-sitter-typescript (==0.23.2)
74
+ Requires-Dist: watchdog (>=4.0.0,<6.0.0)
75
+ Project-URL: Homepage, https://stg.steinn.ai
76
+ Project-URL: Privacy, https://stg.steinn.ai/privacy
77
+ Description-Content-Type: text/markdown
78
+
79
+ # Steinn AI
80
+
81
+ > AI coding assistant in your terminal.
82
+
83
+ > ⚠️ **Alpha** — license, terms, and behavior subject to change. Telemetry is on by default; see Privacy below.
84
+
85
+ ---
86
+
87
+ ## Install
88
+
89
+ ```bash
90
+ pipx install --pip-args="--pre" steinn
91
+ ```
92
+
93
+ Requires Python 3.12 or later. The `--pre` flag is needed while Steinn
94
+ is in alpha; drop it once the first stable release is out. Full install
95
+ options, including standalone binaries, are in [INSTALL.md](INSTALL.md).
96
+
97
+ ---
98
+
99
+ ## Quickstart
100
+
101
+ ```bash
102
+ steinn
103
+ ```
104
+
105
+ First run opens a browser to sign in. After login, ask anything:
106
+
107
+ ```
108
+ > explain src/auth.py
109
+ > what does this repo do?
110
+ > fix the bug in services/auth/session.py
111
+ ```
112
+
113
+ ---
114
+
115
+ ## Commands
116
+
117
+ | Command | Description |
118
+ | --------- | ------------------------------ |
119
+ | `/help` | Show all commands |
120
+ | `/login` | Sign in |
121
+ | `/logout` | Sign out |
122
+ | `/clear` | Reset the current conversation |
123
+ | `/exit` | Quit |
124
+
125
+ ---
126
+
127
+ ## Privacy & telemetry
128
+
129
+ Steinn sends prompt content and any file content the assistant reads to inference providers in real time. The CLI also collects anonymous crash reports and usage counts by default.
130
+
131
+ To disable telemetry:
132
+
133
+ ```bash
134
+ export STEINN_TELEMETRY=0
135
+ ```
136
+
137
+ Full privacy policy: <https://stg.steinn.ai/privacy>
138
+
139
+ ---
140
+
141
+ ## Support
142
+
143
+ jeet@steinnlabs.com
144
+
145
+ ---
146
+
147
+ ## License
148
+
149
+ Proprietary. See [LICENSE](LICENSE).
150
+
151
+ Copyright 2026 Steinn Labs Pvt Ltd. All rights reserved.
152
+
@@ -0,0 +1,50 @@
1
+ steinn_ai/__init__.py,sha256=k7CTFmSctPRArECzrlpzn02BXVZJJHuT6FkYUotlauY,438
2
+ steinn_ai/__main__.py,sha256=R9W4UdDzLZt_fR9YA1GF6W9LebR4JMCJeFLoEW2tZPk,346
3
+ steinn_ai/agent/__init__.py,sha256=VfMah9FPAEgpzH0RqS0LUGQLxwMfjtilP1pf-aWS0Yw,66
4
+ steinn_ai/agent/auth.py,sha256=xamLDnfRojriPnvlKhdoU3Zda4KvFqcngx9sUlArOCU,26908
5
+ steinn_ai/agent/budget.py,sha256=Hd5VLhtU5FNtaUKjil25WxeKTidsMC_AxZzyLq_kxto,4990
6
+ steinn_ai/agent/client.py,sha256=W38o0osvOnUiCeLy3mnICI36aAkytHgVpKJGwxHQQKU,2163
7
+ steinn_ai/agent/context.py,sha256=Y6v6n5ddrXR_vNe93cKHQMwmYJkRpNStPLY176bz-Fw,12221
8
+ steinn_ai/agent/conversation.py,sha256=qlfZJ5dlSmGDFpoHQPmnvHZ0sXCW7n11m9tDy21pBCw,1544
9
+ steinn_ai/agent/environment.py,sha256=i6iCYcIaDXnMMJy1kBt9NXxF96pHUpjkeondAKlu46g,8113
10
+ steinn_ai/agent/mcp/__init__.py,sha256=2rzbiUzVirXDTPrmEuxpgSfyGIsuEOEdIYDc4nSoOvs,713
11
+ steinn_ai/agent/mcp/client.py,sha256=FP4xv391h_zd8JFoZnMaNjrx18pmslrvJHlfdLuakZc,3651
12
+ steinn_ai/agent/mcp/config.py,sha256=T4I3-thHk31FyH-1GLV3AwGBlIhdy0lsczs2I0yzZO0,3766
13
+ steinn_ai/agent/mcp/convert.py,sha256=9PurdyFDEysGVx1YXaRtWtXhEX_nlva3htW93hKnyOQ,1337
14
+ steinn_ai/agent/mcp/manager.py,sha256=sAXHeLhrACOd7HkjFqFdJ3mLP3xFANC2ZX8HTKbIrtA,3447
15
+ steinn_ai/agent/permissions.py,sha256=nFNzFlSqnqfLytnGN6M9PZ5Fx94T3Jb8MykpZzP2JPk,6696
16
+ steinn_ai/agent/stream.py,sha256=K59rUQAPQOrCN8kwPATWxzX-du8K832725RGNgfVQkU,14957
17
+ steinn_ai/agent/templates/callback_error.html,sha256=fxXu1pldpCMs5D0V8YloTNWeix3WtB9h7FZqMWmiokY,2290
18
+ steinn_ai/agent/templates/callback_success.html,sha256=9WnAsTcyKABT4kQtQMusZCI9beLVf7bLx2N7XBz7Cl0,2291
19
+ steinn_ai/agent/tools/__init__.py,sha256=P5CPxzFIf1cGlJOzrSAXLWheEQ4MzmtcBAVfS_PSmmk,5483
20
+ steinn_ai/agent/tools/bash.py,sha256=91yKF2e0W4oGLDv0G_xWAm1iq9a7Z30ygi4s-WlMB6A,1058
21
+ steinn_ai/agent/tools/codebase.py,sha256=Ve7D8W-DNqMik0vyVw3_WfvQkbodvVEOMQq4c_ZqKuI,19767
22
+ steinn_ai/agent/tools/definitions.py,sha256=O57IPbaUJ8TVDiiHNZz9vg9N2jJIZ_pYVXMfFt4XBQw,5184
23
+ steinn_ai/agent/tools/file.py,sha256=YJFbjhZbJKLRtB7NsVsfHxVRA-kNoL0CmeTpc3Z4z44,13273
24
+ steinn_ai/agent/tools/web.py,sha256=idelZNYx4ilEB6FzM4jZt3pySJGBYyy0Z2DnaHiDBok,2995
25
+ steinn_ai/cli.py,sha256=HN_KVklpL06UKajnuC2oKBxumgLSLAxJAW-lGnOtq4A,2367
26
+ steinn_ai/config.py,sha256=yzl9z90USEBk1xakq18K54qalH7rx-fyS7-i69aYdlE,6583
27
+ steinn_ai/exceptions.py,sha256=G1i0fCYpxbORBkdUbmrxJEJUeDcIi1bHq_Ess4bU6KI,1646
28
+ steinn_ai/indexer.py,sha256=dC1zNImFNvjC1ouNIrgu6yuWjc79VC9yeeKRbJZxrJE,14743
29
+ steinn_ai/init.py,sha256=M12VhNWPA8gAFwc8qgAMxshAHYghQT3zkZclcWdfq0Q,60929
30
+ steinn_ai/logger.py,sha256=O3G-FLSkZZRuXaucBLplNOOdqNvvLGc6uZbrrGNfzDM,3144
31
+ steinn_ai/parser/__init__.py,sha256=Bql-7JVzSAyG_1MrQ4sx5E1KK6NeHJtj6Qma62J3AG8,2740
32
+ steinn_ai/parser/fallback.py,sha256=X1O7iMKRYo-PezFzZMZSDrpfKiqjK4xye2ICBonxFQ4,3625
33
+ steinn_ai/parser/languages.py,sha256=4El-9r-GPujfEGq4M6uD0TX0JSAPg1jxDTEipKjfCQ4,4014
34
+ steinn_ai/parser/treesitter.py,sha256=MKZ8ITRBuN82gveU6G3SftZ0f22uEBOm1sUwWyhT5s8,23217
35
+ steinn_ai/parser/usages.py,sha256=WgWwK9W-KF-XG_kCF47OKldZUaLN923kyph9UNT7xoM,17740
36
+ steinn_ai/repl/__init__.py,sha256=_9-OHtLmf6fp4_RN0DqaCgyNk58F6KpmASTBD3osrXw,66
37
+ steinn_ai/repl/commands.py,sha256=e79aT-sL_3sNkheoOUKau817ttYS1n3nx2G2-oKhpPs,4194
38
+ steinn_ai/repl/loop.py,sha256=GYVD7z00H68e55nM0pYZbI4fff2m02DHJtBmHSUJbaU,47251
39
+ steinn_ai/repl/mermaid.py,sha256=W8i5D2llQxszaENk22gflE_q6swudnU50XkbzOfwlLs,13736
40
+ steinn_ai/repl/prompt.py,sha256=X7IrrTYoycVPJ66zN8lvfqBOYrYJ-6_TZ8ZgmA8Yk64,18831
41
+ steinn_ai/repl/render.py,sha256=kepNo09cOGSz2uJ-r-LYXOlHF-X0rGK-sMZA_iZkkrI,62677
42
+ steinn_ai/repl/select.py,sha256=2IXTMs0YGAevnVVr2Tjvf6XBkoh27PCLfnlG5zbosiE,9589
43
+ steinn_ai/repl/theme.py,sha256=hRCc0hLVpohRfr3SMRJOXa62qcoEJU8EZ46T8mw10zc,9785
44
+ steinn_ai/telemetry.py,sha256=UKHrBN0SQuo5MnWAY3tETttF49wk-yp3jAlcQGwGbJs,3791
45
+ steinn_ai/watcher.py,sha256=TaVV485HwrVBP3cEO8fJR_Hgf5NWzItUbeo1YeUSLSU,9834
46
+ steinn-0.1.0a1.dist-info/METADATA,sha256=JQ0LcRwTDVHMUM61x0Nq4h9781ZSZCN9JcbSb1xpNrM,5060
47
+ steinn-0.1.0a1.dist-info/WHEEL,sha256=eY7nduwzv-ldUxpzbRlxwvC693Hg6PX8bWDjEHjZ_dk,88
48
+ steinn-0.1.0a1.dist-info/entry_points.txt,sha256=4Bm-dOXMwcHPx7jom0RbZO-XuKUop-6-PptW65xhbQw,45
49
+ steinn-0.1.0a1.dist-info/licenses/LICENSE,sha256=dWepYTpm6q8UVsK_iZoBJXQKfG7bonn9-b8Z1YNsx5w,1272
50
+ steinn-0.1.0a1.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: poetry-core 2.4.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ steinn=steinn_ai.cli:main
3
+
@@ -0,0 +1,26 @@
1
+ Copyright (c) 2026 Steinn Labs Pvt Ltd. All rights reserved.
2
+
3
+ The Steinn AI CLI ("the Software") is proprietary software of Steinn Labs
4
+ Pvt Ltd. The Software is publicly distributed via package registries (PyPI,
5
+ Homebrew) so that end users may install and run it for its intended
6
+ purpose. No other rights are granted.
7
+
8
+ In particular, no right is granted to:
9
+ - copy or redistribute the Software,
10
+ - modify the Software or create derivative works,
11
+ - reverse-engineer, decompile, or disassemble the Software,
12
+ - sub-license, rent, lease, or sell the Software,
13
+ except as expressly permitted in a written agreement with Steinn Labs Pvt Ltd.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
16
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT.
18
+ IN NO EVENT SHALL STEINN LABS PVT LTD BE LIABLE FOR ANY CLAIM, DAMAGES, OR
19
+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE,
20
+ ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
21
+ OTHER DEALINGS IN THE SOFTWARE.
22
+
23
+ This file is a placeholder. Replace it with the finalised end-user
24
+ license agreement reviewed by legal counsel before public release.
25
+
26
+ For licensing inquiries: legal@steinn.ai
steinn_ai/__init__.py ADDED
@@ -0,0 +1,14 @@
1
+ """
2
+ Steinn AI — a local AI coding assistant.
3
+
4
+ Version is read from package metadata at runtime (set in pyproject.toml,
5
+ written by poetry at build time). Falls back to dev version if the package
6
+ is not installed (e.g. running directly from source without pip install).
7
+ """
8
+
9
+ from importlib.metadata import PackageNotFoundError, version
10
+
11
+ try:
12
+ __version__ = version("steinn")
13
+ except PackageNotFoundError:
14
+ __version__ = "0.0.0.dev0"
steinn_ai/__main__.py ADDED
@@ -0,0 +1,14 @@
1
+ """
2
+ Entry point for `python -m steinn_ai`.
3
+
4
+ This allows the CLI to be invoked as a module:
5
+ python -m steinn_ai --version
6
+ python -m steinn_ai --help
7
+
8
+ The primary entry point is the `steinn` command registered in pyproject.toml,
9
+ which calls cli.main() directly. This file exists for convenience.
10
+ """
11
+
12
+ from steinn_ai.cli import main
13
+
14
+ main()
@@ -0,0 +1 @@
1
+ """Agent layer — conversation context and backend streaming."""