{ "name": "@gantry/runtime", "version": "1.2.52", "description": "Provider-neutral agent runtime. Lightweight, secure, customizable.", "author": "Gantry Contributors", "license": "MIT", "repository": { "type": "git", "url": "git+https://github.com/cawstudios/Agent.Gantry.git" }, "homepage": "https://github.com/cawstudios/Agent.Gantry", "bugs": { "url": "https://github.com/cawstudios/Agent.Gantry/issues" }, "keywords": [ "agent", "runtime", "orchestration", "cli", "automation" ], "publishConfig": { "access": "public" }, "type": "module", "main": "dist/index.js", "bin": { "gantry": "dist/cli/index.js" }, "files": [ "dist/", "packages/contracts/dist/", "packages/contracts/package.json", "docker-compose.yml", "ops/postgres/init/", "!**/*.map", "factory/skills/*/SKILL.md" ], "workspaces": [ "apps/web", "packages/contracts", "packages/sdk", "examples/nextjs-workflows" ], "scripts": { "build:contracts": "npm run build --workspace @gantry/contracts", "build:sdk": "npm run build --workspace @gantry/sdk", "build:examples": "npm run typecheck --workspace @gantry/example-nextjs-workflows && npm run build --workspace @gantry/example-nextjs-workflows", "build:web": "npm run build --workspace @gantry/web", "dev:web": "npm run dev --workspace @gantry/web", "clean": "rm -rf dist packages/contracts/dist packages/sdk/dist", "build:core": "npm run build:contracts && npm run build:sdk && tsc && npm run copy:migrations && chmod +x dist/cli/index.js", "build:runtime": "npm run clean && npm run build:core && npm run build:web && npm run copy:web", "build": "npm run build:runtime && npm run build:examples", "copy:migrations": "mkdir -p dist/adapters/storage/postgres/schema && cp -R apps/core/src/adapters/storage/postgres/schema/migrations dist/adapters/storage/postgres/schema/", "copy:web": "mkdir -p dist/ui && cp -R apps/web/dist/. dist/ui/", "db:migrate": "node dist/postgres-migrate.js", "db:migrations:generate": "drizzle-kit generate --config drizzle.postgres.config.ts", "db:migrations:custom": "drizzle-kit generate --config drizzle.postgres.config.ts --custom", "db:migrations:check": "drizzle-kit check --config drizzle.postgres.config.ts", "start": "npm run db:migrate && node dist/index.js", "dev": "npm run build:contracts && npm run cli:dev -- local start", "dev:core": "tsx apps/core/src/index.ts", "dev:stop": "npm run build:contracts && npm run cli:dev -- local stop", "dev:doctor": "npm run build:contracts && npm run cli:dev -- local doctor", "reset": "npm run build:contracts && npm run cli:dev -- local reset", "reset:only": "npm run build:contracts && npm run cli:dev -- local reset --no-start", "reset:db": "npm run build:contracts && npm run cli:dev -- local reset-db", "cli:dev": "tsx apps/core/src/cli/index.ts", "typecheck": "npm run build:contracts && tsc --noEmit", "typecheck:web": "npm run typecheck --workspace @gantry/web", "format": "prettier --write \"apps/core/**/*.{ts,md}\" \"packages/contracts/src/**/*.ts\" \"packages/sdk/src/**/*.ts\"", "format:fix": "prettier --write \"apps/core/**/*.{ts,md}\" \"packages/contracts/src/**/*.ts\" \"packages/sdk/src/**/*.ts\"", "format:check": "prettier --check \"apps/core/**/*.{ts,md}\" \"packages/contracts/src/**/*.ts\" \"packages/sdk/src/**/*.ts\"", "format:check:web": "npm run format:check --workspace @gantry/web", "check:architecture": "python3 scripts/check_architecture.py", "security:sbom": "npm sbom --omit=dev --sbom-format=cyclonedx", "security:package": "python3 scripts/check_package_contents.py", "security:images": "python3 scripts/check_runtime_images.py", "prepare": "HUSKY=1 husky || true", "prepublishOnly": "npm run build", "lint": "eslint apps/core/src packages/contracts/src packages/sdk/src", "lint:changed": "{ git diff -z --name-only --diff-filter=ACMR \"$(git merge-base HEAD origin/main)\" -- '*.ts' '*.tsx'; git ls-files -z --others --exclude-standard -- '*.ts' '*.tsx'; } | xargs -0 -r eslint --", "lint:web": "npm run lint --workspace @gantry/web", "lint:fix": "eslint apps/core/src packages/contracts/src packages/sdk/src --fix", "test": "npm run build:contracts && npm run test:unit && npm run test:integration", "test:unit": "npm run build:contracts && vitest run -c vitest.unit.config.ts", "test:integration": "npm run build:contracts && vitest run -c vitest.integration.config.ts", "test:integration:postgres": "node scripts/require-postgres-integration-env.mjs && npm run build:contracts && vitest run -c vitest.integration.postgres.config.ts", "test:integration:postgres:chaos": "node scripts/require-postgres-integration-env.mjs && npm run build:contracts && GANTRY_POSTGRES_LANE=chaos vitest run -c vitest.integration.postgres.config.ts", "test:integration:postgres:hot-path": "node scripts/require-postgres-integration-env.mjs && npm run build:contracts && GANTRY_POSTGRES_LANE=hot-path GANTRY_POSTGRES_HOT_PATH=1 vitest run -c vitest.integration.postgres.config.ts", "test:e2e": "npm run build:contracts && vitest run -c vitest.e2e.config.ts", "test:e2e:postgres": "node scripts/require-postgres-integration-env.mjs && npm run build:contracts && vitest run -c vitest.e2e.postgres.config.ts", "test:e2e:agent:hermetic": "node scripts/require-postgres-integration-env.mjs && npm run build:contracts && vitest run -c vitest.agent-e2e.config.ts", "test:e2e:agent:turn": "node scripts/require-postgres-integration-env.mjs && npm run build:contracts && vitest run -c vitest.agent-e2e.config.ts apps/core/test/agent-e2e/scenarios/haiku-turn.agent-e2e.test.ts", "test:watch": "npm run build:contracts && vitest -c vitest.config.ts" }, "dependencies": { "@anthropic-ai/claude-agent-sdk": "0.3.156", "@anthropic-ai/sandbox-runtime": "0.0.81", "@anthropic-ai/sdk": "^0.100.1", "@aws-sdk/client-s3": "3.1066.0", "@aws-sdk/client-secrets-manager": "^3.1066.0", "@aws-sdk/credential-provider-node": "^3.972.55", "@clack/prompts": "^1.2.0", "@gantry/contracts": "file:packages/contracts", "@grammyjs/auto-retry": "^2.0.2", "@langchain/core": "1.1.48", "@langchain/langgraph-checkpoint-postgres": "1.0.3", "@langchain/mcp-adapters": "1.1.3", "@langchain/openai": "1.4.7", "@langchain/openrouter": "0.3.0", "@modelcontextprotocol/sdk": "^1.32.1", "@opentelemetry/api": "^1.9.1", "@opentelemetry/exporter-trace-otlp-http": "^0.220.0", "@opentelemetry/resources": "^2.9.0", "@opentelemetry/sdk-trace-node": "^2.9.0", "@slack/bolt": "^4.7.0", "ajv": "^8.20.0", "cron-parser": "5.5.0", "deepagents": "1.10.2", "drizzle-orm": "^0.45.2", "google-auth-library": "^10.7.0", "grammy": "^1.42.0", "jose": "^6.2.9", "langchain": "1.4.4", "officeparser": "^6.1.1", "pdfjs-dist": "^6.2.108", "pg": "^8.16.3", "pg-boss": "^12.16.0", "playwright-core": "1.60.0-alpha-2026-04-27", "tldts": "^7.0.30", "zod": "^4.6.7" }, "devDependencies": { "@eslint/js": "^9.35.0", "@gantry/sdk": "file:packages/sdk", "@types/node": "^24.12.2", "@types/pg": "^8.15.5", "@vitest/coverage-v8": "^4.1.4", "drizzle-kit": "^0.31.5", "eslint": "^9.35.0", "eslint-plugin-no-catch-all": "^1.1.0", "globals": "^15.12.0", "husky": "^9.1.7", "openapi-typescript": "^7.13.0", "prettier": "^3.8.1", "tsx": "^4.19.0", "typescript": "^5.7.0", "typescript-eslint": "^8.35.0", "vitest": "^4.0.18" }, "engines": { "node": ">=24 <25" }, "overrides": { "@anthropic-ai/sandbox-runtime@0.0.81": { "zod": "$zod" }, "@gantry/web": { "zod": "$zod" }, "express": { "body-parser": "2.4.0" }, "esbuild": "0.28.0", "form-data": "4.0.6", "hono": "4.13.11", "ws": "8.21.0", "qs": "6.16.1", "fast-uri": "^3.1.9", "@emnapi/core": "^1.11.3", "@emnapi/runtime": "^1.11.3", "@emnapi/wasi-threads": "^1.2.3", "pdfjs-dist": "^6.2.108" } }