UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

138 lines (137 loc) 4.57 kB
//#region src/gateway/session-method-policy.ts const SESSION_TARGET_FIELDS_BY_METHOD = new Map([ ["skills.library.activate", ["sessionKey"]], ["agent", ["sessionKey"]], ["board.event", ["sessionKey"]], ["board.update", ["sessionKey"]], ["board.widget.grant", ["sessionKey"]], ["board.widget.put", ["sessionKey"]], ["chat.abort", ["sessionKey"]], ["chat.inject", ["sessionKey"]], ["chat.send", ["sessionKey"]], ["mcp.app.callTool", ["sessionKey"]], ["mcp.app.updateModelContext", ["sessionKey"]], ["message.action", ["sessionKey"]], ["plugins.sessionAction", ["sessionKey"]], ["progressCard.get", ["sessionKey"]], ["progressCard.put", ["sessionKey"]], ["send", ["sessionKey"]], ["session.discussion.open", ["sessionKey"]], ["sessions.abort", ["key"]], ["sessions.assignOwner", ["key"]], ["sessions.companion.ask", ["sessionKey"]], ["sessions.companion.reset", ["sessionKey"]], ["sessions.companion.state", ["sessionKey"]], ["sessions.compaction.branch", ["key"]], ["sessions.compaction.restore", ["key"]], ["sessions.compact", ["key"]], ["sessions.create", ["key", "parentSessionKey"]], ["sessions.delete", ["key"]], ["sessions.dispatch", ["key"]], ["sessions.files.set", ["sessionKey"]], ["sessions.github.publish", ["sessionKey"]], ["sessions.github.confirm", ["sessionKey"]], ["sessions.fork", ["sessionKey"]], ["sessions.patch", ["key"]], ["sessions.goal.update", ["sessionKey"]], ["sessions.goal.clear", ["sessionKey"]], ["sessions.pluginPatch", ["key"]], ...["sessions.move", "sessions.reclaim"].map((method) => [method, ["key"]]), ["sessions.recover", ["key"]], ["sessions.reset", ["key"]], ["sessions.rewind", ["sessionKey"]], ["sessions.send", ["key"]], ["sessions.steer", ["key"]], ["sessions.branches.switch", ["sessionKey"]], ...[ "taskSuggestions.create", "talk.client.close", "talk.client.create", "talk.client.steer", "talk.client.toolCall", "talk.client.transcript", "talk.session.create", "talk.session.steer", "wake" ].map((method) => [method, ["sessionKey"]]), ["tools.invoke", ["sessionKey"]] ]); const REQUIRED_SESSION_TARGET_METHODS = /* @__PURE__ */ new Set([ "skills.library.activate", "board.action", "board.event", "board.update", "board.widget.grant", "board.widget.put", "chat.abort", "chat.inject", "chat.send", "mcp.app.callTool", "mcp.app.updateModelContext", "progressCard.get", "progressCard.put", "session.discussion.open", "sessions.abort", "sessions.assignOwner", "sessions.branches.switch", "sessions.compact", "sessions.companion.reset", "sessions.compaction.branch", "sessions.compaction.restore", "sessions.delete", "sessions.dispatch", "sessions.files.set", "sessions.fork", "sessions.groups.delete", "sessions.groups.rename", "sessions.groups.update", "sessions.github.publish", "sessions.github.confirm", "sessions.patch", "sessions.goal.update", "sessions.goal.clear", "sessions.pluginPatch", "sessions.reclaim", "sessions.recover", "sessions.move", "sessions.reset", "sessions.rewind", "sessions.send", "sessions.steer", "talk.client.close", "talk.client.steer", "talk.client.toolCall", "talk.client.transcript", "taskSuggestions.create" ]); const APPROVAL_SESSION_TARGET_METHODS = /* @__PURE__ */ new Set([ "approval.resolve", "exec.approval.resolve", "plugin.approval.resolve" ]); const READ_ONLY_SESSION_TARGET_METHODS = /* @__PURE__ */ new Set(["sessions.companion.ask", "sessions.companion.state"]); const LEGACY_PROFILE_INDEPENDENT_MUTATION_METHODS = /* @__PURE__ */ new Set([ "talk.client.close", "talk.client.create", "talk.client.steer", "talk.client.toolCall", "talk.client.transcript", "talk.session.create", "talk.session.steer", "wake" ]); function sessionMutationTargetFields(method) { return READ_ONLY_SESSION_TARGET_METHODS.has(method) ? [] : SESSION_TARGET_FIELDS_BY_METHOD.get(method) ?? []; } function isRequiredSessionTargetMethod(method) { return REQUIRED_SESSION_TARGET_METHODS.has(method); } function isApprovalSessionTargetMethod(method) { return APPROVAL_SESSION_TARGET_METHODS.has(method); } function isSessionProfileDependentMethod(method) { if (LEGACY_PROFILE_INDEPENDENT_MUTATION_METHODS.has(method)) return false; return SESSION_TARGET_FIELDS_BY_METHOD.has(method) || REQUIRED_SESSION_TARGET_METHODS.has(method) || APPROVAL_SESSION_TARGET_METHODS.has(method) || method === "sessions.patchMany"; } //#endregion export { sessionMutationTargetFields as i, isRequiredSessionTargetMethod as n, isSessionProfileDependentMethod as r, isApprovalSessionTargetMethod as t };