rawi
Version:
Rawi (راوي) is the developer-friendly AI CLI that brings the power of 12 major AI providers directly to your terminal. With seamless shell integration, persistent conversations, and 200+ specialized prompt templates, Rawi transforms your command line into
1 lines • 8.32 kB
Source Map (JSON)
{"version":3,"sources":["/home/mkabumattar/withrawi/rawi/dist/chunk-X4T4DLSS.cjs","../src/core/providers/ollama.provider.ts"],"names":["ollamaModelIds","ollamaModels","name","ollamaProvider","streamWithOllama","credentials","prompt","ollamaSettings","createOllama","result","streamText","error"],"mappings":"AAAA;ACCA,kDAA2B,wBACF,IAWnBA,CAAAA,CAAiB,CACrB,WAAA,CACA,eAAA,CACA,aAAA,CACA,gBAAA,CACA,iBAAA,CACA,WAAA,CACA,cAAA,CACA,cAAA,CACA,WAAA,CACA,cAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,gBAAA,CACA,kBAAA,CACA,WAAA,CACA,eAAA,CACA,gBAAA,CACA,qBAAA,CACA,aAAA,CACA,gBAAA,CACA,mBAAA,CACA,uBAAA,CACA,wBAAA,CACA,aAAA,CACA,kBAAA,CACA,UAAA,CACA,aAAA,CACA,WAAA,CACA,gBAAA,CACA,gBAAA,CACA,eAAA,CACA,SAAA,CACA,aAAA,CACA,SAAA,CACA,YAAA,CACA,YAAA,CACA,YAAA,CACA,aAAA,CACA,iBAAA,CACA,qBAAA,CACA,OAAA,CACA,UAAA,CACA,UAAA,CACA,QAAA,CACA,WAAA,CACA,WAAA,CACA,YAAA,CACA,gBAAA,CACA,mBAAA,CACA,mBAAA,CACA,mBAAA,CACA,sBAAA,CACA,sBAAA,CACA,cAAA,CACA,iBAAA,CACA,iBAAA,CACA,kBAAA,CACA,qBAAA,CACA,qBAAA,CACA,gBAAA,CACA,mBAAA,CACA,mBAAA,CACA,QAAA,CACA,WAAA,CACA,YAAA,CACA,YAAA,CACA,QAAA,CACA,WAAA,CACA,YAAA,CACA,eAAA,CACA,kBAAA,CACA,mBAAA,CACA,iBAAA,CACA,oBAAA,CACA,qBAAA,CACA,UAAA,CACA,aAAA,CACA,cAAA,CACA,eAAA,CACA,UAAA,CACA,aAAA,CACA,aAAA,CACA,iBAAA,CACA,qBAAA,CACA,qBAAA,CACA,UAAA,CACA,cAAA,CACA,cAAA,CACA,iBAAA,CACA,iBAAA,CACA,OAAA,CACA,UAAA,CACA,WAAA,CACA,WAAA,CACA,cAAA,CACA,iBAAA,CACA,YAAA,CACA,iBAAA,CACA,UAAA,CACA,aAAA,CACA,SAAA,CACA,YAAA,CACA,eAAA,CACA,oBAAA,CACA,cAAA,CACA,kBAAA,CACA,eAAA,CACA,mBAAA,CACA,SAAA,CACA,cAAA,CACA,eAAA,CACA,WAAA,CACA,gBAAA,CACA,YAAA,CACA,iBAAA,CACA,UAAA,CACA,cAAA,CACA,eAAA,CACA,kBAAA,CACA,MAAA,CACA,SAAA,CACA,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,MAAA,CACA,WAAA,CACA,UAAA,CACA,QAAA,CACA,aAAA,CACA,MAAA,CACA,UAAA,CACA,MAAA,CACA,SAAA,CACA,UAAA,CACA,UAAA,CACA,UAAA,CACA,WAAA,CACA,OAAA,CACA,YAAA,CACA,YAAA,CACA,UAAA,CACA,WAAA,CACA,SAAA,CACA,cAAA,CACA,cAAA,CACA,YAAA,CACA,YAAA,CACA,aAAA,CACA,aAAA,CACA,aAAA,CACA,eAAA,CACA,oBAAA,CACA,oBAAA,CACA,kBAAA,CACA,kBAAA,CACA,mBAAA,CACA,mBAAA,CACA,KAAA,CACA,SAAA,CACA,SAAA,CACA,YAAA,CACA,YAAA,CACA,aAAA,CACA,aAAA,CACA,gBAAA,CACA,gBAAA,CACA,iBAAA,CACA,cAAA,CACA,iBAAA,CACA,QAAA,CACA,aAAA,CACA,aAAA,CACA,aAAA,CACA,WAAA,CACA,gBAAA,CACA,OAAA,CACA,UAAA,CACA,WACF,CAAA,CAEaC,CAAAA,aAA4BD,CAAAA,CAAe,GAAA,CAAKE,CAAAA,EAAAA,CAAU,CACrE,IAAA,CAAAA,CAAAA,CACA,WAAA,CAAaA,CACf,CAAA,CAAE,CAAA,CAEWC,CAAAA,aAAiB,CAC5B,IAAA,CAAM,QAAA,CACN,WAAA,CAAa,kBAAA,CACb,MAAA,CAAQF,CACV,CAAA,CAEaG,CAAAA,aAAmB,KAAA,CAC9BC,CAAAA,CACAC,CAAAA,CAAAA,EAC+B,CAC/B,GAAI,CACF,IAAMC,CAAAA,CAAsC,CAAC,CAAA,CAG3CF,CAAAA,CAAY,gBAAA,EACZ,SAAA,GAAaA,CAAAA,CAAY,gBAAA,EAAA,CAEzBE,CAAAA,CAAe,OAAA,CAAUF,CAAAA,CAAY,gBAAA,CAAiB,OAAA,CAAA,CAGxD,IAAMF,CAAAA,CAAiBK,kCAAAA,MACrB,CAAO,IAAA,CAAKD,CAAc,CAAA,CAAE,MAAA,CAAS,CAAA,CAAIA,CAAAA,CAAiB,KAAA,CAC5D,CAAA,CAEME,CAAAA,CAASC,4BAAAA,CACb,KAAA,CAAOP,CAAAA,CAAeE,CAAAA,CAAY,KAAK,CAAA,CACvC,MAAA,CAAAC,CAAAA,CACA,WAAA,CAAaD,CAAAA,CAAY,WAAA,EAAe,EAAA,CACxC,SAAA,CAAWA,CAAAA,CAAY,SAAA,EAAa,IACtC,CAAC,CAAA,CAED,MAAO,CACL,UAAA,CAAYI,CAAAA,CAAO,UAAA,CACnB,YAAA,CAAcA,CAAAA,CAAO,IACvB,CACF,CAAA,KAAA,CAASE,CAAAA,CAAO,CACd,MAAM,IAAI,KAAA,CACR,CAAA,oCAAA,EACEA,EAAAA,WAAiB,KAAA,CAAQA,CAAAA,CAAM,OAAA,CAAU,MAAA,CAAOA,CAAK,CACvD,CAAA,CAAA;AD9O2qG","file":"/home/mkabumattar/withrawi/rawi/dist/chunk-X4T4DLSS.cjs","sourcesContent":[null,"import type {ollama} from '@ai-sdk-community/ollama';\nimport {createOllama} from '@ai-sdk-community/ollama';\nimport {streamText} from 'ai';\nimport type {\n LooseToStrict,\n ModelInfo,\n RawiCredentials,\n StreamingResponse,\n} from '../shared/index.js';\n\ntype LooseOllamaModelId = Parameters<typeof ollama>[0];\nexport type OllamaModelId = LooseToStrict<LooseOllamaModelId>;\n\nconst ollamaModelIds = [\n 'athene-v2',\n 'athene-v2:72b',\n 'aya-expanse',\n 'aya-expanse:8b',\n 'aya-expanse:32b',\n 'codegemma',\n 'codegemma:2b',\n 'codegemma:7b',\n 'codellama',\n 'codellama:7b',\n 'codellama:13b',\n 'codellama:34b',\n 'codellama:70b',\n 'codellama:code',\n 'codellama:python',\n 'command-r',\n 'command-r:35b',\n 'command-r-plus',\n 'command-r-plus:104b',\n 'command-r7b',\n 'command-r7b:7b',\n 'deepseek-coder-v2',\n 'deepseek-coder-v2:16b',\n 'deepseek-coder-v2:236b',\n 'deepseek-v3',\n 'deepseek-v3:671b',\n 'dolphin3',\n 'dolphin3:8b',\n 'exaone3.5',\n 'exaone3.5:2.4b',\n 'exaone3.5:7.8b',\n 'exaone3.5:32b',\n 'falcon2',\n 'falcon2:11b',\n 'falcon3',\n 'falcon3:1b',\n 'falcon3:3b',\n 'falcon3:7b',\n 'falcon3:10b',\n 'firefunction-v2',\n 'firefunction-v2:70b',\n 'gemma',\n 'gemma:2b',\n 'gemma:7b',\n 'gemma2',\n 'gemma2:2b',\n 'gemma2:9b',\n 'gemma2:27b',\n 'granite3-dense',\n 'granite3-dense:2b',\n 'granite3-dense:8b',\n 'granite3-guardian',\n 'granite3-guardian:2b',\n 'granite3-guardian:8b',\n 'granite3-moe',\n 'granite3-moe:1b',\n 'granite3-moe:3b',\n 'granite3.1-dense',\n 'granite3.1-dense:2b',\n 'granite3.1-dense:8b',\n 'granite3.1-moe',\n 'granite3.1-moe:1b',\n 'granite3.1-moe:3b',\n 'llama2',\n 'llama2:7b',\n 'llama2:13b',\n 'llama2:70b',\n 'llama3',\n 'llama3:8b',\n 'llama3:70b',\n 'llama3-chatqa',\n 'llama3-chatqa:8b',\n 'llama3-chatqa:70b',\n 'llama3-gradient',\n 'llama3-gradient:8b',\n 'llama3-gradient:70b',\n 'llama3.1',\n 'llama3.1:8b',\n 'llama3.1:70b',\n 'llama3.1:405b',\n 'llama3.2',\n 'llama3.2:1b',\n 'llama3.2:3b',\n 'llama3.2-vision',\n 'llama3.2-vision:11b',\n 'llama3.2-vision:90b',\n 'llama3.3',\n 'llama3.3:70b',\n 'llama-guard3',\n 'llama-guard3:1b',\n 'llama-guard3:8b',\n 'llava',\n 'llava:7b',\n 'llava:13b',\n 'llava:34b',\n 'llava-llama3',\n 'llava-llama3:8b',\n 'llava-phi3',\n 'llava-phi3:3.8b',\n 'marco-o1',\n 'marco-o1:7b',\n 'mistral',\n 'mistral:7b',\n 'mistral-large',\n 'mistral-large:123b',\n 'mistral-nemo',\n 'mistral-nemo:12b',\n 'mistral-small',\n 'mistral-small:22b',\n 'mixtral',\n 'mixtral:8x7b',\n 'mixtral:8x22b',\n 'moondream',\n 'moondream:1.8b',\n 'openhermes',\n 'openhermes:v2.5',\n 'nemotron',\n 'nemotron:70b',\n 'nemotron-mini',\n 'nemotron-mini:4b',\n 'olmo',\n 'olmo:7b',\n 'olmo:13b',\n 'opencoder',\n 'opencoder:1.5b',\n 'opencoder:8b',\n 'phi3',\n 'phi3:3.8b',\n 'phi3:14b',\n 'phi3.5',\n 'phi3.5:3.8b',\n 'phi4',\n 'phi4:14b',\n 'qwen',\n 'qwen:7b',\n 'qwen:14b',\n 'qwen:32b',\n 'qwen:72b',\n 'qwen:110b',\n 'qwen2',\n 'qwen2:0.5b',\n 'qwen2:1.5b',\n 'qwen2:7b',\n 'qwen2:72b',\n 'qwen2.5',\n 'qwen2.5:0.5b',\n 'qwen2.5:1.5b',\n 'qwen2.5:3b',\n 'qwen2.5:7b',\n 'qwen2.5:14b',\n 'qwen2.5:32b',\n 'qwen2.5:72b',\n 'qwen2.5-coder',\n 'qwen2.5-coder:0.5b',\n 'qwen2.5-coder:1.5b',\n 'qwen2.5-coder:3b',\n 'qwen2.5-coder:7b',\n 'qwen2.5-coder:14b',\n 'qwen2.5-coder:32b',\n 'qwq',\n 'qwq:32b',\n 'sailor2',\n 'sailor2:1b',\n 'sailor2:8b',\n 'sailor2:20b',\n 'shieldgemma',\n 'shieldgemma:2b',\n 'shieldgemma:9b',\n 'shieldgemma:27b',\n 'smallthinker',\n 'smallthinker:3b',\n 'smollm',\n 'smollm:135m',\n 'smollm:360m',\n 'smollm:1.7b',\n 'tinyllama',\n 'tinyllama:1.1b',\n 'tulu3',\n 'tulu3:8b',\n 'tulu3:70b',\n] as const;\n\nexport const ollamaModels: ModelInfo[] = ollamaModelIds.map((name) => ({\n name,\n displayName: name,\n}));\n\nexport const ollamaProvider = {\n name: 'ollama' as const,\n displayName: '🟢 Ollama',\n models: ollamaModels,\n} as const;\n\nexport const streamWithOllama = async (\n credentials: RawiCredentials,\n prompt: string,\n): Promise<StreamingResponse> => {\n try {\n const ollamaSettings: Record<string, any> = {};\n\n if (\n credentials.providerSettings &&\n 'baseURL' in credentials.providerSettings\n ) {\n ollamaSettings.baseURL = credentials.providerSettings.baseURL;\n }\n\n const ollamaProvider = createOllama(\n Object.keys(ollamaSettings).length > 0 ? ollamaSettings : undefined,\n );\n\n const result = streamText({\n model: ollamaProvider(credentials.model),\n prompt,\n temperature: credentials.temperature || 0.7,\n maxTokens: credentials.maxTokens || 2048,\n });\n\n return {\n textStream: result.textStream,\n fullResponse: result.text,\n };\n } catch (error) {\n throw new Error(\n `Error calling Ollama streaming API: ${\n error instanceof Error ? error.message : String(error)\n }`,\n );\n }\n};\n"]}