add-coder 0.3.7 → 0.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "add-coder",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.9",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "[codein2027](https://github.com/xiaomingming92/codein2027) - A complete scaffolding for building the ADD programming paradigm, the implementation layer for AI code governance. Core principle: Audit as Infrastructure. Breaks the black-box programming process and cross-session amnesia, evolving programming paradigms into an auditable, traceable, and convergent new era. npx-ready.\n\n[codein2027](https://github.com/xiaomingming92/codein2027) 快速构建 ADD 编程范式的完整脚手架——AI 代码治理的落地方案。以「审计即基础设施」为核心,彻底打破编程过程黑盒与跨轮失忆,让编程范式进化为可审计、可追溯、可收敛的新时代。npx 即用,人人可体验。",
|
|
6
6
|
"repository": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_version": "0.3.
|
|
2
|
+
"_version": "0.3.9",
|
|
3
3
|
"adapters/claude/hooks/doc-format-guard.sh": "ec59ad3f",
|
|
4
4
|
"adapters/claude/hooks/lib/common.sh": "db321ef6",
|
|
5
5
|
"adapters/claude/hooks/lib/context-inject.sh": "4132f203",
|
|
@@ -197,7 +197,7 @@
|
|
|
197
197
|
"core/scripts/mcp-server/shared/fs.ts": "97257db9",
|
|
198
198
|
"core/scripts/mcp-server/shared/hitl-interaction.strategy.ts": "7c5c26f5",
|
|
199
199
|
"core/scripts/mcp-server/shared/package.json": "e3d5a4a2",
|
|
200
|
-
"core/scripts/mcp-server/shared/prisma.ts": "
|
|
200
|
+
"core/scripts/mcp-server/shared/prisma.ts": "e871942b",
|
|
201
201
|
"core/scripts/mcp-server/shared/project-root-strategy.ts": "1a5bdc57",
|
|
202
202
|
"core/scripts/mcp-server/shared/response.ts": "f7806b67",
|
|
203
203
|
"core/scripts/mcp-server/tasks/index.ts": "c040eb75",
|
|
@@ -7,15 +7,24 @@ import { createRequire } from "module"
|
|
|
7
7
|
const require = createRequire(import.meta.url)
|
|
8
8
|
|
|
9
9
|
// 多路径回退:PROJECT_ROOT 可能因 cwd/沙箱环境算错
|
|
10
|
+
// 客户端目录选择:默认 src/generated/prisma(单库项目无需配置)。
|
|
11
|
+
// 双库分离项目(add.prisma=postgres + 业务 schema=mysql)需显式设置环境变量
|
|
12
|
+
// PRISMA_CLIENT_DIR=add-prisma,否则会加载业务库 client 导致 provider mismatch
|
|
13
|
+
const clientDir = process.env.PRISMA_CLIENT_DIR || "prisma"
|
|
10
14
|
const candidates = [
|
|
11
|
-
join(PROJECT_ROOT,
|
|
12
|
-
join(PROJECT_ROOT,
|
|
13
|
-
join(process.cwd(),
|
|
14
|
-
join(process.cwd(),
|
|
15
|
+
join(PROJECT_ROOT, `src/generated/${clientDir}/client.ts`),
|
|
16
|
+
join(PROJECT_ROOT, `src/generated/${clientDir}/client.js`),
|
|
17
|
+
join(process.cwd(), `src/generated/${clientDir}/client.ts`),
|
|
18
|
+
join(process.cwd(), `src/generated/${clientDir}/client.js`),
|
|
15
19
|
// 从当前文件位置反推:shared/prisma.ts → 上 4 层到项目根
|
|
16
|
-
(() => { const d = dirname(fileURLToPath(import.meta.url)); const root = pathResolve(d, "..", "..", "..", ".."); return join(root,
|
|
17
|
-
(() => { const d = dirname(fileURLToPath(import.meta.url)); const root = pathResolve(d, "..", "..", "..", ".."); return join(root,
|
|
20
|
+
(() => { const d = dirname(fileURLToPath(import.meta.url)); const root = pathResolve(d, "..", "..", "..", ".."); return join(root, `src/generated/${clientDir}/client.ts`) })(),
|
|
21
|
+
(() => { const d = dirname(fileURLToPath(import.meta.url)); const root = pathResolve(d, "..", "..", "..", ".."); return join(root, `src/generated/${clientDir}/client.js`) })(),
|
|
18
22
|
]
|
|
23
|
+
// 双库分离项目提示:检测到 add-prisma 客户端但未显式选择时提醒用户自行决策
|
|
24
|
+
if (clientDir === "prisma" && existsSync(join(PROJECT_ROOT, "src/generated/add-prisma/client.ts"))) {
|
|
25
|
+
console.warn("[mcp-server] 检测到双库分离客户端目录 src/generated/add-prisma")
|
|
26
|
+
console.warn("[mcp-server] 若 DATABASE_URL 为 PostgreSQL,请设置环境变量 PRISMA_CLIENT_DIR=add-prisma 以避免 provider mismatch")
|
|
27
|
+
}
|
|
19
28
|
let prismaClientPath = candidates[0]
|
|
20
29
|
for (const p of candidates) { if (existsSync(p)) { prismaClientPath = p; break } }
|
|
21
30
|
// 用 createRequire 同步加载,避免 tsx CJS 模式下 top-level await 报错
|