ursa-ai 0.9.1__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 (51) hide show
  1. ursa/__init__.py +3 -0
  2. ursa/agents/__init__.py +32 -0
  3. ursa/agents/acquisition_agents.py +812 -0
  4. ursa/agents/arxiv_agent.py +429 -0
  5. ursa/agents/base.py +728 -0
  6. ursa/agents/chat_agent.py +60 -0
  7. ursa/agents/code_review_agent.py +341 -0
  8. ursa/agents/execution_agent.py +915 -0
  9. ursa/agents/hypothesizer_agent.py +614 -0
  10. ursa/agents/lammps_agent.py +465 -0
  11. ursa/agents/mp_agent.py +204 -0
  12. ursa/agents/optimization_agent.py +410 -0
  13. ursa/agents/planning_agent.py +219 -0
  14. ursa/agents/rag_agent.py +304 -0
  15. ursa/agents/recall_agent.py +54 -0
  16. ursa/agents/websearch_agent.py +196 -0
  17. ursa/cli/__init__.py +363 -0
  18. ursa/cli/hitl.py +516 -0
  19. ursa/cli/hitl_api.py +75 -0
  20. ursa/observability/metrics_charts.py +1279 -0
  21. ursa/observability/metrics_io.py +11 -0
  22. ursa/observability/metrics_session.py +750 -0
  23. ursa/observability/pricing.json +97 -0
  24. ursa/observability/pricing.py +321 -0
  25. ursa/observability/timing.py +1466 -0
  26. ursa/prompt_library/__init__.py +0 -0
  27. ursa/prompt_library/code_review_prompts.py +51 -0
  28. ursa/prompt_library/execution_prompts.py +50 -0
  29. ursa/prompt_library/hypothesizer_prompts.py +17 -0
  30. ursa/prompt_library/literature_prompts.py +11 -0
  31. ursa/prompt_library/optimization_prompts.py +131 -0
  32. ursa/prompt_library/planning_prompts.py +79 -0
  33. ursa/prompt_library/websearch_prompts.py +131 -0
  34. ursa/tools/__init__.py +0 -0
  35. ursa/tools/feasibility_checker.py +114 -0
  36. ursa/tools/feasibility_tools.py +1075 -0
  37. ursa/tools/run_command.py +27 -0
  38. ursa/tools/write_code.py +42 -0
  39. ursa/util/__init__.py +0 -0
  40. ursa/util/diff_renderer.py +128 -0
  41. ursa/util/helperFunctions.py +142 -0
  42. ursa/util/logo_generator.py +625 -0
  43. ursa/util/memory_logger.py +183 -0
  44. ursa/util/optimization_schema.py +78 -0
  45. ursa/util/parse.py +405 -0
  46. ursa_ai-0.9.1.dist-info/METADATA +304 -0
  47. ursa_ai-0.9.1.dist-info/RECORD +51 -0
  48. ursa_ai-0.9.1.dist-info/WHEEL +5 -0
  49. ursa_ai-0.9.1.dist-info/entry_points.txt +2 -0
  50. ursa_ai-0.9.1.dist-info/licenses/LICENSE +8 -0
  51. ursa_ai-0.9.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,304 @@
1
+ Metadata-Version: 2.4
2
+ Name: ursa-ai
3
+ Version: 0.9.1
4
+ Summary: Agents for science at LANL
5
+ Author-email: Mike Grosskopf <mikegros@lanl.gov>, Nathan Debardeleben <ndebard@lanl.gov>, Rahul Somasundaram <rsomasundaram@lanl.gov>, Isaac Michaud <imichaud@lanl.gov>, Avanish Mishra <avanish@lanl.gov>, Arthur Lui <alui@lanl.gov>, Russell Bent <rbent@lanl.gov>, Earl Lawrence <earl@lanl.gov>
6
+ License-Expression: BSD-3-Clause
7
+ Project-URL: Homepage, https://github.com/lanl/ursa
8
+ Project-URL: Documentation, https://github.com/lanl/ursa/tree/main/docs
9
+ Project-URL: Repository, https://github.com/lanl/ursa
10
+ Project-URL: Issues, https://github.com/lanl/ursa/issues
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Programming Language :: Python :: 3.14
17
+ Requires-Python: >=3.10
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ Requires-Dist: arxiv<3.0,>=2.2.0
21
+ Requires-Dist: beautifulsoup4<5.0,>=4.13.4
22
+ Requires-Dist: randomname<0.3,>=0.2.1
23
+ Requires-Dist: pandas<3.0,>=2.3.1
24
+ Requires-Dist: pillow<12.0,>=11.3.0
25
+ Requires-Dist: pymupdf<2.0,>=1.26.0
26
+ Requires-Dist: pypdf<6.0,>=5.9.0
27
+ Requires-Dist: rich<14.0,>=13.9.4
28
+ Requires-Dist: mp-api<0.46,>=0.45.8
29
+ Requires-Dist: ddgs>=9.5.5
30
+ Requires-Dist: typer>=0.16.1
31
+ Requires-Dist: trafilatura<1.7,>=1.6.1
32
+ Requires-Dist: selectolax<0.5,>=0.4.0
33
+ Requires-Dist: langchain>=1.0.3
34
+ Requires-Dist: langchain-chroma>=1.0.0
35
+ Requires-Dist: langchain-community>=0.4.1
36
+ Requires-Dist: langchain-openai>=1.0.1
37
+ Requires-Dist: langgraph-checkpoint-sqlite>=3.0.0
38
+ Requires-Dist: langchain-text-splitters>=1.0.0
39
+ Requires-Dist: langchain-ollama>=1.0.0
40
+ Requires-Dist: langchain-mcp-adapters<0.2,>=0.1.12
41
+ Dynamic: license-file
42
+
43
+ # URSA - The Universal Research and Scientific Agent
44
+
45
+ <img src="https://github.com/lanl/ursa/raw/main/logos/logo.png" alt="URSA Logo" width="200" height="200">
46
+
47
+ [![PyPI Version][pypi-version]](https://pypi.org/project/ursa-ai/)
48
+ [![PyPI Downloads][monthly-downloads]](https://pypistats.org/packages/ursa-ai)
49
+
50
+ The flexible agentic workflow for accelerating scientific tasks.
51
+ Composes information flow between agents for planning, code writing and execution, and online research to solve complex problems.
52
+
53
+ The original arxiv paper is [here](https://arxiv.org/abs/2506.22653).
54
+
55
+ ## Installation
56
+ You can install `ursa` via `pip` or `uv`.
57
+
58
+ **pip**
59
+ ```bash
60
+ pip install ursa-ai
61
+ ```
62
+
63
+ **uv**
64
+ ```bash
65
+ uv add ursa-ai
66
+ ```
67
+
68
+ ## How to use this code
69
+ Better documentation will be incoming, but for now there are examples in the examples folder that should give
70
+ a decent idea for how to set up some basic problems. They also should give some idea of how to pass results from
71
+ one agent to another. I will look to add things with multi-agent graphs, etc. in the future.
72
+
73
+ Documentation for each URSA agent:
74
+ - [Planning Agent](docs/planning_agent.md)
75
+ - [Execution Agent](docs/execution_agent.md)
76
+ - [ArXiv Agent](docs/arxiv_agent.md)
77
+ - [Web Search Agent](docs/web_search_agent.md)
78
+ - [Hypothesizer Agent](docs/hypothesizer_agent.md)
79
+
80
+ Documentation for combining agents:
81
+ - [ArXiv -> Execution for Materials](docs/combining_arxiv_and_execution.md)
82
+ - [ArXiv -> Execution for Neutron Star Properties](docs/combining_arxiv_and_execution_neutronStar.md)
83
+
84
+
85
+ ## Command line usage
86
+
87
+ You can install `ursa` as a command line app with `pip install`; or with `uv` via
88
+
89
+ ```bash
90
+ uv tool install ursa-ai
91
+ ```
92
+
93
+ To use the command line app, run
94
+
95
+ ```
96
+ ursa run
97
+ ```
98
+
99
+ This will start a REPL in your terminal.
100
+
101
+ ```
102
+ __ ________________ _
103
+ / / / / ___/ ___/ __ `/
104
+ / /_/ / / (__ ) /_/ /
105
+ \__,_/_/ /____/\__,_/
106
+
107
+ For help, type: ? or help. Exit with Ctrl+d.
108
+ ursa>
109
+ ```
110
+
111
+ Within the REPL, you can get help by typing `?` or `help`.
112
+
113
+ You can chat with an LLM by simply typing into the terminal.
114
+
115
+ ```
116
+ ursa> How are you?
117
+ Thanks for asking! I’m doing well. How are you today? What can I help you with?
118
+ ```
119
+
120
+ You can run various agents by typing the name of the agent. For example,
121
+
122
+ ```
123
+ ursa> plan
124
+ Enter your prompt for Planning Agent: Write a python script to do linear regression using only numpy.
125
+ ```
126
+
127
+ If you run subsequent agents, the last output will be appended to the prompt for the next agent.
128
+
129
+ So, to run the Planning Agent followed by the Execution Agent:
130
+ ```
131
+ ursa> plan
132
+ Enter your prompt for Planning Agent: Write a python script to do linear regression using only numpy.
133
+
134
+ ...
135
+
136
+ ursa> execute
137
+ Enter your prompt for Execution Agent: Execute the plan.
138
+ ```
139
+
140
+ You can get a list of available command line options via
141
+ ```
142
+ ursa run --help
143
+ ```
144
+
145
+ ## MCP serving
146
+
147
+ You can install `ursa` as a command line app via `pip` or `uv`:
148
+
149
+ **pip**
150
+
151
+ ```shell
152
+ pip install 'ursa-ai[mcp]'
153
+ ```
154
+
155
+ **uv**
156
+
157
+ ```shell
158
+ uv tool install 'ursa-ai[mcp]'
159
+ ```
160
+
161
+ To start hosting URSA as a local MCP server, run
162
+
163
+ ```shell
164
+ ursa serve
165
+ ```
166
+
167
+ This will start an MCP server on localhost (127.0.0.1) on port 8000.
168
+
169
+ You can test the server using curl from another terminal:
170
+
171
+ ```shell
172
+ curl -X POST \
173
+ -H "Content-Type: application/json" \
174
+ -d '{"agent": "execute", "query": "Plot the first 1000 prime numbers with matplotlib"}' \
175
+ http://localhost:8000/run
176
+ ```
177
+
178
+ The resulting code is written in the `ursa_mcp` subfolder of the serving
179
+ location. The curl query will get the final summary of what the agent carried
180
+ out.
181
+
182
+ When served locally, URSA can then be set up as an MCP tool that can be couple
183
+ to other agentic workflows. The set of agents is the same as the cli (execute,
184
+ plan, arxiv, web, recall, chat)
185
+
186
+ You can get a list of available command line options via
187
+ ```
188
+ ursa serve --help
189
+ ```
190
+
191
+ For API documentation, after `ursa serve`, go to your browser at
192
+
193
+ ```
194
+ http://localhost:8000/docs
195
+ ```
196
+
197
+ ## Sandboxing
198
+ The Execution Agent is allowed to run system commands and write/run code. Being able to execute arbitrary system commands or write
199
+ and execute code has the potential to cause problems like:
200
+ - Damage code or data on the computer
201
+ - Damage the computer
202
+ - Transmit your local data
203
+
204
+ The Web Search Agent scrapes data from urls, so has the potential to attempt to pull information from questionable sources.
205
+
206
+ Some suggestions for sandboxing the agent:
207
+ - Creating a specific environment such that limits URSA's access to only what you want. Examples:
208
+ - Creating/using a virtual machine that is sandboxed from the rest of your machine
209
+ - Creating a new account on your machine specifically for URSA
210
+ - Creating a network blacklist/whitelist to ensure that network commands and webscraping are contained to safe sources
211
+
212
+ You have a duty for ensuring that you use URSA responsibly.
213
+
214
+ ## Container image
215
+
216
+ To enable limited sandboxing insofar as containerization does this, you can run
217
+ the following commands:
218
+
219
+ ### Docker
220
+
221
+ ```shell
222
+ # Pull the image
223
+ docker pull ghcr.io/lanl/ursa
224
+
225
+ # Run included example
226
+ docker run -e "OPENAI_API_KEY"=$OPENAI_API_KEY ursa \
227
+ bash -c "uv run python examples/single_agent_examples/execution_agnet/integer_sum.py"
228
+
229
+ # Run script from host system
230
+ mkdir -p scripts
231
+ echo "import ursa; print('Hello from ursa')" > scripts/my_script.py
232
+ docker run -e "OPENAI_API_KEY"=$OPENAI_API_KEY \
233
+ --mount type=bind,src=$PWD/scripts,dst=/mnt/workspace \
234
+ ursa \
235
+ bash -c "uv run /mnt/workspace/my_script.py"
236
+ ```
237
+
238
+ ### Charliecloud
239
+
240
+ [Charliecloud](https://charliecloud.io/) is a rootless alternative to docker
241
+ that is sometimes preferred on HPC. The following commands replicate the
242
+ behaviors above for docker.
243
+
244
+ ```shell
245
+ # Pull the image
246
+ ch-image pull ghcr.io/lanl/ursa
247
+
248
+ # Convert image to sqfs, for use on another system
249
+ ch-convert ursa ursa.sqfs
250
+
251
+ # Run included example (if wanted, replace ursa with /path/to/ursa.sqfs)
252
+ ch-run -W ursa \
253
+ --unset-env="*" \
254
+ --set-env \
255
+ --set-env="OPENAI_API_KEY"=$OPENAI_API_KEY \
256
+ --cd /app \
257
+ -- bash -c \
258
+ "uv run examples/single_agent_examples/execution_agnet/integer_sum.py"
259
+
260
+ # Run script from host system (if wanted, replace ursa with /path/to/ursa.sqfs)
261
+ mkdir -p scripts
262
+ echo "import ursa; print('Hello from ursa')" > scripts/my_script.py
263
+ ch-run -W ursa \
264
+ --unset-env="*" \
265
+ --set-env \
266
+ --set-env="OPENAI_API_KEY"=$OPENAI_API_KEY \
267
+ --bind ${PWD}/scripts:/mnt/workspace \
268
+ --cd /app \
269
+ -- bash -c \
270
+ "uv run /mnt/workspace/integer_sum.py"
271
+ ```
272
+
273
+ ## Development Dependencies
274
+
275
+ * [`uv`](https://docs.astral.sh/uv/)
276
+ * `uv` is an extremely fast python package and project manager, written in Rust.
277
+ Follow installation instructions
278
+ [here](https://docs.astral.sh/uv/getting-started/installation/)
279
+
280
+ * [`ruff`](https://docs.astral.sh/ruff/)
281
+ * An extremely fast Python linter and code formatter, written in Rust.
282
+ * After installing `uv`, you can install ruff with `uv tool install ruff`
283
+
284
+ * [`just`](https://github.com/casey/just)
285
+ * A modern way to save and run project-specific commands
286
+ * After installing `uv`, you can install just with `uv tool install rust-just`
287
+
288
+ ## Development Team
289
+
290
+ URSA has been developed at Los Alamos National Laboratory as part of the ArtIMis project.
291
+
292
+ <img src="https://github.com/lanl/ursa/raw/main/logos/artimis.png" alt="ArtIMis Logo" width="200" height="200">
293
+
294
+ ### Notice of Copyright Assertion (O4958):
295
+ *This program is Open-Source under the BSD-3 License.
296
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:*
297
+ - *Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.*
298
+ - *Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.*
299
+ - *Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.*
300
+
301
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
302
+
303
+ [pypi-version]: https://img.shields.io/pypi/v/ursa-ai?style=flat-square&label=PyPI
304
+ [monthly-downloads]: https://img.shields.io/pypi/dm/ursa-ai?style=flat-square&label=Downloads&color=blue
@@ -0,0 +1,51 @@
1
+ ursa/__init__.py,sha256=x0SWdgHPTAtDEx6oSpwW6fCh74mi653U3Wx-i-Xz2ww,95
2
+ ursa/agents/__init__.py,sha256=XApBa4fFidXOt0TKrqNZ3UtybKkdGPtyGp9vOgYwP1I,1524
3
+ ursa/agents/acquisition_agents.py,sha256=lk8XrOQZz-I-komWghJmfjrE7so6prgJ9l6IAXKap3w,28089
4
+ ursa/agents/arxiv_agent.py,sha256=goHdPpUoW1beB-3eBE79KWw4yVQHQNg3rbqUkdmzH54,14507
5
+ ursa/agents/base.py,sha256=GrYdHs8a2D6-D5BewQV8SO_Qn_zKeyBgN4KEHClOkNQ,28663
6
+ ursa/agents/chat_agent.py,sha256=Z40l8tBOIsfR04qQdC5GxE_XqfIOAXZeQ_Xlj3SOzZw,1709
7
+ ursa/agents/code_review_agent.py,sha256=ZvR6CdghHJVvUEeLCBNdSbmDZpMTLDHkB_mwGc4_gTQ,10975
8
+ ursa/agents/execution_agent.py,sha256=lZLd61OEfJenXeROZBMX84yBP1diF0dHNDISt3DBST0,34325
9
+ ursa/agents/hypothesizer_agent.py,sha256=Xe_lmrYCIcnx7ITJ_bcxKQNhx1yPdVfTVz0fiHR1gFk,23166
10
+ ursa/agents/lammps_agent.py,sha256=mCy8q7a-6Np9QzMtMYBzOdifyrFbCr6DtU6P_CeYh6E,16434
11
+ ursa/agents/mp_agent.py,sha256=gE8wEq17Ps536gFy0PkieaT67juN0VQjuyqRnXsgTMk,6838
12
+ ursa/agents/optimization_agent.py,sha256=HhAixoNWjP9bdjU6qHHCOUUi-v057x0r6P-26tns6P0,13994
13
+ ursa/agents/planning_agent.py,sha256=GPnTTl46IY2wY_2Chuko2G4Yi0XCR4F3FuVkwYfmYO4,7299
14
+ ursa/agents/rag_agent.py,sha256=n5XaR7dFhZFnEeIN6SCXFTZUQa4d7amJ2QGYUe5uD1Y,10141
15
+ ursa/agents/recall_agent.py,sha256=BytpPV14IqTSdoMn77BlxXp6ybTgIKjtnNspQDCqvWc,1756
16
+ ursa/agents/websearch_agent.py,sha256=dD_LvCRGlJS2JNceVPvjpSD1rF0CWOpVWzeUrfrcLDY,6681
17
+ ursa/cli/__init__.py,sha256=IdkgDCVB61vBvWJqfQIx_pzLg_NbHbIFsnmQze5TMMw,11594
18
+ ursa/cli/hitl.py,sha256=vs2Qb2KStiD08cNUJ4G3TEejQhlZRtAkZBKlgZTnmYA,17710
19
+ ursa/cli/hitl_api.py,sha256=B3-5pNZdHZ1oerS7B2OsijurY5dn1X1rDk4aGiY5kZg,2974
20
+ ursa/observability/metrics_charts.py,sha256=fqf7jvPINxIDFP3Lm2BbQiW2GaXGzRSGD6F3cMqj4DM,38218
21
+ ursa/observability/metrics_io.py,sha256=Qmbzwe067WjTfILbG0hx3vMCpqAzjPpuLOT1Dx8ZIJ8,279
22
+ ursa/observability/metrics_session.py,sha256=sYCsgrziwqtg1X4InVc-DtLy6cl55OBekbECZkuAGs8,23449
23
+ ursa/observability/pricing.json,sha256=jqWdSyTj3zg7E3-pkMQ2Fzd3PyqJVhQqxeBrblMb1JU,7672
24
+ ursa/observability/pricing.py,sha256=vMF6jGA71TZQkSx0_dIXu5rWrKI9ISV_lnFQXoWaZdY,10598
25
+ ursa/observability/timing.py,sha256=9fhbTWEns4h0Ma48r4C0bqXiFbQS5nhqwV_vQC10L28,49441
26
+ ursa/prompt_library/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
+ ursa/prompt_library/code_review_prompts.py,sha256=-HuhwW9W_p2LDn44bXLntxLADHCOyl-2KIXxRHto66w,2444
28
+ ursa/prompt_library/execution_prompts.py,sha256=PZ2PCWTweBgh_jWgLibAFydfSJVPEUzwPVrR9xr--7U,2756
29
+ ursa/prompt_library/hypothesizer_prompts.py,sha256=ieupOF5tUy_u8actOjPbK-y5Qkrgw6EYxAfw6RXBebs,762
30
+ ursa/prompt_library/literature_prompts.py,sha256=zhBiN3Q-1Z2hp-hkXXp0T8Ipc-6YUM9gw85DjNu1F6I,421
31
+ ursa/prompt_library/optimization_prompts.py,sha256=n3fNBsG0hmggAMPb5R7t2lyxBLQt1E_udXM0bAl8Jz4,7929
32
+ ursa/prompt_library/planning_prompts.py,sha256=C8IfVc3ny_5-03bJZop2Yax7wfqS_UIdUGsTZSNQRC0,3534
33
+ ursa/prompt_library/websearch_prompts.py,sha256=n4DJaYn_lIYAVtdy00CCJjT-dLWhn2JNipYqMJAotdY,8846
34
+ ursa/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
+ ursa/tools/feasibility_checker.py,sha256=Tboc_3vDx8Pb-cs56SfiXOsayLz8AkXyicfz6puKZ_U,4172
36
+ ursa/tools/feasibility_tools.py,sha256=Drr3L238hzXieNIzQ0UNfrn66mZon7YnM_diSgU9KQw,36921
37
+ ursa/tools/run_command.py,sha256=sQRuHtRyJYWEyL9dpW_Ukc-xQ5vmKKJK1i_6z3uKEfA,690
38
+ ursa/tools/write_code.py,sha256=cDUJ6nPUfUmr7Fz2PwYUzawWm05V40cTyWNhUU5dfqo,1227
39
+ ursa/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
+ ursa/util/diff_renderer.py,sha256=1L1q2qWWb8gLhR532-LgJn2TrqXDx0gUpPVOWD_sqeU,4086
41
+ ursa/util/helperFunctions.py,sha256=cs-pQEcXyOr4nb5FoH9Ssg3hktycEapW07-MKJcUNOA,4122
42
+ ursa/util/logo_generator.py,sha256=lsSd6RbYrXKsB3kI7nvITtfK8xlJ1e_gCxm1jxV-tnY,17849
43
+ ursa/util/memory_logger.py,sha256=GiKYbQBpxlNRLKyqKFJyrbSbVCkXpRB7Yr5so43tUAw,6097
44
+ ursa/util/optimization_schema.py,sha256=b2wO0BjCIgQb15Q3adDu-ZyG3dfncme9OGQw6FmDGDc,2731
45
+ ursa/util/parse.py,sha256=QCQM_gEHs89WZ63CzNoaxWVRDUTADNyOrJZyUZmG36E,13657
46
+ ursa_ai-0.9.1.dist-info/licenses/LICENSE,sha256=4Vr6_u2zTHIUvYjoOBg9ztDbfpV3hyCFv3mTCS87gYU,1482
47
+ ursa_ai-0.9.1.dist-info/METADATA,sha256=vB1oxFzOAkjQ7TYLb9z6fbcdm1Ga9SmoX2btlPL-5yg,10908
48
+ ursa_ai-0.9.1.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
49
+ ursa_ai-0.9.1.dist-info/entry_points.txt,sha256=B0bbgM-NcAqLujZ1lfmChJZpQMYQDYFJck4moU89Y4E,39
50
+ ursa_ai-0.9.1.dist-info/top_level.txt,sha256=OjA1gRYSUAeiXGnpqPC8iOOGfcjFO1IlP848qMnYSdY,5
51
+ ursa_ai-0.9.1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (79.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ ursa = ursa.cli:main
@@ -0,0 +1,8 @@
1
+ This program is Open-Source under the BSD-3 License.
2
+
3
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
4
+ Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
5
+ Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
6
+ Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
7
+
8
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1 @@
1
+ ursa