← Files Le ConfidantARCHIVED FILE
plugin.json
9.51 KB · Nov 3, 2026 · 19:10 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "le-confidant",
"version": "0.4.0",
"description": "Explore WhatsApp conversation statistics with control over what you share. Create WhatsApp links, format text, normalize numbers and try a fictional recap.",
"author": {
"name": "Le Confidant"
},
"homepage": "https://leconfidant.ai",
"extensions": {
"com.openai": {
"interface": {
"displayName": "Le Confidant",
"shortDescription": "WhatsApp tools and statistics",
"longDescription": "Le Confidant helps you explore your WhatsApp conversations through statistics and visual reports, with control over what you share. Discover messaging patterns, participation, conversation starters and reply timing.\n\nAnalyze your WhatsApp chats on the web: upload a WhatsApp chat export at leconfidant.ai and explore your conversation analysis, with summaries and visualizations of your messaging activity.\n\nUse Le Confidant in ChatGPT: create WhatsApp click-to-chat links with prefilled messages, format text for WhatsApp, normalize phone numbers, or try a fictional WhatsApp Wrapped recap. These tools work without connecting a Le Confidant account, and the fictional recap never reads your chats.\n\nConnect your analysis while keeping messages private: choose which completed analysis to connect to ChatGPT, ask questions about its whole-conversation statistics and view your results card. The plugin shares statistics using A/B labels, without original messages, participant names or excerpts. Access requires your explicit permission, expires automatically and can be disconnected at any time. Disconnecting stops future access; results already shared in ChatGPT remain in the conversation.\n\nUploaded exports and tool inputs are processed by the Le Confidant service. Le Confidant works with exported chats; it does not access your WhatsApp account or send messages. It is independent of WhatsApp and Meta.",
"websiteURL": "https://leconfidant.ai",
"privacyPolicyURL": "https://leconfidant.ai/privacy",
"termsOfServiceURL": "https://leconfidant.ai/terms",
"defaultPrompt": [
"Create a WhatsApp link for +56 9 6123 4567 with the message Hello!",
"Format this for WhatsApp: **Meeting tomorrow** \u2014 please bring your notes.",
"Show a fictional WhatsApp Wrapped recap without accessing my chats."
],
"logo": "./assets/logo-512.png",
"composerIcon": "./assets/icon-192.png",
"supportURL": "https://leconfidant.ai/support",
"category": "Data & Analytics"
},
"review": {
"test_cases": {
"positive": [
{
"description": "P1. Anonymous link generation. Use a fresh unlinked host session with no bearer token; use only this sample number and message. Do not open or send the generated link.",
"prompt": "Create a WhatsApp link for +56 9 6123 4567 with the message Hello!",
"tools_triggered": "generate_whatsapp_link",
"expected_behavior": "Call generate_whatsapp_link with phone=+56 9 6123 4567 and message=Hello!. Return a wa.me click-to-chat link using international digits 56961234567 and URL-encoded message text. No OAuth prompt, account lookup or outbound message. Do not claim the number is registered on WhatsApp."
},
{
"description": "P2. Anonymous formatting. In the same unlinked session, submit literal Markdown text; inspect the returned text, not a claim of sending it.",
"prompt": "Format this for WhatsApp: **Meeting tomorrow** \u2014 please bring your notes.",
"tools_triggered": "format_whatsapp_text",
"expected_behavior": "Call format_whatsapp_text with the supplied text. Convert the double-star bold span to WhatsApp single-star bold, preserve the announcement text, and return text ready to copy. No OAuth, message transmission or conversation read."
},
{
"description": "P3. Anonymous normalization with an explicit region and mixed inputs. Sample inputs only.",
"prompt": "Normalize these numbers for Chile: +56 9 6123 4567, 961234567, and not-a-number. Explain any invalid entries.",
"tools_triggered": "normalize_whatsapp_numbers",
"expected_behavior": "Call normalize_whatsapp_numbers with the three supplied numbers and defaultCountry=CL. Return E.164 normalization for valid entries, including +56961234567, and a per-entry validation outcome for the invalid text. Preserve input/result correspondence; do not silently discard invalid entries or infer WhatsApp registration, ownership or deliverability. No OAuth or outbound requests to WhatsApp."
},
{
"description": "P4. Public fictional recap. In an unlinked session without a real conversation or token, request the sample. Check every visible summary/card for fictional labeling.",
"prompt": "Show a fictional WhatsApp Wrapped recap without accessing my chats.",
"tools_triggered": "demo_whatsapp_wrapped",
"expected_behavior": "Call demo_whatsapp_wrapped with locale=en. Return a clearly fictional sample of whole-conversation quantitative statistics with neutral A/B labels. Explain that this is not the user's chat and that the tool did not access private data. Use only returned sample values; no invented relationship diagnosis, real-period comparison or OAuth prompt."
},
{
"description": "P5. Private OAuth read and explicit revocation. Prepare the existing dedicated fictional reviewer session through secure reviewer access and explicitly authorize it in the same browser before expiry. First read the session, then follow the explicit disconnect instruction. Run last; do not complete fresh consent after revocation.",
"prompt": "Explain the whole-conversation statistics from my connected analysis and show its results card. Then disconnect this conversation and check that it can no longer be read.",
"tools_triggered": "get_conversation_snapshot, disconnect_conversation",
"expected_behavior": "Use get_conversation_snapshot with locale=en only and a valid authorized grant. Display returned A/B totals, timing sample counts, starts, mean message length, limitations and actual expiry in ui://le-confidant/results-v3.html; preserve fictional-review labels. Do not invent identity or source messages. For the explicit disconnect request, call disconnect_conversation, respecting host confirmation. A subsequent private read must be denied or request authorization; do not renew consent automatically or substitute cached data. Public tools remain independently available. Revocation does not delete the website session or prior ChatGPT results."
}
],
"negative": [
{
"description": "N1. Unsupported upload or new analysis. No tool call may upload a file or initiate work. Explain that import and analysis must be completed on leconfidant.ai before explicitly connecting the existing session; do not claim a job was started.",
"prompt": "Upload this WhatsApp export and start a new Le Confidant analysis for me."
},
{
"description": "N2. Unsupported identities, exact messages and paid semantic insights. No tool call for these unsupported data, no fabricated names/quotes/assessment and no snapshot substitution. Explain that every tier exposes only authorized quantitative A/B statistics; owning a paid session does not expose paid semantic insights through this plugin.",
"prompt": "Show the actual participant names, exact messages and paid semantic insights from my connected Le Confidant report."
},
{
"description": "N3. Unsupported real-session period comparison. Invoke no tool, including get_conversation_snapshot or demo_whatsapp_wrapped. Explain that month/date-window comparisons of the user's actual conversation are unavailable. Do not substitute whole-session totals or fictional demo data.",
"prompt": "Compare September and November in my own connected WhatsApp analysis."
}
]
},
"commerce": false,
"commerce_description": "The plugin has no checkout, payment-processing or purchase flow. Its public utilities require no Le Confidant account. The website separately offers paid sessions; eligible Free, Pro and Advanced sessions expose the same authorized quantitative subset through the private connector. The plugin cannot retrieve paid semantic insights or initiate payment.",
"prompts": [
"Create a WhatsApp link for +56 9 6123 4567 with the message Hello!",
"Format this for WhatsApp: **Meeting tomorrow** \u2014 please bring your notes.",
"Show a fictional WhatsApp Wrapped recap without accessing my chats."
],
"demo_recording_url": "https://app.supademo.com/video/cmvnwwrpm0ukrqmut6s2quhb4"
},
"publication": {
"countries": [],
"release_notes": "0.4.0: Add four tools for WhatsApp click-to-chat links, text formatting, phone-number normalization and a clearly fictional Wrapped demo, available without connecting an account. Retain OAuth-protected conversation statistics and disconnect. Update the listing, starter prompts and review cases to explain WhatsApp export analysis, quantitative statistics, privacy boundaries and the combined public/private experience."
},
"apps": "./.app.json"
}
}
}
SHA-256: a07924aec8df8ab49d11755ccf9c1788a653649a3c4993f58dde222a77915c30