- pnpm monorepo: apps/api (Fastify + SQLite + SSE), apps/web (React+Vite), packages/shared, packages/pi-adapter - Local auth (admin/webhook-runner roles) + Keycloak JWT ready - Multi-session chat with reliable history (user persisted before LLM, assistant persisted after stream) - Markdown knowledge base with /api/docs/search + /api/docs/:id - YAML webhook catalog with backend-only execution, retry/backoff, audit (webhook_runs), and per-user rate limit - Skills config (sre-on-call, blameless-postmortem, security-incident) injected into LLM system prompt - LLM provider failover chain (config/models.yml fallback + LLM_FALLBACK_CHAIN override) - Context-aware webhooks panel + backend id-mention safety net - Per-message stats (time/duration/tokens/model), Markdown+GFM render, code & table copy/download buttons - Vitest suite, end-to-end smoke test (scripts/smoke.mjs), per-session system prompt override - /metrics Prometheus endpoint + /api/metrics JSON, request-id correlation - dotenv with explicit repo-root path; envString/envNumber helpers (handles empty-string env) - Runbooks + SOPs under knowledge/ in English; README, docs, and INDEX.md in English
22 lines
522 B
JSON
22 lines
522 B
JSON
{
|
|
"name": "pi-chat-harness",
|
|
"private": true,
|
|
"version": "0.1.0",
|
|
"type": "module",
|
|
"packageManager": "pnpm@9.15.0",
|
|
"scripts": {
|
|
"dev": "pnpm -r --parallel dev",
|
|
"lint": "pnpm -r lint",
|
|
"typecheck": "pnpm -r typecheck",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"smoke": "node scripts/smoke.mjs",
|
|
"smoke:mock": "node scripts/smoke.mjs --mock-llm",
|
|
"mock:llm": "node scripts/mock-llm.mjs"
|
|
},
|
|
"devDependencies": {
|
|
"typescript": "^5.8.3",
|
|
"vitest": "^4.1.9"
|
|
}
|
|
}
|