Commit graph

259 commits

Author SHA1 Message Date
Andrey Avtomonov
0a261fe8a4
ci: add codecov coverage reporting (#82)
* ci: add codecov coverage reporting

* ci: fix codecov and secret scan checks

* ci: fix smoke and artifact checks
2026-05-14 01:13:31 +02:00
Andrey Avtomonov
28b5e2a83e
fix: align KTX agent tools and repair handling (#73) 2026-05-14 00:57:51 +02:00
Luca Martial
ed690ef60c
feat(cli): redesign ktx status output UX (#80)
* feat(cli): redesign ktx status output with grouped checks and color

Replace flat PASS/FAIL/WARN text output with a grouped, symbol-based
layout (Environment, Project, Semantic search, Query history). Passing
groups collapse to a single summary line; failing groups expand to show
individual checks with fix hints. Adds --verbose flag to show all checks
including passing ones, color support for TTY terminals, a dedicated
setup-mode report that guides users toward `ktx setup`, and timing info.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* refactor(cli): extract project checks and historic SQL doctor into status-project

Move project-level doctor checks, semantic search embedding checks, and
historic SQL doctor logic from doctor.ts into a dedicated status-project.ts
module. Removes historic-sql-doctor.ts and its test file, consolidating
everything into the new module with its own tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-13 18:47:58 -04:00
Luca Martial
dabd640cad
feat(cli): tree-picker UI for database scope selection (#81)
* refactor(cli): extract generic tree picker from Notion-specific modules

Rename notion-page-picker-tree → tree-picker-state and
notion-page-picker-tui → tree-picker-tui, removing Notion-specific
naming so the tree picker can be reused for database scope selection.
Update notion-page-picker to consume the new generic interfaces.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(cli): add database tree picker for schema and table scope selection

Replace inline multiselect prompts in setup-databases with a new
database-tree-picker that uses the generic tree picker TUI. This gives
database scope selection the same grouped tree UI as the Notion page
picker, combining schema and table selection into a single step.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-13 18:41:44 -04:00
Luca Martial
c2750dd797
refactor(cli): hide internal setup options and remove dead flags (#79)
Hide advanced/internal `ktx setup` options from --help output using
.hideHelp() so the command surface is approachable for new users. Remove
the --project, --agent-scope, and --skip-initial-source-ingest flags
that are no longer needed. Update docs and tests to match.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-13 17:55:25 -04:00
Luca Martial
f219ba22a6
feat(cli): redesign Notion page picker UI and add skip-empty flow (#78)
Rework the inline picker to use a cleaner visual style (filled/empty
square glyphs, bordered layout, clack-style header) and streamlined
keybindings (Enter to confirm, Escape to quit, Right Arrow to expand).
Replace the transient "select at least one" hint with a skip-empty
confirmation prompt that exits cleanly via quit-without-save.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-13 17:28:48 -04:00
Luca Martial
9ecb8cb119
feat(cli): add edit flow for setup connections (#77)
* feat(cli): add edit flow for primary database connections in setup

Allow users to edit existing primary database connections during setup
instead of only adding new ones. Preselects existing values (URL, schemas,
tables) so users can adjust without re-entering everything.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(cli): add edit flow for context source connections in setup

Allow users to edit existing context source connections during setup.
Preselects existing values (URLs, credentials, repo details) and offers
a "Keep existing credential" option for sensitive fields.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(cli): rename "Add more" to "Add additional" in primary sources menu

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-13 17:22:59 -04:00
Luca Martial
c31281c643
Merge pull request #76 from Kaelio/remove-vertex-gcloud-auth
refactor(cli): remove interactive gcloud auth from Vertex AI setup
2026-05-13 16:30:28 -04:00
Luca Martial
ea33e51e8f refactor(cli): remove interactive gcloud auth from Vertex AI setup
Instead of spawning an interactive gcloud login flow, tell users to run
gcloud auth application-default login themselves before continuing. Also
adds a Vertex-specific model list and spinner progress for LLM health
checks.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-13 13:29:50 -07:00
Andrey Avtomonov
fa9237956e
ci: run pre-commit checks in CI (#74)
* ci: run pre-commit in CI

* test: update CI workflow guardrail
2026-05-13 19:49:25 +02:00
Andrey Avtomonov
3fde4438b1
fix: stop requiring readonly connection config (#71) 2026-05-13 19:37:25 +02:00
Andrey Avtomonov
d1b5936441
feat(cli): add text ingest command (#72) 2026-05-13 19:32:49 +02:00
Luca Martial
be77c3c0bb
Merge pull request #70 from Kaelio/remove-setup-project-print
Hide setup project banner
2026-05-13 12:17:34 -04:00
Luca Martial
e50fef851f fix(cli): hide setup project banner 2026-05-13 09:16:35 -07:00
Andrey Avtomonov
754e4a9039
feat(cli): improve setup progress UX (#69) 2026-05-13 17:01:48 +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
Andrey Avtomonov
e353425266
fix(cli): show project dir in context build step (#67) 2026-05-13 15:49:22 +02:00
Andrey Avtomonov
c202202e6b
feat(cli): clean up wiki and sl commands (#65)
* feat(cli): clean up wiki and sl commands

* test(scripts): update package artifact CLI smoke assertion
2026-05-13 15:41:10 +02:00
Andrey Avtomonov
e1e9c4af91
fix(cli): clean up connection commands (#62)
* fix(cli): clean up connection commands

* test(cli): update connection smoke coverage

* Fix setup output formatting

* fix notion setup picker exit
2026-05-13 15:04:50 +02:00
Luca Martial
4973ca562f
Restore Vertex AI LLM setup (#56)
* feat(context): resolve Vertex AI config references

* feat(cli): restore Vertex AI LLM setup

---------

Co-authored-by: Andrey Avtomonov <andreybavt@gmail.com>
2026-05-13 14:42:38 +02:00
Andrey Avtomonov
d4d8ad1724
fix: show setup destination paths (#63) 2026-05-13 14:27:29 +02:00
Andrey Avtomonov
b75576279c
fix: store Metabase mappings in ktx.yaml (#61)
* fix: store Metabase mappings in ktx.yaml

* docs: note KTX has no public users

* refactor: drop setup progress compatibility
2026-05-13 13:55:21 +02:00
Andrey Avtomonov
c22248dabf
feat(context): add warehouse verification tools (#46)
* feat(context): add warehouse dialect dispatch

* feat(context): read warehouse scan catalog

* feat(context): add entity details verification tool

* feat(context): add ingest SQL verification tool

* feat(context): add raw warehouse discovery tool

* feat(context): expose warehouse verification tools to ingest

* docs(context): add ingest identifier verification protocol

* test(context): guard ingest identifier verification prompts

* chore(context): verify warehouse verification tools

* docs: add warehouse verification tools plan and spec

* fix(context): expose target warehouses to Notion ingest

* fix(context): update ingest prompts for warehouse verification tools

* fix(context): scope raw schema discovery to allowed connections

* fix(context): verify warehouse column display targets

* docs: add notion warehouse verification gap closure plan

* fix(context): include raw discovery connection names

* fix(context): expose warehouse targets for LookML and MetricFlow

* fix(context): pass connection config to ingest query executors

* fix(cli): enable read-only SQL probes for local ingest

* docs: add warehouse verification final v1 closure plan

* fix(context): align warehouse sql probe prompt shape

* docs: add warehouse verification prompt shape closure plan

* test(context): catch connectionless sql execution prompt examples

* fix(context): include connection name in sl capture sql example

* docs: add warehouse verification sql example closure plan

* fix(context): report structured entity detail misses

* docs: add warehouse verification structured target miss closure plan

* fix: report untracked squash merge conflicts

* feat: require ingest verification ledger

* fix: stabilize ingest wiki references
2026-05-13 13:43:23 +02:00
Andrey Avtomonov
bcb0d2f8f7
chore: add TypeScript dead-code checks (#60)
* chore: add TypeScript dead-code checks

* chore: trim stale Knip ignores

* Fix CI smoke and artifact checks
2026-05-13 13:33:28 +02:00
Andrey Avtomonov
721f1a998f
feat(cli)!: remove ktx agent command (#58)
* feat(cli)!: remove ktx agent command

* test(context): update PGlite boundary guardrail
2026-05-13 13:01:56 +02:00
Andrey Avtomonov
eaaabb361e
fix(cli): clean up dev runtime commands (#59) 2026-05-13 12:28:24 +02:00
Andrey Avtomonov
b9e0a746af
feat(cli): clean up dev command surface (#57)
* feat(cli): clean up dev command surface

* test: align CI expectations with CLI cleanup

* test(cli): update slow test command expectations
2026-05-13 12:00:08 +02:00
Luca Martial
46b013e32a
Merge pull request #55 from Kaelio/fix-embedding-spinner-multiline
Use shared spinner for embedding health checks
2026-05-13 00:53:38 -04:00
Luca Martial
59b0b12c5c Format embedding health progress helper 2026-05-12 21:53:23 -07:00
Luca Martial
c7061d8630 Use shared spinner for embedding health checks 2026-05-12 21:50:41 -07:00
Luca Martial
703ecd427e
Merge pull request #52 from Kaelio/select-tables-on-connect
Select tables during database setup
2026-05-13 00:34:19 -04:00
Luca Martial
9175451b01 Merge remote-tracking branch 'origin/main' into select-tables-on-connect
# Conflicts:
#	packages/cli/src/setup-agents.test.ts
2026-05-12 21:33:12 -07:00
Luca Martial
9a8cb08192 Refine setup table selection flow 2026-05-12 21:31:11 -07:00
Luca Martial
8a040615b9
Merge pull request #53 from Kaelio/multiselect-enter-selects
Confirm skipped optional setup selections
2026-05-12 23:51:36 -04:00
Luca Martial
2ede86263d Align agent setup completion test with state file 2026-05-12 18:23:04 -07:00
Luca Martial
8ceb3bc7b9 Confirm skipped optional setup selections 2026-05-12 18:23:03 -07:00
Luca Martial
6a5383a398 Prompt for enabled tables during setup 2026-05-12 18:22:08 -07:00
Luca Martial
9704d8632b Add connector table listing 2026-05-12 18:22:05 -07:00
Luca Martial
52ddb061a4 Add scan table filtering 2026-05-12 18:22:03 -07:00
Luca Martial
fefbabab5f
Merge pull request #51 from Kaelio/demo-target-dir-explain
feat(cli): add intro step and project dir to demo tour
2026-05-12 20:54:46 -04:00
Luca Martial
262276dcd7 feat(cli): add intro step and project dir to demo tour
Show the target project directory in the demo banner and add an
introductory screen before the first setup card so users understand
where demo artifacts will land. Also simplify stdin key detection
by comparing raw byte values instead of string conversions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-12 17:54:18 -07:00
Luca Martial
556563d654
Merge pull request #50 from Kaelio/setup-path-hint-cleanup
fix(cli): remove redundant path resolution hints from project setup
2026-05-12 20:18:46 -04:00
Luca Martial
52d1c903ae fix(cli): remove redundant path resolution hints from project setup
The placeholder text and confirmation step already communicate path
formats clearly; the standalone hints added visual noise.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-12 17:17:18 -07:00
Luca Martial
aacddb6720
Merge pull request #49 from Kaelio/hide-primary-source-counts
feat(cli): improve database setup UX
2026-05-12 20:16:30 -04:00
Luca Martial
a2096dd847 feat(cli): hide table counts from primary source connection test output
Table counts during connection testing are noisy and not actionable for
users — the scan step already reports detailed schema information.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-12 17:14:56 -07:00
Luca Martial
d567ffec48 feat(cli): offer connection URL paste first in database setup
Users most commonly paste a connection URL rather than entering fields
individually, so surface that option first in the connection method prompt.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-12 17:14:35 -07:00
Luca Martial
e7dbf91b96
Merge pull request #48 from Kaelio/fix-duplicate-directory-prompt
fix(cli): replace duplicate directory prompt with direct path options
2026-05-12 20:06:37 -04:00
Luca Martial
ea10dd9f39 merge: resolve conflict with main's box-drawing formatting
Keep the confirmProjectDir helper extraction from this branch while
adopting the │ box-drawing prefixes added on main.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-12 17:03:03 -07:00
Luca Martial
bdca6d0f04 fix(cli): replace duplicate directory prompt with direct path options
Extract confirmProjectDir helper and split the "Create a new project
folder" option into "New subfolder (./ktx-project)" and "Custom path"
so users reach their target directory with fewer prompts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-12 16:59:30 -07:00