refactor(agents): move swarm family into subagents/swarm (#121295)

This commit is contained in:
Peter Steinberger
2026-08-09 18:06:43 -07:00
committed by GitHub
parent ada95a20c1
commit 6f4c8bfb6d
30 changed files with 43 additions and 43 deletions
+2 -2
View File
@@ -16,8 +16,8 @@ import type { SubagentRunRecord } from "./subagent-registry.types.js";
import {
SWARM_CODE_MODE_IDEMPOTENCY_KEY,
SWARM_CODE_MODE_REQUEST_FINGERPRINT,
} from "./swarm-code-mode.js";
import { resolveSwarmConfig } from "./swarm-config.js";
} from "./subagents/swarm/swarm-code-mode.js";
import { resolveSwarmConfig } from "./subagents/swarm/swarm-config.js";
import { ToolSearchRuntime, type ToolSearchToolContext } from "./tool-search.js";
import {
waitForCollectorCompletion,
+1 -1
View File
@@ -44,7 +44,7 @@ import {
} from "./code-mode-state.js";
import { normalizeCodeModeWorkerResult, runCodeModeWorker } from "./code-mode-worker.js";
import type { AgentToolUpdateCallback } from "./runtime/index.js";
import { resolveSwarmConfig } from "./swarm-config.js";
import { resolveSwarmConfig } from "./subagents/swarm/swarm-config.js";
import { ToolSearchRuntime, type ToolSearchToolContext } from "./tool-search.js";
import { ToolInputError } from "./tools/common.js";
+1 -1
View File
@@ -7,7 +7,7 @@ import { testing } from "./code-mode.test-support.js";
import {
SWARM_CODE_MODE_IDEMPOTENCY_KEY,
SWARM_CODE_MODE_REQUEST_FINGERPRINT,
} from "./swarm-code-mode.js";
} from "./subagents/swarm/swarm-code-mode.js";
const config = resolveCodeModeConfig({ tools: { codeMode: true } } as never);
+1 -1
View File
@@ -40,7 +40,7 @@ import {
import type { AgentToolUpdateCallback } from "./runtime/index.js";
import { optionalStringEnum } from "./schema/typebox.js";
import type { ToolDefinition } from "./sessions/index.js";
import { resolveSwarmConfig } from "./swarm-config.js";
import { resolveSwarmConfig } from "./subagents/swarm/swarm-config.js";
import { isDirectVisibleCatalogTool } from "./tool-search-catalog.js";
import { formatToolSearchControlResult, type ToolSearchRuntime } from "./tool-search-runtime.js";
import {
+1 -1
View File
@@ -4,7 +4,7 @@ import {
getSubagentRunByRunId,
recordSwarmStructuredOutput,
} from "./subagent-registry.js";
import { resolveSwarmConfig } from "./swarm-config.js";
import { resolveSwarmConfig } from "./subagents/swarm/swarm-config.js";
import { createAgentsWaitTool } from "./tools/agents-wait-tool.js";
import type { AnyAgentTool } from "./tools/common.js";
import { createStructuredOutputTool } from "./tools/structured-output-tool.js";
+1 -1
View File
@@ -13,7 +13,7 @@ import {
updateSubagentArchiveAtMs,
} from "./subagent-registry-helpers.js";
import type { SubagentRunRecord } from "./subagent-registry.types.js";
import { updateSwarmCollectorCompletion } from "./swarm-collector.js";
import { updateSwarmCollectorCompletion } from "./subagents/swarm/swarm-collector.js";
function createRunEntry(overrides: Partial<SubagentRunRecord> = {}): SubagentRunRecord {
return {
@@ -33,8 +33,8 @@ import type {
import type { createSubagentRegistryLifecycleDelivery } from "./subagent-registry-lifecycle-delivery.js";
import { createSubagentRegistryLifecycleTerminalCleanup } from "./subagent-registry-lifecycle-terminal-cleanup.js";
import type { SubagentCompletionRequest, SubagentRunRecord } from "./subagent-registry.types.js";
import { updateSwarmCollectorCompletion } from "./swarm-collector.js";
import { releaseSwarmRun } from "./swarm-scheduler.js";
import { updateSwarmCollectorCompletion } from "./subagents/swarm/swarm-collector.js";
import { releaseSwarmRun } from "./subagents/swarm/swarm-scheduler.js";
import { peekSwarmStructuredOutput } from "./tools/structured-output-tool.js";
export function createSubagentRegistryLifecycleCompletion(
+2 -2
View File
@@ -23,8 +23,8 @@ import {
} from "./subagent-session-reconciliation.js";
import { retrySubagentCleanup } from "./subagent-spawn-cleanup.js";
import { readGatewayRunId } from "./subagent-spawn-gateway.js";
import { resolveSwarmConfig } from "./swarm-config.js";
import { enqueueSwarmRun } from "./swarm-scheduler.js";
import { resolveSwarmConfig } from "./subagents/swarm/swarm-config.js";
import { enqueueSwarmRun } from "./subagents/swarm/swarm-scheduler.js";
type RestoredQueuedFailureSettlementClaim = {
entry: SubagentRunRecord;
+2 -2
View File
@@ -69,8 +69,8 @@ import {
getSubagentSessionStartedAt,
} from "./subagent-session-metrics.js";
import type { SubagentSessionCompletion } from "./subagent-session-reconciliation.js";
import { updateSwarmCollectorCompletion } from "./swarm-collector.js";
import { isSwarmRunQueued, removeQueuedSwarmRun } from "./swarm-scheduler.js";
import { updateSwarmCollectorCompletion } from "./subagents/swarm/swarm-collector.js";
import { isSwarmRunQueued, removeQueuedSwarmRun } from "./subagents/swarm/swarm-scheduler.js";
const log = createSubsystemLogger("agents/subagent-registry");
const RECOVERABLE_WAIT_RETRY_DELAY_MS = isFastTestRuntimeEnv() ? 25 : 5_000;
+1 -1
View File
@@ -63,7 +63,7 @@ import type {
SubagentRunParamsOverrides,
SubagentRunRecordOverrides,
} from "./subagent-test-fixtures.test-helpers.js";
import { testing as swarmSchedulerTesting } from "./swarm-scheduler.test-support.js";
import { testing as swarmSchedulerTesting } from "./subagents/swarm/swarm-scheduler.test-support.js";
const noop = () => {};
+3 -3
View File
@@ -19,9 +19,9 @@ import { resolveConfiguredSubagentRunTimeoutSeconds } from "./subagent-spawn-pla
import { loadSubagentConfig } from "./subagent-spawn-session-patch.js";
import { resolveInternalSessionKey, resolveMainSessionAlias } from "./subagent-spawn.runtime.js";
import { normalizeSubagentTaskName } from "./subagent-task-name.js";
import { resolveSwarmConfig } from "./swarm-config.js";
import { validateStructuredOutputSchema } from "./swarm-output-schema.js";
import { reserveSwarmRun } from "./swarm-scheduler.js";
import { resolveSwarmConfig } from "./subagents/swarm/swarm-config.js";
import { validateStructuredOutputSchema } from "./subagents/swarm/swarm-output-schema.js";
import { reserveSwarmRun } from "./subagents/swarm/swarm-scheduler.js";
type ResolvedSubagentSpawnRequest = {
request: {
@@ -33,7 +33,7 @@ import {
} from "./subagent-registry.test-helpers.js";
import { spawnSubagentDirect } from "./subagent-spawn.js";
import { testing as subagentSpawnTesting } from "./subagent-spawn.test-support.js";
import { testing as swarmSchedulerTesting } from "./swarm-scheduler.test-support.js";
import { testing as swarmSchedulerTesting } from "./subagents/swarm/swarm-scheduler.test-support.js";
const envSnapshot = captureEnv(["OPENCLAW_CONFIG_PATH", "OPENCLAW_STATE_DIR"]);
let stateDir = "";
+1 -1
View File
@@ -11,7 +11,7 @@ import {
installSessionStoreCaptureMock,
loadSubagentSpawnModuleForTest,
} from "./subagent-spawn.test-helpers.js";
import { testing as swarmSchedulerTesting } from "./swarm-scheduler.test-support.js";
import { testing as swarmSchedulerTesting } from "./subagents/swarm/swarm-scheduler.test-support.js";
import { installAcceptedSubagentGatewayMock } from "./test-helpers/subagent-gateway.js";
const hoisted = vi.hoisted(() => ({
+1 -1
View File
@@ -63,7 +63,7 @@ import {
emitSessionLifecycleEvent,
mergeDeliveryContext,
} from "./subagent-spawn.runtime.js";
import { activateSwarmRun, removeQueuedSwarmRun } from "./swarm-scheduler.js";
import { activateSwarmRun, removeQueuedSwarmRun } from "./subagents/swarm/swarm-scheduler.js";
export { SUBAGENT_SPAWN_CONTEXT_MODES, SUBAGENT_SPAWN_MODES } from "./subagent-spawn.types.js";
@@ -1,10 +1,10 @@
import type { OpenClawConfig } from "../config/types.openclaw.js";
import { ensureCompletionState } from "./subagent-delivery-state.js";
import { SUBAGENT_ENDED_REASON_KILLED } from "./subagent-lifecycle-events.js";
import { updateSubagentArchiveAtMs } from "./subagent-registry-helpers.js";
import type { SubagentRunRecord, SwarmCollectorStatus } from "./subagent-registry.types.js";
import { loadSubagentSessionEntry } from "./subagent-session-reconciliation.js";
import { consumeSwarmStructuredOutput } from "./tools/structured-output-tool.js";
import type { OpenClawConfig } from "../../../config/types.openclaw.js";
import { ensureCompletionState } from "../../subagent-delivery-state.js";
import { SUBAGENT_ENDED_REASON_KILLED } from "../../subagent-lifecycle-events.js";
import { updateSubagentArchiveAtMs } from "../../subagent-registry-helpers.js";
import type { SubagentRunRecord, SwarmCollectorStatus } from "../../subagent-registry.types.js";
import { loadSubagentSessionEntry } from "../../subagent-session-reconciliation.js";
import { consumeSwarmStructuredOutput } from "../../tools/structured-output-tool.js";
function resolveStatus(
entry: SubagentRunRecord,
@@ -1,7 +1,7 @@
import { isRecord } from "@openclaw/normalization-core/record-coerce";
import type { OpenClawConfig } from "../config/types.openclaw.js";
import { clampNumber } from "../utils.js";
import { resolveAgentConfig } from "./agent-scope-config.js";
import type { OpenClawConfig } from "../../../config/types.openclaw.js";
import { clampNumber } from "../../../utils.js";
import { resolveAgentConfig } from "../../agent-scope-config.js";
type ResolvedSwarmConfig = {
enabled: boolean;
@@ -1,5 +1,5 @@
import { validateJsonSchemaValue } from "../plugins/schema-validator.js";
import type { JsonSchemaObject } from "../shared/json-schema.types.js";
import { validateJsonSchemaValue } from "../../../plugins/schema-validator.js";
import type { JsonSchemaObject } from "../../../shared/json-schema.types.js";
export function validateStructuredOutputSchema(
schema: Record<string, unknown>,
@@ -1,4 +1,4 @@
import { isFastTestRuntimeEnv } from "../infra/env.js";
import { isFastTestRuntimeEnv } from "../../../infra/env.js";
type QueuedSwarmRun = {
runId: string;
+1 -1
View File
@@ -5,7 +5,7 @@ import { resolveSubagentCompletionResultText } from "../subagent-completion-resu
import { onSubagentRegistryPersisted } from "../subagent-registry-state.js";
import { getSubagentRunsByRunIds } from "../subagent-registry.js";
import type { SubagentRunRecord } from "../subagent-registry.types.js";
import { resolveSwarmConfig } from "../swarm-config.js";
import { resolveSwarmConfig } from "../subagents/swarm/swarm-config.js";
import type { AnyAgentTool } from "./common.js";
import { jsonResult, ToolInputError } from "./common.js";
+1 -1
View File
@@ -8,7 +8,7 @@ import { withTempDir } from "../../test-helpers/temp-dir.js";
import {
SWARM_CODE_MODE_IDEMPOTENCY_KEY,
SWARM_CODE_MODE_REQUEST_FINGERPRINT,
} from "../swarm-code-mode.js";
} from "../subagents/swarm/swarm-code-mode.js";
import type { InProcessGatewayCaller } from "./in-process-gateway.js";
const hoisted = vi.hoisted(() => {
+2 -2
View File
@@ -33,8 +33,8 @@ import { normalizeSubagentTaskName } from "../subagent-task-name.js";
import {
SWARM_CODE_MODE_IDEMPOTENCY_KEY,
SWARM_CODE_MODE_REQUEST_FINGERPRINT,
} from "../swarm-code-mode.js";
import { resolveSwarmConfig } from "../swarm-config.js";
} from "../subagents/swarm/swarm-code-mode.js";
import { resolveSwarmConfig } from "../subagents/swarm/swarm-config.js";
import {
describeSessionsSpawnTool,
SESSIONS_SPAWN_SUBAGENT_TOOL_DISPLAY_SUMMARY,
@@ -1,6 +1,6 @@
import { Value } from "typebox/value";
import { beforeEach, describe, expect, it } from "vitest";
import { validateStructuredOutputSchema } from "../swarm-output-schema.js";
import { validateStructuredOutputSchema } from "../subagents/swarm/swarm-output-schema.js";
import { isToolResultError } from "../tool-result-error.js";
import { createStructuredOutputTool } from "./structured-output-tool.js";
import { testing } from "./structured-output-tool.test-support.js";
@@ -9,7 +9,7 @@ import {
} from "../subagent-registry.test-helpers.js";
import "../subagent-registry.mocks.shared.js";
import { testing as spawnTesting } from "../subagent-spawn.test-support.js";
import { testing as swarmSchedulerTesting } from "../swarm-scheduler.test-support.js";
import { testing as swarmSchedulerTesting } from "../subagents/swarm/swarm-scheduler.test-support.js";
import { createAgentsWaitTool } from "./agents-wait-tool.js";
import { createSessionsSpawnTool } from "./sessions-spawn-tool.js";
import { testing as structuredOutputTesting } from "./structured-output-tool.test-support.js";
@@ -8,8 +8,8 @@ import {
findAuthorizedSwarmCollectorRequest,
findSwarmCollectorSession,
} from "../../agents/subagent-registry-memory.js";
import { resolveSwarmConfig } from "../../agents/swarm-config.js";
import { validateStructuredOutputSchema } from "../../agents/swarm-output-schema.js";
import { resolveSwarmConfig } from "../../agents/subagents/swarm/swarm-config.js";
import { validateStructuredOutputSchema } from "../../agents/subagents/swarm/swarm-output-schema.js";
import { resolveAgentIdFromSessionKey, resolveStorePath } from "../../config/sessions.js";
import { loadSessionEntry } from "../../config/sessions/session-accessor.js";
import {
@@ -15,7 +15,7 @@ import {
} from "../../agents/prepared-model-catalog.js";
import { getPreparedModelRuntimeAuthMaterializations } from "../../agents/prepared-model-runtime-auth.js";
import type { PreparedModelRuntimeSnapshot } from "../../agents/prepared-model-runtime.js";
import { resolveSwarmConfig } from "../../agents/swarm-config.js";
import { resolveSwarmConfig } from "../../agents/subagents/swarm/swarm-config.js";
import { resolveRuntimeConfigCacheKey } from "../../config/runtime-snapshot.js";
import { resolveSessionAuthProfileOverrideSource } from "../../config/sessions/auth-profile-override-provenance.js";
import type { OpenClawConfig } from "../../config/types.openclaw.js";
+1 -1
View File
@@ -9,7 +9,7 @@ import {
resolveAgentWorkspaceDir,
resolveDefaultAgentId,
} from "../../agents/agent-scope.js";
import { resolveSwarmConfig } from "../../agents/swarm-config.js";
import { resolveSwarmConfig } from "../../agents/subagents/swarm/swarm-config.js";
import {
listCoreToolSections,
PROFILE_OPTIONS,