wordeck/app-manifest.json
Till JS 39fe22a018
Some checks are pending
CI / validate (push) Waiting to run
feat: Wordeck-Web-Branding + Manifest-Cutover
Cards-zu-Wordeck-Umbennung im Web-Layer komplett:

- app-manifest.json: id, name, homepage, icon, base_url, deep_link_scheme,
  link_patterns alle auf wordeck. tools[].name auch (cards.create →
  wordeck.create — bei mana-mcp wird das beim re-upsert konsumiert).
- 5 i18n-Files (de/en/fr/es/it): App-Beschreibung von Cardecky-zu-Wordeck-
  Wording, USP "text-first" wo es passt.
- 11 Routes mit Page-<title>: Cardecky → Wordeck.
- CSP connect-src ergänzt um api.wordeck.com (cardecky-api bleibt während
  Übergang).
- AASA exposed jetzt BEIDE Bundle-IDs (ev.mana.cardecky alt + ev.mana.wordeck
  neu) — die alte Native bleibt während der Ω-3 Bauphase funktional.
- UI-Slug-Vorschau (PublishDeckModal, +page, me/published): wordeck.com.

DNS für wordeck.com + api.wordeck.com + www.wordeck.com sind als
Cloudflare-Tunnel-CNAMEs angelegt; cloudflared-Ingress auf mana-server
patched + reloaded. wordeck.com antwortet HTTP 200 mit Cards-Container
(Branding-Update hier macht das jetzt zu Wordeck).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 20:46:10 +02:00

65 lines
2.1 KiB
JSON

{
"$schema": "https://pkg.mana.how/@mana/shared-share-protocol/0.1/manifest.json",
"schema_version": "0.1",
"id": "wordeck",
"name": "Wordeck",
"version": "1.0.0",
"homepage": "https://wordeck.com",
"icon": "https://wordeck.com/icon-512.png",
"description": "Spaced-repetition flashcards with FSRS scheduling — text-first, no images, no audio.",
"description_de": "Spaced Repetition, text-first. Nur Worte, keine Bilder, kein Audio.",
"ownership": { "kind": "verein" },
"tier_required": "beta",
"endpoints": {
"base_url": "https://wordeck.com",
"health": "/healthz",
"dsgvo_export": "/api/v1/dsgvo/export",
"search": "/api/v1/search",
"share_receive": "/api/v1/share/receive",
"tool_invoke": "/api/v1/tools/:name",
"deep_link_scheme": "wordeck://",
"link_patterns": [
{
"pattern": "card/(?<id>[a-z0-9_-]+)",
"template": "https://wordeck.com/c/{id}"
},
{
"pattern": "deck/(?<id>[a-z0-9_-]+)",
"template": "https://wordeck.com/d/{id}"
}
]
},
"shares": [{ "type": "mana/card", "schema_ref": "/payload-schemas/card.json" }],
"accepts": [
{ "type": "mana/quote", "handler": "create_card_from_quote" },
{ "type": "mana/link", "handler": "save_link_as_card" },
{ "type": "mana/text", "handler": "create_card_from_text" }
],
"tools": [
{
"name": "wordeck.create",
"description": "Erzeugt eine Lernkarte für den authentifizierten User.",
"input_schema": { "$ref": "/payload-schemas/create-card-input.json" },
"output_schema": { "$ref": "/payload-schemas/card.json" },
"auth": "user_token"
},
{
"name": "wordeck.search",
"description": "Sucht in den Lernkarten des authentifizierten Users.",
"input_schema": { "$ref": "/payload-schemas/search-input.json" },
"output_schema": { "$ref": "/payload-schemas/search-output.json" },
"auth": "user_token"
}
],
"search": {
"types": ["card", "deck"],
"languages": ["de", "en", "fr", "es", "it"],
"max_results": 30,
"timeout_ms": 3000
},
"data": {
"personal_data_categories": ["card_content", "review_history"],
"encrypted_at_rest": false,
"storage_location": "EU"
}
}