

























@@ -1,25 +1,25 @@
11import type { OpenClawConfig } from "../../config/types.openclaw.js";
22import { createSubsystemLogger } from "../../logging/subsystem.js";
3-import { resolveSkillWorkshopConfig } from "./config.js";
4-import { listSkillProposals, proposeCreateSkill, proposeUpdateSkill } from "./service.js";
3+import { resolveSkillWorkshopConfig } from "../workshop/config.js";
4+import { listSkillProposals, proposeCreateSkill, proposeUpdateSkill } from "../workshop/service.js";
5+import { readWorkspaceSkillFile, resolveSkillProposalTarget } from "../workshop/store.js";
56import { extractDurableInstructionProposal } from "./signals.js";
6-import { readWorkspaceSkillFile, resolveSkillProposalTarget } from "./store.js";
778-type SkillWorkshopAgentEndEvent = {
8+type SkillResearchAgentEndEvent = {
99messages: unknown[];
1010success?: boolean;
1111};
121213-type SkillWorkshopAgentContext = {
13+type SkillResearchAgentContext = {
1414agentId?: string;
1515workspaceDir?: string;
1616};
171718-const log = createSubsystemLogger("skills/workshop");
18+const log = createSubsystemLogger("skills/research");
191920-export async function runSkillWorkshopAutoCapture(params: {
21-event: SkillWorkshopAgentEndEvent;
22-ctx: SkillWorkshopAgentContext;
20+export async function runSkillResearchAutoCapture(params: {
21+event: SkillResearchAgentEndEvent;
22+ctx: SkillResearchAgentContext;
2323config?: OpenClawConfig;
2424}): Promise<void> {
2525const config = resolveSkillWorkshopConfig(params.config);
@@ -39,7 +39,7 @@ export async function runSkillWorkshopAutoCapture(params: {
3939return;
4040}
4141if (Buffer.byteLength(proposal.content, "utf8") > config.maxSkillBytes) {
42-log.warn(`skill workshop auto-capture skipped oversized proposal: ${proposal.skillName}`);
42+log.warn(`skill research auto-capture skipped oversized proposal: ${proposal.skillName}`);
4343return;
4444}
4545@@ -48,7 +48,7 @@ export async function runSkillWorkshopAutoCapture(params: {
4848(entry) => entry.status === "pending" || entry.status === "quarantined",
4949);
5050if (activeProposals.length >= config.maxPending) {
51-log.warn("skill workshop auto-capture skipped because pending proposal limit was reached");
51+log.warn("skill research auto-capture skipped because pending proposal limit was reached");
5252return;
5353}
5454if (activeProposals.some((entry) => entry.skillKey === proposal.skillName)) {
@@ -82,8 +82,10 @@ export async function runSkillWorkshopAutoCapture(params: {
8282goal: proposal.goal,
8383evidence: proposal.evidence,
8484});
85-log.info(`skill workshop auto-capture queued ${result.record.target.skillKey}`);
85+log.info(
86+`skill research auto-capture queued workshop proposal ${result.record.target.skillKey}`,
87+);
8688} catch (error) {
87-log.warn(`skill workshop auto-capture skipped: ${String(error)}`);
89+log.warn(`skill research auto-capture skipped: ${String(error)}`);
8890}
8991}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。