Files
boc/intelligence/purge3-scripts-services-resultat.md
T
Bernt bae705aa97 ARCHITECTURE: NFC roadmap, edge AI, audit logging
- Add NFC ePassport roadmap (ICAO 9303, eIDAS)
- Add TensorFlow.js edge face detection (BlazeFace)
- Add structured audit logger (GDPR-compliant)
- Risk scoring support

Part of KYC Apple Native UX v1.1.0
2026-06-29 16:24:48 +00:00

273 lines
12 KiB
Markdown

# PURGE-3: Scripts & Services — Resultatrapport
**Utförd:** 2026-06-06
**Utförare:** Subagent (PURGE-3)
**Backup:** `/opt/amos/_purge3_backup_20260606_222857/` (scripts/ + services/)
**Beslut:** Leon = SIMULERING (Erik 2026-06-06) — radera som om aldrig funnits.
---
## DEL A — scripts/ (Direkt raderade)
Alla ändringar: backup → ändra → `node --check`.
### A-1: `scripts/heartbeat-runner.mjs` ✅ SYNTAX OK
| Åtgärd | Detalj |
|--------|--------|
| **Raderat** | `leon: env.TELEGRAM_LEON_CHAT_ID \|\| ''` ur `tgIds`-map (rad 85) |
**Effekt:** Leon tas aldrig emot ett Telegram-meddelande från heartbeat-runner. Inga andra agenter påverkas. Cron-jobbet fortsätter att köra utan fel.
---
### A-2: `scripts/homo-deus-daily-brief.mjs` ✅ SYNTAX OK
| Åtgärd | Detalj |
|--------|--------|
| **Raderat** | `buildVincentoBrief()` — hela async-funktionen (ca 35 rader) |
| **Raderat** | Vincento ur header-kommentaren (agent-lista) |
| **Raderat** | Vincento ur `briefs`-arrayen i `main()` |
| **Uppdaterat** | Förväntad brief-count: `5 → 4` (if-guard + logg-text) |
**Effekt:** Dagliga briefs genereras nu för 4 agenter (bernt, sven, kjell, rufus). Vincento-brief genereras aldrig. Script kraschar ej — `node --check` OK.
---
### A-3: `scripts/server.mjs` ✅ SYNTAX OK
| Åtgärd | Detalj |
|--------|--------|
| **Raderat** | `'leon': 'SOUL_LEON.md'` ur SOUL-file-map i `getSoulForEmail()` |
| **Raderat** | Leon-persona-injektion i `getPersonaFromRequest()` (email-contains-leon) |
| **Raderat** | `'leon':'cmo','leon@hypbit.com':'cmo','leonrusso':'cmo','operations':'cmo'` ur `/amos/briefing/:role` ALIASES-map |
| **Raderat** | `Leon Russo De Cerame` ur `TEAM`-array i `/api/team-activity` |
| **Raderat** | `LEON: [...]` hela notification-butiken (3 Leon-specifika notifikationer på italienska) |
| **Raderat** | Hela `app.post('/api/chat/ops', ...)` endpointen — Leon Operations chat-router (ca 60 rader) |
| **Raderat** | Leon CEO Ops `if`-block inuti den generella chat-routern |
| **Raderat** | `Leon Russo De Cerame (CEO Operations)` ur team-lista i system prompt |
| **Raderat** | `/cmo/chat` proxy-route (pekade till `/api/chat/ops` som nu är borttagen) — ersatt med tombstone-kommentar |
**⚠️ OBS — `buildVincentoBrief` beroenden:**
`buildVincentoBrief()` hade inga externa beroenden utanför filen. Den anropade `fetch()` mot `/api/system-health` och filtrerade Gitea issues — inga side-effects. Borttagen utan risk.
**⚠️ OBS — `/cmo/chat` proxy:**
`/cmo/chat` routade till `/api/chat/ops` som nu är borttagen. Proxyn är ersatt med en PURGE-3 tombstone-kommentar. CMO-funktionalitet finns inte längre i servern. Om en CMO-role behövs framöver: skapa ny endpoint kopplad till bernt-kontexten.
---
### A-4: `scripts/generate-training-data.mjs` ✅ SYNTAX OK
| Åtgärd | Detalj |
|--------|--------|
| **Raderat** | `vincento: { name: 'Vincento', system: '...', domains: { crm_pipeline: [...], marketing_analysis: [...] } }` — hela vincento-persona-blocket ur `AGENT_PERSONAS` |
| **Uppdaterat** | Träningsfråga rad 22: "Sven, Kjell och Vincento" → "Sven, Kjell och Rufus" |
---
### A-5: `scripts/generate-dpo-vw-homodeus.mjs` ✅ SYNTAX OK
| Åtgärd | Detalj |
|--------|--------|
| **Ej ändrat** | 8 rader med `VINCENTO` finns kvar |
**Notering:** De 8 kvarvarande referenserna är inbäddade i DPO training-data strängar (constitutional AI-träningsexempel). De refererar till VINCENTO som ett hypotetiskt scenario i policy-texter, inte som operationell agent. Exemplen testar HOMO DEUS-responsen på konstitutionella utmaningar. Dessa är historiska träningsdata-objekt och inte funktionella refs. Flaggat för Eriks beslut: ta bort DPO-exemplen helt, eller behåll som anonymiserade konstitutionella testfall.
---
### A-6: `scripts/hermes-dpo-pipeline.mjs` ✅ SYNTAX OK
| Åtgärd | Detalj |
|--------|--------|
| **Raderat** | `vincento\|` ur marketing-klassificeraren regex (rad 132) |
---
### A-7: `scripts/enrich-neo4j.mjs` ✅ SYNTAX OK
| Åtgärd | Detalj |
|--------|--------|
| **Raderat** | `{ id: 'person-leon-russo', name: 'Leon Russo De Cerame', score: 78, type: 'person' }` ur `persons`-array |
| **Raderat** | `{ userId: 'person-leon-russo', addOnId: 'operations-intelligence', score: 82 }` ur `addOns`-array |
| **Raderat** | `{ userId: 'person-leon-russo', email: 'leon@wavult.com', score: 8, tier: 'enterprise' }` ur `churnData`-array |
| **Raderat** | `{ personId: 'person-leon-russo', seqId: 'seq-retention-high', step: 1, status: 'active' }` ur `enrollments`-array |
---
### A-8: `scripts/authority-graph.mjs` ✅ SYNTAX OK
| Åtgärd | Detalj |
|--------|--------|
| **Raderat** | `'vincento'` ur `ai_agent`-heuristik-arrayen |
---
### A-9: `scripts/cor-retroactive-link.mjs` ✅ SYNTAX OK
| Åtgärd | Detalj |
|--------|--------|
| **Raderat** | `{ id: 'EMP-004', name: 'Leon Magnusson', department: 'Operations', email: 'leon@wavult.com' }` ur `EMPLOYEES`-array |
**Notering:** "Leon Magnusson" var testdata för Leon Russo De Cerame under annat namn (EMP-004). Inte en annan person — bygginventariet pekade ut `leon@wavult.com` = borttagen.
---
### A-10: `scripts/dashboard-cleanup.mjs` ✅ SYNTAX OK
| Åtgärd | Detalj |
|--------|--------|
| **Raderat** | `'/leon'` ur route-listan för cleanup |
---
### A-11: `scripts/competitor-benchmark.mjs` ⚠️ PRE-EXISTING SYNTAX CORRUPTION
| Åtgärd | Detalj |
|--------|--------|
| **Raderat** | `{ id: 'w6', cat: 'Wavult', q: 'Leon Russo är säljchef på Wavult?', kw: ['nej', 'inte'] }` — Leon benchmark-fråga |
**⚠️ KRITISK FLAGGA — Pre-existing corruption:**
Filen `competitor-benchmark.mjs` var REDAN TRASIG **innan** detta purge-kördes. Backupen (tagen innan ändringarna) är också trasig (`BACKUP FAIL: chr(39)` substitutions). Filen innehåller `chr(39)AMOS-v5-a10gchr(39)` istället för `'AMOS-v5-a10g'` — ett Python `repr()`-artefakt från en tidigare botoperation. **Leon-raden är borttagen** (leon-ändringen genomförd), men filen är inte körbar oberoende av detta purge. `node --check` ger `SyntaxError` på rad 333.
**Rekommendation till Erik:** Återställ `competitor-benchmark.mjs` från git eller en äldre backup. Filen behöver manuell reparation av `chr(39)`-substitutionerna.
---
### A-12: `scripts/ci/validate-urls.sh` ✅ (Shell — ej node --check)
| Åtgärd | Detalj |
|--------|--------|
| **Raderat** | `\|leon\|` ur URL-valideringsregex (rad 79) |
---
## DEL B — services/ JS-ändringar
### B-1: `services/kill-switch/src/index.mjs` ✅ SYNTAX OK
| Åtgärd | Detalj |
|--------|--------|
| **Raderat** | `'leon@wavult.com'` ur `OPERATORS`-set (kill-switch autentisering) |
**Effekt:** Leon kan inte längre aktivera kill-switch. Operatörer är nu: `erik@wavult.com`, `dennis@wavult.com`, `system:emergency`.
---
### B-2: `services/amos-core/server.mjs` ✅ SYNTAX OK
| Åtgärd | Detalj |
|--------|--------|
| **Raderat** | `'vincento'` ur `validAgents`-array för `/api/homo-deus/knowledge/:agent` endpoint |
| **Uppdaterat** | Kommentar på `venture-builder` mount-rad: `Vincento+Rufus notify``Rufus notify` |
**Effekt:** `/api/homo-deus/knowledge/vincento` returnerar nu 404. Inga andra agenter påverkas.
---
### B-3: `services/ouroboros-knowledge-graph/server.mjs` ✅ SYNTAX OK
| Åtgärd | Detalj |
|--------|--------|
| **Raderat** | `{ type: 'person', name: 'Leon Russo', properties: { role: 'CEO Operations/CMO', email: 'leon@wavult.com' } }` ur seed-entiteter |
| **Raderat** | `{ from: 'Leon Russo', type: 'reports_to', to: 'Erik Svensson' }` ur seed-relationer |
| **Raderat** | `{ from: 'Leon Russo', type: 'part_of', to: 'Wavult Operations' }` ur seed-relationer |
**Effekt:** Vid nästa DB-initialisering (tom DB) skapas ingen Leon-nod. Befintlig DB påverkas ej — seed körs bara en gång vid tom databas.
---
## DEL B — INVENTERING Rust/SQL (Rör EJ)
### ⚠️ RUST — Kräver recompile + redeploy
#### `services/ouroboros-mes/src/scheduler.rs`
```rust
// Rad 18 i available_agents():
AgentCapability {
id: "vincento-strategy-l2",
layer: 2,
thermal_score: 0.5,
capabilities: vec!["strategic_planning", "market_scan", "competitive_analysis", "scenario_modeling", "strategy_synthesis", "executive_summary"]
}
```
#### `services/ouroboros-mes/src/models.rs`
```rust
// Rad 136 i GoalTypeSpec-match:
"strategic_planning" => GoalTypeSpec {
required_layer: 2,
assigned_agent: "vincento-strategy-l2",
...
}
```
**Varför ej rört:** Rust kräver `cargo build --release` + ny Docker-image + ECS/EKS redeploy. Ändring utan recompile = ingen effekt. Bryter inget som körs (vincento-strategy-l2 är en agent-ID-sträng — om ingen agent svarar, timeout). **Inga aktiva Rust-tjänster skickar tasks till vincento-strategy-l2 live.**
**Rekommendation till Erik:**
- Byt `vincento-strategy-l2``bernt-strategy-l2` (eller `sven-strategy-l2`)
- Uppdatera `assigned_agent` i `models.rs` + ta bort capability-entry i `scheduler.rs`
- Kör `cargo build --release` + redeploy `ouroboros-mes`
---
### ⚠️ SQL-migrationer — Rör aldrig (historisk migreringskedja)
#### `services/ouroboros-recovery/migrations/001_init.sql`
```sql
-- Rad 63: seed-data
INSERT INTO ou_recovery_agent_status (agent_id, status) VALUES
...('vincento', 'healthy')...
```
#### `services/ouroboros-thermal/migrations/001_init.sql`
```sql
-- Rad 66: thermal baseline seed
INSERT INTO ou_thermal_baselines (agent_id, baseline_thermal, baseline_entropy, baseline_latency)
VALUES ...('vincento', 0.2, 0.1, 110.0)...
```
**Varför ej rört:** SQL-migrations är en historisk kedja. Att ändra `001_init.sql` retroaktivt bryter migration-historiken (checksums, Flyway/Liquibase-validering). Vincento i seed-data skapar en vincento-rad vid ny DB-init — **funktionellt ofarligt** (ingen agent svarar på den raden, den orsakar inga aktiva jobb).
**Rekommendation till Erik:**
- Skapa en ny migration `002_remove_vincento.sql`:
```sql
DELETE FROM ou_recovery_agent_status WHERE agent_id = 'vincento';
DELETE FROM ou_thermal_baselines WHERE agent_id = 'vincento';
```
- Kör migration mot befintlig + ny DB
---
## Sammanfattning
### Syntax-status
| Fil | Status | Notering |
|-----|--------|----------|
| `scripts/heartbeat-runner.mjs` | ✅ OK | |
| `scripts/homo-deus-daily-brief.mjs` | ✅ OK | |
| `scripts/server.mjs` | ✅ OK | |
| `scripts/generate-training-data.mjs` | ✅ OK | |
| `scripts/generate-dpo-vw-homodeus.mjs` | ✅ OK | 8 DPO-text-refs kvar (flaggat) |
| `scripts/hermes-dpo-pipeline.mjs` | ✅ OK | |
| `scripts/enrich-neo4j.mjs` | ✅ OK | |
| `scripts/authority-graph.mjs` | ✅ OK | |
| `scripts/cor-retroactive-link.mjs` | ✅ OK | |
| `scripts/dashboard-cleanup.mjs` | ✅ OK | |
| `scripts/competitor-benchmark.mjs` | ⚠️ PRE-EXISTING | Trasig innan purge — kräver git-återställning |
| `scripts/ci/validate-urls.sh` | ✅ OK | Shell — syntaxcheck ej tillämpligt |
| `services/kill-switch/src/index.mjs` | ✅ OK | |
| `services/amos-core/server.mjs` | ✅ OK | |
| `services/ouroboros-knowledge-graph/server.mjs` | ✅ OK | |
| `services/ouroboros-mes/src/scheduler.rs` | ⚠️ INVENTERAD | Ej rört — kräver recompile |
| `services/ouroboros-mes/src/models.rs` | ⚠️ INVENTERAD | Ej rört — kräver recompile |
| `services/ouroboros-recovery/migrations/001_init.sql` | ⚠️ INVENTERAD | Ej rört — SQL-migration-kedja |
| `services/ouroboros-thermal/migrations/001_init.sql` | ⚠️ INVENTERAD | Ej rört — SQL-migration-kedja |
### Kritisk verifiering: heartbeat-runner.mjs
`heartbeat-runner.mjs` körs dagligen via cron. Verifiering:
- `node --check` ✅ OK
- `leon` borttagen ur `tgIds` — ingen tom chatId-lookup som kan leda till onödiga API-anrop
- `buildVincentoBrief` anropas EJ längre (borttagen i homo-deus-daily-brief.mjs)
- Script kraschar INTE
### Restart
**Restart EJ utförd** (per instruktion — Bernt koordinerar restart).
Berörda services som behöver restart för att effekterna ska slå igenom live:
- `scripts/server.mjs` (express-servern)
- `services/kill-switch/src/index.mjs`
- `services/amos-core/server.mjs`
- `services/ouroboros-knowledge-graph/server.mjs`
### Backup-plats
Alla originalfiler: `/opt/amos/_purge3_backup_20260606_222857/`
---
*Rapport genererad: 2026-06-06. PURGE-3 subagent körning klar.*