yo-moss-ai 0.0.29 → 0.0.30

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 (94) hide show
  1. package/bin/bootstrap-deps.mjs +22 -15
  2. package/bin/runtime-manifest.json +1 -1
  3. package/bin/silence-debug.mjs +11 -0
  4. package/bin/yo-moss-ai.mjs +4 -1
  5. package/dist/assets/{esp-flasher-H7Inql4d.js → esp-flasher-CLKzE7JE.js} +3 -3
  6. package/dist/assets/{index-BLg-2juE.js → index-C1bPuFAs.js} +50 -50
  7. package/dist/index.html +7 -20
  8. package/dist/models/mediapipe/blaze_face_full_range.tflite +0 -0
  9. package/dist/models/mediapipe/blaze_face_short_range.tflite +0 -0
  10. package/dist/models/mediapipe/wasm/vision_wasm_internal.js +8841 -0
  11. package/dist/models/mediapipe/wasm/vision_wasm_internal.wasm +0 -0
  12. package/dist/models/mediapipe/wasm/vision_wasm_nosimd_internal.js +8832 -0
  13. package/dist/models/mediapipe/wasm/vision_wasm_nosimd_internal.wasm +0 -0
  14. package/dist/stl/moss.stl +0 -0
  15. package/dist/stl/planetary_engine.stl +0 -0
  16. package/dist/textures/earth-lights.png +0 -0
  17. package/dist/textures/earth-night.jpg +0 -0
  18. package/dist/textures/earth_clouds.jpg +0 -0
  19. package/dist/textures/moon-base.jpg +0 -0
  20. package/dist/textures/moon-bump.jpg +0 -0
  21. package/dist/textures/wandering.png +0 -0
  22. package/dist-server/board-presets.mjs +1 -1
  23. package/dist-server/camera.mjs +1 -1
  24. package/dist-server/dev-ui.mjs +1 -1
  25. package/dist-server/device-chat-sync.mjs +1 -1
  26. package/dist-server/device-config-view.mjs +1 -1
  27. package/dist-server/device-focus.mjs +1 -1
  28. package/dist-server/device-http.mjs +1 -1
  29. package/dist-server/device-identity.mjs +1 -1
  30. package/dist-server/device-presence.mjs +1 -1
  31. package/dist-server/device-probe.mjs +1 -1
  32. package/dist-server/device-registry.mjs +1 -1
  33. package/dist-server/device-routes.mjs +1 -1
  34. package/dist-server/device-runtime.mjs +1 -1
  35. package/dist-server/device-session.mjs +1 -1
  36. package/dist-server/ffmpeg.mjs +1 -1
  37. package/dist-server/gimbal-control.mjs +1 -1
  38. package/dist-server/home-path.mjs +1 -1
  39. package/dist-server/index.mjs +1 -1
  40. package/dist-server/ir-import-validate.mjs +1 -1
  41. package/dist-server/known-scan-device.mjs +1 -1
  42. package/dist-server/lan-discover.mjs +1 -1
  43. package/dist-server/listen-port.mjs +1 -1
  44. package/dist-server/mcp/backoff.mjs +1 -1
  45. package/dist-server/mcp/bridge-manager.mjs +1 -1
  46. package/dist-server/mcp/builtin-tools.mjs +1 -1
  47. package/dist-server/mcp/dedupe-servers.mjs +1 -1
  48. package/dist-server/mcp/doctor.mjs +1 -1
  49. package/dist-server/mcp/fixtures/echo-mcp.mjs +1 -1
  50. package/dist-server/mcp/fixtures/hotkey-mcp.mjs +1 -1
  51. package/dist-server/mcp/fixtures/mihome-mcp.mjs +1 -1
  52. package/dist-server/mcp/fixtures/onvif-mcp.mjs +1 -1
  53. package/dist-server/mcp/fixtures/shell-mcp.mjs +1 -1
  54. package/dist-server/mcp/fixtures/yunxiangji-mcp.mjs +1 -1
  55. package/dist-server/mcp/hotkey-agent-docs.mjs +1 -1
  56. package/dist-server/mcp/hotkey-driver.mjs +1 -1
  57. package/dist-server/mcp/hotkey-handlers.mjs +1 -1
  58. package/dist-server/mcp/hotkey-import-validate.mjs +1 -1
  59. package/dist-server/mcp/hotkey-store.mjs +1 -1
  60. package/dist-server/mcp/http-client.mjs +1 -1
  61. package/dist-server/mcp/http-pipe.mjs +1 -1
  62. package/dist-server/mcp/local-probe.mjs +1 -1
  63. package/dist-server/mcp/marketplace.mjs +1 -1
  64. package/dist-server/mcp/onvif-handlers.mjs +1 -1
  65. package/dist-server/mcp/parse-server-json.mjs +1 -1
  66. package/dist-server/mcp/paths.mjs +1 -1
  67. package/dist-server/mcp/routes.mjs +1 -1
  68. package/dist-server/mcp/schema.mjs +1 -1
  69. package/dist-server/mcp/settings.mjs +1 -1
  70. package/dist-server/mcp/shell-approval.mjs +1 -1
  71. package/dist-server/mcp/shell-policy.mjs +1 -1
  72. package/dist-server/mcp/shell-trash.mjs +1 -1
  73. package/dist-server/mcp/stdio-pipe.mjs +1 -1
  74. package/dist-server/mcp/store.mjs +1 -1
  75. package/dist-server/mcp/task-notify.mjs +1 -1
  76. package/dist-server/mcp/ws-connect.mjs +1 -1
  77. package/dist-server/mcp/yunxiangji.mjs +1 -1
  78. package/dist-server/media-cache.mjs +1 -1
  79. package/dist-server/mihome/cloud.mjs +1 -1
  80. package/dist-server/mihome/devices.mjs +1 -1
  81. package/dist-server/mihome/local.mjs +1 -1
  82. package/dist-server/mihome/mcp-desc.mjs +1 -1
  83. package/dist-server/mihome/queue.mjs +1 -1
  84. package/dist-server/mihome/rc4.mjs +1 -1
  85. package/dist-server/mihome/routes.mjs +1 -1
  86. package/dist-server/mihome/service.mjs +1 -1
  87. package/dist-server/mihome/sign.mjs +1 -1
  88. package/dist-server/mihome/spec.mjs +1 -1
  89. package/dist-server/mihome/store.mjs +1 -1
  90. package/dist-server/onboard-preview.mjs +1 -1
  91. package/dist-server/spa-fallback.mjs +1 -0
  92. package/dist-server/tab-focus.mjs +1 -1
  93. package/dist-server/voice-wake.mjs +1 -1
  94. package/package.json +2 -4
@@ -299,24 +299,26 @@ export async function bootstrapRuntimeDeps(opts) {
299
299
  depsRoot = runtimeDepsRoot(),
300
300
  installMediaBundle = installMediaBundleFromNpm,
301
301
  installNpmDeps = (npmDeps, onProgress) => ensureRuntimeNpmDeps(npmDeps, depsRoot, { onProgress }),
302
+ deferNpm = false,
302
303
  } = opts
303
304
 
304
305
  const distDir = path.join(root, 'dist')
305
- if (process.env.MOSS_SKIP_BOOTSTRAP === '1' || hasBundledMedia(distDir)) {
306
+ if (process.env.MOSS_SKIP_BOOTSTRAP === '1') {
306
307
  return { skipped: true }
307
308
  }
308
309
 
310
+ const bundled = hasBundledMedia(distDir)
309
311
  const manifest = loadManifest(root)
310
- if (!manifest) {
312
+ if (!manifest && !bundled) {
311
313
  console.warn('缺少 bin/runtime-manifest.json,跳过资源预下载')
312
314
  return { skipped: true }
313
315
  }
314
316
 
315
- const mediaVersion = manifest.mediaVersion || version
316
- const mediaFiles = manifest.mediaFiles || []
317
- const npmDeps = manifest.npmDeps || []
317
+ const mediaVersion = manifest?.mediaVersion || version
318
+ const mediaFiles = manifest?.mediaFiles || []
319
+ const npmDeps = manifest?.npmDeps || []
318
320
  const totalBytes = mediaFiles.reduce((sum, file) => sum + (file.size || 0), 0)
319
- const needMedia = !mediaCacheReady(mediaFiles, cacheDir)
321
+ const needMedia = !bundled && mediaFiles.length > 0 && !mediaCacheReady(mediaFiles, cacheDir)
320
322
  const needNpm = !runtimeDepsReady(npmDeps, depsRoot)
321
323
 
322
324
  if (!needMedia && !needNpm) {
@@ -329,8 +331,10 @@ export async function bootstrapRuntimeDeps(opts) {
329
331
  if (needMedia) {
330
332
  const mb = (totalBytes / 1024 / 1024).toFixed(0)
331
333
  console.log(`首次运行:正在下载 UI 资源(约 ${mb} MB),完成后自动启动…`)
332
- } else if (needNpm) {
334
+ } else if (needNpm && !deferNpm) {
333
335
  console.log('首次运行:正在安装扩展组件,完成后自动启动…')
336
+ } else if (needNpm && deferNpm) {
337
+ console.log('正在打开界面;快捷键组件在后台安装,不影响使用。')
334
338
  }
335
339
 
336
340
  if (needMedia) {
@@ -351,14 +355,17 @@ export async function bootstrapRuntimeDeps(opts) {
351
355
  if (needNpm) {
352
356
  const reportNpm = createProgressReporter('安装扩展依赖')
353
357
  reportNpm(0.02)
354
- try {
355
- await installNpmDeps(npmDeps, reportNpm)
356
- if (process.stdout.isTTY) process.stdout.write('\n')
357
- else console.log(formatProgressBar('安装扩展依赖', 1))
358
- } catch (err) {
359
- if (process.stdout.isTTY) process.stdout.write('\n')
360
- console.warn('扩展组件安装失败,快捷键/媒体键可能不可用:', err.message)
361
- }
358
+ const work = Promise.resolve()
359
+ .then(() => installNpmDeps(npmDeps, reportNpm))
360
+ .then(() => {
361
+ if (process.stdout.isTTY) process.stdout.write('\n')
362
+ else console.log(formatProgressBar('安装扩展依赖', 1))
363
+ })
364
+ .catch((err) => {
365
+ if (process.stdout.isTTY) process.stdout.write('\n')
366
+ console.warn('扩展组件安装失败,快捷键/媒体键可能不可用:', err.message)
367
+ })
368
+ if (!deferNpm) await work
362
369
  }
363
370
 
364
371
  process.env.MOSS_MEDIA_ROOT = cacheDir
@@ -1,5 +1,5 @@
1
1
  {
2
- "mediaVersion": "0.0.29",
2
+ "mediaVersion": "0.0.30",
3
3
  "mediaFiles": [
4
4
  {
5
5
  "path": "models/mediapipe/blaze_face_full_range.tflite",
@@ -0,0 +1,11 @@
1
+ /** 关掉 DEBUG=express* 这类环境变量,避免 Windows 控制台把启动拖死、页面一直停在加载中 */
2
+ export function silenceDebugLogs(env = process.env) {
3
+ delete env.DEBUG
4
+ delete env.NODE_DEBUG
5
+ delete env.DEBUG_COLORS
6
+ delete env.DEBUG_HIDE_DATE
7
+ }
8
+
9
+ export function debugLogsSilenced(env = process.env) {
10
+ return !env.DEBUG && !env.NODE_DEBUG
11
+ }
@@ -2,8 +2,11 @@
2
2
  import fs from 'node:fs'
3
3
  import path from 'node:path'
4
4
  import { fileURLToPath, pathToFileURL } from 'node:url'
5
+ import { silenceDebugLogs } from './silence-debug.mjs'
5
6
  import { bootstrapRuntimeDeps } from './bootstrap-deps.mjs'
6
7
 
8
+ silenceDebugLogs()
9
+
7
10
  const root = path.join(path.dirname(fileURLToPath(import.meta.url)), '..')
8
11
  let pkgVersion = ''
9
12
  try {
@@ -31,7 +34,7 @@ console.log(`yo-moss-ai${pkgVersion ? ` v${pkgVersion}` : ''}`)
31
34
  if (typeof process.stdout.write === 'function') process.stdout.write('')
32
35
 
33
36
  try {
34
- await bootstrapRuntimeDeps({ root, version: pkg.version })
37
+ await bootstrapRuntimeDeps({ root, version: pkg.version, deferNpm: true })
35
38
  } catch (err) {
36
39
  console.error('\n启动准备失败:', err?.message || err)
37
40
  console.error('请检查网络连接后重新运行:npx yo-moss-ai')