Andrey Avtomonov
9d92c79988
fix(cli): resolve embedding provider explicitly and surface lane status in sl search ( #192 )
...
* feat(cli): add tryUseManagedLocalEmbeddingsDaemon for read-only callers
* feat(cli): add resolveProjectEmbeddingProvider helper
* fix(cli): wire sl search through resolveProjectEmbeddingProvider so semantic lane works
* fix(cli): wire wiki/knowledge search through resolveProjectEmbeddingProvider
* feat(cli): surface embeddings-unavailable status when sl search returns empty
* refactor(cli): route admin reindex through resolveProjectEmbeddingProvider
* refactor: pass embeddingProvider into ingest/scan instead of resolving inside @ktx/context
* refactor(mcp): resolve embedding provider in CLI factory, pass into context ports
* refactor(context): delete MANAGED_SENTENCE_TRANSFORMERS_BASE_URL sentinel
* refactor(cli): delete sentinel-based managed-embeddings indirection
* chore: scrub stale managed-embeddings sentinel references from tests and smoke script
* chore: unexport unused EmbeddingResolutionMode alias
* fix(cli): force pathPrefix="" when targeting the managed embeddings daemon
The managed daemon serves /embeddings/compute directly. The default
pathPrefix in @ktx/llm is /api, so omitting sentenceTransformers from
ktx.yaml produced /api/embeddings/compute -> 404. The resolver now
sets pathPrefix='' explicitly when wiring the managed daemon URL,
matching what the daemon actually exposes.
2026-05-21 02:21:22 +02:00
Andrey Avtomonov
e6d578c03f
feat(setup): add Claude Desktop target and MCP-first agent setup ( #114 )
...
* feat(setup): add Claude Desktop target and MCP-first agent setup
Adds `ktx mcp stdio` and a `claude-desktop` setup target that generates a
local plugin ZIP wiring the analytics skill and a stdio MCP config. Replaces
the CLI-only agent install mode with MCP+analytics (default) and an optional
admin CLI skill, renames the research skill to analytics, and lets interactive
setup pick project vs global scope when every target supports it. Extracts a
shared MCP server factory used by both HTTP and stdio entrypoints.
* Add MCP agent client setup support
* Polish setup output formatting
* Add MCP tool polish design spec
Design for slimming the MCP-registered surface from 25 to 11 tools,
introducing memory_ingest, applying the per-tool polish kit (annotations,
outputSchema, .describe(), in-band error wrapping, union-drift fixes,
type-narrowed jsonToolResult), emitting progress notifications on
sql_execution + sl_query, and refining the ktx-analytics SKILL.md to
match.
* Refine MCP tool polish design spec after adversarial review iteration 1
* Refine MCP tool polish design spec after adversarial review iteration 2
* Refine MCP tool polish design spec after adversarial review iteration 3
* refactor(context): rename memory capture service to ingest
* feat(mcp): slim research tool surface
* refactor(mcp): remove admin ports from server factory
* refactor(cli): rename text ingest memory port
* docs: update analytics skill for memory ingest
* chore: verify mcp surface rename
* Add MCP tool polish v1 surface change plan
* feat(context): polish mcp tool metadata
* fix(context): enforce resolved semantic layer compute sources
* feat(context): emit mcp query progress stages
* fix(context): keep mcp progress event internal
* Add MCP tool polish v1 metadata & progress plan
* Fix CI snapshot and docs checks
2026-05-16 11:39:55 +02:00
Andrey Avtomonov
b759a4a286
feat(mcp):added MCP server ( #97 )
...
* docs(specs): design research-agent MCP tools and ktx mcp daemon
Adds the 2026-05-14 design spec for exposing four new MCP tools
(discover_data, entity_details, dictionary_search, sql_execution),
shipping a ktx-research skill, and introducing an HTTP-only ktx mcp
daemon so external agents can use KTX as a research-capable context
layer.
* Refine research-agent MCP tools spec after adversarial review iteration 1
* Refine research-agent MCP tools spec after adversarial review iteration 2
* Refine research-agent MCP tools spec after adversarial review iteration 3
* Refine spec: drop connectionName compat carve-out and ground summary/snippet provenance per kind
* feat(daemon): validate read-only SQL with sqlglot
* feat(context): expose read-only SQL validation port
* feat(context): register MCP sql execution tool
* feat(context): execute MCP SQL through validated connector path
* test(context): update SQL analysis port fixtures
* docs: add research-agent MCP sql execution foundation plan
* feat(context): add scan-backed entity details service
* feat(context): register MCP entity details tool
* feat(context): expose local MCP entity details
* test(context): align entity details scan fixtures
* docs: add research-agent MCP entity_details plan
* feat(context): add dictionary search service
* feat(context): register MCP dictionary search tool
* feat(context): expose local MCP dictionary search
* docs: add research-agent MCP dictionary_search plan
* feat: add MCP discover data service
* feat: expose discover data MCP tool
* feat: wire local discover data MCP port
* docs: add research-agent MCP discover_data plan
* feat(cli): add mcp http security helpers
* feat(cli): host mcp over streamable http
* feat(cli): manage mcp daemon lifecycle
* feat(cli): add ktx mcp commands
* fix(cli): stabilize mcp daemon verification
* docs: add research-agent MCP http daemon plan
* feat(cli): install KTX research skill
* feat(cli): configure MCP clients in setup agents
* feat(cli): support Claude local MCP setup scope
* docs: add research-agent MCP setup-agents plan
* refactor(context): use connectionId in warehouse verification tools
* docs(context): update ingest verification prompts for connectionId
* docs: add research-agent MCP ingest contract convergence plan
* chore: build runtime artifacts in conductor setup
---------
Co-authored-by: Andrey Avtomonov <7889985+andreybavt@users.noreply.github.com>
2026-05-15 02:35:09 +02:00
Andrey Avtomonov
ce23aca4c4
fix: remove project from ktx config ( #95 )
2026-05-14 17:39:31 +02:00
Andrey Avtomonov
3fde4438b1
fix: stop requiring readonly connection config ( #71 )
2026-05-13 19:37:25 +02:00
Andrey Avtomonov
d7147f9ca1
feat: rename project wiki directory ( #66 )
...
* feat: rename project wiki directory
* test: fix wiki skill ordering expectations
* Show configured context sources in setup
2026-05-13 16:05:58 +02:00
Andrey Avtomonov
97da9919e9
refactor: remove legacy compatibility paths ( #64 )
...
* refactor: remove legacy compatibility paths
* fix: support legacy metabase native queries
* test: use canonical semantic layer descriptions
* Rename CLI description
* Recover setup scan from SQLite ABI mismatch
* Remove legacy product name from CLI help
2026-05-13 15:55:00 +02:00
Luca Martial
60457e9407
Improve schema setup and Notion ingest UX ( #14 )
...
* Improve schema setup and Notion ingest UX
* Handle Postgres network scan failures
* WIP: save local changes before main merge
* Refine setup prompt choices
* Tighten ingest reconciliation guidance
* Commit setup config updates
* Canonicalize unmapped fallback details
* Count reconciliation actions in reports
* Harden semantic layer source validation
* Return wiki content after edits
* Validate SL sources against manifests
* Validate wiki refs before writes
* Simplify CLI next steps
* Clarify agent setup summary
* Surface dbt target SL sources
* Recover SL write fallbacks
* Preserve failed context build metadata
* Track raw paths for ingest actions
* test(cli): update seeded demo expectations
* fix(ingest): scope fallback recovery checks
* fix(sl): tighten source validation guards
* fix(wiki): ignore empty embedding vectors
* Improve Notion ingest UX
* Enforce flat wiki keys
* test(context): update wiki key assertion
---------
Co-authored-by: Andrey Avtomonov <andreybavt@gmail.com>
2026-05-12 22:56:58 +02:00
Andrey Avtomonov
d9acdc846a
feat: expose sl search usage snippets
2026-05-11 17:31:53 +02:00
Andrey Avtomonov
9dad936ac7
feat: npm-managed Python runtime for @kaelio/ktx ( #7 )
...
* docs: add npm managed python runtime design
* build: add bundled python runtime wheel builder
* build: make local embedding dependencies optional
* build: bundle python runtime wheel in cli artifacts
* build: track bundled python runtime release artifact
* test: verify bundled python runtime wheel
* docs: add plan for bundled python runtime wheel
* test: cover managed python runtime lifecycle
* feat: add managed python runtime installer
* feat: add runtime command runner
* feat: expose runtime management commands
* test: verify managed python runtime commands
* docs: add plan for managed python runtime installer
* feat: add managed python command helper
* feat: use managed runtime for sl query compute
* feat: route sl query managed runtime policy
* docs: add plan for managed runtime sl query integration
* feat: add managed runtime daemon metadata
* feat: manage python daemon lifecycle
* feat: add runtime daemon start stop commands
* fix: verify managed runtime daemon lifecycle
* docs: add plan for managed runtime daemon lifecycle
* feat: add managed local embeddings config marker
* feat: add managed local embeddings daemon helper
* feat: use managed runtime for local embedding setup
* feat: pass managed runtime policy through setup
* docs: add plan for managed local embeddings runtime
* feat: read CLI package metadata dynamically
* feat: assemble public kaelio ktx npm package
* feat: release one public kaelio ktx npm artifact
* test: cover public kaelio ktx package invocations
* chore: verify public kaelio ktx package artifacts
* docs: add plan for public kaelio ktx npm package
* test: verify managed runtime in public package smoke
* test: finalize managed runtime release smoke
* docs: add plan for managed runtime release smoke
* test: specify local embeddings release smoke
* feat: add local embeddings runtime smoke
* chore: register local embeddings smoke
* fix: verify local embeddings smoke
* fix: restore artifact smoke python env helper
* docs: add plan for managed local embeddings release smoke
* refactor: share managed runtime install policy parsing
* feat: use managed runtime for agent semantic queries
* feat: use managed runtime for MCP semantic compute
* docs: add plan for managed agent and MCP semantic runtime
* feat(cli): add managed daemon HTTP helpers
* feat(cli): route local adapters through managed daemon
* feat(cli): use managed daemon for ingest helpers
* feat(cli): pass managed daemon options to scan
* feat(context): pass MCP ingest pull config options
* feat(cli): pass managed daemon options to serve ingest
* test: verify managed local ingest daemon runtime
* docs: add plan for managed local ingest daemon runtime
* docs: align managed runtime examples
* docs: add plan for managed runtime docs cleanup
* test: cover published package runtime smoke commands
* test: validate published package smoke outputs
* docs: add plan for published package runtime smoke
* build: stamp public npm package version
* release: add npm public release policy
* release: add guarded npm publish script
* release: document public npm release handoff
* docs: add plan for public npm release handoff
* test: cover managed runtime prune in package smoke
* docs: document managed runtime prune
* docs: add plan for managed runtime prune smoke and docs
* chore: encode uv runtime prerequisite policy
* fix: clarify missing uv runtime error
* docs: document uv runtime prerequisite
* docs: add plan for uv runtime prerequisite contract
* refactor: limit release artifacts to public package runtime
* chore: align release policy with bundled runtime wheel
* docs: describe single public runtime artifact surface
* test: verify single public runtime artifact contract
* docs: add plan for single public runtime artifact cleanup
* fix: align local embeddings smoke with public version
* docs: add plan for local embeddings smoke public version
* release: soft-launch as @kaelio/ktx@0.1.0-rc.0 on next tag
Publish target moves to the pre-release version 0.1.0-rc.0 under the next
dist-tag so npm install @kaelio/ktx (which resolves to latest) does not
pick up the soft-launch build. Users opt in via @kaelio/ktx@next.
* Fix release script boundary checks
* Remove PostHog from public package bundle
2026-05-11 15:50:34 +02:00
Luca Martial
b3dcb577d9
misc
2026-05-10 20:44:07 -07:00
Andrey Avtomonov
3ce510b55b
rename klo to ktx
2026-05-10 23:51:24 +02:00
Andrey Avtomonov
1a42152e6f
Initial open-source release
2026-05-10 23:12:26 +02:00