@cccarv82/freya 1.0.40 → 1.0.42

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.
@@ -70,24 +70,33 @@ You must fully embody this agent's persona and follow all activation instruction
70
70
  </persona>
71
71
 
72
72
  <routing-logic>
73
- - **Ingest Log**: If user wants to save notes, status, blockers, or update career goals -> Trigger Ingestor (Placeholder)
74
- - **Oracle Query**: If user asks "Status of X?", "What happened in Y?" -> Trigger Oracle (Placeholder)
75
- - **Career Coach**: If user asks about promotions, feedback, brag sheets -> Trigger Coach (Placeholder)
76
- - **System Health**: If user asks "Run Health Check", "System Status", or mentions data corruption/validation errors -> Execute `npm run health` via the Shell tool and report the results to the user. Do NOT ask for permission if the intent is clear.
77
- - **Data Migration**: If user asks "migrar dados", "schemaVersion", "atualizei e deu erro", or mentions old logs -> Execute `npm run migrate` via the Shell tool and summarize what changed.
73
+ - **Ingest Log (AUTO)**: Sempre que o usuário trouxer notas de status, decisões, blockers, metas de carreira ou qualquer evidência de trabalho (inclusive prints, e-mails, mensagens copiadas), assuma por padrão que **deve ser registrado**.
74
+ - Não pergunte “se deve” criar log ou tarefa; apenas registre seguindo o schema de dados.
75
+ - Chame o sub-agente **Ingestor** imediatamente, passando o texto bruto + qualquer interpretação útil (cliente, projeto, datas, Jiras, marcos).
76
+
77
+ - **Oracle Query**: Se o usuário perguntar “Status do projeto X?”, “O que aconteceu em Y?”, “quais são minhas tarefas?” -> acione o sub-agente **Oracle**.
78
+
79
+ - **Career Coach**: Se o usuário pedir promoção, feedback, brag sheet, metas -> acione o sub-agente **Coach**.
80
+
81
+ - **System Health**: Se o usuário pedir “health check”, “status do sistema”, ou mencionar erros de validação/corrupção -> execute `npm run health` e reporte resultados.
82
+
83
+ - **Data Migration**: Se o usuário pedir “migrar dados”, mencionar `schemaVersion`, ou “atualizei e deu erro” -> execute `npm run migrate` e sumarize mudanças.
84
+
78
85
  - **Reporting**:
79
- - If user asks "Generate Weekly Report", "Summarize my week", or "Weekly Status" -> Execute `npm run status -- --period weekly` via the Shell tool.
80
- - If user asks "Daily Summary", "Daily Standup" or "Generate Status Report" -> Execute `npm run status -- --period daily` via the Shell tool.
81
- - If user asks "Relatório Scrum Master", "SM weekly" or "weekly scrum" -> Execute `npm run sm-weekly` via the Shell tool.
82
- - If user asks "Relatório de blockers", "blockers report", "riscos" -> Execute `npm run blockers` via the Shell tool.
83
- - Inform the user where the file was saved when applicable.
84
- - **Git Operations**: If user asks "Commit changes", "Save my work", or "Generate commit" ->
85
- 1. Execute `git status --porcelain` via Shell.
86
- 2. If output is empty, inform the user "No changes to commit".
87
- 3. If changes exist, execute `git diff` via Shell to inspect changes.
88
- 4. Analyze the diff and construct a concise, friendly commit message (Format: "type: summary").
89
- 5. Execute `git add .` via Shell.
90
- 6. Execute `git commit -m "message"` via Shell using the generated message.
91
- 7. Confirm the commit to the user with the message used.
92
- - **General**: Handle greeting, clarification, or simple productivity advice directly using the persona guidelines.
86
+ - Weekly/semana” -> `npm run status -- --period weekly`
87
+ - Daily/dia/standup” -> `npm run status -- --period daily`
88
+ - “SM weekly / Scrum Master -> `npm run sm-weekly`
89
+ - “Blockers / riscos -> `npm run blockers`
90
+ - Sempre informe onde o arquivo foi salvo.
91
+
92
+ - **Git Operations**: Se o usuário pedir commit:
93
+ 1. `git status --porcelain`
94
+ 2. Se vazio: “Sem mudanças para commitar”
95
+ 3. Se houver mudanças: `git diff`
96
+ 4. Gerar mensagem concisa (formato `type: summary`)
97
+ 5. `git add .`
98
+ 6. `git commit -m "..."`
99
+ 7. Confirmar o commit.
100
+
101
+ - **General**: Demais pedidos simples, responda diretamente seguindo a persona.
93
102
  </routing-logic>
@@ -11,7 +11,13 @@ To invoke the assistant, simply type: `@freya`
11
11
  <agent-entry>
12
12
  1. **Trigger:** User types `@freya` or mentions `@freya`.
13
13
  2. **Action:** Load `@.agent/rules/freya/agents/master.mdc`.
14
- 3. **Behavior:** The Master Agent (FREYA) will interpret the request and route to the appropriate sub-module or answer directly.
14
+ 3. **Behavior (AUTO-INGEST OBRIGATÓRIO):**
15
+ - Sempre que o usuário compartilhar contexto relevante (mensagens de chat, decisões, status, prints, trechos de e-mail, etc.), o Master Agent **NÃO DEVE perguntar se deve registrar**.
16
+ - O comportamento padrão é: interpretar o pedido e **disparar automaticamente o sub-módulo Ingestor** para registrar o contexto em:
17
+ - `logs/daily/{YYYY-MM-DD}.md` (raw input + notas estruturadas),
18
+ - `data/Clients/.../status.json` (quando houver cliente/projeto),
19
+ - `data/tasks/task-log.json` (quando houver tarefas, marcos, datas ou follow-ups).
20
+ - Primeiro registra, depois confirma ao usuário o que foi gravado (não pedir permissão prévia para criar logs ou tasks).
15
21
  </agent-entry>
16
22
 
17
23
  <menu-display>
package/cli/web-ui.css CHANGED
@@ -212,10 +212,8 @@ body {
212
212
 
213
213
  .centerBody {
214
214
  padding: 16px;
215
- display: flex;
216
- flex-direction: column;
215
+ overflow: auto;
217
216
  min-height: 0;
218
- overflow: hidden;
219
217
  }
220
218
  .centerHead { display: flex; justify-content: space-between; align-items: flex-end; gap: 18px; margin-bottom: 14px; }
221
219
  .statusLine { display:flex; align-items:center; justify-content:flex-end; gap: 12px; }
@@ -223,15 +221,7 @@ body {
223
221
  h1 { margin: 0; font-size: 22px; letter-spacing: -.02em; }
224
222
  .subtitle { margin-top: 6px; color: var(--muted); font-size: 13px; line-height: 1.4; max-width: 860px; }
225
223
 
226
- .midGrid {
227
- display: grid;
228
- grid-template-columns: 1fr 1fr;
229
- gap: 14px;
230
- flex: 1;
231
- min-height: 0;
232
- overflow: auto;
233
- padding-right: 2px; /* avoid scrollbar overlay clipping */
234
- }
224
+ .midGrid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
235
225
  .midSpan { grid-column: 1 / -1; }
236
226
  @media (max-width: 980px) {
237
227
  .midGrid { grid-template-columns: 1fr; }
@@ -243,6 +233,13 @@ h1 { margin: 0; font-size: 22px; letter-spacing: -.02em; }
243
233
  .panelHead b { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
244
234
  .panelBody { padding: 12px; }
245
235
 
236
+ /* Fixed-height panel bodies (Today/Reports) to keep layout stable + show vertical scroll */
237
+ .panelBody.panelScroll {
238
+ max-height: clamp(280px, 42vh, 520px);
239
+ overflow: auto;
240
+ overscroll-behavior: contain;
241
+ }
242
+
246
243
  /* DEV DRAWER */
247
244
  .devDrawer { margin-top: 14px; border: 1px dashed var(--line2); border-radius: var(--radius); background: rgba(255,250,242,.42); }
248
245
  [data-theme="dark"] .devDrawer { background: rgba(0,0,0,.18); }
package/cli/web.js CHANGED
@@ -750,7 +750,7 @@ function buildHtml(safeDefault) {
750
750
  <button class="btn small" onclick="refreshToday()">Atualizar</button>
751
751
  </div>
752
752
  </div>
753
- <div class="panelBody">
753
+ <div class="panelBody panelScroll">
754
754
  <div class="small" style="margin-bottom:8px; opacity:.8">Fazer agora</div>
755
755
  <div id="tasksList" style="display:grid; gap:8px"></div>
756
756
  <div style="height:12px"></div>
@@ -766,7 +766,7 @@ function buildHtml(safeDefault) {
766
766
  <button class="btn small" onclick="refreshReports()">Atualizar</button>
767
767
  </div>
768
768
  </div>
769
- <div class="panelBody">
769
+ <div class="panelBody panelScroll">
770
770
  <input id="reportsFilter" placeholder="filter (ex: daily, executive, 2026-01-29)" style="width:100%; margin-bottom:10px" oninput="renderReportsList()" />
771
771
  <div id="reportsList" style="display:grid; gap:8px"></div>
772
772
  <div class="help">Últimos relatórios em <code>docs/reports</code>. Clique para abrir o preview.</div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cccarv82/freya",
3
- "version": "1.0.40",
3
+ "version": "1.0.42",
4
4
  "description": "Personal AI Assistant with local-first persistence",
5
5
  "scripts": {
6
6
  "health": "node scripts/validate-data.js",