@askdkc/kiokuko 0.2.6 → 0.2.8
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 +18 -0
- package/README.ko.md +17 -0
- package/README.md +23 -0
- package/README.zh-CN.md +16 -0
- package/dist/akinator/agent-task.d.ts +5 -0
- package/dist/akinator/agent-task.d.ts.map +1 -1
- package/dist/akinator/agent-task.js +98 -28
- 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 +94 -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 +46 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/embeddings.d.ts +26 -0
- package/dist/commands/embeddings.d.ts.map +1 -0
- package/dist/commands/embeddings.js +190 -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/config/paths.d.ts +5 -0
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +34 -0
- package/dist/config/paths.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 +67 -0
- package/dist/embedding/backend.js.map +1 -0
- package/dist/embedding/config.d.ts +10 -0
- package/dist/embedding/config.d.ts.map +1 -0
- package/dist/embedding/config.js +142 -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 +263 -0
- package/dist/embedding/diagnostics.js.map +1 -0
- package/dist/embedding/document.d.ts +20 -0
- package/dist/embedding/document.d.ts.map +1 -0
- package/dist/embedding/document.js +122 -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/local-model-loader.d.ts +24 -0
- package/dist/embedding/local-model-loader.d.ts.map +1 -0
- package/dist/embedding/local-model-loader.js +64 -0
- package/dist/embedding/local-model-loader.js.map +1 -0
- package/dist/embedding/local-transformers-provider.d.ts +17 -0
- package/dist/embedding/local-transformers-provider.d.ts.map +1 -0
- package/dist/embedding/local-transformers-provider.js +54 -0
- package/dist/embedding/local-transformers-provider.js.map +1 -0
- package/dist/embedding/model-download.d.ts +32 -0
- package/dist/embedding/model-download.d.ts.map +1 -0
- package/dist/embedding/model-download.js +41 -0
- package/dist/embedding/model-download.js.map +1 -0
- package/dist/embedding/model-installation.d.ts +17 -0
- package/dist/embedding/model-installation.d.ts.map +1 -0
- package/dist/embedding/model-installation.js +71 -0
- package/dist/embedding/model-installation.js.map +1 -0
- package/dist/embedding/model-manifest.d.ts +18 -0
- package/dist/embedding/model-manifest.d.ts.map +1 -0
- package/dist/embedding/model-manifest.js +86 -0
- package/dist/embedding/model-manifest.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/presets/local-small.d.ts +8 -0
- package/dist/embedding/presets/local-small.d.ts.map +1 -0
- package/dist/embedding/presets/local-small.js +67 -0
- package/dist/embedding/presets/local-small.js.map +1 -0
- package/dist/embedding/presets/manifest.d.ts +27 -0
- package/dist/embedding/presets/manifest.d.ts.map +1 -0
- package/dist/embedding/presets/manifest.js +5 -0
- package/dist/embedding/presets/manifest.js.map +1 -0
- package/dist/embedding/profile.d.ts +10 -0
- package/dist/embedding/profile.d.ts.map +1 -0
- package/dist/embedding/profile.js +67 -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 +45 -0
- package/dist/embedding/query-cache.d.ts.map +1 -0
- package/dist/embedding/query-cache.js +181 -0
- package/dist/embedding/query-cache.js.map +1 -0
- package/dist/embedding/runtime.d.ts +14 -0
- package/dist/embedding/runtime.d.ts.map +1 -0
- package/dist/embedding/runtime.js +407 -0
- package/dist/embedding/runtime.js.map +1 -0
- package/dist/embedding/settings.d.ts +6 -0
- package/dist/embedding/settings.d.ts.map +1 -0
- package/dist/embedding/settings.js +69 -0
- package/dist/embedding/settings.js.map +1 -0
- package/dist/embedding/setup-lock.d.ts +7 -0
- package/dist/embedding/setup-lock.d.ts.map +1 -0
- package/dist/embedding/setup-lock.js +35 -0
- package/dist/embedding/setup-lock.js.map +1 -0
- package/dist/embedding/setup-service.d.ts +53 -0
- package/dist/embedding/setup-service.d.ts.map +1 -0
- package/dist/embedding/setup-service.js +184 -0
- package/dist/embedding/setup-service.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 +66 -0
- package/dist/embedding/store.d.ts.map +1 -0
- package/dist/embedding/store.js +490 -0
- package/dist/embedding/store.js.map +1 -0
- package/dist/embedding/types.d.ts +126 -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 +3 -0
- package/dist/mcp/bounded-stdio-transport.d.ts.map +1 -1
- package/dist/mcp/bounded-stdio-transport.js +15 -3
- package/dist/mcp/bounded-stdio-transport.js.map +1 -1
- package/dist/mcp/request-deadline.d.ts +51 -0
- package/dist/mcp/request-deadline.d.ts.map +1 -0
- package/dist/mcp/request-deadline.js +155 -0
- package/dist/mcp/request-deadline.js.map +1 -0
- 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 +129 -0
- package/dist/mcp/runtime-owner.js.map +1 -0
- package/dist/mcp/server.d.ts +11 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +83 -22
- 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 +3 -2
- package/dist/memory/scoped-memory.d.ts.map +1 -1
- package/dist/memory/scoped-memory.js +7 -3
- 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 +79 -13
- package/dist/server/http.js.map +1 -1
- package/dist/skills/discovery-service.d.ts.map +1 -1
- package/dist/skills/discovery-service.js +10 -8
- package/dist/skills/discovery-service.js.map +1 -1
- package/dist/skills/find.d.ts +1 -0
- package/dist/skills/find.d.ts.map +1 -1
- package/dist/skills/find.js +1 -0
- package/dist/skills/find.js.map +1 -1
- package/dist/skills/materialization-authority.d.ts +1 -1
- package/dist/skills/materialization-authority.d.ts.map +1 -1
- package/dist/skills/materialization-authority.js +2 -2
- package/dist/skills/materialization-authority.js.map +1 -1
- package/dist/skills/providers/skills-sh-compat.d.ts.map +1 -1
- package/dist/skills/providers/skills-sh-compat.js +4 -2
- package/dist/skills/providers/skills-sh-compat.js.map +1 -1
- package/dist/skills/providers/skills-sh-v1.d.ts +2 -2
- package/dist/skills/providers/skills-sh-v1.d.ts.map +1 -1
- package/dist/skills/providers/skills-sh-v1.js +22 -4
- package/dist/skills/providers/skills-sh-v1.js.map +1 -1
- package/dist/skills/source/github-fetcher.d.ts.map +1 -1
- package/dist/skills/source/github-fetcher.js +8 -4
- package/dist/skills/source/github-fetcher.js.map +1 -1
- package/dist/skills/types.d.ts +3 -2
- package/dist/skills/types.d.ts.map +1 -1
- package/docs/agent-file.md +72 -0
- package/docs/agent-gateway.md +104 -0
- package/docs/architecture.md +12 -0
- package/docs/cli-contract.md +13 -0
- package/docs/client-compatibility.md +298 -0
- package/docs/database.md +11 -0
- package/docs/execution-ledger.md +89 -0
- package/docs/release-notes-0.1.18.md +103 -0
- package/docs/retrieval-evaluation.md +10 -0
- package/docs/security.md +11 -0
- package/docs/sqlite-driver-adr.md +8 -0
- package/migrations/021_semantic_embeddings.sql +122 -0
- package/migrations/022_embedding_setup_v2.sql +236 -0
- package/migrations/down/021_semantic_embeddings.sql +17 -0
- package/migrations/down/022_embedding_setup_v2.sql +133 -0
- package/package.json +10 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/embedding/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/embedding/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const MIN_VECTOR_DIMENSIONS = 2;
|
|
2
|
+
export declare const MAX_VECTOR_DIMENSIONS = 8192;
|
|
3
|
+
export declare function normalizeVector(input: Float32Array | readonly number[], expectedDimensions?: number): Float32Array;
|
|
4
|
+
export declare function encodeVector(input: Float32Array | readonly number[], expectedDimensions?: number): Uint8Array;
|
|
5
|
+
export declare function decodeVector(blob: unknown, dimensions: number, expectedHash?: string): Float32Array;
|
|
6
|
+
export declare function hashVectorBytes(bytes: Uint8Array): string;
|
|
7
|
+
export declare function hashVector(input: Float32Array | readonly number[]): string;
|
|
8
|
+
export declare function cosineDistance(left: Float32Array, right: Float32Array): number;
|
|
9
|
+
//# sourceMappingURL=vector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../src/embedding/vector.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,qBAAqB,OAAQ,CAAC;AAyB3C,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,YAAY,CAGlH;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,UAAU,CAQ7G;AASD,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,YAAY,CAWnG;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEzD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,GAAG,MAAM,CAE1E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,CAiB9E"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { KiokukoError } from '../errors.js';
|
|
3
|
+
export const MIN_VECTOR_DIMENSIONS = 2;
|
|
4
|
+
export const MAX_VECTOR_DIMENSIONS = 8_192;
|
|
5
|
+
function invalid(message) {
|
|
6
|
+
throw new KiokukoError('VALIDATION_ERROR', message);
|
|
7
|
+
}
|
|
8
|
+
function dimensionsValue(dimensions) {
|
|
9
|
+
if (!Number.isSafeInteger(dimensions) || dimensions < MIN_VECTOR_DIMENSIONS || dimensions > MAX_VECTOR_DIMENSIONS) {
|
|
10
|
+
invalid('Vector dimensions are invalid');
|
|
11
|
+
}
|
|
12
|
+
return dimensions;
|
|
13
|
+
}
|
|
14
|
+
function validateFiniteVector(vector, expectedDimensions) {
|
|
15
|
+
const dimensions = dimensionsValue(expectedDimensions ?? vector.length);
|
|
16
|
+
if (vector.length !== dimensions)
|
|
17
|
+
invalid('Vector dimensions do not match');
|
|
18
|
+
let normSquared = 0;
|
|
19
|
+
for (const value of vector) {
|
|
20
|
+
if (!Number.isFinite(value))
|
|
21
|
+
invalid('Vector contains a non-finite value');
|
|
22
|
+
normSquared += value * value;
|
|
23
|
+
}
|
|
24
|
+
if (!Number.isFinite(normSquared) || normSquared === 0)
|
|
25
|
+
invalid('Vector norm must be non-zero');
|
|
26
|
+
return vector;
|
|
27
|
+
}
|
|
28
|
+
export function normalizeVector(input, expectedDimensions) {
|
|
29
|
+
const vector = input instanceof Float32Array ? new Float32Array(input) : new Float32Array(input);
|
|
30
|
+
return validateFiniteVector(vector, expectedDimensions);
|
|
31
|
+
}
|
|
32
|
+
export function encodeVector(input, expectedDimensions) {
|
|
33
|
+
const vector = normalizeVector(input, expectedDimensions);
|
|
34
|
+
const bytes = new Uint8Array(vector.byteLength);
|
|
35
|
+
const view = new DataView(bytes.buffer);
|
|
36
|
+
for (let index = 0; index < vector.length; index += 1) {
|
|
37
|
+
view.setFloat32(index * 4, vector[index], true);
|
|
38
|
+
}
|
|
39
|
+
return bytes;
|
|
40
|
+
}
|
|
41
|
+
function blobBytes(blob) {
|
|
42
|
+
if (blob instanceof Uint8Array)
|
|
43
|
+
return new Uint8Array(blob);
|
|
44
|
+
if (ArrayBuffer.isView(blob))
|
|
45
|
+
return new Uint8Array(blob.buffer.slice(blob.byteOffset, blob.byteOffset + blob.byteLength));
|
|
46
|
+
if (blob instanceof ArrayBuffer)
|
|
47
|
+
return new Uint8Array(blob.slice(0));
|
|
48
|
+
invalid('Vector BLOB is invalid');
|
|
49
|
+
}
|
|
50
|
+
export function decodeVector(blob, dimensions, expectedHash) {
|
|
51
|
+
const validDimensions = dimensionsValue(dimensions);
|
|
52
|
+
const bytes = blobBytes(blob);
|
|
53
|
+
if (bytes.byteLength !== validDimensions * 4)
|
|
54
|
+
invalid('Vector BLOB length does not match dimensions');
|
|
55
|
+
if (expectedHash !== undefined && hashVectorBytes(bytes) !== expectedHash) {
|
|
56
|
+
throw new KiokukoError('INTEGRITY_ERROR', 'Vector hash does not match its BLOB');
|
|
57
|
+
}
|
|
58
|
+
const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
59
|
+
const vector = new Float32Array(validDimensions);
|
|
60
|
+
for (let index = 0; index < validDimensions; index += 1)
|
|
61
|
+
vector[index] = view.getFloat32(index * 4, true);
|
|
62
|
+
return validateFiniteVector(vector, validDimensions);
|
|
63
|
+
}
|
|
64
|
+
export function hashVectorBytes(bytes) {
|
|
65
|
+
return createHash('sha256').update(bytes).digest('hex');
|
|
66
|
+
}
|
|
67
|
+
export function hashVector(input) {
|
|
68
|
+
return hashVectorBytes(encodeVector(input));
|
|
69
|
+
}
|
|
70
|
+
export function cosineDistance(left, right) {
|
|
71
|
+
if (left.length !== right.length)
|
|
72
|
+
invalid('Vectors must have matching dimensions');
|
|
73
|
+
const first = validateFiniteVector(left);
|
|
74
|
+
const second = validateFiniteVector(right, first.length);
|
|
75
|
+
let dot = 0;
|
|
76
|
+
let leftNorm = 0;
|
|
77
|
+
let rightNorm = 0;
|
|
78
|
+
for (let index = 0; index < first.length; index += 1) {
|
|
79
|
+
const leftValue = first[index];
|
|
80
|
+
const rightValue = second[index];
|
|
81
|
+
dot += leftValue * rightValue;
|
|
82
|
+
leftNorm += leftValue * leftValue;
|
|
83
|
+
rightNorm += rightValue * rightValue;
|
|
84
|
+
}
|
|
85
|
+
const similarity = dot / Math.sqrt(leftNorm * rightNorm);
|
|
86
|
+
if (!Number.isFinite(similarity))
|
|
87
|
+
invalid('Vector cosine distance is invalid');
|
|
88
|
+
return Math.min(2, Math.max(0, 1 - similarity));
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=vector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector.js","sourceRoot":"","sources":["../../src/embedding/vector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { EmbeddingDrainResult, EmbeddingRuntime } from './types.js';
|
|
2
|
+
export declare const DEFAULT_EMBEDDING_WORKER_INTERVAL_MS = 5000;
|
|
3
|
+
export declare const DEFAULT_EMBEDDING_WORKER_MAX_JOBS = 64;
|
|
4
|
+
export declare const DEFAULT_EMBEDDING_WORKER_DEADLINE_MS = 120000;
|
|
5
|
+
export interface EmbeddingWorkerOptions {
|
|
6
|
+
readonly runtime: EmbeddingRuntime;
|
|
7
|
+
readonly intervalMs?: number;
|
|
8
|
+
readonly maxJobs?: number;
|
|
9
|
+
readonly deadlineMs?: number;
|
|
10
|
+
readonly setTimeout?: typeof setTimeout;
|
|
11
|
+
readonly clearTimeout?: typeof clearTimeout;
|
|
12
|
+
readonly onDrain?: (result: EmbeddingDrainResult) => void | PromiseLike<void>;
|
|
13
|
+
readonly onError?: (error: unknown) => void | PromiseLike<void>;
|
|
14
|
+
}
|
|
15
|
+
export interface EmbeddingWorker {
|
|
16
|
+
readonly running: boolean;
|
|
17
|
+
start(): void;
|
|
18
|
+
stop(): void;
|
|
19
|
+
close(): Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
/** Run bounded embedding drains without overlapping provider calls or timers. */
|
|
22
|
+
export declare function createEmbeddingWorker(options: EmbeddingWorkerOptions): EmbeddingWorker;
|
|
23
|
+
//# sourceMappingURL=worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/embedding/worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEzE,eAAO,MAAM,oCAAoC,OAAQ,CAAC;AAC1D,eAAO,MAAM,iCAAiC,KAAK,CAAC;AACpD,eAAO,MAAM,oCAAoC,SAAU,CAAC;AAE5D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9E,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAOD,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CAqEtF"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
export const DEFAULT_EMBEDDING_WORKER_INTERVAL_MS = 5_000;
|
|
2
|
+
export const DEFAULT_EMBEDDING_WORKER_MAX_JOBS = 64;
|
|
3
|
+
export const DEFAULT_EMBEDDING_WORKER_DEADLINE_MS = 120_000;
|
|
4
|
+
function positiveInteger(value, label) {
|
|
5
|
+
if (!Number.isSafeInteger(value) || value < 1)
|
|
6
|
+
throw new TypeError(`${label} must be a positive integer`);
|
|
7
|
+
return value;
|
|
8
|
+
}
|
|
9
|
+
/** Run bounded embedding drains without overlapping provider calls or timers. */
|
|
10
|
+
export function createEmbeddingWorker(options) {
|
|
11
|
+
const intervalMs = positiveInteger(options.intervalMs ?? DEFAULT_EMBEDDING_WORKER_INTERVAL_MS, 'intervalMs');
|
|
12
|
+
const maxJobs = positiveInteger(options.maxJobs ?? DEFAULT_EMBEDDING_WORKER_MAX_JOBS, 'maxJobs');
|
|
13
|
+
const deadlineMs = positiveInteger(options.deadlineMs ?? DEFAULT_EMBEDDING_WORKER_DEADLINE_MS, 'deadlineMs');
|
|
14
|
+
const setTimer = options.setTimeout ?? setTimeout;
|
|
15
|
+
const clearTimer = options.clearTimeout ?? clearTimeout;
|
|
16
|
+
let started = false;
|
|
17
|
+
let closing = false;
|
|
18
|
+
let timer;
|
|
19
|
+
let active;
|
|
20
|
+
const schedule = (delay) => {
|
|
21
|
+
if (!started || closing || timer !== undefined)
|
|
22
|
+
return;
|
|
23
|
+
timer = setTimer(() => {
|
|
24
|
+
timer = undefined;
|
|
25
|
+
void run();
|
|
26
|
+
}, delay);
|
|
27
|
+
};
|
|
28
|
+
const run = async () => {
|
|
29
|
+
if (!started || closing || active !== undefined)
|
|
30
|
+
return;
|
|
31
|
+
const operation = (async () => {
|
|
32
|
+
try {
|
|
33
|
+
const result = await options.runtime.drain({ maxJobs, deadlineMs });
|
|
34
|
+
await options.onDrain?.(result);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
try {
|
|
38
|
+
await options.onError?.(error);
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// A background observer must not create an unhandled rejection.
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
})();
|
|
45
|
+
active = operation;
|
|
46
|
+
try {
|
|
47
|
+
await operation;
|
|
48
|
+
}
|
|
49
|
+
finally {
|
|
50
|
+
if (active === operation)
|
|
51
|
+
active = undefined;
|
|
52
|
+
schedule(intervalMs);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
const stop = () => {
|
|
56
|
+
if (closing)
|
|
57
|
+
return;
|
|
58
|
+
closing = true;
|
|
59
|
+
started = false;
|
|
60
|
+
if (timer !== undefined) {
|
|
61
|
+
clearTimer(timer);
|
|
62
|
+
timer = undefined;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
const worker = {
|
|
66
|
+
get running() {
|
|
67
|
+
return started && !closing;
|
|
68
|
+
},
|
|
69
|
+
start() {
|
|
70
|
+
if (started || closing)
|
|
71
|
+
return;
|
|
72
|
+
started = true;
|
|
73
|
+
schedule(0);
|
|
74
|
+
},
|
|
75
|
+
stop,
|
|
76
|
+
async close() {
|
|
77
|
+
stop();
|
|
78
|
+
await options.runtime.close();
|
|
79
|
+
await active;
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
return Object.freeze(worker);
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/embedding/worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -229,11 +229,11 @@ export declare const advisoryContributionSchemaPublic: z.ZodUnion<readonly [z.Zo
|
|
|
229
229
|
failed: "failed";
|
|
230
230
|
}>;
|
|
231
231
|
reasonCode: z.ZodEnum<{
|
|
232
|
+
invalid_response: "invalid_response";
|
|
232
233
|
unsafe_output: "unsafe_output";
|
|
233
234
|
host_read_only_unavailable: "host_read_only_unavailable";
|
|
234
235
|
host_execution_failed: "host_execution_failed";
|
|
235
236
|
host_timeout: "host_timeout";
|
|
236
|
-
invalid_response: "invalid_response";
|
|
237
237
|
}>;
|
|
238
238
|
}, z.core.$strict>]>;
|
|
239
239
|
export declare const adviceSubmissionSchema: z.ZodObject<{
|
|
@@ -373,11 +373,11 @@ export declare const adviceSubmissionSchema: z.ZodObject<{
|
|
|
373
373
|
failed: "failed";
|
|
374
374
|
}>;
|
|
375
375
|
reasonCode: z.ZodEnum<{
|
|
376
|
+
invalid_response: "invalid_response";
|
|
376
377
|
unsafe_output: "unsafe_output";
|
|
377
378
|
host_read_only_unavailable: "host_read_only_unavailable";
|
|
378
379
|
host_execution_failed: "host_execution_failed";
|
|
379
380
|
host_timeout: "host_timeout";
|
|
380
|
-
invalid_response: "invalid_response";
|
|
381
381
|
}>;
|
|
382
382
|
}, z.core.$strict>]>>;
|
|
383
383
|
}, z.core.$strict>;
|
|
@@ -92,8 +92,8 @@ export declare const checkpointTestEvidenceSchema: z.ZodObject<{
|
|
|
92
92
|
export declare const checkpointVerificationSchema: z.ZodObject<{
|
|
93
93
|
outcome: z.ZodEnum<{
|
|
94
94
|
unknown: "unknown";
|
|
95
|
-
stale: "stale";
|
|
96
95
|
failed: "failed";
|
|
96
|
+
stale: "stale";
|
|
97
97
|
fresh: "fresh";
|
|
98
98
|
}>;
|
|
99
99
|
}, z.core.$strict>;
|
|
@@ -124,8 +124,8 @@ export declare const checkpointEvidenceSchema: z.ZodObject<{
|
|
|
124
124
|
verification: z.ZodOptional<z.ZodObject<{
|
|
125
125
|
outcome: z.ZodEnum<{
|
|
126
126
|
unknown: "unknown";
|
|
127
|
-
stale: "stale";
|
|
128
127
|
failed: "failed";
|
|
128
|
+
stale: "stale";
|
|
129
129
|
fresh: "fresh";
|
|
130
130
|
}>;
|
|
131
131
|
}, z.core.$strict>>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Readable, Writable } from 'node:stream';
|
|
2
2
|
import type { JSONRPCMessage } from '@modelcontextprotocol/sdk/types.js';
|
|
3
3
|
import type { Transport, TransportSendOptions } from '@modelcontextprotocol/sdk/shared/transport.js';
|
|
4
|
+
export { DEFAULT_MCP_REQUEST_TIMEOUT_MS, MAX_MCP_REQUEST_TIMEOUT_MS, MIN_MCP_REQUEST_TIMEOUT_MS, } from './request-deadline.js';
|
|
4
5
|
export declare const MAX_STDIO_JSON_RPC_MESSAGE_BYTES: number;
|
|
5
6
|
export declare class BoundedStdioServerTransport implements Transport {
|
|
6
7
|
private readonly input;
|
|
@@ -12,9 +13,11 @@ export declare class BoundedStdioServerTransport implements Transport {
|
|
|
12
13
|
private buffer;
|
|
13
14
|
private discardingOversizedLine;
|
|
14
15
|
private started;
|
|
16
|
+
private closed;
|
|
15
17
|
constructor(input?: Readable, output?: Writable, maxMessageBytes?: number);
|
|
16
18
|
private readonly onData;
|
|
17
19
|
private readonly onInputError;
|
|
20
|
+
private readonly onInputEnd;
|
|
18
21
|
private writeOversizedMessageError;
|
|
19
22
|
start(): Promise<void>;
|
|
20
23
|
close(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bounded-stdio-transport.d.ts","sourceRoot":"","sources":["../../src/mcp/bounded-stdio-transport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"bounded-stdio-transport.d.ts","sourceRoot":"","sources":["../../src/mcp/bounded-stdio-transport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAErG,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,gCAAgC,QAAkB,CAAC;AAUhE,qBAAa,2BAA4B,YAAW,SAAS;IAWzD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAZlC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,cAAc,EAAE,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;IAE3D,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;gBAGJ,KAAK,GAAE,QAAwB,EAC/B,MAAM,GAAE,QAAyB,EACjC,eAAe,SAAmC;IAOrE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAuCrB;IAEF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAE3B;IAEF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAEzB;IAEF,OAAO,CAAC,0BAA0B;IAM5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;CAU9E"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import process from 'node:process';
|
|
2
2
|
import { deserializeMessage, serializeMessage } from '@modelcontextprotocol/sdk/shared/stdio.js';
|
|
3
|
+
export { DEFAULT_MCP_REQUEST_TIMEOUT_MS, MAX_MCP_REQUEST_TIMEOUT_MS, MIN_MCP_REQUEST_TIMEOUT_MS, } from './request-deadline.js';
|
|
3
4
|
export const MAX_STDIO_JSON_RPC_MESSAGE_BYTES = 8 * 1024 * 1024;
|
|
4
5
|
const MESSAGE_TOO_LARGE = Object.freeze({
|
|
5
6
|
jsonrpc: '2.0',
|
|
@@ -18,6 +19,7 @@ export class BoundedStdioServerTransport {
|
|
|
18
19
|
buffer;
|
|
19
20
|
discardingOversizedLine = false;
|
|
20
21
|
started = false;
|
|
22
|
+
closed = false;
|
|
21
23
|
constructor(input = process.stdin, output = process.stdout, maxMessageBytes = MAX_STDIO_JSON_RPC_MESSAGE_BYTES) {
|
|
22
24
|
this.input = input;
|
|
23
25
|
this.output = output;
|
|
@@ -59,7 +61,8 @@ export class BoundedStdioServerTransport {
|
|
|
59
61
|
this.buffer = undefined;
|
|
60
62
|
try {
|
|
61
63
|
const text = line.toString('utf8').replace(/\r$/u, '');
|
|
62
|
-
|
|
64
|
+
const message = deserializeMessage(text);
|
|
65
|
+
this.onmessage?.(message);
|
|
63
66
|
}
|
|
64
67
|
catch (error) {
|
|
65
68
|
this.onerror?.(error instanceof Error ? error : new Error('Invalid JSON-RPC stdio message'));
|
|
@@ -71,21 +74,30 @@ export class BoundedStdioServerTransport {
|
|
|
71
74
|
onInputError = (error) => {
|
|
72
75
|
this.onerror?.(error);
|
|
73
76
|
};
|
|
77
|
+
onInputEnd = () => {
|
|
78
|
+
void this.close();
|
|
79
|
+
};
|
|
74
80
|
writeOversizedMessageError() {
|
|
75
81
|
void this.send(MESSAGE_TOO_LARGE).catch((error) => {
|
|
76
82
|
this.onerror?.(error instanceof Error ? error : new Error('Failed to write JSON-RPC transport error'));
|
|
77
83
|
});
|
|
78
84
|
}
|
|
79
85
|
async start() {
|
|
80
|
-
if (this.started)
|
|
81
|
-
throw new Error('BoundedStdioServerTransport
|
|
86
|
+
if (this.started || this.closed)
|
|
87
|
+
throw new Error('BoundedStdioServerTransport cannot be started again');
|
|
82
88
|
this.started = true;
|
|
83
89
|
this.input.on('data', this.onData);
|
|
84
90
|
this.input.on('error', this.onInputError);
|
|
91
|
+
this.input.on('end', this.onInputEnd);
|
|
85
92
|
}
|
|
86
93
|
async close() {
|
|
94
|
+
if (this.closed)
|
|
95
|
+
return;
|
|
96
|
+
this.closed = true;
|
|
97
|
+
this.started = false;
|
|
87
98
|
this.input.off('data', this.onData);
|
|
88
99
|
this.input.off('error', this.onInputError);
|
|
100
|
+
this.input.off('end', this.onInputEnd);
|
|
89
101
|
if (this.input.listenerCount('data') === 0)
|
|
90
102
|
this.input.pause();
|
|
91
103
|
this.buffer = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bounded-stdio-transport.js","sourceRoot":"","sources":["../../src/mcp/bounded-stdio-transport.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAInC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"bounded-stdio-transport.js","sourceRoot":"","sources":["../../src/mcp/bounded-stdio-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export declare const DEFAULT_MCP_REQUEST_TIMEOUT_MS = 90000;
|
|
2
|
+
export declare const MIN_MCP_REQUEST_TIMEOUT_MS = 10;
|
|
3
|
+
export declare const MAX_MCP_REQUEST_TIMEOUT_MS = 90000;
|
|
4
|
+
export declare const MCP_READ_TIMEOUT_MS = 30000;
|
|
5
|
+
export declare const MCP_EXTERNAL_IO_TIMEOUT_MS = 10000;
|
|
6
|
+
export declare const MCP_MUTATION_TIMEOUT_MS = 60000;
|
|
7
|
+
export type McpToolOperation = 'task_prepare' | 'task_answer' | 'memory_checkpoint' | 'curator_check' | 'curator_globalize' | 'enno_advice_submit' | 'enno_ideal_submit' | 'enno_plan_submit' | 'enno_answer' | 'enno_work_report' | 'enno_verify_prepare' | 'enno_finish' | 'enno_meditation_submit';
|
|
8
|
+
export type McpDeadlineClass = 'read' | 'external' | 'mutation';
|
|
9
|
+
export interface McpDeadlinePolicy {
|
|
10
|
+
readMs: number;
|
|
11
|
+
externalMs: number;
|
|
12
|
+
mutationMs: number;
|
|
13
|
+
hardMaxMs: number;
|
|
14
|
+
}
|
|
15
|
+
export interface McpDeadlinePolicyOverrides {
|
|
16
|
+
readMs?: number;
|
|
17
|
+
externalMs?: number;
|
|
18
|
+
mutationMs?: number;
|
|
19
|
+
hardMaxMs?: number;
|
|
20
|
+
}
|
|
21
|
+
export interface McpDeadlineContext {
|
|
22
|
+
readonly operation: McpToolOperation;
|
|
23
|
+
readonly deadlineAt: number;
|
|
24
|
+
remainingMs(): number;
|
|
25
|
+
childTimeoutMs(requestedMs: number): number;
|
|
26
|
+
}
|
|
27
|
+
export interface RunWithMcpDeadlineOptions<T> {
|
|
28
|
+
operation: McpToolOperation;
|
|
29
|
+
timeoutMs?: number;
|
|
30
|
+
policy?: McpDeadlinePolicy;
|
|
31
|
+
signal?: AbortSignal;
|
|
32
|
+
operationFn: (signal: AbortSignal, context: McpDeadlineContext) => Promise<T> | T;
|
|
33
|
+
}
|
|
34
|
+
export declare class McpRequestTimeoutError extends Error {
|
|
35
|
+
readonly operation: McpToolOperation;
|
|
36
|
+
readonly code: "MCP_REQUEST_TIMEOUT";
|
|
37
|
+
readonly retryable: true;
|
|
38
|
+
constructor(operation: McpToolOperation);
|
|
39
|
+
}
|
|
40
|
+
export declare class McpRequestCancelledError extends Error {
|
|
41
|
+
readonly operation: McpToolOperation;
|
|
42
|
+
readonly code: "MCP_REQUEST_CANCELLED";
|
|
43
|
+
readonly retryable: false;
|
|
44
|
+
constructor(operation: McpToolOperation);
|
|
45
|
+
}
|
|
46
|
+
export declare const DEFAULT_MCP_DEADLINE_POLICY: Readonly<McpDeadlinePolicy>;
|
|
47
|
+
export declare function createMcpDeadlinePolicy(overrides?: McpDeadlinePolicyOverrides): McpDeadlinePolicy;
|
|
48
|
+
export declare function operationDeadlineClass(operation: McpToolOperation): McpDeadlineClass;
|
|
49
|
+
export declare function timeoutForOperation(operation: McpToolOperation, policy?: McpDeadlinePolicy): number;
|
|
50
|
+
export declare function runWithMcpDeadline<T>({ operation, timeoutMs, policy, signal, operationFn, }: RunWithMcpDeadlineOptions<T>): Promise<T>;
|
|
51
|
+
//# sourceMappingURL=request-deadline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-deadline.d.ts","sourceRoot":"","sources":["../../src/mcp/request-deadline.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,8BAA8B,QAAS,CAAC;AACrD,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAC1C,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAE9C,MAAM,MAAM,gBAAgB,GACxB,cAAc,GACd,aAAa,GACb,mBAAmB,GACnB,eAAe,GACf,mBAAmB,GACnB,oBAAoB,GACpB,mBAAmB,GACnB,kBAAkB,GAClB,aAAa,GACb,kBAAkB,GAClB,qBAAqB,GACrB,aAAa,GACb,wBAAwB,CAAC;AAE7B,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;AAEhE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,WAAW,IAAI,MAAM,CAAC;IACtB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7C;AAED,MAAM,WAAW,yBAAyB,CAAC,CAAC;IAC1C,SAAS,EAAE,gBAAgB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,WAAW,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACnF;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAInC,QAAQ,CAAC,SAAS,EAAE,gBAAgB;IAHhD,QAAQ,CAAC,IAAI,EAAG,qBAAqB,CAAU;IAC/C,QAAQ,CAAC,SAAS,EAAG,IAAI,CAAU;gBAEd,SAAS,EAAE,gBAAgB;CAIjD;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IAIrC,QAAQ,CAAC,SAAS,EAAE,gBAAgB;IAHhD,QAAQ,CAAC,IAAI,EAAG,uBAAuB,CAAU;IACjD,QAAQ,CAAC,SAAS,EAAG,KAAK,CAAU;gBAEf,SAAS,EAAE,gBAAgB;CAIjD;AAED,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,iBAAiB,CAKlE,CAAC;AAoCH,wBAAgB,uBAAuB,CAAC,SAAS,GAAE,0BAA+B,GAAG,iBAAiB,CAuBrG;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,gBAAgB,GAAG,gBAAgB,CAIpF;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,gBAAgB,EAC3B,MAAM,GAAE,iBAA+C,GACtD,MAAM,CAOR;AAMD,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,EAC1C,SAAS,EACT,SAAS,EACT,MAAoC,EACpC,MAAM,EACN,WAAW,GACZ,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAuD3C"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import process from 'node:process';
|
|
2
|
+
export const DEFAULT_MCP_REQUEST_TIMEOUT_MS = 90_000;
|
|
3
|
+
export const MIN_MCP_REQUEST_TIMEOUT_MS = 10;
|
|
4
|
+
export const MAX_MCP_REQUEST_TIMEOUT_MS = 90_000;
|
|
5
|
+
export const MCP_READ_TIMEOUT_MS = 30_000;
|
|
6
|
+
export const MCP_EXTERNAL_IO_TIMEOUT_MS = 10_000;
|
|
7
|
+
export const MCP_MUTATION_TIMEOUT_MS = 60_000;
|
|
8
|
+
export class McpRequestTimeoutError extends Error {
|
|
9
|
+
operation;
|
|
10
|
+
code = 'MCP_REQUEST_TIMEOUT';
|
|
11
|
+
retryable = true;
|
|
12
|
+
constructor(operation) {
|
|
13
|
+
super('MCP request timed out');
|
|
14
|
+
this.operation = operation;
|
|
15
|
+
this.name = 'McpRequestTimeoutError';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export class McpRequestCancelledError extends Error {
|
|
19
|
+
operation;
|
|
20
|
+
code = 'MCP_REQUEST_CANCELLED';
|
|
21
|
+
retryable = false;
|
|
22
|
+
constructor(operation) {
|
|
23
|
+
super('MCP request was cancelled');
|
|
24
|
+
this.operation = operation;
|
|
25
|
+
this.name = 'McpRequestCancelledError';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export const DEFAULT_MCP_DEADLINE_POLICY = Object.freeze({
|
|
29
|
+
readMs: MCP_READ_TIMEOUT_MS,
|
|
30
|
+
externalMs: MCP_EXTERNAL_IO_TIMEOUT_MS,
|
|
31
|
+
mutationMs: MCP_MUTATION_TIMEOUT_MS,
|
|
32
|
+
hardMaxMs: DEFAULT_MCP_REQUEST_TIMEOUT_MS,
|
|
33
|
+
});
|
|
34
|
+
const EXTERNAL_OPERATIONS = new Set([
|
|
35
|
+
'task_prepare',
|
|
36
|
+
'task_answer',
|
|
37
|
+
]);
|
|
38
|
+
const MUTATION_OPERATIONS = new Set([
|
|
39
|
+
'memory_checkpoint',
|
|
40
|
+
'curator_globalize',
|
|
41
|
+
'enno_advice_submit',
|
|
42
|
+
'enno_ideal_submit',
|
|
43
|
+
'enno_plan_submit',
|
|
44
|
+
'enno_answer',
|
|
45
|
+
'enno_work_report',
|
|
46
|
+
'enno_verify_prepare',
|
|
47
|
+
'enno_finish',
|
|
48
|
+
'enno_meditation_submit',
|
|
49
|
+
]);
|
|
50
|
+
function assertTimeoutMs(value, label) {
|
|
51
|
+
if (!Number.isSafeInteger(value)
|
|
52
|
+
|| value < MIN_MCP_REQUEST_TIMEOUT_MS
|
|
53
|
+
|| value > MAX_MCP_REQUEST_TIMEOUT_MS) {
|
|
54
|
+
throw new Error(`${label} must be an integer between ${MIN_MCP_REQUEST_TIMEOUT_MS} and ${MAX_MCP_REQUEST_TIMEOUT_MS} milliseconds`);
|
|
55
|
+
}
|
|
56
|
+
return value;
|
|
57
|
+
}
|
|
58
|
+
function positiveIntegerEnvironmentValue(name) {
|
|
59
|
+
const raw = process.env[name];
|
|
60
|
+
if (raw === undefined || raw.length === 0)
|
|
61
|
+
return undefined;
|
|
62
|
+
const value = Number(raw);
|
|
63
|
+
return Number.isSafeInteger(value) && value > 0 ? value : undefined;
|
|
64
|
+
}
|
|
65
|
+
export function createMcpDeadlinePolicy(overrides = {}) {
|
|
66
|
+
const policy = {
|
|
67
|
+
readMs: overrides.readMs
|
|
68
|
+
?? positiveIntegerEnvironmentValue('KIOKUKO_MCP_READ_TIMEOUT_MS')
|
|
69
|
+
?? DEFAULT_MCP_DEADLINE_POLICY.readMs,
|
|
70
|
+
externalMs: overrides.externalMs
|
|
71
|
+
?? positiveIntegerEnvironmentValue('KIOKUKO_MCP_EXTERNAL_IO_TIMEOUT_MS')
|
|
72
|
+
?? DEFAULT_MCP_DEADLINE_POLICY.externalMs,
|
|
73
|
+
mutationMs: overrides.mutationMs
|
|
74
|
+
?? positiveIntegerEnvironmentValue('KIOKUKO_MCP_MUTATION_TIMEOUT_MS')
|
|
75
|
+
?? DEFAULT_MCP_DEADLINE_POLICY.mutationMs,
|
|
76
|
+
hardMaxMs: overrides.hardMaxMs
|
|
77
|
+
?? positiveIntegerEnvironmentValue('KIOKUKO_MCP_HARD_MAX_TIMEOUT_MS')
|
|
78
|
+
?? DEFAULT_MCP_DEADLINE_POLICY.hardMaxMs,
|
|
79
|
+
};
|
|
80
|
+
assertTimeoutMs(policy.readMs, 'read timeout');
|
|
81
|
+
assertTimeoutMs(policy.externalMs, 'external I/O timeout');
|
|
82
|
+
assertTimeoutMs(policy.mutationMs, 'mutation timeout');
|
|
83
|
+
assertTimeoutMs(policy.hardMaxMs, 'hard maximum timeout');
|
|
84
|
+
if (policy.readMs > policy.hardMaxMs || policy.externalMs > policy.hardMaxMs || policy.mutationMs > policy.hardMaxMs) {
|
|
85
|
+
throw new Error('MCP operation timeout must not exceed the hard maximum timeout');
|
|
86
|
+
}
|
|
87
|
+
return policy;
|
|
88
|
+
}
|
|
89
|
+
export function operationDeadlineClass(operation) {
|
|
90
|
+
if (EXTERNAL_OPERATIONS.has(operation))
|
|
91
|
+
return 'external';
|
|
92
|
+
if (MUTATION_OPERATIONS.has(operation))
|
|
93
|
+
return 'mutation';
|
|
94
|
+
return 'read';
|
|
95
|
+
}
|
|
96
|
+
export function timeoutForOperation(operation, policy = DEFAULT_MCP_DEADLINE_POLICY) {
|
|
97
|
+
const validated = createMcpDeadlinePolicy(policy);
|
|
98
|
+
switch (operationDeadlineClass(operation)) {
|
|
99
|
+
case 'external': return validated.externalMs;
|
|
100
|
+
case 'mutation': return validated.mutationMs;
|
|
101
|
+
case 'read': return validated.readMs;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function abortReasonIsTimeout(reason) {
|
|
105
|
+
return reason instanceof McpRequestTimeoutError;
|
|
106
|
+
}
|
|
107
|
+
export async function runWithMcpDeadline({ operation, timeoutMs, policy = DEFAULT_MCP_DEADLINE_POLICY, signal, operationFn, }) {
|
|
108
|
+
const selectedTimeoutMs = assertTimeoutMs(timeoutMs ?? timeoutForOperation(operation, policy), 'MCP request timeout');
|
|
109
|
+
const deadlineAt = Date.now() + selectedTimeoutMs;
|
|
110
|
+
const controller = new AbortController();
|
|
111
|
+
const context = {
|
|
112
|
+
operation,
|
|
113
|
+
deadlineAt,
|
|
114
|
+
remainingMs: () => Math.max(0, deadlineAt - Date.now()),
|
|
115
|
+
childTimeoutMs: (requestedMs) => Math.min(assertTimeoutMs(requestedMs, 'child timeout'), Math.max(0, deadlineAt - Date.now())),
|
|
116
|
+
};
|
|
117
|
+
if (signal?.aborted)
|
|
118
|
+
throw new McpRequestCancelledError(operation);
|
|
119
|
+
return await new Promise((resolve, reject) => {
|
|
120
|
+
let settled = false;
|
|
121
|
+
let timer;
|
|
122
|
+
const cleanup = () => {
|
|
123
|
+
if (timer !== undefined)
|
|
124
|
+
clearTimeout(timer);
|
|
125
|
+
signal?.removeEventListener('abort', onCallerAbort);
|
|
126
|
+
};
|
|
127
|
+
const settle = (settlement) => {
|
|
128
|
+
if (settled)
|
|
129
|
+
return;
|
|
130
|
+
settled = true;
|
|
131
|
+
cleanup();
|
|
132
|
+
settlement();
|
|
133
|
+
};
|
|
134
|
+
const onCallerAbort = () => {
|
|
135
|
+
const error = new McpRequestCancelledError(operation);
|
|
136
|
+
controller.abort(error);
|
|
137
|
+
settle(() => reject(error));
|
|
138
|
+
};
|
|
139
|
+
const onTimeout = () => {
|
|
140
|
+
const error = new McpRequestTimeoutError(operation);
|
|
141
|
+
controller.abort(error);
|
|
142
|
+
settle(() => reject(error));
|
|
143
|
+
};
|
|
144
|
+
signal?.addEventListener('abort', onCallerAbort, { once: true });
|
|
145
|
+
timer = setTimeout(onTimeout, selectedTimeoutMs);
|
|
146
|
+
void Promise.resolve()
|
|
147
|
+
.then(() => {
|
|
148
|
+
if (controller.signal.aborted)
|
|
149
|
+
throw controller.signal.reason;
|
|
150
|
+
return operationFn(controller.signal, context);
|
|
151
|
+
})
|
|
152
|
+
.then((value) => settle(() => resolve(value)), (error) => settle(() => reject(abortReasonIsTimeout(controller.signal.reason) ? new McpRequestTimeoutError(operation) : error)));
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=request-deadline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-deadline.js","sourceRoot":"","sources":["../../src/mcp/request-deadline.ts"],"names":[],"mappings":"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"}
|