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
9 lines • 8.89 kB
JavaScript
Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }/* 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 _chunkG5AO4Y3Mcjs = require('./chunk-G5AO4Y3M.cjs');var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);var _commander = require('commander');var p=()=>{let u=new (0, _commander.Command)("configure");return u.description([_chalk2.default.bold("Configure AI provider settings and manage profiles."),"",_chalk2.default.gray("Set up providers, models, credentials, and advanced options."),_chalk2.default.gray("Supports interactive and manual configuration."),_chalk2.default.gray("Use --list to see all profiles, --show for details."),"\u2500".repeat(80)].join(`
`)).option("-p, --profile <profile>",_chalk2.default.white("Profile name to configure"),"default").option("--provider <provider>",_chalk2.default.white("AI provider (openai, anthropic, google, ollama, xai, azure, bedrock, deepseek, mistral, cerebras, lmstudio)")).option("--model <model>",_chalk2.default.white("AI model name")).option("--api-key <apiKey>",_chalk2.default.white("API key for the provider (not needed for Ollama)")).option("--base-url <baseURL>",_chalk2.default.white("Base URL for provider API (see docs for defaults)")).option("--resource-name <resourceName>",_chalk2.default.white("Resource name for Azure OpenAI (required for Azure)")).option("--api-version <apiVersion>",_chalk2.default.white("API version for Azure OpenAI (default: 2024-10-01-preview)")).option("--region <region>",_chalk2.default.white("AWS region for Amazon Bedrock (default: us-east-1)")).option("--access-key-id <accessKeyId>",_chalk2.default.white("AWS access key ID for Amazon Bedrock")).option("--secret-access-key <secretAccessKey>",_chalk2.default.white("AWS secret access key for Amazon Bedrock")).option("--session-token <sessionToken>",_chalk2.default.white("AWS session token for Amazon Bedrock (optional)")).option("--use-provider-chain",_chalk2.default.white("Use AWS credential provider chain instead of explicit credentials")).option("--temperature <temperature>",_chalk2.default.white("Sampling temperature (0-2, higher = more creative)"),Number.parseFloat).option("--max-tokens <maxTokens>",_chalk2.default.white("Maximum tokens for response"),Number.parseInt).option("--language <language>",_chalk2.default.white("Language (english, arabic)"),"english").option("-s, --show",_chalk2.default.white("Show current configuration for the selected profile")).option("-l, --list",_chalk2.default.white("List all configuration profiles")).option("-d, --delete <profile>",_chalk2.default.white("Delete a configuration profile")).addHelpText("after",[_chalk2.default.bold.cyan(`
See also:`),_chalk2.default.gray(" rawi provider --list"),_chalk2.default.gray(" rawi act --list"),_chalk2.default.gray(" rawi ask --profile <profile>"),_chalk2.default.gray(" rawi configure --show --profile <profile>"),"",_chalk2.default.dim("For more examples, see: docs/configuration.md")].join(`
`)).action(async e=>{let g=new _chunkG5AO4Y3Mcjs.a;try{if(e.show){g.showConfig(e.profile==="default"?void 0:e.profile);return}if(e.list){let i=g.listProfiles();if(i.length===0){console.log(_chalk2.default.yellow("No configuration profiles found."));return}console.log(_chalk2.default.bold("Available profiles:")),i.forEach(l=>{console.log(` - ${l}`)});return}if(e.delete){let i=g.deleteProfile(e.delete);console.log(i?_chalk2.default.green(`Profile '${e.delete}' deleted successfully.`):_chalk2.default.red(`Failed to delete profile '${e.delete}'.`));return}if(e.language){let i=["english","arabic"];if(!i.includes(e.language)){console.error(_chalk2.default.red(`Invalid language: ${e.language}`)),console.log(_chalk2.default.yellow("Available languages:"),i.join(", "));return}}let s={profile:e.profile,provider:e.provider,model:e.model,apiKey:e.apiKey,baseURL:e.baseUrl,resourceName:e.resourceName,apiVersion:e.apiVersion,region:e.region,accessKeyId:e.accessKeyId,secretAccessKey:e.secretAccessKey,sessionToken:e.sessionToken,useProviderChain:e.useProviderChain,temperature:e.temperature,maxTokens:e.maxTokens,language:e.language};if(e.provider){let i,l;if(e.provider==="ollama"){i=!!e.model;let r={};e.baseUrl&&(r.baseURL=e.baseUrl),l={provider:e.provider,model:e.model,temperature:e.temperature||.7,maxTokens:e.maxTokens||2048,language:e.language||"english",providerSettings:Object.keys(r).length>0?r:void 0}}else if(e.provider==="azure"){i=!!(e.provider&&e.model&&e.apiKey&&e.resourceName),i||(e.model||console.error("For Azure, you must specify your deployment name using --model"),e.resourceName||console.error("For Azure, you must specify your resource name using --resource-name"),e.apiKey||console.error("For Azure, you must specify your API key using --api-key"));let r={resourceName:e.resourceName};e.apiVersion&&(r.apiVersion=e.apiVersion),l={provider:e.provider,model:e.model,apiKey:e.apiKey,temperature:e.temperature||.7,maxTokens:e.maxTokens||2048,language:e.language||"english",providerSettings:r}}else if(e.provider==="bedrock"){let r=!!(e.accessKeyId&&e.secretAccessKey),n=!!e.useProviderChain;i=!!(e.provider&&e.model&&(r||n)),i||(e.model||console.error("For Bedrock, you must specify a model using --model"),!r&&!n&&console.error(`For Bedrock, you must either:
- Provide explicit credentials: --access-key-id and --secret-access-key
- Use provider chain: --use-provider-chain`));let d={};e.region&&(d.region=e.region),n?d.useProviderChain=!0:r&&(d.accessKeyId=e.accessKeyId,d.secretAccessKey=e.secretAccessKey,e.sessionToken&&(d.sessionToken=e.sessionToken)),l={provider:e.provider,model:e.model,temperature:e.temperature||.7,maxTokens:e.maxTokens||2048,language:e.language||"english",providerSettings:Object.keys(d).length>0?d:void 0}}else if(e.provider==="xai"){i=!!(e.model&&e.apiKey);let r={apiKey:e.apiKey};e.baseUrl&&(r.baseURL=e.baseUrl),l={provider:e.provider,model:e.model,temperature:e.temperature||.7,maxTokens:e.maxTokens||2048,language:e.language||"english",providerSettings:r}}else if(e.provider==="openai"){i=!!(e.model&&e.apiKey);let r={apiKey:e.apiKey};e.baseUrl&&(r.baseURL=e.baseUrl),l={provider:e.provider,model:e.model,temperature:e.temperature||.7,maxTokens:e.maxTokens||2048,language:e.language||"english",providerSettings:r}}else if(e.provider==="anthropic"){i=!!(e.model&&e.apiKey);let r={apiKey:e.apiKey};e.baseUrl&&(r.baseURL=e.baseUrl),l={provider:e.provider,model:e.model,temperature:e.temperature||.7,maxTokens:e.maxTokens||2048,language:e.language||"english",providerSettings:r}}else if(e.provider==="google"){i=!!(e.model&&e.apiKey);let r={apiKey:e.apiKey};e.baseUrl&&(r.baseURL=e.baseUrl),l={provider:e.provider,model:e.model,temperature:e.temperature||.7,maxTokens:e.maxTokens||2048,language:e.language||"english",providerSettings:r}}else if(e.provider==="deepseek"){i=!!(e.model&&e.apiKey);let r={apiKey:e.apiKey};e.baseUrl&&(r.baseURL=e.baseUrl),l={provider:e.provider,model:e.model,temperature:e.temperature||.7,maxTokens:e.maxTokens||2048,language:e.language||"english",providerSettings:r}}else if(e.provider==="mistral"){i=!!(e.model&&e.apiKey);let r={apiKey:e.apiKey};e.baseUrl&&(r.baseURL=e.baseUrl),l={provider:e.provider,model:e.model,temperature:e.temperature||.7,maxTokens:e.maxTokens||2048,language:e.language||"english",providerSettings:r}}else if(e.provider==="cerebras"){i=!!(e.model&&e.apiKey);let r={apiKey:e.apiKey};e.baseUrl&&(r.baseURL=e.baseUrl),l={provider:e.provider,model:e.model,temperature:e.temperature||.7,maxTokens:e.maxTokens||2048,language:e.language||"english",providerSettings:r}}else if(e.provider==="lmstudio"){i=!!e.model;let r={};e.baseUrl&&(r.baseURL=e.baseUrl),l={provider:e.provider,model:e.model,temperature:e.temperature||.7,maxTokens:e.maxTokens||2048},Object.keys(r).length>0?l.providerSettings=r:l.providerSettings=void 0}else i=!!(e.provider&&e.model&&e.apiKey),l={provider:e.provider,model:e.model,apiKey:e.apiKey,temperature:e.temperature||.7,maxTokens:e.maxTokens||2048,language:e.language||"english"};i?g.manualConfigure(l,e.profile):await g.interactiveConfigure(s)}else await g.interactiveConfigure(s)}catch(s){console.error("Configuration failed:",s),process.exit(1)}}),u};exports.a = p;
/* 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-RTOSUPNZ.cjs.map
;