Source identity
| Field | Recorded value |
|---|---|
| Source type | archive member |
| Original record | rhiannon.hpp |
| Date | Not specified in source |
| Path or archive member | archives/libsrc-b5cb90ed4bd7/AI_DEEP_SCAN_2026-10-14_v2/verified_source/rhiannon/include/agents/rhiannon.hpp |
| Original SHA-256 | 0e7ddc04efc08d13f0f91f0f355a2cf7bd0eab3bdcba9ab9dee60eed53edc08e |
| Reading-copy SHA-256 | 0e7ddc04efc08d13f0f91f0f355a2cf7bd0eab3bdcba9ab9dee60eed53edc08e |
| Archive source | {"sourceId": "libsrc-b5cb90ed4bd7", "member": "AI_DEEP_SCAN_2026-10-14_v2/verified_source/rhiannon/include/agents/rhiannon.hpp"} |
Every recorded occurrence
These 2 records contain identical original source bytes. Their paths and revisions remain part of the archive.
| Original record | Branch or archive | Revision / identifier | Original location |
|---|---|---|---|
| rhiannon.hpp | {"sourceId": "libsrc-b5cb90ed4bd7", "member": "AI_DEEP_SCAN_2026-10-14_v2/verified_source/rhiannon/include/agents/rhiannon.hpp"} | libsrc-84f4635f1fee | archives/libsrc-b5cb90ed4bd7/AI_DEEP_SCAN_2026-10-14_v2/verified_source/rhiannon/include/agents/rhiannon.hpp |
| Janady13/rhiannon / include/agents/rhiannon.hpp | main | df358362a21fdde4372dc6239573622aafe4835f | Open original |
Recovered source transcript
Download complete source text ↓43 lines · 1.1 KB
#pragma once
// Rhiannon facade and ANI attach points.
#include "agents/two_way_engine.hpp"
#include <memory>
namespace agents {
struct ANI {
virtual void tick(const std::vector<float>& z, double e) = 0;
virtual ~ANI() = default;
};
class Rhiannon {
public:
explicit Rhiannon(TwoWayEngine::Cfg cfg = {}) : engine_(cfg), last_z_(cfg.dim, 0.0f) {}
void set_input(std::span<const float> x) { engine_.set_target(x); }
void attach_ani(std::unique_ptr<ANI> ani) { anis_.push_back(std::move(ani)); }
void tick() {
engine_.step();
last_z_ = engine_.behavior();
const double e = engine_.error();
for (auto& ani : anis_) ani->tick(last_z_, e);
// Simple damping example if needed for consumers (does not mutate engine)
if (e > 0.1) {
for (auto& v : last_z_) v *= 0.99f;
}
}
const std::vector<float>& state_z() const { return last_z_; }
double state_e() const { return engine_.error(); }
private:
TwoWayEngine engine_;
std::vector<float> last_z_{};
std::vector<std::unique_ptr<ANI>> anis_{};
};
} // namespace agents