@nemesis-oss/ollama-sdk 1.19.0 → 1.20.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 (46) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +8 -8
  3. package/dist/{anthropic-CAvwqIjx.d.ts → anthropic-BFOC6eI7.d.ts} +7 -1
  4. package/dist/{anthropic-DIPnBwlf.d.cts → anthropic-C2-qaxjI.d.cts} +7 -1
  5. package/dist/{compose-C4QxEZOS.d.cts → compose-BXXgHmrS.d.cts} +1 -1
  6. package/dist/{compose-75UFDzOO.d.ts → compose-DaG83yId.d.ts} +1 -1
  7. package/dist/generated-api.cjs +1 -1
  8. package/dist/generated-api.cjs.map +1 -1
  9. package/dist/generated-api.d.cts +7 -7
  10. package/dist/generated-api.d.ts +7 -7
  11. package/dist/generated-api.js +1 -1
  12. package/dist/generated-api.js.map +1 -1
  13. package/dist/generated-models-schemas.cjs +25 -2
  14. package/dist/generated-models-schemas.cjs.map +1 -1
  15. package/dist/generated-models-schemas.d.cts +97 -5
  16. package/dist/generated-models-schemas.d.ts +97 -5
  17. package/dist/generated-models-schemas.js +24 -3
  18. package/dist/generated-models-schemas.js.map +1 -1
  19. package/dist/generated-runtime.cjs +23 -2
  20. package/dist/generated-runtime.cjs.map +1 -1
  21. package/dist/generated-runtime.d.cts +2 -2
  22. package/dist/generated-runtime.d.ts +2 -2
  23. package/dist/generated-runtime.js +23 -2
  24. package/dist/generated-runtime.js.map +1 -1
  25. package/dist/index.cjs +227 -28
  26. package/dist/index.cjs.map +1 -1
  27. package/dist/index.d.cts +169 -46
  28. package/dist/index.d.ts +169 -46
  29. package/dist/index.js +222 -29
  30. package/dist/index.js.map +1 -1
  31. package/dist/mcp/tools.json +1 -1
  32. package/dist/mcp-generated.cjs +1 -1
  33. package/dist/mcp-generated.cjs.map +1 -1
  34. package/dist/mcp-generated.d.cts +2 -2
  35. package/dist/mcp-generated.d.ts +2 -2
  36. package/dist/mcp-generated.js +1 -1
  37. package/dist/mcp-generated.js.map +1 -1
  38. package/dist/{runtime-C28YEAHC.d.cts → runtime-CpO3H6yy.d.cts} +55 -2
  39. package/dist/{runtime-DYCxYGG-.d.ts → runtime-DPSrPwAa.d.ts} +55 -2
  40. package/dist/skills.cjs.map +1 -1
  41. package/dist/skills.d.cts +3 -3
  42. package/dist/skills.d.ts +3 -3
  43. package/dist/skills.js.map +1 -1
  44. package/dist/{types-Y3u0FtdN.d.cts → types-CnsZ24tm.d.cts} +17 -1
  45. package/dist/{types-Y3u0FtdN.d.ts → types-CnsZ24tm.d.ts} +17 -1
  46. package/package.json +1 -1
@@ -1016,7 +1016,7 @@
1016
1016
  },
1017
1017
  {
1018
1018
  "name": "ollama_usage",
1019
- "description": "Ollama GET /api/usage (native domain)\n\n- Cloud-only account endpoint — targets https://ollama.com, not the local Ollama server.\n- Requires an Ollama Cloud API key (set via OllamaClient credentials).\n- Query parameters (not modeled by the generated runtime): range = 24h | 7d | 30d (server default 7d), scope = self | team (server default self; team scope requires a team admin).\n- Rate limited to 10 requests/minute per user; 429 responses carry a Retry-After header.\n- Use OllamaClient.usage() — the generated NativeApi class does not expose this operation.",
1019
+ "description": "Ollama GET /api/usage (native domain)\n\n- Cloud-only account endpoint — targets https://ollama.com, not the local Ollama server.\n- Requires an Ollama Cloud API key (set via OllamaClient credentials).\n- Query parameters (not modeled by the generated runtime): range = 24h | 7d | 30d (server default 7d), scope = self | team (server default self; team scope requires a team admin), group_by = model (2026-10-22 pin: upstream 2476d5e — groups totals into per-model UsageGroup entries, up to 10 ranked by usage_usd or request_count, with a remainder bucket for the rest).\n- Rate limited to 10 requests/minute per user; 429 responses carry a Retry-After header.\n- Use OllamaClient.usage() — the generated NativeApi class does not expose this operation.",
1020
1020
  "inputSchema": {
1021
1021
  "type": "object",
1022
1022
  "properties": {},
@@ -292,7 +292,7 @@ var init_operations = __esm({
292
292
  notes: [
293
293
  "Cloud-only account endpoint \u2014 targets https://ollama.com, not the local Ollama server.",
294
294
  "Requires an Ollama Cloud API key (set via OllamaClient credentials).",
295
- "Query parameters (not modeled by the generated runtime): range = 24h | 7d | 30d (server default 7d), scope = self | team (server default self; team scope requires a team admin).",
295
+ "Query parameters (not modeled by the generated runtime): range = 24h | 7d | 30d (server default 7d), scope = self | team (server default self; team scope requires a team admin), group_by = model (2026-10-22 pin: upstream 2476d5e \u2014 groups totals into per-model UsageGroup entries, up to 10 ranked by usage_usd or request_count, with a remainder bucket for the rest).",
296
296
  "Rate limited to 10 requests/minute per user; 429 responses carry a Retry-After header.",
297
297
  "Use OllamaClient.usage() \u2014 the generated NativeApi class does not expose this operation."
298
298
  ]
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/generated/api/operations.ts","../src/mcp/generated-bridge.ts"],"names":["dirname","fileURLToPath","resolve","readFileSync"],"mappings":"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","file":"mcp-generated.cjs","sourcesContent":["/**\n * AUTO-GENERATED by `npm run contract:generate`. DO NOT EDIT.\n * Source: contracts/ir/ollama.ir.json (canonical Ollama IR).\n * Each OperationDefinition captures what Ollama exposes; the runtime\n * in src/generated/runtime/runtime.ts captures how the SDK behaves.\n */\n\nimport type { OperationDefinition } from '../runtime/operation-definition.js';\n\nexport const balanceOp = {\n operationId: 'balance',\n method: 'GET',\n path: '/api/balance',\n response: { $ref: '#/schemas/BalanceResponse' },\n environment: { local: false, cloud: true },\n host: 'https://ollama.com',\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Cloud-only account endpoint — targets https://ollama.com, not the local Ollama server.',\n 'Requires an Ollama Cloud API key (set via OllamaClient credentials).',\n 'Takes no parameters. For usage history see the usage operation.',\n 'Rate limited to 10 requests/minute per user; 429 responses carry a Retry-After header.',\n 'Use OllamaClient.balance() — the generated NativeApi class does not expose this operation.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const blobsOp = {\n operationId: 'blobs',\n method: 'HEAD',\n path: '/api/blobs/{digest}',\n environment: { local: true, cloud: false },\n parameters: [{ name: 'digest', in: 'path', required: true, schema: { type: 'string' } }],\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'HEAD-only endpoint for blob existence checks; declared in OpenAPI but not in the legacy parity manifest.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const chatOp = {\n operationId: 'chat',\n method: 'POST',\n path: '/api/chat',\n request: { $ref: '#/schemas/ChatRequest' },\n response: { $ref: '#/schemas/ChatResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: {\n thinking: 'model-dependent',\n tools: 'model-dependent',\n vision: 'model-dependent',\n structuredOutput: 'supported',\n logprobs: 'supported',\n },\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Use /api/show to discover model-specific thinking values and defaults.',\n 'Structured output (format field) is rejected by Ollama Cloud.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const copyOp = {\n operationId: 'copy',\n method: 'POST',\n path: '/api/copy',\n request: { $ref: '#/schemas/CopyRequest' },\n response: { $ref: '#/schemas/StatusResponse' },\n environment: { local: true, cloud: false },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const createOp = {\n operationId: 'create',\n method: 'POST',\n path: '/api/create',\n request: { $ref: '#/schemas/CreateRequest' },\n response: { $ref: '#/schemas/StatusResponse' },\n environment: { local: true, cloud: false },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: { thinking: 'unsupported', tools: 'unsupported' },\n status: { documented: true },\n domain: 'native',\n notes: ['Model creation is local-only; Ollama Cloud does not support it.'],\n} as const satisfies OperationDefinition;\n\nexport const createBlobOp = {\n operationId: 'createBlob',\n method: 'POST',\n path: '/api/blobs/{digest}',\n environment: { local: true, cloud: false },\n parameters: [{ name: 'digest', in: 'path', required: true, schema: { type: 'string' } }],\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'POST endpoint for blob creation; takes a binary body (application/octet-stream).',\n 'Handled by OllamaClient.createBlob() — the generated NativeApi does not expose this operation because the runtime JSON-encodes request bodies.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const deleteOp = {\n operationId: 'delete',\n method: 'DELETE',\n path: '/api/delete',\n request: { $ref: '#/schemas/DeleteRequest' },\n environment: { local: true, cloud: false },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const embedOp = {\n operationId: 'embed',\n method: 'POST',\n path: '/api/embed',\n request: { $ref: '#/schemas/EmbedRequest' },\n response: { $ref: '#/schemas/EmbedResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: { embeddings: 'supported' },\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const generateOp = {\n operationId: 'generate',\n method: 'POST',\n path: '/api/generate',\n request: { $ref: '#/schemas/GenerateRequest' },\n response: { $ref: '#/schemas/GenerateResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: {\n thinking: 'model-dependent',\n vision: 'supported',\n structuredOutput: 'supported',\n logprobs: 'supported',\n },\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const psOp = {\n operationId: 'ps',\n method: 'GET',\n path: '/api/ps',\n response: { $ref: '#/schemas/PsResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const pullOp = {\n operationId: 'pull',\n method: 'POST',\n path: '/api/pull',\n request: { $ref: '#/schemas/PullRequest' },\n response: { $ref: '#/schemas/StatusResponse' },\n environment: { local: true, cloud: false },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const pushOp = {\n operationId: 'push',\n method: 'POST',\n path: '/api/push',\n request: { $ref: '#/schemas/PushRequest' },\n response: { $ref: '#/schemas/StatusResponse' },\n environment: { local: true, cloud: false },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const showOp = {\n operationId: 'show',\n method: 'POST',\n path: '/api/show',\n request: { $ref: '#/schemas/ShowRequest' },\n response: { $ref: '#/schemas/ShowResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Capabilities source: /api/show is the runtime source of truth for model-dependent capability values (tools, vision, thinking, embeddings).',\n ],\n} as const satisfies OperationDefinition;\n\nexport const systemOneOp = {\n operationId: 'systemOne',\n method: 'POST',\n path: '/v1/systemone',\n request: { $ref: '#/schemas/SystemOneRequest' },\n response: { $ref: '#/schemas/SystemOneResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {\n thinking: 'unsupported',\n tools: 'unsupported',\n vision: 'model-dependent',\n structuredOutput: 'unsupported',\n logprobs: 'unsupported',\n embeddings: 'unsupported',\n },\n constraints: {\n minOllamaVersion: '0.35.0',\n maxRequestBytes: 65536,\n maxRequestBytesWithImages: 33554432,\n },\n status: { documented: true, experimental: true },\n domain: 'native',\n notes: [\n 'Local and cloud: model accepts cloud models (e.g. clef:cloud); cloud models require Ollama >= 0.40.5 or the hosted https://ollama.com endpoint.',\n 'Local dual cap: text and schema (excluding images) within 64 KiB AND the whole request within 32 MiB, including base64 and JSON overhead.',\n \"Cloud requests: paid plan or usage credits required; up to 64 questions named with up to 100 ASCII letters, digits, `_`, `.`, or `-`; up to 4 images of at most 4 MiB and 16 megapixels each (8 MiB total); requests within 13 MiB; input within the model's 65,536-token context window.\",\n '401 when a cloud model is requested without signing in or with an invalid API key (through a local server the response includes a signin_url); 402 when the cloud model is not included in the Free plan or a payment fails.',\n 'No tools, no generation controls (temperature, top_p, etc.).',\n 'Vision is model-dependent: images are accepted by vision-weighted models (Clef/Clef Flash) but not by text-only models.',\n 'Experimental: behavioral surface may change between Ollama releases.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const tagsOp = {\n operationId: 'tags',\n method: 'GET',\n path: '/api/tags',\n response: { $ref: '#/schemas/ListResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const usageOp = {\n operationId: 'usage',\n method: 'GET',\n path: '/api/usage',\n response: { $ref: '#/schemas/UsageResponse' },\n environment: { local: false, cloud: true },\n host: 'https://ollama.com',\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Cloud-only account endpoint — targets https://ollama.com, not the local Ollama server.',\n 'Requires an Ollama Cloud API key (set via OllamaClient credentials).',\n 'Query parameters (not modeled by the generated runtime): range = 24h | 7d | 30d (server default 7d), scope = self | team (server default self; team scope requires a team admin).',\n 'Rate limited to 10 requests/minute per user; 429 responses carry a Retry-After header.',\n 'Use OllamaClient.usage() — the generated NativeApi class does not expose this operation.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const versionOp = {\n operationId: 'version',\n method: 'GET',\n path: '/api/version',\n response: { $ref: '#/schemas/VersionResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const webFetchOp = {\n operationId: 'webFetch',\n method: 'POST',\n path: '/api/web_fetch',\n request: { $ref: '#/schemas/WebFetchRequest' },\n response: { $ref: '#/schemas/WebFetchResponse' },\n environment: { local: false, cloud: true },\n host: 'https://ollama.com',\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Cloud-only capability endpoint — targets https://ollama.com, not the local Ollama server.',\n 'Requires an Ollama Cloud API key (set via OllamaClient credentials).',\n 'Use OllamaClient.webFetch() — the generated NativeApi class does not expose this operation.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const webSearchOp = {\n operationId: 'webSearch',\n method: 'POST',\n path: '/api/web_search',\n request: { $ref: '#/schemas/WebSearchRequest' },\n response: { $ref: '#/schemas/WebSearchResponse' },\n environment: { local: false, cloud: true },\n host: 'https://ollama.com',\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Cloud-only capability endpoint — targets https://ollama.com, not the local Ollama server.',\n 'Requires an Ollama Cloud API key (set via OllamaClient credentials).',\n 'Use OllamaClient.webSearch() — the generated NativeApi class does not expose this operation.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const openaiChatCompletionsOp = {\n operationId: 'openaiChatCompletions',\n method: 'POST',\n path: '/v1/chat/completions',\n environment: { local: true, cloud: true },\n transport: { mode: 'sse', streaming: true, streamingDefault: false },\n capabilities: {\n thinking: 'model-dependent',\n tools: 'model-dependent',\n vision: 'model-dependent',\n structuredOutput: 'supported',\n logprobs: 'unsupported',\n },\n status: { documented: true },\n domain: 'openai',\n notes: [\n 'Ollama exposes a subset of the OpenAI Chat Completions request fields; see docs/upstream/ollama-openai-compatibility.mdx.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const openaiCompletionsOp = {\n operationId: 'openaiCompletions',\n method: 'POST',\n path: '/v1/completions',\n environment: { local: true, cloud: true },\n transport: { mode: 'sse', streaming: true, streamingDefault: false },\n capabilities: { logprobs: 'unsupported' },\n status: { documented: true },\n domain: 'openai',\n} as const satisfies OperationDefinition;\n\nexport const openaiEmbeddingsOp = {\n operationId: 'openaiEmbeddings',\n method: 'POST',\n path: '/v1/embeddings',\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: { embeddings: 'supported' },\n status: { documented: true },\n domain: 'openai',\n} as const satisfies OperationDefinition;\n\nexport const openaiModelsOp = {\n operationId: 'openaiModels',\n method: 'GET',\n path: '/v1/models',\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'openai',\n} as const satisfies OperationDefinition;\n\nexport const openaiModelsGetOneOp = {\n operationId: 'openaiModelsGetOne',\n method: 'GET',\n path: '/v1/models/{model}',\n environment: { local: true, cloud: true },\n parameters: [{ name: 'model', in: 'path', required: true, schema: { type: 'string' } }],\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'openai',\n notes: ['Returns metadata for a single OpenAI-compat model by id.'],\n} as const satisfies OperationDefinition;\n\nexport const openaiResponsesOp = {\n operationId: 'openaiResponses',\n method: 'POST',\n path: '/v1/responses',\n environment: { local: true, cloud: true },\n transport: { mode: 'sse', streaming: true, streamingDefault: false },\n capabilities: { thinking: 'model-dependent', tools: 'model-dependent' },\n status: { documented: true },\n domain: 'openai',\n notes: [\n 'Ollama implements a subset of the OpenAI Responses API; previous_response_id and conversation are explicitly unsupported.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const anthropicMessagesOp = {\n operationId: 'anthropicMessages',\n method: 'POST',\n path: '/v1/messages',\n environment: { local: true, cloud: true },\n transport: { mode: 'sse', streaming: true, streamingDefault: false },\n capabilities: { thinking: 'model-dependent', tools: 'model-dependent' },\n status: { documented: true },\n domain: 'anthropic',\n notes: [\n \"tool_choice and metadata are explicitly unsupported by Ollama's Anthropic compat layer.\",\n 'Nested cache_control fields under messages[].content[].cache_control are unsupported.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const allOperations = [\n balanceOp,\n blobsOp,\n chatOp,\n copyOp,\n createOp,\n createBlobOp,\n deleteOp,\n embedOp,\n generateOp,\n psOp,\n pullOp,\n pushOp,\n showOp,\n systemOneOp,\n tagsOp,\n usageOp,\n versionOp,\n webFetchOp,\n webSearchOp,\n openaiChatCompletionsOp,\n openaiCompletionsOp,\n openaiEmbeddingsOp,\n openaiModelsOp,\n openaiModelsGetOneOp,\n openaiResponsesOp,\n anthropicMessagesOp,\n] as const;\n","/**\n * Generated Ollama MCP tools — runtime adapter.\n *\n * Reads the descriptor list from `src/generated/mcp/tools.json` (the Wave 6\n * MCP emitter output) and exposes them as a `McpToolDescriptor[]` that\n * `McpBridge` can register. The actual call execution delegates to the\n * generated `OllamaRuntime` via the user-provided runtime instance.\n *\n * Usage:\n * ```ts\n * import { NativeApi, OllamaRuntime } from '@nemesis-oss/ollama-sdk/runtime';\n * import { createGeneratedOllamaTools } from '@nemesis-oss/ollama-sdk/mcp/generated';\n *\n * const runtime = new OllamaRuntime({ http });\n * const tools = createGeneratedOllamaTools(runtime);\n * bridge.registerTools(tools);\n * ```\n *\n * This is a Wave 6 opt-in feature — the existing McpBridge continues to work\n * unchanged. Users who want generated MCP tools import this adapter\n * explicitly.\n */\nimport { readFileSync } from 'node:fs';\nimport { fileURLToPath } from 'node:url';\nimport { resolve, dirname } from 'node:path';\nimport type { McpToolDescriptor } from './types.js';\nimport { OllamaRuntime } from '../generated/runtime/runtime.js';\nimport type { OperationDefinition } from '../generated/runtime/operation-definition.js';\n\ninterface GeneratedToolEntry extends McpToolDescriptor {\n readonly _operationId: string;\n}\n\ninterface GeneratedToolsFile {\n readonly _comment?: string;\n readonly tools: readonly GeneratedToolEntry[];\n}\n\n/**\n * Resolve the path to `tools.json` across runtime environments:\n *\n * - **In source (development):** `src/generated/mcp/tools.json`\n * - **In the published tarball:** `dist/mcp/tools.json` (copied by tsup's\n * `onSuccess` hook; see tsup.config.ts)\n *\n * The dist bundle is at `dist/mcp-generated.js`, so the JSON sits two\n * directories up + into `mcp/`. The source file is at\n * `src/mcp/generated-bridge.ts`, so the JSON sits one directory up +\n * into `generated/mcp/`.\n */\nconst HERE = dirname(fileURLToPath(import.meta.url));\nconst TOOLS_JSON_PATH = (() => {\n // Try the source layout first (development), then fall back to the dist\n // layout (published). The order matters because in a tsx-run dev env\n // we may be executing from `src/mcp/generated-bridge.ts`, but in a\n // consumer install we're at `dist/mcp-generated.js`.\n const candidates = [\n resolve(HERE, '../generated/mcp/tools.json'), // source layout\n resolve(HERE, 'mcp/tools.json'), // dist layout (next to mcp-generated.js)\n resolve(HERE, '../mcp/tools.json'), // alt dist layout (sibling of bundled dir)\n ];\n for (const candidate of candidates) {\n try {\n readFileSync(candidate, 'utf8');\n return candidate;\n } catch {\n // try next candidate\n }\n }\n // Fall back to the source-layout path; the error will surface with a\n // clearer message when the loader is actually invoked.\n return candidates[0] ?? resolve(HERE, '../generated/mcp/tools.json');\n})();\n\nlet cachedTools: readonly GeneratedToolEntry[] | undefined;\n\n/** Load and cache the generated tool descriptors from tools.json. */\nexport function loadGeneratedOllamaTools(): readonly GeneratedToolEntry[] {\n if (cachedTools) return cachedTools;\n const raw = readFileSync(TOOLS_JSON_PATH, 'utf8');\n const parsed = JSON.parse(raw) as GeneratedToolsFile;\n cachedTools = parsed.tools;\n return cachedTools;\n}\n\n/** Drop the `_operationId` field before exposing the descriptor externally. */\nfunction publicDescriptor(entry: GeneratedToolEntry): McpToolDescriptor {\n const { _operationId, ...rest } = entry;\n void _operationId;\n return rest;\n}\n\n/**\n * Build a list of MCP tool descriptors for the generated Ollama operations.\n * Each tool can be invoked by name via {@link callGeneratedOllamaTool}.\n *\n * The descriptors are read once and cached for the lifetime of the process.\n */\nexport function listGeneratedOllamaTools(): readonly McpToolDescriptor[] {\n return loadGeneratedOllamaTools().map(publicDescriptor);\n}\n\n/**\n * Invoke a generated tool by name. The `name` must match a tool from\n * {@link listGeneratedOllamaTools}.\n *\n * Returns a `McpCallToolResult` containing the structured response. The\n * caller (typically `McpBridge`) is responsible for serializing the result\n * back over the MCP transport.\n */\nexport async function callGeneratedOllamaTool(\n runtime: OllamaRuntime,\n name: string,\n args: Record<string, unknown>,\n options?: { signal?: AbortSignal },\n): Promise<{ content: readonly { type: 'text'; text: string }[]; structuredContent: unknown }> {\n const tools = loadGeneratedOllamaTools();\n const entry = tools.find((t) => t.name === name);\n if (!entry) {\n return {\n content: [{ type: 'text', text: `Unknown tool: ${name}` }],\n structuredContent: { error: 'unknown_tool', name },\n };\n }\n\n // Look up the operation in the IR by id. We re-import the operations\n // module to avoid a circular dependency at module-load time.\n const operations = await import('../generated/api/operations.js');\n const opKey = `${entry._operationId}Op` as keyof typeof operations;\n const operation = operations[opKey] as OperationDefinition | undefined;\n if (!operation || typeof operation !== 'object' || !('operationId' in operation)) {\n return {\n content: [{ type: 'text', text: `Operation not found for ${name}` }],\n structuredContent: { error: 'operation_not_found', name },\n };\n }\n\n try {\n // Wave 15 (P0): split path/query/header parameters from the request\n // body. The MCP input schema may declare path parameters (e.g. `model`\n // for /v1/models/{model}) — those must be passed as `pathParams` to\n // the runtime, not put in the request body. The operation's\n // `parameters` field tells us which args are path/query/header vs body.\n const opParams = operation.parameters ?? [];\n const pathParams: Record<string, string> = {};\n const queryParams: Record<string, string> = {};\n const headerParams: Record<string, string> = {};\n const bodyArgs: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(args)) {\n const paramDef = opParams.find((p) => p.name === key);\n if (paramDef) {\n if (paramDef.in === 'path') {\n pathParams[key] = String(value);\n } else if (paramDef.in === 'query') {\n queryParams[key] = String(value);\n } else if (paramDef.in === 'header') {\n headerParams[key] = String(value);\n }\n } else {\n // Not a declared parameter → goes in the request body.\n bodyArgs[key] = value;\n }\n }\n\n const hasBody = Object.keys(bodyArgs).length > 0;\n const result = await runtime.invoke<unknown>({\n operation,\n body: hasBody ? bodyArgs : undefined,\n ...(Object.keys(pathParams).length > 0 ? { pathParams } : {}),\n ...(Object.keys(queryParams).length > 0 ? { queryParams } : {}),\n ...(Object.keys(headerParams).length > 0 ? { headerParams } : {}),\n ...(options?.signal !== undefined ? { signal: options.signal } : {}),\n });\n return {\n content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],\n structuredContent: result,\n };\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return {\n content: [{ type: 'text', text: `Ollama tool ${name} failed: ${message}` }],\n structuredContent: { error: 'tool_failed', name, message },\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/generated/api/operations.ts","../src/mcp/generated-bridge.ts"],"names":["dirname","fileURLToPath","resolve","readFileSync"],"mappings":"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","file":"mcp-generated.cjs","sourcesContent":["/**\n * AUTO-GENERATED by `npm run contract:generate`. DO NOT EDIT.\n * Source: contracts/ir/ollama.ir.json (canonical Ollama IR).\n * Each OperationDefinition captures what Ollama exposes; the runtime\n * in src/generated/runtime/runtime.ts captures how the SDK behaves.\n */\n\nimport type { OperationDefinition } from '../runtime/operation-definition.js';\n\nexport const balanceOp = {\n operationId: 'balance',\n method: 'GET',\n path: '/api/balance',\n response: { $ref: '#/schemas/BalanceResponse' },\n environment: { local: false, cloud: true },\n host: 'https://ollama.com',\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Cloud-only account endpoint — targets https://ollama.com, not the local Ollama server.',\n 'Requires an Ollama Cloud API key (set via OllamaClient credentials).',\n 'Takes no parameters. For usage history see the usage operation.',\n 'Rate limited to 10 requests/minute per user; 429 responses carry a Retry-After header.',\n 'Use OllamaClient.balance() — the generated NativeApi class does not expose this operation.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const blobsOp = {\n operationId: 'blobs',\n method: 'HEAD',\n path: '/api/blobs/{digest}',\n environment: { local: true, cloud: false },\n parameters: [{ name: 'digest', in: 'path', required: true, schema: { type: 'string' } }],\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'HEAD-only endpoint for blob existence checks; declared in OpenAPI but not in the legacy parity manifest.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const chatOp = {\n operationId: 'chat',\n method: 'POST',\n path: '/api/chat',\n request: { $ref: '#/schemas/ChatRequest' },\n response: { $ref: '#/schemas/ChatResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: {\n thinking: 'model-dependent',\n tools: 'model-dependent',\n vision: 'model-dependent',\n structuredOutput: 'supported',\n logprobs: 'supported',\n },\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Use /api/show to discover model-specific thinking values and defaults.',\n 'Structured output (format field) is rejected by Ollama Cloud.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const copyOp = {\n operationId: 'copy',\n method: 'POST',\n path: '/api/copy',\n request: { $ref: '#/schemas/CopyRequest' },\n response: { $ref: '#/schemas/StatusResponse' },\n environment: { local: true, cloud: false },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const createOp = {\n operationId: 'create',\n method: 'POST',\n path: '/api/create',\n request: { $ref: '#/schemas/CreateRequest' },\n response: { $ref: '#/schemas/StatusResponse' },\n environment: { local: true, cloud: false },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: { thinking: 'unsupported', tools: 'unsupported' },\n status: { documented: true },\n domain: 'native',\n notes: ['Model creation is local-only; Ollama Cloud does not support it.'],\n} as const satisfies OperationDefinition;\n\nexport const createBlobOp = {\n operationId: 'createBlob',\n method: 'POST',\n path: '/api/blobs/{digest}',\n environment: { local: true, cloud: false },\n parameters: [{ name: 'digest', in: 'path', required: true, schema: { type: 'string' } }],\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'POST endpoint for blob creation; takes a binary body (application/octet-stream).',\n 'Handled by OllamaClient.createBlob() — the generated NativeApi does not expose this operation because the runtime JSON-encodes request bodies.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const deleteOp = {\n operationId: 'delete',\n method: 'DELETE',\n path: '/api/delete',\n request: { $ref: '#/schemas/DeleteRequest' },\n environment: { local: true, cloud: false },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const embedOp = {\n operationId: 'embed',\n method: 'POST',\n path: '/api/embed',\n request: { $ref: '#/schemas/EmbedRequest' },\n response: { $ref: '#/schemas/EmbedResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: { embeddings: 'supported' },\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const generateOp = {\n operationId: 'generate',\n method: 'POST',\n path: '/api/generate',\n request: { $ref: '#/schemas/GenerateRequest' },\n response: { $ref: '#/schemas/GenerateResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: {\n thinking: 'model-dependent',\n vision: 'supported',\n structuredOutput: 'supported',\n logprobs: 'supported',\n },\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const psOp = {\n operationId: 'ps',\n method: 'GET',\n path: '/api/ps',\n response: { $ref: '#/schemas/PsResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const pullOp = {\n operationId: 'pull',\n method: 'POST',\n path: '/api/pull',\n request: { $ref: '#/schemas/PullRequest' },\n response: { $ref: '#/schemas/StatusResponse' },\n environment: { local: true, cloud: false },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const pushOp = {\n operationId: 'push',\n method: 'POST',\n path: '/api/push',\n request: { $ref: '#/schemas/PushRequest' },\n response: { $ref: '#/schemas/StatusResponse' },\n environment: { local: true, cloud: false },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const showOp = {\n operationId: 'show',\n method: 'POST',\n path: '/api/show',\n request: { $ref: '#/schemas/ShowRequest' },\n response: { $ref: '#/schemas/ShowResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Capabilities source: /api/show is the runtime source of truth for model-dependent capability values (tools, vision, thinking, embeddings).',\n ],\n} as const satisfies OperationDefinition;\n\nexport const systemOneOp = {\n operationId: 'systemOne',\n method: 'POST',\n path: '/v1/systemone',\n request: { $ref: '#/schemas/SystemOneRequest' },\n response: { $ref: '#/schemas/SystemOneResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {\n thinking: 'unsupported',\n tools: 'unsupported',\n vision: 'model-dependent',\n structuredOutput: 'unsupported',\n logprobs: 'unsupported',\n embeddings: 'unsupported',\n },\n constraints: {\n minOllamaVersion: '0.35.0',\n maxRequestBytes: 65536,\n maxRequestBytesWithImages: 33554432,\n },\n status: { documented: true, experimental: true },\n domain: 'native',\n notes: [\n 'Local and cloud: model accepts cloud models (e.g. clef:cloud); cloud models require Ollama >= 0.40.5 or the hosted https://ollama.com endpoint.',\n 'Local dual cap: text and schema (excluding images) within 64 KiB AND the whole request within 32 MiB, including base64 and JSON overhead.',\n \"Cloud requests: paid plan or usage credits required; up to 64 questions named with up to 100 ASCII letters, digits, `_`, `.`, or `-`; up to 4 images of at most 4 MiB and 16 megapixels each (8 MiB total); requests within 13 MiB; input within the model's 65,536-token context window.\",\n '401 when a cloud model is requested without signing in or with an invalid API key (through a local server the response includes a signin_url); 402 when the cloud model is not included in the Free plan or a payment fails.',\n 'No tools, no generation controls (temperature, top_p, etc.).',\n 'Vision is model-dependent: images are accepted by vision-weighted models (Clef/Clef Flash) but not by text-only models.',\n 'Experimental: behavioral surface may change between Ollama releases.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const tagsOp = {\n operationId: 'tags',\n method: 'GET',\n path: '/api/tags',\n response: { $ref: '#/schemas/ListResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const usageOp = {\n operationId: 'usage',\n method: 'GET',\n path: '/api/usage',\n response: { $ref: '#/schemas/UsageResponse' },\n environment: { local: false, cloud: true },\n host: 'https://ollama.com',\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Cloud-only account endpoint — targets https://ollama.com, not the local Ollama server.',\n 'Requires an Ollama Cloud API key (set via OllamaClient credentials).',\n 'Query parameters (not modeled by the generated runtime): range = 24h | 7d | 30d (server default 7d), scope = self | team (server default self; team scope requires a team admin), group_by = model (2026-10-22 pin: upstream 2476d5e — groups totals into per-model UsageGroup entries, up to 10 ranked by usage_usd or request_count, with a remainder bucket for the rest).',\n 'Rate limited to 10 requests/minute per user; 429 responses carry a Retry-After header.',\n 'Use OllamaClient.usage() — the generated NativeApi class does not expose this operation.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const versionOp = {\n operationId: 'version',\n method: 'GET',\n path: '/api/version',\n response: { $ref: '#/schemas/VersionResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const webFetchOp = {\n operationId: 'webFetch',\n method: 'POST',\n path: '/api/web_fetch',\n request: { $ref: '#/schemas/WebFetchRequest' },\n response: { $ref: '#/schemas/WebFetchResponse' },\n environment: { local: false, cloud: true },\n host: 'https://ollama.com',\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Cloud-only capability endpoint — targets https://ollama.com, not the local Ollama server.',\n 'Requires an Ollama Cloud API key (set via OllamaClient credentials).',\n 'Use OllamaClient.webFetch() — the generated NativeApi class does not expose this operation.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const webSearchOp = {\n operationId: 'webSearch',\n method: 'POST',\n path: '/api/web_search',\n request: { $ref: '#/schemas/WebSearchRequest' },\n response: { $ref: '#/schemas/WebSearchResponse' },\n environment: { local: false, cloud: true },\n host: 'https://ollama.com',\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Cloud-only capability endpoint — targets https://ollama.com, not the local Ollama server.',\n 'Requires an Ollama Cloud API key (set via OllamaClient credentials).',\n 'Use OllamaClient.webSearch() — the generated NativeApi class does not expose this operation.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const openaiChatCompletionsOp = {\n operationId: 'openaiChatCompletions',\n method: 'POST',\n path: '/v1/chat/completions',\n environment: { local: true, cloud: true },\n transport: { mode: 'sse', streaming: true, streamingDefault: false },\n capabilities: {\n thinking: 'model-dependent',\n tools: 'model-dependent',\n vision: 'model-dependent',\n structuredOutput: 'supported',\n logprobs: 'unsupported',\n },\n status: { documented: true },\n domain: 'openai',\n notes: [\n 'Ollama exposes a subset of the OpenAI Chat Completions request fields; see docs/upstream/ollama-openai-compatibility.mdx.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const openaiCompletionsOp = {\n operationId: 'openaiCompletions',\n method: 'POST',\n path: '/v1/completions',\n environment: { local: true, cloud: true },\n transport: { mode: 'sse', streaming: true, streamingDefault: false },\n capabilities: { logprobs: 'unsupported' },\n status: { documented: true },\n domain: 'openai',\n} as const satisfies OperationDefinition;\n\nexport const openaiEmbeddingsOp = {\n operationId: 'openaiEmbeddings',\n method: 'POST',\n path: '/v1/embeddings',\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: { embeddings: 'supported' },\n status: { documented: true },\n domain: 'openai',\n} as const satisfies OperationDefinition;\n\nexport const openaiModelsOp = {\n operationId: 'openaiModels',\n method: 'GET',\n path: '/v1/models',\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'openai',\n} as const satisfies OperationDefinition;\n\nexport const openaiModelsGetOneOp = {\n operationId: 'openaiModelsGetOne',\n method: 'GET',\n path: '/v1/models/{model}',\n environment: { local: true, cloud: true },\n parameters: [{ name: 'model', in: 'path', required: true, schema: { type: 'string' } }],\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'openai',\n notes: ['Returns metadata for a single OpenAI-compat model by id.'],\n} as const satisfies OperationDefinition;\n\nexport const openaiResponsesOp = {\n operationId: 'openaiResponses',\n method: 'POST',\n path: '/v1/responses',\n environment: { local: true, cloud: true },\n transport: { mode: 'sse', streaming: true, streamingDefault: false },\n capabilities: { thinking: 'model-dependent', tools: 'model-dependent' },\n status: { documented: true },\n domain: 'openai',\n notes: [\n 'Ollama implements a subset of the OpenAI Responses API; previous_response_id and conversation are explicitly unsupported.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const anthropicMessagesOp = {\n operationId: 'anthropicMessages',\n method: 'POST',\n path: '/v1/messages',\n environment: { local: true, cloud: true },\n transport: { mode: 'sse', streaming: true, streamingDefault: false },\n capabilities: { thinking: 'model-dependent', tools: 'model-dependent' },\n status: { documented: true },\n domain: 'anthropic',\n notes: [\n \"tool_choice and metadata are explicitly unsupported by Ollama's Anthropic compat layer.\",\n 'Nested cache_control fields under messages[].content[].cache_control are unsupported.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const allOperations = [\n balanceOp,\n blobsOp,\n chatOp,\n copyOp,\n createOp,\n createBlobOp,\n deleteOp,\n embedOp,\n generateOp,\n psOp,\n pullOp,\n pushOp,\n showOp,\n systemOneOp,\n tagsOp,\n usageOp,\n versionOp,\n webFetchOp,\n webSearchOp,\n openaiChatCompletionsOp,\n openaiCompletionsOp,\n openaiEmbeddingsOp,\n openaiModelsOp,\n openaiModelsGetOneOp,\n openaiResponsesOp,\n anthropicMessagesOp,\n] as const;\n","/**\n * Generated Ollama MCP tools — runtime adapter.\n *\n * Reads the descriptor list from `src/generated/mcp/tools.json` (the Wave 6\n * MCP emitter output) and exposes them as a `McpToolDescriptor[]` that\n * `McpBridge` can register. The actual call execution delegates to the\n * generated `OllamaRuntime` via the user-provided runtime instance.\n *\n * Usage:\n * ```ts\n * import { NativeApi, OllamaRuntime } from '@nemesis-oss/ollama-sdk/runtime';\n * import { createGeneratedOllamaTools } from '@nemesis-oss/ollama-sdk/mcp/generated';\n *\n * const runtime = new OllamaRuntime({ http });\n * const tools = createGeneratedOllamaTools(runtime);\n * bridge.registerTools(tools);\n * ```\n *\n * This is a Wave 6 opt-in feature — the existing McpBridge continues to work\n * unchanged. Users who want generated MCP tools import this adapter\n * explicitly.\n */\nimport { readFileSync } from 'node:fs';\nimport { fileURLToPath } from 'node:url';\nimport { resolve, dirname } from 'node:path';\nimport type { McpToolDescriptor } from './types.js';\nimport { OllamaRuntime } from '../generated/runtime/runtime.js';\nimport type { OperationDefinition } from '../generated/runtime/operation-definition.js';\n\ninterface GeneratedToolEntry extends McpToolDescriptor {\n readonly _operationId: string;\n}\n\ninterface GeneratedToolsFile {\n readonly _comment?: string;\n readonly tools: readonly GeneratedToolEntry[];\n}\n\n/**\n * Resolve the path to `tools.json` across runtime environments:\n *\n * - **In source (development):** `src/generated/mcp/tools.json`\n * - **In the published tarball:** `dist/mcp/tools.json` (copied by tsup's\n * `onSuccess` hook; see tsup.config.ts)\n *\n * The dist bundle is at `dist/mcp-generated.js`, so the JSON sits two\n * directories up + into `mcp/`. The source file is at\n * `src/mcp/generated-bridge.ts`, so the JSON sits one directory up +\n * into `generated/mcp/`.\n */\nconst HERE = dirname(fileURLToPath(import.meta.url));\nconst TOOLS_JSON_PATH = (() => {\n // Try the source layout first (development), then fall back to the dist\n // layout (published). The order matters because in a tsx-run dev env\n // we may be executing from `src/mcp/generated-bridge.ts`, but in a\n // consumer install we're at `dist/mcp-generated.js`.\n const candidates = [\n resolve(HERE, '../generated/mcp/tools.json'), // source layout\n resolve(HERE, 'mcp/tools.json'), // dist layout (next to mcp-generated.js)\n resolve(HERE, '../mcp/tools.json'), // alt dist layout (sibling of bundled dir)\n ];\n for (const candidate of candidates) {\n try {\n readFileSync(candidate, 'utf8');\n return candidate;\n } catch {\n // try next candidate\n }\n }\n // Fall back to the source-layout path; the error will surface with a\n // clearer message when the loader is actually invoked.\n return candidates[0] ?? resolve(HERE, '../generated/mcp/tools.json');\n})();\n\nlet cachedTools: readonly GeneratedToolEntry[] | undefined;\n\n/** Load and cache the generated tool descriptors from tools.json. */\nexport function loadGeneratedOllamaTools(): readonly GeneratedToolEntry[] {\n if (cachedTools) return cachedTools;\n const raw = readFileSync(TOOLS_JSON_PATH, 'utf8');\n const parsed = JSON.parse(raw) as GeneratedToolsFile;\n cachedTools = parsed.tools;\n return cachedTools;\n}\n\n/** Drop the `_operationId` field before exposing the descriptor externally. */\nfunction publicDescriptor(entry: GeneratedToolEntry): McpToolDescriptor {\n const { _operationId, ...rest } = entry;\n void _operationId;\n return rest;\n}\n\n/**\n * Build a list of MCP tool descriptors for the generated Ollama operations.\n * Each tool can be invoked by name via {@link callGeneratedOllamaTool}.\n *\n * The descriptors are read once and cached for the lifetime of the process.\n */\nexport function listGeneratedOllamaTools(): readonly McpToolDescriptor[] {\n return loadGeneratedOllamaTools().map(publicDescriptor);\n}\n\n/**\n * Invoke a generated tool by name. The `name` must match a tool from\n * {@link listGeneratedOllamaTools}.\n *\n * Returns a `McpCallToolResult` containing the structured response. The\n * caller (typically `McpBridge`) is responsible for serializing the result\n * back over the MCP transport.\n */\nexport async function callGeneratedOllamaTool(\n runtime: OllamaRuntime,\n name: string,\n args: Record<string, unknown>,\n options?: { signal?: AbortSignal },\n): Promise<{ content: readonly { type: 'text'; text: string }[]; structuredContent: unknown }> {\n const tools = loadGeneratedOllamaTools();\n const entry = tools.find((t) => t.name === name);\n if (!entry) {\n return {\n content: [{ type: 'text', text: `Unknown tool: ${name}` }],\n structuredContent: { error: 'unknown_tool', name },\n };\n }\n\n // Look up the operation in the IR by id. We re-import the operations\n // module to avoid a circular dependency at module-load time.\n const operations = await import('../generated/api/operations.js');\n const opKey = `${entry._operationId}Op` as keyof typeof operations;\n const operation = operations[opKey] as OperationDefinition | undefined;\n if (!operation || typeof operation !== 'object' || !('operationId' in operation)) {\n return {\n content: [{ type: 'text', text: `Operation not found for ${name}` }],\n structuredContent: { error: 'operation_not_found', name },\n };\n }\n\n try {\n // Wave 15 (P0): split path/query/header parameters from the request\n // body. The MCP input schema may declare path parameters (e.g. `model`\n // for /v1/models/{model}) — those must be passed as `pathParams` to\n // the runtime, not put in the request body. The operation's\n // `parameters` field tells us which args are path/query/header vs body.\n const opParams = operation.parameters ?? [];\n const pathParams: Record<string, string> = {};\n const queryParams: Record<string, string> = {};\n const headerParams: Record<string, string> = {};\n const bodyArgs: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(args)) {\n const paramDef = opParams.find((p) => p.name === key);\n if (paramDef) {\n if (paramDef.in === 'path') {\n pathParams[key] = String(value);\n } else if (paramDef.in === 'query') {\n queryParams[key] = String(value);\n } else if (paramDef.in === 'header') {\n headerParams[key] = String(value);\n }\n } else {\n // Not a declared parameter → goes in the request body.\n bodyArgs[key] = value;\n }\n }\n\n const hasBody = Object.keys(bodyArgs).length > 0;\n const result = await runtime.invoke<unknown>({\n operation,\n body: hasBody ? bodyArgs : undefined,\n ...(Object.keys(pathParams).length > 0 ? { pathParams } : {}),\n ...(Object.keys(queryParams).length > 0 ? { queryParams } : {}),\n ...(Object.keys(headerParams).length > 0 ? { headerParams } : {}),\n ...(options?.signal !== undefined ? { signal: options.signal } : {}),\n });\n return {\n content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],\n structuredContent: result,\n };\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return {\n content: [{ type: 'text', text: `Ollama tool ${name} failed: ${message}` }],\n structuredContent: { error: 'tool_failed', name, message },\n };\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { a as McpToolDescriptor } from './types-CI-gM2u5.cjs';
2
- import { O as OllamaRuntime } from './runtime-C28YEAHC.cjs';
2
+ import { O as OllamaRuntime } from './runtime-CpO3H6yy.cjs';
3
3
  import 'zod';
4
- import './types-Y3u0FtdN.cjs';
4
+ import './types-CnsZ24tm.cjs';
5
5
 
6
6
  interface GeneratedToolEntry extends McpToolDescriptor {
7
7
  readonly _operationId: string;
@@ -1,7 +1,7 @@
1
1
  import { a as McpToolDescriptor } from './types-CI-gM2u5.js';
2
- import { O as OllamaRuntime } from './runtime-DYCxYGG-.js';
2
+ import { O as OllamaRuntime } from './runtime-DPSrPwAa.js';
3
3
  import 'zod';
4
- import './types-Y3u0FtdN.js';
4
+ import './types-CnsZ24tm.js';
5
5
 
6
6
  interface GeneratedToolEntry extends McpToolDescriptor {
7
7
  readonly _operationId: string;
@@ -289,7 +289,7 @@ var init_operations = __esm({
289
289
  notes: [
290
290
  "Cloud-only account endpoint \u2014 targets https://ollama.com, not the local Ollama server.",
291
291
  "Requires an Ollama Cloud API key (set via OllamaClient credentials).",
292
- "Query parameters (not modeled by the generated runtime): range = 24h | 7d | 30d (server default 7d), scope = self | team (server default self; team scope requires a team admin).",
292
+ "Query parameters (not modeled by the generated runtime): range = 24h | 7d | 30d (server default 7d), scope = self | team (server default self; team scope requires a team admin), group_by = model (2026-10-22 pin: upstream 2476d5e \u2014 groups totals into per-model UsageGroup entries, up to 10 ranked by usage_usd or request_count, with a remainder bucket for the rest).",
293
293
  "Rate limited to 10 requests/minute per user; 429 responses carry a Retry-After header.",
294
294
  "Use OllamaClient.usage() \u2014 the generated NativeApi class does not expose this operation."
295
295
  ]
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/generated/api/operations.ts","../src/mcp/generated-bridge.ts"],"names":[],"mappings":"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","file":"mcp-generated.js","sourcesContent":["/**\n * AUTO-GENERATED by `npm run contract:generate`. DO NOT EDIT.\n * Source: contracts/ir/ollama.ir.json (canonical Ollama IR).\n * Each OperationDefinition captures what Ollama exposes; the runtime\n * in src/generated/runtime/runtime.ts captures how the SDK behaves.\n */\n\nimport type { OperationDefinition } from '../runtime/operation-definition.js';\n\nexport const balanceOp = {\n operationId: 'balance',\n method: 'GET',\n path: '/api/balance',\n response: { $ref: '#/schemas/BalanceResponse' },\n environment: { local: false, cloud: true },\n host: 'https://ollama.com',\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Cloud-only account endpoint — targets https://ollama.com, not the local Ollama server.',\n 'Requires an Ollama Cloud API key (set via OllamaClient credentials).',\n 'Takes no parameters. For usage history see the usage operation.',\n 'Rate limited to 10 requests/minute per user; 429 responses carry a Retry-After header.',\n 'Use OllamaClient.balance() — the generated NativeApi class does not expose this operation.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const blobsOp = {\n operationId: 'blobs',\n method: 'HEAD',\n path: '/api/blobs/{digest}',\n environment: { local: true, cloud: false },\n parameters: [{ name: 'digest', in: 'path', required: true, schema: { type: 'string' } }],\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'HEAD-only endpoint for blob existence checks; declared in OpenAPI but not in the legacy parity manifest.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const chatOp = {\n operationId: 'chat',\n method: 'POST',\n path: '/api/chat',\n request: { $ref: '#/schemas/ChatRequest' },\n response: { $ref: '#/schemas/ChatResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: {\n thinking: 'model-dependent',\n tools: 'model-dependent',\n vision: 'model-dependent',\n structuredOutput: 'supported',\n logprobs: 'supported',\n },\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Use /api/show to discover model-specific thinking values and defaults.',\n 'Structured output (format field) is rejected by Ollama Cloud.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const copyOp = {\n operationId: 'copy',\n method: 'POST',\n path: '/api/copy',\n request: { $ref: '#/schemas/CopyRequest' },\n response: { $ref: '#/schemas/StatusResponse' },\n environment: { local: true, cloud: false },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const createOp = {\n operationId: 'create',\n method: 'POST',\n path: '/api/create',\n request: { $ref: '#/schemas/CreateRequest' },\n response: { $ref: '#/schemas/StatusResponse' },\n environment: { local: true, cloud: false },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: { thinking: 'unsupported', tools: 'unsupported' },\n status: { documented: true },\n domain: 'native',\n notes: ['Model creation is local-only; Ollama Cloud does not support it.'],\n} as const satisfies OperationDefinition;\n\nexport const createBlobOp = {\n operationId: 'createBlob',\n method: 'POST',\n path: '/api/blobs/{digest}',\n environment: { local: true, cloud: false },\n parameters: [{ name: 'digest', in: 'path', required: true, schema: { type: 'string' } }],\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'POST endpoint for blob creation; takes a binary body (application/octet-stream).',\n 'Handled by OllamaClient.createBlob() — the generated NativeApi does not expose this operation because the runtime JSON-encodes request bodies.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const deleteOp = {\n operationId: 'delete',\n method: 'DELETE',\n path: '/api/delete',\n request: { $ref: '#/schemas/DeleteRequest' },\n environment: { local: true, cloud: false },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const embedOp = {\n operationId: 'embed',\n method: 'POST',\n path: '/api/embed',\n request: { $ref: '#/schemas/EmbedRequest' },\n response: { $ref: '#/schemas/EmbedResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: { embeddings: 'supported' },\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const generateOp = {\n operationId: 'generate',\n method: 'POST',\n path: '/api/generate',\n request: { $ref: '#/schemas/GenerateRequest' },\n response: { $ref: '#/schemas/GenerateResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: {\n thinking: 'model-dependent',\n vision: 'supported',\n structuredOutput: 'supported',\n logprobs: 'supported',\n },\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const psOp = {\n operationId: 'ps',\n method: 'GET',\n path: '/api/ps',\n response: { $ref: '#/schemas/PsResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const pullOp = {\n operationId: 'pull',\n method: 'POST',\n path: '/api/pull',\n request: { $ref: '#/schemas/PullRequest' },\n response: { $ref: '#/schemas/StatusResponse' },\n environment: { local: true, cloud: false },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const pushOp = {\n operationId: 'push',\n method: 'POST',\n path: '/api/push',\n request: { $ref: '#/schemas/PushRequest' },\n response: { $ref: '#/schemas/StatusResponse' },\n environment: { local: true, cloud: false },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const showOp = {\n operationId: 'show',\n method: 'POST',\n path: '/api/show',\n request: { $ref: '#/schemas/ShowRequest' },\n response: { $ref: '#/schemas/ShowResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Capabilities source: /api/show is the runtime source of truth for model-dependent capability values (tools, vision, thinking, embeddings).',\n ],\n} as const satisfies OperationDefinition;\n\nexport const systemOneOp = {\n operationId: 'systemOne',\n method: 'POST',\n path: '/v1/systemone',\n request: { $ref: '#/schemas/SystemOneRequest' },\n response: { $ref: '#/schemas/SystemOneResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {\n thinking: 'unsupported',\n tools: 'unsupported',\n vision: 'model-dependent',\n structuredOutput: 'unsupported',\n logprobs: 'unsupported',\n embeddings: 'unsupported',\n },\n constraints: {\n minOllamaVersion: '0.35.0',\n maxRequestBytes: 65536,\n maxRequestBytesWithImages: 33554432,\n },\n status: { documented: true, experimental: true },\n domain: 'native',\n notes: [\n 'Local and cloud: model accepts cloud models (e.g. clef:cloud); cloud models require Ollama >= 0.40.5 or the hosted https://ollama.com endpoint.',\n 'Local dual cap: text and schema (excluding images) within 64 KiB AND the whole request within 32 MiB, including base64 and JSON overhead.',\n \"Cloud requests: paid plan or usage credits required; up to 64 questions named with up to 100 ASCII letters, digits, `_`, `.`, or `-`; up to 4 images of at most 4 MiB and 16 megapixels each (8 MiB total); requests within 13 MiB; input within the model's 65,536-token context window.\",\n '401 when a cloud model is requested without signing in or with an invalid API key (through a local server the response includes a signin_url); 402 when the cloud model is not included in the Free plan or a payment fails.',\n 'No tools, no generation controls (temperature, top_p, etc.).',\n 'Vision is model-dependent: images are accepted by vision-weighted models (Clef/Clef Flash) but not by text-only models.',\n 'Experimental: behavioral surface may change between Ollama releases.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const tagsOp = {\n operationId: 'tags',\n method: 'GET',\n path: '/api/tags',\n response: { $ref: '#/schemas/ListResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const usageOp = {\n operationId: 'usage',\n method: 'GET',\n path: '/api/usage',\n response: { $ref: '#/schemas/UsageResponse' },\n environment: { local: false, cloud: true },\n host: 'https://ollama.com',\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Cloud-only account endpoint — targets https://ollama.com, not the local Ollama server.',\n 'Requires an Ollama Cloud API key (set via OllamaClient credentials).',\n 'Query parameters (not modeled by the generated runtime): range = 24h | 7d | 30d (server default 7d), scope = self | team (server default self; team scope requires a team admin).',\n 'Rate limited to 10 requests/minute per user; 429 responses carry a Retry-After header.',\n 'Use OllamaClient.usage() — the generated NativeApi class does not expose this operation.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const versionOp = {\n operationId: 'version',\n method: 'GET',\n path: '/api/version',\n response: { $ref: '#/schemas/VersionResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const webFetchOp = {\n operationId: 'webFetch',\n method: 'POST',\n path: '/api/web_fetch',\n request: { $ref: '#/schemas/WebFetchRequest' },\n response: { $ref: '#/schemas/WebFetchResponse' },\n environment: { local: false, cloud: true },\n host: 'https://ollama.com',\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Cloud-only capability endpoint — targets https://ollama.com, not the local Ollama server.',\n 'Requires an Ollama Cloud API key (set via OllamaClient credentials).',\n 'Use OllamaClient.webFetch() — the generated NativeApi class does not expose this operation.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const webSearchOp = {\n operationId: 'webSearch',\n method: 'POST',\n path: '/api/web_search',\n request: { $ref: '#/schemas/WebSearchRequest' },\n response: { $ref: '#/schemas/WebSearchResponse' },\n environment: { local: false, cloud: true },\n host: 'https://ollama.com',\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Cloud-only capability endpoint — targets https://ollama.com, not the local Ollama server.',\n 'Requires an Ollama Cloud API key (set via OllamaClient credentials).',\n 'Use OllamaClient.webSearch() — the generated NativeApi class does not expose this operation.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const openaiChatCompletionsOp = {\n operationId: 'openaiChatCompletions',\n method: 'POST',\n path: '/v1/chat/completions',\n environment: { local: true, cloud: true },\n transport: { mode: 'sse', streaming: true, streamingDefault: false },\n capabilities: {\n thinking: 'model-dependent',\n tools: 'model-dependent',\n vision: 'model-dependent',\n structuredOutput: 'supported',\n logprobs: 'unsupported',\n },\n status: { documented: true },\n domain: 'openai',\n notes: [\n 'Ollama exposes a subset of the OpenAI Chat Completions request fields; see docs/upstream/ollama-openai-compatibility.mdx.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const openaiCompletionsOp = {\n operationId: 'openaiCompletions',\n method: 'POST',\n path: '/v1/completions',\n environment: { local: true, cloud: true },\n transport: { mode: 'sse', streaming: true, streamingDefault: false },\n capabilities: { logprobs: 'unsupported' },\n status: { documented: true },\n domain: 'openai',\n} as const satisfies OperationDefinition;\n\nexport const openaiEmbeddingsOp = {\n operationId: 'openaiEmbeddings',\n method: 'POST',\n path: '/v1/embeddings',\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: { embeddings: 'supported' },\n status: { documented: true },\n domain: 'openai',\n} as const satisfies OperationDefinition;\n\nexport const openaiModelsOp = {\n operationId: 'openaiModels',\n method: 'GET',\n path: '/v1/models',\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'openai',\n} as const satisfies OperationDefinition;\n\nexport const openaiModelsGetOneOp = {\n operationId: 'openaiModelsGetOne',\n method: 'GET',\n path: '/v1/models/{model}',\n environment: { local: true, cloud: true },\n parameters: [{ name: 'model', in: 'path', required: true, schema: { type: 'string' } }],\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'openai',\n notes: ['Returns metadata for a single OpenAI-compat model by id.'],\n} as const satisfies OperationDefinition;\n\nexport const openaiResponsesOp = {\n operationId: 'openaiResponses',\n method: 'POST',\n path: '/v1/responses',\n environment: { local: true, cloud: true },\n transport: { mode: 'sse', streaming: true, streamingDefault: false },\n capabilities: { thinking: 'model-dependent', tools: 'model-dependent' },\n status: { documented: true },\n domain: 'openai',\n notes: [\n 'Ollama implements a subset of the OpenAI Responses API; previous_response_id and conversation are explicitly unsupported.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const anthropicMessagesOp = {\n operationId: 'anthropicMessages',\n method: 'POST',\n path: '/v1/messages',\n environment: { local: true, cloud: true },\n transport: { mode: 'sse', streaming: true, streamingDefault: false },\n capabilities: { thinking: 'model-dependent', tools: 'model-dependent' },\n status: { documented: true },\n domain: 'anthropic',\n notes: [\n \"tool_choice and metadata are explicitly unsupported by Ollama's Anthropic compat layer.\",\n 'Nested cache_control fields under messages[].content[].cache_control are unsupported.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const allOperations = [\n balanceOp,\n blobsOp,\n chatOp,\n copyOp,\n createOp,\n createBlobOp,\n deleteOp,\n embedOp,\n generateOp,\n psOp,\n pullOp,\n pushOp,\n showOp,\n systemOneOp,\n tagsOp,\n usageOp,\n versionOp,\n webFetchOp,\n webSearchOp,\n openaiChatCompletionsOp,\n openaiCompletionsOp,\n openaiEmbeddingsOp,\n openaiModelsOp,\n openaiModelsGetOneOp,\n openaiResponsesOp,\n anthropicMessagesOp,\n] as const;\n","/**\n * Generated Ollama MCP tools — runtime adapter.\n *\n * Reads the descriptor list from `src/generated/mcp/tools.json` (the Wave 6\n * MCP emitter output) and exposes them as a `McpToolDescriptor[]` that\n * `McpBridge` can register. The actual call execution delegates to the\n * generated `OllamaRuntime` via the user-provided runtime instance.\n *\n * Usage:\n * ```ts\n * import { NativeApi, OllamaRuntime } from '@nemesis-oss/ollama-sdk/runtime';\n * import { createGeneratedOllamaTools } from '@nemesis-oss/ollama-sdk/mcp/generated';\n *\n * const runtime = new OllamaRuntime({ http });\n * const tools = createGeneratedOllamaTools(runtime);\n * bridge.registerTools(tools);\n * ```\n *\n * This is a Wave 6 opt-in feature — the existing McpBridge continues to work\n * unchanged. Users who want generated MCP tools import this adapter\n * explicitly.\n */\nimport { readFileSync } from 'node:fs';\nimport { fileURLToPath } from 'node:url';\nimport { resolve, dirname } from 'node:path';\nimport type { McpToolDescriptor } from './types.js';\nimport { OllamaRuntime } from '../generated/runtime/runtime.js';\nimport type { OperationDefinition } from '../generated/runtime/operation-definition.js';\n\ninterface GeneratedToolEntry extends McpToolDescriptor {\n readonly _operationId: string;\n}\n\ninterface GeneratedToolsFile {\n readonly _comment?: string;\n readonly tools: readonly GeneratedToolEntry[];\n}\n\n/**\n * Resolve the path to `tools.json` across runtime environments:\n *\n * - **In source (development):** `src/generated/mcp/tools.json`\n * - **In the published tarball:** `dist/mcp/tools.json` (copied by tsup's\n * `onSuccess` hook; see tsup.config.ts)\n *\n * The dist bundle is at `dist/mcp-generated.js`, so the JSON sits two\n * directories up + into `mcp/`. The source file is at\n * `src/mcp/generated-bridge.ts`, so the JSON sits one directory up +\n * into `generated/mcp/`.\n */\nconst HERE = dirname(fileURLToPath(import.meta.url));\nconst TOOLS_JSON_PATH = (() => {\n // Try the source layout first (development), then fall back to the dist\n // layout (published). The order matters because in a tsx-run dev env\n // we may be executing from `src/mcp/generated-bridge.ts`, but in a\n // consumer install we're at `dist/mcp-generated.js`.\n const candidates = [\n resolve(HERE, '../generated/mcp/tools.json'), // source layout\n resolve(HERE, 'mcp/tools.json'), // dist layout (next to mcp-generated.js)\n resolve(HERE, '../mcp/tools.json'), // alt dist layout (sibling of bundled dir)\n ];\n for (const candidate of candidates) {\n try {\n readFileSync(candidate, 'utf8');\n return candidate;\n } catch {\n // try next candidate\n }\n }\n // Fall back to the source-layout path; the error will surface with a\n // clearer message when the loader is actually invoked.\n return candidates[0] ?? resolve(HERE, '../generated/mcp/tools.json');\n})();\n\nlet cachedTools: readonly GeneratedToolEntry[] | undefined;\n\n/** Load and cache the generated tool descriptors from tools.json. */\nexport function loadGeneratedOllamaTools(): readonly GeneratedToolEntry[] {\n if (cachedTools) return cachedTools;\n const raw = readFileSync(TOOLS_JSON_PATH, 'utf8');\n const parsed = JSON.parse(raw) as GeneratedToolsFile;\n cachedTools = parsed.tools;\n return cachedTools;\n}\n\n/** Drop the `_operationId` field before exposing the descriptor externally. */\nfunction publicDescriptor(entry: GeneratedToolEntry): McpToolDescriptor {\n const { _operationId, ...rest } = entry;\n void _operationId;\n return rest;\n}\n\n/**\n * Build a list of MCP tool descriptors for the generated Ollama operations.\n * Each tool can be invoked by name via {@link callGeneratedOllamaTool}.\n *\n * The descriptors are read once and cached for the lifetime of the process.\n */\nexport function listGeneratedOllamaTools(): readonly McpToolDescriptor[] {\n return loadGeneratedOllamaTools().map(publicDescriptor);\n}\n\n/**\n * Invoke a generated tool by name. The `name` must match a tool from\n * {@link listGeneratedOllamaTools}.\n *\n * Returns a `McpCallToolResult` containing the structured response. The\n * caller (typically `McpBridge`) is responsible for serializing the result\n * back over the MCP transport.\n */\nexport async function callGeneratedOllamaTool(\n runtime: OllamaRuntime,\n name: string,\n args: Record<string, unknown>,\n options?: { signal?: AbortSignal },\n): Promise<{ content: readonly { type: 'text'; text: string }[]; structuredContent: unknown }> {\n const tools = loadGeneratedOllamaTools();\n const entry = tools.find((t) => t.name === name);\n if (!entry) {\n return {\n content: [{ type: 'text', text: `Unknown tool: ${name}` }],\n structuredContent: { error: 'unknown_tool', name },\n };\n }\n\n // Look up the operation in the IR by id. We re-import the operations\n // module to avoid a circular dependency at module-load time.\n const operations = await import('../generated/api/operations.js');\n const opKey = `${entry._operationId}Op` as keyof typeof operations;\n const operation = operations[opKey] as OperationDefinition | undefined;\n if (!operation || typeof operation !== 'object' || !('operationId' in operation)) {\n return {\n content: [{ type: 'text', text: `Operation not found for ${name}` }],\n structuredContent: { error: 'operation_not_found', name },\n };\n }\n\n try {\n // Wave 15 (P0): split path/query/header parameters from the request\n // body. The MCP input schema may declare path parameters (e.g. `model`\n // for /v1/models/{model}) — those must be passed as `pathParams` to\n // the runtime, not put in the request body. The operation's\n // `parameters` field tells us which args are path/query/header vs body.\n const opParams = operation.parameters ?? [];\n const pathParams: Record<string, string> = {};\n const queryParams: Record<string, string> = {};\n const headerParams: Record<string, string> = {};\n const bodyArgs: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(args)) {\n const paramDef = opParams.find((p) => p.name === key);\n if (paramDef) {\n if (paramDef.in === 'path') {\n pathParams[key] = String(value);\n } else if (paramDef.in === 'query') {\n queryParams[key] = String(value);\n } else if (paramDef.in === 'header') {\n headerParams[key] = String(value);\n }\n } else {\n // Not a declared parameter → goes in the request body.\n bodyArgs[key] = value;\n }\n }\n\n const hasBody = Object.keys(bodyArgs).length > 0;\n const result = await runtime.invoke<unknown>({\n operation,\n body: hasBody ? bodyArgs : undefined,\n ...(Object.keys(pathParams).length > 0 ? { pathParams } : {}),\n ...(Object.keys(queryParams).length > 0 ? { queryParams } : {}),\n ...(Object.keys(headerParams).length > 0 ? { headerParams } : {}),\n ...(options?.signal !== undefined ? { signal: options.signal } : {}),\n });\n return {\n content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],\n structuredContent: result,\n };\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return {\n content: [{ type: 'text', text: `Ollama tool ${name} failed: ${message}` }],\n structuredContent: { error: 'tool_failed', name, message },\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/generated/api/operations.ts","../src/mcp/generated-bridge.ts"],"names":[],"mappings":"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","file":"mcp-generated.js","sourcesContent":["/**\n * AUTO-GENERATED by `npm run contract:generate`. DO NOT EDIT.\n * Source: contracts/ir/ollama.ir.json (canonical Ollama IR).\n * Each OperationDefinition captures what Ollama exposes; the runtime\n * in src/generated/runtime/runtime.ts captures how the SDK behaves.\n */\n\nimport type { OperationDefinition } from '../runtime/operation-definition.js';\n\nexport const balanceOp = {\n operationId: 'balance',\n method: 'GET',\n path: '/api/balance',\n response: { $ref: '#/schemas/BalanceResponse' },\n environment: { local: false, cloud: true },\n host: 'https://ollama.com',\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Cloud-only account endpoint — targets https://ollama.com, not the local Ollama server.',\n 'Requires an Ollama Cloud API key (set via OllamaClient credentials).',\n 'Takes no parameters. For usage history see the usage operation.',\n 'Rate limited to 10 requests/minute per user; 429 responses carry a Retry-After header.',\n 'Use OllamaClient.balance() — the generated NativeApi class does not expose this operation.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const blobsOp = {\n operationId: 'blobs',\n method: 'HEAD',\n path: '/api/blobs/{digest}',\n environment: { local: true, cloud: false },\n parameters: [{ name: 'digest', in: 'path', required: true, schema: { type: 'string' } }],\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'HEAD-only endpoint for blob existence checks; declared in OpenAPI but not in the legacy parity manifest.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const chatOp = {\n operationId: 'chat',\n method: 'POST',\n path: '/api/chat',\n request: { $ref: '#/schemas/ChatRequest' },\n response: { $ref: '#/schemas/ChatResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: {\n thinking: 'model-dependent',\n tools: 'model-dependent',\n vision: 'model-dependent',\n structuredOutput: 'supported',\n logprobs: 'supported',\n },\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Use /api/show to discover model-specific thinking values and defaults.',\n 'Structured output (format field) is rejected by Ollama Cloud.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const copyOp = {\n operationId: 'copy',\n method: 'POST',\n path: '/api/copy',\n request: { $ref: '#/schemas/CopyRequest' },\n response: { $ref: '#/schemas/StatusResponse' },\n environment: { local: true, cloud: false },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const createOp = {\n operationId: 'create',\n method: 'POST',\n path: '/api/create',\n request: { $ref: '#/schemas/CreateRequest' },\n response: { $ref: '#/schemas/StatusResponse' },\n environment: { local: true, cloud: false },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: { thinking: 'unsupported', tools: 'unsupported' },\n status: { documented: true },\n domain: 'native',\n notes: ['Model creation is local-only; Ollama Cloud does not support it.'],\n} as const satisfies OperationDefinition;\n\nexport const createBlobOp = {\n operationId: 'createBlob',\n method: 'POST',\n path: '/api/blobs/{digest}',\n environment: { local: true, cloud: false },\n parameters: [{ name: 'digest', in: 'path', required: true, schema: { type: 'string' } }],\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'POST endpoint for blob creation; takes a binary body (application/octet-stream).',\n 'Handled by OllamaClient.createBlob() — the generated NativeApi does not expose this operation because the runtime JSON-encodes request bodies.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const deleteOp = {\n operationId: 'delete',\n method: 'DELETE',\n path: '/api/delete',\n request: { $ref: '#/schemas/DeleteRequest' },\n environment: { local: true, cloud: false },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const embedOp = {\n operationId: 'embed',\n method: 'POST',\n path: '/api/embed',\n request: { $ref: '#/schemas/EmbedRequest' },\n response: { $ref: '#/schemas/EmbedResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: { embeddings: 'supported' },\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const generateOp = {\n operationId: 'generate',\n method: 'POST',\n path: '/api/generate',\n request: { $ref: '#/schemas/GenerateRequest' },\n response: { $ref: '#/schemas/GenerateResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: {\n thinking: 'model-dependent',\n vision: 'supported',\n structuredOutput: 'supported',\n logprobs: 'supported',\n },\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const psOp = {\n operationId: 'ps',\n method: 'GET',\n path: '/api/ps',\n response: { $ref: '#/schemas/PsResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const pullOp = {\n operationId: 'pull',\n method: 'POST',\n path: '/api/pull',\n request: { $ref: '#/schemas/PullRequest' },\n response: { $ref: '#/schemas/StatusResponse' },\n environment: { local: true, cloud: false },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const pushOp = {\n operationId: 'push',\n method: 'POST',\n path: '/api/push',\n request: { $ref: '#/schemas/PushRequest' },\n response: { $ref: '#/schemas/StatusResponse' },\n environment: { local: true, cloud: false },\n transport: { mode: 'ndjson', streaming: true, streamingDefault: true },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const showOp = {\n operationId: 'show',\n method: 'POST',\n path: '/api/show',\n request: { $ref: '#/schemas/ShowRequest' },\n response: { $ref: '#/schemas/ShowResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Capabilities source: /api/show is the runtime source of truth for model-dependent capability values (tools, vision, thinking, embeddings).',\n ],\n} as const satisfies OperationDefinition;\n\nexport const systemOneOp = {\n operationId: 'systemOne',\n method: 'POST',\n path: '/v1/systemone',\n request: { $ref: '#/schemas/SystemOneRequest' },\n response: { $ref: '#/schemas/SystemOneResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {\n thinking: 'unsupported',\n tools: 'unsupported',\n vision: 'model-dependent',\n structuredOutput: 'unsupported',\n logprobs: 'unsupported',\n embeddings: 'unsupported',\n },\n constraints: {\n minOllamaVersion: '0.35.0',\n maxRequestBytes: 65536,\n maxRequestBytesWithImages: 33554432,\n },\n status: { documented: true, experimental: true },\n domain: 'native',\n notes: [\n 'Local and cloud: model accepts cloud models (e.g. clef:cloud); cloud models require Ollama >= 0.40.5 or the hosted https://ollama.com endpoint.',\n 'Local dual cap: text and schema (excluding images) within 64 KiB AND the whole request within 32 MiB, including base64 and JSON overhead.',\n \"Cloud requests: paid plan or usage credits required; up to 64 questions named with up to 100 ASCII letters, digits, `_`, `.`, or `-`; up to 4 images of at most 4 MiB and 16 megapixels each (8 MiB total); requests within 13 MiB; input within the model's 65,536-token context window.\",\n '401 when a cloud model is requested without signing in or with an invalid API key (through a local server the response includes a signin_url); 402 when the cloud model is not included in the Free plan or a payment fails.',\n 'No tools, no generation controls (temperature, top_p, etc.).',\n 'Vision is model-dependent: images are accepted by vision-weighted models (Clef/Clef Flash) but not by text-only models.',\n 'Experimental: behavioral surface may change between Ollama releases.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const tagsOp = {\n operationId: 'tags',\n method: 'GET',\n path: '/api/tags',\n response: { $ref: '#/schemas/ListResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const usageOp = {\n operationId: 'usage',\n method: 'GET',\n path: '/api/usage',\n response: { $ref: '#/schemas/UsageResponse' },\n environment: { local: false, cloud: true },\n host: 'https://ollama.com',\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Cloud-only account endpoint — targets https://ollama.com, not the local Ollama server.',\n 'Requires an Ollama Cloud API key (set via OllamaClient credentials).',\n 'Query parameters (not modeled by the generated runtime): range = 24h | 7d | 30d (server default 7d), scope = self | team (server default self; team scope requires a team admin), group_by = model (2026-10-22 pin: upstream 2476d5e — groups totals into per-model UsageGroup entries, up to 10 ranked by usage_usd or request_count, with a remainder bucket for the rest).',\n 'Rate limited to 10 requests/minute per user; 429 responses carry a Retry-After header.',\n 'Use OllamaClient.usage() — the generated NativeApi class does not expose this operation.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const versionOp = {\n operationId: 'version',\n method: 'GET',\n path: '/api/version',\n response: { $ref: '#/schemas/VersionResponse' },\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n} as const satisfies OperationDefinition;\n\nexport const webFetchOp = {\n operationId: 'webFetch',\n method: 'POST',\n path: '/api/web_fetch',\n request: { $ref: '#/schemas/WebFetchRequest' },\n response: { $ref: '#/schemas/WebFetchResponse' },\n environment: { local: false, cloud: true },\n host: 'https://ollama.com',\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Cloud-only capability endpoint — targets https://ollama.com, not the local Ollama server.',\n 'Requires an Ollama Cloud API key (set via OllamaClient credentials).',\n 'Use OllamaClient.webFetch() — the generated NativeApi class does not expose this operation.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const webSearchOp = {\n operationId: 'webSearch',\n method: 'POST',\n path: '/api/web_search',\n request: { $ref: '#/schemas/WebSearchRequest' },\n response: { $ref: '#/schemas/WebSearchResponse' },\n environment: { local: false, cloud: true },\n host: 'https://ollama.com',\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'native',\n notes: [\n 'Cloud-only capability endpoint — targets https://ollama.com, not the local Ollama server.',\n 'Requires an Ollama Cloud API key (set via OllamaClient credentials).',\n 'Use OllamaClient.webSearch() — the generated NativeApi class does not expose this operation.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const openaiChatCompletionsOp = {\n operationId: 'openaiChatCompletions',\n method: 'POST',\n path: '/v1/chat/completions',\n environment: { local: true, cloud: true },\n transport: { mode: 'sse', streaming: true, streamingDefault: false },\n capabilities: {\n thinking: 'model-dependent',\n tools: 'model-dependent',\n vision: 'model-dependent',\n structuredOutput: 'supported',\n logprobs: 'unsupported',\n },\n status: { documented: true },\n domain: 'openai',\n notes: [\n 'Ollama exposes a subset of the OpenAI Chat Completions request fields; see docs/upstream/ollama-openai-compatibility.mdx.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const openaiCompletionsOp = {\n operationId: 'openaiCompletions',\n method: 'POST',\n path: '/v1/completions',\n environment: { local: true, cloud: true },\n transport: { mode: 'sse', streaming: true, streamingDefault: false },\n capabilities: { logprobs: 'unsupported' },\n status: { documented: true },\n domain: 'openai',\n} as const satisfies OperationDefinition;\n\nexport const openaiEmbeddingsOp = {\n operationId: 'openaiEmbeddings',\n method: 'POST',\n path: '/v1/embeddings',\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: { embeddings: 'supported' },\n status: { documented: true },\n domain: 'openai',\n} as const satisfies OperationDefinition;\n\nexport const openaiModelsOp = {\n operationId: 'openaiModels',\n method: 'GET',\n path: '/v1/models',\n environment: { local: true, cloud: true },\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'openai',\n} as const satisfies OperationDefinition;\n\nexport const openaiModelsGetOneOp = {\n operationId: 'openaiModelsGetOne',\n method: 'GET',\n path: '/v1/models/{model}',\n environment: { local: true, cloud: true },\n parameters: [{ name: 'model', in: 'path', required: true, schema: { type: 'string' } }],\n transport: { mode: 'json', streaming: false },\n capabilities: {},\n status: { documented: true },\n domain: 'openai',\n notes: ['Returns metadata for a single OpenAI-compat model by id.'],\n} as const satisfies OperationDefinition;\n\nexport const openaiResponsesOp = {\n operationId: 'openaiResponses',\n method: 'POST',\n path: '/v1/responses',\n environment: { local: true, cloud: true },\n transport: { mode: 'sse', streaming: true, streamingDefault: false },\n capabilities: { thinking: 'model-dependent', tools: 'model-dependent' },\n status: { documented: true },\n domain: 'openai',\n notes: [\n 'Ollama implements a subset of the OpenAI Responses API; previous_response_id and conversation are explicitly unsupported.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const anthropicMessagesOp = {\n operationId: 'anthropicMessages',\n method: 'POST',\n path: '/v1/messages',\n environment: { local: true, cloud: true },\n transport: { mode: 'sse', streaming: true, streamingDefault: false },\n capabilities: { thinking: 'model-dependent', tools: 'model-dependent' },\n status: { documented: true },\n domain: 'anthropic',\n notes: [\n \"tool_choice and metadata are explicitly unsupported by Ollama's Anthropic compat layer.\",\n 'Nested cache_control fields under messages[].content[].cache_control are unsupported.',\n ],\n} as const satisfies OperationDefinition;\n\nexport const allOperations = [\n balanceOp,\n blobsOp,\n chatOp,\n copyOp,\n createOp,\n createBlobOp,\n deleteOp,\n embedOp,\n generateOp,\n psOp,\n pullOp,\n pushOp,\n showOp,\n systemOneOp,\n tagsOp,\n usageOp,\n versionOp,\n webFetchOp,\n webSearchOp,\n openaiChatCompletionsOp,\n openaiCompletionsOp,\n openaiEmbeddingsOp,\n openaiModelsOp,\n openaiModelsGetOneOp,\n openaiResponsesOp,\n anthropicMessagesOp,\n] as const;\n","/**\n * Generated Ollama MCP tools — runtime adapter.\n *\n * Reads the descriptor list from `src/generated/mcp/tools.json` (the Wave 6\n * MCP emitter output) and exposes them as a `McpToolDescriptor[]` that\n * `McpBridge` can register. The actual call execution delegates to the\n * generated `OllamaRuntime` via the user-provided runtime instance.\n *\n * Usage:\n * ```ts\n * import { NativeApi, OllamaRuntime } from '@nemesis-oss/ollama-sdk/runtime';\n * import { createGeneratedOllamaTools } from '@nemesis-oss/ollama-sdk/mcp/generated';\n *\n * const runtime = new OllamaRuntime({ http });\n * const tools = createGeneratedOllamaTools(runtime);\n * bridge.registerTools(tools);\n * ```\n *\n * This is a Wave 6 opt-in feature — the existing McpBridge continues to work\n * unchanged. Users who want generated MCP tools import this adapter\n * explicitly.\n */\nimport { readFileSync } from 'node:fs';\nimport { fileURLToPath } from 'node:url';\nimport { resolve, dirname } from 'node:path';\nimport type { McpToolDescriptor } from './types.js';\nimport { OllamaRuntime } from '../generated/runtime/runtime.js';\nimport type { OperationDefinition } from '../generated/runtime/operation-definition.js';\n\ninterface GeneratedToolEntry extends McpToolDescriptor {\n readonly _operationId: string;\n}\n\ninterface GeneratedToolsFile {\n readonly _comment?: string;\n readonly tools: readonly GeneratedToolEntry[];\n}\n\n/**\n * Resolve the path to `tools.json` across runtime environments:\n *\n * - **In source (development):** `src/generated/mcp/tools.json`\n * - **In the published tarball:** `dist/mcp/tools.json` (copied by tsup's\n * `onSuccess` hook; see tsup.config.ts)\n *\n * The dist bundle is at `dist/mcp-generated.js`, so the JSON sits two\n * directories up + into `mcp/`. The source file is at\n * `src/mcp/generated-bridge.ts`, so the JSON sits one directory up +\n * into `generated/mcp/`.\n */\nconst HERE = dirname(fileURLToPath(import.meta.url));\nconst TOOLS_JSON_PATH = (() => {\n // Try the source layout first (development), then fall back to the dist\n // layout (published). The order matters because in a tsx-run dev env\n // we may be executing from `src/mcp/generated-bridge.ts`, but in a\n // consumer install we're at `dist/mcp-generated.js`.\n const candidates = [\n resolve(HERE, '../generated/mcp/tools.json'), // source layout\n resolve(HERE, 'mcp/tools.json'), // dist layout (next to mcp-generated.js)\n resolve(HERE, '../mcp/tools.json'), // alt dist layout (sibling of bundled dir)\n ];\n for (const candidate of candidates) {\n try {\n readFileSync(candidate, 'utf8');\n return candidate;\n } catch {\n // try next candidate\n }\n }\n // Fall back to the source-layout path; the error will surface with a\n // clearer message when the loader is actually invoked.\n return candidates[0] ?? resolve(HERE, '../generated/mcp/tools.json');\n})();\n\nlet cachedTools: readonly GeneratedToolEntry[] | undefined;\n\n/** Load and cache the generated tool descriptors from tools.json. */\nexport function loadGeneratedOllamaTools(): readonly GeneratedToolEntry[] {\n if (cachedTools) return cachedTools;\n const raw = readFileSync(TOOLS_JSON_PATH, 'utf8');\n const parsed = JSON.parse(raw) as GeneratedToolsFile;\n cachedTools = parsed.tools;\n return cachedTools;\n}\n\n/** Drop the `_operationId` field before exposing the descriptor externally. */\nfunction publicDescriptor(entry: GeneratedToolEntry): McpToolDescriptor {\n const { _operationId, ...rest } = entry;\n void _operationId;\n return rest;\n}\n\n/**\n * Build a list of MCP tool descriptors for the generated Ollama operations.\n * Each tool can be invoked by name via {@link callGeneratedOllamaTool}.\n *\n * The descriptors are read once and cached for the lifetime of the process.\n */\nexport function listGeneratedOllamaTools(): readonly McpToolDescriptor[] {\n return loadGeneratedOllamaTools().map(publicDescriptor);\n}\n\n/**\n * Invoke a generated tool by name. The `name` must match a tool from\n * {@link listGeneratedOllamaTools}.\n *\n * Returns a `McpCallToolResult` containing the structured response. The\n * caller (typically `McpBridge`) is responsible for serializing the result\n * back over the MCP transport.\n */\nexport async function callGeneratedOllamaTool(\n runtime: OllamaRuntime,\n name: string,\n args: Record<string, unknown>,\n options?: { signal?: AbortSignal },\n): Promise<{ content: readonly { type: 'text'; text: string }[]; structuredContent: unknown }> {\n const tools = loadGeneratedOllamaTools();\n const entry = tools.find((t) => t.name === name);\n if (!entry) {\n return {\n content: [{ type: 'text', text: `Unknown tool: ${name}` }],\n structuredContent: { error: 'unknown_tool', name },\n };\n }\n\n // Look up the operation in the IR by id. We re-import the operations\n // module to avoid a circular dependency at module-load time.\n const operations = await import('../generated/api/operations.js');\n const opKey = `${entry._operationId}Op` as keyof typeof operations;\n const operation = operations[opKey] as OperationDefinition | undefined;\n if (!operation || typeof operation !== 'object' || !('operationId' in operation)) {\n return {\n content: [{ type: 'text', text: `Operation not found for ${name}` }],\n structuredContent: { error: 'operation_not_found', name },\n };\n }\n\n try {\n // Wave 15 (P0): split path/query/header parameters from the request\n // body. The MCP input schema may declare path parameters (e.g. `model`\n // for /v1/models/{model}) — those must be passed as `pathParams` to\n // the runtime, not put in the request body. The operation's\n // `parameters` field tells us which args are path/query/header vs body.\n const opParams = operation.parameters ?? [];\n const pathParams: Record<string, string> = {};\n const queryParams: Record<string, string> = {};\n const headerParams: Record<string, string> = {};\n const bodyArgs: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(args)) {\n const paramDef = opParams.find((p) => p.name === key);\n if (paramDef) {\n if (paramDef.in === 'path') {\n pathParams[key] = String(value);\n } else if (paramDef.in === 'query') {\n queryParams[key] = String(value);\n } else if (paramDef.in === 'header') {\n headerParams[key] = String(value);\n }\n } else {\n // Not a declared parameter → goes in the request body.\n bodyArgs[key] = value;\n }\n }\n\n const hasBody = Object.keys(bodyArgs).length > 0;\n const result = await runtime.invoke<unknown>({\n operation,\n body: hasBody ? bodyArgs : undefined,\n ...(Object.keys(pathParams).length > 0 ? { pathParams } : {}),\n ...(Object.keys(queryParams).length > 0 ? { queryParams } : {}),\n ...(Object.keys(headerParams).length > 0 ? { headerParams } : {}),\n ...(options?.signal !== undefined ? { signal: options.signal } : {}),\n });\n return {\n content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],\n structuredContent: result,\n };\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return {\n content: [{ type: 'text', text: `Ollama tool ${name} failed: ${message}` }],\n structuredContent: { error: 'tool_failed', name, message },\n };\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { n as Message, m as ChatResponse, i as ToolCall, b as ProgressResponse, o as GenerateResponse } from './types-Y3u0FtdN.cjs';
1
+ import { n as Message, m as ChatResponse, i as ToolCall, b as ProgressResponse, o as GenerateResponse } from './types-CnsZ24tm.cjs';
2
2
  import { z } from 'zod';
3
3
 
4
4
  /**
@@ -160,6 +160,16 @@ declare class OllamaPaymentRequiredError extends OllamaClientError {
160
160
  declare class OllamaNotFoundError extends OllamaClientError {
161
161
  constructor(message: string, options?: Omit<OllamaClientErrorOptions, 'code' | 'retryable'> | undefined);
162
162
  }
163
+ /**
164
+ * Thrown for HTTP 429 responses. When the server sends a `Retry-After`
165
+ * header (RFC 9110 § 10.2.3 — delay-seconds or HTTP-date), it is parsed into
166
+ * {@link OllamaRateLimitError.retryAfterMs} so callers — and the SDK's own
167
+ * `withRetry` transport loop — can pace retries by the server's explicit
168
+ * signal instead of local backoff heuristics. The header is advisory: callers
169
+ * remain free to ignore it or cap it, and when it is absent or unparseable
170
+ * the field stays `undefined` and retries fall back to full-jitter
171
+ * exponential backoff.
172
+ */
163
173
  declare class OllamaRateLimitError extends OllamaClientError {
164
174
  readonly retryAfterMs?: number | undefined;
165
175
  constructor(message: string, options?: (Omit<OllamaClientErrorOptions, 'code' | 'retryable'> & {
@@ -348,6 +358,31 @@ declare class OllamaToolTimeoutError extends OllamaClientError {
348
358
  timeoutMs: number;
349
359
  });
350
360
  }
361
+ /**
362
+ * Thrown client-side by `OllamaClient.systemOne` BEFORE any request is sent,
363
+ * when a cloud model (e.g. `clef:cloud`) is requested through a LOCAL Ollama
364
+ * server older than 0.40.5 — the first local version able to front System One
365
+ * cloud requests (upstream System One cloud-launch documentation; ADR 0036).
366
+ * The hosted `https://ollama.com` endpoint never triggers this error.
367
+ *
368
+ * Distinct from {@link OllamaServerVersionUnknownError} (version could not be
369
+ * determined) and from the runtime's generic too-old rejection (which covers
370
+ * the blanket operation-level 0.35.0 floor and throws
371
+ * {@link OllamaGenericClientError}): this error is model-dependent and carries
372
+ * the offending model, the server's reported version, and the required floor,
373
+ * so callers can branch precisely — e.g. suggest upgrading Ollama or pointing
374
+ * a second endpoint at `https://ollama.com`.
375
+ */
376
+ declare class OllamaCloudModelVersionError extends OllamaClientError {
377
+ readonly model: string;
378
+ readonly serverVersion: string;
379
+ readonly minRequiredVersion: string;
380
+ constructor(message: string, options: Omit<OllamaClientErrorOptions, 'code' | 'retryable'> & {
381
+ model: string;
382
+ serverVersion: string;
383
+ minRequiredVersion: string;
384
+ });
385
+ }
351
386
  /**
352
387
  * Thrown client-side, before a network request is made, when a request asks for a
353
388
  * capability an endpoint is known not to support (e.g. structured output `format` against
@@ -488,6 +523,24 @@ declare const NETWORK_ERROR_CODES: ReadonlySet<string>;
488
523
  * the gap for the non-`TypeError` shapes.
489
524
  */
490
525
  declare function isNetworkLevelError(error: unknown): boolean;
526
+ /**
527
+ * Parses an HTTP `Retry-After` header value (RFC 9110 § 10.2.3) into
528
+ * milliseconds relative to `now`.
529
+ *
530
+ * Two wire formats are legal:
531
+ * - delay-seconds — `"120"` → `120_000`
532
+ * - HTTP-date — `"Wed, 21 Oct 2026 07:28:00 GMT"` → milliseconds until that
533
+ * instant (`0` when the date is already in the past, since a server saying
534
+ * "retry now" carries no delay signal worth encoding)
535
+ *
536
+ * Returns `undefined` for missing, empty, or malformed values, and for
537
+ * delay-seconds strings too large to represent. Malformed means anything
538
+ * that is neither digits nor a strict IMF-fixdate — including near-misses
539
+ * like `"1.5"` that a bare `Date.parse` would happily accept. The result is
540
+ * deliberately NOT capped: clamping an absurd server value is caller
541
+ * policy, not parser policy.
542
+ */
543
+ declare function parseRetryAfterMs(headerValue: string | undefined, now?: number): number | undefined;
491
544
  /**
492
545
  * Maps arbitrary thrown exceptions into structured OllamaClientError instances.
493
546
  */
@@ -979,4 +1032,4 @@ declare class OllamaRuntime {
979
1032
  private assertOperationAllowed;
980
1033
  }
981
1034
 
982
- export { OllamaPaymentRequiredError as $, type AbortableAsyncIterable as A, type BinaryBody as B, type ChatStreamResult as C, type DoneEvent as D, type ErrorEvent as E, type FetchLike as F, type GenerateStreamResult as G, HttpClient as H, type InvokeRequest as I, type OllamaClientErrorOptions as J, type OllamaErrorRequestContext as K, type Logger as L, type Middleware as M, NANOS_PER_MS as N, OllamaRuntime as O, type ProgressStreamResult as P, type OllamaErrorResponseContext as Q, type RequestLifecycleHook as R, type SchemaRef as S, type TokenUsage as T, OllamaGenericClientError as U, OllamaIncompatibleModelError as V, OllamaMcpError as W, OllamaModelRoutingError as X, OllamaNetworkError as Y, OllamaNotFoundError as Z, OllamaOverloadedError as _, type OperationDefinition as a, OllamaQuotaExceededError as a0, OllamaRateLimitError as a1, OllamaRequestTooLargeError as a2, OllamaRequestValidationError as a3, OllamaResponseValidationError as a4, OllamaServerError as a5, OllamaServerVersionUnknownError as a6, OllamaSkillInvalidError as a7, OllamaSkillNotFoundError as a8, OllamaStreamError as a9, OllamaTimeoutError as aa, OllamaToolTimeoutError as ab, OllamaToolValidationError as ac, OllamaUnsupportedCapabilityError as ad, type RequestContext as ae, type RequestLifecycleEvent as af, type ResponseContext as ag, type SseEvent as ah, type ThinkingEvent as ai, type TokenEvent as aj, type ToolCallEvent as ak, composeMiddleware as al, createConsoleLogger as am, extractUsage as an, isNetworkLevelError as ao, mapError as ap, parseSseStream as aq, type OllamaRuntimeOptions as b, type OllamaStreamEvent as c, type OllamaStreamEventType as d, type RawUsageSource as e, type HttpBody as f, type HttpClientOptions as g, type HttpRequestOptions as h, type LifecycleErrorEvent as i, type LifecycleRetryEvent as j, type LifecycleStartEvent as k, type LifecycleSuccessEvent as l, type LogFn as m, type MessageEvent as n, type MiddlewareContext as o, NANOS_PER_SECOND as p, NETWORK_ERROR_CODES as q, NOOP_LOGGER as r, type NextFunction as s, OllamaAbortError as t, OllamaAgentMaxIterationsError as u, OllamaAgentMaxToolCallsError as v, OllamaAgentToolLoopError as w, OllamaAuthError as x, OllamaBadGatewayError as y, OllamaClientError as z };
1035
+ export { OllamaOverloadedError as $, type AbortableAsyncIterable as A, type BinaryBody as B, type ChatStreamResult as C, type DoneEvent as D, type ErrorEvent as E, type FetchLike as F, type GenerateStreamResult as G, HttpClient as H, type InvokeRequest as I, type OllamaClientErrorOptions as J, OllamaCloudModelVersionError as K, type Logger as L, type Middleware as M, NANOS_PER_MS as N, OllamaRuntime as O, type ProgressStreamResult as P, type OllamaErrorRequestContext as Q, type RequestLifecycleHook as R, type SchemaRef as S, type TokenUsage as T, type OllamaErrorResponseContext as U, OllamaGenericClientError as V, OllamaIncompatibleModelError as W, OllamaMcpError as X, OllamaModelRoutingError as Y, OllamaNetworkError as Z, OllamaNotFoundError as _, type OperationDefinition as a, OllamaPaymentRequiredError as a0, OllamaQuotaExceededError as a1, OllamaRateLimitError as a2, OllamaRequestTooLargeError as a3, OllamaRequestValidationError as a4, OllamaResponseValidationError as a5, OllamaServerError as a6, OllamaServerVersionUnknownError as a7, OllamaSkillInvalidError as a8, OllamaSkillNotFoundError as a9, OllamaStreamError as aa, OllamaTimeoutError as ab, OllamaToolTimeoutError as ac, OllamaToolValidationError as ad, OllamaUnsupportedCapabilityError as ae, type RequestContext as af, type RequestLifecycleEvent as ag, type ResponseContext as ah, type SseEvent as ai, type ThinkingEvent as aj, type TokenEvent as ak, type ToolCallEvent as al, composeMiddleware as am, createConsoleLogger as an, extractUsage as ao, isNetworkLevelError as ap, mapError as aq, parseRetryAfterMs as ar, parseSseStream as as, type OllamaRuntimeOptions as b, type OllamaStreamEvent as c, type OllamaStreamEventType as d, type RawUsageSource as e, type HttpBody as f, type HttpClientOptions as g, type HttpRequestOptions as h, type LifecycleErrorEvent as i, type LifecycleRetryEvent as j, type LifecycleStartEvent as k, type LifecycleSuccessEvent as l, type LogFn as m, type MessageEvent as n, type MiddlewareContext as o, NANOS_PER_SECOND as p, NETWORK_ERROR_CODES as q, NOOP_LOGGER as r, type NextFunction as s, OllamaAbortError as t, OllamaAgentMaxIterationsError as u, OllamaAgentMaxToolCallsError as v, OllamaAgentToolLoopError as w, OllamaAuthError as x, OllamaBadGatewayError as y, OllamaClientError as z };