mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-19 11:48:38 +00:00
chore: fix formatting drift and stabilize cron tool mocks
This commit is contained in:
@@ -1,8 +1,7 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
import { AgentSideConnection, ndJsonStream } from "@agentclientprotocol/sdk";
|
|
||||||
import { Readable, Writable } from "node:stream";
|
import { Readable, Writable } from "node:stream";
|
||||||
import { fileURLToPath } from "node:url";
|
import { fileURLToPath } from "node:url";
|
||||||
import type { AcpServerOptions } from "./types.js";
|
import { AgentSideConnection, ndJsonStream } from "@agentclientprotocol/sdk";
|
||||||
import { loadConfig } from "../config/config.js";
|
import { loadConfig } from "../config/config.js";
|
||||||
import { resolveGatewayAuth } from "../gateway/auth.js";
|
import { resolveGatewayAuth } from "../gateway/auth.js";
|
||||||
import { buildGatewayConnectionDetails } from "../gateway/call.js";
|
import { buildGatewayConnectionDetails } from "../gateway/call.js";
|
||||||
@@ -11,6 +10,7 @@ import { isMainModule } from "../infra/is-main.js";
|
|||||||
import { GATEWAY_CLIENT_MODES, GATEWAY_CLIENT_NAMES } from "../utils/message-channel.js";
|
import { GATEWAY_CLIENT_MODES, GATEWAY_CLIENT_NAMES } from "../utils/message-channel.js";
|
||||||
import { readSecretFromFile } from "./secret-file.js";
|
import { readSecretFromFile } from "./secret-file.js";
|
||||||
import { AcpGatewayAgent } from "./translator.js";
|
import { AcpGatewayAgent } from "./translator.js";
|
||||||
|
import type { AcpServerOptions } from "./types.js";
|
||||||
|
|
||||||
export function serveAcpGateway(opts: AcpServerOptions = {}): Promise<void> {
|
export function serveAcpGateway(opts: AcpServerOptions = {}): Promise<void> {
|
||||||
const cfg = loadConfig();
|
const cfg = loadConfig();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import type { AgentSideConnection, PromptRequest } from "@agentclientprotocol/sdk";
|
|
||||||
import os from "node:os";
|
import os from "node:os";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
|
import type { AgentSideConnection, PromptRequest } from "@agentclientprotocol/sdk";
|
||||||
import { describe, expect, it, vi } from "vitest";
|
import { describe, expect, it, vi } from "vitest";
|
||||||
import type { GatewayClient } from "../gateway/client.js";
|
import type { GatewayClient } from "../gateway/client.js";
|
||||||
import { createInMemorySessionStore } from "./session.js";
|
import { createInMemorySessionStore } from "./session.js";
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { randomUUID } from "node:crypto";
|
||||||
import type {
|
import type {
|
||||||
Agent,
|
Agent,
|
||||||
AgentSideConnection,
|
AgentSideConnection,
|
||||||
@@ -19,7 +20,6 @@ import type {
|
|||||||
StopReason,
|
StopReason,
|
||||||
} from "@agentclientprotocol/sdk";
|
} from "@agentclientprotocol/sdk";
|
||||||
import { PROTOCOL_VERSION } from "@agentclientprotocol/sdk";
|
import { PROTOCOL_VERSION } from "@agentclientprotocol/sdk";
|
||||||
import { randomUUID } from "node:crypto";
|
|
||||||
import type { GatewayClient } from "../gateway/client.js";
|
import type { GatewayClient } from "../gateway/client.js";
|
||||||
import type { EventFrame } from "../gateway/protocol/index.js";
|
import type { EventFrame } from "../gateway/protocol/index.js";
|
||||||
import type { SessionsListResult } from "../gateway/session-utils.js";
|
import type { SessionsListResult } from "../gateway/session-utils.js";
|
||||||
|
|||||||
@@ -1,11 +1,6 @@
|
|||||||
import type { AgentTool, AgentToolResult } from "@mariozechner/pi-agent-core";
|
|
||||||
import fs from "node:fs/promises";
|
import fs from "node:fs/promises";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
import type {
|
import type { AgentTool, AgentToolResult } from "@mariozechner/pi-agent-core";
|
||||||
ExecElevatedDefaults,
|
|
||||||
ExecToolDefaults,
|
|
||||||
ExecToolDetails,
|
|
||||||
} from "./bash-tools.exec-types.js";
|
|
||||||
import { type ExecHost, maxAsk, minSecurity, resolveSafeBins } from "../infra/exec-approvals.js";
|
import { type ExecHost, maxAsk, minSecurity, resolveSafeBins } from "../infra/exec-approvals.js";
|
||||||
import { getTrustedSafeBinDirs } from "../infra/exec-safe-bin-trust.js";
|
import { getTrustedSafeBinDirs } from "../infra/exec-safe-bin-trust.js";
|
||||||
import {
|
import {
|
||||||
@@ -33,6 +28,11 @@ import {
|
|||||||
execSchema,
|
execSchema,
|
||||||
validateHostEnv,
|
validateHostEnv,
|
||||||
} from "./bash-tools.exec-runtime.js";
|
} from "./bash-tools.exec-runtime.js";
|
||||||
|
import type {
|
||||||
|
ExecElevatedDefaults,
|
||||||
|
ExecToolDefaults,
|
||||||
|
ExecToolDetails,
|
||||||
|
} from "./bash-tools.exec-types.js";
|
||||||
import {
|
import {
|
||||||
buildSandboxEnv,
|
buildSandboxEnv,
|
||||||
clampWithDefault,
|
clampWithDefault,
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import type { OpenClawConfig } from "../config/config.js";
|
import type { OpenClawConfig } from "../config/config.js";
|
||||||
import type { GatewayMessageChannel } from "../utils/message-channel.js";
|
|
||||||
import type { SandboxFsBridge } from "./sandbox/fs-bridge.js";
|
|
||||||
import type { AnyAgentTool } from "./tools/common.js";
|
|
||||||
import { resolvePluginTools } from "../plugins/tools.js";
|
import { resolvePluginTools } from "../plugins/tools.js";
|
||||||
|
import type { GatewayMessageChannel } from "../utils/message-channel.js";
|
||||||
import { resolveSessionAgentId } from "./agent-scope.js";
|
import { resolveSessionAgentId } from "./agent-scope.js";
|
||||||
|
import type { SandboxFsBridge } from "./sandbox/fs-bridge.js";
|
||||||
import { createAgentsListTool } from "./tools/agents-list-tool.js";
|
import { createAgentsListTool } from "./tools/agents-list-tool.js";
|
||||||
import { createBrowserTool } from "./tools/browser-tool.js";
|
import { createBrowserTool } from "./tools/browser-tool.js";
|
||||||
import { createCanvasTool } from "./tools/canvas-tool.js";
|
import { createCanvasTool } from "./tools/canvas-tool.js";
|
||||||
|
import type { AnyAgentTool } from "./tools/common.js";
|
||||||
import { createCronTool } from "./tools/cron-tool.js";
|
import { createCronTool } from "./tools/cron-tool.js";
|
||||||
import { createGatewayTool } from "./tools/gateway-tool.js";
|
import { createGatewayTool } from "./tools/gateway-tool.js";
|
||||||
import { createImageTool } from "./tools/image-tool.js";
|
import { createImageTool } from "./tools/image-tool.js";
|
||||||
|
|||||||
@@ -7,9 +7,6 @@ import {
|
|||||||
} from "@mariozechner/pi-coding-agent";
|
} from "@mariozechner/pi-coding-agent";
|
||||||
import type { OpenClawConfig } from "../config/config.js";
|
import type { OpenClawConfig } from "../config/config.js";
|
||||||
import type { ToolLoopDetectionConfig } from "../config/types.tools.js";
|
import type { ToolLoopDetectionConfig } from "../config/types.tools.js";
|
||||||
import type { ModelAuthMode } from "./model-auth.js";
|
|
||||||
import type { AnyAgentTool } from "./pi-tools.types.js";
|
|
||||||
import type { SandboxContext } from "./sandbox.js";
|
|
||||||
import { logWarn } from "../logger.js";
|
import { logWarn } from "../logger.js";
|
||||||
import { getPluginToolMeta } from "../plugins/tools.js";
|
import { getPluginToolMeta } from "../plugins/tools.js";
|
||||||
import { isSubagentSessionKey } from "../routing/session-key.js";
|
import { isSubagentSessionKey } from "../routing/session-key.js";
|
||||||
@@ -24,6 +21,7 @@ import {
|
|||||||
} from "./bash-tools.js";
|
} from "./bash-tools.js";
|
||||||
import { listChannelAgentTools } from "./channel-tools.js";
|
import { listChannelAgentTools } from "./channel-tools.js";
|
||||||
import { resolveImageSanitizationLimits } from "./image-sanitization.js";
|
import { resolveImageSanitizationLimits } from "./image-sanitization.js";
|
||||||
|
import type { ModelAuthMode } from "./model-auth.js";
|
||||||
import { createOpenClawTools } from "./openclaw-tools.js";
|
import { createOpenClawTools } from "./openclaw-tools.js";
|
||||||
import { wrapToolWithAbortSignal } from "./pi-tools.abort.js";
|
import { wrapToolWithAbortSignal } from "./pi-tools.abort.js";
|
||||||
import { wrapToolWithBeforeToolCallHook } from "./pi-tools.before-tool-call.js";
|
import { wrapToolWithBeforeToolCallHook } from "./pi-tools.before-tool-call.js";
|
||||||
@@ -46,6 +44,8 @@ import {
|
|||||||
wrapToolParamNormalization,
|
wrapToolParamNormalization,
|
||||||
} from "./pi-tools.read.js";
|
} from "./pi-tools.read.js";
|
||||||
import { cleanToolSchemaForGemini, normalizeToolParameters } from "./pi-tools.schema.js";
|
import { cleanToolSchemaForGemini, normalizeToolParameters } from "./pi-tools.schema.js";
|
||||||
|
import type { AnyAgentTool } from "./pi-tools.types.js";
|
||||||
|
import type { SandboxContext } from "./sandbox.js";
|
||||||
import { getSubagentDepthFromSessionStore } from "./subagent-depth.js";
|
import { getSubagentDepthFromSessionStore } from "./subagent-depth.js";
|
||||||
import {
|
import {
|
||||||
applyToolPolicyPipeline,
|
applyToolPolicyPipeline,
|
||||||
|
|||||||
@@ -1,6 +1,18 @@
|
|||||||
import { beforeEach, describe, expect, it } from "vitest";
|
import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||||
|
|
||||||
|
const { callGatewayMock } = vi.hoisted(() => ({
|
||||||
|
callGatewayMock: vi.fn(),
|
||||||
|
}));
|
||||||
|
|
||||||
|
vi.mock("../../gateway/call.js", () => ({
|
||||||
|
callGateway: (opts: unknown) => callGatewayMock(opts),
|
||||||
|
}));
|
||||||
|
|
||||||
|
vi.mock("../agent-scope.js", () => ({
|
||||||
|
resolveSessionAgentId: () => "agent-123",
|
||||||
|
}));
|
||||||
|
|
||||||
import { createCronTool } from "./cron-tool.js";
|
import { createCronTool } from "./cron-tool.js";
|
||||||
import { callGatewayMock } from "./cron-tool.test-harness.js";
|
|
||||||
|
|
||||||
describe("cron tool", () => {
|
describe("cron tool", () => {
|
||||||
async function executeAddAndReadDelivery(params: {
|
async function executeAddAndReadDelivery(params: {
|
||||||
|
|||||||
@@ -1,6 +1,18 @@
|
|||||||
import { beforeEach, describe, expect, it } from "vitest";
|
import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||||
|
|
||||||
|
const { callGatewayMock } = vi.hoisted(() => ({
|
||||||
|
callGatewayMock: vi.fn(),
|
||||||
|
}));
|
||||||
|
|
||||||
|
vi.mock("../../gateway/call.js", () => ({
|
||||||
|
callGateway: (opts: unknown) => callGatewayMock(opts),
|
||||||
|
}));
|
||||||
|
|
||||||
|
vi.mock("../agent-scope.js", () => ({
|
||||||
|
resolveSessionAgentId: () => "agent-123",
|
||||||
|
}));
|
||||||
|
|
||||||
import { createCronTool } from "./cron-tool.js";
|
import { createCronTool } from "./cron-tool.js";
|
||||||
import { callGatewayMock } from "./cron-tool.test-harness.js";
|
|
||||||
|
|
||||||
describe("cron tool flat-params", () => {
|
describe("cron tool flat-params", () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
import { Type } from "@sinclair/typebox";
|
import { Type } from "@sinclair/typebox";
|
||||||
import type { OpenClawConfig } from "../../config/config.js";
|
|
||||||
import type { AnyAgentTool } from "./common.js";
|
|
||||||
import { BLUEBUBBLES_GROUP_ACTIONS } from "../../channels/plugins/bluebubbles-actions.js";
|
import { BLUEBUBBLES_GROUP_ACTIONS } from "../../channels/plugins/bluebubbles-actions.js";
|
||||||
import {
|
import {
|
||||||
listChannelMessageActions,
|
listChannelMessageActions,
|
||||||
@@ -13,6 +11,7 @@ import {
|
|||||||
CHANNEL_MESSAGE_ACTION_NAMES,
|
CHANNEL_MESSAGE_ACTION_NAMES,
|
||||||
type ChannelMessageActionName,
|
type ChannelMessageActionName,
|
||||||
} from "../../channels/plugins/types.js";
|
} from "../../channels/plugins/types.js";
|
||||||
|
import type { OpenClawConfig } from "../../config/config.js";
|
||||||
import { loadConfig } from "../../config/config.js";
|
import { loadConfig } from "../../config/config.js";
|
||||||
import { GATEWAY_CLIENT_IDS, GATEWAY_CLIENT_MODES } from "../../gateway/protocol/client-info.js";
|
import { GATEWAY_CLIENT_IDS, GATEWAY_CLIENT_MODES } from "../../gateway/protocol/client-info.js";
|
||||||
import { getToolResult, runMessageAction } from "../../infra/outbound/message-action-runner.js";
|
import { getToolResult, runMessageAction } from "../../infra/outbound/message-action-runner.js";
|
||||||
@@ -23,6 +22,7 @@ import { normalizeMessageChannel } from "../../utils/message-channel.js";
|
|||||||
import { resolveSessionAgentId } from "../agent-scope.js";
|
import { resolveSessionAgentId } from "../agent-scope.js";
|
||||||
import { listChannelSupportedActions } from "../channel-tools.js";
|
import { listChannelSupportedActions } from "../channel-tools.js";
|
||||||
import { channelTargetSchema, channelTargetsSchema, stringEnum } from "../schema/typebox.js";
|
import { channelTargetSchema, channelTargetsSchema, stringEnum } from "../schema/typebox.js";
|
||||||
|
import type { AnyAgentTool } from "./common.js";
|
||||||
import { jsonResult, readNumberParam, readStringParam } from "./common.js";
|
import { jsonResult, readNumberParam, readStringParam } from "./common.js";
|
||||||
import { resolveGatewayOptions } from "./gateway.js";
|
import { resolveGatewayOptions } from "./gateway.js";
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import type { AgentToolResult } from "@mariozechner/pi-agent-core";
|
import type { AgentToolResult } from "@mariozechner/pi-agent-core";
|
||||||
import type { ChannelMessageActionContext } from "../../types.js";
|
|
||||||
import {
|
import {
|
||||||
readNumberParam,
|
readNumberParam,
|
||||||
readStringArrayParam,
|
readStringArrayParam,
|
||||||
@@ -10,6 +9,7 @@ import {
|
|||||||
readDiscordModerationCommand,
|
readDiscordModerationCommand,
|
||||||
} from "../../../../agents/tools/discord-actions-moderation-shared.js";
|
} from "../../../../agents/tools/discord-actions-moderation-shared.js";
|
||||||
import { handleDiscordAction } from "../../../../agents/tools/discord-actions.js";
|
import { handleDiscordAction } from "../../../../agents/tools/discord-actions.js";
|
||||||
|
import type { ChannelMessageActionContext } from "../../types.js";
|
||||||
|
|
||||||
type Ctx = Pick<
|
type Ctx = Pick<
|
||||||
ChannelMessageActionContext,
|
ChannelMessageActionContext,
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import type { AgentToolResult } from "@mariozechner/pi-agent-core";
|
import type { AgentToolResult } from "@mariozechner/pi-agent-core";
|
||||||
import type { ChannelMessageActionContext } from "../../types.js";
|
|
||||||
import {
|
import {
|
||||||
readNumberParam,
|
readNumberParam,
|
||||||
readStringArrayParam,
|
readStringArrayParam,
|
||||||
@@ -7,6 +6,7 @@ import {
|
|||||||
} from "../../../../agents/tools/common.js";
|
} from "../../../../agents/tools/common.js";
|
||||||
import { handleDiscordAction } from "../../../../agents/tools/discord-actions.js";
|
import { handleDiscordAction } from "../../../../agents/tools/discord-actions.js";
|
||||||
import { resolveDiscordChannelId } from "../../../../discord/targets.js";
|
import { resolveDiscordChannelId } from "../../../../discord/targets.js";
|
||||||
|
import type { ChannelMessageActionContext } from "../../types.js";
|
||||||
import { tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin.js";
|
import { tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin.js";
|
||||||
|
|
||||||
const providerId = "discord";
|
const providerId = "discord";
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { Command } from "commander";
|
|
||||||
import fs from "node:fs/promises";
|
import fs from "node:fs/promises";
|
||||||
import os from "node:os";
|
import os from "node:os";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
|
import { Command } from "commander";
|
||||||
import { beforeEach, describe, expect, it, vi } from "vitest";
|
import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||||
|
|
||||||
const runAcpClientInteractive = vi.fn(async (_opts: unknown) => {});
|
const runAcpClientInteractive = vi.fn(async (_opts: unknown) => {});
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
import type { Command } from "commander";
|
|
||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
import fsp from "node:fs/promises";
|
import fsp from "node:fs/promises";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
import type { OpenClawConfig } from "../config/config.js";
|
import type { Command } from "commander";
|
||||||
import type { HookEntry } from "../hooks/types.js";
|
|
||||||
import { resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../agents/agent-scope.js";
|
import { resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../agents/agent-scope.js";
|
||||||
|
import type { OpenClawConfig } from "../config/config.js";
|
||||||
import { loadConfig, writeConfigFile } from "../config/io.js";
|
import { loadConfig, writeConfigFile } from "../config/io.js";
|
||||||
import {
|
import {
|
||||||
buildWorkspaceHookStatus,
|
buildWorkspaceHookStatus,
|
||||||
@@ -17,6 +16,7 @@ import {
|
|||||||
resolveHookInstallDir,
|
resolveHookInstallDir,
|
||||||
} from "../hooks/install.js";
|
} from "../hooks/install.js";
|
||||||
import { recordHookInstall } from "../hooks/installs.js";
|
import { recordHookInstall } from "../hooks/installs.js";
|
||||||
|
import type { HookEntry } from "../hooks/types.js";
|
||||||
import { loadWorkspaceHookEntries } from "../hooks/workspace.js";
|
import { loadWorkspaceHookEntries } from "../hooks/workspace.js";
|
||||||
import { resolveArchiveKind } from "../infra/archive.js";
|
import { resolveArchiveKind } from "../infra/archive.js";
|
||||||
import { buildPluginStatusReport } from "../plugins/status.js";
|
import { buildPluginStatusReport } from "../plugins/status.js";
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
import type { Command } from "commander";
|
|
||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
import os from "node:os";
|
import os from "node:os";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
|
import type { Command } from "commander";
|
||||||
import type { OpenClawConfig } from "../config/config.js";
|
import type { OpenClawConfig } from "../config/config.js";
|
||||||
import type { PluginRecord } from "../plugins/registry.js";
|
|
||||||
import { loadConfig, writeConfigFile } from "../config/config.js";
|
import { loadConfig, writeConfigFile } from "../config/config.js";
|
||||||
import { resolveStateDir } from "../config/paths.js";
|
import { resolveStateDir } from "../config/paths.js";
|
||||||
import { resolveArchiveKind } from "../infra/archive.js";
|
import { resolveArchiveKind } from "../infra/archive.js";
|
||||||
import { installPluginFromNpmSpec, installPluginFromPath } from "../plugins/install.js";
|
import { installPluginFromNpmSpec, installPluginFromPath } from "../plugins/install.js";
|
||||||
import { recordPluginInstall } from "../plugins/installs.js";
|
import { recordPluginInstall } from "../plugins/installs.js";
|
||||||
import { clearPluginManifestRegistryCache } from "../plugins/manifest-registry.js";
|
import { clearPluginManifestRegistryCache } from "../plugins/manifest-registry.js";
|
||||||
|
import type { PluginRecord } from "../plugins/registry.js";
|
||||||
import { applyExclusiveSlotSelection } from "../plugins/slots.js";
|
import { applyExclusiveSlotSelection } from "../plugins/slots.js";
|
||||||
import { resolvePluginSourceRoots, formatPluginSourceForTable } from "../plugins/source-display.js";
|
import { resolvePluginSourceRoots, formatPluginSourceForTable } from "../plugins/source-display.js";
|
||||||
import { buildPluginStatusReport } from "../plugins/status.js";
|
import { buildPluginStatusReport } from "../plugins/status.js";
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
|
import { resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../../agents/agent-scope.js";
|
||||||
import type { ChannelPluginCatalogEntry } from "../../channels/plugins/catalog.js";
|
import type { ChannelPluginCatalogEntry } from "../../channels/plugins/catalog.js";
|
||||||
import type { OpenClawConfig } from "../../config/config.js";
|
import type { OpenClawConfig } from "../../config/config.js";
|
||||||
import type { RuntimeEnv } from "../../runtime.js";
|
|
||||||
import type { WizardPrompter } from "../../wizard/prompts.js";
|
|
||||||
import { resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../../agents/agent-scope.js";
|
|
||||||
import { createSubsystemLogger } from "../../logging/subsystem.js";
|
import { createSubsystemLogger } from "../../logging/subsystem.js";
|
||||||
import { enablePluginInConfig } from "../../plugins/enable.js";
|
import { enablePluginInConfig } from "../../plugins/enable.js";
|
||||||
import { installPluginFromNpmSpec } from "../../plugins/install.js";
|
import { installPluginFromNpmSpec } from "../../plugins/install.js";
|
||||||
import { recordPluginInstall } from "../../plugins/installs.js";
|
import { recordPluginInstall } from "../../plugins/installs.js";
|
||||||
import { loadOpenClawPlugins } from "../../plugins/loader.js";
|
import { loadOpenClawPlugins } from "../../plugins/loader.js";
|
||||||
import { createPluginLoaderLogger } from "../../plugins/logger.js";
|
import { createPluginLoaderLogger } from "../../plugins/logger.js";
|
||||||
|
import type { RuntimeEnv } from "../../runtime.js";
|
||||||
|
import type { WizardPrompter } from "../../wizard/prompts.js";
|
||||||
|
|
||||||
type InstallChoice = "npm" | "local" | "skip";
|
type InstallChoice = "npm" | "local" | "skip";
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import type { RequestClient } from "@buape/carbon";
|
import type { RequestClient } from "@buape/carbon";
|
||||||
import type { APIChannel, APIGuild, APIGuildMember, APIRole } from "discord-api-types/v10";
|
import type { APIChannel, APIGuild, APIGuildMember, APIRole } from "discord-api-types/v10";
|
||||||
import { ChannelType, PermissionFlagsBits, Routes } from "discord-api-types/v10";
|
import { ChannelType, PermissionFlagsBits, Routes } from "discord-api-types/v10";
|
||||||
import type { DiscordPermissionsSummary, DiscordReactOpts } from "./send.types.js";
|
|
||||||
import { resolveDiscordRest } from "./client.js";
|
import { resolveDiscordRest } from "./client.js";
|
||||||
|
import type { DiscordPermissionsSummary, DiscordReactOpts } from "./send.types.js";
|
||||||
|
|
||||||
const PERMISSION_ENTRIES = Object.entries(PermissionFlagsBits).filter(
|
const PERMISSION_ENTRIES = Object.entries(PermissionFlagsBits).filter(
|
||||||
([, value]) => typeof value === "bigint",
|
([, value]) => typeof value === "bigint",
|
||||||
|
|||||||
@@ -1,12 +1,4 @@
|
|||||||
import type { AgentToolResult } from "@mariozechner/pi-agent-core";
|
import type { AgentToolResult } from "@mariozechner/pi-agent-core";
|
||||||
import type {
|
|
||||||
ChannelId,
|
|
||||||
ChannelMessageActionName,
|
|
||||||
ChannelThreadingToolContext,
|
|
||||||
} from "../../channels/plugins/types.js";
|
|
||||||
import type { OpenClawConfig } from "../../config/config.js";
|
|
||||||
import type { OutboundSendDeps } from "./deliver.js";
|
|
||||||
import type { MessagePollResult, MessageSendResult } from "./message.js";
|
|
||||||
import { resolveSessionAgentId } from "../../agents/agent-scope.js";
|
import { resolveSessionAgentId } from "../../agents/agent-scope.js";
|
||||||
import {
|
import {
|
||||||
readNumberParam,
|
readNumberParam,
|
||||||
@@ -15,6 +7,12 @@ import {
|
|||||||
} from "../../agents/tools/common.js";
|
} from "../../agents/tools/common.js";
|
||||||
import { parseReplyDirectives } from "../../auto-reply/reply/reply-directives.js";
|
import { parseReplyDirectives } from "../../auto-reply/reply/reply-directives.js";
|
||||||
import { dispatchChannelMessageAction } from "../../channels/plugins/message-actions.js";
|
import { dispatchChannelMessageAction } from "../../channels/plugins/message-actions.js";
|
||||||
|
import type {
|
||||||
|
ChannelId,
|
||||||
|
ChannelMessageActionName,
|
||||||
|
ChannelThreadingToolContext,
|
||||||
|
} from "../../channels/plugins/types.js";
|
||||||
|
import type { OpenClawConfig } from "../../config/config.js";
|
||||||
import {
|
import {
|
||||||
isDeliverableMessageChannel,
|
isDeliverableMessageChannel,
|
||||||
normalizeMessageChannel,
|
normalizeMessageChannel,
|
||||||
@@ -27,6 +25,7 @@ import {
|
|||||||
resolveMessageChannelSelection,
|
resolveMessageChannelSelection,
|
||||||
} from "./channel-selection.js";
|
} from "./channel-selection.js";
|
||||||
import { applyTargetToParams } from "./channel-target.js";
|
import { applyTargetToParams } from "./channel-target.js";
|
||||||
|
import type { OutboundSendDeps } from "./deliver.js";
|
||||||
import {
|
import {
|
||||||
hydrateSendAttachmentParams,
|
hydrateSendAttachmentParams,
|
||||||
hydrateSetGroupIconParams,
|
hydrateSetGroupIconParams,
|
||||||
@@ -40,6 +39,7 @@ import {
|
|||||||
resolveTelegramAutoThreadId,
|
resolveTelegramAutoThreadId,
|
||||||
} from "./message-action-params.js";
|
} from "./message-action-params.js";
|
||||||
import { actionHasTarget, actionRequiresTarget } from "./message-action-spec.js";
|
import { actionHasTarget, actionRequiresTarget } from "./message-action-spec.js";
|
||||||
|
import type { MessagePollResult, MessageSendResult } from "./message.js";
|
||||||
import {
|
import {
|
||||||
applyCrossContextDecoration,
|
applyCrossContextDecoration,
|
||||||
buildCrossContextDecoration,
|
buildCrossContextDecoration,
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import JSZip from "jszip";
|
|
||||||
import { randomUUID } from "node:crypto";
|
import { randomUUID } from "node:crypto";
|
||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
import os from "node:os";
|
import os from "node:os";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
|
import JSZip from "jszip";
|
||||||
import * as tar from "tar";
|
import * as tar from "tar";
|
||||||
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
||||||
import * as skillScanner from "../security/skill-scanner.js";
|
import * as skillScanner from "../security/skill-scanner.js";
|
||||||
|
|||||||
@@ -5,25 +5,23 @@
|
|||||||
*/
|
*/
|
||||||
import fs from "node:fs/promises";
|
import fs from "node:fs/promises";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
import type { SandboxToolPolicy } from "../agents/sandbox/types.js";
|
|
||||||
import type { OpenClawConfig, ConfigFileSnapshot } from "../config/config.js";
|
|
||||||
import type { AgentToolsConfig } from "../config/types.tools.js";
|
|
||||||
import type { SkillScanFinding } from "./skill-scanner.js";
|
|
||||||
import type { ExecFn } from "./windows-acl.js";
|
|
||||||
import { resolveDefaultAgentId } from "../agents/agent-scope.js";
|
import { resolveDefaultAgentId } from "../agents/agent-scope.js";
|
||||||
import { isToolAllowedByPolicies } from "../agents/pi-tools.policy.js";
|
import { isToolAllowedByPolicies } from "../agents/pi-tools.policy.js";
|
||||||
import {
|
import {
|
||||||
resolveSandboxConfigForAgent,
|
resolveSandboxConfigForAgent,
|
||||||
resolveSandboxToolPolicyForAgent,
|
resolveSandboxToolPolicyForAgent,
|
||||||
} from "../agents/sandbox.js";
|
} from "../agents/sandbox.js";
|
||||||
|
import type { SandboxToolPolicy } from "../agents/sandbox/types.js";
|
||||||
import { loadWorkspaceSkillEntries } from "../agents/skills.js";
|
import { loadWorkspaceSkillEntries } from "../agents/skills.js";
|
||||||
import { resolveToolProfilePolicy } from "../agents/tool-policy.js";
|
import { resolveToolProfilePolicy } from "../agents/tool-policy.js";
|
||||||
import { listAgentWorkspaceDirs } from "../agents/workspace-dirs.js";
|
import { listAgentWorkspaceDirs } from "../agents/workspace-dirs.js";
|
||||||
import { MANIFEST_KEY } from "../compat/legacy-names.js";
|
import { MANIFEST_KEY } from "../compat/legacy-names.js";
|
||||||
import { resolveNativeSkillsEnabled } from "../config/commands.js";
|
import { resolveNativeSkillsEnabled } from "../config/commands.js";
|
||||||
|
import type { OpenClawConfig, ConfigFileSnapshot } from "../config/config.js";
|
||||||
import { createConfigIO } from "../config/config.js";
|
import { createConfigIO } from "../config/config.js";
|
||||||
import { collectIncludePathsRecursive } from "../config/includes-scan.js";
|
import { collectIncludePathsRecursive } from "../config/includes-scan.js";
|
||||||
import { resolveOAuthDir } from "../config/paths.js";
|
import { resolveOAuthDir } from "../config/paths.js";
|
||||||
|
import type { AgentToolsConfig } from "../config/types.tools.js";
|
||||||
import { normalizePluginsConfig } from "../plugins/config-state.js";
|
import { normalizePluginsConfig } from "../plugins/config-state.js";
|
||||||
import { normalizeAgentId } from "../routing/session-key.js";
|
import { normalizeAgentId } from "../routing/session-key.js";
|
||||||
import {
|
import {
|
||||||
@@ -34,7 +32,9 @@ import {
|
|||||||
} from "./audit-fs.js";
|
} from "./audit-fs.js";
|
||||||
import { pickSandboxToolPolicy } from "./audit-tool-policy.js";
|
import { pickSandboxToolPolicy } from "./audit-tool-policy.js";
|
||||||
import { extensionUsesSkippedScannerPath, isPathInside } from "./scan-paths.js";
|
import { extensionUsesSkippedScannerPath, isPathInside } from "./scan-paths.js";
|
||||||
|
import type { SkillScanFinding } from "./skill-scanner.js";
|
||||||
import * as skillScanner from "./skill-scanner.js";
|
import * as skillScanner from "./skill-scanner.js";
|
||||||
|
import type { ExecFn } from "./windows-acl.js";
|
||||||
|
|
||||||
export type SecurityAuditFinding = {
|
export type SecurityAuditFinding = {
|
||||||
checkId: string;
|
checkId: string;
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import path from "node:path";
|
|||||||
import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
||||||
import type { ChannelPlugin } from "../channels/plugins/types.js";
|
import type { ChannelPlugin } from "../channels/plugins/types.js";
|
||||||
import type { OpenClawConfig } from "../config/config.js";
|
import type { OpenClawConfig } from "../config/config.js";
|
||||||
import type { SecurityAuditOptions, SecurityAuditReport } from "./audit.js";
|
|
||||||
import { collectPluginsCodeSafetyFindings } from "./audit-extra.js";
|
import { collectPluginsCodeSafetyFindings } from "./audit-extra.js";
|
||||||
|
import type { SecurityAuditOptions, SecurityAuditReport } from "./audit.js";
|
||||||
import { runSecurityAudit } from "./audit.js";
|
import { runSecurityAudit } from "./audit.js";
|
||||||
import * as skillScanner from "./skill-scanner.js";
|
import * as skillScanner from "./skill-scanner.js";
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
import type { OpenClawConfig } from "../config/config.js";
|
|
||||||
import type { ExecFn } from "./windows-acl.js";
|
|
||||||
import { resolveSandboxConfigForAgent } from "../agents/sandbox.js";
|
import { resolveSandboxConfigForAgent } from "../agents/sandbox.js";
|
||||||
import { resolveBrowserConfig, resolveProfile } from "../browser/config.js";
|
import { resolveBrowserConfig, resolveProfile } from "../browser/config.js";
|
||||||
import { resolveBrowserControlAuth } from "../browser/control-auth.js";
|
import { resolveBrowserControlAuth } from "../browser/control-auth.js";
|
||||||
import { listChannelPlugins } from "../channels/plugins/index.js";
|
import { listChannelPlugins } from "../channels/plugins/index.js";
|
||||||
import { formatCliCommand } from "../cli/command-format.js";
|
import { formatCliCommand } from "../cli/command-format.js";
|
||||||
|
import type { OpenClawConfig } from "../config/config.js";
|
||||||
import { resolveConfigPath, resolveStateDir } from "../config/paths.js";
|
import { resolveConfigPath, resolveStateDir } from "../config/paths.js";
|
||||||
import { resolveGatewayAuth } from "../gateway/auth.js";
|
import { resolveGatewayAuth } from "../gateway/auth.js";
|
||||||
import { buildGatewayConnectionDetails } from "../gateway/call.js";
|
import { buildGatewayConnectionDetails } from "../gateway/call.js";
|
||||||
@@ -38,6 +37,7 @@ import {
|
|||||||
inspectPathPermissions,
|
inspectPathPermissions,
|
||||||
} from "./audit-fs.js";
|
} from "./audit-fs.js";
|
||||||
import { DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools.js";
|
import { DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools.js";
|
||||||
|
import type { ExecFn } from "./windows-acl.js";
|
||||||
|
|
||||||
export type SecurityAuditSeverity = "info" | "warn" | "critical";
|
export type SecurityAuditSeverity = "info" | "warn" | "critical";
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user