{"bin":{"oppi":"dist/src/cli.js"},"bugs":{"url":"https://github.com/duh17/oppi/issues"},"dist":{"shasum":"1f4a8c5ffcb422936514ecfa6b270387cb02e6ff","tarball":"https://registry.npmjs.org/oppi-server/-/oppi-server-0.51.0.tgz","fileCount":366,"integrity":"sha512-9C9Ym90RRlRavGMdbxktX1glBZv+TmME/4kMVTrxmzGa0w8oO9Spc6C7W1NdIfJ4h149lt8Iin5p13tjdIi5eQ==","signatures":[{"sig":"MEYCIQD5L0CvJBfSrR2a5o5ZGRVAPpUfy0NbW10UdxOglPnSxgIhAIp2h3lr7pjZeay5HvIJPNiSYI314VEyvIN6MLc7RFPf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCID7NxJuqvzpd2R9XxBADY5shSpp/5EqgEzC4t6vndvUKAiEAwr6SBlOVxKmz3U4pdztu9RcoXX7NG84f9Op5sDtqLJg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20392938},"knip":{"ignoreIssues":{"src/tts-provider.ts":["exports","types"]}},"main":"dist/src/cli.js","name":"oppi-server","type":"module","types":"./dist/src/cli.d.ts","author":{"name":"Chaos Donkey"},"engines":{"node":">=22.19.0"},"gitHead":"b747bb59c9d9f0f79bca86d725c2730439eb6882","license":"MIT","scripts":{"dev":"tsx --preserve-symlinks watch src/cli.ts serve","lint":"eslint src/ extensions/ bench/","test":"vitest run","bench":"npm run bench:correctness && npm run bench:perf:gate","build":"bash -c 'npm run clean && npm run compile && node scripts/copy-oppi-docs.mjs && chmod +x dist/src/cli.js'","check":"node scripts/check-installed-deps.mjs && prettier --version >/dev/null && bash -c 'pids=(); npm run typecheck & pids+=($!); npm run protocol:fixtures:typecheck & pids+=($!); eslint src/ extensions/ bench/ & pids+=($!); knip & pids+=($!); prettier --check --ignore-unknown src/ extensions/ bench/ & pids+=($!); bun scripts/check-architecture-boundaries.ts & pids+=($!); bun scripts/check-compose-mounts.ts & pids+=($!); rc=0; for p in \"${pids[@]}\"; do wait \"$p\" || rc=1; done; exit $rc'","clean":"rm -rf dist","start":"node dist/src/cli.js serve","format":"prettier --write --ignore-unknown src/ extensions/ bench/","compile":"node node_modules/@typescript/native/bin/tsc","prepack":"npm run build && npm run check:pi-release-versions && npm run check:pack-contents","prepare":"bash -c 'npm run clean && npm run compile && node scripts/copy-oppi-docs.mjs && chmod +x dist/src/cli.js'","lint:fix":"eslint src/ extensions/ bench/ --fix","test:e2e":"vitest run --config vitest.e2e.config.ts","dead-code":"knip","typecheck":"node node_modules/@typescript/native/bin/tsc --noEmit","bench:gate":"npm run bench","bench:perf":"npm run bench:hotpath","test:watch":"vitest","check:server":"node scripts/check-installed-deps.mjs && prettier --version >/dev/null && bash -c 'pids=(); npm run typecheck & pids+=($!); npm run protocol:fixtures:typecheck & pids+=($!); eslint src/ extensions/ bench/ & pids+=($!); knip & pids+=($!); prettier --check --ignore-unknown src/ extensions/ bench/ & pids+=($!); bun scripts/check-architecture-boundaries.ts --scope server & pids+=($!); bun scripts/check-compose-mounts.ts & pids+=($!); rc=0; for p in \"${pids[@]}\"; do wait \"$p\" || rc=1; done; exit $rc'","format:check":"prettier --check --ignore-unknown src/ extensions/ bench/","mounts:check":"bun scripts/check-compose-mounts.ts","bench:compare":"tsx bench/compare-metrics.ts","bench:hotpath":"tsx bench/server-hotpath.bench.ts","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:e2e:clean":"node scripts/e2e-clean.mjs","test:e2e:linux":"vitest run --config vitest.e2e.config.ts","test:e2e:quick":"npm run test:e2e:clean && E2E_STRICT=1 vitest run --config vitest.e2e.config.ts e2e/quick-session-send","bench:perf:gate":"tsx bench/run-gate.ts --suite hotpath --runs 3 --metric-set avg --max-regression-pct 15 --min-baseline-us 0.2 --max-absolute-regression-us 0.05","telemetry:import":"node scripts/manual/telemetry-import-sqlite.mjs","telemetry:review":"bun scripts/telemetry-review.ts","test:e2e:pairing":"vitest run --config vitest.e2e.config.ts e2e/pairing-flow","test:e2e:session":"vitest run --config vitest.e2e.config.ts e2e/paired-session","bench:correctness":"npm run check && npm test","test:gate:pr-fast":"bun scripts/testing-gates.ts pr-fast","test:proxy-review":"vitest run --config vitest.proxy-review.config.ts","architecture:check":"bun scripts/check-architecture-boundaries.ts","bench:hotpath:gate":"npm run bench:correctness && tsx bench/run-gate.ts --suite hotpath --runs 3 --metric-set avg --max-regression-pct 15 --min-baseline-us 0.2 --max-absolute-regression-us 0.05","diagnostics:review":"bun scripts/diagnostics-review.ts","check:pack-contents":"node scripts/check-pack-contents.mjs","telemetry:metrickit":"bun scripts/metrickit-review.ts","telemetry:grafana:up":"docker compose -f docker-compose.telemetry.yml up -d","telemetry:server-log":"bun scripts/server-log-review.ts","telemetry:client-logs":"bun scripts/client-log-review.ts","telemetry:review:gate":"bun scripts/telemetry-review.ts --days 3 --gate","test:gate:ci-coverage":"bun scripts/testing-gates.ts ci-coverage","telemetry:grafana:down":"docker compose -f docker-compose.telemetry.yml down","telemetry:import:watch":"node scripts/manual/telemetry-import-sqlite.mjs --watch","test:e2e:paired-compat":"E2E_NATIVE=1 npm run test:e2e:clean && E2E_NATIVE=1 vitest run --config vitest.e2e.config.ts e2e/paired-session","test:gate:nightly-deep":"bun scripts/testing-gates.ts nightly-deep","bench:tailscale-network":"bun e2e/run-tailscale-network-benchmark.ts","protocol:fixtures:update":"tsx scripts/update-protocol-fixtures.ts","test:e2e:auth-connection":"E2E_NATIVE=1 npm run test:e2e:clean && E2E_NATIVE=1 vitest run --config vitest.e2e.config.ts e2e/pairing-flow e2e/paired-session","check:pi-release-versions":"node scripts/check-pi-release-versions.mjs","protocol:fixtures:typecheck":"node node_modules/@typescript/native/bin/tsc --noEmit -p tsconfig.protocol-fixtures.json"},"_npmUser":{"name":"chaosdonkey","email":"eaters_velours.86@icloud.com"},"homepage":"https://github.com/duh17/oppi/tree/main/server#readme","keywords":["coding-agent","mobile","cli","llm","anthropic","claude"],"overrides":{"protobufjs":"7.6.5","brace-expansion":"5.0.12","fast-xml-builder":"^1.1.9","@earendil-works/gondolin":{"undici":"6.28.0"}},"repository":{"url":"git+https://github.com/duh17/oppi.git","type":"git","directory":"server"},"_npmVersion":"11.19.1","description":"Self-hosted server for the Oppi mobile coding agent","directories":{},"maintainers":[{"name":"chaosdonkey","email":"eaters_velours.86@icloud.com"}],"_nodeVersion":"26.8.2","dependencies":{"ws":"8.21.2","typebox":"1.1.28","diff-match-patch":"^1.0.5","@earendil-works/chord":"1.0.4","@earendil-works/pi-ai":"1.0.4","@earendil-works/pi-tui":"1.0.4","@earendil-works/gondolin":"0.12.0","@earendil-works/pi-server":"1.0.4","@earendil-works/pi-durable":"1.0.4","@earendil-works/pi-coding-agent":"1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","knip":"^5.83.1","eslint":"10.8.0","vitest":"^4.1.11","prettier":"^3.8.1","@types/ws":"^8.5.12","@eslint/js":"10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","typescript-eslint":"^8.54.0","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^4.1.11","eslint-config-prettier":"^10.1.8","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/oppi-server_0.51.0_1791258649645_0.3699063444208204","host":"s3://npm-registry-packages-npm-production"},"_id":"oppi-server@0.51.0","version":"0.51.0"}