@kaelio/ktx 0.2.0 → 0.4.0

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.
Files changed (87) hide show
  1. package/assets/python/{kaelio_ktx-0.2.0-py3-none-any.whl → kaelio_ktx-0.4.0-py3-none-any.whl} +0 -0
  2. package/assets/python/manifest.json +4 -4
  3. package/dist/admin-reindex.js +10 -17
  4. package/dist/admin-reindex.test.js +1 -1
  5. package/dist/cli-program.test.js +0 -2
  6. package/dist/cli-project.d.ts +18 -0
  7. package/dist/cli-project.js +52 -0
  8. package/dist/cli-project.test.js +149 -0
  9. package/dist/cli-runtime.d.ts +0 -2
  10. package/dist/cli-runtime.js +2 -8
  11. package/dist/commands/runtime-commands.js +2 -2
  12. package/dist/context-build-view.js +1 -1
  13. package/dist/index.test.js +21 -25
  14. package/dist/ingest.js +9 -2
  15. package/dist/ingest.test.js +27 -3
  16. package/dist/managed-local-embeddings.d.ts +0 -2
  17. package/dist/managed-local-embeddings.js +2 -5
  18. package/dist/managed-local-embeddings.test.js +5 -8
  19. package/dist/managed-python-daemon.js +2 -2
  20. package/dist/managed-python-daemon.test.js +1 -1
  21. package/dist/managed-python-http.js +3 -3
  22. package/dist/managed-python-http.test.js +6 -6
  23. package/dist/print-command-tree.js +0 -2
  24. package/dist/public-ingest.d.ts +4 -2
  25. package/dist/public-ingest.js +9 -3
  26. package/dist/release-version.d.ts +1 -5
  27. package/dist/release-version.js +2 -39
  28. package/dist/runtime-requirements.js +1 -1
  29. package/dist/runtime.js +6 -6
  30. package/dist/runtime.test.js +7 -7
  31. package/dist/scan.js +7 -2
  32. package/dist/scan.test.js +1 -1
  33. package/dist/setup-embeddings.js +1 -1
  34. package/dist/setup-embeddings.test.js +2 -2
  35. package/dist/setup-runtime.test.js +1 -1
  36. package/node_modules/@ktx/context/dist/core/git.service.d.ts +1 -0
  37. package/node_modules/@ktx/context/dist/core/git.service.js +12 -0
  38. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/historic-sql.adapter.d.ts +2 -1
  39. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/historic-sql.adapter.js +18 -0
  40. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/local-ingest-acceptance.test.js +6 -6
  41. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/projection.d.ts +5 -0
  42. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/projection.js +48 -0
  43. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/projection.test.js +83 -0
  44. package/node_modules/@ktx/context/dist/ingest/adapters/live-database/daemon-introspection.js +4 -1
  45. package/node_modules/@ktx/context/dist/ingest/adapters/live-database/daemon-introspection.test.js +32 -0
  46. package/node_modules/@ktx/context/dist/ingest/finalization-scope.d.ts +22 -0
  47. package/node_modules/@ktx/context/dist/ingest/finalization-scope.js +95 -0
  48. package/node_modules/@ktx/context/dist/ingest/finalization-scope.test.d.ts +1 -0
  49. package/node_modules/@ktx/context/dist/ingest/finalization-scope.test.js +114 -0
  50. package/node_modules/@ktx/context/dist/ingest/index.d.ts +1 -2
  51. package/node_modules/@ktx/context/dist/ingest/index.js +0 -1
  52. package/node_modules/@ktx/context/dist/ingest/ingest-bundle.runner.d.ts +2 -0
  53. package/node_modules/@ktx/context/dist/ingest/ingest-bundle.runner.isolated-diff.test.js +166 -0
  54. package/node_modules/@ktx/context/dist/ingest/ingest-bundle.runner.js +235 -45
  55. package/node_modules/@ktx/context/dist/ingest/ingest-bundle.runner.test.js +193 -38
  56. package/node_modules/@ktx/context/dist/ingest/local-bundle-ingest.test.js +22 -3
  57. package/node_modules/@ktx/context/dist/ingest/local-bundle-runtime.js +0 -4
  58. package/node_modules/@ktx/context/dist/ingest/local-ingest.js +0 -7
  59. package/node_modules/@ktx/context/dist/ingest/local-stage-ingest.js +15 -5
  60. package/node_modules/@ktx/context/dist/ingest/local-stage-ingest.test.js +29 -0
  61. package/node_modules/@ktx/context/dist/ingest/memory-flow/schema.d.ts +2 -2
  62. package/node_modules/@ktx/context/dist/ingest/memory-flow/schema.js +1 -1
  63. package/node_modules/@ktx/context/dist/ingest/memory-flow/types.d.ts +1 -1
  64. package/node_modules/@ktx/context/dist/ingest/ports.d.ts +1 -20
  65. package/node_modules/@ktx/context/dist/ingest/report-snapshot.d.ts +71 -0
  66. package/node_modules/@ktx/context/dist/ingest/report-snapshot.js +27 -0
  67. package/node_modules/@ktx/context/dist/ingest/reports.d.ts +23 -5
  68. package/node_modules/@ktx/context/dist/ingest/reports.js +7 -24
  69. package/node_modules/@ktx/context/dist/ingest/types.d.ts +33 -0
  70. package/node_modules/@ktx/context/dist/llm/index.d.ts +1 -1
  71. package/node_modules/@ktx/context/dist/llm/index.js +1 -1
  72. package/node_modules/@ktx/context/dist/llm/local-config.d.ts +0 -1
  73. package/node_modules/@ktx/context/dist/llm/local-config.js +2 -12
  74. package/node_modules/@ktx/context/dist/llm/local-config.test.js +2 -23
  75. package/node_modules/@ktx/context/dist/package-exports.test.js +2 -2
  76. package/node_modules/@ktx/context/dist/project/config.d.ts +16 -0
  77. package/node_modules/@ktx/context/dist/project/driver-schemas.d.ts +8 -0
  78. package/node_modules/@ktx/context/dist/project/driver-schemas.js +4 -0
  79. package/node_modules/@ktx/context/dist/scan/enabled-tables.d.ts +3 -0
  80. package/node_modules/@ktx/context/dist/scan/enabled-tables.js +15 -0
  81. package/node_modules/@ktx/context/dist/scan/local-scan.d.ts +2 -4
  82. package/node_modules/@ktx/context/dist/scan/local-scan.js +2 -15
  83. package/package.json +1 -1
  84. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/post-processor.d.ts +0 -4
  85. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/post-processor.js +0 -38
  86. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/post-processor.test.js +0 -63
  87. /package/{node_modules/@ktx/context/dist/ingest/adapters/historic-sql/post-processor.test.d.ts → dist/cli-project.test.d.ts} +0 -0
@@ -1,38 +0,0 @@
1
- import { createSimpleGit } from '../../../core/git-env.js';
2
- import { projectHistoricSqlEvidence } from './projection.js';
3
- async function commitProjectionChanges(workdir) {
4
- const git = createSimpleGit(workdir);
5
- if (!(await git.checkIsRepo().catch(() => false))) {
6
- return;
7
- }
8
- const status = await git.status();
9
- const paths = status.files
10
- .map((file) => file.path)
11
- .filter((path) => path.startsWith('semantic-layer/') || path.startsWith('wiki/global/historic-sql'));
12
- if (paths.length === 0) {
13
- return;
14
- }
15
- await git.add(paths);
16
- const staged = await git.diff(['--cached', '--name-only']);
17
- if (!staged.trim()) {
18
- return;
19
- }
20
- await git.commit('Project historic SQL evidence', { '--author': 'System User <system@example.com>' });
21
- }
22
- export class HistoricSqlProjectionPostProcessor {
23
- async run(input) {
24
- const projection = await projectHistoricSqlEvidence({
25
- workdir: input.workdir,
26
- connectionId: input.connectionId,
27
- syncId: input.syncId,
28
- runId: input.runId,
29
- });
30
- await commitProjectionChanges(input.workdir);
31
- return {
32
- result: projection,
33
- warnings: projection.warnings,
34
- errors: [],
35
- touchedSources: projection.touchedSources,
36
- };
37
- }
38
- }
@@ -1,63 +0,0 @@
1
- import { mkdir, mkdtemp, readFile, writeFile } from 'node:fs/promises';
2
- import { tmpdir } from 'node:os';
3
- import { join } from 'node:path';
4
- import YAML from 'yaml';
5
- import { describe, expect, it } from 'vitest';
6
- import { HistoricSqlProjectionPostProcessor } from './post-processor.js';
7
- async function tempWorkdir() {
8
- return mkdtemp(join(tmpdir(), 'historic-sql-post-processor-'));
9
- }
10
- async function writeJson(root, relPath, value) {
11
- const target = join(root, relPath);
12
- await mkdir(join(target, '..'), { recursive: true });
13
- await writeFile(target, `${JSON.stringify(value, null, 2)}\n`, 'utf-8');
14
- }
15
- describe('HistoricSqlProjectionPostProcessor', () => {
16
- it('projects current run evidence before the ingest squash commit', async () => {
17
- const workdir = await tempWorkdir();
18
- await mkdir(join(workdir, 'semantic-layer/warehouse/_schema'), { recursive: true });
19
- await writeFile(join(workdir, 'semantic-layer/warehouse/_schema/public.yaml'), YAML.stringify({ tables: { orders: { table: 'public.orders', columns: [{ name: 'id', type: 'string' }] } } }), 'utf-8');
20
- await writeJson(workdir, 'raw-sources/warehouse/historic-sql/sync-1/manifest.json', {
21
- source: 'historic-sql',
22
- connectionId: 'warehouse',
23
- dialect: 'postgres',
24
- fetchedAt: '2026-05-11T00:00:00.000Z',
25
- windowStart: '2026-02-10T00:00:00.000Z',
26
- windowEnd: '2026-05-11T00:00:00.000Z',
27
- snapshotRowCount: 1,
28
- touchedTableCount: 1,
29
- parseFailures: 0,
30
- warnings: [],
31
- probeWarnings: [],
32
- staleArchiveAfterDays: 90,
33
- });
34
- await writeJson(workdir, 'raw-sources/warehouse/historic-sql/sync-1/tables/public.orders.json', { table: 'public.orders' });
35
- await writeJson(workdir, '.ktx/ingest-evidence/historic-sql/run-1/orders.json', {
36
- kind: 'table_usage',
37
- connectionId: 'warehouse',
38
- table: 'public.orders',
39
- rawPath: 'tables/public.orders.json',
40
- usage: {
41
- narrative: 'Orders are repeatedly queried by lifecycle status.',
42
- frequencyTier: 'high',
43
- commonFilters: ['status'],
44
- commonJoins: [],
45
- staleSince: null,
46
- },
47
- });
48
- const result = await new HistoricSqlProjectionPostProcessor().run({
49
- connectionId: 'warehouse',
50
- sourceKey: 'historic-sql',
51
- syncId: 'sync-1',
52
- jobId: 'job-1',
53
- runId: 'run-1',
54
- workdir,
55
- parseArtifacts: null,
56
- });
57
- expect(result.errors).toEqual([]);
58
- expect(result.warnings).toEqual([]);
59
- expect(result.touchedSources).toEqual([{ connectionId: 'warehouse', sourceName: 'orders' }]);
60
- expect(result.result).toMatchObject({ tableUsageMerged: 1 });
61
- await expect(readFile(join(workdir, 'semantic-layer/warehouse/_schema/public.yaml'), 'utf-8')).resolves.toContain('Orders are repeatedly queried by lifecycle status.');
62
- });
63
- });