create-skybridge 0.0.0-dev.0b0443a → 0.0.0-dev.0d1e28a
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/dist/index.js +5 -7
- package/package.json +1 -1
- package/template/README.md +12 -1
- package/template/nodemon.json +5 -0
- package/template/package.json +27 -10
- package/template/pnpm-workspace.yaml +1 -7
- package/template/tsconfig.json +23 -0
- package/template/tsconfig.server.json +11 -0
- package/template/web/vite.config.ts +1 -1
- package/template/server/nodemon.json +0 -5
- package/template/server/package.json +0 -32
- package/template/server/tsconfig.json +0 -17
- package/template/web/package.json +0 -24
- package/template/web/tsconfig.app.json +0 -34
- package/template/web/tsconfig.json +0 -13
- package/template/web/tsconfig.node.json +0 -26
package/dist/index.js
CHANGED
|
@@ -102,18 +102,16 @@ export async function init(args = process.argv.slice(2)) {
|
|
|
102
102
|
// Copy template to target directory
|
|
103
103
|
fs.cpSync(templateDir, root, {
|
|
104
104
|
recursive: true,
|
|
105
|
-
filter: (src) => !src.endsWith(
|
|
105
|
+
filter: (src) => [".npmrc", "pnpm-workspace.yaml"].every((file) => !src.endsWith(file)),
|
|
106
106
|
});
|
|
107
107
|
// Rename _gitignore to .gitignore
|
|
108
108
|
fs.renameSync(path.join(root, "_gitignore"), path.join(root, ".gitignore"));
|
|
109
109
|
// Update project name in package.json
|
|
110
110
|
const name = path.basename(root);
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
fs.writeFileSync(pkgPath, fixed);
|
|
116
|
-
}
|
|
111
|
+
const pkgPath = path.join(root, "package.json");
|
|
112
|
+
const pkg = fs.readFileSync(pkgPath, "utf-8");
|
|
113
|
+
const fixed = pkg.replace(/apps-sdk-template/g, name);
|
|
114
|
+
fs.writeFileSync(pkgPath, fixed);
|
|
117
115
|
prompts.log.success(`Project created in ${root}`);
|
|
118
116
|
prompts.outro(`Done! Next steps:\n\n cd ${targetDir}\n pnpm install\n pnpm dev`);
|
|
119
117
|
}
|
package/package.json
CHANGED
package/template/README.md
CHANGED
|
@@ -7,7 +7,6 @@ A minimal TypeScript template for building OpenAI Apps SDK compatible MCP server
|
|
|
7
7
|
### Prerequisites
|
|
8
8
|
|
|
9
9
|
- Node.js 22+
|
|
10
|
-
- pnpm (install with `npm install -g pnpm`)
|
|
11
10
|
- HTTP tunnel such as [ngrok](https://ngrok.com/download)
|
|
12
11
|
|
|
13
12
|
### Local Development
|
|
@@ -15,7 +14,13 @@ A minimal TypeScript template for building OpenAI Apps SDK compatible MCP server
|
|
|
15
14
|
#### 1. Install
|
|
16
15
|
|
|
17
16
|
```bash
|
|
17
|
+
npm install
|
|
18
|
+
# or
|
|
19
|
+
yarn install
|
|
20
|
+
# or
|
|
18
21
|
pnpm install
|
|
22
|
+
# or
|
|
23
|
+
bun install
|
|
19
24
|
```
|
|
20
25
|
|
|
21
26
|
#### 2. Start your local server
|
|
@@ -23,7 +28,13 @@ pnpm install
|
|
|
23
28
|
Run the development server from the root directory:
|
|
24
29
|
|
|
25
30
|
```bash
|
|
31
|
+
npm run dev
|
|
32
|
+
# or
|
|
33
|
+
yarn dev
|
|
34
|
+
# or
|
|
26
35
|
pnpm dev
|
|
36
|
+
# or
|
|
37
|
+
bun dev
|
|
27
38
|
```
|
|
28
39
|
|
|
29
40
|
This command starts an Express server on port 3000. This server packages:
|
package/template/package.json
CHANGED
|
@@ -4,18 +4,35 @@
|
|
|
4
4
|
"private": true,
|
|
5
5
|
"description": "Alpic MCP Server Template",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"packageManager": "pnpm@10.18.3",
|
|
8
7
|
"scripts": {
|
|
9
|
-
"dev": "
|
|
10
|
-
"build": "
|
|
11
|
-
"start": "
|
|
12
|
-
"inspector": "
|
|
13
|
-
"server:build": "
|
|
14
|
-
"server:start": "
|
|
15
|
-
"web:build": "
|
|
16
|
-
"web:preview": "
|
|
8
|
+
"dev": "nodemon",
|
|
9
|
+
"build": "vite build -c web/vite.config.ts && shx rm -rf server/dist && tsc -p tsconfig.server.json && shx cp -r web/dist server/dist/assets",
|
|
10
|
+
"start": "node server/dist/index.js",
|
|
11
|
+
"inspector": "mcp-inspector http://localhost:3000/mcp",
|
|
12
|
+
"server:build": "tsc -p tsconfig.server.json",
|
|
13
|
+
"server:start": "node server/dist/index.js",
|
|
14
|
+
"web:build": "tsc -b web && vite build -c web/vite.config.ts",
|
|
15
|
+
"web:preview": "vite preview -c web/vite.config.ts"
|
|
16
|
+
},
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"@modelcontextprotocol/sdk": "^1.24.3",
|
|
19
|
+
"express": "^5.1.0",
|
|
20
|
+
"react": "^19.1.1",
|
|
21
|
+
"react-dom": "^19.1.1",
|
|
22
|
+
"skybridge": "0.15.3",
|
|
23
|
+
"vite": "^7.1.11",
|
|
24
|
+
"zod": "^4.1.13"
|
|
17
25
|
},
|
|
18
26
|
"devDependencies": {
|
|
19
|
-
"
|
|
27
|
+
"@modelcontextprotocol/inspector": "^0.17.5",
|
|
28
|
+
"@types/express": "^5.0.3",
|
|
29
|
+
"@types/node": "^22.15.30",
|
|
30
|
+
"@types/react": "^19.1.16",
|
|
31
|
+
"@types/react-dom": "^19.1.9",
|
|
32
|
+
"@vitejs/plugin-react": "^5.0.4",
|
|
33
|
+
"nodemon": "^3.1.10",
|
|
34
|
+
"shx": "^0.3.4",
|
|
35
|
+
"tsx": "^4.19.4",
|
|
36
|
+
"typescript": "^5.7.2"
|
|
20
37
|
}
|
|
21
38
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"moduleResolution": "bundler",
|
|
6
|
+
"lib": ["ES2022", "DOM", "DOM.Iterable"],
|
|
7
|
+
"jsx": "react-jsx",
|
|
8
|
+
|
|
9
|
+
"strict": true,
|
|
10
|
+
"skipLibCheck": true,
|
|
11
|
+
"esModuleInterop": true,
|
|
12
|
+
"forceConsistentCasingInFileNames": true,
|
|
13
|
+
"verbatimModuleSyntax": true,
|
|
14
|
+
|
|
15
|
+
"noUnusedLocals": true,
|
|
16
|
+
"noUnusedParameters": true,
|
|
17
|
+
"noFallthroughCasesInSwitch": true,
|
|
18
|
+
|
|
19
|
+
"noEmit": true
|
|
20
|
+
},
|
|
21
|
+
"include": ["server/src", "web/src", "web/vite.config.ts"],
|
|
22
|
+
"exclude": ["dist", "node_modules"]
|
|
23
|
+
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@apps-sdk-template/server",
|
|
3
|
-
"version": "0.0.1",
|
|
4
|
-
"private": true,
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"description": "Alpic MCP Server Template",
|
|
7
|
-
"files": [
|
|
8
|
-
"dist"
|
|
9
|
-
],
|
|
10
|
-
"type": "module",
|
|
11
|
-
"scripts": {
|
|
12
|
-
"dev": "nodemon",
|
|
13
|
-
"build": "tsc",
|
|
14
|
-
"start": "node dist/index.js",
|
|
15
|
-
"inspector": "mcp-inspector http://localhost:3000/mcp"
|
|
16
|
-
},
|
|
17
|
-
"dependencies": {
|
|
18
|
-
"@modelcontextprotocol/sdk": "^1.24.3",
|
|
19
|
-
"express": "^5.1.0",
|
|
20
|
-
"skybridge": "catalog:",
|
|
21
|
-
"vite": "^7.1.11",
|
|
22
|
-
"zod": "^4.1.13"
|
|
23
|
-
},
|
|
24
|
-
"devDependencies": {
|
|
25
|
-
"@modelcontextprotocol/inspector": "^0.17.5",
|
|
26
|
-
"@types/express": "^5.0.3",
|
|
27
|
-
"@types/node": "^22.15.30",
|
|
28
|
-
"nodemon": "^3.1.10",
|
|
29
|
-
"tsx": "^4.19.2",
|
|
30
|
-
"typescript": "^5.7.2"
|
|
31
|
-
}
|
|
32
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ESNext",
|
|
4
|
-
"module": "ESNext",
|
|
5
|
-
"moduleResolution": "bundler",
|
|
6
|
-
"esModuleInterop": true,
|
|
7
|
-
"strict": true,
|
|
8
|
-
"skipLibCheck": true,
|
|
9
|
-
"forceConsistentCasingInFileNames": true,
|
|
10
|
-
"outDir": "dist",
|
|
11
|
-
"sourceMap": true,
|
|
12
|
-
"jsx": "react",
|
|
13
|
-
"inlineSources": true
|
|
14
|
-
},
|
|
15
|
-
"include": ["**/*.ts", "**/*.tsx"],
|
|
16
|
-
"exclude": ["dist", "node_modules"]
|
|
17
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@apps-sdk-template/web",
|
|
3
|
-
"private": true,
|
|
4
|
-
"version": "0.0.0",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"dev": "echo 'Not implemented",
|
|
8
|
-
"build": "tsc -b && vite build",
|
|
9
|
-
"preview": "vite preview"
|
|
10
|
-
},
|
|
11
|
-
"dependencies": {
|
|
12
|
-
"skybridge": "catalog:",
|
|
13
|
-
"react": "^19.1.1",
|
|
14
|
-
"react-dom": "^19.1.1"
|
|
15
|
-
},
|
|
16
|
-
"devDependencies": {
|
|
17
|
-
"@types/node": "^24.6.0",
|
|
18
|
-
"@types/react": "^19.1.16",
|
|
19
|
-
"@types/react-dom": "^19.1.9",
|
|
20
|
-
"@vitejs/plugin-react": "^5.0.4",
|
|
21
|
-
"typescript": "~5.9.3",
|
|
22
|
-
"vite": "^7.1.11"
|
|
23
|
-
}
|
|
24
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
|
|
4
|
-
"target": "ES2022",
|
|
5
|
-
"useDefineForClassFields": true,
|
|
6
|
-
"lib": ["ES2022", "DOM", "DOM.Iterable"],
|
|
7
|
-
"module": "ESNext",
|
|
8
|
-
"types": ["vite/client"],
|
|
9
|
-
"skipLibCheck": true,
|
|
10
|
-
|
|
11
|
-
/* Bundler mode */
|
|
12
|
-
"moduleResolution": "bundler",
|
|
13
|
-
"allowImportingTsExtensions": true,
|
|
14
|
-
"verbatimModuleSyntax": true,
|
|
15
|
-
"moduleDetection": "force",
|
|
16
|
-
"noEmit": true,
|
|
17
|
-
"jsx": "react-jsx",
|
|
18
|
-
|
|
19
|
-
/* Linting */
|
|
20
|
-
"strict": true,
|
|
21
|
-
"noUnusedLocals": true,
|
|
22
|
-
"noUnusedParameters": true,
|
|
23
|
-
"erasableSyntaxOnly": true,
|
|
24
|
-
"noFallthroughCasesInSwitch": true,
|
|
25
|
-
"noUncheckedSideEffectImports": true,
|
|
26
|
-
|
|
27
|
-
/* Shadcn Config */
|
|
28
|
-
"baseUrl": ".",
|
|
29
|
-
"paths": {
|
|
30
|
-
"@/*": ["./src/*"]
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
"include": ["src"]
|
|
34
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
|
|
4
|
-
"target": "ES2023",
|
|
5
|
-
"lib": ["ES2023"],
|
|
6
|
-
"module": "ESNext",
|
|
7
|
-
"types": ["node"],
|
|
8
|
-
"skipLibCheck": true,
|
|
9
|
-
|
|
10
|
-
/* Bundler mode */
|
|
11
|
-
"moduleResolution": "bundler",
|
|
12
|
-
"allowImportingTsExtensions": true,
|
|
13
|
-
"verbatimModuleSyntax": true,
|
|
14
|
-
"moduleDetection": "force",
|
|
15
|
-
"noEmit": true,
|
|
16
|
-
|
|
17
|
-
/* Linting */
|
|
18
|
-
"strict": true,
|
|
19
|
-
"noUnusedLocals": true,
|
|
20
|
-
"noUnusedParameters": true,
|
|
21
|
-
"erasableSyntaxOnly": true,
|
|
22
|
-
"noFallthroughCasesInSwitch": true,
|
|
23
|
-
"noUncheckedSideEffectImports": true
|
|
24
|
-
},
|
|
25
|
-
"include": ["vite.config.ts"]
|
|
26
|
-
}
|