{
  "name": "@runtypelabs/persona",
  "version": "4.5.0",
  "description": "Themeable, pluggable streaming agent widget for websites, in plain JS with support for voice input and reasoning / tool output.",
  "type": "module",
  "main": "dist/index.cjs",
  "module": "dist/index.js",
  "types": "dist/index.d.ts",
  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "import": "./dist/index.js",
      "require": "./dist/index.cjs"
    },
    "./theme-reference": {
      "types": "./dist/theme-reference.d.ts",
      "import": "./dist/theme-reference.js",
      "require": "./dist/theme-reference.cjs"
    },
    "./codegen": {
      "types": "./dist/codegen.d.ts",
      "import": "./dist/codegen.js",
      "require": "./dist/codegen.cjs"
    },
    "./theme-editor": {
      "types": "./dist/theme-editor.d.ts",
      "import": "./dist/theme-editor.js",
      "require": "./dist/theme-editor.cjs"
    },
    "./theme-editor/preview": {
      "types": "./dist/theme-editor-preview.d.ts",
      "import": "./dist/theme-editor-preview.js",
      "require": "./dist/theme-editor-preview.cjs"
    },
    "./testing": {
      "types": "./dist/testing.d.ts",
      "import": "./dist/testing.js",
      "require": "./dist/testing.cjs"
    },
    "./smart-dom-reader": {
      "types": "./dist/smart-dom-reader.d.ts",
      "import": "./dist/smart-dom-reader.js",
      "require": "./dist/smart-dom-reader.cjs"
    },
    "./voice-worklet-player": {
      "types": "./dist/voice-worklet-player.d.ts",
      "import": "./dist/voice-worklet-player.js",
      "require": "./dist/voice-worklet-player.cjs"
    },
    "./plugin-kit": {
      "types": "./dist/plugin-kit.d.ts",
      "import": "./dist/plugin-kit.js",
      "require": "./dist/plugin-kit.cjs"
    },
    "./animations/glyph-cycle": {
      "types": "./dist/animations/glyph-cycle.d.ts",
      "import": "./dist/animations/glyph-cycle.js",
      "require": "./dist/animations/glyph-cycle.cjs"
    },
    "./animations/wipe": {
      "types": "./dist/animations/wipe.d.ts",
      "import": "./dist/animations/wipe.js",
      "require": "./dist/animations/wipe.cjs"
    },
    "./widget.css": "./dist/widget.css"
  },
  "files": [
    "dist",
    "src"
  ],
  "dependencies": {
    "@mcp-b/webmcp-polyfill": "^3.0.0",
    "dompurify": "^3.4.10",
    "idiomorph": "^0.7.4",
    "lucide": "^1.18.0",
    "marked": "^12.0.2",
    "partial-json": "^0.1.7",
    "zod": "^3.22.4"
  },
  "devDependencies": {
    "@size-limit/file": "^12.1.0",
    "@types/node": "^20.12.7",
    "@typescript-eslint/eslint-plugin": "^7.0.0",
    "@typescript-eslint/parser": "^7.0.0",
    "@vitest/ui": "^4.0.9",
    "esbuild": "^0.21.5",
    "eslint": "^8.57.0",
    "eslint-config-prettier": "^9.1.0",
    "fake-indexeddb": "^6.2.5",
    "rimraf": "^5.0.5",
    "size-limit": "^12.1.0",
    "tsup": "^8.0.1",
    "typescript": "^5.4.5",
    "vitest": "^4.0.9"
  },
  "engines": {
    "node": ">=20.0.0"
  },
  "author": "Runtype",
  "license": "MIT",
  "keywords": [
    "ai",
    "chat",
    "widget",
    "streaming",
    "typescript",
    "persona",
    "agent"
  ],
  "repository": {
    "type": "git",
    "url": "git+https://github.com/runtypelabs/persona.git",
    "directory": "packages/widget"
  },
  "bugs": {
    "url": "https://github.com/runtypelabs/persona/issues"
  },
  "homepage": "https://github.com/runtypelabs/persona/tree/main/packages/widget#readme",
  "publishConfig": {
    "access": "public"
  },
  "scripts": {
    "build": "rimraf dist && pnpm run build:styles && pnpm run build:markdown-parsers && pnpm run build:client && pnpm run build:installer && pnpm run build:launcher && pnpm run build:webmcp-polyfill && pnpm run build:runtype-tts && pnpm run build:theme-ref && pnpm run build:codegen && pnpm run build:theme-editor && pnpm run build:theme-editor-preview && pnpm run build:testing && pnpm run build:smart-dom-reader && pnpm run build:voice-worklet-player && pnpm run build:plugin-kit && pnpm run build:animations",
    "build:markdown-parsers": "tsup --config tsup.markdown-parsers.config.ts",
    "build:plugin-kit": "tsup src/plugin-kit.ts --format esm,cjs --minify --dts --out-dir dist --no-splitting",
    "build:theme-editor": "tsup src/theme-editor.ts --format esm,cjs --minify --dts --out-dir dist --no-splitting",
    "build:theme-editor-preview": "tsup src/theme-editor-preview.ts --format esm,cjs --minify --dts --out-dir dist --no-splitting",
    "build:testing": "tsup src/testing.ts --format esm,cjs --minify --dts --out-dir dist --no-splitting",
    "build:smart-dom-reader": "tsup src/smart-dom-reader.ts --format esm,cjs --minify --dts --out-dir dist --no-splitting",
    "build:voice-worklet-player": "tsup src/voice-worklet-player.ts --format esm,cjs --minify --dts --out-dir dist --no-splitting",
    "build:animations": "tsup src/animations/glyph-cycle.ts src/animations/wipe.ts --format esm,cjs --minify --dts --out-dir dist/animations --no-splitting",
    "build:theme-ref": "tsup src/theme-reference.ts --format esm,cjs --minify --dts",
    "build:codegen": "tsup src/codegen.ts --format esm,cjs --minify --dts",
    "build:styles": "node scripts/build-styles.mjs",
    "build:client": "tsup src/index.ts --format esm,cjs --minify --sourcemap --splitting false --dts --loader \".css=text\" && tsup --config tsup.global.config.ts && node -e \"const fs=require('fs');for(const ext of ['.global.js','.global.js.map']){const from='dist/index-global'+ext;if(fs.existsSync(from))fs.renameSync(from,'dist/index'+ext);}\"",
    "build:webmcp-polyfill": "tsup --config tsup.webmcp-polyfill.config.ts",
    "build:runtype-tts": "tsup --config tsup.runtype-tts.config.ts",
    "build:installer": "tsup src/install.ts --format iife --global-name SiteAgentInstaller --out-dir dist --minify --sourcemap --no-splitting",
    "build:launcher": "tsup src/launcher-global.ts --format iife --global-name AgentWidgetLauncher --minify --sourcemap --splitting false --out-dir dist && node -e \"const fs=require('fs');for(const ext of ['.global.js','.global.js.map']){const from='dist/launcher-global'+ext;if(fs.existsSync(from))fs.renameSync(from,'dist/launcher'+ext);}\"",
    "lint": "eslint . --ext .ts",
    "typecheck": "pnpm run check:runtype-types && tsc --noEmit",
    "test": "vitest",
    "test:ui": "vitest --ui",
    "test:run": "vitest run",
    "size": "size-limit",
    "fetch:runtype-openapi": "node scripts/fetch-runtype-openapi.mjs",
    "generate:runtype-types": "pnpm run fetch:runtype-openapi && node scripts/generate-runtype-openapi-types.mjs",
    "check:runtype-types": "pnpm run fetch:runtype-openapi && node scripts/generate-runtype-openapi-types.mjs --check"
  }
}