package.json
Rama main · réplica de lectura del repositorio original.
{
"name": "@geminixiang/mikan",
"version": "1.6.0-beta.0",
"description": "Self-hosted AI coding agent for organizations: every Slack channel and DM gets its own sandboxed workspace, credentials, and memory.",
"keywords": [
"agent",
"ai",
"bot",
"discord",
"slack",
"telegram"
],
"license": "MIT",
"author": "geminixiang",
"repository": {
"type": "git",
"url": "git+https://github.com/geminixiang/mikan.git"
},
"bin": {
"mikan": "dist/main.js"
},
"files": [
"dist",
"CHANGELOG.md"
],
"type": "module",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/index.js"
},
"./package.json": "./package.json"
},
"scripts": {
"clean": "shx rm -rf dist",
"build": "npm run clean && tsgo -p src/tsconfig.build.json && shx chmod +x dist/main.js",
"dev": "tsgo -p src/tsconfig.build.json --watch --preserveWatchOutput",
"test": "vitest --run --config .config/vitest.config.ts",
"typecheck": "tsgo -p .config/tsconfig.typecheck.json",
"test:coverage": "vitest --run --coverage --config .config/vitest.config.ts",
"test:office:docker": "node scripts/verify-office-docker.mjs",
"lint": "oxlint -c .config/oxlintrc.json --deny-warnings",
"lint:fix": "oxlint -c .config/oxlintrc.json --fix",
"fmt": "oxfmt -c .config/oxfmtrc.json",
"fmt:check": "oxfmt -c .config/oxfmtrc.json --check",
"knip": "knip && knip --production --dependencies",
"duplication": "jscpd src --format typescript --min-tokens 70 --ignore \"**/test/**,**/*.test.ts,**/content/**\"",
"knip:unused": "knip --production --exclude files --no-exit-code",
"prepublishOnly": "npm run build",
"prepare": "husky",
"test:e2e": "vitest --run --config .config/vitest.e2e.config.ts",
"test:e2e:slack": "vitest --run --config .config/vitest.e2e.config.ts e2e/slack",
"test:e2e:slack:local": "npm run build && node scripts/run-local-slack-e2e.mjs",
"test:e2e:slack:coverage": "vitest --run --coverage --coverage.reportsDirectory=.workspace/coverage --config .config/vitest.e2e.config.ts e2e/slack",
"docs:dev": "astro dev --config .config/astro.config.mjs",
"docs:build": "astro build --config .config/astro.config.mjs",
"docs:preview": "astro preview --config .config/astro.config.mjs"
},
"dependencies": {
"@clack/prompts": "^1.8.1",
"@earendil-works/chord": "1.5.2",
"@earendil-works/pi-ai": "1.5.2",
"@earendil-works/pi-codemode": "1.5.2",
"@earendil-works/pi-durable": "1.5.2",
"@earendil-works/pi-env": "1.5.2",
"@earendil-works/pi-mcp": "1.5.2",
"@mdream/js": "^2.0.1",
"@novnc/novnc": "^1.7.0",
"@opentelemetry/api": "^1.9.1",
"@opentelemetry/exporter-metrics-otlp-proto": "^0.221.0",
"@opentelemetry/exporter-trace-otlp-proto": "^0.221.0",
"@opentelemetry/resources": "^2.10.0",
"@opentelemetry/sdk-metrics": "^2.10.0",
"@opentelemetry/sdk-trace-node": "^2.10.0",
"@sentry/node": "^10.60.0",
"@sentry/opentelemetry": "^10.68.0",
"@slack/socket-mode": "^2.0.7",
"@slack/web-api": "^8.0.0",
"chalk": "^5.6.2",
"commander": "^15.0.0",
"croner": "^10.0.1",
"discord.js": "^14.26.4",
"grammy": "^1.44.0",
"markdown-it": "^14.2.0",
"typebox": "1.3.27",
"undici": "^8.5.0"
},
"devDependencies": {
"@astrojs/mdx": "^7.0.0",
"@astrojs/starlight": "^0.41.0",
"@geminixiang/mikan-starlight-theme": "github:geminixiang/mikan-starlight-theme",
"@slack/types": "^3.0.0",
"@types/markdown-it": "^14.1.2",
"@types/node": "^26.0.1",
"@typescript/native-preview": "^7.0.0-dev.20260624.1",
"@vitest/coverage-v8": "^4.1.9",
"astro": "^7.0.2",
"husky": "^9.1.7",
"jscpd": "^5.3.3",
"knip": "^6.20.0",
"oxfmt": "^0.60.0",
"oxlint": "^1.71.0",
"remark-gfm": "^4.0.1",
"shx": "^0.4.0",
"typescript": "^6.0.3",
"vitest": "^4.1.9"
},
"overrides": {
"@discordjs/rest": {
"undici": "6.27.0"
},
"astro-expressive-code": {
"astro": "^4.0.0-beta || ^5.0.0-beta || ^3.3.0 || ^6.0.0-beta || ^7.0.0"
},
"discord.js": {
"undici": "6.27.0"
}
},
"engines": {
"node": ">=24.15.0"
},
"knip": {
"entry": [
"src/index.ts!",
"src/main.ts!",
"src/observability/instrument.ts!"
],
"ignore": [
".pi/**",
"scripts/**",
"deploy/**"
],
"astro": {
"config": [
".config/astro.config.mjs"
]
},
"vitest": {
"config": [
".config/vitest.config.ts",
".config/vitest.e2e.config.ts"
]
}
}
}