UNPKG

rawi

Version:

Rawi (راوي) is the developer-friendly AI CLI that brings the power of 11 major AI providers directly to your terminal. With seamless shell integration, persistent conversations, and 200+ specialized prompt templates, Rawi transforms your command line into

4 lines 8.63 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;/* Rawi (راوي) is the developer-friendly AI CLI that brings the power of 11 major AI providers directly to your terminal. With seamless shell integration, persistent conversations, and 200+ specialized prompt templates, Rawi transforms your command line into an intelligent development workspace. */ var _chunkIADUFCNScjs = require('./chunk-IADUFCNS.cjs');var _chunk3XZB7MQ6cjs = require('./chunk-3XZB7MQ6.cjs');var _chunkZ5KZJ74Vcjs = require('./chunk-Z5KZJ74V.cjs');var _chunkX5QODHIJcjs = require('./chunk-X5QODHIJ.cjs');var _chunkKE7P5FK7cjs = require('./chunk-KE7P5FK7.cjs');var _chunkIELHLB2Ccjs = require('./chunk-IELHLB2C.cjs');var _chunkUJ2KHNA4cjs = require('./chunk-UJ2KHNA4.cjs');var _chunk6UQXXL2Ocjs = require('./chunk-6UQXXL2O.cjs');var _providerutils = require('@ai-sdk/provider-utils');var _zod = require('zod');var w= (_class =class{constructor(n,p,m){;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);this.modelId=n;this.settings=p;this.config=m}__init() {this.specificationVersion="v2"}__init2() {this.defaultObjectGenerationMode="json"}__init3() {this.supportsImageUrls=!0}__init4() {this.supportedUrls={}}get supportsStructuredOutputs(){return _nullishCoalesce(this.settings.structuredOutputs, () => (!1))}get provider(){return this.config.provider}async#e({frequencyPenalty:n,maxOutputTokens:p,presencePenalty:m,prompt:g,providerOptions:h,responseFormat:r,seed:t,stopSequences:l,temperature:u,toolChoice:i,tools:o,topK:a,topP:s}){let d=[];r!==void 0&&r.type==="json"&&r.schema!==void 0&&!this.supportsStructuredOutputs&&d.push({details:"JSON response format schema is only supported with structuredOutputs",setting:"responseFormat",type:"unsupported-setting"});let f={format:_optionalChain([r, 'optionalAccess', _2 => _2.type])==="json"?_nullishCoalesce(r.schema, () => ("json")):void 0,model:this.modelId,options:_chunk3XZB7MQ6cjs.a.call(void 0, {f16_kv:this.settings.f16Kv,frequency_penalty:n,low_vram:this.settings.lowVram,main_gpu:this.settings.mainGpu,min_p:this.settings.minP,mirostat:this.settings.mirostat,mirostat_eta:this.settings.mirostatEta,mirostat_tau:this.settings.mirostatTau,num_batch:this.settings.numBatch,num_ctx:this.settings.numCtx,num_gpu:this.settings.numGpu,num_keep:this.settings.numKeep,num_predict:p,num_thread:this.settings.numThread,numa:this.settings.numa,penalize_newline:this.settings.penalizeNewline,presence_penalty:m,repeat_last_n:this.settings.repeatLastN,repeat_penalty:this.settings.repeatPenalty,seed:t,stop:l,temperature:u,tfs_z:this.settings.tfsZ,top_k:a,top_p:s,typical_p:this.settings.typicalP,use_mlock:this.settings.useMlock,use_mmap:this.settings.useMmap,vocab_only:this.settings.vocabOnly}),providerOptions:h},{tools:c,toolWarnings:_}=_chunkX5QODHIJcjs.a.call(void 0, {prompt:g,toolChoice:i,tools:o});return{args:{...f,messages:_chunkKE7P5FK7cjs.a.call(void 0, g),tools:c},warnings:[...d,..._]}}async doGenerate(n){let{args:p,warnings:m}=await this.#e(n),g={...p,stream:!1},{responseHeaders:h,value:r}=await _providerutils.postJsonToApi.call(void 0, {abortSignal:n.abortSignal,body:g,failedResponseHandler:_chunk6UQXXL2Ocjs.a,fetch:this.config.fetch,headers:_providerutils.combineHeaders.call(void 0, this.config.headers(),n.headers),successfulResponseHandler:_providerutils.createJsonResponseHandler.call(void 0, P),url:`${this.config.baseURL}/chat`}),t=r,l=[];t.message.content&&l.push({text:t.message.content,type:"text"});let u=_nullishCoalesce(t.message.tool_calls, () => ([]));for(let i of u)l.push({input:JSON.stringify(i.function.arguments),toolCallId:_nullishCoalesce(i.id, () => (_providerutils.generateId.call(void 0, ))),toolName:i.function.name,type:"tool-call"});return{content:l,finishReason:_chunkUJ2KHNA4cjs.a.call(void 0, {finishReason:t.done_reason,hasToolCalls:u!==void 0&&u.length>0}),request:{body:JSON.stringify(g)},response:{body:JSON.stringify(t),headers:h},usage:{inputTokens:t.prompt_eval_count||0,outputTokens:t.eval_count||0,totalTokens:(t.prompt_eval_count||0)+(t.eval_count||0)},warnings:m}}async doStream(n){let{args:p,warnings:m}=await this.#e(n),{responseHeaders:g,value:h}=await _providerutils.postJsonToApi.call(void 0, {abortSignal:n.abortSignal,body:p,failedResponseHandler:_chunk6UQXXL2Ocjs.a,fetch:this.config.fetch,headers:_providerutils.combineHeaders.call(void 0, this.config.headers(),n.headers),successfulResponseHandler:_chunkZ5KZJ74Vcjs.a.call(void 0, q),url:`${this.config.baseURL}/chat`}),r=new (0, _chunkIADUFCNScjs.a)({tools:n.tools}),t="unknown",l={inputTokens:void 0,outputTokens:void 0,totalTokens:void 0},u=!0,i=!1;return{request:{body:JSON.stringify(p)},response:{headers:g},stream:h.pipeThrough(new TransformStream({async flush(o){i&&o.enqueue({id:"0",type:"text-end"}),o.enqueue({finishReason:t,type:"finish",usage:l})},start(o){o.enqueue({type:"stream-start",warnings:m})},async transform(o,a){if(!o.success){a.enqueue({error:o.error,type:"error"});return}let{value:s}=o;if(u&&(u=!1,a.enqueue({type:"response-metadata",..._chunkIELHLB2Ccjs.a.call(void 0, s)})),s.done){t=r.finish({controller:a}),l={inputTokens:s.prompt_eval_count||0,outputTokens:s.eval_count,totalTokens:(s.prompt_eval_count||0)+s.eval_count};return}let d=s.message.content;if(d&&d.length>0&&(i||(a.enqueue({id:"0",type:"text-start"}),i=!0),a.enqueue({delta:d,id:"0",type:"text-delta"})),s.message.tool_calls)for(let f of s.message.tool_calls){let c=f.id,_=f.function.name,v=JSON.stringify(f.function.arguments);a.enqueue({id:_nullishCoalesce(c, () => (_providerutils.generateId.call(void 0, ))),toolName:_,type:"tool-input-start"}),a.enqueue({delta:v,id:_nullishCoalesce(c, () => (_providerutils.generateId.call(void 0, ))),type:"tool-input-delta"}),a.enqueue({id:_nullishCoalesce(c, () => (_providerutils.generateId.call(void 0, ))),type:"tool-input-end"}),a.enqueue({input:v,toolCallId:_nullishCoalesce(c, () => (_providerutils.generateId.call(void 0, ))),toolName:_,type:"tool-call"})}}}))}}}, _class),P=_zod.z.object({created_at:_zod.z.string(),done:_zod.z.literal(!0),done_reason:_zod.z.string().optional().nullable(),eval_count:_zod.z.number(),eval_duration:_zod.z.number(),load_duration:_zod.z.number().optional(),message:_zod.z.object({content:_zod.z.string(),images:_zod.z.array(_zod.z.string()).optional().nullable(),role:_zod.z.string(),tool_calls:_zod.z.array(_zod.z.object({function:_zod.z.object({arguments:_zod.z.record(_zod.z.string(),_zod.z.any()),name:_zod.z.string()}),id:_zod.z.string().optional()})).optional().nullable()}),model:_zod.z.string(),prompt_eval_count:_zod.z.number().optional(),prompt_eval_duration:_zod.z.number().optional(),total_duration:_zod.z.number()}),q=_zod.z.discriminatedUnion("done",[_zod.z.object({created_at:_zod.z.string(),done:_zod.z.literal(!1),message:_zod.z.object({content:_zod.z.string(),images:_zod.z.array(_zod.z.object({type:_zod.z.string(),url:_zod.z.string()})).optional().nullable(),role:_zod.z.string(),thinking:_zod.z.string().optional(),tool_calls:_zod.z.array(_zod.z.object({function:_zod.z.object({arguments:_zod.z.record(_zod.z.string(),_zod.z.any()),name:_zod.z.string()}),id:_zod.z.string().optional()})).optional().nullable(),tool_name:_zod.z.string().optional()}),model:_zod.z.string()}),_zod.z.object({created_at:_zod.z.string(),done:_zod.z.literal(!0),eval_count:_zod.z.number(),eval_duration:_zod.z.number(),load_duration:_zod.z.number().optional(),model:_zod.z.string(),prompt_eval_count:_zod.z.number().optional(),prompt_eval_duration:_zod.z.number().optional(),total_duration:_zod.z.number()})]);exports.a = w; /* Rawi (راوي) is the developer-friendly AI CLI that brings the power of 11 major AI providers directly to your terminal. With seamless shell integration, persistent conversations, and 200+ specialized prompt templates, Rawi transforms your command line into an intelligent development workspace. */ //# sourceMappingURL=chunk-MWCFHIO3.cjs.map