{
  "name": "@rulemetric/cli",
  "version": "0.12.2",
  "publishConfig": {
    "access": "public"
  },
  "type": "module",
  "engines": {
    "node": ">=18.18"
  },
  "bin": {
    "rulemetric": "./bin/run.js"
  },
  "files": [
    "bin",
    "dist",
    "oclif.manifest.json",
    "!dist/**/*.map"
  ],
  "oclif": {
    "commands": "./dist/commands",
    "bin": "rulemetric",
    "dirname": "rulemetric",
    "topicSeparator": " ",
    "plugins": [
      "@oclif/plugin-help",
      "@oclif/plugin-not-found"
    ],
    "topics": {
      "auth": {
        "description": "Manage authentication"
      },
      "hooks": {
        "description": "Manage session tracking hooks"
      },
      "instructions": {
        "description": "Manage instructions"
      },
      "org": {
        "description": "Manage active organization"
      },
      "skills": {
        "description": "Browse and install community skills"
      },
      "suggestions": {
        "description": "List and act on instruction suggestions"
      },
      "crons": {
        "description": "List and run scheduled background tasks"
      },
      "capture": {
        "description": "Control what the worker captures"
      },
      "experiments": {
        "description": "Instructions under randomised test and their verdicts"
      }
    }
  },
  "dependencies": {
    "@anthropic-ai/sdk": "^0.90.0",
    "@inquirer/prompts": "^7.0.0",
    "@oclif/core": "^4.8.0",
    "@oclif/plugin-help": "^6.2.0",
    "@oclif/plugin-not-found": "^3.2.0",
    "@oclif/table": "^0.3.0",
    "@opentelemetry/api": "^1.9.0",
    "@opentelemetry/exporter-trace-otlp-http": "^0.57.0",
    "@opentelemetry/resources": "^1.30.0",
    "@opentelemetry/sdk-node": "^0.57.0",
    "@opentelemetry/sdk-trace-node": "^1.30.0",
    "@opentelemetry/semantic-conventions": "^1.28.0",
    "@sentry/node": "^8.42.0",
    "@supabase/supabase-js": "^2.95.0",
    "drizzle-orm": "^0.44.0",
    "gray-matter": "^4.0.3",
    "ink": "^7.0.1",
    "ink-select-input": "^6.2.0",
    "ink-spinner": "^5.0.0",
    "ink-text-input": "^6.0.0",
    "postgres": "^3.4.0",
    "react": "^19.0.0",
    "zod": "^3.24.0",
    "@rulemetric/proxy": "0.12.2",
    "@rulemetric/skills-registry": "0.12.2",
    "@rulemetric/hooks": "0.12.2"
  },
  "//deps": "Worker (`evals agent`) runtime deps: the @opentelemetry/* set, @sentry/node, and postgres are STATIC top-level imports loaded at worker startup (via bundled @rulemetric/{telemetry,db}) — they MUST be runtime deps or a clean `npm i -g` crashes with ModuleLoadError. `better-sqlite3` is optionalDependencies (below): it's a native module, lazy `require()`'d inside a try/catch (packages/session providers cursor/opencode) so a missing binary degrades gracefully — making it a hard dep would break `npm i -g` on platforms without prebuilt binaries. `resend` stays a devDep: lazy `await import('resend')` guarded by RESEND_API_KEY, which end-user workers never set (provider falls back to noop). Classification verified via import-graph scan of dist/commands/evals/agent.js + per-importer static/lazy check.",
  "optionalDependencies": {
    "better-sqlite3": "^11.0.0"
  },
  "devDependencies": {
    "@hono/node-server": "^1.13.0",
    "@oclif/test": "^4.1.0",
    "@types/js-yaml": "^4.0.9",
    "@types/node": "^22.0.0",
    "@types/react": "^19.0.0",
    "esbuild": "^0.25.0",
    "ink-testing-library": "^4.0.0",
    "js-yaml": "^5.3.0",
    "oclif": "^4.17.0",
    "resend": "^4.0.0",
    "tsx": "^4.19.0",
    "typescript": "^5.9.0",
    "vitest": "^3.2.0",
    "@rulemetric/api": "0.0.1",
    "@rulemetric/core": "0.0.1",
    "@rulemetric/db": "0.0.1",
    "@rulemetric/effectiveness": "0.0.1",
    "@rulemetric/email": "0.0.1",
    "@rulemetric/session": "0.2.1",
    "@rulemetric/telemetry": "0.0.1",
    "@rulemetric/typescript-config": "0.0.0"
  },
  "scripts": {
    "build": "node scripts/build.mjs",
    "dev": "./bin/dev.js",
    "test": "vitest run",
    "test:e2e": "vitest run --config vitest.e2e.config.ts",
    "test:unit": "vitest run --config vitest.config.ts",
    "mutation-audit": "node scripts/mutation-audit.mjs",
    "type-check": "tsc --noEmit",
    "postbuild": "oclif manifest",
    "worker:restart": "pnpm build && launchctl unload ~/Library/LaunchAgents/com.rulemetric.worker.plist 2>/dev/null; launchctl load ~/Library/LaunchAgents/com.rulemetric.worker.plist && echo 'worker restarted with fresh dist'"
  }
}