import { LINEAR_MCP_NAME, LINEAR_MCP_URL, linearMcpSetupMessage, callLinearMcp, isLinearMcpConnected, } from './mcp.ts' /** * Probe whether the linear MCP server is connected; return setup guidance when not. * @returns Structured helper result for agents. * @example * import smokeTest from 'kody:@kody/linear-mcp/smoke-test' * const result = await smokeTest() * // => { ... } */ export default async function smokeTest() { if (!isLinearMcpConnected()) { return { ok: true, live: false, via: null, setup: { preferred: 'mcp', mcp: { name: LINEAR_MCP_NAME, url: LINEAR_MCP_URL, connected: false, setup: linearMcpSetupMessage(), }, oauthApiFallback: 'https://kody.codes/@kody/linear', }, } } const probe = await callLinearMcp([ "list_issues", "listIssues", "get_viewer", "me" ]) return { ok: true, live: true, via: 'mcp', tool: probe?.tool ?? null, mcp: { name: LINEAR_MCP_NAME, url: LINEAR_MCP_URL, connected: true, setup: linearMcpSetupMessage(), }, } }