O Process Studio é desenvolvido pela Digital AI e roda inteiramente no PC do usuário. Não há servidor próprio, conta, nem multi-tenant. A única saída de dados permitida é a chamada à API da OpenAI, usando a chave do próprio usuário armazenada localmente.
1Posicionamento de Mercado #
"Uma Scribe que executa." A Scribe (avaliada em US$ 1,3 bilhão) lidera o segmento de documentação automática de processos — mas só documenta, nunca re-executa. O Process Studio fecha essa lacuna.
| Funcionalidade | Scribe | Process Studio |
|---|---|---|
| Documentação automática com IA | ✅ Sim | ✅ Sim |
| Exportação Markdown / HTML / PDF | ⚠️ Parcial | ✅ Sim |
| Re-execução do processo gravado | ❌ Não | ⏳ F2/F3 |
| Variáveis editáveis na re-execução | ❌ Não | ⏳ F2/F3 |
| Self-healing por LLM | ❌ Não | ⏳ F3 |
| Local-first (sem servidor) | ❌ Não | ✅ Sim |
| Correlação passo ↔ request de rede | ❌ Não | ✅ Sim |
| Documentação por vídeo local | ❌ Não | ✅ Sim |
| Gravação de tela nativa | ❌ Não | ✅ Sim |
Outros competidores monitorados: Codex Record & Replay (OpenAI) e workflow-use (open-source).
2Funcionalidades Atuais #
Gravação de Browser (via CDP)
- Conecta ao Chrome via Chrome DevTools Protocol (CDP)
- Cria um perfil isolado para o Chrome com auto-detecção e relançamento automático quando a porta CDP morre
- Captura por evento: clicks, digitação, navegação, screenshots
- Captura requisições de rede correlacionadas — cada request carrega
afterStepSeqpara rastreabilidade passo a passo - Trace salvo em NDJSON append-only (nunca alterado após fechado)
Gravação de Tela Nativa
- Usa ffmpeg empacotado (
gdigrab+dshow— Windows) - Seleção de monitor e microfone na UI
- Pílula flutuante clicável com tempo decorrido
- Borda vermelha
WDA_EXCLUDEFROMCAPTUREno monitor gravado - Saída em
.mkvlocal - Recuperação de gravações órfãs após crash no boot
Documentação Automática por IA (F1)
- Botão "Documentar" compila o trace em
workflow.json+ documento estruturado - GPT-4.1-mini com structured outputs estritos — fatos técnicos 100% do trace, sem invenção de dados
stripSecrets()remove dados sensíveis antes de qualquer prompt de LLM- Exportação em Markdown, HTML autocontido e PDF (Chrome headless)
- Log auditável com tokens e custo USD por compilação
Documentação por Vídeo Local (FV)
- Aceita qualquer vídeo local:
.mp4 .mkv .webm .mov .avi - Extração local de frames e áudio via ffmpeg
- Transcrição via Whisper-1 (OpenAI)
- Chamadas de visão em janelas — suporta vídeos longos (até 120 min)
- Aviso de privacidade obrigatório com confirmação antes de qualquer upload
Interface — 4 Abas
| Aba | Conteúdo |
|---|---|
| Gravações | Traces NDJSON com visualizador paginado |
| Processos | Docs compilados, exportação, gravador de tela |
| Config | Chave OpenAI, path Chrome, porta CDP, retenção, vídeo |
| Histórico | Logs de compilações com custo |
Bandeja do sistema: fechar a janela minimiza para tray — o app continua rodando em background.
3Arquitetura #
┌─────────────────────────────────────────────────────────┐
│ Tauri v2 (Rust) — janela principal, tray, overlays │
│ comandos: capturas, workflows, gravações, config │
│ │ JSON-RPC (NDJSON via stdio) │
│ ┌──────▼───────────────────────────────────────────┐ │
│ │ Sidecar Node 20 + Playwright (exe via pkg) │ │
│ │ • chrome-connect → CDP no Chrome isolado │ │
│ │ • capture-store → traces NDJSON │ │
│ │ • compiler → GPT-4.1-mini (browser) │ │
│ │ • video-compiler → Whisper + GPT-4.1-mini │ │
│ │ • exporter → md / html / pdf │ │
│ │ • screen-recorder → ffmpeg empacotado │ │
│ └──────────────────────────────────────────────────┘ │
│ UI React + Vite (sem router; abas por estado) │
└─────────────────────────────────────────────────────────┘
│ │
Chrome do usuário API OpenAI (única
(perfil isolado, CDP) saída de dados)
Local-first absoluto: não há servidor Digital AI no loop. A única chamada externa sai do PC do usuário diretamente para a API da OpenAI, usando a chave do próprio usuário.
3.1Camadas do Sistema #
| Camada | Tecnologia | Responsabilidade |
|---|---|---|
| Shell | Tauri v2 (Rust) | Janela, tray, overlays de gravação, supervisor do sidecar, comandos FS |
| Sidecar | Node.js 20 + Playwright 1.59.1 | CDP, gravação, compilação IA, exportação, gravador de tela |
| UI | React 18 + Vite | Interface das 4 abas — sem router, abas por estado |
| IA | GPT-4.1-mini + Whisper-1 | Compilação de documentos e transcrição de áudio |
| Dados | Arquivos locais (NDJSON + JSON) | Sem banco de dados — tudo em %APPDATA% |
| Mídia | ffmpeg LGPL empacotado | Gravação de tela e extração de frames/áudio |
3.2Comunicação Shell ↔ Sidecar #
- Protocolo: JSON-RPC via NDJSON pelo stdio
- Sidecar empacotado como
.execom@yao-pkg/pkg - Playwright pinado em 1.59.1 (compatível com pkg)
- Supervisor com backoff exponencial — máx. 3 crashes antes de alertar o usuário
- Relançamento automático do Chrome quando a porta CDP morre (
CDP_PORT_DEAD)
4Shell Rust / Tauri v2 #
Dependências Rust Principais
| Crate | Versão | Uso |
|---|---|---|
tauri | 2 | Shell principal, plugins shell/store/notification/dialog |
windows-sys | 0.59 | Win32 UI (overlays de gravação) |
tokio | 1 | Async runtime completo |
serde / serde_json | 1 | Serialização JSON para RPC |
chrono | 0.4 | Timestamps ISO-8601 |
base64 | 0.22 | Encoding de imagens para HTML |
tracing | 0.1 | Observabilidade estruturada |
5Sidecar Node.js #
Empacotamento via pkg: o sidecar inteiro é empacotado como .exe com @yao-pkg/pkg. Assets incluídos: playwright-core/browsers.json, compile-result.schema.json, video-compile-result.schema.json e templates/doc.html.
6UI React #
| Componente | Tamanho | Função |
|---|---|---|
Captures.tsx | 31 KB | Aba Gravações + visualizador NDJSON paginado |
Processes.tsx | 25 KB | Aba Processos + exportação + gravador de tela |
Settings.tsx | 8 KB | Aba Config (chave OpenAI, Chrome, retenção) |
Logs.tsx | 7 KB | Aba Histórico de compilações |
RecPill.tsx | 3 KB | Pílula flutuante de gravação em andamento |
RecOverlay.tsx | 862 B | Overlay borda vermelha do monitor gravado |
7IA — OpenAI #
| Modelo | Uso | Método |
|---|---|---|
gpt-4.1-mini |
Compilação de traces em documentação; structured outputs estritos; heal de seletores (F3) | fetch nativo, sem SDK |
whisper-1 |
Transcrição de áudio de vídeos locais | fetch nativo, sem SDK |
- Structured outputs estritos: o LLM nunca inventa fatos técnicos — seletores, URLs, valores e tempos vêm 100% do trace
- 1 retry automático em erros 429/5xx; nunca em 401/403
- A chave nunca é logada — armazenada em storage local Tauri
- Todo chamada registra tokens e custo estimado no log local
8Dados Locais #
Tudo em %APPDATA%/tech.digitalai.process-studio:
settings.json chave OpenAI, path Chrome, porta CDP, retenção captures/<id>.ndjson trace append-only (1 JSON por linha, seq estável) captures/<id>.meta.json metadados (schema: 1) workflows/<wfId>/meta.json nome, origem, custo, domínios workflows/<wfId>/v<N>.json workflow executável versionado workflows/<wfId>/doc.json doc estruturado — fonte de todas as exportações workflows/<wfId>/compile-log.json payload LLM auditável + tokens + custo docs/<wfId>/ exportações .md (+ -assets/), .html, .pdf recordings/*.mkv (+ .meta.json) gravações de tela
Política de Segurança de Dados
| Onde | Dados sensíveis | Comportamento |
|---|---|---|
| Disco local | Cookies, senhas, headers de auth | Gravados em claro — decisão explícita do usuário |
| Prompt de LLM | Qualquer campo sensível | Removidos via stripSecrets() |
| Exportação HTML/PDF | Valores sensíveis | Exibidos como •••••• |
Retenção configurável — padrão: 14 dias / 512 MB para capturas.
9Princípios de Design — Constitution v1.1.0 #
Definidos em .specify/memory/constitution.md — imutáveis, só alteráveis por votação formal.
stripSecrets() obrigatório antes de toda chamada OpenAI. Exportação exibe ••••••.v<N+1>.json. Recompilar gera workflow com ID novo.afterStepSeq. Traces antigos sem o campo compilam sem asserções, com aviso.10Custos de IA (Validados) #
Modelo: gpt-4.1-mini (structured outputs). Transcrição: whisper-1. Custo pago pelo usuário usando a própria chave OpenAI.
11Roadmap — Fases F0 → F3 #
Escada de Replay (F2/F3 — design)
LLM só entra quando o seletor CSS e o XPath falham. Máx. 1 tentativa de heal por passo por run.
12Build e Deploy #
Pré-requisitos: Windows 10/11 x64 + Google Chrome + Node.js 20+ + Rust estável (MSVC Build Tools) + WebView2
npm install npm run fetch:ffmpeg # baixa ffmpeg LGPL (~110 MB) cd sidecar npm install npm run build:win # gera sidecar .exe via pkg cd .. Copy-Item sidecar\sidecar-x86_64-pc-windows-msvc.exe src-tauri\sidecar\ npm run tauri:dev # desenvolvimento npm run tauri:build # instalador NSIS
Saída: src-tauri/target/release/bundle/nsis/ — instalador NSIS Windows.
Notas Críticas de Build
ffmpeg.exe(~110 MB) não é versionado no git — baixar vianpm run fetch:ffmpeg- Playwright pinado em
1.59.1para compatibilidade com@yao-pkg/pkg - Sempre validar com o exe empacotado, não apenas
node index.js - Testes do sidecar:
cd sidecar && npm test
Repositório
GitHub: DIGITAL-AI-TECH/process-studio (privado)
Identificador: tech.digitalai.process-studio
Versão atual: 0.1.0
Nome: provisório — será renomeado após definição final