{"_id":"@actus-ag/llm-ui-markdown","name":"@actus-ag/llm-ui-markdown","dist-tags":{"latest":"0.2.0"},"versions":{"0.2.0":{"name":"@actus-ag/llm-ui-markdown","version":"0.2.0","type":"module","license":"MIT","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{"./package.json":"./package.json",".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"repository":{"type":"git","url":"git+https://github.com/actus-ag/llm-ui.git","directory":"packages/markdown"},"homepage":"https://github.com/actus-ag/llm-ui#readme","bugs":{"url":"https://github.com/actus-ag/llm-ui/issues"},"publishConfig":{"access":"public"},"dependencies":{"mdast-util-from-markdown":"^2.0.0","mdast-util-gfm":"^3.0.0","mdast-util-to-markdown":"^2.1.0","micromark-extension-gfm":"^3.0.0","unist-util-visit":"^5.0.0","remeda":"^1.57.0","@actus-ag/llm-ui":"0.2.0"},"devDependencies":{"@types/mdast":"^4.0.3","tsup":"^8.0.2","typescript":"^5.4.3","@actus-ag/llm-ui-tsconfig":"0.0.5"},"scripts":{"build":"tsup","build-watch":"tsup --watch","typecheck":"tsc --noEmit","test":"vitest"},"_id":"@actus-ag/llm-ui-markdown@0.2.0","description":"Markdown support for @actus-ag/llm-ui with streaming-safe rendering.","_integrity":"sha512-tJccn4issPoiHo6Wj6pczS1PEPzhv3XtjwcZN91TntLfaQ6EBb/a3o/lqMY2tvclMFMQjoXoixo7moxWGIKl6Q==","_resolved":"/tmp/e27e1b38aded885f2e1dd1ba3a58628a/actus-ag-llm-ui-markdown-0.2.0.tgz","_from":"file:actus-ag-llm-ui-markdown-0.2.0.tgz","_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-tJccn4issPoiHo6Wj6pczS1PEPzhv3XtjwcZN91TntLfaQ6EBb/a3o/lqMY2tvclMFMQjoXoixo7moxWGIKl6Q==","shasum":"041833fe7e499f9bcab08f9df02d512f39e6fbf7","tarball":"https://registry.npmjs.org/@actus-ag/llm-ui-markdown/-/llm-ui-markdown-0.2.0.tgz","fileCount":9,"unpackedSize":50108,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGcDgtPWpGCdb/Yaj3vt+gryaS3gjUL2HZ/Yc3pCDdqaAiEAzSYWhdVKepYZFB9Fbi5Shk1Zpjkambjnv4j5TqXxz/0="}]},"_npmUser":{"name":"actus-ag","email":"it@actus-tax.com"},"directories":{},"maintainers":[{"name":"actus-ag","email":"it@actus-tax.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/llm-ui-markdown_0.2.0_1762266485098_0.6931856412960786"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-04T14:28:04.971Z","0.2.0":"2025-11-04T14:28:05.274Z","modified":"2025-11-04T14:28:05.564Z"},"maintainers":[{"name":"actus-ag","email":"it@actus-tax.com"}],"description":"Markdown support for @actus-ag/llm-ui with streaming-safe rendering.","homepage":"https://github.com/actus-ag/llm-ui#readme","repository":{"type":"git","url":"git+https://github.com/actus-ag/llm-ui.git","directory":"packages/markdown"},"bugs":{"url":"https://github.com/actus-ag/llm-ui/issues"},"license":"MIT","readme":"# @actus-ag/llm-ui-markdown\n\nMarkdown support for @actus-ag/llm-ui with streaming-safe rendering.\n\n## Features\n\n- Removes incomplete markdown syntax during streaming\n- Prevents flickering and broken rendering\n- Supports GitHub Flavored Markdown (GFM)\n- Handles partial markdown elements gracefully\n\n## Installation\n\n```bash\nnpm install @actus-ag/llm-ui-markdown\n# or\npnpm add @actus-ag/llm-ui-markdown\n# or\nyarn add @actus-ag/llm-ui-markdown\n```\n\n## Usage\n\n```typescript\nimport { createLLMOutput } from '@actus-ag/llm-ui';\nimport { markdownLookBack } from '@actus-ag/llm-ui-markdown';\n\nconst llmOutput = createLLMOutput({\n  llmOutput: streamedText,\n  isStreamFinished: false,\n  fallbackBlock: {\n    component: MarkdownBlock,\n    lookBack: markdownLookBack(),\n  },\n});\n```\n\n## How it Works\n\nThe `markdownLookBack` function:\n1. Parses markdown into an AST (Abstract Syntax Tree)\n2. Removes incomplete markdown elements during streaming\n3. Calculates visible text length for proper throttling\n4. Only shows complete, valid markdown\n\nThis prevents users from seeing broken syntax like:\n- Incomplete bold: `**half bold`\n- Incomplete links: `[text](http`\n- Incomplete lists: `* item`\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-454f675fe654d61e7ded50f9cc97ee21"}