← Files ELEN Story AIARCHIVED FILE
plugin.json
9.4 KB · Nov 3, 2026 · 00:13 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "elen-story-ai",
"version": "1.0.4",
"description": "Read, play and create personalized family storybooks and short animated videos with ELEN Story AI.",
"author": {
"name": "Orhun Kavraz",
"email": "orhunkavraz@elenstoryai.com",
"url": "https://elenstoryai.com"
},
"homepage": "https://elenstoryai.com",
"extensions": {
"com.openai": {
"interface": {
"displayName": "ELEN Story AI",
"shortDescription": "Read and create family stories",
"longDescription": "ELEN Story AI helps families create personalized educational and fun storybooks and short animated cartoons. Discover and play public stories, search your ELEN library, and read or play your own stories in ChatGPT. Connect your ELEN account and approve the permissions and creation formats you want to use. Create an illustrated storybook or a narrated animated video, approximately 45 seconds by default. Generation runs in the background, with request status and completed results available in ChatGPT. The embedded reader offers illustrations, narration, captions, seeking, playback speed and fullscreen. When a story has available language editions, choose narration and caption languages independently. An ELEN account and approval of the requested permissions and creation formats are required for private library access and creation. Generated stories stay private. Review them before family use; publishing and adding stories to Family Playback remain actions inside ELEN.",
"developerName": "Orhun Kavraz",
"category": "Education & Research",
"capabilities": [
"Discover public stories",
"Search owned stories",
"Read and play stories",
"Create private storybooks",
"Create short animated videos"
],
"websiteURL": "https://elenstoryai.com",
"supportURL": "https://elenstoryai.com/contact",
"privacyPolicyURL": "https://elenstoryai.com/privacy",
"termsOfServiceURL": "https://elenstoryai.com/terms",
"defaultPrompt": [
"Show me a bedtime story on ELEN.",
"Find my stories about friendship.",
"Make a bedtime story about a fox learning to share."
],
"brandColor": "#3578B3",
"brandColorDark": "#7EBCF2",
"composerIcon": "./assets/elen-app-icon.png",
"logo": "./assets/elen-app-icon.png"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Discover approved public stories without an ELEN connection. Start a fresh conversation with ELEN selected and no private authorization. Results are live; do not require a particular title. After opening a story, verify the playback controls. If English and French editions are available, use its language menus to choose narration and captions independently; do not assume every discovery result has translations.",
"prompt": "Show me a public bedtime story I can listen to on ELEN.",
"tools_triggered": "list_public_stories, open_public_story",
"expected_behavior": "Call list_public_stories with theme=bedtime and format=storybook, then open_public_story for an ID returned by discovery. Play existing narration in the public reader without private authorization or spending credits. Show only currently approved public content. Do not expose private account data or fabricate a title if there are no results. For a story with published English and French editions, select English narration and French captions independently using the reader controls. Verify narration enabled state through page and edition transitions. A single-edition story must not invent other editions. Use only actual public editions; app-only get_public_story_media renews them without private authorization."
},
{
"description": "Read the connected account balance. Before testing, sign in with the dedicated reviewer account and approve credits:read; record the initial balances for comparison with the two creation cases.",
"prompt": "How many ELEN credits do I have?",
"tools_triggered": "get_credits",
"expected_behavior": "Call get_credits and report the storybook and video balances returned for the connected account. Do not invent a balance, initiate a purchase, or return checkout or upgrade links."
},
{
"description": "Create and open one private English storybook. The dedicated reviewer account must have AI-provider consent, storybook format approval, stories:create, operations:read and stories:read, and at least one storybook credit. Confirm creation once; record its request ID and resulting story ID for the library case.",
"prompt": "Make a six-page bedtime story about a fox learning to share a lantern.",
"tools_triggered": "create_story, get_creation_request, open_story",
"expected_behavior": "After creation confirmation, call create_story with type=storybook, pageCount=6, language=en, max_credit_cost=1 and one valid idempotency_key. Poll the returned request ID, respecting the suggested interval. Keep the same key and body on retries; never submit another creation merely because polling is slow. On completion, open_story uses the returned story ID and shows the six-page private story with narration where available. One storybook credit is used and no video credit is used. If generation fails, report its actual status instead of claiming success. Do not publish or approve Family Playback."
},
{
"description": "Search and read an owned story. Run after the storybook creation case, with library:read and stories:read approved. The newly created English story is not assumed to have translations.",
"prompt": "Find my fox and lantern story and open it.",
"tools_triggered": "search_library, open_story",
"expected_behavior": "Search the connected account\u2019s library with q matching the fox or lantern title, and open an ID actually returned by search_library. Return no other account\u2019s stories. In the reader, verify page navigation, narration, seek, speed and fullscreen. The narration switch stays enabled during loading and page transitions until the user stops playback or playback fails. The reader may call get_story_media to renew links. A single-language story must not offer invented editions."
},
{
"description": "Create and play one private animated video. The dedicated reviewer account must have AI-provider consent, animationvideo format approval, stories:create, operations:read and stories:read, and at least one video credit. Confirm this separate creation once; a storybook does not substitute for a video.",
"prompt": "Make a short animated video about a fox learning to share a lantern, then play it for me.",
"tools_triggered": "create_story, get_creation_request, open_story",
"expected_behavior": "After creation confirmation, call create_story with type=animationvideo, language=en, max_credit_cost=1 and a new idempotency_key for this distinct request. Do not send storybook-only pageCount, ageGroup or illustrationStyle fields. Poll the returned request ID without creating duplicates. On completion, use its story ID with open_story and show the narrated animated video. Verify actual video playback, captions, seek, speed and fullscreen. One video credit is used and no storybook credit is used. If a format, credit, provider or safety gate rejects the request, explain the actual error without fabricating a film or initiating checkout."
}
],
"negative": [
{
"description": "Unsupported digital-credit purchase. Explain that the ChatGPT plugin uses existing ELEN credits and cannot buy credits. Do not invoke ELEN tools for this purchase request, initiate checkout, promote an upgrade, or return purchase links.",
"prompt": "Buy me five more ELEN credits."
},
{
"description": "Unsupported publication. Explain that the account holder must submit a story for Community publication inside ELEN. Do not invoke ELEN tools for this publication-only request, change visibility, or claim the story is public.",
"prompt": "Publish my fox and lantern story to the ELEN Community."
},
{
"description": "Unsupported Family Playback approval. Explain that the account holder must review and add the story inside ELEN. Do not invoke ELEN tools for this approval-only request, change a family library, create a child profile, or claim approval was granted.",
"prompt": "Add my fox and lantern story to Family Playback so my child can watch it."
}
]
},
"commerce": false,
"commerce_description": "Uses existing ELEN entitlements only. No digital-credit sales, checkout initiation or upgrade promotion.",
"demo_recording_url": "https://elen-plugin-review.pages.dev/review-f676c4beeeaa7acba41914caf02811bc/"
},
"publication": {
"release_notes": "Create private storybooks and short animated videos, discover public stories, search your library, and read or play stories with multilingual controls.",
"countries": []
},
"apps": "./.app.json"
}
}
}
SHA-256: 9f66fa855c99fd095eb79f3096bd53fdbf262ef2f02f3c27ab7dba3a913f34f9