{
  "name": "semem",
  "version": "1.5.4",
  "description": "Semantic Web Memory for Intelligent Agents",
  "author": "Danny Ayers <danny.ayers@gmail.com> (https://danny.ayers.name)",
  "license": "MIT",
  "type": "module",
  "main": "index.js",
  "types": "dist/types/index.d.ts",
  "bin": {
    "semem": "bin/semem.js",
    "semem-mcp": "bin/mcp.js",
    "semem-mcp-http": "bin/mcp-http.js"
  },
  "engines": {
    "node": ">=20.11.0"
  },
  "exports": {
    ".": {
      "types": "./dist/types/index.d.ts",
      "import": "./index.js",
      "require": "./dist/cjs/index.js"
    },
    "./core": {
      "types": "./dist/types/core.d.ts",
      "import": "./src/core.js"
    },
    "./handlers": {
      "types": "./dist/types/core.d.ts",
      "import": "./src/handlers/index.js"
    },
    "./stores": {
      "types": "./dist/types/core.d.ts",
      "import": "./src/stores/index.js"
    },
    "./connectors": {
      "types": "./dist/types/core.d.ts",
      "import": "./src/connectors/index.js"
    },
    "./ragno": {
      "types": "./dist/types/ragno.d.ts",
      "import": "./src/ragno/index.js"
    },
    "./zpt": {
      "types": "./dist/types/zpt.d.ts",
      "import": "./src/zpt/index.js"
    },
    "./utils": {
      "types": "./dist/types/core.d.ts",
      "import": "./src/utils/index.js"
    },
    "./mcp": {
      "types": "./dist/types/mcp-schema.d.ts",
      "import": "./mcp/mcp.js"
    },
    "./package.json": "./package.json"
  },
  "files": [
    "index.js",
    "bin/",
    "src/",
    "mcp/",
    "dist/types/index.d.ts",
    "dist/types/core.d.ts",
    "dist/types/ragno.d.ts",
    "dist/types/zpt.d.ts",
    "config/config.json",
    "README.md",
    "LICENSE"
  ],
  "scripts": {
    "start": "node src/servers/start-all.js",
    "start:api": "node src/servers/api-server.js",
    "start:workbench": "node src/frontend/workbench/server.js",
    "start:mcp": "node mcp/http-server.js",
    "test": "npm run test:unit && npm run test:integration:mocked",
    "test:all": "npm run test:unit && npm run test:integration:mocked && npm run test:integration:e2e && npm run test:ui",
    "test:unit": "vitest run --config vitest.core.config.js",
    "test:unit:watch": "vitest --config vitest.core.config.js",
    "test:unit:coverage": "vitest run --config vitest.core.config.js --coverage",
    "test:integration:mocked": "npm run test:integration:sparql && npm run test:integration:llm",
    "test:integration:sparql": "vitest run --config vitest.sparql.config.js",
    "test:integration:llm": "vitest run --config vitest.llm.config.js",
    "test:integration:basic": "vitest run --config vitest.integration.config.js",
    "test:integration:e2e": "npm run test:e2e:mcp && npm run test:e2e:workbench && npm run test:e2e:vsom",
    "test:e2e:mcp": "INTEGRATION_TESTS=true vitest run tests/integration/mcp/tell-ask-e2e.integration.test.js tests/integration/mcp/tell-ask-stdio-e2e.integration.test.js tests/integration/mcp/template-loading.integration.test.js tests/integration/mcp/simple-verbs-basic.integration.test.js --reporter=verbose",
    "test:e2e:mcp:http": "INTEGRATION_TESTS=true vitest run tests/integration/mcp/tell-ask-e2e.integration.test.js --reporter=verbose",
    "test:e2e:mcp:stdio": "INTEGRATION_TESTS=true vitest run tests/integration/mcp/tell-ask-stdio-e2e.integration.test.js --reporter=verbose",
    "test:e2e:mcp:templates": "INTEGRATION_TESTS=true vitest run tests/integration/mcp/template-loading.integration.test.js --reporter=verbose",
    "test:e2e:workbench": "INTEGRATION_TESTS=true vitest run tests/integration/workbench/ --reporter=verbose",
    "test:e2e:workbench:upload": "INTEGRATION_TESTS=true vitest run tests/integration/workbench/DocumentUploadWorkflow.integration.test.js --reporter=verbose",
    "test:e2e:workbench:search": "INTEGRATION_TESTS=true vitest run tests/integration/workbench/SearchConsistency.integration.test.js --reporter=verbose",
    "test:e2e:workbench:chunking": "INTEGRATION_TESTS=true vitest run tests/integration/workbench/ChunkingEmbedding.integration.test.js --reporter=verbose",
    "test:e2e:workbench:check": "./scripts/run-workbench-tests.sh --check-only",
    "test:e2e:vsom": "INTEGRATION_TESTS=true vitest run tests/integration/vsom/ --reporter=verbose",
    "test:ui": "playwright test tests/ui/",
    "test:ui:workbench": "playwright test tests/ui/workbench/e2e/",
    "test:ui:debug": "playwright test --debug tests/ui/",
    "test:ui:watch": "playwright test --ui tests/ui/",
    "test:ui:report": "playwright show-report",
    "test:ui:snapshots": "playwright test --update-snapshots tests/ui/",
    "test:ui:install": "playwright install",
    "test:ui:install-deps": "playwright install-deps",
    "test:concept-integration": "node scripts/test-concept-integration.js",
    "test:concept-integration:unit": "node scripts/test-concept-integration.js --unit-only",
    "test:concept-integration:mcp": "node scripts/test-concept-integration.js --mcp-only",
    "test:concept-integration:e2e": "node scripts/test-concept-integration.js --e2e-only",
    "build": "npm run types:build && npm run build:workbench",
    "build:workbench": "webpack --mode=production",
    "build:dev": "webpack --mode=development",
    "dev": "webpack-dev-server --mode=development",
    "dev:workbench": "npm run dev",
    "types:build": "mkdir -p dist/types && cp src/types/*.d.ts dist/types/",
    "mcp": "node mcp/index.js",
    "mcp:http": "node mcp/http-server.js",
    "docs": "jsdoc -c jsdoc.config.json",
    "docs:watch": "nodemon --watch src --watch docs --ext js,md --exec 'npm run docs'",
    "docs:serve": "npm run docs && npx http-server docs-generated -p 8080 -o",
    "docs:build": "npm run docs && npm run docs:prepare",
    "docs:prepare": "mkdir -p _site && cp -r docs/manual _site/ && cp -r docs-generated _site/api && node scripts/build-docs-site.js",
    "ghp": "npm run docs:build && npx gh-pages -d _site -m 'Update documentation [skip ci]'",
    "clean": "rm -rf dist coverage docs-generated _site"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/danja/semem.git"
  },
  "keywords": [
    "semantic-memory",
    "ai",
    "llm",
    "embeddings",
    "vector-database",
    "knowledge-graph",
    "rdf",
    "sparql",
    "ragno",
    "mcp",
    "model-context-protocol",
    "claude",
    "ollama",
    "mistral",
    "openai",
    "semantic-search",
    "memory-management",
    "typescript",
    "javascript",
    "nodejs"
  ],
  "bugs": {
    "url": "https://github.com/danja/semem/issues"
  },
  "homepage": "https://github.com/danja/semem#readme",
  "devDependencies": {
    "@babel/core": "^7.26.0",
    "@babel/preset-env": "^7.26.0",
    "@istanbuljs/nyc-config-babel": "^3.0.0",
    "@playwright/test": "^1.53.0",
    "@types/express": "^4.17.21",
    "@types/node": "^20.19.0",
    "@types/uuid": "^9.0.8",
    "@vitest/coverage-v8": "^3.1.3",
    "@vitest/ui": "^3.1.3",
    "babel-loader": "^9.2.1",
    "buffer": "^6.0.3",
    "codecov": "^3.8.2",
    "copy-webpack-plugin": "^13.0.0",
    "coverage-badge-creator": "^1.0.19",
    "css-loader": "^7.1.2",
    "gh-pages": "^6.2.0",
    "html-webpack-plugin": "^5.6.3",
    "http-server": "^14.1.1",
    "jsdoc": "^4.0.4",
    "jsdom": "^26.1.0",
    "nodemon": "^3.1.9",
    "nyc": "^15.1.0",
    "path-browserify": "^1.0.1",
    "stream-browserify": "^3.0.0",
    "style-loader": "^4.0.0",
    "supertest": "^7.1.4",
    "typescript": "^5.8.3",
    "undici": "^6.12.0",
    "url": "^0.11.4",
    "vitest": "^3.1.3",
    "webpack": "^5.99.9",
    "webpack-cli": "^6.0.1",
    "webpack-dev-server": "^5.2.1"
  },
  "dependencies": {
    "@anthropic-ai/sdk": "^0.36.3",
    "@langchain/core": "^0.3.19",
    "@langchain/openai": "^0.3.14",
    "@modelcontextprotocol/inspector": "^0.16.6",
    "@modelcontextprotocol/sdk": "^1.13.1",
    "@opendocsg/pdf2md": "^0.2.1",
    "@rdfjs/namespace": "^2.0.1",
    "atuin": "^0.2.0",
    "body-parser": "^1.20.2",
    "chalk": "^5.4.1",
    "commander": "^12.1.0",
    "compression": "^1.7.5",
    "cors": "^2.8.5",
    "d3": "^7.9.0",
    "dotenv": "^16.5.0",
    "duck-duck-scrape": "^2.2.7",
    "evb": "^0.7.2",
    "express": "^4.21.2",
    "express-rate-limit": "^7.5.0",
    "express-session": "^1.18.2",
    "faiss-node": "^0.5.1",
    "graphology": "^0.25.4",
    "helmet": "^8.0.0",
    "hnswlib-node": "^3.0.0",
    "http-proxy-middleware": "^3.0.3",
    "http-terminator": "^3.2.0",
    "hyperdata-clients": "^0.12.0",
    "loglevel": "^1.9.2",
    "mime-types": "^3.0.1",
    "ml-kmeans": "^6.0.0",
    "multer": "^2.0.1",
    "node-fetch": "^3.3.2",
    "ollama": "^0.5.10",
    "preact": "^10.26.9",
    "rdf-ext": "^2.5.2",
    "rdf-parse": "^4.0.0",
    "swagger-ui-express": "^5.0.1",
    "tmp": "^0.2.3",
    "turndown": "^7.2.0",
    "uuid": "^11.1.0",
    "yargs": "^17.7.2",
    "zod": "^3.25.63",
    "zod-to-json-schema": "^3.24.5"
  }
}