@zerwiz/ymir 0.1.24 → 0.1.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/bus/messages.json +1 -0
- package/.agents/config/agents.machine.example.yaml +16 -0
- package/.agents/config/app-repos.yaml +38 -0
- package/.agents/skills/galdr-ymirsystem/assets/local-models.md +72 -1
- package/.pi/mcp.json +2 -2
- package/CHANGELOG.md +42 -2
- package/README.md +39 -23
- package/assets/reference/state/.branch-eligible-owner +4 -0
- package/assets/reference/state/.branch-mirror-cursor +1 -0
- package/assets/reference/state/.branch-outcomes-cursor +1 -0
- package/assets/reference/state/.branch-session +1 -0
- package/assets/reference/state/.count-default_wF_p5 +1 -0
- package/assets/reference/state/.count-default_wF_p6 +1 -0
- package/assets/reference/state/.count-default_wR_p2 +1 -0
- package/assets/reference/state/.count-default_wS_p2 +1 -0
- package/assets/reference/state/.count-firstmate_fm-server-knowledge +1 -0
- package/assets/reference/state/.hash-default_wF_p5 +1 -0
- package/assets/reference/state/.hash-default_wF_p6 +1 -0
- package/assets/reference/state/.hash-default_wR_p2 +1 -0
- package/assets/reference/state/.hash-default_wS_p2 +1 -0
- package/assets/reference/state/.hash-firstmate_fm-server-knowledge +1 -0
- package/assets/reference/state/.heartbeat-streak +1 -0
- package/assets/reference/state/.inactive-outcome-reconcile +2 -0
- package/assets/reference/state/.lock +1 -0
- package/assets/reference/state/.pi-branch-extension-loaded +1 -0
- package/assets/reference/state/.pi-turnend-extension-loaded +2 -0
- package/assets/reference/state/.pi-watch-extension-loaded +2 -0
- package/assets/reference/state/.seen-server-knowledge_turn-ended +1 -0
- package/assets/reference/state/.session-start-agents-baseline +2 -0
- package/assets/reference/state/.session-start-complete +1 -0
- package/assets/reference/state/.stale-default_wF_p5 +1 -0
- package/assets/reference/state/.stale-default_wR_p2 +1 -0
- package/assets/reference/state/.stale-firstmate_fm-server-knowledge +1 -0
- package/assets/reference/state/.stale-since-default_wF_p5 +1 -0
- package/assets/reference/state/.stale-since-default_wR_p2 +1 -0
- package/assets/reference/state/.stale-since-firstmate_fm-server-knowledge +1 -0
- package/assets/reference/state/.startup-network.delivered +1 -0
- package/assets/reference/state/.startup-network.report +1 -0
- package/assets/reference/state/.startup-network.status +10 -0
- package/assets/reference/state/.startup-network.timings +6 -0
- package/assets/reference/state/.trace-context-effective +1 -0
- package/assets/reference/state/.wake-queue.seq +1 -0
- package/assets/reference/state/.wake-rows.consume.tR2rTy +0 -0
- package/assets/reference/state/.watch-arm-output.3581p6 +0 -0
- package/assets/reference/state/.watch-arm-output.3ciDNP +0 -0
- package/assets/reference/state/.watch-arm-output.SksR6k +0 -0
- package/assets/reference/state/.watch-cycle-exits.log +22 -0
- package/assets/reference/state/.watch-deliveries.log +19 -0
- package/assets/reference/state/.watch-triage.log +38 -0
- package/assets/reference/state/.watch.lock/fm-home +1 -0
- package/assets/reference/state/.watch.lock/pid +1 -0
- package/assets/reference/state/.watch.lock/pid-identity +1 -0
- package/assets/reference/state/.watch.lock/watcher-path +1 -0
- package/assets/reference/state/.watch.lock.owner.qqbxmS/fm-home +1 -0
- package/assets/reference/state/.watch.lock.owner.qqbxmS/pid +1 -0
- package/assets/reference/state/.watch.lock.owner.qqbxmS/pid-identity +1 -0
- package/assets/reference/state/.watch.lock.owner.qqbxmS/watcher-path +1 -0
- package/assets/reference/state/.watcher-down +1 -0
- package/assets/reference/state/branch-outcomes.jsonl +1 -0
- package/assets/reference/state/branch-session/2026-09-04T16-49-38-671Z_01a06d53-6b6f-7619-930d-e6dfd9a4a29e.jsonl +211 -0
- package/assets/reference/state/home-summary.json +42 -0
- package/assets/reference/state/server-knowledge.busy-gen +1 -0
- package/assets/reference/state/server-knowledge.busy-state +1 -0
- package/assets/reference/state/server-knowledge.herdr-presentation +12 -0
- package/assets/reference/state/server-knowledge.meta +18 -0
- package/assets/reference/state/server-knowledge.pi-ext.ts +26 -0
- package/assets/reference/state/server-knowledge.turn-ended +0 -0
- package/bin/ymir-install.sh +6 -1
- package/package.json +2 -2
- package/scripts/start.sh +0 -9
- package/.agents/config/agents.yaml +0 -53
- package/.agents/config/tailscale-sync.yaml +0 -9
- package/.agents/config/wedge-alarm +0 -3
- package/.agents/state/.wake-queue.seq +0 -1
- package/.agents/state/.watcher-down +0 -1
- package/.agents/state/procevent-inbox/when-hall-button.1.adapter +0 -1
- package/.agents/state/procevent-inbox/when-hall-button.1.result +0 -8
- package/.agents/state/procevent-inbox/when-hall-button.2.adapter +0 -1
- package/.agents/state/procevent-inbox/when-hall-button.2.result +0 -5
- package/.agents/state/procevent-inbox/when-odrerir.1.adapter +0 -1
- package/.agents/state/procevent-inbox/when-odrerir.1.result +0 -8
- package/.agents/state/procevent-inbox/when-odrerir.2.adapter +0 -1
- package/.agents/state/procevent-inbox/when-odrerir.2.result +0 -5
- package/.agents/state/procevent-inbox/when-odrerir.3.adapter +0 -1
- package/.agents/state/procevent-inbox/when-odrerir.3.result +0 -5
- package/.agents/state/procevent-inbox/when-odrerir.4.adapter +0 -1
- package/.agents/state/procevent-inbox/when-odrerir.4.result +0 -8
- package/.agents/state/procevent-inbox/when-odrerir.5.adapter +0 -1
- package/.agents/state/procevent-inbox/when-odrerir.5.result +0 -8
- package/.agents/state/procevent-inbox/when-sessrumnir-cloth.1.adapter +0 -1
- package/.agents/state/procevent-inbox/when-sessrumnir-cloth.1.result +0 -8
- package/data/learnings.md +0 -33
- package/data/local-models.md +0 -34
- package/data/operator.md +0 -15
- package/data/projects.md +0 -28
- package/data/realm.md +0 -1
- /package/{.agents/state/.wake-queue → assets/reference/state/.last-check} +0 -0
- /package/{.agents/state/procevent-inbox/when-hall-button.1.handled → assets/reference/state/.last-heartbeat} +0 -0
- /package/{.agents/state/procevent-inbox/when-hall-button.2.handled → assets/reference/state/.last-watcher-beat} +0 -0
- /package/{.agents/state/procevent-inbox/when-odrerir.1.handled → assets/reference/state/.main-eligible-rows.tmp.Exxm82} +0 -0
- /package/{.agents/state/procevent-inbox/when-odrerir.2.handled → assets/reference/state/.main-eligible-rows.tmp.p2HMKo} +0 -0
- /package/{.agents/state/procevent-inbox/when-odrerir.3.handled → assets/reference/state/.wake-queue} +0 -0
- /package/{.agents/state/procevent-inbox/when-odrerir.4.handled → assets/reference/state/.wake-rows.consume.BcqXSq} +0 -0
- /package/{.agents/state/procevent-inbox/when-odrerir.5.handled → assets/reference/state/.wake-rows.consume.NDZZei} +0 -0
- /package/{.agents/state/procevent-inbox/when-sessrumnir-cloth.1.handled → assets/reference/state/.wake-rows.consume.VGkhYm} +0 -0
package/bin/ymir-install.sh
CHANGED
|
@@ -304,7 +304,12 @@ step_apps() {
|
|
|
304
304
|
esac
|
|
305
305
|
local reg="$HOARD/identity/projects.yaml"
|
|
306
306
|
if [ ! -r "$reg" ]; then
|
|
307
|
-
|
|
307
|
+
# The fork path: no private hoard — fall back to the PUBLIC app map so a
|
|
308
|
+
# fresh clone still pulls the five surfaces (config/app-repos.yaml).
|
|
309
|
+
reg="$ROOT/config/app-repos.yaml"
|
|
310
|
+
fi
|
|
311
|
+
if [ ! -r "$reg" ]; then
|
|
312
|
+
add apps SKIP "no app registry — neither the hoard's projects.yaml nor config/app-repos.yaml"
|
|
308
313
|
return 0
|
|
309
314
|
fi
|
|
310
315
|
# Parse blocks that carry `repo: apps/<path>` and a `git:` inline dict.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zerwiz/ymir",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.26",
|
|
4
4
|
"description": "Ymir \u2014 the single-tenant agent operating system. Omarchy-first, host-aware, self-healing.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://github.com/zerwiz/ymir",
|
|
@@ -73,4 +73,4 @@
|
|
|
73
73
|
"@zerwiz/sessrumnir": "^0.1.10",
|
|
74
74
|
"@zerwiz/smidja-factory": "^0.1.3"
|
|
75
75
|
}
|
|
76
|
-
}
|
|
76
|
+
}
|
package/scripts/start.sh
CHANGED
|
@@ -289,15 +289,6 @@ echo "$PID" > "$PID_FILE"
|
|
|
289
289
|
# Wait for the port to answer (max ~15s), then say what is true.
|
|
290
290
|
for _ in $(seq 1 30); do
|
|
291
291
|
if curl -s -o /dev/null "http://127.0.0.1:${PORT}/"; then
|
|
292
|
-
# The windows — the raise opens all four when a display is present, so
|
|
293
|
-
# 'ymir raise' stands the whole hall: the high seat, the board, the
|
|
294
|
-
# smithy's eye, and the seat-hall.
|
|
295
|
-
if [ -n "${WAYLAND_DISPLAY:-${DISPLAY:-}}" ]; then
|
|
296
|
-
"$SCRIPT_DIR/electron.sh" start --view hlidskjalf >/dev/null 2>&1 &
|
|
297
|
-
"$SCRIPT_DIR/electron.sh" start --view odrerir >/dev/null 2>&1 &
|
|
298
|
-
"$SCRIPT_DIR/electron.sh" start --view smidja >/dev/null 2>&1 &
|
|
299
|
-
"$ROOT/bin/ymir.js" sessrumnir >/dev/null 2>&1 &
|
|
300
|
-
fi
|
|
301
292
|
echo "Hlidskjalf raised (pid $PID) → http://127.0.0.1:${PORT}/"
|
|
302
293
|
echo "Logs: $LOG"
|
|
303
294
|
exit 0
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# config/agents.yaml.example — TEMPLATE for the Allfather's personal setup.
|
|
2
|
-
#
|
|
3
|
-
# Installation copies this to config/agents.yaml when none exists
|
|
4
|
-
# (bin/ymir-install.sh step: host) — or run: bin/agents-config.sh init
|
|
5
|
-
# Edit config/agents.yaml, then: bin/agents-config.sh apply
|
|
6
|
-
# config/agents.yaml is gitignored: it is YOURS, private, and pushable to a
|
|
7
|
-
# private repo. Override its path with YMIR_AGENTS_YAML=/path/to/yours.yaml.
|
|
8
|
-
# Any agent without its own `model:` inherits `default_model`.
|
|
9
|
-
|
|
10
|
-
version: 1
|
|
11
|
-
|
|
12
|
-
# The harness is chosen by where the model lives — local through pi, online
|
|
13
|
-
# through opencode. An agent may still name `harness:` to override the rule.
|
|
14
|
-
harness:
|
|
15
|
-
local: pi # a model on a local provider runs through pi
|
|
16
|
-
online: opencode # a hosted model runs through opencode
|
|
17
|
-
local_providers: [llama.cpp, llama-cpp, lmstudio]
|
|
18
|
-
# The same local server is named differently per harness; translate on the way.
|
|
19
|
-
providers:
|
|
20
|
-
llama.cpp: { pi: llama-cpp }
|
|
21
|
-
|
|
22
|
-
# The fallback smith for any agent that does not name a model.
|
|
23
|
-
default_model: opencode-go/deepseek-v4.1-flash
|
|
24
|
-
|
|
25
|
-
# Local, keyless model servers. `apply` writes these into the project harness
|
|
26
|
-
# config (opencode.json) so a model listed here is immediately usable. A bare
|
|
27
|
-
# alias (no @quant) is auto-resolved against the server's /v1/models.
|
|
28
|
-
providers:
|
|
29
|
-
llama.cpp:
|
|
30
|
-
npm: "@ai-sdk/openai-compatible"
|
|
31
|
-
name: "llama-server (local)"
|
|
32
|
-
base_url: "http://127.0.0.1:8080/v1"
|
|
33
|
-
models:
|
|
34
|
-
# A local llama.cpp router needs the EXACT served id (the @quant suffix);
|
|
35
|
-
# `apply` resolves the bare alias below to the id the server reports.
|
|
36
|
-
- frontend-design-expert-8b
|
|
37
|
-
|
|
38
|
-
# agent name -> { model, harness?, primary? }. Omit model to inherit
|
|
39
|
-
# default_model. Omit harness to follow the local/online rule above.
|
|
40
|
-
# `primary: true` marks the agent runnable directly (mode: all), not only
|
|
41
|
-
# dispatchable by another agent.
|
|
42
|
-
agents:
|
|
43
|
-
brokk: { model: opencode-go/deepseek-v4.1-flash }
|
|
44
|
-
# Hnoss the Shaper runs local (no cloud key) -> pi, and is directly runnable.
|
|
45
|
-
hnoss: { model: "llama.cpp/frontend-design-expert-8b", primary: true }
|
|
46
|
-
sindri: { model: opencode-go/deepseek-v4.1-flash }
|
|
47
|
-
bragi: { model: opencode-go/deepseek-v4.1-flash }
|
|
48
|
-
huginn: { model: opencode-go/deepseek-v4.1-flash }
|
|
49
|
-
kvasir: { model: opencode-go/deepseek-v4.1-flash }
|
|
50
|
-
mimir: { model: opencode-go/deepseek-v4.1-flash }
|
|
51
|
-
snotra: { model: opencode-go/deepseek-v4.1-flash }
|
|
52
|
-
forseti: { model: opencode-go/deepseek-v4.1-flash }
|
|
53
|
-
galdr: { model: opencode-go/deepseek-v4.1-flash }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
11
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
pending:downtime:2358634.1789341699.Q5Ycld
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
when
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
when
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
when
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
when
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
when
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
when
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
when
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
when
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
when: when-sessrumnir-cloth
|
|
2
|
-
status: fired
|
|
3
|
-
detail: the condition held and the action exited 0
|
|
4
|
-
condition_polls: 105
|
|
5
|
-
action_exit: 0
|
|
6
|
-
output:
|
|
7
|
-
eindri-acclaim[1]{agent,detail}:
|
|
8
|
-
"sessrumnir-cloth","left working (herdr state flipped; read the pane: herdr agent read sessrumnir-cloth)"
|
package/data/learnings.md
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Operational Learnings
|
|
2
|
-
|
|
3
|
-
## Session Start Observations
|
|
4
|
-
|
|
5
|
-
### Initial Boot Process
|
|
6
|
-
- Realm environment not yet loaded
|
|
7
|
-
- Operator profile established but not fully integrated
|
|
8
|
-
- Data directories need to be set up before proceeding with full initialization
|
|
9
|
-
|
|
10
|
-
### Key Actions Taken
|
|
11
|
-
1. Created operator.md file (identity and access details)
|
|
12
|
-
2. Created projects.md file (project structure and inventory)
|
|
13
|
-
3. Initialized learnings.md for session-specific knowledge capture
|
|
14
|
-
|
|
15
|
-
## Model Bridge Status
|
|
16
|
-
- Not yet established: waiting for model bridge connection to be configured or loaded
|
|
17
|
-
- Next steps involve setting up communication with the LLM models through the harness adapter
|
|
18
|
-
|
|
19
|
-
## Supervision Status
|
|
20
|
-
- Supervision needs to be armed via installed harness adapter
|
|
21
|
-
- This is a key step in the bootstrap process that allows Brokk to manage its own operations
|
|
22
|
-
|
|
23
|
-
## Next Steps
|
|
24
|
-
1. Verify realm environment setup (svartalfaheim/wayof/.env.realm)
|
|
25
|
-
2. Initialize model bridge connection
|
|
26
|
-
3. Complete supervision arm procedure through harness adapter
|
|
27
|
-
4. Establish proper agent orchestration flow
|
|
28
|
-
## Realm Seat (2026-09-14)
|
|
29
|
-
- The realm is **wayof** (`data/realm.md`); `svartalfaheim/wayof/` is seated —
|
|
30
|
-
persona (AGENTS.md), HOOD.md map, 9 company cards, five workspace branches,
|
|
31
|
-
`.env.realm` present. The session digest prints the hood holdings.
|
|
32
|
-
- Model bridge, well bridge, and supervision are all up — earlier "next steps"
|
|
33
|
-
are fulfilled; stale notes above predate the seat.
|
package/data/local-models.md
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# Local models
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
<!-- model-hardware:begin -->
|
|
5
|
-
## This machine
|
|
6
|
-
- **GPU:** NVIDIA GeForce RTX 3050 Ti Laptop GPU, 4096 MiB
|
|
7
|
-
- **CPU:** AMD Ryzen 9 5980HS with Radeon Graphics
|
|
8
|
-
- **RAM:** 30Gi
|
|
9
|
-
|
|
10
|
-
## The baseline
|
|
11
|
-
- **llama.cpp** (llama-server / llama-swap) is the fastest local engine on the GPU —
|
|
12
|
-
build/run the CUDA build; keep K and V the same KV type (q8_0).
|
|
13
|
-
- **Coding wants >= 80000 context.** Measure the real ceiling: load more until a
|
|
14
|
-
request OOMs, then drop one step (ctx is per-model).
|
|
15
|
-
- **Bench to the maximum:** load the `.agents/skills/modeltesting` skill, then
|
|
16
|
-
`bin/models-detect.sh --write` to register what serves.
|
|
17
|
-
<!-- model-hardware:end -->
|
|
18
|
-
|
|
19
|
-
## Best settings for THIS hardware (researched 2026-09-13)
|
|
20
|
-
- **VRAM is the wall (4 GB).** Dense 7B+ mostly will not fit; prefer **MoE models**
|
|
21
|
-
and push experts to CPU with `--n-cpu-moe <N>` (attention + always-active layers
|
|
22
|
-
stay on GPU). Raise N until it loads, then step back one.
|
|
23
|
-
- **Let the build fit itself first:** modern llama.cpp (2026-02+) recommends
|
|
24
|
-
`--fit` with `--n-gpu-layers auto` over hand-picked `-ngl`/`-ot`; it distributes
|
|
25
|
-
layers across GPU and CPU, including MoE expert offload. Hand-tune only if unfit.
|
|
26
|
-
- **KV:** `q8_0` for both K and V (K == V is required for the CUDA flash-attn kernel).
|
|
27
|
-
- **Flash attention:** `-fa auto`. When context is the pressure, `-nkvo` moves the
|
|
28
|
-
KV cache to CPU RAM so the GPU can hold more layers.
|
|
29
|
-
- **Context:** for coding aim >= 80000, but on 4 GB spend VRAM on layers first and
|
|
30
|
-
grow ctx until a *real request* OOMs, then drop one step. Reference (6 GB, MoE):
|
|
31
|
-
`--n-cpu-moe 41 --ctx-size 131072`; here start higher on `--n-cpu-moe` or lower ctx.
|
|
32
|
-
- **Measure, do not guess:** bench with the `.agents/skills/modeltesting` skill and
|
|
33
|
-
record prefill/decode and peak VRAM per model in `backends-benchmark.md` §10.5.
|
|
34
|
-
- Sources: `llama.cpp` gpu-strategy-guide (2026-02-23), `aaronbolton/llamacpp-low-vram`.
|
package/data/operator.md
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# Operator Profile
|
|
2
|
-
|
|
3
|
-
## Identity
|
|
4
|
-
- Name: zerwiz
|
|
5
|
-
- Role: Allfather (Odin)
|
|
6
|
-
- Realm: wayof
|
|
7
|
-
|
|
8
|
-
## Access Details
|
|
9
|
-
- Primary terminal access: zsh/bash
|
|
10
|
-
- SSH key: present
|
|
11
|
-
- Authentication method: local user account
|
|
12
|
-
|
|
13
|
-
## Communication Preferences
|
|
14
|
-
- Direct messaging preferred for operational decisions
|
|
15
|
-
- Regular syncs via daily briefing at 07:00 UTC
|
package/data/projects.md
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# Projects Inventory
|
|
2
|
-
|
|
3
|
-
## Active Projects
|
|
4
|
-
|
|
5
|
-
### Ymir Platform Development
|
|
6
|
-
- Status: Initial setup
|
|
7
|
-
- Description: Core development of the Ymir agent platform
|
|
8
|
-
- Owner: zerwiz (Allfather)
|
|
9
|
-
- Priority: High
|
|
10
|
-
|
|
11
|
-
## Project Structure
|
|
12
|
-
|
|
13
|
-
Each project follows the naming convention:
|
|
14
|
-
{team}-{project-name}
|
|
15
|
-
|
|
16
|
-
Projects are tracked in svartalfaheim/{realm}/workspace/development/
|
|
17
|
-
|
|
18
|
-
## Onboarding Process
|
|
19
|
-
1. Define scope and requirements
|
|
20
|
-
2. Establish team structure
|
|
21
|
-
3. Set up monitoring and alerting
|
|
22
|
-
4. Deploy initial configuration
|
|
23
|
-
5. Validate integration
|
|
24
|
-
|
|
25
|
-
## Resources
|
|
26
|
-
- Git repository: main Ymir platform repo
|
|
27
|
-
- CI/CD pipeline: configured via .github/workflows/
|
|
28
|
-
- Monitoring: integrated with Mimirsbrunn
|
package/data/realm.md
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
wayof
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{.agents/state/procevent-inbox/when-odrerir.3.handled → assets/reference/state/.wake-queue}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|