opalacoder 0.1.17__tar.gz → 0.1.18__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 (96) hide show
  1. {opalacoder-0.1.17 → opalacoder-0.1.18}/PKG-INFO +3 -2
  2. {opalacoder-0.1.17 → opalacoder-0.1.18}/README.md +1 -1
  3. {opalacoder-0.1.17 → opalacoder-0.1.18}/gui_src/src/App.jsx +1 -1
  4. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/__init__.py +1 -1
  5. opalacoder-0.1.17/opalacoder/gui/assets/index-FS_uvdys.js → opalacoder-0.1.18/opalacoder/gui/assets/index-BG-NUR-P.js +1 -1
  6. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/gui/index.html +1 -1
  7. {opalacoder-0.1.17 → opalacoder-0.1.18}/pyproject.toml +2 -1
  8. {opalacoder-0.1.17 → opalacoder-0.1.18}/requirements.txt +1 -0
  9. {opalacoder-0.1.17 → opalacoder-0.1.18}/.claude/rules/RULES.md +0 -0
  10. {opalacoder-0.1.17 → opalacoder-0.1.18}/.claude/settings.json +0 -0
  11. {opalacoder-0.1.17 → opalacoder-0.1.18}/.github/workflows/publish.yml +0 -0
  12. {opalacoder-0.1.17 → opalacoder-0.1.18}/.gitignore +0 -0
  13. {opalacoder-0.1.17 → opalacoder-0.1.18}/AGENTS.md +0 -0
  14. {opalacoder-0.1.17 → opalacoder-0.1.18}/CLAUDE.md +0 -0
  15. {opalacoder-0.1.17 → opalacoder-0.1.18}/GEMINI.md +0 -0
  16. {opalacoder-0.1.17 → opalacoder-0.1.18}/agents.yaml +0 -0
  17. {opalacoder-0.1.17 → opalacoder-0.1.18}/config.yaml +0 -0
  18. {opalacoder-0.1.17 → opalacoder-0.1.18}/debug/scratch_tail.py +0 -0
  19. {opalacoder-0.1.17 → opalacoder-0.1.18}/docs/guide/analysis_results.md +0 -0
  20. {opalacoder-0.1.17 → opalacoder-0.1.18}/docs/guide/figs/logotipo.png +0 -0
  21. {opalacoder-0.1.17 → opalacoder-0.1.18}/docs/guide/paper_memplan.md +0 -0
  22. {opalacoder-0.1.17 → opalacoder-0.1.18}/docs/guide/skills-plugin-system.md +0 -0
  23. {opalacoder-0.1.17 → opalacoder-0.1.18}/docs/specs/01-arquitetura.md +0 -0
  24. {opalacoder-0.1.17 → opalacoder-0.1.18}/docs/specs/02-memgpt-orquestrador.md +0 -0
  25. {opalacoder-0.1.17 → opalacoder-0.1.18}/docs/specs/03-skill-implement-feature.md +0 -0
  26. {opalacoder-0.1.17 → opalacoder-0.1.18}/docs/specs/04-memoria.md +0 -0
  27. {opalacoder-0.1.17 → opalacoder-0.1.18}/docs/specs/05-vcs-sombra.md +0 -0
  28. {opalacoder-0.1.17 → opalacoder-0.1.18}/docs/specs/06-skills-e-plugins.md +0 -0
  29. {opalacoder-0.1.17 → opalacoder-0.1.18}/docs/specs/07-configuracao.md +0 -0
  30. {opalacoder-0.1.17 → opalacoder-0.1.18}/docs/specs/08-ide.md +0 -0
  31. {opalacoder-0.1.17 → opalacoder-0.1.18}/docs/specs/09-ide-projectcreationinterface.md +0 -0
  32. {opalacoder-0.1.17 → opalacoder-0.1.18}/docs/specs/README.md +0 -0
  33. {opalacoder-0.1.17 → opalacoder-0.1.18}/gui_src/index.html +0 -0
  34. {opalacoder-0.1.17 → opalacoder-0.1.18}/gui_src/package-lock.json +0 -0
  35. {opalacoder-0.1.17 → opalacoder-0.1.18}/gui_src/package.json +0 -0
  36. {opalacoder-0.1.17 → opalacoder-0.1.18}/gui_src/src/index.css +0 -0
  37. {opalacoder-0.1.17 → opalacoder-0.1.18}/gui_src/src/main.jsx +0 -0
  38. {opalacoder-0.1.17 → opalacoder-0.1.18}/gui_src/vite.config.js +0 -0
  39. {opalacoder-0.1.17 → opalacoder-0.1.18}/main.py +0 -0
  40. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/agent_stdin.py +0 -0
  41. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/agents.py +0 -0
  42. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/api_keys.py +0 -0
  43. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/archival.py +0 -0
  44. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/cli.py +0 -0
  45. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/cli_commands.py +0 -0
  46. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/code_index.py +0 -0
  47. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/config.py +0 -0
  48. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/copy_gui.py +0 -0
  49. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/embeddings.py +0 -0
  50. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/gui/assets/index-JnX7gh-E.css +0 -0
  51. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/i18n.py +0 -0
  52. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/ide_server.py +0 -0
  53. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/memgpt_runtime.py +0 -0
  54. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/orchestrator.py +0 -0
  55. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/planner.py +0 -0
  56. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/plugins/__init__.py +0 -0
  57. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/plugins/html_css_js_tools.py +0 -0
  58. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/project.py +0 -0
  59. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/session.py +0 -0
  60. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/skills.py +0 -0
  61. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/structured.py +0 -0
  62. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/terminal.py +0 -0
  63. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/terminal_manager.py +0 -0
  64. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/tools.py +0 -0
  65. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/vcs.py +0 -0
  66. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/vector_index.py +0 -0
  67. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/workflow_orchestrator.py +0 -0
  68. {opalacoder-0.1.17 → opalacoder-0.1.18}/opalacoder/workflow_tools.py +0 -0
  69. {opalacoder-0.1.17 → opalacoder-0.1.18}/pytest.ini +0 -0
  70. {opalacoder-0.1.17 → opalacoder-0.1.18}/skills/chat-orchestrator/SKILL.md +0 -0
  71. {opalacoder-0.1.17 → opalacoder-0.1.18}/skills/command-line/SKILL.md +0 -0
  72. {opalacoder-0.1.17 → opalacoder-0.1.18}/skills/command-line/scripts/command_executor.py +0 -0
  73. {opalacoder-0.1.17 → opalacoder-0.1.18}/skills/skills_store/html-css-js/SKILL.md +0 -0
  74. {opalacoder-0.1.17 → opalacoder-0.1.18}/skills/skills_store/html-css-js/scripts/check_contracts.py +0 -0
  75. {opalacoder-0.1.17 → opalacoder-0.1.18}/skills/skills_store/implement-feature/SKILL.md +0 -0
  76. {opalacoder-0.1.17 → opalacoder-0.1.18}/skills/skills_store/implement-feature/scripts/run_workflow.py +0 -0
  77. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_agent_config.py +0 -0
  78. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_agent_stdin.py +0 -0
  79. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_code_index_integration.py +0 -0
  80. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_command_line_skill.py +0 -0
  81. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_complexity_evaluator.py +0 -0
  82. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_context_guard.py +0 -0
  83. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_file_delete.py +0 -0
  84. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_i18n_coverage.py +0 -0
  85. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_implement_feature_script.py +0 -0
  86. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_memgpt_runtime.py +0 -0
  87. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_model_commands.py +0 -0
  88. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_planner_oracle_live.py +0 -0
  89. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_planner_output.py +0 -0
  90. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_project_store.py +0 -0
  91. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_refinement_loop.py +0 -0
  92. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_search_bugs.py +0 -0
  93. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_skills_directory_loader.py +0 -0
  94. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_unhashable_dict_bug.py +0 -0
  95. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_verification_strategies.py +0 -0
  96. {opalacoder-0.1.17 → opalacoder-0.1.18}/tests/test_workflow_pipeline.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: opalacoder
3
- Version: 0.1.17
3
+ Version: 0.1.18
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
@@ -15,6 +15,7 @@ Requires-Dist: chromadb>=0.4.0
15
15
  Requires-Dist: instructor>=1.15.1
16
16
  Requires-Dist: litellm>=1.40.0
17
17
  Requires-Dist: numpy>=1.21.0
18
+ Requires-Dist: pyqt6-webengine>=6.0.0
18
19
  Requires-Dist: pyqt6>=6.0.0
19
20
  Requires-Dist: python-dotenv>=1.0.0
20
21
  Requires-Dist: pywebview>=4.0
@@ -59,7 +60,7 @@ OpalaCoder features an integrated desktop GUI built using React, Vite, and `pywe
59
60
  - **Integrated Terminal**: Includes a real-time xterm.js terminal with shell/PTY integration for running and inspecting commands natively.
60
61
  - **Git Source Control Sidebar**: A dedicated panel that tracks file modifications (color-coded as Modified/Untracked/Deleted) and provides a commit interface.
61
62
  - **Global Settings Panel**: Customize the editor font size, tab size, and word wrapping, with dynamic toggle support for Light and Dark themes.
62
- - **About Tab**: Version tracking (currently `0.1.17 alfa`), licensing, and developer details in the settings panel.
63
+ - **About Tab**: Version tracking (currently `0.1.18 alfa`), licensing, and developer details in the settings panel.
63
64
 
64
65
  ### 6. Persistent Projects and CLI Commands
65
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.17 alfa`), licensing, and developer details in the settings panel.
33
+ - **About Tab**: Version tracking (currently `0.1.18 alfa`), licensing, and developer details in the settings panel.
34
34
 
35
35
  ### 6. Persistent Projects and CLI Commands
36
36
 
@@ -1914,7 +1914,7 @@ export default function App() {
1914
1914
  <div style={{ display: 'flex', flexDirection: 'column', gap: '14px', color: '#cccccc' }}>
1915
1915
  <div style={{ display: 'flex', flexDirection: 'column', gap: '4px' }}>
1916
1916
  <span className="vscode-sidebar-section-title" style={{ padding: 0 }}>Versão</span>
1917
- <span style={{ fontSize: '13px', fontWeight: 'bold', color: '#ffffff' }}>0.1.17 alfa</span>
1917
+ <span style={{ fontSize: '13px', fontWeight: 'bold', color: '#ffffff' }}>0.1.18 alfa</span>
1918
1918
  </div>
1919
1919
  <div style={{ display: 'flex', flexDirection: 'column', gap: '4px' }}>
1920
1920
  <span className="vscode-sidebar-section-title" style={{ padding: 0 }}>Autor</span>
@@ -1,2 +1,2 @@
1
1
  """OpalaCoder – AI coding agent with session management and modular execution."""
2
- __version__ = "0.1.17"
2
+ __version__ = "0.1.18"
@@ -206,5 +206,5 @@ WARNING: This link could potentially be dangerous`)){let i=window.open();if(i){t
206
206
  `);re=Re.pop();for(const it of Re)if(it.trim())try{const We=JSON.parse(it.trim());We.output&&yl(Rt=>Rt+We.output),We.status==="success"?yn("Instalado com Sucesso!"):We.status==="error"&&yn("Erro na Instalação")}catch{}}}catch(y){yn("Falha ao conectar"),yl(k=>k+`
207
207
  Erro: ${y.message}
208
208
  `)}finally{ie(!1)}}},uu=y=>{r(y),X("info",`Projeto selecionado: ${y.project_name||y.name}`)},Pn=async()=>{if(i)try{const y=await fetch(`/api/files?projectPath=${encodeURIComponent(i.project_path)}`);if(y.ok){const k=await y.json();n(k.files||[])}else{const k=await y.json();X("error",`Falha ao listar arquivos: ${k.error}`)}}catch(y){X("error",`Erro na chamada de arquivos: ${y.message}`)}},Zm=y=>{i&&(y.preventDefault(),y.stopPropagation(),Jc({x:y.clientX,y:y.clientY}))},eg=async()=>{if(!i)return;const y=window.prompt("Nome do novo arquivo (ex: src/utils.py):");if(y)try{const k=await fetch("/api/file/write",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:i.project_path,filePath:y,content:""})});if(k.ok)X("info",`Arquivo criado: ${y}`),await Pn(),l(y),a("");else{const $=await k.json();X("error",`Falha ao criar arquivo: ${$.error}`),alert(`Erro ao criar arquivo: ${$.error}`)}}catch(k){X("error",`Erro na chamada de criação de arquivo: ${k.message}`)}},tg=async()=>{if(!(!i||!o)&&window.confirm(`Tem certeza que deseja deletar o arquivo "${o}"?`))try{const y=await fetch("/api/file/delete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:i.project_path,filePath:o})});if(y.ok)X("info",`Arquivo excluído: ${o}`),l(null),a(""),await Pn();else{const k=await y.json();X("error",`Falha ao deletar arquivo: ${k.error}`),alert(`Erro ao deletar arquivo: ${k.error}`)}}catch(y){X("error",`Erro na chamada de exclusão de arquivo: ${y.message}`)}},ig=async y=>{if(i){l(y);try{const k=await fetch(`/api/file/read?projectPath=${encodeURIComponent(i.project_path)}&filePath=${encodeURIComponent(y)}`);if(k.ok){const $=await k.json();a($.content)}else X("error",`Erro ao ler arquivo: ${y}`)}catch(k){X("error",`Erro de leitura: ${k.message}`)}}},du=async()=>{if(!(!i||!o)){u(!0);try{(await fetch("/api/file/write",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:i.project_path,filePath:o,content:h})})).ok?(X("info",`Arquivo salvo: ${o}`),En()):X("error",`Erro ao salvar arquivo: ${o}`)}catch(y){X("error",`Erro de escrita: ${y.message}`)}finally{u(!1)}}},rg=async y=>{if(y.preventDefault(),!(!bn||!xl))try{const k=await fetch("/api/opalacoder/create-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({project_name:bn,project_path:xl,description:tu,model:ru,mode:su,api_key:nu,api_base:lu})});if(k.ok)X("info",`Projeto '${bn}' registrado.`),xn(!1),Zc(""),eu(""),iu(""),ou(""),au(""),kn();else{const $=await k.json();X("error",`Erro ao criar projeto: ${$.error}`)}}catch(k){X("error",`Erro ao criar: ${k.message}`)}},sg=async y=>{if(confirm(`Remover projeto '${y}'?`))try{(await fetch("/api/opalacoder/delete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({project_name:y})})).ok&&(X("info",`Projeto removido: ${y}`),i&&i.name===y&&r(null),kn())}catch(k){X("error",`Erro ao excluir: ${k.message}`)}},ng=(y,k)=>{y.stopPropagation(),Yt({name:k.name,project_name:k.project_name||k.name,project_path:k.project_path||"",model:k.model||"",alternative_model:k.alternative_model||"",mode:k.mode||"auto",description:k.description||""})},og=async y=>{if(y.preventDefault(),!!Ye)try{const k=await fetch("/api/opalacoder/update-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({project_name:Ye.name,display_name:Ye.project_name,project_path:Ye.project_path,model:Ye.model,alternative_model:Ye.alternative_model,mode:Ye.mode,description:Ye.description})});if(k.ok){const $=await k.json();X("info",`Projeto '${$.project_name}' atualizado.`),Yt(null),await kn(),i&&i.name===$.name&&r(re=>({...re,...$}))}else{const $=await k.json();X("error",`Erro ao atualizar: ${$.error}`)}}catch(k){X("error",`Erro ao atualizar projeto: ${k.message}`)}},X=(y,k)=>{v($=>[...$,{type:y,message:k,timestamp:new Date().toLocaleTimeString()}])},bl=y=>{G(y),w&&x(!1)},lg=async y=>{if(y&&y.preventDefault(),!m.trim()||!i||P)return;const k=m;S(""),g($=>[...$,{role:"user",content:k}]),_(!0),M([]),X("info",`Iniciando agente para prompt: "${k}"`);try{const $=await fetch("/api/opalacoder/run",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({command:"run",agent:"chat_orchestrator",prompt:k,project_name:i.name,project_path:i.project_path,model:i.model})});if(!$.body){X("error","ReadableStream não suportado pelo backend."),_(!1);return}const re=$.body.getReader(),tt=new TextDecoder;let mt="";for(;;){const{done:Re,value:it}=await re.read();if(Re)break;mt+=tt.decode(it,{stream:!0});const We=mt.split(`
209
- `);mt=We.pop();for(const Rt of We)if(Rt.trim())try{const gt=JSON.parse(Rt);fu(gt)}catch{X("stdout",Rt)}}if(mt.trim())try{const Re=JSON.parse(mt);fu(Re)}catch{X("stdout",mt)}}catch($){X("error",`Falha na execução: ${$.message}`)}finally{_(!1),Pn()}},fu=y=>{const{event:k,...$}=y;switch(k){case"server_ready":X("info","Agente pronto.");break;case"agent_started":X("info",`Agente ${$.agent} iniciado.`);break;case"thought":X("thought",$.content);break;case"tool_call":X("tool_call",`Chamando: ${$.tool} (${JSON.stringify($.arguments)})`);break;case"tool_result":X("tool_result",`Sucesso: ${$.tool}`);break;case"agent_response":X("info","Resposta recebida."),g(re=>{const tt=re[re.length-1];return tt&&tt.role==="assistant"&&tt.content===$.response?(X("info","Duplicate assistant message ignored."),re):[...re,{role:"assistant",content:$.response}]});break;case"agent_finished":X("info","Processamento concluído.");break;case"input_request":Qc({id:$.id,prompt:$.prompt,options:$.options||["yes","no"],default:$.default||"yes"}),X("info",`🔔 Aguardando confirmação: ${$.prompt}`);break;case"error":X("error",$.message);break;case"problem":X("error",`[Problema em ${$.tool}]: ${$.message}`),M(re=>[...re,{id:Math.random().toString(),tool:$.tool,message:$.message,severity:$.severity||"error",timestamp:new Date().toLocaleTimeString()}]);break;default:X("info",`Evento: ${k}`)}},pu=async y=>{if(!Cn)return;const{id:k,prompt:$}=Cn;Qc(null),X("info",`✅ Confirmação: "${$}" → ${y}`);try{await fetch("/api/opalacoder/input_response",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:k,value:y})})}catch(re){X("error",`Erro ao enviar confirmação: ${re.message}`)}},ag=y=>{if(!y)return"plaintext";const k=y.split(".").pop().toLowerCase();return{py:"python",js:"javascript",jsx:"javascript",ts:"typescript",tsx:"typescript",html:"html",css:"css",json:"json",md:"markdown",yml:"yaml",yaml:"yaml",sh:"shell"}[k]||"plaintext"};return c.jsxs("div",{className:"vscode-app",children:[c.jsxs("div",{className:"vscode-main",children:[c.jsxs("div",{className:"vscode-activitybar",children:[c.jsxs("div",{className:"vscode-activitybar-top",children:[c.jsx("button",{onClick:()=>q("explorer"),className:`vscode-activitybar-btn ${O==="explorer"?"active":""}`,title:"Explorer",children:c.jsx(Dd,{size:22})}),c.jsxs("button",{onClick:()=>q("git"),className:`vscode-activitybar-btn ${O==="git"?"active":""}`,title:"Source Control",style:{position:"relative"},children:[c.jsx(eS,{size:22}),le.length>0&&c.jsx("span",{style:{position:"absolute",top:"4px",right:"4px",background:"#007acc",color:"#ffffff",borderRadius:"50%",width:"16px",height:"16px",fontSize:"9px",fontWeight:"bold",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 0 4px rgba(0,0,0,0.5)"},children:le.length})]}),c.jsx("button",{onClick:()=>L(!R),className:`vscode-activitybar-btn ${R?"active":""}`,title:"Copilot Chat",children:c.jsx(Ld,{size:22})})]}),c.jsx("div",{children:c.jsx("button",{onClick:()=>b(!0),className:"vscode-activitybar-btn",title:"Settings",children:c.jsx(qn,{size:20})})})]}),c.jsx("aside",{className:"vscode-sidebar",style:{width:`${Xc}px`},children:O==="explorer"?c.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[c.jsxs("div",{className:"vscode-sidebar-header",children:[c.jsx("span",{className:"vscode-sidebar-title",children:"EXPLORER: PROJECTS"}),c.jsx("button",{onClick:()=>xn(!0),style:{background:"transparent",border:"none",cursor:"pointer",color:"#c5c5c5"},title:"Novo Projeto...",children:c.jsx(Td,{size:14})})]}),c.jsxs("div",{className:"vscode-sidebar-section",children:[c.jsx("div",{className:"vscode-sidebar-section-title",children:"Selecione o Projeto"}),c.jsx("div",{className:"overflow-y-auto",style:{maxHeight:"140px"},children:e.map(y=>{const k=i&&i.name===y.name;return c.jsxs("div",{onClick:()=>uu(y),className:`vscode-project-item ${k?"active":""}`,children:[c.jsxs("div",{className:"truncate flex-1",children:[c.jsx("div",{style:{fontSize:"13px",fontWeight:"500"},className:"truncate",children:y.project_name||y.name}),c.jsx("div",{style:{fontSize:"10px",color:"#808080"},className:"truncate",children:y.project_path})]}),c.jsx("button",{onClick:$=>ng($,y),style:{background:"transparent",border:"none",cursor:"pointer",color:"#a0a0a0",padding:"2px 4px"},title:"Configurar projeto",children:c.jsx(qn,{size:12})}),c.jsx("button",{onClick:$=>{$.stopPropagation(),sg(y.name)},style:{background:"transparent",border:"none",cursor:"pointer",color:"#a0a0a0",padding:"2px 4px"},title:"Remover projeto",children:c.jsx(Nd,{size:12})})]},y.name)})})]}),c.jsxs("div",{className:"vscode-sidebar-content",onContextMenu:Zm,children:[c.jsx("div",{className:"vscode-sidebar-section-title",children:"Workspace Files"}),s.length===0?c.jsx("div",{style:{fontSize:"12px",color:"#808080",padding:"0 4px",fontStyle:"italic"},children:"Selecione um projeto para explorar."}):c.jsx("div",{children:s.map(y=>c.jsx(Um,{node:y,selectedFile:o,handleFileSelect:ig},y.path))})]})]}):c.jsxs("div",{className:"vscode-sidebar-content",style:{padding:"12px",display:"flex",flexDirection:"column",height:"100%",gap:"16px"},children:[c.jsx("div",{className:"vscode-sidebar-title",children:"SOURCE CONTROL (GIT)"}),i?le.length===0?c.jsx("div",{style:{fontSize:"12px",color:"#808080",fontStyle:"italic"},children:"Sem alterações locais."}):c.jsxs("div",{className:"flex flex-col flex-1 overflow-hidden",style:{gap:"16px"},children:[c.jsxs("form",{onSubmit:Jm,className:"flex flex-col",style:{gap:"8px"},children:[c.jsx("input",{type:"text",placeholder:"Mensagem do Commit...",value:oi,onChange:y=>jt(y.target.value),required:!0,style:{width:"100%",fontSize:"12px"}}),c.jsx("button",{type:"submit",className:"vscode-button",disabled:wi||!oi.trim(),style:{width:"100%"},children:wi?"Commit...":"Commit"})]}),c.jsxs("div",{className:"flex-1 overflow-y-auto",style:{borderTop:"1px solid var(--vscode-border)",paddingTop:"12px"},children:[c.jsxs("div",{className:"vscode-sidebar-section-title",style:{marginBottom:"8px",padding:0},children:["Modificações (",le.length,")"]}),c.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:le.map((y,k)=>{let $="#cccccc",re=y.status;return y.status==="M"?($="#e2b52b",re="M"):y.status==="??"||y.status==="A"?($="#73c991",re="U"):y.status==="D"&&($="#f48771",re="D"),c.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",fontSize:"12px",padding:"4px 6px",borderRadius:"3px",background:"rgba(255,255,255,0.02)"},children:[c.jsx("span",{className:"truncate",title:y.path,style:{color:"#cccccc",flex:1,marginRight:"8px"},children:y.path}),c.jsx("span",{style:{fontWeight:"bold",color:$,fontSize:"11px",minWidth:"12px",textAlign:"center"},children:re})]},k)})})]})]}):c.jsx("div",{style:{fontSize:"12px",color:"#808080",fontStyle:"italic"},children:"Selecione um projeto para ver as alterações Git."})]})}),c.jsx("div",{className:"vscode-resizer-horizontal",onMouseDown:y=>Cl(y,"left")}),c.jsxs("main",{className:"vscode-editor-panel",children:[o?c.jsxs("div",{className:"vscode-editor-panel",children:[c.jsxs("div",{className:"vscode-tabs",children:[c.jsx("div",{className:"flex h-full",children:c.jsxs("div",{className:"vscode-tab",children:[c.jsx("span",{style:{color:"#ffffff"},children:o.split("/").pop()}),c.jsx("button",{onClick:()=>l(null),className:"vscode-tab-close-btn",children:c.jsx(fs,{size:12})})]})}),c.jsx("div",{children:c.jsxs("button",{onClick:du,disabled:d,className:"vscode-button",children:[d?c.jsx(Bd,{size:12,className:"animate-spin"}):c.jsx(ea,{size:12}),c.jsx("span",{children:d?"Salvando...":"Salvar (Ctrl+S)"})]})})]}),c.jsx("div",{className:"vscode-editor-container",children:c.jsx(Uy,{height:"100%",language:ag(o),theme:C==="light"?"light":"vs-dark",value:h,onChange:y=>a(y),options:{minimap:{enabled:!0},fontSize:U,lineNumbers:"on",tabSize:V,wordWrap:se,automaticLayout:!0}})})]}):c.jsx("div",{className:"vscode-editor-container",style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},children:c.jsxs("div",{style:{textAlign:"center"},children:[c.jsx(Dd,{size:64,style:{color:"#3c3c3c",marginBottom:"16px"}}),c.jsx("h3",{style:{fontSize:"14px",fontWeight:"bold",color:"#b0b0b0",marginBottom:"4px"},children:"Nenhum Arquivo Aberto"}),c.jsx("p",{style:{fontSize:"12px",color:"#808080"},children:"Abra um arquivo na barra lateral esquerda."})]})}),!w&&c.jsx("div",{className:"vscode-resizer-vertical",onMouseDown:y=>Cl(y,"bottom")}),c.jsxs("div",{className:"vscode-bottom-panel",style:{height:w?"30px":`${Sl}px`},children:[c.jsxs("div",{className:"vscode-bottom-tabs",children:[c.jsxs("div",{className:"vscode-bottom-tab-list",children:[c.jsx("span",{className:`vscode-bottom-tab ${A==="output"?"active":""}`,onClick:()=>bl("output"),children:"OUTPUT (OPALACODER)"}),c.jsxs("span",{className:`vscode-bottom-tab ${A==="problems"?"active":""}`,onClick:()=>bl("problems"),children:["PROBLEMS ",I.length>0&&c.jsx("span",{style:{marginLeft:"4px",background:"#f48771",color:"#1e1e1e",borderRadius:"10px",padding:"0 6px",fontSize:"10px",fontWeight:"bold"},children:I.length})]}),c.jsx("span",{className:`vscode-bottom-tab ${A==="terminal"?"active":""}`,onClick:()=>bl("terminal"),children:"TERMINAL"})]}),c.jsx("button",{onClick:()=>x(!w),style:{background:"transparent",border:"none",cursor:"pointer",color:"#a0a0a0"},children:w?c.jsx(iS,{size:12}):c.jsx(rS,{size:12})})]}),!w&&c.jsxs("div",{style:{height:"calc(100% - 30px)",width:"100%"},children:[A==="output"&&c.jsxs("div",{className:"vscode-logs",style:{height:"100%"},children:[p.length===0?c.jsx("div",{style:{color:"#808080",fontStyle:"italic"},children:"Nenhum log gerado. Envie uma instrução no chat para iniciar..."}):p.map((y,k)=>{let $="text-[#cccccc]",re="SYSTEM";return y.type==="error"?($="text-[#f48771] font-semibold",re="ERROR"):y.type==="info"?($="text-[#75beff]",re="INFO"):y.type==="thought"?($="text-[#da70d6] italic",re="THOUGHT"):y.type==="tool_call"?($="text-[#d7ba7d]",re="TOOL"):y.type==="tool_result"&&($="text-[#89d4a5]",re="RESULT"),c.jsxs("div",{className:$,style:{display:"flex",alignItems:"flex-start",gap:"6px",marginBottom:"3px"},children:[c.jsxs("span",{style:{color:"#5a5a5a"},children:["[",y.timestamp,"]"]}),c.jsxs("span",{style:{fontWeight:"bold"},children:["[",re,"]"]}),c.jsx("span",{style:{whiteSpace:"pre-wrap",flex:1},children:y.message})]},k)}),c.jsx("div",{ref:cu})]}),A==="problems"&&c.jsx("div",{className:"vscode-problems-list",style:{padding:"8px",overflowY:"auto",height:"100%",color:"#cccccc",fontFamily:"Consolas, monospace",fontSize:"12px"},children:I.length===0?c.jsx("div",{style:{color:"#808080",fontStyle:"italic",padding:"8px"},children:"Nenhum problema detectado."}):I.map(y=>c.jsxs("div",{style:{display:"flex",gap:"8px",alignItems:"flex-start",borderBottom:"1px solid #2d2d2d",padding:"6px 0"},children:[c.jsx(Jy,{size:14,className:"text-[#f48771]",style:{flexShrink:0,marginTop:"2px"}}),c.jsxs("div",{children:[c.jsxs("div",{style:{fontWeight:"bold",color:"#f48771",marginBottom:"2px"},children:["[",y.timestamp,"] Erro em ",y.tool,":"]}),c.jsx("pre",{style:{whiteSpace:"pre-wrap",margin:0,color:"#e0e0e0",fontSize:"12px",fontFamily:"inherit"},children:y.message})]})]},y.id))}),c.jsx("div",{style:{display:A==="terminal"?"block":"none",height:"100%",background:"#1e1e1e",overflow:"hidden"},children:i?c.jsx("div",{ref:is,style:{width:"100%",height:"100%",padding:"4px"}}):c.jsx("div",{style:{color:"#808080",fontStyle:"italic",padding:"16px"},children:"Defina um projeto/workspace para habilitar o terminal."})})]})]})]}),R&&c.jsx("div",{className:"vscode-resizer-horizontal",onMouseDown:y=>Cl(y,"right")}),R&&c.jsxs("aside",{className:"vscode-chat",style:{width:`${Gc}px`},children:[c.jsxs("div",{className:"vscode-chat-header",children:[c.jsxs("span",{className:"vscode-sidebar-title",style:{display:"flex",alignItems:"center",gap:"6px"},children:[c.jsx(Ld,{size:12,style:{color:"#007acc"}}),c.jsx("span",{children:"COPILOT CHAT"})]}),c.jsx("button",{onClick:()=>L(!1),style:{background:"transparent",border:"none",cursor:"pointer",color:"#a0a0a0"},children:c.jsx(fs,{size:14})})]}),c.jsxs("div",{className:"vscode-chat-toolbar",children:[c.jsxs("button",{onClick:()=>S("/undo"),className:"vscode-chat-tool-btn",children:[c.jsx(sS,{size:11}),c.jsx("span",{children:"/undo"})]}),c.jsxs("button",{onClick:()=>S("/clear"),className:"vscode-chat-tool-btn",children:[c.jsx(Bd,{size:11}),c.jsx("span",{children:"/clear"})]}),c.jsxs("button",{onClick:()=>S("/commit"),className:"vscode-chat-tool-btn",children:[c.jsx(ea,{size:11}),c.jsx("span",{children:"/commit"})]})]}),c.jsxs("div",{className:"vscode-chat-history",children:[f.map((y,k)=>{const $=y.role==="user";return c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[c.jsx("span",{className:"vscode-chat-msg-header",style:{color:$?"#75beff":"#da70d6"},children:$?"VOCÊ":"OPALACODER"}),c.jsx("div",{className:"vscode-chat-msg-content",children:vC(y.content)})]},k)}),P&&c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[c.jsx("span",{className:"vscode-chat-msg-header",style:{color:"#da70d6"},children:"OPALACODER"}),c.jsx("div",{className:"vscode-chat-msg-content",children:c.jsxs("div",{className:"thinking-indicator",children:[c.jsx("span",{className:"dot"}),c.jsx("span",{className:"dot"}),c.jsx("span",{className:"dot"})]})})]}),c.jsx("div",{ref:hu})]}),c.jsx("form",{onSubmit:lg,className:"vscode-chat-form",children:c.jsxs("div",{className:"vscode-chat-input-row",children:[c.jsx("input",{type:"text",value:m,onChange:y=>S(y.target.value),disabled:!i||P,placeholder:i?P?"Pensando...":"Pergunte ao OpalaCoder...":"Defina um projeto...",style:{flex:1}}),c.jsx("button",{type:"submit",disabled:!i||P||!m.trim(),className:"vscode-button",style:{padding:"6px"},children:c.jsx(Yy,{size:14})})]})})]})]}),c.jsxs("footer",{className:"vscode-statusbar",children:[c.jsxs("div",{className:"flex items-center",style:{gap:"16px"},children:[c.jsxs("div",{className:"flex items-center",style:{gap:"6px"},children:[c.jsx(tS,{size:11}),c.jsx("span",{style:{fontWeight:"bold"},children:i?`Workspace: ${i.project_name||i.name}`:"Sem Workspace"})]}),P&&c.jsxs("span",{className:"flex items-center",style:{gap:"6px"},children:[c.jsx("span",{style:{width:"6px",height:"6px",backgroundColor:"#ffffff",borderRadius:"50%",display:"inline-block"}}),c.jsx("span",{style:{fontWeight:"bold"},children:"OpalaCoder Ativo..."})]})]}),c.jsxs("div",{className:"flex items-center",style:{gap:"12px"},children:[c.jsx("span",{children:"UTF-8"}),c.jsx("span",{children:"LF"}),c.jsx("span",{children:"JSON IPC Bridge"})]})]}),Ym&&c.jsx("div",{className:"vscode-modal-overlay",children:c.jsxs("div",{className:"vscode-modal",children:[c.jsxs("div",{className:"vscode-sidebar-header",style:{padding:"10px 16px"},children:[c.jsx("span",{className:"vscode-sidebar-title",style:{color:"#ffffff"},children:"REGISTRAR NOVO PROJETO"}),c.jsx("button",{onClick:()=>xn(!1),style:{background:"transparent",border:"none",cursor:"pointer",color:"#a0a0a0"},children:c.jsx(fs,{size:14})})]}),c.jsxs("form",{onSubmit:rg,className:"flex flex-col",style:{padding:"16px",gap:"12px"},children:[c.jsxs("div",{className:"flex flex-col",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Nome do Projeto *"}),c.jsx("input",{type:"text",value:bn,onChange:y=>Zc(y.target.value),placeholder:"Ex: Meu Servidor Web",required:!0})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Caminho Absoluto *"}),c.jsx("input",{type:"text",value:xl,onChange:y=>eu(y.target.value),placeholder:"Ex: /home/gilzamir/projetos/meu-app",required:!0})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Descrição"}),c.jsx("textarea",{value:tu,onChange:y=>iu(y.target.value),placeholder:"Descritivo do projeto...",rows:2,style:{resize:"none"}})]}),c.jsxs("div",{style:{display:"flex",gap:"12px"},children:[c.jsxs("div",{className:"flex flex-col flex-1",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Chave de API (Opcional)"}),c.jsx("input",{type:"password",value:nu,onChange:y=>ou(y.target.value),placeholder:"Ex: sk-..."})]}),c.jsxs("div",{className:"flex flex-col flex-1",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"URL Base da API (Opcional)"}),c.jsx("input",{type:"text",value:lu,onChange:y=>au(y.target.value),placeholder:"Ex: http://localhost:11434/v1"})]})]}),c.jsxs("div",{style:{fontSize:"11px",color:"#808080",marginTop:"-6px",lineHeight:"1.4"},children:["Dica: Para usar o Ollama local com ",c.jsx("strong",{children:"ollama/ministral-3:14b"}),", informe a URL Base acima (ex: ",c.jsx("code",{children:"http://localhost:11434/v1"}),") e digite/selecione o modelo correspondente."]}),c.jsxs("div",{style:{display:"flex",gap:"12px"},children:[c.jsxs("div",{className:"flex flex-col flex-1",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Modelo de IA"}),c.jsx("input",{type:"text",list:"default-models",value:ru,onChange:y=>Xm(y.target.value),placeholder:"Selecione ou digite o modelo (ex: ollama/ministral-3:14b)"}),c.jsxs("datalist",{id:"default-models",children:[c.jsx("option",{value:"gemini/gemini-2.5-flash"}),c.jsx("option",{value:"gemini/gemini-2.5-pro"}),c.jsx("option",{value:"openai/gpt-4o"}),c.jsx("option",{value:"ollama/ministral-3:14b"})]})]}),c.jsxs("div",{className:"flex flex-col flex-1",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Modo de Execução"}),c.jsxs("select",{value:su,onChange:y=>Gm(y.target.value),children:[c.jsx("option",{value:"auto",children:"Auto (Completo)"}),c.jsx("option",{value:"plan",children:"Plan (Planejar)"}),c.jsx("option",{value:"edit",children:"Edit (Editar)"})]})]})]}),c.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:"8px",paddingTop:"12px",borderTop:"1px solid #3c3c3c",marginTop:"4px"},children:[c.jsx("button",{type:"button",onClick:()=>xn(!1),className:"vscode-button",style:{backgroundColor:"#3c3c3c",color:"#ffffff"},children:"Cancelar"}),c.jsx("button",{type:"submit",className:"vscode-button",children:"Registrar"})]})]})]})}),wl&&c.jsxs("div",{className:"vscode-context-menu",style:{top:`${wl.y}px`,left:`${wl.x}px`},children:[c.jsxs("div",{className:"vscode-context-menu-item",onClick:eg,children:[c.jsx(Td,{size:13,style:{color:"#007acc"}}),c.jsx("span",{children:"New File..."})]}),o&&c.jsxs("div",{className:"vscode-context-menu-item",onClick:tg,children:[c.jsx(Nd,{size:13,style:{color:"#f48771"}}),c.jsx("span",{children:"Delete File"})]})]}),Ye&&c.jsx("div",{className:"vscode-modal-overlay",children:c.jsxs("div",{className:"vscode-modal",style:{maxWidth:"520px",width:"92%"},children:[c.jsxs("div",{className:"vscode-sidebar-header",style:{padding:"10px 16px"},children:[c.jsxs("span",{className:"vscode-sidebar-title",style:{color:"#ffffff",display:"flex",alignItems:"center",gap:"8px"},children:[c.jsx(qn,{size:14,style:{color:"#007acc"}}),"CONFIGURAÇÕES DO PROJETO"]}),c.jsx("button",{onClick:()=>Yt(null),style:{background:"transparent",border:"none",cursor:"pointer",color:"#a0a0a0"},children:c.jsx(fs,{size:14})})]}),c.jsxs("form",{onSubmit:og,className:"flex flex-col",style:{padding:"16px",gap:"14px"},children:[c.jsxs("div",{className:"flex flex-col",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"ID Interno (somente leitura)"}),c.jsx("input",{type:"text",value:Ye.name,readOnly:!0,style:{opacity:.5,cursor:"not-allowed"}})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Nome de Exibição *"}),c.jsx("input",{type:"text",value:Ye.project_name,onChange:y=>Yt(k=>({...k,project_name:y.target.value})),required:!0,placeholder:"Nome do projeto"})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Caminho Absoluto"}),c.jsx("input",{type:"text",value:Ye.project_path,onChange:y=>Yt(k=>({...k,project_path:y.target.value})),placeholder:"/caminho/absoluto/do/projeto"})]}),c.jsxs("div",{style:{display:"flex",gap:"12px"},children:[c.jsxs("div",{className:"flex flex-col flex-1",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Modelo Principal"}),c.jsx("input",{type:"text",list:"edit-models",value:Ye.model,onChange:y=>Yt(k=>({...k,model:y.target.value})),placeholder:"gemini/gemini-2.5-flash"}),c.jsxs("datalist",{id:"edit-models",children:[c.jsx("option",{value:"gemini/gemini-2.5-flash"}),c.jsx("option",{value:"gemini/gemini-2.5-pro"}),c.jsx("option",{value:"openai/gpt-4o"}),c.jsx("option",{value:"ollama/ministral-3:14b"})]})]}),c.jsxs("div",{className:"flex flex-col flex-1",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Modo"}),c.jsxs("select",{value:Ye.mode,onChange:y=>Yt(k=>({...k,mode:y.target.value})),children:[c.jsx("option",{value:"auto",children:"Auto (Completo)"}),c.jsx("option",{value:"plan",children:"Plan (Planejar)"}),c.jsx("option",{value:"edit",children:"Edit (Editar)"})]})]})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Modelo Alternativo"}),c.jsx("input",{type:"text",list:"edit-alt-models",value:Ye.alternative_model,onChange:y=>Yt(k=>({...k,alternative_model:y.target.value})),placeholder:"(usa o padrão global se vazio)"}),c.jsxs("datalist",{id:"edit-alt-models",children:[c.jsx("option",{value:"gemini/gemini-2.5-flash"}),c.jsx("option",{value:"openai/gpt-4o-mini"}),c.jsx("option",{value:"ollama/gemma3:4b"})]})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Descrição"}),c.jsx("textarea",{value:Ye.description,onChange:y=>Yt(k=>({...k,description:y.target.value})),placeholder:"Descrição opcional do projeto...",rows:2,style:{resize:"none"}})]}),c.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:"8px",paddingTop:"12px",borderTop:"1px solid #3c3c3c",marginTop:"4px"},children:[c.jsx("button",{type:"button",onClick:()=>Yt(null),className:"vscode-button",style:{backgroundColor:"#3c3c3c",color:"#ffffff"},children:"Cancelar"}),c.jsxs("button",{type:"submit",className:"vscode-button",children:[c.jsx(ea,{size:12}),"Salvar Alterações"]})]})]})]})}),Cn&&c.jsx("div",{style:{position:"fixed",inset:0,zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.55)",backdropFilter:"blur(4px)",animation:"fadeIn 0.15s ease"},children:c.jsxs("div",{style:{background:"linear-gradient(135deg, #1e1e2e 0%, #252537 100%)",border:"1px solid #3c3c5c",borderRadius:"12px",padding:"28px 32px",maxWidth:"420px",width:"90%",boxShadow:"0 24px 64px rgba(0,0,0,0.6)"},children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"10px",marginBottom:"16px"},children:[c.jsx("span",{style:{fontSize:"22px"},children:"🔔"}),c.jsx("span",{style:{fontSize:"12px",fontWeight:700,color:"#a0a0c0",letterSpacing:"0.1em",textTransform:"uppercase"},children:"Confirmação Necessária"})]}),c.jsx("p",{style:{fontSize:"14px",color:"#e0e0f0",lineHeight:1.6,marginBottom:"24px",margin:"0 0 24px 0"},children:Cn.prompt}),c.jsxs("div",{style:{display:"flex",gap:"12px",justifyContent:"flex-end"},children:[c.jsx("button",{id:"confirm-no-btn",onClick:()=>pu("no"),style:{padding:"8px 20px",borderRadius:"8px",border:"1px solid #4c4c6c",background:"transparent",color:"#a0a0c0",cursor:"pointer",fontSize:"13px",fontWeight:600,transition:"all 0.15s"},onMouseEnter:y=>{y.target.style.background="#2c2c3c",y.target.style.color="#e0e0f0"},onMouseLeave:y=>{y.target.style.background="transparent",y.target.style.color="#a0a0c0"},children:"Não"}),c.jsx("button",{id:"confirm-yes-btn",onClick:()=>pu("yes"),style:{padding:"8px 24px",borderRadius:"8px",border:"none",background:"linear-gradient(135deg, #007acc, #0062a3)",color:"#fff",cursor:"pointer",fontSize:"13px",fontWeight:700,boxShadow:"0 4px 16px rgba(0,122,204,0.35)",transition:"all 0.15s"},onMouseEnter:y=>{y.target.style.background="linear-gradient(135deg, #0090f0, #007acc)"},onMouseLeave:y=>{y.target.style.background="linear-gradient(135deg, #007acc, #0062a3)"},children:"Sim"})]})]})}),z&&c.jsx("div",{className:"vscode-modal-overlay",children:c.jsxs("div",{className:"vscode-modal",style:{maxWidth:"440px",width:"90%"},children:[c.jsxs("div",{className:"vscode-sidebar-header",style:{padding:"10px 16px"},children:[c.jsxs("span",{className:"vscode-sidebar-title",style:{color:"#ffffff",display:"flex",alignItems:"center",gap:"8px"},children:[c.jsx(qn,{size:14,style:{color:"#007acc"}}),"CONFIGURAÇÕES DA IDE"]}),c.jsx("button",{onClick:()=>b(!1),style:{background:"transparent",border:"none",cursor:"pointer",color:"#a0a0a0"},children:c.jsx(fs,{size:14})})]}),c.jsxs("div",{style:{display:"flex",borderBottom:"1px solid var(--vscode-border)",backgroundColor:"var(--vscode-tab-inactive-bg)"},children:[c.jsx("button",{onClick:()=>K("preferences"),style:{flex:1,padding:"8px",background:T==="preferences"?"var(--vscode-tab-active-bg)":"transparent",border:"none",borderBottom:T==="preferences"?"2px solid var(--vscode-active-border)":"none",color:T==="preferences"?"#ffffff":"#808080",fontWeight:"bold",fontSize:"11px",textTransform:"uppercase",cursor:"pointer"},children:"Preferências"}),c.jsx("button",{onClick:()=>K("about"),style:{flex:1,padding:"8px",background:T==="about"?"var(--vscode-tab-active-bg)":"transparent",border:"none",borderBottom:T==="about"?"2px solid var(--vscode-active-border)":"none",color:T==="about"?"#ffffff":"#808080",fontWeight:"bold",fontSize:"11px",textTransform:"uppercase",cursor:"pointer"},children:"Sobre"})]}),c.jsx("div",{className:"flex flex-col",style:{padding:"16px",gap:"14px"},children:T==="preferences"?c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"flex flex-col",style:{gap:"6px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Tema de Cor"}),c.jsxs("select",{value:C,onChange:y=>j(y.target.value),style:{width:"100%"},children:[c.jsx("option",{value:"dark",children:"Escuro (Dark Mode)"}),c.jsx("option",{value:"light",children:"Claro (Light Mode)"})]})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"6px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Tamanho da Fonte do Editor"}),c.jsx("input",{type:"number",min:"10",max:"30",value:U,onChange:y=>{const k=Number(y.target.value);H(k),to("editorFontSize",k)},style:{width:"100%"}})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"6px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Tamanho do Tab (Espaços)"}),c.jsxs("select",{value:V,onChange:y=>{const k=Number(y.target.value);ee(k),to("editorTabSize",k)},style:{width:"100%"},children:[c.jsx("option",{value:2,children:"2 Espaços"}),c.jsx("option",{value:4,children:"4 Espaços"}),c.jsx("option",{value:8,children:"8 Espaços"})]})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"6px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Quebra Automática de Linha (Word Wrap)"}),c.jsxs("select",{value:se,onChange:y=>{pe(y.target.value),to("editorWordWrap",y.target.value)},style:{width:"100%"},children:[c.jsx("option",{value:"on",children:"Ativado (On)"}),c.jsx("option",{value:"off",children:"Desativado (Off)"})]})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"6px",borderTop:"1px solid var(--vscode-border)",paddingTop:"12px",marginTop:"6px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Dependências Opcionais"}),c.jsx("span",{style:{fontSize:"11px",color:"#888888",lineHeight:"1.4"},children:"Instale recursos extras (Local Embeddings, PyTorch, CUDA, etc.) que otimizam o processamento off-line."}),c.jsx("button",{type:"button",className:"vscode-button",disabled:Pt,onClick:Qm,style:{width:"100%",marginTop:"6px"},children:Pt?"Instalando...":"Instalar Recursos Opcionais"}),xi&&c.jsxs("span",{style:{fontSize:"11px",fontWeight:"bold",color:xi.includes("Erro")||xi.includes("Falha")?"#f48771":"#73c991",marginTop:"4px"},children:["Status: ",xi]}),Yc&&c.jsx("textarea",{readOnly:!0,value:Yc,style:{width:"100%",height:"80px",marginTop:"8px",fontSize:"10px",fontFamily:"monospace",background:"#151515",color:"#89d4a5",border:"1px solid var(--vscode-border)",padding:"6px",resize:"none"}})]})]}):c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"14px",color:"#cccccc"},children:[c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[c.jsx("span",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Versão"}),c.jsx("span",{style:{fontSize:"13px",fontWeight:"bold",color:"#ffffff"},children:"0.1.17 alfa"})]}),c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[c.jsx("span",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Autor"}),c.jsx("span",{style:{fontSize:"13px",color:"#ffffff"},children:"dev@opala.com"})]}),c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[c.jsx("span",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Licença"}),c.jsx("span",{style:{fontSize:"13px",color:"#ffffff"},children:"MIT"})]})]})}),c.jsx("div",{style:{display:"flex",justifyContent:"flex-end",padding:"12px 16px",gap:"8px",borderTop:"1px solid var(--vscode-border)",backgroundColor:"var(--vscode-sidebar-bg)"},children:c.jsx("button",{onClick:()=>b(!1),className:"vscode-button",children:"Fechar"})})]})})]})}function Um({node:e,selectedFile:t,handleFileSelect:i}){const r=e.isDirectory,[s,n]=D.useState(!1);if(r)return c.jsxs("div",{className:"select-none",children:[c.jsxs("div",{onClick:()=>n(!s),className:"vscode-tree-node",children:[s?c.jsx(Xy,{size:14}):c.jsx(Gy,{size:14}),c.jsx(Zy,{size:14,className:"text-white",style:{color:"#e8a838"}}),c.jsx("span",{className:"truncate",children:e.name})]}),s&&c.jsx("div",{style:{paddingLeft:"12px",borderLeft:"1px solid #3c3c3c",marginLeft:"14px"},children:e.children.map(l=>c.jsx(Um,{node:l,selectedFile:t,handleFileSelect:i},l.path))})]});const o=t===e.path;return c.jsxs("div",{onClick:()=>i(e.path),className:`vscode-tree-node ${o?"active":""}`,children:[c.jsx(Qy,{size:13,style:{color:"#a0a0a0"}}),c.jsx("span",{className:"truncate",children:e.name})]})}function vC(e){return e?e.split(`
209
+ `);mt=We.pop();for(const Rt of We)if(Rt.trim())try{const gt=JSON.parse(Rt);fu(gt)}catch{X("stdout",Rt)}}if(mt.trim())try{const Re=JSON.parse(mt);fu(Re)}catch{X("stdout",mt)}}catch($){X("error",`Falha na execução: ${$.message}`)}finally{_(!1),Pn()}},fu=y=>{const{event:k,...$}=y;switch(k){case"server_ready":X("info","Agente pronto.");break;case"agent_started":X("info",`Agente ${$.agent} iniciado.`);break;case"thought":X("thought",$.content);break;case"tool_call":X("tool_call",`Chamando: ${$.tool} (${JSON.stringify($.arguments)})`);break;case"tool_result":X("tool_result",`Sucesso: ${$.tool}`);break;case"agent_response":X("info","Resposta recebida."),g(re=>{const tt=re[re.length-1];return tt&&tt.role==="assistant"&&tt.content===$.response?(X("info","Duplicate assistant message ignored."),re):[...re,{role:"assistant",content:$.response}]});break;case"agent_finished":X("info","Processamento concluído.");break;case"input_request":Qc({id:$.id,prompt:$.prompt,options:$.options||["yes","no"],default:$.default||"yes"}),X("info",`🔔 Aguardando confirmação: ${$.prompt}`);break;case"error":X("error",$.message);break;case"problem":X("error",`[Problema em ${$.tool}]: ${$.message}`),M(re=>[...re,{id:Math.random().toString(),tool:$.tool,message:$.message,severity:$.severity||"error",timestamp:new Date().toLocaleTimeString()}]);break;default:X("info",`Evento: ${k}`)}},pu=async y=>{if(!Cn)return;const{id:k,prompt:$}=Cn;Qc(null),X("info",`✅ Confirmação: "${$}" → ${y}`);try{await fetch("/api/opalacoder/input_response",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:k,value:y})})}catch(re){X("error",`Erro ao enviar confirmação: ${re.message}`)}},ag=y=>{if(!y)return"plaintext";const k=y.split(".").pop().toLowerCase();return{py:"python",js:"javascript",jsx:"javascript",ts:"typescript",tsx:"typescript",html:"html",css:"css",json:"json",md:"markdown",yml:"yaml",yaml:"yaml",sh:"shell"}[k]||"plaintext"};return c.jsxs("div",{className:"vscode-app",children:[c.jsxs("div",{className:"vscode-main",children:[c.jsxs("div",{className:"vscode-activitybar",children:[c.jsxs("div",{className:"vscode-activitybar-top",children:[c.jsx("button",{onClick:()=>q("explorer"),className:`vscode-activitybar-btn ${O==="explorer"?"active":""}`,title:"Explorer",children:c.jsx(Dd,{size:22})}),c.jsxs("button",{onClick:()=>q("git"),className:`vscode-activitybar-btn ${O==="git"?"active":""}`,title:"Source Control",style:{position:"relative"},children:[c.jsx(eS,{size:22}),le.length>0&&c.jsx("span",{style:{position:"absolute",top:"4px",right:"4px",background:"#007acc",color:"#ffffff",borderRadius:"50%",width:"16px",height:"16px",fontSize:"9px",fontWeight:"bold",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 0 4px rgba(0,0,0,0.5)"},children:le.length})]}),c.jsx("button",{onClick:()=>L(!R),className:`vscode-activitybar-btn ${R?"active":""}`,title:"Copilot Chat",children:c.jsx(Ld,{size:22})})]}),c.jsx("div",{children:c.jsx("button",{onClick:()=>b(!0),className:"vscode-activitybar-btn",title:"Settings",children:c.jsx(qn,{size:20})})})]}),c.jsx("aside",{className:"vscode-sidebar",style:{width:`${Xc}px`},children:O==="explorer"?c.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[c.jsxs("div",{className:"vscode-sidebar-header",children:[c.jsx("span",{className:"vscode-sidebar-title",children:"EXPLORER: PROJECTS"}),c.jsx("button",{onClick:()=>xn(!0),style:{background:"transparent",border:"none",cursor:"pointer",color:"#c5c5c5"},title:"Novo Projeto...",children:c.jsx(Td,{size:14})})]}),c.jsxs("div",{className:"vscode-sidebar-section",children:[c.jsx("div",{className:"vscode-sidebar-section-title",children:"Selecione o Projeto"}),c.jsx("div",{className:"overflow-y-auto",style:{maxHeight:"140px"},children:e.map(y=>{const k=i&&i.name===y.name;return c.jsxs("div",{onClick:()=>uu(y),className:`vscode-project-item ${k?"active":""}`,children:[c.jsxs("div",{className:"truncate flex-1",children:[c.jsx("div",{style:{fontSize:"13px",fontWeight:"500"},className:"truncate",children:y.project_name||y.name}),c.jsx("div",{style:{fontSize:"10px",color:"#808080"},className:"truncate",children:y.project_path})]}),c.jsx("button",{onClick:$=>ng($,y),style:{background:"transparent",border:"none",cursor:"pointer",color:"#a0a0a0",padding:"2px 4px"},title:"Configurar projeto",children:c.jsx(qn,{size:12})}),c.jsx("button",{onClick:$=>{$.stopPropagation(),sg(y.name)},style:{background:"transparent",border:"none",cursor:"pointer",color:"#a0a0a0",padding:"2px 4px"},title:"Remover projeto",children:c.jsx(Nd,{size:12})})]},y.name)})})]}),c.jsxs("div",{className:"vscode-sidebar-content",onContextMenu:Zm,children:[c.jsx("div",{className:"vscode-sidebar-section-title",children:"Workspace Files"}),s.length===0?c.jsx("div",{style:{fontSize:"12px",color:"#808080",padding:"0 4px",fontStyle:"italic"},children:"Selecione um projeto para explorar."}):c.jsx("div",{children:s.map(y=>c.jsx(Um,{node:y,selectedFile:o,handleFileSelect:ig},y.path))})]})]}):c.jsxs("div",{className:"vscode-sidebar-content",style:{padding:"12px",display:"flex",flexDirection:"column",height:"100%",gap:"16px"},children:[c.jsx("div",{className:"vscode-sidebar-title",children:"SOURCE CONTROL (GIT)"}),i?le.length===0?c.jsx("div",{style:{fontSize:"12px",color:"#808080",fontStyle:"italic"},children:"Sem alterações locais."}):c.jsxs("div",{className:"flex flex-col flex-1 overflow-hidden",style:{gap:"16px"},children:[c.jsxs("form",{onSubmit:Jm,className:"flex flex-col",style:{gap:"8px"},children:[c.jsx("input",{type:"text",placeholder:"Mensagem do Commit...",value:oi,onChange:y=>jt(y.target.value),required:!0,style:{width:"100%",fontSize:"12px"}}),c.jsx("button",{type:"submit",className:"vscode-button",disabled:wi||!oi.trim(),style:{width:"100%"},children:wi?"Commit...":"Commit"})]}),c.jsxs("div",{className:"flex-1 overflow-y-auto",style:{borderTop:"1px solid var(--vscode-border)",paddingTop:"12px"},children:[c.jsxs("div",{className:"vscode-sidebar-section-title",style:{marginBottom:"8px",padding:0},children:["Modificações (",le.length,")"]}),c.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:le.map((y,k)=>{let $="#cccccc",re=y.status;return y.status==="M"?($="#e2b52b",re="M"):y.status==="??"||y.status==="A"?($="#73c991",re="U"):y.status==="D"&&($="#f48771",re="D"),c.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",fontSize:"12px",padding:"4px 6px",borderRadius:"3px",background:"rgba(255,255,255,0.02)"},children:[c.jsx("span",{className:"truncate",title:y.path,style:{color:"#cccccc",flex:1,marginRight:"8px"},children:y.path}),c.jsx("span",{style:{fontWeight:"bold",color:$,fontSize:"11px",minWidth:"12px",textAlign:"center"},children:re})]},k)})})]})]}):c.jsx("div",{style:{fontSize:"12px",color:"#808080",fontStyle:"italic"},children:"Selecione um projeto para ver as alterações Git."})]})}),c.jsx("div",{className:"vscode-resizer-horizontal",onMouseDown:y=>Cl(y,"left")}),c.jsxs("main",{className:"vscode-editor-panel",children:[o?c.jsxs("div",{className:"vscode-editor-panel",children:[c.jsxs("div",{className:"vscode-tabs",children:[c.jsx("div",{className:"flex h-full",children:c.jsxs("div",{className:"vscode-tab",children:[c.jsx("span",{style:{color:"#ffffff"},children:o.split("/").pop()}),c.jsx("button",{onClick:()=>l(null),className:"vscode-tab-close-btn",children:c.jsx(fs,{size:12})})]})}),c.jsx("div",{children:c.jsxs("button",{onClick:du,disabled:d,className:"vscode-button",children:[d?c.jsx(Bd,{size:12,className:"animate-spin"}):c.jsx(ea,{size:12}),c.jsx("span",{children:d?"Salvando...":"Salvar (Ctrl+S)"})]})})]}),c.jsx("div",{className:"vscode-editor-container",children:c.jsx(Uy,{height:"100%",language:ag(o),theme:C==="light"?"light":"vs-dark",value:h,onChange:y=>a(y),options:{minimap:{enabled:!0},fontSize:U,lineNumbers:"on",tabSize:V,wordWrap:se,automaticLayout:!0}})})]}):c.jsx("div",{className:"vscode-editor-container",style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},children:c.jsxs("div",{style:{textAlign:"center"},children:[c.jsx(Dd,{size:64,style:{color:"#3c3c3c",marginBottom:"16px"}}),c.jsx("h3",{style:{fontSize:"14px",fontWeight:"bold",color:"#b0b0b0",marginBottom:"4px"},children:"Nenhum Arquivo Aberto"}),c.jsx("p",{style:{fontSize:"12px",color:"#808080"},children:"Abra um arquivo na barra lateral esquerda."})]})}),!w&&c.jsx("div",{className:"vscode-resizer-vertical",onMouseDown:y=>Cl(y,"bottom")}),c.jsxs("div",{className:"vscode-bottom-panel",style:{height:w?"30px":`${Sl}px`},children:[c.jsxs("div",{className:"vscode-bottom-tabs",children:[c.jsxs("div",{className:"vscode-bottom-tab-list",children:[c.jsx("span",{className:`vscode-bottom-tab ${A==="output"?"active":""}`,onClick:()=>bl("output"),children:"OUTPUT (OPALACODER)"}),c.jsxs("span",{className:`vscode-bottom-tab ${A==="problems"?"active":""}`,onClick:()=>bl("problems"),children:["PROBLEMS ",I.length>0&&c.jsx("span",{style:{marginLeft:"4px",background:"#f48771",color:"#1e1e1e",borderRadius:"10px",padding:"0 6px",fontSize:"10px",fontWeight:"bold"},children:I.length})]}),c.jsx("span",{className:`vscode-bottom-tab ${A==="terminal"?"active":""}`,onClick:()=>bl("terminal"),children:"TERMINAL"})]}),c.jsx("button",{onClick:()=>x(!w),style:{background:"transparent",border:"none",cursor:"pointer",color:"#a0a0a0"},children:w?c.jsx(iS,{size:12}):c.jsx(rS,{size:12})})]}),!w&&c.jsxs("div",{style:{height:"calc(100% - 30px)",width:"100%"},children:[A==="output"&&c.jsxs("div",{className:"vscode-logs",style:{height:"100%"},children:[p.length===0?c.jsx("div",{style:{color:"#808080",fontStyle:"italic"},children:"Nenhum log gerado. Envie uma instrução no chat para iniciar..."}):p.map((y,k)=>{let $="text-[#cccccc]",re="SYSTEM";return y.type==="error"?($="text-[#f48771] font-semibold",re="ERROR"):y.type==="info"?($="text-[#75beff]",re="INFO"):y.type==="thought"?($="text-[#da70d6] italic",re="THOUGHT"):y.type==="tool_call"?($="text-[#d7ba7d]",re="TOOL"):y.type==="tool_result"&&($="text-[#89d4a5]",re="RESULT"),c.jsxs("div",{className:$,style:{display:"flex",alignItems:"flex-start",gap:"6px",marginBottom:"3px"},children:[c.jsxs("span",{style:{color:"#5a5a5a"},children:["[",y.timestamp,"]"]}),c.jsxs("span",{style:{fontWeight:"bold"},children:["[",re,"]"]}),c.jsx("span",{style:{whiteSpace:"pre-wrap",flex:1},children:y.message})]},k)}),c.jsx("div",{ref:cu})]}),A==="problems"&&c.jsx("div",{className:"vscode-problems-list",style:{padding:"8px",overflowY:"auto",height:"100%",color:"#cccccc",fontFamily:"Consolas, monospace",fontSize:"12px"},children:I.length===0?c.jsx("div",{style:{color:"#808080",fontStyle:"italic",padding:"8px"},children:"Nenhum problema detectado."}):I.map(y=>c.jsxs("div",{style:{display:"flex",gap:"8px",alignItems:"flex-start",borderBottom:"1px solid #2d2d2d",padding:"6px 0"},children:[c.jsx(Jy,{size:14,className:"text-[#f48771]",style:{flexShrink:0,marginTop:"2px"}}),c.jsxs("div",{children:[c.jsxs("div",{style:{fontWeight:"bold",color:"#f48771",marginBottom:"2px"},children:["[",y.timestamp,"] Erro em ",y.tool,":"]}),c.jsx("pre",{style:{whiteSpace:"pre-wrap",margin:0,color:"#e0e0e0",fontSize:"12px",fontFamily:"inherit"},children:y.message})]})]},y.id))}),c.jsx("div",{style:{display:A==="terminal"?"block":"none",height:"100%",background:"#1e1e1e",overflow:"hidden"},children:i?c.jsx("div",{ref:is,style:{width:"100%",height:"100%",padding:"4px"}}):c.jsx("div",{style:{color:"#808080",fontStyle:"italic",padding:"16px"},children:"Defina um projeto/workspace para habilitar o terminal."})})]})]})]}),R&&c.jsx("div",{className:"vscode-resizer-horizontal",onMouseDown:y=>Cl(y,"right")}),R&&c.jsxs("aside",{className:"vscode-chat",style:{width:`${Gc}px`},children:[c.jsxs("div",{className:"vscode-chat-header",children:[c.jsxs("span",{className:"vscode-sidebar-title",style:{display:"flex",alignItems:"center",gap:"6px"},children:[c.jsx(Ld,{size:12,style:{color:"#007acc"}}),c.jsx("span",{children:"COPILOT CHAT"})]}),c.jsx("button",{onClick:()=>L(!1),style:{background:"transparent",border:"none",cursor:"pointer",color:"#a0a0a0"},children:c.jsx(fs,{size:14})})]}),c.jsxs("div",{className:"vscode-chat-toolbar",children:[c.jsxs("button",{onClick:()=>S("/undo"),className:"vscode-chat-tool-btn",children:[c.jsx(sS,{size:11}),c.jsx("span",{children:"/undo"})]}),c.jsxs("button",{onClick:()=>S("/clear"),className:"vscode-chat-tool-btn",children:[c.jsx(Bd,{size:11}),c.jsx("span",{children:"/clear"})]}),c.jsxs("button",{onClick:()=>S("/commit"),className:"vscode-chat-tool-btn",children:[c.jsx(ea,{size:11}),c.jsx("span",{children:"/commit"})]})]}),c.jsxs("div",{className:"vscode-chat-history",children:[f.map((y,k)=>{const $=y.role==="user";return c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[c.jsx("span",{className:"vscode-chat-msg-header",style:{color:$?"#75beff":"#da70d6"},children:$?"VOCÊ":"OPALACODER"}),c.jsx("div",{className:"vscode-chat-msg-content",children:vC(y.content)})]},k)}),P&&c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[c.jsx("span",{className:"vscode-chat-msg-header",style:{color:"#da70d6"},children:"OPALACODER"}),c.jsx("div",{className:"vscode-chat-msg-content",children:c.jsxs("div",{className:"thinking-indicator",children:[c.jsx("span",{className:"dot"}),c.jsx("span",{className:"dot"}),c.jsx("span",{className:"dot"})]})})]}),c.jsx("div",{ref:hu})]}),c.jsx("form",{onSubmit:lg,className:"vscode-chat-form",children:c.jsxs("div",{className:"vscode-chat-input-row",children:[c.jsx("input",{type:"text",value:m,onChange:y=>S(y.target.value),disabled:!i||P,placeholder:i?P?"Pensando...":"Pergunte ao OpalaCoder...":"Defina um projeto...",style:{flex:1}}),c.jsx("button",{type:"submit",disabled:!i||P||!m.trim(),className:"vscode-button",style:{padding:"6px"},children:c.jsx(Yy,{size:14})})]})})]})]}),c.jsxs("footer",{className:"vscode-statusbar",children:[c.jsxs("div",{className:"flex items-center",style:{gap:"16px"},children:[c.jsxs("div",{className:"flex items-center",style:{gap:"6px"},children:[c.jsx(tS,{size:11}),c.jsx("span",{style:{fontWeight:"bold"},children:i?`Workspace: ${i.project_name||i.name}`:"Sem Workspace"})]}),P&&c.jsxs("span",{className:"flex items-center",style:{gap:"6px"},children:[c.jsx("span",{style:{width:"6px",height:"6px",backgroundColor:"#ffffff",borderRadius:"50%",display:"inline-block"}}),c.jsx("span",{style:{fontWeight:"bold"},children:"OpalaCoder Ativo..."})]})]}),c.jsxs("div",{className:"flex items-center",style:{gap:"12px"},children:[c.jsx("span",{children:"UTF-8"}),c.jsx("span",{children:"LF"}),c.jsx("span",{children:"JSON IPC Bridge"})]})]}),Ym&&c.jsx("div",{className:"vscode-modal-overlay",children:c.jsxs("div",{className:"vscode-modal",children:[c.jsxs("div",{className:"vscode-sidebar-header",style:{padding:"10px 16px"},children:[c.jsx("span",{className:"vscode-sidebar-title",style:{color:"#ffffff"},children:"REGISTRAR NOVO PROJETO"}),c.jsx("button",{onClick:()=>xn(!1),style:{background:"transparent",border:"none",cursor:"pointer",color:"#a0a0a0"},children:c.jsx(fs,{size:14})})]}),c.jsxs("form",{onSubmit:rg,className:"flex flex-col",style:{padding:"16px",gap:"12px"},children:[c.jsxs("div",{className:"flex flex-col",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Nome do Projeto *"}),c.jsx("input",{type:"text",value:bn,onChange:y=>Zc(y.target.value),placeholder:"Ex: Meu Servidor Web",required:!0})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Caminho Absoluto *"}),c.jsx("input",{type:"text",value:xl,onChange:y=>eu(y.target.value),placeholder:"Ex: /home/gilzamir/projetos/meu-app",required:!0})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Descrição"}),c.jsx("textarea",{value:tu,onChange:y=>iu(y.target.value),placeholder:"Descritivo do projeto...",rows:2,style:{resize:"none"}})]}),c.jsxs("div",{style:{display:"flex",gap:"12px"},children:[c.jsxs("div",{className:"flex flex-col flex-1",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Chave de API (Opcional)"}),c.jsx("input",{type:"password",value:nu,onChange:y=>ou(y.target.value),placeholder:"Ex: sk-..."})]}),c.jsxs("div",{className:"flex flex-col flex-1",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"URL Base da API (Opcional)"}),c.jsx("input",{type:"text",value:lu,onChange:y=>au(y.target.value),placeholder:"Ex: http://localhost:11434/v1"})]})]}),c.jsxs("div",{style:{fontSize:"11px",color:"#808080",marginTop:"-6px",lineHeight:"1.4"},children:["Dica: Para usar o Ollama local com ",c.jsx("strong",{children:"ollama/ministral-3:14b"}),", informe a URL Base acima (ex: ",c.jsx("code",{children:"http://localhost:11434/v1"}),") e digite/selecione o modelo correspondente."]}),c.jsxs("div",{style:{display:"flex",gap:"12px"},children:[c.jsxs("div",{className:"flex flex-col flex-1",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Modelo de IA"}),c.jsx("input",{type:"text",list:"default-models",value:ru,onChange:y=>Xm(y.target.value),placeholder:"Selecione ou digite o modelo (ex: ollama/ministral-3:14b)"}),c.jsxs("datalist",{id:"default-models",children:[c.jsx("option",{value:"gemini/gemini-2.5-flash"}),c.jsx("option",{value:"gemini/gemini-2.5-pro"}),c.jsx("option",{value:"openai/gpt-4o"}),c.jsx("option",{value:"ollama/ministral-3:14b"})]})]}),c.jsxs("div",{className:"flex flex-col flex-1",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Modo de Execução"}),c.jsxs("select",{value:su,onChange:y=>Gm(y.target.value),children:[c.jsx("option",{value:"auto",children:"Auto (Completo)"}),c.jsx("option",{value:"plan",children:"Plan (Planejar)"}),c.jsx("option",{value:"edit",children:"Edit (Editar)"})]})]})]}),c.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:"8px",paddingTop:"12px",borderTop:"1px solid #3c3c3c",marginTop:"4px"},children:[c.jsx("button",{type:"button",onClick:()=>xn(!1),className:"vscode-button",style:{backgroundColor:"#3c3c3c",color:"#ffffff"},children:"Cancelar"}),c.jsx("button",{type:"submit",className:"vscode-button",children:"Registrar"})]})]})]})}),wl&&c.jsxs("div",{className:"vscode-context-menu",style:{top:`${wl.y}px`,left:`${wl.x}px`},children:[c.jsxs("div",{className:"vscode-context-menu-item",onClick:eg,children:[c.jsx(Td,{size:13,style:{color:"#007acc"}}),c.jsx("span",{children:"New File..."})]}),o&&c.jsxs("div",{className:"vscode-context-menu-item",onClick:tg,children:[c.jsx(Nd,{size:13,style:{color:"#f48771"}}),c.jsx("span",{children:"Delete File"})]})]}),Ye&&c.jsx("div",{className:"vscode-modal-overlay",children:c.jsxs("div",{className:"vscode-modal",style:{maxWidth:"520px",width:"92%"},children:[c.jsxs("div",{className:"vscode-sidebar-header",style:{padding:"10px 16px"},children:[c.jsxs("span",{className:"vscode-sidebar-title",style:{color:"#ffffff",display:"flex",alignItems:"center",gap:"8px"},children:[c.jsx(qn,{size:14,style:{color:"#007acc"}}),"CONFIGURAÇÕES DO PROJETO"]}),c.jsx("button",{onClick:()=>Yt(null),style:{background:"transparent",border:"none",cursor:"pointer",color:"#a0a0a0"},children:c.jsx(fs,{size:14})})]}),c.jsxs("form",{onSubmit:og,className:"flex flex-col",style:{padding:"16px",gap:"14px"},children:[c.jsxs("div",{className:"flex flex-col",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"ID Interno (somente leitura)"}),c.jsx("input",{type:"text",value:Ye.name,readOnly:!0,style:{opacity:.5,cursor:"not-allowed"}})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Nome de Exibição *"}),c.jsx("input",{type:"text",value:Ye.project_name,onChange:y=>Yt(k=>({...k,project_name:y.target.value})),required:!0,placeholder:"Nome do projeto"})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Caminho Absoluto"}),c.jsx("input",{type:"text",value:Ye.project_path,onChange:y=>Yt(k=>({...k,project_path:y.target.value})),placeholder:"/caminho/absoluto/do/projeto"})]}),c.jsxs("div",{style:{display:"flex",gap:"12px"},children:[c.jsxs("div",{className:"flex flex-col flex-1",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Modelo Principal"}),c.jsx("input",{type:"text",list:"edit-models",value:Ye.model,onChange:y=>Yt(k=>({...k,model:y.target.value})),placeholder:"gemini/gemini-2.5-flash"}),c.jsxs("datalist",{id:"edit-models",children:[c.jsx("option",{value:"gemini/gemini-2.5-flash"}),c.jsx("option",{value:"gemini/gemini-2.5-pro"}),c.jsx("option",{value:"openai/gpt-4o"}),c.jsx("option",{value:"ollama/ministral-3:14b"})]})]}),c.jsxs("div",{className:"flex flex-col flex-1",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Modo"}),c.jsxs("select",{value:Ye.mode,onChange:y=>Yt(k=>({...k,mode:y.target.value})),children:[c.jsx("option",{value:"auto",children:"Auto (Completo)"}),c.jsx("option",{value:"plan",children:"Plan (Planejar)"}),c.jsx("option",{value:"edit",children:"Edit (Editar)"})]})]})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Modelo Alternativo"}),c.jsx("input",{type:"text",list:"edit-alt-models",value:Ye.alternative_model,onChange:y=>Yt(k=>({...k,alternative_model:y.target.value})),placeholder:"(usa o padrão global se vazio)"}),c.jsxs("datalist",{id:"edit-alt-models",children:[c.jsx("option",{value:"gemini/gemini-2.5-flash"}),c.jsx("option",{value:"openai/gpt-4o-mini"}),c.jsx("option",{value:"ollama/gemma3:4b"})]})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"4px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Descrição"}),c.jsx("textarea",{value:Ye.description,onChange:y=>Yt(k=>({...k,description:y.target.value})),placeholder:"Descrição opcional do projeto...",rows:2,style:{resize:"none"}})]}),c.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:"8px",paddingTop:"12px",borderTop:"1px solid #3c3c3c",marginTop:"4px"},children:[c.jsx("button",{type:"button",onClick:()=>Yt(null),className:"vscode-button",style:{backgroundColor:"#3c3c3c",color:"#ffffff"},children:"Cancelar"}),c.jsxs("button",{type:"submit",className:"vscode-button",children:[c.jsx(ea,{size:12}),"Salvar Alterações"]})]})]})]})}),Cn&&c.jsx("div",{style:{position:"fixed",inset:0,zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.55)",backdropFilter:"blur(4px)",animation:"fadeIn 0.15s ease"},children:c.jsxs("div",{style:{background:"linear-gradient(135deg, #1e1e2e 0%, #252537 100%)",border:"1px solid #3c3c5c",borderRadius:"12px",padding:"28px 32px",maxWidth:"420px",width:"90%",boxShadow:"0 24px 64px rgba(0,0,0,0.6)"},children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"10px",marginBottom:"16px"},children:[c.jsx("span",{style:{fontSize:"22px"},children:"🔔"}),c.jsx("span",{style:{fontSize:"12px",fontWeight:700,color:"#a0a0c0",letterSpacing:"0.1em",textTransform:"uppercase"},children:"Confirmação Necessária"})]}),c.jsx("p",{style:{fontSize:"14px",color:"#e0e0f0",lineHeight:1.6,marginBottom:"24px",margin:"0 0 24px 0"},children:Cn.prompt}),c.jsxs("div",{style:{display:"flex",gap:"12px",justifyContent:"flex-end"},children:[c.jsx("button",{id:"confirm-no-btn",onClick:()=>pu("no"),style:{padding:"8px 20px",borderRadius:"8px",border:"1px solid #4c4c6c",background:"transparent",color:"#a0a0c0",cursor:"pointer",fontSize:"13px",fontWeight:600,transition:"all 0.15s"},onMouseEnter:y=>{y.target.style.background="#2c2c3c",y.target.style.color="#e0e0f0"},onMouseLeave:y=>{y.target.style.background="transparent",y.target.style.color="#a0a0c0"},children:"Não"}),c.jsx("button",{id:"confirm-yes-btn",onClick:()=>pu("yes"),style:{padding:"8px 24px",borderRadius:"8px",border:"none",background:"linear-gradient(135deg, #007acc, #0062a3)",color:"#fff",cursor:"pointer",fontSize:"13px",fontWeight:700,boxShadow:"0 4px 16px rgba(0,122,204,0.35)",transition:"all 0.15s"},onMouseEnter:y=>{y.target.style.background="linear-gradient(135deg, #0090f0, #007acc)"},onMouseLeave:y=>{y.target.style.background="linear-gradient(135deg, #007acc, #0062a3)"},children:"Sim"})]})]})}),z&&c.jsx("div",{className:"vscode-modal-overlay",children:c.jsxs("div",{className:"vscode-modal",style:{maxWidth:"440px",width:"90%"},children:[c.jsxs("div",{className:"vscode-sidebar-header",style:{padding:"10px 16px"},children:[c.jsxs("span",{className:"vscode-sidebar-title",style:{color:"#ffffff",display:"flex",alignItems:"center",gap:"8px"},children:[c.jsx(qn,{size:14,style:{color:"#007acc"}}),"CONFIGURAÇÕES DA IDE"]}),c.jsx("button",{onClick:()=>b(!1),style:{background:"transparent",border:"none",cursor:"pointer",color:"#a0a0a0"},children:c.jsx(fs,{size:14})})]}),c.jsxs("div",{style:{display:"flex",borderBottom:"1px solid var(--vscode-border)",backgroundColor:"var(--vscode-tab-inactive-bg)"},children:[c.jsx("button",{onClick:()=>K("preferences"),style:{flex:1,padding:"8px",background:T==="preferences"?"var(--vscode-tab-active-bg)":"transparent",border:"none",borderBottom:T==="preferences"?"2px solid var(--vscode-active-border)":"none",color:T==="preferences"?"#ffffff":"#808080",fontWeight:"bold",fontSize:"11px",textTransform:"uppercase",cursor:"pointer"},children:"Preferências"}),c.jsx("button",{onClick:()=>K("about"),style:{flex:1,padding:"8px",background:T==="about"?"var(--vscode-tab-active-bg)":"transparent",border:"none",borderBottom:T==="about"?"2px solid var(--vscode-active-border)":"none",color:T==="about"?"#ffffff":"#808080",fontWeight:"bold",fontSize:"11px",textTransform:"uppercase",cursor:"pointer"},children:"Sobre"})]}),c.jsx("div",{className:"flex flex-col",style:{padding:"16px",gap:"14px"},children:T==="preferences"?c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"flex flex-col",style:{gap:"6px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Tema de Cor"}),c.jsxs("select",{value:C,onChange:y=>j(y.target.value),style:{width:"100%"},children:[c.jsx("option",{value:"dark",children:"Escuro (Dark Mode)"}),c.jsx("option",{value:"light",children:"Claro (Light Mode)"})]})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"6px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Tamanho da Fonte do Editor"}),c.jsx("input",{type:"number",min:"10",max:"30",value:U,onChange:y=>{const k=Number(y.target.value);H(k),to("editorFontSize",k)},style:{width:"100%"}})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"6px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Tamanho do Tab (Espaços)"}),c.jsxs("select",{value:V,onChange:y=>{const k=Number(y.target.value);ee(k),to("editorTabSize",k)},style:{width:"100%"},children:[c.jsx("option",{value:2,children:"2 Espaços"}),c.jsx("option",{value:4,children:"4 Espaços"}),c.jsx("option",{value:8,children:"8 Espaços"})]})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"6px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Quebra Automática de Linha (Word Wrap)"}),c.jsxs("select",{value:se,onChange:y=>{pe(y.target.value),to("editorWordWrap",y.target.value)},style:{width:"100%"},children:[c.jsx("option",{value:"on",children:"Ativado (On)"}),c.jsx("option",{value:"off",children:"Desativado (Off)"})]})]}),c.jsxs("div",{className:"flex flex-col",style:{gap:"6px",borderTop:"1px solid var(--vscode-border)",paddingTop:"12px",marginTop:"6px"},children:[c.jsx("label",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Dependências Opcionais"}),c.jsx("span",{style:{fontSize:"11px",color:"#888888",lineHeight:"1.4"},children:"Instale recursos extras (Local Embeddings, PyTorch, CUDA, etc.) que otimizam o processamento off-line."}),c.jsx("button",{type:"button",className:"vscode-button",disabled:Pt,onClick:Qm,style:{width:"100%",marginTop:"6px"},children:Pt?"Instalando...":"Instalar Recursos Opcionais"}),xi&&c.jsxs("span",{style:{fontSize:"11px",fontWeight:"bold",color:xi.includes("Erro")||xi.includes("Falha")?"#f48771":"#73c991",marginTop:"4px"},children:["Status: ",xi]}),Yc&&c.jsx("textarea",{readOnly:!0,value:Yc,style:{width:"100%",height:"80px",marginTop:"8px",fontSize:"10px",fontFamily:"monospace",background:"#151515",color:"#89d4a5",border:"1px solid var(--vscode-border)",padding:"6px",resize:"none"}})]})]}):c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"14px",color:"#cccccc"},children:[c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[c.jsx("span",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Versão"}),c.jsx("span",{style:{fontSize:"13px",fontWeight:"bold",color:"#ffffff"},children:"0.1.18 alfa"})]}),c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[c.jsx("span",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Autor"}),c.jsx("span",{style:{fontSize:"13px",color:"#ffffff"},children:"dev@opala.com"})]}),c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[c.jsx("span",{className:"vscode-sidebar-section-title",style:{padding:0},children:"Licença"}),c.jsx("span",{style:{fontSize:"13px",color:"#ffffff"},children:"MIT"})]})]})}),c.jsx("div",{style:{display:"flex",justifyContent:"flex-end",padding:"12px 16px",gap:"8px",borderTop:"1px solid var(--vscode-border)",backgroundColor:"var(--vscode-sidebar-bg)"},children:c.jsx("button",{onClick:()=>b(!1),className:"vscode-button",children:"Fechar"})})]})})]})}function Um({node:e,selectedFile:t,handleFileSelect:i}){const r=e.isDirectory,[s,n]=D.useState(!1);if(r)return c.jsxs("div",{className:"select-none",children:[c.jsxs("div",{onClick:()=>n(!s),className:"vscode-tree-node",children:[s?c.jsx(Xy,{size:14}):c.jsx(Gy,{size:14}),c.jsx(Zy,{size:14,className:"text-white",style:{color:"#e8a838"}}),c.jsx("span",{className:"truncate",children:e.name})]}),s&&c.jsx("div",{style:{paddingLeft:"12px",borderLeft:"1px solid #3c3c3c",marginLeft:"14px"},children:e.children.map(l=>c.jsx(Um,{node:l,selectedFile:t,handleFileSelect:i},l.path))})]});const o=t===e.path;return c.jsxs("div",{onClick:()=>i(e.path),className:`vscode-tree-node ${o?"active":""}`,children:[c.jsx(Qy,{size:13,style:{color:"#a0a0a0"}}),c.jsx("span",{className:"truncate",children:e.name})]})}function vC(e){return e?e.split(`
210
210
  `).map((i,r)=>{const s=i.trim();if(s.startsWith("### ")){const n=s.replace("### ","");return c.jsx("h4",{style:{margin:"14px 0 6px 0",fontWeight:"bold",color:"#ffffff",fontSize:"13px"},children:n},r)}if(s.startsWith("🔹 ")||s.startsWith("⭐ ")){const n=s.substring(0,2),l=s.substring(2).split("—");if(l.length>=2){const h=l[0].replace(/\*\*`|`\*\*/g,"").trim(),a=l.slice(1).join("—").trim();return c.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:"6px",margin:"4px 0",paddingLeft:"4px"},children:[c.jsx("span",{style:{fontSize:"12px",flexShrink:0},children:n}),c.jsxs("span",{style:{fontSize:"13px",lineHeight:"1.4"},children:[c.jsx("code",{style:{background:"#2d2d2d",padding:"2px 4px",borderRadius:"3px",color:"#f8f8f2",fontFamily:"monospace",fontSize:"11px",marginRight:"6px"},children:h}),c.jsx("span",{style:{color:"#cccccc"},children:a})]})]},r)}}if(s.startsWith("_(")&&s.endsWith(")_")){const n=s.substring(2,s.length-2);return c.jsx("p",{style:{margin:"8px 0",fontStyle:"italic",color:"#8a8a8a",fontSize:"11px"},children:n},r)}return c.jsx("div",{style:{minHeight:"1.2em",color:"#cccccc",fontSize:"13px",margin:"2px 0"},children:i},r)}):null}pa.createRoot(document.getElementById("root")).render(c.jsx(or.StrictMode,{children:c.jsx(gC,{})}));
@@ -9,7 +9,7 @@
9
9
  <link rel="preconnect" href="https://fonts.googleapis.com">
10
10
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
11
11
  <link href="https://fonts.googleapis.com/css2?family=Fira+Code:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600;700&family=Outfit:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
12
- <script type="module" crossorigin src="/assets/index-FS_uvdys.js"></script>
12
+ <script type="module" crossorigin src="/assets/index-BG-NUR-P.js"></script>
13
13
  <link rel="stylesheet" crossorigin href="/assets/index-JnX7gh-E.css">
14
14
  </head>
15
15
  <body>
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "opalacoder"
7
- version = "0.1.17"
7
+ version = "0.1.18"
8
8
  description = "Autonomous coding agent with interactive planning and modular execution"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -30,6 +30,7 @@ dependencies = [
30
30
  "chromadb>=0.4.0",
31
31
  "pywebview>=4.0",
32
32
  "PyQt6>=6.0.0",
33
+ "PyQt6-WebEngine>=6.0.0",
33
34
  "qtpy>=2.4.0",
34
35
  ]
35
36
 
@@ -13,4 +13,5 @@ tree-sitter-language-pack>=1.8.0
13
13
  chromadb>=0.4.0
14
14
  pywebview>=4.0
15
15
  PyQt6>=6.0.0
16
+ PyQt6-WebEngine>=6.0.0
16
17
  qtpy>=2.4.0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes