Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
c9266b2
feat(archi): add event router
Popochounet Sep 13, 2025
9850544
feat(archi): add Module class
Popochounet Sep 13, 2025
bc44bc7
feat(archi): add ModuleManager class
Popochounet Sep 16, 2025
bc91df9
feat(archi): add shell to control modules
Popochounet Sep 16, 2025
605534a
fix(archi): broken bus event pipeline
Popochounet Sep 16, 2025
e9ec255
feat(archi): add demo main.py
Popochounet Sep 16, 2025
c83a059
feat(logging): add logging tools
Popochounet Sep 19, 2025
549eeb5
evol(ModuleManager): logging implemented
Popochounet Sep 19, 2025
91dcb7d
evol(Module): logging implemented
Popochounet Sep 19, 2025
cd381f4
evol(EventRouter): logging implemented
Popochounet Sep 19, 2025
1de49f5
evol(shell): implemented log cmd
Popochounet Sep 19, 2025
eef8ada
evol(main): CTRL+C is now well handled
Popochounet Sep 19, 2025
4e52de9
fix(logger): record level == root level were filtered
Popochounet Oct 3, 2025
d64f038
evol(Module): added other event struct type (json & bytes)
Popochounet Oct 3, 2025
e31def2
evol(ModuleManager): modules are not class anymore, but instance of t…
Popochounet Oct 3, 2025
592fb6b
feat(STT): added RecordSpeech module
Popochounet Oct 3, 2025
ca447f3
feat(STT): added SpeechToText module
Popochounet Oct 3, 2025
d0fbae4
evol(main): update main to demo new modules
Popochounet Oct 3, 2025
9a63373
evol(rag): now a module
Popochounet Oct 7, 2025
1a53261
feat(mode_controller): module to switch mode
Popochounet Oct 7, 2025
402d2ff
evol(module): event with json args will kwargs
Popochounet Oct 7, 2025
ca93a07
refactor(archi): remove deprecated classes
Popochounet Dec 14, 2025
deb40f9
refactor(archi): addedzmq EventProxy
Popochounet Dec 14, 2025
270b4cf
refactor(archi): added Router and Dealer (wip)
Popochounet Dec 14, 2025
5f43142
refactor(archi): added LogPusher and LogPuller
Popochounet Dec 14, 2025
72112fc
refactor(archi): Agent is the new ModuleManager and can connect to HuRI
Popochounet Dec 14, 2025
fb22b87
wip(archi): HuRI class handle log, modules event and control agents
Popochounet Dec 14, 2025
36144fd
evol(modules): change folder name
Popochounet Dec 14, 2025
896be08
feat(huri): HuRI class is launched with config
Popochounet Dec 14, 2025
228ad24
feat(modules): ModuleFactory class to register/create modules
Popochounet Dec 14, 2025
e8fc289
feat(agent): agent are launch with config
Popochounet Dec 14, 2025
ffcbc0f
wip(shell): execute command in HuRI class
Popochounet Dec 14, 2025
da2cfeb
evol(agent): handle stdin
Popochounet Dec 15, 2025
2c24598
add(modules): TextInput & TextOutput
Popochounet Dec 15, 2025
4fa27d1
add(config): agent that does not use mic
Popochounet Dec 15, 2025
d37708b
fix(rag): Document loading
Popochounet Dec 15, 2025
49558d7
feat(quick_launch): script to launch huri + 1 agent
Popochounet Dec 15, 2025
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
39 changes: 39 additions & 0 deletions config/agent_input.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
id: agent-io
hostname: localhost

huri:
hostname: localhost
router:
port: 3000
event-proxy:
xsub: 5555
xpub: 5556
log-puller:
port: 8008

dealer: # todo
heartbeat:
interval_ms: 1000
timeout_ms: 5000

forwarder-proxy:
down-xsub: 6665
up-xpub: 6666

logging: DEBUG

modules:
inp:
name: INP
logging: INFO
out:
name: OUT
logging: INFO
mod:
name: MOD
logging: INFO
rag:
name: RAG
args:
model: deepseek-v2:16b
logging: INFO
35 changes: 35 additions & 0 deletions config/agent_io.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
id: agent-io
hostname: localhost

huri:
hostname: localhost
router:
port: 3000
event-proxy:
xsub: 5555
xpub: 5556
log-puller:
port: 8008

dealer: # todo
heartbeat:
interval_ms: 1000
timeout_ms: 5000

forwarder-proxy:
down-xsub: 6665
up-xpub: 6666

logging: INFO

modules:
mic:
name: mic
args:
sample_rate: 18000
logging: INFO
stt:
name: stt
args:
sample_rate: 18000
logging: INFO
11 changes: 11 additions & 0 deletions config/huri.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
hostname: localhost

router:
port: 3000

event-proxy:
xsub: 5555
xpub: 5556

log-puller:
port: 8008
40 changes: 40 additions & 0 deletions quick_launch.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#!/usr/bin/env bash

set -e

# Check args
if [ "$#" -lt 2 ]; then
echo "Usage: $0 <HURI_CONFIG_PATH> <AGENT_CONFIG_PATH> [CLEAN]"
exit 1
fi

HURI_CONFIG="$1"
AGENT_CONFIG="$2"

LOG_DIR="./tmp/log"

if [[ " $* " == *" CLEAN "* ]]; then
echo "Cleaning previous logs in ${LOG_DIR}"
rm -rf "${LOG_DIR}"
fi

mkdir -p "$LOG_DIR"

TIMESTAMP=$(date +"%Y%m%d-%H%M%S")
HURI_LOG="${LOG_DIR}/huri-${TIMESTAMP}.log"


# Run huri with output redirected
python -m src.launch_huri --config "$HURI_CONFIG" > "$HURI_LOG" 2>&1 &
HURI_PID=$!
echo "HURI started in background (PID=${HURI_PID}), logging to ${HURI_LOG}"

# Run agent
python -m src.launch_agent --config "$AGENT_CONFIG"

# Ensure HURI is killed on script exit (normal or Ctrl+C)
cleanup() {
echo "Stopping HURI (PID=${HURI_PID})"
kill "${HURI_PID}" 2>/dev/null || true
}
trap cleanup EXIT INT TERM
Empty file added src/__init__.py
Empty file.
Empty file added src/core/__init__.py
Empty file.
Loading