{"_id":"@a2ui-bridge/core","name":"@a2ui-bridge/core","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@a2ui-bridge/core","version":"0.1.0","description":"Core protocol processing for A2UI - framework agnostic message processor","author":{"name":"tpitre"},"license":"MIT","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"devDependencies":{"typescript":"^5.7.2"},"repository":{"type":"git","url":"git+https://github.com/southleft/a2ui-bridge.git","directory":"packages/core"},"keywords":["a2ui","adaptive-ui","llm","protocol","ai-ui"],"scripts":{"build":"tsc","dev":"tsc --watch","clean":"rm -rf dist *.tsbuildinfo","lint":"eslint src"},"_id":"@a2ui-bridge/core@0.1.0","bugs":{"url":"https://github.com/southleft/a2ui-bridge/issues"},"homepage":"https://github.com/southleft/a2ui-bridge#readme","_integrity":"sha512-XyLF47VD/FOxtgFhXJsLfaVVfd+c82AE5VakKXO6rKmOtXUVn7blCGUvsLUIwfUzjkRbFnAF7d156ziapBblXQ==","_resolved":"/private/var/folders/dx/kt5qryjx605f2md58m5cg3n80000gn/T/36ed687166d6da2b9f5819f21052c838/a2ui-bridge-core-0.1.0.tgz","_from":"file:a2ui-bridge-core-0.1.0.tgz","_nodeVersion":"20.19.3","_npmVersion":"10.8.2","dist":{"integrity":"sha512-XyLF47VD/FOxtgFhXJsLfaVVfd+c82AE5VakKXO6rKmOtXUVn7blCGUvsLUIwfUzjkRbFnAF7d156ziapBblXQ==","shasum":"4cc156d3b1b69104322e858c42a5b2fed8cab277","tarball":"https://registry.npmjs.org/@a2ui-bridge/core/-/core-0.1.0.tgz","fileCount":27,"unpackedSize":102269,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC5k6FN8J+BmFOd5XlZIIVGyJY+51BomtMrFCxeUR9wSwIgZ6jrlLHH5D5vKeBAtnx2Jlnl4QruxMTqANs1vg4QoYY="}]},"_npmUser":{"name":"tpitre","email":"tpitre@southleft.com"},"directories":{},"maintainers":[{"name":"tpitre","email":"tpitre@southleft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_0.1.0_1769112006792_0.43468433757739056"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-22T20:00:06.732Z","0.1.0":"2026-01-22T20:00:06.932Z","modified":"2026-01-22T20:00:07.101Z"},"maintainers":[{"name":"tpitre","email":"tpitre@southleft.com"}],"description":"Core protocol processing for A2UI - framework agnostic message processor","homepage":"https://github.com/southleft/a2ui-bridge#readme","keywords":["a2ui","adaptive-ui","llm","protocol","ai-ui"],"repository":{"type":"git","url":"git+https://github.com/southleft/a2ui-bridge.git","directory":"packages/core"},"author":{"name":"tpitre"},"bugs":{"url":"https://github.com/southleft/a2ui-bridge/issues"},"license":"MIT","readme":"# @a2ui-bridge/core\n\nCore protocol processing for Google's Adaptive Agent UI (A2UI) Protocol. Framework-agnostic and design-system-agnostic.\n\n## Installation\n\n```bash\nnpm install @a2ui-bridge/core\n```\n\n## Usage\n\n```typescript\nimport { A2UIProcessor } from '@a2ui-bridge/core';\nimport type { ServerToClientMessage } from '@a2ui-bridge/core';\n\n// Create processor instance\nconst processor = new A2UIProcessor();\n\n// Process messages from LLM\nconst messages: ServerToClientMessage[] = [\n  {\n    beginRendering: {\n      surfaceId: '@default',\n      root: 'my-card',\n    },\n  },\n  {\n    surfaceUpdate: {\n      surfaceId: '@default',\n      components: [\n        {\n          id: 'my-card',\n          component: {\n            componentType: 'Card',\n            properties: {\n              children: ['my-text'],\n            },\n          },\n        },\n        {\n          id: 'my-text',\n          component: {\n            componentType: 'Text',\n            properties: {\n              text: { literalString: 'Hello World' },\n            },\n          },\n        },\n      ],\n    },\n  },\n];\n\nprocessor.processMessages(messages);\n\n// Access surfaces\nconst surfaces = processor.getSurfaces();\nconst defaultSurface = surfaces.get('@default');\nconsole.log(defaultSurface?.rootNode);\n```\n\n## API\n\n### A2UIProcessor\n\n#### `processMessages(messages: ServerToClientMessage[])`\nProcesses an array of A2UI protocol messages, updating internal state.\n\n#### `getSurfaces(): ReadonlyMap<string, Surface>`\nReturns all current surfaces with their component trees.\n\n#### `getData(node, relativePath, surfaceId): DataValue | null`\nResolves data binding paths for a given component node.\n\n#### `clearSurfaces()`\nClears all surfaces and resets state.\n\n### Message Types\n\n#### BeginRenderingMessage\n```typescript\n{\n  beginRendering: {\n    surfaceId: string;\n    root: string;\n    styles?: Record<string, string>;\n  }\n}\n```\n\n#### SurfaceUpdateMessage\n```typescript\n{\n  surfaceUpdate: {\n    surfaceId: string;\n    components: ComponentInstance[];\n  }\n}\n```\n\n#### DataModelUpdate\n```typescript\n{\n  dataModelUpdate: {\n    surfaceId: string;\n    path?: string;\n    contents: ValueMap[];\n  }\n}\n```\n\n#### DeleteSurfaceMessage\n```typescript\n{\n  deleteSurface: {\n    surfaceId: string;\n  }\n}\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-c36de1fbe3db989207713b950e9b7003"}