yo-moss-ai 0.0.22 → 0.0.24
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/bin/bootstrap-deps.mjs +28 -10
- package/bin/runtime-manifest.json +1 -1
- package/bin/yo-moss-ai.mjs +1 -1
- package/dist/assets/esp-flasher-CLKzE7JE.js +27 -2
- package/dist/assets/{index-Bcf5kQZF.css → index-CcIQTHSI.css} +1 -1
- package/dist/assets/index-JwpZFyvc.js +692 -0
- package/dist/index.html +2 -2
- package/dist-server/board-presets.mjs +1 -1
- package/dist-server/camera.mjs +1 -1
- package/dist-server/dev-ui.mjs +1 -1
- package/dist-server/device-chat-sync.mjs +1 -1
- package/dist-server/device-config-view.mjs +1 -1
- package/dist-server/device-focus.mjs +1 -1
- package/dist-server/device-http.mjs +1 -1
- package/dist-server/device-identity.mjs +1 -1
- package/dist-server/device-presence.mjs +1 -1
- package/dist-server/device-probe.mjs +1 -1
- package/dist-server/device-registry.mjs +1 -1
- package/dist-server/device-routes.mjs +1 -1
- package/dist-server/device-runtime.mjs +1 -1
- package/dist-server/device-session.mjs +1 -1
- package/dist-server/ffmpeg.mjs +1 -1
- package/dist-server/gimbal-control.mjs +1 -1
- package/dist-server/home-path.mjs +1 -1
- package/dist-server/index.mjs +1 -1
- package/dist-server/ir-import-validate.mjs +1 -1
- package/dist-server/known-scan-device.mjs +1 -1
- package/dist-server/lan-discover.mjs +1 -1
- package/dist-server/listen-port.mjs +1 -1
- package/dist-server/mcp/backoff.mjs +1 -1
- package/dist-server/mcp/bridge-manager.mjs +1 -1
- package/dist-server/mcp/builtin-tools.mjs +1 -1
- package/dist-server/mcp/dedupe-servers.mjs +1 -1
- package/dist-server/mcp/doctor.mjs +1 -1
- package/dist-server/mcp/fixtures/echo-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/hotkey-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/mihome-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/onvif-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/shell-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/yunxiangji-mcp.mjs +1 -1
- package/dist-server/mcp/hotkey-agent-docs.mjs +1 -1
- package/dist-server/mcp/hotkey-driver.mjs +1 -1
- package/dist-server/mcp/hotkey-handlers.mjs +1 -1
- package/dist-server/mcp/hotkey-import-validate.mjs +1 -1
- package/dist-server/mcp/hotkey-store.mjs +1 -1
- package/dist-server/mcp/http-client.mjs +1 -1
- package/dist-server/mcp/http-pipe.mjs +1 -1
- package/dist-server/mcp/local-probe.mjs +1 -1
- package/dist-server/mcp/marketplace.mjs +1 -1
- package/dist-server/mcp/onvif-handlers.mjs +1 -1
- package/dist-server/mcp/parse-server-json.mjs +1 -1
- package/dist-server/mcp/paths.mjs +1 -1
- package/dist-server/mcp/routes.mjs +1 -1
- package/dist-server/mcp/schema.mjs +1 -1
- package/dist-server/mcp/settings.mjs +1 -1
- package/dist-server/mcp/shell-approval.mjs +1 -1
- package/dist-server/mcp/shell-policy.mjs +1 -1
- package/dist-server/mcp/shell-trash.mjs +1 -1
- package/dist-server/mcp/stdio-pipe.mjs +1 -1
- package/dist-server/mcp/store.mjs +1 -1
- package/dist-server/mcp/task-notify.mjs +1 -1
- package/dist-server/mcp/ws-connect.mjs +1 -1
- package/dist-server/mcp/yunxiangji.mjs +1 -1
- package/dist-server/media-cache.mjs +1 -1
- package/dist-server/mihome/cloud.mjs +1 -1
- package/dist-server/mihome/devices.mjs +1 -1
- package/dist-server/mihome/local.mjs +1 -1
- package/dist-server/mihome/mcp-desc.mjs +1 -1
- package/dist-server/mihome/queue.mjs +1 -1
- package/dist-server/mihome/rc4.mjs +1 -1
- package/dist-server/mihome/routes.mjs +1 -1
- package/dist-server/mihome/service.mjs +1 -1
- package/dist-server/mihome/sign.mjs +1 -1
- package/dist-server/mihome/spec.mjs +1 -1
- package/dist-server/mihome/store.mjs +1 -1
- package/dist-server/onboard-preview.mjs +1 -1
- package/dist-server/tab-focus.mjs +1 -1
- package/dist-server/voice-wake.mjs +1 -1
- package/package.json +1 -1
- package/dist/assets/index-BTL1clBe.js +0 -45
package/bin/bootstrap-deps.mjs
CHANGED
|
@@ -128,7 +128,9 @@ export function copyTree(src, dest) {
|
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
-
|
|
131
|
+
export const NPM_INSTALL_TIMEOUT_MS = 60_000
|
|
132
|
+
|
|
133
|
+
function runNpmInstall(cwd, extraArgs = [], timeoutMs = NPM_INSTALL_TIMEOUT_MS) {
|
|
132
134
|
return new Promise((resolve, reject) => {
|
|
133
135
|
const npmCmd = process.platform === 'win32' ? 'npm.cmd' : 'npm'
|
|
134
136
|
const child = spawn(
|
|
@@ -141,10 +143,20 @@ function runNpmInstall(cwd, extraArgs = []) {
|
|
|
141
143
|
},
|
|
142
144
|
)
|
|
143
145
|
let errText = ''
|
|
146
|
+
let settled = false
|
|
147
|
+
const timer = setTimeout(() => {
|
|
148
|
+
if (settled) return
|
|
149
|
+
settled = true
|
|
150
|
+
child.kill()
|
|
151
|
+
reject(new Error(`npm install 超时(${Math.round(timeoutMs / 1000)}s)`))
|
|
152
|
+
}, timeoutMs)
|
|
144
153
|
child.stderr.on('data', (chunk) => {
|
|
145
154
|
errText += String(chunk)
|
|
146
155
|
})
|
|
147
156
|
child.on('exit', (code) => {
|
|
157
|
+
clearTimeout(timer)
|
|
158
|
+
if (settled) return
|
|
159
|
+
settled = true
|
|
148
160
|
if (code === 0) resolve()
|
|
149
161
|
else reject(new Error(errText.trim() || `npm install 失败,退出码 ${code}`))
|
|
150
162
|
})
|
|
@@ -299,6 +311,7 @@ export async function bootstrapRuntimeDeps(opts) {
|
|
|
299
311
|
depsRoot = runtimeDepsRoot(),
|
|
300
312
|
installMediaBundle = installMediaBundleFromNpm,
|
|
301
313
|
installNpmDeps = (npmDeps, onProgress) => ensureRuntimeNpmDeps(npmDeps, depsRoot, { onProgress }),
|
|
314
|
+
deferNpm = false,
|
|
302
315
|
} = opts
|
|
303
316
|
|
|
304
317
|
const distDir = path.join(root, 'dist')
|
|
@@ -330,8 +343,10 @@ export async function bootstrapRuntimeDeps(opts) {
|
|
|
330
343
|
if (needMedia) {
|
|
331
344
|
const mb = (totalBytes / 1024 / 1024).toFixed(0)
|
|
332
345
|
console.log(`首次运行:正在下载 UI 资源(约 ${mb} MB),完成后自动启动…`)
|
|
333
|
-
} else if (needNpm) {
|
|
346
|
+
} else if (needNpm && !deferNpm) {
|
|
334
347
|
console.log('首次运行:正在安装扩展组件,完成后自动启动…')
|
|
348
|
+
} else if (needNpm && deferNpm) {
|
|
349
|
+
console.log('正在打开界面;快捷键组件在后台安装,不影响使用。')
|
|
335
350
|
}
|
|
336
351
|
|
|
337
352
|
if (needMedia) {
|
|
@@ -352,14 +367,17 @@ export async function bootstrapRuntimeDeps(opts) {
|
|
|
352
367
|
if (needNpm) {
|
|
353
368
|
const reportNpm = createProgressReporter('安装扩展依赖')
|
|
354
369
|
reportNpm(0.02)
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
370
|
+
const work = Promise.resolve()
|
|
371
|
+
.then(() => installNpmDeps(npmDeps, reportNpm))
|
|
372
|
+
.then(() => {
|
|
373
|
+
if (process.stdout.isTTY) process.stdout.write('\n')
|
|
374
|
+
else console.log(formatProgressBar('安装扩展依赖', 1))
|
|
375
|
+
})
|
|
376
|
+
.catch((err) => {
|
|
377
|
+
if (process.stdout.isTTY) process.stdout.write('\n')
|
|
378
|
+
console.warn('扩展组件安装失败,快捷键/媒体键可能不可用:', err.message)
|
|
379
|
+
})
|
|
380
|
+
if (!deferNpm) await work
|
|
363
381
|
}
|
|
364
382
|
|
|
365
383
|
process.env.MOSS_MEDIA_ROOT = cacheDir
|
package/bin/yo-moss-ai.mjs
CHANGED
|
@@ -31,7 +31,7 @@ console.log(`yo-moss-ai${pkgVersion ? ` v${pkgVersion}` : ''}`)
|
|
|
31
31
|
if (typeof process.stdout.write === 'function') process.stdout.write('')
|
|
32
32
|
|
|
33
33
|
try {
|
|
34
|
-
await bootstrapRuntimeDeps({ root, version: pkg.version })
|
|
34
|
+
await bootstrapRuntimeDeps({ root, version: pkg.version, deferNpm: true })
|
|
35
35
|
} catch (err) {
|
|
36
36
|
console.error('\n启动准备失败:', err?.message || err)
|
|
37
37
|
console.error('请检查网络连接后重新运行:npx yo-moss-ai')
|