@sriinnu/kosha-discovery 1.2.0 → 1.5.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.
- package/README.md +65 -26
- package/dist/aliases.d.ts +6 -1
- package/dist/aliases.d.ts.map +1 -1
- package/dist/aliases.js +38 -12
- package/dist/aliases.js.map +1 -1
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +25 -2
- package/dist/cache.js.map +1 -1
- package/dist/claude-generation.d.ts +59 -0
- package/dist/claude-generation.d.ts.map +1 -0
- package/dist/claude-generation.js +117 -0
- package/dist/claude-generation.js.map +1 -0
- package/dist/cli-cmd-doctor.d.ts +17 -0
- package/dist/cli-cmd-doctor.d.ts.map +1 -0
- package/dist/cli-cmd-doctor.js +199 -0
- package/dist/cli-cmd-doctor.js.map +1 -0
- package/dist/cli-cmd-model.js +2 -2
- package/dist/cli-cmd-model.js.map +1 -1
- package/dist/cli-cmd-spend.d.ts +10 -0
- package/dist/cli-cmd-spend.d.ts.map +1 -0
- package/dist/cli-cmd-spend.js +130 -0
- package/dist/cli-cmd-spend.js.map +1 -0
- package/dist/cli-commands.d.ts +4 -1
- package/dist/cli-commands.d.ts.map +1 -1
- package/dist/cli-commands.js +10 -2
- package/dist/cli-commands.js.map +1 -1
- package/dist/cli-format.js.map +1 -1
- package/dist/cli-help.d.ts.map +1 -1
- package/dist/cli-help.js +4 -2
- package/dist/cli-help.js.map +1 -1
- package/dist/cli.js +10 -0
- package/dist/cli.js.map +1 -1
- package/dist/cost.d.ts +152 -0
- package/dist/cost.d.ts.map +1 -0
- package/dist/cost.js +377 -0
- package/dist/cost.js.map +1 -0
- package/dist/credentials/resolver.d.ts +10 -0
- package/dist/credentials/resolver.d.ts.map +1 -1
- package/dist/credentials/resolver.js +64 -31
- package/dist/credentials/resolver.js.map +1 -1
- package/dist/discovery/anthropic.d.ts +19 -1
- package/dist/discovery/anthropic.d.ts.map +1 -1
- package/dist/discovery/anthropic.js +112 -8
- package/dist/discovery/anthropic.js.map +1 -1
- package/dist/discovery/base.d.ts +7 -0
- package/dist/discovery/base.d.ts.map +1 -1
- package/dist/discovery/base.js +32 -4
- package/dist/discovery/base.js.map +1 -1
- package/dist/discovery/bedrock.d.ts.map +1 -1
- package/dist/discovery/cerebras.d.ts.map +1 -1
- package/dist/discovery/cohere.d.ts.map +1 -1
- package/dist/discovery/deepinfra.d.ts.map +1 -1
- package/dist/discovery/deepseek.d.ts.map +1 -1
- package/dist/discovery/fireworks.d.ts.map +1 -1
- package/dist/discovery/glm.d.ts.map +1 -1
- package/dist/discovery/google.d.ts +3 -1
- package/dist/discovery/google.d.ts.map +1 -1
- package/dist/discovery/google.js +13 -6
- package/dist/discovery/google.js.map +1 -1
- package/dist/discovery/groq.d.ts.map +1 -1
- package/dist/discovery/index.d.ts +2 -0
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +6 -0
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/llama-cpp.d.ts.map +1 -1
- package/dist/discovery/lmstudio.d.ts +26 -0
- package/dist/discovery/lmstudio.d.ts.map +1 -0
- package/dist/discovery/lmstudio.js +93 -0
- package/dist/discovery/lmstudio.js.map +1 -0
- package/dist/discovery/minimax.d.ts.map +1 -1
- package/dist/discovery/mistral.d.ts.map +1 -1
- package/dist/discovery/moonshot.d.ts.map +1 -1
- package/dist/discovery/nvidia.d.ts.map +1 -1
- package/dist/discovery/ollama.d.ts.map +1 -1
- package/dist/discovery/openai-compatible.d.ts.map +1 -1
- package/dist/discovery/openai.d.ts.map +1 -1
- package/dist/discovery/openrouter.d.ts +29 -5
- package/dist/discovery/openrouter.d.ts.map +1 -1
- package/dist/discovery/openrouter.js +56 -18
- package/dist/discovery/openrouter.js.map +1 -1
- package/dist/discovery/perplexity.d.ts.map +1 -1
- package/dist/discovery/promo-overrides.js.map +1 -1
- package/dist/discovery/static-direct.d.ts +9 -1
- package/dist/discovery/static-direct.d.ts.map +1 -1
- package/dist/discovery/static-direct.js +68 -7
- package/dist/discovery/static-direct.js.map +1 -1
- package/dist/discovery/together.d.ts.map +1 -1
- package/dist/discovery/vercel.d.ts.map +1 -1
- package/dist/discovery/vertex.d.ts.map +1 -1
- package/dist/discovery/vllm.d.ts +26 -0
- package/dist/discovery/vllm.d.ts.map +1 -0
- package/dist/discovery/vllm.js +93 -0
- package/dist/discovery/vllm.js.map +1 -0
- package/dist/discovery/zai.d.ts.map +1 -1
- package/dist/discovery-contract.d.ts +7 -0
- package/dist/discovery-contract.d.ts.map +1 -1
- package/dist/discovery-contract.js.map +1 -1
- package/dist/discovery-routes.d.ts +9 -0
- package/dist/discovery-routes.d.ts.map +1 -1
- package/dist/discovery-routes.js +106 -18
- package/dist/discovery-routes.js.map +1 -1
- package/dist/enrichment/litellm.d.ts +1 -1
- package/dist/enrichment/litellm.d.ts.map +1 -1
- package/dist/enrichment/litellm.js +3 -3
- package/dist/entry.d.ts +14 -0
- package/dist/entry.d.ts.map +1 -0
- package/dist/entry.js +26 -0
- package/dist/entry.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-server.d.ts +207 -2
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +203 -51
- package/dist/mcp-server.js.map +1 -1
- package/dist/model-features.d.ts.map +1 -1
- package/dist/model-features.js +11 -2
- package/dist/model-features.js.map +1 -1
- package/dist/normalize.d.ts +7 -7
- package/dist/normalize.js +8 -8
- package/dist/provider-catalog.d.ts.map +1 -1
- package/dist/provider-catalog.js +26 -0
- package/dist/provider-catalog.js.map +1 -1
- package/dist/proxy.d.ts +49 -7
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +754 -89
- package/dist/proxy.js.map +1 -1
- package/dist/registry-query.js +2 -2
- package/dist/registry-query.js.map +1 -1
- package/dist/registry-routing.d.ts +65 -0
- package/dist/registry-routing.d.ts.map +1 -0
- package/dist/registry-routing.js +165 -0
- package/dist/registry-routing.js.map +1 -0
- package/dist/registry-runtime.d.ts +2 -0
- package/dist/registry-runtime.d.ts.map +1 -1
- package/dist/registry-runtime.js +159 -15
- package/dist/registry-runtime.js.map +1 -1
- package/dist/registry-selection.js +6 -0
- package/dist/registry-selection.js.map +1 -1
- package/dist/registry.d.ts +69 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +133 -1
- package/dist/registry.js.map +1 -1
- package/dist/resilience.d.ts +15 -0
- package/dist/resilience.d.ts.map +1 -1
- package/dist/resilience.js +23 -1
- package/dist/resilience.js.map +1 -1
- package/dist/server.d.ts +44 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +328 -33
- package/dist/server.js.map +1 -1
- package/dist/tally.d.ts +80 -0
- package/dist/tally.d.ts.map +1 -0
- package/dist/tally.js +176 -0
- package/dist/tally.js.map +1 -0
- package/dist/types.d.ts +22 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/wire-anthropic.d.ts +264 -0
- package/dist/wire-anthropic.d.ts.map +1 -0
- package/dist/wire-anthropic.js +960 -0
- package/dist/wire-anthropic.js.map +1 -0
- package/package.json +14 -10
- package/logo.png +0 -0
package/dist/mcp-server.js
CHANGED
|
@@ -1,25 +1,71 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* kosha-discovery — MCP server (stdio transport
|
|
3
|
+
* kosha-discovery — MCP server (stdio transport).
|
|
4
4
|
*
|
|
5
5
|
* Exposes the local kosha registry as MCP tools so AI agents can query
|
|
6
6
|
* model pricing, routing, and health without HTTP.
|
|
7
7
|
*
|
|
8
|
+
* Protocol: JSON-RPC 2.0 over newline-delimited stdio. The server speaks
|
|
9
|
+
* every MCP revision in {@link MCP_PROTOCOL_VERSIONS} and echoes the
|
|
10
|
+
* client's requested revision back when it is one of them (otherwise it
|
|
11
|
+
* answers with the newest it supports, per the MCP negotiation rule).
|
|
12
|
+
*
|
|
8
13
|
* Tools:
|
|
9
14
|
* kosha_query_models — list / filter models
|
|
10
15
|
* kosha_cheapest_model — cheapest model meeting requirements
|
|
16
|
+
* kosha_ranked_routes — strategy-ranked routes (cheapest / fastest / reliable / balanced)
|
|
11
17
|
* kosha_model_detail — full detail for one model
|
|
12
18
|
* kosha_model_routes — all provider routes for a model
|
|
13
19
|
* kosha_resolve_alias — alias → canonical ID
|
|
14
20
|
* kosha_provider_health — provider auth + error status
|
|
21
|
+
* kosha_context_strategy — context-management advice for a long conversation
|
|
22
|
+
*
|
|
23
|
+
* The JSON-RPC handler ({@link handleJsonRpc}) is exported and pure over an
|
|
24
|
+
* injected registry loader so it can be unit-tested; the stdio loop only
|
|
25
|
+
* starts when this file is the process entry point.
|
|
15
26
|
* @module
|
|
16
27
|
*/
|
|
28
|
+
import { createRequire } from "node:module";
|
|
17
29
|
import { computeContextStrategy } from "./context-strategy.js";
|
|
30
|
+
import { isMainModule } from "./entry.js";
|
|
18
31
|
import { ModelRegistry } from "./registry.js";
|
|
32
|
+
import { parseRouteStrategy, ROUTE_STRATEGIES } from "./registry-routing.js";
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
// Server identity + protocol negotiation
|
|
35
|
+
// ---------------------------------------------------------------------------
|
|
36
|
+
/** Package version, read from package.json so `serverInfo.version` never drifts from the release. */
|
|
37
|
+
export const KOSHA_MCP_VERSION = (() => {
|
|
38
|
+
try {
|
|
39
|
+
const require = createRequire(import.meta.url);
|
|
40
|
+
return require("../package.json").version;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return "0.0.0";
|
|
44
|
+
}
|
|
45
|
+
})();
|
|
46
|
+
/** MCP protocol revisions this server implements, newest first. */
|
|
47
|
+
export const MCP_PROTOCOL_VERSIONS = ["2025-06-18", "2025-03-26", "2024-11-05"];
|
|
48
|
+
/**
|
|
49
|
+
* Pick the protocol revision to answer an `initialize` with: the client's
|
|
50
|
+
* own when we support it, otherwise our newest (the client then decides
|
|
51
|
+
* whether to proceed).
|
|
52
|
+
*/
|
|
53
|
+
export function negotiateProtocolVersion(requested) {
|
|
54
|
+
if (typeof requested === "string" && MCP_PROTOCOL_VERSIONS.includes(requested))
|
|
55
|
+
return requested;
|
|
56
|
+
return MCP_PROTOCOL_VERSIONS[0];
|
|
57
|
+
}
|
|
58
|
+
/** Standard JSON-RPC 2.0 error codes used by this server. */
|
|
59
|
+
const JSON_RPC = {
|
|
60
|
+
PARSE_ERROR: -32700,
|
|
61
|
+
METHOD_NOT_FOUND: -32601,
|
|
62
|
+
INVALID_PARAMS: -32602,
|
|
63
|
+
INTERNAL_ERROR: -32603,
|
|
64
|
+
};
|
|
19
65
|
// ---------------------------------------------------------------------------
|
|
20
66
|
// Tool definitions (MCP schema)
|
|
21
67
|
// ---------------------------------------------------------------------------
|
|
22
|
-
const TOOLS = [
|
|
68
|
+
export const TOOLS = [
|
|
23
69
|
{
|
|
24
70
|
name: "kosha_query_models",
|
|
25
71
|
description: "List AI models from the local kosha registry. Optionally filter by provider, mode, or capability tag. Returns id, provider, name, mode, context window, capabilities, and pricing.",
|
|
@@ -59,6 +105,25 @@ const TOOLS = [
|
|
|
59
105
|
},
|
|
60
106
|
},
|
|
61
107
|
},
|
|
108
|
+
{
|
|
109
|
+
name: "kosha_ranked_routes",
|
|
110
|
+
description: "Rank chat-model routes by strategy: cheapest (price only), fastest (observed p95 latency), reliable (circuit-breaker state plus timeout / auth-error history), or balanced (weighted blend of all three). Providers whose breaker is open always sort last, so the result doubles as a failover order. Accepts the same filters as kosha_cheapest_model.",
|
|
111
|
+
inputSchema: {
|
|
112
|
+
type: "object",
|
|
113
|
+
properties: {
|
|
114
|
+
strategy: {
|
|
115
|
+
type: "string",
|
|
116
|
+
enum: ["cheapest", "fastest", "reliable", "balanced"],
|
|
117
|
+
description: "Ranking strategy",
|
|
118
|
+
},
|
|
119
|
+
capability: { type: "string", description: "Required capability tag (e.g. tool_use, vision)" },
|
|
120
|
+
min_context_k: { type: "number", description: "Minimum context window in thousands of tokens" },
|
|
121
|
+
provider: { type: "string", description: "Pin to a specific provider" },
|
|
122
|
+
limit: { type: "number", description: "Number of ranked results (default 5)" },
|
|
123
|
+
},
|
|
124
|
+
required: ["strategy"],
|
|
125
|
+
},
|
|
126
|
+
},
|
|
62
127
|
{
|
|
63
128
|
name: "kosha_model_detail",
|
|
64
129
|
description: "Get full details for a specific model — pricing, capabilities, context window, tool dialect, structured output modes, status, and deprecation info.",
|
|
@@ -67,7 +132,7 @@ const TOOLS = [
|
|
|
67
132
|
properties: {
|
|
68
133
|
model: {
|
|
69
134
|
type: "string",
|
|
70
|
-
description: "Model ID or alias (e.g. sonnet, claude-sonnet-
|
|
135
|
+
description: "Model ID or alias (e.g. sonnet, claude-sonnet-5, gpt-4o, deepseek-v3)",
|
|
71
136
|
},
|
|
72
137
|
},
|
|
73
138
|
required: ["model"],
|
|
@@ -129,10 +194,6 @@ const TOOLS = [
|
|
|
129
194
|
},
|
|
130
195
|
},
|
|
131
196
|
];
|
|
132
|
-
// ---------------------------------------------------------------------------
|
|
133
|
-
// Registry — lazy-load on first tool call so starting the MCP server has no
|
|
134
|
-
// filesystem/network side effects until a client actually asks for data.
|
|
135
|
-
// ---------------------------------------------------------------------------
|
|
136
197
|
let registryInstance = null;
|
|
137
198
|
let registryReady = null;
|
|
138
199
|
async function loadRegistry() {
|
|
@@ -147,11 +208,16 @@ async function getRegistry() {
|
|
|
147
208
|
registryReady ??= loadRegistry();
|
|
148
209
|
return registryReady;
|
|
149
210
|
}
|
|
211
|
+
/** Production dependencies: the discover-on-first-use registry. */
|
|
212
|
+
const defaultDeps = { registry: getRegistry };
|
|
213
|
+
/** Thrown by a tool handler for caller mistakes (unknown tool, bad argument). */
|
|
214
|
+
class ToolInputError extends Error {
|
|
215
|
+
}
|
|
150
216
|
// ---------------------------------------------------------------------------
|
|
151
217
|
// Tool handlers
|
|
152
218
|
// ---------------------------------------------------------------------------
|
|
153
|
-
async function callTool(name, args) {
|
|
154
|
-
const reg = await
|
|
219
|
+
export async function callTool(name, args, deps = defaultDeps) {
|
|
220
|
+
const reg = await deps.registry();
|
|
155
221
|
switch (name) {
|
|
156
222
|
case "kosha_query_models": {
|
|
157
223
|
const models = reg.models({
|
|
@@ -194,6 +260,43 @@ async function callTool(name, args) {
|
|
|
194
260
|
missingCredentials: result.missingCredentials.map((c) => c.providerId),
|
|
195
261
|
};
|
|
196
262
|
}
|
|
263
|
+
case "kosha_ranked_routes": {
|
|
264
|
+
const strategy = parseRouteStrategy(typeof args.strategy === "string" ? args.strategy : undefined);
|
|
265
|
+
if (!strategy) {
|
|
266
|
+
throw new ToolInputError(`unknown strategy '${String(args.strategy)}' — expected one of ${ROUTE_STRATEGIES.join(", ")}`);
|
|
267
|
+
}
|
|
268
|
+
const limit = typeof args.limit === "number" && args.limit > 0 ? Math.floor(args.limit) : 5;
|
|
269
|
+
const minContext = typeof args.min_context_k === "number" ? args.min_context_k * 1_000 : undefined;
|
|
270
|
+
const ranked = reg.rankedRoutes({
|
|
271
|
+
mode: "chat",
|
|
272
|
+
capability: args.capability,
|
|
273
|
+
provider: args.provider,
|
|
274
|
+
// Over-fetch so a min-context filter applied after ranking
|
|
275
|
+
// still has enough candidates to fill `limit`.
|
|
276
|
+
limit: Math.max(limit * 4, 20),
|
|
277
|
+
}, strategy);
|
|
278
|
+
const filtered = minContext ? ranked.filter((r) => r.model.contextWindow >= minContext) : ranked;
|
|
279
|
+
return {
|
|
280
|
+
strategy,
|
|
281
|
+
routes: filtered.slice(0, limit).map((r) => ({
|
|
282
|
+
id: r.model.id,
|
|
283
|
+
provider: r.providerId,
|
|
284
|
+
name: r.model.name,
|
|
285
|
+
contextWindow: r.model.contextWindow,
|
|
286
|
+
pricing: r.model.pricing ?? null,
|
|
287
|
+
price: r.price,
|
|
288
|
+
compositeScore: r.compositeScore,
|
|
289
|
+
health: {
|
|
290
|
+
available: r.health.available,
|
|
291
|
+
breakerState: r.health.breakerState,
|
|
292
|
+
reliabilityScore: r.health.reliabilityScore,
|
|
293
|
+
p95LatencyMs: r.health.p95LatencyMs,
|
|
294
|
+
samples: r.health.samples,
|
|
295
|
+
lastErrorType: r.health.lastErrorType,
|
|
296
|
+
},
|
|
297
|
+
})),
|
|
298
|
+
};
|
|
299
|
+
}
|
|
197
300
|
case "kosha_model_detail": {
|
|
198
301
|
const model = reg.model(args.model);
|
|
199
302
|
if (!model)
|
|
@@ -270,72 +373,121 @@ async function callTool(name, args) {
|
|
|
270
373
|
});
|
|
271
374
|
}
|
|
272
375
|
default:
|
|
273
|
-
throw new
|
|
376
|
+
throw new ToolInputError(`unknown tool: ${name}`);
|
|
274
377
|
}
|
|
275
378
|
}
|
|
276
379
|
// ---------------------------------------------------------------------------
|
|
277
|
-
//
|
|
380
|
+
// JSON-RPC dispatch (pure) + stdio loop (entry point only)
|
|
278
381
|
// ---------------------------------------------------------------------------
|
|
279
|
-
function
|
|
280
|
-
|
|
382
|
+
function ok(id, result) {
|
|
383
|
+
return { jsonrpc: "2.0", id: id ?? null, result };
|
|
281
384
|
}
|
|
282
|
-
function
|
|
283
|
-
|
|
385
|
+
function fail(id, code, message) {
|
|
386
|
+
return { jsonrpc: "2.0", id: id ?? null, error: { code, message } };
|
|
284
387
|
}
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
388
|
+
/**
|
|
389
|
+
* Handle one JSON-RPC request and return the response, or `null` for
|
|
390
|
+
* notifications (which carry no id and expect no reply).
|
|
391
|
+
*
|
|
392
|
+
* Tool *execution* failures come back as a successful `tools/call` result
|
|
393
|
+
* with `isError: true`, per the MCP spec, so the model can read the message
|
|
394
|
+
* and recover; only protocol-level problems (unknown method, unknown tool,
|
|
395
|
+
* malformed params) surface as JSON-RPC errors.
|
|
396
|
+
*/
|
|
397
|
+
export async function handleJsonRpc(msg, deps = defaultDeps) {
|
|
289
398
|
const { id, method, params } = msg;
|
|
290
399
|
// Notifications carry no id — no response expected.
|
|
291
400
|
if (!method || method.startsWith("notifications/"))
|
|
292
|
-
return;
|
|
401
|
+
return null;
|
|
293
402
|
switch (method) {
|
|
294
|
-
case "initialize":
|
|
295
|
-
|
|
296
|
-
|
|
403
|
+
case "initialize": {
|
|
404
|
+
const requested = params?.protocolVersion;
|
|
405
|
+
return ok(id, {
|
|
406
|
+
protocolVersion: negotiateProtocolVersion(requested),
|
|
297
407
|
capabilities: { tools: {} },
|
|
298
|
-
serverInfo: { name: "kosha", version:
|
|
408
|
+
serverInfo: { name: "kosha", version: KOSHA_MCP_VERSION },
|
|
299
409
|
});
|
|
300
|
-
|
|
410
|
+
}
|
|
411
|
+
case "ping":
|
|
412
|
+
return ok(id, {});
|
|
301
413
|
case "tools/list":
|
|
302
|
-
|
|
303
|
-
return;
|
|
414
|
+
return ok(id, { tools: TOOLS });
|
|
304
415
|
case "tools/call": {
|
|
305
|
-
const
|
|
416
|
+
const call = (params ?? {});
|
|
417
|
+
if (typeof call.name !== "string") {
|
|
418
|
+
return fail(id, JSON_RPC.INVALID_PARAMS, "tools/call requires a string `name`");
|
|
419
|
+
}
|
|
420
|
+
const args = call.arguments && typeof call.arguments === "object" && !Array.isArray(call.arguments)
|
|
421
|
+
? call.arguments
|
|
422
|
+
: {};
|
|
306
423
|
try {
|
|
307
|
-
const result = await callTool(name, args);
|
|
308
|
-
|
|
424
|
+
const result = await callTool(call.name, args, deps);
|
|
425
|
+
return ok(id, { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] });
|
|
309
426
|
}
|
|
310
427
|
catch (err) {
|
|
311
428
|
const message = err instanceof Error ? err.message : String(err);
|
|
312
|
-
|
|
429
|
+
if (err instanceof ToolInputError)
|
|
430
|
+
return fail(id, JSON_RPC.INVALID_PARAMS, message);
|
|
431
|
+
return ok(id, { content: [{ type: "text", text: message }], isError: true });
|
|
313
432
|
}
|
|
314
|
-
return;
|
|
315
433
|
}
|
|
316
434
|
default:
|
|
317
|
-
|
|
435
|
+
return fail(id, JSON_RPC.METHOD_NOT_FOUND, `method not found: ${method}`);
|
|
318
436
|
}
|
|
319
437
|
}
|
|
320
|
-
|
|
321
|
-
process.
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
buffer =
|
|
326
|
-
for
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
438
|
+
function send(msg) {
|
|
439
|
+
process.stdout.write(`${JSON.stringify(msg)}\n`);
|
|
440
|
+
}
|
|
441
|
+
/** Start the newline-delimited JSON-RPC loop over stdio. */
|
|
442
|
+
export function runStdioServer(deps = defaultDeps) {
|
|
443
|
+
let buffer = "";
|
|
444
|
+
/** In-flight requests, so an EOF on stdin waits for their answers before exiting. */
|
|
445
|
+
const pending = new Set();
|
|
446
|
+
process.stdin.setEncoding("utf-8");
|
|
447
|
+
process.stdin.on("data", (chunk) => {
|
|
448
|
+
buffer += chunk;
|
|
449
|
+
const lines = buffer.split("\n");
|
|
450
|
+
buffer = lines.pop() ?? "";
|
|
451
|
+
for (const line of lines) {
|
|
452
|
+
const trimmed = line.trim();
|
|
453
|
+
if (!trimmed)
|
|
454
|
+
continue;
|
|
455
|
+
let parsed;
|
|
456
|
+
try {
|
|
457
|
+
parsed = JSON.parse(trimmed);
|
|
458
|
+
}
|
|
459
|
+
catch {
|
|
460
|
+
// Malformed JSON. Per JSON-RPC 2.0 we must still answer with a
|
|
461
|
+
// -32700 Parse error so the client doesn't block forever waiting
|
|
462
|
+
// on a response. The id is unknowable from unparseable input, so
|
|
463
|
+
// per spec we respond with id=null (we deliberately avoid scanning
|
|
464
|
+
// the raw text for an id, which would mean running a regex over
|
|
465
|
+
// uncontrolled stdin).
|
|
466
|
+
send(fail(null, JSON_RPC.PARSE_ERROR, "Parse error"));
|
|
467
|
+
continue;
|
|
468
|
+
}
|
|
469
|
+
const job = handleJsonRpc(parsed, deps)
|
|
470
|
+
.then((response) => {
|
|
471
|
+
if (response)
|
|
472
|
+
send(response);
|
|
473
|
+
})
|
|
474
|
+
.catch((err) => {
|
|
332
475
|
process.stderr.write(`[kosha-mcp] ${err}\n`);
|
|
476
|
+
})
|
|
477
|
+
.finally(() => {
|
|
478
|
+
pending.delete(job);
|
|
333
479
|
});
|
|
480
|
+
pending.add(job);
|
|
334
481
|
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
482
|
+
});
|
|
483
|
+
// One-shot / piped clients half-close stdin right after writing their
|
|
484
|
+
// request; exiting immediately would drop the answer still being computed.
|
|
485
|
+
process.stdin.on("end", () => {
|
|
486
|
+
Promise.allSettled(pending).then(() => process.exit(0));
|
|
487
|
+
});
|
|
488
|
+
}
|
|
489
|
+
// Only attach to stdio when executed directly (`kosha-mcp` bin or
|
|
490
|
+
// `node dist/mcp-server.js`); see entry.ts for why realpath matters.
|
|
491
|
+
if (isMainModule(import.meta.url))
|
|
492
|
+
runStdioServer();
|
|
341
493
|
//# sourceMappingURL=mcp-server.js.map
|
package/dist/mcp-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-features.d.ts","sourceRoot":"","sources":["../src/model-features.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"model-features.d.ts","sourceRoot":"","sources":["../src/model-features.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,gBAAgB,CAC/B,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,OAAO,EAAE,MAAM,GACb,WAAW,GAAG,SAAS,CA0EzB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACzC,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,OAAO,EAAE,MAAM,GACb,oBAAoB,EAAE,CAqFxB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACrC,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,OAAO,EAAE,MAAM,GACb,OAAO,GAAG,SAAS,CA0BrB"}
|
package/dist/model-features.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* and override with direct API probes when precision matters.
|
|
11
11
|
* @module
|
|
12
12
|
*/
|
|
13
|
+
import { claudeSupportsForcedToolChoice, claudeSupportsNativeJsonSchema } from "./claude-generation.js";
|
|
13
14
|
/**
|
|
14
15
|
* Infer the tool-calling dialect a model natively speaks.
|
|
15
16
|
*
|
|
@@ -152,11 +153,19 @@ export function inferStructuredOutputModes(originProvider, modelId) {
|
|
|
152
153
|
}
|
|
153
154
|
return modes;
|
|
154
155
|
}
|
|
155
|
-
// Anthropic —
|
|
156
|
+
// Anthropic — native `output_config.format` JSON schema on Claude 4.5+;
|
|
157
|
+
// tool-choice coercion where forced tool_choice is still accepted; XML
|
|
158
|
+
// prompt guidance everywhere. Fable / Mythos 5.1 reject forced tool_choice.
|
|
156
159
|
if (origin === "anthropic" || /claude/.test(id)) {
|
|
157
160
|
if (/claude-(instant|1|2\.0)/.test(id))
|
|
158
161
|
return ["xml"];
|
|
159
|
-
|
|
162
|
+
const modes = [];
|
|
163
|
+
if (claudeSupportsNativeJsonSchema(id))
|
|
164
|
+
modes.push("json-schema");
|
|
165
|
+
if (claudeSupportsForcedToolChoice(id))
|
|
166
|
+
modes.push("tool-choice");
|
|
167
|
+
modes.push("xml");
|
|
168
|
+
return modes;
|
|
160
169
|
}
|
|
161
170
|
// Google Gemini — response_schema is available on Gemini 1.5+ and all 2.x variants.
|
|
162
171
|
if (origin === "google" || origin === "vertex" || /gemini/.test(id)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-features.js","sourceRoot":"","sources":["../src/model-features.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"model-features.js","sourceRoot":"","sources":["../src/model-features.ts"],"names":[],"mappings":"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"}
|
package/dist/normalize.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* Extract the origin provider (model creator) from a model ID.
|
|
11
11
|
*
|
|
12
12
|
* The function first attempts to resolve a slash-separated namespace prefix
|
|
13
|
-
* (e.g. `"anthropic/claude-opus-4-
|
|
13
|
+
* (e.g. `"anthropic/claude-opus-4-8"` → `"anthropic"`). When no prefix is
|
|
14
14
|
* present it falls back to a set of well-known ID patterns.
|
|
15
15
|
*
|
|
16
16
|
* @param modelId - Raw model identifier as returned by a provider API.
|
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
* cannot be determined.
|
|
19
19
|
*
|
|
20
20
|
* @example
|
|
21
|
-
* extractOriginProvider("anthropic/claude-opus-4-
|
|
21
|
+
* extractOriginProvider("anthropic/claude-opus-4-8") // "anthropic"
|
|
22
22
|
* extractOriginProvider("openai/gpt-4o") // "openai"
|
|
23
23
|
* extractOriginProvider("google/gemini-2.5-pro") // "google"
|
|
24
24
|
* extractOriginProvider("meta-llama/llama-3.3-70b") // "meta"
|
|
25
|
-
* extractOriginProvider("claude-opus-4-
|
|
25
|
+
* extractOriginProvider("claude-opus-4-8") // "anthropic"
|
|
26
26
|
* extractOriginProvider("gpt-4o") // "openai"
|
|
27
27
|
* extractOriginProvider("gemini-2.5-pro") // "google"
|
|
28
28
|
* extractOriginProvider("unknown-model") // undefined
|
|
@@ -43,10 +43,10 @@ export declare function extractOriginProvider(modelId: string): string | undefin
|
|
|
43
43
|
* @returns Cleaned base model ID ready for deduplication comparisons.
|
|
44
44
|
*
|
|
45
45
|
* @example
|
|
46
|
-
* normalizeModelId("anthropic/claude-opus-4-
|
|
46
|
+
* normalizeModelId("anthropic/claude-opus-4-8") // "claude-opus-4-8"
|
|
47
47
|
* normalizeModelId("openai/gpt-4o-2024-11-20") // "gpt-4o"
|
|
48
48
|
* normalizeModelId("meta-llama/llama-3.3-70b-instruct") // "llama-3.3-70b-instruct"
|
|
49
|
-
* normalizeModelId("claude-opus-4-
|
|
49
|
+
* normalizeModelId("claude-opus-4-8") // "claude-opus-4-8"
|
|
50
50
|
* normalizeModelId("llama3.3:latest") // "llama3.3"
|
|
51
51
|
*/
|
|
52
52
|
export declare function normalizeModelId(modelId: string): string;
|
|
@@ -55,11 +55,11 @@ export declare function normalizeModelId(modelId: string): string;
|
|
|
55
55
|
*
|
|
56
56
|
* Different providers format the same Claude / GPT / Gemini version
|
|
57
57
|
* differently — OpenRouter uses dots (`claude-sonnet-4.6`), aliases and
|
|
58
|
-
* litellm use dashes (`claude-sonnet-
|
|
58
|
+
* litellm use dashes (`claude-sonnet-5`), some services use underscores.
|
|
59
59
|
* `normalizeModelId` is intentionally non-destructive and preserves the
|
|
60
60
|
* original separators because callers serialize its output. This helper
|
|
61
61
|
* is for *matching* only: collapse every `<digit><sep><digit>` to a dash
|
|
62
|
-
* so that `modelRoutes("claude-sonnet-
|
|
62
|
+
* so that `modelRoutes("claude-sonnet-5")` finds the OpenRouter entry
|
|
63
63
|
* `anthropic/claude-sonnet-4.6`.
|
|
64
64
|
*/
|
|
65
65
|
export declare function matchableModelId(modelId: string): string;
|
package/dist/normalize.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
/**
|
|
10
10
|
* Maps slash-separated namespace prefixes found in compound model IDs
|
|
11
|
-
* (e.g. "anthropic/claude-opus-4-
|
|
11
|
+
* (e.g. "anthropic/claude-opus-4-8") to canonical origin-provider slugs.
|
|
12
12
|
*
|
|
13
13
|
* Providers that use their own namespace directly keep that name; those
|
|
14
14
|
* with unusual namespaces (e.g. "meta-llama") are mapped to a shorter slug.
|
|
@@ -51,7 +51,7 @@ const PATTERN_TO_ORIGIN = [
|
|
|
51
51
|
* Extract the origin provider (model creator) from a model ID.
|
|
52
52
|
*
|
|
53
53
|
* The function first attempts to resolve a slash-separated namespace prefix
|
|
54
|
-
* (e.g. `"anthropic/claude-opus-4-
|
|
54
|
+
* (e.g. `"anthropic/claude-opus-4-8"` → `"anthropic"`). When no prefix is
|
|
55
55
|
* present it falls back to a set of well-known ID patterns.
|
|
56
56
|
*
|
|
57
57
|
* @param modelId - Raw model identifier as returned by a provider API.
|
|
@@ -59,11 +59,11 @@ const PATTERN_TO_ORIGIN = [
|
|
|
59
59
|
* cannot be determined.
|
|
60
60
|
*
|
|
61
61
|
* @example
|
|
62
|
-
* extractOriginProvider("anthropic/claude-opus-4-
|
|
62
|
+
* extractOriginProvider("anthropic/claude-opus-4-8") // "anthropic"
|
|
63
63
|
* extractOriginProvider("openai/gpt-4o") // "openai"
|
|
64
64
|
* extractOriginProvider("google/gemini-2.5-pro") // "google"
|
|
65
65
|
* extractOriginProvider("meta-llama/llama-3.3-70b") // "meta"
|
|
66
|
-
* extractOriginProvider("claude-opus-4-
|
|
66
|
+
* extractOriginProvider("claude-opus-4-8") // "anthropic"
|
|
67
67
|
* extractOriginProvider("gpt-4o") // "openai"
|
|
68
68
|
* extractOriginProvider("gemini-2.5-pro") // "google"
|
|
69
69
|
* extractOriginProvider("unknown-model") // undefined
|
|
@@ -103,10 +103,10 @@ export function extractOriginProvider(modelId) {
|
|
|
103
103
|
* @returns Cleaned base model ID ready for deduplication comparisons.
|
|
104
104
|
*
|
|
105
105
|
* @example
|
|
106
|
-
* normalizeModelId("anthropic/claude-opus-4-
|
|
106
|
+
* normalizeModelId("anthropic/claude-opus-4-8") // "claude-opus-4-8"
|
|
107
107
|
* normalizeModelId("openai/gpt-4o-2024-11-20") // "gpt-4o"
|
|
108
108
|
* normalizeModelId("meta-llama/llama-3.3-70b-instruct") // "llama-3.3-70b-instruct"
|
|
109
|
-
* normalizeModelId("claude-opus-4-
|
|
109
|
+
* normalizeModelId("claude-opus-4-8") // "claude-opus-4-8"
|
|
110
110
|
* normalizeModelId("llama3.3:latest") // "llama3.3"
|
|
111
111
|
*/
|
|
112
112
|
export function normalizeModelId(modelId) {
|
|
@@ -131,11 +131,11 @@ export function normalizeModelId(modelId) {
|
|
|
131
131
|
*
|
|
132
132
|
* Different providers format the same Claude / GPT / Gemini version
|
|
133
133
|
* differently — OpenRouter uses dots (`claude-sonnet-4.6`), aliases and
|
|
134
|
-
* litellm use dashes (`claude-sonnet-
|
|
134
|
+
* litellm use dashes (`claude-sonnet-5`), some services use underscores.
|
|
135
135
|
* `normalizeModelId` is intentionally non-destructive and preserves the
|
|
136
136
|
* original separators because callers serialize its output. This helper
|
|
137
137
|
* is for *matching* only: collapse every `<digit><sep><digit>` to a dash
|
|
138
|
-
* so that `modelRoutes("claude-sonnet-
|
|
138
|
+
* so that `modelRoutes("claude-sonnet-5")` finds the OpenRouter entry
|
|
139
139
|
* `anthropic/claude-sonnet-4.6`.
|
|
140
140
|
*/
|
|
141
141
|
export function matchableModelId(modelId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-catalog.d.ts","sourceRoot":"","sources":["../src/provider-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExG;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uDAAuD;IACvD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,MAAM,EAAE,cAAc,CAAC;IACvB,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,SAAS,EAAE,iBAAiB,CAAC;IAC7B,wDAAwD;IACxD,cAAc,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,kBAAkB,EAAE,OAAO,CAAC;IAC5B,8FAA8F;IAC9F,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,8EAA8E;IAC9E,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,oFAAoF;IACpF,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,qBAAqB,CAAC;CACtC;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,kBAAkB,
|
|
1
|
+
{"version":3,"file":"provider-catalog.d.ts","sourceRoot":"","sources":["../src/provider-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExG;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uDAAuD;IACvD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,MAAM,EAAE,cAAc,CAAC;IACvB,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,SAAS,EAAE,iBAAiB,CAAC;IAC7B,wDAAwD;IACxD,cAAc,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,kBAAkB,EAAE,OAAO,CAAC;IAC5B,8FAA8F;IAC9F,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,8EAA8E;IAC9E,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,oFAAoF;IACpF,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,qBAAqB,CAAC;CACtC;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,kBAAkB,EAoYhD,CAAC;AAWX;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAGtF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,kBAAkB,GAAG,SAAS,CAGpG;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,kBAAkB,EAAE,CAE9D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAChC,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,UAAU,EAAE,MAAM,GAAG,SAAS,GAC5B,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAW3D;AAED,yEAAyE;AACzE,wBAAgB,mCAAmC,CAClD,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE,oBAAoB,GAAG,6BAA6B,CAAC,GACxF,OAAO,CAET;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,qBAAqB,GAAG,SAAS,CAE1G;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEvE"}
|
package/dist/provider-catalog.js
CHANGED
|
@@ -141,6 +141,32 @@ export const PROVIDER_CATALOG = [
|
|
|
141
141
|
credentialEnvVars: [],
|
|
142
142
|
cacheBehavior: { mode: "none", documented: true, notes: "Local runtime — KV-cache is in-process, not a billable prompt cache." },
|
|
143
143
|
},
|
|
144
|
+
{
|
|
145
|
+
providerId: "lmstudio",
|
|
146
|
+
canonicalProviderId: "lmstudio",
|
|
147
|
+
aliases: ["lm-studio", "lm_studio"],
|
|
148
|
+
name: "LM Studio",
|
|
149
|
+
origin: "local",
|
|
150
|
+
isLocal: true,
|
|
151
|
+
transport: "openai-compatible-http",
|
|
152
|
+
defaultBaseUrl: "http://127.0.0.1:1234",
|
|
153
|
+
credentialRequired: false,
|
|
154
|
+
credentialEnvVars: [],
|
|
155
|
+
cacheBehavior: { mode: "none", documented: true, notes: "Local runtime — KV-cache is in-process, not a billable prompt cache." },
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
providerId: "vllm",
|
|
159
|
+
canonicalProviderId: "vllm",
|
|
160
|
+
aliases: [],
|
|
161
|
+
name: "vLLM",
|
|
162
|
+
origin: "local",
|
|
163
|
+
isLocal: true,
|
|
164
|
+
transport: "openai-compatible-http",
|
|
165
|
+
defaultBaseUrl: "http://127.0.0.1:8000",
|
|
166
|
+
credentialRequired: false,
|
|
167
|
+
credentialEnvVars: [],
|
|
168
|
+
cacheBehavior: { mode: "none", documented: true, notes: "Local runtime — KV-cache is in-process, not a billable prompt cache." },
|
|
169
|
+
},
|
|
144
170
|
{
|
|
145
171
|
providerId: "bedrock",
|
|
146
172
|
canonicalProviderId: "bedrock",
|