opalacoder 0.2.3.4__tar.gz → 0.2.3.5__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 (189) hide show
  1. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/PKG-INFO +1 -1
  2. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/App.jsx +36 -3
  3. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/components/modals/EditProjectModal.jsx +1 -1
  4. opalacoder-0.2.3.4/opalacoder/gui/assets/index-Dzeshe78.js → opalacoder-0.2.3.5/opalacoder/gui/assets/index-CiJtgyqm.js +14 -14
  5. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/gui/index.html +1 -1
  6. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/terminal_manager.py +1 -1
  7. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/pyproject.toml +1 -1
  8. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/.claude/rules/RULES.md +0 -0
  9. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/.claude/settings.json +0 -0
  10. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/.github/workflows/publish.yml +0 -0
  11. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/.gitignore +0 -0
  12. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AGENTS.md +0 -0
  13. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/100.png +0 -0
  14. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/102.png +0 -0
  15. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/1024.png +0 -0
  16. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/108.png +0 -0
  17. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/114.png +0 -0
  18. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/120.png +0 -0
  19. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/128.png +0 -0
  20. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/144.png +0 -0
  21. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/152.png +0 -0
  22. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/16.png +0 -0
  23. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/167.png +0 -0
  24. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/172.png +0 -0
  25. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/180.png +0 -0
  26. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/196.png +0 -0
  27. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/20.png +0 -0
  28. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/216.png +0 -0
  29. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/234.png +0 -0
  30. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/256.png +0 -0
  31. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/258.png +0 -0
  32. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/29.png +0 -0
  33. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/32.png +0 -0
  34. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/40.png +0 -0
  35. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/48.png +0 -0
  36. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/50.png +0 -0
  37. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/512.png +0 -0
  38. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/55.png +0 -0
  39. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/57.png +0 -0
  40. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/58.png +0 -0
  41. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/60.png +0 -0
  42. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/64.png +0 -0
  43. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/66.png +0 -0
  44. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/72.png +0 -0
  45. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/76.png +0 -0
  46. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/80.png +0 -0
  47. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/87.png +0 -0
  48. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/88.png +0 -0
  49. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/92.png +0 -0
  50. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -0
  51. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/android/mipmap-hdpi/ic_launcher.png +0 -0
  52. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/android/mipmap-mdpi/ic_launcher.png +0 -0
  53. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/android/mipmap-xhdpi/ic_launcher.png +0 -0
  54. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/android/mipmap-xxhdpi/ic_launcher.png +0 -0
  55. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/android/mipmap-xxxhdpi/ic_launcher.png +0 -0
  56. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/appstore.png +0 -0
  57. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/icon.png +0 -0
  58. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/opalaicon.png +0 -0
  59. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/AppIcons/playstore.png +0 -0
  60. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/CLAUDE.md +0 -0
  61. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/GEMINI.md +0 -0
  62. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/README.md +0 -0
  63. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/agents.yaml +0 -0
  64. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/config.yaml +0 -0
  65. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/debug/debug_litellm_callbacks.py +0 -0
  66. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/debug/scratch_tail.py +0 -0
  67. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/debug/test_thought_stream.py +0 -0
  68. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/docs/guide/analysis_results.md +0 -0
  69. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/docs/guide/figs/logotipo.png +0 -0
  70. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/docs/guide/paper_memplan.md +0 -0
  71. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/docs/guide/skills-plugin-system.md +0 -0
  72. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/docs/specs/01-arquitetura.md +0 -0
  73. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/docs/specs/02-memgpt-orquestrador.md +0 -0
  74. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/docs/specs/03-skill-implement-feature.md +0 -0
  75. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/docs/specs/04-memoria.md +0 -0
  76. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/docs/specs/05-vcs-sombra.md +0 -0
  77. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/docs/specs/06-skills-e-plugins.md +0 -0
  78. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/docs/specs/07-configuracao.md +0 -0
  79. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/docs/specs/08-ide.md +0 -0
  80. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/docs/specs/09-ide-projectcreationinterface.md +0 -0
  81. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/docs/specs/10-chat-meta-params.md +0 -0
  82. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/docs/specs/README.md +0 -0
  83. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/docs/specs/backlog_register.md +0 -0
  84. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/index.html +0 -0
  85. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/package-lock.json +0 -0
  86. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/package.json +0 -0
  87. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/components/ActivityBar.jsx +0 -0
  88. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/components/BottomPanel.jsx +0 -0
  89. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/components/ChatPanel.jsx +0 -0
  90. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/components/ContextMenu.jsx +0 -0
  91. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/components/EditorPanel.jsx +0 -0
  92. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/components/ExplorerSidebar.jsx +0 -0
  93. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/components/FileNode.jsx +0 -0
  94. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/components/GitSidebar.jsx +0 -0
  95. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/components/StatusBar.jsx +0 -0
  96. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/components/TextContextMenu.jsx +0 -0
  97. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/components/modals/ConfirmModal.jsx +0 -0
  98. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/components/modals/DirPickerModal.jsx +0 -0
  99. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/components/modals/InstallDepsPrompt.jsx +0 -0
  100. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/components/modals/NewProjectModal.jsx +0 -0
  101. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/components/modals/SettingsModal.jsx +0 -0
  102. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/hooks/useResizing.js +0 -0
  103. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/hooks/useTerminal.js +0 -0
  104. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/hooks/useTextContextMenu.js +0 -0
  105. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/index.css +0 -0
  106. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/main.jsx +0 -0
  107. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/utils/formatMessage.jsx +0 -0
  108. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/utils/language.js +0 -0
  109. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/src/utils/storage.js +0 -0
  110. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/gui_src/vite.config.js +0 -0
  111. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/icon.png +0 -0
  112. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/main.py +0 -0
  113. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/__init__.py +0 -0
  114. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/agent_stdin.py +0 -0
  115. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/agents.py +0 -0
  116. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/api_keys.py +0 -0
  117. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/archival.py +0 -0
  118. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/assetstore/modelconfigs/gpt_oss__latest.metadata +0 -0
  119. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/assetstore/modelconfigs/gpt_oss__latest.zip +0 -0
  120. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/assetstore/skills/skill_html_css_js.metadata +0 -0
  121. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/assetstore/skills/skill_html_css_js.zip +0 -0
  122. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/assetstore/skills/skill_implement_feature.metadata +0 -0
  123. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/assetstore/skills/skill_implement_feature.zip +0 -0
  124. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/assetstore.py +0 -0
  125. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/chat_meta_params.py +0 -0
  126. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/cli.py +0 -0
  127. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/cli_commands.py +0 -0
  128. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/code_index.py +0 -0
  129. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/config.py +0 -0
  130. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/embeddings.py +0 -0
  131. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/gui/assets/index-CD7_Sjss.css +0 -0
  132. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/gui/assets/vendor-monaco-BkbU5OES.js +0 -0
  133. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/gui/assets/vendor-react-B2vUwPEE.js +0 -0
  134. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/gui/assets/vendor-xterm-3VOAfa_q.js +0 -0
  135. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/i18n.py +0 -0
  136. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/icon.png +0 -0
  137. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/ide_server.py +0 -0
  138. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/memgpt_runtime.py +0 -0
  139. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/orchestrator.py +0 -0
  140. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/planner.py +0 -0
  141. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/plugins/__init__.py +0 -0
  142. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/plugins/html_css_js_tools.py +0 -0
  143. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/project.py +0 -0
  144. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/session.py +0 -0
  145. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/skills.py +0 -0
  146. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/structured.py +0 -0
  147. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/terminal.py +0 -0
  148. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/tools.py +0 -0
  149. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/vcs.py +0 -0
  150. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/vector_index.py +0 -0
  151. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/web_search_config.py +0 -0
  152. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/workflow_orchestrator.py +0 -0
  153. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/opalacoder/workflow_tools.py +0 -0
  154. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/pytest.ini +0 -0
  155. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/requirements.txt +0 -0
  156. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/skills/chat-orchestrator/SKILL.md +0 -0
  157. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/skills/command-line/SKILL.md +0 -0
  158. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/skills/command-line/scripts/command_executor.py +0 -0
  159. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/skills/skills_store/html-css-js/SKILL.md +0 -0
  160. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/skills/skills_store/html-css-js/scripts/check_contracts.py +0 -0
  161. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/skills/skills_store/implement-feature/SKILL.md +0 -0
  162. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/skills/skills_store/implement-feature/scripts/run_workflow.py +0 -0
  163. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/skills/view-editor/SKILL.md +0 -0
  164. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/skills/view-editor/scripts/run_view_editor.py +0 -0
  165. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/skills/web-search/SKILL.md +0 -0
  166. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/skills.yaml +0 -0
  167. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_agent_config.py +0 -0
  168. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_agent_stdin.py +0 -0
  169. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_chat_meta_params.py +0 -0
  170. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_code_index_integration.py +0 -0
  171. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_command_line_skill.py +0 -0
  172. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_complexity_evaluator.py +0 -0
  173. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_context_guard.py +0 -0
  174. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_file_delete.py +0 -0
  175. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_i18n_coverage.py +0 -0
  176. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_implement_feature_script.py +0 -0
  177. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_memgpt_runtime.py +0 -0
  178. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_model_commands.py +0 -0
  179. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_planner_oracle_live.py +0 -0
  180. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_planner_output.py +0 -0
  181. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_project_store.py +0 -0
  182. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_refinement_loop.py +0 -0
  183. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_search_bugs.py +0 -0
  184. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_skills_directory_loader.py +0 -0
  185. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_unhashable_dict_bug.py +0 -0
  186. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_verification_strategies.py +0 -0
  187. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_view_editor_skill.py +0 -0
  188. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_web_search.py +0 -0
  189. {opalacoder-0.2.3.4 → opalacoder-0.2.3.5}/tests/test_workflow_pipeline.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: opalacoder
3
- Version: 0.2.3.4
3
+ Version: 0.2.3.5
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
@@ -220,7 +220,18 @@ export default function App() {
220
220
 
221
221
  // ── Helpers ───────────────────────────────────────────────────────────────
222
222
  const addLog = (type, message) =>
223
- setTerminalLogs(prev => [...prev, { type, message, timestamp: new Date().toLocaleTimeString() }]);
223
+ setTerminalLogs(prev => {
224
+ if (prev.length > 0) {
225
+ const last = prev[prev.length - 1];
226
+ if (last.type === type && (type === 'thought' || type === 'stdout' || type === 'stderr')) {
227
+ return [
228
+ ...prev.slice(0, -1),
229
+ { ...last, message: last.message + message }
230
+ ];
231
+ }
232
+ }
233
+ return [...prev, { type, message, timestamp: new Date().toLocaleTimeString() }];
234
+ });
224
235
 
225
236
  // ── API calls ─────────────────────────────────────────────────────────────
226
237
  const fetchProjects = async () => {
@@ -559,8 +570,30 @@ export default function App() {
559
570
  switch (event) {
560
571
  case 'server_ready': addLog('info', 'Agente pronto.'); break;
561
572
  case 'agent_started': addLog('info', `Agente ${data.agent} iniciado.`); break;
562
- case 'thought': addLog('thought', data.content); setThinkingLogs(prev => [...prev, { timestamp: new Date().toLocaleTimeString(), type: 'THINKING', content: data.content }]); break;
563
- case 'reflection': addLog('thought', data.content); setThinkingLogs(prev => [...prev, { timestamp: new Date().toLocaleTimeString(), type: 'REFLECTION', content: data.content }]); break;
573
+ case 'thought':
574
+ addLog('thought', data.content);
575
+ setThinkingLogs(prev => {
576
+ if (prev.length > 0) {
577
+ const last = prev[prev.length - 1];
578
+ if (last.type === 'THINKING') {
579
+ return [...prev.slice(0, -1), { ...last, content: last.content + data.content }];
580
+ }
581
+ }
582
+ return [...prev, { timestamp: new Date().toLocaleTimeString(), type: 'THINKING', content: data.content }];
583
+ });
584
+ break;
585
+ case 'reflection':
586
+ addLog('thought', data.content);
587
+ setThinkingLogs(prev => {
588
+ if (prev.length > 0) {
589
+ const last = prev[prev.length - 1];
590
+ if (last.type === 'REFLECTION') {
591
+ return [...prev.slice(0, -1), { ...last, content: last.content + data.content }];
592
+ }
593
+ }
594
+ return [...prev, { timestamp: new Date().toLocaleTimeString(), type: 'REFLECTION', content: data.content }];
595
+ });
596
+ break;
564
597
  case 'cancelled': addLog('warning', data.message || 'Execução cancelada.'); setChatMessages(prev => [...prev, { role: 'assistant', content: `⚠️ Interrompido: ${data.message || 'A execução do agente foi parada.'}` }]); break;
565
598
  case 'tool_call': addLog('tool_call', `Chamando: ${data.tool} (${JSON.stringify(data.arguments)})`); break;
566
599
  case 'tool_result': addLog('tool_result', `Sucesso: ${data.tool}`); break;
@@ -298,7 +298,7 @@ export default function EditProjectModal({
298
298
  <div className="flex flex-col" style={{ gap: '4px' }}>
299
299
  <label className="vscode-sidebar-section-title" style={{ padding: 0 }}>Response Mode (MemGPT)</label>
300
300
  <select
301
- value={editingProject.model_params?.response_mode ?? 'all'}
301
+ value={editingProject.model_params?.response_mode ?? 'last'}
302
302
  onChange={e => setEditingProject(p => ({ ...p, model_params: { ...p.model_params, response_mode: e.target.value } }))}
303
303
  style={{ backgroundColor: '#3c3c3c', color: '#cccccc', border: '1px solid #555', borderRadius: '3px', padding: '4px 6px', fontSize: '12px' }}
304
304
  >