{"id":50535309,"url":"https://github.com/danielwpz/lark-a2ui-renderer","last_synced_at":"2026-06-03T16:01:17.012Z","repository":{"id":354576363,"uuid":"1224243822","full_name":"danielwpz/lark-a2ui-renderer","owner":"danielwpz","description":"A2UI renderer for Feishu/Lark","archived":false,"fork":false,"pushed_at":"2026-05-06T13:07:58.000Z","size":123,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-06T15:15:06.616Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danielwpz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-29T05:08:45.000Z","updated_at":"2026-05-06T13:07:02.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/danielwpz/lark-a2ui-renderer","commit_stats":null,"previous_names":["danielwpz/lark-a2ui-renderer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/danielwpz/lark-a2ui-renderer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielwpz%2Flark-a2ui-renderer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielwpz%2Flark-a2ui-renderer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielwpz%2Flark-a2ui-renderer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielwpz%2Flark-a2ui-renderer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danielwpz","download_url":"https://codeload.github.com/danielwpz/lark-a2ui-renderer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielwpz%2Flark-a2ui-renderer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33872298,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-03T16:01:16.176Z","updated_at":"2026-06-03T16:01:17.005Z","avatar_url":"https://github.com/danielwpz.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lark-a2ui-renderer\n\n`lark-a2ui-renderer` is an experimental renderer for turning a constrained\n[A2UI](https://a2ui.org/) v0.8 surface into Feishu/Lark Card JSON 2.0.\n\nThe goal is to make chat-card UI portable: an LLM or host application can\nproduce A2UI messages, and this library compiles them into a Lark interactive\ncard while preserving a stable callback contract back to A2UI `userAction`\nevents.\n\nFor the upstream protocol and specification, see the official A2UI site:\n\u003chttps://a2ui.org/\u003e. This project implements a Lark-oriented subset and a few\nexperimental extensions; it is not an official A2UI renderer.\n\n## What It Does\n\n- Validates a Lark-oriented subset of A2UI v0.8.\n- Maintains A2UI surface state and data model updates.\n- Renders supported components into Feishu/Lark Card JSON.\n- Embeds callback envelopes in interactive controls.\n- Converts Lark `card.action.trigger` callbacks into normalized A2UI\n  `userAction` events.\n\nThe library does not send messages, call LLMs, store application state, or make\nbusiness decisions. Those responsibilities stay with the host application.\n\n## Current Scope\n\n- A2UI protocol: v0.8, following the stable protocol published at\n  \u003chttps://a2ui.org/\u003e.\n- Target platform: Feishu/Lark interactive cards.\n- Catalog id: `urn:a2ui:catalog:lark-card:v0_8`.\n- Implementation language: TypeScript.\n\nThe supported catalog is intentionally smaller than the full A2UI standard\ncatalog. It focuses on components that map cleanly into an IM card surface:\ntext, layout, buttons, forms, text input, choices, and date input.\n\nThe repository also documents an experimental dynamic data source extension for\nlive surfaces such as a pixel clock. That extension is not official A2UI v0.8.\nIt is tracked separately in\n[docs/dynamic-data-sources.md](docs/dynamic-data-sources.md).\n\n\u003e Notice: the packaged `skills/` authoring skill is static-only and does not\n\u003e include dynamic data source instructions or runtime support.\n\n## Basic Usage\n\n```ts\nimport { SurfaceStore, renderSurface, normalizeCallback } from \"lark-a2ui-renderer/v0_8\";\n\nconst store = new SurfaceStore();\nstore.applyMessages(a2uiMessages);\n\nconst rendered = renderSurface(store.getSurface(\"request_form\"));\n// Host app sends rendered.card through Feishu/Lark OpenAPI.\n\nconst userAction = normalizeCallback(store.getSurface(\"request_form\"), normalizedCallbackInput);\n// Host app routes userAction to application logic or an LLM.\n```\n\n## Project Status\n\nThis is still an experimental package. The core renderer, callback normalizer,\nsemantic fixtures, LLM generation tests, and real Lark card-send matrix are in\nplace. The repository also includes a distributable agent skill for authoring\nand validating this A2UI subset.\n\nThe catalog and platform mapping may change as more real callback and rendering\nbehavior is verified.\n\nDevelopment notes, integration setup, and agent-specific operating guidance live\nin [AGENTS.md](AGENTS.md).\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielwpz%2Flark-a2ui-renderer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanielwpz%2Flark-a2ui-renderer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielwpz%2Flark-a2ui-renderer/lists"}