Skip to content

Releases: AuroraToolkit/AuroraCore

0.1.1 Beta Release

20 Dec 14:20
Compare
Choose a tag to compare
0.1.1 Beta Release Pre-release
Pre-release

AuroraCore v0.1.1: Declarative Workflows Integration 🎉

🚀 What’s New

This release introduces Declarative Workflows, a major enhancement to AuroraCore that simplifies and modernizes task orchestration for AI-driven applications. The new syntax provides a clear, SwiftUI-like structure for defining workflows, allowing developers to build complex task sequences effortlessly.

Key Features

  • Declarative Workflow Syntax:
    -- Define workflows using a clear and concise declarative syntax.
    -- Tasks and task groups can now be expressed naturally with support for sequential and parallel execution modes.
  • Dynamic Input Resolution:
    -- Automatically resolve task inputs at execution time, supporting dynamic references to prior task outputs.
    -- Ensures clean and predictable input management across workflows.
  • Improved Modularity:
    -- Streamlined task creation and execution, reducing boilerplate and improving readability.
  • Asynchronous Support:
    -- Full support for asynchronous task execution, enabling seamless handling of network requests, AI service interactions, and more.

🔨 Enhancements

  • Replaced the legacy WorkflowManager and associated Workflow API with the declarative Workflow API.
  • Added an optional TaskGroup for grouping tasks with sequential or parallel execution.
  • Built-in execution timing for tasks and workflows, allowing for performance analysis.
  • Simplified handling of task parameters using a clean, reusable resolveInput extension.
  • Enhanced logging for better debugging and visibility during workflow execution.

🧪 Examples

Creating a Workflow

import AuroraCore

let workflow = Workflow(name: "Sample Workflow", description: "Fetch and summarize articles") {
    Workflow.Task(name: "FetchArticles", description: "Fetch RSS feed articles") {
        // Fetch task logic
        return ["articles": ["Article 1", "Article 2"]]
    }

    Workflow.Task(name: "SummarizeArticles", description: "Generate summaries") { inputs in
        let articles = inputs["articles"] as? [String] ?? []
        let summaries = articles.map { "Summary of \($0)" }
        return ["summaries": summaries]
    }

    Workflow.Task(name: "GenerateScript", description: "Generate news anchor script") { inputs in
        let summaries = inputs["summaries"] as? [String] ?? []
        let script = summaries.joined(separator: "\n")
        return ["script": script]
    }
}

await workflow.start()
print("Workflow Outputs: \(workflow.outputs)")

Parallel Task Execution

Workflow.TaskGroup(name: "ParallelTasks", mode: .parallel) {
    Workflow.Task(name: "Task1", description: "First parallel task")
    Workflow.Task(name: "Task2", description: "Second parallel task")
}

⚠️ Breaking Changes

  • Removed the legacy WorkflowManager, WorkflowState, and WorkflowTask APIs.
  • Any code relying on the old workflow APIs will need to be updated to use the new declarative syntax.

📈 Future Plans

  • Template Workflows: Predefined workflows for common AI tasks like summarization and Q&A.
  • Time-based Triggers: Scheduled workflows based on timers or events.
  • Multimodal LLM Support: Expanding to support multimodal inputs and outputs.

🛠️ How to Upgrade

  1. Update your codebase to use the new declarative Workflow API.
  2. Replace instances of WorkflowManager with Workflow constructs.
  3. Use the enhanced task and task group components to define your workflows.

Initial Beta Release

13 Dec 04:06
Compare
Choose a tag to compare
Initial Beta Release Pre-release
Pre-release

Initial Beta Release of AuroraToolkit Core library (v0.1.0)

We are thrilled to introduce AuroraCore, the foundational library within the AuroraToolkit—a suite of tools designed to simplify the integration of AI capabilities into your Swift projects. This release marks the beginning of a robust, modular framework for managing AI-driven workflows and context-aware integrations.

Key Features

  • Context Management: Efficiently handle and maintain task or conversation-specific context, including summarization and tokenization.
  • Task and Workflow Handling: Define and orchestrate workflows with support for dependent tasks, asynchronous execution, and status tracking.
  • Seamless LLM Integration: Easily connect to one or more large language models like OpenAI, Anthropic, and Ollama with customizable routing strategies, token trimming, and fallback mechanisms.
  • Domain-Specific Routing: Dynamically route requests to the most appropriate LLM based on predefined domains or fallback rules.
  • Extendable Architecture: Add new workflows, services, or routing strategies with ease using the framework’s modular design.
  • Example Implementations: Ready-to-use examples demonstrating context management, workflow orchestration, and multi-LLM integration.

Future Plans

  • Parallel and dynamic task execution for enhanced workflow performance.
  • On-device LLM support for scenarios requiring offline capabilities.
  • Advanced context summarization, memory pinning, and multi-service task orchestration.

Getting Started

Integrate AuroraCore into your Swift project using Swift Package Manager and follow the examples in the README to explore its capabilities.