@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.
@@ -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