@burdenoff/mcp-libs 2026.704.1 → 2026.719.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-WWFVD7BO.js → chunk-RHWHUY5Y.js} +3 -3
- package/dist/{chunk-WWFVD7BO.js.map → chunk-RHWHUY5Y.js.map} +1 -1
- package/dist/{chunk-H2OYWLOA.js → chunk-YOSQUY3M.js} +101 -35
- package/dist/chunk-YOSQUY3M.js.map +1 -0
- package/dist/core/index.cjs +101 -32
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.cts +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.js +1 -1
- package/dist/index.cjs +97 -31
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/modules/adaptercloud/index.cjs +14 -14
- package/dist/modules/adaptercloud/index.cjs.map +1 -1
- package/dist/modules/adaptercloud/index.js +1 -1
- package/dist/modules/artistrybase/index.cjs +14 -14
- package/dist/modules/artistrybase/index.cjs.map +1 -1
- package/dist/modules/artistrybase/index.js +1 -1
- package/dist/modules/assethandler/index.cjs +14 -14
- package/dist/modules/assethandler/index.cjs.map +1 -1
- package/dist/modules/assethandler/index.js +1 -1
- package/dist/modules/atheletebridge/index.cjs +14 -14
- package/dist/modules/atheletebridge/index.cjs.map +1 -1
- package/dist/modules/atheletebridge/index.js +1 -1
- package/dist/modules/auth/index.cjs +14 -14
- package/dist/modules/auth/index.cjs.map +1 -1
- package/dist/modules/auth/index.js +3 -3
- package/dist/modules/billing/index.cjs +14 -14
- package/dist/modules/billing/index.cjs.map +1 -1
- package/dist/modules/billing/index.js +1 -1
- package/dist/modules/brainyrich/index.cjs +14 -14
- package/dist/modules/brainyrich/index.cjs.map +1 -1
- package/dist/modules/brainyrich/index.js +1 -1
- package/dist/modules/buildmyiq/index.cjs +14 -14
- package/dist/modules/buildmyiq/index.cjs.map +1 -1
- package/dist/modules/buildmyiq/index.js +1 -1
- package/dist/modules/channels/index.cjs +14 -14
- package/dist/modules/channels/index.cjs.map +1 -1
- package/dist/modules/channels/index.js +1 -1
- package/dist/modules/collabkin/index.cjs +14 -14
- package/dist/modules/collabkin/index.cjs.map +1 -1
- package/dist/modules/collabkin/index.js +1 -1
- package/dist/modules/comradecircle/index.cjs +14 -14
- package/dist/modules/comradecircle/index.cjs.map +1 -1
- package/dist/modules/comradecircle/index.js +1 -1
- package/dist/modules/conversations/index.cjs +14 -14
- package/dist/modules/conversations/index.cjs.map +1 -1
- package/dist/modules/conversations/index.js +1 -1
- package/dist/modules/coolandlovely/index.cjs +14 -14
- package/dist/modules/coolandlovely/index.cjs.map +1 -1
- package/dist/modules/coolandlovely/index.js +1 -1
- package/dist/modules/cosmicintersection/index.cjs +14 -14
- package/dist/modules/cosmicintersection/index.cjs.map +1 -1
- package/dist/modules/cosmicintersection/index.js +1 -1
- package/dist/modules/crewfoundry/index.cjs +14 -14
- package/dist/modules/crewfoundry/index.cjs.map +1 -1
- package/dist/modules/crewfoundry/index.js +1 -1
- package/dist/modules/devportal/index.cjs +14 -14
- package/dist/modules/devportal/index.cjs.map +1 -1
- package/dist/modules/devportal/index.js +1 -1
- package/dist/modules/ecoimpacthub/index.cjs +14 -14
- package/dist/modules/ecoimpacthub/index.cjs.map +1 -1
- package/dist/modules/ecoimpacthub/index.js +1 -1
- package/dist/modules/eventfullymanaged/index.cjs +14 -14
- package/dist/modules/eventfullymanaged/index.cjs.map +1 -1
- package/dist/modules/eventfullymanaged/index.js +1 -1
- package/dist/modules/export/index.cjs +14 -14
- package/dist/modules/export/index.cjs.map +1 -1
- package/dist/modules/export/index.js +1 -1
- package/dist/modules/files/index.cjs +14 -14
- package/dist/modules/files/index.cjs.map +1 -1
- package/dist/modules/files/index.js +1 -1
- package/dist/modules/ggnomad/index.cjs +14 -14
- package/dist/modules/ggnomad/index.cjs.map +1 -1
- package/dist/modules/ggnomad/index.js +1 -1
- package/dist/modules/govcitizenhub/index.cjs +14 -14
- package/dist/modules/govcitizenhub/index.cjs.map +1 -1
- package/dist/modules/govcitizenhub/index.js +1 -1
- package/dist/modules/groups/index.cjs +14 -14
- package/dist/modules/groups/index.cjs.map +1 -1
- package/dist/modules/groups/index.js +1 -1
- package/dist/modules/headshotmarketing/index.cjs +14 -14
- package/dist/modules/headshotmarketing/index.cjs.map +1 -1
- package/dist/modules/headshotmarketing/index.js +1 -1
- package/dist/modules/health/index.cjs +21 -19
- package/dist/modules/health/index.cjs.map +1 -1
- package/dist/modules/health/index.js +1 -1
- package/dist/modules/hookmovies/index.cjs +14 -14
- package/dist/modules/hookmovies/index.cjs.map +1 -1
- package/dist/modules/hookmovies/index.js +1 -1
- package/dist/modules/housingvista/index.cjs +14 -14
- package/dist/modules/housingvista/index.cjs.map +1 -1
- package/dist/modules/housingvista/index.js +1 -1
- package/dist/modules/integrations/index.cjs +14 -14
- package/dist/modules/integrations/index.cjs.map +1 -1
- package/dist/modules/integrations/index.js +1 -1
- package/dist/modules/intelwatchtower/index.cjs +14 -14
- package/dist/modules/intelwatchtower/index.cjs.map +1 -1
- package/dist/modules/intelwatchtower/index.js +1 -1
- package/dist/modules/kadaikodi/index.cjs +14 -14
- package/dist/modules/kadaikodi/index.cjs.map +1 -1
- package/dist/modules/kadaikodi/index.js +1 -1
- package/dist/modules/labsofscience/index.cjs +14 -14
- package/dist/modules/labsofscience/index.cjs.map +1 -1
- package/dist/modules/labsofscience/index.js +1 -1
- package/dist/modules/manufacturedops/index.cjs +14 -14
- package/dist/modules/manufacturedops/index.cjs.map +1 -1
- package/dist/modules/manufacturedops/index.js +1 -1
- package/dist/modules/movethewheels/index.cjs +14 -14
- package/dist/modules/movethewheels/index.cjs.map +1 -1
- package/dist/modules/movethewheels/index.js +1 -1
- package/dist/modules/mybodyshield/index.cjs +14 -14
- package/dist/modules/mybodyshield/index.cjs.map +1 -1
- package/dist/modules/mybodyshield/index.js +1 -1
- package/dist/modules/notifications/index.cjs +14 -14
- package/dist/modules/notifications/index.cjs.map +1 -1
- package/dist/modules/notifications/index.js +1 -1
- package/dist/modules/organizations/index.cjs +14 -14
- package/dist/modules/organizations/index.cjs.map +1 -1
- package/dist/modules/organizations/index.js +1 -1
- package/dist/modules/planmagnet/index.cjs +14 -14
- package/dist/modules/planmagnet/index.cjs.map +1 -1
- package/dist/modules/planmagnet/index.js +1 -1
- package/dist/modules/products/index.cjs +14 -14
- package/dist/modules/products/index.cjs.map +1 -1
- package/dist/modules/products/index.js +1 -1
- package/dist/modules/proserviceworld/index.cjs +14 -14
- package/dist/modules/proserviceworld/index.cjs.map +1 -1
- package/dist/modules/proserviceworld/index.js +1 -1
- package/dist/modules/rbac/index.cjs +14 -14
- package/dist/modules/rbac/index.cjs.map +1 -1
- package/dist/modules/rbac/index.js +1 -1
- package/dist/modules/sandbox/index.cjs +14 -14
- package/dist/modules/sandbox/index.cjs.map +1 -1
- package/dist/modules/sandbox/index.js +1 -1
- package/dist/modules/scheduler/index.cjs +14 -14
- package/dist/modules/scheduler/index.cjs.map +1 -1
- package/dist/modules/scheduler/index.js +1 -1
- package/dist/modules/security/index.cjs +14 -14
- package/dist/modules/security/index.cjs.map +1 -1
- package/dist/modules/security/index.js +1 -1
- package/dist/modules/semanticfed/index.cjs +14 -14
- package/dist/modules/semanticfed/index.cjs.map +1 -1
- package/dist/modules/semanticfed/index.js +1 -1
- package/dist/modules/store/index.cjs +14 -14
- package/dist/modules/store/index.cjs.map +1 -1
- package/dist/modules/store/index.js +1 -1
- package/dist/modules/subscriberbot/index.cjs +14 -14
- package/dist/modules/subscriberbot/index.cjs.map +1 -1
- package/dist/modules/subscriberbot/index.js +1 -1
- package/dist/modules/support/index.cjs +14 -14
- package/dist/modules/support/index.cjs.map +1 -1
- package/dist/modules/support/index.js +1 -1
- package/dist/modules/tags/index.cjs +14 -14
- package/dist/modules/tags/index.cjs.map +1 -1
- package/dist/modules/tags/index.js +1 -1
- package/dist/modules/technospam/index.cjs +14 -14
- package/dist/modules/technospam/index.cjs.map +1 -1
- package/dist/modules/technospam/index.js +1 -1
- package/dist/modules/theculturepost/index.cjs +14 -14
- package/dist/modules/theculturepost/index.cjs.map +1 -1
- package/dist/modules/theculturepost/index.js +1 -1
- package/dist/modules/theglobalfuel/index.cjs +14 -14
- package/dist/modules/theglobalfuel/index.cjs.map +1 -1
- package/dist/modules/theglobalfuel/index.js +1 -1
- package/dist/modules/timecampus/index.cjs +21 -16
- package/dist/modules/timecampus/index.cjs.map +1 -1
- package/dist/modules/timecampus/index.js +8 -3
- package/dist/modules/timecampus/index.js.map +1 -1
- package/dist/modules/tours/index.cjs +14 -14
- package/dist/modules/tours/index.cjs.map +1 -1
- package/dist/modules/tours/index.js +1 -1
- package/dist/modules/vibecontrols/index.cjs +14 -14
- package/dist/modules/vibecontrols/index.cjs.map +1 -1
- package/dist/modules/vibecontrols/index.js +2 -2
- package/dist/modules/workspaces/index.cjs +14 -14
- package/dist/modules/workspaces/index.cjs.map +1 -1
- package/dist/modules/workspaces/index.js +1 -1
- package/dist/{tool-name-DlnrBsZ6.d.ts → tool-name-BaPNMZdj.d.ts} +17 -1
- package/dist/{tool-name-CQf_IqAj.d.cts → tool-name-Bvb36qmq.d.cts} +17 -1
- package/package.json +1 -1
- package/dist/chunk-H2OYWLOA.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/errors.ts","../../../src/core/result.ts","../../../src/core/tool-name.ts","../../../src/modules/adaptercloud/operations.ts","../../../src/modules/adaptercloud/tools/shared.ts","../../../src/modules/adaptercloud/tools/adapters.ts","../../../src/modules/adaptercloud/tools/connections.ts","../../../src/modules/adaptercloud/tools/resources.ts","../../../src/modules/adaptercloud/tools/topology.ts","../../../src/modules/adaptercloud/tools/policies.ts","../../../src/modules/adaptercloud/tools/violations.ts","../../../src/modules/adaptercloud/tools/drift.ts","../../../src/modules/adaptercloud/tools/sync.ts","../../../src/modules/adaptercloud/tools/cost.ts","../../../src/modules/adaptercloud/tools/health.ts","../../../src/modules/adaptercloud/resources.ts","../../../src/modules/adaptercloud/prompts.ts","../../../src/modules/adaptercloud/index.ts"],"names":["z"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Error classes for MCP SDK.\n *\n * Modules MUST throw these instead of throwing raw Errors. The registerTool\n * wrapper in result.ts catches and maps them to MCP-protocol-compliant\n * `{ isError: true, content: [...] }` responses.\n *\n * Throwing past the wrapper to the protocol surfaces as JSON-RPC -32603 to\n * the client and is a protocol bug.\n */\n\nexport class McpUserError extends Error {\n public readonly hint: string | undefined;\n\n constructor(message: string, opts?: { hint?: string }) {\n super(message);\n this.name = 'McpUserError';\n this.hint = opts?.hint;\n }\n}\n\nexport class McpAuthError extends McpUserError {\n constructor(message: string, opts?: { hint?: string }) {\n super(message, {\n hint: opts?.hint ?? 'Run the auth_login tool to authenticate.',\n });\n this.name = 'McpAuthError';\n }\n}\n\nexport class McpInternalError extends Error {\n public override readonly cause: unknown;\n\n constructor(message: string, cause?: unknown) {\n super(message);\n this.name = 'McpInternalError';\n this.cause = cause;\n }\n}\n","/**\n * MCP tool result helpers + central handler.\n *\n * Modules NEVER call server.registerTool directly — they use registerTool()\n * from this module so the central try/catch wraps the handler and:\n * - maps thrown McpUserError / McpAuthError / McpInternalError to\n * MCP-protocol-compliant `{ isError: true, content: [...] }` shapes\n * - threads `_meta.progressToken` into ctx.progress for long ops\n * - emits a structured log line on every error\n * - never leaks `cause` from McpInternalError to the client\n *\n * This is the analog of cli-sdk's createProgram() central error handler.\n */\n\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport type { ZodRawShape } from 'zod';\nimport type { McpContext } from './context.js';\nimport { McpAuthError, McpInternalError, McpUserError } from './errors.js';\n\nexport interface ToolTextContent {\n type: 'text';\n text: string;\n [k: string]: unknown;\n}\n\nexport interface ToolResult {\n content: ToolTextContent[];\n isError?: boolean;\n structuredContent?: Record<string, unknown>;\n [k: string]: unknown;\n}\n\nexport interface ToolMeta {\n progressToken?: string | number;\n}\n\n/**\n * Build a successful tool result with JSON content (pretty-printed).\n */\nexport function jsonResult(data: unknown, structured?: Record<string, unknown>): ToolResult {\n const result: ToolResult = {\n content: [{ type: 'text', text: JSON.stringify(data, null, 2) }],\n };\n if (structured !== undefined) {\n result.structuredContent = structured;\n }\n return result;\n}\n\n/**\n * Build a successful tool result with plain text content.\n */\nexport function textResult(text: string): ToolResult {\n return { content: [{ type: 'text', text }] };\n}\n\n/**\n * Build an error tool result. Honors MCP's `{ isError: true, content }` shape.\n * Optional hint is appended on a new line so the LLM can react.\n */\nexport function errorResult(message: string, hint?: string): ToolResult {\n const text = hint ? `${message}\\n\\nHint: ${hint}` : message;\n return { content: [{ type: 'text', text }], isError: true };\n}\n\nexport interface ToolMetadata {\n title: string;\n description: string;\n inputSchema?: ZodRawShape;\n}\n\nexport type ToolHandler<TArgs = Record<string, unknown>> = (\n args: TArgs,\n ctx: McpContext,\n meta: ToolMeta,\n) => Promise<unknown>;\n\n/**\n * Register a tool with the central error wrapper.\n *\n * The handler returns a plain value or void. The wrapper:\n * - wraps non-undefined returns in jsonResult()\n * - if the value already looks like a ToolResult (has `content`), passes through\n * - catches McpAuthError / McpUserError / McpInternalError / generic Error\n * - logs every error via ctx.logger.error\n */\nexport function registerTool<TArgs extends Record<string, unknown>>(\n server: McpServer,\n ctx: McpContext,\n name: string,\n metadata: ToolMetadata,\n handler: ToolHandler<TArgs>,\n): void {\n const sdkConfig = {\n title: metadata.title,\n description: metadata.description,\n ...(metadata.inputSchema ? { inputSchema: metadata.inputSchema } : {}),\n };\n\n // The MCP SDK's registerTool signature is `(name, config, handler)`. The\n // handler arity depends on whether inputSchema is present (1-arg without,\n // 2-arg with). We accept a unified handler shape and dispatch at runtime.\n // The SDK's typing is strict and conditional on the inputSchema generic;\n // bypass with a cast since runtime acceptance is unconditional.\n const wrapped = async (...callbackArgs: unknown[]): Promise<ToolResult> => {\n const hasArgs = callbackArgs.length === 2;\n const args = (hasArgs ? callbackArgs[0] : {}) as TArgs;\n const extra = (hasArgs ? callbackArgs[1] : callbackArgs[0]) as\n | { _meta?: { progressToken?: string | number } }\n | undefined;\n\n const progressToken = extra?._meta?.progressToken;\n const meta: ToolMeta = progressToken !== undefined ? { progressToken } : {};\n\n try {\n const result = await handler(args, ctx, meta);\n if (isToolResult(result)) return result;\n if (result === undefined) return textResult('OK');\n return jsonResult(result);\n } catch (error) {\n return mapErrorToResult(error, ctx, name);\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (server as any).registerTool(name, sdkConfig, wrapped);\n}\n\nfunction isToolResult(value: unknown): value is ToolResult {\n return (\n !!value &&\n typeof value === 'object' &&\n 'content' in value &&\n Array.isArray((value as ToolResult).content)\n );\n}\n\nfunction mapErrorToResult(error: unknown, ctx: McpContext, toolName: string): ToolResult {\n if (error instanceof McpAuthError) {\n ctx.logger.warn(`${toolName}: auth required`, { message: error.message });\n return errorResult(error.message, error.hint);\n }\n if (error instanceof McpUserError) {\n ctx.logger.info(`${toolName}: user error`, { message: error.message });\n return errorResult(error.message, error.hint);\n }\n if (error instanceof McpInternalError) {\n ctx.logger.error(`${toolName}: internal error`, {\n message: error.message,\n cause: stringifyCause(error.cause),\n });\n return errorResult(`Internal error in ${toolName}.`);\n }\n const message = error instanceof Error ? error.message : String(error);\n ctx.logger.error(`${toolName}: unhandled error`, { message });\n return errorResult(`${toolName}: ${message}`);\n}\n\nfunction stringifyCause(cause: unknown): string | undefined {\n if (cause === undefined || cause === null) return undefined;\n if (cause instanceof Error) return cause.message;\n try {\n return JSON.stringify(cause);\n } catch {\n return String(cause);\n }\n}\n","/**\n * Tool / resource / prompt naming helpers.\n *\n * Mandatory product prefix avoids collisions when Claude Desktop runs\n * multiple MCP servers concurrently (typical setup is ~6).\n *\n * Tool names are capped at 63 characters — Claude Desktop pre-1.x\n * truncated at 64 in some versions.\n */\n\nimport { McpInternalError } from './errors.js';\n\nconst MAX_TOOL_NAME_LENGTH = 63;\n\nfunction assertSafeName(name: string, kind: 'tool' | 'resource' | 'prompt'): string {\n if (kind === 'tool' && name.length > MAX_TOOL_NAME_LENGTH) {\n throw new McpInternalError(\n `Tool name '${name}' exceeds ${MAX_TOOL_NAME_LENGTH} characters (some MCP clients truncate at 64).`,\n );\n }\n return name;\n}\n\n/**\n * Build a tool name. Format: `<productName>_<...parts>` (snake_case).\n * Example: mcpToolName('vibecontrols', 'vibes', 'list') -> 'vibecontrols_vibes_list'\n */\nexport function mcpToolName(productName: string, ...parts: string[]): string {\n if (!productName) {\n throw new McpInternalError('mcpToolName: productName is required');\n }\n const name = [productName, ...parts].filter(Boolean).join('_');\n return assertSafeName(name, 'tool');\n}\n\n/**\n * Build a resource URI. Format: `<productName>://<...parts>`.\n * Example: mcpResourceUri('vibecontrols', 'schema') -> 'vibecontrols://schema'\n */\nexport function mcpResourceUri(productName: string, ...parts: string[]): string {\n if (!productName) {\n throw new McpInternalError('mcpResourceUri: productName is required');\n }\n return `${productName}://${parts.filter(Boolean).join('/')}`;\n}\n\n/**\n * Build a prompt name. Format: `<productName>-<...parts>` (kebab-case).\n * Example: mcpPromptName('vibecontrols', 'setup') -> 'vibecontrols-setup'\n */\nexport function mcpPromptName(productName: string, ...parts: string[]): string {\n if (!productName) {\n throw new McpInternalError('mcpPromptName: productName is required');\n }\n return [productName, ...parts].filter(Boolean).join('-');\n}\n\nexport const TOOL_NAME_LIMIT = MAX_TOOL_NAME_LENGTH;\n","/**\n * Centralized GraphQL operations for the AdapterCloud MCP module.\n *\n * AdapterCloud (InfraVerse) is the digital-infrastructure continuum: it stitches\n * fragmented infrastructure (multi-cloud, on-prem, edge, SaaS) into one\n * continuous, governable fabric — adapters/connections/resources/topology\n * (fabric), policies/violations/drift (governance), and sync runs/cost records\n * (operations/FinOps). Backend subgraph:\n * ~/products/wspace/adaptercloud/wspace-adaptercloud-svc/ (Hive service name\n * `adaptercloud`).\n *\n * Every product-owned root field and type carries the `ada`/`Ada` prefix —\n * operations are called by their REAL backend names (adaListAdapters,\n * adaCreateConnection, adaHealth, …). Workspace scoping is carried by the\n * gateway headers issued by the auth module; AdapterCloud inputs do NOT carry a\n * workspaceId.\n *\n * The schema uses a cursor/limit/offset `PaginationInput` and page envelopes of\n * shape `{ items, pageInfo { cursor, hasMore } }`; some list queries (cost,\n * drift, topology) return plain arrays instead. Uses template-string\n * interpolation (not gql tagged fragments) to match the canonical modules.\n */\n\n// ---------------------------------------------------------------------------\n// Field fragments\n// ---------------------------------------------------------------------------\n\nexport const PAGE_INFO_FIELDS = `\n pageInfo { cursor hasMore }\n`;\n\nexport const ADAPTER_FIELDS = `\n id name slug description kind status vendor version capabilities configSchema\n tags workspaceId createdAt updatedAt\n`;\n\nexport const CONNECTION_FIELDS = `\n id name adapterId authMethod status environment region config secretRef\n targetRef resourceCount lastSyncedAt lastError tags workspaceId\n createdAt updatedAt\n`;\n\nexport const RESOURCE_FIELDS = `\n id connectionId externalId name resourceType region state monthlyCost\n attributes providerTags tags lastSeenAt workspaceId createdAt updatedAt\n`;\n\nexport const TOPOLOGY_EDGE_FIELDS = `\n id fromResourceId toResourceId kind weight bidirectional attributes\n workspaceId createdAt updatedAt\n`;\n\nexport const POLICY_FIELDS = `\n id name description kind enforcement severity expression appliesTo isActive\n tags workspaceId createdAt updatedAt\n`;\n\nexport const VIOLATION_FIELDS = `\n id policyId resourceId severity status message evidence detectedAt\n resolvedAt resolvedById waiverReason workspaceId createdAt updatedAt\n`;\n\nexport const DRIFT_FIELDS = `\n id resourceId attributePath expectedValue observedValue severity status\n detectedAt remediatedAt workspaceId createdAt updatedAt\n`;\n\nexport const SYNC_RUN_FIELDS = `\n id connectionId kind status startedAt finishedAt discoveredCount\n reconciledCount driftCount violationCount summary error workspaceId\n createdAt updatedAt\n`;\n\nexport const COST_RECORD_FIELDS = `\n id connectionId resourceId service amount currency periodStart periodEnd\n breakdown workspaceId createdAt updatedAt\n`;\n\n// ---------------------------------------------------------------------------\n// Adapters\n// ---------------------------------------------------------------------------\n\nexport const GET_ADAPTER = `\n query AdaGetAdapter($id: ID!) {\n adaAdapter(id: $id) {\n ${ADAPTER_FIELDS}\n connections { id name status environment resourceCount }\n }\n }\n`;\n\nexport const LIST_ADAPTERS = `\n query AdaListAdapters(\n $kind: AdaAdapterKind\n $status: AdaAdapterStatus\n $pagination: PaginationInput\n ) {\n adaListAdapters(kind: $kind, status: $status, pagination: $pagination) {\n items { ${ADAPTER_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const CREATE_ADAPTER = `\n mutation AdaCreateAdapter($input: AdaCreateAdapterInput!) {\n adaCreateAdapter(input: $input) {\n ${ADAPTER_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_ADAPTER = `\n mutation AdaUpdateAdapter($id: ID!, $input: AdaUpdateAdapterInput!) {\n adaUpdateAdapter(id: $id, input: $input) {\n ${ADAPTER_FIELDS}\n }\n }\n`;\n\nexport const ARCHIVE_ADAPTER = `\n mutation AdaArchiveAdapter($id: ID!) {\n adaArchiveAdapter(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Connections\n// ---------------------------------------------------------------------------\n\nexport const GET_CONNECTION = `\n query AdaGetConnection($id: ID!) {\n adaConnection(id: $id) {\n ${CONNECTION_FIELDS}\n adapter { id name slug kind status }\n resources { id name resourceType state monthlyCost }\n }\n }\n`;\n\nexport const LIST_CONNECTIONS = `\n query AdaListConnections(\n $adapterId: ID\n $status: AdaConnectionStatus\n $pagination: PaginationInput\n ) {\n adaListConnections(adapterId: $adapterId, status: $status, pagination: $pagination) {\n items { ${CONNECTION_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const CREATE_CONNECTION = `\n mutation AdaCreateConnection($input: AdaCreateConnectionInput!) {\n adaCreateConnection(input: $input) {\n ${CONNECTION_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_CONNECTION = `\n mutation AdaUpdateConnection($id: ID!, $input: AdaUpdateConnectionInput!) {\n adaUpdateConnection(id: $id, input: $input) {\n ${CONNECTION_FIELDS}\n }\n }\n`;\n\nexport const DISABLE_CONNECTION = `\n mutation AdaDisableConnection($id: ID!) {\n adaDisableConnection(id: $id) {\n ${CONNECTION_FIELDS}\n }\n }\n`;\n\nexport const SET_CONNECTION_STATUS = `\n mutation AdaSetConnectionStatus($id: ID!, $status: AdaConnectionStatus!) {\n adaSetConnectionStatus(id: $id, status: $status) {\n ${CONNECTION_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Resources\n// ---------------------------------------------------------------------------\n\nexport const GET_RESOURCE = `\n query AdaGetResource($id: ID!) {\n adaResource(id: $id) {\n ${RESOURCE_FIELDS}\n connection { id name status }\n dependsOn { id name resourceType state }\n }\n }\n`;\n\nexport const LIST_RESOURCES = `\n query AdaListResources(\n $connectionId: ID\n $resourceType: String\n $state: AdaResourceState\n $pagination: PaginationInput\n ) {\n adaListResources(\n connectionId: $connectionId\n resourceType: $resourceType\n state: $state\n pagination: $pagination\n ) {\n items { ${RESOURCE_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const REGISTER_RESOURCE = `\n mutation AdaRegisterResource($input: AdaRegisterResourceInput!) {\n adaRegisterResource(input: $input) {\n ${RESOURCE_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Topology\n// ---------------------------------------------------------------------------\n\nexport const LIST_TOPOLOGY_EDGES = `\n query AdaListTopologyEdges($kind: AdaEdgeKind, $resourceId: ID) {\n adaListTopologyEdges(kind: $kind, resourceId: $resourceId) {\n ${TOPOLOGY_EDGE_FIELDS}\n }\n }\n`;\n\nexport const CREATE_TOPOLOGY_EDGE = `\n mutation AdaCreateTopologyEdge($input: AdaCreateTopologyEdgeInput!) {\n adaCreateTopologyEdge(input: $input) {\n ${TOPOLOGY_EDGE_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Policies\n// ---------------------------------------------------------------------------\n\nexport const GET_POLICY = `\n query AdaGetPolicy($id: ID!) {\n adaPolicy(id: $id) {\n ${POLICY_FIELDS}\n violations { id resourceId severity status message }\n }\n }\n`;\n\nexport const LIST_POLICIES = `\n query AdaListPolicies(\n $kind: AdaPolicyKind\n $isActive: Boolean\n $pagination: PaginationInput\n ) {\n adaListPolicies(kind: $kind, isActive: $isActive, pagination: $pagination) {\n items { ${POLICY_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const CREATE_POLICY = `\n mutation AdaCreatePolicy($input: AdaCreatePolicyInput!) {\n adaCreatePolicy(input: $input) {\n ${POLICY_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_POLICY = `\n mutation AdaUpdatePolicy($id: ID!, $input: AdaUpdatePolicyInput!) {\n adaUpdatePolicy(id: $id, input: $input) {\n ${POLICY_FIELDS}\n }\n }\n`;\n\nexport const ARCHIVE_POLICY = `\n mutation AdaArchivePolicy($id: ID!) {\n adaArchivePolicy(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Violations\n// ---------------------------------------------------------------------------\n\nexport const LIST_VIOLATIONS = `\n query AdaListViolations(\n $policyId: ID\n $resourceId: ID\n $status: AdaViolationStatus\n $pagination: PaginationInput\n ) {\n adaListViolations(\n policyId: $policyId\n resourceId: $resourceId\n status: $status\n pagination: $pagination\n ) {\n items { ${VIOLATION_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const RECORD_VIOLATION = `\n mutation AdaRecordViolation($input: AdaRecordViolationInput!) {\n adaRecordViolation(input: $input) {\n ${VIOLATION_FIELDS}\n }\n }\n`;\n\nexport const RESOLVE_VIOLATION = `\n mutation AdaResolveViolation(\n $id: ID!\n $status: AdaViolationStatus!\n $waiverReason: String\n ) {\n adaResolveViolation(id: $id, status: $status, waiverReason: $waiverReason) {\n ${VIOLATION_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Drift\n// ---------------------------------------------------------------------------\n\nexport const LIST_DRIFT_RECORDS = `\n query AdaListDriftRecords($resourceId: ID, $status: AdaDriftStatus) {\n adaListDriftRecords(resourceId: $resourceId, status: $status) {\n ${DRIFT_FIELDS}\n }\n }\n`;\n\nexport const RECORD_DRIFT = `\n mutation AdaRecordDrift($input: AdaRecordDriftInput!) {\n adaRecordDrift(input: $input) {\n ${DRIFT_FIELDS}\n }\n }\n`;\n\nexport const REMEDIATE_DRIFT = `\n mutation AdaRemediateDrift($id: ID!) {\n adaRemediateDrift(id: $id) {\n ${DRIFT_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Sync runs\n// ---------------------------------------------------------------------------\n\nexport const GET_SYNC_RUN = `\n query AdaGetSyncRun($id: ID!) {\n adaSyncRun(id: $id) {\n ${SYNC_RUN_FIELDS}\n }\n }\n`;\n\nexport const LIST_SYNC_RUNS = `\n query AdaListSyncRuns(\n $connectionId: ID\n $status: AdaSyncStatus\n $pagination: PaginationInput\n ) {\n adaListSyncRuns(connectionId: $connectionId, status: $status, pagination: $pagination) {\n items { ${SYNC_RUN_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const START_SYNC_RUN = `\n mutation AdaStartSyncRun($input: AdaStartSyncRunInput!) {\n adaStartSyncRun(input: $input) {\n ${SYNC_RUN_FIELDS}\n }\n }\n`;\n\nexport const COMPLETE_SYNC_RUN = `\n mutation AdaCompleteSyncRun($id: ID!, $input: AdaCompleteSyncRunInput) {\n adaCompleteSyncRun(id: $id, input: $input) {\n ${SYNC_RUN_FIELDS}\n }\n }\n`;\n\nexport const FAIL_SYNC_RUN = `\n mutation AdaFailSyncRun($id: ID!, $error: String!) {\n adaFailSyncRun(id: $id, error: $error) {\n ${SYNC_RUN_FIELDS}\n }\n }\n`;\n\nexport const CANCEL_SYNC_RUN = `\n mutation AdaCancelSyncRun($id: ID!) {\n adaCancelSyncRun(id: $id) {\n ${SYNC_RUN_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Cost / FinOps\n// ---------------------------------------------------------------------------\n\nexport const LIST_COST_RECORDS = `\n query AdaListCostRecords($connectionId: ID, $resourceId: ID, $service: String) {\n adaListCostRecords(connectionId: $connectionId, resourceId: $resourceId, service: $service) {\n ${COST_RECORD_FIELDS}\n }\n }\n`;\n\nexport const COST_SUMMARY = `\n query AdaCostSummary($connectionId: ID) {\n adaCostSummary(connectionId: $connectionId) {\n currency\n total\n lines { service total }\n }\n }\n`;\n\nexport const INGEST_COST = `\n mutation AdaIngestCost($input: AdaIngestCostInput!) {\n adaIngestCost(input: $input) {\n ${COST_RECORD_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Health\n// ---------------------------------------------------------------------------\n\nexport const HEALTH = `\n query AdaHealth {\n adaHealth\n }\n`;\n","/**\n * Shared zod schemas for the AdapterCloud tool surface.\n *\n * Every backend enum is mirrored as a tight zod enum so Claude Desktop grounds\n * tool calls against the exact allowed values. JSON scalar inputs (config,\n * configSchema, attributes, providerTags, expression, evidence, summary,\n * breakdown, expectedValue, observedValue) are modelled as permissive object\n * records — the backend accepts arbitrary JSON, but a record shape gives the\n * LLM a typed hint. The cursor/limit/offset `PaginationInput` is shared by the\n * page-returning list tools.\n */\n\nimport { z } from 'zod';\n\nexport const AdapterKindEnum = z\n .enum([\n 'CUSTOM',\n 'DATA_SYSTEM',\n 'EDGE',\n 'KUBERNETES',\n 'NETWORK',\n 'ON_PREM',\n 'PRIVATE_CLOUD',\n 'PUBLIC_CLOUD',\n 'SAAS',\n ])\n .describe('Class of infrastructure an adapter integrates');\n\nexport const AdapterStatusEnum = z\n .enum(['ARCHIVED', 'DEPRECATED', 'DRAFT', 'PUBLISHED'])\n .describe('Lifecycle status of an adapter');\n\nexport const AuthMethodEnum = z\n .enum(['API_KEY', 'CERTIFICATE', 'IAM_ROLE', 'NONE', 'OAUTH2', 'SERVICE_ACCOUNT'])\n .describe('Authentication method a connection uses against the target system');\n\nexport const ConnectionStatusEnum = z\n .enum(['CONNECTED', 'DEGRADED', 'DISABLED', 'ERROR', 'PENDING'])\n .describe('Health/lifecycle status of a connection');\n\nexport const ResourceStateEnum = z\n .enum(['DELETED', 'DISCOVERED', 'DRIFTED', 'ORPHANED', 'RECONCILED'])\n .describe('Reconciliation state of a discovered resource');\n\nexport const EdgeKindEnum = z\n .enum(['CONNECTS_TO', 'CONTAINS', 'DEPENDS_ON', 'REPLICATES_TO', 'ROUTES_TO'])\n .describe('Relationship kind of a topology edge between two resources');\n\nexport const PolicyKindEnum = z\n .enum(['COMPLIANCE', 'COST', 'GUARDRAIL', 'NAMING', 'SECURITY', 'TAGGING'])\n .describe('Category of a governance policy');\n\nexport const PolicyEnforcementEnum = z\n .enum(['ADVISORY', 'BLOCK', 'WARN'])\n .describe('Enforcement mode of a governance policy');\n\nexport const SeverityEnum = z\n .enum(['CRITICAL', 'HIGH', 'INFO', 'LOW', 'MEDIUM'])\n .describe('Severity classification (policies, violations, drift)');\n\nexport const ViolationStatusEnum = z\n .enum(['ACKNOWLEDGED', 'OPEN', 'RESOLVED', 'WAIVED'])\n .describe('Lifecycle status of a policy violation');\n\nexport const DriftStatusEnum = z\n .enum(['ACKNOWLEDGED', 'DETECTED', 'IGNORED', 'REMEDIATED'])\n .describe('Lifecycle status of a drift record');\n\nexport const SyncKindEnum = z\n .enum(['COST_INGEST', 'DISCOVERY', 'FULL', 'RECONCILE'])\n .describe('Kind of sync run against a connection');\n\nexport const SyncStatusEnum = z\n .enum(['CANCELLED', 'FAILED', 'QUEUED', 'RUNNING', 'SUCCEEDED'])\n .describe('Lifecycle status of a sync run');\n\n/** Permissive JSON-object schema for `JSON` scalar inputs. */\nexport const JsonObject = z.record(z.string(), z.unknown());\n\n/** Shared cursor/limit/offset pagination input for page-returning list tools. */\nexport const PaginationFields = {\n limit: z.number().int().optional().describe('Page size (PaginationInput.limit, default 50)'),\n offset: z\n .number()\n .int()\n .optional()\n .describe('Pagination offset (PaginationInput.offset, default 0)'),\n cursor: z\n .string()\n .optional()\n .describe('Opaque cursor from a previous page (PaginationInput.cursor)'),\n} as const;\n\n/** Build the `pagination` variable from the shared pagination fields. */\nexport function buildPagination(args: {\n limit?: number;\n offset?: number;\n cursor?: string;\n}): Record<string, unknown> | undefined {\n const pagination: Record<string, unknown> = {};\n if (args.limit !== undefined) pagination.limit = args.limit;\n if (args.offset !== undefined) pagination.offset = args.offset;\n if (args.cursor !== undefined) pagination.cursor = args.cursor;\n return Object.keys(pagination).length > 0 ? pagination : undefined;\n}\n","/**\n * AdapterCloud adapter tools — the adapter catalog (integration definitions).\n *\n * Surface (5): adapters_{get,list,create,update,archive}.\n * Backend root fields: adaAdapter / adaListAdapters / adaCreateAdapter /\n * adaUpdateAdapter / adaArchiveAdapter — called by their REAL names in\n * operations.ts. adaListAdapters returns the page envelope { items, pageInfo }.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport {\n AdapterKindEnum,\n AdapterStatusEnum,\n JsonObject,\n PaginationFields,\n buildPagination,\n} from './shared.js';\n\nexport function registerAdapterTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'adapters_get')),\n {\n title: 'Get Adapter',\n description:\n 'Fetch a single AdapterCloud adapter (integration definition) by ID, including its connections.',\n inputSchema: { id: z.string().describe('Adapter ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaAdapter: Record<string, unknown> | null;\n }>(ops.GET_ADAPTER, { id });\n if (!data.adaAdapter) return errorResult(`Adapter ${id} not found`);\n return jsonResult(data.adaAdapter);\n } catch (error) {\n ctx.logger.error('adaptercloud adapters_get failed', { error: String(error) });\n return errorResult(\n `Failed to get adapter: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'adapters_list')),\n {\n title: 'List Adapters',\n description:\n 'List adapters in the bound workspace with optional kind/status filters and pagination. Returns a page envelope { items, pageInfo }.',\n inputSchema: {\n kind: AdapterKindEnum.optional().describe('Filter by infrastructure kind'),\n status: AdapterStatusEnum.optional().describe('Filter by lifecycle status'),\n ...PaginationFields,\n },\n },\n async ({ kind, status, limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaListAdapters: Record<string, unknown>;\n }>(ops.LIST_ADAPTERS, {\n kind,\n status,\n pagination: buildPagination({ limit, offset, cursor }),\n });\n return jsonResult(data.adaListAdapters);\n } catch (error) {\n ctx.logger.error('adaptercloud adapters_list failed', { error: String(error) });\n return errorResult(\n `Failed to list adapters: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'adapters_create')),\n {\n title: 'Create Adapter',\n description:\n 'Register a new adapter (integration definition). `slug` must be unique within the workspace. `configSchema` is an optional JSON Schema describing connection config.',\n inputSchema: {\n name: z.string().min(1).describe('Adapter display name'),\n slug: z.string().min(1).describe('URL slug, unique within the workspace'),\n kind: AdapterKindEnum.optional().describe('Infrastructure kind (default CUSTOM)'),\n status: AdapterStatusEnum.optional().describe('Initial lifecycle status (default DRAFT)'),\n vendor: z.string().optional().describe('Vendor / provider name'),\n version: z.string().optional().describe('Adapter version string'),\n description: z.string().optional().describe('Adapter description'),\n capabilities: z\n .array(z.string())\n .optional()\n .describe('Capability tags (e.g. \"discovery\", \"cost\", \"drift\")'),\n configSchema: JsonObject.optional().describe('JSON Schema for connection config'),\n tags: z.array(z.string()).optional().describe('Free-form tags'),\n },\n },\n async ({\n name,\n slug,\n kind,\n status,\n vendor,\n version,\n description,\n capabilities,\n configSchema,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = { name, slug };\n if (kind !== undefined) input.kind = kind;\n if (status !== undefined) input.status = status;\n if (vendor !== undefined) input.vendor = vendor;\n if (version !== undefined) input.version = version;\n if (description !== undefined) input.description = description;\n if (capabilities !== undefined) input.capabilities = capabilities;\n if (configSchema !== undefined) input.configSchema = configSchema;\n if (tags !== undefined) input.tags = tags;\n\n const data = await ctx.gql.workspace.request<{\n adaCreateAdapter: Record<string, unknown>;\n }>(ops.CREATE_ADAPTER, { input });\n return jsonResult(data.adaCreateAdapter);\n } catch (error) {\n ctx.logger.error('adaptercloud adapters_create failed', { error: String(error) });\n return errorResult(\n `Failed to create adapter: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'adapters_update')),\n {\n title: 'Update Adapter',\n description:\n 'Update an adapter. At least one mutable field must be provided. Use `status` to publish/deprecate an adapter.',\n inputSchema: {\n id: z.string().describe('Adapter ID'),\n name: z.string().optional().describe('Updated display name'),\n kind: AdapterKindEnum.optional().describe('Updated infrastructure kind'),\n status: AdapterStatusEnum.optional().describe('Updated lifecycle status'),\n vendor: z.string().optional().describe('Updated vendor name'),\n version: z.string().optional().describe('Updated version string'),\n description: z.string().optional().describe('Updated description'),\n capabilities: z.array(z.string()).optional().describe('Updated capability tags'),\n configSchema: JsonObject.optional().describe('Updated connection config JSON Schema'),\n tags: z.array(z.string()).optional().describe('Updated tags'),\n },\n },\n async ({\n id,\n name,\n kind,\n status,\n vendor,\n version,\n description,\n capabilities,\n configSchema,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = {};\n if (name !== undefined) input.name = name;\n if (kind !== undefined) input.kind = kind;\n if (status !== undefined) input.status = status;\n if (vendor !== undefined) input.vendor = vendor;\n if (version !== undefined) input.version = version;\n if (description !== undefined) input.description = description;\n if (capabilities !== undefined) input.capabilities = capabilities;\n if (configSchema !== undefined) input.configSchema = configSchema;\n if (tags !== undefined) input.tags = tags;\n\n if (Object.keys(input).length === 0) {\n return errorResult(\n 'No updates specified — provide at least one of name/kind/status/vendor/version/description/capabilities/configSchema/tags',\n );\n }\n\n const data = await ctx.gql.workspace.request<{\n adaUpdateAdapter: Record<string, unknown>;\n }>(ops.UPDATE_ADAPTER, { id, input });\n return jsonResult(data.adaUpdateAdapter);\n } catch (error) {\n ctx.logger.error('adaptercloud adapters_update failed', { error: String(error) });\n return errorResult(\n `Failed to update adapter: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'adapters_archive')),\n {\n title: 'Archive Adapter',\n description: 'Archive (soft-delete) an adapter. Returns true on success.',\n inputSchema: { id: z.string().describe('Adapter ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ adaArchiveAdapter: boolean }>(\n ops.ARCHIVE_ADAPTER,\n { id },\n );\n return jsonResult({ archived: data.adaArchiveAdapter, id });\n } catch (error) {\n ctx.logger.error('adaptercloud adapters_archive failed', { error: String(error) });\n return errorResult(\n `Failed to archive adapter: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * AdapterCloud connection tools — live connections to target systems.\n *\n * Surface (6): connections_{get,list,create,update,disable,set_status}.\n * Backend root fields: adaConnection / adaListConnections / adaCreateConnection\n * / adaUpdateConnection / adaDisableConnection / adaSetConnectionStatus.\n * adaListConnections returns the page envelope { items, pageInfo }.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport {\n AuthMethodEnum,\n ConnectionStatusEnum,\n JsonObject,\n PaginationFields,\n buildPagination,\n} from './shared.js';\n\nexport function registerConnectionTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'connections_get')),\n {\n title: 'Get Connection',\n description:\n 'Fetch a single connection by ID, including its adapter and discovered resources.',\n inputSchema: { id: z.string().describe('Connection ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaConnection: Record<string, unknown> | null;\n }>(ops.GET_CONNECTION, { id });\n if (!data.adaConnection) return errorResult(`Connection ${id} not found`);\n return jsonResult(data.adaConnection);\n } catch (error) {\n ctx.logger.error('adaptercloud connections_get failed', { error: String(error) });\n return errorResult(\n `Failed to get connection: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'connections_list')),\n {\n title: 'List Connections',\n description:\n 'List connections in the bound workspace with optional adapter/status filters and pagination. Returns a page envelope { items, pageInfo }.',\n inputSchema: {\n adapterId: z.string().optional().describe('Filter by adapter ID'),\n status: ConnectionStatusEnum.optional().describe('Filter by connection status'),\n ...PaginationFields,\n },\n },\n async ({ adapterId, status, limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaListConnections: Record<string, unknown>;\n }>(ops.LIST_CONNECTIONS, {\n adapterId,\n status,\n pagination: buildPagination({ limit, offset, cursor }),\n });\n return jsonResult(data.adaListConnections);\n } catch (error) {\n ctx.logger.error('adaptercloud connections_list failed', { error: String(error) });\n return errorResult(\n `Failed to list connections: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'connections_create')),\n {\n title: 'Create Connection',\n description:\n 'Create a connection to a target system for an adapter. `config` holds non-secret connection settings; secrets are referenced by `secretRef`.',\n inputSchema: {\n adapterId: z.string().min(1).describe('Adapter this connection uses'),\n name: z.string().min(1).describe('Connection display name'),\n authMethod: AuthMethodEnum.optional().describe('Authentication method (default NONE)'),\n environment: z.string().optional().describe('Environment, e.g. \"prod\", \"staging\"'),\n region: z.string().optional().describe('Target region, e.g. \"us-east-1\"'),\n config: JsonObject.optional().describe('Non-secret connection config JSON'),\n secretRef: z.string().optional().describe('Reference to a stored secret (not the secret)'),\n targetRef: z.string().optional().describe('Opaque reference to the target system'),\n tags: z.array(z.string()).optional().describe('Free-form tags'),\n },\n },\n async ({\n adapterId,\n name,\n authMethod,\n environment,\n region,\n config,\n secretRef,\n targetRef,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = { adapterId, name };\n if (authMethod !== undefined) input.authMethod = authMethod;\n if (environment !== undefined) input.environment = environment;\n if (region !== undefined) input.region = region;\n if (config !== undefined) input.config = config;\n if (secretRef !== undefined) input.secretRef = secretRef;\n if (targetRef !== undefined) input.targetRef = targetRef;\n if (tags !== undefined) input.tags = tags;\n\n const data = await ctx.gql.workspace.request<{\n adaCreateConnection: Record<string, unknown>;\n }>(ops.CREATE_CONNECTION, { input });\n return jsonResult(data.adaCreateConnection);\n } catch (error) {\n ctx.logger.error('adaptercloud connections_create failed', { error: String(error) });\n return errorResult(\n `Failed to create connection: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'connections_update')),\n {\n title: 'Update Connection',\n description:\n 'Update a connection. At least one mutable field must be provided. To change health/lifecycle status use connections_set_status instead.',\n inputSchema: {\n id: z.string().describe('Connection ID'),\n name: z.string().optional().describe('Updated display name'),\n authMethod: AuthMethodEnum.optional().describe('Updated authentication method'),\n environment: z.string().optional().describe('Updated environment'),\n region: z.string().optional().describe('Updated region'),\n config: JsonObject.optional().describe('Updated non-secret connection config JSON'),\n secretRef: z.string().optional().describe('Updated secret reference'),\n targetRef: z.string().optional().describe('Updated target reference'),\n tags: z.array(z.string()).optional().describe('Updated tags'),\n },\n },\n async ({ id, name, authMethod, environment, region, config, secretRef, targetRef, tags }) => {\n try {\n const input: Record<string, unknown> = {};\n if (name !== undefined) input.name = name;\n if (authMethod !== undefined) input.authMethod = authMethod;\n if (environment !== undefined) input.environment = environment;\n if (region !== undefined) input.region = region;\n if (config !== undefined) input.config = config;\n if (secretRef !== undefined) input.secretRef = secretRef;\n if (targetRef !== undefined) input.targetRef = targetRef;\n if (tags !== undefined) input.tags = tags;\n\n if (Object.keys(input).length === 0) {\n return errorResult(\n 'No updates specified — provide at least one of name/authMethod/environment/region/config/secretRef/targetRef/tags',\n );\n }\n\n const data = await ctx.gql.workspace.request<{\n adaUpdateConnection: Record<string, unknown>;\n }>(ops.UPDATE_CONNECTION, { id, input });\n return jsonResult(data.adaUpdateConnection);\n } catch (error) {\n ctx.logger.error('adaptercloud connections_update failed', { error: String(error) });\n return errorResult(\n `Failed to update connection: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'connections_disable')),\n {\n title: 'Disable Connection',\n description: 'Disable a connection (stops future syncs). Returns the updated connection.',\n inputSchema: { id: z.string().describe('Connection ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaDisableConnection: Record<string, unknown>;\n }>(ops.DISABLE_CONNECTION, { id });\n return jsonResult(data.adaDisableConnection);\n } catch (error) {\n ctx.logger.error('adaptercloud connections_disable failed', { error: String(error) });\n return errorResult(\n `Failed to disable connection: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'connections_set_status')),\n {\n title: 'Set Connection Status',\n description:\n \"Transition a connection's health/lifecycle status (validated against the connection lifecycle): PENDING, CONNECTED, DEGRADED, ERROR, DISABLED.\",\n inputSchema: {\n id: z.string().describe('Connection ID'),\n status: ConnectionStatusEnum.describe('New connection status'),\n },\n },\n async ({ id, status }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaSetConnectionStatus: Record<string, unknown>;\n }>(ops.SET_CONNECTION_STATUS, { id, status });\n return jsonResult(data.adaSetConnectionStatus);\n } catch (error) {\n ctx.logger.error('adaptercloud connections_set_status failed', { error: String(error) });\n return errorResult(\n `Failed to set connection status: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * AdapterCloud resource tools — discovered infrastructure resources.\n *\n * Surface (3): resources_{get,list,register}.\n * Backend root fields: adaResource / adaListResources / adaRegisterResource\n * (an idempotent upsert keyed by externalId). adaListResources returns the page\n * envelope { items, pageInfo }.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { ResourceStateEnum, JsonObject, PaginationFields, buildPagination } from './shared.js';\n\nexport function registerResourceTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'resources_get')),\n {\n title: 'Get Resource',\n description:\n 'Fetch a single discovered resource by ID, including its connection and dependency edges.',\n inputSchema: { id: z.string().describe('Resource ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaResource: Record<string, unknown> | null;\n }>(ops.GET_RESOURCE, { id });\n if (!data.adaResource) return errorResult(`Resource ${id} not found`);\n return jsonResult(data.adaResource);\n } catch (error) {\n ctx.logger.error('adaptercloud resources_get failed', { error: String(error) });\n return errorResult(\n `Failed to get resource: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'resources_list')),\n {\n title: 'List Resources',\n description:\n 'List discovered resources with optional connection/resourceType/state filters and pagination. Returns a page envelope { items, pageInfo }.',\n inputSchema: {\n connectionId: z.string().optional().describe('Filter by connection ID'),\n resourceType: z\n .string()\n .optional()\n .describe('Filter by provider resource type, e.g. \"aws_instance\"'),\n state: ResourceStateEnum.optional().describe('Filter by reconciliation state'),\n ...PaginationFields,\n },\n },\n async ({ connectionId, resourceType, state, limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaListResources: Record<string, unknown>;\n }>(ops.LIST_RESOURCES, {\n connectionId,\n resourceType,\n state,\n pagination: buildPagination({ limit, offset, cursor }),\n });\n return jsonResult(data.adaListResources);\n } catch (error) {\n ctx.logger.error('adaptercloud resources_list failed', { error: String(error) });\n return errorResult(\n `Failed to list resources: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'resources_register')),\n {\n title: 'Register Resource',\n description:\n 'Upsert a discovered resource for a connection (idempotent by externalId). Re-registering the same externalId updates the existing resource.',\n inputSchema: {\n connectionId: z.string().min(1).describe('Connection the resource was discovered through'),\n externalId: z.string().min(1).describe('Provider-native unique ID (idempotency key)'),\n name: z.string().min(1).describe('Resource display name'),\n resourceType: z.string().min(1).describe('Provider resource type, e.g. \"aws_instance\"'),\n region: z.string().optional().describe('Resource region'),\n monthlyCost: z.number().optional().describe('Estimated monthly cost'),\n attributes: JsonObject.optional().describe('Provider-native resource attributes JSON'),\n providerTags: JsonObject.optional().describe('Provider-native tags JSON'),\n tags: z.array(z.string()).optional().describe('Workspace-side free-form tags'),\n },\n },\n async ({\n connectionId,\n externalId,\n name,\n resourceType,\n region,\n monthlyCost,\n attributes,\n providerTags,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = { connectionId, externalId, name, resourceType };\n if (region !== undefined) input.region = region;\n if (monthlyCost !== undefined) input.monthlyCost = monthlyCost;\n if (attributes !== undefined) input.attributes = attributes;\n if (providerTags !== undefined) input.providerTags = providerTags;\n if (tags !== undefined) input.tags = tags;\n\n const data = await ctx.gql.workspace.request<{\n adaRegisterResource: Record<string, unknown>;\n }>(ops.REGISTER_RESOURCE, { input });\n return jsonResult(data.adaRegisterResource);\n } catch (error) {\n ctx.logger.error('adaptercloud resources_register failed', { error: String(error) });\n return errorResult(\n `Failed to register resource: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * AdapterCloud topology tools — dependency/relationship edges between resources.\n *\n * Surface (2): topology_{list,create_edge}.\n * Backend root fields: adaListTopologyEdges (returns a plain array) /\n * adaCreateTopologyEdge.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { EdgeKindEnum, JsonObject } from './shared.js';\n\nexport function registerTopologyTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'topology_list')),\n {\n title: 'List Topology Edges',\n description:\n 'List topology edges (resource relationships), optionally filtered by edge kind and/or a resource ID (edges touching that resource).',\n inputSchema: {\n kind: EdgeKindEnum.optional().describe('Filter by edge kind'),\n resourceId: z.string().optional().describe('Filter to edges touching this resource'),\n },\n },\n async ({ kind, resourceId }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaListTopologyEdges: Array<Record<string, unknown>>;\n }>(ops.LIST_TOPOLOGY_EDGES, { kind, resourceId });\n return jsonResult(data.adaListTopologyEdges);\n } catch (error) {\n ctx.logger.error('adaptercloud topology_list failed', { error: String(error) });\n return errorResult(\n `Failed to list topology edges: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'topology_create_edge')),\n {\n title: 'Create Topology Edge',\n description:\n 'Create a topology edge between two resources (e.g. DEPENDS_ON, ROUTES_TO, CONTAINS). Set `bidirectional` for symmetric relationships.',\n inputSchema: {\n fromResourceId: z.string().min(1).describe('Source resource ID'),\n toResourceId: z.string().min(1).describe('Target resource ID'),\n kind: EdgeKindEnum.optional().describe('Edge kind (default DEPENDS_ON)'),\n weight: z.number().int().optional().describe('Edge weight'),\n bidirectional: z\n .boolean()\n .optional()\n .describe('Whether the edge is symmetric (default false)'),\n attributes: JsonObject.optional().describe('Edge attributes JSON'),\n },\n },\n async ({ fromResourceId, toResourceId, kind, weight, bidirectional, attributes }) => {\n try {\n const input: Record<string, unknown> = { fromResourceId, toResourceId };\n if (kind !== undefined) input.kind = kind;\n if (weight !== undefined) input.weight = weight;\n if (bidirectional !== undefined) input.bidirectional = bidirectional;\n if (attributes !== undefined) input.attributes = attributes;\n\n const data = await ctx.gql.workspace.request<{\n adaCreateTopologyEdge: Record<string, unknown>;\n }>(ops.CREATE_TOPOLOGY_EDGE, { input });\n return jsonResult(data.adaCreateTopologyEdge);\n } catch (error) {\n ctx.logger.error('adaptercloud topology_create_edge failed', { error: String(error) });\n return errorResult(\n `Failed to create topology edge: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * AdapterCloud policy tools — governance guardrails.\n *\n * Surface (5): policies_{get,list,create,update,archive}.\n * Backend root fields: adaPolicy / adaListPolicies / adaCreatePolicy /\n * adaUpdatePolicy / adaArchivePolicy. adaListPolicies returns the page envelope\n * { items, pageInfo }.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport {\n PolicyKindEnum,\n PolicyEnforcementEnum,\n SeverityEnum,\n JsonObject,\n PaginationFields,\n buildPagination,\n} from './shared.js';\n\nexport function registerPolicyTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'policies_get')),\n {\n title: 'Get Policy',\n description: 'Fetch a single governance policy by ID, including its violations.',\n inputSchema: { id: z.string().describe('Policy ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaPolicy: Record<string, unknown> | null;\n }>(ops.GET_POLICY, { id });\n if (!data.adaPolicy) return errorResult(`Policy ${id} not found`);\n return jsonResult(data.adaPolicy);\n } catch (error) {\n ctx.logger.error('adaptercloud policies_get failed', { error: String(error) });\n return errorResult(\n `Failed to get policy: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'policies_list')),\n {\n title: 'List Policies',\n description:\n 'List governance policies with optional kind/isActive filters and pagination. Returns a page envelope { items, pageInfo }.',\n inputSchema: {\n kind: PolicyKindEnum.optional().describe('Filter by policy kind'),\n isActive: z.boolean().optional().describe('Filter by active flag'),\n ...PaginationFields,\n },\n },\n async ({ kind, isActive, limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaListPolicies: Record<string, unknown>;\n }>(ops.LIST_POLICIES, {\n kind,\n isActive,\n pagination: buildPagination({ limit, offset, cursor }),\n });\n return jsonResult(data.adaListPolicies);\n } catch (error) {\n ctx.logger.error('adaptercloud policies_list failed', { error: String(error) });\n return errorResult(\n `Failed to list policies: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'policies_create')),\n {\n title: 'Create Policy',\n description:\n 'Create a governance policy. `expression` is the required policy-rule JSON; `appliesTo` is an optional list of resource-type selectors.',\n inputSchema: {\n name: z.string().min(1).describe('Policy name'),\n expression: JsonObject.describe('Policy-rule expression JSON (required)'),\n kind: PolicyKindEnum.optional().describe('Policy kind (default GUARDRAIL)'),\n enforcement: PolicyEnforcementEnum.optional().describe('Enforcement mode (default WARN)'),\n severity: SeverityEnum.optional().describe('Severity (default MEDIUM)'),\n description: z.string().optional().describe('Policy description'),\n appliesTo: z\n .array(z.string())\n .optional()\n .describe('Resource-type selectors the policy applies to'),\n isActive: z.boolean().optional().describe('Whether the policy is active (default true)'),\n tags: z.array(z.string()).optional().describe('Free-form tags'),\n },\n },\n async ({\n name,\n expression,\n kind,\n enforcement,\n severity,\n description,\n appliesTo,\n isActive,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = { name, expression };\n if (kind !== undefined) input.kind = kind;\n if (enforcement !== undefined) input.enforcement = enforcement;\n if (severity !== undefined) input.severity = severity;\n if (description !== undefined) input.description = description;\n if (appliesTo !== undefined) input.appliesTo = appliesTo;\n if (isActive !== undefined) input.isActive = isActive;\n if (tags !== undefined) input.tags = tags;\n\n const data = await ctx.gql.workspace.request<{\n adaCreatePolicy: Record<string, unknown>;\n }>(ops.CREATE_POLICY, { input });\n return jsonResult(data.adaCreatePolicy);\n } catch (error) {\n ctx.logger.error('adaptercloud policies_create failed', { error: String(error) });\n return errorResult(\n `Failed to create policy: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'policies_update')),\n {\n title: 'Update Policy',\n description:\n 'Update a governance policy. At least one mutable field must be provided. Use `isActive` to enable/disable a policy.',\n inputSchema: {\n id: z.string().describe('Policy ID'),\n name: z.string().optional().describe('Updated name'),\n expression: JsonObject.optional().describe('Updated policy-rule expression JSON'),\n kind: PolicyKindEnum.optional().describe('Updated policy kind'),\n enforcement: PolicyEnforcementEnum.optional().describe('Updated enforcement mode'),\n severity: SeverityEnum.optional().describe('Updated severity'),\n description: z.string().optional().describe('Updated description'),\n appliesTo: z.array(z.string()).optional().describe('Updated resource-type selectors'),\n isActive: z.boolean().optional().describe('Updated active flag'),\n tags: z.array(z.string()).optional().describe('Updated tags'),\n },\n },\n async ({\n id,\n name,\n expression,\n kind,\n enforcement,\n severity,\n description,\n appliesTo,\n isActive,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = {};\n if (name !== undefined) input.name = name;\n if (expression !== undefined) input.expression = expression;\n if (kind !== undefined) input.kind = kind;\n if (enforcement !== undefined) input.enforcement = enforcement;\n if (severity !== undefined) input.severity = severity;\n if (description !== undefined) input.description = description;\n if (appliesTo !== undefined) input.appliesTo = appliesTo;\n if (isActive !== undefined) input.isActive = isActive;\n if (tags !== undefined) input.tags = tags;\n\n if (Object.keys(input).length === 0) {\n return errorResult(\n 'No updates specified — provide at least one of name/expression/kind/enforcement/severity/description/appliesTo/isActive/tags',\n );\n }\n\n const data = await ctx.gql.workspace.request<{\n adaUpdatePolicy: Record<string, unknown>;\n }>(ops.UPDATE_POLICY, { id, input });\n return jsonResult(data.adaUpdatePolicy);\n } catch (error) {\n ctx.logger.error('adaptercloud policies_update failed', { error: String(error) });\n return errorResult(\n `Failed to update policy: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'policies_archive')),\n {\n title: 'Archive Policy',\n description: 'Archive (soft-delete) a governance policy. Returns true on success.',\n inputSchema: { id: z.string().describe('Policy ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ adaArchivePolicy: boolean }>(\n ops.ARCHIVE_POLICY,\n { id },\n );\n return jsonResult({ archived: data.adaArchivePolicy, id });\n } catch (error) {\n ctx.logger.error('adaptercloud policies_archive failed', { error: String(error) });\n return errorResult(\n `Failed to archive policy: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * AdapterCloud violation tools — policy violations against resources.\n *\n * Surface (3): violations_{list,record,resolve}.\n * Backend root fields: adaListViolations (page envelope) / adaRecordViolation /\n * adaResolveViolation (validated transition; WAIVED requires a waiverReason).\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport {\n ViolationStatusEnum,\n SeverityEnum,\n JsonObject,\n PaginationFields,\n buildPagination,\n} from './shared.js';\n\nexport function registerViolationTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'violations_list')),\n {\n title: 'List Violations',\n description:\n 'List policy violations with optional policy/resource/status filters and pagination. Returns a page envelope { items, pageInfo }.',\n inputSchema: {\n policyId: z.string().optional().describe('Filter by policy ID'),\n resourceId: z.string().optional().describe('Filter by resource ID'),\n status: ViolationStatusEnum.optional().describe('Filter by violation status'),\n ...PaginationFields,\n },\n },\n async ({ policyId, resourceId, status, limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaListViolations: Record<string, unknown>;\n }>(ops.LIST_VIOLATIONS, {\n policyId,\n resourceId,\n status,\n pagination: buildPagination({ limit, offset, cursor }),\n });\n return jsonResult(data.adaListViolations);\n } catch (error) {\n ctx.logger.error('adaptercloud violations_list failed', { error: String(error) });\n return errorResult(\n `Failed to list violations: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'violations_record')),\n {\n title: 'Record Violation',\n description:\n 'Record a policy violation against a resource. `evidence` is optional JSON supporting the finding.',\n inputSchema: {\n policyId: z.string().min(1).describe('Violated policy ID'),\n resourceId: z.string().min(1).describe('Offending resource ID'),\n message: z.string().min(1).describe('Human-readable violation message'),\n severity: SeverityEnum.optional().describe(\n 'Severity override (defaults to policy severity)',\n ),\n evidence: JsonObject.optional().describe('Supporting evidence JSON'),\n },\n },\n async ({ policyId, resourceId, message, severity, evidence }) => {\n try {\n const input: Record<string, unknown> = { policyId, resourceId, message };\n if (severity !== undefined) input.severity = severity;\n if (evidence !== undefined) input.evidence = evidence;\n\n const data = await ctx.gql.workspace.request<{\n adaRecordViolation: Record<string, unknown>;\n }>(ops.RECORD_VIOLATION, { input });\n return jsonResult(data.adaRecordViolation);\n } catch (error) {\n ctx.logger.error('adaptercloud violations_record failed', { error: String(error) });\n return errorResult(\n `Failed to record violation: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'violations_resolve')),\n {\n title: 'Resolve Violation',\n description:\n 'Resolve or waive a violation (validated transition). Waiving (status=WAIVED) requires a `waiverReason`.',\n inputSchema: {\n id: z.string().describe('Violation ID'),\n status: ViolationStatusEnum.describe('New status (e.g. RESOLVED, WAIVED, ACKNOWLEDGED)'),\n waiverReason: z.string().optional().describe('Reason — required when status is WAIVED'),\n },\n },\n async ({ id, status, waiverReason }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaResolveViolation: Record<string, unknown>;\n }>(ops.RESOLVE_VIOLATION, { id, status, waiverReason });\n return jsonResult(data.adaResolveViolation);\n } catch (error) {\n ctx.logger.error('adaptercloud violations_resolve failed', { error: String(error) });\n return errorResult(\n `Failed to resolve violation: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * AdapterCloud drift tools — configuration drift records against resources.\n *\n * Surface (3): drift_{list,record,remediate}.\n * Backend root fields: adaListDriftRecords (returns a plain array) /\n * adaRecordDrift / adaRemediateDrift.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { DriftStatusEnum, SeverityEnum, JsonObject } from './shared.js';\n\nexport function registerDriftTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'drift_list')),\n {\n title: 'List Drift Records',\n description:\n 'List configuration-drift records, optionally filtered by resource and/or status. Returns a plain array.',\n inputSchema: {\n resourceId: z.string().optional().describe('Filter by resource ID'),\n status: DriftStatusEnum.optional().describe('Filter by drift status'),\n },\n },\n async ({ resourceId, status }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaListDriftRecords: Array<Record<string, unknown>>;\n }>(ops.LIST_DRIFT_RECORDS, { resourceId, status });\n return jsonResult(data.adaListDriftRecords);\n } catch (error) {\n ctx.logger.error('adaptercloud drift_list failed', { error: String(error) });\n return errorResult(\n `Failed to list drift records: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'drift_record')),\n {\n title: 'Record Drift',\n description:\n 'Record a configuration-drift finding for a resource at a given attribute path, capturing expected vs observed values.',\n inputSchema: {\n resourceId: z.string().min(1).describe('Drifted resource ID'),\n attributePath: z.string().min(1).describe('Attribute path that drifted, e.g. \"tags.env\"'),\n expectedValue: JsonObject.optional().describe('Expected value JSON'),\n observedValue: JsonObject.optional().describe('Observed value JSON'),\n severity: SeverityEnum.optional().describe('Severity of the drift'),\n },\n },\n async ({ resourceId, attributePath, expectedValue, observedValue, severity }) => {\n try {\n const input: Record<string, unknown> = { resourceId, attributePath };\n if (expectedValue !== undefined) input.expectedValue = expectedValue;\n if (observedValue !== undefined) input.observedValue = observedValue;\n if (severity !== undefined) input.severity = severity;\n\n const data = await ctx.gql.workspace.request<{\n adaRecordDrift: Record<string, unknown>;\n }>(ops.RECORD_DRIFT, { input });\n return jsonResult(data.adaRecordDrift);\n } catch (error) {\n ctx.logger.error('adaptercloud drift_record failed', { error: String(error) });\n return errorResult(\n `Failed to record drift: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'drift_remediate')),\n {\n title: 'Remediate Drift',\n description: 'Mark a drift record as remediated. Returns the updated drift record.',\n inputSchema: { id: z.string().describe('Drift record ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaRemediateDrift: Record<string, unknown>;\n }>(ops.REMEDIATE_DRIFT, { id });\n return jsonResult(data.adaRemediateDrift);\n } catch (error) {\n ctx.logger.error('adaptercloud drift_remediate failed', { error: String(error) });\n return errorResult(\n `Failed to remediate drift: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * AdapterCloud sync-run tools — discovery/reconcile/cost-ingest run lifecycle.\n *\n * Surface (6): sync_{get,list,start,complete,fail,cancel}.\n * Backend root fields: adaSyncRun / adaListSyncRuns (page envelope) /\n * adaStartSyncRun / adaCompleteSyncRun / adaFailSyncRun / adaCancelSyncRun.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport {\n SyncKindEnum,\n SyncStatusEnum,\n JsonObject,\n PaginationFields,\n buildPagination,\n} from './shared.js';\n\nexport function registerSyncTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sync_get')),\n {\n title: 'Get Sync Run',\n description: 'Fetch a single sync run by ID, including its counts and summary.',\n inputSchema: { id: z.string().describe('Sync run ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaSyncRun: Record<string, unknown> | null;\n }>(ops.GET_SYNC_RUN, { id });\n if (!data.adaSyncRun) return errorResult(`Sync run ${id} not found`);\n return jsonResult(data.adaSyncRun);\n } catch (error) {\n ctx.logger.error('adaptercloud sync_get failed', { error: String(error) });\n return errorResult(\n `Failed to get sync run: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sync_list')),\n {\n title: 'List Sync Runs',\n description:\n 'List sync runs with optional connection/status filters and pagination. Returns a page envelope { items, pageInfo }.',\n inputSchema: {\n connectionId: z.string().optional().describe('Filter by connection ID'),\n status: SyncStatusEnum.optional().describe('Filter by sync status'),\n ...PaginationFields,\n },\n },\n async ({ connectionId, status, limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaListSyncRuns: Record<string, unknown>;\n }>(ops.LIST_SYNC_RUNS, {\n connectionId,\n status,\n pagination: buildPagination({ limit, offset, cursor }),\n });\n return jsonResult(data.adaListSyncRuns);\n } catch (error) {\n ctx.logger.error('adaptercloud sync_list failed', { error: String(error) });\n return errorResult(\n `Failed to list sync runs: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sync_start')),\n {\n title: 'Start Sync Run',\n description:\n 'Start a sync run against a connection. `kind` selects DISCOVERY (default), RECONCILE, FULL, or COST_INGEST.',\n inputSchema: {\n connectionId: z.string().min(1).describe('Connection to sync'),\n kind: SyncKindEnum.optional().describe('Sync kind (default DISCOVERY)'),\n },\n },\n async ({ connectionId, kind }) => {\n try {\n const input: Record<string, unknown> = { connectionId };\n if (kind !== undefined) input.kind = kind;\n\n const data = await ctx.gql.workspace.request<{\n adaStartSyncRun: Record<string, unknown>;\n }>(ops.START_SYNC_RUN, { input });\n return jsonResult(data.adaStartSyncRun);\n } catch (error) {\n ctx.logger.error('adaptercloud sync_start failed', { error: String(error) });\n return errorResult(\n `Failed to start sync run: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sync_complete')),\n {\n title: 'Complete Sync Run',\n description:\n 'Mark a sync run as succeeded, recording its discovered/reconciled/drift/violation counts and a summary.',\n inputSchema: {\n id: z.string().describe('Sync run ID'),\n discoveredCount: z.number().int().optional().describe('Number of resources discovered'),\n reconciledCount: z.number().int().optional().describe('Number of resources reconciled'),\n driftCount: z.number().int().optional().describe('Number of drift records detected'),\n violationCount: z.number().int().optional().describe('Number of violations detected'),\n summary: JsonObject.optional().describe('Run summary JSON'),\n },\n },\n async ({ id, discoveredCount, reconciledCount, driftCount, violationCount, summary }) => {\n try {\n const input: Record<string, unknown> = {};\n if (discoveredCount !== undefined) input.discoveredCount = discoveredCount;\n if (reconciledCount !== undefined) input.reconciledCount = reconciledCount;\n if (driftCount !== undefined) input.driftCount = driftCount;\n if (violationCount !== undefined) input.violationCount = violationCount;\n if (summary !== undefined) input.summary = summary;\n\n const data = await ctx.gql.workspace.request<{\n adaCompleteSyncRun: Record<string, unknown>;\n }>(ops.COMPLETE_SYNC_RUN, {\n id,\n input: Object.keys(input).length > 0 ? input : undefined,\n });\n return jsonResult(data.adaCompleteSyncRun);\n } catch (error) {\n ctx.logger.error('adaptercloud sync_complete failed', { error: String(error) });\n return errorResult(\n `Failed to complete sync run: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sync_fail')),\n {\n title: 'Fail Sync Run',\n description: 'Mark a sync run as failed with an error message.',\n inputSchema: {\n id: z.string().describe('Sync run ID'),\n error: z.string().min(1).describe('Failure reason / error message'),\n },\n },\n async ({ id, error }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaFailSyncRun: Record<string, unknown>;\n }>(ops.FAIL_SYNC_RUN, { id, error });\n return jsonResult(data.adaFailSyncRun);\n } catch (err) {\n ctx.logger.error('adaptercloud sync_fail failed', { error: String(err) });\n return errorResult(\n `Failed to fail sync run: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sync_cancel')),\n {\n title: 'Cancel Sync Run',\n description: 'Cancel an in-flight or queued sync run. Returns the updated sync run.',\n inputSchema: { id: z.string().describe('Sync run ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaCancelSyncRun: Record<string, unknown>;\n }>(ops.CANCEL_SYNC_RUN, { id });\n return jsonResult(data.adaCancelSyncRun);\n } catch (error) {\n ctx.logger.error('adaptercloud sync_cancel failed', { error: String(error) });\n return errorResult(\n `Failed to cancel sync run: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * AdapterCloud cost / FinOps tools — cost records and spend aggregation.\n *\n * Surface (3): cost_{list,summary,ingest}.\n * Backend root fields: adaListCostRecords (plain array) / adaCostSummary\n * (aggregate) / adaIngestCost.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject } from './shared.js';\n\nexport function registerCostTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'cost_list')),\n {\n title: 'List Cost Records',\n description:\n 'List cost records, optionally filtered by connection, resource, and/or service. Returns a plain array.',\n inputSchema: {\n connectionId: z.string().optional().describe('Filter by connection ID'),\n resourceId: z.string().optional().describe('Filter by resource ID'),\n service: z.string().optional().describe('Filter by cost service, e.g. \"EC2\"'),\n },\n },\n async ({ connectionId, resourceId, service }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaListCostRecords: Array<Record<string, unknown>>;\n }>(ops.LIST_COST_RECORDS, { connectionId, resourceId, service });\n return jsonResult(data.adaListCostRecords);\n } catch (error) {\n ctx.logger.error('adaptercloud cost_list failed', { error: String(error) });\n return errorResult(\n `Failed to list cost records: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'cost_summary')),\n {\n title: 'Cost Summary',\n description:\n 'Aggregate spend grouped by cost service across the workspace, optionally scoped to a single connection.',\n inputSchema: {\n connectionId: z.string().optional().describe('Scope the summary to one connection'),\n },\n },\n async ({ connectionId }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaCostSummary: Record<string, unknown>;\n }>(ops.COST_SUMMARY, { connectionId });\n return jsonResult(data.adaCostSummary);\n } catch (error) {\n ctx.logger.error('adaptercloud cost_summary failed', { error: String(error) });\n return errorResult(\n `Failed to get cost summary: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'cost_ingest')),\n {\n title: 'Ingest Cost Record',\n description:\n 'Ingest a cost record for a service over a billing period. `breakdown` is optional per-line-item JSON.',\n inputSchema: {\n service: z.string().min(1).describe('Cost service, e.g. \"EC2\"'),\n amount: z.number().describe('Cost amount'),\n periodStart: z.string().min(1).describe('Billing period start (ISO 8601 DateTime)'),\n periodEnd: z.string().min(1).describe('Billing period end (ISO 8601 DateTime)'),\n currency: z.string().optional().describe('Currency code, e.g. \"USD\"'),\n connectionId: z.string().optional().describe('Owning connection ID'),\n resourceId: z.string().optional().describe('Owning resource ID'),\n breakdown: JsonObject.optional().describe('Per-line-item cost breakdown JSON'),\n },\n },\n async ({\n service,\n amount,\n periodStart,\n periodEnd,\n currency,\n connectionId,\n resourceId,\n breakdown,\n }) => {\n try {\n const input: Record<string, unknown> = { service, amount, periodStart, periodEnd };\n if (currency !== undefined) input.currency = currency;\n if (connectionId !== undefined) input.connectionId = connectionId;\n if (resourceId !== undefined) input.resourceId = resourceId;\n if (breakdown !== undefined) input.breakdown = breakdown;\n\n const data = await ctx.gql.workspace.request<{\n adaIngestCost: Record<string, unknown>;\n }>(ops.INGEST_COST, { input });\n return jsonResult(data.adaIngestCost);\n } catch (error) {\n ctx.logger.error('adaptercloud cost_ingest failed', { error: String(error) });\n return errorResult(\n `Failed to ingest cost record: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * AdapterCloud health tool.\n *\n * Surface (1): health.\n * Maps to the @public adaHealth query (no auth required) — the AdapterCloud\n * subgraph's liveness/identity probe.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\n\nexport function registerHealthTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'health')),\n {\n title: 'AdapterCloud Health Check',\n description:\n 'Public health probe for the AdapterCloud subgraph (adaHealth). Requires no authentication.',\n inputSchema: {},\n },\n async () => {\n try {\n const data = await ctx.gql.workspace.request<{ adaHealth: string }>(ops.HEALTH, {});\n return jsonResult({ ok: true, status: data.adaHealth });\n } catch (error) {\n ctx.logger.error('adaptercloud health failed', { error: String(error) });\n return errorResult(\n `AdapterCloud health check failed: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { mcpResourceUri, type McpContext } from '../../core/index.js';\nimport { LIST_ADAPTERS, LIST_CONNECTIONS, COST_SUMMARY } from './operations.js';\n\n/**\n * Read-only AdapterCloud MCP resources. URIs are product-prefixed via\n * mcpResourceUri so they don't collide when multiple MCP servers run side by\n * side. Each is tracked at function entry so the shell manifest reflects what\n * was registered even though registration is imperative.\n */\nexport function registerAdaptercloudResources(\n server: McpServer,\n ctx: McpContext,\n track: (uri: string) => string,\n): void {\n const schemaUri = track(mcpResourceUri(ctx.productName, 'schema'));\n const adaptersUri = track(mcpResourceUri(ctx.productName, 'adapters'));\n const connectionsUri = track(mcpResourceUri(ctx.productName, 'connections'));\n const costUri = track(mcpResourceUri(ctx.productName, 'cost'));\n\n // <product>://schema — domain overview\n server.registerResource(\n 'adaptercloud-schema',\n schemaUri,\n {\n title: 'AdapterCloud Domain Schema',\n description:\n 'Overview of the AdapterCloud (InfraVerse) domain — entities, enums, and the per-entity tool surface.',\n mimeType: 'text/plain',\n },\n async () => {\n ctx.logger.debug(`Resource ${schemaUri} requested`);\n const schema = `# AdapterCloud Domain (Overview)\n\nInfraVerse — the digital-infrastructure continuum. Stitches fragmented\ninfrastructure (multi-cloud, on-prem, edge, SaaS) into one continuous,\ngovernable fabric.\n\n## Entities\n- AdaAdapter — an integration definition (the adapter catalog)\n- AdaConnection — a live connection to a target system for an adapter\n- AdaResource — a discovered infrastructure resource (upserted by externalId)\n- AdaTopologyEdge — a dependency/relationship edge between two resources\n- AdaPolicy — a governance guardrail (with violations)\n- AdaPolicyViolation — a policy violation against a resource\n- AdaDriftRecord — a configuration-drift finding against a resource\n- AdaSyncRun — a discovery/reconcile/cost-ingest run against a connection\n- AdaCostRecord — a cost record for a service over a billing period\n\n## Enums\n- AdaAdapterKind: CUSTOM, DATA_SYSTEM, EDGE, KUBERNETES, NETWORK, ON_PREM, PRIVATE_CLOUD, PUBLIC_CLOUD, SAAS\n- AdaAdapterStatus: ARCHIVED, DEPRECATED, DRAFT, PUBLISHED\n- AdaAuthMethod: API_KEY, CERTIFICATE, IAM_ROLE, NONE, OAUTH2, SERVICE_ACCOUNT\n- AdaConnectionStatus: CONNECTED, DEGRADED, DISABLED, ERROR, PENDING\n- AdaResourceState: DELETED, DISCOVERED, DRIFTED, ORPHANED, RECONCILED\n- AdaEdgeKind: CONNECTS_TO, CONTAINS, DEPENDS_ON, REPLICATES_TO, ROUTES_TO\n- AdaPolicyKind: COMPLIANCE, COST, GUARDRAIL, NAMING, SECURITY, TAGGING\n- AdaPolicyEnforcement: ADVISORY, BLOCK, WARN\n- AdaSeverity: CRITICAL, HIGH, INFO, LOW, MEDIUM\n- AdaViolationStatus: ACKNOWLEDGED, OPEN, RESOLVED, WAIVED\n- AdaDriftStatus: ACKNOWLEDGED, DETECTED, IGNORED, REMEDIATED\n- AdaSyncKind: COST_INGEST, DISCOVERY, FULL, RECONCILE\n- AdaSyncStatus: CANCELLED, FAILED, QUEUED, RUNNING, SUCCEEDED\n\n## Tool groups\nadapters, connections, resources, topology (fabric); policies, violations, drift\n(governance); sync, cost (operations/FinOps); plus the public health probe.\nAll run against the WORKSPACE gateway (workspace-scoped) except the public\nhealth probe.\n`;\n return {\n contents: [{ uri: schemaUri, text: schema, mimeType: 'text/plain' }],\n };\n },\n );\n\n // <product>://adapters — adapter catalog\n server.registerResource(\n 'adaptercloud-adapters',\n adaptersUri,\n {\n title: 'AdapterCloud Adapter Catalog',\n description: 'The first 50 adapters (integration definitions) in the bound workspace.',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${adaptersUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{ adaListAdapters: unknown }>(LIST_ADAPTERS, {\n pagination: { limit: 50, offset: 0 },\n });\n return {\n contents: [\n {\n uri: adaptersUri,\n text: JSON.stringify(data.adaListAdapters, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: adaptersUri,\n text: JSON.stringify({\n error: error instanceof Error ? error.message : String(error),\n }),\n mimeType: 'application/json',\n },\n ],\n };\n }\n },\n );\n\n // <product>://connections — connection directory\n server.registerResource(\n 'adaptercloud-connections',\n connectionsUri,\n {\n title: 'AdapterCloud Connection Directory',\n description: 'The first 50 connections in the bound workspace.',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${connectionsUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{ adaListConnections: unknown }>(\n LIST_CONNECTIONS,\n { pagination: { limit: 50, offset: 0 } },\n );\n return {\n contents: [\n {\n uri: connectionsUri,\n text: JSON.stringify(data.adaListConnections, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: connectionsUri,\n text: JSON.stringify({\n error: error instanceof Error ? error.message : String(error),\n }),\n mimeType: 'application/json',\n },\n ],\n };\n }\n },\n );\n\n // <product>://cost — workspace spend summary\n server.registerResource(\n 'adaptercloud-cost',\n costUri,\n {\n title: 'AdapterCloud Cost Summary',\n description: 'Aggregate workspace spend grouped by cost service (FinOps headline).',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${costUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{ adaCostSummary: unknown }>(COST_SUMMARY, {});\n return {\n contents: [\n {\n uri: costUri,\n text: JSON.stringify(data.adaCostSummary, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: costUri,\n text: JSON.stringify({\n error: error instanceof Error ? error.message : String(error),\n }),\n mimeType: 'application/json',\n },\n ],\n };\n }\n },\n );\n}\n","import { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { mcpPromptName, type McpContext } from '../../core/index.js';\n\n/**\n * AdapterCloud MCP prompts — guided multi-step workflows. Names are\n * product-prefixed via mcpPromptName and tracked at function entry.\n */\nexport function registerAdaptercloudPrompts(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n const p = ctx.productName;\n const onboardingName = track(mcpPromptName(p, 'connection-onboarding'));\n const governanceName = track(mcpPromptName(p, 'governance-sweep'));\n\n // <product>-connection-onboarding — stand up an adapter + connection + discovery\n server.registerPrompt(\n onboardingName,\n {\n title: 'Connection Onboarding',\n description:\n 'Guide for connecting a new target system end to end: register an adapter, create a connection, run discovery, and review the discovered resources.',\n argsSchema: {\n adapterName: z.string().optional().describe('Adapter / integration name'),\n kind: z.string().optional().describe('Infrastructure kind (AdaAdapterKind)'),\n },\n },\n ({ adapterName, kind }) => {\n ctx.logger.debug(`Prompt ${onboardingName} called`, { adapterName, kind });\n const nameNote = adapterName\n ? `Use the adapter name \"${adapterName}\".`\n : 'Ask the user for the adapter / integration name.';\n const kindNote = kind ? `Use kind ${kind}.` : 'Help the user pick an AdaAdapterKind.';\n return {\n messages: [\n {\n role: 'user' as const,\n content: {\n type: 'text' as const,\n text: `Help me connect a new target system to AdapterCloud.\n\n1. **Register Adapter**: Use ${p}_adapters_create. ${nameNote} ${kindNote} Provide a unique slug; optionally a configSchema and capabilities.\n2. **Publish Adapter**: Use ${p}_adapters_update with status=PUBLISHED when the definition is ready.\n3. **Create Connection**: Use ${p}_connections_create with the new adapterId, an authMethod, environment/region, and a secretRef (never inline secrets).\n4. **Run Discovery**: Use ${p}_sync_start with the connectionId and kind=DISCOVERY, then poll ${p}_sync_get until status=SUCCEEDED.\n5. **Review Resources**: Use ${p}_resources_list filtered by the new connectionId; inspect state and monthlyCost.\n6. **Map Topology (optional)**: Use ${p}_topology_create_edge to record dependencies between discovered resources.\n\nShow results at each step and confirm before running discovery.`,\n },\n },\n ],\n };\n },\n );\n\n // <product>-governance-sweep — drift + violation + cost review\n server.registerPrompt(\n governanceName,\n {\n title: 'Governance Sweep',\n description:\n 'Governance + FinOps review workflow: check connection health, triage drift and open violations, resolve/waive them, and review spend.',\n argsSchema: {\n connectionId: z.string().optional().describe('Connection ID to scope the sweep'),\n },\n },\n ({ connectionId }) => {\n ctx.logger.debug(`Prompt ${governanceName} called`, { connectionId });\n const scopeNote = connectionId\n ? `Scope the sweep to connection \"${connectionId}\".`\n : `First list connections with ${p}_connections_list and pick one (or sweep the whole workspace).`;\n return {\n messages: [\n {\n role: 'user' as const,\n content: {\n type: 'text' as const,\n text: `Run an AdapterCloud governance + FinOps sweep. ${scopeNote}\n\n1. **Connection Health**: Use ${p}_connections_list and flag any DEGRADED / ERROR connections.\n2. **Drift**: Use ${p}_drift_list filtered by status=DETECTED. For each remediated item use ${p}_drift_remediate.\n3. **Violations**: Use ${p}_violations_list filtered by status=OPEN. Resolve each with ${p}_violations_resolve (status=RESOLVED, or WAIVED with a waiverReason).\n4. **Policies**: Use ${p}_policies_list to confirm the active guardrails; tighten enforcement with ${p}_policies_update if needed.\n5. **Cost**: Use ${p}_cost_summary for headline spend by service, then ${p}_cost_list to drill into a specific service.\n\nSummarize what needs attention after each step.`,\n },\n },\n ],\n };\n },\n );\n}\n","/**\n * AdapterCloud module — domain module for the future-products ecosystem program.\n *\n * Covers all 9 @key entities of wspace-adaptercloud-svc grouped into per-entity\n * sub-APIs: adapters, connections, resources, topology (fabric); policies,\n * violations, drift (governance); sync, cost (operations/FinOps); plus a public\n * health probe. Mirrors the rich kadaikodi/crewfoundry module structure\n * (tools/<entity>.ts + resources.ts + prompts.ts) and the canonical tags\n * module's typing discipline.\n *\n * Backend: ~/products/wspace/adaptercloud/wspace-adaptercloud-svc/\n * (Hive service name `adaptercloud`). All operations run against the WORKSPACE\n * gateway; the @public adaHealth probe is exposed as `<product>_health`.\n */\n\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport type { McpContext, McpModule, ModuleRegistration } from '../../core/index.js';\nimport { registerAdapterTools } from './tools/adapters.js';\nimport { registerConnectionTools } from './tools/connections.js';\nimport { registerResourceTools } from './tools/resources.js';\nimport { registerTopologyTools } from './tools/topology.js';\nimport { registerPolicyTools } from './tools/policies.js';\nimport { registerViolationTools } from './tools/violations.js';\nimport { registerDriftTools } from './tools/drift.js';\nimport { registerSyncTools } from './tools/sync.js';\nimport { registerCostTools } from './tools/cost.js';\nimport { registerHealthTools } from './tools/health.js';\nimport { registerAdaptercloudResources } from './resources.js';\nimport { registerAdaptercloudPrompts } from './prompts.js';\n\nconst adaptercloudModule: McpModule = {\n id: 'adaptercloud',\n version: '0.0.1',\n displayName: 'AdapterCloud',\n dependsOn: ['auth'],\n capabilities: { tools: {}, resources: {}, prompts: {} },\n\n register(server: McpServer, ctx: McpContext): ModuleRegistration {\n const tools: string[] = [];\n const resources: string[] = [];\n const prompts: string[] = [];\n\n const trackTool = (n: string): string => {\n tools.push(n);\n return n;\n };\n const trackResource = (uri: string): string => {\n resources.push(uri);\n return uri;\n };\n const trackPrompt = (n: string): string => {\n prompts.push(n);\n return n;\n };\n\n registerAdapterTools(server, ctx, trackTool);\n registerConnectionTools(server, ctx, trackTool);\n registerResourceTools(server, ctx, trackTool);\n registerTopologyTools(server, ctx, trackTool);\n registerPolicyTools(server, ctx, trackTool);\n registerViolationTools(server, ctx, trackTool);\n registerDriftTools(server, ctx, trackTool);\n registerSyncTools(server, ctx, trackTool);\n registerCostTools(server, ctx, trackTool);\n registerHealthTools(server, ctx, trackTool);\n\n registerAdaptercloudResources(server, ctx, trackResource);\n registerAdaptercloudPrompts(server, ctx, trackPrompt);\n\n return { tools, resources, prompts };\n },\n};\n\nexport default adaptercloudModule;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/core/errors.ts","../../../src/core/tool-name.ts","../../../src/core/result.ts","../../../src/modules/adaptercloud/operations.ts","../../../src/modules/adaptercloud/tools/shared.ts","../../../src/modules/adaptercloud/tools/adapters.ts","../../../src/modules/adaptercloud/tools/connections.ts","../../../src/modules/adaptercloud/tools/resources.ts","../../../src/modules/adaptercloud/tools/topology.ts","../../../src/modules/adaptercloud/tools/policies.ts","../../../src/modules/adaptercloud/tools/violations.ts","../../../src/modules/adaptercloud/tools/drift.ts","../../../src/modules/adaptercloud/tools/sync.ts","../../../src/modules/adaptercloud/tools/cost.ts","../../../src/modules/adaptercloud/tools/health.ts","../../../src/modules/adaptercloud/resources.ts","../../../src/modules/adaptercloud/prompts.ts","../../../src/modules/adaptercloud/index.ts"],"names":["z"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Error classes for MCP SDK.\n *\n * Modules MUST throw these instead of throwing raw Errors. The registerTool\n * wrapper in result.ts catches and maps them to MCP-protocol-compliant\n * `{ isError: true, content: [...] }` responses.\n *\n * Throwing past the wrapper to the protocol surfaces as JSON-RPC -32603 to\n * the client and is a protocol bug.\n */\n\nexport class McpUserError extends Error {\n public readonly hint: string | undefined;\n\n constructor(message: string, opts?: { hint?: string }) {\n super(message);\n this.name = 'McpUserError';\n this.hint = opts?.hint;\n }\n}\n\nexport class McpAuthError extends McpUserError {\n constructor(message: string, opts?: { hint?: string }) {\n super(message, {\n hint: opts?.hint ?? 'Run the auth_login tool to authenticate.',\n });\n this.name = 'McpAuthError';\n }\n}\n\nexport class McpInternalError extends Error {\n public override readonly cause: unknown;\n\n constructor(message: string, cause?: unknown) {\n super(message);\n this.name = 'McpInternalError';\n this.cause = cause;\n }\n}\n","/**\n * Tool / resource / prompt naming helpers.\n *\n * Mandatory product prefix avoids collisions when Claude Desktop runs\n * multiple MCP servers concurrently (typical setup is ~6).\n *\n * Tool names are capped at 63 characters — Claude Desktop pre-1.x\n * truncated at 64 in some versions.\n */\n\nimport { McpInternalError } from './errors.js';\n\nconst MAX_TOOL_NAME_LENGTH = 63;\n\nfunction assertSafeName(name: string, kind: 'tool' | 'resource' | 'prompt'): string {\n if (kind === 'tool' && name.length > MAX_TOOL_NAME_LENGTH) {\n throw new McpInternalError(\n `Tool name '${name}' exceeds ${MAX_TOOL_NAME_LENGTH} characters (some MCP clients truncate at 64).`,\n );\n }\n return name;\n}\n\n/**\n * Build a tool name. Format: `<productName>_<...parts>` (snake_case).\n * Example: mcpToolName('vibecontrols', 'vibes', 'list') -> 'vibecontrols_vibes_list'\n */\nexport function mcpToolName(productName: string, ...parts: string[]): string {\n if (!productName) {\n throw new McpInternalError('mcpToolName: productName is required');\n }\n const name = [productName, ...parts].filter(Boolean).join('_');\n return assertSafeName(name, 'tool');\n}\n\n/**\n * Build a resource URI. Format: `<productName>://<...parts>`.\n * Example: mcpResourceUri('vibecontrols', 'schema') -> 'vibecontrols://schema'\n */\nexport function mcpResourceUri(productName: string, ...parts: string[]): string {\n if (!productName) {\n throw new McpInternalError('mcpResourceUri: productName is required');\n }\n return `${productName}://${parts.filter(Boolean).join('/')}`;\n}\n\n/**\n * Build a prompt name. Format: `<productName>-<...parts>` (kebab-case).\n * Example: mcpPromptName('vibecontrols', 'setup') -> 'vibecontrols-setup'\n */\nexport function mcpPromptName(productName: string, ...parts: string[]): string {\n if (!productName) {\n throw new McpInternalError('mcpPromptName: productName is required');\n }\n return [productName, ...parts].filter(Boolean).join('-');\n}\n\nexport const TOOL_NAME_LIMIT = MAX_TOOL_NAME_LENGTH;\n\n/**\n * Name-based hint heuristics for MCP `annotations` (readOnlyHint /\n * destructiveHint). Used by tool-governance.ts to auto-fill annotations for\n * the fleet of product modules that call `server.registerTool` directly\n * (bypassing the `registerTool()` core helper) and so never set them\n * explicitly today (BOFF-3903). Deliberately conservative — matched against\n * whole `_`-delimited segments so e.g. `timeentries_delete` and\n * `pomodoro_delete_goal` match, but a hypothetical `undeletable_check`\n * would not.\n *\n * A module can always override the inference by passing an explicit\n * `annotations` object to `registerTool()` / `server.registerTool()`.\n */\nconst DESTRUCTIVE_NAME_SEGMENT = /(?:^|_)delete(?:_|$)/i;\nconst READ_ONLY_NAME_SEGMENT = /(?:^|_)(?:list|get|search|check|read|count|stats|by_date)(?:_|$)/i;\n\n/** True when a tool name looks destructive (irreversibly deletes data) by naming convention. */\nexport function inferDestructiveHint(toolName: string): boolean {\n return DESTRUCTIVE_NAME_SEGMENT.test(toolName);\n}\n\n/**\n * True when a tool name looks read-only by naming convention. Never true for\n * a name that also looks destructive (a tool can't be both).\n */\nexport function inferReadOnlyHint(toolName: string): boolean {\n return !inferDestructiveHint(toolName) && READ_ONLY_NAME_SEGMENT.test(toolName);\n}\n","/**\n * MCP tool result helpers + central handler.\n *\n * Modules NEVER call server.registerTool directly — they use registerTool()\n * from this module so the central try/catch wraps the handler and:\n * - maps thrown McpUserError / McpAuthError / McpInternalError to\n * MCP-protocol-compliant `{ isError: true, content: [...] }` shapes\n * - threads `_meta.progressToken` into ctx.progress for long ops\n * - emits a structured log line on every error\n * - never leaks `cause` from McpInternalError to the client\n *\n * This is the analog of cli-sdk's createProgram() central error handler.\n */\n\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport type { ZodRawShape } from 'zod';\nimport type { McpContext } from './context.js';\nimport { McpAuthError, McpInternalError, McpUserError } from './errors.js';\nimport type { ToolAnnotations } from './tool-governance.js';\n\nexport interface ToolTextContent {\n type: 'text';\n text: string;\n [k: string]: unknown;\n}\n\nexport interface ToolResult {\n content: ToolTextContent[];\n isError?: boolean;\n structuredContent?: Record<string, unknown>;\n [k: string]: unknown;\n}\n\nexport interface ToolMeta {\n progressToken?: string | number;\n}\n\n/**\n * Build a successful tool result with JSON content (pretty-printed).\n */\nexport function jsonResult(data: unknown, structured?: Record<string, unknown>): ToolResult {\n const result: ToolResult = {\n content: [{ type: 'text', text: JSON.stringify(data, null, 2) }],\n };\n if (structured !== undefined) {\n result.structuredContent = structured;\n }\n return result;\n}\n\n/**\n * Build a successful tool result with plain text content.\n */\nexport function textResult(text: string): ToolResult {\n return { content: [{ type: 'text', text }] };\n}\n\n/**\n * Build an error tool result. Honors MCP's `{ isError: true, content }` shape.\n * Optional hint is appended on a new line so the LLM can react.\n */\nexport function errorResult(message: string, hint?: string): ToolResult {\n const text = hint ? `${message}\\n\\nHint: ${hint}` : message;\n return { content: [{ type: 'text', text }], isError: true };\n}\n\nexport interface ToolMetadata {\n title: string;\n description: string;\n inputSchema?: ZodRawShape;\n /**\n * Explicit MCP annotations (readOnlyHint / destructiveHint / ...). Optional\n * — when omitted, `wrapServerWithToolGovernance` (applied centrally in\n * `createMcpServer`) infers them from the tool name. Set this to override\n * the inference for a tool whose name doesn't match the naming convention.\n */\n annotations?: ToolAnnotations;\n}\n\nexport type ToolHandler<TArgs = Record<string, unknown>> = (\n args: TArgs,\n ctx: McpContext,\n meta: ToolMeta,\n) => Promise<unknown>;\n\n/**\n * Register a tool with the central error wrapper.\n *\n * The handler returns a plain value or void. The wrapper:\n * - wraps non-undefined returns in jsonResult()\n * - if the value already looks like a ToolResult (has `content`), passes through\n * - catches McpAuthError / McpUserError / McpInternalError / generic Error\n * - logs every error via ctx.logger.error\n */\nexport function registerTool<TArgs extends Record<string, unknown>>(\n server: McpServer,\n ctx: McpContext,\n name: string,\n metadata: ToolMetadata,\n handler: ToolHandler<TArgs>,\n): void {\n const sdkConfig = {\n title: metadata.title,\n description: metadata.description,\n ...(metadata.inputSchema ? { inputSchema: metadata.inputSchema } : {}),\n ...(metadata.annotations ? { annotations: metadata.annotations } : {}),\n };\n\n // The MCP SDK's registerTool signature is `(name, config, handler)`. The\n // handler arity depends on whether inputSchema is present (1-arg without,\n // 2-arg with). We accept a unified handler shape and dispatch at runtime.\n // The SDK's typing is strict and conditional on the inputSchema generic;\n // bypass with a cast since runtime acceptance is unconditional.\n const wrapped = async (...callbackArgs: unknown[]): Promise<ToolResult> => {\n const hasArgs = callbackArgs.length === 2;\n const args = (hasArgs ? callbackArgs[0] : {}) as TArgs;\n const extra = (hasArgs ? callbackArgs[1] : callbackArgs[0]) as\n | { _meta?: { progressToken?: string | number } }\n | undefined;\n\n const progressToken = extra?._meta?.progressToken;\n const meta: ToolMeta = progressToken !== undefined ? { progressToken } : {};\n\n try {\n const result = await handler(args, ctx, meta);\n if (isToolResult(result)) return result;\n if (result === undefined) return textResult('OK');\n return jsonResult(result);\n } catch (error) {\n return mapErrorToResult(error, ctx, name);\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (server as any).registerTool(name, sdkConfig, wrapped);\n}\n\nfunction isToolResult(value: unknown): value is ToolResult {\n return (\n !!value &&\n typeof value === 'object' &&\n 'content' in value &&\n Array.isArray((value as ToolResult).content)\n );\n}\n\nfunction mapErrorToResult(error: unknown, ctx: McpContext, toolName: string): ToolResult {\n if (error instanceof McpAuthError) {\n ctx.logger.warn(`${toolName}: auth required`, { message: error.message });\n return errorResult(error.message, error.hint);\n }\n if (error instanceof McpUserError) {\n ctx.logger.info(`${toolName}: user error`, { message: error.message });\n return errorResult(error.message, error.hint);\n }\n if (error instanceof McpInternalError) {\n ctx.logger.error(`${toolName}: internal error`, {\n message: error.message,\n cause: stringifyCause(error.cause),\n });\n return errorResult(`Internal error in ${toolName}.`);\n }\n const message = error instanceof Error ? error.message : String(error);\n ctx.logger.error(`${toolName}: unhandled error`, { message });\n return errorResult(`${toolName}: ${message}`);\n}\n\nfunction stringifyCause(cause: unknown): string | undefined {\n if (cause === undefined || cause === null) return undefined;\n if (cause instanceof Error) return cause.message;\n try {\n return JSON.stringify(cause);\n } catch {\n return String(cause);\n }\n}\n","/**\n * Centralized GraphQL operations for the AdapterCloud MCP module.\n *\n * AdapterCloud (InfraVerse) is the digital-infrastructure continuum: it stitches\n * fragmented infrastructure (multi-cloud, on-prem, edge, SaaS) into one\n * continuous, governable fabric — adapters/connections/resources/topology\n * (fabric), policies/violations/drift (governance), and sync runs/cost records\n * (operations/FinOps). Backend subgraph:\n * ~/products/wspace/adaptercloud/wspace-adaptercloud-svc/ (Hive service name\n * `adaptercloud`).\n *\n * Every product-owned root field and type carries the `ada`/`Ada` prefix —\n * operations are called by their REAL backend names (adaListAdapters,\n * adaCreateConnection, adaHealth, …). Workspace scoping is carried by the\n * gateway headers issued by the auth module; AdapterCloud inputs do NOT carry a\n * workspaceId.\n *\n * The schema uses a cursor/limit/offset `PaginationInput` and page envelopes of\n * shape `{ items, pageInfo { cursor, hasMore } }`; some list queries (cost,\n * drift, topology) return plain arrays instead. Uses template-string\n * interpolation (not gql tagged fragments) to match the canonical modules.\n */\n\n// ---------------------------------------------------------------------------\n// Field fragments\n// ---------------------------------------------------------------------------\n\nexport const PAGE_INFO_FIELDS = `\n pageInfo { cursor hasMore }\n`;\n\nexport const ADAPTER_FIELDS = `\n id name slug description kind status vendor version capabilities configSchema\n tags workspaceId createdAt updatedAt\n`;\n\nexport const CONNECTION_FIELDS = `\n id name adapterId authMethod status environment region config secretRef\n targetRef resourceCount lastSyncedAt lastError tags workspaceId\n createdAt updatedAt\n`;\n\nexport const RESOURCE_FIELDS = `\n id connectionId externalId name resourceType region state monthlyCost\n attributes providerTags tags lastSeenAt workspaceId createdAt updatedAt\n`;\n\nexport const TOPOLOGY_EDGE_FIELDS = `\n id fromResourceId toResourceId kind weight bidirectional attributes\n workspaceId createdAt updatedAt\n`;\n\nexport const POLICY_FIELDS = `\n id name description kind enforcement severity expression appliesTo isActive\n tags workspaceId createdAt updatedAt\n`;\n\nexport const VIOLATION_FIELDS = `\n id policyId resourceId severity status message evidence detectedAt\n resolvedAt resolvedById waiverReason workspaceId createdAt updatedAt\n`;\n\nexport const DRIFT_FIELDS = `\n id resourceId attributePath expectedValue observedValue severity status\n detectedAt remediatedAt workspaceId createdAt updatedAt\n`;\n\nexport const SYNC_RUN_FIELDS = `\n id connectionId kind status startedAt finishedAt discoveredCount\n reconciledCount driftCount violationCount summary error workspaceId\n createdAt updatedAt\n`;\n\nexport const COST_RECORD_FIELDS = `\n id connectionId resourceId service amount currency periodStart periodEnd\n breakdown workspaceId createdAt updatedAt\n`;\n\n// ---------------------------------------------------------------------------\n// Adapters\n// ---------------------------------------------------------------------------\n\nexport const GET_ADAPTER = `\n query AdaGetAdapter($id: ID!) {\n adaAdapter(id: $id) {\n ${ADAPTER_FIELDS}\n connections { id name status environment resourceCount }\n }\n }\n`;\n\nexport const LIST_ADAPTERS = `\n query AdaListAdapters(\n $kind: AdaAdapterKind\n $status: AdaAdapterStatus\n $pagination: PaginationInput\n ) {\n adaListAdapters(kind: $kind, status: $status, pagination: $pagination) {\n items { ${ADAPTER_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const CREATE_ADAPTER = `\n mutation AdaCreateAdapter($input: AdaCreateAdapterInput!) {\n adaCreateAdapter(input: $input) {\n ${ADAPTER_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_ADAPTER = `\n mutation AdaUpdateAdapter($id: ID!, $input: AdaUpdateAdapterInput!) {\n adaUpdateAdapter(id: $id, input: $input) {\n ${ADAPTER_FIELDS}\n }\n }\n`;\n\nexport const ARCHIVE_ADAPTER = `\n mutation AdaArchiveAdapter($id: ID!) {\n adaArchiveAdapter(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Connections\n// ---------------------------------------------------------------------------\n\nexport const GET_CONNECTION = `\n query AdaGetConnection($id: ID!) {\n adaConnection(id: $id) {\n ${CONNECTION_FIELDS}\n adapter { id name slug kind status }\n resources { id name resourceType state monthlyCost }\n }\n }\n`;\n\nexport const LIST_CONNECTIONS = `\n query AdaListConnections(\n $adapterId: ID\n $status: AdaConnectionStatus\n $pagination: PaginationInput\n ) {\n adaListConnections(adapterId: $adapterId, status: $status, pagination: $pagination) {\n items { ${CONNECTION_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const CREATE_CONNECTION = `\n mutation AdaCreateConnection($input: AdaCreateConnectionInput!) {\n adaCreateConnection(input: $input) {\n ${CONNECTION_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_CONNECTION = `\n mutation AdaUpdateConnection($id: ID!, $input: AdaUpdateConnectionInput!) {\n adaUpdateConnection(id: $id, input: $input) {\n ${CONNECTION_FIELDS}\n }\n }\n`;\n\nexport const DISABLE_CONNECTION = `\n mutation AdaDisableConnection($id: ID!) {\n adaDisableConnection(id: $id) {\n ${CONNECTION_FIELDS}\n }\n }\n`;\n\nexport const SET_CONNECTION_STATUS = `\n mutation AdaSetConnectionStatus($id: ID!, $status: AdaConnectionStatus!) {\n adaSetConnectionStatus(id: $id, status: $status) {\n ${CONNECTION_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Resources\n// ---------------------------------------------------------------------------\n\nexport const GET_RESOURCE = `\n query AdaGetResource($id: ID!) {\n adaResource(id: $id) {\n ${RESOURCE_FIELDS}\n connection { id name status }\n dependsOn { id name resourceType state }\n }\n }\n`;\n\nexport const LIST_RESOURCES = `\n query AdaListResources(\n $connectionId: ID\n $resourceType: String\n $state: AdaResourceState\n $pagination: PaginationInput\n ) {\n adaListResources(\n connectionId: $connectionId\n resourceType: $resourceType\n state: $state\n pagination: $pagination\n ) {\n items { ${RESOURCE_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const REGISTER_RESOURCE = `\n mutation AdaRegisterResource($input: AdaRegisterResourceInput!) {\n adaRegisterResource(input: $input) {\n ${RESOURCE_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Topology\n// ---------------------------------------------------------------------------\n\nexport const LIST_TOPOLOGY_EDGES = `\n query AdaListTopologyEdges($kind: AdaEdgeKind, $resourceId: ID) {\n adaListTopologyEdges(kind: $kind, resourceId: $resourceId) {\n ${TOPOLOGY_EDGE_FIELDS}\n }\n }\n`;\n\nexport const CREATE_TOPOLOGY_EDGE = `\n mutation AdaCreateTopologyEdge($input: AdaCreateTopologyEdgeInput!) {\n adaCreateTopologyEdge(input: $input) {\n ${TOPOLOGY_EDGE_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Policies\n// ---------------------------------------------------------------------------\n\nexport const GET_POLICY = `\n query AdaGetPolicy($id: ID!) {\n adaPolicy(id: $id) {\n ${POLICY_FIELDS}\n violations { id resourceId severity status message }\n }\n }\n`;\n\nexport const LIST_POLICIES = `\n query AdaListPolicies(\n $kind: AdaPolicyKind\n $isActive: Boolean\n $pagination: PaginationInput\n ) {\n adaListPolicies(kind: $kind, isActive: $isActive, pagination: $pagination) {\n items { ${POLICY_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const CREATE_POLICY = `\n mutation AdaCreatePolicy($input: AdaCreatePolicyInput!) {\n adaCreatePolicy(input: $input) {\n ${POLICY_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_POLICY = `\n mutation AdaUpdatePolicy($id: ID!, $input: AdaUpdatePolicyInput!) {\n adaUpdatePolicy(id: $id, input: $input) {\n ${POLICY_FIELDS}\n }\n }\n`;\n\nexport const ARCHIVE_POLICY = `\n mutation AdaArchivePolicy($id: ID!) {\n adaArchivePolicy(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Violations\n// ---------------------------------------------------------------------------\n\nexport const LIST_VIOLATIONS = `\n query AdaListViolations(\n $policyId: ID\n $resourceId: ID\n $status: AdaViolationStatus\n $pagination: PaginationInput\n ) {\n adaListViolations(\n policyId: $policyId\n resourceId: $resourceId\n status: $status\n pagination: $pagination\n ) {\n items { ${VIOLATION_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const RECORD_VIOLATION = `\n mutation AdaRecordViolation($input: AdaRecordViolationInput!) {\n adaRecordViolation(input: $input) {\n ${VIOLATION_FIELDS}\n }\n }\n`;\n\nexport const RESOLVE_VIOLATION = `\n mutation AdaResolveViolation(\n $id: ID!\n $status: AdaViolationStatus!\n $waiverReason: String\n ) {\n adaResolveViolation(id: $id, status: $status, waiverReason: $waiverReason) {\n ${VIOLATION_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Drift\n// ---------------------------------------------------------------------------\n\nexport const LIST_DRIFT_RECORDS = `\n query AdaListDriftRecords($resourceId: ID, $status: AdaDriftStatus) {\n adaListDriftRecords(resourceId: $resourceId, status: $status) {\n ${DRIFT_FIELDS}\n }\n }\n`;\n\nexport const RECORD_DRIFT = `\n mutation AdaRecordDrift($input: AdaRecordDriftInput!) {\n adaRecordDrift(input: $input) {\n ${DRIFT_FIELDS}\n }\n }\n`;\n\nexport const REMEDIATE_DRIFT = `\n mutation AdaRemediateDrift($id: ID!) {\n adaRemediateDrift(id: $id) {\n ${DRIFT_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Sync runs\n// ---------------------------------------------------------------------------\n\nexport const GET_SYNC_RUN = `\n query AdaGetSyncRun($id: ID!) {\n adaSyncRun(id: $id) {\n ${SYNC_RUN_FIELDS}\n }\n }\n`;\n\nexport const LIST_SYNC_RUNS = `\n query AdaListSyncRuns(\n $connectionId: ID\n $status: AdaSyncStatus\n $pagination: PaginationInput\n ) {\n adaListSyncRuns(connectionId: $connectionId, status: $status, pagination: $pagination) {\n items { ${SYNC_RUN_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const START_SYNC_RUN = `\n mutation AdaStartSyncRun($input: AdaStartSyncRunInput!) {\n adaStartSyncRun(input: $input) {\n ${SYNC_RUN_FIELDS}\n }\n }\n`;\n\nexport const COMPLETE_SYNC_RUN = `\n mutation AdaCompleteSyncRun($id: ID!, $input: AdaCompleteSyncRunInput) {\n adaCompleteSyncRun(id: $id, input: $input) {\n ${SYNC_RUN_FIELDS}\n }\n }\n`;\n\nexport const FAIL_SYNC_RUN = `\n mutation AdaFailSyncRun($id: ID!, $error: String!) {\n adaFailSyncRun(id: $id, error: $error) {\n ${SYNC_RUN_FIELDS}\n }\n }\n`;\n\nexport const CANCEL_SYNC_RUN = `\n mutation AdaCancelSyncRun($id: ID!) {\n adaCancelSyncRun(id: $id) {\n ${SYNC_RUN_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Cost / FinOps\n// ---------------------------------------------------------------------------\n\nexport const LIST_COST_RECORDS = `\n query AdaListCostRecords($connectionId: ID, $resourceId: ID, $service: String) {\n adaListCostRecords(connectionId: $connectionId, resourceId: $resourceId, service: $service) {\n ${COST_RECORD_FIELDS}\n }\n }\n`;\n\nexport const COST_SUMMARY = `\n query AdaCostSummary($connectionId: ID) {\n adaCostSummary(connectionId: $connectionId) {\n currency\n total\n lines { service total }\n }\n }\n`;\n\nexport const INGEST_COST = `\n mutation AdaIngestCost($input: AdaIngestCostInput!) {\n adaIngestCost(input: $input) {\n ${COST_RECORD_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Health\n// ---------------------------------------------------------------------------\n\nexport const HEALTH = `\n query AdaHealth {\n adaHealth\n }\n`;\n","/**\n * Shared zod schemas for the AdapterCloud tool surface.\n *\n * Every backend enum is mirrored as a tight zod enum so Claude Desktop grounds\n * tool calls against the exact allowed values. JSON scalar inputs (config,\n * configSchema, attributes, providerTags, expression, evidence, summary,\n * breakdown, expectedValue, observedValue) are modelled as permissive object\n * records — the backend accepts arbitrary JSON, but a record shape gives the\n * LLM a typed hint. The cursor/limit/offset `PaginationInput` is shared by the\n * page-returning list tools.\n */\n\nimport { z } from 'zod';\n\nexport const AdapterKindEnum = z\n .enum([\n 'CUSTOM',\n 'DATA_SYSTEM',\n 'EDGE',\n 'KUBERNETES',\n 'NETWORK',\n 'ON_PREM',\n 'PRIVATE_CLOUD',\n 'PUBLIC_CLOUD',\n 'SAAS',\n ])\n .describe('Class of infrastructure an adapter integrates');\n\nexport const AdapterStatusEnum = z\n .enum(['ARCHIVED', 'DEPRECATED', 'DRAFT', 'PUBLISHED'])\n .describe('Lifecycle status of an adapter');\n\nexport const AuthMethodEnum = z\n .enum(['API_KEY', 'CERTIFICATE', 'IAM_ROLE', 'NONE', 'OAUTH2', 'SERVICE_ACCOUNT'])\n .describe('Authentication method a connection uses against the target system');\n\nexport const ConnectionStatusEnum = z\n .enum(['CONNECTED', 'DEGRADED', 'DISABLED', 'ERROR', 'PENDING'])\n .describe('Health/lifecycle status of a connection');\n\nexport const ResourceStateEnum = z\n .enum(['DELETED', 'DISCOVERED', 'DRIFTED', 'ORPHANED', 'RECONCILED'])\n .describe('Reconciliation state of a discovered resource');\n\nexport const EdgeKindEnum = z\n .enum(['CONNECTS_TO', 'CONTAINS', 'DEPENDS_ON', 'REPLICATES_TO', 'ROUTES_TO'])\n .describe('Relationship kind of a topology edge between two resources');\n\nexport const PolicyKindEnum = z\n .enum(['COMPLIANCE', 'COST', 'GUARDRAIL', 'NAMING', 'SECURITY', 'TAGGING'])\n .describe('Category of a governance policy');\n\nexport const PolicyEnforcementEnum = z\n .enum(['ADVISORY', 'BLOCK', 'WARN'])\n .describe('Enforcement mode of a governance policy');\n\nexport const SeverityEnum = z\n .enum(['CRITICAL', 'HIGH', 'INFO', 'LOW', 'MEDIUM'])\n .describe('Severity classification (policies, violations, drift)');\n\nexport const ViolationStatusEnum = z\n .enum(['ACKNOWLEDGED', 'OPEN', 'RESOLVED', 'WAIVED'])\n .describe('Lifecycle status of a policy violation');\n\nexport const DriftStatusEnum = z\n .enum(['ACKNOWLEDGED', 'DETECTED', 'IGNORED', 'REMEDIATED'])\n .describe('Lifecycle status of a drift record');\n\nexport const SyncKindEnum = z\n .enum(['COST_INGEST', 'DISCOVERY', 'FULL', 'RECONCILE'])\n .describe('Kind of sync run against a connection');\n\nexport const SyncStatusEnum = z\n .enum(['CANCELLED', 'FAILED', 'QUEUED', 'RUNNING', 'SUCCEEDED'])\n .describe('Lifecycle status of a sync run');\n\n/** Permissive JSON-object schema for `JSON` scalar inputs. */\nexport const JsonObject = z.record(z.string(), z.unknown());\n\n/** Shared cursor/limit/offset pagination input for page-returning list tools. */\nexport const PaginationFields = {\n limit: z.number().int().optional().describe('Page size (PaginationInput.limit, default 50)'),\n offset: z\n .number()\n .int()\n .optional()\n .describe('Pagination offset (PaginationInput.offset, default 0)'),\n cursor: z\n .string()\n .optional()\n .describe('Opaque cursor from a previous page (PaginationInput.cursor)'),\n} as const;\n\n/** Build the `pagination` variable from the shared pagination fields. */\nexport function buildPagination(args: {\n limit?: number;\n offset?: number;\n cursor?: string;\n}): Record<string, unknown> | undefined {\n const pagination: Record<string, unknown> = {};\n if (args.limit !== undefined) pagination.limit = args.limit;\n if (args.offset !== undefined) pagination.offset = args.offset;\n if (args.cursor !== undefined) pagination.cursor = args.cursor;\n return Object.keys(pagination).length > 0 ? pagination : undefined;\n}\n","/**\n * AdapterCloud adapter tools — the adapter catalog (integration definitions).\n *\n * Surface (5): adapters_{get,list,create,update,archive}.\n * Backend root fields: adaAdapter / adaListAdapters / adaCreateAdapter /\n * adaUpdateAdapter / adaArchiveAdapter — called by their REAL names in\n * operations.ts. adaListAdapters returns the page envelope { items, pageInfo }.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport {\n AdapterKindEnum,\n AdapterStatusEnum,\n JsonObject,\n PaginationFields,\n buildPagination,\n} from './shared.js';\n\nexport function registerAdapterTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'adapters_get')),\n {\n title: 'Get Adapter',\n description:\n 'Fetch a single AdapterCloud adapter (integration definition) by ID, including its connections.',\n inputSchema: { id: z.string().describe('Adapter ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaAdapter: Record<string, unknown> | null;\n }>(ops.GET_ADAPTER, { id });\n if (!data.adaAdapter) return errorResult(`Adapter ${id} not found`);\n return jsonResult(data.adaAdapter);\n } catch (error) {\n ctx.logger.error('adaptercloud adapters_get failed', { error: String(error) });\n return errorResult(\n `Failed to get adapter: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'adapters_list')),\n {\n title: 'List Adapters',\n description:\n 'List adapters in the bound workspace with optional kind/status filters and pagination. Returns a page envelope { items, pageInfo }.',\n inputSchema: {\n kind: AdapterKindEnum.optional().describe('Filter by infrastructure kind'),\n status: AdapterStatusEnum.optional().describe('Filter by lifecycle status'),\n ...PaginationFields,\n },\n },\n async ({ kind, status, limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaListAdapters: Record<string, unknown>;\n }>(ops.LIST_ADAPTERS, {\n kind,\n status,\n pagination: buildPagination({ limit, offset, cursor }),\n });\n return jsonResult(data.adaListAdapters);\n } catch (error) {\n ctx.logger.error('adaptercloud adapters_list failed', { error: String(error) });\n return errorResult(\n `Failed to list adapters: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'adapters_create')),\n {\n title: 'Create Adapter',\n description:\n 'Register a new adapter (integration definition). `slug` must be unique within the workspace. `configSchema` is an optional JSON Schema describing connection config.',\n inputSchema: {\n name: z.string().min(1).describe('Adapter display name'),\n slug: z.string().min(1).describe('URL slug, unique within the workspace'),\n kind: AdapterKindEnum.optional().describe('Infrastructure kind (default CUSTOM)'),\n status: AdapterStatusEnum.optional().describe('Initial lifecycle status (default DRAFT)'),\n vendor: z.string().optional().describe('Vendor / provider name'),\n version: z.string().optional().describe('Adapter version string'),\n description: z.string().optional().describe('Adapter description'),\n capabilities: z\n .array(z.string())\n .optional()\n .describe('Capability tags (e.g. \"discovery\", \"cost\", \"drift\")'),\n configSchema: JsonObject.optional().describe('JSON Schema for connection config'),\n tags: z.array(z.string()).optional().describe('Free-form tags'),\n },\n },\n async ({\n name,\n slug,\n kind,\n status,\n vendor,\n version,\n description,\n capabilities,\n configSchema,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = { name, slug };\n if (kind !== undefined) input.kind = kind;\n if (status !== undefined) input.status = status;\n if (vendor !== undefined) input.vendor = vendor;\n if (version !== undefined) input.version = version;\n if (description !== undefined) input.description = description;\n if (capabilities !== undefined) input.capabilities = capabilities;\n if (configSchema !== undefined) input.configSchema = configSchema;\n if (tags !== undefined) input.tags = tags;\n\n const data = await ctx.gql.workspace.request<{\n adaCreateAdapter: Record<string, unknown>;\n }>(ops.CREATE_ADAPTER, { input });\n return jsonResult(data.adaCreateAdapter);\n } catch (error) {\n ctx.logger.error('adaptercloud adapters_create failed', { error: String(error) });\n return errorResult(\n `Failed to create adapter: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'adapters_update')),\n {\n title: 'Update Adapter',\n description:\n 'Update an adapter. At least one mutable field must be provided. Use `status` to publish/deprecate an adapter.',\n inputSchema: {\n id: z.string().describe('Adapter ID'),\n name: z.string().optional().describe('Updated display name'),\n kind: AdapterKindEnum.optional().describe('Updated infrastructure kind'),\n status: AdapterStatusEnum.optional().describe('Updated lifecycle status'),\n vendor: z.string().optional().describe('Updated vendor name'),\n version: z.string().optional().describe('Updated version string'),\n description: z.string().optional().describe('Updated description'),\n capabilities: z.array(z.string()).optional().describe('Updated capability tags'),\n configSchema: JsonObject.optional().describe('Updated connection config JSON Schema'),\n tags: z.array(z.string()).optional().describe('Updated tags'),\n },\n },\n async ({\n id,\n name,\n kind,\n status,\n vendor,\n version,\n description,\n capabilities,\n configSchema,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = {};\n if (name !== undefined) input.name = name;\n if (kind !== undefined) input.kind = kind;\n if (status !== undefined) input.status = status;\n if (vendor !== undefined) input.vendor = vendor;\n if (version !== undefined) input.version = version;\n if (description !== undefined) input.description = description;\n if (capabilities !== undefined) input.capabilities = capabilities;\n if (configSchema !== undefined) input.configSchema = configSchema;\n if (tags !== undefined) input.tags = tags;\n\n if (Object.keys(input).length === 0) {\n return errorResult(\n 'No updates specified — provide at least one of name/kind/status/vendor/version/description/capabilities/configSchema/tags',\n );\n }\n\n const data = await ctx.gql.workspace.request<{\n adaUpdateAdapter: Record<string, unknown>;\n }>(ops.UPDATE_ADAPTER, { id, input });\n return jsonResult(data.adaUpdateAdapter);\n } catch (error) {\n ctx.logger.error('adaptercloud adapters_update failed', { error: String(error) });\n return errorResult(\n `Failed to update adapter: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'adapters_archive')),\n {\n title: 'Archive Adapter',\n description: 'Archive (soft-delete) an adapter. Returns true on success.',\n inputSchema: { id: z.string().describe('Adapter ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ adaArchiveAdapter: boolean }>(\n ops.ARCHIVE_ADAPTER,\n { id },\n );\n return jsonResult({ archived: data.adaArchiveAdapter, id });\n } catch (error) {\n ctx.logger.error('adaptercloud adapters_archive failed', { error: String(error) });\n return errorResult(\n `Failed to archive adapter: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * AdapterCloud connection tools — live connections to target systems.\n *\n * Surface (6): connections_{get,list,create,update,disable,set_status}.\n * Backend root fields: adaConnection / adaListConnections / adaCreateConnection\n * / adaUpdateConnection / adaDisableConnection / adaSetConnectionStatus.\n * adaListConnections returns the page envelope { items, pageInfo }.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport {\n AuthMethodEnum,\n ConnectionStatusEnum,\n JsonObject,\n PaginationFields,\n buildPagination,\n} from './shared.js';\n\nexport function registerConnectionTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'connections_get')),\n {\n title: 'Get Connection',\n description:\n 'Fetch a single connection by ID, including its adapter and discovered resources.',\n inputSchema: { id: z.string().describe('Connection ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaConnection: Record<string, unknown> | null;\n }>(ops.GET_CONNECTION, { id });\n if (!data.adaConnection) return errorResult(`Connection ${id} not found`);\n return jsonResult(data.adaConnection);\n } catch (error) {\n ctx.logger.error('adaptercloud connections_get failed', { error: String(error) });\n return errorResult(\n `Failed to get connection: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'connections_list')),\n {\n title: 'List Connections',\n description:\n 'List connections in the bound workspace with optional adapter/status filters and pagination. Returns a page envelope { items, pageInfo }.',\n inputSchema: {\n adapterId: z.string().optional().describe('Filter by adapter ID'),\n status: ConnectionStatusEnum.optional().describe('Filter by connection status'),\n ...PaginationFields,\n },\n },\n async ({ adapterId, status, limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaListConnections: Record<string, unknown>;\n }>(ops.LIST_CONNECTIONS, {\n adapterId,\n status,\n pagination: buildPagination({ limit, offset, cursor }),\n });\n return jsonResult(data.adaListConnections);\n } catch (error) {\n ctx.logger.error('adaptercloud connections_list failed', { error: String(error) });\n return errorResult(\n `Failed to list connections: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'connections_create')),\n {\n title: 'Create Connection',\n description:\n 'Create a connection to a target system for an adapter. `config` holds non-secret connection settings; secrets are referenced by `secretRef`.',\n inputSchema: {\n adapterId: z.string().min(1).describe('Adapter this connection uses'),\n name: z.string().min(1).describe('Connection display name'),\n authMethod: AuthMethodEnum.optional().describe('Authentication method (default NONE)'),\n environment: z.string().optional().describe('Environment, e.g. \"prod\", \"staging\"'),\n region: z.string().optional().describe('Target region, e.g. \"us-east-1\"'),\n config: JsonObject.optional().describe('Non-secret connection config JSON'),\n secretRef: z.string().optional().describe('Reference to a stored secret (not the secret)'),\n targetRef: z.string().optional().describe('Opaque reference to the target system'),\n tags: z.array(z.string()).optional().describe('Free-form tags'),\n },\n },\n async ({\n adapterId,\n name,\n authMethod,\n environment,\n region,\n config,\n secretRef,\n targetRef,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = { adapterId, name };\n if (authMethod !== undefined) input.authMethod = authMethod;\n if (environment !== undefined) input.environment = environment;\n if (region !== undefined) input.region = region;\n if (config !== undefined) input.config = config;\n if (secretRef !== undefined) input.secretRef = secretRef;\n if (targetRef !== undefined) input.targetRef = targetRef;\n if (tags !== undefined) input.tags = tags;\n\n const data = await ctx.gql.workspace.request<{\n adaCreateConnection: Record<string, unknown>;\n }>(ops.CREATE_CONNECTION, { input });\n return jsonResult(data.adaCreateConnection);\n } catch (error) {\n ctx.logger.error('adaptercloud connections_create failed', { error: String(error) });\n return errorResult(\n `Failed to create connection: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'connections_update')),\n {\n title: 'Update Connection',\n description:\n 'Update a connection. At least one mutable field must be provided. To change health/lifecycle status use connections_set_status instead.',\n inputSchema: {\n id: z.string().describe('Connection ID'),\n name: z.string().optional().describe('Updated display name'),\n authMethod: AuthMethodEnum.optional().describe('Updated authentication method'),\n environment: z.string().optional().describe('Updated environment'),\n region: z.string().optional().describe('Updated region'),\n config: JsonObject.optional().describe('Updated non-secret connection config JSON'),\n secretRef: z.string().optional().describe('Updated secret reference'),\n targetRef: z.string().optional().describe('Updated target reference'),\n tags: z.array(z.string()).optional().describe('Updated tags'),\n },\n },\n async ({ id, name, authMethod, environment, region, config, secretRef, targetRef, tags }) => {\n try {\n const input: Record<string, unknown> = {};\n if (name !== undefined) input.name = name;\n if (authMethod !== undefined) input.authMethod = authMethod;\n if (environment !== undefined) input.environment = environment;\n if (region !== undefined) input.region = region;\n if (config !== undefined) input.config = config;\n if (secretRef !== undefined) input.secretRef = secretRef;\n if (targetRef !== undefined) input.targetRef = targetRef;\n if (tags !== undefined) input.tags = tags;\n\n if (Object.keys(input).length === 0) {\n return errorResult(\n 'No updates specified — provide at least one of name/authMethod/environment/region/config/secretRef/targetRef/tags',\n );\n }\n\n const data = await ctx.gql.workspace.request<{\n adaUpdateConnection: Record<string, unknown>;\n }>(ops.UPDATE_CONNECTION, { id, input });\n return jsonResult(data.adaUpdateConnection);\n } catch (error) {\n ctx.logger.error('adaptercloud connections_update failed', { error: String(error) });\n return errorResult(\n `Failed to update connection: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'connections_disable')),\n {\n title: 'Disable Connection',\n description: 'Disable a connection (stops future syncs). Returns the updated connection.',\n inputSchema: { id: z.string().describe('Connection ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaDisableConnection: Record<string, unknown>;\n }>(ops.DISABLE_CONNECTION, { id });\n return jsonResult(data.adaDisableConnection);\n } catch (error) {\n ctx.logger.error('adaptercloud connections_disable failed', { error: String(error) });\n return errorResult(\n `Failed to disable connection: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'connections_set_status')),\n {\n title: 'Set Connection Status',\n description:\n \"Transition a connection's health/lifecycle status (validated against the connection lifecycle): PENDING, CONNECTED, DEGRADED, ERROR, DISABLED.\",\n inputSchema: {\n id: z.string().describe('Connection ID'),\n status: ConnectionStatusEnum.describe('New connection status'),\n },\n },\n async ({ id, status }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaSetConnectionStatus: Record<string, unknown>;\n }>(ops.SET_CONNECTION_STATUS, { id, status });\n return jsonResult(data.adaSetConnectionStatus);\n } catch (error) {\n ctx.logger.error('adaptercloud connections_set_status failed', { error: String(error) });\n return errorResult(\n `Failed to set connection status: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * AdapterCloud resource tools — discovered infrastructure resources.\n *\n * Surface (3): resources_{get,list,register}.\n * Backend root fields: adaResource / adaListResources / adaRegisterResource\n * (an idempotent upsert keyed by externalId). adaListResources returns the page\n * envelope { items, pageInfo }.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { ResourceStateEnum, JsonObject, PaginationFields, buildPagination } from './shared.js';\n\nexport function registerResourceTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'resources_get')),\n {\n title: 'Get Resource',\n description:\n 'Fetch a single discovered resource by ID, including its connection and dependency edges.',\n inputSchema: { id: z.string().describe('Resource ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaResource: Record<string, unknown> | null;\n }>(ops.GET_RESOURCE, { id });\n if (!data.adaResource) return errorResult(`Resource ${id} not found`);\n return jsonResult(data.adaResource);\n } catch (error) {\n ctx.logger.error('adaptercloud resources_get failed', { error: String(error) });\n return errorResult(\n `Failed to get resource: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'resources_list')),\n {\n title: 'List Resources',\n description:\n 'List discovered resources with optional connection/resourceType/state filters and pagination. Returns a page envelope { items, pageInfo }.',\n inputSchema: {\n connectionId: z.string().optional().describe('Filter by connection ID'),\n resourceType: z\n .string()\n .optional()\n .describe('Filter by provider resource type, e.g. \"aws_instance\"'),\n state: ResourceStateEnum.optional().describe('Filter by reconciliation state'),\n ...PaginationFields,\n },\n },\n async ({ connectionId, resourceType, state, limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaListResources: Record<string, unknown>;\n }>(ops.LIST_RESOURCES, {\n connectionId,\n resourceType,\n state,\n pagination: buildPagination({ limit, offset, cursor }),\n });\n return jsonResult(data.adaListResources);\n } catch (error) {\n ctx.logger.error('adaptercloud resources_list failed', { error: String(error) });\n return errorResult(\n `Failed to list resources: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'resources_register')),\n {\n title: 'Register Resource',\n description:\n 'Upsert a discovered resource for a connection (idempotent by externalId). Re-registering the same externalId updates the existing resource.',\n inputSchema: {\n connectionId: z.string().min(1).describe('Connection the resource was discovered through'),\n externalId: z.string().min(1).describe('Provider-native unique ID (idempotency key)'),\n name: z.string().min(1).describe('Resource display name'),\n resourceType: z.string().min(1).describe('Provider resource type, e.g. \"aws_instance\"'),\n region: z.string().optional().describe('Resource region'),\n monthlyCost: z.number().optional().describe('Estimated monthly cost'),\n attributes: JsonObject.optional().describe('Provider-native resource attributes JSON'),\n providerTags: JsonObject.optional().describe('Provider-native tags JSON'),\n tags: z.array(z.string()).optional().describe('Workspace-side free-form tags'),\n },\n },\n async ({\n connectionId,\n externalId,\n name,\n resourceType,\n region,\n monthlyCost,\n attributes,\n providerTags,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = { connectionId, externalId, name, resourceType };\n if (region !== undefined) input.region = region;\n if (monthlyCost !== undefined) input.monthlyCost = monthlyCost;\n if (attributes !== undefined) input.attributes = attributes;\n if (providerTags !== undefined) input.providerTags = providerTags;\n if (tags !== undefined) input.tags = tags;\n\n const data = await ctx.gql.workspace.request<{\n adaRegisterResource: Record<string, unknown>;\n }>(ops.REGISTER_RESOURCE, { input });\n return jsonResult(data.adaRegisterResource);\n } catch (error) {\n ctx.logger.error('adaptercloud resources_register failed', { error: String(error) });\n return errorResult(\n `Failed to register resource: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * AdapterCloud topology tools — dependency/relationship edges between resources.\n *\n * Surface (2): topology_{list,create_edge}.\n * Backend root fields: adaListTopologyEdges (returns a plain array) /\n * adaCreateTopologyEdge.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { EdgeKindEnum, JsonObject } from './shared.js';\n\nexport function registerTopologyTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'topology_list')),\n {\n title: 'List Topology Edges',\n description:\n 'List topology edges (resource relationships), optionally filtered by edge kind and/or a resource ID (edges touching that resource).',\n inputSchema: {\n kind: EdgeKindEnum.optional().describe('Filter by edge kind'),\n resourceId: z.string().optional().describe('Filter to edges touching this resource'),\n },\n },\n async ({ kind, resourceId }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaListTopologyEdges: Array<Record<string, unknown>>;\n }>(ops.LIST_TOPOLOGY_EDGES, { kind, resourceId });\n return jsonResult(data.adaListTopologyEdges);\n } catch (error) {\n ctx.logger.error('adaptercloud topology_list failed', { error: String(error) });\n return errorResult(\n `Failed to list topology edges: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'topology_create_edge')),\n {\n title: 'Create Topology Edge',\n description:\n 'Create a topology edge between two resources (e.g. DEPENDS_ON, ROUTES_TO, CONTAINS). Set `bidirectional` for symmetric relationships.',\n inputSchema: {\n fromResourceId: z.string().min(1).describe('Source resource ID'),\n toResourceId: z.string().min(1).describe('Target resource ID'),\n kind: EdgeKindEnum.optional().describe('Edge kind (default DEPENDS_ON)'),\n weight: z.number().int().optional().describe('Edge weight'),\n bidirectional: z\n .boolean()\n .optional()\n .describe('Whether the edge is symmetric (default false)'),\n attributes: JsonObject.optional().describe('Edge attributes JSON'),\n },\n },\n async ({ fromResourceId, toResourceId, kind, weight, bidirectional, attributes }) => {\n try {\n const input: Record<string, unknown> = { fromResourceId, toResourceId };\n if (kind !== undefined) input.kind = kind;\n if (weight !== undefined) input.weight = weight;\n if (bidirectional !== undefined) input.bidirectional = bidirectional;\n if (attributes !== undefined) input.attributes = attributes;\n\n const data = await ctx.gql.workspace.request<{\n adaCreateTopologyEdge: Record<string, unknown>;\n }>(ops.CREATE_TOPOLOGY_EDGE, { input });\n return jsonResult(data.adaCreateTopologyEdge);\n } catch (error) {\n ctx.logger.error('adaptercloud topology_create_edge failed', { error: String(error) });\n return errorResult(\n `Failed to create topology edge: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * AdapterCloud policy tools — governance guardrails.\n *\n * Surface (5): policies_{get,list,create,update,archive}.\n * Backend root fields: adaPolicy / adaListPolicies / adaCreatePolicy /\n * adaUpdatePolicy / adaArchivePolicy. adaListPolicies returns the page envelope\n * { items, pageInfo }.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport {\n PolicyKindEnum,\n PolicyEnforcementEnum,\n SeverityEnum,\n JsonObject,\n PaginationFields,\n buildPagination,\n} from './shared.js';\n\nexport function registerPolicyTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'policies_get')),\n {\n title: 'Get Policy',\n description: 'Fetch a single governance policy by ID, including its violations.',\n inputSchema: { id: z.string().describe('Policy ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaPolicy: Record<string, unknown> | null;\n }>(ops.GET_POLICY, { id });\n if (!data.adaPolicy) return errorResult(`Policy ${id} not found`);\n return jsonResult(data.adaPolicy);\n } catch (error) {\n ctx.logger.error('adaptercloud policies_get failed', { error: String(error) });\n return errorResult(\n `Failed to get policy: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'policies_list')),\n {\n title: 'List Policies',\n description:\n 'List governance policies with optional kind/isActive filters and pagination. Returns a page envelope { items, pageInfo }.',\n inputSchema: {\n kind: PolicyKindEnum.optional().describe('Filter by policy kind'),\n isActive: z.boolean().optional().describe('Filter by active flag'),\n ...PaginationFields,\n },\n },\n async ({ kind, isActive, limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaListPolicies: Record<string, unknown>;\n }>(ops.LIST_POLICIES, {\n kind,\n isActive,\n pagination: buildPagination({ limit, offset, cursor }),\n });\n return jsonResult(data.adaListPolicies);\n } catch (error) {\n ctx.logger.error('adaptercloud policies_list failed', { error: String(error) });\n return errorResult(\n `Failed to list policies: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'policies_create')),\n {\n title: 'Create Policy',\n description:\n 'Create a governance policy. `expression` is the required policy-rule JSON; `appliesTo` is an optional list of resource-type selectors.',\n inputSchema: {\n name: z.string().min(1).describe('Policy name'),\n expression: JsonObject.describe('Policy-rule expression JSON (required)'),\n kind: PolicyKindEnum.optional().describe('Policy kind (default GUARDRAIL)'),\n enforcement: PolicyEnforcementEnum.optional().describe('Enforcement mode (default WARN)'),\n severity: SeverityEnum.optional().describe('Severity (default MEDIUM)'),\n description: z.string().optional().describe('Policy description'),\n appliesTo: z\n .array(z.string())\n .optional()\n .describe('Resource-type selectors the policy applies to'),\n isActive: z.boolean().optional().describe('Whether the policy is active (default true)'),\n tags: z.array(z.string()).optional().describe('Free-form tags'),\n },\n },\n async ({\n name,\n expression,\n kind,\n enforcement,\n severity,\n description,\n appliesTo,\n isActive,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = { name, expression };\n if (kind !== undefined) input.kind = kind;\n if (enforcement !== undefined) input.enforcement = enforcement;\n if (severity !== undefined) input.severity = severity;\n if (description !== undefined) input.description = description;\n if (appliesTo !== undefined) input.appliesTo = appliesTo;\n if (isActive !== undefined) input.isActive = isActive;\n if (tags !== undefined) input.tags = tags;\n\n const data = await ctx.gql.workspace.request<{\n adaCreatePolicy: Record<string, unknown>;\n }>(ops.CREATE_POLICY, { input });\n return jsonResult(data.adaCreatePolicy);\n } catch (error) {\n ctx.logger.error('adaptercloud policies_create failed', { error: String(error) });\n return errorResult(\n `Failed to create policy: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'policies_update')),\n {\n title: 'Update Policy',\n description:\n 'Update a governance policy. At least one mutable field must be provided. Use `isActive` to enable/disable a policy.',\n inputSchema: {\n id: z.string().describe('Policy ID'),\n name: z.string().optional().describe('Updated name'),\n expression: JsonObject.optional().describe('Updated policy-rule expression JSON'),\n kind: PolicyKindEnum.optional().describe('Updated policy kind'),\n enforcement: PolicyEnforcementEnum.optional().describe('Updated enforcement mode'),\n severity: SeverityEnum.optional().describe('Updated severity'),\n description: z.string().optional().describe('Updated description'),\n appliesTo: z.array(z.string()).optional().describe('Updated resource-type selectors'),\n isActive: z.boolean().optional().describe('Updated active flag'),\n tags: z.array(z.string()).optional().describe('Updated tags'),\n },\n },\n async ({\n id,\n name,\n expression,\n kind,\n enforcement,\n severity,\n description,\n appliesTo,\n isActive,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = {};\n if (name !== undefined) input.name = name;\n if (expression !== undefined) input.expression = expression;\n if (kind !== undefined) input.kind = kind;\n if (enforcement !== undefined) input.enforcement = enforcement;\n if (severity !== undefined) input.severity = severity;\n if (description !== undefined) input.description = description;\n if (appliesTo !== undefined) input.appliesTo = appliesTo;\n if (isActive !== undefined) input.isActive = isActive;\n if (tags !== undefined) input.tags = tags;\n\n if (Object.keys(input).length === 0) {\n return errorResult(\n 'No updates specified — provide at least one of name/expression/kind/enforcement/severity/description/appliesTo/isActive/tags',\n );\n }\n\n const data = await ctx.gql.workspace.request<{\n adaUpdatePolicy: Record<string, unknown>;\n }>(ops.UPDATE_POLICY, { id, input });\n return jsonResult(data.adaUpdatePolicy);\n } catch (error) {\n ctx.logger.error('adaptercloud policies_update failed', { error: String(error) });\n return errorResult(\n `Failed to update policy: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'policies_archive')),\n {\n title: 'Archive Policy',\n description: 'Archive (soft-delete) a governance policy. Returns true on success.',\n inputSchema: { id: z.string().describe('Policy ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ adaArchivePolicy: boolean }>(\n ops.ARCHIVE_POLICY,\n { id },\n );\n return jsonResult({ archived: data.adaArchivePolicy, id });\n } catch (error) {\n ctx.logger.error('adaptercloud policies_archive failed', { error: String(error) });\n return errorResult(\n `Failed to archive policy: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * AdapterCloud violation tools — policy violations against resources.\n *\n * Surface (3): violations_{list,record,resolve}.\n * Backend root fields: adaListViolations (page envelope) / adaRecordViolation /\n * adaResolveViolation (validated transition; WAIVED requires a waiverReason).\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport {\n ViolationStatusEnum,\n SeverityEnum,\n JsonObject,\n PaginationFields,\n buildPagination,\n} from './shared.js';\n\nexport function registerViolationTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'violations_list')),\n {\n title: 'List Violations',\n description:\n 'List policy violations with optional policy/resource/status filters and pagination. Returns a page envelope { items, pageInfo }.',\n inputSchema: {\n policyId: z.string().optional().describe('Filter by policy ID'),\n resourceId: z.string().optional().describe('Filter by resource ID'),\n status: ViolationStatusEnum.optional().describe('Filter by violation status'),\n ...PaginationFields,\n },\n },\n async ({ policyId, resourceId, status, limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaListViolations: Record<string, unknown>;\n }>(ops.LIST_VIOLATIONS, {\n policyId,\n resourceId,\n status,\n pagination: buildPagination({ limit, offset, cursor }),\n });\n return jsonResult(data.adaListViolations);\n } catch (error) {\n ctx.logger.error('adaptercloud violations_list failed', { error: String(error) });\n return errorResult(\n `Failed to list violations: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'violations_record')),\n {\n title: 'Record Violation',\n description:\n 'Record a policy violation against a resource. `evidence` is optional JSON supporting the finding.',\n inputSchema: {\n policyId: z.string().min(1).describe('Violated policy ID'),\n resourceId: z.string().min(1).describe('Offending resource ID'),\n message: z.string().min(1).describe('Human-readable violation message'),\n severity: SeverityEnum.optional().describe(\n 'Severity override (defaults to policy severity)',\n ),\n evidence: JsonObject.optional().describe('Supporting evidence JSON'),\n },\n },\n async ({ policyId, resourceId, message, severity, evidence }) => {\n try {\n const input: Record<string, unknown> = { policyId, resourceId, message };\n if (severity !== undefined) input.severity = severity;\n if (evidence !== undefined) input.evidence = evidence;\n\n const data = await ctx.gql.workspace.request<{\n adaRecordViolation: Record<string, unknown>;\n }>(ops.RECORD_VIOLATION, { input });\n return jsonResult(data.adaRecordViolation);\n } catch (error) {\n ctx.logger.error('adaptercloud violations_record failed', { error: String(error) });\n return errorResult(\n `Failed to record violation: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'violations_resolve')),\n {\n title: 'Resolve Violation',\n description:\n 'Resolve or waive a violation (validated transition). Waiving (status=WAIVED) requires a `waiverReason`.',\n inputSchema: {\n id: z.string().describe('Violation ID'),\n status: ViolationStatusEnum.describe('New status (e.g. RESOLVED, WAIVED, ACKNOWLEDGED)'),\n waiverReason: z.string().optional().describe('Reason — required when status is WAIVED'),\n },\n },\n async ({ id, status, waiverReason }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaResolveViolation: Record<string, unknown>;\n }>(ops.RESOLVE_VIOLATION, { id, status, waiverReason });\n return jsonResult(data.adaResolveViolation);\n } catch (error) {\n ctx.logger.error('adaptercloud violations_resolve failed', { error: String(error) });\n return errorResult(\n `Failed to resolve violation: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * AdapterCloud drift tools — configuration drift records against resources.\n *\n * Surface (3): drift_{list,record,remediate}.\n * Backend root fields: adaListDriftRecords (returns a plain array) /\n * adaRecordDrift / adaRemediateDrift.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { DriftStatusEnum, SeverityEnum, JsonObject } from './shared.js';\n\nexport function registerDriftTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'drift_list')),\n {\n title: 'List Drift Records',\n description:\n 'List configuration-drift records, optionally filtered by resource and/or status. Returns a plain array.',\n inputSchema: {\n resourceId: z.string().optional().describe('Filter by resource ID'),\n status: DriftStatusEnum.optional().describe('Filter by drift status'),\n },\n },\n async ({ resourceId, status }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaListDriftRecords: Array<Record<string, unknown>>;\n }>(ops.LIST_DRIFT_RECORDS, { resourceId, status });\n return jsonResult(data.adaListDriftRecords);\n } catch (error) {\n ctx.logger.error('adaptercloud drift_list failed', { error: String(error) });\n return errorResult(\n `Failed to list drift records: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'drift_record')),\n {\n title: 'Record Drift',\n description:\n 'Record a configuration-drift finding for a resource at a given attribute path, capturing expected vs observed values.',\n inputSchema: {\n resourceId: z.string().min(1).describe('Drifted resource ID'),\n attributePath: z.string().min(1).describe('Attribute path that drifted, e.g. \"tags.env\"'),\n expectedValue: JsonObject.optional().describe('Expected value JSON'),\n observedValue: JsonObject.optional().describe('Observed value JSON'),\n severity: SeverityEnum.optional().describe('Severity of the drift'),\n },\n },\n async ({ resourceId, attributePath, expectedValue, observedValue, severity }) => {\n try {\n const input: Record<string, unknown> = { resourceId, attributePath };\n if (expectedValue !== undefined) input.expectedValue = expectedValue;\n if (observedValue !== undefined) input.observedValue = observedValue;\n if (severity !== undefined) input.severity = severity;\n\n const data = await ctx.gql.workspace.request<{\n adaRecordDrift: Record<string, unknown>;\n }>(ops.RECORD_DRIFT, { input });\n return jsonResult(data.adaRecordDrift);\n } catch (error) {\n ctx.logger.error('adaptercloud drift_record failed', { error: String(error) });\n return errorResult(\n `Failed to record drift: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'drift_remediate')),\n {\n title: 'Remediate Drift',\n description: 'Mark a drift record as remediated. Returns the updated drift record.',\n inputSchema: { id: z.string().describe('Drift record ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaRemediateDrift: Record<string, unknown>;\n }>(ops.REMEDIATE_DRIFT, { id });\n return jsonResult(data.adaRemediateDrift);\n } catch (error) {\n ctx.logger.error('adaptercloud drift_remediate failed', { error: String(error) });\n return errorResult(\n `Failed to remediate drift: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * AdapterCloud sync-run tools — discovery/reconcile/cost-ingest run lifecycle.\n *\n * Surface (6): sync_{get,list,start,complete,fail,cancel}.\n * Backend root fields: adaSyncRun / adaListSyncRuns (page envelope) /\n * adaStartSyncRun / adaCompleteSyncRun / adaFailSyncRun / adaCancelSyncRun.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport {\n SyncKindEnum,\n SyncStatusEnum,\n JsonObject,\n PaginationFields,\n buildPagination,\n} from './shared.js';\n\nexport function registerSyncTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sync_get')),\n {\n title: 'Get Sync Run',\n description: 'Fetch a single sync run by ID, including its counts and summary.',\n inputSchema: { id: z.string().describe('Sync run ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaSyncRun: Record<string, unknown> | null;\n }>(ops.GET_SYNC_RUN, { id });\n if (!data.adaSyncRun) return errorResult(`Sync run ${id} not found`);\n return jsonResult(data.adaSyncRun);\n } catch (error) {\n ctx.logger.error('adaptercloud sync_get failed', { error: String(error) });\n return errorResult(\n `Failed to get sync run: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sync_list')),\n {\n title: 'List Sync Runs',\n description:\n 'List sync runs with optional connection/status filters and pagination. Returns a page envelope { items, pageInfo }.',\n inputSchema: {\n connectionId: z.string().optional().describe('Filter by connection ID'),\n status: SyncStatusEnum.optional().describe('Filter by sync status'),\n ...PaginationFields,\n },\n },\n async ({ connectionId, status, limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaListSyncRuns: Record<string, unknown>;\n }>(ops.LIST_SYNC_RUNS, {\n connectionId,\n status,\n pagination: buildPagination({ limit, offset, cursor }),\n });\n return jsonResult(data.adaListSyncRuns);\n } catch (error) {\n ctx.logger.error('adaptercloud sync_list failed', { error: String(error) });\n return errorResult(\n `Failed to list sync runs: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sync_start')),\n {\n title: 'Start Sync Run',\n description:\n 'Start a sync run against a connection. `kind` selects DISCOVERY (default), RECONCILE, FULL, or COST_INGEST.',\n inputSchema: {\n connectionId: z.string().min(1).describe('Connection to sync'),\n kind: SyncKindEnum.optional().describe('Sync kind (default DISCOVERY)'),\n },\n },\n async ({ connectionId, kind }) => {\n try {\n const input: Record<string, unknown> = { connectionId };\n if (kind !== undefined) input.kind = kind;\n\n const data = await ctx.gql.workspace.request<{\n adaStartSyncRun: Record<string, unknown>;\n }>(ops.START_SYNC_RUN, { input });\n return jsonResult(data.adaStartSyncRun);\n } catch (error) {\n ctx.logger.error('adaptercloud sync_start failed', { error: String(error) });\n return errorResult(\n `Failed to start sync run: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sync_complete')),\n {\n title: 'Complete Sync Run',\n description:\n 'Mark a sync run as succeeded, recording its discovered/reconciled/drift/violation counts and a summary.',\n inputSchema: {\n id: z.string().describe('Sync run ID'),\n discoveredCount: z.number().int().optional().describe('Number of resources discovered'),\n reconciledCount: z.number().int().optional().describe('Number of resources reconciled'),\n driftCount: z.number().int().optional().describe('Number of drift records detected'),\n violationCount: z.number().int().optional().describe('Number of violations detected'),\n summary: JsonObject.optional().describe('Run summary JSON'),\n },\n },\n async ({ id, discoveredCount, reconciledCount, driftCount, violationCount, summary }) => {\n try {\n const input: Record<string, unknown> = {};\n if (discoveredCount !== undefined) input.discoveredCount = discoveredCount;\n if (reconciledCount !== undefined) input.reconciledCount = reconciledCount;\n if (driftCount !== undefined) input.driftCount = driftCount;\n if (violationCount !== undefined) input.violationCount = violationCount;\n if (summary !== undefined) input.summary = summary;\n\n const data = await ctx.gql.workspace.request<{\n adaCompleteSyncRun: Record<string, unknown>;\n }>(ops.COMPLETE_SYNC_RUN, {\n id,\n input: Object.keys(input).length > 0 ? input : undefined,\n });\n return jsonResult(data.adaCompleteSyncRun);\n } catch (error) {\n ctx.logger.error('adaptercloud sync_complete failed', { error: String(error) });\n return errorResult(\n `Failed to complete sync run: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sync_fail')),\n {\n title: 'Fail Sync Run',\n description: 'Mark a sync run as failed with an error message.',\n inputSchema: {\n id: z.string().describe('Sync run ID'),\n error: z.string().min(1).describe('Failure reason / error message'),\n },\n },\n async ({ id, error }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaFailSyncRun: Record<string, unknown>;\n }>(ops.FAIL_SYNC_RUN, { id, error });\n return jsonResult(data.adaFailSyncRun);\n } catch (err) {\n ctx.logger.error('adaptercloud sync_fail failed', { error: String(err) });\n return errorResult(\n `Failed to fail sync run: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sync_cancel')),\n {\n title: 'Cancel Sync Run',\n description: 'Cancel an in-flight or queued sync run. Returns the updated sync run.',\n inputSchema: { id: z.string().describe('Sync run ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaCancelSyncRun: Record<string, unknown>;\n }>(ops.CANCEL_SYNC_RUN, { id });\n return jsonResult(data.adaCancelSyncRun);\n } catch (error) {\n ctx.logger.error('adaptercloud sync_cancel failed', { error: String(error) });\n return errorResult(\n `Failed to cancel sync run: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * AdapterCloud cost / FinOps tools — cost records and spend aggregation.\n *\n * Surface (3): cost_{list,summary,ingest}.\n * Backend root fields: adaListCostRecords (plain array) / adaCostSummary\n * (aggregate) / adaIngestCost.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject } from './shared.js';\n\nexport function registerCostTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'cost_list')),\n {\n title: 'List Cost Records',\n description:\n 'List cost records, optionally filtered by connection, resource, and/or service. Returns a plain array.',\n inputSchema: {\n connectionId: z.string().optional().describe('Filter by connection ID'),\n resourceId: z.string().optional().describe('Filter by resource ID'),\n service: z.string().optional().describe('Filter by cost service, e.g. \"EC2\"'),\n },\n },\n async ({ connectionId, resourceId, service }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaListCostRecords: Array<Record<string, unknown>>;\n }>(ops.LIST_COST_RECORDS, { connectionId, resourceId, service });\n return jsonResult(data.adaListCostRecords);\n } catch (error) {\n ctx.logger.error('adaptercloud cost_list failed', { error: String(error) });\n return errorResult(\n `Failed to list cost records: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'cost_summary')),\n {\n title: 'Cost Summary',\n description:\n 'Aggregate spend grouped by cost service across the workspace, optionally scoped to a single connection.',\n inputSchema: {\n connectionId: z.string().optional().describe('Scope the summary to one connection'),\n },\n },\n async ({ connectionId }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n adaCostSummary: Record<string, unknown>;\n }>(ops.COST_SUMMARY, { connectionId });\n return jsonResult(data.adaCostSummary);\n } catch (error) {\n ctx.logger.error('adaptercloud cost_summary failed', { error: String(error) });\n return errorResult(\n `Failed to get cost summary: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'cost_ingest')),\n {\n title: 'Ingest Cost Record',\n description:\n 'Ingest a cost record for a service over a billing period. `breakdown` is optional per-line-item JSON.',\n inputSchema: {\n service: z.string().min(1).describe('Cost service, e.g. \"EC2\"'),\n amount: z.number().describe('Cost amount'),\n periodStart: z.string().min(1).describe('Billing period start (ISO 8601 DateTime)'),\n periodEnd: z.string().min(1).describe('Billing period end (ISO 8601 DateTime)'),\n currency: z.string().optional().describe('Currency code, e.g. \"USD\"'),\n connectionId: z.string().optional().describe('Owning connection ID'),\n resourceId: z.string().optional().describe('Owning resource ID'),\n breakdown: JsonObject.optional().describe('Per-line-item cost breakdown JSON'),\n },\n },\n async ({\n service,\n amount,\n periodStart,\n periodEnd,\n currency,\n connectionId,\n resourceId,\n breakdown,\n }) => {\n try {\n const input: Record<string, unknown> = { service, amount, periodStart, periodEnd };\n if (currency !== undefined) input.currency = currency;\n if (connectionId !== undefined) input.connectionId = connectionId;\n if (resourceId !== undefined) input.resourceId = resourceId;\n if (breakdown !== undefined) input.breakdown = breakdown;\n\n const data = await ctx.gql.workspace.request<{\n adaIngestCost: Record<string, unknown>;\n }>(ops.INGEST_COST, { input });\n return jsonResult(data.adaIngestCost);\n } catch (error) {\n ctx.logger.error('adaptercloud cost_ingest failed', { error: String(error) });\n return errorResult(\n `Failed to ingest cost record: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * AdapterCloud health tool.\n *\n * Surface (1): health.\n * Maps to the @public adaHealth query (no auth required) — the AdapterCloud\n * subgraph's liveness/identity probe.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\n\nexport function registerHealthTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'health')),\n {\n title: 'AdapterCloud Health Check',\n description:\n 'Public health probe for the AdapterCloud subgraph (adaHealth). Requires no authentication.',\n inputSchema: {},\n },\n async () => {\n try {\n const data = await ctx.gql.workspace.request<{ adaHealth: string }>(ops.HEALTH, {});\n return jsonResult({ ok: true, status: data.adaHealth });\n } catch (error) {\n ctx.logger.error('adaptercloud health failed', { error: String(error) });\n return errorResult(\n `AdapterCloud health check failed: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { mcpResourceUri, type McpContext } from '../../core/index.js';\nimport { LIST_ADAPTERS, LIST_CONNECTIONS, COST_SUMMARY } from './operations.js';\n\n/**\n * Read-only AdapterCloud MCP resources. URIs are product-prefixed via\n * mcpResourceUri so they don't collide when multiple MCP servers run side by\n * side. Each is tracked at function entry so the shell manifest reflects what\n * was registered even though registration is imperative.\n */\nexport function registerAdaptercloudResources(\n server: McpServer,\n ctx: McpContext,\n track: (uri: string) => string,\n): void {\n const schemaUri = track(mcpResourceUri(ctx.productName, 'schema'));\n const adaptersUri = track(mcpResourceUri(ctx.productName, 'adapters'));\n const connectionsUri = track(mcpResourceUri(ctx.productName, 'connections'));\n const costUri = track(mcpResourceUri(ctx.productName, 'cost'));\n\n // <product>://schema — domain overview\n server.registerResource(\n 'adaptercloud-schema',\n schemaUri,\n {\n title: 'AdapterCloud Domain Schema',\n description:\n 'Overview of the AdapterCloud (InfraVerse) domain — entities, enums, and the per-entity tool surface.',\n mimeType: 'text/plain',\n },\n async () => {\n ctx.logger.debug(`Resource ${schemaUri} requested`);\n const schema = `# AdapterCloud Domain (Overview)\n\nInfraVerse — the digital-infrastructure continuum. Stitches fragmented\ninfrastructure (multi-cloud, on-prem, edge, SaaS) into one continuous,\ngovernable fabric.\n\n## Entities\n- AdaAdapter — an integration definition (the adapter catalog)\n- AdaConnection — a live connection to a target system for an adapter\n- AdaResource — a discovered infrastructure resource (upserted by externalId)\n- AdaTopologyEdge — a dependency/relationship edge between two resources\n- AdaPolicy — a governance guardrail (with violations)\n- AdaPolicyViolation — a policy violation against a resource\n- AdaDriftRecord — a configuration-drift finding against a resource\n- AdaSyncRun — a discovery/reconcile/cost-ingest run against a connection\n- AdaCostRecord — a cost record for a service over a billing period\n\n## Enums\n- AdaAdapterKind: CUSTOM, DATA_SYSTEM, EDGE, KUBERNETES, NETWORK, ON_PREM, PRIVATE_CLOUD, PUBLIC_CLOUD, SAAS\n- AdaAdapterStatus: ARCHIVED, DEPRECATED, DRAFT, PUBLISHED\n- AdaAuthMethod: API_KEY, CERTIFICATE, IAM_ROLE, NONE, OAUTH2, SERVICE_ACCOUNT\n- AdaConnectionStatus: CONNECTED, DEGRADED, DISABLED, ERROR, PENDING\n- AdaResourceState: DELETED, DISCOVERED, DRIFTED, ORPHANED, RECONCILED\n- AdaEdgeKind: CONNECTS_TO, CONTAINS, DEPENDS_ON, REPLICATES_TO, ROUTES_TO\n- AdaPolicyKind: COMPLIANCE, COST, GUARDRAIL, NAMING, SECURITY, TAGGING\n- AdaPolicyEnforcement: ADVISORY, BLOCK, WARN\n- AdaSeverity: CRITICAL, HIGH, INFO, LOW, MEDIUM\n- AdaViolationStatus: ACKNOWLEDGED, OPEN, RESOLVED, WAIVED\n- AdaDriftStatus: ACKNOWLEDGED, DETECTED, IGNORED, REMEDIATED\n- AdaSyncKind: COST_INGEST, DISCOVERY, FULL, RECONCILE\n- AdaSyncStatus: CANCELLED, FAILED, QUEUED, RUNNING, SUCCEEDED\n\n## Tool groups\nadapters, connections, resources, topology (fabric); policies, violations, drift\n(governance); sync, cost (operations/FinOps); plus the public health probe.\nAll run against the WORKSPACE gateway (workspace-scoped) except the public\nhealth probe.\n`;\n return {\n contents: [{ uri: schemaUri, text: schema, mimeType: 'text/plain' }],\n };\n },\n );\n\n // <product>://adapters — adapter catalog\n server.registerResource(\n 'adaptercloud-adapters',\n adaptersUri,\n {\n title: 'AdapterCloud Adapter Catalog',\n description: 'The first 50 adapters (integration definitions) in the bound workspace.',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${adaptersUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{ adaListAdapters: unknown }>(LIST_ADAPTERS, {\n pagination: { limit: 50, offset: 0 },\n });\n return {\n contents: [\n {\n uri: adaptersUri,\n text: JSON.stringify(data.adaListAdapters, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: adaptersUri,\n text: JSON.stringify({\n error: error instanceof Error ? error.message : String(error),\n }),\n mimeType: 'application/json',\n },\n ],\n };\n }\n },\n );\n\n // <product>://connections — connection directory\n server.registerResource(\n 'adaptercloud-connections',\n connectionsUri,\n {\n title: 'AdapterCloud Connection Directory',\n description: 'The first 50 connections in the bound workspace.',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${connectionsUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{ adaListConnections: unknown }>(\n LIST_CONNECTIONS,\n { pagination: { limit: 50, offset: 0 } },\n );\n return {\n contents: [\n {\n uri: connectionsUri,\n text: JSON.stringify(data.adaListConnections, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: connectionsUri,\n text: JSON.stringify({\n error: error instanceof Error ? error.message : String(error),\n }),\n mimeType: 'application/json',\n },\n ],\n };\n }\n },\n );\n\n // <product>://cost — workspace spend summary\n server.registerResource(\n 'adaptercloud-cost',\n costUri,\n {\n title: 'AdapterCloud Cost Summary',\n description: 'Aggregate workspace spend grouped by cost service (FinOps headline).',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${costUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{ adaCostSummary: unknown }>(COST_SUMMARY, {});\n return {\n contents: [\n {\n uri: costUri,\n text: JSON.stringify(data.adaCostSummary, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: costUri,\n text: JSON.stringify({\n error: error instanceof Error ? error.message : String(error),\n }),\n mimeType: 'application/json',\n },\n ],\n };\n }\n },\n );\n}\n","import { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { mcpPromptName, type McpContext } from '../../core/index.js';\n\n/**\n * AdapterCloud MCP prompts — guided multi-step workflows. Names are\n * product-prefixed via mcpPromptName and tracked at function entry.\n */\nexport function registerAdaptercloudPrompts(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n const p = ctx.productName;\n const onboardingName = track(mcpPromptName(p, 'connection-onboarding'));\n const governanceName = track(mcpPromptName(p, 'governance-sweep'));\n\n // <product>-connection-onboarding — stand up an adapter + connection + discovery\n server.registerPrompt(\n onboardingName,\n {\n title: 'Connection Onboarding',\n description:\n 'Guide for connecting a new target system end to end: register an adapter, create a connection, run discovery, and review the discovered resources.',\n argsSchema: {\n adapterName: z.string().optional().describe('Adapter / integration name'),\n kind: z.string().optional().describe('Infrastructure kind (AdaAdapterKind)'),\n },\n },\n ({ adapterName, kind }) => {\n ctx.logger.debug(`Prompt ${onboardingName} called`, { adapterName, kind });\n const nameNote = adapterName\n ? `Use the adapter name \"${adapterName}\".`\n : 'Ask the user for the adapter / integration name.';\n const kindNote = kind ? `Use kind ${kind}.` : 'Help the user pick an AdaAdapterKind.';\n return {\n messages: [\n {\n role: 'user' as const,\n content: {\n type: 'text' as const,\n text: `Help me connect a new target system to AdapterCloud.\n\n1. **Register Adapter**: Use ${p}_adapters_create. ${nameNote} ${kindNote} Provide a unique slug; optionally a configSchema and capabilities.\n2. **Publish Adapter**: Use ${p}_adapters_update with status=PUBLISHED when the definition is ready.\n3. **Create Connection**: Use ${p}_connections_create with the new adapterId, an authMethod, environment/region, and a secretRef (never inline secrets).\n4. **Run Discovery**: Use ${p}_sync_start with the connectionId and kind=DISCOVERY, then poll ${p}_sync_get until status=SUCCEEDED.\n5. **Review Resources**: Use ${p}_resources_list filtered by the new connectionId; inspect state and monthlyCost.\n6. **Map Topology (optional)**: Use ${p}_topology_create_edge to record dependencies between discovered resources.\n\nShow results at each step and confirm before running discovery.`,\n },\n },\n ],\n };\n },\n );\n\n // <product>-governance-sweep — drift + violation + cost review\n server.registerPrompt(\n governanceName,\n {\n title: 'Governance Sweep',\n description:\n 'Governance + FinOps review workflow: check connection health, triage drift and open violations, resolve/waive them, and review spend.',\n argsSchema: {\n connectionId: z.string().optional().describe('Connection ID to scope the sweep'),\n },\n },\n ({ connectionId }) => {\n ctx.logger.debug(`Prompt ${governanceName} called`, { connectionId });\n const scopeNote = connectionId\n ? `Scope the sweep to connection \"${connectionId}\".`\n : `First list connections with ${p}_connections_list and pick one (or sweep the whole workspace).`;\n return {\n messages: [\n {\n role: 'user' as const,\n content: {\n type: 'text' as const,\n text: `Run an AdapterCloud governance + FinOps sweep. ${scopeNote}\n\n1. **Connection Health**: Use ${p}_connections_list and flag any DEGRADED / ERROR connections.\n2. **Drift**: Use ${p}_drift_list filtered by status=DETECTED. For each remediated item use ${p}_drift_remediate.\n3. **Violations**: Use ${p}_violations_list filtered by status=OPEN. Resolve each with ${p}_violations_resolve (status=RESOLVED, or WAIVED with a waiverReason).\n4. **Policies**: Use ${p}_policies_list to confirm the active guardrails; tighten enforcement with ${p}_policies_update if needed.\n5. **Cost**: Use ${p}_cost_summary for headline spend by service, then ${p}_cost_list to drill into a specific service.\n\nSummarize what needs attention after each step.`,\n },\n },\n ],\n };\n },\n );\n}\n","/**\n * AdapterCloud module — domain module for the future-products ecosystem program.\n *\n * Covers all 9 @key entities of wspace-adaptercloud-svc grouped into per-entity\n * sub-APIs: adapters, connections, resources, topology (fabric); policies,\n * violations, drift (governance); sync, cost (operations/FinOps); plus a public\n * health probe. Mirrors the rich kadaikodi/crewfoundry module structure\n * (tools/<entity>.ts + resources.ts + prompts.ts) and the canonical tags\n * module's typing discipline.\n *\n * Backend: ~/products/wspace/adaptercloud/wspace-adaptercloud-svc/\n * (Hive service name `adaptercloud`). All operations run against the WORKSPACE\n * gateway; the @public adaHealth probe is exposed as `<product>_health`.\n */\n\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport type { McpContext, McpModule, ModuleRegistration } from '../../core/index.js';\nimport { registerAdapterTools } from './tools/adapters.js';\nimport { registerConnectionTools } from './tools/connections.js';\nimport { registerResourceTools } from './tools/resources.js';\nimport { registerTopologyTools } from './tools/topology.js';\nimport { registerPolicyTools } from './tools/policies.js';\nimport { registerViolationTools } from './tools/violations.js';\nimport { registerDriftTools } from './tools/drift.js';\nimport { registerSyncTools } from './tools/sync.js';\nimport { registerCostTools } from './tools/cost.js';\nimport { registerHealthTools } from './tools/health.js';\nimport { registerAdaptercloudResources } from './resources.js';\nimport { registerAdaptercloudPrompts } from './prompts.js';\n\nconst adaptercloudModule: McpModule = {\n id: 'adaptercloud',\n version: '0.0.1',\n displayName: 'AdapterCloud',\n dependsOn: ['auth'],\n capabilities: { tools: {}, resources: {}, prompts: {} },\n\n register(server: McpServer, ctx: McpContext): ModuleRegistration {\n const tools: string[] = [];\n const resources: string[] = [];\n const prompts: string[] = [];\n\n const trackTool = (n: string): string => {\n tools.push(n);\n return n;\n };\n const trackResource = (uri: string): string => {\n resources.push(uri);\n return uri;\n };\n const trackPrompt = (n: string): string => {\n prompts.push(n);\n return n;\n };\n\n registerAdapterTools(server, ctx, trackTool);\n registerConnectionTools(server, ctx, trackTool);\n registerResourceTools(server, ctx, trackTool);\n registerTopologyTools(server, ctx, trackTool);\n registerPolicyTools(server, ctx, trackTool);\n registerViolationTools(server, ctx, trackTool);\n registerDriftTools(server, ctx, trackTool);\n registerSyncTools(server, ctx, trackTool);\n registerCostTools(server, ctx, trackTool);\n registerHealthTools(server, ctx, trackTool);\n\n registerAdaptercloudResources(server, ctx, trackResource);\n registerAdaptercloudPrompts(server, ctx, trackPrompt);\n\n return { tools, resources, prompts };\n },\n};\n\nexport default adaptercloudModule;\n"]}
|