autonomous-app 0.3.47__tar.gz → 0.3.48__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 (69) hide show
  1. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/PKG-INFO +1 -1
  2. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/__init__.py +1 -1
  3. autonomous_app-0.3.48/src/autonomous/ai/models/mock_model.py +86 -0
  4. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous_app.egg-info/PKG-INFO +1 -1
  5. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous_app.egg-info/SOURCES.txt +1 -0
  6. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/README.md +0 -0
  7. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/pyproject.toml +0 -0
  8. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/requirements.txt +0 -0
  9. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/setup.cfg +0 -0
  10. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/setup.py +0 -0
  11. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/ai/__init__.py +0 -0
  12. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/ai/audioagent.py +0 -0
  13. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/ai/baseagent.py +0 -0
  14. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/ai/imageagent.py +0 -0
  15. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/ai/jsonagent.py +0 -0
  16. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/ai/models/__init__.py +0 -0
  17. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/ai/models/gemini.py +0 -0
  18. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/ai/models/local_model.py +0 -0
  19. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/ai/textagent.py +0 -0
  20. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/apis/version_control/GHCallbacks.py +0 -0
  21. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/apis/version_control/GHOrganization.py +0 -0
  22. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/apis/version_control/GHRepo.py +0 -0
  23. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/apis/version_control/GHVersionControl.py +0 -0
  24. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/apis/version_control/__init__.py +0 -0
  25. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/auth/__init__.py +0 -0
  26. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/auth/autoauth.py +0 -0
  27. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/auth/github.py +0 -0
  28. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/auth/google.py +0 -0
  29. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/auth/user.py +0 -0
  30. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/cli.py +0 -0
  31. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/__init__.py +0 -0
  32. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/base/__init__.py +0 -0
  33. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/base/common.py +0 -0
  34. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/base/datastructures.py +0 -0
  35. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/base/document.py +0 -0
  36. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/base/fields.py +0 -0
  37. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/base/metaclasses.py +0 -0
  38. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/base/utils.py +0 -0
  39. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/common.py +0 -0
  40. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/connection.py +0 -0
  41. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/context_managers.py +0 -0
  42. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/db_sync.py +0 -0
  43. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/dereference.py +0 -0
  44. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/document.py +0 -0
  45. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/errors.py +0 -0
  46. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/fields.py +0 -0
  47. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/mongodb_support.py +0 -0
  48. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/pymongo_support.py +0 -0
  49. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/queryset/__init__.py +0 -0
  50. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/queryset/base.py +0 -0
  51. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/queryset/field_list.py +0 -0
  52. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/queryset/manager.py +0 -0
  53. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/queryset/queryset.py +0 -0
  54. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/queryset/transform.py +0 -0
  55. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/queryset/visitor.py +0 -0
  56. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/db/signals.py +0 -0
  57. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/logger.py +0 -0
  58. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/model/autoattr.py +0 -0
  59. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/model/automodel.py +0 -0
  60. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/storage/__init__.py +0 -0
  61. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/storage/imagestorage.py +0 -0
  62. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/storage/localstorage.py +0 -0
  63. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/taskrunner/__init__.py +0 -0
  64. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/taskrunner/autotasks.py +0 -0
  65. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/taskrunner/task_router.py +0 -0
  66. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous/utils/markdown.py +0 -0
  67. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous_app.egg-info/dependency_links.txt +0 -0
  68. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/src/autonomous_app.egg-info/requires.txt +0 -0
  69. {autonomous_app-0.3.47 → autonomous_app-0.3.48}/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.47
3
+ Version: 0.3.48
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.47"
1
+ __version__ = "0.3.48"
2
2
 
3
3
  from dotenv import load_dotenv
4
4
 
@@ -0,0 +1,86 @@
1
+ import base64
2
+ import io
3
+ import json
4
+
5
+ from autonomous import log
6
+ from autonomous.model.autoattr import ListAttr, StringAttr
7
+ from autonomous.model.automodel import AutoModel
8
+
9
+
10
+ class MockAIModel(AutoModel):
11
+ """
12
+ A Offline Mock Model for development.
13
+ Returns valid, structure-compliant dummy data instantly.
14
+ """
15
+
16
+ messages = ListAttr(StringAttr(default=[]))
17
+ name = StringAttr(default="mock_agent")
18
+ instructions = StringAttr(default="You are a Mock AI.")
19
+ description = StringAttr(default="Offline Mock Provider for testing.")
20
+
21
+ # A 1x1 Red Pixel PNG (Base64 decoded to bytes)
22
+ # This ensures PIL/Frontend code receives valid image data.
23
+ _MOCK_IMAGE_BYTES = base64.b64decode(
24
+ "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg=="
25
+ )
26
+
27
+ # A 1-second silent WAV file (Base64 decoded to bytes)
28
+ _MOCK_AUDIO_BYTES = base64.b64decode(
29
+ "UklGRigAAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQAAAAEA"
30
+ )
31
+
32
+ def generate_json(self, message, system_prompt=None, uri="", context={}):
33
+ """
34
+ Returns a rich dummy JSON object.
35
+ It attempts to guess the context based on keys found in the prompt,
36
+ otherwise returns a safe default TTRPG object.
37
+ """
38
+ log(f"⚡ [MOCK] Generating JSON for prompt: {message[:50]}...", _print=True)
39
+
40
+ # 1. Default Mock Object
41
+ mock_response = {
42
+ "name": "The Mockingbird Tavern",
43
+ "description": "A glitchy, holographic tavern that only exists in offline mode. The ale tastes like static.",
44
+ "backstory": "Created by a developer at 30,000 feet, this tavern serves as a placeholder for real content. It was built on the ruins of a NullReferenceException.",
45
+ "appearance": "Wireframe walls with textures that haven't loaded yet.",
46
+ "secrets": "If you look closely at the bartender, you can see he is just a looping IF statement.",
47
+ "tags": ["offline", "dev-mode", "test"],
48
+ "type": "Location",
49
+ }
50
+
51
+ # 2. Heuristic: If the user provided a context with 'name', use it.
52
+ # This makes the mock feel slightly responsive.
53
+ if context:
54
+ if "name" in context:
55
+ mock_response["name"] = f"Mock {context['name']}"
56
+ if "title" in context:
57
+ mock_response["name"] = f"Mock {context['title']}"
58
+
59
+ return mock_response
60
+
61
+ def generate_text(self, message, additional_instructions="", uri="", context={}):
62
+ log(f"⚡ [MOCK] Generating Text...", _print=True)
63
+ return (
64
+ "Lorem ipsum dolor sit amet, consectetur adipiscing elit. "
65
+ "This is MOCK TEXT generated because you are currently offline. "
66
+ "The quick brown fox jumps over the lazy dog."
67
+ )
68
+
69
+ def summarize_text(self, text, primer=""):
70
+ log(f"⚡ [MOCK] Summarizing {len(text)} chars...", _print=True)
71
+ return "This is a mock summary of the provided text. It is concise and offline."
72
+
73
+ def generate_transcription(self, audio_file, prompt=""):
74
+ log(f"⚡ [MOCK] Transcribing Audio...", _print=True)
75
+ return "This is a mock transcription of the audio file."
76
+
77
+ def generate_audio(self, prompt, voice=None):
78
+ log(f"⚡ [MOCK] Generating Audio...", _print=True)
79
+ return self._MOCK_AUDIO_BYTES
80
+
81
+ def generate_image(
82
+ self, prompt, negative_prompt="", files=None, aspect_ratio="2KPortrait"
83
+ ):
84
+ log(f"⚡ [MOCK] Generating Image ({aspect_ratio})...", _print=True)
85
+ # Returns a valid 1x1 pixel PNG so your UI displays something red instead of crashing
86
+ return self._MOCK_IMAGE_BYTES
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: autonomous-app
3
- Version: 0.3.47
3
+ Version: 0.3.48
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
@@ -14,6 +14,7 @@ src/autonomous/ai/textagent.py
14
14
  src/autonomous/ai/models/__init__.py
15
15
  src/autonomous/ai/models/gemini.py
16
16
  src/autonomous/ai/models/local_model.py
17
+ src/autonomous/ai/models/mock_model.py
17
18
  src/autonomous/apis/version_control/GHCallbacks.py
18
19
  src/autonomous/apis/version_control/GHOrganization.py
19
20
  src/autonomous/apis/version_control/GHRepo.py