@ainecto/mcp 0.1.2 → 0.1.3
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/README.md +4 -4
- package/dist/bin/ainecto.js +66 -8
- package/dist/bin/ainecto.js.map +1 -1
- package/package.json +1 -1
package/dist/bin/ainecto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/auth/tokenStore.ts","../../src/core/auth/oauth.ts","../../src/core/auth/clientRegistration.ts","../../src/core/config/endpoints.ts","../../src/core/input/payloadSource.ts","../../src/core/mcp/rpcClient.ts","../../src/core/output/render.ts","../../src/core/catalog/generated.prod.ts","../../src/core/catalog/generated.dev.ts","../../src/core/catalog/index.ts","../../src/core/mcp/stdioBridge.ts","../../src/adapters/mcp/connector.ts","../../src/core/catalog/enrichments.ts","../../src/core/output/table.ts","../../src/adapters/cli/errors.ts","../../src/adapters/cli/flagParser.ts","../../src/adapters/cli/destructiveConfirmation.ts","../../src/adapters/cli/bespokeCommands.ts","../../src/adapters/cli/generatedCommandRouter.ts","../../src/core/upload/attachmentUpload.ts","../../src/adapters/cli/attachmentsUploadCommand.ts","../../src/adapters/cli/ainectoCli.ts","../../src/bin/ainecto.ts"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport { mkdir, readFile, rename, rm, stat, writeFile, chmod } from \"node:fs/promises\";\nimport { homedir } from \"node:os\";\nimport { dirname, join } from \"node:path\";\n\nexport interface StoredTokenSet {\n endpoint: string;\n accessToken: string;\n refreshToken?: string;\n tokenType?: string;\n expiresAt?: number;\n scope?: string;\n clientId?: string;\n clientSecret?: string;\n authorizationServer?: string;\n updatedAt: string;\n}\n\nexport interface TokenStore {\n load(endpoint: string): Promise<StoredTokenSet | undefined>;\n save(endpoint: string, token: StoredTokenSet): Promise<void>;\n delete(endpoint: string): Promise<void>;\n}\n\ntype TokenFile = Record<string, StoredTokenSet>;\n\nexport class FileTokenStore implements TokenStore {\n readonly filePath: string;\n\n constructor(rootDir = join(homedir(), \".ainecto\")) {\n this.filePath = join(rootDir, \"tokens.json\");\n }\n\n async load(endpoint: string): Promise<StoredTokenSet | undefined> {\n const file = await this.readFile();\n return file[tokenKey(endpoint)];\n }\n\n async save(endpoint: string, token: StoredTokenSet): Promise<void> {\n const file = await this.readFile();\n file[tokenKey(endpoint)] = { ...token, endpoint, updatedAt: new Date().toISOString() };\n await this.writeFile(file);\n }\n\n async delete(endpoint: string): Promise<void> {\n const file = await this.readFile();\n delete file[tokenKey(endpoint)];\n await this.writeFile(file);\n }\n\n private async readFile(): Promise<TokenFile> {\n try {\n const raw = await readFile(this.filePath, \"utf8\");\n const parsed = JSON.parse(raw) as unknown;\n if (!parsed || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n throw new Error(\"Token file must contain an object.\");\n }\n return parsed as TokenFile;\n } catch (error) {\n if (isNodeError(error, \"ENOENT\")) {\n return {};\n }\n throw error;\n }\n }\n\n private async writeFile(file: TokenFile): Promise<void> {\n await mkdir(dirname(this.filePath), { recursive: true, mode: 0o700 });\n await chmod(dirname(this.filePath), 0o700);\n const tmpPath = `${this.filePath}.${process.pid}.${Date.now()}.tmp`;\n await writeFile(tmpPath, `${JSON.stringify(file, null, 2)}\\n`, { mode: 0o600 });\n await chmod(tmpPath, 0o600);\n await rename(tmpPath, this.filePath);\n await chmod(this.filePath, 0o600);\n }\n}\n\nexport function tokenKey(endpoint: string): string {\n return createHash(\"sha256\").update(endpoint).digest(\"hex\");\n}\n\nexport async function tokenStorePermissions(path: string): Promise<{ mode: number } | undefined> {\n try {\n const result = await stat(path);\n return { mode: result.mode & 0o777 };\n } catch (error) {\n if (isNodeError(error, \"ENOENT\")) {\n return undefined;\n }\n throw error;\n }\n}\n\nexport async function removeTokenStoreForTests(path: string): Promise<void> {\n await rm(dirname(path), { recursive: true, force: true });\n}\n\nfunction isNodeError(error: unknown, code: string): error is NodeJS.ErrnoException {\n return error instanceof Error && \"code\" in error && error.code === code;\n}\n","import { createHash, randomBytes } from \"node:crypto\";\nimport { createServer } from \"node:http\";\nimport { spawn } from \"node:child_process\";\nimport { URLSearchParams } from \"node:url\";\nimport type { StoredTokenSet, TokenStore } from \"./tokenStore\";\nimport { registerPublicClient, type ClientRegistrationResult } from \"./clientRegistration\";\n\nexport interface OAuthClientOptions {\n endpoint: string;\n tokenStore: TokenStore;\n fetchImpl?: typeof fetch;\n envVars?: NodeJS.ProcessEnv;\n openBrowser?: (url: string) => Promise<void>;\n}\n\nexport interface OAuthMetadata {\n authorizationEndpoint: string;\n tokenEndpoint: string;\n registrationEndpoint?: string;\n issuer?: string;\n codeChallengeMethodsSupported: string[];\n}\n\nexport interface TokenProvider {\n getAccessToken(): Promise<string | undefined>;\n refreshAfterUnauthorized(): Promise<string | undefined>;\n}\n\nexport class OAuthClient implements TokenProvider {\n private readonly fetchImpl: typeof fetch;\n private readonly envVars: NodeJS.ProcessEnv;\n private readonly openBrowserImpl: (url: string) => Promise<void>;\n\n constructor(private readonly options: OAuthClientOptions) {\n this.fetchImpl = options.fetchImpl ?? fetch;\n this.envVars = options.envVars ?? process.env;\n this.openBrowserImpl = options.openBrowser ?? openBrowser;\n }\n\n async getAccessToken(): Promise<string | undefined> {\n const envToken = this.envVars.AINECTO_TOKEN;\n if (envToken) {\n return envToken;\n }\n\n const stored = await this.options.tokenStore.load(this.options.endpoint);\n if (!stored) {\n return undefined;\n }\n\n if (!shouldRefresh(stored)) {\n return stored.accessToken;\n }\n\n return this.refreshStoredToken(stored);\n }\n\n async refreshAfterUnauthorized(): Promise<string | undefined> {\n const stored = await this.options.tokenStore.load(this.options.endpoint);\n if (!stored?.refreshToken) {\n return undefined;\n }\n return this.refreshStoredToken(stored);\n }\n\n async login(): Promise<StoredTokenSet> {\n const pkce = generatePkcePair();\n const state = generateOAuthState();\n const loopback = await createLoopbackReceiver(state);\n\n try {\n const metadata = await discoverOAuthMetadata(this.options.endpoint, this.fetchImpl);\n const registration = metadata.registrationEndpoint\n ? await registerPublicClient(metadata.registrationEndpoint, loopback.redirectUri, this.fetchImpl)\n : { clientId: \"ainecto-cli\" };\n const authorizeUrl = new URL(metadata.authorizationEndpoint);\n authorizeUrl.searchParams.set(\"response_type\", \"code\");\n authorizeUrl.searchParams.set(\"client_id\", registration.clientId);\n authorizeUrl.searchParams.set(\"redirect_uri\", loopback.redirectUri);\n authorizeUrl.searchParams.set(\"code_challenge\", pkce.codeChallenge);\n authorizeUrl.searchParams.set(\"code_challenge_method\", \"S256\");\n authorizeUrl.searchParams.set(\"resource\", this.options.endpoint);\n authorizeUrl.searchParams.set(\"state\", state);\n\n await this.openBrowserImpl(authorizeUrl.toString());\n const code = await loopback.waitForCode();\n const token = await exchangeToken(metadata.tokenEndpoint, {\n grant_type: \"authorization_code\",\n code,\n redirect_uri: loopback.redirectUri,\n client_id: registration.clientId,\n code_verifier: pkce.codeVerifier,\n resource: this.options.endpoint,\n ...(registration.clientSecret ? { client_secret: registration.clientSecret } : {}),\n }, this.fetchImpl);\n\n const stored = toStoredToken(this.options.endpoint, token, metadata, registration);\n await this.options.tokenStore.save(this.options.endpoint, stored);\n return stored;\n } finally {\n await loopback.close();\n }\n }\n\n async logout(): Promise<void> {\n await this.options.tokenStore.delete(this.options.endpoint);\n }\n\n private async refreshStoredToken(stored: StoredTokenSet): Promise<string | undefined> {\n if (!stored.refreshToken) {\n return stored.accessToken;\n }\n const metadata = await discoverOAuthMetadata(this.options.endpoint, this.fetchImpl);\n const token = await exchangeToken(metadata.tokenEndpoint, {\n grant_type: \"refresh_token\",\n refresh_token: stored.refreshToken,\n client_id: stored.clientId ?? \"ainecto-cli\",\n ...(stored.clientSecret ? { client_secret: stored.clientSecret } : {}),\n resource: this.options.endpoint,\n }, this.fetchImpl);\n const next = toStoredToken(this.options.endpoint, token, metadata, stored);\n await this.options.tokenStore.save(this.options.endpoint, next);\n return next.accessToken;\n }\n}\n\nexport function generatePkcePair(): { codeVerifier: string; codeChallenge: string } {\n const codeVerifier = randomBytes(32).toString(\"base64url\");\n const codeChallenge = createHash(\"sha256\").update(codeVerifier).digest(\"base64url\");\n return { codeVerifier, codeChallenge };\n}\n\nexport function generateOAuthState(): string {\n return randomBytes(32).toString(\"base64url\");\n}\n\nexport function shouldRefresh(token: Pick<StoredTokenSet, \"expiresAt\">, now = Date.now()): boolean {\n if (!token.expiresAt) {\n return false;\n }\n return token.expiresAt - now < 60_000;\n}\n\nexport async function discoverOAuthMetadata(endpoint: string, fetchImpl: typeof fetch = fetch): Promise<OAuthMetadata> {\n const resourceMetadataUrl = await discoverResourceMetadataUrl(endpoint, fetchImpl);\n const resourceMetadata = await fetchJson<Record<string, unknown>>(resourceMetadataUrl, fetchImpl);\n const authorizationServers = resourceMetadata.authorization_servers;\n if (!Array.isArray(authorizationServers) || typeof authorizationServers[0] !== \"string\") {\n throw new Error(\"OAuth protected resource metadata did not include authorization_servers.\");\n }\n const authServer = authorizationServers[0];\n const metadataUrl = authServer.includes(\"/.well-known/\")\n ? authServer\n : `${authServer.replace(/\\/$/, \"\")}/.well-known/oauth-authorization-server`;\n const metadata = await fetchJson<Record<string, unknown>>(metadataUrl, fetchImpl);\n if (typeof metadata.authorization_endpoint !== \"string\" || typeof metadata.token_endpoint !== \"string\") {\n throw new Error(\"OAuth authorization server metadata is missing authorization_endpoint or token_endpoint.\");\n }\n const codeChallengeMethodsSupported = parseStringArray(metadata.code_challenge_methods_supported);\n if (!codeChallengeMethodsSupported.includes(\"S256\")) {\n throw new Error(\"OAuth authorization server metadata must support PKCE S256.\");\n }\n return {\n authorizationEndpoint: metadata.authorization_endpoint,\n tokenEndpoint: metadata.token_endpoint,\n registrationEndpoint: typeof metadata.registration_endpoint === \"string\" ? metadata.registration_endpoint : undefined,\n issuer: typeof metadata.issuer === \"string\" ? metadata.issuer : undefined,\n codeChallengeMethodsSupported,\n };\n}\n\nasync function discoverResourceMetadataUrl(endpoint: string, fetchImpl: typeof fetch): Promise<string> {\n const challengeUrl = new URL(endpoint);\n const response = await fetchImpl(challengeUrl, { method: \"GET\" });\n const challenge = response.headers.get(\"www-authenticate\");\n const fromChallenge = challenge ? parseBearerChallengeParam(challenge, \"resource_metadata\") : undefined;\n if (fromChallenge) {\n return fromChallenge;\n }\n const origin = new URL(endpoint).origin;\n return `${origin}/.well-known/oauth-protected-resource`;\n}\n\nexport function parseBearerChallengeParam(header: string, name: string): string | undefined {\n const pattern = new RegExp(`${name}=\"([^\"]+)\"`);\n return pattern.exec(header)?.[1];\n}\n\nasync function exchangeToken(\n tokenEndpoint: string,\n params: Record<string, string>,\n fetchImpl: typeof fetch,\n): Promise<Record<string, unknown>> {\n const response = await fetchImpl(tokenEndpoint, {\n method: \"POST\",\n headers: { \"content-type\": \"application/x-www-form-urlencoded\" },\n body: new URLSearchParams(params),\n });\n if (!response.ok) {\n throw new Error(`OAuth token exchange failed with HTTP ${response.status}.`);\n }\n return response.json() as Promise<Record<string, unknown>>;\n}\n\ntype TokenContext = Partial<Pick<StoredTokenSet, \"refreshToken\" | \"tokenType\" | \"expiresAt\" | \"scope\" | \"clientId\" | \"clientSecret\">>\n & Partial<ClientRegistrationResult>;\n\nfunction toStoredToken(\n endpoint: string,\n token: Record<string, unknown>,\n metadata: OAuthMetadata,\n previous?: TokenContext,\n): StoredTokenSet {\n if (typeof token.access_token !== \"string\") {\n throw new Error(\"OAuth token response did not include access_token.\");\n }\n const expiresIn = typeof token.expires_in === \"number\" ? token.expires_in : undefined;\n return {\n endpoint,\n accessToken: token.access_token,\n refreshToken: typeof token.refresh_token === \"string\" ? token.refresh_token : previous?.refreshToken,\n tokenType: typeof token.token_type === \"string\" ? token.token_type : previous?.tokenType,\n expiresAt: expiresIn ? Date.now() + expiresIn * 1000 : previous?.expiresAt,\n scope: typeof token.scope === \"string\" ? token.scope : previous?.scope,\n clientId: previous?.clientId ?? \"ainecto-cli\",\n clientSecret: previous?.clientSecret,\n authorizationServer: metadata.issuer,\n updatedAt: new Date().toISOString(),\n };\n}\n\nasync function createLoopbackReceiver(expectedState: string): Promise<{\n redirectUri: string;\n waitForCode(): Promise<string>;\n close(): Promise<void>;\n}> {\n let resolveCode!: (code: string) => void;\n let rejectCode!: (error: Error) => void;\n const codePromise = new Promise<string>((resolve, reject) => {\n resolveCode = resolve;\n rejectCode = reject;\n });\n codePromise.catch(() => undefined);\n\n const server = createServer((req, res) => {\n const url = new URL(req.url ?? \"/\", \"http://127.0.0.1\");\n const error = url.searchParams.get(\"error\");\n const code = url.searchParams.get(\"code\");\n const state = url.searchParams.get(\"state\");\n if (error) {\n res.writeHead(400, { \"content-type\": \"text/plain\" });\n res.end(\"Ainecto CLI authorization failed. You can close this tab.\");\n rejectCode(new Error(`OAuth authorization failed: ${error}`));\n return;\n }\n if (!state || state !== expectedState) {\n res.writeHead(400, { \"content-type\": \"text/plain\" });\n res.end(\"Ainecto CLI authorization state mismatch. You can close this tab.\");\n rejectCode(new Error(\"OAuth state mismatch.\"));\n return;\n }\n if (!code) {\n res.writeHead(400, { \"content-type\": \"text/plain\" });\n res.end(\"Missing OAuth code.\");\n rejectCode(new Error(\"OAuth redirect did not include a code.\"));\n return;\n }\n res.writeHead(200, { \"content-type\": \"text/plain\" });\n res.end(\"Ainecto CLI authorization complete. You can close this tab.\");\n resolveCode(code);\n });\n\n await new Promise<void>((resolve) => server.listen(0, \"127.0.0.1\", resolve));\n const address = server.address();\n if (!address || typeof address === \"string\") {\n throw new Error(\"Loopback OAuth server did not bind to a TCP port.\");\n }\n return {\n redirectUri: `http://127.0.0.1:${address.port}/callback`,\n waitForCode: () => codePromise,\n close: () => new Promise<void>((resolve, reject) => server.close((error) => error ? reject(error) : resolve())),\n };\n}\n\nfunction parseStringArray(value: unknown): string[] {\n return Array.isArray(value) ? value.filter((item): item is string => typeof item === \"string\") : [];\n}\n\nasync function fetchJson<T>(url: string, fetchImpl: typeof fetch): Promise<T> {\n const response = await fetchImpl(url);\n if (!response.ok) {\n throw new Error(`Failed to fetch OAuth metadata from ${url}: HTTP ${response.status}.`);\n }\n return response.json() as Promise<T>;\n}\n\nasync function openBrowser(url: string): Promise<void> {\n const command = process.platform === \"darwin\" ? \"open\" : process.platform === \"win32\" ? \"cmd\" : \"xdg-open\";\n const args = process.platform === \"win32\" ? [\"/c\", \"start\", \"\", url] : [url];\n const child = spawn(command, args, { stdio: \"ignore\", detached: true });\n child.unref();\n}\n","export interface ClientRegistrationResult {\n clientId: string;\n clientSecret?: string;\n}\n\nexport async function registerPublicClient(\n registrationEndpoint: string,\n redirectUri: string,\n fetchImpl: typeof fetch = fetch,\n): Promise<ClientRegistrationResult> {\n const response = await fetchImpl(registrationEndpoint, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\", accept: \"application/json\" },\n body: JSON.stringify({\n client_name: \"Ainecto CLI\",\n redirect_uris: [redirectUri],\n token_endpoint_auth_method: \"none\",\n grant_types: [\"authorization_code\", \"refresh_token\"],\n response_types: [\"code\"],\n }),\n });\n if (!response.ok) {\n throw new Error(`OAuth client registration failed with HTTP ${response.status}.`);\n }\n const body = await response.json() as unknown;\n if (!isRecord(body) || typeof body.client_id !== \"string\") {\n throw new Error(\"OAuth client registration response did not include client_id.\");\n }\n return {\n clientId: body.client_id,\n clientSecret: typeof body.client_secret === \"string\" ? body.client_secret : undefined,\n };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","export type AinectoEnv = \"prod\" | \"dev\";\n\nexport interface EndpointResolutionInput {\n env?: AinectoEnv;\n endpoint?: string;\n envVars?: NodeJS.ProcessEnv;\n}\n\nexport interface ResolvedEndpoint {\n env: AinectoEnv;\n endpoint: string;\n source: \"flag\" | \"env\" | \"default\";\n}\n\nconst DEFAULT_ENDPOINTS: Record<AinectoEnv, string> = {\n prod: \"https://ainecto.com/mcp\",\n dev: \"https://dev.ainecto.com/mcp\",\n};\n\nexport function resolveEndpoint(input: EndpointResolutionInput = {}): ResolvedEndpoint {\n const envVars = input.envVars ?? process.env;\n const env = input.env ?? \"prod\";\n\n if (input.endpoint) {\n return { env, endpoint: normalizeEndpoint(input.endpoint), source: \"flag\" };\n }\n\n if (envVars.AINECTO_MCP_ENDPOINT) {\n return { env, endpoint: normalizeEndpoint(envVars.AINECTO_MCP_ENDPOINT), source: \"env\" };\n }\n\n return { env, endpoint: DEFAULT_ENDPOINTS[env], source: \"default\" };\n}\n\nexport function normalizeEndpoint(endpoint: string): string {\n const url = new URL(endpoint);\n url.hash = \"\";\n return url.toString().replace(/\\/$/, \"\");\n}\n\nexport function assertEnv(value: string | undefined): AinectoEnv | undefined {\n if (value === undefined) {\n return undefined;\n }\n if (value === \"prod\" || value === \"dev\") {\n return value;\n }\n throw new Error(`Invalid --env value \"${value}\". Expected \"prod\" or \"dev\".`);\n}\n","import { readFile } from \"node:fs/promises\";\n\nexport interface PayloadSourceInput {\n file?: string;\n inline?: string;\n stdin?: NodeJS.ReadStream;\n stdinText?: string;\n stdinIsTTY?: boolean;\n}\n\nexport interface ParsedPayload {\n value: unknown;\n source: \"file\" | \"stdin\" | \"inline\" | \"empty\";\n warnings: string[];\n}\n\nexport async function parsePayloadSource(input: PayloadSourceInput): Promise<ParsedPayload> {\n const warnings: string[] = [];\n const stdinIsTTY = input.stdinIsTTY ?? input.stdin?.isTTY ?? true;\n const hasInline = input.inline !== undefined && input.inline !== \"\";\n const hasStdin = input.stdinText !== undefined || !stdinIsTTY;\n\n if (input.file) {\n if (hasInline || hasStdin) {\n warnings.push(\"Multiple payload sources were provided; --file takes precedence.\");\n }\n const text = await readFileOrStdin(input.file, input);\n return { value: parseJson(text), source: input.file === \"-\" || input.file === \"@-\" ? \"stdin\" : \"file\", warnings };\n }\n\n if (hasStdin) {\n if (hasInline) {\n warnings.push(\"Multiple payload sources were provided; stdin takes precedence.\");\n }\n const text = input.stdinText ?? await readAllStdin(input.stdin);\n if (!text.trim()) {\n return { value: {}, source: \"empty\", warnings };\n }\n return { value: parseJson(text), source: \"stdin\", warnings };\n }\n\n if (hasInline) {\n const inline = input.inline === \"@-\" ? await readAllStdin(input.stdin) : input.inline;\n return { value: parseJson(inline), source: \"inline\", warnings };\n }\n\n return { value: {}, source: \"empty\", warnings };\n}\n\nfunction parseJson(text: string | undefined): unknown {\n if (text === undefined || !text.trim()) {\n return {};\n }\n try {\n return JSON.parse(text);\n } catch (error) {\n const detail = error instanceof Error ? error.message : String(error);\n throw new Error(`Invalid JSON payload: ${detail}`);\n }\n}\n\nasync function readFileOrStdin(file: string, input: PayloadSourceInput): Promise<string> {\n if (file === \"-\" || file === \"@-\") {\n return input.stdinText ?? await readAllStdin(input.stdin);\n }\n return readFile(file, \"utf8\");\n}\n\nasync function readAllStdin(stdin: NodeJS.ReadStream | undefined): Promise<string> {\n if (!stdin) {\n return \"\";\n }\n stdin.setEncoding(\"utf8\");\n let text = \"\";\n for await (const chunk of stdin) {\n text += chunk;\n }\n return text;\n}\n","import type { TokenProvider } from \"../auth/oauth\";\n\nexport interface JsonRpcRequest {\n jsonrpc: \"2.0\";\n id?: string | number | null;\n method: string;\n params?: unknown;\n}\n\nexport interface JsonRpcSuccess {\n jsonrpc: \"2.0\";\n id?: string | number | null;\n result: unknown;\n}\n\nexport interface JsonRpcFailure {\n jsonrpc: \"2.0\";\n id?: string | number | null;\n error: {\n code: number;\n message: string;\n data?: unknown;\n };\n}\n\nexport type JsonRpcResponse = JsonRpcSuccess | JsonRpcFailure;\n\nexport interface McpRpcClientOptions {\n endpoint: string;\n tokenProvider?: TokenProvider;\n fetchImpl?: typeof fetch;\n}\n\nexport class McpRpcError extends Error {\n constructor(\n message: string,\n readonly code: string,\n readonly details?: unknown,\n ) {\n super(message);\n }\n}\n\nexport class McpRpcClient {\n private readonly fetchImpl: typeof fetch;\n private nextId = 1;\n\n constructor(private readonly options: McpRpcClientOptions) {\n this.fetchImpl = options.fetchImpl ?? fetch;\n }\n\n initialize(): Promise<unknown> {\n return this.request(\"initialize\", {\n protocolVersion: \"2024-11-05\",\n capabilities: {},\n clientInfo: { name: \"@ainecto/mcp\", version: \"0.1.0\" },\n });\n }\n\n async toolsList(): Promise<unknown[]> {\n const result = await this.request(\"tools/list\", {});\n if (!isRecord(result) || !Array.isArray(result.tools)) {\n throw new McpRpcError(\"tools/list response did not include a tools array.\", \"MCP_PROTOCOL_ERROR\", result);\n }\n return result.tools;\n }\n\n async toolsCall(name: string, args: unknown): Promise<unknown> {\n return this.request(\"tools/call\", { name, arguments: args ?? {} });\n }\n\n async request(method: string, params?: unknown): Promise<unknown> {\n const response = await this.sendRaw({\n jsonrpc: \"2.0\",\n id: this.nextId++,\n method,\n params,\n });\n if (!response) {\n return undefined;\n }\n if (\"error\" in response) {\n throw new McpRpcError(response.error.message, \"MCP_ERROR\", response.error);\n }\n return response.result;\n }\n\n async sendRaw(request: JsonRpcRequest): Promise<JsonRpcResponse | undefined> {\n const token = await this.options.tokenProvider?.getAccessToken();\n let response = await this.postJson(request, token);\n if (response.status === 401 && this.options.tokenProvider) {\n const refreshed = await this.options.tokenProvider.refreshAfterUnauthorized();\n if (refreshed) {\n response = await this.postJson(request, refreshed);\n }\n }\n\n if (response.status === 204 || response.status === 202) {\n return undefined;\n }\n const text = await response.text();\n if (!response.ok) {\n throw new McpRpcError(`MCP HTTP request failed with HTTP ${response.status}.`, \"MCP_HTTP_ERROR\", {\n status: response.status,\n body: safeBodyPreview(text),\n });\n }\n if (!text.trim()) {\n return undefined;\n }\n const parsed = JSON.parse(text) as unknown;\n if (!isJsonRpcResponse(parsed)) {\n throw new McpRpcError(\"MCP response was not a JSON-RPC response.\", \"MCP_PROTOCOL_ERROR\", parsed);\n }\n return parsed;\n }\n\n private postJson(request: JsonRpcRequest, token: string | undefined): Promise<Response> {\n const headers: Record<string, string> = {\n \"content-type\": \"application/json\",\n accept: \"application/json\",\n };\n if (token) {\n headers.authorization = `Bearer ${token}`;\n }\n return this.fetchImpl(this.options.endpoint, {\n method: \"POST\",\n headers,\n body: JSON.stringify(request),\n });\n }\n}\n\nfunction isJsonRpcResponse(value: unknown): value is JsonRpcResponse {\n return isRecord(value)\n && value.jsonrpc === \"2.0\"\n && (\"result\" in value || \"error\" in value);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction safeBodyPreview(body: string): string {\n return body.length > 500 ? `${body.slice(0, 500)}...` : body;\n}\n","export interface CliErrorShape {\n ok: false;\n error: {\n code: string;\n message: string;\n details?: unknown;\n };\n}\n\nexport interface CliSuccessShape {\n ok: true;\n data: unknown;\n warnings?: string[];\n}\n\nexport function renderSuccess(data: unknown, options: { json?: boolean; warnings?: string[] } = {}): string {\n if (options.json) {\n const shape: CliSuccessShape = { ok: true, data };\n if (options.warnings?.length) {\n shape.warnings = options.warnings;\n }\n return `${JSON.stringify(shape, null, 2)}\\n`;\n }\n const warnings = options.warnings?.length ? `${options.warnings.map((warning) => `Warning: ${warning}`).join(\"\\n\")}\\n` : \"\";\n return `${warnings}${renderHuman(data)}\\n`;\n}\n\nexport function renderError(error: unknown, options: { json?: boolean } = {}): string {\n const shape = toErrorShape(error);\n if (options.json) {\n return `${JSON.stringify(shape, null, 2)}\\n`;\n }\n return `Error: ${shape.error.message}\\n`;\n}\n\nexport function toErrorShape(error: unknown): CliErrorShape {\n if (error instanceof Error) {\n const maybe = error as Error & { code?: string; details?: unknown };\n return {\n ok: false,\n error: {\n code: maybe.code ?? \"CLI_ERROR\",\n message: error.message,\n details: maybe.details,\n },\n };\n }\n return { ok: false, error: { code: \"CLI_ERROR\", message: String(error) } };\n}\n\nfunction renderHuman(data: unknown): string {\n if (Array.isArray(data)) {\n return data.map((item) => renderHuman(item)).join(\"\\n\");\n }\n if (typeof data === \"string\") {\n return data;\n }\n return JSON.stringify(data, null, 2);\n}\n","import type { GeneratedToolDefinition } from \"./types\";\n\nexport const generatedTools = [\n {\"mcpName\":\"mcp__ainecto__list_projects\",\"commandPath\":[\"projects\",\"list\"],\"group\":\"generic\",\"description\":\"List projects visible to the authenticated user.\",\"inputSchema\":{\"properties\":{},\"type\":\"object\"},\"required\":[],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"15947335f3573335\"},\n] satisfies GeneratedToolDefinition[];\n","import type { GeneratedToolDefinition } from \"./types\";\n\nexport const generatedTools = [\n {\"mcpName\":\"mcp__ainecto__create_documents\",\"commandPath\":[\"documents\",\"create\"],\"group\":\"document\",\"description\":\"Create documents. If a document body is tens of KB or more, prefer request_upload_token (purpose=document.create) and upload the body with curl.\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Documents\",\"items\":{\"properties\":{\"body\":{\"description\":\"Deprecated compatibility alias for typePayload.body when document type is markdown. 본문이 수십 KB 이상으로 크면 LLM 토큰 절약을 위해 `request_upload_token (purpose=document.create)` 를 호출해 uploadUrl 을 받고 curl 로 직접 PUT 으로 보낼 것.\",\"type\":\"string\"},\"folderUuid\":{\"description\":\"Optional folder UUID\",\"type\":\"string\"},\"projectUuid\":{\"description\":\"Project UUID\",\"type\":\"string\"},\"title\":{\"description\":\"Document title\",\"type\":\"string\"},\"type\":{\"description\":\"Document type. Enabled values: erd, markdown, testcase, task.\",\"enum\":[\"erd\",\"markdown\",\"testcase\",\"task\"],\"type\":\"string\"},\"typePayload\":{\"description\":\"Type-specific payload for enabled document types. markdown: {body}; testcase: {defaultEnvironment (max 50 chars), defaultTestAccount (max 100 chars)}; task: no typePayload; board and default statuses are seeded automatically.\",\"type\":\"object\"}},\"required\":[\"projectUuid\",\"type\",\"title\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"82748a9e6d632c2d\"},\n {\"mcpName\":\"mcp__ainecto__create_folders\",\"commandPath\":[\"folders\",\"create\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Folders\",\"items\":{\"properties\":{\"name\":{\"description\":\"Folder name\",\"type\":\"string\"},\"parentFolderUuid\":{\"description\":\"Parent folder UUID\",\"type\":\"string\"},\"projectUuid\":{\"description\":\"Project UUID\",\"type\":\"string\"}},\"required\":[\"projectUuid\",\"name\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"d423d3c265631664\"},\n {\"mcpName\":\"mcp__ainecto__create_projects\",\"commandPath\":[\"projects\",\"create\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Projects\",\"items\":{\"properties\":{\"description\":{\"description\":\"Description\",\"type\":\"string\"},\"name\":{\"description\":\"Project name\",\"type\":\"string\"},\"projectKey\":{\"description\":\"Unique project key\",\"type\":\"string\"},\"workspaceUuid\":{\"description\":\"Workspace UUID — null uses user's default workspace\",\"type\":\"string\"}},\"required\":[\"name\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"396c80c6cc2ba41a\"},\n {\"mcpName\":\"mcp__ainecto__create_workspaces\",\"commandPath\":[\"workspaces\",\"create\"],\"group\":\"workspace\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Workspaces\",\"items\":{\"properties\":{\"description\":{\"description\":\"Description\",\"type\":\"string\"},\"name\":{\"description\":\"Workspace name\",\"type\":\"string\"}},\"required\":[\"name\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"d663d461f9c9da65\"},\n {\"mcpName\":\"mcp__ainecto__delete_attachments\",\"commandPath\":[\"attachments\",\"delete\"],\"group\":\"attachment\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Attachment UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"6e55e6511d732199\"},\n {\"mcpName\":\"mcp__ainecto__delete_documents\",\"commandPath\":[\"documents\",\"delete\"],\"group\":\"document\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Document UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"5fbc7c142bb4a49d\"},\n {\"mcpName\":\"mcp__ainecto__delete_folders\",\"commandPath\":[\"folders\",\"delete\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Folder UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"49fa7c0f823871b2\"},\n {\"mcpName\":\"mcp__ainecto__delete_projects\",\"commandPath\":[\"projects\",\"delete\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Project UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"e1a86ddaa9638298\"},\n {\"mcpName\":\"mcp__ainecto__delete_workspaces\",\"commandPath\":[\"workspaces\",\"delete\"],\"group\":\"workspace\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Workspace UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"2aca644f7a105b06\"},\n {\"mcpName\":\"mcp__ainecto__disable_shares\",\"commandPath\":[\"tools\",\"run\",\"disable-shares\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"targetType\":{\"description\":\"Share target type\",\"enum\":[\"project\",\"folder\",\"document\"],\"type\":\"string\"},\"targetUuids\":{\"description\":\"Target UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"targetType\",\"targetUuids\"],\"type\":\"object\"},\"required\":[\"targetType\",\"targetUuids\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"a4b4358eff0faa97\"},\n {\"mcpName\":\"mcp__ainecto__enable_shares\",\"commandPath\":[\"tools\",\"run\",\"enable-shares\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"targetType\":{\"description\":\"Share target type\",\"enum\":[\"project\",\"folder\",\"document\"],\"type\":\"string\"},\"targetUuids\":{\"description\":\"Target UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"targetType\",\"targetUuids\"],\"type\":\"object\"},\"required\":[\"targetType\",\"targetUuids\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"ebace643de07e826\"},\n {\"mcpName\":\"mcp__ainecto__erd_apply_changes\",\"commandPath\":[\"erd\",\"apply-changes\"],\"group\":\"erd\",\"description\":\"Required single-call mutation path for ERD create/update/delete changes. Put tables, columns, indexes, refs, enums, enum_values, and table groups in one operations array and call this once.\\nRules: (1) all data field names are snake_case; (2) for create, generate your own UUIDs and put them in data.uuid, then later operations in the same batch may reference those UUIDs without read-back calls; (3) enum values are separate enum_value operations, not inline on enum; (4) ref.relationship uses short dbdiagram-style symbols: >, <, or -; (5) ref_column operations map FK columns explicitly, never automatically.\\nDo not look for type-specific ERD CUD tools; this tool is the only ERD CUD entry point. If operations is very large, use mcp__ainecto__request_upload_token with purpose=mcp.call and send the tools/call payload with curl to save LLM tokens.\\nOne-call worked example:\\n{\\n \\\"documentUuid\\\": \\\"erd-doc-uuid\\\",\\n \\\"description\\\": \\\"create users/posts ERD\\\",\\n \\\"operations\\\": [\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"table\\\",\\\"data\\\":{\\\"uuid\\\":\\\"tbl_users\\\",\\\"name\\\":\\\"users\\\",\\\"display_order\\\":1}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"column\\\",\\\"data\\\":{\\\"uuid\\\":\\\"col_users_id\\\",\\\"table_uuid\\\":\\\"tbl_users\\\",\\\"name\\\":\\\"id\\\",\\\"type\\\":\\\"bigint\\\",\\\"is_pk\\\":true,\\\"is_not_null\\\":true,\\\"display_order\\\":1}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"column\\\",\\\"data\\\":{\\\"uuid\\\":\\\"col_users_email\\\",\\\"table_uuid\\\":\\\"tbl_users\\\",\\\"name\\\":\\\"email\\\",\\\"type\\\":\\\"varchar(255)\\\",\\\"is_unique\\\":true,\\\"is_not_null\\\":true,\\\"display_order\\\":2}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"table\\\",\\\"data\\\":{\\\"uuid\\\":\\\"tbl_posts\\\",\\\"name\\\":\\\"posts\\\",\\\"display_order\\\":2}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"column\\\",\\\"data\\\":{\\\"uuid\\\":\\\"col_posts_id\\\",\\\"table_uuid\\\":\\\"tbl_posts\\\",\\\"name\\\":\\\"id\\\",\\\"type\\\":\\\"bigint\\\",\\\"is_pk\\\":true,\\\"is_not_null\\\":true,\\\"display_order\\\":1}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"column\\\",\\\"data\\\":{\\\"uuid\\\":\\\"col_posts_author_id\\\",\\\"table_uuid\\\":\\\"tbl_posts\\\",\\\"name\\\":\\\"author_id\\\",\\\"type\\\":\\\"bigint\\\",\\\"is_not_null\\\":true,\\\"display_order\\\":2}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"column\\\",\\\"data\\\":{\\\"uuid\\\":\\\"col_posts_status\\\",\\\"table_uuid\\\":\\\"tbl_posts\\\",\\\"name\\\":\\\"status\\\",\\\"type\\\":\\\"post_status\\\",\\\"is_not_null\\\":true,\\\"display_order\\\":3}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"enum\\\",\\\"data\\\":{\\\"uuid\\\":\\\"enum_post_status\\\",\\\"name\\\":\\\"post_status\\\"}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"enum_value\\\",\\\"data\\\":{\\\"uuid\\\":\\\"enum_post_status_draft\\\",\\\"enum_uuid\\\":\\\"enum_post_status\\\",\\\"value\\\":\\\"draft\\\",\\\"display_order\\\":1}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"enum_value\\\",\\\"data\\\":{\\\"uuid\\\":\\\"enum_post_status_published\\\",\\\"enum_uuid\\\":\\\"enum_post_status\\\",\\\"value\\\":\\\"published\\\",\\\"display_order\\\":2}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"ref\\\",\\\"data\\\":{\\\"uuid\\\":\\\"ref_posts_author\\\",\\\"name\\\":\\\"fk_posts_author\\\",\\\"from_table_uuid\\\":\\\"tbl_posts\\\",\\\"to_table_uuid\\\":\\\"tbl_users\\\",\\\"relationship\\\":\\\">\\\",\\\"on_delete\\\":\\\"cascade\\\"}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"ref_column\\\",\\\"data\\\":{\\\"uuid\\\":\\\"refcol_posts_author\\\",\\\"ref_uuid\\\":\\\"ref_posts_author\\\",\\\"from_column_uuid\\\":\\\"col_posts_author_id\\\",\\\"to_column_uuid\\\":\\\"col_users_id\\\",\\\"display_order\\\":1}}\\n ]\\n}\",\"inputSchema\":{\"properties\":{\"arrangeNewTables\":{\"description\":\"Whether to auto-place newly-created tables after the batch; defaults to true\",\"type\":\"boolean\"},\"description\":{\"description\":\"Reason for batch (audit)\",\"type\":\"string\"},\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"},\"operations\":{\"description\":\"Atomic create/update/delete operations\",\"items\":{\"description\":\"One ERD mutation. Use a single operations array with client-generated data.uuid values to create cross-referenced tables, columns, enums, refs, and ref_columns without read-back calls.\",\"discriminator\":{\"propertyName\":\"type\"},\"oneOf\":[{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table'.\",\"properties\":{\"alias\":{\"description\":\"Display alias.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"header_color\":{\"description\":\"Header color.\",\"type\":\"string\"},\"name\":{\"description\":\"Table name. Required for create.\",\"type\":\"string\"},\"note\":{\"description\":\"Table note.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Schema name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"name\"],\"title\":\"table data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table'.\",\"properties\":{\"alias\":{\"description\":\"Display alias.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"header_color\":{\"description\":\"Header color.\",\"type\":\"string\"},\"name\":{\"description\":\"Table name. Required for create.\",\"type\":\"string\"},\"note\":{\"description\":\"Table note.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Schema name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"table\",\"description\":\"Must be 'table' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"table operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='column'.\",\"properties\":{\"default_value\":{\"description\":\"Default value.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"is_increment\":{\"description\":\"Auto-increment flag.\",\"type\":\"boolean\"},\"is_not_null\":{\"description\":\"Not-null flag.\",\"type\":\"boolean\"},\"is_pk\":{\"description\":\"Primary key flag.\",\"type\":\"boolean\"},\"is_unique\":{\"description\":\"Unique flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Column name.\",\"type\":\"string\"},\"note\":{\"description\":\"Column note.\",\"type\":\"string\"},\"table_uuid\":{\"description\":\"Parent table UUID. Required for create; may be a data.uuid from an earlier table operation in this batch.\",\"type\":\"string\"},\"type\":{\"description\":\"SQL data type. Use this exact field name; do not send data_type.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"table_uuid\"],\"title\":\"column data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='column'.\",\"properties\":{\"default_value\":{\"description\":\"Default value.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"is_increment\":{\"description\":\"Auto-increment flag.\",\"type\":\"boolean\"},\"is_not_null\":{\"description\":\"Not-null flag.\",\"type\":\"boolean\"},\"is_pk\":{\"description\":\"Primary key flag.\",\"type\":\"boolean\"},\"is_unique\":{\"description\":\"Unique flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Column name.\",\"type\":\"string\"},\"note\":{\"description\":\"Column note.\",\"type\":\"string\"},\"table_uuid\":{\"description\":\"Parent table UUID. Required for create; may be a data.uuid from an earlier table operation in this batch.\",\"type\":\"string\"},\"type\":{\"description\":\"SQL data type. Use this exact field name; do not send data_type.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"column data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"column\",\"description\":\"Must be 'column' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"column operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='index'.\",\"properties\":{\"is_pk\":{\"description\":\"Primary key index flag.\",\"type\":\"boolean\"},\"is_unique\":{\"description\":\"Unique index flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Index name.\",\"type\":\"string\"},\"note\":{\"description\":\"Index note.\",\"type\":\"string\"},\"table_uuid\":{\"description\":\"Parent table UUID. Required for create.\",\"type\":\"string\"},\"type\":{\"description\":\"Index type.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"table_uuid\"],\"title\":\"index data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='index'.\",\"properties\":{\"is_pk\":{\"description\":\"Primary key index flag.\",\"type\":\"boolean\"},\"is_unique\":{\"description\":\"Unique index flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Index name.\",\"type\":\"string\"},\"note\":{\"description\":\"Index note.\",\"type\":\"string\"},\"table_uuid\":{\"description\":\"Parent table UUID. Required for create.\",\"type\":\"string\"},\"type\":{\"description\":\"Index type.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"index data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"index\",\"description\":\"Must be 'index' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"index operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='index_column'.\",\"properties\":{\"column_uuid\":{\"description\":\"Column UUID. Required for create.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"index_uuid\":{\"description\":\"Index UUID. Required for create.\",\"type\":\"string\"},\"sort_order\":{\"description\":\"Sort order, for example ASC or DESC.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"index_uuid\",\"column_uuid\"],\"title\":\"index_column data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='index_column'.\",\"properties\":{\"column_uuid\":{\"description\":\"Column UUID. Required for create.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"index_uuid\":{\"description\":\"Index UUID. Required for create.\",\"type\":\"string\"},\"sort_order\":{\"description\":\"Sort order, for example ASC or DESC.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"index_column data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"index_column\",\"description\":\"Must be 'index_column' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"index_column operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='ref'.\",\"properties\":{\"from_table_uuid\":{\"description\":\"Source table UUID. Required for create.\",\"type\":\"string\"},\"name\":{\"description\":\"Reference name.\",\"type\":\"string\"},\"on_delete\":{\"description\":\"ON DELETE action.\",\"type\":\"string\"},\"on_update\":{\"description\":\"ON UPDATE action.\",\"type\":\"string\"},\"relationship\":{\"description\":\"Required for create. Use short dbdiagram-style relationship symbols.\",\"enum\":[\">\",\"<\",\"-\"],\"type\":\"string\"},\"to_table_uuid\":{\"description\":\"Target table UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"from_table_uuid\",\"to_table_uuid\",\"relationship\"],\"title\":\"ref data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='ref'.\",\"properties\":{\"from_table_uuid\":{\"description\":\"Source table UUID. Required for create.\",\"type\":\"string\"},\"name\":{\"description\":\"Reference name.\",\"type\":\"string\"},\"on_delete\":{\"description\":\"ON DELETE action.\",\"type\":\"string\"},\"on_update\":{\"description\":\"ON UPDATE action.\",\"type\":\"string\"},\"relationship\":{\"description\":\"Required for create. Use short dbdiagram-style relationship symbols.\",\"enum\":[\">\",\"<\",\"-\"],\"type\":\"string\"},\"to_table_uuid\":{\"description\":\"Target table UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"ref data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"ref\",\"description\":\"Must be 'ref' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"ref operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='ref_column'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"from_column_uuid\":{\"description\":\"Source column UUID. Required for create.\",\"type\":\"string\"},\"ref_uuid\":{\"description\":\"Reference UUID. Required for create; may be a data.uuid from an earlier ref operation.\",\"type\":\"string\"},\"to_column_uuid\":{\"description\":\"Target column UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"ref_uuid\",\"from_column_uuid\",\"to_column_uuid\"],\"title\":\"ref_column data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='ref_column'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"from_column_uuid\":{\"description\":\"Source column UUID. Required for create.\",\"type\":\"string\"},\"ref_uuid\":{\"description\":\"Reference UUID. Required for create; may be a data.uuid from an earlier ref operation.\",\"type\":\"string\"},\"to_column_uuid\":{\"description\":\"Target column UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"ref_column data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"ref_column\",\"description\":\"Must be 'ref_column' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"ref_column operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='enum'.\",\"properties\":{\"name\":{\"description\":\"Enum name.\",\"type\":\"string\"},\"note\":{\"description\":\"Enum note.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Schema name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"enum data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='enum'.\",\"properties\":{\"name\":{\"description\":\"Enum name.\",\"type\":\"string\"},\"note\":{\"description\":\"Enum note.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Schema name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"enum data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"enum\",\"description\":\"Must be 'enum' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"enum operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='enum_value'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"enum_uuid\":{\"description\":\"Parent enum UUID. Required for create; may be a data.uuid from an earlier enum operation.\",\"type\":\"string\"},\"note\":{\"description\":\"Enum value note.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"},\"value\":{\"description\":\"Enum value. Inline enum values on enum are not persisted; create enum_value operations.\",\"type\":\"string\"}},\"required\":[\"enum_uuid\"],\"title\":\"enum_value data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='enum_value'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"enum_uuid\":{\"description\":\"Parent enum UUID. Required for create; may be a data.uuid from an earlier enum operation.\",\"type\":\"string\"},\"note\":{\"description\":\"Enum value note.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"},\"value\":{\"description\":\"Enum value. Inline enum values on enum are not persisted; create enum_value operations.\",\"type\":\"string\"}},\"title\":\"enum_value data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"enum_value\",\"description\":\"Must be 'enum_value' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"enum_value operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table_group'.\",\"properties\":{\"color\":{\"description\":\"Group color.\",\"type\":\"string\"},\"name\":{\"description\":\"Table group name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table_group'.\",\"properties\":{\"color\":{\"description\":\"Group color.\",\"type\":\"string\"},\"name\":{\"description\":\"Table group name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"table_group\",\"description\":\"Must be 'table_group' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"table_group operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table_group_table'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"group_uuid\":{\"description\":\"Table group UUID. Required for create.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Table schema name.\",\"type\":\"string\"},\"table_name\":{\"description\":\"Table name. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"group_uuid\",\"table_name\"],\"title\":\"table_group_table data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table_group_table'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"group_uuid\":{\"description\":\"Table group UUID. Required for create.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Table schema name.\",\"type\":\"string\"},\"table_name\":{\"description\":\"Table name. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group_table data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"table_group_table\",\"description\":\"Must be 'table_group_table' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"table_group_table operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table_group_note'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"group_uuid\":{\"description\":\"Table group UUID. Required for create.\",\"type\":\"string\"},\"note_uuid\":{\"description\":\"Note UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"group_uuid\",\"note_uuid\"],\"title\":\"table_group_note data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table_group_note'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"group_uuid\":{\"description\":\"Table group UUID. Required for create.\",\"type\":\"string\"},\"note_uuid\":{\"description\":\"Note UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group_note data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"table_group_note\",\"description\":\"Must be 'table_group_note' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"table_group_note operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='filter'.\",\"properties\":{\"included_tables\":{\"description\":\"JSON string/list of included tables.\",\"type\":\"string\"},\"is_default\":{\"description\":\"Default filter flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Filter name.\",\"type\":\"string\"},\"table_groups\":{\"description\":\"JSON string/object of table groups.\",\"type\":\"string\"},\"table_positions\":{\"description\":\"JSON string/object of table positions.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"filter data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='filter'.\",\"properties\":{\"included_tables\":{\"description\":\"JSON string/list of included tables.\",\"type\":\"string\"},\"is_default\":{\"description\":\"Default filter flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Filter name.\",\"type\":\"string\"},\"table_groups\":{\"description\":\"JSON string/object of table groups.\",\"type\":\"string\"},\"table_positions\":{\"description\":\"JSON string/object of table positions.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"filter data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"filter\",\"description\":\"Must be 'filter' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"filter operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='note'.\",\"properties\":{\"color\":{\"description\":\"Note color.\",\"type\":\"string\"},\"content\":{\"description\":\"Note content.\",\"type\":\"string\"},\"height\":{\"description\":\"Height.\",\"type\":\"integer\"},\"icon_name\":{\"description\":\"Icon name.\",\"type\":\"string\"},\"position_x\":{\"description\":\"X position.\",\"type\":\"integer\"},\"position_y\":{\"description\":\"Y position.\",\"type\":\"integer\"},\"title\":{\"description\":\"Note title.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"},\"width\":{\"description\":\"Width.\",\"type\":\"integer\"}},\"title\":\"note data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='note'.\",\"properties\":{\"color\":{\"description\":\"Note color.\",\"type\":\"string\"},\"content\":{\"description\":\"Note content.\",\"type\":\"string\"},\"height\":{\"description\":\"Height.\",\"type\":\"integer\"},\"icon_name\":{\"description\":\"Icon name.\",\"type\":\"string\"},\"position_x\":{\"description\":\"X position.\",\"type\":\"integer\"},\"position_y\":{\"description\":\"Y position.\",\"type\":\"integer\"},\"title\":{\"description\":\"Note title.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"},\"width\":{\"description\":\"Width.\",\"type\":\"integer\"}},\"title\":\"note data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"note\",\"description\":\"Must be 'note' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"note operation\",\"type\":\"object\"}],\"properties\":{\"data\":{\"description\":\"Type-specific payload. All field names are snake_case. For create, data.uuid may be client-supplied and referenced by later operations in the same batch.\",\"oneOf\":[{\"description\":\"Payload for operation.type='table'.\",\"properties\":{\"alias\":{\"description\":\"Display alias.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"header_color\":{\"description\":\"Header color.\",\"type\":\"string\"},\"name\":{\"description\":\"Table name. Required for create.\",\"type\":\"string\"},\"note\":{\"description\":\"Table note.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Schema name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='column'.\",\"properties\":{\"default_value\":{\"description\":\"Default value.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"is_increment\":{\"description\":\"Auto-increment flag.\",\"type\":\"boolean\"},\"is_not_null\":{\"description\":\"Not-null flag.\",\"type\":\"boolean\"},\"is_pk\":{\"description\":\"Primary key flag.\",\"type\":\"boolean\"},\"is_unique\":{\"description\":\"Unique flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Column name.\",\"type\":\"string\"},\"note\":{\"description\":\"Column note.\",\"type\":\"string\"},\"table_uuid\":{\"description\":\"Parent table UUID. Required for create; may be a data.uuid from an earlier table operation in this batch.\",\"type\":\"string\"},\"type\":{\"description\":\"SQL data type. Use this exact field name; do not send data_type.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"column data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='index'.\",\"properties\":{\"is_pk\":{\"description\":\"Primary key index flag.\",\"type\":\"boolean\"},\"is_unique\":{\"description\":\"Unique index flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Index name.\",\"type\":\"string\"},\"note\":{\"description\":\"Index note.\",\"type\":\"string\"},\"table_uuid\":{\"description\":\"Parent table UUID. Required for create.\",\"type\":\"string\"},\"type\":{\"description\":\"Index type.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"index data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='index_column'.\",\"properties\":{\"column_uuid\":{\"description\":\"Column UUID. Required for create.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"index_uuid\":{\"description\":\"Index UUID. Required for create.\",\"type\":\"string\"},\"sort_order\":{\"description\":\"Sort order, for example ASC or DESC.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"index_column data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='ref'.\",\"properties\":{\"from_table_uuid\":{\"description\":\"Source table UUID. Required for create.\",\"type\":\"string\"},\"name\":{\"description\":\"Reference name.\",\"type\":\"string\"},\"on_delete\":{\"description\":\"ON DELETE action.\",\"type\":\"string\"},\"on_update\":{\"description\":\"ON UPDATE action.\",\"type\":\"string\"},\"relationship\":{\"description\":\"Required for create. Use short dbdiagram-style relationship symbols.\",\"enum\":[\">\",\"<\",\"-\"],\"type\":\"string\"},\"to_table_uuid\":{\"description\":\"Target table UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"ref data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='ref_column'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"from_column_uuid\":{\"description\":\"Source column UUID. Required for create.\",\"type\":\"string\"},\"ref_uuid\":{\"description\":\"Reference UUID. Required for create; may be a data.uuid from an earlier ref operation.\",\"type\":\"string\"},\"to_column_uuid\":{\"description\":\"Target column UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"ref_column data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='enum'.\",\"properties\":{\"name\":{\"description\":\"Enum name.\",\"type\":\"string\"},\"note\":{\"description\":\"Enum note.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Schema name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"enum data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='enum_value'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"enum_uuid\":{\"description\":\"Parent enum UUID. Required for create; may be a data.uuid from an earlier enum operation.\",\"type\":\"string\"},\"note\":{\"description\":\"Enum value note.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"},\"value\":{\"description\":\"Enum value. Inline enum values on enum are not persisted; create enum_value operations.\",\"type\":\"string\"}},\"title\":\"enum_value data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='table_group'.\",\"properties\":{\"color\":{\"description\":\"Group color.\",\"type\":\"string\"},\"name\":{\"description\":\"Table group name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='table_group_table'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"group_uuid\":{\"description\":\"Table group UUID. Required for create.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Table schema name.\",\"type\":\"string\"},\"table_name\":{\"description\":\"Table name. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group_table data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='table_group_note'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"group_uuid\":{\"description\":\"Table group UUID. Required for create.\",\"type\":\"string\"},\"note_uuid\":{\"description\":\"Note UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group_note data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='filter'.\",\"properties\":{\"included_tables\":{\"description\":\"JSON string/list of included tables.\",\"type\":\"string\"},\"is_default\":{\"description\":\"Default filter flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Filter name.\",\"type\":\"string\"},\"table_groups\":{\"description\":\"JSON string/object of table groups.\",\"type\":\"string\"},\"table_positions\":{\"description\":\"JSON string/object of table positions.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"filter data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='note'.\",\"properties\":{\"color\":{\"description\":\"Note color.\",\"type\":\"string\"},\"content\":{\"description\":\"Note content.\",\"type\":\"string\"},\"height\":{\"description\":\"Height.\",\"type\":\"integer\"},\"icon_name\":{\"description\":\"Icon name.\",\"type\":\"string\"},\"position_x\":{\"description\":\"X position.\",\"type\":\"integer\"},\"position_y\":{\"description\":\"Y position.\",\"type\":\"integer\"},\"title\":{\"description\":\"Note title.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"},\"width\":{\"description\":\"Width.\",\"type\":\"integer\"}},\"title\":\"note data\",\"type\":\"object\"}],\"type\":\"object\"},\"op\":{\"description\":\"Operation. For create, put any new UUID in data.uuid; for update/delete, put target UUID in operation.uuid.\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"description\":\"ERD entity type. This selects the operation.data shape.\",\"enum\":[\"table\",\"column\",\"index\",\"index_column\",\"ref\",\"ref_column\",\"enum\",\"enum_value\",\"table_group\",\"table_group_table\",\"table_group_note\",\"filter\",\"note\"],\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete. Do not use this for create; use data.uuid instead.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"documentUuid\",\"description\",\"operations\"],\"type\":\"object\"},\"required\":[\"description\",\"documentUuid\",\"operations\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"dd64d1f996060ab1\"},\n {\"mcpName\":\"mcp__ainecto__erd_arrange_tables\",\"commandPath\":[\"erd\",\"arrange-tables\"],\"group\":\"erd\",\"description\":\"Arrange ERD tables after edits. Default incremental mode places newly-created tables while preserving existing positions; full=true re-layouts the entire diagram. Use after several separate table edits to tidy the canvas.\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"},\"full\":{\"description\":\"Re-layout the ENTIRE diagram (overwrites existing positions). Default false = arrange only newly-added (uncoordinated) tables to the top-right while preserving existing table positions. Call this after creating several tables to tidy them up.\",\"type\":\"boolean\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"d2e66548e3d60d30\"},\n {\"mcpName\":\"mcp__ainecto__erd_get_enum\",\"commandPath\":[\"erd\",\"get-enum\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"},\"enumUuid\":{\"description\":\"Enum UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"enumUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\",\"enumUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"1e477b3fadb50c6b\"},\n {\"mcpName\":\"mcp__ainecto__erd_get_ref\",\"commandPath\":[\"erd\",\"get-ref\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"},\"refUuid\":{\"description\":\"Relationship UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"refUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\",\"refUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"40bf1eb02e7a9730\"},\n {\"mcpName\":\"mcp__ainecto__erd_get_table\",\"commandPath\":[\"erd\",\"get-table\"],\"group\":\"erd\",\"description\":\"Get one ERD table with nested columns and indexes. Returns persistent table/column/index UUIDs usable directly as mcp__ainecto__erd_apply_changes update/delete targets and ref_column column references. Column fields use apply_changes snake_case names: uuid, table_uuid, name, type, is_pk, is_unique, is_not_null, is_increment, default_value, note, display_order. Index fields include uuid, name, columns (column UUIDs), is_unique, is_pk, type.\",\"inputSchema\":{\"description\":\"Get one ERD table with nested columns and indexes. Returns persistent table/column/index UUIDs usable directly as mcp__ainecto__erd_apply_changes update/delete targets and ref_column column references. Column fields use apply_changes snake_case names: uuid, table_uuid, name, type, is_pk, is_unique, is_not_null, is_increment, default_value, note, display_order. Index fields include uuid, name, columns (column UUIDs), is_unique, is_pk, type.\",\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"},\"tableUuid\":{\"description\":\"Table UUID. Response includes columns[] and indexes[] with persistent UUIDs for apply_changes.\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"tableUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\",\"tableUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"8edd40794f39f47a\"},\n {\"mcpName\":\"mcp__ainecto__erd_get_table_group\",\"commandPath\":[\"erd\",\"get-table-group\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"},\"tableGroupUuid\":{\"description\":\"Table group UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"tableGroupUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\",\"tableGroupUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"bcd417344639c0c9\"},\n {\"mcpName\":\"mcp__ainecto__erd_list_enums\",\"commandPath\":[\"erd\",\"list-enums\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"e0c2207905dbb068\"},\n {\"mcpName\":\"mcp__ainecto__erd_list_refs\",\"commandPath\":[\"erd\",\"list-refs\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"9ae2e04c310b57f2\"},\n {\"mcpName\":\"mcp__ainecto__erd_list_table_groups\",\"commandPath\":[\"erd\",\"list-table-groups\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"dc8811071df04ac2\"},\n {\"mcpName\":\"mcp__ainecto__erd_list_tables\",\"commandPath\":[\"erd\",\"list-tables\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"ca05b35b174fc209\"},\n {\"mcpName\":\"mcp__ainecto__get_attachment\",\"commandPath\":[\"attachment\",\"get\"],\"group\":\"attachment\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuid\":{\"description\":\"Attachment UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"required\":[\"uuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"12bee70f6d254a5d\"},\n {\"mcpName\":\"mcp__ainecto__get_document\",\"commandPath\":[\"document\",\"get\"],\"group\":\"document\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuid\":{\"description\":\"Document UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"required\":[\"uuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"4949c8a5bb425491\"},\n {\"mcpName\":\"mcp__ainecto__get_project\",\"commandPath\":[\"project\",\"get\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuid\":{\"description\":\"Project UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"required\":[\"uuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"b4ee9097f4b80df4\"},\n {\"mcpName\":\"mcp__ainecto__get_version\",\"commandPath\":[\"version\",\"get\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"Document UUID\",\"type\":\"string\"},\"versionNumber\":{\"description\":\"Version number\",\"type\":\"integer\"}},\"required\":[\"documentUuid\",\"versionNumber\"],\"type\":\"object\"},\"required\":[\"documentUuid\",\"versionNumber\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"ad81d04200d3d7f5\"},\n {\"mcpName\":\"mcp__ainecto__get_workspace\",\"commandPath\":[\"workspace\",\"get\"],\"group\":\"workspace\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuid\":{\"description\":\"Workspace UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"required\":[\"uuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"ef7bae555463116e\"},\n {\"mcpName\":\"mcp__ainecto__list_attachments\",\"commandPath\":[\"attachments\",\"list\"],\"group\":\"attachment\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"projectUuid\":{\"description\":\"Project UUID\",\"type\":\"string\"}},\"required\":[\"projectUuid\"],\"type\":\"object\"},\"required\":[\"projectUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"a75657bb2e5eb383\"},\n {\"mcpName\":\"mcp__ainecto__list_documents\",\"commandPath\":[\"documents\",\"list\"],\"group\":\"document\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"folderUuid\":{\"description\":\"Optional folder UUID\",\"type\":\"string\"},\"limit\":{\"description\":\"Result cap when q is set (default 50)\",\"type\":\"integer\"},\"projectUuid\":{\"description\":\"Project UUID\",\"type\":\"string\"},\"q\":{\"description\":\"Optional full-text query. When provided, results come from the search index instead of folder listing.\",\"type\":\"string\"},\"type\":{\"description\":\"Optional document type filter. Enabled values: erd, markdown, testcase, task.\",\"enum\":[\"erd\",\"markdown\",\"testcase\",\"task\"],\"type\":\"string\"}},\"type\":\"object\"},\"required\":[],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"dd179f8859509f8a\"},\n {\"mcpName\":\"mcp__ainecto__list_folders\",\"commandPath\":[\"folders\",\"list\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"projectUuid\":{\"description\":\"Project UUID\",\"type\":\"string\"}},\"required\":[\"projectUuid\"],\"type\":\"object\"},\"required\":[\"projectUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"f3cde57fe87d375c\"},\n {\"mcpName\":\"mcp__ainecto__list_projects\",\"commandPath\":[\"projects\",\"list\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"limit\":{\"description\":\"Result cap when q is set (default 50)\",\"type\":\"integer\"},\"q\":{\"description\":\"Optional full-text query\",\"type\":\"string\"},\"workspaceUuid\":{\"description\":\"Optional Workspace UUID\",\"type\":\"string\"}},\"type\":\"object\"},\"required\":[],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"9174d6965d7e53f5\"},\n {\"mcpName\":\"mcp__ainecto__list_trash\",\"commandPath\":[\"trash\",\"list\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{},\"type\":\"object\"},\"required\":[],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"82f8586d68bfcd7d\"},\n {\"mcpName\":\"mcp__ainecto__list_versions\",\"commandPath\":[\"versions\",\"list\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"Document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"370e4b8b8ec18e18\"},\n {\"mcpName\":\"mcp__ainecto__list_workspaces\",\"commandPath\":[\"workspaces\",\"list\"],\"group\":\"workspace\",\"description\":\"\",\"inputSchema\":{\"properties\":{},\"type\":\"object\"},\"required\":[],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"7c32c74000696b2f\"},\n {\"mcpName\":\"mcp__ainecto__markdown_append_document\",\"commandPath\":[\"markdown\",\"append-document\"],\"group\":\"markdown\",\"description\":\"Append to Markdown documents. If the appended body is tens of KB or more, prefer request_upload_token (purpose=document.append) and upload the body with curl.\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Appends\",\"items\":{\"properties\":{\"addition\":{\"description\":\"Body addition. 추가할 내용이 크면 (수십 KB 이상) LLM 토큰 절약을 위해 `request_upload_token (purpose=document.append, scopeJson={documentUuid, separator})` 로 uploadUrl 을 받고 curl 로 PUT 으로 보낼 것.\",\"type\":\"string\"},\"separator\":{\"description\":\"Separator between existing body and addition\",\"type\":\"string\"},\"uuid\":{\"description\":\"Document UUID\",\"type\":\"string\"}},\"required\":[\"uuid\",\"addition\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"f189514b3cccd1cc\"},\n {\"mcpName\":\"mcp__ainecto__markdown_generate_document\",\"commandPath\":[\"markdown\",\"generate-document\"],\"group\":\"markdown\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Generation requests\",\"items\":{\"properties\":{\"context\":{\"description\":\"Optional JSON context\",\"type\":\"string\"},\"documentUuid\":{\"description\":\"Target document UUID\",\"type\":\"string\"},\"prompt\":{\"description\":\"Generation prompt\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"prompt\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"72114a2d2642ed92\"},\n {\"mcpName\":\"mcp__ainecto__move_documents\",\"commandPath\":[\"documents\",\"move\"],\"group\":\"document\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Moves\",\"items\":{\"properties\":{\"newFolderUuid\":{\"description\":\"New folder UUID — null/empty for root\",\"type\":\"string\"},\"uuid\":{\"description\":\"Document UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"2ad5f10cc6313569\"},\n {\"mcpName\":\"mcp__ainecto__move_folders\",\"commandPath\":[\"folders\",\"move\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Moves\",\"items\":{\"properties\":{\"newParentFolderUuid\":{\"description\":\"New parent UUID — null/empty for root\",\"type\":\"string\"},\"uuid\":{\"description\":\"Folder UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"612a779b1fd176bb\"},\n {\"mcpName\":\"mcp__ainecto__request_upload_token\",\"commandPath\":[\"tools\",\"run\",\"request-upload-token\"],\"group\":\"attachment\",\"description\":\"Use this for large payloads of tens of KB or more to save LLM tokens. purpose=mcp.call returns a short-lived bearer token that can call any MCP tool, including mcp__ainecto__erd_apply_changes, via curl. purpose=document.create/update/append uploads document bodies directly to the upload endpoint with PUT/curl. Tokens are reusable for 5 minutes by default.\",\"inputSchema\":{\"properties\":{\"maxBytes\":{\"description\":\"최대 업로드 byte (서버 측 한도)\",\"type\":\"integer\"},\"purpose\":{\"description\":\"Token 용도. `mcp.call` 은 curl 로 /mcp 호출, `document.create/update/append` 는 PUT body 로 본문 업로드. 콘텐츠가 크면 (수십 KB 이상) LLM 토큰 절약을 위해 이 도구로 5분 재사용 토큰을 받고 curl 로 보내는 것을 강력 권장.\",\"enum\":[\"mcp.call\",\"document.create\",\"document.update\",\"document.append\"],\"type\":\"string\"},\"scopeJson\":{\"description\":\"선택 — JSON scope. document.create 는 projectUuid, type, title 을 포함하고 enabled type values 는 erd, markdown, testcase, task. document.update/document.append 는 documentUuid 를 포함.\",\"type\":\"string\"},\"ttlSeconds\":{\"description\":\"TTL (초). 기본 300 (5분)\",\"type\":\"integer\"}},\"required\":[\"purpose\"],\"type\":\"object\"},\"required\":[\"purpose\"],\"payloadMode\":\"binary-upload\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"ea6f645a8da9cddf\"},\n {\"mcpName\":\"mcp__ainecto__restore_versions\",\"commandPath\":[\"versions\",\"restore\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Restores\",\"items\":{\"properties\":{\"documentUuid\":{\"description\":\"Document UUID\",\"type\":\"string\"},\"versionNumber\":{\"description\":\"Version number to restore\",\"type\":\"integer\"}},\"required\":[\"documentUuid\",\"versionNumber\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"c4f448cc3b96c7a6\"},\n {\"mcpName\":\"mcp__ainecto__search_documents\",\"commandPath\":[\"documents\",\"search\"],\"group\":\"document\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"limit\":{\"description\":\"결과 개수 (기본 20, 최대 50)\",\"type\":\"integer\"},\"offset\":{\"description\":\"페이지네이션 offset (기본 0)\",\"type\":\"integer\"},\"projectUuid\":{\"description\":\"특정 프로젝트로 한정 (선택)\",\"type\":\"string\"},\"q\":{\"description\":\"검색 키워드\",\"type\":\"string\"},\"type\":{\"description\":\"Optional document type filter. Enabled values: erd, markdown, testcase, task.\",\"enum\":[\"erd\",\"markdown\",\"testcase\",\"task\"],\"type\":\"string\"}},\"required\":[\"q\"],\"type\":\"object\"},\"required\":[\"q\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"0110ec6ceba8993d\"},\n {\"mcpName\":\"mcp__ainecto__task_apply_changes\",\"commandPath\":[\"task\",\"apply-changes\"],\"group\":\"task\",\"description\":\"Task CUD entry point. Applies one atomic batch using operation objects shaped exactly as {op, uuid, data}. There is no partial success mode; any validation failure aborts the whole batch.\",\"inputSchema\":{\"examples\":[{\"baseRevision\":1,\"clientMutationId\":\"task-mutation-1\",\"documentUuid\":\"task-document-uuid\",\"operations\":[{\"data\":{\"parentTaskUuid\":null,\"title\":\"Task title\"},\"op\":\"create_task\",\"uuid\":\"client-task-uuid\"}]}],\"properties\":{\"baseRevision\":{\"description\":\"Current board revision from task_get_snapshot\",\"type\":\"integer\"},\"clientMutationId\":{\"description\":\"Optional idempotency key. Visible ASCII, 1-128 chars; will become required in a later phase.\",\"maxLength\":128,\"minLength\":1,\"pattern\":\"^[\\\\x21-\\\\x7E]{1,128}$\",\"type\":\"string\"},\"documentUuid\":{\"description\":\"Task document UUID\",\"type\":\"string\"},\"operations\":{\"description\":\"Atomic batch. No partial success mode; validation failure aborts all operations.\",\"items\":{\"additionalProperties\":false,\"properties\":{\"data\":{\"description\":\"Operation payload. Keep all operation-specific fields inside data.\",\"type\":\"object\"},\"op\":{\"description\":\"Operation type\",\"enum\":[\"create_task\",\"update_task\",\"archive_task\",\"restore_task\",\"move_task\",\"transition_task\",\"assign_task\",\"schedule_task\",\"set_progress\"],\"type\":\"string\"},\"uuid\":{\"description\":\"Task UUID. For create_task this is the client-generated UUID.\",\"type\":\"string\"}},\"required\":[\"op\",\"uuid\",\"data\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"documentUuid\",\"baseRevision\",\"operations\"],\"type\":\"object\"},\"required\":[\"baseRevision\",\"documentUuid\",\"operations\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"085eb6e8a3eae2c8\"},\n {\"mcpName\":\"mcp__ainecto__task_get_snapshot\",\"commandPath\":[\"task\",\"get-snapshot\"],\"group\":\"task\",\"description\":\"Get one Task document snapshot. Returns board revision, statuses, tasks, member summaries, and permissions. Use before mutations to obtain baseRevision.\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"Task document UUID\",\"type\":\"string\"},\"includeArchived\":{\"description\":\"Whether to include archived tasks\",\"type\":\"boolean\"},\"limit\":{\"description\":\"Maximum tasks to return; defaults to server snapshot cap\",\"type\":\"integer\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"a11876f9b475338a\"},\n {\"mcpName\":\"mcp__ainecto__task_get_task\",\"commandPath\":[\"task\",\"get-task\"],\"group\":\"task\",\"description\":\"Get one task by UUID from a Task document.\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"Task document UUID\",\"type\":\"string\"},\"taskUuid\":{\"description\":\"Task UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"taskUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\",\"taskUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"96b1ea530c583337\"},\n {\"mcpName\":\"mcp__ainecto__task_list_statuses\",\"commandPath\":[\"task\",\"list-statuses\"],\"group\":\"task\",\"description\":\"List statuses for a Task document. Status slug is intentionally not returned.\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"Task document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"864ea509c54fe2e7\"},\n {\"mcpName\":\"mcp__ainecto__task_list_tasks\",\"commandPath\":[\"task\",\"list-tasks\"],\"group\":\"task\",\"description\":\"List tasks in a Task document with optional parent/status/assignee filters.\",\"inputSchema\":{\"properties\":{\"assigneeUserId\":{\"description\":\"Optional assignee user id filter\",\"type\":\"string\"},\"documentUuid\":{\"description\":\"Task document UUID\",\"type\":\"string\"},\"includeArchived\":{\"description\":\"Whether to include archived tasks\",\"type\":\"boolean\"},\"limit\":{\"description\":\"Maximum tasks to return\",\"type\":\"integer\"},\"parentTaskUuid\":{\"description\":\"Optional parent filter\",\"type\":\"string\"},\"statusUuid\":{\"description\":\"Optional status filter\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"be8dc0a4ecd117a8\"},\n {\"mcpName\":\"mcp__ainecto__testcase_archive_scenarios\",\"commandPath\":[\"testcase\",\"archive-scenarios\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"ids\":{\"description\":\"Scenario ids\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"}},\"required\":[\"ids\"],\"type\":\"object\"},\"required\":[\"ids\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"a5a8768d14ebaed7\"},\n {\"mcpName\":\"mcp__ainecto__testcase_complete_runs\",\"commandPath\":[\"testcase\",\"complete-runs\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"ids\":{\"description\":\"Run ids\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"}},\"required\":[\"ids\"],\"type\":\"object\"},\"required\":[\"ids\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"84bc3dad482ac61a\"},\n {\"mcpName\":\"mcp__ainecto__testcase_create_runs\",\"commandPath\":[\"testcase\",\"create-runs\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Runs\",\"items\":{\"properties\":{\"buildVersion\":{\"description\":\"Build version\",\"type\":\"string\"},\"description\":{\"description\":\"Description\",\"type\":\"string\"},\"environment\":{\"description\":\"Environment\",\"type\":\"string\"},\"name\":{\"description\":\"Run name\",\"type\":\"string\"},\"projectId\":{\"description\":\"Project id\",\"type\":\"integer\"},\"testAccount\":{\"description\":\"SUT test account\",\"type\":\"string\"},\"testCaseIds\":{\"description\":\"Test case ids to attach\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"}},\"required\":[\"projectId\",\"name\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"6a08117c79f589a1\"},\n {\"mcpName\":\"mcp__ainecto__testcase_create_scenarios\",\"commandPath\":[\"testcase\",\"create-scenarios\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Scenarios\",\"items\":{\"properties\":{\"description\":{\"description\":\"Description\",\"type\":\"string\"},\"documentUuid\":{\"description\":\"Parent testcase document UUID\",\"type\":\"string\"},\"name\":{\"description\":\"Scenario name\",\"type\":\"string\"},\"parentId\":{\"description\":\"Parent scenario id\",\"type\":\"integer\"}},\"required\":[\"documentUuid\",\"name\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"4686fd0f078a65e8\"},\n {\"mcpName\":\"mcp__ainecto__testcase_create_testcases\",\"commandPath\":[\"testcase\",\"create-testcases\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Testcases\",\"items\":{\"properties\":{\"assigneeId\":{\"description\":\"Assignee user id\",\"type\":\"string\"},\"expectedResult\":{\"description\":\"Expected result\",\"type\":\"string\"},\"precondition\":{\"description\":\"Precondition\",\"type\":\"string\"},\"priority\":{\"description\":\"Priority\",\"enum\":[\"LOW\",\"MEDIUM\",\"HIGH\",\"CRITICAL\"],\"type\":\"string\"},\"scenarioId\":{\"description\":\"Scenario id (required)\",\"type\":\"integer\"},\"source\":{\"description\":\"Source\",\"enum\":[\"MANUAL\",\"AI\",\"IMPORT\",\"MCP\"],\"type\":\"string\"},\"status\":{\"description\":\"Status\",\"enum\":[\"DRAFT\",\"READY\",\"DEPRECATED\"],\"type\":\"string\"},\"tags\":{\"description\":\"Tags\",\"type\":\"string\"},\"testAccount\":{\"description\":\"SUT test account\",\"type\":\"string\"},\"title\":{\"description\":\"Title\",\"type\":\"string\"},\"type\":{\"description\":\"Type\",\"enum\":[\"FUNCTIONAL\",\"REGRESSION\",\"SMOKE\",\"PERFORMANCE\",\"SECURITY\",\"E2E\",\"UNIT\",\"INTEGRATION\"],\"type\":\"string\"}},\"required\":[\"scenarioId\",\"title\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"ae90d4749debacf0\"},\n {\"mcpName\":\"mcp__ainecto__testcase_delete_runs\",\"commandPath\":[\"testcase\",\"delete-runs\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"ids\":{\"description\":\"Run ids\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"}},\"required\":[\"ids\"],\"type\":\"object\"},\"required\":[\"ids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"1ba26baf794bde57\"},\n {\"mcpName\":\"mcp__ainecto__testcase_delete_testcases\",\"commandPath\":[\"testcase\",\"delete-testcases\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"ids\":{\"description\":\"Testcase ids\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"}},\"required\":[\"ids\"],\"type\":\"object\"},\"required\":[\"ids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"ab095f553bf46937\"},\n {\"mcpName\":\"mcp__ainecto__testcase_get_run\",\"commandPath\":[\"testcase\",\"get-run\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"id\":{\"description\":\"Run id\",\"type\":\"integer\"}},\"required\":[\"id\"],\"type\":\"object\"},\"required\":[\"id\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"713c83514cf07d68\"},\n {\"mcpName\":\"mcp__ainecto__testcase_get_testcase\",\"commandPath\":[\"testcase\",\"get-testcase\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"id\":{\"description\":\"Testcase id\",\"type\":\"integer\"}},\"required\":[\"id\"],\"type\":\"object\"},\"required\":[\"id\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"54e497a2e3c9978d\"},\n {\"mcpName\":\"mcp__ainecto__testcase_list_executions\",\"commandPath\":[\"testcase\",\"list-executions\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"runId\":{\"description\":\"Run id\",\"type\":\"integer\"}},\"required\":[\"runId\"],\"type\":\"object\"},\"required\":[\"runId\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"a5a2abcf9e43225e\"},\n {\"mcpName\":\"mcp__ainecto__testcase_list_runs\",\"commandPath\":[\"testcase\",\"list-runs\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"projectId\":{\"description\":\"Project id\",\"type\":\"integer\"}},\"required\":[\"projectId\"],\"type\":\"object\"},\"required\":[\"projectId\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"b7d5275b67bb11d9\"},\n {\"mcpName\":\"mcp__ainecto__testcase_list_scenarios\",\"commandPath\":[\"testcase\",\"list-scenarios\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"Parent testcase document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"2486ade3c9cb0984\"},\n {\"mcpName\":\"mcp__ainecto__testcase_list_step_checks\",\"commandPath\":[\"testcase\",\"list-step-checks\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"caseId\":{\"description\":\"Testcase id\",\"type\":\"integer\"},\"runId\":{\"description\":\"Run id\",\"type\":\"integer\"}},\"required\":[\"runId\",\"caseId\"],\"type\":\"object\"},\"required\":[\"caseId\",\"runId\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"f2d5b45c0d64cd5c\"},\n {\"mcpName\":\"mcp__ainecto__testcase_list_testcases\",\"commandPath\":[\"testcase\",\"list-testcases\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"Parent testcase document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"ef40927392d5a684\"},\n {\"mcpName\":\"mcp__ainecto__testcase_record_executions\",\"commandPath\":[\"testcase\",\"record-executions\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Executions\",\"items\":{\"properties\":{\"comment\":{\"description\":\"Comment\",\"type\":\"string\"},\"defectLinks\":{\"description\":\"Defect URLs\",\"type\":\"string\"},\"durationSeconds\":{\"description\":\"Duration in seconds\",\"type\":\"integer\"},\"result\":{\"description\":\"Result\",\"enum\":[\"PASSED\",\"FAILED\",\"BLOCKED\",\"SKIPPED\",\"UNTESTED\",\"IN_PROGRESS\"],\"type\":\"string\"},\"runId\":{\"description\":\"Run id\",\"type\":\"integer\"},\"testAccount\":{\"description\":\"SUT account\",\"type\":\"string\"},\"testCaseId\":{\"description\":\"Testcase id\",\"type\":\"integer\"}},\"required\":[\"runId\",\"testCaseId\",\"result\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"071a2075d00bff9b\"},\n {\"mcpName\":\"mcp__ainecto__testcase_remove_run_cases\",\"commandPath\":[\"testcase\",\"remove-run-cases\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"runId\":{\"description\":\"Run id\",\"type\":\"integer\"},\"testCaseIds\":{\"description\":\"Testcase ids to remove\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"}},\"required\":[\"runId\",\"testCaseIds\"],\"type\":\"object\"},\"required\":[\"runId\",\"testCaseIds\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"7aef8a39afe88c5c\"},\n {\"mcpName\":\"mcp__ainecto__testcase_reorder_scenarios\",\"commandPath\":[\"testcase\",\"reorder-scenarios\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"ids\":{\"description\":\"Scenario ids in new order\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"}},\"required\":[\"ids\"],\"type\":\"object\"},\"required\":[\"ids\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"7faf43a0b53c2988\"},\n {\"mcpName\":\"mcp__ainecto__testcase_reorder_testcases\",\"commandPath\":[\"testcase\",\"reorder-testcases\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"ids\":{\"description\":\"Testcase ids in new order\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"}},\"required\":[\"ids\"],\"type\":\"object\"},\"required\":[\"ids\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"5f27d8b94aca5334\"},\n {\"mcpName\":\"mcp__ainecto__testcase_update_runs\",\"commandPath\":[\"testcase\",\"update-runs\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Updates\",\"items\":{\"properties\":{\"buildVersion\":{\"description\":\"New build version\",\"type\":\"string\"},\"description\":{\"description\":\"New description\",\"type\":\"string\"},\"environment\":{\"description\":\"New environment\",\"type\":\"string\"},\"id\":{\"description\":\"Run id\",\"type\":\"integer\"},\"name\":{\"description\":\"New name\",\"type\":\"string\"},\"status\":{\"description\":\"New status\",\"enum\":[\"DRAFT\",\"IN_PROGRESS\",\"COMPLETED\",\"CANCELLED\"],\"type\":\"string\"},\"testAccount\":{\"description\":\"New SUT account\",\"type\":\"string\"}},\"required\":[\"id\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"370074b6681d495f\"},\n {\"mcpName\":\"mcp__ainecto__testcase_update_scenarios\",\"commandPath\":[\"testcase\",\"update-scenarios\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Updates\",\"items\":{\"properties\":{\"id\":{\"description\":\"Scenario id\",\"type\":\"integer\"},\"name\":{\"description\":\"New name\",\"type\":\"string\"},\"parentId\":{\"description\":\"New parent id\",\"type\":\"integer\"}},\"required\":[\"id\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"929c8647c06c5fdd\"},\n {\"mcpName\":\"mcp__ainecto__testcase_update_testcases\",\"commandPath\":[\"testcase\",\"update-testcases\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Updates\",\"items\":{\"properties\":{\"assigneeId\":{\"description\":\"Assignee\",\"type\":\"string\"},\"expectedResult\":{\"description\":\"New expected result\",\"type\":\"string\"},\"id\":{\"description\":\"Testcase id\",\"type\":\"integer\"},\"precondition\":{\"description\":\"New precondition\",\"type\":\"string\"},\"priority\":{\"description\":\"Priority\",\"enum\":[\"LOW\",\"MEDIUM\",\"HIGH\",\"CRITICAL\"],\"type\":\"string\"},\"scenarioId\":{\"description\":\"New scenario id\",\"type\":\"integer\"},\"status\":{\"description\":\"Status\",\"enum\":[\"DRAFT\",\"READY\",\"DEPRECATED\"],\"type\":\"string\"},\"tags\":{\"description\":\"Tags\",\"type\":\"string\"},\"testAccount\":{\"description\":\"SUT account\",\"type\":\"string\"},\"title\":{\"description\":\"New title\",\"type\":\"string\"},\"type\":{\"description\":\"Type\",\"enum\":[\"FUNCTIONAL\",\"REGRESSION\",\"SMOKE\",\"PERFORMANCE\",\"SECURITY\",\"E2E\",\"UNIT\",\"INTEGRATION\"],\"type\":\"string\"}},\"required\":[\"id\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"b562a7b860f6036c\"},\n {\"mcpName\":\"mcp__ainecto__testcase_upsert_step_checks\",\"commandPath\":[\"testcase\",\"upsert-step-checks\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"caseId\":{\"description\":\"Testcase id\",\"type\":\"integer\"},\"items\":{\"description\":\"Step checks\",\"items\":{\"properties\":{\"checked\":{\"description\":\"Checked state\",\"type\":\"boolean\"},\"comment\":{\"description\":\"Per-step note\",\"type\":\"string\"},\"stepId\":{\"description\":\"TestStep id\",\"type\":\"integer\"}},\"required\":[\"stepId\",\"checked\"],\"type\":\"object\"},\"type\":\"array\"},\"runId\":{\"description\":\"Run id\",\"type\":\"integer\"}},\"required\":[\"runId\",\"caseId\",\"items\"],\"type\":\"object\"},\"required\":[\"caseId\",\"items\",\"runId\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"ac5768125a9fd15c\"},\n {\"mcpName\":\"mcp__ainecto__unarchive_documents\",\"commandPath\":[\"documents\",\"unarchive\"],\"group\":\"document\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Document UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"4aae7df04fba8779\"},\n {\"mcpName\":\"mcp__ainecto__unarchive_folders\",\"commandPath\":[\"folders\",\"unarchive\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Folder UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"e307cab0ebafd179\"},\n {\"mcpName\":\"mcp__ainecto__unarchive_projects\",\"commandPath\":[\"projects\",\"unarchive\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Project UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"15ea4a409d1549de\"},\n {\"mcpName\":\"mcp__ainecto__unarchive_workspaces\",\"commandPath\":[\"workspaces\",\"unarchive\"],\"group\":\"workspace\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Workspace UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"641de5b64ec75ab2\"},\n {\"mcpName\":\"mcp__ainecto__update_documents\",\"commandPath\":[\"documents\",\"update\"],\"group\":\"document\",\"description\":\"Update documents. If a replacement body is tens of KB or more, prefer request_upload_token (purpose=document.update) and upload the body with curl.\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Updates\",\"items\":{\"properties\":{\"body\":{\"description\":\"Deprecated compatibility alias for typePayload.body when document type is markdown. 본문이 수십 KB 이상으로 크면 LLM 토큰 절약을 위해 `request_upload_token (purpose=document.update)` 를 호출해 uploadUrl 을 받고 curl 로 직접 PUT 으로 보낼 것.\",\"type\":\"string\"},\"title\":{\"description\":\"New title\",\"type\":\"string\"},\"typePayload\":{\"description\":\"Type-specific payload for enabled document types. markdown: {body}; testcase: {defaultEnvironment (max 50 chars), defaultTestAccount (max 100 chars)}; task: no typePayload; board and default statuses are seeded automatically.\",\"type\":\"object\"},\"uuid\":{\"description\":\"Document UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"7f0d7c8c17676b82\"},\n {\"mcpName\":\"mcp__ainecto__update_folders\",\"commandPath\":[\"folders\",\"update\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Updates\",\"items\":{\"properties\":{\"name\":{\"description\":\"New name\",\"type\":\"string\"},\"uuid\":{\"description\":\"Folder UUID\",\"type\":\"string\"}},\"required\":[\"uuid\",\"name\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"7bef3b4702df1f00\"},\n {\"mcpName\":\"mcp__ainecto__update_projects\",\"commandPath\":[\"projects\",\"update\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Updates\",\"items\":{\"properties\":{\"description\":{\"description\":\"New description\",\"type\":\"string\"},\"name\":{\"description\":\"New name\",\"type\":\"string\"},\"uuid\":{\"description\":\"Project UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"10cc0d84aeb2192b\"},\n {\"mcpName\":\"mcp__ainecto__update_workspaces\",\"commandPath\":[\"workspaces\",\"update\"],\"group\":\"workspace\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Updates\",\"items\":{\"properties\":{\"description\":{\"description\":\"New description\",\"type\":\"string\"},\"name\":{\"description\":\"New name\",\"type\":\"string\"},\"uuid\":{\"description\":\"Workspace UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"723e4f6d36ee9d02\"},\n {\"mcpName\":\"mcp__ainecto__upload_attachments\",\"commandPath\":[\"tools\",\"run\",\"upload-attachments\"],\"group\":\"attachment\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Attachments to register\",\"items\":{\"properties\":{\"contentType\":{\"description\":\"MIME type\",\"type\":\"string\"},\"documentUuid\":{\"description\":\"Parent document UUID\",\"type\":\"string\"},\"filename\":{\"description\":\"Original file name\",\"type\":\"string\"},\"sizeBytes\":{\"description\":\"Size in bytes\",\"type\":\"integer\"},\"storageKey\":{\"description\":\"Storage key (returned by request_upload_token)\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"filename\",\"storageKey\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"binary-upload\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"e5e8a2f1fd708938\"},\n] satisfies GeneratedToolDefinition[];\n","import { generatedTools as prodTools } from \"./generated.prod\";\nimport { generatedTools as devTools } from \"./generated.dev\";\nimport type { AinectoEnv } from \"../config/endpoints\";\n\nexport function getGeneratedTools(env: AinectoEnv) {\n return env === \"dev\" ? devTools : prodTools;\n}\n","import { createInterface } from \"node:readline\";\nimport type { Readable, Writable } from \"node:stream\";\nimport { McpRpcClient, type JsonRpcRequest } from \"./rpcClient\";\n\nexport interface StdioBridgeOptions {\n input: Readable;\n output: Writable;\n errorOutput: Writable;\n client: McpRpcClient;\n}\n\nexport async function runStdioBridge(options: StdioBridgeOptions): Promise<void> {\n const lines = createInterface({ input: options.input, crlfDelay: Infinity });\n\n for await (const line of lines) {\n if (!line.trim()) {\n continue;\n }\n try {\n const request = parseJsonRpcRequest(line);\n const response = await options.client.sendRaw(request);\n if (response && request.id !== undefined) {\n options.output.write(`${JSON.stringify(response)}\\n`);\n }\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n options.output.write(`${JSON.stringify({\n jsonrpc: \"2.0\",\n id: null,\n error: { code: -32603, message },\n })}\\n`);\n }\n }\n}\n\nfunction parseJsonRpcRequest(line: string): JsonRpcRequest {\n const parsed = JSON.parse(line) as unknown;\n if (!isRecord(parsed) || parsed.jsonrpc !== \"2.0\" || typeof parsed.method !== \"string\") {\n throw new Error(\"Invalid JSON-RPC request.\");\n }\n return {\n jsonrpc: \"2.0\",\n id: typeof parsed.id === \"string\" || typeof parsed.id === \"number\" || parsed.id === null ? parsed.id : undefined,\n method: parsed.method,\n params: parsed.params,\n };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import { FileTokenStore } from \"../../core/auth/tokenStore\";\nimport { OAuthClient } from \"../../core/auth/oauth\";\nimport { McpRpcClient } from \"../../core/mcp/rpcClient\";\nimport { runStdioBridge } from \"../../core/mcp/stdioBridge\";\nimport type { Readable, Writable } from \"node:stream\";\n\nexport interface ConnectorOptions {\n endpoint: string;\n input: Readable;\n output: Writable;\n errorOutput: Writable;\n}\n\nexport async function runConnector(options: ConnectorOptions): Promise<void> {\n const tokenStore = new FileTokenStore();\n const auth = new OAuthClient({ endpoint: options.endpoint, tokenStore });\n const client = new McpRpcClient({ endpoint: options.endpoint, tokenProvider: auth });\n await runStdioBridge({\n input: options.input,\n output: options.output,\n errorOutput: options.errorOutput,\n client,\n });\n}\n","import type { ToolPresentationEnrichment } from \"./types\";\n\nexport const enrichments = [\n {\n mcpName: \"mcp__ainecto__list_projects\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"name\", \"projectKey\", \"workspaceUuid\", \"updatedAt\"],\n displayName: \"List projects\",\n examples: [\"ainecto projects list --env dev\"],\n },\n {\n mcpName: \"mcp__ainecto__list_workspaces\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"name\", \"updatedAt\"],\n displayName: \"List workspaces\",\n },\n {\n mcpName: \"mcp__ainecto__list_folders\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"name\", \"projectUuid\", \"parentFolderUuid\", \"updatedAt\"],\n displayName: \"List folders\",\n },\n {\n mcpName: \"mcp__ainecto__list_documents\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"title\", \"type\", \"projectUuid\", \"folderUuid\", \"updatedAt\"],\n displayName: \"List documents\",\n },\n {\n mcpName: \"mcp__ainecto__search_documents\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"title\", \"type\", \"projectUuid\", \"updatedAt\"],\n displayName: \"Search documents\",\n },\n {\n mcpName: \"mcp__ainecto__list_attachments\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"filename\", \"contentType\", \"sizeBytes\", \"documentUuid\"],\n displayName: \"List attachments\",\n },\n {\n mcpName: \"mcp__ainecto__erd_list_tables\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"name\", \"schema_name\", \"display_order\"],\n displayName: \"List ERD tables\",\n },\n {\n mcpName: \"mcp__ainecto__erd_list_refs\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"name\", \"from_table_uuid\", \"to_table_uuid\", \"relationship\"],\n displayName: \"List ERD refs\",\n },\n {\n mcpName: \"mcp__ainecto__erd_list_enums\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"name\", \"display_order\"],\n displayName: \"List ERD enums\",\n },\n {\n mcpName: \"mcp__ainecto__erd_list_table_groups\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"name\", \"display_order\"],\n displayName: \"List ERD table groups\",\n },\n {\n mcpName: \"mcp__ainecto__task_list_tasks\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"title\", \"statusUuid\", \"assigneeId\", \"updatedAt\"],\n displayName: \"List tasks\",\n },\n {\n mcpName: \"mcp__ainecto__task_list_statuses\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"name\", \"displayOrder\"],\n displayName: \"List task statuses\",\n },\n {\n mcpName: \"mcp__ainecto__enable_shares\",\n aliases: [\"shares enable\"],\n displayName: \"Enable shares\",\n },\n {\n mcpName: \"mcp__ainecto__disable_shares\",\n aliases: [\"shares disable\"],\n displayName: \"Disable shares\",\n },\n] satisfies ToolPresentationEnrichment[];\n","export interface TableOptions {\n columns?: string[];\n}\n\nexport function renderTable(data: unknown, options: TableOptions = {}): string | undefined {\n const rows = extractRows(data);\n if (!rows.length || !rows.every(isRecord)) {\n return undefined;\n }\n\n const columns = options.columns?.length ? options.columns : inferColumns(rows);\n if (!columns.length) {\n return undefined;\n }\n\n const widths = columns.map((column) => Math.max(column.length, ...rows.map((row) => formatCell(row[column]).length)));\n const header = columns.map((column, index) => column.padEnd(widths[index] ?? column.length)).join(\" \");\n const divider = widths.map((width) => \"-\".repeat(width)).join(\" \");\n const body = rows.map((row) => columns.map((column, index) => formatCell(row[column]).padEnd(widths[index] ?? column.length)).join(\" \"));\n\n return [header, divider, ...body].join(\"\\n\");\n}\n\nfunction extractRows(data: unknown): unknown[] {\n if (Array.isArray(data)) {\n return data;\n }\n if (isRecord(data)) {\n for (const key of [\"items\", \"projects\", \"workspaces\", \"folders\", \"documents\", \"tasks\", \"attachments\", \"results\", \"data\"]) {\n const value = data[key];\n if (Array.isArray(value)) {\n return value;\n }\n }\n }\n return [];\n}\n\nfunction inferColumns(rows: Record<string, unknown>[]): string[] {\n const preferred = [\"uuid\", \"id\", \"name\", \"title\", \"status\", \"type\", \"projectUuid\", \"documentUuid\", \"createdAt\", \"updatedAt\"];\n const keys = new Set(rows.flatMap((row) => Object.keys(row)));\n const columns = preferred.filter((key) => keys.has(key));\n if (columns.length > 0) {\n return columns.slice(0, 6);\n }\n return [...keys].slice(0, 6);\n}\n\nfunction formatCell(value: unknown): string {\n if (value === null || value === undefined) {\n return \"\";\n }\n if (typeof value === \"object\") {\n return JSON.stringify(value);\n }\n return String(value);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","export class CliCommandError extends Error {\n constructor(\n readonly code: string,\n message: string,\n readonly details?: unknown,\n ) {\n super(message);\n }\n}\n","import type { GeneratedToolDefinition, JsonSchema } from \"../../core/catalog/types\";\nimport { parsePayloadSource, type ParsedPayload } from \"../../core/input/payloadSource\";\nimport { CliCommandError } from \"./errors\";\n\nexport interface ParsedCommandArgs {\n args: Record<string, unknown>;\n yes: boolean;\n warnings: string[];\n}\n\nexport async function parseGeneratedCommandArgs(\n tool: GeneratedToolDefinition,\n argv: string[],\n stdin: NodeJS.ReadStream,\n): Promise<ParsedCommandArgs> {\n const parsed = parseArgv(argv);\n const payload = await parsePayload(tool, parsed, stdin);\n const args = payloadToArgs(payload.value);\n const properties = getSchemaProperties(tool.inputSchema);\n\n for (const [key, value] of Object.entries(parsed.flags)) {\n if (key === \"yes\") {\n continue;\n }\n const schemaKey = resolveSchemaKey(key, properties);\n if (!schemaKey) {\n throw new CliCommandError(\"UNKNOWN_FLAG\", `Unknown flag --${key} for ${tool.commandPath.join(\" \")}.`, {\n flag: key,\n mcpName: tool.mcpName,\n });\n }\n args[schemaKey] = coerceFlagValue(value, properties[schemaKey], schemaKey);\n }\n\n for (const required of tool.required) {\n if (args[required] === undefined || args[required] === \"\") {\n throw new CliCommandError(\"MISSING_REQUIRED_FLAG\", `Missing required argument \"${required}\" for ${tool.commandPath.join(\" \")}.`, {\n required,\n flag: `--${camelToKebab(required)}`,\n mcpName: tool.mcpName,\n });\n }\n }\n\n return {\n args,\n yes: parsed.yes,\n warnings: payload.warnings,\n };\n}\n\nfunction payloadToArgs(value: unknown): Record<string, unknown> {\n if (value === undefined || value === null) {\n return {};\n }\n if (!isRecord(value)) {\n throw new CliCommandError(\"INVALID_PAYLOAD\", \"Generated command payload must be a JSON object.\", { value });\n }\n return { ...value };\n}\n\ninterface ParsedArgv {\n flags: Record<string, string | boolean>;\n yes: boolean;\n file?: string;\n inline?: string;\n}\n\nfunction parseArgv(argv: string[]): ParsedArgv {\n const flags: Record<string, string | boolean> = {};\n const inline: string[] = [];\n let file: string | undefined;\n let yes = false;\n\n for (let index = 0; index < argv.length; index += 1) {\n const arg = argv[index];\n if (!arg) {\n continue;\n }\n if (arg === \"--file\" || arg === \"-f\") {\n file = requireValue(arg, argv[++index]);\n continue;\n }\n if (arg === \"--yes\" || arg === \"-y\") {\n yes = true;\n flags.yes = true;\n continue;\n }\n if (arg.startsWith(\"--\")) {\n const withoutPrefix = arg.slice(2);\n const eqIndex = withoutPrefix.indexOf(\"=\");\n if (eqIndex >= 0) {\n const key = withoutPrefix.slice(0, eqIndex);\n flags[key] = withoutPrefix.slice(eqIndex + 1);\n continue;\n }\n const next = argv[index + 1];\n if (!next || next.startsWith(\"--\")) {\n flags[withoutPrefix] = true;\n continue;\n }\n flags[withoutPrefix] = next;\n index += 1;\n continue;\n }\n inline.push(arg);\n }\n\n return {\n flags,\n yes,\n file,\n inline: inline.length > 0 ? inline.join(\" \") : undefined,\n };\n}\n\nasync function parsePayload(\n tool: GeneratedToolDefinition,\n parsed: ParsedArgv,\n stdin: NodeJS.ReadStream,\n): Promise<ParsedPayload> {\n if (tool.payloadMode === \"file-json\" || parsed.file || parsed.inline) {\n return parsePayloadSource({\n file: parsed.file,\n inline: parsed.inline,\n stdin,\n });\n }\n\n return { value: {}, source: \"empty\", warnings: [] };\n}\n\nfunction resolveSchemaKey(flag: string, properties: Record<string, JsonSchema>): string | undefined {\n if (properties[flag]) {\n return flag;\n }\n const normalized = flag.toLowerCase();\n return Object.keys(properties).find((key) => camelToKebab(key) === normalized);\n}\n\nfunction coerceFlagValue(value: string | boolean, schema: JsonSchema | undefined, key: string): unknown {\n const type = schema?.type;\n if (type === \"boolean\") {\n if (typeof value === \"boolean\") {\n return value;\n }\n if (value === \"true\") return true;\n if (value === \"false\") return false;\n throw new CliCommandError(\"INVALID_FLAG_VALUE\", `Flag \"${key}\" must be a boolean.`, { key, value });\n }\n if (type === \"string\") {\n if (typeof value === \"boolean\") {\n throw new CliCommandError(\"FLAG_REQUIRES_VALUE\", `--${camelToKebab(key)} requires a value.`, { key });\n }\n return value;\n }\n if (type === \"integer\") {\n if (typeof value === \"boolean\" || !/^-?\\d+$/.test(value)) {\n const code = typeof value === \"boolean\" ? \"FLAG_REQUIRES_VALUE\" : \"INVALID_FLAG_VALUE\";\n throw new CliCommandError(code, `Flag \"${key}\" must be an integer.`, { key, value });\n }\n return Number.parseInt(value, 10);\n }\n if (type === \"number\") {\n if (typeof value === \"boolean\" || Number.isNaN(Number(value))) {\n const code = typeof value === \"boolean\" ? \"FLAG_REQUIRES_VALUE\" : \"INVALID_FLAG_VALUE\";\n throw new CliCommandError(code, `Flag \"${key}\" must be a number.`, { key, value });\n }\n return Number(value);\n }\n throw new CliCommandError(\"UNSUPPORTED_FLAG_PAYLOAD\", `Flag \"${key}\" is not a scalar field; provide it through --file, stdin, or inline JSON.`, {\n key,\n type,\n });\n}\n\nfunction getSchemaProperties(schema: JsonSchema): Record<string, JsonSchema> {\n const properties = schema.properties;\n if (!isRecord(properties)) {\n return {};\n }\n const result: Record<string, JsonSchema> = {};\n for (const [key, value] of Object.entries(properties)) {\n if (isRecord(value)) {\n result[key] = value;\n }\n }\n return result;\n}\n\nexport function camelToKebab(value: string): string {\n return value.replace(/[A-Z]/g, (char) => `-${char.toLowerCase()}`).toLowerCase();\n}\n\nfunction requireValue(flag: string, value: string | undefined): string {\n if (!value || value.startsWith(\"--\")) {\n throw new CliCommandError(\"FLAG_REQUIRES_VALUE\", `${flag} requires a value.`, { flag });\n }\n return value;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import { createInterface } from \"node:readline\";\nimport type { GeneratedToolDefinition } from \"../../core/catalog/types\";\nimport { CliCommandError } from \"./errors\";\n\nexport interface ConfirmationIO {\n stdin: NodeJS.ReadStream;\n stderr: NodeJS.WriteStream;\n}\n\nexport async function confirmDestructiveCommand(options: {\n tool: GeneratedToolDefinition;\n yes: boolean;\n json: boolean;\n io: ConfirmationIO;\n}): Promise<void> {\n if (!options.tool.destructive) {\n return;\n }\n if (options.yes) {\n return;\n }\n if (options.json) {\n throw new CliCommandError(\"CONFIRMATION_REQUIRED\", `Destructive command ${options.tool.commandPath.join(\" \")} requires --yes in --json mode.`, {\n mcpName: options.tool.mcpName,\n });\n }\n\n const answer = await promptConfirmation(options.io, `Run destructive command ${options.tool.commandPath.join(\" \")}? Type \"yes\" to continue: `);\n if (answer.trim().toLowerCase() !== \"yes\") {\n throw new CliCommandError(\"CONFIRMATION_DECLINED\", \"Destructive command was not confirmed.\", {\n mcpName: options.tool.mcpName,\n });\n }\n}\n\nasync function promptConfirmation(io: ConfirmationIO, message: string): Promise<string> {\n io.stderr.write(message);\n const rl = createInterface({ input: io.stdin, terminal: false });\n try {\n for await (const line of rl) {\n return line;\n }\n return \"\";\n } finally {\n rl.close();\n }\n}\n","export const ATTACHMENTS_UPLOAD_COMMAND_PATH = [\"attachments\", \"upload\"] as const;\n\nexport const BESPOKE_COMMAND_PATHS = [\n ATTACHMENTS_UPLOAD_COMMAND_PATH,\n] as const;\n","import type { McpRpcClient } from \"../../core/mcp/rpcClient\";\nimport type { GeneratedToolDefinition, ToolPresentationEnrichment } from \"../../core/catalog/types\";\nimport { enrichments } from \"../../core/catalog/enrichments\";\nimport { getGeneratedTools } from \"../../core/catalog\";\nimport type { AinectoEnv } from \"../../core/config/endpoints\";\nimport { renderSuccess } from \"../../core/output/render\";\nimport { renderTable } from \"../../core/output/table\";\nimport { parseGeneratedCommandArgs } from \"./flagParser\";\nimport { confirmDestructiveCommand, type ConfirmationIO } from \"./destructiveConfirmation\";\nimport { BESPOKE_COMMAND_PATHS } from \"./bespokeCommands\";\n\nexport interface GeneratedCommandRoute {\n tool: GeneratedToolDefinition;\n matchedPath: string[];\n rest: string[];\n presentation?: ToolPresentationEnrichment;\n rawContractWarning?: string;\n}\n\nexport interface GeneratedCommandExecutionOptions {\n env: AinectoEnv;\n argv: string[];\n client: McpRpcClient;\n json: boolean;\n io: ConfirmationIO & { stdout: NodeJS.WriteStream };\n}\n\nexport function matchGeneratedCommand(env: AinectoEnv, argv: string[]): GeneratedCommandRoute | undefined {\n const commandTokens = argv.filter((arg) => !arg.startsWith(\"-\"));\n const tools = getGeneratedTools(env);\n const entries = buildRouteEntries(tools, enrichments);\n const match = entries\n .filter((entry) => isPrefix(entry.path, commandTokens))\n .sort((a, b) => b.path.length - a.path.length)[0];\n\n if (!match) {\n return undefined;\n }\n\n const restStart = findRestStart(argv, match.path);\n return {\n tool: match.tool,\n matchedPath: match.path,\n rest: argv.slice(restStart),\n presentation: match.presentation,\n rawContractWarning: match.tool.payloadMode === \"binary-upload\"\n ? \"This generated command uses the raw MCP argument contract only; local file upload semantics are not implemented here.\"\n : undefined,\n };\n}\n\nexport async function executeGeneratedCommand(options: GeneratedCommandExecutionOptions): Promise<number> {\n const route = matchGeneratedCommand(options.env, options.argv);\n if (!route) {\n return 2;\n }\n\n const parsed = await parseGeneratedCommandArgs(route.tool, route.rest, options.io.stdin);\n await confirmDestructiveCommand({\n tool: route.tool,\n yes: parsed.yes,\n json: options.json,\n io: options.io,\n });\n\n const result = await options.client.toolsCall(route.tool.mcpName, parsed.args);\n const warnings = [...parsed.warnings, ...(route.rawContractWarning ? [route.rawContractWarning] : [])];\n options.io.stdout.write(renderGeneratedResult(result, {\n json: options.json,\n warnings,\n presentation: route.presentation,\n }));\n return 0;\n}\n\nexport function assertNoCommandCollisions(env: AinectoEnv): void {\n const entries = buildRouteEntries(getGeneratedTools(env), enrichments);\n const seen = new Map<string, string>();\n for (const entry of entries) {\n const key = entry.path.join(\" \");\n const existing = seen.get(key);\n if (existing) {\n throw new Error(`Command collision for \"${key}\": ${existing} and ${entry.tool.mcpName}`);\n }\n seen.set(key, entry.tool.mcpName);\n }\n for (const commandPath of BESPOKE_COMMAND_PATHS) {\n const command = commandPath.join(\" \");\n const existing = seen.get(command);\n if (existing) {\n throw new Error(`Bespoke command \"${command}\" collides with ${existing}.`);\n }\n }\n}\n\nfunction renderGeneratedResult(\n result: unknown,\n options: {\n json: boolean;\n warnings: string[];\n presentation?: ToolPresentationEnrichment;\n },\n): string {\n if (!options.json && options.presentation?.outputHint === \"table\") {\n const table = renderTable(result, { columns: options.presentation.tableColumns });\n if (table) {\n const warnings = options.warnings.length ? `${options.warnings.map((warning) => `Warning: ${warning}`).join(\"\\n\")}\\n` : \"\";\n return `${warnings}${table}\\n`;\n }\n }\n return renderSuccess(result, { json: options.json, warnings: options.warnings });\n}\n\nfunction buildRouteEntries(\n tools: readonly GeneratedToolDefinition[],\n presentations: readonly ToolPresentationEnrichment[],\n): Array<{ path: string[]; tool: GeneratedToolDefinition; presentation?: ToolPresentationEnrichment }> {\n const byName = new Map(presentations.map((presentation) => [presentation.mcpName, presentation]));\n const entries: Array<{ path: string[]; tool: GeneratedToolDefinition; presentation?: ToolPresentationEnrichment }> = [];\n for (const tool of tools) {\n const presentation = byName.get(tool.mcpName);\n entries.push({ path: tool.commandPath, tool, presentation });\n for (const alias of presentation?.aliases ?? []) {\n entries.push({ path: alias.split(/\\s+/).filter(Boolean), tool, presentation });\n }\n }\n return entries;\n}\n\nfunction isPrefix(prefix: string[], values: string[]): boolean {\n return prefix.every((value, index) => values[index] === value);\n}\n\nfunction findRestStart(argv: string[], commandPath: string[]): number {\n let matched = 0;\n for (let index = 0; index < argv.length; index += 1) {\n if (!argv[index]?.startsWith(\"-\")) {\n if (argv[index] !== commandPath[matched]) {\n return index;\n }\n matched += 1;\n if (matched === commandPath.length) {\n return index + 1;\n }\n }\n }\n return argv.length;\n}\n","import { readFile, stat } from \"node:fs/promises\";\nimport { basename, extname } from \"node:path\";\nimport { McpRpcClient } from \"../mcp/rpcClient\";\n\nexport interface AttachmentUploadFileInput {\n path: string;\n filename?: string;\n contentType?: string;\n}\n\nexport interface UploadAttachmentsInput {\n documentUuid: string;\n files: AttachmentUploadFileInput[];\n maxBytes?: number;\n ttlSeconds?: number;\n requestToolName?: string;\n commitToolName?: string;\n fetchImpl?: typeof fetch;\n onProgress?: (progress: AttachmentUploadProgress) => void;\n}\n\nexport type AttachmentUploadStage = \"token\" | \"put\" | \"register\" | \"done\";\n\nexport interface AttachmentUploadProgress {\n stage: AttachmentUploadStage;\n path: string;\n filename: string;\n index: number;\n total: number;\n}\n\nexport interface RegisteredAttachmentFile {\n path: string;\n documentUuid: string;\n filename: string;\n storageKey: string;\n contentType: string;\n sizeBytes: number;\n registerResult: unknown;\n}\n\nexport interface UploadAttachmentsResult {\n count: number;\n uploaded: RegisteredAttachmentFile[];\n}\n\nexport class AttachmentUploadError extends Error {\n constructor(\n readonly code: string,\n message: string,\n readonly details?: unknown,\n ) {\n super(message);\n }\n}\n\nexport async function uploadAttachments(\n client: McpRpcClient,\n input: UploadAttachmentsInput,\n): Promise<UploadAttachmentsResult> {\n if (!input.documentUuid.trim()) {\n throw new AttachmentUploadError(\"MISSING_REQUIRED_FLAG\", \"Missing required argument \\\"documentUuid\\\".\", {\n flag: \"--document-uuid\",\n });\n }\n if (input.files.length === 0) {\n throw new AttachmentUploadError(\"MISSING_FILE\", \"Expected at least one file to upload.\");\n }\n\n const fetchImpl = input.fetchImpl ?? fetch;\n const uploaded: RegisteredAttachmentFile[] = [];\n\n for (let index = 0; index < input.files.length; index += 1) {\n const file = input.files[index];\n if (!file) {\n continue;\n }\n uploaded.push(await uploadSingleAttachment(client, file, {\n documentUuid: input.documentUuid,\n maxBytes: input.maxBytes,\n ttlSeconds: input.ttlSeconds,\n requestToolName: input.requestToolName ?? \"mcp__ainecto__request_upload_token\",\n commitToolName: input.commitToolName ?? \"mcp__ainecto__upload_attachments\",\n fetchImpl,\n onProgress: input.onProgress,\n index,\n total: input.files.length,\n }));\n }\n\n return { count: uploaded.length, uploaded };\n}\n\ninterface SingleUploadContext {\n documentUuid: string;\n maxBytes?: number;\n ttlSeconds?: number;\n requestToolName: string;\n commitToolName: string;\n fetchImpl: typeof fetch;\n onProgress?: (progress: AttachmentUploadProgress) => void;\n index: number;\n total: number;\n}\n\ninterface UploadTokenResponse {\n token: string;\n uploadUrl: string;\n storageKey: string;\n}\n\ninterface UploadPutResponse {\n storageKey: string;\n sizeBytes: number;\n contentType: string;\n}\n\nasync function uploadSingleAttachment(\n client: McpRpcClient,\n file: AttachmentUploadFileInput,\n context: SingleUploadContext,\n): Promise<RegisteredAttachmentFile> {\n const metadata = await readFileMetadata(file);\n emitProgress(context, \"token\", file.path, metadata.filename);\n const uploadToken = await requestUploadToken(client, metadata, context);\n\n emitProgress(context, \"put\", file.path, metadata.filename);\n const putResult = await putAttachmentBytes(uploadToken, metadata, context.fetchImpl);\n validatePutResult(uploadToken, metadata, putResult);\n\n const item = {\n documentUuid: context.documentUuid,\n filename: metadata.filename,\n storageKey: uploadToken.storageKey,\n contentType: putResult.contentType,\n sizeBytes: putResult.sizeBytes,\n };\n\n emitProgress(context, \"register\", file.path, metadata.filename);\n const registerResult = await client.toolsCall(context.commitToolName, { items: [item] });\n\n emitProgress(context, \"done\", file.path, metadata.filename);\n return {\n path: file.path,\n documentUuid: context.documentUuid,\n filename: metadata.filename,\n storageKey: uploadToken.storageKey,\n contentType: putResult.contentType,\n sizeBytes: putResult.sizeBytes,\n registerResult,\n };\n}\n\nasync function readFileMetadata(file: AttachmentUploadFileInput): Promise<{\n bytes: Buffer;\n filename: string;\n contentType: string;\n sizeBytes: number;\n}> {\n const stats = await stat(file.path);\n if (!stats.isFile()) {\n throw new AttachmentUploadError(\"INVALID_FILE\", `Attachment path is not a file: ${file.path}`, { path: file.path });\n }\n const bytes = await readFile(file.path);\n return {\n bytes,\n filename: file.filename ?? basename(file.path),\n contentType: file.contentType ?? detectContentType(file.path),\n sizeBytes: bytes.byteLength,\n };\n}\n\nasync function requestUploadToken(\n client: McpRpcClient,\n metadata: { filename: string; contentType: string; sizeBytes: number },\n context: SingleUploadContext,\n): Promise<UploadTokenResponse> {\n const scopeJson = JSON.stringify({\n documentUuid: context.documentUuid,\n filename: metadata.filename,\n contentType: metadata.contentType,\n sizeBytes: metadata.sizeBytes,\n });\n const requestArgs: Record<string, unknown> = {\n purpose: \"attachment.upload\",\n scopeJson,\n };\n if (context.maxBytes !== undefined) {\n requestArgs.maxBytes = context.maxBytes;\n }\n if (context.ttlSeconds !== undefined) {\n requestArgs.ttlSeconds = context.ttlSeconds;\n }\n\n const response = unwrapMcpToolPayload(await client.toolsCall(context.requestToolName, requestArgs));\n if (!isRecord(response)) {\n throw new AttachmentUploadError(\"UPLOAD_TOKEN_PROTOCOL_ERROR\", \"request_upload_token response was not an object.\");\n }\n const token = response.token;\n const uploadUrl = response.uploadUrl;\n const storageKey = response.storageKey;\n if (typeof token !== \"string\" || token.length === 0) {\n throw new AttachmentUploadError(\"UPLOAD_TOKEN_PROTOCOL_ERROR\", \"request_upload_token response did not include token.\");\n }\n if (typeof uploadUrl !== \"string\" || uploadUrl.length === 0) {\n throw new AttachmentUploadError(\"UPLOAD_TOKEN_PROTOCOL_ERROR\", \"request_upload_token response did not include uploadUrl.\");\n }\n if (typeof storageKey !== \"string\" || storageKey.length === 0) {\n throw new AttachmentUploadError(\"UPLOAD_TOKEN_PROTOCOL_ERROR\", \"request_upload_token response did not include storageKey.\");\n }\n return { token, uploadUrl, storageKey };\n}\n\nasync function putAttachmentBytes(\n token: UploadTokenResponse,\n metadata: { bytes: Buffer; contentType: string },\n fetchImpl: typeof fetch,\n): Promise<UploadPutResponse> {\n const maxAttempts = 3;\n let lastRetryableError: unknown;\n for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {\n try {\n const response = await fetchImpl(token.uploadUrl, {\n method: \"PUT\",\n headers: {\n authorization: `Bearer ${token.token}`,\n \"content-type\": metadata.contentType,\n },\n body: new Uint8Array(metadata.bytes),\n });\n if (shouldRetryResponse(response.status) && attempt < maxAttempts) {\n continue;\n }\n if (!response.ok) {\n throw uploadHttpError(response.status);\n }\n return parsePutResponse(await response.text());\n } catch (error) {\n if (error instanceof AttachmentUploadError) {\n throw error;\n }\n lastRetryableError = error;\n if (attempt === maxAttempts) {\n break;\n }\n }\n }\n throw new AttachmentUploadError(\"ATTACHMENT_UPLOAD_FAILED\", \"Attachment upload failed.\", {\n cause: lastRetryableError instanceof Error ? lastRetryableError.message : String(lastRetryableError),\n });\n}\n\nfunction uploadHttpError(status: number): AttachmentUploadError {\n if (status === 409) {\n return new AttachmentUploadError(\"ATTACHMENT_UPLOAD_CONFLICT\", \"Attachment upload failed with HTTP 409 Conflict.\", { status });\n }\n if (status === 401 || status === 403) {\n return new AttachmentUploadError(\"ATTACHMENT_UPLOAD_TOKEN_EXPIRED\", `Attachment upload token was rejected with HTTP ${status}.`, { status });\n }\n return new AttachmentUploadError(\"ATTACHMENT_UPLOAD_HTTP_ERROR\", `Attachment upload failed with HTTP ${status}.`, { status });\n}\n\nfunction shouldRetryResponse(status: number): boolean {\n return status === 429 || status >= 500;\n}\n\nfunction parsePutResponse(text: string): UploadPutResponse {\n let parsed: unknown;\n try {\n parsed = JSON.parse(text);\n } catch {\n throw new AttachmentUploadError(\"ATTACHMENT_UPLOAD_PROTOCOL_ERROR\", \"Attachment PUT response was not valid JSON.\");\n }\n if (!isRecord(parsed)) {\n throw new AttachmentUploadError(\"ATTACHMENT_UPLOAD_PROTOCOL_ERROR\", \"Attachment PUT response was not an object.\");\n }\n if (typeof parsed.storageKey !== \"string\") {\n throw new AttachmentUploadError(\"ATTACHMENT_UPLOAD_PROTOCOL_ERROR\", \"Attachment PUT response did not include storageKey.\");\n }\n if (typeof parsed.sizeBytes !== \"number\" || !Number.isFinite(parsed.sizeBytes)) {\n throw new AttachmentUploadError(\"ATTACHMENT_UPLOAD_PROTOCOL_ERROR\", \"Attachment PUT response did not include numeric sizeBytes.\");\n }\n if (typeof parsed.contentType !== \"string\") {\n throw new AttachmentUploadError(\"ATTACHMENT_UPLOAD_PROTOCOL_ERROR\", \"Attachment PUT response did not include contentType.\");\n }\n return {\n storageKey: parsed.storageKey,\n sizeBytes: parsed.sizeBytes,\n contentType: parsed.contentType,\n };\n}\n\nfunction validatePutResult(\n token: UploadTokenResponse,\n metadata: { sizeBytes: number },\n putResult: UploadPutResponse,\n): void {\n if (putResult.storageKey !== token.storageKey) {\n throw new AttachmentUploadError(\"ATTACHMENT_UPLOAD_STORAGE_KEY_MISMATCH\", \"Attachment PUT response storageKey did not match the upload token.\", {\n expected: token.storageKey,\n actual: putResult.storageKey,\n });\n }\n if (putResult.sizeBytes !== metadata.sizeBytes) {\n throw new AttachmentUploadError(\"ATTACHMENT_UPLOAD_SIZE_MISMATCH\", \"Attachment PUT response sizeBytes did not match the local file size.\", {\n expected: metadata.sizeBytes,\n actual: putResult.sizeBytes,\n });\n }\n}\n\nfunction unwrapMcpToolPayload(value: unknown): unknown {\n if (!isRecord(value) || !Array.isArray(value.content)) {\n return value;\n }\n const text = value.content\n .map((item) => isRecord(item) && typeof item.text === \"string\" ? item.text : \"\")\n .find((itemText) => itemText.trim().startsWith(\"{\"));\n if (!text) {\n return value;\n }\n try {\n return JSON.parse(text) as unknown;\n } catch {\n return value;\n }\n}\n\nfunction emitProgress(\n context: SingleUploadContext,\n stage: AttachmentUploadStage,\n path: string,\n filename: string,\n): void {\n context.onProgress?.({\n stage,\n path,\n filename,\n index: context.index,\n total: context.total,\n });\n}\n\nfunction detectContentType(path: string): string {\n const extension = extname(path).toLowerCase();\n return MIME_BY_EXTENSION[extension] ?? \"application/octet-stream\";\n}\n\nconst MIME_BY_EXTENSION: Record<string, string> = {\n \".avif\": \"image/avif\",\n \".csv\": \"text/csv\",\n \".gif\": \"image/gif\",\n \".htm\": \"text/html\",\n \".html\": \"text/html\",\n \".jpeg\": \"image/jpeg\",\n \".jpg\": \"image/jpeg\",\n \".json\": \"application/json\",\n \".md\": \"text/markdown\",\n \".pdf\": \"application/pdf\",\n \".png\": \"image/png\",\n \".svg\": \"image/svg+xml\",\n \".txt\": \"text/plain\",\n \".webp\": \"image/webp\",\n \".xls\": \"application/vnd.ms-excel\",\n \".xlsx\": \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n \".zip\": \"application/zip\",\n};\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import type { McpRpcClient } from \"../../core/mcp/rpcClient\";\nimport {\n uploadAttachments,\n type AttachmentUploadProgress,\n type UploadAttachmentsResult,\n} from \"../../core/upload/attachmentUpload\";\nimport { renderSuccess } from \"../../core/output/render\";\nimport { CliCommandError } from \"./errors\";\nimport { ATTACHMENTS_UPLOAD_COMMAND_PATH } from \"./bespokeCommands\";\n\nexport interface AttachmentsUploadCommandOptions {\n argv: string[];\n client: McpRpcClient;\n json: boolean;\n io: {\n stdout: NodeJS.WriteStream;\n stderr: NodeJS.WriteStream;\n };\n}\n\nexport function isAttachmentsUploadCommand(domain: string | undefined, action: string | undefined): boolean {\n return domain === ATTACHMENTS_UPLOAD_COMMAND_PATH[0] && action === ATTACHMENTS_UPLOAD_COMMAND_PATH[1];\n}\n\nexport async function executeAttachmentsUploadCommand(options: AttachmentsUploadCommandOptions): Promise<number> {\n const parsed = parseAttachmentsUploadArgs(options.argv);\n const result = await uploadAttachments(options.client, {\n documentUuid: parsed.documentUuid,\n files: parsed.files.map((path) => ({\n path,\n filename: parsed.filename,\n contentType: parsed.contentType,\n })),\n maxBytes: parsed.maxBytes,\n ttlSeconds: parsed.ttlSeconds,\n onProgress: options.json ? undefined : (progress) => {\n renderProgress(progress, options.io.stderr);\n },\n });\n\n options.io.stdout.write(renderAttachmentUploadResult(result, options.json));\n return 0;\n}\n\ninterface ParsedAttachmentsUploadArgs {\n documentUuid: string;\n files: string[];\n filename?: string;\n contentType?: string;\n maxBytes?: number;\n ttlSeconds?: number;\n}\n\nfunction parseAttachmentsUploadArgs(argv: string[]): ParsedAttachmentsUploadArgs {\n const files: string[] = [];\n let documentUuid: string | undefined;\n let filename: string | undefined;\n let contentType: string | undefined;\n let maxBytes: number | undefined;\n let ttlSeconds: number | undefined;\n let readFilesOnly = false;\n\n for (let index = 0; index < argv.length; index += 1) {\n const arg = argv[index];\n if (!arg) {\n continue;\n }\n if (readFilesOnly) {\n files.push(arg);\n continue;\n }\n if (arg === \"--\") {\n readFilesOnly = true;\n continue;\n }\n if (arg === \"--document-uuid\" || arg === \"--documentUuid\") {\n documentUuid = requireValue(arg, argv[++index]);\n continue;\n }\n if (arg === \"--filename\" || arg === \"--name\") {\n filename = requireValue(arg, argv[++index]);\n continue;\n }\n if (arg === \"--content-type\" || arg === \"--contentType\") {\n contentType = requireValue(arg, argv[++index]);\n continue;\n }\n if (arg === \"--max-bytes\" || arg === \"--maxBytes\") {\n maxBytes = parsePositiveInteger(arg, requireValue(arg, argv[++index]));\n continue;\n }\n if (arg === \"--ttl-seconds\" || arg === \"--ttlSeconds\") {\n ttlSeconds = parsePositiveInteger(arg, requireValue(arg, argv[++index]));\n continue;\n }\n if (arg.startsWith(\"--\")) {\n throw new CliCommandError(\"UNKNOWN_FLAG\", `Unknown flag ${arg} for attachments upload.`, { flag: arg });\n }\n files.push(arg);\n }\n\n if (!documentUuid) {\n throw new CliCommandError(\"MISSING_REQUIRED_FLAG\", \"Missing required argument \\\"documentUuid\\\" for attachments upload.\", {\n flag: \"--document-uuid\",\n });\n }\n if (files.length === 0) {\n throw new CliCommandError(\"MISSING_FILE\", \"Expected at least one file to upload.\");\n }\n if (filename && files.length !== 1) {\n throw new CliCommandError(\"INVALID_FLAG_VALUE\", \"--filename/--name can only be used with exactly one file.\", {\n flag: \"--filename\",\n files: files.length,\n });\n }\n\n return {\n documentUuid,\n files,\n filename,\n contentType,\n maxBytes,\n ttlSeconds,\n };\n}\n\nfunction parsePositiveInteger(flag: string, value: string): number {\n if (!/^[1-9]\\d*$/.test(value)) {\n throw new CliCommandError(\"INVALID_FLAG_VALUE\", `${flag} must be a positive integer.`, { flag, value });\n }\n return Number.parseInt(value, 10);\n}\n\nfunction requireValue(flag: string, value: string | undefined): string {\n if (!value || value.startsWith(\"--\")) {\n throw new CliCommandError(\"FLAG_REQUIRES_VALUE\", `${flag} requires a value.`, { flag });\n }\n return value;\n}\n\nfunction renderProgress(progress: AttachmentUploadProgress, stderr: NodeJS.WriteStream): void {\n if (progress.stage === \"token\") {\n stderr.write(`Uploading ${progress.filename} (${progress.index + 1}/${progress.total})...\\n`);\n }\n}\n\nfunction renderAttachmentUploadResult(result: UploadAttachmentsResult, json: boolean): string {\n if (json) {\n return renderSuccess(result, { json });\n }\n const lines = [\n `Uploaded ${result.count} attachment${result.count === 1 ? \"\" : \"s\"}.`,\n ...result.uploaded.map((file) => `- ${file.filename} (${file.sizeBytes} bytes)`),\n ];\n return renderSuccess(lines.join(\"\\n\"), { json: false });\n}\n","import { FileTokenStore } from \"../../core/auth/tokenStore\";\nimport { OAuthClient } from \"../../core/auth/oauth\";\nimport { resolveEndpoint, assertEnv, type AinectoEnv } from \"../../core/config/endpoints\";\nimport { parsePayloadSource } from \"../../core/input/payloadSource\";\nimport { McpRpcClient } from \"../../core/mcp/rpcClient\";\nimport { renderError, renderSuccess } from \"../../core/output/render\";\nimport { getGeneratedTools } from \"../../core/catalog\";\nimport { runConnector } from \"../mcp/connector\";\nimport { executeGeneratedCommand } from \"./generatedCommandRouter\";\nimport { executeAttachmentsUploadCommand, isAttachmentsUploadCommand } from \"./attachmentsUploadCommand\";\n\nexport interface CliIO {\n stdout: NodeJS.WriteStream;\n stderr: NodeJS.WriteStream;\n stdin: NodeJS.ReadStream;\n}\n\nexport async function runAinectoCli(argv: string[], io: CliIO): Promise<number> {\n let parsed: GlobalArgs = { json: argv.includes(\"--json\"), help: false, positionals: [] };\n try {\n parsed = parseGlobalArgs(argv);\n if (parsed.help || parsed.positionals.length === 0) {\n io.stdout.write(helpText());\n return 0;\n }\n\n const resolved = resolveEndpoint({ env: parsed.env, endpoint: parsed.endpoint });\n const tokenStore = new FileTokenStore();\n const auth = new OAuthClient({ endpoint: resolved.endpoint, tokenStore });\n const client = new McpRpcClient({ endpoint: resolved.endpoint, tokenProvider: auth });\n const [domain, action, ...rest] = parsed.positionals;\n\n if (domain === \"mcp\") {\n await runConnector({\n endpoint: resolved.endpoint,\n input: io.stdin,\n output: io.stdout,\n errorOutput: io.stderr,\n });\n return 0;\n }\n\n if (domain === \"auth\") {\n return handleAuth(action, auth, resolved.endpoint, parsed.json, io);\n }\n\n if (isAttachmentsUploadCommand(domain, action)) {\n return await executeAttachmentsUploadCommand({\n argv: rest,\n client,\n json: parsed.json,\n io,\n });\n }\n\n const generatedResult = await executeGeneratedCommand({\n env: parsed.env ?? \"prod\",\n argv: parsed.positionals,\n client,\n json: parsed.json,\n io,\n });\n if (generatedResult !== 2) {\n return generatedResult;\n }\n\n if (domain === \"tools\") {\n return handleTools(action, rest, parsed, client, io);\n }\n\n throw new Error(`Unknown command \"${domain}\".`);\n } catch (error) {\n io.stderr.write(renderError(error, { json: parsed.json }));\n return 1;\n }\n}\n\nasync function handleAuth(\n action: string | undefined,\n auth: OAuthClient,\n endpoint: string,\n json: boolean,\n io: CliIO,\n): Promise<number> {\n if (action === \"login\") {\n await auth.login();\n io.stdout.write(renderSuccess({ endpoint, authenticated: true }, { json }));\n return 0;\n }\n if (action === \"status\") {\n const token = await auth.getAccessToken();\n io.stdout.write(renderSuccess({ endpoint, authenticated: Boolean(token) }, { json }));\n return 0;\n }\n if (action === \"logout\") {\n await auth.logout();\n io.stdout.write(renderSuccess({ endpoint, authenticated: false }, { json }));\n return 0;\n }\n throw new Error(\"Expected auth login, auth status, or auth logout.\");\n}\n\nasync function handleTools(\n action: string | undefined,\n rest: string[],\n parsed: GlobalArgs,\n client: McpRpcClient,\n io: CliIO,\n): Promise<number> {\n if (action === \"list\") {\n const tools = await client.toolsList();\n io.stdout.write(renderSuccess(tools, { json: parsed.json }));\n return 0;\n }\n\n if (action === \"call\") {\n const toolName = rest[0];\n if (!toolName) {\n throw new Error(\"Expected MCP tool name after tools call.\");\n }\n const toolArgs = rest.slice(1);\n const payloadOptions = parsePayloadArgs(toolArgs);\n const payload = await parsePayloadSource({\n file: payloadOptions.file,\n inline: payloadOptions.inline,\n stdin: io.stdin,\n });\n const result = await client.toolsCall(toolName, payload.value);\n io.stdout.write(renderSuccess(result, { json: parsed.json, warnings: payload.warnings }));\n return 0;\n }\n\n if (action === \"catalog\") {\n const catalogEnv = parsed.env ?? \"prod\";\n io.stdout.write(renderSuccess(getGeneratedTools(parsed.env ?? \"prod\"), {\n json: parsed.json,\n warnings: [catalogEnv === \"dev\"\n ? \"Local dev catalog is a checked-in live sync snapshot; rerun sync:tools --env dev to refresh it.\"\n : \"Local prod catalog is seed fixture only until authenticated prod live sync updates generated catalogs.\"],\n }));\n return 0;\n }\n\n throw new Error(\"Expected tools list, tools call <mcpName>, or tools catalog.\");\n}\n\ninterface GlobalArgs {\n env?: AinectoEnv;\n endpoint?: string;\n json: boolean;\n help: boolean;\n positionals: string[];\n}\n\nfunction parseGlobalArgs(argv: string[]): GlobalArgs {\n const result: GlobalArgs = { json: false, help: false, positionals: [] };\n for (let index = 0; index < argv.length; index += 1) {\n const arg = argv[index];\n if (!arg) {\n continue;\n }\n if (arg === \"--env\") {\n result.env = assertEnv(requireValue(arg, argv[++index]));\n } else if (arg === \"--endpoint\") {\n result.endpoint = requireValue(arg, argv[++index]);\n } else if (arg === \"--json\") {\n result.json = true;\n } else if (arg === \"--help\" || arg === \"-h\") {\n result.help = true;\n } else {\n result.positionals.push(arg);\n }\n }\n return result;\n}\n\nfunction parsePayloadArgs(argv: string[]): { file?: string; inline?: string } {\n const result: { file?: string; inline?: string } = {};\n const inline: string[] = [];\n for (let index = 0; index < argv.length; index += 1) {\n const arg = argv[index];\n if (!arg) {\n continue;\n }\n if (arg === \"--file\" || arg === \"-f\") {\n result.file = requireValue(arg, argv[++index]);\n } else {\n inline.push(arg);\n }\n }\n if (inline.length > 0) {\n result.inline = inline.join(\" \");\n }\n return result;\n}\n\nfunction requireValue(flag: string, value: string | undefined): string {\n if (!value || value.startsWith(\"--\")) {\n throw new Error(`${flag} requires a value.`);\n }\n return value;\n}\n\nfunction helpText(): string {\n return [\n \"Ainecto CLI\",\n \"\",\n \"Usage:\",\n \" ainecto auth login|status|logout [--env prod|dev] [--endpoint URL] [--json]\",\n \" ainecto tools list [--env prod|dev] [--endpoint URL] [--json]\",\n \" ainecto tools call <mcpName> [-f payload.json|@-] [inline-json] [--json]\",\n \" ainecto attachments upload --document-uuid <uuid> <file...> [--json]\",\n \" ainecto <generated-command> [flags] [-f payload.json] [--yes] [--json]\",\n \" ainecto mcp [--env prod|dev] [--endpoint URL]\",\n \"\",\n ].join(\"\\n\");\n}\n","#!/usr/bin/env node\nimport { runAinectoCli } from \"../adapters/cli/ainectoCli\";\n\nconst exitCode = await runAinectoCli(process.argv.slice(2), {\n stdin: process.stdin,\n stdout: process.stdout,\n stderr: process.stderr,\n});\n\nprocess.exitCode = exitCode;\n"],"mappings":"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","names":["createHash","createHash","readFile","isRecord","generatedTools","generatedTools","isRecord","isRecord","isRecord","createInterface","createInterface","readFile","stat","isRecord","requireValue","requireValue"]}
|
|
1
|
+
{"version":3,"sources":["../../src/core/auth/tokenStore.ts","../../src/core/auth/oauth.ts","../../src/core/auth/clientRegistration.ts","../../src/core/config/endpoints.ts","../../src/core/input/payloadSource.ts","../../src/core/mcp/rpcClient.ts","../../src/core/output/render.ts","../../src/core/catalog/generated.prod.ts","../../src/core/catalog/generated.dev.ts","../../src/core/catalog/index.ts","../../src/core/mcp/stdioBridge.ts","../../src/adapters/mcp/connector.ts","../../src/core/catalog/enrichments.ts","../../src/core/output/table.ts","../../src/adapters/cli/errors.ts","../../src/adapters/cli/flagParser.ts","../../src/adapters/cli/destructiveConfirmation.ts","../../src/adapters/cli/bespokeCommands.ts","../../src/adapters/cli/generatedCommandRouter.ts","../../src/core/upload/attachmentUpload.ts","../../src/adapters/cli/attachmentsUploadCommand.ts","../../src/adapters/cli/ainectoCli.ts","../../src/bin/ainecto.ts"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport { mkdir, readFile, rename, rm, stat, writeFile, chmod } from \"node:fs/promises\";\nimport { homedir } from \"node:os\";\nimport { dirname, join } from \"node:path\";\n\nexport interface StoredTokenSet {\n endpoint: string;\n accessToken: string;\n refreshToken?: string;\n tokenType?: string;\n expiresAt?: number;\n scope?: string;\n clientId?: string;\n clientSecret?: string;\n authorizationServer?: string;\n updatedAt: string;\n}\n\nexport interface TokenStore {\n load(endpoint: string): Promise<StoredTokenSet | undefined>;\n save(endpoint: string, token: StoredTokenSet): Promise<void>;\n delete(endpoint: string): Promise<void>;\n}\n\ntype TokenFile = Record<string, StoredTokenSet>;\n\nexport class FileTokenStore implements TokenStore {\n readonly filePath: string;\n\n constructor(rootDir = join(homedir(), \".ainecto\")) {\n this.filePath = join(rootDir, \"tokens.json\");\n }\n\n async load(endpoint: string): Promise<StoredTokenSet | undefined> {\n const file = await this.readFile();\n return file[tokenKey(endpoint)];\n }\n\n async save(endpoint: string, token: StoredTokenSet): Promise<void> {\n const file = await this.readFile();\n file[tokenKey(endpoint)] = { ...token, endpoint, updatedAt: new Date().toISOString() };\n await this.writeFile(file);\n }\n\n async delete(endpoint: string): Promise<void> {\n const file = await this.readFile();\n delete file[tokenKey(endpoint)];\n await this.writeFile(file);\n }\n\n private async readFile(): Promise<TokenFile> {\n try {\n const raw = await readFile(this.filePath, \"utf8\");\n const parsed = JSON.parse(raw) as unknown;\n if (!parsed || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n throw new Error(\"Token file must contain an object.\");\n }\n return parsed as TokenFile;\n } catch (error) {\n if (isNodeError(error, \"ENOENT\")) {\n return {};\n }\n throw error;\n }\n }\n\n private async writeFile(file: TokenFile): Promise<void> {\n await mkdir(dirname(this.filePath), { recursive: true, mode: 0o700 });\n await chmod(dirname(this.filePath), 0o700);\n const tmpPath = `${this.filePath}.${process.pid}.${Date.now()}.tmp`;\n await writeFile(tmpPath, `${JSON.stringify(file, null, 2)}\\n`, { mode: 0o600 });\n await chmod(tmpPath, 0o600);\n await rename(tmpPath, this.filePath);\n await chmod(this.filePath, 0o600);\n }\n}\n\nexport function tokenKey(endpoint: string): string {\n return createHash(\"sha256\").update(endpoint).digest(\"hex\");\n}\n\nexport async function tokenStorePermissions(path: string): Promise<{ mode: number } | undefined> {\n try {\n const result = await stat(path);\n return { mode: result.mode & 0o777 };\n } catch (error) {\n if (isNodeError(error, \"ENOENT\")) {\n return undefined;\n }\n throw error;\n }\n}\n\nexport async function removeTokenStoreForTests(path: string): Promise<void> {\n await rm(dirname(path), { recursive: true, force: true });\n}\n\nfunction isNodeError(error: unknown, code: string): error is NodeJS.ErrnoException {\n return error instanceof Error && \"code\" in error && error.code === code;\n}\n","import { createHash, randomBytes } from \"node:crypto\";\nimport { createServer } from \"node:http\";\nimport { spawn } from \"node:child_process\";\nimport { URLSearchParams } from \"node:url\";\nimport type { StoredTokenSet, TokenStore } from \"./tokenStore\";\nimport { registerPublicClient, type ClientRegistrationResult } from \"./clientRegistration\";\n\nexport interface OAuthClientOptions {\n endpoint: string;\n tokenStore: TokenStore;\n fetchImpl?: typeof fetch;\n envVars?: NodeJS.ProcessEnv;\n openBrowser?: (url: string) => Promise<void>;\n}\n\nexport interface OAuthMetadata {\n authorizationEndpoint: string;\n tokenEndpoint: string;\n registrationEndpoint?: string;\n issuer?: string;\n codeChallengeMethodsSupported: string[];\n}\n\nexport interface TokenProvider {\n getAccessToken(): Promise<string | undefined>;\n refreshAfterUnauthorized(): Promise<string | undefined>;\n}\n\nexport class OAuthClient implements TokenProvider {\n private readonly fetchImpl: typeof fetch;\n private readonly envVars: NodeJS.ProcessEnv;\n private readonly openBrowserImpl: (url: string) => Promise<void>;\n\n constructor(private readonly options: OAuthClientOptions) {\n this.fetchImpl = options.fetchImpl ?? fetch;\n this.envVars = options.envVars ?? process.env;\n this.openBrowserImpl = options.openBrowser ?? openBrowser;\n }\n\n async getAccessToken(): Promise<string | undefined> {\n const envToken = this.envVars.AINECTO_TOKEN;\n if (envToken) {\n return envToken;\n }\n\n const stored = await this.options.tokenStore.load(this.options.endpoint);\n if (!stored) {\n return undefined;\n }\n\n if (!shouldRefresh(stored)) {\n return stored.accessToken;\n }\n\n return this.refreshStoredToken(stored);\n }\n\n async refreshAfterUnauthorized(): Promise<string | undefined> {\n const stored = await this.options.tokenStore.load(this.options.endpoint);\n if (!stored?.refreshToken) {\n return undefined;\n }\n return this.refreshStoredToken(stored);\n }\n\n async login(): Promise<StoredTokenSet> {\n const pkce = generatePkcePair();\n const state = generateOAuthState();\n const loopback = await createLoopbackReceiver(state);\n\n try {\n const metadata = await discoverOAuthMetadata(this.options.endpoint, this.fetchImpl);\n const registration = metadata.registrationEndpoint\n ? await registerPublicClient(metadata.registrationEndpoint, loopback.redirectUri, this.fetchImpl)\n : { clientId: \"ainecto-cli\" };\n const authorizeUrl = new URL(metadata.authorizationEndpoint);\n authorizeUrl.searchParams.set(\"response_type\", \"code\");\n authorizeUrl.searchParams.set(\"client_id\", registration.clientId);\n authorizeUrl.searchParams.set(\"redirect_uri\", loopback.redirectUri);\n authorizeUrl.searchParams.set(\"code_challenge\", pkce.codeChallenge);\n authorizeUrl.searchParams.set(\"code_challenge_method\", \"S256\");\n authorizeUrl.searchParams.set(\"resource\", this.options.endpoint);\n authorizeUrl.searchParams.set(\"state\", state);\n\n await this.openBrowserImpl(authorizeUrl.toString());\n const code = await loopback.waitForCode();\n const token = await exchangeToken(metadata.tokenEndpoint, {\n grant_type: \"authorization_code\",\n code,\n redirect_uri: loopback.redirectUri,\n client_id: registration.clientId,\n code_verifier: pkce.codeVerifier,\n resource: this.options.endpoint,\n ...(registration.clientSecret ? { client_secret: registration.clientSecret } : {}),\n }, this.fetchImpl);\n\n const stored = toStoredToken(this.options.endpoint, token, metadata, registration);\n await this.options.tokenStore.save(this.options.endpoint, stored);\n return stored;\n } finally {\n await loopback.close();\n }\n }\n\n async logout(): Promise<void> {\n await this.options.tokenStore.delete(this.options.endpoint);\n }\n\n private async refreshStoredToken(stored: StoredTokenSet): Promise<string | undefined> {\n if (!stored.refreshToken) {\n return stored.accessToken;\n }\n const metadata = await discoverOAuthMetadata(this.options.endpoint, this.fetchImpl);\n const token = await exchangeToken(metadata.tokenEndpoint, {\n grant_type: \"refresh_token\",\n refresh_token: stored.refreshToken,\n client_id: stored.clientId ?? \"ainecto-cli\",\n ...(stored.clientSecret ? { client_secret: stored.clientSecret } : {}),\n resource: this.options.endpoint,\n }, this.fetchImpl);\n const next = toStoredToken(this.options.endpoint, token, metadata, stored);\n await this.options.tokenStore.save(this.options.endpoint, next);\n return next.accessToken;\n }\n}\n\nexport function generatePkcePair(): { codeVerifier: string; codeChallenge: string } {\n const codeVerifier = randomBytes(32).toString(\"base64url\");\n const codeChallenge = createHash(\"sha256\").update(codeVerifier).digest(\"base64url\");\n return { codeVerifier, codeChallenge };\n}\n\nexport function generateOAuthState(): string {\n return randomBytes(32).toString(\"base64url\");\n}\n\nexport function shouldRefresh(token: Pick<StoredTokenSet, \"expiresAt\">, now = Date.now()): boolean {\n if (!token.expiresAt) {\n return false;\n }\n return token.expiresAt - now < 60_000;\n}\n\nexport async function discoverOAuthMetadata(endpoint: string, fetchImpl: typeof fetch = fetch): Promise<OAuthMetadata> {\n const resourceMetadataUrl = await discoverResourceMetadataUrl(endpoint, fetchImpl);\n const resourceMetadata = await fetchJson<Record<string, unknown>>(resourceMetadataUrl, fetchImpl);\n const authorizationServers = resourceMetadata.authorization_servers;\n if (!Array.isArray(authorizationServers) || typeof authorizationServers[0] !== \"string\") {\n throw new Error(\"OAuth protected resource metadata did not include authorization_servers.\");\n }\n const authServer = authorizationServers[0];\n const metadataUrl = authServer.includes(\"/.well-known/\")\n ? authServer\n : `${authServer.replace(/\\/$/, \"\")}/.well-known/oauth-authorization-server`;\n const metadata = await fetchJson<Record<string, unknown>>(metadataUrl, fetchImpl);\n if (typeof metadata.authorization_endpoint !== \"string\" || typeof metadata.token_endpoint !== \"string\") {\n throw new Error(\"OAuth authorization server metadata is missing authorization_endpoint or token_endpoint.\");\n }\n const codeChallengeMethodsSupported = parseStringArray(metadata.code_challenge_methods_supported);\n if (!codeChallengeMethodsSupported.includes(\"S256\")) {\n throw new Error(\"OAuth authorization server metadata must support PKCE S256.\");\n }\n return {\n authorizationEndpoint: metadata.authorization_endpoint,\n tokenEndpoint: metadata.token_endpoint,\n registrationEndpoint: typeof metadata.registration_endpoint === \"string\" ? metadata.registration_endpoint : undefined,\n issuer: typeof metadata.issuer === \"string\" ? metadata.issuer : undefined,\n codeChallengeMethodsSupported,\n };\n}\n\nasync function discoverResourceMetadataUrl(endpoint: string, fetchImpl: typeof fetch): Promise<string> {\n const challengeUrl = new URL(endpoint);\n const response = await fetchImpl(challengeUrl, { method: \"GET\" });\n const challenge = response.headers.get(\"www-authenticate\");\n const fromChallenge = challenge ? parseBearerChallengeParam(challenge, \"resource_metadata\") : undefined;\n if (fromChallenge) {\n return fromChallenge;\n }\n const origin = new URL(endpoint).origin;\n return `${origin}/.well-known/oauth-protected-resource`;\n}\n\nexport function parseBearerChallengeParam(header: string, name: string): string | undefined {\n const pattern = new RegExp(`${name}=\"([^\"]+)\"`);\n return pattern.exec(header)?.[1];\n}\n\nasync function exchangeToken(\n tokenEndpoint: string,\n params: Record<string, string>,\n fetchImpl: typeof fetch,\n): Promise<Record<string, unknown>> {\n const response = await fetchImpl(tokenEndpoint, {\n method: \"POST\",\n headers: { \"content-type\": \"application/x-www-form-urlencoded\" },\n body: new URLSearchParams(params),\n });\n if (!response.ok) {\n throw new Error(`OAuth token exchange failed with HTTP ${response.status}.`);\n }\n return response.json() as Promise<Record<string, unknown>>;\n}\n\ntype TokenContext = Partial<Pick<StoredTokenSet, \"refreshToken\" | \"tokenType\" | \"expiresAt\" | \"scope\" | \"clientId\" | \"clientSecret\">>\n & Partial<ClientRegistrationResult>;\n\nfunction toStoredToken(\n endpoint: string,\n token: Record<string, unknown>,\n metadata: OAuthMetadata,\n previous?: TokenContext,\n): StoredTokenSet {\n if (typeof token.access_token !== \"string\") {\n throw new Error(\"OAuth token response did not include access_token.\");\n }\n const expiresIn = typeof token.expires_in === \"number\" ? token.expires_in : undefined;\n return {\n endpoint,\n accessToken: token.access_token,\n refreshToken: typeof token.refresh_token === \"string\" ? token.refresh_token : previous?.refreshToken,\n tokenType: typeof token.token_type === \"string\" ? token.token_type : previous?.tokenType,\n expiresAt: expiresIn ? Date.now() + expiresIn * 1000 : previous?.expiresAt,\n scope: typeof token.scope === \"string\" ? token.scope : previous?.scope,\n clientId: previous?.clientId ?? \"ainecto-cli\",\n clientSecret: previous?.clientSecret,\n authorizationServer: metadata.issuer,\n updatedAt: new Date().toISOString(),\n };\n}\n\nasync function createLoopbackReceiver(expectedState: string): Promise<{\n redirectUri: string;\n waitForCode(): Promise<string>;\n close(): Promise<void>;\n}> {\n let resolveCode!: (code: string) => void;\n let rejectCode!: (error: Error) => void;\n const codePromise = new Promise<string>((resolve, reject) => {\n resolveCode = resolve;\n rejectCode = reject;\n });\n codePromise.catch(() => undefined);\n\n const server = createServer((req, res) => {\n const url = new URL(req.url ?? \"/\", \"http://127.0.0.1\");\n const error = url.searchParams.get(\"error\");\n const code = url.searchParams.get(\"code\");\n const state = url.searchParams.get(\"state\");\n if (error) {\n res.writeHead(400, { \"content-type\": \"text/plain\" });\n res.end(\"Ainecto CLI authorization failed. You can close this tab.\");\n rejectCode(new Error(`OAuth authorization failed: ${error}`));\n return;\n }\n if (!state || state !== expectedState) {\n res.writeHead(400, { \"content-type\": \"text/plain\" });\n res.end(\"Ainecto CLI authorization state mismatch. You can close this tab.\");\n rejectCode(new Error(\"OAuth state mismatch.\"));\n return;\n }\n if (!code) {\n res.writeHead(400, { \"content-type\": \"text/plain\" });\n res.end(\"Missing OAuth code.\");\n rejectCode(new Error(\"OAuth redirect did not include a code.\"));\n return;\n }\n res.writeHead(200, { \"content-type\": \"text/plain\" });\n res.end(\"Ainecto CLI authorization complete. You can close this tab.\");\n resolveCode(code);\n });\n\n await new Promise<void>((resolve) => server.listen(0, \"127.0.0.1\", resolve));\n const address = server.address();\n if (!address || typeof address === \"string\") {\n throw new Error(\"Loopback OAuth server did not bind to a TCP port.\");\n }\n return {\n redirectUri: `http://127.0.0.1:${address.port}/callback`,\n waitForCode: () => codePromise,\n close: () => new Promise<void>((resolve, reject) => server.close((error) => error ? reject(error) : resolve())),\n };\n}\n\nfunction parseStringArray(value: unknown): string[] {\n return Array.isArray(value) ? value.filter((item): item is string => typeof item === \"string\") : [];\n}\n\nasync function fetchJson<T>(url: string, fetchImpl: typeof fetch): Promise<T> {\n const response = await fetchImpl(url);\n if (!response.ok) {\n throw new Error(`Failed to fetch OAuth metadata from ${url}: HTTP ${response.status}.`);\n }\n return response.json() as Promise<T>;\n}\n\nasync function openBrowser(url: string): Promise<void> {\n const command = process.platform === \"darwin\" ? \"open\" : process.platform === \"win32\" ? \"cmd\" : \"xdg-open\";\n const args = process.platform === \"win32\" ? [\"/c\", \"start\", \"\", url] : [url];\n const child = spawn(command, args, { stdio: \"ignore\", detached: true });\n child.unref();\n}\n","export interface ClientRegistrationResult {\n clientId: string;\n clientSecret?: string;\n}\n\nexport async function registerPublicClient(\n registrationEndpoint: string,\n redirectUri: string,\n fetchImpl: typeof fetch = fetch,\n): Promise<ClientRegistrationResult> {\n const response = await fetchImpl(registrationEndpoint, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\", accept: \"application/json\" },\n body: JSON.stringify({\n client_name: \"Ainecto CLI\",\n redirect_uris: [redirectUri],\n token_endpoint_auth_method: \"none\",\n grant_types: [\"authorization_code\", \"refresh_token\"],\n response_types: [\"code\"],\n }),\n });\n if (!response.ok) {\n throw new Error(`OAuth client registration failed with HTTP ${response.status}.`);\n }\n const body = await response.json() as unknown;\n if (!isRecord(body) || typeof body.client_id !== \"string\") {\n throw new Error(\"OAuth client registration response did not include client_id.\");\n }\n return {\n clientId: body.client_id,\n clientSecret: typeof body.client_secret === \"string\" ? body.client_secret : undefined,\n };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","export type AinectoEnv = \"prod\" | \"dev\";\n\nexport interface EndpointResolutionInput {\n env?: AinectoEnv;\n endpoint?: string;\n envVars?: NodeJS.ProcessEnv;\n}\n\nexport interface ResolvedEndpoint {\n env: AinectoEnv;\n endpoint: string;\n source: \"flag\" | \"env\" | \"default\";\n}\n\nconst DEFAULT_ENDPOINTS: Record<AinectoEnv, string> = {\n prod: \"https://ainecto.com/mcp\",\n dev: \"https://dev.ainecto.com/mcp\",\n};\n\nexport function resolveEndpoint(input: EndpointResolutionInput = {}): ResolvedEndpoint {\n const envVars = input.envVars ?? process.env;\n const env = input.env ?? \"prod\";\n\n if (input.endpoint) {\n return { env, endpoint: normalizeEndpoint(input.endpoint), source: \"flag\" };\n }\n\n if (envVars.AINECTO_MCP_ENDPOINT) {\n return { env, endpoint: normalizeEndpoint(envVars.AINECTO_MCP_ENDPOINT), source: \"env\" };\n }\n\n return { env, endpoint: DEFAULT_ENDPOINTS[env], source: \"default\" };\n}\n\nexport function normalizeEndpoint(endpoint: string): string {\n const url = new URL(endpoint);\n url.hash = \"\";\n return url.toString().replace(/\\/$/, \"\");\n}\n\nexport function assertEnv(value: string | undefined): AinectoEnv | undefined {\n if (value === undefined) {\n return undefined;\n }\n if (value === \"prod\" || value === \"dev\") {\n return value;\n }\n throw new Error(`Invalid --env value \"${value}\". Expected \"prod\" or \"dev\".`);\n}\n","import { readFile } from \"node:fs/promises\";\n\nexport interface PayloadSourceInput {\n file?: string;\n inline?: string;\n stdin?: NodeJS.ReadStream;\n stdinText?: string;\n stdinIsTTY?: boolean;\n}\n\nexport interface ParsedPayload {\n value: unknown;\n source: \"file\" | \"stdin\" | \"inline\" | \"empty\";\n warnings: string[];\n}\n\nexport async function parsePayloadSource(input: PayloadSourceInput): Promise<ParsedPayload> {\n const warnings: string[] = [];\n const stdinIsTTY = input.stdinIsTTY ?? input.stdin?.isTTY ?? true;\n const hasInline = input.inline !== undefined && input.inline !== \"\";\n const hasStdin = input.stdinText !== undefined || !stdinIsTTY;\n\n if (input.file) {\n if (hasInline || hasStdin) {\n warnings.push(\"Multiple payload sources were provided; --file takes precedence.\");\n }\n const text = await readFileOrStdin(input.file, input);\n return { value: parseJson(text), source: input.file === \"-\" || input.file === \"@-\" ? \"stdin\" : \"file\", warnings };\n }\n\n if (hasStdin) {\n if (hasInline) {\n warnings.push(\"Multiple payload sources were provided; stdin takes precedence.\");\n }\n const text = input.stdinText ?? await readAllStdin(input.stdin);\n if (!text.trim()) {\n return { value: {}, source: \"empty\", warnings };\n }\n return { value: parseJson(text), source: \"stdin\", warnings };\n }\n\n if (hasInline) {\n const inline = input.inline === \"@-\" ? await readAllStdin(input.stdin) : input.inline;\n return { value: parseJson(inline), source: \"inline\", warnings };\n }\n\n return { value: {}, source: \"empty\", warnings };\n}\n\nfunction parseJson(text: string | undefined): unknown {\n if (text === undefined || !text.trim()) {\n return {};\n }\n try {\n return JSON.parse(text);\n } catch (error) {\n const detail = error instanceof Error ? error.message : String(error);\n throw new Error(`Invalid JSON payload: ${detail}`);\n }\n}\n\nasync function readFileOrStdin(file: string, input: PayloadSourceInput): Promise<string> {\n if (file === \"-\" || file === \"@-\") {\n return input.stdinText ?? await readAllStdin(input.stdin);\n }\n return readFile(file, \"utf8\");\n}\n\nasync function readAllStdin(stdin: NodeJS.ReadStream | undefined): Promise<string> {\n if (!stdin) {\n return \"\";\n }\n stdin.setEncoding(\"utf8\");\n let text = \"\";\n for await (const chunk of stdin) {\n text += chunk;\n }\n return text;\n}\n","import type { TokenProvider } from \"../auth/oauth\";\n\nexport interface JsonRpcRequest {\n jsonrpc: \"2.0\";\n id?: string | number | null;\n method: string;\n params?: unknown;\n}\n\nexport interface JsonRpcSuccess {\n jsonrpc: \"2.0\";\n id?: string | number | null;\n result: unknown;\n}\n\nexport interface JsonRpcFailure {\n jsonrpc: \"2.0\";\n id?: string | number | null;\n error: {\n code: number;\n message: string;\n data?: unknown;\n };\n}\n\nexport type JsonRpcResponse = JsonRpcSuccess | JsonRpcFailure;\n\nexport interface McpRpcClientOptions {\n endpoint: string;\n tokenProvider?: TokenProvider;\n fetchImpl?: typeof fetch;\n}\n\nexport class McpRpcError extends Error {\n constructor(\n message: string,\n readonly code: string,\n readonly details?: unknown,\n ) {\n super(message);\n }\n}\n\nexport class McpRpcClient {\n private readonly fetchImpl: typeof fetch;\n private nextId = 1;\n\n constructor(private readonly options: McpRpcClientOptions) {\n this.fetchImpl = options.fetchImpl ?? fetch;\n }\n\n initialize(): Promise<unknown> {\n return this.request(\"initialize\", {\n protocolVersion: \"2024-11-05\",\n capabilities: {},\n clientInfo: { name: \"@ainecto/mcp\", version: \"0.1.0\" },\n });\n }\n\n async toolsList(): Promise<unknown[]> {\n const result = await this.request(\"tools/list\", {});\n if (!isRecord(result) || !Array.isArray(result.tools)) {\n throw new McpRpcError(\"tools/list response did not include a tools array.\", \"MCP_PROTOCOL_ERROR\", result);\n }\n return result.tools;\n }\n\n async toolsCall(name: string, args: unknown): Promise<unknown> {\n return this.request(\"tools/call\", { name, arguments: args ?? {} });\n }\n\n async request(method: string, params?: unknown): Promise<unknown> {\n const response = await this.sendRaw({\n jsonrpc: \"2.0\",\n id: this.nextId++,\n method,\n params,\n });\n if (!response) {\n return undefined;\n }\n if (\"error\" in response) {\n throw new McpRpcError(response.error.message, \"MCP_ERROR\", response.error);\n }\n return response.result;\n }\n\n async sendRaw(request: JsonRpcRequest): Promise<JsonRpcResponse | undefined> {\n const token = await this.options.tokenProvider?.getAccessToken();\n let response = await this.postJson(request, token);\n if (response.status === 401 && this.options.tokenProvider) {\n const refreshed = await this.options.tokenProvider.refreshAfterUnauthorized();\n if (refreshed) {\n response = await this.postJson(request, refreshed);\n }\n }\n\n if (response.status === 204 || response.status === 202) {\n return undefined;\n }\n const text = await response.text();\n if (!response.ok) {\n throw new McpRpcError(`MCP HTTP request failed with HTTP ${response.status}.`, \"MCP_HTTP_ERROR\", {\n status: response.status,\n body: safeBodyPreview(text),\n });\n }\n if (!text.trim()) {\n return undefined;\n }\n const parsed = JSON.parse(text) as unknown;\n if (!isJsonRpcResponse(parsed)) {\n throw new McpRpcError(\"MCP response was not a JSON-RPC response.\", \"MCP_PROTOCOL_ERROR\", parsed);\n }\n return parsed;\n }\n\n private postJson(request: JsonRpcRequest, token: string | undefined): Promise<Response> {\n const headers: Record<string, string> = {\n \"content-type\": \"application/json\",\n accept: \"application/json\",\n };\n if (token) {\n headers.authorization = `Bearer ${token}`;\n }\n return this.fetchImpl(this.options.endpoint, {\n method: \"POST\",\n headers,\n body: JSON.stringify(request),\n });\n }\n}\n\nfunction isJsonRpcResponse(value: unknown): value is JsonRpcResponse {\n return isRecord(value)\n && value.jsonrpc === \"2.0\"\n && (\"result\" in value || \"error\" in value);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction safeBodyPreview(body: string): string {\n return body.length > 500 ? `${body.slice(0, 500)}...` : body;\n}\n","export interface CliErrorShape {\n ok: false;\n error: {\n code: string;\n message: string;\n details?: unknown;\n };\n}\n\nexport interface CliSuccessShape {\n ok: true;\n data: unknown;\n warnings?: string[];\n}\n\nexport function renderSuccess(data: unknown, options: { json?: boolean; warnings?: string[] } = {}): string {\n if (options.json) {\n const shape: CliSuccessShape = { ok: true, data };\n if (options.warnings?.length) {\n shape.warnings = options.warnings;\n }\n return `${JSON.stringify(shape, null, 2)}\\n`;\n }\n const warnings = options.warnings?.length ? `${options.warnings.map((warning) => `Warning: ${warning}`).join(\"\\n\")}\\n` : \"\";\n return `${warnings}${renderHuman(data)}\\n`;\n}\n\nexport function renderError(error: unknown, options: { json?: boolean } = {}): string {\n const shape = toErrorShape(error);\n if (options.json) {\n return `${JSON.stringify(shape, null, 2)}\\n`;\n }\n return `Error: ${shape.error.message}\\n`;\n}\n\nexport function toErrorShape(error: unknown): CliErrorShape {\n if (error instanceof Error) {\n const maybe = error as Error & { code?: string; details?: unknown };\n return {\n ok: false,\n error: {\n code: maybe.code ?? \"CLI_ERROR\",\n message: error.message,\n details: maybe.details,\n },\n };\n }\n return { ok: false, error: { code: \"CLI_ERROR\", message: String(error) } };\n}\n\nfunction renderHuman(data: unknown): string {\n if (Array.isArray(data)) {\n return data.map((item) => renderHuman(item)).join(\"\\n\");\n }\n if (typeof data === \"string\") {\n return data;\n }\n return JSON.stringify(data, null, 2);\n}\n","import type { GeneratedToolDefinition } from \"./types\";\n\nexport const generatedTools = [\n {\"mcpName\":\"mcp__ainecto__create_documents\",\"commandPath\":[\"documents\",\"create\"],\"group\":\"document\",\"description\":\"Create documents. If a document body is tens of KB or more, prefer request_upload_token (purpose=document.create) and upload the body with curl.\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Documents\",\"items\":{\"properties\":{\"body\":{\"description\":\"Deprecated compatibility alias for typePayload.body when document type is markdown. 본문이 수십 KB 이상으로 크면 LLM 토큰 절약을 위해 `request_upload_token (purpose=document.create)` 를 호출해 uploadUrl 을 받고 curl 로 직접 PUT 으로 보낼 것.\",\"type\":\"string\"},\"folderUuid\":{\"description\":\"Optional folder UUID\",\"type\":\"string\"},\"projectUuid\":{\"description\":\"Project UUID\",\"type\":\"string\"},\"title\":{\"description\":\"Document title\",\"type\":\"string\"},\"type\":{\"description\":\"Document type. Enabled values: erd, markdown.\",\"enum\":[\"erd\",\"markdown\"],\"type\":\"string\"},\"typePayload\":{\"description\":\"Type-specific payload for enabled document types. markdown: {body}.\",\"type\":\"object\"}},\"required\":[\"projectUuid\",\"type\",\"title\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"4aa976b9bb3b0eb6\"},\n {\"mcpName\":\"mcp__ainecto__create_folders\",\"commandPath\":[\"folders\",\"create\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Folders\",\"items\":{\"properties\":{\"name\":{\"description\":\"Folder name\",\"type\":\"string\"},\"parentFolderUuid\":{\"description\":\"Parent folder UUID\",\"type\":\"string\"},\"projectUuid\":{\"description\":\"Project UUID\",\"type\":\"string\"}},\"required\":[\"projectUuid\",\"name\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"d423d3c265631664\"},\n {\"mcpName\":\"mcp__ainecto__create_projects\",\"commandPath\":[\"projects\",\"create\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Projects\",\"items\":{\"properties\":{\"description\":{\"description\":\"Description\",\"type\":\"string\"},\"name\":{\"description\":\"Project name\",\"type\":\"string\"},\"projectKey\":{\"description\":\"Unique project key\",\"type\":\"string\"},\"workspaceUuid\":{\"description\":\"Workspace UUID — null uses user's default workspace\",\"type\":\"string\"}},\"required\":[\"name\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"396c80c6cc2ba41a\"},\n {\"mcpName\":\"mcp__ainecto__create_workspaces\",\"commandPath\":[\"workspaces\",\"create\"],\"group\":\"workspace\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Workspaces\",\"items\":{\"properties\":{\"description\":{\"description\":\"Description\",\"type\":\"string\"},\"name\":{\"description\":\"Workspace name\",\"type\":\"string\"}},\"required\":[\"name\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"d663d461f9c9da65\"},\n {\"mcpName\":\"mcp__ainecto__delete_attachments\",\"commandPath\":[\"attachments\",\"delete\"],\"group\":\"attachment\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Attachment UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"prod\",\"schemaHash\":\"6e55e6511d732199\"},\n {\"mcpName\":\"mcp__ainecto__delete_documents\",\"commandPath\":[\"documents\",\"delete\"],\"group\":\"document\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Document UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"prod\",\"schemaHash\":\"5fbc7c142bb4a49d\"},\n {\"mcpName\":\"mcp__ainecto__delete_folders\",\"commandPath\":[\"folders\",\"delete\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Folder UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"prod\",\"schemaHash\":\"49fa7c0f823871b2\"},\n {\"mcpName\":\"mcp__ainecto__delete_projects\",\"commandPath\":[\"projects\",\"delete\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Project UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"prod\",\"schemaHash\":\"e1a86ddaa9638298\"},\n {\"mcpName\":\"mcp__ainecto__delete_workspaces\",\"commandPath\":[\"workspaces\",\"delete\"],\"group\":\"workspace\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Workspace UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"prod\",\"schemaHash\":\"2aca644f7a105b06\"},\n {\"mcpName\":\"mcp__ainecto__disable_shares\",\"commandPath\":[\"tools\",\"run\",\"disable-shares\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"targetType\":{\"description\":\"Share target type\",\"enum\":[\"project\",\"folder\",\"document\"],\"type\":\"string\"},\"targetUuids\":{\"description\":\"Target UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"targetType\",\"targetUuids\"],\"type\":\"object\"},\"required\":[\"targetType\",\"targetUuids\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"a4b4358eff0faa97\"},\n {\"mcpName\":\"mcp__ainecto__enable_shares\",\"commandPath\":[\"tools\",\"run\",\"enable-shares\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"targetType\":{\"description\":\"Share target type\",\"enum\":[\"project\",\"folder\",\"document\"],\"type\":\"string\"},\"targetUuids\":{\"description\":\"Target UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"targetType\",\"targetUuids\"],\"type\":\"object\"},\"required\":[\"targetType\",\"targetUuids\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"ebace643de07e826\"},\n {\"mcpName\":\"mcp__ainecto__erd_apply_changes\",\"commandPath\":[\"erd\",\"apply-changes\"],\"group\":\"erd\",\"description\":\"Required single-call mutation path for ERD create/update/delete changes. Put tables, columns, indexes, refs, enums, enum_values, and table groups in one operations array and call this once.\\nRules: (1) all data field names are snake_case; (2) for create, generate your own UUIDs and put them in data.uuid, then later operations in the same batch may reference those UUIDs without read-back calls; (3) enum values are separate enum_value operations, not inline on enum; (4) ref.relationship uses short dbdiagram-style symbols: >, <, or -; (5) ref_column operations map FK columns explicitly, never automatically.\\nDo not look for type-specific ERD CUD tools; this tool is the only ERD CUD entry point. If operations is very large, use mcp__ainecto__request_upload_token with purpose=mcp.call and send the tools/call payload with curl to save LLM tokens.\\nOne-call worked example:\\n{\\n \\\"documentUuid\\\": \\\"erd-doc-uuid\\\",\\n \\\"description\\\": \\\"create users/posts ERD\\\",\\n \\\"operations\\\": [\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"table\\\",\\\"data\\\":{\\\"uuid\\\":\\\"tbl_users\\\",\\\"name\\\":\\\"users\\\",\\\"display_order\\\":1}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"column\\\",\\\"data\\\":{\\\"uuid\\\":\\\"col_users_id\\\",\\\"table_uuid\\\":\\\"tbl_users\\\",\\\"name\\\":\\\"id\\\",\\\"type\\\":\\\"bigint\\\",\\\"is_pk\\\":true,\\\"is_not_null\\\":true,\\\"display_order\\\":1}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"column\\\",\\\"data\\\":{\\\"uuid\\\":\\\"col_users_email\\\",\\\"table_uuid\\\":\\\"tbl_users\\\",\\\"name\\\":\\\"email\\\",\\\"type\\\":\\\"varchar(255)\\\",\\\"is_unique\\\":true,\\\"is_not_null\\\":true,\\\"display_order\\\":2}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"table\\\",\\\"data\\\":{\\\"uuid\\\":\\\"tbl_posts\\\",\\\"name\\\":\\\"posts\\\",\\\"display_order\\\":2}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"column\\\",\\\"data\\\":{\\\"uuid\\\":\\\"col_posts_id\\\",\\\"table_uuid\\\":\\\"tbl_posts\\\",\\\"name\\\":\\\"id\\\",\\\"type\\\":\\\"bigint\\\",\\\"is_pk\\\":true,\\\"is_not_null\\\":true,\\\"display_order\\\":1}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"column\\\",\\\"data\\\":{\\\"uuid\\\":\\\"col_posts_author_id\\\",\\\"table_uuid\\\":\\\"tbl_posts\\\",\\\"name\\\":\\\"author_id\\\",\\\"type\\\":\\\"bigint\\\",\\\"is_not_null\\\":true,\\\"display_order\\\":2}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"column\\\",\\\"data\\\":{\\\"uuid\\\":\\\"col_posts_status\\\",\\\"table_uuid\\\":\\\"tbl_posts\\\",\\\"name\\\":\\\"status\\\",\\\"type\\\":\\\"post_status\\\",\\\"is_not_null\\\":true,\\\"display_order\\\":3}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"enum\\\",\\\"data\\\":{\\\"uuid\\\":\\\"enum_post_status\\\",\\\"name\\\":\\\"post_status\\\"}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"enum_value\\\",\\\"data\\\":{\\\"uuid\\\":\\\"enum_post_status_draft\\\",\\\"enum_uuid\\\":\\\"enum_post_status\\\",\\\"value\\\":\\\"draft\\\",\\\"display_order\\\":1}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"enum_value\\\",\\\"data\\\":{\\\"uuid\\\":\\\"enum_post_status_published\\\",\\\"enum_uuid\\\":\\\"enum_post_status\\\",\\\"value\\\":\\\"published\\\",\\\"display_order\\\":2}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"ref\\\",\\\"data\\\":{\\\"uuid\\\":\\\"ref_posts_author\\\",\\\"name\\\":\\\"fk_posts_author\\\",\\\"from_table_uuid\\\":\\\"tbl_posts\\\",\\\"to_table_uuid\\\":\\\"tbl_users\\\",\\\"relationship\\\":\\\">\\\",\\\"on_delete\\\":\\\"cascade\\\"}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"ref_column\\\",\\\"data\\\":{\\\"uuid\\\":\\\"refcol_posts_author\\\",\\\"ref_uuid\\\":\\\"ref_posts_author\\\",\\\"from_column_uuid\\\":\\\"col_posts_author_id\\\",\\\"to_column_uuid\\\":\\\"col_users_id\\\",\\\"display_order\\\":1}}\\n ]\\n}\",\"inputSchema\":{\"properties\":{\"arrangeNewTables\":{\"description\":\"Whether to auto-place newly-created tables after the batch; defaults to true\",\"type\":\"boolean\"},\"description\":{\"description\":\"Reason for batch (audit)\",\"type\":\"string\"},\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"},\"operations\":{\"description\":\"Atomic create/update/delete operations\",\"items\":{\"description\":\"One ERD mutation. Use a single operations array with client-generated data.uuid values to create cross-referenced tables, columns, enums, refs, and ref_columns without read-back calls.\",\"discriminator\":{\"propertyName\":\"type\"},\"oneOf\":[{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table'.\",\"properties\":{\"alias\":{\"description\":\"Display alias.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"header_color\":{\"description\":\"Header color.\",\"type\":\"string\"},\"name\":{\"description\":\"Table name. Required for create.\",\"type\":\"string\"},\"note\":{\"description\":\"Table note.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Schema name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"name\"],\"title\":\"table data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table'.\",\"properties\":{\"alias\":{\"description\":\"Display alias.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"header_color\":{\"description\":\"Header color.\",\"type\":\"string\"},\"name\":{\"description\":\"Table name. Required for create.\",\"type\":\"string\"},\"note\":{\"description\":\"Table note.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Schema name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"table\",\"description\":\"Must be 'table' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"table operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='column'.\",\"properties\":{\"default_value\":{\"description\":\"Default value.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"is_increment\":{\"description\":\"Auto-increment flag.\",\"type\":\"boolean\"},\"is_not_null\":{\"description\":\"Not-null flag.\",\"type\":\"boolean\"},\"is_pk\":{\"description\":\"Primary key flag.\",\"type\":\"boolean\"},\"is_unique\":{\"description\":\"Unique flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Column name.\",\"type\":\"string\"},\"note\":{\"description\":\"Column note.\",\"type\":\"string\"},\"table_uuid\":{\"description\":\"Parent table UUID. Required for create; may be a data.uuid from an earlier table operation in this batch.\",\"type\":\"string\"},\"type\":{\"description\":\"SQL data type. Use this exact field name; do not send data_type.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"table_uuid\"],\"title\":\"column data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='column'.\",\"properties\":{\"default_value\":{\"description\":\"Default value.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"is_increment\":{\"description\":\"Auto-increment flag.\",\"type\":\"boolean\"},\"is_not_null\":{\"description\":\"Not-null flag.\",\"type\":\"boolean\"},\"is_pk\":{\"description\":\"Primary key flag.\",\"type\":\"boolean\"},\"is_unique\":{\"description\":\"Unique flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Column name.\",\"type\":\"string\"},\"note\":{\"description\":\"Column note.\",\"type\":\"string\"},\"table_uuid\":{\"description\":\"Parent table UUID. Required for create; may be a data.uuid from an earlier table operation in this batch.\",\"type\":\"string\"},\"type\":{\"description\":\"SQL data type. Use this exact field name; do not send data_type.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"column data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"column\",\"description\":\"Must be 'column' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"column operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='index'.\",\"properties\":{\"is_pk\":{\"description\":\"Primary key index flag.\",\"type\":\"boolean\"},\"is_unique\":{\"description\":\"Unique index flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Index name.\",\"type\":\"string\"},\"note\":{\"description\":\"Index note.\",\"type\":\"string\"},\"table_uuid\":{\"description\":\"Parent table UUID. Required for create.\",\"type\":\"string\"},\"type\":{\"description\":\"Index type.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"table_uuid\"],\"title\":\"index data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='index'.\",\"properties\":{\"is_pk\":{\"description\":\"Primary key index flag.\",\"type\":\"boolean\"},\"is_unique\":{\"description\":\"Unique index flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Index name.\",\"type\":\"string\"},\"note\":{\"description\":\"Index note.\",\"type\":\"string\"},\"table_uuid\":{\"description\":\"Parent table UUID. Required for create.\",\"type\":\"string\"},\"type\":{\"description\":\"Index type.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"index data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"index\",\"description\":\"Must be 'index' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"index operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='index_column'.\",\"properties\":{\"column_uuid\":{\"description\":\"Column UUID. Required for create.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"index_uuid\":{\"description\":\"Index UUID. Required for create.\",\"type\":\"string\"},\"sort_order\":{\"description\":\"Sort order, for example ASC or DESC.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"index_uuid\",\"column_uuid\"],\"title\":\"index_column data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='index_column'.\",\"properties\":{\"column_uuid\":{\"description\":\"Column UUID. Required for create.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"index_uuid\":{\"description\":\"Index UUID. Required for create.\",\"type\":\"string\"},\"sort_order\":{\"description\":\"Sort order, for example ASC or DESC.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"index_column data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"index_column\",\"description\":\"Must be 'index_column' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"index_column operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='ref'.\",\"properties\":{\"from_table_uuid\":{\"description\":\"Source table UUID. Required for create.\",\"type\":\"string\"},\"name\":{\"description\":\"Reference name.\",\"type\":\"string\"},\"on_delete\":{\"description\":\"ON DELETE action.\",\"type\":\"string\"},\"on_update\":{\"description\":\"ON UPDATE action.\",\"type\":\"string\"},\"relationship\":{\"description\":\"Required for create. Use short dbdiagram-style relationship symbols.\",\"enum\":[\">\",\"<\",\"-\"],\"type\":\"string\"},\"to_table_uuid\":{\"description\":\"Target table UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"from_table_uuid\",\"to_table_uuid\",\"relationship\"],\"title\":\"ref data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='ref'.\",\"properties\":{\"from_table_uuid\":{\"description\":\"Source table UUID. Required for create.\",\"type\":\"string\"},\"name\":{\"description\":\"Reference name.\",\"type\":\"string\"},\"on_delete\":{\"description\":\"ON DELETE action.\",\"type\":\"string\"},\"on_update\":{\"description\":\"ON UPDATE action.\",\"type\":\"string\"},\"relationship\":{\"description\":\"Required for create. Use short dbdiagram-style relationship symbols.\",\"enum\":[\">\",\"<\",\"-\"],\"type\":\"string\"},\"to_table_uuid\":{\"description\":\"Target table UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"ref data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"ref\",\"description\":\"Must be 'ref' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"ref operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='ref_column'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"from_column_uuid\":{\"description\":\"Source column UUID. Required for create.\",\"type\":\"string\"},\"ref_uuid\":{\"description\":\"Reference UUID. Required for create; may be a data.uuid from an earlier ref operation.\",\"type\":\"string\"},\"to_column_uuid\":{\"description\":\"Target column UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"ref_uuid\",\"from_column_uuid\",\"to_column_uuid\"],\"title\":\"ref_column data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='ref_column'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"from_column_uuid\":{\"description\":\"Source column UUID. Required for create.\",\"type\":\"string\"},\"ref_uuid\":{\"description\":\"Reference UUID. Required for create; may be a data.uuid from an earlier ref operation.\",\"type\":\"string\"},\"to_column_uuid\":{\"description\":\"Target column UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"ref_column data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"ref_column\",\"description\":\"Must be 'ref_column' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"ref_column operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='enum'.\",\"properties\":{\"name\":{\"description\":\"Enum name.\",\"type\":\"string\"},\"note\":{\"description\":\"Enum note.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Schema name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"enum data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='enum'.\",\"properties\":{\"name\":{\"description\":\"Enum name.\",\"type\":\"string\"},\"note\":{\"description\":\"Enum note.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Schema name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"enum data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"enum\",\"description\":\"Must be 'enum' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"enum operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='enum_value'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"enum_uuid\":{\"description\":\"Parent enum UUID. Required for create; may be a data.uuid from an earlier enum operation.\",\"type\":\"string\"},\"note\":{\"description\":\"Enum value note.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"},\"value\":{\"description\":\"Enum value. Inline enum values on enum are not persisted; create enum_value operations.\",\"type\":\"string\"}},\"required\":[\"enum_uuid\"],\"title\":\"enum_value data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='enum_value'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"enum_uuid\":{\"description\":\"Parent enum UUID. Required for create; may be a data.uuid from an earlier enum operation.\",\"type\":\"string\"},\"note\":{\"description\":\"Enum value note.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"},\"value\":{\"description\":\"Enum value. Inline enum values on enum are not persisted; create enum_value operations.\",\"type\":\"string\"}},\"title\":\"enum_value data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"enum_value\",\"description\":\"Must be 'enum_value' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"enum_value operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table_group'.\",\"properties\":{\"color\":{\"description\":\"Group color.\",\"type\":\"string\"},\"name\":{\"description\":\"Table group name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table_group'.\",\"properties\":{\"color\":{\"description\":\"Group color.\",\"type\":\"string\"},\"name\":{\"description\":\"Table group name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"table_group\",\"description\":\"Must be 'table_group' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"table_group operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table_group_table'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"group_uuid\":{\"description\":\"Table group UUID. Required for create.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Table schema name.\",\"type\":\"string\"},\"table_name\":{\"description\":\"Table name. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"group_uuid\",\"table_name\"],\"title\":\"table_group_table data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table_group_table'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"group_uuid\":{\"description\":\"Table group UUID. Required for create.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Table schema name.\",\"type\":\"string\"},\"table_name\":{\"description\":\"Table name. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group_table data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"table_group_table\",\"description\":\"Must be 'table_group_table' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"table_group_table operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table_group_note'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"group_uuid\":{\"description\":\"Table group UUID. Required for create.\",\"type\":\"string\"},\"note_uuid\":{\"description\":\"Note UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"group_uuid\",\"note_uuid\"],\"title\":\"table_group_note data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table_group_note'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"group_uuid\":{\"description\":\"Table group UUID. Required for create.\",\"type\":\"string\"},\"note_uuid\":{\"description\":\"Note UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group_note data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"table_group_note\",\"description\":\"Must be 'table_group_note' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"table_group_note operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='filter'.\",\"properties\":{\"included_tables\":{\"description\":\"JSON string/list of included tables.\",\"type\":\"string\"},\"is_default\":{\"description\":\"Default filter flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Filter name.\",\"type\":\"string\"},\"table_groups\":{\"description\":\"JSON string/object of table groups.\",\"type\":\"string\"},\"table_positions\":{\"description\":\"JSON string/object of table positions.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"filter data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='filter'.\",\"properties\":{\"included_tables\":{\"description\":\"JSON string/list of included tables.\",\"type\":\"string\"},\"is_default\":{\"description\":\"Default filter flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Filter name.\",\"type\":\"string\"},\"table_groups\":{\"description\":\"JSON string/object of table groups.\",\"type\":\"string\"},\"table_positions\":{\"description\":\"JSON string/object of table positions.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"filter data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"filter\",\"description\":\"Must be 'filter' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"filter operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='note'.\",\"properties\":{\"color\":{\"description\":\"Note color.\",\"type\":\"string\"},\"content\":{\"description\":\"Note content.\",\"type\":\"string\"},\"height\":{\"description\":\"Height.\",\"type\":\"integer\"},\"icon_name\":{\"description\":\"Icon name.\",\"type\":\"string\"},\"position_x\":{\"description\":\"X position.\",\"type\":\"integer\"},\"position_y\":{\"description\":\"Y position.\",\"type\":\"integer\"},\"title\":{\"description\":\"Note title.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"},\"width\":{\"description\":\"Width.\",\"type\":\"integer\"}},\"title\":\"note data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='note'.\",\"properties\":{\"color\":{\"description\":\"Note color.\",\"type\":\"string\"},\"content\":{\"description\":\"Note content.\",\"type\":\"string\"},\"height\":{\"description\":\"Height.\",\"type\":\"integer\"},\"icon_name\":{\"description\":\"Icon name.\",\"type\":\"string\"},\"position_x\":{\"description\":\"X position.\",\"type\":\"integer\"},\"position_y\":{\"description\":\"Y position.\",\"type\":\"integer\"},\"title\":{\"description\":\"Note title.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"},\"width\":{\"description\":\"Width.\",\"type\":\"integer\"}},\"title\":\"note data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"note\",\"description\":\"Must be 'note' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"note operation\",\"type\":\"object\"}],\"properties\":{\"data\":{\"description\":\"Type-specific payload. All field names are snake_case. For create, data.uuid may be client-supplied and referenced by later operations in the same batch.\",\"oneOf\":[{\"description\":\"Payload for operation.type='table'.\",\"properties\":{\"alias\":{\"description\":\"Display alias.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"header_color\":{\"description\":\"Header color.\",\"type\":\"string\"},\"name\":{\"description\":\"Table name. Required for create.\",\"type\":\"string\"},\"note\":{\"description\":\"Table note.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Schema name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='column'.\",\"properties\":{\"default_value\":{\"description\":\"Default value.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"is_increment\":{\"description\":\"Auto-increment flag.\",\"type\":\"boolean\"},\"is_not_null\":{\"description\":\"Not-null flag.\",\"type\":\"boolean\"},\"is_pk\":{\"description\":\"Primary key flag.\",\"type\":\"boolean\"},\"is_unique\":{\"description\":\"Unique flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Column name.\",\"type\":\"string\"},\"note\":{\"description\":\"Column note.\",\"type\":\"string\"},\"table_uuid\":{\"description\":\"Parent table UUID. Required for create; may be a data.uuid from an earlier table operation in this batch.\",\"type\":\"string\"},\"type\":{\"description\":\"SQL data type. Use this exact field name; do not send data_type.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"column data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='index'.\",\"properties\":{\"is_pk\":{\"description\":\"Primary key index flag.\",\"type\":\"boolean\"},\"is_unique\":{\"description\":\"Unique index flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Index name.\",\"type\":\"string\"},\"note\":{\"description\":\"Index note.\",\"type\":\"string\"},\"table_uuid\":{\"description\":\"Parent table UUID. Required for create.\",\"type\":\"string\"},\"type\":{\"description\":\"Index type.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"index data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='index_column'.\",\"properties\":{\"column_uuid\":{\"description\":\"Column UUID. Required for create.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"index_uuid\":{\"description\":\"Index UUID. Required for create.\",\"type\":\"string\"},\"sort_order\":{\"description\":\"Sort order, for example ASC or DESC.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"index_column data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='ref'.\",\"properties\":{\"from_table_uuid\":{\"description\":\"Source table UUID. Required for create.\",\"type\":\"string\"},\"name\":{\"description\":\"Reference name.\",\"type\":\"string\"},\"on_delete\":{\"description\":\"ON DELETE action.\",\"type\":\"string\"},\"on_update\":{\"description\":\"ON UPDATE action.\",\"type\":\"string\"},\"relationship\":{\"description\":\"Required for create. Use short dbdiagram-style relationship symbols.\",\"enum\":[\">\",\"<\",\"-\"],\"type\":\"string\"},\"to_table_uuid\":{\"description\":\"Target table UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"ref data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='ref_column'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"from_column_uuid\":{\"description\":\"Source column UUID. Required for create.\",\"type\":\"string\"},\"ref_uuid\":{\"description\":\"Reference UUID. Required for create; may be a data.uuid from an earlier ref operation.\",\"type\":\"string\"},\"to_column_uuid\":{\"description\":\"Target column UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"ref_column data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='enum'.\",\"properties\":{\"name\":{\"description\":\"Enum name.\",\"type\":\"string\"},\"note\":{\"description\":\"Enum note.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Schema name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"enum data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='enum_value'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"enum_uuid\":{\"description\":\"Parent enum UUID. Required for create; may be a data.uuid from an earlier enum operation.\",\"type\":\"string\"},\"note\":{\"description\":\"Enum value note.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"},\"value\":{\"description\":\"Enum value. Inline enum values on enum are not persisted; create enum_value operations.\",\"type\":\"string\"}},\"title\":\"enum_value data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='table_group'.\",\"properties\":{\"color\":{\"description\":\"Group color.\",\"type\":\"string\"},\"name\":{\"description\":\"Table group name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='table_group_table'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"group_uuid\":{\"description\":\"Table group UUID. Required for create.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Table schema name.\",\"type\":\"string\"},\"table_name\":{\"description\":\"Table name. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group_table data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='table_group_note'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"group_uuid\":{\"description\":\"Table group UUID. Required for create.\",\"type\":\"string\"},\"note_uuid\":{\"description\":\"Note UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group_note data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='filter'.\",\"properties\":{\"included_tables\":{\"description\":\"JSON string/list of included tables.\",\"type\":\"string\"},\"is_default\":{\"description\":\"Default filter flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Filter name.\",\"type\":\"string\"},\"table_groups\":{\"description\":\"JSON string/object of table groups.\",\"type\":\"string\"},\"table_positions\":{\"description\":\"JSON string/object of table positions.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"filter data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='note'.\",\"properties\":{\"color\":{\"description\":\"Note color.\",\"type\":\"string\"},\"content\":{\"description\":\"Note content.\",\"type\":\"string\"},\"height\":{\"description\":\"Height.\",\"type\":\"integer\"},\"icon_name\":{\"description\":\"Icon name.\",\"type\":\"string\"},\"position_x\":{\"description\":\"X position.\",\"type\":\"integer\"},\"position_y\":{\"description\":\"Y position.\",\"type\":\"integer\"},\"title\":{\"description\":\"Note title.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"},\"width\":{\"description\":\"Width.\",\"type\":\"integer\"}},\"title\":\"note data\",\"type\":\"object\"}],\"type\":\"object\"},\"op\":{\"description\":\"Operation. For create, put any new UUID in data.uuid; for update/delete, put target UUID in operation.uuid.\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"description\":\"ERD entity type. This selects the operation.data shape.\",\"enum\":[\"table\",\"column\",\"index\",\"index_column\",\"ref\",\"ref_column\",\"enum\",\"enum_value\",\"table_group\",\"table_group_table\",\"table_group_note\",\"filter\",\"note\"],\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete. Do not use this for create; use data.uuid instead.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"documentUuid\",\"description\",\"operations\"],\"type\":\"object\"},\"required\":[\"description\",\"documentUuid\",\"operations\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"dd64d1f996060ab1\"},\n {\"mcpName\":\"mcp__ainecto__erd_arrange_tables\",\"commandPath\":[\"erd\",\"arrange-tables\"],\"group\":\"erd\",\"description\":\"Arrange ERD tables after edits. Default incremental mode places newly-created tables while preserving existing positions; full=true re-layouts the entire diagram. Use after several separate table edits to tidy the canvas.\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"},\"full\":{\"description\":\"Re-layout the ENTIRE diagram (overwrites existing positions). Default false = arrange only newly-added (uncoordinated) tables to the top-right while preserving existing table positions. Call this after creating several tables to tidy them up.\",\"type\":\"boolean\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"d2e66548e3d60d30\"},\n {\"mcpName\":\"mcp__ainecto__erd_get_enum\",\"commandPath\":[\"erd\",\"get-enum\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"},\"enumUuid\":{\"description\":\"Enum UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"enumUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\",\"enumUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"1e477b3fadb50c6b\"},\n {\"mcpName\":\"mcp__ainecto__erd_get_ref\",\"commandPath\":[\"erd\",\"get-ref\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"},\"refUuid\":{\"description\":\"Relationship UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"refUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\",\"refUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"40bf1eb02e7a9730\"},\n {\"mcpName\":\"mcp__ainecto__erd_get_table\",\"commandPath\":[\"erd\",\"get-table\"],\"group\":\"erd\",\"description\":\"Get one ERD table with nested columns and indexes. Returns persistent table/column/index UUIDs usable directly as mcp__ainecto__erd_apply_changes update/delete targets and ref_column column references. Column fields use apply_changes snake_case names: uuid, table_uuid, name, type, is_pk, is_unique, is_not_null, is_increment, default_value, note, display_order. Index fields include uuid, name, columns (column UUIDs), is_unique, is_pk, type.\",\"inputSchema\":{\"description\":\"Get one ERD table with nested columns and indexes. Returns persistent table/column/index UUIDs usable directly as mcp__ainecto__erd_apply_changes update/delete targets and ref_column column references. Column fields use apply_changes snake_case names: uuid, table_uuid, name, type, is_pk, is_unique, is_not_null, is_increment, default_value, note, display_order. Index fields include uuid, name, columns (column UUIDs), is_unique, is_pk, type.\",\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"},\"tableUuid\":{\"description\":\"Table UUID. Response includes columns[] and indexes[] with persistent UUIDs for apply_changes.\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"tableUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\",\"tableUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"8edd40794f39f47a\"},\n {\"mcpName\":\"mcp__ainecto__erd_get_table_group\",\"commandPath\":[\"erd\",\"get-table-group\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"},\"tableGroupUuid\":{\"description\":\"Table group UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"tableGroupUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\",\"tableGroupUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"bcd417344639c0c9\"},\n {\"mcpName\":\"mcp__ainecto__erd_list_enums\",\"commandPath\":[\"erd\",\"list-enums\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"e0c2207905dbb068\"},\n {\"mcpName\":\"mcp__ainecto__erd_list_refs\",\"commandPath\":[\"erd\",\"list-refs\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"9ae2e04c310b57f2\"},\n {\"mcpName\":\"mcp__ainecto__erd_list_table_groups\",\"commandPath\":[\"erd\",\"list-table-groups\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"dc8811071df04ac2\"},\n {\"mcpName\":\"mcp__ainecto__erd_list_tables\",\"commandPath\":[\"erd\",\"list-tables\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"ca05b35b174fc209\"},\n {\"mcpName\":\"mcp__ainecto__get_attachment\",\"commandPath\":[\"attachment\",\"get\"],\"group\":\"attachment\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuid\":{\"description\":\"Attachment UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"required\":[\"uuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"12bee70f6d254a5d\"},\n {\"mcpName\":\"mcp__ainecto__get_document\",\"commandPath\":[\"document\",\"get\"],\"group\":\"document\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuid\":{\"description\":\"Document UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"required\":[\"uuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"4949c8a5bb425491\"},\n {\"mcpName\":\"mcp__ainecto__get_project\",\"commandPath\":[\"project\",\"get\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuid\":{\"description\":\"Project UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"required\":[\"uuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"b4ee9097f4b80df4\"},\n {\"mcpName\":\"mcp__ainecto__get_version\",\"commandPath\":[\"version\",\"get\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"Document UUID\",\"type\":\"string\"},\"versionNumber\":{\"description\":\"Version number\",\"type\":\"integer\"}},\"required\":[\"documentUuid\",\"versionNumber\"],\"type\":\"object\"},\"required\":[\"documentUuid\",\"versionNumber\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"ad81d04200d3d7f5\"},\n {\"mcpName\":\"mcp__ainecto__get_workspace\",\"commandPath\":[\"workspace\",\"get\"],\"group\":\"workspace\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuid\":{\"description\":\"Workspace UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"required\":[\"uuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"ef7bae555463116e\"},\n {\"mcpName\":\"mcp__ainecto__list_attachments\",\"commandPath\":[\"attachments\",\"list\"],\"group\":\"attachment\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"projectUuid\":{\"description\":\"Project UUID\",\"type\":\"string\"}},\"required\":[\"projectUuid\"],\"type\":\"object\"},\"required\":[\"projectUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"a75657bb2e5eb383\"},\n {\"mcpName\":\"mcp__ainecto__list_documents\",\"commandPath\":[\"documents\",\"list\"],\"group\":\"document\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"folderUuid\":{\"description\":\"Optional folder UUID\",\"type\":\"string\"},\"limit\":{\"description\":\"Result cap when q is set (default 50)\",\"type\":\"integer\"},\"projectUuid\":{\"description\":\"Project UUID\",\"type\":\"string\"},\"q\":{\"description\":\"Optional full-text query. When provided, results come from the search index instead of folder listing.\",\"type\":\"string\"},\"type\":{\"description\":\"Optional document type filter. Enabled values: erd, markdown.\",\"enum\":[\"erd\",\"markdown\"],\"type\":\"string\"}},\"type\":\"object\"},\"required\":[],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"8dca77c1db9372c4\"},\n {\"mcpName\":\"mcp__ainecto__list_folders\",\"commandPath\":[\"folders\",\"list\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"projectUuid\":{\"description\":\"Project UUID\",\"type\":\"string\"}},\"required\":[\"projectUuid\"],\"type\":\"object\"},\"required\":[\"projectUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"f3cde57fe87d375c\"},\n {\"mcpName\":\"mcp__ainecto__list_projects\",\"commandPath\":[\"projects\",\"list\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"limit\":{\"description\":\"Result cap when q is set (default 50)\",\"type\":\"integer\"},\"q\":{\"description\":\"Optional full-text query\",\"type\":\"string\"},\"workspaceUuid\":{\"description\":\"Optional Workspace UUID\",\"type\":\"string\"}},\"type\":\"object\"},\"required\":[],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"9174d6965d7e53f5\"},\n {\"mcpName\":\"mcp__ainecto__list_trash\",\"commandPath\":[\"trash\",\"list\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{},\"type\":\"object\"},\"required\":[],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"82f8586d68bfcd7d\"},\n {\"mcpName\":\"mcp__ainecto__list_versions\",\"commandPath\":[\"versions\",\"list\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"Document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"370e4b8b8ec18e18\"},\n {\"mcpName\":\"mcp__ainecto__list_workspaces\",\"commandPath\":[\"workspaces\",\"list\"],\"group\":\"workspace\",\"description\":\"\",\"inputSchema\":{\"properties\":{},\"type\":\"object\"},\"required\":[],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"7c32c74000696b2f\"},\n {\"mcpName\":\"mcp__ainecto__markdown_append_document\",\"commandPath\":[\"markdown\",\"append-document\"],\"group\":\"markdown\",\"description\":\"Append to Markdown documents. If the appended body is tens of KB or more, prefer request_upload_token (purpose=document.append) and upload the body with curl.\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Appends\",\"items\":{\"properties\":{\"addition\":{\"description\":\"Body addition. 추가할 내용이 크면 (수십 KB 이상) LLM 토큰 절약을 위해 `request_upload_token (purpose=document.append, scopeJson={documentUuid, separator})` 로 uploadUrl 을 받고 curl 로 PUT 으로 보낼 것.\",\"type\":\"string\"},\"separator\":{\"description\":\"Separator between existing body and addition\",\"type\":\"string\"},\"uuid\":{\"description\":\"Document UUID\",\"type\":\"string\"}},\"required\":[\"uuid\",\"addition\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"f189514b3cccd1cc\"},\n {\"mcpName\":\"mcp__ainecto__markdown_generate_document\",\"commandPath\":[\"markdown\",\"generate-document\"],\"group\":\"markdown\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Generation requests\",\"items\":{\"properties\":{\"context\":{\"description\":\"Optional JSON context\",\"type\":\"string\"},\"documentUuid\":{\"description\":\"Target document UUID\",\"type\":\"string\"},\"prompt\":{\"description\":\"Generation prompt\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"prompt\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"72114a2d2642ed92\"},\n {\"mcpName\":\"mcp__ainecto__move_documents\",\"commandPath\":[\"documents\",\"move\"],\"group\":\"document\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"clientMutationId\":{\"description\":\"Optional mutation identifier for client retry tracing\",\"maxLength\":128,\"minLength\":1,\"pattern\":\"^[\\\\x21-\\\\x7E]{1,128}$\",\"type\":\"string\"},\"items\":{\"description\":\"Moves\",\"items\":{\"properties\":{\"newFolderUuid\":{\"description\":\"New folder UUID — null/empty for root\",\"type\":\"string\"},\"targetProjectUuid\":{\"description\":\"Target project UUID — omit to stay in current project\",\"type\":\"string\"},\"targetWorkspaceUuid\":{\"description\":\"Guard only: must match targetProjectUuid workspace\",\"type\":\"string\"},\"uuid\":{\"description\":\"Document UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"prod\",\"schemaHash\":\"9758d6a262913a3f\"},\n {\"mcpName\":\"mcp__ainecto__move_folders\",\"commandPath\":[\"folders\",\"move\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Moves\",\"items\":{\"properties\":{\"newParentFolderUuid\":{\"description\":\"New parent UUID — null/empty for root\",\"type\":\"string\"},\"uuid\":{\"description\":\"Folder UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"prod\",\"schemaHash\":\"612a779b1fd176bb\"},\n {\"mcpName\":\"mcp__ainecto__request_upload_token\",\"commandPath\":[\"tools\",\"run\",\"request-upload-token\"],\"group\":\"attachment\",\"description\":\"Use this for large payloads of tens of KB or more to save LLM tokens. purpose=mcp.call returns a short-lived bearer token that can call any MCP tool, including mcp__ainecto__erd_apply_changes, via curl. purpose=document.create/update/append uploads document bodies directly to the upload endpoint with PUT/curl. Tokens are reusable for 5 minutes by default.\",\"inputSchema\":{\"properties\":{\"maxBytes\":{\"description\":\"최대 업로드 byte (서버 측 한도)\",\"type\":\"integer\"},\"purpose\":{\"description\":\"Token 용도. `mcp.call` 은 curl 로 /mcp 호출, `document.create/update/append` 는 PUT body 로 본문 업로드, `attachment.upload` 는 파일 bytes 업로드. 콘텐츠가 크면 (수십 KB 이상) LLM 토큰 절약을 위해 이 도구로 5분 재사용 토큰을 받고 curl 로 보내는 것을 강력 권장.\",\"enum\":[\"mcp.call\",\"document.create\",\"document.update\",\"document.append\",\"attachment.upload\"],\"type\":\"string\"},\"scopeJson\":{\"description\":\"선택 — JSON scope. document.create 는 projectUuid, type, title 을 포함하고 enabled type values 는 erd, markdown. document.update/document.append 는 documentUuid 를 포함. attachment.upload: {documentUuid, filename, contentType?, sizeBytes?}; storageKey 는 서버가 발급 scope 에 추가.\",\"type\":\"string\"},\"ttlSeconds\":{\"description\":\"TTL (초). 기본 300 (5분)\",\"type\":\"integer\"}},\"required\":[\"purpose\"],\"type\":\"object\"},\"required\":[\"purpose\"],\"payloadMode\":\"binary-upload\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"f1eb94523f43e72b\"},\n {\"mcpName\":\"mcp__ainecto__restore_versions\",\"commandPath\":[\"versions\",\"restore\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Restores\",\"items\":{\"properties\":{\"documentUuid\":{\"description\":\"Document UUID\",\"type\":\"string\"},\"versionNumber\":{\"description\":\"Version number to restore\",\"type\":\"integer\"}},\"required\":[\"documentUuid\",\"versionNumber\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"prod\",\"schemaHash\":\"c4f448cc3b96c7a6\"},\n {\"mcpName\":\"mcp__ainecto__search_documents\",\"commandPath\":[\"documents\",\"search\"],\"group\":\"document\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"limit\":{\"description\":\"결과 개수 (기본 20, 최대 50)\",\"type\":\"integer\"},\"offset\":{\"description\":\"페이지네이션 offset (기본 0)\",\"type\":\"integer\"},\"projectUuid\":{\"description\":\"특정 프로젝트로 한정 (선택)\",\"type\":\"string\"},\"q\":{\"description\":\"검색 키워드\",\"type\":\"string\"},\"type\":{\"description\":\"Optional document type filter. Enabled values: erd, markdown.\",\"enum\":[\"erd\",\"markdown\"],\"type\":\"string\"}},\"required\":[\"q\"],\"type\":\"object\"},\"required\":[\"q\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"b88c3537086d0c7a\"},\n {\"mcpName\":\"mcp__ainecto__unarchive_documents\",\"commandPath\":[\"documents\",\"unarchive\"],\"group\":\"document\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Document UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"prod\",\"schemaHash\":\"4aae7df04fba8779\"},\n {\"mcpName\":\"mcp__ainecto__unarchive_folders\",\"commandPath\":[\"folders\",\"unarchive\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Folder UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"prod\",\"schemaHash\":\"e307cab0ebafd179\"},\n {\"mcpName\":\"mcp__ainecto__unarchive_projects\",\"commandPath\":[\"projects\",\"unarchive\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Project UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"prod\",\"schemaHash\":\"15ea4a409d1549de\"},\n {\"mcpName\":\"mcp__ainecto__unarchive_workspaces\",\"commandPath\":[\"workspaces\",\"unarchive\"],\"group\":\"workspace\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Workspace UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"prod\",\"schemaHash\":\"641de5b64ec75ab2\"},\n {\"mcpName\":\"mcp__ainecto__update_documents\",\"commandPath\":[\"documents\",\"update\"],\"group\":\"document\",\"description\":\"Update documents. If a replacement body is tens of KB or more, prefer request_upload_token (purpose=document.update) and upload the body with curl.\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Updates\",\"items\":{\"properties\":{\"body\":{\"description\":\"Deprecated compatibility alias for typePayload.body when document type is markdown. 본문이 수십 KB 이상으로 크면 LLM 토큰 절약을 위해 `request_upload_token (purpose=document.update)` 를 호출해 uploadUrl 을 받고 curl 로 직접 PUT 으로 보낼 것.\",\"type\":\"string\"},\"title\":{\"description\":\"New title\",\"type\":\"string\"},\"typePayload\":{\"description\":\"Type-specific payload for enabled document types. markdown: {body}.\",\"type\":\"object\"},\"uuid\":{\"description\":\"Document UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"5bedb6e5f5ba4f8d\"},\n {\"mcpName\":\"mcp__ainecto__update_folders\",\"commandPath\":[\"folders\",\"update\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Updates\",\"items\":{\"properties\":{\"name\":{\"description\":\"New name\",\"type\":\"string\"},\"uuid\":{\"description\":\"Folder UUID\",\"type\":\"string\"}},\"required\":[\"uuid\",\"name\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"7bef3b4702df1f00\"},\n {\"mcpName\":\"mcp__ainecto__update_projects\",\"commandPath\":[\"projects\",\"update\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Updates\",\"items\":{\"properties\":{\"description\":{\"description\":\"New description\",\"type\":\"string\"},\"name\":{\"description\":\"New name\",\"type\":\"string\"},\"uuid\":{\"description\":\"Project UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"10cc0d84aeb2192b\"},\n {\"mcpName\":\"mcp__ainecto__update_workspaces\",\"commandPath\":[\"workspaces\",\"update\"],\"group\":\"workspace\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Updates\",\"items\":{\"properties\":{\"description\":{\"description\":\"New description\",\"type\":\"string\"},\"name\":{\"description\":\"New name\",\"type\":\"string\"},\"uuid\":{\"description\":\"Workspace UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"723e4f6d36ee9d02\"},\n {\"mcpName\":\"mcp__ainecto__upload_attachments\",\"commandPath\":[\"tools\",\"run\",\"upload-attachments\"],\"group\":\"attachment\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Attachments to register\",\"items\":{\"properties\":{\"contentType\":{\"description\":\"MIME type\",\"type\":\"string\"},\"documentUuid\":{\"description\":\"Parent document UUID\",\"type\":\"string\"},\"filename\":{\"description\":\"Original file name\",\"type\":\"string\"},\"sizeBytes\":{\"description\":\"Size in bytes\",\"type\":\"integer\"},\"storageKey\":{\"description\":\"Storage key returned by request_upload_token purpose=attachment.upload\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"filename\",\"storageKey\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"binary-upload\",\"destructive\":false,\"sourceCatalog\":\"prod\",\"schemaHash\":\"0622e590de3404dd\"},\n] satisfies GeneratedToolDefinition[];\n","import type { GeneratedToolDefinition } from \"./types\";\n\nexport const generatedTools = [\n {\"mcpName\":\"mcp__ainecto__create_documents\",\"commandPath\":[\"documents\",\"create\"],\"group\":\"document\",\"description\":\"Create documents. If a document body is tens of KB or more, prefer request_upload_token (purpose=document.create) and upload the body with curl.\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Documents\",\"items\":{\"properties\":{\"body\":{\"description\":\"Deprecated compatibility alias for typePayload.body when document type is markdown. 본문이 수십 KB 이상으로 크면 LLM 토큰 절약을 위해 `request_upload_token (purpose=document.create)` 를 호출해 uploadUrl 을 받고 curl 로 직접 PUT 으로 보낼 것.\",\"type\":\"string\"},\"folderUuid\":{\"description\":\"Optional folder UUID\",\"type\":\"string\"},\"projectUuid\":{\"description\":\"Project UUID\",\"type\":\"string\"},\"title\":{\"description\":\"Document title\",\"type\":\"string\"},\"type\":{\"description\":\"Document type. Enabled values: erd, diagram, markdown, testcase, task.\",\"enum\":[\"erd\",\"diagram\",\"markdown\",\"testcase\",\"task\"],\"type\":\"string\"},\"typePayload\":{\"description\":\"Type-specific payload for enabled document types. markdown: {body}; diagram: {diagramSource,sourceLanguage,edgeStyle,isModule,metadata}; testcase: {defaultEnvironment (max 50 chars), defaultTestAccount (max 100 chars)}; task: no typePayload; board and default statuses are seeded automatically.\",\"type\":\"object\"}},\"required\":[\"projectUuid\",\"type\",\"title\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"6abbab093274fceb\"},\n {\"mcpName\":\"mcp__ainecto__create_folders\",\"commandPath\":[\"folders\",\"create\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Folders\",\"items\":{\"properties\":{\"name\":{\"description\":\"Folder name\",\"type\":\"string\"},\"parentFolderUuid\":{\"description\":\"Parent folder UUID\",\"type\":\"string\"},\"projectUuid\":{\"description\":\"Project UUID\",\"type\":\"string\"}},\"required\":[\"projectUuid\",\"name\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"d423d3c265631664\"},\n {\"mcpName\":\"mcp__ainecto__create_projects\",\"commandPath\":[\"projects\",\"create\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Projects\",\"items\":{\"properties\":{\"description\":{\"description\":\"Description\",\"type\":\"string\"},\"name\":{\"description\":\"Project name\",\"type\":\"string\"},\"projectKey\":{\"description\":\"Unique project key\",\"type\":\"string\"},\"workspaceUuid\":{\"description\":\"Workspace UUID — null uses user's default workspace\",\"type\":\"string\"}},\"required\":[\"name\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"396c80c6cc2ba41a\"},\n {\"mcpName\":\"mcp__ainecto__create_workspaces\",\"commandPath\":[\"workspaces\",\"create\"],\"group\":\"workspace\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Workspaces\",\"items\":{\"properties\":{\"description\":{\"description\":\"Description\",\"type\":\"string\"},\"name\":{\"description\":\"Workspace name\",\"type\":\"string\"}},\"required\":[\"name\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"d663d461f9c9da65\"},\n {\"mcpName\":\"mcp__ainecto__delete_attachments\",\"commandPath\":[\"attachments\",\"delete\"],\"group\":\"attachment\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Attachment UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"6e55e6511d732199\"},\n {\"mcpName\":\"mcp__ainecto__delete_documents\",\"commandPath\":[\"documents\",\"delete\"],\"group\":\"document\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Document UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"5fbc7c142bb4a49d\"},\n {\"mcpName\":\"mcp__ainecto__delete_folders\",\"commandPath\":[\"folders\",\"delete\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Folder UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"49fa7c0f823871b2\"},\n {\"mcpName\":\"mcp__ainecto__delete_projects\",\"commandPath\":[\"projects\",\"delete\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Project UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"e1a86ddaa9638298\"},\n {\"mcpName\":\"mcp__ainecto__delete_workspaces\",\"commandPath\":[\"workspaces\",\"delete\"],\"group\":\"workspace\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Workspace UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"2aca644f7a105b06\"},\n {\"mcpName\":\"mcp__ainecto__diagram_apply_changes\",\"commandPath\":[\"tools\",\"run\",\"diagram-apply-changes\"],\"group\":\"generic\",\"description\":\"Required single-call mutation path for diagram node/edge/group create/update/delete changes. Put nodes, edges, and groups in one request and call this once. Do not look for type-specific diagram CUD tools; this tool is the only diagram CUD entry point.\",\"inputSchema\":{\"properties\":{\"description\":{\"description\":\"Reason for batch (audit)\",\"type\":\"string\"},\"diagramUuid\":{\"description\":\"Diagram UUID\",\"type\":\"string\"},\"edges\":{\"description\":\"Edge operations\",\"items\":{\"properties\":{\"action\":{\"description\":\"Operation kind\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"bridgeType\":{\"description\":\"Bridge type\",\"type\":\"string\"},\"fromUuid\":{\"description\":\"Source\",\"type\":\"string\"},\"label\":{\"description\":\"Edge label\",\"type\":\"string\"},\"lineStyle\":{\"description\":\"Line style\",\"type\":\"string\"},\"strokeColor\":{\"description\":\"Stroke color\",\"type\":\"string\"},\"strokeWidth\":{\"description\":\"Stroke width\",\"type\":\"integer\"},\"toUuid\":{\"description\":\"Target\",\"type\":\"string\"},\"uuid\":{\"description\":\"Required for update/delete\",\"type\":\"string\"}},\"required\":[\"action\"],\"type\":\"object\"},\"type\":\"array\"},\"groups\":{\"description\":\"Group operations\",\"items\":{\"properties\":{\"action\":{\"description\":\"Operation kind\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"collapsed\":{\"description\":\"Collapsed state\",\"type\":\"boolean\"},\"color\":{\"description\":\"Group color\",\"type\":\"string\"},\"linkMode\":{\"description\":\"Link mode\",\"type\":\"string\"},\"linkedDiagramUuid\":{\"description\":\"Linked diagram UUID\",\"type\":\"string\"},\"name\":{\"description\":\"Group name\",\"type\":\"string\"},\"parentGroupUuid\":{\"description\":\"Parent group UUID\",\"type\":\"string\"},\"sortOrder\":{\"description\":\"Sort order\",\"type\":\"integer\"},\"uuid\":{\"description\":\"Required for update/delete\",\"type\":\"string\"}},\"required\":[\"action\"],\"type\":\"object\"},\"type\":\"array\"},\"nodes\":{\"description\":\"Node operations\",\"items\":{\"properties\":{\"action\":{\"description\":\"Operation kind\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"fillColor\":{\"description\":\"Fill color\",\"type\":\"string\"},\"groupUuid\":{\"description\":\"Group UUID; empty string clears membership\",\"type\":\"string\"},\"height\":{\"description\":\"Height\",\"type\":\"number\"},\"shape\":{\"description\":\"Node shape (start/end/diamond/cylinder/parallelogram/stadium/hexagon/rect/roundRect/...)\",\"enum\":[\"rect\",\"roundRect\",\"stadium\",\"diamond\",\"decision\",\"circle\",\"start\",\"doubleCircle\",\"end\",\"hexagon\",\"cylinder\",\"parallelogram\"],\"type\":\"string\"},\"strokeColor\":{\"description\":\"Stroke color\",\"type\":\"string\"},\"text\":{\"description\":\"Node text/label. Supports newlines (\\\\n) for multi-line display.\",\"maxLength\":4000,\"type\":\"string\"},\"textColor\":{\"description\":\"Text color\",\"type\":\"string\"},\"type\":{\"description\":\"Node type\",\"type\":\"string\"},\"uuid\":{\"description\":\"Required for update/delete; optional for create\",\"type\":\"string\"},\"width\":{\"description\":\"Width\",\"type\":\"number\"},\"x\":{\"description\":\"X\",\"type\":\"number\"},\"y\":{\"description\":\"Y\",\"type\":\"number\"}},\"required\":[\"action\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"diagramUuid\",\"description\"],\"type\":\"object\"},\"required\":[\"description\",\"diagramUuid\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"1c87428fea4bb77a\"},\n {\"mcpName\":\"mcp__ainecto__diagram_get_edge\",\"commandPath\":[\"tools\",\"run\",\"diagram-get-edge\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"edgeUuid\":{\"description\":\"Edge UUID\",\"type\":\"string\"}},\"required\":[\"edgeUuid\"],\"type\":\"object\"},\"required\":[\"edgeUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"b147277e74d3b0f7\"},\n {\"mcpName\":\"mcp__ainecto__diagram_get_group\",\"commandPath\":[\"tools\",\"run\",\"diagram-get-group\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"groupUuid\":{\"description\":\"Group UUID\",\"type\":\"string\"}},\"required\":[\"groupUuid\"],\"type\":\"object\"},\"required\":[\"groupUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"4516fc00303ab8db\"},\n {\"mcpName\":\"mcp__ainecto__diagram_get_node\",\"commandPath\":[\"tools\",\"run\",\"diagram-get-node\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"nodeUuid\":{\"description\":\"Node UUID\",\"type\":\"string\"}},\"required\":[\"nodeUuid\"],\"type\":\"object\"},\"required\":[\"nodeUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"20f370ff4438c4b0\"},\n {\"mcpName\":\"mcp__ainecto__diagram_get_pending_llm_requests\",\"commandPath\":[\"tools\",\"run\",\"diagram-get-pending-llm-requests\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{},\"type\":\"object\"},\"required\":[],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"0ec4dd6d61584a98\"},\n {\"mcpName\":\"mcp__ainecto__diagram_list_edges\",\"commandPath\":[\"tools\",\"run\",\"diagram-list-edges\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"diagramUuid\":{\"description\":\"Diagram document UUID\",\"type\":\"string\"}},\"required\":[\"diagramUuid\"],\"type\":\"object\"},\"required\":[\"diagramUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"fee200dd1433daf9\"},\n {\"mcpName\":\"mcp__ainecto__diagram_list_groups\",\"commandPath\":[\"tools\",\"run\",\"diagram-list-groups\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"diagramUuid\":{\"description\":\"Diagram document UUID\",\"type\":\"string\"}},\"required\":[\"diagramUuid\"],\"type\":\"object\"},\"required\":[\"diagramUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"852a19cda307f863\"},\n {\"mcpName\":\"mcp__ainecto__diagram_list_nodes\",\"commandPath\":[\"tools\",\"run\",\"diagram-list-nodes\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"diagramUuid\":{\"description\":\"Diagram document UUID\",\"type\":\"string\"}},\"required\":[\"diagramUuid\"],\"type\":\"object\"},\"required\":[\"diagramUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"a8c41752151ade3e\"},\n {\"mcpName\":\"mcp__ainecto__diagram_submit_llm_result\",\"commandPath\":[\"tools\",\"run\",\"diagram-submit-llm-result\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"creditsCharged\":{\"description\":\"Deprecated; ignored. Credits are calculated server-side from tokens.\",\"type\":\"integer\"},\"inputTokens\":{\"description\":\"Input token count\",\"type\":\"integer\"},\"outputTokens\":{\"description\":\"Output token count\",\"type\":\"integer\"},\"result\":{\"description\":\"LLM result text\",\"type\":\"string\"},\"uuid\":{\"description\":\"LLM request UUID\",\"type\":\"string\"}},\"required\":[\"uuid\",\"result\"],\"type\":\"object\"},\"required\":[\"result\",\"uuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"374654baa87c1bb8\"},\n {\"mcpName\":\"mcp__ainecto__diagram_update_llm_request_status\",\"commandPath\":[\"tools\",\"run\",\"diagram-update-llm-request-status\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"errorMessage\":{\"description\":\"Error message (when status=FAILED)\",\"type\":\"string\"},\"status\":{\"description\":\"Target status — currently only FAILED is mutable from caller side\",\"enum\":[\"FAILED\"],\"type\":\"string\"},\"uuid\":{\"description\":\"LLM request UUID\",\"type\":\"string\"}},\"required\":[\"uuid\",\"status\"],\"type\":\"object\"},\"required\":[\"status\",\"uuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"25537b63698bc33d\"},\n {\"mcpName\":\"mcp__ainecto__disable_shares\",\"commandPath\":[\"tools\",\"run\",\"disable-shares\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"targetType\":{\"description\":\"Share target type\",\"enum\":[\"project\",\"folder\",\"document\"],\"type\":\"string\"},\"targetUuids\":{\"description\":\"Target UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"targetType\",\"targetUuids\"],\"type\":\"object\"},\"required\":[\"targetType\",\"targetUuids\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"a4b4358eff0faa97\"},\n {\"mcpName\":\"mcp__ainecto__enable_shares\",\"commandPath\":[\"tools\",\"run\",\"enable-shares\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"targetType\":{\"description\":\"Share target type\",\"enum\":[\"project\",\"folder\",\"document\"],\"type\":\"string\"},\"targetUuids\":{\"description\":\"Target UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"targetType\",\"targetUuids\"],\"type\":\"object\"},\"required\":[\"targetType\",\"targetUuids\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"ebace643de07e826\"},\n {\"mcpName\":\"mcp__ainecto__erd_apply_changes\",\"commandPath\":[\"erd\",\"apply-changes\"],\"group\":\"erd\",\"description\":\"Required single-call mutation path for ERD create/update/delete changes. Put tables, columns, indexes, refs, enums, enum_values, and table groups in one operations array and call this once.\\nRules: (1) all data field names are snake_case; (2) for create, generate your own UUIDs and put them in data.uuid, then later operations in the same batch may reference those UUIDs without read-back calls; (3) enum values are separate enum_value operations, not inline on enum; (4) ref.relationship uses short dbdiagram-style symbols: >, <, or -; (5) ref_column operations map FK columns explicitly, never automatically.\\nDo not look for type-specific ERD CUD tools; this tool is the only ERD CUD entry point. If operations is very large, use mcp__ainecto__request_upload_token with purpose=mcp.call and send the tools/call payload with curl to save LLM tokens.\\nOne-call worked example:\\n{\\n \\\"documentUuid\\\": \\\"erd-doc-uuid\\\",\\n \\\"description\\\": \\\"create users/posts ERD\\\",\\n \\\"operations\\\": [\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"table\\\",\\\"data\\\":{\\\"uuid\\\":\\\"tbl_users\\\",\\\"name\\\":\\\"users\\\",\\\"display_order\\\":1}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"column\\\",\\\"data\\\":{\\\"uuid\\\":\\\"col_users_id\\\",\\\"table_uuid\\\":\\\"tbl_users\\\",\\\"name\\\":\\\"id\\\",\\\"type\\\":\\\"bigint\\\",\\\"is_pk\\\":true,\\\"is_not_null\\\":true,\\\"display_order\\\":1}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"column\\\",\\\"data\\\":{\\\"uuid\\\":\\\"col_users_email\\\",\\\"table_uuid\\\":\\\"tbl_users\\\",\\\"name\\\":\\\"email\\\",\\\"type\\\":\\\"varchar(255)\\\",\\\"is_unique\\\":true,\\\"is_not_null\\\":true,\\\"display_order\\\":2}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"table\\\",\\\"data\\\":{\\\"uuid\\\":\\\"tbl_posts\\\",\\\"name\\\":\\\"posts\\\",\\\"display_order\\\":2}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"column\\\",\\\"data\\\":{\\\"uuid\\\":\\\"col_posts_id\\\",\\\"table_uuid\\\":\\\"tbl_posts\\\",\\\"name\\\":\\\"id\\\",\\\"type\\\":\\\"bigint\\\",\\\"is_pk\\\":true,\\\"is_not_null\\\":true,\\\"display_order\\\":1}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"column\\\",\\\"data\\\":{\\\"uuid\\\":\\\"col_posts_author_id\\\",\\\"table_uuid\\\":\\\"tbl_posts\\\",\\\"name\\\":\\\"author_id\\\",\\\"type\\\":\\\"bigint\\\",\\\"is_not_null\\\":true,\\\"display_order\\\":2}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"column\\\",\\\"data\\\":{\\\"uuid\\\":\\\"col_posts_status\\\",\\\"table_uuid\\\":\\\"tbl_posts\\\",\\\"name\\\":\\\"status\\\",\\\"type\\\":\\\"post_status\\\",\\\"is_not_null\\\":true,\\\"display_order\\\":3}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"enum\\\",\\\"data\\\":{\\\"uuid\\\":\\\"enum_post_status\\\",\\\"name\\\":\\\"post_status\\\"}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"enum_value\\\",\\\"data\\\":{\\\"uuid\\\":\\\"enum_post_status_draft\\\",\\\"enum_uuid\\\":\\\"enum_post_status\\\",\\\"value\\\":\\\"draft\\\",\\\"display_order\\\":1}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"enum_value\\\",\\\"data\\\":{\\\"uuid\\\":\\\"enum_post_status_published\\\",\\\"enum_uuid\\\":\\\"enum_post_status\\\",\\\"value\\\":\\\"published\\\",\\\"display_order\\\":2}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"ref\\\",\\\"data\\\":{\\\"uuid\\\":\\\"ref_posts_author\\\",\\\"name\\\":\\\"fk_posts_author\\\",\\\"from_table_uuid\\\":\\\"tbl_posts\\\",\\\"to_table_uuid\\\":\\\"tbl_users\\\",\\\"relationship\\\":\\\">\\\",\\\"on_delete\\\":\\\"cascade\\\"}},\\n {\\\"op\\\":\\\"create\\\",\\\"type\\\":\\\"ref_column\\\",\\\"data\\\":{\\\"uuid\\\":\\\"refcol_posts_author\\\",\\\"ref_uuid\\\":\\\"ref_posts_author\\\",\\\"from_column_uuid\\\":\\\"col_posts_author_id\\\",\\\"to_column_uuid\\\":\\\"col_users_id\\\",\\\"display_order\\\":1}}\\n ]\\n}\",\"inputSchema\":{\"properties\":{\"arrangeNewTables\":{\"description\":\"Whether to auto-place newly-created tables after the batch; defaults to true\",\"type\":\"boolean\"},\"description\":{\"description\":\"Reason for batch (audit)\",\"type\":\"string\"},\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"},\"operations\":{\"description\":\"Atomic create/update/delete operations\",\"items\":{\"description\":\"One ERD mutation. Use a single operations array with client-generated data.uuid values to create cross-referenced tables, columns, enums, refs, and ref_columns without read-back calls.\",\"discriminator\":{\"propertyName\":\"type\"},\"oneOf\":[{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table'.\",\"properties\":{\"alias\":{\"description\":\"Display alias.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"header_color\":{\"description\":\"Header color.\",\"type\":\"string\"},\"name\":{\"description\":\"Table name. Required for create.\",\"type\":\"string\"},\"note\":{\"description\":\"Table note.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Schema name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"name\"],\"title\":\"table data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table'.\",\"properties\":{\"alias\":{\"description\":\"Display alias.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"header_color\":{\"description\":\"Header color.\",\"type\":\"string\"},\"name\":{\"description\":\"Table name. Required for create.\",\"type\":\"string\"},\"note\":{\"description\":\"Table note.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Schema name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"table\",\"description\":\"Must be 'table' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"table operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='column'.\",\"properties\":{\"default_value\":{\"description\":\"Default value.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"is_increment\":{\"description\":\"Auto-increment flag.\",\"type\":\"boolean\"},\"is_not_null\":{\"description\":\"Not-null flag.\",\"type\":\"boolean\"},\"is_pk\":{\"description\":\"Primary key flag.\",\"type\":\"boolean\"},\"is_unique\":{\"description\":\"Unique flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Column name.\",\"type\":\"string\"},\"note\":{\"description\":\"Column note.\",\"type\":\"string\"},\"table_uuid\":{\"description\":\"Parent table UUID. Required for create; may be a data.uuid from an earlier table operation in this batch.\",\"type\":\"string\"},\"type\":{\"description\":\"SQL data type. Use this exact field name; do not send data_type.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"table_uuid\"],\"title\":\"column data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='column'.\",\"properties\":{\"default_value\":{\"description\":\"Default value.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"is_increment\":{\"description\":\"Auto-increment flag.\",\"type\":\"boolean\"},\"is_not_null\":{\"description\":\"Not-null flag.\",\"type\":\"boolean\"},\"is_pk\":{\"description\":\"Primary key flag.\",\"type\":\"boolean\"},\"is_unique\":{\"description\":\"Unique flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Column name.\",\"type\":\"string\"},\"note\":{\"description\":\"Column note.\",\"type\":\"string\"},\"table_uuid\":{\"description\":\"Parent table UUID. Required for create; may be a data.uuid from an earlier table operation in this batch.\",\"type\":\"string\"},\"type\":{\"description\":\"SQL data type. Use this exact field name; do not send data_type.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"column data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"column\",\"description\":\"Must be 'column' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"column operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='index'.\",\"properties\":{\"is_pk\":{\"description\":\"Primary key index flag.\",\"type\":\"boolean\"},\"is_unique\":{\"description\":\"Unique index flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Index name.\",\"type\":\"string\"},\"note\":{\"description\":\"Index note.\",\"type\":\"string\"},\"table_uuid\":{\"description\":\"Parent table UUID. Required for create.\",\"type\":\"string\"},\"type\":{\"description\":\"Index type.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"table_uuid\"],\"title\":\"index data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='index'.\",\"properties\":{\"is_pk\":{\"description\":\"Primary key index flag.\",\"type\":\"boolean\"},\"is_unique\":{\"description\":\"Unique index flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Index name.\",\"type\":\"string\"},\"note\":{\"description\":\"Index note.\",\"type\":\"string\"},\"table_uuid\":{\"description\":\"Parent table UUID. Required for create.\",\"type\":\"string\"},\"type\":{\"description\":\"Index type.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"index data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"index\",\"description\":\"Must be 'index' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"index operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='index_column'.\",\"properties\":{\"column_uuid\":{\"description\":\"Column UUID. Required for create.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"index_uuid\":{\"description\":\"Index UUID. Required for create.\",\"type\":\"string\"},\"sort_order\":{\"description\":\"Sort order, for example ASC or DESC.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"index_uuid\",\"column_uuid\"],\"title\":\"index_column data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='index_column'.\",\"properties\":{\"column_uuid\":{\"description\":\"Column UUID. Required for create.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"index_uuid\":{\"description\":\"Index UUID. Required for create.\",\"type\":\"string\"},\"sort_order\":{\"description\":\"Sort order, for example ASC or DESC.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"index_column data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"index_column\",\"description\":\"Must be 'index_column' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"index_column operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='ref'.\",\"properties\":{\"from_table_uuid\":{\"description\":\"Source table UUID. Required for create.\",\"type\":\"string\"},\"name\":{\"description\":\"Reference name.\",\"type\":\"string\"},\"on_delete\":{\"description\":\"ON DELETE action.\",\"type\":\"string\"},\"on_update\":{\"description\":\"ON UPDATE action.\",\"type\":\"string\"},\"relationship\":{\"description\":\"Required for create. Use short dbdiagram-style relationship symbols.\",\"enum\":[\">\",\"<\",\"-\"],\"type\":\"string\"},\"to_table_uuid\":{\"description\":\"Target table UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"from_table_uuid\",\"to_table_uuid\",\"relationship\"],\"title\":\"ref data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='ref'.\",\"properties\":{\"from_table_uuid\":{\"description\":\"Source table UUID. Required for create.\",\"type\":\"string\"},\"name\":{\"description\":\"Reference name.\",\"type\":\"string\"},\"on_delete\":{\"description\":\"ON DELETE action.\",\"type\":\"string\"},\"on_update\":{\"description\":\"ON UPDATE action.\",\"type\":\"string\"},\"relationship\":{\"description\":\"Required for create. Use short dbdiagram-style relationship symbols.\",\"enum\":[\">\",\"<\",\"-\"],\"type\":\"string\"},\"to_table_uuid\":{\"description\":\"Target table UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"ref data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"ref\",\"description\":\"Must be 'ref' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"ref operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='ref_column'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"from_column_uuid\":{\"description\":\"Source column UUID. Required for create.\",\"type\":\"string\"},\"ref_uuid\":{\"description\":\"Reference UUID. Required for create; may be a data.uuid from an earlier ref operation.\",\"type\":\"string\"},\"to_column_uuid\":{\"description\":\"Target column UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"ref_uuid\",\"from_column_uuid\",\"to_column_uuid\"],\"title\":\"ref_column data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='ref_column'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"from_column_uuid\":{\"description\":\"Source column UUID. Required for create.\",\"type\":\"string\"},\"ref_uuid\":{\"description\":\"Reference UUID. Required for create; may be a data.uuid from an earlier ref operation.\",\"type\":\"string\"},\"to_column_uuid\":{\"description\":\"Target column UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"ref_column data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"ref_column\",\"description\":\"Must be 'ref_column' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"ref_column operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='enum'.\",\"properties\":{\"name\":{\"description\":\"Enum name.\",\"type\":\"string\"},\"note\":{\"description\":\"Enum note.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Schema name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"enum data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='enum'.\",\"properties\":{\"name\":{\"description\":\"Enum name.\",\"type\":\"string\"},\"note\":{\"description\":\"Enum note.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Schema name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"enum data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"enum\",\"description\":\"Must be 'enum' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"enum operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='enum_value'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"enum_uuid\":{\"description\":\"Parent enum UUID. Required for create; may be a data.uuid from an earlier enum operation.\",\"type\":\"string\"},\"note\":{\"description\":\"Enum value note.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"},\"value\":{\"description\":\"Enum value. Inline enum values on enum are not persisted; create enum_value operations.\",\"type\":\"string\"}},\"required\":[\"enum_uuid\"],\"title\":\"enum_value data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='enum_value'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"enum_uuid\":{\"description\":\"Parent enum UUID. Required for create; may be a data.uuid from an earlier enum operation.\",\"type\":\"string\"},\"note\":{\"description\":\"Enum value note.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"},\"value\":{\"description\":\"Enum value. Inline enum values on enum are not persisted; create enum_value operations.\",\"type\":\"string\"}},\"title\":\"enum_value data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"enum_value\",\"description\":\"Must be 'enum_value' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"enum_value operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table_group'.\",\"properties\":{\"color\":{\"description\":\"Group color.\",\"type\":\"string\"},\"name\":{\"description\":\"Table group name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table_group'.\",\"properties\":{\"color\":{\"description\":\"Group color.\",\"type\":\"string\"},\"name\":{\"description\":\"Table group name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"table_group\",\"description\":\"Must be 'table_group' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"table_group operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table_group_table'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"group_uuid\":{\"description\":\"Table group UUID. Required for create.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Table schema name.\",\"type\":\"string\"},\"table_name\":{\"description\":\"Table name. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"group_uuid\",\"table_name\"],\"title\":\"table_group_table data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table_group_table'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"group_uuid\":{\"description\":\"Table group UUID. Required for create.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Table schema name.\",\"type\":\"string\"},\"table_name\":{\"description\":\"Table name. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group_table data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"table_group_table\",\"description\":\"Must be 'table_group_table' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"table_group_table operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table_group_note'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"group_uuid\":{\"description\":\"Table group UUID. Required for create.\",\"type\":\"string\"},\"note_uuid\":{\"description\":\"Note UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"required\":[\"group_uuid\",\"note_uuid\"],\"title\":\"table_group_note data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='table_group_note'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"group_uuid\":{\"description\":\"Table group UUID. Required for create.\",\"type\":\"string\"},\"note_uuid\":{\"description\":\"Note UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group_note data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"table_group_note\",\"description\":\"Must be 'table_group_note' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"table_group_note operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='filter'.\",\"properties\":{\"included_tables\":{\"description\":\"JSON string/list of included tables.\",\"type\":\"string\"},\"is_default\":{\"description\":\"Default filter flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Filter name.\",\"type\":\"string\"},\"table_groups\":{\"description\":\"JSON string/object of table groups.\",\"type\":\"string\"},\"table_positions\":{\"description\":\"JSON string/object of table positions.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"filter data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='filter'.\",\"properties\":{\"included_tables\":{\"description\":\"JSON string/list of included tables.\",\"type\":\"string\"},\"is_default\":{\"description\":\"Default filter flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Filter name.\",\"type\":\"string\"},\"table_groups\":{\"description\":\"JSON string/object of table groups.\",\"type\":\"string\"},\"table_positions\":{\"description\":\"JSON string/object of table positions.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"filter data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"filter\",\"description\":\"Must be 'filter' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"filter operation\",\"type\":\"object\"},{\"allOf\":[{\"if\":{\"properties\":{\"op\":{\"const\":\"create\",\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{\"data\":{\"description\":\"Payload for operation.type='note'.\",\"properties\":{\"color\":{\"description\":\"Note color.\",\"type\":\"string\"},\"content\":{\"description\":\"Note content.\",\"type\":\"string\"},\"height\":{\"description\":\"Height.\",\"type\":\"integer\"},\"icon_name\":{\"description\":\"Icon name.\",\"type\":\"string\"},\"position_x\":{\"description\":\"X position.\",\"type\":\"integer\"},\"position_y\":{\"description\":\"Y position.\",\"type\":\"integer\"},\"title\":{\"description\":\"Note title.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"},\"width\":{\"description\":\"Width.\",\"type\":\"integer\"}},\"title\":\"note data\",\"type\":\"object\"}},\"required\":[\"data\"],\"type\":\"object\"}},{\"if\":{\"properties\":{\"op\":{\"enum\":[\"update\",\"delete\"],\"type\":\"string\"}},\"required\":[\"op\"],\"type\":\"object\"},\"then\":{\"properties\":{},\"required\":[\"uuid\"],\"type\":\"object\"}}],\"properties\":{\"data\":{\"description\":\"Payload for operation.type='note'.\",\"properties\":{\"color\":{\"description\":\"Note color.\",\"type\":\"string\"},\"content\":{\"description\":\"Note content.\",\"type\":\"string\"},\"height\":{\"description\":\"Height.\",\"type\":\"integer\"},\"icon_name\":{\"description\":\"Icon name.\",\"type\":\"string\"},\"position_x\":{\"description\":\"X position.\",\"type\":\"integer\"},\"position_y\":{\"description\":\"Y position.\",\"type\":\"integer\"},\"title\":{\"description\":\"Note title.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"},\"width\":{\"description\":\"Width.\",\"type\":\"integer\"}},\"title\":\"note data\",\"type\":\"object\"},\"op\":{\"description\":\"Operation\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"const\":\"note\",\"description\":\"Must be 'note' for this payload.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"title\":\"note operation\",\"type\":\"object\"}],\"properties\":{\"data\":{\"description\":\"Type-specific payload. All field names are snake_case. For create, data.uuid may be client-supplied and referenced by later operations in the same batch.\",\"oneOf\":[{\"description\":\"Payload for operation.type='table'.\",\"properties\":{\"alias\":{\"description\":\"Display alias.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"header_color\":{\"description\":\"Header color.\",\"type\":\"string\"},\"name\":{\"description\":\"Table name. Required for create.\",\"type\":\"string\"},\"note\":{\"description\":\"Table note.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Schema name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='column'.\",\"properties\":{\"default_value\":{\"description\":\"Default value.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"is_increment\":{\"description\":\"Auto-increment flag.\",\"type\":\"boolean\"},\"is_not_null\":{\"description\":\"Not-null flag.\",\"type\":\"boolean\"},\"is_pk\":{\"description\":\"Primary key flag.\",\"type\":\"boolean\"},\"is_unique\":{\"description\":\"Unique flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Column name.\",\"type\":\"string\"},\"note\":{\"description\":\"Column note.\",\"type\":\"string\"},\"table_uuid\":{\"description\":\"Parent table UUID. Required for create; may be a data.uuid from an earlier table operation in this batch.\",\"type\":\"string\"},\"type\":{\"description\":\"SQL data type. Use this exact field name; do not send data_type.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"column data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='index'.\",\"properties\":{\"is_pk\":{\"description\":\"Primary key index flag.\",\"type\":\"boolean\"},\"is_unique\":{\"description\":\"Unique index flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Index name.\",\"type\":\"string\"},\"note\":{\"description\":\"Index note.\",\"type\":\"string\"},\"table_uuid\":{\"description\":\"Parent table UUID. Required for create.\",\"type\":\"string\"},\"type\":{\"description\":\"Index type.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"index data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='index_column'.\",\"properties\":{\"column_uuid\":{\"description\":\"Column UUID. Required for create.\",\"type\":\"string\"},\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"index_uuid\":{\"description\":\"Index UUID. Required for create.\",\"type\":\"string\"},\"sort_order\":{\"description\":\"Sort order, for example ASC or DESC.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"index_column data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='ref'.\",\"properties\":{\"from_table_uuid\":{\"description\":\"Source table UUID. Required for create.\",\"type\":\"string\"},\"name\":{\"description\":\"Reference name.\",\"type\":\"string\"},\"on_delete\":{\"description\":\"ON DELETE action.\",\"type\":\"string\"},\"on_update\":{\"description\":\"ON UPDATE action.\",\"type\":\"string\"},\"relationship\":{\"description\":\"Required for create. Use short dbdiagram-style relationship symbols.\",\"enum\":[\">\",\"<\",\"-\"],\"type\":\"string\"},\"to_table_uuid\":{\"description\":\"Target table UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"ref data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='ref_column'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"from_column_uuid\":{\"description\":\"Source column UUID. Required for create.\",\"type\":\"string\"},\"ref_uuid\":{\"description\":\"Reference UUID. Required for create; may be a data.uuid from an earlier ref operation.\",\"type\":\"string\"},\"to_column_uuid\":{\"description\":\"Target column UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"ref_column data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='enum'.\",\"properties\":{\"name\":{\"description\":\"Enum name.\",\"type\":\"string\"},\"note\":{\"description\":\"Enum note.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Schema name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"enum data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='enum_value'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"enum_uuid\":{\"description\":\"Parent enum UUID. Required for create; may be a data.uuid from an earlier enum operation.\",\"type\":\"string\"},\"note\":{\"description\":\"Enum value note.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"},\"value\":{\"description\":\"Enum value. Inline enum values on enum are not persisted; create enum_value operations.\",\"type\":\"string\"}},\"title\":\"enum_value data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='table_group'.\",\"properties\":{\"color\":{\"description\":\"Group color.\",\"type\":\"string\"},\"name\":{\"description\":\"Table group name.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='table_group_table'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"group_uuid\":{\"description\":\"Table group UUID. Required for create.\",\"type\":\"string\"},\"schema_name\":{\"description\":\"Table schema name.\",\"type\":\"string\"},\"table_name\":{\"description\":\"Table name. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group_table data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='table_group_note'.\",\"properties\":{\"display_order\":{\"description\":\"Display order.\",\"type\":\"integer\"},\"group_uuid\":{\"description\":\"Table group UUID. Required for create.\",\"type\":\"string\"},\"note_uuid\":{\"description\":\"Note UUID. Required for create.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"table_group_note data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='filter'.\",\"properties\":{\"included_tables\":{\"description\":\"JSON string/list of included tables.\",\"type\":\"string\"},\"is_default\":{\"description\":\"Default filter flag.\",\"type\":\"boolean\"},\"name\":{\"description\":\"Filter name.\",\"type\":\"string\"},\"table_groups\":{\"description\":\"JSON string/object of table groups.\",\"type\":\"string\"},\"table_positions\":{\"description\":\"JSON string/object of table positions.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"}},\"title\":\"filter data\",\"type\":\"object\"},{\"description\":\"Payload for operation.type='note'.\",\"properties\":{\"color\":{\"description\":\"Note color.\",\"type\":\"string\"},\"content\":{\"description\":\"Note content.\",\"type\":\"string\"},\"height\":{\"description\":\"Height.\",\"type\":\"integer\"},\"icon_name\":{\"description\":\"Icon name.\",\"type\":\"string\"},\"position_x\":{\"description\":\"X position.\",\"type\":\"integer\"},\"position_y\":{\"description\":\"Y position.\",\"type\":\"integer\"},\"title\":{\"description\":\"Note title.\",\"type\":\"string\"},\"uuid\":{\"description\":\"Optional on create: client-generated UUID. If supplied, later operations in the same batch can reference it. Do not put create UUIDs in operation.uuid; operation.uuid is only the update/delete target.\",\"type\":\"string\"},\"width\":{\"description\":\"Width.\",\"type\":\"integer\"}},\"title\":\"note data\",\"type\":\"object\"}],\"type\":\"object\"},\"op\":{\"description\":\"Operation. For create, put any new UUID in data.uuid; for update/delete, put target UUID in operation.uuid.\",\"enum\":[\"create\",\"update\",\"delete\"],\"type\":\"string\"},\"type\":{\"description\":\"ERD entity type. This selects the operation.data shape.\",\"enum\":[\"table\",\"column\",\"index\",\"index_column\",\"ref\",\"ref_column\",\"enum\",\"enum_value\",\"table_group\",\"table_group_table\",\"table_group_note\",\"filter\",\"note\"],\"type\":\"string\"},\"uuid\":{\"description\":\"Target UUID for update/delete. Do not use this for create; use data.uuid instead.\",\"type\":\"string\"}},\"required\":[\"op\",\"type\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"documentUuid\",\"description\",\"operations\"],\"type\":\"object\"},\"required\":[\"description\",\"documentUuid\",\"operations\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"dd64d1f996060ab1\"},\n {\"mcpName\":\"mcp__ainecto__erd_arrange_tables\",\"commandPath\":[\"erd\",\"arrange-tables\"],\"group\":\"erd\",\"description\":\"Arrange ERD tables after edits. Default incremental mode places newly-created tables while preserving existing positions; full=true re-layouts the entire diagram. Use after several separate table edits to tidy the canvas.\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"},\"full\":{\"description\":\"Re-layout the ENTIRE diagram (overwrites existing positions). Default false = arrange only newly-added (uncoordinated) tables to the top-right while preserving existing table positions. Call this after creating several tables to tidy them up.\",\"type\":\"boolean\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"d2e66548e3d60d30\"},\n {\"mcpName\":\"mcp__ainecto__erd_get_enum\",\"commandPath\":[\"erd\",\"get-enum\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"},\"enumUuid\":{\"description\":\"Enum UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"enumUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\",\"enumUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"1e477b3fadb50c6b\"},\n {\"mcpName\":\"mcp__ainecto__erd_get_ref\",\"commandPath\":[\"erd\",\"get-ref\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"},\"refUuid\":{\"description\":\"Relationship UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"refUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\",\"refUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"40bf1eb02e7a9730\"},\n {\"mcpName\":\"mcp__ainecto__erd_get_table\",\"commandPath\":[\"erd\",\"get-table\"],\"group\":\"erd\",\"description\":\"Get one ERD table with nested columns and indexes. Returns persistent table/column/index UUIDs usable directly as mcp__ainecto__erd_apply_changes update/delete targets and ref_column column references. Column fields use apply_changes snake_case names: uuid, table_uuid, name, type, is_pk, is_unique, is_not_null, is_increment, default_value, note, display_order. Index fields include uuid, name, columns (column UUIDs), is_unique, is_pk, type.\",\"inputSchema\":{\"description\":\"Get one ERD table with nested columns and indexes. Returns persistent table/column/index UUIDs usable directly as mcp__ainecto__erd_apply_changes update/delete targets and ref_column column references. Column fields use apply_changes snake_case names: uuid, table_uuid, name, type, is_pk, is_unique, is_not_null, is_increment, default_value, note, display_order. Index fields include uuid, name, columns (column UUIDs), is_unique, is_pk, type.\",\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"},\"tableUuid\":{\"description\":\"Table UUID. Response includes columns[] and indexes[] with persistent UUIDs for apply_changes.\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"tableUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\",\"tableUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"8edd40794f39f47a\"},\n {\"mcpName\":\"mcp__ainecto__erd_get_table_group\",\"commandPath\":[\"erd\",\"get-table-group\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"},\"tableGroupUuid\":{\"description\":\"Table group UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"tableGroupUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\",\"tableGroupUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"bcd417344639c0c9\"},\n {\"mcpName\":\"mcp__ainecto__erd_list_enums\",\"commandPath\":[\"erd\",\"list-enums\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"e0c2207905dbb068\"},\n {\"mcpName\":\"mcp__ainecto__erd_list_refs\",\"commandPath\":[\"erd\",\"list-refs\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"9ae2e04c310b57f2\"},\n {\"mcpName\":\"mcp__ainecto__erd_list_table_groups\",\"commandPath\":[\"erd\",\"list-table-groups\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"dc8811071df04ac2\"},\n {\"mcpName\":\"mcp__ainecto__erd_list_tables\",\"commandPath\":[\"erd\",\"list-tables\"],\"group\":\"erd\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"ERD document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"ca05b35b174fc209\"},\n {\"mcpName\":\"mcp__ainecto__get_attachment\",\"commandPath\":[\"attachment\",\"get\"],\"group\":\"attachment\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuid\":{\"description\":\"Attachment UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"required\":[\"uuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"12bee70f6d254a5d\"},\n {\"mcpName\":\"mcp__ainecto__get_document\",\"commandPath\":[\"document\",\"get\"],\"group\":\"document\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuid\":{\"description\":\"Document UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"required\":[\"uuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"4949c8a5bb425491\"},\n {\"mcpName\":\"mcp__ainecto__get_project\",\"commandPath\":[\"project\",\"get\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuid\":{\"description\":\"Project UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"required\":[\"uuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"b4ee9097f4b80df4\"},\n {\"mcpName\":\"mcp__ainecto__get_version\",\"commandPath\":[\"version\",\"get\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"Document UUID\",\"type\":\"string\"},\"versionNumber\":{\"description\":\"Version number\",\"type\":\"integer\"}},\"required\":[\"documentUuid\",\"versionNumber\"],\"type\":\"object\"},\"required\":[\"documentUuid\",\"versionNumber\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"ad81d04200d3d7f5\"},\n {\"mcpName\":\"mcp__ainecto__get_workspace\",\"commandPath\":[\"workspace\",\"get\"],\"group\":\"workspace\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuid\":{\"description\":\"Workspace UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"required\":[\"uuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"ef7bae555463116e\"},\n {\"mcpName\":\"mcp__ainecto__list_attachments\",\"commandPath\":[\"attachments\",\"list\"],\"group\":\"attachment\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"projectUuid\":{\"description\":\"Project UUID\",\"type\":\"string\"}},\"required\":[\"projectUuid\"],\"type\":\"object\"},\"required\":[\"projectUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"a75657bb2e5eb383\"},\n {\"mcpName\":\"mcp__ainecto__list_documents\",\"commandPath\":[\"documents\",\"list\"],\"group\":\"document\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"folderUuid\":{\"description\":\"Optional folder UUID\",\"type\":\"string\"},\"limit\":{\"description\":\"Result cap when q is set (default 50)\",\"type\":\"integer\"},\"projectUuid\":{\"description\":\"Project UUID\",\"type\":\"string\"},\"q\":{\"description\":\"Optional full-text query. When provided, results come from the search index instead of folder listing.\",\"type\":\"string\"},\"type\":{\"description\":\"Optional document type filter. Enabled values: erd, diagram, markdown, testcase, task.\",\"enum\":[\"erd\",\"diagram\",\"markdown\",\"testcase\",\"task\"],\"type\":\"string\"}},\"type\":\"object\"},\"required\":[],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"e5d92431322ac0e3\"},\n {\"mcpName\":\"mcp__ainecto__list_folders\",\"commandPath\":[\"folders\",\"list\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"projectUuid\":{\"description\":\"Project UUID\",\"type\":\"string\"}},\"required\":[\"projectUuid\"],\"type\":\"object\"},\"required\":[\"projectUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"f3cde57fe87d375c\"},\n {\"mcpName\":\"mcp__ainecto__list_projects\",\"commandPath\":[\"projects\",\"list\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"limit\":{\"description\":\"Result cap when q is set (default 50)\",\"type\":\"integer\"},\"q\":{\"description\":\"Optional full-text query\",\"type\":\"string\"},\"workspaceUuid\":{\"description\":\"Optional Workspace UUID\",\"type\":\"string\"}},\"type\":\"object\"},\"required\":[],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"9174d6965d7e53f5\"},\n {\"mcpName\":\"mcp__ainecto__list_trash\",\"commandPath\":[\"trash\",\"list\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{},\"type\":\"object\"},\"required\":[],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"82f8586d68bfcd7d\"},\n {\"mcpName\":\"mcp__ainecto__list_versions\",\"commandPath\":[\"versions\",\"list\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"Document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"370e4b8b8ec18e18\"},\n {\"mcpName\":\"mcp__ainecto__list_workspaces\",\"commandPath\":[\"workspaces\",\"list\"],\"group\":\"workspace\",\"description\":\"\",\"inputSchema\":{\"properties\":{},\"type\":\"object\"},\"required\":[],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"7c32c74000696b2f\"},\n {\"mcpName\":\"mcp__ainecto__markdown_append_document\",\"commandPath\":[\"markdown\",\"append-document\"],\"group\":\"markdown\",\"description\":\"Append to Markdown documents. If the appended body is tens of KB or more, prefer request_upload_token (purpose=document.append) and upload the body with curl.\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Appends\",\"items\":{\"properties\":{\"addition\":{\"description\":\"Body addition. 추가할 내용이 크면 (수십 KB 이상) LLM 토큰 절약을 위해 `request_upload_token (purpose=document.append, scopeJson={documentUuid, separator})` 로 uploadUrl 을 받고 curl 로 PUT 으로 보낼 것.\",\"type\":\"string\"},\"separator\":{\"description\":\"Separator between existing body and addition\",\"type\":\"string\"},\"uuid\":{\"description\":\"Document UUID\",\"type\":\"string\"}},\"required\":[\"uuid\",\"addition\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"f189514b3cccd1cc\"},\n {\"mcpName\":\"mcp__ainecto__markdown_generate_document\",\"commandPath\":[\"markdown\",\"generate-document\"],\"group\":\"markdown\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Generation requests\",\"items\":{\"properties\":{\"context\":{\"description\":\"Optional JSON context\",\"type\":\"string\"},\"documentUuid\":{\"description\":\"Target document UUID\",\"type\":\"string\"},\"prompt\":{\"description\":\"Generation prompt\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"prompt\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"72114a2d2642ed92\"},\n {\"mcpName\":\"mcp__ainecto__move_documents\",\"commandPath\":[\"documents\",\"move\"],\"group\":\"document\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"clientMutationId\":{\"description\":\"Optional mutation identifier for client retry tracing\",\"maxLength\":128,\"minLength\":1,\"pattern\":\"^[\\\\x21-\\\\x7E]{1,128}$\",\"type\":\"string\"},\"items\":{\"description\":\"Moves\",\"items\":{\"properties\":{\"newFolderUuid\":{\"description\":\"New folder UUID — null/empty for root\",\"type\":\"string\"},\"targetProjectUuid\":{\"description\":\"Target project UUID — omit to stay in current project\",\"type\":\"string\"},\"targetWorkspaceUuid\":{\"description\":\"Guard only: must match targetProjectUuid workspace\",\"type\":\"string\"},\"uuid\":{\"description\":\"Document UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"9758d6a262913a3f\"},\n {\"mcpName\":\"mcp__ainecto__move_folders\",\"commandPath\":[\"folders\",\"move\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Moves\",\"items\":{\"properties\":{\"newParentFolderUuid\":{\"description\":\"New parent UUID — null/empty for root\",\"type\":\"string\"},\"uuid\":{\"description\":\"Folder UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"612a779b1fd176bb\"},\n {\"mcpName\":\"mcp__ainecto__request_upload_token\",\"commandPath\":[\"tools\",\"run\",\"request-upload-token\"],\"group\":\"attachment\",\"description\":\"Use this for large payloads of tens of KB or more to save LLM tokens. purpose=mcp.call returns a short-lived bearer token that can call any MCP tool, including mcp__ainecto__erd_apply_changes, via curl. purpose=document.create/update/append uploads document bodies directly to the upload endpoint with PUT/curl. Tokens are reusable for 5 minutes by default.\",\"inputSchema\":{\"properties\":{\"maxBytes\":{\"description\":\"최대 업로드 byte (서버 측 한도)\",\"type\":\"integer\"},\"purpose\":{\"description\":\"Token 용도. `mcp.call` 은 curl 로 /mcp 호출, `document.create/update/append` 는 PUT body 로 본문 업로드, `attachment.upload` 는 파일 bytes 업로드. 콘텐츠가 크면 (수십 KB 이상) LLM 토큰 절약을 위해 이 도구로 5분 재사용 토큰을 받고 curl 로 보내는 것을 강력 권장.\",\"enum\":[\"mcp.call\",\"document.create\",\"document.update\",\"document.append\",\"attachment.upload\"],\"type\":\"string\"},\"scopeJson\":{\"description\":\"선택 — JSON scope. document.create 는 projectUuid, type, title 을 포함하고 enabled type values 는 erd, diagram, markdown, testcase, task. document.update/document.append 는 documentUuid 를 포함. attachment.upload: {documentUuid, filename, contentType?, sizeBytes?}; storageKey 는 서버가 발급 scope 에 추가.\",\"type\":\"string\"},\"ttlSeconds\":{\"description\":\"TTL (초). 기본 300 (5분)\",\"type\":\"integer\"}},\"required\":[\"purpose\"],\"type\":\"object\"},\"required\":[\"purpose\"],\"payloadMode\":\"binary-upload\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"cc5db0cc4a9d9603\"},\n {\"mcpName\":\"mcp__ainecto__restore_versions\",\"commandPath\":[\"versions\",\"restore\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Restores\",\"items\":{\"properties\":{\"documentUuid\":{\"description\":\"Document UUID\",\"type\":\"string\"},\"versionNumber\":{\"description\":\"Version number to restore\",\"type\":\"integer\"}},\"required\":[\"documentUuid\",\"versionNumber\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"c4f448cc3b96c7a6\"},\n {\"mcpName\":\"mcp__ainecto__search_documents\",\"commandPath\":[\"documents\",\"search\"],\"group\":\"document\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"limit\":{\"description\":\"결과 개수 (기본 20, 최대 50)\",\"type\":\"integer\"},\"offset\":{\"description\":\"페이지네이션 offset (기본 0)\",\"type\":\"integer\"},\"projectUuid\":{\"description\":\"특정 프로젝트로 한정 (선택)\",\"type\":\"string\"},\"q\":{\"description\":\"검색 키워드\",\"type\":\"string\"},\"type\":{\"description\":\"Optional document type filter. Enabled values: erd, diagram, markdown, testcase, task.\",\"enum\":[\"erd\",\"diagram\",\"markdown\",\"testcase\",\"task\"],\"type\":\"string\"}},\"required\":[\"q\"],\"type\":\"object\"},\"required\":[\"q\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"89efa02eab3c01a1\"},\n {\"mcpName\":\"mcp__ainecto__task_apply_changes\",\"commandPath\":[\"task\",\"apply-changes\"],\"group\":\"task\",\"description\":\"Task CUD entry point. Applies one atomic batch using operation objects shaped exactly as {op, uuid, data}. There is no partial success mode; any validation failure aborts the whole batch.\",\"inputSchema\":{\"examples\":[{\"baseRevision\":1,\"clientMutationId\":\"task-mutation-1\",\"documentUuid\":\"task-document-uuid\",\"operations\":[{\"data\":{\"parentTaskUuid\":null,\"title\":\"Task title\"},\"op\":\"create_task\",\"uuid\":\"client-task-uuid\"}]}],\"properties\":{\"baseRevision\":{\"description\":\"Current board revision from task_get_snapshot\",\"type\":\"integer\"},\"clientMutationId\":{\"description\":\"Optional idempotency key. Visible ASCII, 1-128 chars; will become required in a later phase.\",\"maxLength\":128,\"minLength\":1,\"pattern\":\"^[\\\\x21-\\\\x7E]{1,128}$\",\"type\":\"string\"},\"documentUuid\":{\"description\":\"Task document UUID\",\"type\":\"string\"},\"operations\":{\"description\":\"Atomic batch. No partial success mode; validation failure aborts all operations.\",\"items\":{\"additionalProperties\":false,\"properties\":{\"data\":{\"description\":\"Operation payload. Keep all operation-specific fields inside data.\",\"type\":\"object\"},\"op\":{\"description\":\"Operation type\",\"enum\":[\"create_task\",\"update_task\",\"archive_task\",\"restore_task\",\"move_task\",\"transition_task\",\"assign_task\",\"schedule_task\",\"set_progress\"],\"type\":\"string\"},\"uuid\":{\"description\":\"Task UUID. For create_task this is the client-generated UUID.\",\"type\":\"string\"}},\"required\":[\"op\",\"uuid\",\"data\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"documentUuid\",\"baseRevision\",\"operations\"],\"type\":\"object\"},\"required\":[\"baseRevision\",\"documentUuid\",\"operations\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"085eb6e8a3eae2c8\"},\n {\"mcpName\":\"mcp__ainecto__task_get_snapshot\",\"commandPath\":[\"task\",\"get-snapshot\"],\"group\":\"task\",\"description\":\"Get one Task document snapshot. Returns board revision, statuses, tasks, member summaries, and permissions. Use before mutations to obtain baseRevision.\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"Task document UUID\",\"type\":\"string\"},\"includeArchived\":{\"description\":\"Whether to include archived tasks\",\"type\":\"boolean\"},\"limit\":{\"description\":\"Maximum tasks to return; defaults to server snapshot cap\",\"type\":\"integer\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"a11876f9b475338a\"},\n {\"mcpName\":\"mcp__ainecto__task_get_task\",\"commandPath\":[\"task\",\"get-task\"],\"group\":\"task\",\"description\":\"Get one task by UUID from a Task document.\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"Task document UUID\",\"type\":\"string\"},\"taskUuid\":{\"description\":\"Task UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"taskUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\",\"taskUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"96b1ea530c583337\"},\n {\"mcpName\":\"mcp__ainecto__task_list_statuses\",\"commandPath\":[\"task\",\"list-statuses\"],\"group\":\"task\",\"description\":\"List statuses for a Task document. Status slug is intentionally not returned.\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"Task document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"864ea509c54fe2e7\"},\n {\"mcpName\":\"mcp__ainecto__task_list_tasks\",\"commandPath\":[\"task\",\"list-tasks\"],\"group\":\"task\",\"description\":\"List tasks in a Task document with optional parent/status/assignee filters.\",\"inputSchema\":{\"properties\":{\"assigneeUserId\":{\"description\":\"Optional assignee user id filter\",\"type\":\"string\"},\"documentUuid\":{\"description\":\"Task document UUID\",\"type\":\"string\"},\"includeArchived\":{\"description\":\"Whether to include archived tasks\",\"type\":\"boolean\"},\"limit\":{\"description\":\"Maximum tasks to return\",\"type\":\"integer\"},\"parentTaskUuid\":{\"description\":\"Optional parent filter\",\"type\":\"string\"},\"statusUuid\":{\"description\":\"Optional status filter\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"be8dc0a4ecd117a8\"},\n {\"mcpName\":\"mcp__ainecto__testcase_archive_scenarios\",\"commandPath\":[\"testcase\",\"archive-scenarios\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"ids\":{\"description\":\"Scenario ids\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"}},\"required\":[\"ids\"],\"type\":\"object\"},\"required\":[\"ids\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"a5a8768d14ebaed7\"},\n {\"mcpName\":\"mcp__ainecto__testcase_complete_runs\",\"commandPath\":[\"testcase\",\"complete-runs\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"ids\":{\"description\":\"Run ids\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"}},\"required\":[\"ids\"],\"type\":\"object\"},\"required\":[\"ids\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"84bc3dad482ac61a\"},\n {\"mcpName\":\"mcp__ainecto__testcase_create_runs\",\"commandPath\":[\"testcase\",\"create-runs\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Runs\",\"items\":{\"properties\":{\"buildVersion\":{\"description\":\"Build version\",\"type\":\"string\"},\"description\":{\"description\":\"Description\",\"type\":\"string\"},\"environment\":{\"description\":\"Environment\",\"type\":\"string\"},\"name\":{\"description\":\"Run name\",\"type\":\"string\"},\"projectId\":{\"description\":\"Project id\",\"type\":\"integer\"},\"testAccount\":{\"description\":\"SUT test account\",\"type\":\"string\"},\"testCaseIds\":{\"description\":\"Test case ids to attach\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"}},\"required\":[\"projectId\",\"name\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"6a08117c79f589a1\"},\n {\"mcpName\":\"mcp__ainecto__testcase_create_scenarios\",\"commandPath\":[\"testcase\",\"create-scenarios\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Scenarios\",\"items\":{\"properties\":{\"description\":{\"description\":\"Description\",\"type\":\"string\"},\"documentUuid\":{\"description\":\"Parent testcase document UUID\",\"type\":\"string\"},\"name\":{\"description\":\"Scenario name\",\"type\":\"string\"},\"parentId\":{\"description\":\"Parent scenario id\",\"type\":\"integer\"}},\"required\":[\"documentUuid\",\"name\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"4686fd0f078a65e8\"},\n {\"mcpName\":\"mcp__ainecto__testcase_create_testcases\",\"commandPath\":[\"testcase\",\"create-testcases\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Testcases\",\"items\":{\"properties\":{\"assigneeId\":{\"description\":\"Assignee user id\",\"type\":\"string\"},\"expectedResult\":{\"description\":\"Expected result\",\"type\":\"string\"},\"precondition\":{\"description\":\"Precondition\",\"type\":\"string\"},\"priority\":{\"description\":\"Priority\",\"enum\":[\"LOW\",\"MEDIUM\",\"HIGH\",\"CRITICAL\"],\"type\":\"string\"},\"scenarioId\":{\"description\":\"Scenario id (required)\",\"type\":\"integer\"},\"source\":{\"description\":\"Source\",\"enum\":[\"MANUAL\",\"AI\",\"IMPORT\",\"MCP\"],\"type\":\"string\"},\"status\":{\"description\":\"Status\",\"enum\":[\"DRAFT\",\"READY\",\"DEPRECATED\"],\"type\":\"string\"},\"tags\":{\"description\":\"Tags\",\"type\":\"string\"},\"testAccount\":{\"description\":\"SUT test account\",\"type\":\"string\"},\"title\":{\"description\":\"Title\",\"type\":\"string\"},\"type\":{\"description\":\"Type\",\"enum\":[\"FUNCTIONAL\",\"REGRESSION\",\"SMOKE\",\"PERFORMANCE\",\"SECURITY\",\"E2E\",\"UNIT\",\"INTEGRATION\"],\"type\":\"string\"}},\"required\":[\"scenarioId\",\"title\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"ae90d4749debacf0\"},\n {\"mcpName\":\"mcp__ainecto__testcase_delete_runs\",\"commandPath\":[\"testcase\",\"delete-runs\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"ids\":{\"description\":\"Run ids\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"}},\"required\":[\"ids\"],\"type\":\"object\"},\"required\":[\"ids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"1ba26baf794bde57\"},\n {\"mcpName\":\"mcp__ainecto__testcase_delete_testcases\",\"commandPath\":[\"testcase\",\"delete-testcases\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"ids\":{\"description\":\"Testcase ids\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"}},\"required\":[\"ids\"],\"type\":\"object\"},\"required\":[\"ids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"ab095f553bf46937\"},\n {\"mcpName\":\"mcp__ainecto__testcase_get_run\",\"commandPath\":[\"testcase\",\"get-run\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"id\":{\"description\":\"Run id\",\"type\":\"integer\"}},\"required\":[\"id\"],\"type\":\"object\"},\"required\":[\"id\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"713c83514cf07d68\"},\n {\"mcpName\":\"mcp__ainecto__testcase_get_testcase\",\"commandPath\":[\"testcase\",\"get-testcase\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"id\":{\"description\":\"Testcase id\",\"type\":\"integer\"}},\"required\":[\"id\"],\"type\":\"object\"},\"required\":[\"id\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"54e497a2e3c9978d\"},\n {\"mcpName\":\"mcp__ainecto__testcase_list_executions\",\"commandPath\":[\"testcase\",\"list-executions\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"runId\":{\"description\":\"Run id\",\"type\":\"integer\"}},\"required\":[\"runId\"],\"type\":\"object\"},\"required\":[\"runId\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"a5a2abcf9e43225e\"},\n {\"mcpName\":\"mcp__ainecto__testcase_list_runs\",\"commandPath\":[\"testcase\",\"list-runs\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"projectId\":{\"description\":\"Project id\",\"type\":\"integer\"}},\"required\":[\"projectId\"],\"type\":\"object\"},\"required\":[\"projectId\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"b7d5275b67bb11d9\"},\n {\"mcpName\":\"mcp__ainecto__testcase_list_scenarios\",\"commandPath\":[\"testcase\",\"list-scenarios\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"Parent testcase document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"2486ade3c9cb0984\"},\n {\"mcpName\":\"mcp__ainecto__testcase_list_step_checks\",\"commandPath\":[\"testcase\",\"list-step-checks\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"caseId\":{\"description\":\"Testcase id\",\"type\":\"integer\"},\"runId\":{\"description\":\"Run id\",\"type\":\"integer\"}},\"required\":[\"runId\",\"caseId\"],\"type\":\"object\"},\"required\":[\"caseId\",\"runId\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"f2d5b45c0d64cd5c\"},\n {\"mcpName\":\"mcp__ainecto__testcase_list_testcases\",\"commandPath\":[\"testcase\",\"list-testcases\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"documentUuid\":{\"description\":\"Parent testcase document UUID\",\"type\":\"string\"}},\"required\":[\"documentUuid\"],\"type\":\"object\"},\"required\":[\"documentUuid\"],\"payloadMode\":\"flags\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"ef40927392d5a684\"},\n {\"mcpName\":\"mcp__ainecto__testcase_record_executions\",\"commandPath\":[\"testcase\",\"record-executions\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Executions\",\"items\":{\"properties\":{\"comment\":{\"description\":\"Comment\",\"type\":\"string\"},\"defectLinks\":{\"description\":\"Defect URLs\",\"type\":\"string\"},\"durationSeconds\":{\"description\":\"Duration in seconds\",\"type\":\"integer\"},\"result\":{\"description\":\"Result\",\"enum\":[\"PASSED\",\"FAILED\",\"BLOCKED\",\"SKIPPED\",\"UNTESTED\",\"IN_PROGRESS\"],\"type\":\"string\"},\"runId\":{\"description\":\"Run id\",\"type\":\"integer\"},\"testAccount\":{\"description\":\"SUT account\",\"type\":\"string\"},\"testCaseId\":{\"description\":\"Testcase id\",\"type\":\"integer\"}},\"required\":[\"runId\",\"testCaseId\",\"result\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"071a2075d00bff9b\"},\n {\"mcpName\":\"mcp__ainecto__testcase_remove_run_cases\",\"commandPath\":[\"testcase\",\"remove-run-cases\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"runId\":{\"description\":\"Run id\",\"type\":\"integer\"},\"testCaseIds\":{\"description\":\"Testcase ids to remove\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"}},\"required\":[\"runId\",\"testCaseIds\"],\"type\":\"object\"},\"required\":[\"runId\",\"testCaseIds\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"7aef8a39afe88c5c\"},\n {\"mcpName\":\"mcp__ainecto__testcase_reorder_scenarios\",\"commandPath\":[\"testcase\",\"reorder-scenarios\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"ids\":{\"description\":\"Scenario ids in new order\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"}},\"required\":[\"ids\"],\"type\":\"object\"},\"required\":[\"ids\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"7faf43a0b53c2988\"},\n {\"mcpName\":\"mcp__ainecto__testcase_reorder_testcases\",\"commandPath\":[\"testcase\",\"reorder-testcases\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"ids\":{\"description\":\"Testcase ids in new order\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"}},\"required\":[\"ids\"],\"type\":\"object\"},\"required\":[\"ids\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"5f27d8b94aca5334\"},\n {\"mcpName\":\"mcp__ainecto__testcase_update_runs\",\"commandPath\":[\"testcase\",\"update-runs\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Updates\",\"items\":{\"properties\":{\"buildVersion\":{\"description\":\"New build version\",\"type\":\"string\"},\"description\":{\"description\":\"New description\",\"type\":\"string\"},\"environment\":{\"description\":\"New environment\",\"type\":\"string\"},\"id\":{\"description\":\"Run id\",\"type\":\"integer\"},\"name\":{\"description\":\"New name\",\"type\":\"string\"},\"status\":{\"description\":\"New status\",\"enum\":[\"DRAFT\",\"IN_PROGRESS\",\"COMPLETED\",\"CANCELLED\"],\"type\":\"string\"},\"testAccount\":{\"description\":\"New SUT account\",\"type\":\"string\"}},\"required\":[\"id\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"370074b6681d495f\"},\n {\"mcpName\":\"mcp__ainecto__testcase_update_scenarios\",\"commandPath\":[\"testcase\",\"update-scenarios\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Updates\",\"items\":{\"properties\":{\"id\":{\"description\":\"Scenario id\",\"type\":\"integer\"},\"name\":{\"description\":\"New name\",\"type\":\"string\"},\"parentId\":{\"description\":\"New parent id\",\"type\":\"integer\"}},\"required\":[\"id\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"929c8647c06c5fdd\"},\n {\"mcpName\":\"mcp__ainecto__testcase_update_testcases\",\"commandPath\":[\"testcase\",\"update-testcases\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Updates\",\"items\":{\"properties\":{\"assigneeId\":{\"description\":\"Assignee\",\"type\":\"string\"},\"expectedResult\":{\"description\":\"New expected result\",\"type\":\"string\"},\"id\":{\"description\":\"Testcase id\",\"type\":\"integer\"},\"precondition\":{\"description\":\"New precondition\",\"type\":\"string\"},\"priority\":{\"description\":\"Priority\",\"enum\":[\"LOW\",\"MEDIUM\",\"HIGH\",\"CRITICAL\"],\"type\":\"string\"},\"scenarioId\":{\"description\":\"New scenario id\",\"type\":\"integer\"},\"status\":{\"description\":\"Status\",\"enum\":[\"DRAFT\",\"READY\",\"DEPRECATED\"],\"type\":\"string\"},\"tags\":{\"description\":\"Tags\",\"type\":\"string\"},\"testAccount\":{\"description\":\"SUT account\",\"type\":\"string\"},\"title\":{\"description\":\"New title\",\"type\":\"string\"},\"type\":{\"description\":\"Type\",\"enum\":[\"FUNCTIONAL\",\"REGRESSION\",\"SMOKE\",\"PERFORMANCE\",\"SECURITY\",\"E2E\",\"UNIT\",\"INTEGRATION\"],\"type\":\"string\"}},\"required\":[\"id\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"b562a7b860f6036c\"},\n {\"mcpName\":\"mcp__ainecto__testcase_upsert_step_checks\",\"commandPath\":[\"testcase\",\"upsert-step-checks\"],\"group\":\"testcase\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"caseId\":{\"description\":\"Testcase id\",\"type\":\"integer\"},\"items\":{\"description\":\"Step checks\",\"items\":{\"properties\":{\"checked\":{\"description\":\"Checked state\",\"type\":\"boolean\"},\"comment\":{\"description\":\"Per-step note\",\"type\":\"string\"},\"stepId\":{\"description\":\"TestStep id\",\"type\":\"integer\"}},\"required\":[\"stepId\",\"checked\"],\"type\":\"object\"},\"type\":\"array\"},\"runId\":{\"description\":\"Run id\",\"type\":\"integer\"}},\"required\":[\"runId\",\"caseId\",\"items\"],\"type\":\"object\"},\"required\":[\"caseId\",\"items\",\"runId\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"ac5768125a9fd15c\"},\n {\"mcpName\":\"mcp__ainecto__unarchive_documents\",\"commandPath\":[\"documents\",\"unarchive\"],\"group\":\"document\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Document UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"4aae7df04fba8779\"},\n {\"mcpName\":\"mcp__ainecto__unarchive_folders\",\"commandPath\":[\"folders\",\"unarchive\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Folder UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"e307cab0ebafd179\"},\n {\"mcpName\":\"mcp__ainecto__unarchive_projects\",\"commandPath\":[\"projects\",\"unarchive\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Project UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"15ea4a409d1549de\"},\n {\"mcpName\":\"mcp__ainecto__unarchive_workspaces\",\"commandPath\":[\"workspaces\",\"unarchive\"],\"group\":\"workspace\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"uuids\":{\"description\":\"Workspace UUIDs\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuids\"],\"type\":\"object\"},\"required\":[\"uuids\"],\"payloadMode\":\"file-json\",\"destructive\":true,\"sourceCatalog\":\"dev\",\"schemaHash\":\"641de5b64ec75ab2\"},\n {\"mcpName\":\"mcp__ainecto__update_documents\",\"commandPath\":[\"documents\",\"update\"],\"group\":\"document\",\"description\":\"Update documents. If a replacement body is tens of KB or more, prefer request_upload_token (purpose=document.update) and upload the body with curl.\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Updates\",\"items\":{\"properties\":{\"body\":{\"description\":\"Deprecated compatibility alias for typePayload.body when document type is markdown. 본문이 수십 KB 이상으로 크면 LLM 토큰 절약을 위해 `request_upload_token (purpose=document.update)` 를 호출해 uploadUrl 을 받고 curl 로 직접 PUT 으로 보낼 것.\",\"type\":\"string\"},\"title\":{\"description\":\"New title\",\"type\":\"string\"},\"typePayload\":{\"description\":\"Type-specific payload for enabled document types. markdown: {body}; diagram: {diagramSource,sourceLanguage,edgeStyle,isModule,metadata}; testcase: {defaultEnvironment (max 50 chars), defaultTestAccount (max 100 chars)}; task: no typePayload; board and default statuses are seeded automatically.\",\"type\":\"object\"},\"uuid\":{\"description\":\"Document UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"778908eec43aba81\"},\n {\"mcpName\":\"mcp__ainecto__update_folders\",\"commandPath\":[\"folders\",\"update\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Updates\",\"items\":{\"properties\":{\"name\":{\"description\":\"New name\",\"type\":\"string\"},\"uuid\":{\"description\":\"Folder UUID\",\"type\":\"string\"}},\"required\":[\"uuid\",\"name\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"7bef3b4702df1f00\"},\n {\"mcpName\":\"mcp__ainecto__update_projects\",\"commandPath\":[\"projects\",\"update\"],\"group\":\"generic\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Updates\",\"items\":{\"properties\":{\"description\":{\"description\":\"New description\",\"type\":\"string\"},\"name\":{\"description\":\"New name\",\"type\":\"string\"},\"uuid\":{\"description\":\"Project UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"10cc0d84aeb2192b\"},\n {\"mcpName\":\"mcp__ainecto__update_workspaces\",\"commandPath\":[\"workspaces\",\"update\"],\"group\":\"workspace\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Updates\",\"items\":{\"properties\":{\"description\":{\"description\":\"New description\",\"type\":\"string\"},\"name\":{\"description\":\"New name\",\"type\":\"string\"},\"uuid\":{\"description\":\"Workspace UUID\",\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"file-json\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"723e4f6d36ee9d02\"},\n {\"mcpName\":\"mcp__ainecto__upload_attachments\",\"commandPath\":[\"tools\",\"run\",\"upload-attachments\"],\"group\":\"attachment\",\"description\":\"\",\"inputSchema\":{\"properties\":{\"items\":{\"description\":\"Attachments to register\",\"items\":{\"properties\":{\"contentType\":{\"description\":\"MIME type\",\"type\":\"string\"},\"documentUuid\":{\"description\":\"Parent document UUID\",\"type\":\"string\"},\"filename\":{\"description\":\"Original file name\",\"type\":\"string\"},\"sizeBytes\":{\"description\":\"Size in bytes\",\"type\":\"integer\"},\"storageKey\":{\"description\":\"Storage key returned by request_upload_token purpose=attachment.upload\",\"type\":\"string\"}},\"required\":[\"documentUuid\",\"filename\",\"storageKey\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"items\"],\"type\":\"object\"},\"required\":[\"items\"],\"payloadMode\":\"binary-upload\",\"destructive\":false,\"sourceCatalog\":\"dev\",\"schemaHash\":\"0622e590de3404dd\"},\n] satisfies GeneratedToolDefinition[];\n","import { generatedTools as prodTools } from \"./generated.prod\";\nimport { generatedTools as devTools } from \"./generated.dev\";\nimport type { AinectoEnv } from \"../config/endpoints\";\n\nexport function getGeneratedTools(env: AinectoEnv) {\n return env === \"dev\" ? devTools : prodTools;\n}\n","import { createInterface } from \"node:readline\";\nimport type { Readable, Writable } from \"node:stream\";\nimport { McpRpcClient, type JsonRpcRequest } from \"./rpcClient\";\n\nexport interface StdioBridgeOptions {\n input: Readable;\n output: Writable;\n errorOutput: Writable;\n client: McpRpcClient;\n}\n\nexport async function runStdioBridge(options: StdioBridgeOptions): Promise<void> {\n const lines = createInterface({ input: options.input, crlfDelay: Infinity });\n\n for await (const line of lines) {\n if (!line.trim()) {\n continue;\n }\n try {\n const request = parseJsonRpcRequest(line);\n const response = await options.client.sendRaw(request);\n if (response && request.id !== undefined) {\n options.output.write(`${JSON.stringify(response)}\\n`);\n }\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n options.output.write(`${JSON.stringify({\n jsonrpc: \"2.0\",\n id: null,\n error: { code: -32603, message },\n })}\\n`);\n }\n }\n}\n\nfunction parseJsonRpcRequest(line: string): JsonRpcRequest {\n const parsed = JSON.parse(line) as unknown;\n if (!isRecord(parsed) || parsed.jsonrpc !== \"2.0\" || typeof parsed.method !== \"string\") {\n throw new Error(\"Invalid JSON-RPC request.\");\n }\n return {\n jsonrpc: \"2.0\",\n id: typeof parsed.id === \"string\" || typeof parsed.id === \"number\" || parsed.id === null ? parsed.id : undefined,\n method: parsed.method,\n params: parsed.params,\n };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import { FileTokenStore } from \"../../core/auth/tokenStore\";\nimport { OAuthClient } from \"../../core/auth/oauth\";\nimport { McpRpcClient } from \"../../core/mcp/rpcClient\";\nimport { runStdioBridge } from \"../../core/mcp/stdioBridge\";\nimport type { Readable, Writable } from \"node:stream\";\n\nexport interface ConnectorOptions {\n endpoint: string;\n input: Readable;\n output: Writable;\n errorOutput: Writable;\n}\n\nexport async function runConnector(options: ConnectorOptions): Promise<void> {\n const tokenStore = new FileTokenStore();\n const auth = new OAuthClient({ endpoint: options.endpoint, tokenStore });\n const client = new McpRpcClient({ endpoint: options.endpoint, tokenProvider: auth });\n await runStdioBridge({\n input: options.input,\n output: options.output,\n errorOutput: options.errorOutput,\n client,\n });\n}\n","import type { ToolPresentationEnrichment } from \"./types\";\n\nexport const enrichments = [\n {\n mcpName: \"mcp__ainecto__list_projects\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"name\", \"projectKey\", \"workspaceUuid\", \"updatedAt\"],\n displayName: \"List projects\",\n examples: [\"ainecto projects list --env dev\"],\n },\n {\n mcpName: \"mcp__ainecto__list_workspaces\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"name\", \"updatedAt\"],\n displayName: \"List workspaces\",\n },\n {\n mcpName: \"mcp__ainecto__list_folders\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"name\", \"projectUuid\", \"parentFolderUuid\", \"updatedAt\"],\n displayName: \"List folders\",\n },\n {\n mcpName: \"mcp__ainecto__list_documents\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"title\", \"type\", \"projectUuid\", \"folderUuid\", \"updatedAt\"],\n displayName: \"List documents\",\n },\n {\n mcpName: \"mcp__ainecto__search_documents\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"title\", \"type\", \"projectUuid\", \"updatedAt\"],\n displayName: \"Search documents\",\n },\n {\n mcpName: \"mcp__ainecto__list_attachments\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"filename\", \"contentType\", \"sizeBytes\", \"documentUuid\"],\n displayName: \"List attachments\",\n },\n {\n mcpName: \"mcp__ainecto__erd_list_tables\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"name\", \"schema_name\", \"display_order\"],\n displayName: \"List ERD tables\",\n },\n {\n mcpName: \"mcp__ainecto__erd_list_refs\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"name\", \"from_table_uuid\", \"to_table_uuid\", \"relationship\"],\n displayName: \"List ERD refs\",\n },\n {\n mcpName: \"mcp__ainecto__erd_list_enums\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"name\", \"display_order\"],\n displayName: \"List ERD enums\",\n },\n {\n mcpName: \"mcp__ainecto__erd_list_table_groups\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"name\", \"display_order\"],\n displayName: \"List ERD table groups\",\n },\n {\n mcpName: \"mcp__ainecto__task_list_tasks\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"title\", \"statusUuid\", \"assigneeId\", \"updatedAt\"],\n displayName: \"List tasks\",\n },\n {\n mcpName: \"mcp__ainecto__task_list_statuses\",\n outputHint: \"table\",\n tableColumns: [\"uuid\", \"name\", \"displayOrder\"],\n displayName: \"List task statuses\",\n },\n {\n mcpName: \"mcp__ainecto__enable_shares\",\n aliases: [\"shares enable\"],\n displayName: \"Enable shares\",\n },\n {\n mcpName: \"mcp__ainecto__disable_shares\",\n aliases: [\"shares disable\"],\n displayName: \"Disable shares\",\n },\n] satisfies ToolPresentationEnrichment[];\n","export interface TableOptions {\n columns?: string[];\n}\n\nexport function renderTable(data: unknown, options: TableOptions = {}): string | undefined {\n const rows = extractRows(data);\n if (!rows.length || !rows.every(isRecord)) {\n return undefined;\n }\n\n const columns = options.columns?.length ? options.columns : inferColumns(rows);\n if (!columns.length) {\n return undefined;\n }\n\n const widths = columns.map((column) => Math.max(column.length, ...rows.map((row) => formatCell(row[column]).length)));\n const header = columns.map((column, index) => column.padEnd(widths[index] ?? column.length)).join(\" \");\n const divider = widths.map((width) => \"-\".repeat(width)).join(\" \");\n const body = rows.map((row) => columns.map((column, index) => formatCell(row[column]).padEnd(widths[index] ?? column.length)).join(\" \"));\n\n return [header, divider, ...body].join(\"\\n\");\n}\n\nfunction extractRows(data: unknown): unknown[] {\n if (Array.isArray(data)) {\n return data;\n }\n if (isRecord(data)) {\n for (const key of [\"items\", \"projects\", \"workspaces\", \"folders\", \"documents\", \"tasks\", \"attachments\", \"results\", \"data\"]) {\n const value = data[key];\n if (Array.isArray(value)) {\n return value;\n }\n }\n }\n return [];\n}\n\nfunction inferColumns(rows: Record<string, unknown>[]): string[] {\n const preferred = [\"uuid\", \"id\", \"name\", \"title\", \"status\", \"type\", \"projectUuid\", \"documentUuid\", \"createdAt\", \"updatedAt\"];\n const keys = new Set(rows.flatMap((row) => Object.keys(row)));\n const columns = preferred.filter((key) => keys.has(key));\n if (columns.length > 0) {\n return columns.slice(0, 6);\n }\n return [...keys].slice(0, 6);\n}\n\nfunction formatCell(value: unknown): string {\n if (value === null || value === undefined) {\n return \"\";\n }\n if (typeof value === \"object\") {\n return JSON.stringify(value);\n }\n return String(value);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","export class CliCommandError extends Error {\n constructor(\n readonly code: string,\n message: string,\n readonly details?: unknown,\n ) {\n super(message);\n }\n}\n","import type { GeneratedToolDefinition, JsonSchema } from \"../../core/catalog/types\";\nimport { parsePayloadSource, type ParsedPayload } from \"../../core/input/payloadSource\";\nimport { CliCommandError } from \"./errors\";\n\nexport interface ParsedCommandArgs {\n args: Record<string, unknown>;\n yes: boolean;\n warnings: string[];\n}\n\nexport async function parseGeneratedCommandArgs(\n tool: GeneratedToolDefinition,\n argv: string[],\n stdin: NodeJS.ReadStream,\n): Promise<ParsedCommandArgs> {\n const parsed = parseArgv(argv);\n const payload = await parsePayload(tool, parsed, stdin);\n const args = payloadToArgs(payload.value);\n const properties = getSchemaProperties(tool.inputSchema);\n\n for (const [key, value] of Object.entries(parsed.flags)) {\n if (key === \"yes\") {\n continue;\n }\n const schemaKey = resolveSchemaKey(key, properties);\n if (!schemaKey) {\n throw new CliCommandError(\"UNKNOWN_FLAG\", `Unknown flag --${key} for ${tool.commandPath.join(\" \")}.`, {\n flag: key,\n mcpName: tool.mcpName,\n });\n }\n args[schemaKey] = coerceFlagValue(value, properties[schemaKey], schemaKey);\n }\n\n for (const required of tool.required) {\n if (args[required] === undefined || args[required] === \"\") {\n throw new CliCommandError(\"MISSING_REQUIRED_FLAG\", `Missing required argument \"${required}\" for ${tool.commandPath.join(\" \")}.`, {\n required,\n flag: `--${camelToKebab(required)}`,\n mcpName: tool.mcpName,\n });\n }\n }\n\n return {\n args,\n yes: parsed.yes,\n warnings: payload.warnings,\n };\n}\n\nfunction payloadToArgs(value: unknown): Record<string, unknown> {\n if (value === undefined || value === null) {\n return {};\n }\n if (!isRecord(value)) {\n throw new CliCommandError(\"INVALID_PAYLOAD\", \"Generated command payload must be a JSON object.\", { value });\n }\n return { ...value };\n}\n\ninterface ParsedArgv {\n flags: Record<string, string | boolean>;\n yes: boolean;\n file?: string;\n inline?: string;\n}\n\nfunction parseArgv(argv: string[]): ParsedArgv {\n const flags: Record<string, string | boolean> = {};\n const inline: string[] = [];\n let file: string | undefined;\n let yes = false;\n\n for (let index = 0; index < argv.length; index += 1) {\n const arg = argv[index];\n if (!arg) {\n continue;\n }\n if (arg === \"--file\" || arg === \"-f\") {\n file = requireValue(arg, argv[++index]);\n continue;\n }\n if (arg === \"--yes\" || arg === \"-y\") {\n yes = true;\n flags.yes = true;\n continue;\n }\n if (arg.startsWith(\"--\")) {\n const withoutPrefix = arg.slice(2);\n const eqIndex = withoutPrefix.indexOf(\"=\");\n if (eqIndex >= 0) {\n const key = withoutPrefix.slice(0, eqIndex);\n flags[key] = withoutPrefix.slice(eqIndex + 1);\n continue;\n }\n const next = argv[index + 1];\n if (!next || next.startsWith(\"--\")) {\n flags[withoutPrefix] = true;\n continue;\n }\n flags[withoutPrefix] = next;\n index += 1;\n continue;\n }\n inline.push(arg);\n }\n\n return {\n flags,\n yes,\n file,\n inline: inline.length > 0 ? inline.join(\" \") : undefined,\n };\n}\n\nasync function parsePayload(\n tool: GeneratedToolDefinition,\n parsed: ParsedArgv,\n stdin: NodeJS.ReadStream,\n): Promise<ParsedPayload> {\n if (tool.payloadMode === \"file-json\" || parsed.file || parsed.inline) {\n return parsePayloadSource({\n file: parsed.file,\n inline: parsed.inline,\n stdin,\n });\n }\n\n return { value: {}, source: \"empty\", warnings: [] };\n}\n\nfunction resolveSchemaKey(flag: string, properties: Record<string, JsonSchema>): string | undefined {\n if (properties[flag]) {\n return flag;\n }\n const normalized = flag.toLowerCase();\n return Object.keys(properties).find((key) => camelToKebab(key) === normalized);\n}\n\nfunction coerceFlagValue(value: string | boolean, schema: JsonSchema | undefined, key: string): unknown {\n const type = schema?.type;\n if (type === \"boolean\") {\n if (typeof value === \"boolean\") {\n return value;\n }\n if (value === \"true\") return true;\n if (value === \"false\") return false;\n throw new CliCommandError(\"INVALID_FLAG_VALUE\", `Flag \"${key}\" must be a boolean.`, { key, value });\n }\n if (type === \"string\") {\n if (typeof value === \"boolean\") {\n throw new CliCommandError(\"FLAG_REQUIRES_VALUE\", `--${camelToKebab(key)} requires a value.`, { key });\n }\n return value;\n }\n if (type === \"integer\") {\n if (typeof value === \"boolean\" || !/^-?\\d+$/.test(value)) {\n const code = typeof value === \"boolean\" ? \"FLAG_REQUIRES_VALUE\" : \"INVALID_FLAG_VALUE\";\n throw new CliCommandError(code, `Flag \"${key}\" must be an integer.`, { key, value });\n }\n return Number.parseInt(value, 10);\n }\n if (type === \"number\") {\n if (typeof value === \"boolean\" || Number.isNaN(Number(value))) {\n const code = typeof value === \"boolean\" ? \"FLAG_REQUIRES_VALUE\" : \"INVALID_FLAG_VALUE\";\n throw new CliCommandError(code, `Flag \"${key}\" must be a number.`, { key, value });\n }\n return Number(value);\n }\n throw new CliCommandError(\"UNSUPPORTED_FLAG_PAYLOAD\", `Flag \"${key}\" is not a scalar field; provide it through --file, stdin, or inline JSON.`, {\n key,\n type,\n });\n}\n\nfunction getSchemaProperties(schema: JsonSchema): Record<string, JsonSchema> {\n const properties = schema.properties;\n if (!isRecord(properties)) {\n return {};\n }\n const result: Record<string, JsonSchema> = {};\n for (const [key, value] of Object.entries(properties)) {\n if (isRecord(value)) {\n result[key] = value;\n }\n }\n return result;\n}\n\nexport function camelToKebab(value: string): string {\n return value.replace(/[A-Z]/g, (char) => `-${char.toLowerCase()}`).toLowerCase();\n}\n\nfunction requireValue(flag: string, value: string | undefined): string {\n if (!value || value.startsWith(\"--\")) {\n throw new CliCommandError(\"FLAG_REQUIRES_VALUE\", `${flag} requires a value.`, { flag });\n }\n return value;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import { createInterface } from \"node:readline\";\nimport type { GeneratedToolDefinition } from \"../../core/catalog/types\";\nimport { CliCommandError } from \"./errors\";\n\nexport interface ConfirmationIO {\n stdin: NodeJS.ReadStream;\n stderr: NodeJS.WriteStream;\n}\n\nexport async function confirmDestructiveCommand(options: {\n tool: GeneratedToolDefinition;\n yes: boolean;\n json: boolean;\n io: ConfirmationIO;\n}): Promise<void> {\n if (!options.tool.destructive) {\n return;\n }\n if (options.yes) {\n return;\n }\n if (options.json) {\n throw new CliCommandError(\"CONFIRMATION_REQUIRED\", `Destructive command ${options.tool.commandPath.join(\" \")} requires --yes in --json mode.`, {\n mcpName: options.tool.mcpName,\n });\n }\n\n const answer = await promptConfirmation(options.io, `Run destructive command ${options.tool.commandPath.join(\" \")}? Type \"yes\" to continue: `);\n if (answer.trim().toLowerCase() !== \"yes\") {\n throw new CliCommandError(\"CONFIRMATION_DECLINED\", \"Destructive command was not confirmed.\", {\n mcpName: options.tool.mcpName,\n });\n }\n}\n\nasync function promptConfirmation(io: ConfirmationIO, message: string): Promise<string> {\n io.stderr.write(message);\n const rl = createInterface({ input: io.stdin, terminal: false });\n try {\n for await (const line of rl) {\n return line;\n }\n return \"\";\n } finally {\n rl.close();\n }\n}\n","export const ATTACHMENTS_UPLOAD_COMMAND_PATH = [\"attachments\", \"upload\"] as const;\n\nexport const BESPOKE_COMMAND_PATHS = [\n ATTACHMENTS_UPLOAD_COMMAND_PATH,\n] as const;\n","import type { McpRpcClient } from \"../../core/mcp/rpcClient\";\nimport type { GeneratedToolDefinition, ToolPresentationEnrichment } from \"../../core/catalog/types\";\nimport { enrichments } from \"../../core/catalog/enrichments\";\nimport { getGeneratedTools } from \"../../core/catalog\";\nimport type { AinectoEnv } from \"../../core/config/endpoints\";\nimport { renderSuccess } from \"../../core/output/render\";\nimport { renderTable } from \"../../core/output/table\";\nimport { parseGeneratedCommandArgs } from \"./flagParser\";\nimport { confirmDestructiveCommand, type ConfirmationIO } from \"./destructiveConfirmation\";\nimport { BESPOKE_COMMAND_PATHS } from \"./bespokeCommands\";\n\nexport interface GeneratedCommandRoute {\n tool: GeneratedToolDefinition;\n matchedPath: string[];\n rest: string[];\n presentation?: ToolPresentationEnrichment;\n rawContractWarning?: string;\n}\n\nexport interface GeneratedCommandExecutionOptions {\n env: AinectoEnv;\n argv: string[];\n client: McpRpcClient;\n json: boolean;\n io: ConfirmationIO & { stdout: NodeJS.WriteStream };\n}\n\nexport function matchGeneratedCommand(env: AinectoEnv, argv: string[]): GeneratedCommandRoute | undefined {\n const commandTokens = argv.filter((arg) => !arg.startsWith(\"-\"));\n const tools = getGeneratedTools(env);\n const entries = buildRouteEntries(tools, enrichments);\n const match = entries\n .filter((entry) => isPrefix(entry.path, commandTokens))\n .sort((a, b) => b.path.length - a.path.length)[0];\n\n if (!match) {\n return undefined;\n }\n\n const restStart = findRestStart(argv, match.path);\n return {\n tool: match.tool,\n matchedPath: match.path,\n rest: argv.slice(restStart),\n presentation: match.presentation,\n rawContractWarning: match.tool.payloadMode === \"binary-upload\"\n ? \"This generated command uses the raw MCP argument contract only; local file upload semantics are not implemented here.\"\n : undefined,\n };\n}\n\nexport async function executeGeneratedCommand(options: GeneratedCommandExecutionOptions): Promise<number> {\n const route = matchGeneratedCommand(options.env, options.argv);\n if (!route) {\n return 2;\n }\n\n const parsed = await parseGeneratedCommandArgs(route.tool, route.rest, options.io.stdin);\n await confirmDestructiveCommand({\n tool: route.tool,\n yes: parsed.yes,\n json: options.json,\n io: options.io,\n });\n\n const result = await options.client.toolsCall(route.tool.mcpName, parsed.args);\n const warnings = [...parsed.warnings, ...(route.rawContractWarning ? [route.rawContractWarning] : [])];\n options.io.stdout.write(renderGeneratedResult(result, {\n json: options.json,\n warnings,\n presentation: route.presentation,\n }));\n return 0;\n}\n\nexport function assertNoCommandCollisions(env: AinectoEnv): void {\n const entries = buildRouteEntries(getGeneratedTools(env), enrichments);\n const seen = new Map<string, string>();\n for (const entry of entries) {\n const key = entry.path.join(\" \");\n const existing = seen.get(key);\n if (existing) {\n throw new Error(`Command collision for \"${key}\": ${existing} and ${entry.tool.mcpName}`);\n }\n seen.set(key, entry.tool.mcpName);\n }\n for (const commandPath of BESPOKE_COMMAND_PATHS) {\n const command = commandPath.join(\" \");\n const existing = seen.get(command);\n if (existing) {\n throw new Error(`Bespoke command \"${command}\" collides with ${existing}.`);\n }\n }\n}\n\nfunction renderGeneratedResult(\n result: unknown,\n options: {\n json: boolean;\n warnings: string[];\n presentation?: ToolPresentationEnrichment;\n },\n): string {\n if (!options.json && options.presentation?.outputHint === \"table\") {\n const table = renderTable(result, { columns: options.presentation.tableColumns });\n if (table) {\n const warnings = options.warnings.length ? `${options.warnings.map((warning) => `Warning: ${warning}`).join(\"\\n\")}\\n` : \"\";\n return `${warnings}${table}\\n`;\n }\n }\n return renderSuccess(result, { json: options.json, warnings: options.warnings });\n}\n\nfunction buildRouteEntries(\n tools: readonly GeneratedToolDefinition[],\n presentations: readonly ToolPresentationEnrichment[],\n): Array<{ path: string[]; tool: GeneratedToolDefinition; presentation?: ToolPresentationEnrichment }> {\n const byName = new Map(presentations.map((presentation) => [presentation.mcpName, presentation]));\n const entries: Array<{ path: string[]; tool: GeneratedToolDefinition; presentation?: ToolPresentationEnrichment }> = [];\n for (const tool of tools) {\n const presentation = byName.get(tool.mcpName);\n entries.push({ path: tool.commandPath, tool, presentation });\n for (const alias of presentation?.aliases ?? []) {\n entries.push({ path: alias.split(/\\s+/).filter(Boolean), tool, presentation });\n }\n }\n return entries;\n}\n\nfunction isPrefix(prefix: string[], values: string[]): boolean {\n return prefix.every((value, index) => values[index] === value);\n}\n\nfunction findRestStart(argv: string[], commandPath: string[]): number {\n let matched = 0;\n for (let index = 0; index < argv.length; index += 1) {\n if (!argv[index]?.startsWith(\"-\")) {\n if (argv[index] !== commandPath[matched]) {\n return index;\n }\n matched += 1;\n if (matched === commandPath.length) {\n return index + 1;\n }\n }\n }\n return argv.length;\n}\n","import { readFile, stat } from \"node:fs/promises\";\nimport { basename, extname } from \"node:path\";\nimport { McpRpcClient } from \"../mcp/rpcClient\";\n\nexport interface AttachmentUploadFileInput {\n path: string;\n filename?: string;\n contentType?: string;\n}\n\nexport interface UploadAttachmentsInput {\n documentUuid: string;\n files: AttachmentUploadFileInput[];\n maxBytes?: number;\n ttlSeconds?: number;\n requestToolName?: string;\n commitToolName?: string;\n fetchImpl?: typeof fetch;\n onProgress?: (progress: AttachmentUploadProgress) => void;\n}\n\nexport type AttachmentUploadStage = \"token\" | \"put\" | \"register\" | \"done\";\n\nexport interface AttachmentUploadProgress {\n stage: AttachmentUploadStage;\n path: string;\n filename: string;\n index: number;\n total: number;\n}\n\nexport interface RegisteredAttachmentFile {\n path: string;\n documentUuid: string;\n filename: string;\n storageKey: string;\n contentType: string;\n sizeBytes: number;\n registerResult: unknown;\n}\n\nexport interface UploadAttachmentsResult {\n count: number;\n uploaded: RegisteredAttachmentFile[];\n}\n\nexport class AttachmentUploadError extends Error {\n constructor(\n readonly code: string,\n message: string,\n readonly details?: unknown,\n ) {\n super(message);\n }\n}\n\nexport async function uploadAttachments(\n client: McpRpcClient,\n input: UploadAttachmentsInput,\n): Promise<UploadAttachmentsResult> {\n if (!input.documentUuid.trim()) {\n throw new AttachmentUploadError(\"MISSING_REQUIRED_FLAG\", \"Missing required argument \\\"documentUuid\\\".\", {\n flag: \"--document-uuid\",\n });\n }\n if (input.files.length === 0) {\n throw new AttachmentUploadError(\"MISSING_FILE\", \"Expected at least one file to upload.\");\n }\n\n const fetchImpl = input.fetchImpl ?? fetch;\n const uploaded: RegisteredAttachmentFile[] = [];\n\n for (let index = 0; index < input.files.length; index += 1) {\n const file = input.files[index];\n if (!file) {\n continue;\n }\n uploaded.push(await uploadSingleAttachment(client, file, {\n documentUuid: input.documentUuid,\n maxBytes: input.maxBytes,\n ttlSeconds: input.ttlSeconds,\n requestToolName: input.requestToolName ?? \"mcp__ainecto__request_upload_token\",\n commitToolName: input.commitToolName ?? \"mcp__ainecto__upload_attachments\",\n fetchImpl,\n onProgress: input.onProgress,\n index,\n total: input.files.length,\n }));\n }\n\n return { count: uploaded.length, uploaded };\n}\n\ninterface SingleUploadContext {\n documentUuid: string;\n maxBytes?: number;\n ttlSeconds?: number;\n requestToolName: string;\n commitToolName: string;\n fetchImpl: typeof fetch;\n onProgress?: (progress: AttachmentUploadProgress) => void;\n index: number;\n total: number;\n}\n\ninterface UploadTokenResponse {\n token: string;\n uploadUrl: string;\n storageKey: string;\n}\n\ninterface UploadPutResponse {\n storageKey: string;\n sizeBytes: number;\n contentType: string;\n}\n\nasync function uploadSingleAttachment(\n client: McpRpcClient,\n file: AttachmentUploadFileInput,\n context: SingleUploadContext,\n): Promise<RegisteredAttachmentFile> {\n const metadata = await readFileMetadata(file);\n emitProgress(context, \"token\", file.path, metadata.filename);\n const uploadToken = await requestUploadToken(client, metadata, context);\n\n emitProgress(context, \"put\", file.path, metadata.filename);\n const putResult = await putAttachmentBytes(uploadToken, metadata, context.fetchImpl);\n validatePutResult(uploadToken, metadata, putResult);\n\n const item = {\n documentUuid: context.documentUuid,\n filename: metadata.filename,\n storageKey: uploadToken.storageKey,\n contentType: putResult.contentType,\n sizeBytes: putResult.sizeBytes,\n };\n\n emitProgress(context, \"register\", file.path, metadata.filename);\n const registerResult = await client.toolsCall(context.commitToolName, { items: [item] });\n\n emitProgress(context, \"done\", file.path, metadata.filename);\n return {\n path: file.path,\n documentUuid: context.documentUuid,\n filename: metadata.filename,\n storageKey: uploadToken.storageKey,\n contentType: putResult.contentType,\n sizeBytes: putResult.sizeBytes,\n registerResult,\n };\n}\n\nasync function readFileMetadata(file: AttachmentUploadFileInput): Promise<{\n bytes: Buffer;\n filename: string;\n contentType: string;\n sizeBytes: number;\n}> {\n const stats = await stat(file.path);\n if (!stats.isFile()) {\n throw new AttachmentUploadError(\"INVALID_FILE\", `Attachment path is not a file: ${file.path}`, { path: file.path });\n }\n const bytes = await readFile(file.path);\n return {\n bytes,\n filename: file.filename ?? basename(file.path),\n contentType: file.contentType ?? detectContentType(file.path),\n sizeBytes: bytes.byteLength,\n };\n}\n\nasync function requestUploadToken(\n client: McpRpcClient,\n metadata: { filename: string; contentType: string; sizeBytes: number },\n context: SingleUploadContext,\n): Promise<UploadTokenResponse> {\n const scopeJson = JSON.stringify({\n documentUuid: context.documentUuid,\n filename: metadata.filename,\n contentType: metadata.contentType,\n sizeBytes: metadata.sizeBytes,\n });\n const requestArgs: Record<string, unknown> = {\n purpose: \"attachment.upload\",\n scopeJson,\n };\n if (context.maxBytes !== undefined) {\n requestArgs.maxBytes = context.maxBytes;\n }\n if (context.ttlSeconds !== undefined) {\n requestArgs.ttlSeconds = context.ttlSeconds;\n }\n\n const response = unwrapMcpToolPayload(await client.toolsCall(context.requestToolName, requestArgs));\n if (!isRecord(response)) {\n throw new AttachmentUploadError(\"UPLOAD_TOKEN_PROTOCOL_ERROR\", \"request_upload_token response was not an object.\");\n }\n const token = response.token;\n const uploadUrl = response.uploadUrl;\n const storageKey = response.storageKey;\n if (typeof token !== \"string\" || token.length === 0) {\n throw new AttachmentUploadError(\"UPLOAD_TOKEN_PROTOCOL_ERROR\", \"request_upload_token response did not include token.\");\n }\n if (typeof uploadUrl !== \"string\" || uploadUrl.length === 0) {\n throw new AttachmentUploadError(\"UPLOAD_TOKEN_PROTOCOL_ERROR\", \"request_upload_token response did not include uploadUrl.\");\n }\n if (typeof storageKey !== \"string\" || storageKey.length === 0) {\n throw new AttachmentUploadError(\"UPLOAD_TOKEN_PROTOCOL_ERROR\", \"request_upload_token response did not include storageKey.\");\n }\n return { token, uploadUrl, storageKey };\n}\n\nasync function putAttachmentBytes(\n token: UploadTokenResponse,\n metadata: { bytes: Buffer; contentType: string },\n fetchImpl: typeof fetch,\n): Promise<UploadPutResponse> {\n const maxAttempts = 3;\n let lastRetryableError: unknown;\n for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {\n try {\n const response = await fetchImpl(token.uploadUrl, {\n method: \"PUT\",\n headers: {\n authorization: `Bearer ${token.token}`,\n \"content-type\": metadata.contentType,\n },\n body: new Uint8Array(metadata.bytes),\n });\n if (shouldRetryResponse(response.status) && attempt < maxAttempts) {\n continue;\n }\n if (!response.ok) {\n throw uploadHttpError(response.status);\n }\n return parsePutResponse(await response.text());\n } catch (error) {\n if (error instanceof AttachmentUploadError) {\n throw error;\n }\n lastRetryableError = error;\n if (attempt === maxAttempts) {\n break;\n }\n }\n }\n throw new AttachmentUploadError(\"ATTACHMENT_UPLOAD_FAILED\", \"Attachment upload failed.\", {\n cause: lastRetryableError instanceof Error ? lastRetryableError.message : String(lastRetryableError),\n });\n}\n\nfunction uploadHttpError(status: number): AttachmentUploadError {\n if (status === 409) {\n return new AttachmentUploadError(\"ATTACHMENT_UPLOAD_CONFLICT\", \"Attachment upload failed with HTTP 409 Conflict.\", { status });\n }\n if (status === 401 || status === 403) {\n return new AttachmentUploadError(\"ATTACHMENT_UPLOAD_TOKEN_EXPIRED\", `Attachment upload token was rejected with HTTP ${status}.`, { status });\n }\n return new AttachmentUploadError(\"ATTACHMENT_UPLOAD_HTTP_ERROR\", `Attachment upload failed with HTTP ${status}.`, { status });\n}\n\nfunction shouldRetryResponse(status: number): boolean {\n return status === 429 || status >= 500;\n}\n\nfunction parsePutResponse(text: string): UploadPutResponse {\n let parsed: unknown;\n try {\n parsed = JSON.parse(text);\n } catch {\n throw new AttachmentUploadError(\"ATTACHMENT_UPLOAD_PROTOCOL_ERROR\", \"Attachment PUT response was not valid JSON.\");\n }\n if (!isRecord(parsed)) {\n throw new AttachmentUploadError(\"ATTACHMENT_UPLOAD_PROTOCOL_ERROR\", \"Attachment PUT response was not an object.\");\n }\n if (typeof parsed.storageKey !== \"string\") {\n throw new AttachmentUploadError(\"ATTACHMENT_UPLOAD_PROTOCOL_ERROR\", \"Attachment PUT response did not include storageKey.\");\n }\n if (typeof parsed.sizeBytes !== \"number\" || !Number.isFinite(parsed.sizeBytes)) {\n throw new AttachmentUploadError(\"ATTACHMENT_UPLOAD_PROTOCOL_ERROR\", \"Attachment PUT response did not include numeric sizeBytes.\");\n }\n if (typeof parsed.contentType !== \"string\") {\n throw new AttachmentUploadError(\"ATTACHMENT_UPLOAD_PROTOCOL_ERROR\", \"Attachment PUT response did not include contentType.\");\n }\n return {\n storageKey: parsed.storageKey,\n sizeBytes: parsed.sizeBytes,\n contentType: parsed.contentType,\n };\n}\n\nfunction validatePutResult(\n token: UploadTokenResponse,\n metadata: { sizeBytes: number },\n putResult: UploadPutResponse,\n): void {\n if (putResult.storageKey !== token.storageKey) {\n throw new AttachmentUploadError(\"ATTACHMENT_UPLOAD_STORAGE_KEY_MISMATCH\", \"Attachment PUT response storageKey did not match the upload token.\", {\n expected: token.storageKey,\n actual: putResult.storageKey,\n });\n }\n if (putResult.sizeBytes !== metadata.sizeBytes) {\n throw new AttachmentUploadError(\"ATTACHMENT_UPLOAD_SIZE_MISMATCH\", \"Attachment PUT response sizeBytes did not match the local file size.\", {\n expected: metadata.sizeBytes,\n actual: putResult.sizeBytes,\n });\n }\n}\n\nfunction unwrapMcpToolPayload(value: unknown): unknown {\n if (!isRecord(value) || !Array.isArray(value.content)) {\n return value;\n }\n const text = value.content\n .map((item) => isRecord(item) && typeof item.text === \"string\" ? item.text : \"\")\n .find((itemText) => itemText.trim().startsWith(\"{\"));\n if (!text) {\n return value;\n }\n try {\n return JSON.parse(text) as unknown;\n } catch {\n return value;\n }\n}\n\nfunction emitProgress(\n context: SingleUploadContext,\n stage: AttachmentUploadStage,\n path: string,\n filename: string,\n): void {\n context.onProgress?.({\n stage,\n path,\n filename,\n index: context.index,\n total: context.total,\n });\n}\n\nfunction detectContentType(path: string): string {\n const extension = extname(path).toLowerCase();\n return MIME_BY_EXTENSION[extension] ?? \"application/octet-stream\";\n}\n\nconst MIME_BY_EXTENSION: Record<string, string> = {\n \".avif\": \"image/avif\",\n \".csv\": \"text/csv\",\n \".gif\": \"image/gif\",\n \".htm\": \"text/html\",\n \".html\": \"text/html\",\n \".jpeg\": \"image/jpeg\",\n \".jpg\": \"image/jpeg\",\n \".json\": \"application/json\",\n \".md\": \"text/markdown\",\n \".pdf\": \"application/pdf\",\n \".png\": \"image/png\",\n \".svg\": \"image/svg+xml\",\n \".txt\": \"text/plain\",\n \".webp\": \"image/webp\",\n \".xls\": \"application/vnd.ms-excel\",\n \".xlsx\": \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n \".zip\": \"application/zip\",\n};\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import type { McpRpcClient } from \"../../core/mcp/rpcClient\";\nimport {\n uploadAttachments,\n type AttachmentUploadProgress,\n type UploadAttachmentsResult,\n} from \"../../core/upload/attachmentUpload\";\nimport { renderSuccess } from \"../../core/output/render\";\nimport { CliCommandError } from \"./errors\";\nimport { ATTACHMENTS_UPLOAD_COMMAND_PATH } from \"./bespokeCommands\";\n\nexport interface AttachmentsUploadCommandOptions {\n argv: string[];\n client: McpRpcClient;\n json: boolean;\n io: {\n stdout: NodeJS.WriteStream;\n stderr: NodeJS.WriteStream;\n };\n}\n\nexport function isAttachmentsUploadCommand(domain: string | undefined, action: string | undefined): boolean {\n return domain === ATTACHMENTS_UPLOAD_COMMAND_PATH[0] && action === ATTACHMENTS_UPLOAD_COMMAND_PATH[1];\n}\n\nexport async function executeAttachmentsUploadCommand(options: AttachmentsUploadCommandOptions): Promise<number> {\n const parsed = parseAttachmentsUploadArgs(options.argv);\n const result = await uploadAttachments(options.client, {\n documentUuid: parsed.documentUuid,\n files: parsed.files.map((path) => ({\n path,\n filename: parsed.filename,\n contentType: parsed.contentType,\n })),\n maxBytes: parsed.maxBytes,\n ttlSeconds: parsed.ttlSeconds,\n onProgress: options.json ? undefined : (progress) => {\n renderProgress(progress, options.io.stderr);\n },\n });\n\n options.io.stdout.write(renderAttachmentUploadResult(result, options.json));\n return 0;\n}\n\ninterface ParsedAttachmentsUploadArgs {\n documentUuid: string;\n files: string[];\n filename?: string;\n contentType?: string;\n maxBytes?: number;\n ttlSeconds?: number;\n}\n\nfunction parseAttachmentsUploadArgs(argv: string[]): ParsedAttachmentsUploadArgs {\n const files: string[] = [];\n let documentUuid: string | undefined;\n let filename: string | undefined;\n let contentType: string | undefined;\n let maxBytes: number | undefined;\n let ttlSeconds: number | undefined;\n let readFilesOnly = false;\n\n for (let index = 0; index < argv.length; index += 1) {\n const arg = argv[index];\n if (!arg) {\n continue;\n }\n if (readFilesOnly) {\n files.push(arg);\n continue;\n }\n if (arg === \"--\") {\n readFilesOnly = true;\n continue;\n }\n if (arg === \"--document-uuid\" || arg === \"--documentUuid\") {\n documentUuid = requireValue(arg, argv[++index]);\n continue;\n }\n if (arg === \"--filename\" || arg === \"--name\") {\n filename = requireValue(arg, argv[++index]);\n continue;\n }\n if (arg === \"--content-type\" || arg === \"--contentType\") {\n contentType = requireValue(arg, argv[++index]);\n continue;\n }\n if (arg === \"--max-bytes\" || arg === \"--maxBytes\") {\n maxBytes = parsePositiveInteger(arg, requireValue(arg, argv[++index]));\n continue;\n }\n if (arg === \"--ttl-seconds\" || arg === \"--ttlSeconds\") {\n ttlSeconds = parsePositiveInteger(arg, requireValue(arg, argv[++index]));\n continue;\n }\n if (arg.startsWith(\"--\")) {\n throw new CliCommandError(\"UNKNOWN_FLAG\", `Unknown flag ${arg} for attachments upload.`, { flag: arg });\n }\n files.push(arg);\n }\n\n if (!documentUuid) {\n throw new CliCommandError(\"MISSING_REQUIRED_FLAG\", \"Missing required argument \\\"documentUuid\\\" for attachments upload.\", {\n flag: \"--document-uuid\",\n });\n }\n if (files.length === 0) {\n throw new CliCommandError(\"MISSING_FILE\", \"Expected at least one file to upload.\");\n }\n if (filename && files.length !== 1) {\n throw new CliCommandError(\"INVALID_FLAG_VALUE\", \"--filename/--name can only be used with exactly one file.\", {\n flag: \"--filename\",\n files: files.length,\n });\n }\n\n return {\n documentUuid,\n files,\n filename,\n contentType,\n maxBytes,\n ttlSeconds,\n };\n}\n\nfunction parsePositiveInteger(flag: string, value: string): number {\n if (!/^[1-9]\\d*$/.test(value)) {\n throw new CliCommandError(\"INVALID_FLAG_VALUE\", `${flag} must be a positive integer.`, { flag, value });\n }\n return Number.parseInt(value, 10);\n}\n\nfunction requireValue(flag: string, value: string | undefined): string {\n if (!value || value.startsWith(\"--\")) {\n throw new CliCommandError(\"FLAG_REQUIRES_VALUE\", `${flag} requires a value.`, { flag });\n }\n return value;\n}\n\nfunction renderProgress(progress: AttachmentUploadProgress, stderr: NodeJS.WriteStream): void {\n if (progress.stage === \"token\") {\n stderr.write(`Uploading ${progress.filename} (${progress.index + 1}/${progress.total})...\\n`);\n }\n}\n\nfunction renderAttachmentUploadResult(result: UploadAttachmentsResult, json: boolean): string {\n if (json) {\n return renderSuccess(result, { json });\n }\n const lines = [\n `Uploaded ${result.count} attachment${result.count === 1 ? \"\" : \"s\"}.`,\n ...result.uploaded.map((file) => `- ${file.filename} (${file.sizeBytes} bytes)`),\n ];\n return renderSuccess(lines.join(\"\\n\"), { json: false });\n}\n","import { FileTokenStore } from \"../../core/auth/tokenStore\";\nimport { OAuthClient } from \"../../core/auth/oauth\";\nimport { resolveEndpoint, assertEnv, type AinectoEnv } from \"../../core/config/endpoints\";\nimport { parsePayloadSource } from \"../../core/input/payloadSource\";\nimport { McpRpcClient } from \"../../core/mcp/rpcClient\";\nimport { renderError, renderSuccess } from \"../../core/output/render\";\nimport { getGeneratedTools } from \"../../core/catalog\";\nimport { runConnector } from \"../mcp/connector\";\nimport { executeGeneratedCommand } from \"./generatedCommandRouter\";\nimport { executeAttachmentsUploadCommand, isAttachmentsUploadCommand } from \"./attachmentsUploadCommand\";\n\nexport interface CliIO {\n stdout: NodeJS.WriteStream;\n stderr: NodeJS.WriteStream;\n stdin: NodeJS.ReadStream;\n}\n\nexport async function runAinectoCli(argv: string[], io: CliIO): Promise<number> {\n let parsed: GlobalArgs = { json: argv.includes(\"--json\"), help: false, positionals: [] };\n try {\n parsed = parseGlobalArgs(argv);\n if (parsed.help || parsed.positionals.length === 0) {\n io.stdout.write(helpText());\n return 0;\n }\n\n const resolved = resolveEndpoint({ env: parsed.env, endpoint: parsed.endpoint });\n const tokenStore = new FileTokenStore();\n const auth = new OAuthClient({ endpoint: resolved.endpoint, tokenStore });\n const client = new McpRpcClient({ endpoint: resolved.endpoint, tokenProvider: auth });\n const [domain, action, ...rest] = parsed.positionals;\n\n if (domain === \"mcp\") {\n await runConnector({\n endpoint: resolved.endpoint,\n input: io.stdin,\n output: io.stdout,\n errorOutput: io.stderr,\n });\n return 0;\n }\n\n if (domain === \"auth\") {\n return handleAuth(action, auth, resolved.endpoint, parsed.json, io);\n }\n\n if (isAttachmentsUploadCommand(domain, action)) {\n return await executeAttachmentsUploadCommand({\n argv: rest,\n client,\n json: parsed.json,\n io,\n });\n }\n\n const generatedResult = await executeGeneratedCommand({\n env: parsed.env ?? \"prod\",\n argv: parsed.positionals,\n client,\n json: parsed.json,\n io,\n });\n if (generatedResult !== 2) {\n return generatedResult;\n }\n\n if (domain === \"tools\") {\n return handleTools(action, rest, parsed, client, io);\n }\n\n throw new Error(`Unknown command \"${domain}\".`);\n } catch (error) {\n io.stderr.write(renderError(error, { json: parsed.json }));\n return 1;\n }\n}\n\nasync function handleAuth(\n action: string | undefined,\n auth: OAuthClient,\n endpoint: string,\n json: boolean,\n io: CliIO,\n): Promise<number> {\n if (action === \"login\") {\n await auth.login();\n io.stdout.write(renderSuccess({ endpoint, authenticated: true }, { json }));\n return 0;\n }\n if (action === \"status\") {\n const token = await auth.getAccessToken();\n io.stdout.write(renderSuccess({ endpoint, authenticated: Boolean(token) }, { json }));\n return 0;\n }\n if (action === \"logout\") {\n await auth.logout();\n io.stdout.write(renderSuccess({ endpoint, authenticated: false }, { json }));\n return 0;\n }\n throw new Error(\"Expected auth login, auth status, or auth logout.\");\n}\n\nasync function handleTools(\n action: string | undefined,\n rest: string[],\n parsed: GlobalArgs,\n client: McpRpcClient,\n io: CliIO,\n): Promise<number> {\n if (action === \"list\") {\n const tools = await client.toolsList();\n io.stdout.write(renderSuccess(tools, { json: parsed.json }));\n return 0;\n }\n\n if (action === \"call\") {\n const toolName = rest[0];\n if (!toolName) {\n throw new Error(\"Expected MCP tool name after tools call.\");\n }\n const toolArgs = rest.slice(1);\n const payloadOptions = parsePayloadArgs(toolArgs);\n const payload = await parsePayloadSource({\n file: payloadOptions.file,\n inline: payloadOptions.inline,\n stdin: io.stdin,\n });\n const result = await client.toolsCall(toolName, payload.value);\n io.stdout.write(renderSuccess(result, { json: parsed.json, warnings: payload.warnings }));\n return 0;\n }\n\n if (action === \"catalog\") {\n const catalogEnv = parsed.env ?? \"prod\";\n io.stdout.write(renderSuccess(getGeneratedTools(parsed.env ?? \"prod\"), {\n json: parsed.json,\n warnings: [catalogEnv === \"dev\"\n ? \"Local dev catalog is a checked-in live sync snapshot; rerun sync:tools --env dev to refresh it.\"\n : \"Local prod catalog is seed fixture only until authenticated prod live sync updates generated catalogs.\"],\n }));\n return 0;\n }\n\n throw new Error(\"Expected tools list, tools call <mcpName>, or tools catalog.\");\n}\n\ninterface GlobalArgs {\n env?: AinectoEnv;\n endpoint?: string;\n json: boolean;\n help: boolean;\n positionals: string[];\n}\n\nfunction parseGlobalArgs(argv: string[]): GlobalArgs {\n const result: GlobalArgs = { json: false, help: false, positionals: [] };\n for (let index = 0; index < argv.length; index += 1) {\n const arg = argv[index];\n if (!arg) {\n continue;\n }\n if (arg === \"--env\") {\n result.env = assertEnv(requireValue(arg, argv[++index]));\n } else if (arg === \"--endpoint\") {\n result.endpoint = requireValue(arg, argv[++index]);\n } else if (arg === \"--json\") {\n result.json = true;\n } else if (arg === \"--help\" || arg === \"-h\") {\n result.help = true;\n } else {\n result.positionals.push(arg);\n }\n }\n return result;\n}\n\nfunction parsePayloadArgs(argv: string[]): { file?: string; inline?: string } {\n const result: { file?: string; inline?: string } = {};\n const inline: string[] = [];\n for (let index = 0; index < argv.length; index += 1) {\n const arg = argv[index];\n if (!arg) {\n continue;\n }\n if (arg === \"--file\" || arg === \"-f\") {\n result.file = requireValue(arg, argv[++index]);\n } else {\n inline.push(arg);\n }\n }\n if (inline.length > 0) {\n result.inline = inline.join(\" \");\n }\n return result;\n}\n\nfunction requireValue(flag: string, value: string | undefined): string {\n if (!value || value.startsWith(\"--\")) {\n throw new Error(`${flag} requires a value.`);\n }\n return value;\n}\n\nfunction helpText(): string {\n return [\n \"Ainecto CLI\",\n \"\",\n \"Usage:\",\n \" ainecto auth login|status|logout [--env prod|dev] [--endpoint URL] [--json]\",\n \" ainecto tools list [--env prod|dev] [--endpoint URL] [--json]\",\n \" ainecto tools call <mcpName> [-f payload.json|@-] [inline-json] [--json]\",\n \" ainecto attachments upload --document-uuid <uuid> <file...> [--json]\",\n \" ainecto <generated-command> [flags] [-f payload.json] [--yes] [--json]\",\n \" ainecto mcp [--env prod|dev] [--endpoint URL]\",\n \"\",\n ].join(\"\\n\");\n}\n","#!/usr/bin/env node\nimport { runAinectoCli } from \"../adapters/cli/ainectoCli\";\n\nconst exitCode = await runAinectoCli(process.argv.slice(2), {\n stdin: process.stdin,\n stdout: process.stdout,\n stderr: process.stderr,\n});\n\nprocess.exitCode = exitCode;\n"],"mappings":"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","names":["createHash","createHash","readFile","isRecord","generatedTools","generatedTools","isRecord","isRecord","isRecord","createInterface","createInterface","readFile","stat","isRecord","requireValue","requireValue"]}
|