@sriinnu/kosha-discovery 0.6.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/README.md +95 -263
  2. package/dist/cli-cmd-model.d.ts +48 -0
  3. package/dist/cli-cmd-model.d.ts.map +1 -0
  4. package/dist/cli-cmd-model.js +231 -0
  5. package/dist/cli-cmd-model.js.map +1 -0
  6. package/dist/cli-cmd-query.d.ts +40 -0
  7. package/dist/cli-cmd-query.d.ts.map +1 -0
  8. package/dist/cli-cmd-query.js +303 -0
  9. package/dist/cli-cmd-query.js.map +1 -0
  10. package/dist/cli-commands.d.ts +65 -75
  11. package/dist/cli-commands.d.ts.map +1 -1
  12. package/dist/cli-commands.js +93 -543
  13. package/dist/cli-commands.js.map +1 -1
  14. package/dist/cli-format.d.ts +32 -0
  15. package/dist/cli-format.d.ts.map +1 -1
  16. package/dist/cli-format.js +51 -0
  17. package/dist/cli-format.js.map +1 -1
  18. package/dist/cli-help.d.ts +19 -0
  19. package/dist/cli-help.d.ts.map +1 -0
  20. package/dist/cli-help.js +150 -0
  21. package/dist/cli-help.js.map +1 -0
  22. package/dist/cli.js +4 -1
  23. package/dist/cli.js.map +1 -1
  24. package/dist/discovery/anthropic.d.ts +8 -1
  25. package/dist/discovery/anthropic.d.ts.map +1 -1
  26. package/dist/discovery/anthropic.js +26 -3
  27. package/dist/discovery/anthropic.js.map +1 -1
  28. package/dist/discovery/base.d.ts +26 -0
  29. package/dist/discovery/base.d.ts.map +1 -1
  30. package/dist/discovery/base.js +55 -2
  31. package/dist/discovery/base.js.map +1 -1
  32. package/dist/discovery/free-tier.d.ts +31 -0
  33. package/dist/discovery/free-tier.d.ts.map +1 -0
  34. package/dist/discovery/free-tier.js +47 -0
  35. package/dist/discovery/free-tier.js.map +1 -0
  36. package/dist/discovery/google.d.ts +8 -1
  37. package/dist/discovery/google.d.ts.map +1 -1
  38. package/dist/discovery/google.js +25 -3
  39. package/dist/discovery/google.js.map +1 -1
  40. package/dist/discovery/index.d.ts +3 -6
  41. package/dist/discovery/index.d.ts.map +1 -1
  42. package/dist/discovery/index.js +36 -55
  43. package/dist/discovery/index.js.map +1 -1
  44. package/dist/discovery/litellm-seed.d.ts +32 -0
  45. package/dist/discovery/litellm-seed.d.ts.map +1 -0
  46. package/dist/discovery/litellm-seed.js +252 -0
  47. package/dist/discovery/litellm-seed.js.map +1 -0
  48. package/dist/discovery/modelsdev-catalog.d.ts +95 -0
  49. package/dist/discovery/modelsdev-catalog.d.ts.map +1 -0
  50. package/dist/discovery/modelsdev-catalog.js +131 -0
  51. package/dist/discovery/modelsdev-catalog.js.map +1 -0
  52. package/dist/discovery/modelsdev-seed.d.ts +19 -0
  53. package/dist/discovery/modelsdev-seed.d.ts.map +1 -0
  54. package/dist/discovery/modelsdev-seed.js +203 -0
  55. package/dist/discovery/modelsdev-seed.js.map +1 -0
  56. package/dist/discovery/openai-compatible.d.ts.map +1 -1
  57. package/dist/discovery/openai-compatible.js +12 -1
  58. package/dist/discovery/openai-compatible.js.map +1 -1
  59. package/dist/discovery/openai.d.ts +9 -1
  60. package/dist/discovery/openai.d.ts.map +1 -1
  61. package/dist/discovery/openai.js +31 -8
  62. package/dist/discovery/openai.js.map +1 -1
  63. package/dist/discovery/promo-overrides.d.ts +54 -0
  64. package/dist/discovery/promo-overrides.d.ts.map +1 -0
  65. package/dist/discovery/promo-overrides.js +74 -0
  66. package/dist/discovery/promo-overrides.js.map +1 -0
  67. package/dist/discovery/public-seed.d.ts +30 -0
  68. package/dist/discovery/public-seed.d.ts.map +1 -0
  69. package/dist/discovery/public-seed.js +51 -0
  70. package/dist/discovery/public-seed.js.map +1 -0
  71. package/dist/discovery-contract.d.ts +14 -2
  72. package/dist/discovery-contract.d.ts.map +1 -1
  73. package/dist/discovery-contract.js +28 -0
  74. package/dist/discovery-contract.js.map +1 -1
  75. package/dist/enrichment/litellm-catalog.d.ts +81 -0
  76. package/dist/enrichment/litellm-catalog.d.ts.map +1 -0
  77. package/dist/enrichment/litellm-catalog.js +129 -0
  78. package/dist/enrichment/litellm-catalog.js.map +1 -0
  79. package/dist/enrichment/litellm.d.ts +9 -2
  80. package/dist/enrichment/litellm.d.ts.map +1 -1
  81. package/dist/enrichment/litellm.js +168 -20
  82. package/dist/enrichment/litellm.js.map +1 -1
  83. package/dist/index.d.ts +3 -1
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +2 -0
  86. package/dist/index.js.map +1 -1
  87. package/dist/mcp-server.d.ts +18 -0
  88. package/dist/mcp-server.d.ts.map +1 -0
  89. package/dist/mcp-server.js +293 -0
  90. package/dist/mcp-server.js.map +1 -0
  91. package/dist/model-features.d.ts +77 -0
  92. package/dist/model-features.d.ts.map +1 -0
  93. package/dist/model-features.js +245 -0
  94. package/dist/model-features.js.map +1 -0
  95. package/dist/provider-catalog.d.ts +9 -0
  96. package/dist/provider-catalog.d.ts.map +1 -1
  97. package/dist/provider-catalog.js +22 -0
  98. package/dist/provider-catalog.js.map +1 -1
  99. package/dist/proxy.d.ts +31 -0
  100. package/dist/proxy.d.ts.map +1 -0
  101. package/dist/proxy.js +193 -0
  102. package/dist/proxy.js.map +1 -0
  103. package/dist/registry-discovery.d.ts.map +1 -1
  104. package/dist/registry-discovery.js +12 -2
  105. package/dist/registry-discovery.js.map +1 -1
  106. package/dist/registry-runtime.d.ts +40 -1
  107. package/dist/registry-runtime.d.ts.map +1 -1
  108. package/dist/registry-runtime.js +502 -30
  109. package/dist/registry-runtime.js.map +1 -1
  110. package/dist/registry-selection.js +2 -0
  111. package/dist/registry-selection.js.map +1 -1
  112. package/dist/registry.d.ts +9 -0
  113. package/dist/registry.d.ts.map +1 -1
  114. package/dist/registry.js +11 -1
  115. package/dist/registry.js.map +1 -1
  116. package/dist/server.d.ts +2 -0
  117. package/dist/server.d.ts.map +1 -1
  118. package/dist/server.js +6 -0
  119. package/dist/server.js.map +1 -1
  120. package/dist/tokenizer-family.d.ts +39 -0
  121. package/dist/tokenizer-family.d.ts.map +1 -0
  122. package/dist/tokenizer-family.js +92 -0
  123. package/dist/tokenizer-family.js.map +1 -0
  124. package/dist/types.d.ts +186 -0
  125. package/dist/types.d.ts.map +1 -1
  126. package/logo.png +0 -0
  127. package/package.json +15 -3
@@ -1 +1 @@
1
- {"version":3,"file":"litellm.js","sourceRoot":"","sources":["../../src/enrichment/litellm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"litellm.js","sourceRoot":"","sources":["../../src/enrichment/litellm.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -11,9 +11,11 @@ export { KoshaCache } from "./cache.js";
11
11
  export { DISCOVERY_SCHEMA_VERSION, discoveryRoles, makeModelKey, rawCapabilitiesForModel, trustedCapabilitiesForModel, } from "./discovery-contract.js";
12
12
  export type { DiscoveryBindingHintsV1, DiscoveryBindingQuery, DiscoveryChangeV1, DiscoveryCheapestCandidateV1, DiscoveryCheapestResultV1, DiscoveryCredentialPrompt, DiscoveryDeltaV1, DiscoveryHealthRecord, DiscoveryModelV1, DiscoveryProviderV1, DiscoveryRoleDefinition, DiscoverySnapshotV1, TrustedCapability, } from "./discovery-contract.js";
13
13
  export { extractModelVersion, extractOriginProvider, normalizeModelId } from "./normalize.js";
14
+ export { inferTokenizerFamily } from "./tokenizer-family.js";
15
+ export { inferParallelToolCalls, inferStructuredOutputModes, inferToolDialect } from "./model-features.js";
14
16
  export { getProviderDescriptor, isLocalProvider, listProviderDescriptors, normalizeProviderId, PROVIDER_CATALOG, } from "./provider-catalog.js";
15
17
  export type { ProviderDescriptor } from "./provider-catalog.js";
16
- export type { ComputeTarget, LocalRuntimeMetadata, ModelCard, ProviderInfo, ProviderRoleInfo, DiscoveryError, DiscoveryOptions, KoshaConfig, LatestDiscoveryOptions, LatestDiscoveryResult, ModelMode, ModelPricing, ModelRoleCard, RoleQueryOptions, CheapestModelOptions, CheapestModelMatch, CheapestModelResult, ProviderCredentialPrompt, PricingMetric, ModelRouteInfo, CapabilitySummary, CredentialResult, ProviderDiscoverer, Enricher, ProviderOrigin, ProviderTransport, } from "./types.js";
18
+ export type { ComputeTarget, LocalRuntimeMetadata, ModelCard, ModelStatus, ProviderInfo, ProviderRoleInfo, DiscoveryError, DiscoveryOptions, KoshaConfig, LatestDiscoveryOptions, LatestDiscoveryResult, ModelMode, ModelPricing, ModelRoleCard, RoleQueryOptions, CheapestModelOptions, CheapestModelMatch, CheapestModelResult, ProviderCredentialPrompt, PricingMetric, ModelRouteInfo, CapabilitySummary, CredentialResult, ProviderDiscoverer, Enricher, ProviderOrigin, ProviderTransport, StructuredOutputMode, ToolDialect, } from "./types.js";
17
19
  /**
18
20
  * Convenience factory: creates a ModelRegistry and runs discovery in one call.
19
21
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EACN,wBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,uBAAuB,EACvB,2BAA2B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACX,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EACN,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,GAChB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,YAAY,EACX,aAAa,EACb,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,sBAAsB,EACtB,qBAAqB,EACrB,SAAS,EACT,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,iBAAiB,GACjB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,YAAY,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,eAAe,EAAE,aAAa,CAAC,CAM3H"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EACN,wBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,uBAAuB,EACvB,2BAA2B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACX,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC3G,OAAO,EACN,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,GAChB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,YAAY,EACX,aAAa,EACb,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,sBAAsB,EACtB,qBAAqB,EACrB,SAAS,EACT,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,GACX,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,YAAY,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,eAAe,EAAE,aAAa,CAAC,CAM3H"}
package/dist/index.js CHANGED
@@ -10,6 +10,8 @@ export { AliasResolver, DEFAULT_ALIASES } from "./aliases.js";
10
10
  export { KoshaCache } from "./cache.js";
11
11
  export { DISCOVERY_SCHEMA_VERSION, discoveryRoles, makeModelKey, rawCapabilitiesForModel, trustedCapabilitiesForModel, } from "./discovery-contract.js";
12
12
  export { extractModelVersion, extractOriginProvider, normalizeModelId } from "./normalize.js";
13
+ export { inferTokenizerFamily } from "./tokenizer-family.js";
14
+ export { inferParallelToolCalls, inferStructuredOutputModes, inferToolDialect } from "./model-features.js";
13
15
  export { getProviderDescriptor, isLocalProvider, listProviderDescriptors, normalizeProviderId, PROVIDER_CATALOG, } from "./provider-catalog.js";
14
16
  /**
15
17
  * Convenience factory: creates a ModelRegistry and runs discovery in one call.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EACN,wBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,uBAAuB,EACvB,2BAA2B,GAC3B,MAAM,yBAAyB,CAAC;AAgBjC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EACN,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,GAChB,MAAM,uBAAuB,CAAC;AA+B/B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAyC;IAC1E,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC1B,OAAO,QAAQ,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EACN,wBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,uBAAuB,EACvB,2BAA2B,GAC3B,MAAM,yBAAyB,CAAC;AAgBjC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC3G,OAAO,EACN,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,GAChB,MAAM,uBAAuB,CAAC;AAkC/B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAyC;IAC1E,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC1B,OAAO,QAAQ,CAAC;AACjB,CAAC"}
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * kosha-discovery — MCP server (stdio transport, protocol 2024-11-05).
4
+ *
5
+ * Exposes the local kosha registry as MCP tools so AI agents can query
6
+ * model pricing, routing, and health without HTTP.
7
+ *
8
+ * Tools:
9
+ * kosha_query_models — list / filter models
10
+ * kosha_cheapest_model — cheapest model meeting requirements
11
+ * kosha_model_detail — full detail for one model
12
+ * kosha_model_routes — all provider routes for a model
13
+ * kosha_resolve_alias — alias → canonical ID
14
+ * kosha_provider_health — provider auth + error status
15
+ * @module
16
+ */
17
+ export {};
18
+ //# sourceMappingURL=mcp-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG"}
@@ -0,0 +1,293 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * kosha-discovery — MCP server (stdio transport, protocol 2024-11-05).
4
+ *
5
+ * Exposes the local kosha registry as MCP tools so AI agents can query
6
+ * model pricing, routing, and health without HTTP.
7
+ *
8
+ * Tools:
9
+ * kosha_query_models — list / filter models
10
+ * kosha_cheapest_model — cheapest model meeting requirements
11
+ * kosha_model_detail — full detail for one model
12
+ * kosha_model_routes — all provider routes for a model
13
+ * kosha_resolve_alias — alias → canonical ID
14
+ * kosha_provider_health — provider auth + error status
15
+ * @module
16
+ */
17
+ import { ModelRegistry } from "./registry.js";
18
+ // ---------------------------------------------------------------------------
19
+ // Tool definitions (MCP schema)
20
+ // ---------------------------------------------------------------------------
21
+ const TOOLS = [
22
+ {
23
+ name: "kosha_query_models",
24
+ 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.",
25
+ inputSchema: {
26
+ type: "object",
27
+ properties: {
28
+ provider: { type: "string", description: "Provider ID (e.g. anthropic, openai, groq, openrouter)" },
29
+ mode: {
30
+ type: "string",
31
+ enum: ["chat", "embedding", "image", "audio"],
32
+ description: "Primary model mode",
33
+ },
34
+ capability: {
35
+ type: "string",
36
+ description: "Capability tag (e.g. vision, tool_use, code, reasoning)",
37
+ },
38
+ limit: { type: "number", description: "Max results to return (default 20)" },
39
+ },
40
+ },
41
+ },
42
+ {
43
+ name: "kosha_cheapest_model",
44
+ description: "Find the cheapest AI model that meets your requirements. Returns ranked matches with per-million token pricing. Use this before routing a request to pick the most cost-effective option.",
45
+ inputSchema: {
46
+ type: "object",
47
+ properties: {
48
+ capability: {
49
+ type: "string",
50
+ description: "Required capability (e.g. tool_use, vision, code, reasoning)",
51
+ },
52
+ min_context_k: {
53
+ type: "number",
54
+ description: "Minimum context window in thousands of tokens (e.g. 128 means 128k)",
55
+ },
56
+ provider: { type: "string", description: "Pin to a specific provider" },
57
+ limit: { type: "number", description: "Number of ranked results (default 5)" },
58
+ },
59
+ },
60
+ },
61
+ {
62
+ name: "kosha_model_detail",
63
+ description: "Get full details for a specific model — pricing, capabilities, context window, tool dialect, structured output modes, status, and deprecation info.",
64
+ inputSchema: {
65
+ type: "object",
66
+ properties: {
67
+ model: {
68
+ type: "string",
69
+ description: "Model ID or alias (e.g. sonnet, claude-sonnet-4-6, gpt-4o, deepseek-v3)",
70
+ },
71
+ },
72
+ required: ["model"],
73
+ },
74
+ },
75
+ {
76
+ name: "kosha_model_routes",
77
+ description: "List all serving-layer routes for a model (direct provider, OpenRouter, Bedrock, Vertex, etc.) with pricing per route. Useful for finding the cheapest or most available path to a specific model.",
78
+ inputSchema: {
79
+ type: "object",
80
+ properties: {
81
+ model: { type: "string", description: "Model ID or alias" },
82
+ },
83
+ required: ["model"],
84
+ },
85
+ },
86
+ {
87
+ name: "kosha_resolve_alias",
88
+ description: "Resolve a model alias or short name to its canonical ID and provider.",
89
+ inputSchema: {
90
+ type: "object",
91
+ properties: {
92
+ alias: {
93
+ type: "string",
94
+ description: "Short name or alias (e.g. sonnet, opus, haiku, gpt-4o-mini, gemini-flash)",
95
+ },
96
+ },
97
+ required: ["alias"],
98
+ },
99
+ },
100
+ {
101
+ name: "kosha_provider_health",
102
+ description: "Get authentication and health status for all discovered providers. Shows which providers are active, which need credentials, and any recent discovery errors.",
103
+ inputSchema: {
104
+ type: "object",
105
+ properties: {
106
+ provider: { type: "string", description: "Filter to a specific provider ID" },
107
+ },
108
+ },
109
+ },
110
+ ];
111
+ // ---------------------------------------------------------------------------
112
+ // Registry — load in background on startup so first tool call is fast
113
+ // ---------------------------------------------------------------------------
114
+ let registryInstance = null;
115
+ const registryReady = (async () => {
116
+ const reg = new ModelRegistry();
117
+ await reg.discover();
118
+ registryInstance = reg;
119
+ return reg;
120
+ })();
121
+ async function getRegistry() {
122
+ return registryInstance ?? registryReady;
123
+ }
124
+ // ---------------------------------------------------------------------------
125
+ // Tool handlers
126
+ // ---------------------------------------------------------------------------
127
+ async function callTool(name, args) {
128
+ const reg = await getRegistry();
129
+ switch (name) {
130
+ case "kosha_query_models": {
131
+ const models = reg.models({
132
+ provider: args.provider,
133
+ mode: args.mode,
134
+ capability: args.capability,
135
+ });
136
+ const limit = typeof args.limit === "number" ? args.limit : 20;
137
+ return models.slice(0, limit).map((m) => ({
138
+ id: m.id,
139
+ provider: m.provider,
140
+ name: m.name,
141
+ mode: m.mode,
142
+ contextWindow: m.contextWindow,
143
+ capabilities: m.capabilities,
144
+ pricing: m.pricing ?? null,
145
+ }));
146
+ }
147
+ case "kosha_cheapest_model": {
148
+ const minContext = typeof args.min_context_k === "number" ? args.min_context_k * 1_000 : undefined;
149
+ const result = reg.cheapestModels({
150
+ mode: "chat",
151
+ capability: args.capability,
152
+ provider: args.provider,
153
+ limit: typeof args.limit === "number" ? args.limit : 5,
154
+ });
155
+ const matches = minContext
156
+ ? result.matches.filter((m) => m.model.contextWindow >= minContext)
157
+ : result.matches;
158
+ return {
159
+ matches: matches.map((m) => ({
160
+ id: m.model.id,
161
+ provider: m.model.provider,
162
+ name: m.model.name,
163
+ contextWindow: m.model.contextWindow,
164
+ pricing: m.model.pricing ?? null,
165
+ score: m.score,
166
+ priceMetric: m.priceMetric,
167
+ })),
168
+ missingCredentials: result.missingCredentials.map((c) => c.providerId),
169
+ };
170
+ }
171
+ case "kosha_model_detail": {
172
+ const model = reg.model(args.model);
173
+ if (!model)
174
+ return { error: `model '${args.model}' not found` };
175
+ const provider = reg.provider(model.provider);
176
+ return {
177
+ ...model,
178
+ baseUrl: provider?.baseUrl,
179
+ authenticated: provider?.authenticated ?? false,
180
+ };
181
+ }
182
+ case "kosha_model_routes": {
183
+ const routes = reg.modelRouteInfo(args.model);
184
+ if (routes.length === 0)
185
+ return { error: `model '${args.model}' not found` };
186
+ return routes.map((r) => ({
187
+ provider: r.provider,
188
+ modelId: r.model.id,
189
+ baseUrl: r.baseUrl,
190
+ isDirect: r.isDirect,
191
+ isPreferred: r.isPreferred,
192
+ pricing: r.model.pricing ?? null,
193
+ originPricing: r.model.originPricing ?? null,
194
+ }));
195
+ }
196
+ case "kosha_resolve_alias": {
197
+ const resolved = reg.resolve(args.alias);
198
+ const model = reg.model(resolved);
199
+ return {
200
+ alias: args.alias,
201
+ resolved,
202
+ isAlias: resolved !== args.alias,
203
+ provider: model?.provider ?? null,
204
+ name: model?.name ?? null,
205
+ };
206
+ }
207
+ case "kosha_provider_health": {
208
+ const providers = reg.providers_list();
209
+ const errors = reg.discoveryErrors();
210
+ const errorByProvider = new Map(errors.map((e) => [e.providerId, e.error]));
211
+ const list = args.provider
212
+ ? providers.filter((p) => p.id === args.provider)
213
+ : providers;
214
+ return list.map((p) => ({
215
+ id: p.id,
216
+ name: p.name,
217
+ authenticated: p.authenticated,
218
+ credentialSource: p.credentialSource ?? null,
219
+ modelCount: p.models.length,
220
+ lastRefreshed: p.lastRefreshed ?? null,
221
+ lastError: errorByProvider.get(p.id) ?? null,
222
+ }));
223
+ }
224
+ default:
225
+ throw new Error(`unknown tool: ${name}`);
226
+ }
227
+ }
228
+ // ---------------------------------------------------------------------------
229
+ // Stdio JSON-RPC loop
230
+ // ---------------------------------------------------------------------------
231
+ function send(msg) {
232
+ process.stdout.write(JSON.stringify(msg) + "\n");
233
+ }
234
+ function respond(id, result) {
235
+ send({ jsonrpc: "2.0", id: id ?? null, result });
236
+ }
237
+ function respondError(id, code, message) {
238
+ send({ jsonrpc: "2.0", id: id ?? null, error: { code, message } });
239
+ }
240
+ async function handleMessage(msg) {
241
+ const { id, method, params } = msg;
242
+ // Notifications carry no id — no response expected.
243
+ if (!method || method.startsWith("notifications/"))
244
+ return;
245
+ switch (method) {
246
+ case "initialize":
247
+ respond(id, {
248
+ protocolVersion: "2024-11-05",
249
+ capabilities: { tools: {} },
250
+ serverInfo: { name: "kosha", version: "1.0.0" },
251
+ });
252
+ return;
253
+ case "tools/list":
254
+ respond(id, { tools: TOOLS });
255
+ return;
256
+ case "tools/call": {
257
+ const { name, arguments: args = {} } = params;
258
+ try {
259
+ const result = await callTool(name, args);
260
+ respond(id, { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] });
261
+ }
262
+ catch (err) {
263
+ const message = err instanceof Error ? err.message : String(err);
264
+ respondError(id, -32603, message);
265
+ }
266
+ return;
267
+ }
268
+ default:
269
+ respondError(id, -32601, `method not found: ${method}`);
270
+ }
271
+ }
272
+ let buffer = "";
273
+ process.stdin.setEncoding("utf-8");
274
+ process.stdin.on("data", (chunk) => {
275
+ buffer += chunk;
276
+ const lines = buffer.split("\n");
277
+ buffer = lines.pop() ?? "";
278
+ for (const line of lines) {
279
+ const trimmed = line.trim();
280
+ if (!trimmed)
281
+ continue;
282
+ try {
283
+ handleMessage(JSON.parse(trimmed)).catch((err) => {
284
+ process.stderr.write(`[kosha-mcp] ${err}\n`);
285
+ });
286
+ }
287
+ catch {
288
+ // malformed JSON — ignore
289
+ }
290
+ }
291
+ });
292
+ process.stdin.on("end", () => process.exit(0));
293
+ //# sourceMappingURL=mcp-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * kosha-discovery — Tool-dialect and structured-output inference.
3
+ *
4
+ * Tool calling and structured output are two surfaces where every frontier
5
+ * provider has settled on a *different* JSON shape. A consumer that wants
6
+ * to route a single workload across multiple providers has to pick the
7
+ * right adapter per model, and the registry is the natural place to tag
8
+ * that. These helpers return best-effort hints inferred from the origin
9
+ * provider plus the model ID — downstream callers treat them as defaults
10
+ * and override with direct API probes when precision matters.
11
+ * @module
12
+ */
13
+ import type { StructuredOutputMode, ToolDialect } from "./types.js";
14
+ /**
15
+ * Infer the tool-calling dialect a model natively speaks.
16
+ *
17
+ * The return value describes the wire format a consumer must emit to
18
+ * invoke tools on this model. Returns `undefined` when the provider is
19
+ * unknown and the model ID gives no signal — the caller should then
20
+ * fall back to `"openai-tools"` (the de-facto compatibility dialect).
21
+ *
22
+ * Mapping summary:
23
+ * - OpenAI GPT-4.1 / GPT-5 / o-series → `"openai-responses"` (new API)
24
+ * - OpenAI GPT-4 / GPT-4o / GPT-3.5 → `"openai-tools"`
25
+ * - Anthropic Claude 3+ → `"anthropic-tools"`
26
+ * - Google Gemini 1.5+ → `"gemini-functions"`
27
+ * - Cohere Command R / R+ → `"cohere-tools"`
28
+ * - Mistral Large / Small → `"mistral-tools"`
29
+ * - Meta Llama 3.1+ (instruct variants) → `"llama3-tools"`
30
+ * - Embedding / image / audio-only models → `"none"`
31
+ *
32
+ * NOTE on serving-layer proxies: this helper infers the model's *native*
33
+ * dialect from its origin provider. Managed serving layers such as Groq,
34
+ * Together, Fireworks, and OpenRouter expose open-weight models behind
35
+ * an OpenAI-compatible tools API regardless of the underlying family —
36
+ * so if you are calling a Llama 3.1 model through Groq, you should use
37
+ * `"openai-tools"` on the wire, not the `"llama3-tools"` hint returned
38
+ * here. Callers that care about the serving-layer wire format should
39
+ * check `ModelCard.provider` (the serving slug) first and fall back to
40
+ * this inference only for direct-origin routes. A future revision may
41
+ * take `servingProvider` as a second argument.
42
+ *
43
+ * @param originProvider - Model creator slug (e.g. `"anthropic"`).
44
+ * @param modelId - Provider-canonical model ID.
45
+ * @returns Best-effort dialect tag, or `undefined` when no safe guess exists.
46
+ */
47
+ export declare function inferToolDialect(originProvider: string | undefined, modelId: string): ToolDialect | undefined;
48
+ /**
49
+ * Infer the structured-output modes a model supports.
50
+ *
51
+ * Returns an ordered list with the most precise mode first. An empty
52
+ * array means no structured-output enforcement is available and the
53
+ * caller must fall back to prompt-level coercion.
54
+ *
55
+ * Precision ranking: `json-schema` > `response-schema` > `grammar`
56
+ * > `json-mode` > `response-format` > `tool-choice` > `xml`.
57
+ *
58
+ * @param originProvider - Model creator slug.
59
+ * @param modelId - Provider-canonical model ID.
60
+ * @returns Ordered list of supported modes (empty when unknown).
61
+ */
62
+ export declare function inferStructuredOutputModes(originProvider: string | undefined, modelId: string): StructuredOutputMode[];
63
+ /**
64
+ * Best-effort inference for whether a model supports parallel tool calls
65
+ * (multiple tool invocations emitted in a single assistant turn).
66
+ *
67
+ * Frontier models (GPT-4o, Claude 3.5+, Gemini 1.5+) all support this;
68
+ * older tool-capable models (GPT-3.5, early Claude 3) emit tool calls
69
+ * serially. Returns `undefined` when the model does not appear to support
70
+ * tool calling at all.
71
+ *
72
+ * @param originProvider - Model creator slug.
73
+ * @param modelId - Provider-canonical model ID.
74
+ * @returns `true`, `false`, or `undefined` when not tool-capable.
75
+ */
76
+ export declare function inferParallelToolCalls(originProvider: string | undefined, modelId: string): boolean | undefined;
77
+ //# sourceMappingURL=model-features.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-features.d.ts","sourceRoot":"","sources":["../src/model-features.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,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,CA+ExB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACrC,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,OAAO,EAAE,MAAM,GACb,OAAO,GAAG,SAAS,CA0BrB"}