@coze-arch/cli 0.0.1-alpha.912cd5 → 0.0.1-alpha.9f719c

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.
Files changed (38) hide show
  1. package/lib/__templates__/expo/.coze +5 -0
  2. package/lib/__templates__/expo/.cozeproj/scripts/deploy_build.sh +25 -25
  3. package/lib/__templates__/expo/.cozeproj/scripts/deploy_run.sh +31 -56
  4. package/lib/__templates__/expo/.cozeproj/scripts/prod_build.sh +47 -0
  5. package/lib/__templates__/expo/.cozeproj/scripts/prod_run.sh +35 -0
  6. package/lib/__templates__/expo/_npmrc +1 -1
  7. package/lib/__templates__/expo/babel.config.js +10 -0
  8. package/lib/__templates__/expo/client/constants/theme.ts +10 -0
  9. package/lib/__templates__/expo/client/contexts/AuthContext.tsx +14 -107
  10. package/lib/__templates__/expo/client/hooks/useTheme.ts +1 -1
  11. package/lib/__templates__/expo/client/screens/home/index.tsx +1 -4
  12. package/lib/__templates__/expo/client/screens/home/styles.ts +1 -273
  13. package/lib/__templates__/expo/client/utils/index.ts +1 -2
  14. package/lib/__templates__/expo/metro.config.js +3 -5
  15. package/lib/__templates__/expo/package.json +8 -2
  16. package/lib/__templates__/expo/pnpm-lock.yaml +87 -5
  17. package/lib/__templates__/expo/src/index.ts +2 -2
  18. package/lib/__templates__/expo/template.config.js +1 -1
  19. package/lib/__templates__/nextjs/.coze +3 -3
  20. package/lib/__templates__/nextjs/_npmrc +1 -1
  21. package/lib/__templates__/nextjs/package.json +9 -3
  22. package/lib/__templates__/nextjs/pnpm-lock.yaml +2501 -1120
  23. package/lib/__templates__/nextjs/scripts/dev.sh +8 -27
  24. package/lib/__templates__/nextjs/src/app/layout.tsx +18 -22
  25. package/lib/__templates__/nextjs/template.config.js +1 -1
  26. package/lib/__templates__/templates.json +7 -0
  27. package/lib/__templates__/vite/.coze +3 -3
  28. package/lib/__templates__/vite/README.md +204 -26
  29. package/lib/__templates__/vite/_npmrc +1 -1
  30. package/lib/__templates__/vite/package.json +1 -1
  31. package/lib/__templates__/vite/pnpm-lock.yaml +120 -120
  32. package/lib/__templates__/vite/scripts/dev.sh +7 -26
  33. package/lib/__templates__/vite/template.config.js +10 -1
  34. package/lib/__templates__/vite/vite.config.ts +3 -3
  35. package/lib/cli.js +408 -248
  36. package/package.json +3 -2
  37. package/lib/__templates__/nextjs/.babelrc +0 -15
  38. package/lib/__templates__/nextjs/server.mjs +0 -50
@@ -1,6 +1,6 @@
1
1
  import { StyleSheet, Platform } from 'react-native';
2
2
 
3
- const styles = StyleSheet.create({
3
+ export const styles = StyleSheet.create({
4
4
  loadingContainer: {
5
5
  flex: 1,
6
6
  justifyContent: 'center',
@@ -22,18 +22,6 @@ const styles = StyleSheet.create({
22
22
  fontSize: 16,
23
23
  color: '#64748B',
24
24
  },
25
- retryButton: {
26
- marginTop: 20,
27
- paddingHorizontal: 24,
28
- paddingVertical: 12,
29
- backgroundColor: '#2563EB',
30
- borderRadius: 8,
31
- },
32
- retryButtonText: {
33
- color: '#FFFFFF',
34
- fontSize: 14,
35
- fontWeight: '600',
36
- },
37
25
  header: {
38
26
  flexDirection: 'row',
39
27
  justifyContent: 'space-between',
@@ -44,11 +32,6 @@ const styles = StyleSheet.create({
44
32
  // borderBottomWidth: 1,
45
33
  borderBottomColor: '#E2E8F0',
46
34
  },
47
- headerLeft: {
48
- flexDirection: 'row',
49
- alignItems: 'center',
50
- gap: 10,
51
- },
52
35
  logoContainer: {
53
36
  width: 32,
54
37
  height: 32,
@@ -74,259 +57,4 @@ const styles = StyleSheet.create({
74
57
  color: '#1E293B',
75
58
  letterSpacing: -0.5,
76
59
  },
77
- userMenuContainer: {
78
- flexDirection: 'row',
79
- alignItems: 'center',
80
- gap: 10,
81
- paddingLeft: 16,
82
- borderLeftWidth: 1,
83
- borderLeftColor: '#E2E8F0',
84
- },
85
- userInfo: {
86
- alignItems: 'flex-end',
87
- },
88
- userName: {
89
- fontSize: 14,
90
- fontWeight: '500',
91
- color: '#1E293B',
92
- },
93
- userRole: {
94
- fontSize: 12,
95
- color: '#64748B',
96
- },
97
- avatar: {
98
- width: 36,
99
- height: 36,
100
- borderRadius: 18,
101
- borderWidth: 2,
102
- borderColor: '#FFFFFF',
103
- ...Platform.select({
104
- ios: {
105
- shadowColor: '#000',
106
- shadowOffset: { width: 0, height: 1 },
107
- shadowOpacity: 0.1,
108
- shadowRadius: 2,
109
- },
110
- android: {
111
- elevation: 2,
112
- },
113
- }),
114
- },
115
- avatarPlaceholder: {
116
- width: 36,
117
- height: 36,
118
- borderRadius: 18,
119
- justifyContent: 'center',
120
- alignItems: 'center',
121
- borderWidth: 2,
122
- borderColor: '#FFFFFF',
123
- backgroundColor: '#3B82F6',
124
- ...Platform.select({
125
- ios: {
126
- shadowColor: '#000',
127
- shadowOffset: { width: 0, height: 1 },
128
- shadowOpacity: 0.1,
129
- shadowRadius: 2,
130
- },
131
- android: {
132
- elevation: 2,
133
- },
134
- }),
135
- },
136
- avatarInitial: {
137
- fontSize: 14,
138
- fontWeight: '700',
139
- color: '#FFFFFF',
140
- },
141
- content: {
142
- paddingHorizontal: 16,
143
- paddingTop: 24,
144
- },
145
- welcomeSection: {
146
- marginBottom: 24,
147
- },
148
- welcomeTitle: {
149
- fontSize: 22,
150
- fontWeight: '700',
151
- color: '#1E293B',
152
- marginBottom: 4,
153
- },
154
- welcomeSubtitle: {
155
- fontSize: 14,
156
- color: '#64748B',
157
- },
158
- statsGrid: {
159
- flexDirection: 'row',
160
- gap: 12,
161
- marginBottom: 24,
162
- },
163
- statCard: {
164
- flex: 1,
165
- backgroundColor: '#FFFFFF',
166
- borderRadius: 12,
167
- padding: 16,
168
- ...Platform.select({
169
- ios: {
170
- shadowColor: '#000',
171
- shadowOffset: { width: 0, height: 1 },
172
- shadowOpacity: 0.05,
173
- shadowRadius: 3,
174
- },
175
- android: {
176
- elevation: 2,
177
- },
178
- }),
179
- },
180
- statCardHeader: {
181
- flexDirection: 'row',
182
- justifyContent: 'space-between',
183
- alignItems: 'flex-start',
184
- marginBottom: 12,
185
- },
186
- statIconContainer: {
187
- width: 40,
188
- height: 40,
189
- borderRadius: 10,
190
- justifyContent: 'center',
191
- alignItems: 'center',
192
- },
193
- statIconBlue: {
194
- backgroundColor: '#EFF6FF',
195
- },
196
- statIconRed: {
197
- backgroundColor: '#FEF2F2',
198
- },
199
- statIconGreen: {
200
- backgroundColor: '#ECFDF5',
201
- },
202
- attentionBadge: {
203
- backgroundColor: '#FEF2F2',
204
- paddingHorizontal: 6,
205
- paddingVertical: 2,
206
- borderRadius: 10,
207
- },
208
- attentionBadgeText: {
209
- fontSize: 10,
210
- fontWeight: '500',
211
- color: '#EF4444',
212
- },
213
- rateBadge: {
214
- backgroundColor: '#ECFDF5',
215
- paddingHorizontal: 6,
216
- paddingVertical: 2,
217
- borderRadius: 10,
218
- },
219
- rateBadgeText: {
220
- fontSize: 10,
221
- fontWeight: '500',
222
- color: '#10B981',
223
- },
224
- statValue: {
225
- fontSize: 28,
226
- fontWeight: '700',
227
- color: '#1E293B',
228
- marginBottom: 2,
229
- },
230
- statLabel: {
231
- fontSize: 13,
232
- color: '#64748B',
233
- },
234
- shortcutsSection: {
235
- gap: 12,
236
- marginBottom: 24,
237
- },
238
- shortcutCard: {
239
- flexDirection: 'row',
240
- justifyContent: 'space-between',
241
- alignItems: 'center',
242
- backgroundColor: '#FFFFFF',
243
- borderRadius: 12,
244
- padding: 16,
245
- ...Platform.select({
246
- ios: {
247
- shadowColor: '#000',
248
- shadowOffset: { width: 0, height: 1 },
249
- shadowOpacity: 0.05,
250
- shadowRadius: 3,
251
- },
252
- android: {
253
- elevation: 2,
254
- },
255
- }),
256
- },
257
- shortcutContent: {
258
- flex: 1,
259
- marginRight: 16,
260
- },
261
- shortcutTitle: {
262
- fontSize: 16,
263
- fontWeight: '600',
264
- color: '#1E293B',
265
- marginBottom: 6,
266
- },
267
- shortcutDescription: {
268
- fontSize: 13,
269
- color: '#64748B',
270
- marginBottom: 10,
271
- lineHeight: 18,
272
- },
273
- shortcutAction: {
274
- flexDirection: 'row',
275
- alignItems: 'center',
276
- gap: 6,
277
- },
278
- shortcutActionText: {
279
- fontSize: 13,
280
- fontWeight: '500',
281
- color: '#2563EB',
282
- },
283
- shortcutIconContainer: {
284
- width: 56,
285
- height: 56,
286
- borderRadius: 28,
287
- justifyContent: 'center',
288
- alignItems: 'center',
289
- },
290
- shortcutIconBlue: {
291
- backgroundColor: '#EFF6FF',
292
- },
293
- shortcutIconGreen: {
294
- backgroundColor: '#ECFDF5',
295
- },
296
- bannerContainer: {
297
- height: 160,
298
- borderRadius: 12,
299
- overflow: 'hidden',
300
- backgroundColor: '#1E3A8A',
301
- },
302
- bannerOverlay: {
303
- flex: 1,
304
- justifyContent: 'center',
305
- paddingHorizontal: 20,
306
- },
307
- bannerTitle: {
308
- fontSize: 18,
309
- fontWeight: '700',
310
- color: '#FFFFFF',
311
- marginBottom: 6,
312
- },
313
- bannerSubtitle: {
314
- fontSize: 13,
315
- color: '#BFDBFE',
316
- marginBottom: 16,
317
- },
318
- bannerButton: {
319
- alignSelf: 'flex-start',
320
- backgroundColor: '#FFFFFF',
321
- paddingHorizontal: 20,
322
- paddingVertical: 10,
323
- borderRadius: 8,
324
- },
325
- bannerButtonText: {
326
- fontSize: 13,
327
- fontWeight: '500',
328
- color: '#2563EB',
329
- },
330
60
  });
331
-
332
- export default styles;
@@ -1,4 +1,3 @@
1
- // import { OpenAPI } from '@api'; // 如果使用 openapi 客户端,请取消注释并确保安装
2
1
  import dayjs from 'dayjs';
3
2
  import utc from 'dayjs/plugin/utc';
4
3
  dayjs.extend(utc);
@@ -26,7 +25,7 @@ export const buildAssetUrl = (url?: string | null, w?: number, h?: number): stri
26
25
  // 3. 构造参数,保留原有 Query (如有)
27
26
  const separator = abs.includes('?') ? '&' : '?';
28
27
  const query = [
29
- w ? `w=${Math.floor(w)}` : '',
28
+ w ? `w=${Math.floor(w)}` : '',
30
29
  h ? `h=${Math.floor(h)}` : ''
31
30
  ].filter(Boolean).join('&');
32
31
  return `${abs}${separator}${query}`;
@@ -1,5 +1,5 @@
1
1
  const { getDefaultConfig } = require('expo/metro-config');
2
- // const { createProxyMiddleware } = require('http-proxy-middleware');
2
+ const { createProxyMiddleware } = require('http-proxy-middleware');
3
3
  const connect = require('connect');
4
4
 
5
5
  const config = getDefaultConfig(__dirname);
@@ -28,9 +28,8 @@ config.resolver.blockList = [
28
28
  /.*\.git\/.*/, // 排除 Git 目录
29
29
  ];
30
30
 
31
- /*
32
31
  const apiProxy = createProxyMiddleware({
33
- target: 'http://localhost:5000',
32
+ target: 'http://localhost:9091',
34
33
  logLevel: 'debug',
35
34
  });
36
35
 
@@ -39,7 +38,7 @@ config.server = {
39
38
  enhanceMiddleware: (metroMiddleware, metroServer) => {
40
39
  return connect()
41
40
  .use((req, res, next) => {
42
- if (req.url && req.url.startsWith('/api')) {
41
+ if (req.url && req.url.startsWith('/api/v')) {
43
42
  console.log(`[Metro Proxy] Forwarding ${req.method} ${req.url}`);
44
43
  return apiProxy(req, res, next);
45
44
  }
@@ -48,6 +47,5 @@ config.server = {
48
47
  .use(metroMiddleware);
49
48
  },
50
49
  }
51
- */
52
50
 
53
51
  module.exports = config;
@@ -12,6 +12,8 @@
12
12
  "install-missing": "node ./client/scripts/install-missing-deps.js",
13
13
  "lint": "expo lint",
14
14
  "server": "NODE_ENV=development tsx ./src/index.ts",
15
+ "server:build": "pnpm exec esbuild src/index.ts --platform=node --packages=external --bundle --format=esm --outdir=src_dist",
16
+ "server:prod": "NODE_ENV=production PORT=${PORT:-5000} node src_dist/index.js",
15
17
  "start": "expo start --web",
16
18
  "test": "jest --watchAll"
17
19
  },
@@ -33,7 +35,7 @@
33
35
  "ajv": "^8.17.1",
34
36
  "ajv-formats": "^3.0.1",
35
37
  "connect": "^3.7.0",
36
- "coze-coding-dev-sdk": "0.5.0",
38
+ "coze-coding-dev-sdk": "^0.5.5",
37
39
  "dayjs": "^1.11.19",
38
40
  "drizzle-kit": "^0.31.8",
39
41
  "drizzle-orm": "^0.45.1",
@@ -58,6 +60,8 @@
58
60
  "expo-system-ui": "~6.0.9",
59
61
  "expo-web-browser": "~15.0.10",
60
62
  "express": "^4.22.1",
63
+ "http-proxy-middleware": "^3.0.5",
64
+ "multer": "^2.0.2",
61
65
  "pg": "^8.16.3",
62
66
  "react": "19.1.0",
63
67
  "react-dom": "19.1.0",
@@ -81,6 +85,7 @@
81
85
  "@eslint/js": "^9.27.0",
82
86
  "@types/express": "^5.0.6",
83
87
  "@types/jest": "^29.5.12",
88
+ "@types/multer": "^2.0.0",
84
89
  "@types/pg": "^8.16.0",
85
90
  "@types/react": "~19.1.0",
86
91
  "@types/react-test-renderer": "19.1.0",
@@ -88,7 +93,8 @@
88
93
  "babel-preset-expo": "^54.0.9",
89
94
  "chalk": "^4.1.2",
90
95
  "depcheck": "^1.4.7",
91
- "eslint": "^9.27.0",
96
+ "esbuild": "^0.27.2",
97
+ "eslint": "^9.39.2",
92
98
  "eslint-formatter-compact": "^9.0.1",
93
99
  "eslint-import-resolver-typescript": "^4.4.4",
94
100
  "eslint-plugin-import": "^2.32.0",
@@ -51,8 +51,8 @@ importers:
51
51
  specifier: ^3.7.0
52
52
  version: 3.7.0
53
53
  coze-coding-dev-sdk:
54
- specifier: 0.5.0
55
- version: 0.5.0(@types/pg@8.16.0)(openai@6.15.0(ws@8.18.3)(zod@4.3.2))(ws@8.18.3)
54
+ specifier: ^0.5.2
55
+ version: 0.5.4(@types/pg@8.16.0)(openai@6.15.0(ws@8.18.3)(zod@4.3.2))(ws@8.18.3)
56
56
  dayjs:
57
57
  specifier: ^1.11.19
58
58
  version: 1.11.19
@@ -125,6 +125,9 @@ importers:
125
125
  express:
126
126
  specifier: ^4.22.1
127
127
  version: 4.22.1
128
+ multer:
129
+ specifier: ^2.0.2
130
+ version: 2.0.2
128
131
  pg:
129
132
  specifier: ^8.16.3
130
133
  version: 8.16.3
@@ -189,6 +192,9 @@ importers:
189
192
  '@types/jest':
190
193
  specifier: ^29.5.12
191
194
  version: 29.5.14
195
+ '@types/multer':
196
+ specifier: ^2.0.0
197
+ version: 2.0.0
192
198
  '@types/pg':
193
199
  specifier: ^8.16.0
194
200
  version: 8.16.0
@@ -2370,6 +2376,9 @@ packages:
2370
2376
  '@types/minimatch@3.0.5':
2371
2377
  resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
2372
2378
 
2379
+ '@types/multer@2.0.0':
2380
+ resolution: {integrity: sha512-C3Z9v9Evij2yST3RSBktxP9STm6OdMc5uR1xF1SGr98uv8dUlAL2hqwrZ3GVB3uyMyiegnscEK6PGtYvNrjTjw==}
2381
+
2373
2382
  '@types/node@25.0.3':
2374
2383
  resolution: {integrity: sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==}
2375
2384
 
@@ -2513,41 +2522,49 @@ packages:
2513
2522
  resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==}
2514
2523
  cpu: [arm64]
2515
2524
  os: [linux]
2525
+ libc: [glibc]
2516
2526
 
2517
2527
  '@unrs/resolver-binding-linux-arm64-musl@1.11.1':
2518
2528
  resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==}
2519
2529
  cpu: [arm64]
2520
2530
  os: [linux]
2531
+ libc: [musl]
2521
2532
 
2522
2533
  '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1':
2523
2534
  resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==}
2524
2535
  cpu: [ppc64]
2525
2536
  os: [linux]
2537
+ libc: [glibc]
2526
2538
 
2527
2539
  '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1':
2528
2540
  resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==}
2529
2541
  cpu: [riscv64]
2530
2542
  os: [linux]
2543
+ libc: [glibc]
2531
2544
 
2532
2545
  '@unrs/resolver-binding-linux-riscv64-musl@1.11.1':
2533
2546
  resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==}
2534
2547
  cpu: [riscv64]
2535
2548
  os: [linux]
2549
+ libc: [musl]
2536
2550
 
2537
2551
  '@unrs/resolver-binding-linux-s390x-gnu@1.11.1':
2538
2552
  resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==}
2539
2553
  cpu: [s390x]
2540
2554
  os: [linux]
2555
+ libc: [glibc]
2541
2556
 
2542
2557
  '@unrs/resolver-binding-linux-x64-gnu@1.11.1':
2543
2558
  resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==}
2544
2559
  cpu: [x64]
2545
2560
  os: [linux]
2561
+ libc: [glibc]
2546
2562
 
2547
2563
  '@unrs/resolver-binding-linux-x64-musl@1.11.1':
2548
2564
  resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==}
2549
2565
  cpu: [x64]
2550
2566
  os: [linux]
2567
+ libc: [musl]
2551
2568
 
2552
2569
  '@unrs/resolver-binding-wasm32-wasi@1.11.1':
2553
2570
  resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==}
@@ -2689,6 +2706,9 @@ packages:
2689
2706
  resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
2690
2707
  engines: {node: '>= 8'}
2691
2708
 
2709
+ append-field@1.0.0:
2710
+ resolution: {integrity: sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==}
2711
+
2692
2712
  arg@5.0.2:
2693
2713
  resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
2694
2714
 
@@ -2902,6 +2922,10 @@ packages:
2902
2922
  buffer@5.7.1:
2903
2923
  resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
2904
2924
 
2925
+ busboy@1.6.0:
2926
+ resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
2927
+ engines: {node: '>=10.16.0'}
2928
+
2905
2929
  bytes@3.1.2:
2906
2930
  resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
2907
2931
  engines: {node: '>= 0.8'}
@@ -3077,6 +3101,10 @@ packages:
3077
3101
  concat-map@0.0.1:
3078
3102
  resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
3079
3103
 
3104
+ concat-stream@2.0.0:
3105
+ resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==}
3106
+ engines: {'0': node >= 6.0}
3107
+
3080
3108
  connect@3.7.0:
3081
3109
  resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==}
3082
3110
  engines: {node: '>= 0.10.0'}
@@ -3109,8 +3137,8 @@ packages:
3109
3137
  resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
3110
3138
  engines: {node: '>=10'}
3111
3139
 
3112
- coze-coding-dev-sdk@0.5.0:
3113
- resolution: {integrity: sha512-fmJypE4jgExKOOFSz26ZNRUyKmAh3FENKORXMfvP7JIbXmk092ntrnll9DCJ+HpNOcpdvlE5lTmGSvyGh9nwrw==}
3140
+ coze-coding-dev-sdk@0.5.4:
3141
+ resolution: {integrity: sha512-nIH2hMFlO2PSnqdslFzOITK+2FhR64caoYFuzy2ma+ceu0o2Spe7tLYLIsyUc42Prr5gXqk4MZESQqpXD34ZwQ==}
3114
3142
  engines: {node: '>=18.0.0'}
3115
3143
  hasBin: true
3116
3144
 
@@ -4776,24 +4804,28 @@ packages:
4776
4804
  engines: {node: '>= 12.0.0'}
4777
4805
  cpu: [arm64]
4778
4806
  os: [linux]
4807
+ libc: [glibc]
4779
4808
 
4780
4809
  lightningcss-linux-arm64-musl@1.30.2:
4781
4810
  resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==}
4782
4811
  engines: {node: '>= 12.0.0'}
4783
4812
  cpu: [arm64]
4784
4813
  os: [linux]
4814
+ libc: [musl]
4785
4815
 
4786
4816
  lightningcss-linux-x64-gnu@1.30.2:
4787
4817
  resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==}
4788
4818
  engines: {node: '>= 12.0.0'}
4789
4819
  cpu: [x64]
4790
4820
  os: [linux]
4821
+ libc: [glibc]
4791
4822
 
4792
4823
  lightningcss-linux-x64-musl@1.30.2:
4793
4824
  resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==}
4794
4825
  engines: {node: '>= 12.0.0'}
4795
4826
  cpu: [x64]
4796
4827
  os: [linux]
4828
+ libc: [musl]
4797
4829
 
4798
4830
  lightningcss-win32-arm64-msvc@1.30.2:
4799
4831
  resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==}
@@ -5029,6 +5061,10 @@ packages:
5029
5061
  resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==}
5030
5062
  engines: {node: '>= 18'}
5031
5063
 
5064
+ mkdirp@0.5.6:
5065
+ resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
5066
+ hasBin: true
5067
+
5032
5068
  mkdirp@1.0.4:
5033
5069
  resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
5034
5070
  engines: {node: '>=10'}
@@ -5040,6 +5076,10 @@ packages:
5040
5076
  ms@2.1.3:
5041
5077
  resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
5042
5078
 
5079
+ multer@2.0.2:
5080
+ resolution: {integrity: sha512-u7f2xaZ/UG8oLXHvtF/oWTRvT44p9ecwBBqTwgJVq0+4BW1g8OW01TyMEGWBHbyMOYVHXslaut7qEQ1meATXgw==}
5081
+ engines: {node: '>= 10.16.0'}
5082
+
5043
5083
  multimatch@5.0.0:
5044
5084
  resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==}
5045
5085
  engines: {node: '>=10'}
@@ -6017,6 +6057,10 @@ packages:
6017
6057
  resolution: {integrity: sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==}
6018
6058
  engines: {node: '>= 0.10.0'}
6019
6059
 
6060
+ streamsearch@1.1.0:
6061
+ resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
6062
+ engines: {node: '>=10.0.0'}
6063
+
6020
6064
  strict-uri-encode@2.0.0:
6021
6065
  resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==}
6022
6066
  engines: {node: '>=4'}
@@ -6241,6 +6285,9 @@ packages:
6241
6285
  resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
6242
6286
  engines: {node: '>= 0.4'}
6243
6287
 
6288
+ typedarray@0.0.6:
6289
+ resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
6290
+
6244
6291
  typescript-eslint@8.51.0:
6245
6292
  resolution: {integrity: sha512-jh8ZuM5oEh2PSdyQG9YAEM1TCGuWenLSuSUhf/irbVUNW9O5FhbFVONviN2TgMTBnUmyHv7E56rYnfLZK6TkiA==}
6246
6293
  engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -9394,6 +9441,10 @@ snapshots:
9394
9441
 
9395
9442
  '@types/minimatch@3.0.5': {}
9396
9443
 
9444
+ '@types/multer@2.0.0':
9445
+ dependencies:
9446
+ '@types/express': 5.0.6
9447
+
9397
9448
  '@types/node@25.0.3':
9398
9449
  dependencies:
9399
9450
  undici-types: 7.16.0
@@ -9720,6 +9771,8 @@ snapshots:
9720
9771
  normalize-path: 3.0.0
9721
9772
  picomatch: 2.3.1
9722
9773
 
9774
+ append-field@1.0.0: {}
9775
+
9723
9776
  arg@5.0.2: {}
9724
9777
 
9725
9778
  argparse@1.0.10:
@@ -10044,6 +10097,10 @@ snapshots:
10044
10097
  base64-js: 1.5.1
10045
10098
  ieee754: 1.2.1
10046
10099
 
10100
+ busboy@1.6.0:
10101
+ dependencies:
10102
+ streamsearch: 1.1.0
10103
+
10047
10104
  bytes@3.1.2: {}
10048
10105
 
10049
10106
  call-bind-apply-helpers@1.0.2:
@@ -10211,6 +10268,13 @@ snapshots:
10211
10268
 
10212
10269
  concat-map@0.0.1: {}
10213
10270
 
10271
+ concat-stream@2.0.0:
10272
+ dependencies:
10273
+ buffer-from: 1.1.2
10274
+ inherits: 2.0.4
10275
+ readable-stream: 3.6.2
10276
+ typedarray: 0.0.6
10277
+
10214
10278
  connect@3.7.0:
10215
10279
  dependencies:
10216
10280
  debug: 2.6.9
@@ -10248,7 +10312,7 @@ snapshots:
10248
10312
  path-type: 4.0.0
10249
10313
  yaml: 1.10.2
10250
10314
 
10251
- coze-coding-dev-sdk@0.5.0(@types/pg@8.16.0)(openai@6.15.0(ws@8.18.3)(zod@4.3.2))(ws@8.18.3):
10315
+ coze-coding-dev-sdk@0.5.4(@types/pg@8.16.0)(openai@6.15.0(ws@8.18.3)(zod@4.3.2))(ws@8.18.3):
10252
10316
  dependencies:
10253
10317
  '@aws-sdk/client-s3': 3.958.0
10254
10318
  '@aws-sdk/lib-storage': 3.958.0(@aws-sdk/client-s3@3.958.0)
@@ -12688,12 +12752,26 @@ snapshots:
12688
12752
  dependencies:
12689
12753
  minipass: 7.1.2
12690
12754
 
12755
+ mkdirp@0.5.6:
12756
+ dependencies:
12757
+ minimist: 1.2.8
12758
+
12691
12759
  mkdirp@1.0.4: {}
12692
12760
 
12693
12761
  ms@2.0.0: {}
12694
12762
 
12695
12763
  ms@2.1.3: {}
12696
12764
 
12765
+ multer@2.0.2:
12766
+ dependencies:
12767
+ append-field: 1.0.0
12768
+ busboy: 1.6.0
12769
+ concat-stream: 2.0.0
12770
+ mkdirp: 0.5.6
12771
+ object-assign: 4.1.1
12772
+ type-is: 1.6.18
12773
+ xtend: 4.0.2
12774
+
12697
12775
  multimatch@5.0.0:
12698
12776
  dependencies:
12699
12777
  '@types/minimatch': 3.0.5
@@ -13726,6 +13804,8 @@ snapshots:
13726
13804
 
13727
13805
  stream-buffers@2.2.0: {}
13728
13806
 
13807
+ streamsearch@1.1.0: {}
13808
+
13729
13809
  strict-uri-encode@2.0.0: {}
13730
13810
 
13731
13811
  string-length@4.0.2:
@@ -13990,6 +14070,8 @@ snapshots:
13990
14070
  possible-typed-array-names: 1.1.0
13991
14071
  reflect.getprototypeof: 1.0.10
13992
14072
 
14073
+ typedarray@0.0.6: {}
14074
+
13993
14075
  typescript-eslint@8.51.0(eslint@9.39.2)(typescript@5.9.3):
13994
14076
  dependencies:
13995
14077
  '@typescript-eslint/eslint-plugin': 8.51.0(@typescript-eslint/parser@8.51.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3)
@@ -3,8 +3,8 @@ import express from "express";
3
3
  const app = express();
4
4
  const port = process.env.PORT || 9091;
5
5
 
6
- app.get('/api/hello', (req, res) => {
7
- res.status(200).json({ message: 'hello world' });
6
+ app.get('/api/v1/ping', (req, res) => {
7
+ res.status(200).json({ message: 'connected' });
8
8
  });
9
9
 
10
10
  app.listen(port, () => {
@@ -31,7 +31,7 @@ export const paramsSchema = {
31
31
  const config = {
32
32
  paramsSchema,
33
33
  defaultParams: {
34
- port: 8081,
34
+ port: 9090,
35
35
  appName: 'my-expo-app',
36
36
  },
37
37
  onBeforeRender: async context => {