@askdkc/kiokuko 0.2.6 → 0.2.7
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.
- package/README.ja.md +31 -0
- package/README.ko.md +31 -0
- package/README.md +32 -0
- package/README.zh-CN.md +29 -0
- package/dist/akinator/agent-task.d.ts +3 -0
- package/dist/akinator/agent-task.d.ts.map +1 -1
- package/dist/akinator/agent-task.js +38 -4
- package/dist/akinator/agent-task.js.map +1 -1
- package/dist/cli.d.ts +4 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +89 -8
- package/dist/cli.js.map +1 -1
- package/dist/commands/doctor.d.ts +4 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +43 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/embeddings.d.ts +19 -0
- package/dist/commands/embeddings.d.ts.map +1 -0
- package/dist/commands/embeddings.js +159 -0
- package/dist/commands/embeddings.js.map +1 -0
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +7 -0
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/use.d.ts.map +1 -1
- package/dist/commands/use.js +22 -8
- package/dist/commands/use.js.map +1 -1
- package/dist/context/broker.d.ts +3 -1
- package/dist/context/broker.d.ts.map +1 -1
- package/dist/context/broker.js +11 -7
- package/dist/context/broker.js.map +1 -1
- package/dist/context/delivery.d.ts.map +1 -1
- package/dist/context/delivery.js +5 -3
- package/dist/context/delivery.js.map +1 -1
- package/dist/context/ranking.d.ts +1 -1
- package/dist/context/ranking.d.ts.map +1 -1
- package/dist/context/ranking.js +1 -0
- package/dist/context/ranking.js.map +1 -1
- package/dist/context/scoped-broker.d.ts +4 -3
- package/dist/context/scoped-broker.d.ts.map +1 -1
- package/dist/context/scoped-broker.js +45 -7
- package/dist/context/scoped-broker.js.map +1 -1
- package/dist/context/selection-state.d.ts +12 -0
- package/dist/context/selection-state.d.ts.map +1 -1
- package/dist/context/selection-state.js +117 -7
- package/dist/context/selection-state.js.map +1 -1
- package/dist/db/capabilities.d.ts +8 -0
- package/dist/db/capabilities.d.ts.map +1 -1
- package/dist/db/capabilities.js +14 -0
- package/dist/db/capabilities.js.map +1 -1
- package/dist/db/connection.d.ts +7 -0
- package/dist/db/connection.d.ts.map +1 -1
- package/dist/db/connection.js +56 -0
- package/dist/db/connection.js.map +1 -1
- package/dist/db/migrate.d.ts.map +1 -1
- package/dist/db/migrate.js +3 -0
- package/dist/db/migrate.js.map +1 -1
- package/dist/embedding/backend.d.ts +27 -0
- package/dist/embedding/backend.d.ts.map +1 -0
- package/dist/embedding/backend.js +51 -0
- package/dist/embedding/backend.js.map +1 -0
- package/dist/embedding/config.d.ts +7 -0
- package/dist/embedding/config.d.ts.map +1 -0
- package/dist/embedding/config.js +125 -0
- package/dist/embedding/config.js.map +1 -0
- package/dist/embedding/diagnostics.d.ts +34 -0
- package/dist/embedding/diagnostics.d.ts.map +1 -0
- package/dist/embedding/diagnostics.js +248 -0
- package/dist/embedding/diagnostics.js.map +1 -0
- package/dist/embedding/document.d.ts +15 -0
- package/dist/embedding/document.d.ts.map +1 -0
- package/dist/embedding/document.js +102 -0
- package/dist/embedding/document.js.map +1 -0
- package/dist/embedding/javascript-backend.d.ts +11 -0
- package/dist/embedding/javascript-backend.d.ts.map +1 -0
- package/dist/embedding/javascript-backend.js +164 -0
- package/dist/embedding/javascript-backend.js.map +1 -0
- package/dist/embedding/jobs.d.ts +67 -0
- package/dist/embedding/jobs.d.ts.map +1 -0
- package/dist/embedding/jobs.js +259 -0
- package/dist/embedding/jobs.js.map +1 -0
- package/dist/embedding/openai-compatible-provider.d.ts +24 -0
- package/dist/embedding/openai-compatible-provider.d.ts.map +1 -0
- package/dist/embedding/openai-compatible-provider.js +330 -0
- package/dist/embedding/openai-compatible-provider.js.map +1 -0
- package/dist/embedding/profile.d.ts +6 -0
- package/dist/embedding/profile.d.ts.map +1 -0
- package/dist/embedding/profile.js +31 -0
- package/dist/embedding/profile.js.map +1 -0
- package/dist/embedding/provider.d.ts +13 -0
- package/dist/embedding/provider.d.ts.map +1 -0
- package/dist/embedding/provider.js +17 -0
- package/dist/embedding/provider.js.map +1 -0
- package/dist/embedding/query-cache.d.ts +39 -0
- package/dist/embedding/query-cache.d.ts.map +1 -0
- package/dist/embedding/query-cache.js +160 -0
- package/dist/embedding/query-cache.js.map +1 -0
- package/dist/embedding/runtime.d.ts +13 -0
- package/dist/embedding/runtime.d.ts.map +1 -0
- package/dist/embedding/runtime.js +373 -0
- package/dist/embedding/runtime.js.map +1 -0
- package/dist/embedding/sqlite-vec-backend.d.ts +9 -0
- package/dist/embedding/sqlite-vec-backend.d.ts.map +1 -0
- package/dist/embedding/sqlite-vec-backend.js +106 -0
- package/dist/embedding/sqlite-vec-backend.js.map +1 -0
- package/dist/embedding/sqlite-vec-loader.d.ts +17 -0
- package/dist/embedding/sqlite-vec-loader.d.ts.map +1 -0
- package/dist/embedding/sqlite-vec-loader.js +51 -0
- package/dist/embedding/sqlite-vec-loader.js.map +1 -0
- package/dist/embedding/store.d.ts +64 -0
- package/dist/embedding/store.d.ts.map +1 -0
- package/dist/embedding/store.js +377 -0
- package/dist/embedding/store.js.map +1 -0
- package/dist/embedding/types.d.ts +97 -0
- package/dist/embedding/types.d.ts.map +1 -0
- package/dist/embedding/types.js +2 -0
- package/dist/embedding/types.js.map +1 -0
- package/dist/embedding/vector.d.ts +9 -0
- package/dist/embedding/vector.d.ts.map +1 -0
- package/dist/embedding/vector.js +90 -0
- package/dist/embedding/vector.js.map +1 -0
- package/dist/embedding/worker.d.ts +23 -0
- package/dist/embedding/worker.d.ts.map +1 -0
- package/dist/embedding/worker.js +84 -0
- package/dist/embedding/worker.js.map +1 -0
- package/dist/enno-oduno/schemas.d.ts +2 -2
- package/dist/ledger/checkpoint-contract.d.ts +2 -2
- package/dist/mcp/bounded-stdio-transport.d.ts +12 -2
- package/dist/mcp/bounded-stdio-transport.d.ts.map +1 -1
- package/dist/mcp/bounded-stdio-transport.js +103 -4
- package/dist/mcp/bounded-stdio-transport.js.map +1 -1
- package/dist/mcp/runtime-owner.d.ts +27 -0
- package/dist/mcp/runtime-owner.d.ts.map +1 -0
- package/dist/mcp/runtime-owner.js +130 -0
- package/dist/mcp/runtime-owner.js.map +1 -0
- package/dist/mcp/server.d.ts +9 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +38 -5
- package/dist/mcp/server.js.map +1 -1
- package/dist/memory/checkpoint-contract.d.ts +3 -3
- package/dist/memory/entries.d.ts.map +1 -1
- package/dist/memory/entries.js +13 -0
- package/dist/memory/entries.js.map +1 -1
- package/dist/memory/federated-retrieval.d.ts +3 -2
- package/dist/memory/federated-retrieval.d.ts.map +1 -1
- package/dist/memory/federated-retrieval.js +112 -31
- package/dist/memory/federated-retrieval.js.map +1 -1
- package/dist/memory/hybrid-retrieval.d.ts +9 -2
- package/dist/memory/hybrid-retrieval.d.ts.map +1 -1
- package/dist/memory/hybrid-retrieval.js +60 -13
- package/dist/memory/hybrid-retrieval.js.map +1 -1
- package/dist/memory/retrieval.d.ts +4 -3
- package/dist/memory/retrieval.d.ts.map +1 -1
- package/dist/memory/retrieval.js +6 -6
- package/dist/memory/retrieval.js.map +1 -1
- package/dist/memory/scoped-memory.d.ts +2 -1
- package/dist/memory/scoped-memory.d.ts.map +1 -1
- package/dist/memory/scoped-memory.js +2 -2
- package/dist/memory/scoped-memory.js.map +1 -1
- package/dist/server/agent-application.js +1 -1
- package/dist/server/agent-application.js.map +1 -1
- package/dist/server/http.d.ts +17 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +76 -13
- package/dist/server/http.js.map +1 -1
- package/migrations/021_semantic_embeddings.sql +122 -0
- package/migrations/down/021_semantic_embeddings.sql +17 -0
- package/package.json +7 -1
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
CREATE TABLE embedding_profiles (
|
|
2
|
+
profile_id TEXT PRIMARY KEY
|
|
3
|
+
CHECK (length(profile_id) = 64 AND profile_id NOT GLOB '*[^0-9a-f]*'),
|
|
4
|
+
provider_kind TEXT NOT NULL
|
|
5
|
+
CHECK (provider_kind IN ('openai-compatible')),
|
|
6
|
+
endpoint_fingerprint TEXT NOT NULL
|
|
7
|
+
CHECK (length(endpoint_fingerprint) = 64
|
|
8
|
+
AND endpoint_fingerprint NOT GLOB '*[^0-9a-f]*'),
|
|
9
|
+
model TEXT NOT NULL,
|
|
10
|
+
dimensions INTEGER NOT NULL CHECK (dimensions BETWEEN 2 AND 8192),
|
|
11
|
+
distance_metric TEXT NOT NULL CHECK (distance_metric = 'cosine'),
|
|
12
|
+
distance_ceiling REAL NOT NULL
|
|
13
|
+
CHECK (distance_ceiling > 0.0 AND distance_ceiling < 2.0),
|
|
14
|
+
document_template_version INTEGER NOT NULL
|
|
15
|
+
CHECK (document_template_version > 0),
|
|
16
|
+
query_template_version INTEGER NOT NULL
|
|
17
|
+
CHECK (query_template_version > 0),
|
|
18
|
+
created_at TEXT NOT NULL
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
CREATE TRIGGER embedding_profiles_immutable_update
|
|
22
|
+
BEFORE UPDATE ON embedding_profiles
|
|
23
|
+
BEGIN
|
|
24
|
+
SELECT RAISE(ABORT, 'embedding_profiles are immutable');
|
|
25
|
+
END;
|
|
26
|
+
|
|
27
|
+
CREATE TABLE embedding_runtime (
|
|
28
|
+
singleton INTEGER PRIMARY KEY CHECK (singleton = 1),
|
|
29
|
+
active_profile_id TEXT REFERENCES embedding_profiles(profile_id),
|
|
30
|
+
generation INTEGER NOT NULL CHECK (generation > 0),
|
|
31
|
+
activated_at TEXT
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
INSERT INTO embedding_runtime (
|
|
35
|
+
singleton, active_profile_id, generation, activated_at
|
|
36
|
+
) VALUES (1, NULL, 1, NULL);
|
|
37
|
+
|
|
38
|
+
CREATE TABLE entry_embeddings (
|
|
39
|
+
entry_id TEXT NOT NULL,
|
|
40
|
+
profile_id TEXT NOT NULL
|
|
41
|
+
REFERENCES embedding_profiles(profile_id) ON DELETE CASCADE,
|
|
42
|
+
revision INTEGER NOT NULL CHECK (revision > 0),
|
|
43
|
+
content_hash TEXT NOT NULL,
|
|
44
|
+
document_hash TEXT NOT NULL
|
|
45
|
+
CHECK (length(document_hash) = 64
|
|
46
|
+
AND document_hash NOT GLOB '*[^0-9a-f]*'),
|
|
47
|
+
dimensions INTEGER NOT NULL CHECK (dimensions BETWEEN 2 AND 8192),
|
|
48
|
+
embedding BLOB NOT NULL,
|
|
49
|
+
vector_hash TEXT NOT NULL
|
|
50
|
+
CHECK (length(vector_hash) = 64
|
|
51
|
+
AND vector_hash NOT GLOB '*[^0-9a-f]*'),
|
|
52
|
+
created_at TEXT NOT NULL,
|
|
53
|
+
PRIMARY KEY (entry_id, profile_id),
|
|
54
|
+
FOREIGN KEY (entry_id, revision)
|
|
55
|
+
REFERENCES entry_revisions(entry_id, revision)
|
|
56
|
+
ON DELETE CASCADE,
|
|
57
|
+
CHECK (length(embedding) = dimensions * 4)
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
CREATE INDEX idx_entry_embeddings_profile_revision
|
|
61
|
+
ON entry_embeddings(profile_id, entry_id, revision);
|
|
62
|
+
|
|
63
|
+
CREATE TABLE embedding_jobs (
|
|
64
|
+
entry_id TEXT NOT NULL,
|
|
65
|
+
profile_id TEXT NOT NULL
|
|
66
|
+
REFERENCES embedding_profiles(profile_id) ON DELETE CASCADE,
|
|
67
|
+
revision INTEGER NOT NULL CHECK (revision > 0),
|
|
68
|
+
content_hash TEXT NOT NULL,
|
|
69
|
+
state TEXT NOT NULL CHECK (
|
|
70
|
+
state IN ('pending', 'leased', 'failed', 'blocked')
|
|
71
|
+
),
|
|
72
|
+
attempts INTEGER NOT NULL DEFAULT 0 CHECK (attempts >= 0),
|
|
73
|
+
available_at TEXT NOT NULL,
|
|
74
|
+
lease_id TEXT,
|
|
75
|
+
lease_expires_at TEXT,
|
|
76
|
+
error_code TEXT CHECK (
|
|
77
|
+
error_code IS NULL OR error_code IN (
|
|
78
|
+
'timeout',
|
|
79
|
+
'rate_limited',
|
|
80
|
+
'provider_unavailable',
|
|
81
|
+
'invalid_response',
|
|
82
|
+
'dimension_mismatch',
|
|
83
|
+
'secret_blocked',
|
|
84
|
+
'profile_changed',
|
|
85
|
+
'entry_changed'
|
|
86
|
+
)
|
|
87
|
+
),
|
|
88
|
+
created_at TEXT NOT NULL,
|
|
89
|
+
updated_at TEXT NOT NULL,
|
|
90
|
+
PRIMARY KEY (entry_id, profile_id),
|
|
91
|
+
FOREIGN KEY (entry_id, revision)
|
|
92
|
+
REFERENCES entry_revisions(entry_id, revision)
|
|
93
|
+
ON DELETE CASCADE,
|
|
94
|
+
CHECK (
|
|
95
|
+
(state = 'leased' AND lease_id IS NOT NULL AND lease_expires_at IS NOT NULL)
|
|
96
|
+
OR
|
|
97
|
+
(state <> 'leased' AND lease_id IS NULL AND lease_expires_at IS NULL)
|
|
98
|
+
)
|
|
99
|
+
);
|
|
100
|
+
|
|
101
|
+
CREATE INDEX idx_embedding_jobs_claim
|
|
102
|
+
ON embedding_jobs(profile_id, state, available_at, entry_id);
|
|
103
|
+
|
|
104
|
+
CREATE TABLE query_embeddings (
|
|
105
|
+
profile_id TEXT NOT NULL
|
|
106
|
+
REFERENCES embedding_profiles(profile_id) ON DELETE CASCADE,
|
|
107
|
+
query_hash TEXT NOT NULL
|
|
108
|
+
CHECK (length(query_hash) = 64
|
|
109
|
+
AND query_hash NOT GLOB '*[^0-9a-f]*'),
|
|
110
|
+
dimensions INTEGER NOT NULL CHECK (dimensions BETWEEN 2 AND 8192),
|
|
111
|
+
embedding BLOB NOT NULL,
|
|
112
|
+
vector_hash TEXT NOT NULL
|
|
113
|
+
CHECK (length(vector_hash) = 64
|
|
114
|
+
AND vector_hash NOT GLOB '*[^0-9a-f]*'),
|
|
115
|
+
created_at TEXT NOT NULL,
|
|
116
|
+
last_used_at TEXT NOT NULL,
|
|
117
|
+
PRIMARY KEY (profile_id, query_hash),
|
|
118
|
+
CHECK (length(embedding) = dimensions * 4)
|
|
119
|
+
);
|
|
120
|
+
|
|
121
|
+
CREATE INDEX idx_query_embeddings_lru
|
|
122
|
+
ON query_embeddings(profile_id, last_used_at, query_hash);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
-- Manual rollback for migration 021. Stop every Kiokuko process and make a
|
|
2
|
+
-- full SQLite backup before running this script.
|
|
3
|
+
BEGIN IMMEDIATE;
|
|
4
|
+
|
|
5
|
+
DROP INDEX idx_query_embeddings_lru;
|
|
6
|
+
DROP TABLE query_embeddings;
|
|
7
|
+
DROP INDEX idx_embedding_jobs_claim;
|
|
8
|
+
DROP TABLE embedding_jobs;
|
|
9
|
+
DROP INDEX idx_entry_embeddings_profile_revision;
|
|
10
|
+
DROP TABLE entry_embeddings;
|
|
11
|
+
DROP TABLE embedding_runtime;
|
|
12
|
+
DROP TRIGGER embedding_profiles_immutable_update;
|
|
13
|
+
DROP TABLE embedding_profiles;
|
|
14
|
+
|
|
15
|
+
DELETE FROM schema_migrations
|
|
16
|
+
WHERE version = 21 AND name = '021_semantic_embeddings.sql';
|
|
17
|
+
COMMIT;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@askdkc/kiokuko",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.7",
|
|
4
4
|
"description": "Model-agnostic external memory for AI coding agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -31,6 +31,9 @@
|
|
|
31
31
|
"test": "node scripts/run-tests.mjs tests",
|
|
32
32
|
"test:unit": "node scripts/run-tests.mjs tests/unit",
|
|
33
33
|
"test:integration": "node scripts/run-tests.mjs tests/integration",
|
|
34
|
+
"test:sqlite-vec": "node --import tsx tests/ci/sqlite-vec-package-smoke.ts",
|
|
35
|
+
"test:evaluation": "npm run build && node scripts/run-retrieval-evaluation.mjs",
|
|
36
|
+
"test:benchmark": "npm run build && node scripts/run-retrieval-benchmark.mjs",
|
|
34
37
|
"test:e2e:codex": "npm run build && node scripts/run-enno-agent-e2e.mjs codex",
|
|
35
38
|
"test:e2e:opencode": "npm run build && node scripts/run-enno-agent-e2e.mjs opencode",
|
|
36
39
|
"test:e2e:claude": "npm run build && node scripts/run-enno-agent-e2e.mjs claude",
|
|
@@ -49,6 +52,9 @@
|
|
|
49
52
|
"yaml": "^2.9.0",
|
|
50
53
|
"zod": "^4.4.3"
|
|
51
54
|
},
|
|
55
|
+
"optionalDependencies": {
|
|
56
|
+
"sqlite-vec": "0.1.9"
|
|
57
|
+
},
|
|
52
58
|
"devDependencies": {
|
|
53
59
|
"@types/node": "^24.0.0",
|
|
54
60
|
"@types/semver": "^7.8.0",
|