@clawos-dev/clawd 0.2.108-beta.206.f2600cc → 0.2.108-beta.207.1de9acd
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/cli.cjs +38 -2
- package/package.json +1 -1
package/dist/cli.cjs
CHANGED
|
@@ -4924,7 +4924,11 @@ var init_schemas = __esm({
|
|
|
4924
4924
|
effort: external_exports.string().optional(),
|
|
4925
4925
|
cwd: external_exports.string().optional(),
|
|
4926
4926
|
// 用户在 Edit modal 选择的 icon 标识;UI 端做 enum 兜底
|
|
4927
|
-
iconKey: external_exports.string().optional()
|
|
4927
|
+
iconKey: external_exports.string().optional(),
|
|
4928
|
+
// app-builder picker 在当前 session 内切 project 时写入(spec 2026-06-01-app-builder-project-picker-design)。
|
|
4929
|
+
// daemon session:update handler 检测此字段变化时停旧 project dev server + 起新 project dev server。
|
|
4930
|
+
// 设为空字符串 '' 表示解绑(picker 不暴露解绑入口,但 schema 允许)。
|
|
4931
|
+
appBuilderProject: external_exports.string().regex(/^[a-z][a-z0-9-]{0,39}$/).or(external_exports.literal("")).optional()
|
|
4928
4932
|
})
|
|
4929
4933
|
});
|
|
4930
4934
|
SessionSendArgs = external_exports.object({
|
|
@@ -39487,7 +39491,34 @@ function buildSessionHandlers(deps) {
|
|
|
39487
39491
|
const update = async (frame, _client, ctx) => {
|
|
39488
39492
|
const args = SessionUpdateArgs.parse(frame);
|
|
39489
39493
|
ensureSessionAccess(ctx, args.sessionId, "send");
|
|
39494
|
+
const prevFile = manager.findOwnedSession(args.sessionId);
|
|
39495
|
+
const prevProject = prevFile?.appBuilderProject ?? null;
|
|
39496
|
+
const nextProject = args.patch.appBuilderProject ?? prevProject;
|
|
39490
39497
|
const { response, broadcast } = manager.update(args);
|
|
39498
|
+
if (deps.devServerLifecycle && deps.appBuilderStore && args.patch.appBuilderProject !== void 0) {
|
|
39499
|
+
const lifecycle = deps.devServerLifecycle;
|
|
39500
|
+
const projectStore = deps.appBuilderStore;
|
|
39501
|
+
const tunnelUrl = deps.getTunnelUrl?.() ?? null;
|
|
39502
|
+
try {
|
|
39503
|
+
if (prevProject && prevProject !== nextProject) {
|
|
39504
|
+
await lifecycle.stopForSession(args.sessionId);
|
|
39505
|
+
}
|
|
39506
|
+
if (nextProject && nextProject !== "" && nextProject !== prevProject) {
|
|
39507
|
+
const projects = await projectStore.list();
|
|
39508
|
+
const target = projects.find((p2) => p2.name === nextProject);
|
|
39509
|
+
if (target) {
|
|
39510
|
+
lifecycle.startForSession({
|
|
39511
|
+
sessionId: args.sessionId,
|
|
39512
|
+
projectName: nextProject,
|
|
39513
|
+
cwd: projectStore.projectDir(nextProject),
|
|
39514
|
+
port: target.port,
|
|
39515
|
+
tunnelHost: tunnelUrl ? new URL(tunnelUrl.replace(/^wss?:\/\//i, "https://")).host : null
|
|
39516
|
+
});
|
|
39517
|
+
}
|
|
39518
|
+
}
|
|
39519
|
+
} catch {
|
|
39520
|
+
}
|
|
39521
|
+
}
|
|
39491
39522
|
return { response: { type: "session:info", ...response }, broadcast };
|
|
39492
39523
|
};
|
|
39493
39524
|
const del = async (frame, _client, ctx) => {
|
|
@@ -41526,7 +41557,12 @@ async function uninstall(deps) {
|
|
|
41526
41557
|
// src/handlers/index.ts
|
|
41527
41558
|
function buildMethodHandlers(deps) {
|
|
41528
41559
|
return {
|
|
41529
|
-
...buildSessionHandlers(
|
|
41560
|
+
...buildSessionHandlers({
|
|
41561
|
+
...deps,
|
|
41562
|
+
devServerLifecycle: deps.devServerLifecycle,
|
|
41563
|
+
appBuilderStore: deps.appBuilderStore,
|
|
41564
|
+
getTunnelUrl: deps.getTunnelUrl
|
|
41565
|
+
}),
|
|
41530
41566
|
...buildPermissionHandlers(deps),
|
|
41531
41567
|
...buildHistoryHandlers(deps),
|
|
41532
41568
|
...buildWorkspaceHandlers(deps),
|
package/package.json
CHANGED