Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
224 changes: 4 additions & 220 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,220 +1,4 @@
# ── Git worktrees ──────────────────────────────────────────────────────
.worktrees/

# ── Zig build artifacts ───────────────────────────────────────────────
zig-cache/
.zig-cache/
.zig/
zig-out/
exe/
docs_html/
# build/ contains source .zig files — only ignore non-Zig artifacts
build/*
!build/*.zig

# ── Documentation build artifacts ─────────────────────────────────────
docs-src/build/
docs/api-app/data/docs_engine.component.wasm
docs/api-app/data/features.json

# ── Editor and IDE ────────────────────────────────────────────────────
.vscode/
.cursor/
.idea/
*.swp
*.swo
*~
.DS_Store

# ── Dependencies and package management ───────────────────────────────
node_modules/
.bun/

# ── Python artifacts ──────────────────────────────────────────────────
__pycache__/
*.py[cod]
*.pyo
*.pyd
*.egg-info/
.pytest_cache/
.mypy_cache/
.ruff_cache/
.pytype/
.venv/
venv/

# ── Test and benchmark results ────────────────────────────────────────
*.test
*.bench
coverage/
# Benchmark output JSON files (root-level only)
/ai.json
/all.json
/conc.json
/crypto.json
/db.json
/mem.json
/net.json
/quick.json
/simd.json

# ── Logs ──────────────────────────────────────────────────────────────
*.log
logs/

# ── Environment files ─────────────────────────────────────────────────
.env
.env.local
.env.*.local

# ── Database files ────────────────────────────────────────────────────
*.wdbx
*.wdbx.wal
*.wal
*.db
*.sqlite

# ── Temporary and generated files ─────────────────────────────────────
tmp/
temp/
*.tmp
abi.json
probe_error.txt
probe_*.txt
probe_*.zig
test_build.zig
build_options.zig
src/build_options.zig
/abi_*_tmp*.zig
/tmp_*.zig
fix_*.py
migrate*.sh

# ── Debug/test output files ───────────────────────────────────────────
test_log.txt
test_output.txt
test_full.txt
web_error.txt
network_error.txt
build_errors.txt
build_full*.txt
wasm_build_log.txt
wasm_install_log.txt
training_data.txt

# ── AI model files and training artifacts ─────────────────────────────
*.onnx
*.pt
*.pth
*.h5
*.pb
*.ckpt
*.gguf
models/
test-models/
train.bin
testingllm.ckpt/

# ── GPU shader artifacts ─────────────────────────────────────────────
*.spv

# ── Root-level build artifacts (one-off test binaries) ────────────────
/test_page_size
/cast_test
/runner
/unused_test
/synthetic.bin

# ── Binary executables and object files ───────────────────────────────
*.a
*.o
*.exe
*.dll
*.so
*.dylib
*.pdb
*.pdb.*
*.core

# ── Profiling data ────────────────────────────────────────────────────
*.prof
*.profraw
*.tracy
perf.data*

# ── Claude Code (track rules, skills, README, hooks — ignore the rest)
.claude/
!.claude/
!.claude/README.md
!.claude/rules/
!.claude/rules/**
!.claude/skills/
!.claude/skills/**
!.claude/agents/
!.claude/agents/**
!.claude/settings.json
.claude-plugin/

# ── Local task tracking (agent notes) ────────────────────────────────
tasks/
!/tasks/

# ── ABI runtime state ────────────────────────────────────────────────
.abi/

# ── Ralph runtime output and lock ─────────────────────────────────────
.ralph/

# ── Development checkpoints ───────────────────────────────────────────
checkpoints/

# ── Generated reports (Ralph gate, skill memory) ─────────────────────
reports/

# ── Backup files ──────────────────────────────────────────────────────
backups/
*.bak
*.backup

# ── Distribution ──────────────────────────────────────────────────────
dist/
release/
*.tar.gz
*.zip

# ── Rust build artifacts in bindings ──────────────────────────────────
bindings/**/target/
bindings/c/.zig-cache/

# ── OS specific ───────────────────────────────────────────────────────
Thumbs.db
desktop.ini
nul

# ── Misc generated / workspace ────────────────────────────────────────
.nx/installation
.nx/cache
.nx/workspace-data
tmpclaude-*-cwd
tmpclaude-*
/abi/
/hello
examples/c_test
.discord
*.cell.out

# ── Trash (cleanup staging) ─────────────────────────────────────────
TRASH/
TRASH-FILES.md

# ── Cleanup policy: markdown allowlist only ─────────────────────────
*.md
!/AGENTS.md
!/README.md
!/tasks/todo.md
!/tasks/lessons.md

# ── Local one-off artifacts ──────────────────────────────────────────
.zig-global-cache/
/hashmap_check
/hashmap_check2
**/*.DS_Store
**/*.zig-cache
# Ignore build directories
*/build/
10 changes: 10 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Contributing

Please write clear commit messages that briefly describe the changes.
For example:

```
Add Cell framework example using C++23 modules
```

Commit messages like "Applying previous commit" should be avoided.
60 changes: 2 additions & 58 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -484,62 +484,6 @@ zig build benchmarks
zig build lint
```

---

## Environment Variables

| Variable | Description |
|:---------|:------------|
| `ABI_OPENAI_API_KEY` | OpenAI API key |
| `ABI_ANTHROPIC_API_KEY` | Anthropic/Claude API key |
| `ABI_OLLAMA_HOST` | Ollama host (default: `http://127.0.0.1:11434`) |
| `ABI_OLLAMA_MODEL` | Default Ollama model |
| `ABI_HF_API_TOKEN` | HuggingFace API token |
| `DISCORD_BOT_TOKEN` | Discord bot token |

---

## Project Status

| Milestone | Status |
|:----------|:------:|
| Zig 0.16 Migration | ![Complete](https://img.shields.io/badge/-Complete-success) |
| Llama-CPP Parity | ![Complete](https://img.shields.io/badge/-Complete-success) |
| C Library Bindings | ![Complete](https://img.shields.io/badge/-Complete-success) |
| Plugin Registry | ![Complete](https://img.shields.io/badge/-Complete-success) |
| Runtime Consolidation | ![Complete](https://img.shields.io/badge/-Complete-success) |
| Feature Stubs | ![Complete](https://img.shields.io/badge/-Complete-success) |
| Multi-GPU Orchestration | ![Complete](https://img.shields.io/badge/-Complete-success) |

See [PLAN.md](PLAN.md) for current sprint status and [ROADMAP.md](ROADMAP.md) for version history.

---

## Contributing

We welcome contributions! Please see:

- [CONTRIBUTING.md](CONTRIBUTING.md) - Development workflow
- [CLAUDE.md](CLAUDE.md) - Coding guidelines and patterns

<div align="center">

[![Issues](https://img.shields.io/badge/Issues-Report_Bug-red?logo=github)](https://github.com/donaldfilimon/abi/issues)
[![Discussions](https://img.shields.io/badge/Discussions-Ask_Questions-blue?logo=github)](https://github.com/donaldfilimon/abi/discussions)
[![Contributing](https://img.shields.io/badge/PRs-Welcome-brightgreen?logo=git)](CONTRIBUTING.md)

</div>

---

<div align="center">

[![License](https://img.shields.io/github/license/donaldfilimon/abi?style=for-the-badge)](LICENSE)

MIT License - See [LICENSE](LICENSE) for details.

<br/>

**Built with Zig**

</div>
### Cell Framework Example
This repository now includes a demonstration of the Cell framework using modern C++23 modules. See `cell_framework/README.md` for build instructions.
35 changes: 35 additions & 0 deletions cell_framework/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
cmake_minimum_required(VERSION 3.26)
project(CellFramework LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 23)
set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API 1)

# Directory for generated headers
set(GENERATED_INCLUDE_DIR ${CMAKE_BINARY_DIR}/include)
file(MAKE_DIRECTORY ${GENERATED_INCLUDE_DIR})

add_custom_target(generate_headers
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/generate_headers.cmake
BYPRODUCTS ${GENERATED_INCLUDE_DIR}/Cell/Core.hpp
VERBATIM
)

add_library(CellCore)

target_sources(CellCore
PUBLIC
FILE_SET cxx_modules TYPE CXX_MODULES FILES
${CMAKE_CURRENT_SOURCE_DIR}/Cell/Core.ixx
FILE_SET cxx_modules TYPE CXX_MODULES FILES
${CMAKE_CURRENT_SOURCE_DIR}/Cell/Core.cpp
)

target_include_directories(CellCore PUBLIC ${GENERATED_INCLUDE_DIR})

add_dependencies(CellCore generate_headers)

add_executable(cell_app main.cpp)

target_link_libraries(cell_app PRIVATE CellCore)

add_dependencies(cell_app generate_headers)
11 changes: 11 additions & 0 deletions cell_framework/Cell/Core.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
module;
#include <iostream>

module Cell.Core;

namespace Cell {
void Engine::run() {
std::cout << "Cell Engine running!" << std::endl;
std::cout << "2 + 2 = " << add(2, 2) << std::endl;
}
}
14 changes: 14 additions & 0 deletions cell_framework/Cell/Core.ixx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
export module Cell.Core;

export import <vector>;

export namespace Cell {
inline int add(int a, int b) {
return a + b;
}

class Engine {
public:
void run();
};
}
27 changes: 27 additions & 0 deletions cell_framework/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Cell Framework Example with C++23 Modules

This example demonstrates the Cell framework using a modules-first design.
The build system uses CMake 3.26+ with the experimental C++ module API and
automatically generates traditional headers from module interface files.

## Prerequisites

- CMake 3.26 or newer
- A C++23 compiler with module support (Clang 18+ or equivalent)

## Building

```bash
mkdir build && cd build
cmake ..
cmake --build .
./cell_app
```

CMake should be invoked from a separate `build` directory to keep
generated files isolated from the source tree.

During configuration, module interfaces located in the `Cell/` directory are
converted into headers under `build/include/Cell`. These generated headers
allow interoperability with code that still relies on the traditional `#include`
mechanism.
7 changes: 7 additions & 0 deletions cell_framework/main.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import Cell.Core;

int main() {
Cell::Engine engine;
engine.run();
return 0;
}
Loading
Loading