Add MindSpace page live edit, chat skills, and H5 deploy tooling.

Introduce page edit sessions with draft preview and patch API, chat skill picker, user memory profile, h5ApiBase resolution, voice WAV transport, and scripts for 105/g2 deployment and Plaza local dev.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
John
2026-06-15 22:09:38 -07:00
parent 3cd322ccfe
commit 6ee6fd64dd
94 changed files with 7015 additions and 2136 deletions
+17 -2
View File
@@ -84,6 +84,7 @@ async function waitFor(check, label, retries = 80) {
let portal;
let plaza;
let dnsServer;
let stopping = false;
function spawnChild(command, args, label, cwd = root, extraEnv = {}) {
@@ -107,6 +108,7 @@ function shutdown(code = 0) {
stopping = true;
portal?.kill('SIGTERM');
plaza?.kill('SIGTERM');
dnsServer?.kill('SIGTERM');
setTimeout(() => process.exit(code), 300);
}
@@ -118,9 +120,18 @@ if (!fs.existsSync(path.join(plazaDir, 'package.json'))) {
process.exit(1);
}
if (!plazaHostConfigured(plazaHost)) {
function plazaResolverConfigured(host) {
try {
const body = fs.readFileSync(`/etc/resolver/${host}`, 'utf8');
return body.includes('tkmind-plaza-local');
} catch {
return false;
}
}
if (!plazaHostConfigured(plazaHost) || !plazaResolverConfigured(plazaHost)) {
console.warn('');
console.warn(`${plazaHost} 尚未写入 /etc/hosts`);
console.warn(`${plazaHost} 本地 DNS 未完整配置(Tailscale/Clash 会劫持解析)`);
console.warn(' 请执行:sudo pnpm setup:plaza-dns');
console.warn('');
}
@@ -144,8 +155,12 @@ console.log(` 公开地址 ${plazaPublicBase}/plaza`);
console.log(` 内部端口 ${plazaPort}`);
freePort(plazaPort);
freePort(Number(process.env.PLAZA_LOCAL_DNS_PORT ?? 5533));
try {
console.log('==> 启动 Plaza 本地 DNS(覆盖 Tailscale fake-ip');
dnsServer = spawnChild('node', ['scripts/plaza-local-dns-server.mjs'], 'plaza-dns');
if (!(await portOpen(portalPort))) {
console.log(`==> 启动 Portal @ ${portalUrl}`);
portal = spawnChild('node', ['server.mjs'], 'portal');