tests/ 디렉터리가 비어 있었고 package.json의 두 스크립트가 삭제된 파일을 가리킨 채 방치돼 있었음: - test → tests/test-v2.ts (존재하지 않음) - gateway → src/gateway/server-v2.ts (v4.3.5에서 삭제됨) 즉 npm test가 몇 달간 실행 자체가 불가능한 상태였고, 그 대가로 프롬프트 게이트 정규식을 고칠 때마다 node -e 임시 스크립트를 손으로 짜고 버리는 일이 반복됐음 (2026-07-29 하루에만 5회). 회귀 방지는 하나도 남지 않았음. - Node 22 내장 러너(node:test) + tsx 사용, 테스트 프레임워크 의존성 없음 - tests/prompt-gates.test.ts (25) — 모델 동작을 강제/억제하는 정규식 게이트 전반 - tests/usage-log.test.ts (5) — Ollama 외 provider의 토큰 집계 단일 지점 - tests/README.md — 무엇을 왜 테스트하는지, 케이스 작성 규칙, 다음 확장 대상 - 전체 30개 통과, 0.6초 부수 성과 — 테스트가 실제 버그를 찾음: 케이스를 쓰면서 프로덕션 원문을 한 단어(GPU) 줄여 썼더니 실패했고, 그게 진짜 구멍이었음. "토큰 처리 속도 손실이 약 15%~25%"처럼 하드웨어 명사가 없는 처리량 날조는 SPEC_CONTEXT_KEYWORD에 걸리지 않아 그대로 통과하고 있었음 — 원문에 우연히 들어있던 "GPU" 덕에 잡히던 것. 토큰/대역폭/추론/처리속도를 키워드에 추가해 막고, 그 케이스를 테스트로 고정함(강수확률·할인율 오탐 없음 확인). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
79 lines
1.9 KiB
JSON
79 lines
1.9 KiB
JSON
{
|
|
"name": "smallclaw",
|
|
"version": "4.3.11",
|
|
"description": "Local AI agent framework powered by Ollama - OpenClaw alternative",
|
|
"main": "dist/index.js",
|
|
"bin": {
|
|
"smallclaw": "./dist/cli/index.js"
|
|
},
|
|
"scripts": {
|
|
"prepare": "npm run build",
|
|
"build": "rm -rf dist && tsc",
|
|
"dev": "tsx src/cli/index.ts",
|
|
"start": "node dist/cli/index.js",
|
|
"gateway": "tsx src/gateway/server.ts",
|
|
"test": "tsx --test tests/*.test.ts",
|
|
"test:watch": "tsx --test --watch tests/*.test.ts"
|
|
},
|
|
"files": [
|
|
"dist/",
|
|
"web-ui/",
|
|
"workspace/SOUL.md",
|
|
"workspace/SELF.md",
|
|
"workspace/IDENTITY.md",
|
|
"workspace/USER.md",
|
|
"workspace/MEMORY.md",
|
|
"workspace/AGENTS.md",
|
|
"workspace/TOOLS.md",
|
|
"workspace/BOOT.md"
|
|
],
|
|
"keywords": [
|
|
"ai",
|
|
"agent",
|
|
"ollama",
|
|
"automation",
|
|
"openclaw"
|
|
],
|
|
"author": "",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@xterm/addon-fit": "^0.10.0",
|
|
"@xterm/addon-web-links": "^0.11.0",
|
|
"@xterm/xterm": "^5.5.0",
|
|
"archiver": "^7.0.1",
|
|
"avr8js": "^0.21.0",
|
|
"better-sqlite3": "^12.9.0",
|
|
"chromadb": "^3.5.0",
|
|
"commander": "^14.0.3",
|
|
"cors": "^2.8.6",
|
|
"croner": "^10.0.1",
|
|
"dotenv": "^17.4.2",
|
|
"esptool-js": "^0.4.1",
|
|
"express": "^5.2.1",
|
|
"imapflow": "^1.3.3",
|
|
"mailparser": "^3.9.8",
|
|
"monaco-editor": "^0.52.0",
|
|
"node-pty": "^1.1.0",
|
|
"nodemailer": "^8.0.7",
|
|
"ollama": "^0.6.3",
|
|
"onvif": "^0.8.1",
|
|
"playwright": "^1.59.1",
|
|
"pptxgenjs": "^4.0.1",
|
|
"rp2040js": "^1.3.3",
|
|
"tesseract.js": "^7.0.0",
|
|
"ws": "^8.20.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/archiver": "^6.0.3",
|
|
"@types/better-sqlite3": "^7.6.13",
|
|
"@types/cors": "^2.8.19",
|
|
"@types/express": "^5.0.6",
|
|
"@types/mailparser": "^3.4.6",
|
|
"@types/node": "^25.6.0",
|
|
"@types/nodemailer": "^8.0.0",
|
|
"@types/ws": "^8.18.1",
|
|
"tsx": "^4.21.0",
|
|
"typescript": "^5.3.0"
|
|
}
|
|
}
|