opalacoder 0.1.25__tar.gz → 0.2.0__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 (153) hide show
  1. {opalacoder-0.1.25 → opalacoder-0.2.0}/CLAUDE.md +4 -1
  2. {opalacoder-0.1.25 → opalacoder-0.2.0}/GEMINI.md +4 -0
  3. {opalacoder-0.1.25 → opalacoder-0.2.0}/PKG-INFO +2 -2
  4. {opalacoder-0.1.25 → opalacoder-0.2.0}/README.md +1 -1
  5. opalacoder-0.2.0/debug_litellm_callbacks.py +43 -0
  6. {opalacoder-0.1.25 → opalacoder-0.2.0}/gui_src/src/App.jsx +382 -188
  7. {opalacoder-0.1.25 → opalacoder-0.2.0}/gui_src/vite.config.js +10 -1
  8. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/__init__.py +1 -1
  9. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/agent_stdin.py +275 -202
  10. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/agents.py +10 -4
  11. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/cli_commands.py +51 -30
  12. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/config.py +46 -2
  13. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/embeddings.py +0 -2
  14. opalacoder-0.2.0/opalacoder/gui/assets/index-BqTKFzta.js +159 -0
  15. opalacoder-0.2.0/opalacoder/gui/assets/vendor-monaco-BkbU5OES.js +19 -0
  16. opalacoder-0.2.0/opalacoder/gui/assets/vendor-react-B2vUwPEE.js +24 -0
  17. opalacoder-0.2.0/opalacoder/gui/assets/vendor-xterm-3VOAfa_q.js +38 -0
  18. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/gui/index.html +4 -1
  19. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/ide_server.py +72 -43
  20. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/memgpt_runtime.py +15 -4
  21. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/project.py +12 -6
  22. opalacoder-0.2.0/opalacoder/structured.py +56 -0
  23. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/tools.py +125 -26
  24. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/workflow_orchestrator.py +4 -47
  25. {opalacoder-0.1.25 → opalacoder-0.2.0}/pyproject.toml +1 -1
  26. {opalacoder-0.1.25 → opalacoder-0.2.0}/skills/command-line/SKILL.md +5 -5
  27. {opalacoder-0.1.25 → opalacoder-0.2.0}/skills/view-editor/SKILL.md +1 -1
  28. opalacoder-0.2.0/test_thought_stream.py +47 -0
  29. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_agent_stdin.py +78 -0
  30. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_code_index_integration.py +6 -2
  31. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_model_commands.py +24 -10
  32. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_project_store.py +34 -0
  33. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_search_bugs.py +18 -12
  34. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_workflow_pipeline.py +14 -7
  35. opalacoder-0.1.25/opalacoder/copy_gui.py +0 -20
  36. opalacoder-0.1.25/opalacoder/gui/assets/index-BQg8XLlL.js +0 -225
  37. opalacoder-0.1.25/opalacoder/structured.py +0 -104
  38. {opalacoder-0.1.25 → opalacoder-0.2.0}/.claude/rules/RULES.md +0 -0
  39. {opalacoder-0.1.25 → opalacoder-0.2.0}/.claude/settings.json +0 -0
  40. {opalacoder-0.1.25 → opalacoder-0.2.0}/.github/workflows/publish.yml +0 -0
  41. {opalacoder-0.1.25 → opalacoder-0.2.0}/.gitignore +0 -0
  42. {opalacoder-0.1.25 → opalacoder-0.2.0}/AGENTS.md +0 -0
  43. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/100.png +0 -0
  44. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/102.png +0 -0
  45. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/1024.png +0 -0
  46. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/108.png +0 -0
  47. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/114.png +0 -0
  48. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/120.png +0 -0
  49. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/128.png +0 -0
  50. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/144.png +0 -0
  51. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/152.png +0 -0
  52. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/16.png +0 -0
  53. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/167.png +0 -0
  54. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/172.png +0 -0
  55. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/180.png +0 -0
  56. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/196.png +0 -0
  57. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/20.png +0 -0
  58. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/216.png +0 -0
  59. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/234.png +0 -0
  60. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/256.png +0 -0
  61. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/258.png +0 -0
  62. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/29.png +0 -0
  63. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/32.png +0 -0
  64. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/40.png +0 -0
  65. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/48.png +0 -0
  66. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/50.png +0 -0
  67. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/512.png +0 -0
  68. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/55.png +0 -0
  69. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/57.png +0 -0
  70. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/58.png +0 -0
  71. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/60.png +0 -0
  72. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/64.png +0 -0
  73. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/66.png +0 -0
  74. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/72.png +0 -0
  75. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/76.png +0 -0
  76. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/80.png +0 -0
  77. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/87.png +0 -0
  78. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/88.png +0 -0
  79. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/92.png +0 -0
  80. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -0
  81. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/android/mipmap-hdpi/ic_launcher.png +0 -0
  82. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/android/mipmap-mdpi/ic_launcher.png +0 -0
  83. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/android/mipmap-xhdpi/ic_launcher.png +0 -0
  84. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/android/mipmap-xxhdpi/ic_launcher.png +0 -0
  85. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/android/mipmap-xxxhdpi/ic_launcher.png +0 -0
  86. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/appstore.png +0 -0
  87. {opalacoder-0.1.25 → opalacoder-0.2.0}/AppIcons/playstore.png +0 -0
  88. {opalacoder-0.1.25 → opalacoder-0.2.0}/agents.yaml +0 -0
  89. {opalacoder-0.1.25 → opalacoder-0.2.0}/config.yaml +0 -0
  90. {opalacoder-0.1.25 → opalacoder-0.2.0}/debug/scratch_tail.py +0 -0
  91. {opalacoder-0.1.25 → opalacoder-0.2.0}/docs/guide/analysis_results.md +0 -0
  92. {opalacoder-0.1.25 → opalacoder-0.2.0}/docs/guide/figs/logotipo.png +0 -0
  93. {opalacoder-0.1.25 → opalacoder-0.2.0}/docs/guide/paper_memplan.md +0 -0
  94. {opalacoder-0.1.25 → opalacoder-0.2.0}/docs/guide/skills-plugin-system.md +0 -0
  95. {opalacoder-0.1.25 → opalacoder-0.2.0}/docs/specs/01-arquitetura.md +0 -0
  96. {opalacoder-0.1.25 → opalacoder-0.2.0}/docs/specs/02-memgpt-orquestrador.md +0 -0
  97. {opalacoder-0.1.25 → opalacoder-0.2.0}/docs/specs/03-skill-implement-feature.md +0 -0
  98. {opalacoder-0.1.25 → opalacoder-0.2.0}/docs/specs/04-memoria.md +0 -0
  99. {opalacoder-0.1.25 → opalacoder-0.2.0}/docs/specs/05-vcs-sombra.md +0 -0
  100. {opalacoder-0.1.25 → opalacoder-0.2.0}/docs/specs/06-skills-e-plugins.md +0 -0
  101. {opalacoder-0.1.25 → opalacoder-0.2.0}/docs/specs/07-configuracao.md +0 -0
  102. {opalacoder-0.1.25 → opalacoder-0.2.0}/docs/specs/08-ide.md +0 -0
  103. {opalacoder-0.1.25 → opalacoder-0.2.0}/docs/specs/09-ide-projectcreationinterface.md +0 -0
  104. {opalacoder-0.1.25 → opalacoder-0.2.0}/docs/specs/README.md +0 -0
  105. {opalacoder-0.1.25 → opalacoder-0.2.0}/docs/specs/backlog_register.md +0 -0
  106. {opalacoder-0.1.25 → opalacoder-0.2.0}/gui_src/index.html +0 -0
  107. {opalacoder-0.1.25 → opalacoder-0.2.0}/gui_src/package-lock.json +0 -0
  108. {opalacoder-0.1.25 → opalacoder-0.2.0}/gui_src/package.json +0 -0
  109. {opalacoder-0.1.25 → opalacoder-0.2.0}/gui_src/src/index.css +0 -0
  110. {opalacoder-0.1.25 → opalacoder-0.2.0}/gui_src/src/main.jsx +0 -0
  111. {opalacoder-0.1.25 → opalacoder-0.2.0}/main.py +0 -0
  112. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/api_keys.py +0 -0
  113. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/archival.py +0 -0
  114. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/cli.py +0 -0
  115. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/code_index.py +0 -0
  116. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/gui/assets/index-_ON06SYj.css +0 -0
  117. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/i18n.py +0 -0
  118. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/icon.png +0 -0
  119. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/orchestrator.py +0 -0
  120. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/planner.py +0 -0
  121. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/plugins/__init__.py +0 -0
  122. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/plugins/html_css_js_tools.py +0 -0
  123. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/session.py +0 -0
  124. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/skills.py +0 -0
  125. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/terminal.py +0 -0
  126. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/terminal_manager.py +0 -0
  127. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/vcs.py +0 -0
  128. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/vector_index.py +0 -0
  129. {opalacoder-0.1.25 → opalacoder-0.2.0}/opalacoder/workflow_tools.py +0 -0
  130. {opalacoder-0.1.25 → opalacoder-0.2.0}/pytest.ini +0 -0
  131. {opalacoder-0.1.25 → opalacoder-0.2.0}/requirements.txt +0 -0
  132. {opalacoder-0.1.25 → opalacoder-0.2.0}/skills/chat-orchestrator/SKILL.md +0 -0
  133. {opalacoder-0.1.25 → opalacoder-0.2.0}/skills/command-line/scripts/command_executor.py +0 -0
  134. {opalacoder-0.1.25 → opalacoder-0.2.0}/skills/skills_store/html-css-js/SKILL.md +0 -0
  135. {opalacoder-0.1.25 → opalacoder-0.2.0}/skills/skills_store/html-css-js/scripts/check_contracts.py +0 -0
  136. {opalacoder-0.1.25 → opalacoder-0.2.0}/skills/skills_store/implement-feature/SKILL.md +0 -0
  137. {opalacoder-0.1.25 → opalacoder-0.2.0}/skills/skills_store/implement-feature/scripts/run_workflow.py +0 -0
  138. {opalacoder-0.1.25 → opalacoder-0.2.0}/skills/view-editor/scripts/run_view_editor.py +0 -0
  139. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_agent_config.py +0 -0
  140. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_command_line_skill.py +0 -0
  141. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_complexity_evaluator.py +0 -0
  142. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_context_guard.py +0 -0
  143. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_file_delete.py +0 -0
  144. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_i18n_coverage.py +0 -0
  145. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_implement_feature_script.py +0 -0
  146. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_memgpt_runtime.py +0 -0
  147. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_planner_oracle_live.py +0 -0
  148. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_planner_output.py +0 -0
  149. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_refinement_loop.py +0 -0
  150. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_skills_directory_loader.py +0 -0
  151. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_unhashable_dict_bug.py +0 -0
  152. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_verification_strategies.py +0 -0
  153. {opalacoder-0.1.25 → opalacoder-0.2.0}/tests/test_view_editor_skill.py +0 -0
@@ -2,10 +2,13 @@
2
2
 
3
3
  1. Don't make baseless assumptions; before drawing any conclusions, conduct tests and analysis to gather as much information as possible.
4
4
 
5
+ 2. Dever apply direct patch ou modifications in external lib without user authorization.
6
+
7
+ 3. Dont call directly litellm (always use agenticblocks). If need same feature dont supported by agenticblocks, alert me and ask me about to do.
8
+
5
9
  # Project Guide
6
10
 
7
11
  ## Language
8
-
9
12
  All code, comments, and documentation must be written in **English**.
10
13
 
11
14
  ## Architecture
@@ -2,6 +2,10 @@
2
2
 
3
3
  1. Don't make baseless assumptions; before drawing any conclusions, conduct tests and analysis to gather as much information as possible.
4
4
 
5
+ 2. Dever apply direct patch ou modifications in external lib without user authorization.
6
+
7
+ 3. Dont call directly litellm (always use agenticblocks). If need same feature dont supported by agenticblocks, alert me and ask me about to do.
8
+
5
9
  # Project Guide
6
10
 
7
11
  ## Language
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: opalacoder
3
- Version: 0.1.25
3
+ Version: 0.2.0
4
4
  Summary: Autonomous coding agent with interactive planning and modular execution
5
5
  Project-URL: Homepage, https://github.com/gilzamir/OpalaCoder
6
6
  Project-URL: Bug Tracker, https://github.com/gilzamir/OpalaCoder/issues
@@ -60,7 +60,7 @@ OpalaCoder features an integrated desktop GUI built using React, Vite, and `pywe
60
60
  - **Integrated Terminal**: Includes a real-time xterm.js terminal with shell/PTY integration for running and inspecting commands natively.
61
61
  - **Git Source Control Sidebar**: A dedicated panel that tracks file modifications (color-coded as Modified/Untracked/Deleted) and provides a commit interface.
62
62
  - **Global Settings Panel**: Customize the editor font size, tab size, and word wrapping, with dynamic toggle support for Light and Dark themes.
63
- - **About Tab**: Version tracking (currently `0.1.25 alfa`), licensing, and developer details in the settings panel.
63
+ - **About Tab**: Version tracking (currently `0.1.26 alfa`), licensing, and developer details in the settings panel.
64
64
 
65
65
  ### 6. Persistent Projects and CLI Commands
66
66
 
@@ -30,7 +30,7 @@ OpalaCoder features an integrated desktop GUI built using React, Vite, and `pywe
30
30
  - **Integrated Terminal**: Includes a real-time xterm.js terminal with shell/PTY integration for running and inspecting commands natively.
31
31
  - **Git Source Control Sidebar**: A dedicated panel that tracks file modifications (color-coded as Modified/Untracked/Deleted) and provides a commit interface.
32
32
  - **Global Settings Panel**: Customize the editor font size, tab size, and word wrapping, with dynamic toggle support for Light and Dark themes.
33
- - **About Tab**: Version tracking (currently `0.1.25 alfa`), licensing, and developer details in the settings panel.
33
+ - **About Tab**: Version tracking (currently `0.1.26 alfa`), licensing, and developer details in the settings panel.
34
34
 
35
35
  ### 6. Persistent Projects and CLI Commands
36
36
 
@@ -0,0 +1,43 @@
1
+ import asyncio
2
+ import os
3
+ import litellm
4
+ from litellm.integrations.custom_logger import CustomLogger
5
+
6
+ class MyCustomHandler(CustomLogger):
7
+ def log_success_event(self, kwargs, response_obj, start_time, end_time):
8
+ print("--- log_success_event triggered! ---")
9
+
10
+ async def async_log_success_event(self, kwargs, response_obj, start_time, end_time):
11
+ print("--- async_log_success_event triggered! ---")
12
+
13
+ litellm.callbacks = [MyCustomHandler()]
14
+ # Set environment variables for debug logging
15
+ os.environ['LITELLM_LOG'] = 'DEBUG'
16
+
17
+ async def main():
18
+ # We will use the same router setup as agenticblocks
19
+ router = litellm.Router(
20
+ model_list=[{
21
+ "model_name": "openai/unsloth/gpt-oss-20b-GGUF:Q4_1",
22
+ "litellm_params": {
23
+ "model": "openai/unsloth/gpt-oss-20b-GGUF:Q4_1",
24
+ "api_base": "http://localhost:8080/v1",
25
+ "api_key": "test"
26
+ },
27
+ }]
28
+ )
29
+ print("Callbacks in litellm:", litellm.callbacks)
30
+ try:
31
+ # Call via router
32
+ response = await router.acompletion(
33
+ model="openai/unsloth/gpt-oss-20b-GGUF:Q4_1",
34
+ messages=[{"role": "user", "content": "hello"}],
35
+ api_base="http://localhost:8080/v1",
36
+ api_key="test",
37
+ mock_response="Hello back!"
38
+ )
39
+ print("Response received:", response)
40
+ except Exception as e:
41
+ print("Error during completion:", e)
42
+
43
+ asyncio.run(main())