Skip to content

SPL-Personal-AI-Assistant/Juno-Assistant

Repository files navigation

JunoStack — Adaptive AI Language Assistant

JunoStack is a custom programming language designed to act as an intelligent, modular assistant for developers. Inspired by RooCode but uniquely built from the ground up, JunoStack supports API key declarations, multi-model routing, assistant roles (modes), and contextual AI workflows using locally hosted models (e.g., Ollama).


Features Overview

  • API Endpoint Setup — Define where models are served (e.g., ollama)
  • Mode Assignment — Assign tasks/roles to specific models (with support for friendly aliases)
  • Mode Instructions — Describe behavior per mode (e.g., "debug this")
  • Profile Groups — Group modes into named workflows like production, blueprint, or maintenance (WIP)
  • Dynamic Context Switching — Use currentMode or callMode(...) to invoke AI partners
  • Streaming Ollama ResponsescallMode(...) supports live response chunking from Ollama

Project Files

  • tokenizer.py: token recognition for all language constructs
  • parser.py: parses all declarations (apikey, mode, profile, etc.)
  • evaluator.py: evaluates instructions, routes prompts, and invokes Ollama with stream support
  • runner.py: REPL + script executor
  • test_modes2.t: sample demo script for JunoStack's full features

Example JunoStack Script

apikey ollama = "http://localhost:11434";

mode coder = "qwen_4b";
modeInstructions["coder"] = "generate code based on user prompts";

mode debug = "gemma_4b";
modeInstructions["debug"] = "explain or refactor problematic code";

profile production {
    coder,
    debug
}

currentProfile = "production"; (WIP)
currentMode = "coder";
callMode("Write a Python function to validate email input.");

Aliases Supported

Friendly model names like qwen_4b, gemma_4b, and mistral_small are mapped internally to:

  • "qwen_4b""qwen3:4b"
  • "gemma_4b""gemma3:4b"
  • "mistral" → "mistral"`

How to Run

python runner.py test_modes.t

The interpreter will evaluate your .t file and use callMode(...) to send prompts through the appropriate model.


Made by Brandon & Jonah — JunoStack v1.0

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published