autonomous-app 0.3.27__tar.gz → 0.3.28__tar.gz

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 (70) hide show
  1. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/PKG-INFO +1 -1
  2. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/__init__.py +1 -1
  3. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/ai/jsonagent.py +5 -1
  4. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/ai/models/gemini.py +24 -12
  5. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous_app.egg-info/PKG-INFO +1 -1
  6. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/README.md +0 -0
  7. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/pyproject.toml +0 -0
  8. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/requirements.txt +0 -0
  9. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/setup.cfg +0 -0
  10. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/setup.py +0 -0
  11. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/ai/__init__.py +0 -0
  12. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/ai/audioagent.py +0 -0
  13. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/ai/baseagent.py +0 -0
  14. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/ai/imageagent.py +0 -0
  15. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/ai/models/__init__.py +0 -0
  16. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/ai/models/aws.py +0 -0
  17. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/ai/models/deepseek.py +0 -0
  18. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/ai/models/local.py +0 -0
  19. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/ai/models/openai.py +0 -0
  20. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/ai/textagent.py +0 -0
  21. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/apis/version_control/GHCallbacks.py +0 -0
  22. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/apis/version_control/GHOrganization.py +0 -0
  23. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/apis/version_control/GHRepo.py +0 -0
  24. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/apis/version_control/GHVersionControl.py +0 -0
  25. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/apis/version_control/__init__.py +0 -0
  26. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/auth/__init__.py +0 -0
  27. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/auth/autoauth.py +0 -0
  28. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/auth/github.py +0 -0
  29. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/auth/google.py +0 -0
  30. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/auth/user.py +0 -0
  31. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/cli.py +0 -0
  32. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/__init__.py +0 -0
  33. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/base/__init__.py +0 -0
  34. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/base/common.py +0 -0
  35. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/base/datastructures.py +0 -0
  36. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/base/document.py +0 -0
  37. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/base/fields.py +0 -0
  38. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/base/metaclasses.py +0 -0
  39. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/base/utils.py +0 -0
  40. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/common.py +0 -0
  41. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/connection.py +0 -0
  42. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/context_managers.py +0 -0
  43. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/dereference.py +0 -0
  44. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/document.py +0 -0
  45. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/errors.py +0 -0
  46. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/fields.py +0 -0
  47. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/mongodb_support.py +0 -0
  48. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/pymongo_support.py +0 -0
  49. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/queryset/__init__.py +0 -0
  50. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/queryset/base.py +0 -0
  51. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/queryset/field_list.py +0 -0
  52. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/queryset/manager.py +0 -0
  53. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/queryset/queryset.py +0 -0
  54. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/queryset/transform.py +0 -0
  55. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/queryset/visitor.py +0 -0
  56. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/db/signals.py +0 -0
  57. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/logger.py +0 -0
  58. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/model/__init__.py +0 -0
  59. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/model/autoattr.py +0 -0
  60. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/model/automodel.py +0 -0
  61. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/storage/__init__.py +0 -0
  62. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/storage/imagestorage.py +0 -0
  63. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/storage/localstorage.py +0 -0
  64. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/tasks/__init__.py +0 -0
  65. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/tasks/autotask.py +0 -0
  66. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous/utils/markdown.py +0 -0
  67. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous_app.egg-info/SOURCES.txt +0 -0
  68. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous_app.egg-info/dependency_links.txt +0 -0
  69. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous_app.egg-info/requires.txt +0 -0
  70. {autonomous_app-0.3.27 → autonomous_app-0.3.28}/src/autonomous_app.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: autonomous-app
3
- Version: 0.3.27
3
+ Version: 0.3.28
4
4
  Summary: Containerized application framework built on Flask with additional libraries and tools for rapid development of web applications.
5
5
  Author-email: Steven A Moore <samoore@binghamton.edu>
6
6
  Project-URL: homepage, https://github.com/Sallenmoore/autonomous
@@ -1,4 +1,4 @@
1
- __version__ = "0.3.27"
1
+ __version__ = "0.3.28"
2
2
 
3
3
  from dotenv import load_dotenv
4
4
 
@@ -1,8 +1,9 @@
1
1
  import json
2
2
 
3
+ from autonomous.ai.baseagent import BaseAgent
3
4
  from autonomous.model.autoattr import ReferenceAttr, StringAttr
4
5
  from autonomous.model.automodel import AutoModel
5
- from autonomous.ai.baseagent import BaseAgent
6
+
6
7
  from .models.openai import OpenAIModel
7
8
 
8
9
 
@@ -24,3 +25,6 @@ class JSONAgent(BaseAgent):
24
25
  elif not isinstance(result, dict):
25
26
  raise ValueError(f"Invalid JSON response from AI model.\n\n{result}")
26
27
  return result
28
+
29
+ def upload(self, file):
30
+ return self.get_client().upload(file=file)
@@ -23,6 +23,16 @@ class GeminiAIModel(AutoModel):
23
23
  _json_model = "gemini-3-pro-preview"
24
24
  _stt_model = "gemini-3-pro-preview"
25
25
  _tts_model = "gemini-2.5-flash-preview-tts"
26
+
27
+ messages = ListAttr(StringAttr(default=[]))
28
+ name = StringAttr(default="agent")
29
+ instructions = StringAttr(
30
+ default="You are highly skilled AI trained to assist with various tasks."
31
+ )
32
+ description = StringAttr(
33
+ default="A helpful AI assistant trained to assist with various tasks."
34
+ )
35
+
26
36
  MAX_FILES = 14
27
37
  MAX_SUMMARY_TOKEN_LENGTH = 10000
28
38
  VOICES = {
@@ -58,15 +68,6 @@ class GeminiAIModel(AutoModel):
58
68
  "Sulafar": ["female"],
59
69
  }
60
70
 
61
- messages = ListAttr(StringAttr(default=[]))
62
- name = StringAttr(default="agent")
63
- instructions = StringAttr(
64
- default="You are highly skilled AI trained to assist with various tasks."
65
- )
66
- description = StringAttr(
67
- default="A helpful AI assistant trained to assist with various tasks."
68
- )
69
-
70
71
  @property
71
72
  def client(self):
72
73
  if not self._client:
@@ -114,8 +115,16 @@ class GeminiAIModel(AutoModel):
114
115
  existing_files = self.client.files.list()
115
116
  log(f"Existing files: {[f.display_name for f in existing_files]}", _print=True)
116
117
  for f in existing_files:
117
- result = self.client.files.delete(name=f.name)
118
- log(f"Deleting old version of {f.name}: {result}", _print=True)
118
+ # Delete old files (older than 10 minutes)
119
+ age_seconds = (
120
+ (time.time() - f.update_time.timestamp())
121
+ if f.update_time
122
+ else (time.time() - f.create_time.timestamp())
123
+ )
124
+ log(age_seconds, _print=True)
125
+ if age_seconds > 900:
126
+ result = self.client.files.delete(name=f.name)
127
+ log(f"Deleting old version of {f.name}: {result}", _print=True)
119
128
  file_refs = []
120
129
  for file_dict in file_list:
121
130
  fn = file_dict["name"]
@@ -132,7 +141,10 @@ class GeminiAIModel(AutoModel):
132
141
  time.sleep(1)
133
142
  uploaded_file = self.client.get_file(uploaded_file.name)
134
143
  file_refs.append(uploaded_file)
135
- return file_refs
144
+ return file_refs
145
+
146
+ def upload(self, file):
147
+ return self._add_files([file])
136
148
 
137
149
  def generate_json(self, message, function, additional_instructions="", **kwargs):
138
150
  # The API call must use the 'tools' parameter instead of 'response_json_schema'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: autonomous-app
3
- Version: 0.3.27
3
+ Version: 0.3.28
4
4
  Summary: Containerized application framework built on Flask with additional libraries and tools for rapid development of web applications.
5
5
  Author-email: Steven A Moore <samoore@binghamton.edu>
6
6
  Project-URL: homepage, https://github.com/Sallenmoore/autonomous