{
  "name": "@hasna/sessions",
  "version": "0.12.5",
  "description": "Search and sync AI coding sessions (Claude, Codex, Gemini) — unified SQLite index with full-text search",
  "type": "module",
  "main": "dist/index.js",
  "types": "dist/index.d.ts",
  "bin": {
    "sessions": "dist/cli/index.js",
    "sessions-mcp": "dist/mcp/index.js",
    "sessions-serve": "dist/server/index.js"
  },
  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "import": "./dist/index.js"
    },
    "./storage": {
      "types": "./dist/storage.d.ts",
      "import": "./dist/storage.js"
    },
    "./server": {
      "types": "./dist/server.d.ts",
      "import": "./dist/server.js"
    },
    "./sdk": {
      "types": "./dist/sdk/index.d.ts",
      "import": "./dist/sdk/index.js"
    },
    "./hasna.contract.json": "./hasna.contract.json"
  },
  "files": [
    "dist",
    "migrations",
    "hasna.contract.json",
    "LICENSE",
    "README.md"
  ],
  "scripts": {
    "build": "rm -rf dist && bun run build:cli && bun run build:mcp && bun run build:server && bun run build:lib && bun run build:sdk && tsc --emitDeclarationOnly --outDir dist",
    "build:externals": "echo '@hasna/contracts is bundled (not external) so the client HTTP storage flip ships in dist; all other deps stay external'",
    "build:cli": "bun build src/cli/index.tsx --outdir dist/cli --target bun --external @hasna/events --external @inkjs/ui --external @modelcontextprotocol/sdk --external chalk --external commander --external ink --external openai --external pg --external react --external react/jsx-runtime --external react/jsx-dev-runtime --external zod",
    "build:mcp": "bun build src/mcp/index.ts --outdir dist/mcp --target bun --external @hasna/events --external @inkjs/ui --external @modelcontextprotocol/sdk --external chalk --external commander --external ink --external openai --external pg --external react --external react/jsx-runtime --external react/jsx-dev-runtime --external zod",
    "build:server": "bun build src/server/index.ts --outdir dist/server --target bun --external @hasna/events --external @inkjs/ui --external @modelcontextprotocol/sdk --external chalk --external commander --external ink --external openai --external pg --external react --external react/jsx-runtime --external react/jsx-dev-runtime --external zod",
    "build:lib": "bun build src/index.ts src/storage.ts src/server.ts --outdir dist --target bun --external @hasna/events --external @inkjs/ui --external @modelcontextprotocol/sdk --external chalk --external commander --external ink --external openai --external pg --external react --external react/jsx-runtime --external react/jsx-dev-runtime --external zod",
    "build:sdk": "bun build src/sdk/index.ts --outdir dist/sdk --target bun --packages external",
    "sdk:generate": "bun run scripts/generate-sdk.ts",
    "migrate": "bun run src/server/index.ts migrate",
    "kit:check": "bun x @hasna/contracts vendor-kit --check .",
    "contract:validate": "bun x @hasna/contracts validate hasna.contract.json",
    "typecheck": "tsc --noEmit",
    "test": "bun test",
    "prepublishOnly": "bun run typecheck && bun test && bun run build",
    "dev:cli": "bun run src/cli/index.tsx",
    "dev:ingest": "bun run src/cli/index.tsx ingest --verbose",
    "postinstall": "mkdir -p $HOME/.hasna/sessions 2>/dev/null || true"
  },
  "keywords": [
    "sessions",
    "ai",
    "coding",
    "search",
    "claude",
    "codex",
    "gemini",
    "mcp"
  ],
  "author": "Hasna <andrei@hasna.com>",
  "license": "Apache-2.0",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/hasna/sessions.git"
  },
  "dependencies": {
    "@hasna/contracts": "^0.5.2",
    "@hasna/events": "^0.1.11",
    "@inkjs/ui": "^2.0.0",
    "@modelcontextprotocol/sdk": "^1.27.1",
    "chalk": "^5.6.2",
    "commander": "^13.0.0",
    "ink": "^6.8.0",
    "openai": "^6.32.0",
    "pg": "^8.13.3",
    "react": "^19.2.4",
    "zod": "^4.3.6"
  },
  "devDependencies": {
    "@types/bun": "latest",
    "@types/pg": "^8.11.11",
    "typescript": "^5.7.0"
  },
  "publishConfig": {
    "registry": "https://registry.npmjs.org",
    "access": "public"
  }
}
