diff --git a/api/wevia-apple-intents.php b/api/wevia-apple-intents.php new file mode 100644 index 000000000..48824a754 --- /dev/null +++ b/api/wevia-apple-intents.php @@ -0,0 +1,105 @@ + $n) if ($n) $lines[] = " · " . $t . ": " . $n; + $lines[] = "Tasks pending: " . ($s["tasks_pending"] ?? 0); + $lines[] = "Alertes P0: " . ($s["alerts"] ?? 0); + $lines[] = "Opportunities: " . ($s["opportunities"] ?? 0); + $lines[] = "\nUI: https://weval-consulting.com/wevia-apple.html"; + return implode("\n", $lines); + } + } + // apple recommendations + if (preg_match('/\b(apple|iphone)\s*(reco|recommand)/iu', $prompt) || preg_match('/recommand.*(apple|iphone)/iu', $prompt)) { + $r = @json_decode(@file_get_contents("http://127.0.0.1/api/wevia-apple-ingest.php?action=recommendations"), true); + if ($r) { + $lines = ["💡 Top recommandations WEVIA Apple (" . ($r["total"] ?? 0) . " total)"]; + foreach (array_slice($r["recommendations"] ?? [], 0, 10) as $i => $reco) { + $lines[] = ($i+1) . ". [" . $reco["priority"] . "] " . $reco["label"]; + $lines[] = " → " . $reco["action"]; + } + if (empty($r["recommendations"])) $lines[] = "(Aucune reco — ingère du contenu d'abord)"; + return implode("\n", $lines); + } + } + // apple alerts + if (preg_match('/\b(apple|iphone)\s*(alert|urgent|urgence)/iu', $prompt)) { + $a = @json_decode(@file_get_contents("http://127.0.0.1/api/wevia-apple-ingest.php?action=alerts"), true); + if ($a) { + $lines = ["🚨 Alertes WEVIA Apple (" . count($a["alerts"] ?? []) . ")"]; + foreach ($a["alerts"] ?? [] as $al) { + $lines[] = "- " . ($al["label"] ?? "") . " → " . ($al["action"] ?? ""); + } + if (empty($a["alerts"])) $lines[] = "Aucune alerte urgente 👍"; + return implode("\n", $lines); + } + } + // apple ingest note + if (preg_match('/^(apple\s*note|ingest\s*note|note\s*apple)\s*:?\s*(.+)/iu', $prompt, $m)) { + $body = trim($m[2]); + if ($body) { + $ch = curl_init("http://127.0.0.1/api/wevia-apple-ingest.php?action=ingest_structured"); + curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER=>1,CURLOPT_POST=>1, + CURLOPT_HTTPHEADER=>["Content-Type: application/json"], + CURLOPT_POSTFIELDS=>json_encode(["type"=>"note","items"=>[["title"=>"WEVIA Master ingest","body"=>$body]]])]); + $rr = curl_exec($ch); curl_close($ch); + $d = @json_decode($rr, true); + return "📝 Note ingérée → ID: " . ($d["ids"][0] ?? "?") . " · Analyse IA en cours (entités + reco)"; + } + } + // apple entities + if (preg_match('/\b(apple|iphone)\s*(entit|entities)/iu', $prompt)) { + $e = @json_decode(@file_get_contents("http://127.0.0.1/api/wevia-apple-ingest.php?action=entities"), true); + if ($e) { + $lines = ["🔎 Entités extraites WEVIA Apple"]; + foreach ($e["entities"] ?? [] as $cat => $list) { + if (!empty($list)) { + $top = array_slice($list, 0, 5); + $vals = array_map(function($x) { return $x["value"] . " (×" . $x["count"] . ")"; }, $top); + $lines[] = $cat . " [" . count($list) . "]: " . implode(", ", $vals); + } + } + return implode("\n", $lines); + } + } + // apple tasks + if (preg_match('/\b(apple|iphone)\s*(task|tache)/iu', $prompt)) { + $t = @json_decode(@file_get_contents("http://127.0.0.1/api/wevia-apple-ingest.php?action=tasks"), true); + if ($t) { + $lines = ["📋 Tasks WEVIA Apple (" . count($t["tasks"] ?? []) . ")"]; + foreach (array_slice($t["tasks"] ?? [], 0, 10) as $task) { + $lines[] = "- [" . ($task["priority"] ?? "") . "] " . ($task["label"] ?? "") . " (" . ($task["status"] ?? "open") . ")"; + } + return implode("\n", $lines); + } + } + // apple setup / iphone setup + if (preg_match('/\b(apple|iphone)\s*(setup|install|config|shortcut)/iu', $prompt)) { + return "📲 WEVIA Apple v3 Setup\n\n" + . "1. Ouvre https://weval-consulting.com/wevia-apple.html sur ton iPhone\n" + . "2. Clique '📲 iPhone Setup' en haut à droite\n" + . "3. Suis les 3 solutions (iPhone Shortcuts / Automation iCloud / Blade MCP)\n\n" + . "Endpoint: https://weval-consulting.com/api/wevia-apple-ingest.php\n" + . "7 types supportés: photos, messages, contacts, calendar, notes, calls, health"; + } + return null; +} + +// Auto-register with the orchestrator if available +$__wa_prompt = $_POST['prompt'] ?? $_POST['message'] ?? $_GET['q'] ?? null; +if ($__wa_prompt && (defined('WEVIA_APPLE_STANDALONE') || strpos($_SERVER['SCRIPT_NAME'] ?? '', 'wevia-apple-intents') !== false)) { + $r = wevia_apple_v3_intents($__wa_prompt); + if ($r !== null) { + header('Content-Type: application/json'); + echo json_encode(["ok"=>true, "response"=>$r, "provider"=>"wevia-apple-v3"]); + exit; + } +} diff --git a/api/wevia-tool-registry.json b/api/wevia-tool-registry.json index 5d07951e1..6d959d934 100644 --- a/api/wevia-tool-registry.json +++ b/api/wevia-tool-registry.json @@ -3480,6 +3480,69 @@ "id": "smart_tips_v84", "kw": "tips.*renouve|tips.*creation.*compte|tips.*cyber|tips.*selenium|tips.*office.*recovery|tips.*opus|tips.*disponibles|quels tips|liste tips", "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-dynamic-resolver.php?q=v82_tips_summary' -H 'Host: weval-consulting.com' 2>&1 | head -c 2500" + }, + { + "id": "apple_status", + "name": "WEVIA Apple v3 status", + "kw_regex": "\b(apple|iphone)\\s*(status|stat|etat|count)\b|combien.*photos?.*apple", + "file": "/api/wevia-apple-intents.php", + "action": "POST_prompt", + "priority": 90, + "desc": "État WEVIA Apple ingestion" + }, + { + "id": "apple_reco", + "name": "WEVIA Apple recommendations", + "kw_regex": "\b(apple|iphone)\\s*(reco|recommand)|recommand.*(apple|iphone)", + "file": "/api/wevia-apple-intents.php", + "action": "POST_prompt", + "priority": 91, + "desc": "Recommandations IA" + }, + { + "id": "apple_alerts", + "name": "WEVIA Apple alerts", + "kw_regex": "\b(apple|iphone)\\s*(alert|urgent|urgence)", + "file": "/api/wevia-apple-intents.php", + "action": "POST_prompt", + "priority": 92, + "desc": "Alertes P0" + }, + { + "id": "apple_ingest_note", + "name": "WEVIA Apple ingest note", + "kw_regex": "^(apple\\s*note|ingest\\s*note|note\\s*apple)\\s*:", + "file": "/api/wevia-apple-intents.php", + "action": "POST_prompt", + "priority": 93, + "desc": "Ingest note to Apple v3" + }, + { + "id": "apple_entities", + "name": "WEVIA Apple entities", + "kw_regex": "\b(apple|iphone)\\s*(entit|entities)", + "file": "/api/wevia-apple-intents.php", + "action": "POST_prompt", + "priority": 94, + "desc": "Entités extraites" + }, + { + "id": "apple_tasks", + "name": "WEVIA Apple tasks", + "kw_regex": "\b(apple|iphone)\\s*(task|tache)", + "file": "/api/wevia-apple-intents.php", + "action": "POST_prompt", + "priority": 95, + "desc": "Tasks pending" + }, + { + "id": "apple_setup", + "name": "WEVIA Apple setup", + "kw_regex": "\b(apple|iphone)\\s*(setup|install|config|shortcut)", + "file": "/api/wevia-apple-intents.php", + "action": "POST_prompt", + "priority": 96, + "desc": "Setup iPhone Shortcuts" } ] } \ No newline at end of file diff --git a/wevia-apple.html b/wevia-apple.html index 81ee43e72..734e8c4c7 100644 --- a/wevia-apple.html +++ b/wevia-apple.html @@ -1,399 +1,618 @@ - + - -WEVIA Apple — Photos Scanner iPhone + iCloud - - - - + + +🍎 WEVIA Apple v3 — iPhone Intelligence Hub -
-
- -
-

WEVIA Apple — Photos Scanner

-
OCR + Gemini 2.5 Flash Vision · HEIC natif · iPhone Shortcuts compatible · Multi-upload + dossiers
+
+ +
+
🍎
+
+

WEVIA Apple v3 — iPhone Intelligence Hub

+
Full ingestion: Photos · Messages · Contacts · Calendar · Notes · Calls · Health → Entity extraction + AI recommendations
+
+
+ v2 + + + +
+
+ +
+ +
+
📊 Overview
+
📸 Photos 0
+
💬 Messages 0
+
👤 Contacts 0
+
📅 Calendar 0
+
📝 Notes 0
+
📞 Calls 0
+
❤️ Health 0
+
💡 Recommandations 0
+
🔎 Entités
+
🚨 Alertes 0
+
+ +
+
+
+

📥 Flux d'ingestion

+ 0 items +
+
+
Charge le contenu de ton iPhone avec le Shortcut ou uploade des photos ci-contre →
-
- ← WTP - WEVIA Master - 📲 iPhone Setup
-
-
Photos scannées
0
-
Projets OSS identifiés
0
Word-boundary strict
-
GitHub URLs
0
Repos mentionnés
-
Top OSS
Projet le plus cité
-
- -
-
-

📱 Upload — photos, dossiers, batch

-
-
🍎
-

Glisse des photos/dossiers OU clique pour choisir

-

JPG · PNG · HEIC natif iPhone · WEBP · GIF · Multi-sélection OK

- - -
- - - +
+
+

📱 Upload rapide

+
+
+
🍎
+
Glisse photos / HEIC / captures
+
JPG · PNG · HEIC · WEBP · PDF · multi
+ +
+
+
0 / 0
+
- -
-
Queue vide ·
-
-
-
- -
-

🍎 Connecter ton iPhone (doctrine honnête)

- Apple bloque l'accès direct à iCloud Photos depuis le web. 3 solutions qui marchent : -
    -
  1. iPhone Shortcut (recommandé, 2 min setup): clique 📲 iPhone Setup ci-dessus pour les étapes détaillées. Une fois installé, sélectionne N photos dans l'app Photos → Partager → Scan WEVIA → tout est scanné automatiquement.
  2. -
  3. Dossier iCloud Drive: dépose tes photos dans un dossier iCloud Drive partagé avec ton Mac. Sur Mac, glisse le dossier ici (bouton 📁 Dossier entier). Le navigateur upload chaque image séquentiellement.
  4. -
  5. Automation iCloud: crée un album iCloud "WEVIA Scan" → Automation iPhone "Quand photo ajoutée à album 'WEVIA Scan' → exécuter raccourci Scan WEVIA". Toutes les nouvelles photos sont scannées automatiquement.
  6. -
- Endpoint: POST /api/wevia-apple-scan.php?action=upload -
-

📚 Historique scans · clique pour drill-down

-
Aucun scan pour le moment.
+

🎯 Top Recommandations

+
+
Pas encore de recommandations.
+
-
+
-