/** * @sh-mcp/qbo — QuickBooks Online tools for the sh-mcp finance tier. * * Exports the pre-wired tools array (using QboClientImpl, which is stubbed * until the DEFERRED auth layer is implemented) plus the factory and types * needed by consumers that inject their own client. * * The wire transport (OpenAPI / MCP) is generated from the registry in the * server layer; this package only defines tools. */ export { makeSearchVendorsTool } from './tools.js'; export type { SearchVendorsInput, SearchVendorsOutput, VendorRecord } from './tools.js'; export type { QboClientInterface, QboVendor, SearchVendorsParams, SearchVendorsResult, } from './client.js'; export { QboClientImpl, QboApiError, QboThrottleError } from './client.js'; export { InMemoryQboClient } from './dev-client.js'; import { makeSearchVendorsTool } from './tools.js'; import { QboClientImpl } from './client.js'; import type { ToolDef } from '@sh-mcp/shared'; let _defaultTools: ToolDef[] | undefined; /** * Build (once) the default tools wired with QboClientImpl. * * LAZY by design (build-plan §7): construction is deferred to first call so * importing `@sh-mcp/qbo` is side-effect-free. `QboClientImpl.searchVendors` is * stubbed (throws) until the real OAuth/Secrets integration lands; servers wire * via `makeSearchVendorsTool` with their selected client (dev vs real). */ export function getDefaultTools(): ToolDef[] { if (!_defaultTools) { _defaultTools = [makeSearchVendorsTool(new QboClientImpl()) as ToolDef]; } return _defaultTools; }