Normalize semantic layer descriptions

This commit is contained in:
Luca Martial 2026-05-11 00:31:15 -07:00
parent c82989119b
commit 86c818a454
21 changed files with 498 additions and 37 deletions

View file

@ -32,6 +32,8 @@ describe('KTX local project runtime', () => {
const gitignore = await readFile(join(projectDir, '.ktx/.gitignore'), 'utf-8');
expect(gitignore).toContain('cache/');
expect(gitignore).toContain('db.sqlite');
expect(gitignore).toContain('db.sqlite-*');
expect(gitignore).toContain('ingest-transcripts/');
expect(gitignore).toContain('secrets/');
expect(gitignore).toContain('setup/');
expect(gitignore).toContain('agents/');

View file

@ -35,7 +35,10 @@ export interface InitKtxProjectResult extends KtxLocalProject {
}
const TRACKED_SCAFFOLD_FILES: Array<{ path: string; content: string }> = [
{ path: '.ktx/.gitignore', content: 'cache/\ndb.sqlite\nsecrets/\nsetup/\nagents/\n' },
{
path: '.ktx/.gitignore',
content: 'cache/\ndb.sqlite\ndb.sqlite-*\ningest-transcripts/\nsecrets/\nsetup/\nagents/\n',
},
{ path: '.ktx/prompts/.gitkeep', content: '' },
{ path: '.ktx/skills/.gitkeep', content: '' },
{ path: 'knowledge/global/.gitkeep', content: '' },

View file

@ -67,10 +67,10 @@ describe('KTX setup config helpers', () => {
it('merges setup-local gitignore entries without removing existing lines', () => {
expect(mergeKtxSetupGitignoreEntries('cache/\ndb.sqlite\n')).toBe(
['cache/', 'db.sqlite', 'secrets/', 'setup/', 'agents/', ''].join('\n'),
['cache/', 'db.sqlite', 'db.sqlite-*', 'ingest-transcripts/', 'secrets/', 'setup/', 'agents/', ''].join('\n'),
);
expect(mergeKtxSetupGitignoreEntries('cache/\nsecrets/\n')).toBe(
['cache/', 'secrets/', 'setup/', 'agents/', ''].join('\n'),
['cache/', 'secrets/', 'db.sqlite', 'db.sqlite-*', 'ingest-transcripts/', 'setup/', 'agents/', ''].join('\n'),
);
});
});

View file

@ -4,7 +4,15 @@ export const KTX_SETUP_STEPS = ['project', 'llm', 'embeddings', 'databases', 'so
export type KtxSetupStep = (typeof KTX_SETUP_STEPS)[number];
const SETUP_GITIGNORE_ENTRIES = ['secrets/', 'setup/', 'agents/'] as const;
const SETUP_GITIGNORE_ENTRIES = [
'cache/',
'db.sqlite',
'db.sqlite-*',
'ingest-transcripts/',
'secrets/',
'setup/',
'agents/',
] as const;
export function markKtxSetupStepComplete(config: KtxProjectConfig, step: KtxSetupStep): KtxProjectConfig {
const databaseConnectionIds = config.setup?.database_connection_ids ?? [];