refactor: enforce ktx naming and AGENTS.md compliance sweep (#289)

Align the tree with AGENTS.md/CLAUDE.md conventions:

- Rewrite user-facing strings, docs, and tests to lowercase `ktx`
  (no bare uppercase `KTX` tokens remain outside literal identifiers).
- Drop the legacy `historicSql` migration path and its now-unused
  helpers, per the no-backward-compat rule.
- Remove `as unknown as` / `any` casts: narrow `BaseTool` generics to
  `z.ZodObject`, add a typed `createLookerClient`, and delete the dead
  `getParametersSchema`/`toAnthropicFormat` pre-AI-SDK helpers.
- Use `InvalidArgumentError` for Commander parse failures.
- Finish the adapter→connector prose conversion in the `ktx.yaml` docs
  while keeping the literal `adapters` config key.
This commit is contained in:
Andrey Avtomonov 2026-06-11 13:49:45 +02:00 committed by GitHub
parent 005c5fc860
commit 00cdf2de90
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
237 changed files with 844 additions and 974 deletions

View file

@ -1,7 +1,7 @@
import { describe, expect, it, vi } from 'vitest';
import { runKtxEmbeddingHealthCheck } from '../../src/llm/embedding-health.js';
describe('KTX embedding health check', () => {
describe('ktx embedding health check', () => {
it('runs a one-shot OpenAI embedding check through the configured provider', async () => {
const createOpenAIClient = vi.fn(() => ({
embeddings: {

View file

@ -12,7 +12,7 @@ describe('createKtxEmbeddingProvider', () => {
}),
) as KtxEmbeddingConfig;
expect(() => createKtxEmbeddingProvider(config)).toThrow('Unsupported KTX embedding backend: deterministic');
expect(() => createKtxEmbeddingProvider(config)).toThrow('Unsupported ktx embedding backend: deterministic');
});
it('rejects gateway embeddings', () => {
@ -25,7 +25,7 @@ describe('createKtxEmbeddingProvider', () => {
}),
) as KtxEmbeddingConfig;
expect(() => createKtxEmbeddingProvider(config)).toThrow('Unsupported KTX embedding backend: gateway');
expect(() => createKtxEmbeddingProvider(config)).toThrow('Unsupported ktx embedding backend: gateway');
});
it('uses OpenAI embeddings with configured dimensions', async () => {

View file

@ -4,7 +4,7 @@ import { runKtxLlmHealthCheck } from '../../src/llm/model-health.js';
const anthropicModel = { modelId: 'claude-sonnet-4-6' } as never;
describe('KTX LLM health check', () => {
describe('ktx LLM health check', () => {
it('runs a minimal non-streaming model call through the configured provider', async () => {
const generateText = vi.fn(async () => ({ text: 'ok' }));
const createAnthropic = vi.fn(() => vi.fn(() => anthropicModel));