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
7 changes: 7 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,13 @@
<!-- Reference related issues: Closes #XX, Fixes #YY -->


## Closing issue

<!-- Required for human-authored pull requests. Use a GitHub closing keyword and an issue in THIS repository. Cross-repository links, plain mentions, and placeholders do not satisfy policy. -->

Fixes #<same-repository issue number>


## Screenshots / Logs

<!-- If applicable, add screenshots or relevant log output -->
Expand Down
16 changes: 16 additions & 0 deletions .github/workflows/linked-issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Linked issue policy

on:
pull_request_target:
types: [opened, edited, reopened, synchronize]

permissions:
contents: read
issues: read
pull-requests: read

jobs:
policy:
uses: embeddedos-org/.github/.github/workflows/linked-issue-policy.yml@92cb596c773496ec4df76717e8acf0e6b7700f73
with:
policy_ref: 92cb596c773496ec4df76717e8acf0e6b7700f73
187 changes: 89 additions & 98 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,98 +1,89 @@
<!-- generated: eos-ai-scaffold -->
# Agent Responsibilities

Each role owns a slice of the work and does only that slice. Full briefs are in
[.ai/](./.ai/). These are responsibilities, not a required agent count — one
agent may hold several roles on a small change. Split when the roles need
genuinely different context, not by default.

One rule is structural rather than stylistic: **whoever implements does not
approve.** Review is a separate role because self-review reliably misses the
thing the implementer already believes is correct.

## Planner — [.ai/planner.md](./.ai/planner.md)

- Understand the request.
- Break work into tasks.
- Assign work.

## Architect — [.ai/architect.md](./.ai/architect.md)

- Design structure.
- Choose patterns.
- Own dependencies, scalability and maintainability.

## Backend — [.ai/backend.md](./.ai/backend.md)

- APIs
- Database
- Business logic

## Frontend — [.ai/frontend.md](./.ai/frontend.md)

- UI
- Components
- Accessibility

## Testing — [.ai/testing.md](./.ai/testing.md)

- Unit tests
- Integration tests
- Regression tests

## Security — [.ai/security.md](./.ai/security.md)

- Authentication and authorization
- Validation
- Secrets
- Dependency review

## Performance — [.ai/performance.md](./.ai/performance.md)

- Profiling
- Optimization
- Scalability

## Reviewer — [.ai/reviewer.md](./.ai/reviewer.md)

- Final review
- Verify requirements
- Merge findings

## Documentation — [.ai/docs.md](./.ai/docs.md)

- README
- API docs
- Changelog
- Migration and architecture notes

## Release — [.ai/release.md](./.ai/release.md)

- Release notes
- Deployment preparation
- Rollback guidance

---

## Switching roles

Switch when the task changes domain, when specialist knowledge is required,
when independent review is required, or when the context has grown past what
one agent can hold accurately. Every switch runs the protocol in
[HANDOFF.md](./HANDOFF.md).

## Finding work that is not yours

You will. The rule is: **record it, do not absorb it, do not drop it.**

| What you found | Do |
|----------------|-----|
| A defect unrelated to your task | Note it in [TASKS.md](./TASKS.md) and keep going. |
| A defect your change would sit on top of | Stop; say it blocks you; propose fixing it as its own task. |
| A security issue | Report immediately, whatever role you hold. This one never waits for a handoff. |
| A design decision missing from the plan | Return to the architect rather than deciding it inside an implementation. |
| Work that belongs to a role nobody assigned | Say so. An unowned task is how requirements go missing. |

Silently fixing something outside your task makes the diff unreviewable.
Silently ignoring it means nobody ever looks again. Neither is acceptable; the
note is what makes the difference.
# AGENTS.md — eAI

eAI (CMake project `EAI`, v0.2.0) is the on-device AI layer of the EmbeddedOS
ecosystem, written in C (C11): a runtime contract for loading and running
models plus build-selectable runtimes — **EAI-Min** (lightweight agent runtime
for IoT devices) and **EAI-Framework** (industrial platform) — with
model-format loaders, optional hardware-accelerator backends, a
brain-computer-interface module, a CLI, and host/embedded platform adapters.
(Provenance: `README.md` intro, `CMakeLists.txt` `project()`/options.)

## Layout (from `README.md` "What's inside")

- `common/` — shared contracts and utilities (types, config, logging, model
manifest, runtime contract, tool registry, security/permissions); builds
`eai_common`
- `platform/` — platform adapters (Linux, Windows, macOS, Android, iOS,
container, Zephyr, FreeRTOS, bare-metal, EoS); builds `eai_platform`
- `min/` — EAI-Min lightweight agent runtime (agent loop, router, KV memory)
- `framework/` — EAI-Framework industrial platform (runtimes, connectors,
orchestrator, policy, observability)
- `bci/` — brain-computer-interface module
- `models/` — model manifests and metadata
- `accel/` — accelerator backends (optional Vulkan Compute, CoreML/Metal,
Qualcomm QNN)
- `formats/` — model format loaders
- `cli/` — `eai` command-line tool
- `bindings/` — C++ and Python bindings
- `profiles/` — example profiles: `adaptive-edge`, `bci-assistive`,
`industrial-gateway`, `mobile-edge`, `robot-controller`, `smart-camera`
- `tests/` — C tests plus `unit/`, `functional/`, `performance/`,
`simulation/` Python suites
- `cmake/toolchains/`, `ci/`, `docs/`, `tools/` — cross-compile toolchains,
CI build/test scripts, docs, developer tools

`CODE_STRUCTURE.md` is the detailed, module-by-module developer reference.

## Build (from `README.md` "Build" and `CMakePresets.json`)

Requires CMake ≥ 3.16 and a C compiler. `CMakePresets.json` defines the
host/target presets used by CI (e.g. `linux-x64-release`).

```bash
cmake --preset linux-x64-release
cmake --build --preset linux-x64-release

# or without presets
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel
```

## Test (from `README.md` "Test" and `CONTRIBUTING.md` "Development Setup")

```bash
cmake -B build -DEAI_BUILD_TESTS=ON
cmake --build build --parallel
ctest --test-dir build --output-on-failure

# Python-driven suites
python run_all_tests.py
```

`CONTRIBUTING.md` "CI Requirements" also documents profile builds (at least
one of `smart-camera`, `industrial-gateway`, `robot-controller`,
`mobile-edge`) and the nightly regression (full tests on 3 OSes, all
profiles, AArch64/ARM/RISC-V cross-compiles) as informational.

## Lint / format

Not defined: no lint or format command is documented in `README.md` or
`CONTRIBUTING.md`. C style rules — C11, `-Wall -Wextra` clean, platform
`#ifdef` guards, no hardcoded paths, `#ifndef` include guards, `<stdint.h>`
types — are in `CONTRIBUTING.md` "Code Guidelines". (The dev Docker image
installs `cppcheck`/`clang-format`, but the repo documents no command to
invoke them; do not invent one.)

## Contributing

See `CONTRIBUTING.md`: fork, create a feature branch
(`git checkout -b feat/my-feature`), run the build and tests locally, then
submit a pull request. Follow Conventional Commits; new features need unit
tests in `tests/`; platform-specific code needs `#ifdef` guards for all
targets; every human-authored PR must close a same-repository issue with
`Fixes #<number>`.

## Security

See `SECURITY.md`. Report vulnerabilities to [email protected] — do NOT
open public issues for vulnerabilities. Response SLA: acknowledgment within
48 hours.
55 changes: 55 additions & 0 deletions docs/wiki/Development.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Development

## Contribution source of truth

[CONTRIBUTING](https://github.com/embeddedos-org/eAI/blob/master/CONTRIBUTING.md)

Before proposing a change, also review the [README](https://github.com/embeddedos-org/eAI/blob/master/README.md). Keep changes scoped, add tests appropriate to the affected behavior, and follow the repository's current automation and review requirements.

## Build and dependency inputs found

`CMakeLists.txt`, `Dockerfile`, `accel/CMakeLists.txt`, `bci/CMakeLists.txt`, `bindings/python/pyproject.toml`, `bindings/python/setup.py`, `cli/CMakeLists.txt`, `common/CMakeLists.txt`, `docker-compose.yml`, `formats/CMakeLists.txt`, `framework/CMakeLists.txt`, `min/CMakeLists.txt`, and 3 more.

## Tests found in the default-branch tree

`tests/CMakeLists.txt`, `tests/__init__.py`, `tests/functional/__init__.py`, `tests/functional/test_functional_e2e.py`, `tests/performance/__init__.py`, `tests/performance/test_performance_benchmarks.py`, `tests/simulation/__init__.py`, `tests/simulation/test_emulation_simulation.py`, `tests/test_accel.c`, `tests/test_accel_backend.c`, `tests/test_adaptive.c`, `tests/test_agent.c`, and 25 more.

## Documented test commands

These commands are reproduced from the inspected root README or contributing guide:

```bash
cmake --build --preset linux-x64-release
```

```bash
cmake -B build -DCMAKE_BUILD_TYPE=Release
```

```bash
cmake --build build --parallel
```

```bash
cmake -B build -DEAI_BUILD_TESTS=ON
```

```bash
ctest --test-dir build --output-on-failure
```

```bash
cmake --build build
```

```bash
cmake -B build -DEAI_PROFILE=smart-camera
```

```bash
cmake --build build --config Release
```

## Verification baseline

This inventory comes from `master` at [`abd678b6c627`](https://github.com/embeddedos-org/eAI/commit/abd678b6c627f8e960657d03fa6309d1448c7c37) and found 37 test-related paths among 345 files. Re-check the source tree when that commit is no longer current.
29 changes: 29 additions & 0 deletions docs/wiki/FAQ.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# FAQ

## What is `eAI`?

[](https://github.com/embeddedos-org/eAI/actions/workflows/ci.yml) [](https://github.com/embeddedos-org/eAI/actions/workflows/codeql.yml) [](https://github.com/embeddedos-org/eAI/actions/workflows/scorecard.yml) [](https://github.com/embeddedos-org/eAI/actions/workflows/release.yml) [](LICENSE)

## Which branch does this wiki describe?

The latest publication inspected `master` at [`abd678b6c627`](https://github.com/embeddedos-org/eAI/commit/abd678b6c627f8e960657d03fa6309d1448c7c37).

## Where are setup instructions?

Start with the [README](https://github.com/embeddedos-org/eAI/blob/master/README.md), then use [Getting Started](Getting-Started) for a concise map of the checked-in project inputs.

## How do I contribute?

Use the [CONTRIBUTING](https://github.com/embeddedos-org/eAI/blob/master/CONTRIBUTING.md) and the evidence-backed inventory on [Development](Development). If no root contributing guide exists, inspect the README, repository automation, and recent accepted changes before proposing work.

## How do I run tests?

[Development](Development) lists the 37 test-related paths found in the inspected tree and reproduces recognized test commands only when they appear in the root README or contributing guide.

## How do I report a security issue?

Follow [Security](Security). The source-tree policy status for this publication is: [SECURITY](https://github.com/embeddedos-org/eAI/blob/master/SECURITY.md)

## Is the wiki authoritative?

No. The [embeddedos-org/eAI source tree](https://github.com/embeddedos-org/eAI) is authoritative. The wiki is a repository-specific guide to that source.
28 changes: 28 additions & 0 deletions docs/wiki/Getting-Started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Getting Started

## Repository purpose

[](https://github.com/embeddedos-org/eAI/actions/workflows/ci.yml) [](https://github.com/embeddedos-org/eAI/actions/workflows/codeql.yml) [](https://github.com/embeddedos-org/eAI/actions/workflows/scorecard.yml) [](https://github.com/embeddedos-org/eAI/actions/workflows/release.yml) [](LICENSE)

## First steps

1. Read the [README](https://github.com/embeddedos-org/eAI/blob/master/README.md) for the project's supported setup and usage path.
2. Clone the repository and enter its directory:

```bash
git clone https://github.com/embeddedos-org/eAI.git
cd eAI
```

3. Check the root project inputs below before installing dependencies or selecting a build tool.
4. Review [Development](Development) before changing code, and [Security](Security) before reporting a vulnerability.

## Root project inputs

- `CMakeLists.txt`: CMake build definition.
- `Dockerfile`: Container build definition.
- `docker-compose.yml`: Docker Compose definition.

## Scope note

The default branch inspected for this page was `master` at [`abd678b6c627`](https://github.com/embeddedos-org/eAI/commit/abd678b6c627f8e960657d03fa6309d1448c7c37). This page intentionally does not invent a universal build command when the repository's own documentation does not provide one.
22 changes: 22 additions & 0 deletions docs/wiki/Home.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# eAI

[](https://github.com/embeddedos-org/eAI/actions/workflows/ci.yml) [](https://github.com/embeddedos-org/eAI/actions/workflows/codeql.yml) [](https://github.com/embeddedos-org/eAI/actions/workflows/scorecard.yml) [](https://github.com/embeddedos-org/eAI/actions/workflows/release.yml) [](LICENSE)

This wiki is a maintained navigation layer for [embeddedos-org/eAI](https://github.com/embeddedos-org/eAI). Source files on the `master` default branch remain authoritative for code, commands, policies, and release behavior.

## Start here

- [Getting Started](Getting-Started) explains how to orient yourself using the repository's checked-in entry points.
- [Development](Development) records the build manifests, contribution guidance, and tests found during the latest source inspection.
- [Security](Security) points to the repository's vulnerability-reporting policy.
- [FAQ](FAQ) answers common repository-specific navigation questions.

## Source snapshot

- Default branch: `master`
- Inspected source commit: [`abd678b6c627`](https://github.com/embeddedos-org/eAI/commit/abd678b6c627f8e960657d03fa6309d1448c7c37)
- Root project overview: [README](https://github.com/embeddedos-org/eAI/blob/master/README.md)
- Contribution guidance: [CONTRIBUTING](https://github.com/embeddedos-org/eAI/blob/master/CONTRIBUTING.md)
- Security policy: [SECURITY](https://github.com/embeddedos-org/eAI/blob/master/SECURITY.md)

The wiki was generated from repository content, but it does not replace that content. If a wiki statement and the source tree disagree, follow the source tree and open a documentation correction.
13 changes: 13 additions & 0 deletions docs/wiki/Security.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Security

## Reporting vulnerabilities

The repository has a root [SECURITY](https://github.com/embeddedos-org/eAI/blob/master/SECURITY.md). Follow that policy for supported versions, reporting channels, disclosure expectations, and response details.

Do not publish suspected vulnerabilities in a public issue unless the policy explicitly directs you to do so. Provide a clear description, affected versions or commits, reproduction details, impact, and any known mitigation through the private channel named by the policy.

## Evidence

- Repository: [embeddedos-org/eAI](https://github.com/embeddedos-org/eAI)
- Inspected branch: `master`
- Inspected commit: [`abd678b6c627`](https://github.com/embeddedos-org/eAI/commit/abd678b6c627f8e960657d03fa6309d1448c7c37)
8 changes: 8 additions & 0 deletions docs/wiki/_Sidebar.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
**eAI Wiki**

- [Home](Home)
- [Getting Started](Getting-Started)
- [Development](Development)
- [Security](Security)
- [FAQ](FAQ)
- [Source Repository](https://github.com/embeddedos-org/eAI)
Loading