ai(zeroclaw): publish on-demand operator runtime
This commit is contained in:
@@ -13,6 +13,11 @@ Kill_LIFE structure un projet embarque autour de specs testables, d'agents speci
|
||||
- CAD headless KiCad 10 first
|
||||
- evidence, compliance et workflows canoniques
|
||||
|
||||
Le runtime operateur local `ZeroClaw` reste supporte pour les boucles
|
||||
agentiques et les integrations. `LangGraph` et `AutoGen` sont gardes comme
|
||||
patterns d'integration optionnels autour de `ZeroClaw`, pas comme chemins
|
||||
critiques du gate stable repo-local.
|
||||
|
||||
## Structure utile
|
||||
|
||||
```text
|
||||
@@ -50,6 +55,36 @@ cd Kill_LIFE
|
||||
bash install_kill_life.sh
|
||||
```
|
||||
|
||||
### ZeroClaw natif (optionnel)
|
||||
|
||||
Le runtime operateur `ZeroClaw` peut aussi tourner nativement sur la machine
|
||||
operateur. Le chemin supporte dans ce repo est le binaire officiel installe
|
||||
dans `~/.cargo/bin`, avec compatibilite maintenue pour
|
||||
`zeroclaw/target/release/zeroclaw`.
|
||||
|
||||
```bash
|
||||
git clone https://github.com/zeroclaw-labs/zeroclaw.git zeroclaw
|
||||
bash zeroclaw/bootstrap.sh --no-guided --prefer-prebuilt
|
||||
mkdir -p "$HOME/.local/bin" zeroclaw/target/release
|
||||
ln -sfn "$HOME/.cargo/bin/zeroclaw" "$HOME/.local/bin/zeroclaw"
|
||||
ln -sfn "$HOME/.cargo/bin/zeroclaw" zeroclaw/target/release/zeroclaw
|
||||
zeroclaw --version
|
||||
```
|
||||
|
||||
Les launchers `tools/ai/zeroclaw_*.sh` resolvent maintenant la racine du repo
|
||||
dynamiquement et retombent sur `command -v zeroclaw` si besoin.
|
||||
|
||||
Chemin operateur supporte:
|
||||
|
||||
```bash
|
||||
bash tools/ai/zeroclaw_stack_up.sh
|
||||
bash tools/ai/zeroclaw_stack_down.sh
|
||||
```
|
||||
|
||||
Le runtime `ZeroClaw` reste on-demand. Les runbooks et index d'integration
|
||||
servis via `mascarade`/`edge-proxy` viennent de [`tools/ai/integrations/`](tools/ai/integrations/).
|
||||
Ils restent consultables meme quand le runtime `ZeroClaw` n'est pas demarre.
|
||||
|
||||
### Bootstrap Python repo-local
|
||||
|
||||
```bash
|
||||
|
||||
@@ -4,8 +4,15 @@
|
||||
- Standards injection: Agent OS (standards versionnés + profils) citeturn0search3
|
||||
- Role workflows + gates: BMAD-METHOD
|
||||
- Tool-first runtime (local): Agent Zero
|
||||
- Native operator runtime: ZeroClaw CLI/gateway on the operator machine
|
||||
- Optional orchestration overlay: LangGraph around ZeroClaw
|
||||
- Interop tools: MCP local en `stdio` via le runtime `kicad-mcp`
|
||||
|
||||
Posture operateur retenue:
|
||||
- `ZeroClaw` reste un runtime local demarrable a la demande.
|
||||
- `LangGraph`, `AutoGen` et `n8n` restent des overlays/runbooks autour de ce runtime.
|
||||
- les surfaces publiques `zeroclaw.saillant.cc` et `langgraph.saillant.cc` servent les runbooks operateur, pas un service coeur always-on.
|
||||
|
||||
Le repo fournit :
|
||||
- `specs/` pour la source de vérité
|
||||
- `standards/` pour les conventions hardware/firmware
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
# Local Change Bundles — 2026-03-08
|
||||
|
||||
But: figer l'etat reel de `Kill_LIFE` apres fermeture locale et publication de
|
||||
la vague `MCP/agentics`, puis documenter ce qui reste vraiment hors repo-suivi.
|
||||
la vague `MCP/agentics`, puis suivre le lot local `zeroclaw-operator-runtime`
|
||||
sans rouvrir le backlog MCP canonique.
|
||||
|
||||
## Etat courant
|
||||
|
||||
Etat reel:
|
||||
|
||||
- un petit lot `mac-local-mcp` peut vivre seul sans rouvrir le runtime MCP canonique
|
||||
- le runtime MCP canonique est `ready`
|
||||
- le runtime MCP canonique reste `ready`
|
||||
- les validations live `knowledge-base`, `github-dispatch` et `nexar_api`
|
||||
ont deja ete rejouees sur la machine de reference
|
||||
- le lot `zeroclaw-operator-runtime` est implemente, verifie et publie
|
||||
- un petit lot `mac-local-mcp` peut toujours vivre seul sans rouvrir le runtime
|
||||
MCP canonique
|
||||
- `.mascarade/` reste genere localement mais est maintenant ignore explicitement
|
||||
par le repo
|
||||
|
||||
@@ -37,6 +40,60 @@ Resultat courant:
|
||||
- `github-dispatch` => `ready`, `live_validation=passed`
|
||||
- `nexar_api` => chemin live valide, `demo_mode=false`, limite externe de quota
|
||||
|
||||
## Lot logique publie
|
||||
|
||||
### `zeroclaw-operator-runtime`
|
||||
|
||||
Objet:
|
||||
|
||||
- rendre les launchers `ZeroClaw` portables hors chemins Mac hardcodes
|
||||
- documenter `ZeroClaw` comme runtime operateur on-demand
|
||||
- versionner les assets `tools/ai/integrations/` servis par le proxy operateur
|
||||
- garder `LangGraph`, `AutoGen` et `n8n` comme overlays/runbooks, pas comme
|
||||
services coeur
|
||||
|
||||
Fichiers:
|
||||
|
||||
- `README.md`
|
||||
- `docs/AGENTIC_LANDSCAPE.md`
|
||||
- `docs/LOCAL_CHANGE_BUNDLES_2026-03-08.md`
|
||||
- `tools/ai/integrations/README.md`
|
||||
- `tools/ai/integrations/index.html`
|
||||
- `tools/ai/integrations/autogen/README.md`
|
||||
- `tools/ai/integrations/autogen/index.html`
|
||||
- `tools/ai/integrations/langgraph/README.md`
|
||||
- `tools/ai/integrations/langgraph/index.html`
|
||||
- `tools/ai/integrations/n8n/README.md`
|
||||
- `tools/ai/integrations/n8n/index.html`
|
||||
- `tools/ai/integrations/zeroclaw/README.md`
|
||||
- `tools/ai/integrations/zeroclaw/index.html`
|
||||
- `tools/ai/zeroclaw_dual_bootstrap.sh`
|
||||
- `tools/ai/zeroclaw_dual_chat.sh`
|
||||
- `tools/ai/zeroclaw_hw_firmware_loop.sh`
|
||||
- `tools/ai/zeroclaw_stack_down.sh`
|
||||
- `tools/ai/zeroclaw_stack_up.sh`
|
||||
- `tools/ai/zeroclaw_watch_1min.sh`
|
||||
- `tools/ai/zeroclaw_webhook_send.sh`
|
||||
|
||||
Checks canoniques de fermeture:
|
||||
|
||||
```bash
|
||||
cd /home/clems/Kill_LIFE && zeroclaw --version
|
||||
cd /home/clems/Kill_LIFE && bash -n tools/ai/zeroclaw_dual_bootstrap.sh tools/ai/zeroclaw_dual_chat.sh tools/ai/zeroclaw_hw_firmware_loop.sh tools/ai/zeroclaw_stack_down.sh tools/ai/zeroclaw_stack_up.sh tools/ai/zeroclaw_watch_1min.sh tools/ai/zeroclaw_webhook_send.sh
|
||||
cd /home/clems/Kill_LIFE && bash tools/ai/zeroclaw_stack_up.sh
|
||||
cd /home/clems/Kill_LIFE && bash tools/ai/zeroclaw_stack_down.sh
|
||||
```
|
||||
|
||||
Resultat local:
|
||||
|
||||
- `zeroclaw --version` -> `0.1.7`
|
||||
- `zeroclaw_stack_up.sh --help` et `zeroclaw_stack_down.sh --help` n'ont plus
|
||||
d'effet de bord sur le runtime
|
||||
- le demarrage on-demand remonte bien `gateway`, `follow UI` et `Prometheus`
|
||||
- le runtime s'arrete proprement sans effacer les artefacts
|
||||
- `tools/ai/integrations/` devient la source de verite des runbooks servis par
|
||||
le proxy operateur
|
||||
|
||||
## Lots logiques deja figes
|
||||
|
||||
Les lots ci-dessous restent utiles comme cartographie historique si une
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
# ZeroClaw Integrations
|
||||
|
||||
ZeroClaw remains in scope as the local operator stack for Kill_LIFE.
|
||||
|
||||
This directory is synced by `tools/ai/zeroclaw_stack_up.sh` into
|
||||
`artifacts/zeroclaw/integrations/`, then served by the follow UI.
|
||||
|
||||
Current integration posture:
|
||||
|
||||
- `ZeroClaw`: kept as the local operator stack entrypoint.
|
||||
- `n8n`: kept as an external automation bridge and workflow handoff surface.
|
||||
- `LangGraph`: kept as an optional orchestration pattern, not the default runtime.
|
||||
- `AutoGen`: kept as an optional multi-agent experimentation path.
|
||||
|
||||
These integrations are intentionally documented as operator runbooks. They are
|
||||
not required for the canonical repo-local stable path.
|
||||
|
||||
Operator posture:
|
||||
|
||||
- `ZeroClaw` runtime is started on demand via `tools/ai/zeroclaw_stack_up.sh`.
|
||||
- `zeroclaw.saillant.cc` and `langgraph.saillant.cc` are expected to serve these
|
||||
runbooks behind the authenticated `edge-proxy`.
|
||||
- The static runbooks remain available even when the local `ZeroClaw` runtime is
|
||||
stopped.
|
||||
|
||||
Available runbooks:
|
||||
|
||||
- [`zeroclaw/README.md`](zeroclaw/README.md)
|
||||
- [`n8n/README.md`](n8n/README.md)
|
||||
- [`langgraph/README.md`](langgraph/README.md)
|
||||
- [`autogen/README.md`](autogen/README.md)
|
||||
@@ -0,0 +1,19 @@
|
||||
# AutoGen Runbook
|
||||
|
||||
`AutoGen` stays available as an optional multi-agent experimentation path
|
||||
alongside `ZeroClaw`.
|
||||
|
||||
Use it when you want:
|
||||
|
||||
- ad hoc multi-agent roleplay or decomposition
|
||||
- experimentation outside the canonical repo workflow path
|
||||
- quick prototypes before turning a flow into a tracked workflow or MCP tool
|
||||
|
||||
Current posture:
|
||||
|
||||
- retained as a documented integration
|
||||
- not part of the canonical stable gate
|
||||
- should remain outside critical firmware/CAD/release paths by default
|
||||
|
||||
If revived as code, keep it isolated from the stable repo-local CI path and
|
||||
document the trigger conditions explicitly.
|
||||
@@ -0,0 +1,53 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>AutoGen Lab</title>
|
||||
<style>
|
||||
:root {
|
||||
color-scheme: dark;
|
||||
--bg: #0d1117;
|
||||
--panel: #161b22;
|
||||
--text: #e6edf3;
|
||||
--muted: #9da7b3;
|
||||
--line: #2d333b;
|
||||
--accent: #d2a8ff;
|
||||
}
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: "SF Pro Text", "Segoe UI", Arial, sans-serif;
|
||||
background: radial-gradient(circle at top, #2c1f38 0%, var(--bg) 60%);
|
||||
color: var(--text);
|
||||
}
|
||||
main {
|
||||
max-width: 860px;
|
||||
margin: 0 auto;
|
||||
padding: 32px 18px 48px;
|
||||
}
|
||||
h1 {
|
||||
margin: 0 0 12px;
|
||||
font-size: 32px;
|
||||
letter-spacing: 0.04em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
p {
|
||||
line-height: 1.6;
|
||||
color: var(--muted);
|
||||
}
|
||||
a {
|
||||
color: var(--text);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<h1>AutoGen Lab</h1>
|
||||
<p>
|
||||
AutoGen stays available as an experimentation lane outside the critical
|
||||
path.
|
||||
</p>
|
||||
<p><a href="/README.md">Open the AutoGen README</a></p>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,107 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>ZeroClaw Integrations</title>
|
||||
<style>
|
||||
:root {
|
||||
color-scheme: dark;
|
||||
--bg: #0d1117;
|
||||
--panel: #161b22;
|
||||
--text: #e6edf3;
|
||||
--muted: #9da7b3;
|
||||
--line: #2d333b;
|
||||
--accent: #f0b44c;
|
||||
}
|
||||
* { box-sizing: border-box; }
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: "SF Pro Text", "Segoe UI", Arial, sans-serif;
|
||||
background: radial-gradient(circle at top, #1b2230 0%, var(--bg) 56%);
|
||||
color: var(--text);
|
||||
}
|
||||
main {
|
||||
max-width: 980px;
|
||||
margin: 0 auto;
|
||||
padding: 32px 18px 48px;
|
||||
}
|
||||
h1 {
|
||||
margin: 0 0 10px;
|
||||
font-size: 32px;
|
||||
letter-spacing: 0.04em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
p {
|
||||
line-height: 1.6;
|
||||
color: var(--muted);
|
||||
}
|
||||
.grid {
|
||||
display: grid;
|
||||
gap: 14px;
|
||||
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
|
||||
margin-top: 24px;
|
||||
}
|
||||
a.card {
|
||||
display: block;
|
||||
padding: 16px;
|
||||
border: 1px solid var(--line);
|
||||
border-radius: 18px;
|
||||
background: rgba(22, 27, 34, 0.92);
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
a.card:hover {
|
||||
border-color: rgba(240, 180, 76, 0.55);
|
||||
}
|
||||
.label {
|
||||
color: var(--accent);
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.16em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.title {
|
||||
margin-top: 8px;
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
}
|
||||
.small {
|
||||
margin-top: 10px;
|
||||
font-size: 13px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<h1>ZeroClaw Integrations</h1>
|
||||
<p>
|
||||
Runbooks served by the ZeroClaw follow UI and reused by the Mascarade
|
||||
operator proxy. ZeroClaw stays the local operator stack; the integrations
|
||||
below stay in scope without becoming part of the stable critical path.
|
||||
</p>
|
||||
<div class="grid">
|
||||
<a class="card" href="/integrations/zeroclaw/">
|
||||
<div class="label">Operator runtime</div>
|
||||
<div class="title">ZeroClaw</div>
|
||||
<div class="small">Local gateway, pairing, follow UI and operator loops.</div>
|
||||
</a>
|
||||
<a class="card" href="/integrations/langgraph/">
|
||||
<div class="label">Orchestration overlay</div>
|
||||
<div class="title">LangGraph</div>
|
||||
<div class="small">Optional graph-shaped orchestration around ZeroClaw.</div>
|
||||
</a>
|
||||
<a class="card" href="/integrations/n8n/">
|
||||
<div class="label">Workflow bridge</div>
|
||||
<div class="title">n8n</div>
|
||||
<div class="small">Low-code handoff and automation around ZeroClaw webhooks.</div>
|
||||
</a>
|
||||
<a class="card" href="/integrations/autogen/">
|
||||
<div class="label">Multi-agent lab</div>
|
||||
<div class="title">AutoGen</div>
|
||||
<div class="small">Optional experimentation outside the stable runtime path.</div>
|
||||
</a>
|
||||
</div>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,26 @@
|
||||
# LangGraph Runbook
|
||||
|
||||
`LangGraph` stays in scope as an optional orchestration layer around
|
||||
`ZeroClaw`.
|
||||
|
||||
Use it when you want:
|
||||
|
||||
- explicit graph-shaped control flow
|
||||
- checkpointed or resumable orchestration
|
||||
- a graph runtime separated from the canonical repo workflows
|
||||
|
||||
Current posture in Kill_LIFE:
|
||||
|
||||
- `ZeroClaw` remains the local operator stack.
|
||||
- `LangGraph` is retained as an integration pattern, not as the default
|
||||
runtime path.
|
||||
- No `LangGraph` service is wired into the main `mascarade` stack by default.
|
||||
|
||||
Recommended role split:
|
||||
|
||||
- `ZeroClaw`: local gateway, operator UX, prompts, pairing, follow UI
|
||||
- `LangGraph`: optional orchestration graph for complex flows
|
||||
- repo workflows / evidence: canonical tracked outputs
|
||||
|
||||
If this path is reactivated, add the concrete graph app or runner as tracked
|
||||
artifacts in `tools/ai/` or a dedicated submodule, then link it from here.
|
||||
@@ -0,0 +1,80 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>LangGraph Operator Surface</title>
|
||||
<style>
|
||||
:root {
|
||||
color-scheme: dark;
|
||||
--bg: #0d1117;
|
||||
--panel: #161b22;
|
||||
--text: #e6edf3;
|
||||
--muted: #9da7b3;
|
||||
--line: #2d333b;
|
||||
--accent: #6ed0ff;
|
||||
}
|
||||
* { box-sizing: border-box; }
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: "SF Pro Text", "Segoe UI", Arial, sans-serif;
|
||||
background: radial-gradient(circle at top, #162434 0%, var(--bg) 60%);
|
||||
color: var(--text);
|
||||
}
|
||||
main {
|
||||
max-width: 860px;
|
||||
margin: 0 auto;
|
||||
padding: 32px 18px 48px;
|
||||
}
|
||||
h1 {
|
||||
margin: 0 0 12px;
|
||||
font-size: 32px;
|
||||
letter-spacing: 0.04em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
p, li {
|
||||
line-height: 1.6;
|
||||
color: var(--muted);
|
||||
}
|
||||
.panel {
|
||||
margin-top: 24px;
|
||||
padding: 18px;
|
||||
border: 1px solid var(--line);
|
||||
border-radius: 18px;
|
||||
background: rgba(22, 27, 34, 0.92);
|
||||
}
|
||||
.label {
|
||||
color: var(--accent);
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.16em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
a {
|
||||
color: var(--text);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<h1>LangGraph Overlay</h1>
|
||||
<p>
|
||||
LangGraph stays in scope as the optional orchestration layer around
|
||||
ZeroClaw. It is kept visible to operators without becoming the default
|
||||
runtime path for Kill_LIFE.
|
||||
</p>
|
||||
<div class="panel">
|
||||
<div class="label">Current posture</div>
|
||||
<ul>
|
||||
<li>operator-visible and documented</li>
|
||||
<li>kept separate from the stable repo-local CI gate</li>
|
||||
<li>reactivated as a concrete runtime only when a dedicated graph app exists</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="panel">
|
||||
<div class="label">Runbook</div>
|
||||
<p><a href="/README.md">Open the LangGraph README</a></p>
|
||||
</div>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,23 @@
|
||||
# n8n Runbook
|
||||
|
||||
`n8n` stays in scope as the low-code workflow bridge around ZeroClaw, not as
|
||||
the canonical source of truth for runtime state.
|
||||
|
||||
Use it for:
|
||||
|
||||
- operator-triggered chains around `zeroclaw` webhooks
|
||||
- import/export of automation flows
|
||||
- glue logic around notifications, reviews, or dispatch
|
||||
|
||||
Current posture:
|
||||
|
||||
- ZeroClaw exposes the runbook from `/integrations/n8n/README.md`.
|
||||
- The historical JSON workflow names are kept as references, but the canonical
|
||||
runtime path is the ZeroClaw gateway plus repo workflows.
|
||||
- If you need concrete n8n workflow files again, regenerate them as explicit
|
||||
tracked artifacts instead of relying on dead links.
|
||||
|
||||
Historical workflow names:
|
||||
|
||||
- `zeroclaw_orchestrator_workflow`
|
||||
- `zeroclaw_pr_autotriage_workflow`
|
||||
@@ -0,0 +1,52 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>n8n Runbook</title>
|
||||
<style>
|
||||
:root {
|
||||
color-scheme: dark;
|
||||
--bg: #0d1117;
|
||||
--panel: #161b22;
|
||||
--text: #e6edf3;
|
||||
--muted: #9da7b3;
|
||||
--line: #2d333b;
|
||||
--accent: #7ee787;
|
||||
}
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: "SF Pro Text", "Segoe UI", Arial, sans-serif;
|
||||
background: radial-gradient(circle at top, #183324 0%, var(--bg) 60%);
|
||||
color: var(--text);
|
||||
}
|
||||
main {
|
||||
max-width: 860px;
|
||||
margin: 0 auto;
|
||||
padding: 32px 18px 48px;
|
||||
}
|
||||
h1 {
|
||||
margin: 0 0 12px;
|
||||
font-size: 32px;
|
||||
letter-spacing: 0.04em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
p {
|
||||
line-height: 1.6;
|
||||
color: var(--muted);
|
||||
}
|
||||
a {
|
||||
color: var(--text);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<h1>n8n Workflow Bridge</h1>
|
||||
<p>
|
||||
n8n remains the low-code bridge around ZeroClaw and repo workflows.
|
||||
</p>
|
||||
<p><a href="/README.md">Open the n8n README</a></p>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,9 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ZEROCLAW_BIN="${ZEROCLAW_BIN:-/Users/cils/Documents/Lelectron_rare/Kill_LIFE/zeroclaw/target/release/zeroclaw}"
|
||||
RTC_REPO="/Users/cils/Documents/Lelectron_rare/RTC_BL_PHONE"
|
||||
ZACUS_REPO="/Users/cils/Documents/Lelectron_rare/le-mystere-professeur-zacus"
|
||||
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
ROOT_DIR="${ZEROCLAW_ROOT_DIR:-$(cd -- "$SCRIPT_DIR/../.." && pwd)}"
|
||||
ZEROCLAW_BIN="${ZEROCLAW_BIN:-$ROOT_DIR/zeroclaw/target/release/zeroclaw}"
|
||||
RTC_REPO="${ZEROCLAW_RTC_REPO:-$HOME/RTC_BL_PHONE}"
|
||||
ZACUS_REPO="${ZEROCLAW_ZACUS_REPO:-$HOME/le-mystere-professeur-zacus}"
|
||||
HARDWARE_ONLY=0
|
||||
|
||||
usage() {
|
||||
@@ -42,11 +44,25 @@ if [[ ! -x "$ZEROCLAW_BIN" ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
require_repo_dir() {
|
||||
local label="$1"
|
||||
local repo="$2"
|
||||
if [[ -d "$repo" ]]; then
|
||||
return 0
|
||||
fi
|
||||
echo "$label repo not found: $repo" >&2
|
||||
echo "Pass --$(printf '%s' "$label" | tr '[:upper:]' '[:lower:]') <path> or export ZEROCLAW_${label}_REPO." >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
if [[ "$HARDWARE_ONLY" == "1" ]]; then
|
||||
"$ZEROCLAW_BIN" hardware discover
|
||||
exit 0
|
||||
fi
|
||||
|
||||
require_repo_dir "RTC" "$RTC_REPO"
|
||||
require_repo_dir "ZACUS" "$ZACUS_REPO"
|
||||
|
||||
write_repo_config() {
|
||||
local repo="$1"
|
||||
mkdir -p "$repo/.zeroclaw"
|
||||
|
||||
@@ -13,9 +13,11 @@ load_local_env() {
|
||||
|
||||
load_local_env
|
||||
|
||||
ZEROCLAW_BIN="${ZEROCLAW_BIN:-/Users/cils/Documents/Lelectron_rare/Kill_LIFE/zeroclaw/target/release/zeroclaw}"
|
||||
RTC_REPO="/Users/cils/Documents/Lelectron_rare/RTC_BL_PHONE"
|
||||
ZACUS_REPO="/Users/cils/Documents/Lelectron_rare/le-mystere-professeur-zacus"
|
||||
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
ROOT_DIR="${ZEROCLAW_ROOT_DIR:-$(cd -- "$SCRIPT_DIR/../.." && pwd)}"
|
||||
ZEROCLAW_BIN="${ZEROCLAW_BIN:-$ROOT_DIR/zeroclaw/target/release/zeroclaw}"
|
||||
RTC_REPO="${ZEROCLAW_RTC_REPO:-$HOME/RTC_BL_PHONE}"
|
||||
ZACUS_REPO="${ZEROCLAW_ZACUS_REPO:-$HOME/le-mystere-professeur-zacus}"
|
||||
|
||||
usage() {
|
||||
cat <<USAGE
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
RTC_REPO="${ZEROCLAW_RTC_REPO:-/Users/cils/Documents/Lelectron_rare/RTC_BL_PHONE}"
|
||||
ZACUS_REPO="${ZEROCLAW_ZACUS_REPO:-/Users/cils/Documents/Lelectron_rare/le-mystere-professeur-zacus}"
|
||||
RTC_REPO="${ZEROCLAW_RTC_REPO:-$HOME/RTC_BL_PHONE}"
|
||||
ZACUS_REPO="${ZEROCLAW_ZACUS_REPO:-$HOME/le-mystere-professeur-zacus}"
|
||||
|
||||
RTC_FW_DIR="$RTC_REPO"
|
||||
ZACUS_FW_DIR="$ZACUS_REPO/hardware/firmware"
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ART_DIR="${ZEROCLAW_ART_DIR:-/Users/cils/Documents/Lelectron_rare/Kill_LIFE/artifacts/zeroclaw}"
|
||||
ROOT_DIR="/Users/cils/Documents/Lelectron_rare/Kill_LIFE"
|
||||
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
ROOT_DIR="${ZEROCLAW_ROOT_DIR:-$(cd -- "$SCRIPT_DIR/../.." && pwd)}"
|
||||
ART_DIR="${ZEROCLAW_ART_DIR:-$ROOT_DIR/artifacts/zeroclaw}"
|
||||
GW_PID_FILE="$ART_DIR/gateway.pid"
|
||||
FW_PID_FILE="$ART_DIR/follow.pid"
|
||||
PROM_PID_FILE="$ART_DIR/prometheus.pid"
|
||||
@@ -12,6 +13,30 @@ FW_MANAGED_FILE="$ART_DIR/follow.managed"
|
||||
PROM_MANAGED_FILE="$ART_DIR/prometheus.managed"
|
||||
WATCHER_SCRIPT="$ROOT_DIR/tools/ai/zeroclaw_watch_1min.sh"
|
||||
|
||||
usage() {
|
||||
cat <<USAGE
|
||||
Usage: $(basename "$0")
|
||||
|
||||
Stop the local ZeroClaw operator stack started by zeroclaw_stack_up.sh.
|
||||
Managed logs and artifacts are preserved under:
|
||||
$ART_DIR
|
||||
USAGE
|
||||
}
|
||||
|
||||
if [[ $# -gt 0 ]]; then
|
||||
case "$1" in
|
||||
-h|--help)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "[fail] unknown option: $1" >&2
|
||||
usage >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
stop_pid_file() {
|
||||
local pid_file="$1"
|
||||
[[ -f "$pid_file" ]] || return 0
|
||||
|
||||
@@ -13,7 +13,8 @@ load_local_env() {
|
||||
|
||||
load_local_env
|
||||
|
||||
ROOT_DIR="/Users/cils/Documents/Lelectron_rare/Kill_LIFE"
|
||||
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
ROOT_DIR="${ZEROCLAW_ROOT_DIR:-$(cd -- "$SCRIPT_DIR/../.." && pwd)}"
|
||||
ART_DIR="${ZEROCLAW_ART_DIR:-$ROOT_DIR/artifacts/zeroclaw}"
|
||||
ZEROCLAW_BIN="${ZEROCLAW_BIN:-$ROOT_DIR/zeroclaw/target/release/zeroclaw}"
|
||||
GATEWAY_HOST="${ZEROCLAW_GATEWAY_HOST:-127.0.0.1}"
|
||||
@@ -38,6 +39,44 @@ LMSTUDIO_BASE_URL="${ZEROCLAW_LMSTUDIO_BASE_URL:-http://127.0.0.1:1234/v1}"
|
||||
LMSTUDIO_MODEL="${ZEROCLAW_LMSTUDIO_MODEL:-}"
|
||||
LOCAL_PROVIDER_ORDER="${ZEROCLAW_LOCAL_PROVIDER_ORDER:-ollama,lmstudio}"
|
||||
|
||||
usage() {
|
||||
cat <<USAGE
|
||||
Usage: $(basename "$0")
|
||||
|
||||
Start the local ZeroClaw operator stack on demand:
|
||||
- gateway
|
||||
- follow UI
|
||||
- optional Prometheus backend
|
||||
- synced integration runbooks from tools/ai/integrations/
|
||||
|
||||
Companion commands:
|
||||
bash tools/ai/zeroclaw_stack_up.sh
|
||||
bash tools/ai/zeroclaw_stack_down.sh Stop the local stack
|
||||
|
||||
Environment overrides:
|
||||
ZEROCLAW_ROOT_DIR
|
||||
ZEROCLAW_ART_DIR
|
||||
ZEROCLAW_BIN
|
||||
ZEROCLAW_GATEWAY_HOST / ZEROCLAW_GATEWAY_PORT
|
||||
ZEROCLAW_FOLLOW_PORT
|
||||
ZEROCLAW_PROM_MODE
|
||||
USAGE
|
||||
}
|
||||
|
||||
if [[ $# -gt 0 ]]; then
|
||||
case "$1" in
|
||||
-h|--help)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "[fail] unknown option: $1" >&2
|
||||
usage >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
GW_PID_FILE="$ART_DIR/gateway.pid"
|
||||
FW_PID_FILE="$ART_DIR/follow.pid"
|
||||
GW_LOG="$ART_DIR/gateway.log"
|
||||
@@ -1036,8 +1075,8 @@ cat >"$INDEX_FILE" <<EOF
|
||||
<a href="/orchestrator.log">/orchestrator.log</a>
|
||||
<a href="/prometheus.yml">/prometheus.yml</a>
|
||||
<a href="/integrations/README.md">/integrations/README.md</a>
|
||||
<a href="/integrations/n8n/zeroclaw_orchestrator_workflow.json">n8n workflow</a>
|
||||
<a href="/integrations/n8n/zeroclaw_pr_autotriage_workflow.json">n8n pr-autotriage workflow</a>
|
||||
<a href="/integrations/zeroclaw/">zeroclaw runbook</a>
|
||||
<a href="/integrations/n8n/README.md">n8n runbook</a>
|
||||
<a href="/integrations/langgraph/README.md">langgraph runbook</a>
|
||||
<a href="/integrations/autogen/README.md">autogen runbook</a>
|
||||
<a href="http://$GATEWAY_HOST:$GATEWAY_PORT/health">/health</a>
|
||||
@@ -1191,7 +1230,7 @@ cat >"$INDEX_FILE" <<EOF
|
||||
<div class="body">
|
||||
<p class="hint">Point d'entrée recommandé.</p>
|
||||
<pre id="hubQuickStart">1) tools/ai/zeroclaw_stack_up.sh
|
||||
2) tools/ai/zeroclaw_integrations_up.sh
|
||||
2) Integrations served from /integrations/ (synced automatically from tools/ai/integrations/)
|
||||
3) Ouvrir http://127.0.0.1:8788/ (monitoring)
|
||||
4) Ouvrir http://127.0.0.1:5678/ (n8n)</pre>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="/Users/cils/Documents/Lelectron_rare/Kill_LIFE"
|
||||
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
ROOT_DIR="${ZEROCLAW_ROOT_DIR:-$(cd -- "$SCRIPT_DIR/../.." && pwd)}"
|
||||
ART_DIR="${ZEROCLAW_ART_DIR:-$ROOT_DIR/artifacts/zeroclaw}"
|
||||
HOST="${ZEROCLAW_GATEWAY_HOST:-127.0.0.1}"
|
||||
PORT="${ZEROCLAW_GATEWAY_PORT:-3000}"
|
||||
|
||||
@@ -13,7 +13,9 @@ load_local_env() {
|
||||
|
||||
load_local_env
|
||||
|
||||
ART_DIR="${ZEROCLAW_ART_DIR:-/Users/cils/Documents/Lelectron_rare/Kill_LIFE/artifacts/zeroclaw}"
|
||||
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
ROOT_DIR="${ZEROCLAW_ROOT_DIR:-$(cd -- "$SCRIPT_DIR/../.." && pwd)}"
|
||||
ART_DIR="${ZEROCLAW_ART_DIR:-$ROOT_DIR/artifacts/zeroclaw}"
|
||||
HOST="${ZEROCLAW_GATEWAY_HOST:-127.0.0.1}"
|
||||
PORT="${ZEROCLAW_GATEWAY_PORT:-3000}"
|
||||
TOKEN_FILE="$ART_DIR/pair_token.txt"
|
||||
|
||||
Reference in New Issue
Block a user