Code intelligence (LSP): - src/codeintel/lspManager.ts: lazy per-language LSP server lifecycle (tsserver/pyright/gopls/clangd/rust-analyzer), didOpen/didChange sync, definition/references/diagnostics, notifyFileChanged, shutdownAll. Fix stream typing (StreamMessageReader/Writer) + MarkupContent→string. - src/tools/codeIntel.ts: definition/references/diagnostics read-only tools. - tools/index.ts: register the three LSP tools. - agent/loop.ts: wire notifyFileChanged into the FileChanged hook path (fire-and-forget, best-effort) so live servers stay in sync with disk. - ui/ink/index.tsx: shutdownAll on exit so spawned servers aren't orphaned. Parallel sub-agent orchestration: - agent/session.ts: session.mutationGate promise chain serializes every mutating tool call across the session (incl. parallel sub-agents that share the parent session) so they can't race on the single permission slot or interleave filesystem writes. Read-only tools stay concurrent. - agent/loop.ts: runUnderMutationGate wraps mutating tool execution; sub-agents inherit the parent's gate. - tools/agentTool.ts: `tasks` array runs N sub-agents in parallel; one failure surfaces as that task's error, not a rejected batch. - tools/types.ts: SubAgentResult type. Other: - cli.ts + mcp/client.ts: read version from package.json instead of hardcoding "0.3.1". - agent/parallelAgents.test.ts: parallel batch + mutation-gate tests. - Remove scratch guardtest2.mjs. Verified: typecheck clean, build 245.85 KB, 219 tests pass.
57 lines
1.3 KiB
JSON
57 lines
1.3 KiB
JSON
{
|
|
"name": "locode",
|
|
"version": "0.5.2",
|
|
"description": "Agentic coding CLI for local models served via Ollama and LM Studio",
|
|
"type": "module",
|
|
"bin": {
|
|
"locode": "dist/cli.js"
|
|
},
|
|
"files": [
|
|
"dist"
|
|
],
|
|
"engines": {
|
|
"node": ">=20"
|
|
},
|
|
"scripts": {
|
|
"build": "tsup",
|
|
"dev": "tsx src/cli.ts",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "vitest run",
|
|
"prepublishOnly": "npm run build"
|
|
},
|
|
"dependencies": {
|
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
"@vscode/ripgrep": "^1.18.0",
|
|
"commander": "^13.0.0",
|
|
"diff": "^9.0.0",
|
|
"env-paths": "^4.0.0",
|
|
"execa": "^9.6.1",
|
|
"fast-glob": "^3.3.3",
|
|
"ink": "^7.1.0",
|
|
"ink-select-input": "^6.2.0",
|
|
"ink-spinner": "^5.0.0",
|
|
"ink-text-input": "^6.0.0",
|
|
"marked": "^15.0.12",
|
|
"marked-terminal": "^7.3.0",
|
|
"openai": "^6.45.0",
|
|
"react": "^19.2.7",
|
|
"string-width": "^8.2.1",
|
|
"tree-kill": "^1.2.2",
|
|
"vscode-languageserver-protocol": "^3.18.2",
|
|
"vscode-uri": "^3.1.0",
|
|
"zod": "^4.4.3"
|
|
},
|
|
"devDependencies": {
|
|
"@types/marked-terminal": "^6.1.1",
|
|
"@types/node": "^22.10.0",
|
|
"@types/react": "^19.2.17",
|
|
"tsup": "^8.3.0",
|
|
"tsx": "^4.19.0",
|
|
"typescript": "^5.7.0",
|
|
"vitest": "^3.0.0"
|
|
},
|
|
"allowScripts": {
|
|
"esbuild@0.27.2": true
|
|
}
|
|
}
|