69d3acda5d
- Add LLM client abstraction (src/llm-client.ts) with factory pattern - Add OpenAI-compatible external client (src/external-llm-client.ts) - Add Kimi.com client using Anthropic-based API (src/kimi-llm-client.ts) - Add Pi native LLM stub (src/pi-llm-client.ts) for future ExtensionAPI wiring - Add SHA-256 disk cache at ~/.cache/pi-project-map/ (src/llm-cache.ts) - Add parallel batching with p-limit, retry + exponential backoff (src/llm-batch.ts) - Rewrite llm-extract.ts to use real LLM calls with structured prompts - File-level: PURPOSE, DEPS, CONCEPTS - Package-level: ROLE, ARCH - Context truncation, 50KB skip, cache before LLM call - Wire CLI with --llm-provider, --llm-model, --llm-base-url flags - Update config.ts with llmProvider, llmBaseUrl fields - Update init.ts and patch.ts to accept optional LLMClient - Add sample project fixture for manual testing - Add tests: llm-cache (3), llm-batch (5), llm-integration (8 with real Kimi API), pi-extension (14 mocked) - All 56 tests pass
54 lines
1.2 KiB
JSON
54 lines
1.2 KiB
JSON
{
|
|
"name": "pi-project-map",
|
|
"version": "0.1.0",
|
|
"description": "Pi skill for hierarchical project analysis — generates and maintains .pi-map.md files",
|
|
"main": "dist/index.js",
|
|
"types": "dist/index.d.ts",
|
|
"bin": {
|
|
"project-map": "dist/cli.js"
|
|
},
|
|
"scripts": {
|
|
"build": "tsc",
|
|
"dev": "tsc --watch",
|
|
"test": "vitest",
|
|
"lint": "eslint src/**/*.ts",
|
|
"typecheck": "tsc --noEmit"
|
|
},
|
|
"keywords": [
|
|
"pi",
|
|
"skill",
|
|
"project-analysis",
|
|
"code-intelligence",
|
|
"agent-context"
|
|
],
|
|
"author": "",
|
|
"license": "MIT",
|
|
"pi": {
|
|
"extensions": [
|
|
"./pi-extension.ts"
|
|
],
|
|
"skills": [
|
|
"./SKILL.md"
|
|
]
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^20.0.0",
|
|
"@typescript-eslint/eslint-plugin": "^6.0.0",
|
|
"@typescript-eslint/parser": "^6.0.0",
|
|
"eslint": "^8.0.0",
|
|
"tsx": "^4.22.4",
|
|
"typescript": "^5.3.0",
|
|
"vitest": "^1.0.0"
|
|
},
|
|
"dependencies": {
|
|
"ignore": "^5.3.0",
|
|
"openai": "^6.42.0",
|
|
"p-limit": "^7.3.0",
|
|
"picocolors": "^1.1.1",
|
|
"tree-sitter": "^0.21.0",
|
|
"tree-sitter-go": "^0.25.0",
|
|
"tree-sitter-python": "^0.25.0",
|
|
"tree-sitter-typescript": "^0.21.0"
|
|
}
|
|
}
|