vault-go 0.22.0 → 0.22.2

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.
package/README.md CHANGED
@@ -1,126 +1,57 @@
1
- ## Login no navegador
2
-
3
- `bunx --bun vault-go@latest` abre o autenticador do AI Vault Memory no navegador. E-mail, senha e MFA são informados apenas no portal. Ao concluir, o terminal recebe um código de uso único por `127.0.0.1` e o troca com PKCE; tokens não aparecem na URL nem no console. O listener fecha ao concluir ou após cinco minutos.
4
-
5
- Para trocar a conta: `bunx --bun vault-go@latest login --force`. Para chave de API explícita: `bunx --bun vault-go@latest login --force --api-key`. Se a abertura automática falhar, use o endereço exibido no mesmo computador. Requer uma sessão local com navegador para o retorno loopback.
6
-
7
1
  # vault-go
8
2
 
9
- [Idiomas AST e awareness local do Grok](docs/ast-and-awareness.md): catálogo de disponibilidade real das grammars, configuração opt-in, filtros e limites do writer mensal.
3
+ MCP server and installer for **[Vault Memory](https://vault.resolveup.com.br)** — search, capture, and use account memory across AI clients.
10
4
 
11
- Servidor MCP em Bun para pesquisar, contextualizar e registrar memória na
12
- plataforma Vault. A persistência fica no PostgreSQL do serviço Rust executado
13
- no EasyPanel; o painel local mantém um cache privado das consultas recentes.
5
+ Memories live in your Vault Memory cloud account. This package installs the local MCP server, signs you in, registers clients, and runs an optional local worker that turns captured events into memories.
14
6
 
15
- ## Pré-requisito
7
+ ```sh
8
+ npm install -g vault-go@latest
9
+ vault-go setup
10
+ ```
16
11
 
17
- Instale o [Bun](https://bun.sh/) e confirme:
12
+ Or without a global install:
18
13
 
19
14
  ```sh
20
- bun --version
15
+ bunx --bun vault-go@latest
21
16
  ```
22
17
 
23
- ## Instalação MCP
18
+ Requires [Bun](https://bun.sh/) (`bun --version`) and Node.js 20+.
24
19
 
25
- ### Opção remota somente leitura
20
+ ## Sign in
26
21
 
27
- Para pesquisa e contexto, é possível usar diretamente o endpoint Streamable
28
- HTTP da plataforma, sem instalar runtime ou banco local. Crie em **Segurança >
29
- Chaves de API** uma chave apenas com `memory:read` e configure:
22
+ `vault-go setup` and `vault-go login` open the Vault Memory sign-in page in your browser. Email, password, and MFA stay in the portal. The CLI receives a one-time code on `127.0.0.1` and exchanges it with PKCE. Tokens never appear in the URL or terminal. The listener closes when login finishes or after five minutes.
30
23
 
31
24
  ```sh
32
- export VAULT_GO_TOKEN='<chave-memory-read>'
33
- codex mcp add vault-go \
34
- --url https://vaultmemoryai.com/api/mcp \
35
- --bearer-token-env-var VAULT_GO_TOKEN
25
+ vault-go login --force # switch account
26
+ vault-go login --force --api-key # paste a scoped API key instead
36
27
  ```
37
28
 
38
- Configuração genérica para clientes com transporte HTTP:
29
+ If the browser does not open, use the loopback URL printed in the same session.
39
30
 
40
- ```json
41
- {
42
- "mcpServers": {
43
- "vault-go": {
44
- "type": "http",
45
- "url": "https://vaultmemoryai.com/api/mcp",
46
- "headers": {
47
- "Authorization": "Bearer ${VAULT_GO_TOKEN}"
48
- }
49
- }
50
- }
51
- }
52
- ```
31
+ Credentials are stored in `~/.memvault/auth.json` (`0600`). The directory is `0700`. Passwords and MFA codes are not saved.
53
32
 
54
- O endpoint remoto expõe somente projetos, busca, contexto, recentes, feed,
55
- linha do tempo, entrada/saída de ferramentas, contexto de arquivos, estatísticas, estado vetorial e consultas
56
- às bases de conhecimento. Para captura automática, criação/reconstrução de
57
- bases, escrita, importação ou exclusão, use o cliente Bun completo abaixo.
33
+ ## Install MCP
58
34
 
59
- ### Opção Bun completa
35
+ ### Full local server (capture + write)
60
36
 
61
- Execute em um terminal:
37
+ The setup wizard:
62
38
 
63
- ```sh
64
- bunx --bun vault-go@latest
65
- ```
39
+ 1. Reuses an existing session in `~/.memvault`, or opens Vault Memory sign-in.
40
+ 2. Detects installed clients and registers the MCP server.
41
+ 3. Leaves other client config in place.
42
+ 4. Installs the local dashboard on port `38850` (starts at login on macOS).
66
43
 
67
- A instalação abre com uma animação ASCII do Vault Go e mostra um indicador
68
- enquanto verifica os motores disponíveis. Em terminais pequenos, a abertura usa
69
- uma versão compacta. Para desativar, execute `vault-go setup --no-animation` ou
70
- defina `VAULT_GO_NO_ANIMATION=1`. `NO_COLOR`, `TERM=dumb`, CI e saídas sem terminal
71
- também usam a apresentação estática, sem códigos ANSI ou espera. O modo MCP
72
- `serve` não exibe a animação.
73
-
74
- O assistente:
75
-
76
- 1. valida uma sessão existente em `~/.memvault`;
77
- 2. se necessário, abre o login do AI Vault Memory no navegador (chave de API somente com `--api-key`)
78
- `vg_live_...`;
79
- 3. detecta os clientes instalados;
80
- 4. permite escolher onde registrar o MCP;
81
- 5. preserva as outras configurações dos clientes;
82
- 6. instala e abre o painel local na porta 38850 (início automático no macOS).
83
-
84
- Clientes suportados:
85
-
86
- - Codex e ChatGPT Desktop local;
87
- - Claude Code e Claude Desktop;
88
- - Grok (config.toml nativo e hooks em `~/.grok/hooks`);
89
- - Agy / Antigravity CLI e IDE;
90
- - Gemini CLI;
91
- - Cursor e Windsurf;
92
- - VS Code com GitHub Copilot;
93
- - GitHub Copilot CLI;
94
- - Roo Code;
95
- - OpenCode.
96
-
97
- O Crystal do Vault Desktop usa este mesmo servidor MCP. Ative **Crystal → MCP →
98
- Ativar no Vault MCP** no Desktop atualizado e reconecte o cliente MCP. As ferramentas
99
- `vault_go_crystal_list`, `read`, `search`, `write`, `delete`, `sync` e `status` ficam
100
- disponíveis junto às ferramentas de memória. O Desktop deve permanecer aberto no
101
- mesmo computador; a conexão local é configurada automaticamente, sem copiar um
102
- segredo ou cadastrar um segundo servidor. Desativar a integração revoga essa conexão.
103
-
104
- Comandos explícitos:
44
+ Supported clients: Codex, ChatGPT Desktop, Claude Code, Claude Desktop, Grok, Agy / Antigravity, Gemini CLI, Cursor, Windsurf, VS Code + GitHub Copilot, Copilot CLI, Roo Code, OpenCode, and Vault Desktop (Crystal).
105
45
 
106
46
  ```sh
107
- bunx --bun vault-go@latest setup
108
- bunx --bun vault-go@latest setup --clients codex,claude,copilot
109
- bunx --bun vault-go@latest setup --engine openrouter
110
- bunx --bun vault-go@latest setup --engine claude --model sonnet
111
- bunx --bun vault-go@latest login --force
112
- bunx --bun vault-go@latest serve
113
- bunx --bun vault-go@latest engine list
114
- bunx --bun vault-go@latest engine use openrouter
115
- bunx --bun vault-go@latest engine use codex --model terra
116
- bunx --bun vault-go@latest engine key openrouter
47
+ vault-go setup
48
+ vault-go setup --clients codex,claude,copilot
49
+ vault-go setup --engine openrouter
50
+ vault-go setup --engine claude --model sonnet
51
+ vault-go serve
117
52
  ```
118
53
 
119
- As credenciais são gravadas em `~/.memvault/auth.json` com permissão `0600`;
120
- o diretório usa `0700`. Senhas e códigos MFA não são persistidos. Reinicie os
121
- clientes que estavam abertos depois da primeira instalação.
122
-
123
- Configuração MCP genérica:
54
+ Generic MCP config:
124
55
 
125
56
  ```json
126
57
  {
@@ -133,262 +64,137 @@ Configuração MCP genérica:
133
64
  }
134
65
  ```
135
66
 
136
- Por padrão, todos os clientes reutilizam `~/.memvault/config.json` e
137
- `~/.memvault/auth.json`, criados pelo assistente. Também é possível apontar
138
- outro diretório:
67
+ Override the home directory with `VAULT_GO_HOME`. Restart clients that were already open after the first install.
68
+
69
+ ### Read-only remote MCP
70
+
71
+ For search and context without a local runtime, create an API key with `memory:read` under **Security → API keys**, then:
72
+
73
+ ```sh
74
+ export VAULT_GO_TOKEN='<memory-read-key>'
75
+ codex mcp add vault-go \
76
+ --url https://vaultmemoryai.com/api/mcp \
77
+ --bearer-token-env-var VAULT_GO_TOKEN
78
+ ```
139
79
 
140
80
  ```json
141
81
  {
142
82
  "mcpServers": {
143
83
  "vault-go": {
144
- "command": "bunx",
145
- "args": ["--bun", "vault-go@latest", "serve"],
146
- "env": {
147
- "VAULT_GO_HOME": "/caminho/privado/.memvault"
84
+ "type": "http",
85
+ "url": "https://vaultmemoryai.com/api/mcp",
86
+ "headers": {
87
+ "Authorization": "Bearer ${VAULT_GO_TOKEN}"
148
88
  }
149
89
  }
150
90
  }
151
91
  }
152
92
  ```
153
93
 
154
- Para ambientes efêmeros, `VAULT_GO_TOKEN` aceita um access token de sessão ou
155
- uma chave `vg_live_...` criada na tela **Segurança > Chaves de API**. Use
156
- somente os escopos necessários: `memory:read` para pesquisa/contexto,
157
- `memory:write` para eventos e lembranças e `memory:delete` para exclusão.
158
- `VAULT_GO_API_URL` troca o endpoint. O login normal permite renovação
159
- automática; a chave de API é indicada para automações com prazo e escopo
160
- limitados.
161
-
162
- ## Ferramentas MCP
163
-
164
- - `vault_go_status`: conexão e autenticação sem expor credenciais.
165
- - `vault_go_cloud_health`: disponibilidade da plataforma.
166
- - `vault_go_projects` e `vault_go_project_create`: projetos da conta.
167
- - `vault_go_session_start` e `vault_go_session_end`: ciclo de sessão.
168
- - `vault_go_event`: eventos de prompt, ferramenta e resultado.
169
- - `vault_go_remember`: observações, decisões, descobertas e resumos.
170
- - `vault_go_search`: busca textual com ranking e trechos.
171
- - `vault_go_search_index`: índice compacto com filtros, trechos e custo estimado.
172
- - `vault_go_observations`: carrega em lote somente os IDs selecionados.
173
- - `vault_go_timeline`: contexto anterior e posterior a uma memória.
174
- - `vault_go_context`: contexto progressivo com limite de caracteres.
175
- - `vault_go_file_context`: histórico ligado aos arquivos lidos ou modificados.
176
- - `vault_go_stats`: contagens isoladas da conta.
177
- - `vault_go_jobs`: fila PostgreSQL da conta, sem payload sensível.
178
- - `vault_go_job_retry` e `vault_go_job_cancel`: controle idempotente do processamento.
179
- - `vault_go_export` e `vault_go_import`: transporte JSON tenant-scoped, atômico e idempotente.
180
- - `vault_go_embedding_status` e `vault_go_embedding_backfill`: busca híbrida e fila vetorial, sem expor chaves.
181
- - `vault_go_feed`: pagina memórias recentes por projeto, tipo e origem.
182
- - `vault_go_knowledge_bases` e `vault_go_knowledge_base`: lista e abre bases focadas.
183
- - `vault_go_knowledge_build` e `vault_go_knowledge_rebuild`: cria ou atualiza uma base a partir de filtros.
184
- - `vault_go_knowledge_query`: recupera contexto fundamentado e citações dentro da base.
185
- - `vault_go_knowledge_delete`: remove a base e preserva as memórias originais.
186
- - `vault_go_forget`: exclusão explícita de uma memória.
187
- - `vault_go_engines`: lista motores de contexto (Vault AI, Claude, OpenRouter, Gemini, ChatGPT/Codex) sem revelar chaves.
188
- - `vault_go_engine_select`: escolhe o motor local (`vault-ai-resume`, `claude-subscription`, `openai-subscription`, `openrouter`, `gemini`).
189
- - `vault_go_generate_context`: gera título, fatos e conceitos com o motor escolhido; não persiste memória sozinho.
190
-
191
- O seletor oferece Codex (Terra, Luna ou Sol pela assinatura ChatGPT), Claude (CLI da assinatura), OpenRouter (chave), Gemini (chave) ou o Vault AI Resume da conta, quando disponível no servidor. Grave chaves com `vault-go engine key openrouter|gemini` ou no painel local; as ferramentas MCP não aceitam segredos.
192
-
193
- Na instalação, o Vault Go registra hooks no Claude Code, no Codex, no Grok, no Agy e no Gemini CLI. Eles carregam contexto e capturam os eventos oferecidos pelo cliente; o serviço local (`http://localhost:38850`) gera memórias com o motor escolhido, persistindo no Vault. No OpenCode 1.x, um plugin acrescenta contexto ao sistema antes das chamadas do modelo; esse adaptador não adiciona captura automática.
194
-
195
- Também há [captura persistente opt-in de transcripts Claude/Codex e contexto entre projetos](docs/transcripts-and-context.md), com comandos CLI e MCP, checkpoints privados e consentimento por workspace/conta. Ativar esses recursos preserva o motor/modelo escolhido.
196
-
197
- O recurso `vault-go://status` fornece o resumo sanitizado em JSON.
198
-
199
- Para reduzir o uso de contexto, prefira a recuperação em três camadas:
200
-
201
- 1. Pesquise com `vault_go_search_index`, usando projeto, origem, conceitos,
202
- arquivos e intervalo de datas quando conhecidos.
203
- 2. Abra `vault_go_timeline` somente para os resultados que precisam de
204
- contexto cronológico.
205
- 3. Envie os IDs escolhidos a `vault_go_observations` para carregar o conteúdo
206
- completo em um único lote tenant-scoped.
207
-
208
- As bases, filtros, vínculos e feed ficam exclusivamente no PostgreSQL da
209
- plataforma. A consulta retorna evidências e `synthesisAvailable: false`; o
210
- cliente MCP faz a síntese, evitando respostas inventadas e chaves ocultas no
211
- servidor. A síntese do servidor só será habilitada quando um provedor semântico
212
- for configurado explicitamente.
213
-
214
- ## Fluxo integrado
94
+ Remote MCP exposes projects, search, context, recents, feed, timeline, tool I/O, file context, stats, embeddings, and knowledge-base queries. Automatic capture, knowledge-base writes, import, and delete require the local Bun server.
95
+
96
+ `VAULT_GO_TOKEN` accepts a session token or a `vg_live_...` key. Use only the scopes you need: `memory:read`, `memory:write`, `memory:delete`. `VAULT_GO_API_URL` changes the API host. Browser login refreshes automatically; API keys are for scoped automation.
97
+
98
+ ### Vault Desktop (Crystal)
99
+
100
+ On an updated Vault Desktop, enable **Crystal → MCP → Enable in Vault MCP** and reconnect the MCP client. Crystal note tools (`vault_go_crystal_list`, `read`, `search`, `write`, `delete`, `sync`, `status`) appear next to memory tools. Desktop must stay open on the same machine. No second server or copied secret is required. Disabling the integration revokes that connection.
101
+
102
+ ## How it works
215
103
 
216
104
  ```text
217
- Cliente MCP -> vault-go (Bun) -> API autenticada (Bun)
218
- -> engine interno (Rust)
219
- -> PostgreSQL no EasyPanel
105
+ AI client → vault-go (local MCP)
106
+ ↓
107
+ Vault Memory API (authenticated)
108
+ ↓
109
+ Memory engine → your account store
220
110
  ```
221
111
 
222
- O engine não possui rota pública. A API valida o JWT do usuário, substitui-o
223
- por uma credencial interna e informa ao engine a conta autenticada. Todas as
224
- consultas aplicam esse identificador, impedindo leitura entre contas.
112
+ The engine has no public route. The API authenticates you, then scopes every query to that account. Clients cannot read another account’s memories.
113
+
114
+ Setup also installs session hooks on Claude Code, Codex, Grok, Agy, and Gemini CLI. Those hooks load project context and capture supported events. The local worker at `http://localhost:38850` generates memories with the selected engine and writes them to Vault Memory. OpenCode 1.x gets a context-only plugin; it does not capture automatically.
225
115
 
226
- ## Segurança
116
+ Prefer three-step retrieval to keep context small:
227
117
 
228
- - Não retorna access token nem refresh token em ferramentas ou recursos.
229
- - Aceita HTTPS; HTTP somente em localhost.
230
- - Renova o access token usando o refresh token local com permissão privada.
231
- - Limita tamanhos, listas e janelas nos schemas das ferramentas.
232
- - Reserva `stdout` exclusivamente para o protocolo MCP.
233
- - O painel guarda cache de projetos/memórias e metadados de chamadas MCP em arquivos privados locais.
118
+ 1. `vault_go_search_index` with project, type, concepts, files, or dates.
119
+ 2. `vault_go_timeline` only around the hits that need nearby context.
120
+ 3. `vault_go_observations` for the selected IDs.
234
121
 
235
- Instale o MCP apenas em clientes confiáveis: o cliente conectado pode pedir
236
- busca, gravação e exclusão de memórias dentro da conta autenticada.
122
+ ## Context engines
237
123
 
238
- ## Desenvolvimento
124
+ List and select engines without putting API keys in MCP tools:
239
125
 
240
126
  ```sh
241
- npm install
242
- bun run typecheck
243
- bun test src
244
- bun run build
245
- npm run pack:check
127
+ vault-go engine list
128
+ vault-go engine use openrouter
129
+ vault-go engine use codex --model terra
130
+ vault-go engine key openrouter
246
131
  ```
247
132
 
248
- ## Publicação automática
133
+ | Engine | How it authenticates |
134
+ | --- | --- |
135
+ | Vault AI Resume | Vault account entitlement |
136
+ | Claude | `claude auth login` (subscription CLI) |
137
+ | Codex / ChatGPT | `codex login` — models `terra`, `luna`, `sol` (CLI 0.155.1+) |
138
+ | OpenRouter | key stored with `vault-go engine key openrouter` |
139
+ | Gemini | key stored with `vault-go engine key gemini` |
249
140
 
250
- Pushes em `main` passam por CI. Commits convencionais acionam release
251
- semântica, publicação no npm, tag e GitHub Release:
141
+ MCP tools never accept secrets. Store keys with the CLI or the local dashboard. Provider usage limits apply. Managed Vault AI generation still depends on server configuration and quota.
252
142
 
253
- - `fix:` gera patch;
254
- - `feat:` gera minor;
255
- - `feat!:` ou `BREAKING CHANGE:` gera major.
143
+ ## MCP tools
256
144
 
257
- O segredo `NPM_TOKEN` existe apenas no GitHub Actions e nunca deve ser salvo no
258
- repositório ou em logs.
145
+ Account and health: `vault_go_status`, `vault_go_cloud_health`, `vault_go_preferences`, `vault_go_preferences_update`.
259
146
 
147
+ Projects and sessions: `vault_go_projects`, `vault_go_project_create`, `vault_go_session_start`, `vault_go_session_end`, `vault_go_session_start_context`.
260
148
 
261
- ## Painel local · localhost:38850
149
+ Capture and recall: `vault_go_event`, `vault_go_remember`, `vault_go_forget`, `vault_go_search`, `vault_go_search_index`, `vault_go_observations`, `vault_go_timeline`, `vault_go_context`, `vault_go_file_context`, `vault_go_feed`, `vault_go_memory`, `vault_go_tool_uses`, `vault_go_stats`.
262
150
 
263
- ```sh
264
- bunx --bun vault-go@latest setup --lang pt
265
- bunx --bun vault-go@latest local install
266
- bunx --bun vault-go@latest local open
267
- bunx --bun vault-go@latest local status
268
- bunx --bun vault-go@latest local stop
269
- bunx --bun vault-go@latest local uninstall
270
- ```
151
+ Knowledge bases: `vault_go_knowledge_bases`, `vault_go_knowledge_base`, `vault_go_knowledge_build`, `vault_go_knowledge_rebuild`, `vault_go_knowledge_query`, `vault_go_knowledge_delete`, `vault_go_prime_corpus`, `vault_go_query_corpus`, `vault_go_reprime_corpus`.
152
+
153
+ Jobs and backup: `vault_go_jobs`, `vault_go_job`, `vault_go_job_retry`, `vault_go_job_cancel`, `vault_go_processing_status`, `vault_go_observer_status`, `vault_go_export`, `vault_go_import`, `vault_go_backup_create`, `vault_go_backup_restore`, `vault_go_embedding_status`, `vault_go_embedding_backfill`.
154
+
155
+ Engines and updates: `vault_go_engines`, `vault_go_engine_select`, `vault_go_generate_context`, `vault_go_update_status`, `vault_go_update_check`, `vault_go_update_install`, `vault_go_update_configure`.
271
156
 
272
- O assistente e a página de retorno do login suportam `--lang pt|en|es`.
273
- O painel detecta o idioma do navegador e oferece seletor PT/EN/ES, busca
274
- local, atividade MCP recente, projetos e memórias consultados na nuvem.
275
- Atualiza a interface a cada 5 segundos enquanto visível e consulta a nuvem
276
- a cada 15 segundos. Sem conexão, conserva o último cache da mesma conta.
277
-
278
- Abra http://localhost:38850 e clique em **Conectar ao Vault** para entrar pelo navegador. A senha permanece no portal; o painel libera a sessão somente após confirmar o retorno OAuth com PKCE. A tela oferece próximos passos para configurar clientes e registrar a primeira memória. A logo e as cores são as mesmas do portal.
279
-
280
- O serviço escuta exclusivamente em 127.0.0.1:38850. `local open` verifica
281
- uma prova criptográfica do serviço e abre uma sessão privada no navegador;
282
- o segredo local é removido do fragmento imediatamente e trocado por cookie
283
- HttpOnly/SameSite=Strict. Não há CORS nem acesso direto da nuvem ao localhost.
284
- O portal `/app/local` abre o painel da máquina atual.
285
-
286
- No macOS, `local install` registra um LaunchAgent do usuário. Em Linux e
287
- Windows, inicia o serviço nesta sessão; após reiniciar, use `local start`.
288
- O runtime fica em `~/.memvault/local-runtime`, independente do cache bunx.
289
- `local stop` para o processo; `local uninstall` remove o início automático e
290
- preserva autenticação, cache e atividade. A atualização automática mantém o
291
- serviço e os hooks atualizados; clientes MCP abertos precisam reconectar.
292
- Após validar a nova versão do serviço, a atualização também repara os hooks do
293
- Gemini e o plugin do OpenCode quando esses clientes já têm o MCP Vault configurado.
294
- Plugins de terceiros são preservados. Reinicie clientes abertos para carregar
295
- novos hooks ou o módulo atualizado do plugin.
296
-
297
- A atividade registra método, rota, duração e resultado das chamadas feitas
298
- pelo MCP Vault, sem argumentos, consultas ou credenciais. Não captura toda a
299
- atividade da máquina nem importa automaticamente o banco do claude-mem em
300
- 37701. A sincronização deste painel é de leitura da nuvem; as ferramentas
301
- MCP continuam responsáveis pelas gravações na API.
302
-
303
- ### Sessões, dispositivos e proteção local
304
-
305
- **Sair** encerra a sessão desta página e cancela suas prévias de contexto.
306
- **Desconectar dispositivo** pede confirmação, revoga as credenciais do agente
307
- na nuvem e remove a autenticação e o cache local após sucesso. Os arquivos
308
- pessoais permanecem intactos. Para reconectar, entre novamente pelo navegador.
309
- O portal mostra último contato, permissões e permite revogar cada agente.
310
-
311
- O cache e a credencial de monitoramento usam AES-256-GCM. No macOS, a chave
312
- fica no Keychain; nos demais sistemas, em arquivo privado `0600`. Os tokens
313
- MCP existentes continuam em arquivo privado. O painel informa essas diferenças:
314
- cache cifrado não significa que todas as memórias sejam criptografadas ponta a
315
- ponta. O cofre de arquivos e o canal do terminal têm seus próprios protocolos.
316
-
317
- ### Motor de contexto
318
-
319
- Escolha **Vault AI Resume**, **Claude Subscription** ou **OpenAI Subscription**
320
- no painel local. A disponibilidade é verificada antes da geração. Claude usa
321
- `claude auth login`; OpenAI usa `codex login` com uma conta ChatGPT. O agente
322
- não pede nem copia credenciais desses provedores. O modelo gerenciado depende
323
- de configuração e quota no servidor Vault.
324
-
325
- A prévia manual exige texto informado pelo usuário, usa diretório temporário,
326
- limites de entrada/saída e timeout, e permite cancelamento. CLIs recebem apenas
327
- o texto informado, com ferramentas/configurações locais desativadas conforme
328
- os recursos suportados. O resultado é uma prévia privada da sessão, disponível
329
- para copiar; não é salvo automaticamente como memória. Os planos e limites do
330
- provedor escolhido se aplicam. Cancelar não garante estorno de uso já iniciado.
331
-
332
-
333
- ## Contexto automático e processamento
334
-
335
- Os hooks SessionStart leem o contexto do projeto no início, retomada e compactação
336
- conforme os eventos oferecidos pelo cliente. O hook anterior à leitura de arquivos
337
- é síncrono para conseguir inserir o contexto. `vault_go_session_start_context`
338
- executa o mesmo leitor, respeitando `contextItems` e `contextMaxChars` da conta.
339
-
340
- Claude, Codex e Gemini mostram uma confirmação quando o contexto é carregado,
341
- sem exibir conteúdo da memória nessa confirmação. Worktrees Git reutilizam o
342
- projeto do repositório principal; se ele ainda não estiver cadastrado, um projeto
343
- existente do próprio worktree continua legível. Submódulos mantêm seu projeto.
344
-
345
- O Gemini usa `SessionStart`, `BeforeAgent`, `AfterTool` e `AfterAgent`, conforme
346
- seu [contrato de hooks](https://geminicli.com/docs/hooks/reference/). Não há
347
- injeção de histórico de arquivo em `BeforeTool`, pois esse evento não oferece
348
- esse contrato. O plugin OpenCode usa `experimental.chat.system.transform`
349
- do [contrato 1.x](https://github.com/anomalyco/opencode/blob/v1.18.31/packages/plugin/src/index.ts),
350
- com prazo de três segundos e continuação normal em caso de falha. Consultas
351
- simultâneas da mesma sessão são compartilhadas; respostas de uma credencial
352
- substituída não são injetadas. Clientes sem esses adaptadores acessam memória
353
- pelas ferramentas MCP, sem promessa de contexto automático.
354
-
355
- A captura respeita `automaticCapture`, `captureMode` e a opção de incluir resultados
356
- de ferramentas. Uma falha ao consultar preferências desativa aquela captura.
357
- Eventos privados não são enviados; campos sensíveis e marcadores privados são
358
- removidos antes do processamento. A redação é heurística, não uma garantia de
359
- reconhecimento de qualquer formato de segredo.
360
-
361
- O worker processa uma fila privada persistente com o motor selecionado. A geração
362
- bem-sucedida é conservada para repetir somente a gravação quando a rede falha;
363
- a importação usa uma chave idempotente. A troca de conta não transfere jobs entre
364
- contas. Jobs antigos são adotados apenas após confirmar que o projeto pertence
365
- à conta autenticada. `summaryMode=off` preserva o conteúdo capturado sem chamar
366
- modelo. `vault_go_processing_status` mostra pendências e falhas sem seu conteúdo.
157
+ Graph and local code: `vault_go_graph`, `vault_go_graph_link`, `vault_go_graph_link_delete`, `vault_go_graph_presets`, `vault_go_graph_preset_save`, `vault_go_smart_outline`, `vault_go_smart_unfold`, `vault_go_smart_search`, `vault_go_smart_languages`.
158
+
159
+ Workflows: `vault_go_workflow`, `vault_go_modes`, `vault_go_mode`, plus named prompts such as `vault_go_babysit`. Loading a mode gives the agent instructions; it does not start a background job.
160
+
161
+ Optional local integrations (explicit consent): Telegram alerts, custom mode taxonomies, Claude/Codex transcript watchers, multi-project context chains, and Grok awareness logs. See `vault_go_capabilities` for what is configured on this machine.
162
+
163
+ The `vault-go://status` resource is a sanitized JSON summary.
164
+
165
+ ## Local dashboard
367
166
 
368
167
  ```sh
369
- vault-go engine use codex --model terra
370
- vault-go engine model luna
371
- vault-go engine model sol
168
+ vault-go local install
169
+ vault-go local open
170
+ vault-go local status
171
+ vault-go local stop
172
+ vault-go local uninstall
372
173
  ```
373
174
 
374
- No MCP, use `vault_go_engine_select` com `engine: "openai-subscription"` e
375
- `model: "terra"`, `"luna"` ou `"sol"`. Requer `codex login` com ChatGPT e a CLI
376
- 0.155.1 ou superior no PATH usado pelo serviço. Instalações antigas que aparecem
377
- antes no PATH são detectadas antes da geração. O modelo padrão do Codex é Terra.
378
- Os limites de uso da assinatura se aplicam. O processamento gerenciado Vault AI
379
- continua dependendo de configuração e quota no servidor.
175
+ Open [http://localhost:38850](http://localhost:38850) and choose **Connect to Vault**. The service listens only on `127.0.0.1:38850`. `local open` proves the local process cryptographically, then uses an HttpOnly / SameSite=Strict cookie. There is no CORS and no inbound path from the cloud to localhost.
380
176
 
381
- ## Atualização automática
177
+ The dashboard follows the browser language (pt / en / es) and can switch locale. It shows local search, recent MCP activity, and cloud projects/memories for the signed-in account. While visible it refreshes the UI every 5 seconds and the cloud every 15 seconds. Offline, it keeps the last cache for that account.
382
178
 
383
- O worker verifica diariamente a versão estável no registro npm oficial. Prepara
384
- uma instalação de versão exata em `~/.memvault/releases`, sem executar scripts
385
- do pacote, valida a estrutura e executa um teste de inicialização. Ativa a versão
386
- quando o worker e a fila estão ociosos. Uma falha na inicialização restaura o runtime
387
- anterior. A autenticação, as preferências e a fila são preservadas.
179
+ On macOS, `local install` registers a user LaunchAgent. On Linux and Windows it starts for this session; use `local start` after reboot. Runtime files live in `~/.memvault/local-runtime`. Uninstall removes autostart and keeps auth, cache, and activity.
388
180
 
389
- Requer npm instalado e acesso ao registro oficial. A verificação começa um minuto
390
- após iniciar o worker; uma tentativa pendente é reconsiderada a cada hora. Os
391
- clientes MCP em execução precisam reconectar para carregar novas ferramentas.
181
+ **Sign out** ends this browser session and cancels its context previews. **Disconnect device** revokes the cloud device credential and, after success, removes local auth and cache. Personal files are left in place. Reconnect through the browser.
182
+
183
+ ## Capture and processing
184
+
185
+ SessionStart hooks load project context on start, resume, and compact when the client offers those events. File-read hooks are synchronous so context can be injected. `vault_go_session_start_context` is the same reader, using the account `contextItems` and `contextMaxChars` budget.
186
+
187
+ Claude, Codex, and Gemini confirm that context loaded without printing memory contents. Git worktrees reuse the canonical repository project. Submodules keep their own project.
188
+
189
+ Capture honors `automaticCapture`, `captureMode`, and whether tool results are included. A preference lookup failure disables that capture. Private events are not sent. Sensitive fields and private markers are stripped before processing (heuristic redaction, not a guarantee for every secret format).
190
+
191
+ The worker drains a private queue with the selected engine. Successful generation is cached so a network retry does not call the model again. Import uses an idempotency key. Account switches do not move jobs between accounts. `summaryMode=off` stores captured text without calling a model. `vault_go_processing_status` reports counts, not contents.
192
+
193
+ Opt-in Claude/Codex transcript watchers and project context chains are configured with MCP/CLI and stay bound to the current account.
194
+
195
+ ## Automatic updates
196
+
197
+ The worker checks the official npm registry daily for a stable `vault-go` release, stages an exact version under `~/.memvault/releases` without running package install scripts, validates it, and activates when idle. A failed start rolls back. Auth, preferences, and the queue are kept. Open MCP clients must reconnect to load new tools.
392
198
 
393
199
  ```sh
394
200
  vault-go update status
@@ -398,78 +204,31 @@ vault-go update off
398
204
  vault-go update on
399
205
  ```
400
206
 
401
- As mesmas operações estão no MCP: `vault_go_update_status`, `vault_go_update_check`,
402
- `vault_go_update_install` e `vault_go_update_configure`. Instalação manual pode
403
- reiniciar o serviço; a atualização automática espera o processamento terminar.
404
-
405
- ## Auditoria do claude-mem e ferramentas adicionais
406
-
407
- A comparação usa o código do claude-mem 13.25.2, commit
408
- `adce0fdfaf1cd46646bbd0b22ae74cbd460ed787`. A matriz acessível em
409
- `vault_go_capabilities` e no recurso `vault-go://capabilities` distingue funções
410
- implementadas e suas dependências. `deploymentVerified` resulta de consultas aos
411
- contratos da API/engine conectados, com cache privado de cinco minutos por conta;
412
- não presume autenticação dos provedores nem entrega de notificações. O recurso
413
- MCP lê somente o cache; a ferramenta verifica por padrão.
414
-
415
- Além das ferramentas acima, o MCP inclui:
416
-
417
- - `vault_go_workflow`: guia de recuperação progressiva.
418
- - `vault_go_tool_uses`: dados originais redigidos de ferramentas, por ID do evento,
419
- memória vinculada ou chave externa; depende da captura histórica disponível.
420
- - `vault_go_memory`: abre uma memória por UUID.
421
- - `vault_go_preferences` / `vault_go_preferences_update`: captura e orçamento de contexto.
422
- - `vault_go_observer_status` / `vault_go_processing_status`: processamento remoto e local.
423
- - `vault_go_graph`, `vault_go_graph_link`, `vault_go_graph_link_delete`,
424
- `vault_go_graph_presets` e `vault_go_graph_preset_save`: leitura e manutenção do grafo.
425
- - `vault_go_smart_outline`, `vault_go_smart_unfold` e `vault_go_smart_search`:
426
- exploração AST local. Search aceita padrões estruturais como `console.log($ARG)`;
427
- `filePattern` é glob. As ferramentas informam linguagens suportadas e truncamento,
428
- limitam leitura ao workspace e bloqueiam caminhos privados e escapes por symlink.
429
-
430
- A busca aceita `query` opcional, `offset` e `orderBy`. A timeline também pode
431
- localizar a âncora por consulta. `vault_go_job` consulta um job individual.
432
- `vault_go_prime_corpus`, `vault_go_query_corpus` e `vault_go_reprime_corpus`
433
- respondem com o modelo escolhido, citações e histórico local cifrado de até 12 turnos.
434
-
435
- `vault_go_backup_create` salva todas as páginas de um snapshot consistente em
436
- arquivo privado, com SHA-256 e cobertura declarada. `vault_go_backup_restore`
437
- valida hash e proprietário antes de alterar preferências ou dados. Snapshots têm
438
- TTL de uma hora e limite explícito de 100 mil registros; exceder limites retorna
439
- erro, sem apresentar um backup truncado como completo. O formato é próprio do
440
- Vault; não equivale ao SQLite upstream nem a uma réplica offline.
441
-
442
- Telegram, CCS Align e taxonomias herdadas têm integrações locais próprias; veja
443
- [integrações de modos](docs/mode-integrations.md). Watchers de Claude/Codex e
444
- contexto entre projetos são configuráveis com consentimento; veja
445
- [transcripts e contexto](docs/transcripts-and-context.md). O [scan completo](docs/claude-mem-upstream-scan.md)
446
- registra os contratos upstream; a matriz MCP descreve a implementação atual.
447
-
448
-
449
- ## Modos e skills padrão no MCP
450
-
451
- O pacote inclui 20 workflows originais adaptados ao Vault. Liste com
452
- `vault_go_modes` e carregue com `vault_go_mode`, por exemplo:
207
+ ## Security
453
208
 
454
- ```json
455
- {"name":"babysit","task":"Acompanhe os checks e revisões do PR solicitado."}
456
- ```
209
+ - Tools and resources never return access or refresh tokens.
210
+ - HTTPS only, except HTTP on localhost.
211
+ - Access tokens refresh from a private local refresh token.
212
+ - Tool schemas bound sizes, lists, and windows.
213
+ - `stdout` is reserved for the MCP protocol.
214
+ - The dashboard cache uses AES-256-GCM (macOS Keychain, elsewhere a `0600` file). Encrypted cache is not the same as end-to-end encryption of every memory.
457
215
 
458
- Clientes com suporte a prompts também recebem `vault_go_babysit`,
459
- `vault_go_mem_search`, `vault_go_make_plan` e os demais nomes do catálogo.
460
- O recurso `vault-go://modes` expõe requisitos e limitações de cada workflow.
461
- Carregar um modo entrega instruções ao agente; não inicia execução independente.
216
+ Install this MCP only on clients you trust: a connected client can search, write, and delete memories in the signed-in account.
217
+
218
+ ## Development
219
+
220
+ ```sh
221
+ npm install
222
+ bun run typecheck
223
+ bun test src
224
+ bun run build
225
+ npm run pack:check
226
+ ```
462
227
 
463
- Incluídos: babysit, mem-search, how-it-works, make-plan, do, smart-explore,
464
- knowledge-agent, standup, timeline-report, weekly-digests, learn-codebase,
465
- pathfinder, design-is, what-the, version-bump, oh-my-issues, cloud-sync,
466
- mode-creator, ccs-align e wowerpoint.
228
+ Pushes to `main` run CI. Conventional commits publish to npm (`fix` → patch, `feat` → minor, `BREAKING CHANGE` → major). `NPM_TOKEN` lives only in GitHub Actions.
467
229
 
468
- Babysit exige acesso do cliente ao GitHub por `gh` ou conector e acompanha o PR
469
- enquanto a solicitação está ativa. `mode-creator` instala taxonomias herdadas e
470
- `ccs-align` mantém cache, exclusões e relatório de regras por viewer. Wowerpoint
471
- ainda depende de um renderer de apresentação do cliente, e cmem.ai continua sendo
472
- um serviço distinto. Ações externas seguem a autorização da tarefa; carregar um
473
- prompt não envia mensagens, publica versões ou faz merge.
230
+ ## Links
474
231
 
475
- A validação e as diferenças de arquitetura estão na [revisão de implantação](docs/parity-deployment-review.md).
232
+ - Product: [https://vault.resolveup.com.br](https://vault.resolveup.com.br)
233
+ - Source: [https://github.com/resolveup-cloud/vault-go](https://github.com/resolveup-cloud/vault-go)
234
+ - npm: [https://www.npmjs.com/package/vault-go](https://www.npmjs.com/package/vault-go)
@@ -2,6 +2,7 @@ import { Lang, parse, registerDynamicLanguage } from '@ast-grep/napi';
2
2
  import { createRequire } from 'node:module';
3
3
  import { readFileSync, readdirSync, realpathSync, statSync } from 'node:fs';
4
4
  import { basename, dirname, extname, isAbsolute, join, relative, resolve, sep } from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
5
6
  const BUILTIN_LANGUAGES = [
6
7
  { name: 'JavaScript', parser: Lang.JavaScript, extensions: ['.js', '.jsx', '.mjs', '.cjs'] },
7
8
  { name: 'TypeScript', parser: Lang.TypeScript, extensions: ['.ts', '.mts', '.cts'] },
@@ -29,16 +30,19 @@ const DYNAMIC_LANGUAGES = [
29
30
  { name: 'Sql', parser: 'sql', extensions: ['.sql'], packageName: '@ast-grep/lang-sql' },
30
31
  { name: 'Markdown', parser: 'markdown', extensions: ['.md', '.mdx'], packageName: '@ast-grep/lang-markdown' },
31
32
  { name: 'Zig', parser: 'zig', extensions: ['.zig'], packageName: '@tree-sitter-grammars/tree-sitter-zig', binding: '@tree-sitter-grammars+tree-sitter-zig' },
32
- { name: 'Scss', parser: 'scss', extensions: ['.scss'], packageName: 'tree-sitter-scss', binding: 'tree-sitter-scss' },
33
+ { name: 'Scss', parser: 'scss', extensions: ['.scss'], packageName: 'tree-sitter-scss', binding: 'tree-sitter-scss', bundled: true },
33
34
  ];
34
35
  // Register the complete allowlisted set once. No path from a workspace/config is loaded as executable grammar code.
35
36
  const grammarRequire = createRequire(import.meta.url);
37
+ const bundledGrammarRoot = fileURLToPath(new URL('../grammars/', import.meta.url));
36
38
  const unavailable = new Set();
37
39
  const registrations = {};
38
40
  for (const language of DYNAMIC_LANGUAGES) {
39
41
  try {
40
42
  const grammar = language.binding ? {
41
- libraryPath: join(dirname(grammarRequire.resolve(`${language.packageName}/package.json`)), 'prebuilds', `${process.platform}-${process.arch}`, `${language.binding}.node`),
43
+ libraryPath: language.bundled
44
+ ? join(bundledGrammarRoot, language.parser, 'prebuilds', `${process.platform}-${process.arch}`, `${language.binding}.node`)
45
+ : join(dirname(grammarRequire.resolve(`${language.packageName}/package.json`)), 'prebuilds', `${process.platform}-${process.arch}`, `${language.binding}.node`),
42
46
  extensions: language.extensions.map(ext => ext.slice(1)), languageSymbol: `tree_sitter_${language.parser}`, expandoChar: '_',
43
47
  } : grammarRequire(language.packageName);
44
48
  statSync(grammar.libraryPath);
@@ -0,0 +1,3 @@
1
+ Prebuilt Tree-sitter SCSS grammars redistributed from tree-sitter-scss@1.0.0 (MIT).
2
+ Source: https://www.npmjs.com/package/tree-sitter-scss
3
+ Vault Go loads these platform prebuilds at runtime and does not compile tree-sitter-css.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vault-go",
3
- "version": "0.22.0",
4
- "description": "Servidor MCP universal com autenticação e instalação multi-cliente para a plataforma Vault.",
3
+ "version": "0.22.2",
4
+ "description": "MCP server and installer for Vault Memory: search, capture, and use account memory across AI clients.",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "vault-go": "dist/index.js",
@@ -78,7 +78,6 @@
78
78
  "dist/server.d.ts",
79
79
  "assets/",
80
80
  "README.md",
81
- "docs/mode-integrations.md",
82
81
  "LICENSE",
83
82
  "dist/mcp-result.js",
84
83
  "dist/mcp-result.d.ts",
@@ -114,7 +113,6 @@
114
113
  "dist/transcript-tools.d.ts",
115
114
  "dist/context-chain.js",
116
115
  "dist/context-chain.d.ts",
117
- "docs/transcripts-and-context.md",
118
116
  "dist/capture-privacy.js",
119
117
  "dist/capture-privacy.d.ts",
120
118
  "dist/deployment-verification.js",
@@ -123,8 +121,7 @@
123
121
  "dist/grok-awareness.d.ts",
124
122
  "dist/awareness-tools.js",
125
123
  "dist/awareness-tools.d.ts",
126
- "docs/ast-and-awareness.md",
127
- "docs/parity-deployment-review.md"
124
+ "grammars/"
128
125
  ],
129
126
  "scripts": {
130
127
  "clean": "bun -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"",
@@ -156,6 +153,7 @@
156
153
  "model-context-protocol",
157
154
  "memory",
158
155
  "vault",
156
+ "vault-memory",
159
157
  "memvault",
160
158
  "knowledge",
161
159
  "codex",
@@ -190,7 +188,6 @@
190
188
  "@ast-grep/napi": "0.45.3",
191
189
  "@modelcontextprotocol/sdk": "1.29.0",
192
190
  "@tree-sitter-grammars/tree-sitter-zig": "1.1.2",
193
- "tree-sitter-scss": "1.0.0",
194
191
  "zod": "3.25.76"
195
192
  },
196
193
  "devDependencies": {
@@ -1,72 +0,0 @@
1
- # AST completo e awareness local do Grok
2
-
3
- ## Idiomas AST
4
-
5
- `vault_go_smart_languages` publica o catálogo e a disponibilidade real na plataforma. `smart_outline`, `smart_unfold` e `smart_search` usam grammars Tree-sitter carregadas pelo ast-grep; indisponibilidade nunca vira parsing por regex. Os limites anteriores de workspace, arquivos privados, bytes, quantidade de arquivos/símbolos e tamanho da saída continuam valendo.
6
-
7
- | Idioma | Extensões |
8
- | --- | --- |
9
- | JavaScript | `.js`, `.jsx`, `.mjs`, `.cjs` |
10
- | TypeScript | `.ts`, `.mts`, `.cts` |
11
- | TSX | `.tsx` |
12
- | HTML | `.html`, `.htm` |
13
- | CSS | `.css` |
14
- | Python | `.py`, `.pyw` |
15
- | Go | `.go` |
16
- | Rust | `.rs` |
17
- | Ruby | `.rb` |
18
- | Java | `.java` |
19
- | C | `.c`, `.h` |
20
- | C++ | `.cpp`, `.cc`, `.cxx`, `.hpp`, `.hh` |
21
- | Kotlin | `.kt`, `.kts` |
22
- | Swift | `.swift` |
23
- | PHP | `.php` |
24
- | Lua | `.lua` |
25
- | Scala | `.scala`, `.sc` |
26
- | Bash | `.sh`, `.bash`, `.zsh` |
27
- | Haskell | `.hs` |
28
- | TOML | `.toml` |
29
- | YAML | `.yml`, `.yaml` |
30
- | SQL | `.sql` |
31
- | Markdown | `.md`, `.mdx` |
32
- | Zig | `.zig` |
33
- | SCSS | `.scss` |
34
-
35
- Isso cobre os 24 idiomas do `LANG_MAP` upstream, além do HTML que o Vault já suportava. `.mdx` usa a grammar Markdown e `.zsh` usa Bash, como no upstream; não promete validar extensões próprias de MDX/Zsh.
36
-
37
- JS/TS/TSX/HTML/CSS usam as grammars de `@ast-grep/napi`. Dezoito outras usam pacotes oficiais `@ast-grep/lang-*`, fixados no `package.json`/lock. Zig e SCSS usam os símbolos C `tree_sitter_zig` e `tree_sitter_scss` exportados pelos prebuilds dos pacotes `@tree-sitter-grammars/tree-sitter-zig@1.1.2` e `tree-sitter-scss@1.0.0`. Carregar esses símbolos diretamente permite usar o mesmo AST/matcher do ast-grep, sem compilar ou executar scripts de instalação.
38
-
39
- Os prebuilds são dependências do MCP instalado. O worker local e a fila não importam o parser nem essas dependências. `npm ci --ignore-scripts` é suportado nos sistemas com prebuild compatível. O pacote SCSS não publica prebuild Linux ARM64; ali o catálogo informa indisponibilidade e operações diretas falham explicitamente. Outros alvos também dependem da presença e compatibilidade do prebuild: não há download ou compilação automática durante o uso. Todos os 25 foram verificados nesta implementação em macOS ARM64.
40
-
41
- Os nomes/símbolos, corpos e posições vêm de nós e campos da árvore. Markdown usa a árvore de seções para desdobrar uma seção completa. Buscas com metavariáveis foram verificadas também em Python, Go, Zig e SCSS, incluindo a distinção entre chamadas reais e textos em comentários/strings.
42
-
43
- O registro segue a [API oficial do ast-grep](https://ast-grep.github.io/guide/api-usage/js-api): todas as grammars são registradas juntas uma vez por processo. Os [pacotes oficiais de grammars](https://github.com/ast-grep/langs) fornecem os parsers pré-compilados. Nenhuma biblioteca escolhida por caminho de workspace/configuração é carregada como código executável.
44
-
45
- ## Awareness do Grok
46
-
47
- Awareness é escrita local de uma linha factual em `agents/<UUID>/memory/log/YYYY-MM.md`, consumida pelo agente Grok. Não é uma integração Telegram.
48
-
49
- 1. Use `vault_go_grok_awareness_configure` com `enabled=true`, `consent=true`, `agentDataRoot` absoluto existente, `agentIds` permitidos e ao menos um filtro em `triggerTypes` ou `triggerConcepts`.
50
- 2. Use `vault_go_grok_awareness_push` com `agentId` permitido e `memoryIds` UUID para enviar memórias já existentes na conta autenticada.
51
- 3. Consulte `vault_go_grok_awareness_status` ou desative com `enabled=false`.
52
-
53
- Nada é ativado por padrão. Não há escolha automática de diretório ou agentes piloto. O consentimento fica em `grok-awareness.json`, privado e específico da conta. Troca de conta revoga o consentimento local. A leitura MCP confere também a credencial antes/depois da API, impedindo publicar um resultado recebido durante troca de conta.
54
-
55
- Hooks que recebem `agent_id`/`agentId` preservam esse agente na fila. Após persistir a memória no Vault, a fila envia o fato apenas ao agente correspondente e permitido; não faz broadcast. O pipeline atual grava essas memórias como `discovery`, portanto a automação usa esse tipo e os conceitos gerados. O push por IDs preserva o `memoryType` armazenado e atende aos demais tipos, como `decision` ou `bugfix`. Sem identidade de agente, a fila não escreve awareness.
56
-
57
- Cada linha usa a forma `- YYYY-MM-DD [awareness] tipo — título: subtítulo. primeiro fato`, com whitespace colapsado e até 500 caracteres. Flags/blocos privados são rejeitados; credenciais usam a mesma redação da captura. A deduplicação compara o corpo, ignorando a data, dentro do log mensal. O mês usa UTC. `profile.md` não é alterado.
58
-
59
- O writer limita lotes a 100 observações e arquivos mensais a 1 MiB, valida a raiz e todos os diretórios descendentes, recusa symlinks/hardlinks de logs e usa lock entre processos e substituição atômica com arquivos 0600. Conteúdo anterior é preservado. Um log cheio ou destino inacessível produz `awareness_write_failed`, sem conteúdo sensível no status. Falha depois da persistência mantém o job para retry; o resultado do modelo já gerado é reutilizado e a importação mantém sua chave idempotente. Desativar awareness permite concluir esses jobs sem nova escrita local. Outros processos que escrevam o mesmo log precisam coordenar acesso para garantir ausência de sobrescrita concorrente.
60
-
61
- ## Fontes e validação
62
-
63
- Contrato upstream consultado no SHA `adce0fdfaf1cd46646bbd0b22ae74cbd460ed787`:
64
-
65
- - `src/services/smart-file-read/parser.ts`: `LANG_MAP`, grammars e queries de símbolos.
66
- - `src/services/integrations/GrokBotAwarenessPusher.ts`: filtros, linha limitada, destino mensal, allowlist e deduplicação.
67
- - `src/services/worker/agents/ResponseProcessor.ts`: envio vinculado a `pendingAgentId`, após persistência.
68
- - `tests/integrations/grok-bot-awareness-pusher.test.ts`: casos do writer upstream.
69
-
70
- Fixtures do Vault verificam outlines/desdobramento de todos os idiomas, busca estrutural, consentimento/filtros, privacidade, conta, concorrência, rotação, caminho malicioso, retomada sem regeneração, MCP e carregamento do worker staged sem `node_modules`. Nenhum log de agente ou configuração da instalação real foi modificado. A revisão multimodelo foi substituída por revisão manual, pois o gateway LiteLLM não está configurado neste ambiente.
71
-
72
- Validação em 2026-09-20 sobre a base `8f08e19341eed95164ee9a77cf178486adeddb0f`: instalação limpa `npm ci --ignore-scripts`, `bun run build`, 178 testes / 1323 assertions (`bun test src`), `git diff --check` e pacote npm passaram. `npm audit --omit=dev` retornou zero vulnerabilidades. A validação posterior à instalação limpa confirmou que as grammars funcionam sem postinstall; o subprocesso staged confirmou que fila/awareness não precisam dessas dependências no worker.
@@ -1,74 +0,0 @@
1
- # Integrações de modos
2
-
3
- O Vault Go implementa três superfícies locais independentes: alertas Telegram,
4
- CCS Align e taxonomias customizadas. O registro MCP fica em
5
- `registerModeIntegrations`, separado do servidor principal.
6
-
7
- ## Telegram
8
-
9
- O token do bot nunca é aceito como argumento MCP. Defina
10
- `VAULT_GO_TELEGRAM_BOT_TOKEN` no ambiente privado do serviço e invoque
11
- `vault_go_telegram_configure` com o chat e os tipos ou conceitos aprovados.
12
- A configuração é cifrada pelo armazenamento privado local; status, resources e
13
- erros não retornam o token. Configurar não envia mensagem. O único envio de teste
14
- ocorre por uma chamada explícita a `vault_go_telegram_test`.
15
-
16
- Depois da persistência de uma observação, o worker envia apenas quando alertas
17
- estão habilitados e o tipo ou um conceito corresponde aos gatilhos. A mensagem é
18
- limitada a tipo, título, projeto e ID; narrativa e fatos não são enviados. Uma
19
- falha do Telegram não repete nem invalida uma memória já persistida.
20
-
21
- Ferramentas: `vault_go_telegram_status`, `vault_go_telegram_configure`,
22
- `vault_go_telegram_disable` e `vault_go_telegram_test`.
23
-
24
- ## CCS Align
25
-
26
- Cada viewer possui `middle.jsonl`, `exclude-marks.json`, `cursor.json` e
27
- `rules-report.md` sob o diretório privado do Vault. Atualizações usam arquivo
28
- temporário e rename, deduplicam por UUID e conteúdo e limitam quantidade e
29
- tamanho. Excluir filtra o cache compilado; não apaga a memória cloud. Restaurar
30
- remove a marca e requer um novo ciclo para reler a fonte autoritativa.
31
-
32
- O ciclo comprova health e consulta `search_index → timeline → observations`.
33
- O rules check recebe listas limitadas de regras como dados, detecta
34
- `SHADOW_HOUSE`, `DENY_ALLOW`, `DRIFT` e `CLOCK_HEADER` e acrescenta uma seção ao
35
- relatório. Ele nunca altera house, project ou seat rules.
36
-
37
- Ferramentas: `vault_go_ccs_align_health`, `vault_go_ccs_align_cycle`,
38
- `vault_go_ccs_align_exclude`, `vault_go_ccs_align_restore` e
39
- `vault_go_ccs_align_rules_check`.
40
-
41
- O writer de awareness do Grok Bot é outra função upstream: ele grava linhas em
42
- logs mensais de um agente Grok. CCS Align não escreve nesses logs e esta mudança
43
- não implementa esse writer.
44
-
45
- ## Taxonomias customizadas
46
-
47
- `vault_go_custom_mode_save` valida identificadores, taxonomias e prompts antes
48
- de gravar. A resolução rejeita pais desconhecidos e ciclos; arrays presentes
49
- substituem os do pai e prompts são mesclados. O catálogo e a preferência ativa
50
- ficam cifrados. `vault_go_custom_mode_select` aplica o modo à injeção de contexto
51
- e à geração local futura. Memórias existentes não são reclassificadas.
52
-
53
- Ferramentas adicionais: `vault_go_custom_modes`, `vault_go_custom_mode_get` e
54
- `vault_go_custom_mode_delete`. O modo base `code` não pode ser sobrescrito ou
55
- apagado, e um modo com filhos não pode ser removido.
56
-
57
- ## Auditoria dos workflows
58
-
59
- Os 20 nomes em `vault-go://modes` correspondem aos 20 skills publicados no
60
- snapshot upstream 13.25.2. Um skill é um roteiro executado pelo agente cliente;
61
- carregá-lo não iniciar um agente em background não é, por si só, uma lacuna.
62
- Babysit, planejamento, execução, relatórios e os demais roteiros funcionam quando
63
- o cliente oferece as ferramentas indicadas. Diferenças reais permanecem para
64
- knowledge-agent (sem sessão conversacional persistente), wowerpoint (sem renderer
65
- PPTX/PDF embutido) e cloud-sync (cmem.ai não é o Vault cloud).
66
-
67
- Após integrar estes módulos, a matriz global deve separar a antiga linha conjunta:
68
-
69
- - Telegram: disponível com configuração explícita e gatilhos locais.
70
- - CCS Align: disponível na variante Vault descrita acima.
71
- - Modos customizados: disponíveis; atualizar a linha de privacy/capture modes.
72
- - Grok awareness push: ainda não implementado e distinto de Telegram/CCS Align.
73
- - Transcript watchers: avaliar separadamente com o trabalho específico de watchers.
74
- - Workflows: não marcar como parciais apenas porque o agente cliente executa as instruções.
@@ -1,60 +0,0 @@
1
- # Revisão e implantação da paridade
2
-
3
- Data: 20 de setembro de 2026. Referência: claude-mem 13.25.2, adce0fdf.
4
-
5
- ## Implementado
6
-
7
- Busca sem query obrigatória, offset e ordem por data; timeline com âncora por
8
- consulta; leitura individual de jobs. Backup v2 paginado e consistente por
9
- snapshot materializado, privado no cliente, com hash e validação de proprietário
10
- antes da restauração. O formato cobre preferências e dados de memória; o manifesto
11
- explicita limites e omissões, sem declarar exportações truncadas como completas.
12
-
13
- Conversas com corpora usam o modelo escolhido, fontes numeradas e histórico local
14
- cifrado por conta/base. Respostas HTTP do corpus têm teto de 8 MiB; o JSON de
15
- fontes enviado ao modelo tem teto de 16 mil caracteres. Codex Terra/Luna/Sol e
16
- Claude Haiku foram executados de verdade com fontes sintéticas e citações válidas.
17
- O schema estrito exige todos os campos e aceita classificação nula.
18
-
19
- Telegram, CCS Align, taxonomias herdadas, watchers de Claude/Codex e encadeamento
20
- de projetos têm ferramentas próprias no MCP. Captura adicional e envio de
21
- alertas exigem configuração explícita. Caches e destinos de notificações ficam
22
- vinculados à conta. O Crystal usa o mesmo servidor Vault Go.
23
-
24
- AST real cobre os 24 idiomas upstream e HTML; o catálogo informa disponibilidade
25
- por plataforma. SCSS não tem prebuild Linux ARM64. Awareness do Grok usa logs
26
- mensais locais, com consentimento e allowlist de agentes.
27
-
28
- ## Evidências
29
-
30
- - Engine 649f5f7 e API fdcc24b enviados a main e implantados no Docker Swarm.
31
- - Serviços saudáveis; health/readiness, autenticação e contratos testados na API canônica.
32
- - `deploymentVerified: true`: health, searchIndex, toolUses, feed, knowledgeBases,
33
- observerStatus, backup e job aprovados em 20/09/2026. A verificação é dinâmica,
34
- privada por conta e válida por cinco minutos; não equivale a verificar
35
- credenciais externas, qualidade dos modelos ou entrega Telegram.
36
- - Backup real: 4.008 registros, 81 páginas, 14.070.751 bytes. Arquivo privado
37
- mantido em `~/.memvault/backups/`; conteúdo não foi publicado.
38
- - Testes de snapshot cobrem alterações/remoções/criações entre páginas, expiração,
39
- limites, isolamento entre contas e restauração idempotente.
40
- - Testes do cliente cobrem mudança de conta durante operações, resposta HTTP
41
- excessiva, substituição de lock, redaction, credenciais, MCP e fila de modelos.
42
- - Auditoria de dependências de produção: zero vulnerabilidades.
43
- - Crystal: 122 testes, typecheck, gates de qualidade e E2E Electron com 2.359 notas;
44
- as sete operações foram exercitadas pelo MCP Vault e servidor Crystal reais.
45
-
46
- ## Revisão
47
-
48
- APROVADO COM RESSALVAS. A revisão multimodelo foi substituída por revisão manual:
49
- ANTHROPIC_BASE_URL e ANTHROPIC_AUTH_TOKEN não estavam definidos, impedindo conferir
50
- os aliases dos três revisores no gateway. Não se presumiu que aliases eram órfãos.
51
- A revisão manual e uma segunda leitura independente encontraram e corrigiram
52
- fencing de conta, recuperação de locks, restauração de preferências e limites de
53
- leitura. As correções têm testes de regressão.
54
-
55
- Ressalvas: o servidor gerenciado está `configured:false` até receber uma credencial
56
- válida; provedores locais selecionados continuam disponíveis com sua autenticação.
57
- Backup v2 não é o formato SQLite upstream nem uma réplica offline/cmem.ai Pro.
58
- Restauração é idempotente por página; não é uma única transação entre preferências
59
- do gateway e todos os dados do engine. Os workflows/skills executam no cliente e
60
- respeitam as ferramentas e autorizações disponíveis nesse cliente.
@@ -1,75 +0,0 @@
1
- # Transcripts persistentes e contexto entre projetos
2
-
3
- Vault Go pode capturar transcripts JSONL de Claude Code e Codex enquanto o serviço local está em execução. É uma opção local, desligada por padrão e vinculada à conta Vault. A preferência da conta `automaticCapture` também precisa estar ativada. A geração continua usando o motor/modelo já escolhido; ativar watchers não altera Claude Haiku, Codex ou chaves de providers.
4
-
5
- ## Ativação
6
-
7
- ```sh
8
- vault-go transcripts enable --client claude --workspace /caminho/projeto --consent
9
- vault-go transcripts enable --client codex --workspace /caminho/projeto --consent
10
- vault-go local start
11
- vault-go transcripts status
12
- ```
13
-
14
- As raízes padrão são `~/.claude/projects` e `~/.codex/sessions`. Para outro perfil, use `--root /caminho/transcripts`. O workspace e a raiz precisam existir e ser caminhos absolutos. Registre cada workspace separadamente; no máximo 20 pares cliente/workspace. Subdiretórios de um repositório usam sua raiz Git.
15
-
16
- Sem `--from-start`, arquivos existentes começam no fim na primeira descoberta. Eventos que chegarem antes dessa primeira leitura podem ser pulados. Arquivos novos, criados depois da ativação, são lidos desde o início. Use `--from-start` na primeira configuração apenas quando quiser importar o histórico. Uma importação histórica pode se sobrepor à captura anterior por hooks sem identificadores comuns; a opção é explícita por esse motivo. Uma troca de conta exige novo consentimento.
17
-
18
- ```sh
19
- vault-go transcripts enable --client codex --workspace /projeto --root /export/rollouts --consent --from-start
20
- vault-go transcripts poll
21
- vault-go transcripts disable --client codex --workspace /projeto
22
- ```
23
-
24
- `poll` executa um lote sem iniciar serviços nem modificar preferências. `disable` devolve imediatamente aos hooks nativos a captura daquele cliente/workspace. Enquanto o watcher estiver habilitado, os hooks nativos continuam injetando contexto, mas deixam a escrita para o transcript, evitando captura dupla na operação normal. Desligar o serviço local mantém o checkpoint para retomada. Para voltar à captura exclusiva por hooks, desative o watcher.
25
-
26
- O setup aceita `--watch-transcripts claude|codex --workspace /projeto --consent`, opcionalmente `--transcript-root /raiz` e `--from-start`. Não ativa watchers implicitamente.
27
-
28
- ## Recuperação e privacidade
29
-
30
- - `transcript-watchers.json` guarda o consentimento; `transcript-checkpoints.json` guarda offsets em bytes, identidade dos arquivos e o estado mínimo de chamadas pendentes. Arquivos usam permissão 0600 e gravação atômica. Entradas pendentes são redigidas e limitadas; esse checkpoint não é criptografado.
31
- - O checkpoint avança depois do evento cloud e da fila durável de geração. Falhas de rede voltam ao mesmo identificador idempotente. Uma perda de confirmação pode repetir o envio HTTP, mas usa a mesma chave na API e na fila/importação. Não há promessa de execução exatamente uma vez do modelo após replay histórico.
32
- - Um lock por processo impede dois consumidores simultâneos. Reinício, inode novo, truncamento e alteração do prefixo são detectados. Linhas parciais esperam a próxima leitura; UTF-8 usa offsets em bytes. JSON inválido e linhas acima de 256 KB são descartados.
33
- - Apenas registros cujo `cwd` corresponde ao workspace consentido são enviados. Symlinks encontrados na árvore são ignorados. Trocar conta, credenciais ou consentimento durante uma operação interrompe o lote. Um refresh de credencial pode abortar um lote; a próxima leitura retoma com os mesmos IDs.
34
- - `<private>` / `<vault-private>` e flags privadas bloqueiam o turno inteiro, incluindo ferramentas e resposta, até o próximo prompt público. Senhas, tokens, chaves e blocos de contexto são redigidos com a política dos hooks. `includeToolResults=false` continua omitindo resultados na API. Ao começar no fim de um arquivo existente, a leitura espera um novo prompt público antes de capturar ferramentas/respostas.
35
- - Claude: `user`, `assistant`, blocos `text`, `tool_use`, `tool_result`. Codex: `session_meta`, `turn_context`, `response_item.message`, chamadas `function_call` e `custom_tool_call` e seus resultados. `event_msg` duplicados são ignorados; `task_complete.last_agent_message` é fallback para resposta final ausente. Comentários intermediários do Codex não viram resumo. Formatos desconhecidos são ignorados.
36
- - Chamadas sem resultado ficam pendentes até o resultado chegar. No máximo 16 chamadas pendentes por arquivo, com entrada redigida limitada a 16 KB; excedentes antigos são descartados. Um novo prompt limpa chamadas sem resultado do turno anterior.
37
-
38
- Cada lote processa até 200 registros, 32 arquivos e 2 MB; cada arquivo é lido em blocos de até 256 KB. A descoberta visita até 4096 entradas e 1000 arquivos, priorizando diretórios e arquivos recentes. O checkpoint mantém até 1000 arquivos e aproximadamente 4 MB. Árvores que excedam os limites podem deixar arquivos históricos fora da descoberta; selecione uma raiz mais estreita para esses casos. A descoberta não promete uma varredura exaustiva de arquivos arbitrariamente grandes. A fila de geração mantém seus limites próprios.
39
-
40
- O worker faz polling a cada cinco segundos. `local serve`, instalação e atualizações usam o mesmo lifecycle; o serviço só se declara ocioso quando nenhuma captura está em execução e espera a captura atual ao fechar. Updates copiam os módulos novos para o runtime, preservando consentimento e checkpoints fora dele. SDK MCP e Zod ficam isolados em `transcript-tools.js`; o worker/hook staged não depende de `node_modules`.
41
-
42
- ## Cadeia de contexto
43
-
44
- ```sh
45
- vault-go context-chain set --workspace /app --roots /biblioteca,/infra --consent
46
- vault-go context-chain set --workspace /worktree --worktree-parent --consent
47
- vault-go context-chain status
48
- vault-go context-chain clear --workspace /app
49
- ```
50
-
51
- SessionStart e `vault_go_session_start_context` passam a consultar o projeto primário e os vínculos configurados para aquele workspace. São no máximo cinco projetos, sempre descobertos na lista autenticada da conta e comparados por caminho exato. Projetos inexistentes ou marcados privados são omitidos; a leitura nunca cria projetos. O pai de worktree é resolvido pelo `.git`/`commondir`, sem executar comandos Git, e requer consentimento explícito.
52
-
53
- `contextItems` e `contextMaxChars` são orçamentos totais compartilhados entre os projetos, incluindo os pequenos cabeçalhos que identificam cada projeto. Os limites de caracteres e itens não são multiplicados por projeto. Vínculos vivem em `context-chains.json`, com permissão privada e escopo da conta. PreToolUse permanece restrito ao projeto/arquivo em uso.
54
-
55
- Isto fornece contexto multi-project em cadeia explícita. Não reproduz o renderer visual/token analytics do claude-mem nem escreve `AGENTS.md` automaticamente. O filtro semântico de memórias e isolamento do tenant continuam pertencendo à API Vault autenticada.
56
-
57
- ## Ferramentas MCP
58
-
59
- | Ferramenta | Operação |
60
- | --- | --- |
61
- | `vault_go_transcripts_status` | Consentimento, alvos, última leitura e erro sanitizado |
62
- | `vault_go_transcripts_configure` | Ativar/desativar; exige `consent=true` para ativar |
63
- | `vault_go_transcripts_poll` | Processar um lote dos alvos já habilitados |
64
- | `vault_go_context_chain` | Consultar vínculos da conta |
65
- | `vault_go_context_chain_configure` | Definir/remover raízes e pai de worktree consentidos |
66
-
67
- ## Evidência de implementação
68
-
69
- A descoberta upstream usou `/tmp/claude-mem-parity-20260919`, especialmente `src/services/transcripts/{processor,config,types}.ts`, `tests/transcripts/processor-codex-context.test.ts`, `tests/transcripts/watcher-start-at-end.test.ts` e o relatório `/tmp/claude-mem-parity-scan.md`. A arquitetura de watcher/runtime foi portada funcionalmente para a fila e a API Vault, sem executar scripts upstream.
70
-
71
- Foi consultada somente a estrutura de três arquivos locais por host (tipos e nomes de campos conhecidos, sem conteúdo dos prompts) para confirmar `custom_tool_call/output`, fases `commentary` e metadados Claude/Codex. Fixtures sintéticas em `src/transcript-watchers.test.ts` reproduzem esses formatos, com HTTP local, subprocesso CLI e runtime staged isolado. `src/context-chain.test.ts` verifica consentimento, isolamento, privacidade, limites totais, worktree e integração do hook.
72
-
73
- A revisão multimodelo foi substituída por revisão manual porque as variáveis de acesso ao gateway LiteLLM não estão disponíveis neste ambiente; nenhum alias foi chamado ou classificado como órfão sem consulta. A revisão manual conferiu fronteiras de conta/consentimento, parser, checkpoints, exclusão mútua, limites, integração e pacote. Nenhum watcher foi ativado na conta real e o worker instalado não foi alterado por estes testes.
74
-
75
- Validação em 2026-09-20, sobre a base `8f08e19341eed95164ee9a77cf178486adeddb0f`: `bun run build` e `bun test src` passaram (169 testes, 1229 assertions). `npm pack --dry-run --json` contém os 12 arquivos `.js`/`.d.ts` novos e esta documentação, sem arquivos de teste. `git diff --check` passou. Veredito manual: aprovado com os limites operacionais declarados acima.