{ "name": "qm", "version": "0.1.0", "private": true, "license": "MIT", "type": "module", "description": "Headless core for the shared org agent (managed-agents architecture).", "engines": { "node": ">=24.15.0", "npm": ">=11.10.0" }, "scripts": { "build:connector-sdk": "npm ci --prefix deploy/connector-sdk --ignore-scripts --no-audit --no-fund && node deploy/connector-sdk/build.mjs", "prestart": "npm run build:connector-sdk", "predev": "npm run build:connector-sdk", "preworker": "npm run build:connector-sdk", "pretest": "npm run build:connector-sdk", "start": "node --env-file-if-exists=.env src/index.ts", "dev": "SHUTDOWN_DRAIN_MS=2000 node --env-file-if-exists=.env --watch src/index.ts", "dev-instance": "bash scripts/dev-instance.sh up", "dev-instance:web": "bash scripts/dev-instance.sh up --surface web", "dev-instance:slack": "bash scripts/dev-instance.sh up --surface slack", "dev-instance:both": "bash scripts/dev-instance.sh up --surface both", "dev-instance:no-slack": "bash scripts/dev-instance.sh up --no-slack", "dev-instance:status": "bash scripts/dev-instance.sh status", "dev-instance:down": "bash scripts/dev-instance.sh down", "worker": "node --env-file-if-exists=.env src/runs/worker-main.ts", "test": "node --experimental-test-module-mocks --test test/*.test.ts", "test:root:shard": "node scripts/run-root-test-shard.mjs", "test:root:shard:check": "node scripts/run-root-test-shard.mjs --check --shards 5", "test:e2e": "node --test test/e2e/*.test.ts", "live-e2e": "node test/live-slack/run.ts", "gallery:shots": "node test/live-slack/screenshots.ts", "gallery:shots:login": "node test/live-slack/screenshots.ts --login", "test:all": "node --experimental-test-module-mocks --test 'test/**/*.test.ts'", "smoke:pi": "node scripts/pi-smoke.ts", "smoke:monitor": "node scripts/monitor-smoke.ts", "smoke:git-cli": "node scripts/git-cli-smoke.ts", "smoke:google-oauth": "node scripts/google-oauth-smoke.ts", "smoke:service-cred": "node scripts/service-credential-livetest.ts", "smoke:aws-sandbox": "node scripts/aws-sandbox-smoke.ts", "smoke:local-sandbox": "node scripts/local-sandbox-smoke.ts", "build:modal-image": "node scripts/modal-build-image.ts", "build:e2b-template": "node scripts/e2b-build-template.ts", "build:aws-image": "node scripts/aws-build-sandbox-image.ts", "sandbox:local:build": "bash scripts/local-sandbox-build.sh", "sandbox:porter:build": "docker build --platform linux/amd64 -t \"${PORTER_SANDBOX_IMAGE:?Set PORTER_SANDBOX_IMAGE to the registry tag to publish}\" porter && docker push \"$PORTER_SANDBOX_IMAGE\"", "deploy:porter-runner-image": "docker build --platform linux/amd64 -t \"${PORTER_DEPLOY_RUNNER_IMAGE:?Set PORTER_DEPLOY_RUNNER_IMAGE to the registry tag to publish}\" -f deploy/porter-runner/Dockerfile . && docker push \"$PORTER_DEPLOY_RUNNER_IMAGE\"", "test:pg": "node scripts/run-pg-tests.mjs test/batch-paths.test.ts test/session-append-many.test.ts test/cron-queue.test.ts test/postgres-migration-startup.test.ts test/postgres-swarms.test.ts test/postgres-store.test.ts test/postgres-instance-registry.test.ts test/readiness.test.ts test/postgres-grant-store.test.ts test/postgres-admin-grants.test.ts test/postgres-file-artifact-store.test.ts test/postgres-file-upload-store.test.ts test/postgres-directory-store.test.ts test/postgres-map.test.ts test/postgres-background-ownership.test.ts test/postgres-resource-search.test.ts test/deploy-store-pg.test.ts test/postgres-cron-fires.test.ts test/postgres-migration-adoption.test.ts test/postgres-migrations.test.ts test/postgres-metrics-sink.test.ts test/postgres-error-log.test.ts test/postgres-audit-log.test.ts test/postgres-budget.test.ts test/postgres-rate-limiter.test.ts test/postgres-credential-usage-sink.test.ts test/postgres-config-store.test.ts test/postgres-delivery-store.test.ts test/postgres-replay-dedupe.test.ts test/postgres-broker-sessions.test.ts test/postgres-egress-audit-sink.test.ts test/postgres-memory-service.test.ts test/run-signal-store.test.ts test/postgres-listener.test.ts test/postgres-run-activity-store.test.ts test/leader-lease.test.ts test/advisory-lock.test.ts test/loop-ingress-pg.test.ts test/persistence-init-retry.test.ts test/migrate-principals.test.ts test/postgres-surface-cache.test.ts test/slack-mirror-fidelity.test.ts test/run-retry-delay.test.ts test/postgres-run-stream.test.ts test/migrate-main.test.ts", "livetest": "node scripts/api-livetest.ts", "bench:memory": "node --env-file-if-exists=.env scripts/memory-bench.ts", "prepare": "node .husky/install.mjs", "typecheck": "tsc --noEmit", "typecheck:contract": "tsc -p tsconfig.contract.json", "format": "prettier --write --ignore-unknown .", "format:check": "prettier --check --ignore-unknown .", "lint": "eslint .", "lint:ox": "oxlint --deny-warnings src plugins scripts cli test", "dev-instance:doctor": "bash scripts/dev-instance.sh doctor", "lint:knip": "knip", "migrate:transcript-tape": "node scripts/migrate-transcript-tape.ts", "build:app-annotations": "node scripts/build-app-devbar.mjs" }, "lint-staged": { "*": "prettier --write --ignore-unknown" }, "dependencies": { "@anthropic-ai/claude-agent-sdk": "0.3.280", "@anthropic-ai/tokenizer": "^0.0.4", "@aws-crypto/sha256-js": "^5.2.0", "@aws-sdk/client-ecs": "3.1096.0", "@aws-sdk/client-s3": "^3.1061.0", "@aws-sdk/client-secrets-manager": "^3.1089.0", "@aws-sdk/client-sts": "^3.1075.0", "@aws-sdk/credential-provider-node": "^3.972.70", "@aws-sdk/s3-request-presigner": "^3.1061.0", "@earendil-works/pi-ai": "https://github.com/yc-software/qm/releases/download/vendored-pi-ai-0.82.0-qm.1/earendil-works-pi-ai-0.82.0-qm.1.tgz", "@earendil-works/pi-coding-agent": "https://github.com/yc-software/qm/releases/download/vendored-pi-coding-agent-0.82.0-security.6/earendil-works-pi-coding-agent-0.82.0-qm-security.6.tgz", "@fly/sprites": "0.2.3", "@openai/codex": "0.156.1", "@opencode-ai/plugin": "1.18.31", "@opencode-ai/sdk": "1.18.31", "@sentry/node": "10.75.0", "@slack/bolt": "^4.7.3", "@slack/socket-mode": "^2.0.7", "@slack/web-api": "^7.19.0", "@smithy/signature-v4": "^5.6.6", "@superserve/sdk": "^0.8.3", "croner": "^10.0.1", "e2b": "^2.51.0", "emoji-datasource": "^16.0.0", "fastify": "^5.12.5", "jose": "^6.2.3", "lru-cache": "^11.5.2", "modal": "^0.10.1", "officeparser": "^8.0.0", "opencode-ai": "1.18.31", "pg": "^8.13.1", "pg-boss": "^12.26.1", "porter-sandbox": "^0.1.41", "socks-proxy-agent": "10.1.0", "tar-stream": "^3.2.0", "typebox": "^1.1.38", "zod": "4.4.3" }, "overrides": { "@hono/node-server": "2.0.10", "hono": "4.13.9", "@fastify/ajv-compiler": { "fast-uri": "3.1.8" }, "ajv": { "fast-uri": "3.1.8" }, "brace-expansion": "^5.0.12", "fast-json-stringify": { "fast-uri": "4.1.5" }, "undici": "8.10.2", "ip-address": "10.7.2", "protobufjs": "7.6.5", "@earendil-works/pi-ai": "$@earendil-works/pi-ai" }, "devDependencies": { "@eslint/js": "^10.0.1", "@modelcontextprotocol/sdk": "1.31.0", "@types/node": "^24.0.0", "@types/pg": "^8.11.10", "@types/tar-stream": "^3.1.4", "@yc-software/qm": "file:./cli", "devbar.sh": "1.1.0", "esbuild": "0.28.1", "eslint": "^10.4.1", "globals": "^17.6.0", "husky": "9.1.7", "knip": "^6.26.0", "lint-staged": "17.0.1", "oxlint": "^1.74.0", "prettier": "3.9.1", "typescript": "^5.8.2", "typescript-eslint": "^8.61.0" } }