@clawos-dev/clawd 0.2.454 → 0.2.455
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/app-builder-plugin/mcp-server.cjs +12 -5
- package/dist/cli.cjs +1119 -899
- package/dist/deploy-kit/scripts/new-extension.sh +25 -0
- package/dist/deploy-kit/scripts/publish.sh +92 -16
- package/dist/deploy-kit/scripts/publish.spec.ts +138 -1
- package/dist/deploy-kit/scripts/verify.sh +16 -5
- package/dist/persona-defaults/persona-app-builder/.mcp.json +7 -10
- package/dist/persona-defaults/persona-app-builder/CLAUDE.md +17 -10
- package/dist/persona-defaults/persona-app-builder/extension-kit/config.env +28 -22
- package/dist/persona-defaults/persona-app-builder/extension-kit/contract/s.yaml.domain.tmpl +19 -0
- package/dist/persona-defaults/persona-app-builder/extension-kit/contract/s.yaml.tmpl +4 -16
- package/dist/persona-defaults/persona-app-builder/extension-kit/examples/nestjs-react/server/.env.example +7 -6
- package/dist/secrets/README.md +29 -0
- package/dist/secrets/supabase.env +16 -0
- package/package.json +1 -1
|
@@ -24514,11 +24514,13 @@ var ProjectStore = class {
|
|
|
24514
24514
|
* spec 2026-06-02 §5.6.3:scaffold 对 assistant 不可见,避免 assistant 被诱导去"读 example
|
|
24515
24515
|
* 代码再参考"。assistant 进 project 时目录已是完整模板,直接 pnpm install 即可。
|
|
24516
24516
|
*/
|
|
24517
|
-
async scaffold(name, templateSrcDir, scaffoldScriptPath) {
|
|
24517
|
+
async scaffold(name, templateSrcDir, scaffoldScriptPath, extraEnv) {
|
|
24518
24518
|
const destDir = this.projectDir(name);
|
|
24519
24519
|
return await new Promise((resolve, reject) => {
|
|
24520
24520
|
const child = (0, import_node_child_process.spawn)("bash", [scaffoldScriptPath, name, templateSrcDir, destDir], {
|
|
24521
|
-
|
|
24521
|
+
// extraEnv 排在 PATH **之前**:凭据表里若混进一条名叫 PATH 的条目,顶掉 PATH 会让
|
|
24522
|
+
// 脚本以「命令找不到」的形态崩在离现场很远的地方。
|
|
24523
|
+
env: { ...process.env, ...extraEnv ?? {}, PATH: process.env.PATH ?? "" },
|
|
24522
24524
|
stdio: ["ignore", "pipe", "pipe"]
|
|
24523
24525
|
});
|
|
24524
24526
|
let stdout = "";
|
|
@@ -24722,7 +24724,11 @@ async function startPublishJob(deps, args) {
|
|
|
24722
24724
|
}
|
|
24723
24725
|
const child = spawn2("bash", [args.scriptPath, projDir, args.personaRoot ?? ""], {
|
|
24724
24726
|
cwd: projDir,
|
|
24725
|
-
env
|
|
24727
|
+
// 宿主给的 env 覆盖在 process.env 之上:daemon 进程本身没有这些变量(它们只在这一个
|
|
24728
|
+
// 子进程里活着)。云上宿主不传 extraEnv,凭据本来就在容器 env 里。
|
|
24729
|
+
// PATH 排在最后(与 ProjectStore.scaffold 同款):extraEnv 里若混进一条名叫 PATH 的条目,
|
|
24730
|
+
// 顶掉 PATH 会让脚本以「命令找不到」的形态崩在离现场很远的地方。
|
|
24731
|
+
env: { ...process.env, ...args.extraEnv ?? {}, PATH: process.env.PATH ?? "" },
|
|
24726
24732
|
stdio: ["ignore", "pipe", "pipe"]
|
|
24727
24733
|
});
|
|
24728
24734
|
const jobId = registry2.create({
|
|
@@ -25003,7 +25009,8 @@ function createPublishService() {
|
|
|
25003
25009
|
name: args.name,
|
|
25004
25010
|
sessionId: args.sessionId,
|
|
25005
25011
|
scriptPath: args.scriptPath,
|
|
25006
|
-
personaRoot: args.personaRoot
|
|
25012
|
+
personaRoot: args.personaRoot,
|
|
25013
|
+
...args.extraEnv ? { extraEnv: args.extraEnv } : {}
|
|
25007
25014
|
}
|
|
25008
25015
|
);
|
|
25009
25016
|
},
|
|
@@ -25020,7 +25027,7 @@ async function createProjectOnDisk(args) {
|
|
|
25020
25027
|
const { store, name, templateSrcDir, scaffoldScript, logger } = args;
|
|
25021
25028
|
const project = await store.create(name, args.reservedPorts);
|
|
25022
25029
|
try {
|
|
25023
|
-
const result = await store.scaffold(name, templateSrcDir, scaffoldScript);
|
|
25030
|
+
const result = await store.scaffold(name, templateSrcDir, scaffoldScript, args.extraEnv);
|
|
25024
25031
|
logger?.info("app-builder.scaffold.done", { name, stdout: result.stdout.slice(0, 200) });
|
|
25025
25032
|
} catch (err) {
|
|
25026
25033
|
const message = err instanceof Error ? err.message : String(err);
|