@clawos-dev/clawd 0.2.666 → 0.2.668
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 +192 -157
- package/dist/cli.cjs +322 -195
- package/dist/cloud-persona-conversations.html +71 -71
- package/dist/dispatch/mcp-server.cjs +174 -154
- package/dist/persona-defaults/persona-app-builder/mcp/clawd-app-builder/mcp-server.cjs +192 -157
- package/dist/persona-defaults/persona-dataclaw-builder/mcp/clawd-app-builder/mcp-server.cjs +192 -157
- package/dist/share-ui/assets/{guest-B7AqtMdc.js → guest-DrCklp9W.js} +135 -135
- package/dist/share-ui/guest.html +1 -1
- package/package.json +1 -1
|
@@ -21464,6 +21464,14 @@ var VerificationSchema = external_exports.object({
|
|
|
21464
21464
|
verifiedAt: external_exports.string().refine((s) => Number.isFinite(Date.parse(s))),
|
|
21465
21465
|
test: PublisherTestReceiptSchema.optional()
|
|
21466
21466
|
}).strict();
|
|
21467
|
+
var DeployConfigSchema = external_exports.object({
|
|
21468
|
+
engine: external_exports.string().min(1),
|
|
21469
|
+
model: external_exports.string(),
|
|
21470
|
+
effort: external_exports.string(),
|
|
21471
|
+
size: external_exports.string().min(1),
|
|
21472
|
+
cpu: external_exports.number().positive(),
|
|
21473
|
+
taskConcurrency: external_exports.number().int().positive()
|
|
21474
|
+
}).strict();
|
|
21467
21475
|
var VerifiedPersonaReleaseSchema = external_exports.object({
|
|
21468
21476
|
version: external_exports.literal(1),
|
|
21469
21477
|
environment: external_exports.literal("integration"),
|
|
@@ -21473,6 +21481,7 @@ var VerifiedPersonaReleaseSchema = external_exports.object({
|
|
|
21473
21481
|
baseImage: ImageDigestSchema,
|
|
21474
21482
|
pipelineCommit: SourceCommitSchema,
|
|
21475
21483
|
repository: external_exports.string().regex(/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/),
|
|
21484
|
+
config: DeployConfigSchema.optional(),
|
|
21476
21485
|
verification: VerificationSchema.refine((v) => v.checks.includes("persona-smoke")),
|
|
21477
21486
|
test: PublisherTestSchema.optional()
|
|
21478
21487
|
}).strict().refine((record2) => {
|
|
@@ -21489,6 +21498,160 @@ var VerifiedBaseReleaseSchema = external_exports.object({
|
|
|
21489
21498
|
verification: VerificationSchema.refine((v) => v.checks.includes("base-smoke"))
|
|
21490
21499
|
}).strict();
|
|
21491
21500
|
|
|
21501
|
+
// ../protocol/src/tool-family.ts
|
|
21502
|
+
var CLOUD_TOOL_SUFFIX = "-cloud";
|
|
21503
|
+
var CODEX_CLOUD_TOOL_ID = `codex${CLOUD_TOOL_SUFFIX}`;
|
|
21504
|
+
var CODEX_SERVICE_TIERS = { standard: "default", fast: "priority" };
|
|
21505
|
+
var CLAUDE_CLOUD_TOOL_ID = `claude${CLOUD_TOOL_SUFFIX}`;
|
|
21506
|
+
var PI_TOOL_ID = "pi";
|
|
21507
|
+
var PI_CLOUD_TOOL_ID = `${PI_TOOL_ID}${CLOUD_TOOL_SUFFIX}`;
|
|
21508
|
+
|
|
21509
|
+
// ../protocol/src/persona-schemas.ts
|
|
21510
|
+
var CodexServiceTierSchema = external_exports.enum([CODEX_SERVICE_TIERS.standard, CODEX_SERVICE_TIERS.fast]);
|
|
21511
|
+
var PERSONA_SIZES = ["tiny", "small", "medium", "large", "xlarge"];
|
|
21512
|
+
var PersonaSizeSchema = external_exports.enum(PERSONA_SIZES);
|
|
21513
|
+
var PERSONA_CPUS = [0.5, 1, 2];
|
|
21514
|
+
var PersonaCpuSchema = external_exports.number().refine((cpu) => PERSONA_CPUS.includes(cpu), "Unsupported CPU");
|
|
21515
|
+
var PersonaCloudEngineSchema = external_exports.object({
|
|
21516
|
+
model: external_exports.string().optional(),
|
|
21517
|
+
effort: external_exports.string().optional()
|
|
21518
|
+
}).strict();
|
|
21519
|
+
var PersonaFileSchema = external_exports.object({
|
|
21520
|
+
personaId: external_exports.string(),
|
|
21521
|
+
label: external_exports.string(),
|
|
21522
|
+
model: external_exports.string().optional(),
|
|
21523
|
+
// 与 model 平行的第二个 session 默认值:reasoning effort。值域跟着 tool 走
|
|
21524
|
+
// (claude 是 '' | low | medium | high | xhigh | max,codex 是 per-model 档位),
|
|
21525
|
+
// 协议层保持 string,由消费侧按 capabilities 收窄。
|
|
21526
|
+
effort: external_exports.string().optional(),
|
|
21527
|
+
serviceTier: CodexServiceTierSchema.optional(),
|
|
21528
|
+
public: external_exports.boolean(),
|
|
21529
|
+
// 8-key set defined UI-side in `lib/session-icons.ts`; protocol stays plain string
|
|
21530
|
+
// for forward compatibility, consumer fallbacks to default when key not found.
|
|
21531
|
+
iconKey: external_exports.string().optional(),
|
|
21532
|
+
// Default engine binding for new sessions; missing values are consumed as claude.
|
|
21533
|
+
tool: external_exports.string().optional(),
|
|
21534
|
+
/** Cloud resource size is string-compatible in stored files and narrowed at update/deploy boundaries; local execution ignores it. */
|
|
21535
|
+
size: external_exports.string().optional(),
|
|
21536
|
+
cpu: external_exports.number().finite().optional(),
|
|
21537
|
+
/** Cloud task-Pod concurrency, validated at release. Local execution ignores it; changes apply on the next publication. */
|
|
21538
|
+
taskConcurrency: external_exports.number().int().positive().optional(),
|
|
21539
|
+
cloudEngine: PersonaCloudEngineSchema.optional(),
|
|
21540
|
+
createdAt: external_exports.number(),
|
|
21541
|
+
updatedAt: external_exports.number(),
|
|
21542
|
+
/** Registry-only cloud entry, with no local persona directory. Local key adds -cloud; gateway paths use cloud.personaId and the registered engine determines the cloud tool id. */
|
|
21543
|
+
cloud: external_exports.object({
|
|
21544
|
+
gatewayUrl: external_exports.string().min(1),
|
|
21545
|
+
personaId: external_exports.string().min(1),
|
|
21546
|
+
publishedByMe: external_exports.boolean().optional(),
|
|
21547
|
+
environment: DeployEnvironmentSchema.optional(),
|
|
21548
|
+
expectedImage: ImageDigestSchema.optional(),
|
|
21549
|
+
testReleaseId: external_exports.string().optional()
|
|
21550
|
+
}).strict().optional()
|
|
21551
|
+
}).strict();
|
|
21552
|
+
var PersonaSkillSummarySchema = external_exports.object({
|
|
21553
|
+
// 目录名作为 skill name(对齐 CC:frontmatter `name:` 仅作 displayName 用)
|
|
21554
|
+
name: external_exports.string().min(1),
|
|
21555
|
+
description: external_exports.string().optional()
|
|
21556
|
+
});
|
|
21557
|
+
var PersonaPluginSummarySchema = external_exports.object({
|
|
21558
|
+
id: external_exports.string().min(1)
|
|
21559
|
+
});
|
|
21560
|
+
var CodexSandboxSettingsSchema = external_exports.object({
|
|
21561
|
+
// 额外可写的绝对路径或 ~ 路径(pnpm 工具链等);workspace(cwd) 和 userWorkDir 由 daemon 自动加,不用列。
|
|
21562
|
+
writableRoots: external_exports.array(external_exports.string()).optional(),
|
|
21563
|
+
// 禁读 glob(相对 workspace root 或绝对),如 ".secrets/**"、"**/*.env"。
|
|
21564
|
+
denyRead: external_exports.array(external_exports.string()).optional(),
|
|
21565
|
+
// true → 网络全放(*);false / 缺省 → 断网(fail-closed)。**「新建默认联网」不靠这里的缺省**,
|
|
21566
|
+
// 靠 persona 创建时就把 CODEX_SANDBOX_DEFAULT 物化进文件(见 PersonaManager.create)——
|
|
21567
|
+
// 缺省只在文件损坏这种异常路径上出现,那时断网是更安全的一侧。
|
|
21568
|
+
network: external_exports.boolean().optional()
|
|
21569
|
+
}).strict();
|
|
21570
|
+
var PersonaSandboxSettingsSchema = external_exports.object({
|
|
21571
|
+
permissions: external_exports.object({
|
|
21572
|
+
defaultMode: external_exports.string().optional(),
|
|
21573
|
+
allow: external_exports.array(external_exports.string()).optional(),
|
|
21574
|
+
// deny 优先级最高;强制底座(persona 私密区)由 daemon compose 强制 union,owner 删不掉。
|
|
21575
|
+
deny: external_exports.array(external_exports.string()).optional()
|
|
21576
|
+
}).optional(),
|
|
21577
|
+
sandbox: external_exports.object({
|
|
21578
|
+
enabled: external_exports.boolean().optional(),
|
|
21579
|
+
autoAllowBashIfSandboxed: external_exports.boolean().optional(),
|
|
21580
|
+
allowUnsandboxedCommands: external_exports.boolean().optional(),
|
|
21581
|
+
// 命令前缀白名单(CC `sandbox.excludedCommands`):匹配的命令在沙箱外运行,
|
|
21582
|
+
// 用于需逃出沙箱的工具(如 'docker *' / 'aliyun *' 要访问宿主 socket / 凭证)。
|
|
21583
|
+
excludedCommands: external_exports.array(external_exports.string()).optional(),
|
|
21584
|
+
filesystem: external_exports.object({
|
|
21585
|
+
denyRead: external_exports.array(external_exports.string()).optional(),
|
|
21586
|
+
allowRead: external_exports.array(external_exports.string()).optional(),
|
|
21587
|
+
denyWrite: external_exports.array(external_exports.string()).optional(),
|
|
21588
|
+
allowWrite: external_exports.array(external_exports.string()).optional()
|
|
21589
|
+
}).optional(),
|
|
21590
|
+
network: external_exports.object({
|
|
21591
|
+
allowedDomains: external_exports.array(external_exports.string()).optional(),
|
|
21592
|
+
allowLocalBinding: external_exports.boolean().optional()
|
|
21593
|
+
}).optional()
|
|
21594
|
+
}).optional()
|
|
21595
|
+
});
|
|
21596
|
+
var PersonaInfoResponseSchema = PersonaFileSchema.extend({
|
|
21597
|
+
// 人格 builtin 层:`<personaDir>/CLAUDE.md`(= AGENTS.md 镜像)。预装 persona 的这份是
|
|
21598
|
+
// daemon ship 的产品规格,每次 daemon 启动被覆盖回 bundle 版(personalityManaged 标记它)。
|
|
21599
|
+
personality: external_exports.string().optional(),
|
|
21600
|
+
// Owner-managed personality overlay survives daemon resource refreshes and is injected for owner and guest sessions. Empty text clears it.
|
|
21601
|
+
personalityLocal: external_exports.string().optional(),
|
|
21602
|
+
// Managed builtin personality is refreshed by daemon and shown read-only; user edits belong to the overlay. User-created persona files remain editable.
|
|
21603
|
+
personalityManaged: external_exports.boolean().optional(),
|
|
21604
|
+
// 仅 'persona:get' 携带;null = 文件不存在 / parse 失败;undefined = 不在该响应类型上
|
|
21605
|
+
skills: external_exports.array(PersonaSkillSummarySchema).optional(),
|
|
21606
|
+
// 仅 'persona:get' 携带;空数组 = 没启用任何插件 / settings.json 不存在;undefined = 不在该响应类型上
|
|
21607
|
+
plugins: external_exports.array(PersonaPluginSummarySchema).optional(),
|
|
21608
|
+
sandboxSettings: PersonaSandboxSettingsSchema.nullable().optional(),
|
|
21609
|
+
// 仅 'persona:get' 携带;null = codex-sandbox.json 不存在 / parse 失败。
|
|
21610
|
+
// UI 的「访客联网」开关读它(见 PersonaCardSettings)。
|
|
21611
|
+
codexSandbox: CodexSandboxSettingsSchema.nullable().optional()
|
|
21612
|
+
});
|
|
21613
|
+
var PersonaCreateArgsSchema = external_exports.object({
|
|
21614
|
+
// Caller provides a safe slug, daemon adds persona-. Keep identity separate from the freely editable display label.
|
|
21615
|
+
slug: external_exports.string().regex(/^[a-z0-9]+(-[a-z0-9]+)*$/).max(32),
|
|
21616
|
+
label: external_exports.string().min(1),
|
|
21617
|
+
personality: external_exports.string(),
|
|
21618
|
+
model: external_exports.string().optional(),
|
|
21619
|
+
effort: external_exports.string().optional(),
|
|
21620
|
+
serviceTier: PersonaFileSchema.shape.serviceTier,
|
|
21621
|
+
tool: external_exports.string().optional(),
|
|
21622
|
+
public: external_exports.boolean().optional(),
|
|
21623
|
+
iconKey: external_exports.string().optional()
|
|
21624
|
+
}).strict();
|
|
21625
|
+
var PersonaIdArgsSchema = external_exports.object({
|
|
21626
|
+
personaId: external_exports.string().min(1)
|
|
21627
|
+
});
|
|
21628
|
+
var PersonaUpdateArgsSchema = external_exports.object({
|
|
21629
|
+
personaId: external_exports.string().min(1),
|
|
21630
|
+
patch: external_exports.object({
|
|
21631
|
+
label: external_exports.string().min(1).optional(),
|
|
21632
|
+
model: external_exports.string().optional(),
|
|
21633
|
+
effort: external_exports.string().optional(),
|
|
21634
|
+
serviceTier: PersonaFileSchema.shape.serviceTier,
|
|
21635
|
+
tool: external_exports.string().optional(),
|
|
21636
|
+
size: PersonaSizeSchema.optional(),
|
|
21637
|
+
cpu: PersonaCpuSchema.optional(),
|
|
21638
|
+
taskConcurrency: PersonaFileSchema.shape.taskConcurrency,
|
|
21639
|
+
// 整体替换(上云页每次交完整的 { model, effort });切 tool 不清它
|
|
21640
|
+
cloudEngine: PersonaCloudEngineSchema.optional(),
|
|
21641
|
+
personality: external_exports.string().optional(),
|
|
21642
|
+
// 人格补充层正文(见 PersonaInfoResponseSchema.personalityLocal)。与 personality 各写
|
|
21643
|
+
// 各层、互不影响;'' = 清空补充层。预装 persona 的编辑入口写的就是这个字段。
|
|
21644
|
+
personalityLocal: external_exports.string().optional(),
|
|
21645
|
+
public: external_exports.boolean().optional(),
|
|
21646
|
+
// pass `null` to clear; daemon strips the field from PersonaFile on null
|
|
21647
|
+
iconKey: external_exports.string().nullable().optional(),
|
|
21648
|
+
// codex guest 沙箱(落盘 .clawd/codex-sandbox.json,不在 PersonaFile 里)。与 personality
|
|
21649
|
+
// 同款分层写:handler 剥出来单独落盘,且**局部合并**——只带 network 的 patch 不能抹掉
|
|
21650
|
+
// owner 手配的 writableRoots / denyRead。
|
|
21651
|
+
codexSandbox: CodexSandboxSettingsSchema.optional()
|
|
21652
|
+
}).strict()
|
|
21653
|
+
}).strict();
|
|
21654
|
+
|
|
21492
21655
|
// ../protocol/src/deploy-schemas.ts
|
|
21493
21656
|
var DeployFileSchema = external_exports.object({
|
|
21494
21657
|
version: external_exports.literal(1),
|
|
@@ -21530,6 +21693,12 @@ var DeployReleasedSchema = external_exports.object({
|
|
|
21530
21693
|
runAttempt: external_exports.number().int().positive().optional(),
|
|
21531
21694
|
artifactId: external_exports.number().int().positive().optional(),
|
|
21532
21695
|
verified: VerifiedPersonaReleaseSchema.optional(),
|
|
21696
|
+
/** 这一轮测试用的配置(design 2026-10-14-deploy-config-decouple §3.1);老记录没有,按「发布时 commit 里的 persona.json」算 */
|
|
21697
|
+
config: DeployConfigSchema.optional(),
|
|
21698
|
+
/** 「应用配置」产生的记录:复用的是哪条测试发布的镜像(它的 id)。首次构建的记录没有 */
|
|
21699
|
+
reconfigOf: external_exports.string().min(1).optional(),
|
|
21700
|
+
/** 发布时写进仓库的 workflow 模板版本;缺 = 老模板(不认 config_json 输入,要先完整重发一次) */
|
|
21701
|
+
workflowVersion: external_exports.number().int().positive().optional(),
|
|
21533
21702
|
confirmation: external_exports.object({
|
|
21534
21703
|
fingerprint: external_exports.string().regex(/^[a-f0-9]{64}$/),
|
|
21535
21704
|
runId: external_exports.number().int().positive(),
|
|
@@ -21699,6 +21868,7 @@ var DeployReleaseArgsSchema = DeployPersonaArgsSchema.extend({
|
|
|
21699
21868
|
}).strict();
|
|
21700
21869
|
var DeployConfirmTestArgsSchema = DeployPersonaArgsSchema.extend({ releaseId: external_exports.string().min(1) }).strict();
|
|
21701
21870
|
var DeployPromoteArgsSchema = DeployConfirmTestArgsSchema;
|
|
21871
|
+
var DeployApplyConfigArgsSchema = DeployConfirmTestArgsSchema;
|
|
21702
21872
|
var DeployOpenTestArgsSchema = DeployConfirmTestArgsSchema;
|
|
21703
21873
|
var DeployEnvironmentArgsSchema = DeployPersonaArgsSchema.extend({ environment: DeployEnvironmentSchema.default("production") }).strict();
|
|
21704
21874
|
var DeployConfirmTestResultSchema = external_exports.object({ confirmation: DeployReleasedSchema.shape.confirmation.unwrap() }).strict();
|
|
@@ -22748,160 +22918,6 @@ var DashboardOpenUrlResultSchema = external_exports.object({
|
|
|
22748
22918
|
expiresAt: external_exports.number().int()
|
|
22749
22919
|
}).strict();
|
|
22750
22920
|
|
|
22751
|
-
// ../protocol/src/tool-family.ts
|
|
22752
|
-
var CLOUD_TOOL_SUFFIX = "-cloud";
|
|
22753
|
-
var CODEX_CLOUD_TOOL_ID = `codex${CLOUD_TOOL_SUFFIX}`;
|
|
22754
|
-
var CODEX_SERVICE_TIERS = { standard: "default", fast: "priority" };
|
|
22755
|
-
var CLAUDE_CLOUD_TOOL_ID = `claude${CLOUD_TOOL_SUFFIX}`;
|
|
22756
|
-
var PI_TOOL_ID = "pi";
|
|
22757
|
-
var PI_CLOUD_TOOL_ID = `${PI_TOOL_ID}${CLOUD_TOOL_SUFFIX}`;
|
|
22758
|
-
|
|
22759
|
-
// ../protocol/src/persona-schemas.ts
|
|
22760
|
-
var CodexServiceTierSchema = external_exports.enum([CODEX_SERVICE_TIERS.standard, CODEX_SERVICE_TIERS.fast]);
|
|
22761
|
-
var PERSONA_SIZES = ["tiny", "small", "medium", "large", "xlarge"];
|
|
22762
|
-
var PersonaSizeSchema = external_exports.enum(PERSONA_SIZES);
|
|
22763
|
-
var PERSONA_CPUS = [0.5, 1, 2];
|
|
22764
|
-
var PersonaCpuSchema = external_exports.number().refine((cpu) => PERSONA_CPUS.includes(cpu), "Unsupported CPU");
|
|
22765
|
-
var PersonaCloudEngineSchema = external_exports.object({
|
|
22766
|
-
model: external_exports.string().optional(),
|
|
22767
|
-
effort: external_exports.string().optional()
|
|
22768
|
-
}).strict();
|
|
22769
|
-
var PersonaFileSchema = external_exports.object({
|
|
22770
|
-
personaId: external_exports.string(),
|
|
22771
|
-
label: external_exports.string(),
|
|
22772
|
-
model: external_exports.string().optional(),
|
|
22773
|
-
// 与 model 平行的第二个 session 默认值:reasoning effort。值域跟着 tool 走
|
|
22774
|
-
// (claude 是 '' | low | medium | high | xhigh | max,codex 是 per-model 档位),
|
|
22775
|
-
// 协议层保持 string,由消费侧按 capabilities 收窄。
|
|
22776
|
-
effort: external_exports.string().optional(),
|
|
22777
|
-
serviceTier: CodexServiceTierSchema.optional(),
|
|
22778
|
-
public: external_exports.boolean(),
|
|
22779
|
-
// 8-key set defined UI-side in `lib/session-icons.ts`; protocol stays plain string
|
|
22780
|
-
// for forward compatibility, consumer fallbacks to default when key not found.
|
|
22781
|
-
iconKey: external_exports.string().optional(),
|
|
22782
|
-
// Default engine binding for new sessions; missing values are consumed as claude.
|
|
22783
|
-
tool: external_exports.string().optional(),
|
|
22784
|
-
/** Cloud resource size is string-compatible in stored files and narrowed at update/deploy boundaries; local execution ignores it. */
|
|
22785
|
-
size: external_exports.string().optional(),
|
|
22786
|
-
cpu: external_exports.number().finite().optional(),
|
|
22787
|
-
/** Cloud task-Pod concurrency, validated at release. Local execution ignores it; changes apply on the next publication. */
|
|
22788
|
-
taskConcurrency: external_exports.number().int().positive().optional(),
|
|
22789
|
-
cloudEngine: PersonaCloudEngineSchema.optional(),
|
|
22790
|
-
createdAt: external_exports.number(),
|
|
22791
|
-
updatedAt: external_exports.number(),
|
|
22792
|
-
/** Registry-only cloud entry, with no local persona directory. Local key adds -cloud; gateway paths use cloud.personaId and the registered engine determines the cloud tool id. */
|
|
22793
|
-
cloud: external_exports.object({
|
|
22794
|
-
gatewayUrl: external_exports.string().min(1),
|
|
22795
|
-
personaId: external_exports.string().min(1),
|
|
22796
|
-
publishedByMe: external_exports.boolean().optional(),
|
|
22797
|
-
environment: DeployEnvironmentSchema.optional(),
|
|
22798
|
-
expectedImage: ImageDigestSchema.optional(),
|
|
22799
|
-
testReleaseId: external_exports.string().optional()
|
|
22800
|
-
}).strict().optional()
|
|
22801
|
-
}).strict();
|
|
22802
|
-
var PersonaSkillSummarySchema = external_exports.object({
|
|
22803
|
-
// 目录名作为 skill name(对齐 CC:frontmatter `name:` 仅作 displayName 用)
|
|
22804
|
-
name: external_exports.string().min(1),
|
|
22805
|
-
description: external_exports.string().optional()
|
|
22806
|
-
});
|
|
22807
|
-
var PersonaPluginSummarySchema = external_exports.object({
|
|
22808
|
-
id: external_exports.string().min(1)
|
|
22809
|
-
});
|
|
22810
|
-
var CodexSandboxSettingsSchema = external_exports.object({
|
|
22811
|
-
// 额外可写的绝对路径或 ~ 路径(pnpm 工具链等);workspace(cwd) 和 userWorkDir 由 daemon 自动加,不用列。
|
|
22812
|
-
writableRoots: external_exports.array(external_exports.string()).optional(),
|
|
22813
|
-
// 禁读 glob(相对 workspace root 或绝对),如 ".secrets/**"、"**/*.env"。
|
|
22814
|
-
denyRead: external_exports.array(external_exports.string()).optional(),
|
|
22815
|
-
// true → 网络全放(*);false / 缺省 → 断网(fail-closed)。**「新建默认联网」不靠这里的缺省**,
|
|
22816
|
-
// 靠 persona 创建时就把 CODEX_SANDBOX_DEFAULT 物化进文件(见 PersonaManager.create)——
|
|
22817
|
-
// 缺省只在文件损坏这种异常路径上出现,那时断网是更安全的一侧。
|
|
22818
|
-
network: external_exports.boolean().optional()
|
|
22819
|
-
}).strict();
|
|
22820
|
-
var PersonaSandboxSettingsSchema = external_exports.object({
|
|
22821
|
-
permissions: external_exports.object({
|
|
22822
|
-
defaultMode: external_exports.string().optional(),
|
|
22823
|
-
allow: external_exports.array(external_exports.string()).optional(),
|
|
22824
|
-
// deny 优先级最高;强制底座(persona 私密区)由 daemon compose 强制 union,owner 删不掉。
|
|
22825
|
-
deny: external_exports.array(external_exports.string()).optional()
|
|
22826
|
-
}).optional(),
|
|
22827
|
-
sandbox: external_exports.object({
|
|
22828
|
-
enabled: external_exports.boolean().optional(),
|
|
22829
|
-
autoAllowBashIfSandboxed: external_exports.boolean().optional(),
|
|
22830
|
-
allowUnsandboxedCommands: external_exports.boolean().optional(),
|
|
22831
|
-
// 命令前缀白名单(CC `sandbox.excludedCommands`):匹配的命令在沙箱外运行,
|
|
22832
|
-
// 用于需逃出沙箱的工具(如 'docker *' / 'aliyun *' 要访问宿主 socket / 凭证)。
|
|
22833
|
-
excludedCommands: external_exports.array(external_exports.string()).optional(),
|
|
22834
|
-
filesystem: external_exports.object({
|
|
22835
|
-
denyRead: external_exports.array(external_exports.string()).optional(),
|
|
22836
|
-
allowRead: external_exports.array(external_exports.string()).optional(),
|
|
22837
|
-
denyWrite: external_exports.array(external_exports.string()).optional(),
|
|
22838
|
-
allowWrite: external_exports.array(external_exports.string()).optional()
|
|
22839
|
-
}).optional(),
|
|
22840
|
-
network: external_exports.object({
|
|
22841
|
-
allowedDomains: external_exports.array(external_exports.string()).optional(),
|
|
22842
|
-
allowLocalBinding: external_exports.boolean().optional()
|
|
22843
|
-
}).optional()
|
|
22844
|
-
}).optional()
|
|
22845
|
-
});
|
|
22846
|
-
var PersonaInfoResponseSchema = PersonaFileSchema.extend({
|
|
22847
|
-
// 人格 builtin 层:`<personaDir>/CLAUDE.md`(= AGENTS.md 镜像)。预装 persona 的这份是
|
|
22848
|
-
// daemon ship 的产品规格,每次 daemon 启动被覆盖回 bundle 版(personalityManaged 标记它)。
|
|
22849
|
-
personality: external_exports.string().optional(),
|
|
22850
|
-
// Owner-managed personality overlay survives daemon resource refreshes and is injected for owner and guest sessions. Empty text clears it.
|
|
22851
|
-
personalityLocal: external_exports.string().optional(),
|
|
22852
|
-
// Managed builtin personality is refreshed by daemon and shown read-only; user edits belong to the overlay. User-created persona files remain editable.
|
|
22853
|
-
personalityManaged: external_exports.boolean().optional(),
|
|
22854
|
-
// 仅 'persona:get' 携带;null = 文件不存在 / parse 失败;undefined = 不在该响应类型上
|
|
22855
|
-
skills: external_exports.array(PersonaSkillSummarySchema).optional(),
|
|
22856
|
-
// 仅 'persona:get' 携带;空数组 = 没启用任何插件 / settings.json 不存在;undefined = 不在该响应类型上
|
|
22857
|
-
plugins: external_exports.array(PersonaPluginSummarySchema).optional(),
|
|
22858
|
-
sandboxSettings: PersonaSandboxSettingsSchema.nullable().optional(),
|
|
22859
|
-
// 仅 'persona:get' 携带;null = codex-sandbox.json 不存在 / parse 失败。
|
|
22860
|
-
// UI 的「访客联网」开关读它(见 PersonaCardSettings)。
|
|
22861
|
-
codexSandbox: CodexSandboxSettingsSchema.nullable().optional()
|
|
22862
|
-
});
|
|
22863
|
-
var PersonaCreateArgsSchema = external_exports.object({
|
|
22864
|
-
// Caller provides a safe slug, daemon adds persona-. Keep identity separate from the freely editable display label.
|
|
22865
|
-
slug: external_exports.string().regex(/^[a-z0-9]+(-[a-z0-9]+)*$/).max(32),
|
|
22866
|
-
label: external_exports.string().min(1),
|
|
22867
|
-
personality: external_exports.string(),
|
|
22868
|
-
model: external_exports.string().optional(),
|
|
22869
|
-
effort: external_exports.string().optional(),
|
|
22870
|
-
serviceTier: PersonaFileSchema.shape.serviceTier,
|
|
22871
|
-
tool: external_exports.string().optional(),
|
|
22872
|
-
public: external_exports.boolean().optional(),
|
|
22873
|
-
iconKey: external_exports.string().optional()
|
|
22874
|
-
}).strict();
|
|
22875
|
-
var PersonaIdArgsSchema = external_exports.object({
|
|
22876
|
-
personaId: external_exports.string().min(1)
|
|
22877
|
-
});
|
|
22878
|
-
var PersonaUpdateArgsSchema = external_exports.object({
|
|
22879
|
-
personaId: external_exports.string().min(1),
|
|
22880
|
-
patch: external_exports.object({
|
|
22881
|
-
label: external_exports.string().min(1).optional(),
|
|
22882
|
-
model: external_exports.string().optional(),
|
|
22883
|
-
effort: external_exports.string().optional(),
|
|
22884
|
-
serviceTier: PersonaFileSchema.shape.serviceTier,
|
|
22885
|
-
tool: external_exports.string().optional(),
|
|
22886
|
-
size: PersonaSizeSchema.optional(),
|
|
22887
|
-
cpu: PersonaCpuSchema.optional(),
|
|
22888
|
-
taskConcurrency: PersonaFileSchema.shape.taskConcurrency,
|
|
22889
|
-
// 整体替换(上云页每次交完整的 { model, effort });切 tool 不清它
|
|
22890
|
-
cloudEngine: PersonaCloudEngineSchema.optional(),
|
|
22891
|
-
personality: external_exports.string().optional(),
|
|
22892
|
-
// 人格补充层正文(见 PersonaInfoResponseSchema.personalityLocal)。与 personality 各写
|
|
22893
|
-
// 各层、互不影响;'' = 清空补充层。预装 persona 的编辑入口写的就是这个字段。
|
|
22894
|
-
personalityLocal: external_exports.string().optional(),
|
|
22895
|
-
public: external_exports.boolean().optional(),
|
|
22896
|
-
// pass `null` to clear; daemon strips the field from PersonaFile on null
|
|
22897
|
-
iconKey: external_exports.string().nullable().optional(),
|
|
22898
|
-
// codex guest 沙箱(落盘 .clawd/codex-sandbox.json,不在 PersonaFile 里)。与 personality
|
|
22899
|
-
// 同款分层写:handler 剥出来单独落盘,且**局部合并**——只带 network 的 patch 不能抹掉
|
|
22900
|
-
// owner 手配的 writableRoots / denyRead。
|
|
22901
|
-
codexSandbox: CodexSandboxSettingsSchema.optional()
|
|
22902
|
-
}).strict()
|
|
22903
|
-
}).strict();
|
|
22904
|
-
|
|
22905
22921
|
// ../protocol/src/events.ts
|
|
22906
22922
|
var SESSION_STATUS_VALUES = [
|
|
22907
22923
|
"idle",
|
|
@@ -23960,6 +23976,10 @@ var METHOD_DOCS = {
|
|
|
23960
23976
|
summary: "\u786E\u8BA4\u6240\u9009\u6D4B\u8BD5\u7248\u901A\u8FC7\u5B9E\u9645\u8BD5\u7528\uFF1B\u6309\u5DF2\u4FDD\u5B58\u5236\u54C1\u548C\u6D4B\u8BD5\u767B\u8BB0\u6821\u9A8C\uFF0Cowner-only\u3001human-only",
|
|
23961
23977
|
args: DeployConfirmTestArgsSchema
|
|
23962
23978
|
},
|
|
23979
|
+
"deploy:applyConfig": {
|
|
23980
|
+
summary: "\u628A releaseId \u90A3\u6761\u6D4B\u8BD5\u53D1\u5E03\u7684**\u955C\u50CF**\u6362\u4E0A persona \u5F53\u524D\u7684\u5F15\u64CE / \u6A21\u578B / \u8D44\u6E90\u914D\u7F6E\uFF0C\u5728\u6D4B\u8BD5\u73AF\u5883\u91CD\u6D4B\u4E00\u904D\uFF1A\u4E0D\u626B\u63CF\u3001\u4E0D\u6784\u5EFA\uFF0C\u6D41\u6C34\u7EBF\u8D70 smoke \u2192 \u767B\u8BB0 \u2192 \u9A8C\u8BC1\u3002\u524D\u7F6E\uFF1A\u90A3\u6761\u53D1\u5E03\u5DF2\u63A8\u9001\u5E76\u901A\u8FC7\u9A8C\u8BC1\uFF0C\u4E14\u4ED3\u5E93\u91CC\u7684 workflow \u6A21\u677F\u591F\u65B0\uFF08\u7F3A config_json \u8F93\u5165\u7684\u8981\u5148\u300C\u53D1\u5E03\u5230\u6D4B\u8BD5\u300D\u5B8C\u6574\u91CD\u53D1\u4E00\u6B21\uFF09\uFF1B\u8FC7\u4E0E\u53D1\u5E03\u540C\u4E00\u5957\u95F8\uFF08\u9009\u4E86\u6A21\u578B\u3001\u8BA2\u9605\u51ED\u636E\u6210\u5BF9\u7B49\uFF09\u3002\u56DE\u65B0\u6D4B\u8BD5\u53D1\u5E03\u7684 commit \u4E0E Actions \u5730\u5740\uFF1B\u4E4B\u540E\u8D70\u5E38\u89C4\u7684\u6D4B\u8BD5\u786E\u8BA4 / \u664B\u7EA7\uFF1Bowner-only\u3001human-only",
|
|
23981
|
+
args: DeployApplyConfigArgsSchema
|
|
23982
|
+
},
|
|
23963
23983
|
"deploy:promote": {
|
|
23964
23984
|
summary: "\u5C06\u5DF2\u786E\u8BA4\u6D4B\u8BD5\u7248\u7684\u63D0\u4EA4\u63A8\u8FDB main \u5E76\u4E0A\u7EBF\u76F8\u540C\u955C\u50CF\uFF1B\u6062\u590D\u4E2D\u65AD\u7684\u540C\u4E00\u6B21\u664B\u7EA7\uFF0Cowner-only\u3001human-only",
|
|
23965
23985
|
args: DeployPromoteArgsSchema
|