aethershell 11.0.0

The world's first multi-agent shell with typed functional pipelines and multi-modal AI
# Provider System Example
# Demonstrates AetherShell's universal LLM provider interface

# List all supported providers

# This example calls live providers. Without one configured it says so and
# stops, rather than failing partway through.
if env("AETHER_AI") == null {
  print("Skipping: set AETHER_AI (openai, ollama, irongate or compat) plus the matching API key to run this example.")
}
if env("AETHER_AI") == null { exit(0) }
let providers = [
  "openai:gpt-4o",
  "anthropic:claude-3-5-sonnet-20241022", 
  "google:gemini-1.5-pro",
  "ollama:llama3",
  "groq:mixtral-8x7b-32768",
  "together:meta-llama/Llama-3-70b-chat-hf",
  "deepseek:deepseek-chat",
  "xai:grok-beta",
  "openrouter:anthropic/claude-3"
]

print "=== AetherShell Universal Provider System ==="
print ""

# Simple chat with any provider (using environment's default)
let response = ai "Hello, what is 2+2?" 
print response

# Specify a specific model via URI
let response2 = ai("Explain quantum computing in one sentence", {model: "openai:gpt-4o"})
print response2

# Multi-turn conversation
let conversation = [
  { role: "system", content: "You are a helpful shell assistant." },
  { role: "user", content: "How do I list files in Linux?" }
]
let response3 = ai_chat(conversation, {model: "anthropic:claude-3-5-sonnet-20241022"})
print response3

# Using tools with the provider system
let tools = [
  {
    name: "read_file",
    description: "Read contents of a file",
    parameters: {
      type: "object",
      properties: {
        path: { type: "string", description: "File path to read" }
      },
      required: ["path"]
    }
  },
  {
    name: "list_directory",
    description: "List files in a directory", 
    parameters: {
      type: "object",
      properties: {
        path: { type: "string", description: "Directory path" }
      },
      required: ["path"]
    }
  }
]

# AI can request tool calls
let agent_response = ai("What files are in the current directory?", {tools: tools, model: "openai:gpt-4o"})
print agent_response

# Pipeline integration - AI processes structured data
let files = ls "."
let summary = files | ai("Summarize these files by type")
print summary

# Embeddings for semantic search
let texts = ["shell scripting", "file management", "process control"]
let embeddings = embed(texts, {model: "openai:text-embedding-3-small"})
print "Generated embeddings for semantic search"

# Provider-specific features
# Streaming (when supported)
ai_stream("Tell me a short story", {model: "openai:gpt-4o"}) | map(fn(chunk) => print(chunk))

# Local models via Ollama
ai("What is the meaning of life?", {model: "ollama:llama3"})

print ""
print "=== Provider System Features ==="
print "• Universal model URI scheme (provider:model)"
print "• 19 providers supported"
print "• Automatic API key detection from environment"
print "• Tool/function calling normalization"
print "• Multi-modal support (images, audio)"
print "• Streaming support"
print "• Structured data integration with pipelines"