opalacoder 0.2.3.1__tar.gz → 0.2.3.2__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 (185) hide show
  1. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/PKG-INFO +2 -1
  2. opalacoder-0.2.3.2/docs/specs/10-chat-meta-params.md +70 -0
  3. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/docs/specs/backlog_register.md +12 -4
  4. opalacoder-0.2.3.2/gui_src/src/App.jsx +890 -0
  5. opalacoder-0.2.3.2/gui_src/src/components/ActivityBar.jsx +73 -0
  6. opalacoder-0.2.3.2/gui_src/src/components/BottomPanel.jsx +213 -0
  7. opalacoder-0.2.3.2/gui_src/src/components/ChatPanel.jsx +136 -0
  8. opalacoder-0.2.3.2/gui_src/src/components/ContextMenu.jsx +60 -0
  9. opalacoder-0.2.3.2/gui_src/src/components/EditorPanel.jsx +108 -0
  10. opalacoder-0.2.3.2/gui_src/src/components/ExplorerSidebar.jsx +148 -0
  11. opalacoder-0.2.3.2/gui_src/src/components/FileNode.jsx +112 -0
  12. opalacoder-0.2.3.2/gui_src/src/components/GitSidebar.jsx +88 -0
  13. opalacoder-0.2.3.2/gui_src/src/components/StatusBar.jsx +32 -0
  14. opalacoder-0.2.3.2/gui_src/src/components/modals/ConfirmModal.jsx +71 -0
  15. opalacoder-0.2.3.2/gui_src/src/components/modals/DirPickerModal.jsx +59 -0
  16. opalacoder-0.2.3.2/gui_src/src/components/modals/EditProjectModal.jsx +330 -0
  17. opalacoder-0.2.3.2/gui_src/src/components/modals/InstallDepsPrompt.jsx +39 -0
  18. opalacoder-0.2.3.2/gui_src/src/components/modals/NewProjectModal.jsx +147 -0
  19. opalacoder-0.2.3.2/gui_src/src/components/modals/SettingsModal.jsx +142 -0
  20. opalacoder-0.2.3.2/gui_src/src/hooks/useResizing.js +39 -0
  21. opalacoder-0.2.3.2/gui_src/src/hooks/useTerminal.js +111 -0
  22. opalacoder-0.2.3.2/gui_src/src/utils/formatMessage.jsx +60 -0
  23. opalacoder-0.2.3.2/gui_src/src/utils/language.js +22 -0
  24. opalacoder-0.2.3.2/gui_src/src/utils/storage.js +18 -0
  25. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/agent_stdin.py +5 -2
  26. opalacoder-0.2.3.2/opalacoder/chat_meta_params.py +133 -0
  27. opalacoder-0.2.3.2/opalacoder/gui/assets/index-CeO8snuy.js +169 -0
  28. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/gui/index.html +1 -1
  29. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/pyproject.toml +2 -1
  30. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/requirements.txt +1 -0
  31. opalacoder-0.2.3.2/tests/test_chat_meta_params.py +109 -0
  32. opalacoder-0.2.3.1/gui_src/src/App.jsx +0 -3208
  33. opalacoder-0.2.3.1/opalacoder/gui/assets/index-DYKstQJF.js +0 -159
  34. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/.claude/rules/RULES.md +0 -0
  35. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/.claude/settings.json +0 -0
  36. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/.github/workflows/publish.yml +0 -0
  37. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/.gitignore +0 -0
  38. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AGENTS.md +0 -0
  39. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/100.png +0 -0
  40. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/102.png +0 -0
  41. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/1024.png +0 -0
  42. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/108.png +0 -0
  43. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/114.png +0 -0
  44. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/120.png +0 -0
  45. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/128.png +0 -0
  46. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/144.png +0 -0
  47. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/152.png +0 -0
  48. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/16.png +0 -0
  49. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/167.png +0 -0
  50. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/172.png +0 -0
  51. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/180.png +0 -0
  52. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/196.png +0 -0
  53. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/20.png +0 -0
  54. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/216.png +0 -0
  55. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/234.png +0 -0
  56. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/256.png +0 -0
  57. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/258.png +0 -0
  58. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/29.png +0 -0
  59. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/32.png +0 -0
  60. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/40.png +0 -0
  61. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/48.png +0 -0
  62. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/50.png +0 -0
  63. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/512.png +0 -0
  64. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/55.png +0 -0
  65. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/57.png +0 -0
  66. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/58.png +0 -0
  67. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/60.png +0 -0
  68. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/64.png +0 -0
  69. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/66.png +0 -0
  70. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/72.png +0 -0
  71. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/76.png +0 -0
  72. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/80.png +0 -0
  73. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/87.png +0 -0
  74. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/88.png +0 -0
  75. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/92.png +0 -0
  76. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -0
  77. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/android/mipmap-hdpi/ic_launcher.png +0 -0
  78. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/android/mipmap-mdpi/ic_launcher.png +0 -0
  79. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/android/mipmap-xhdpi/ic_launcher.png +0 -0
  80. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/android/mipmap-xxhdpi/ic_launcher.png +0 -0
  81. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/android/mipmap-xxxhdpi/ic_launcher.png +0 -0
  82. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/appstore.png +0 -0
  83. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/icon.png +0 -0
  84. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/opalaicon.png +0 -0
  85. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/AppIcons/playstore.png +0 -0
  86. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/CLAUDE.md +0 -0
  87. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/GEMINI.md +0 -0
  88. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/README.md +0 -0
  89. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/agents.yaml +0 -0
  90. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/config.yaml +0 -0
  91. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/debug/debug_litellm_callbacks.py +0 -0
  92. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/debug/scratch_tail.py +0 -0
  93. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/debug/test_thought_stream.py +0 -0
  94. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/docs/guide/analysis_results.md +0 -0
  95. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/docs/guide/figs/logotipo.png +0 -0
  96. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/docs/guide/paper_memplan.md +0 -0
  97. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/docs/guide/skills-plugin-system.md +0 -0
  98. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/docs/specs/01-arquitetura.md +0 -0
  99. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/docs/specs/02-memgpt-orquestrador.md +0 -0
  100. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/docs/specs/03-skill-implement-feature.md +0 -0
  101. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/docs/specs/04-memoria.md +0 -0
  102. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/docs/specs/05-vcs-sombra.md +0 -0
  103. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/docs/specs/06-skills-e-plugins.md +0 -0
  104. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/docs/specs/07-configuracao.md +0 -0
  105. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/docs/specs/08-ide.md +0 -0
  106. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/docs/specs/09-ide-projectcreationinterface.md +0 -0
  107. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/docs/specs/README.md +0 -0
  108. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/gui_src/index.html +0 -0
  109. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/gui_src/package-lock.json +0 -0
  110. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/gui_src/package.json +0 -0
  111. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/gui_src/src/index.css +0 -0
  112. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/gui_src/src/main.jsx +0 -0
  113. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/gui_src/vite.config.js +0 -0
  114. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/icon.png +0 -0
  115. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/main.py +0 -0
  116. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/__init__.py +0 -0
  117. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/agents.py +0 -0
  118. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/api_keys.py +0 -0
  119. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/archival.py +0 -0
  120. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/assetstore/modelconfigs/gpt_oss__latest.metadata +0 -0
  121. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/assetstore/modelconfigs/gpt_oss__latest.zip +0 -0
  122. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/assetstore/skills/skill_html_css_js.metadata +0 -0
  123. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/assetstore/skills/skill_html_css_js.zip +0 -0
  124. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/assetstore/skills/skill_implement_feature.metadata +0 -0
  125. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/assetstore/skills/skill_implement_feature.zip +0 -0
  126. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/assetstore.py +0 -0
  127. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/cli.py +0 -0
  128. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/cli_commands.py +0 -0
  129. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/code_index.py +0 -0
  130. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/config.py +0 -0
  131. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/embeddings.py +0 -0
  132. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/gui/assets/index-CD7_Sjss.css +0 -0
  133. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/gui/assets/vendor-monaco-BkbU5OES.js +0 -0
  134. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/gui/assets/vendor-react-B2vUwPEE.js +0 -0
  135. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/gui/assets/vendor-xterm-3VOAfa_q.js +0 -0
  136. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/i18n.py +0 -0
  137. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/icon.png +0 -0
  138. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/ide_server.py +0 -0
  139. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/memgpt_runtime.py +0 -0
  140. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/orchestrator.py +0 -0
  141. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/planner.py +0 -0
  142. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/plugins/__init__.py +0 -0
  143. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/plugins/html_css_js_tools.py +0 -0
  144. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/project.py +0 -0
  145. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/session.py +0 -0
  146. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/skills.py +0 -0
  147. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/structured.py +0 -0
  148. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/terminal.py +0 -0
  149. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/terminal_manager.py +0 -0
  150. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/tools.py +0 -0
  151. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/vcs.py +0 -0
  152. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/vector_index.py +0 -0
  153. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/workflow_orchestrator.py +0 -0
  154. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/opalacoder/workflow_tools.py +0 -0
  155. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/pytest.ini +0 -0
  156. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/skills/chat-orchestrator/SKILL.md +0 -0
  157. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/skills/command-line/SKILL.md +0 -0
  158. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/skills/command-line/scripts/command_executor.py +0 -0
  159. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/skills/skills_store/html-css-js/SKILL.md +0 -0
  160. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/skills/skills_store/html-css-js/scripts/check_contracts.py +0 -0
  161. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/skills/skills_store/implement-feature/SKILL.md +0 -0
  162. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/skills/skills_store/implement-feature/scripts/run_workflow.py +0 -0
  163. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/skills/view-editor/SKILL.md +0 -0
  164. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/skills/view-editor/scripts/run_view_editor.py +0 -0
  165. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_agent_config.py +0 -0
  166. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_agent_stdin.py +0 -0
  167. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_code_index_integration.py +0 -0
  168. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_command_line_skill.py +0 -0
  169. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_complexity_evaluator.py +0 -0
  170. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_context_guard.py +0 -0
  171. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_file_delete.py +0 -0
  172. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_i18n_coverage.py +0 -0
  173. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_implement_feature_script.py +0 -0
  174. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_memgpt_runtime.py +0 -0
  175. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_model_commands.py +0 -0
  176. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_planner_oracle_live.py +0 -0
  177. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_planner_output.py +0 -0
  178. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_project_store.py +0 -0
  179. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_refinement_loop.py +0 -0
  180. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_search_bugs.py +0 -0
  181. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_skills_directory_loader.py +0 -0
  182. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_unhashable_dict_bug.py +0 -0
  183. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_verification_strategies.py +0 -0
  184. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/tests/test_view_editor_skill.py +0 -0
  185. {opalacoder-0.2.3.1 → opalacoder-0.2.3.2}/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.1
3
+ Version: 0.2.3.2
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
@@ -19,6 +19,7 @@ Requires-Dist: pyqt6-webengine>=6.0.0
19
19
  Requires-Dist: pyqt6>=6.0.0
20
20
  Requires-Dist: python-dotenv>=1.0.0
21
21
  Requires-Dist: pywebview>=4.0
22
+ Requires-Dist: pywinpty>=2.0.0; sys_platform == 'win32'
22
23
  Requires-Dist: pyyaml>=6.0
23
24
  Requires-Dist: qtpy>=2.4.0
24
25
  Requires-Dist: rich>=13.0.0
@@ -0,0 +1,70 @@
1
+ # Chat Meta-Parameters
2
+
3
+ Meta-parameters are per-turn configuration overrides embedded directly in a chat message. They take effect only for the duration of that single agent turn and are automatically reverted before the next message.
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ @key=value@
9
+ ```
10
+
11
+ - String values must be quoted: `@system_prompt="be ironic"@`
12
+ - Numeric values are unquoted: `@max_tokens=512@` `@temperature=0.9@`
13
+ - Multiple params in the same message are supported: `@max_tokens=512@ @temperature=0.2@`
14
+ - Tokens are stripped from the message before it reaches the agent.
15
+
16
+ ## Allowed Parameters
17
+
18
+ | Parameter | Type | Safe minimum | Description |
19
+ |---------------|--------|-------------|-----------------------------------------------|
20
+ | `max_tokens` | int | 256 | Maximum tokens for the agent's LLM calls this turn |
21
+ | `temperature` | float | 0.0 | Sampling temperature |
22
+ | `top_k` | int | 1 | Top-K sampling |
23
+ | `top_p` | float | 0.0 | Top-P (nucleus) sampling |
24
+ | `min_p` | float | 0.0 | Min-P sampling |
25
+ | `system_prompt` | str | — | Injects additional text as the system prompt for this turn only |
26
+
27
+ ## Restrictions
28
+
29
+ ### max_tokens minimum is 256
30
+
31
+ The `MemGPTAgentBlock` uses `max_tokens` for every internal LLM call — including tool-call heartbeats and response synthesis. Values below 256 cause the model to cut JSON tool calls mid-stream, producing empty or broken responses with no visible error.
32
+
33
+ Values below 256 are **automatically clamped to 256** with a warning in the server log. The user-specified value is never passed to the model.
34
+
35
+ ### system_prompt is injected, not replaced
36
+
37
+ Setting `@system_prompt="..."@` **replaces** `agent.system_prompt` for that turn. The original is restored immediately after the agent responds. This means the injected prompt must be self-contained if it needs to include the original instructions.
38
+
39
+ ### Parameters apply to all internal calls in a turn
40
+
41
+ For `chat_orchestrator` (MemGPT), a single user turn may trigger multiple LLM heartbeats. The override applies to every heartbeat in that turn, not just the final response call.
42
+
43
+ ### Unknown keys are silently ignored
44
+
45
+ Any `@key=value@` token whose key is not in the allowed list is stripped from the message text but produces no override and no error.
46
+
47
+ ## Examples
48
+
49
+ ```
50
+ Implemente uma função de quicksort. @max_tokens=512@
51
+ ```
52
+ Limits the agent's output budget for this turn to 512 tokens.
53
+
54
+ ```
55
+ O que você acha da minha abordagem? @system_prompt="responda de forma muito crítica e direta"@
56
+ ```
57
+ The agent responds with the injected system prompt; the original is restored on the next turn.
58
+
59
+ ```
60
+ Resumo rápido. @max_tokens=300@ @temperature=0.2@
61
+ ```
62
+ Multiple overrides in a single message.
63
+
64
+ ## Implementation
65
+
66
+ | File | Role |
67
+ |------|------|
68
+ | `opalacoder/chat_meta_params.py` | Parser (`parse_meta_params`) and context manager (`apply_meta_params`) |
69
+ | `opalacoder/agent_stdin.py` | Integration point in `handle_run` — wraps `agent.run()` with `apply_meta_params` |
70
+ | `tests/test_chat_meta_params.py` | Unit tests for parser and restore logic |
@@ -39,13 +39,14 @@
39
39
  9. Permitir que mensagens no chat não podem ser copiadas.
40
40
 
41
41
  ## FROM CURRENT = 0.2.3 TO NEXT = 0.2.4
42
+ 1. Revisar código. ✅
42
43
 
43
- 1. Menu contextual para copiar, cortar e colar no terminal e no chat.
44
- 2. Adicionar botões de maximizar e de minimizar o editor de texto (e outros paineis?).
45
- 3. Adicionar o conceito de meta configurações de chat (configurações que somente são válidas naquele momento que se conversa com o agente - durante a vida de uma mensagem). Por enquanto, apenas os parâmetros max_tokens, system_prompt, temperature, top-k, top-p, min-p são permitidos. Exemplos:
44
+ 2. Adicionar botões de maximizar e de minimizar o editor de texto (e outros paineis?).
45
+
46
+ 3. Adicionar o conceito de meta configurações de chat (configurações que somente são válidas naquele momento que se conversa com o agente - durante a vida de uma mensagem). Por enquanto, apenas os parâmetros max_tokens, system_prompt, temperature, top-k, top-p, min-p são permitidos. Exemplos:
46
47
  3.1 User: Implemente uma função que calcula a série de fourier. <param max_tokens=3>.
47
48
  3.2 Agent: ok ok
48
- 3.3 User: Ora, ora, o que é você? <param system_prompt="seja irônico na resposta">
49
+ 3.3 User: Ora, ora, o que é você? @system_prompt="seja irônico na resposta"@
49
50
  3.4 Agent: resposta irônica
50
51
  3.5 User:...
51
52
  3.6 Agent:...
@@ -53,6 +54,7 @@
53
54
 
54
55
  Neste exemplo, em 3.1, o valor de max_tokens deve ser revertido depois que o agente der a resposta (a vida de uma meta instrução é só o do turno).
55
56
  Em 3.3, o system_prompt softre uma injeção, mas que dura somente enquanto o agente responde. Observe que, a partir de 3.3, max_tokens já volta para o seu valor padrão. E partir de 3.5, a injeção de system prompt perde o efeito (resetando-se o system prompt para sua versão original).
57
+ Por baixo dos panos, primeiro identifica se a mensagem tem params, que são substituições válidas que começam com @, remove os parmas, faz a alteração temporária, executa a chamada, espera o modelo responder, desfaz a alteração temporária. ✅
56
58
 
57
59
  4. Prover ferramentas/funções de selecionar e pedir para o agente redefinir o que está selecionado. Ou para o agente detectar um erro em uma função ou trecho de código selecionado. Possíveis formas de se fazer isso:
58
60
  4.1 : o usuário seleciona o texto, e no menu contextual tem opções: refinar e corrigir se algo estiver selecionado. Também há a possibilidade do usuário selecionar algo ou deixar o cursor em alguma parte e executar CTRL+i e então abrir uma caixa em que o usuário pode pedir algo (o agente recebe o que foi selecionado, a linha inicial, a linha final e a posição do cursor. Uma interpretação é feita "se seleção vazia e linha inicial igual a linha final, focar na posição do cursor como o lugar onde posso começar a colocar algo.")
@@ -61,6 +63,12 @@
61
63
 
62
64
  6. Disponibilizar a ferramenta web_search para o agente.
63
65
 
66
+ 7. Terminal do windows 11. ✅
67
+
68
+ 8. Menu contextual para copiar, cortar e colar no terminal.
69
+
70
+ 9. Adicionar mais opções de parâmetros, como temperature, top_p, top_k, min_p, presence_penalty, repetition_penalty.
71
+
64
72
  ## FROM CURRENT = 0.2.4 TO NEXT = 0.2.5
65
73
 
66
74
  1. Implementar suporte a git.