diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 27f70e3..937adbc 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1,2 +1,5 @@ export type { ConnectionSource, ResolvedConnection, SshConfig } from './config/baseSchema.js' export { baseConnectionShape, sshConfigSchema } from './config/baseSchema.js' +export { errorMessage, fail, ok } from './mcp/respond.js' +export type { Tunnel } from './net/tunnel.js' +export { buildSshAuth, expandHome, openTunnel } from './net/tunnel.js' diff --git a/packages/dbmole-mcp/src/tools/respond.ts b/packages/core/src/mcp/respond.ts similarity index 100% rename from packages/dbmole-mcp/src/tools/respond.ts rename to packages/core/src/mcp/respond.ts diff --git a/packages/dbmole-mcp/src/net/tunnel.ts b/packages/core/src/net/tunnel.ts similarity index 98% rename from packages/dbmole-mcp/src/net/tunnel.ts rename to packages/core/src/net/tunnel.ts index 94db9f5..54249a4 100644 --- a/packages/dbmole-mcp/src/net/tunnel.ts +++ b/packages/core/src/net/tunnel.ts @@ -2,7 +2,7 @@ import { readFileSync } from 'node:fs' import net from 'node:net' import { homedir } from 'node:os' import { Client, type ConnectConfig } from 'ssh2' -import type { SshConfig } from '../config/types.js' +import type { SshConfig } from '../config/baseSchema.js' export type Tunnel = { localHost: string diff --git a/packages/dbmole-mcp/test/unit/net/tunnel.test.ts b/packages/core/test/unit/net/tunnel.test.ts similarity index 99% rename from packages/dbmole-mcp/test/unit/net/tunnel.test.ts rename to packages/core/test/unit/net/tunnel.test.ts index e7df2b5..e9e8f93 100644 --- a/packages/dbmole-mcp/test/unit/net/tunnel.test.ts +++ b/packages/core/test/unit/net/tunnel.test.ts @@ -72,7 +72,7 @@ vi.mock('ssh2', () => ({ } })) -import type { SshConfig } from '../../../src/config/types.js' +import type { SshConfig } from '../../../src/config/baseSchema.js' import { buildSshAuth, expandHome, openTunnel } from '../../../src/net/tunnel.js' const sshConfig = (extra: Partial = {}): SshConfig => ({ diff --git a/packages/dbmole-mcp/src/db/manager.ts b/packages/dbmole-mcp/src/db/manager.ts index 1d20eb5..00be663 100644 --- a/packages/dbmole-mcp/src/db/manager.ts +++ b/packages/dbmole-mcp/src/db/manager.ts @@ -1,6 +1,6 @@ +import { openTunnel, type Tunnel } from '@dbmole/core' import type { Registry } from '../config/registry.js' import { type ConnectionConfig, type ConnectionSource, defaultPort } from '../config/types.js' -import { openTunnel, type Tunnel } from '../net/tunnel.js' import type { Driver, DriverTarget } from './driver.js' import { createMysqlDriver } from './mysql.js' import { createPostgresDriver } from './postgres.js' diff --git a/packages/dbmole-mcp/src/tools/connections.ts b/packages/dbmole-mcp/src/tools/connections.ts index 23dfe43..1f53c09 100644 --- a/packages/dbmole-mcp/src/tools/connections.ts +++ b/packages/dbmole-mcp/src/tools/connections.ts @@ -1,3 +1,4 @@ +import { errorMessage, fail, ok } from '@dbmole/core' import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js' import * as z from 'zod' import type { Registry } from '../config/registry.js' @@ -10,7 +11,6 @@ import { import { DriverDisposedError } from '../db/driver.js' import type { Manager } from '../db/manager.js' import { formatDbError } from '../format.js' -import { errorMessage, fail, ok } from './respond.js' const patchSchema = z .object({ diff --git a/packages/dbmole-mcp/src/tools/managed.ts b/packages/dbmole-mcp/src/tools/managed.ts index 502ee30..c6f5c70 100644 --- a/packages/dbmole-mcp/src/tools/managed.ts +++ b/packages/dbmole-mcp/src/tools/managed.ts @@ -1,8 +1,8 @@ +import { errorMessage, fail, ok } from '@dbmole/core' import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js' import { DriverDisposedError } from '../db/driver.js' import type { ManagedConnection, Manager } from '../db/manager.js' import { formatDbError } from '../format.js' -import { errorMessage, fail, ok } from './respond.js' // One transparent retry when the driver was disposed under the caller (a // concurrent invalidate/rotation ended its pools). manager.get on the retry diff --git a/packages/dbmole-mcp/test/unit/db/manager.test.ts b/packages/dbmole-mcp/test/unit/db/manager.test.ts index e10db02..a59c6e9 100644 --- a/packages/dbmole-mcp/test/unit/db/manager.test.ts +++ b/packages/dbmole-mcp/test/unit/db/manager.test.ts @@ -1,9 +1,9 @@ +import type { Tunnel } from '@dbmole/core' import { beforeEach, describe, expect, it, vi } from 'vitest' import type { Registry } from '../../../src/config/registry.js' import type { ConnectionConfig, ResolvedConnection, SshConfig } from '../../../src/config/types.js' import type { Driver, DriverTarget } from '../../../src/db/driver.js' import { createManager } from '../../../src/db/manager.js' -import type { Tunnel } from '../../../src/net/tunnel.js' const config = (extra: Partial = {}): ConnectionConfig => ({ name: 'c',