Skip to content

Repository files navigation

Omni-AWS

Go CI Go Lint Go SAST Docs Docs Visualization License

AWS provider packages for PlexusOne libraries.

Features

  • OmniLLM: AWS Bedrock chat completion provider.
  • OmniStorage: S3-compatible object storage backend.
  • OmniVault: AWS Secrets Manager and Parameter Store providers.
  • OmniMemory: DynamoDB-backed memory provider.
  • OmniDevX: AWS Kiro CLI local telemetry collector for developer experience analytics.

Modules

This repository contains multiple Go modules for AWS integrations:

Module Description Install
omnillm AWS Bedrock provider for omnillm-core go get github.com/plexusone/omni-aws/omnillm
omnistorage S3 backend for omnistorage-core go get github.com/plexusone/omni-aws/omnistorage
omnivault AWS Secrets Manager & Parameter Store for omnivault go get github.com/plexusone/omni-aws/omnivault
omnimemory DynamoDB provider for omnimemory go get github.com/plexusone/omni-aws/omnimemory
omnidevx Kiro CLI telemetry collector for omnidevx-core go get github.com/plexusone/omni-aws/omnidevx

Quick Start

OmniLLM - AWS Bedrock

import (
    "github.com/plexusone/omni-aws/omnillm"
    "github.com/plexusone/omnillm-core"
)

// Create Bedrock provider
provider := omnillm.NewProvider("us-east-1")

// Use with OmniLLM
client := omnillm.NewClient(provider)
resp, err := client.CreateChatCompletion(ctx, omnillm.ChatCompletionRequest{
    Model: "anthropic.claude-3-5-sonnet-20241022-v2:0",
    Messages: []omnillm.Message{
        {Role: "user", Content: "Hello!"},
    },
})

See omnillm/README.md for full documentation.

OmniStorage - S3 Backend

import (
    "github.com/plexusone/omni-aws/omnistorage/backend/s3"
)

// Create S3 backend
backend, err := s3.New(s3.Config{
    Bucket: "my-bucket",
    Region: "us-east-1",
})

// Write
w, _ := backend.NewWriter(ctx, "path/to/file.txt")
w.Write([]byte("hello"))
w.Close()

// Read
r, _ := backend.NewReader(ctx, "path/to/file.txt")
data, _ := io.ReadAll(r)
r.Close()

See omnistorage/README.md for full documentation including S3-compatible services (R2, MinIO, Wasabi).

OmniVault - AWS Secrets Manager & Parameter Store

import (
    aws "github.com/plexusone/omni-aws/omnivault"
)

// Create Secrets Manager provider
provider, err := aws.NewSecretsManager(aws.Config{
    Region: "us-east-1",
})

// Get a secret
secret, err := provider.Get(ctx, "prod/database/credentials")
fmt.Println("Password:", secret.Value)
fmt.Println("Username:", secret.Fields["username"])

// Or use Parameter Store
ssmProvider, err := aws.NewParameterStore(aws.Config{
    Region: "us-east-1",
})
param, err := ssmProvider.Get(ctx, "/myapp/prod/api-key")

See omnivault/README.md for full documentation including IRSA, versioning, and rotation.

OmniMemory - DynamoDB Provider

import (
    "github.com/plexusone/omnimemory"
    "github.com/plexusone/omnimemory/core"
    _ "github.com/plexusone/omni-aws/omnimemory/dynamodb"
)

// Create DynamoDB-backed memory client
client, err := omnimemory.NewClient(core.ClientConfig{
    Providers: []core.ProviderConfig{
        {
            Name: core.ProviderNameAWSDynamoDB,
            Options: map[string]any{
                "table_name": "omnimemory",
                "region":     "us-east-1",
            },
        },
    },
})

// Add a memory
memory, err := client.Add(ctx, &core.AddRequest{
    Context: core.Context{
        TenantID:  "tenant-123",
        SubjectID: "user-456",
    },
    Type:    core.MemoryTypeObservation,
    Content: "User prefers dark mode interfaces",
})

// Search memories
results, err := client.Search(ctx, &core.SearchRequest{
    Context: core.Context{
        TenantID:  "tenant-123",
        SubjectID: "user-456",
    },
    Query: "interface preferences",
    Limit: 10,
})

See omnimemory/README.md for full documentation including local development, TTL, and multi-tenancy.

OmniDevX - Kiro CLI Collector

import (
    kiro "github.com/plexusone/omni-aws/omnidevx"
    core "github.com/plexusone/omnidevx-core"
)

collector, err := kiro.New(kiro.Config{})
result, err := collector.Collect(ctx, core.CollectRequest{
    Subject: core.SubjectRef{PersonID: "person:jane"},
})

The Kiro collector reads local Kiro CLI history from the OS-specific data.sqlite3 path and optional ~/.kiro_sessions snapshots, then emits canonical OmniDevX events for storage and reporting.

See docs/omnidevx for details on local paths, estimated token accounting, and event mapping.

License

MIT

About

OmniLLM Provider for AWS Bedrock is an external provider module that demonstrates how to create custom providers for OmniLLM without adding heavy dependencies to the core library.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages