@autodevjapan/godd-mcp-alpha 1.41.0 → 1.46.0
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/README.md +264 -44
- package/dist/godd.cjs +279 -241
- package/package.json +26 -13
- package/scripts/postinstall-godd-native.js +116 -0
- package/scripts/postinstall.js +25 -0
- package/scripts/write-sha256.js +12 -0
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@autodevjapan/godd-mcp-alpha",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.46.0",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"description": "GoDD MCP α Server — AI Prompt Delivery System for Cursor
|
|
5
|
+
"description": "GoDD MCP α Server — AI Prompt Delivery System for Cursor, Claude Code, Codex, Kimi CLI, and Antigravity",
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
7
|
"main": "dist/godd.cjs",
|
|
8
8
|
"bin": {
|
|
@@ -11,7 +11,10 @@
|
|
|
11
11
|
"files": [
|
|
12
12
|
"assets/godd-mcp-alpha-icon.png",
|
|
13
13
|
"dist/godd.cjs",
|
|
14
|
+
"scripts/postinstall.js",
|
|
15
|
+
"scripts/postinstall-godd-native.js",
|
|
14
16
|
"scripts/postinstall-godd-tk.js",
|
|
17
|
+
"scripts/write-sha256.js",
|
|
15
18
|
"README.md"
|
|
16
19
|
],
|
|
17
20
|
"engines": {
|
|
@@ -20,19 +23,24 @@
|
|
|
20
23
|
"keywords": [
|
|
21
24
|
"mcp",
|
|
22
25
|
"cursor",
|
|
26
|
+
"claude-code",
|
|
27
|
+
"codex",
|
|
28
|
+
"kimi",
|
|
29
|
+
"antigravity",
|
|
23
30
|
"ai",
|
|
24
31
|
"prompt",
|
|
25
32
|
"godd"
|
|
26
33
|
],
|
|
27
34
|
"scripts": {
|
|
28
|
-
"build": "node esbuild.config.js",
|
|
29
|
-
"build:release": "GODD_BUILD_MODE=release node esbuild.config.js",
|
|
35
|
+
"build": "pnpm generate:native-catalog && node esbuild.config.js",
|
|
36
|
+
"build:release": "pnpm generate:native-catalog && GODD_BUILD_MODE=release node esbuild.config.js",
|
|
37
|
+
"generate:native-catalog": "tsx scripts/generate-native-catalog.ts",
|
|
30
38
|
"typecheck": "tsc --noEmit",
|
|
31
39
|
"test": "vitest run",
|
|
32
40
|
"test:watch": "vitest",
|
|
33
41
|
"dev": "tsx src/index.ts serve",
|
|
34
|
-
"prepublishOnly": "
|
|
35
|
-
"postinstall": "node scripts/postinstall
|
|
42
|
+
"prepublishOnly": "pnpm build",
|
|
43
|
+
"postinstall": "node scripts/postinstall.js"
|
|
36
44
|
},
|
|
37
45
|
"dependencies": {
|
|
38
46
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
@@ -40,12 +48,12 @@
|
|
|
40
48
|
"zod": "4.4.3"
|
|
41
49
|
},
|
|
42
50
|
"devDependencies": {
|
|
43
|
-
"@types/node": "
|
|
51
|
+
"@types/node": "26.1.1",
|
|
44
52
|
"esbuild": "0.28.1",
|
|
45
|
-
"tsx": "4.
|
|
46
|
-
"typescript": "
|
|
47
|
-
"vite": "8.1.
|
|
48
|
-
"vitest": "4.1.
|
|
53
|
+
"tsx": "4.23.1",
|
|
54
|
+
"typescript": "7.0.2",
|
|
55
|
+
"vite": "8.1.5",
|
|
56
|
+
"vitest": "4.1.10"
|
|
49
57
|
},
|
|
50
58
|
"pnpm": {
|
|
51
59
|
"onlyBuiltDependencies": [
|
|
@@ -54,8 +62,13 @@
|
|
|
54
62
|
"overrides": {
|
|
55
63
|
"esbuild": "0.28.1",
|
|
56
64
|
"rollup": ">=4.59.0",
|
|
57
|
-
"hono": ">=4.12.
|
|
58
|
-
"@hono/node-server": ">=
|
|
65
|
+
"hono": ">=4.12.32",
|
|
66
|
+
"@hono/node-server": ">=2.0.5",
|
|
67
|
+
"fast-uri": ">=3.1.4",
|
|
68
|
+
"express-rate-limit": ">=8.6.0",
|
|
69
|
+
"ip-address": ">=10.1.1",
|
|
70
|
+
"qs": ">=6.15.3",
|
|
71
|
+
"body-parser": ">=2.3.0"
|
|
59
72
|
}
|
|
60
73
|
}
|
|
61
74
|
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
chmodSync,
|
|
5
|
+
copyFileSync,
|
|
6
|
+
existsSync,
|
|
7
|
+
mkdirSync,
|
|
8
|
+
readFileSync,
|
|
9
|
+
renameSync,
|
|
10
|
+
rmSync,
|
|
11
|
+
} from "node:fs";
|
|
12
|
+
import { execFileSync } from "node:child_process";
|
|
13
|
+
import { createHash } from "node:crypto";
|
|
14
|
+
import { arch, homedir, platform } from "node:os";
|
|
15
|
+
import { join } from "node:path";
|
|
16
|
+
|
|
17
|
+
const REPOSITORY = "AutoDevJapan/GoDD-MCP-Alpha";
|
|
18
|
+
const VERSION_TAG = "godd-native-v0.1.0";
|
|
19
|
+
const EXPECTED_VERSION = "godd-native 0.1.0";
|
|
20
|
+
const ARTIFACTS = {
|
|
21
|
+
"darwin-x64": "godd-native-x86_64-apple-darwin",
|
|
22
|
+
"darwin-arm64": "godd-native-aarch64-apple-darwin",
|
|
23
|
+
"linux-x64": "godd-native-x86_64-unknown-linux-gnu",
|
|
24
|
+
"win32-x64": "godd-native-x86_64-pc-windows-msvc.exe",
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
function installDirectory() {
|
|
28
|
+
if (platform() === "win32") {
|
|
29
|
+
return join(
|
|
30
|
+
process.env.LOCALAPPDATA || join(homedir(), "AppData", "Local"),
|
|
31
|
+
"godd-native",
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
return join(homedir(), ".local", "bin");
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function installedBinary(directory) {
|
|
38
|
+
return join(directory, platform() === "win32" ? "godd-native.exe" : "godd-native");
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function main() {
|
|
42
|
+
const artifact = ARTIFACTS[`${platform()}-${arch()}`];
|
|
43
|
+
if (!artifact) {
|
|
44
|
+
console.error(`[godd-native] Unsupported platform: ${platform()}-${arch()}`);
|
|
45
|
+
process.exitCode = 1;
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const directory = installDirectory();
|
|
50
|
+
const destination = installedBinary(directory);
|
|
51
|
+
if (existsSync(destination)) {
|
|
52
|
+
try {
|
|
53
|
+
const version = execFileSync(destination, ["--version"], {
|
|
54
|
+
encoding: "utf-8",
|
|
55
|
+
timeout: 5_000,
|
|
56
|
+
}).trim();
|
|
57
|
+
if (version === EXPECTED_VERSION) return;
|
|
58
|
+
} catch {
|
|
59
|
+
// Replace a corrupt or incompatible existing binary.
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
try {
|
|
64
|
+
execFileSync("gh", ["--version"], { stdio: "ignore", timeout: 5_000 });
|
|
65
|
+
} catch {
|
|
66
|
+
console.error("[godd-native] GitHub CLI is required to download the private release artifact.");
|
|
67
|
+
process.exitCode = 1;
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
mkdirSync(directory, { recursive: true });
|
|
72
|
+
const temporaryDirectory = join(directory, ".download");
|
|
73
|
+
rmSync(temporaryDirectory, { recursive: true, force: true });
|
|
74
|
+
mkdirSync(temporaryDirectory, { recursive: true });
|
|
75
|
+
|
|
76
|
+
try {
|
|
77
|
+
execFileSync(
|
|
78
|
+
"gh",
|
|
79
|
+
[
|
|
80
|
+
"release",
|
|
81
|
+
"download",
|
|
82
|
+
VERSION_TAG,
|
|
83
|
+
"--repo",
|
|
84
|
+
REPOSITORY,
|
|
85
|
+
"--pattern",
|
|
86
|
+
`${artifact}*`,
|
|
87
|
+
"--dir",
|
|
88
|
+
temporaryDirectory,
|
|
89
|
+
"--clobber",
|
|
90
|
+
],
|
|
91
|
+
{ stdio: "pipe", timeout: 60_000 },
|
|
92
|
+
);
|
|
93
|
+
const downloaded = join(temporaryDirectory, artifact);
|
|
94
|
+
const expectedChecksum = readFileSync(`${downloaded}.sha256`, "utf-8").trim();
|
|
95
|
+
const actualChecksum = createHash("sha256")
|
|
96
|
+
.update(readFileSync(downloaded))
|
|
97
|
+
.digest("hex");
|
|
98
|
+
if (actualChecksum !== expectedChecksum) {
|
|
99
|
+
throw new Error(`Checksum mismatch for ${artifact}`);
|
|
100
|
+
}
|
|
101
|
+
const staged = `${destination}.tmp`;
|
|
102
|
+
copyFileSync(downloaded, staged);
|
|
103
|
+
if (platform() !== "win32") chmodSync(staged, 0o755);
|
|
104
|
+
rmSync(destination, { force: true });
|
|
105
|
+
renameSync(staged, destination);
|
|
106
|
+
} finally {
|
|
107
|
+
rmSync(temporaryDirectory, { recursive: true, force: true });
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
try {
|
|
112
|
+
main();
|
|
113
|
+
} catch (error) {
|
|
114
|
+
console.error(`[godd-native] Installation failed: ${error instanceof Error ? error.message : error}`);
|
|
115
|
+
process.exitCode = 1;
|
|
116
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { spawnSync } from "node:child_process";
|
|
4
|
+
import { dirname, join } from "node:path";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
6
|
+
|
|
7
|
+
const scriptsDirectory = dirname(fileURLToPath(import.meta.url));
|
|
8
|
+
const installers = [
|
|
9
|
+
["godd-native", "postinstall-godd-native.js"],
|
|
10
|
+
["godd-tk", "postinstall-godd-tk.js"],
|
|
11
|
+
];
|
|
12
|
+
|
|
13
|
+
for (const [name, script] of installers) {
|
|
14
|
+
const result = spawnSync(process.execPath, [join(scriptsDirectory, script)], {
|
|
15
|
+
stdio: "inherit",
|
|
16
|
+
timeout: 120_000,
|
|
17
|
+
});
|
|
18
|
+
if (result.error) {
|
|
19
|
+
console.error(`[${name}] Installer could not be executed: ${result.error.message}`);
|
|
20
|
+
} else if (result.status !== 0) {
|
|
21
|
+
console.error(
|
|
22
|
+
`[${name}] Installer exited with status ${result.status}; installation continues and the CLI will verify availability before use.`,
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { createHash } from "node:crypto";
|
|
4
|
+
import { readFileSync, writeFileSync } from "node:fs";
|
|
5
|
+
|
|
6
|
+
const artifact = process.argv[2];
|
|
7
|
+
if (!artifact) {
|
|
8
|
+
throw new Error("Usage: node write-sha256.js <artifact>");
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const checksum = createHash("sha256").update(readFileSync(artifact)).digest("hex");
|
|
12
|
+
writeFileSync(`${artifact}.sha256`, `${checksum}\n`, "utf-8");
|