From 72680a26bbf5967c1c02375afbcf72af159e7553 Mon Sep 17 00:00:00 2001 From: Lucas Woodward <31957045+SketchingDev@users.noreply.github.com> Date: Sat, 24 Oct 2026 11:01:31 +0100 Subject: [PATCH] Move utilities out of tools directory --- src/mcp-server/tools/deploy-flow.ts | 2 +- src/mcp-server/tools/find-flow-execution.ts | 8 ++++++-- src/mcp-server/tools/find-flow.ts | 9 ++++++--- src/mcp-server/tools/find-queue.ts | 15 +++++++++++---- src/mcp-server/tools/flow-action.ts | 4 ++-- src/mcp-server/tools/flow-dependencies.ts | 4 ++-- src/mcp-server/tools/flow-execution-data.ts | 10 +++++++--- src/mcp-server/tools/flow-ir.ts | 6 +++--- src/mcp-server/tools/get-prompts.ts | 14 +++++++++----- src/mcp-server/tools/search-in-flow.ts | 4 ++-- src/mcp-server/tools/test-bot-flow.ts | 2 +- src/mcp-server/{tools => utilities}/api-error.ts | 0 src/mcp-server/{tools => utilities}/entity-ref.ts | 0 .../fetch-flow-configuration.ts | 0 src/mcp-server/{tools => utilities}/name-match.ts | 0 src/mcp-server/{tools => utilities}/types.ts | 0 16 files changed, 50 insertions(+), 28 deletions(-) rename src/mcp-server/{tools => utilities}/api-error.ts (100%) rename src/mcp-server/{tools => utilities}/entity-ref.ts (100%) rename src/mcp-server/{tools => utilities}/fetch-flow-configuration.ts (100%) rename src/mcp-server/{tools => utilities}/name-match.ts (100%) rename src/mcp-server/{tools => utilities}/types.ts (100%) diff --git a/src/mcp-server/tools/deploy-flow.ts b/src/mcp-server/tools/deploy-flow.ts index 3a46da4..9133bac 100644 --- a/src/mcp-server/tools/deploy-flow.ts +++ b/src/mcp-server/tools/deploy-flow.ts @@ -8,7 +8,7 @@ import type { DeployValidation, } from "../../shared/deploy-result.ts"; import { createRedactor, credentialSecrets } from "../../shared/redact.ts"; -import type { ToolFactory } from "./types.ts"; +import type { ToolFactory } from "../utilities/types.ts"; interface RunnerLogLine { type: "log"; diff --git a/src/mcp-server/tools/find-flow-execution.ts b/src/mcp-server/tools/find-flow-execution.ts index 86110a7..650ce2c 100644 --- a/src/mcp-server/tools/find-flow-execution.ts +++ b/src/mcp-server/tools/find-flow-execution.ts @@ -1,7 +1,11 @@ import type { ArchitectApi, Models } from "purecloud-platform-client-v2"; import { z } from "zod/v3"; -import { authHint, formatApiError, toApiError } from "./api-error.ts"; -import type { ToolFactory } from "./types.ts"; +import { + authHint, + formatApiError, + toApiError, +} from "../utilities/api-error.ts"; +import type { ToolFactory } from "../utilities/types.ts"; /** The API's own ceiling on results per query, per the help centre. */ const MAX_RESULTS = 200; diff --git a/src/mcp-server/tools/find-flow.ts b/src/mcp-server/tools/find-flow.ts index bbc7c47..47b034a 100644 --- a/src/mcp-server/tools/find-flow.ts +++ b/src/mcp-server/tools/find-flow.ts @@ -1,9 +1,12 @@ import type platformClient from "purecloud-platform-client-v2"; import type { ArchitectApi } from "purecloud-platform-client-v2"; import { z } from "zod/v3"; -import { formatApiError } from "./api-error.ts"; -import { isExactNameMatch, moveExactMatchToTop } from "./name-match.ts"; -import type { ToolFactory } from "./types.ts"; +import { formatApiError } from "../utilities/api-error.ts"; +import { + isExactNameMatch, + moveExactMatchToTop, +} from "../utilities/name-match.ts"; +import type { ToolFactory } from "../utilities/types.ts"; const MAX_RETURNED_FLOWS = 50; /** diff --git a/src/mcp-server/tools/find-queue.ts b/src/mcp-server/tools/find-queue.ts index 3ea52e4..a534ba5 100644 --- a/src/mcp-server/tools/find-queue.ts +++ b/src/mcp-server/tools/find-queue.ts @@ -1,10 +1,17 @@ import type platformClient from "purecloud-platform-client-v2"; import type { RoutingApi } from "purecloud-platform-client-v2"; import { z } from "zod/v3"; -import { authHint, formatApiError, toApiError } from "./api-error.ts"; -import { type EntityRef, toEntityRef } from "./entity-ref.ts"; -import { isExactNameMatch, moveExactMatchToTop } from "./name-match.ts"; -import type { ToolFactory } from "./types.ts"; +import { + authHint, + formatApiError, + toApiError, +} from "../utilities/api-error.ts"; +import { type EntityRef, toEntityRef } from "../utilities/entity-ref.ts"; +import { + isExactNameMatch, + moveExactMatchToTop, +} from "../utilities/name-match.ts"; +import type { ToolFactory } from "../utilities/types.ts"; const MAX_RETURNED_QUEUES = 50; const MAX_FETCHED_QUEUES = 200; diff --git a/src/mcp-server/tools/flow-action.ts b/src/mcp-server/tools/flow-action.ts index 23bab3e..fb20762 100644 --- a/src/mcp-server/tools/flow-action.ts +++ b/src/mcp-server/tools/flow-action.ts @@ -4,8 +4,8 @@ import { } from "@makingchatbots/genesys-cloud-architect-diagram-lib"; import type { ArchitectApi } from "purecloud-platform-client-v2"; import { z } from "zod/v3"; -import { fetchFlowConfiguration } from "./fetch-flow-configuration.ts"; -import type { ToolFactory } from "./types.ts"; +import { fetchFlowConfiguration } from "../utilities/fetch-flow-configuration.ts"; +import type { ToolFactory } from "../utilities/types.ts"; export interface ToolConfig { architectApi: ArchitectApi; diff --git a/src/mcp-server/tools/flow-dependencies.ts b/src/mcp-server/tools/flow-dependencies.ts index a870d2c..e7bb8d2 100644 --- a/src/mcp-server/tools/flow-dependencies.ts +++ b/src/mcp-server/tools/flow-dependencies.ts @@ -1,8 +1,8 @@ import type platformClient from "purecloud-platform-client-v2"; import type { ArchitectApi } from "purecloud-platform-client-v2"; import { z } from "zod/v3"; -import { formatApiError } from "./api-error.ts"; -import type { ToolFactory } from "./types.ts"; +import { formatApiError } from "../utilities/api-error.ts"; +import type { ToolFactory } from "../utilities/types.ts"; function flowTypeToObjectType(flowType: string): string { const upper = flowType.toUpperCase(); diff --git a/src/mcp-server/tools/flow-execution-data.ts b/src/mcp-server/tools/flow-execution-data.ts index 1798096..b2a4da1 100644 --- a/src/mcp-server/tools/flow-execution-data.ts +++ b/src/mcp-server/tools/flow-execution-data.ts @@ -9,9 +9,13 @@ import { } from "@makingchatbots/genesys-cloud-architect-diagram-lib"; import type { ArchitectApi, Models } from "purecloud-platform-client-v2"; import { z } from "zod/v3"; -import { authHint, formatApiError, toApiError } from "./api-error.ts"; -import { fetchFlowConfiguration } from "./fetch-flow-configuration.ts"; -import type { ToolFactory } from "./types.ts"; +import { + authHint, + formatApiError, + toApiError, +} from "../utilities/api-error.ts"; +import { fetchFlowConfiguration } from "../utilities/fetch-flow-configuration.ts"; +import type { ToolFactory } from "../utilities/types.ts"; /** * Retrieval is a job: the first GET registers it and later GETs report its diff --git a/src/mcp-server/tools/flow-ir.ts b/src/mcp-server/tools/flow-ir.ts index 51fe7ee..33eda2a 100644 --- a/src/mcp-server/tools/flow-ir.ts +++ b/src/mcp-server/tools/flow-ir.ts @@ -4,9 +4,9 @@ import { } from "@makingchatbots/genesys-cloud-architect-diagram-lib"; import type { ArchitectApi } from "purecloud-platform-client-v2"; import { z } from "zod/v3"; -import { fetchFlowConfiguration } from "./fetch-flow-configuration.ts"; -import { isExactNameMatch } from "./name-match.ts"; -import type { ToolFactory } from "./types.ts"; +import { fetchFlowConfiguration } from "../utilities/fetch-flow-configuration.ts"; +import { isExactNameMatch } from "../utilities/name-match.ts"; +import type { ToolFactory } from "../utilities/types.ts"; /** * Resolve a task by exact id first, then by case-insensitive name. Task names diff --git a/src/mcp-server/tools/get-prompts.ts b/src/mcp-server/tools/get-prompts.ts index bca1cf3..643011d 100644 --- a/src/mcp-server/tools/get-prompts.ts +++ b/src/mcp-server/tools/get-prompts.ts @@ -1,11 +1,15 @@ import type platformClient from "purecloud-platform-client-v2"; import type { ArchitectApi } from "purecloud-platform-client-v2"; import { z } from "zod/v3"; -import { authHint, formatApiError, toApiError } from "./api-error.ts"; -import { type EntityRef, toEntityRef } from "./entity-ref.ts"; -import { fetchFlowConfiguration } from "./fetch-flow-configuration.ts"; -import { nameKey } from "./name-match.ts"; -import type { ToolFactory } from "./types.ts"; +import { + authHint, + formatApiError, + toApiError, +} from "../utilities/api-error.ts"; +import { type EntityRef, toEntityRef } from "../utilities/entity-ref.ts"; +import { fetchFlowConfiguration } from "../utilities/fetch-flow-configuration.ts"; +import { nameKey } from "../utilities/name-match.ts"; +import type { ToolFactory } from "../utilities/types.ts"; /** * Applied separately to the ids+names given and to a flow's references, so one diff --git a/src/mcp-server/tools/search-in-flow.ts b/src/mcp-server/tools/search-in-flow.ts index a2e890b..04a6258 100644 --- a/src/mcp-server/tools/search-in-flow.ts +++ b/src/mcp-server/tools/search-in-flow.ts @@ -4,8 +4,8 @@ import { } from "@makingchatbots/genesys-cloud-architect-diagram-lib"; import type { ArchitectApi } from "purecloud-platform-client-v2"; import { z } from "zod/v3"; -import { fetchFlowConfiguration } from "./fetch-flow-configuration.ts"; -import type { ToolFactory } from "./types.ts"; +import { fetchFlowConfiguration } from "../utilities/fetch-flow-configuration.ts"; +import type { ToolFactory } from "../utilities/types.ts"; export interface ToolConfig { architectApi: ArchitectApi; diff --git a/src/mcp-server/tools/test-bot-flow.ts b/src/mcp-server/tools/test-bot-flow.ts index c8f005f..058b2e7 100644 --- a/src/mcp-server/tools/test-bot-flow.ts +++ b/src/mcp-server/tools/test-bot-flow.ts @@ -1,6 +1,6 @@ import type { Models, TextbotsApi } from "purecloud-platform-client-v2"; import { z } from "zod/v3"; -import type { ToolFactory } from "./types.ts"; +import type { ToolFactory } from "../utilities/types.ts"; const sessions = new Map(); diff --git a/src/mcp-server/tools/api-error.ts b/src/mcp-server/utilities/api-error.ts similarity index 100% rename from src/mcp-server/tools/api-error.ts rename to src/mcp-server/utilities/api-error.ts diff --git a/src/mcp-server/tools/entity-ref.ts b/src/mcp-server/utilities/entity-ref.ts similarity index 100% rename from src/mcp-server/tools/entity-ref.ts rename to src/mcp-server/utilities/entity-ref.ts diff --git a/src/mcp-server/tools/fetch-flow-configuration.ts b/src/mcp-server/utilities/fetch-flow-configuration.ts similarity index 100% rename from src/mcp-server/tools/fetch-flow-configuration.ts rename to src/mcp-server/utilities/fetch-flow-configuration.ts diff --git a/src/mcp-server/tools/name-match.ts b/src/mcp-server/utilities/name-match.ts similarity index 100% rename from src/mcp-server/tools/name-match.ts rename to src/mcp-server/utilities/name-match.ts diff --git a/src/mcp-server/tools/types.ts b/src/mcp-server/utilities/types.ts similarity index 100% rename from src/mcp-server/tools/types.ts rename to src/mcp-server/utilities/types.ts