@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.
Files changed (105) hide show
  1. package/.agents/bus/messages.json +1 -0
  2. package/.agents/config/agents.machine.example.yaml +16 -0
  3. package/.agents/config/app-repos.yaml +38 -0
  4. package/.agents/skills/galdr-ymirsystem/assets/local-models.md +72 -1
  5. package/.pi/mcp.json +2 -2
  6. package/CHANGELOG.md +42 -2
  7. package/README.md +39 -23
  8. package/assets/reference/state/.branch-eligible-owner +4 -0
  9. package/assets/reference/state/.branch-mirror-cursor +1 -0
  10. package/assets/reference/state/.branch-outcomes-cursor +1 -0
  11. package/assets/reference/state/.branch-session +1 -0
  12. package/assets/reference/state/.count-default_wF_p5 +1 -0
  13. package/assets/reference/state/.count-default_wF_p6 +1 -0
  14. package/assets/reference/state/.count-default_wR_p2 +1 -0
  15. package/assets/reference/state/.count-default_wS_p2 +1 -0
  16. package/assets/reference/state/.count-firstmate_fm-server-knowledge +1 -0
  17. package/assets/reference/state/.hash-default_wF_p5 +1 -0
  18. package/assets/reference/state/.hash-default_wF_p6 +1 -0
  19. package/assets/reference/state/.hash-default_wR_p2 +1 -0
  20. package/assets/reference/state/.hash-default_wS_p2 +1 -0
  21. package/assets/reference/state/.hash-firstmate_fm-server-knowledge +1 -0
  22. package/assets/reference/state/.heartbeat-streak +1 -0
  23. package/assets/reference/state/.inactive-outcome-reconcile +2 -0
  24. package/assets/reference/state/.lock +1 -0
  25. package/assets/reference/state/.pi-branch-extension-loaded +1 -0
  26. package/assets/reference/state/.pi-turnend-extension-loaded +2 -0
  27. package/assets/reference/state/.pi-watch-extension-loaded +2 -0
  28. package/assets/reference/state/.seen-server-knowledge_turn-ended +1 -0
  29. package/assets/reference/state/.session-start-agents-baseline +2 -0
  30. package/assets/reference/state/.session-start-complete +1 -0
  31. package/assets/reference/state/.stale-default_wF_p5 +1 -0
  32. package/assets/reference/state/.stale-default_wR_p2 +1 -0
  33. package/assets/reference/state/.stale-firstmate_fm-server-knowledge +1 -0
  34. package/assets/reference/state/.stale-since-default_wF_p5 +1 -0
  35. package/assets/reference/state/.stale-since-default_wR_p2 +1 -0
  36. package/assets/reference/state/.stale-since-firstmate_fm-server-knowledge +1 -0
  37. package/assets/reference/state/.startup-network.delivered +1 -0
  38. package/assets/reference/state/.startup-network.report +1 -0
  39. package/assets/reference/state/.startup-network.status +10 -0
  40. package/assets/reference/state/.startup-network.timings +6 -0
  41. package/assets/reference/state/.trace-context-effective +1 -0
  42. package/assets/reference/state/.wake-queue.seq +1 -0
  43. package/assets/reference/state/.wake-rows.consume.tR2rTy +0 -0
  44. package/assets/reference/state/.watch-arm-output.3581p6 +0 -0
  45. package/assets/reference/state/.watch-arm-output.3ciDNP +0 -0
  46. package/assets/reference/state/.watch-arm-output.SksR6k +0 -0
  47. package/assets/reference/state/.watch-cycle-exits.log +22 -0
  48. package/assets/reference/state/.watch-deliveries.log +19 -0
  49. package/assets/reference/state/.watch-triage.log +38 -0
  50. package/assets/reference/state/.watch.lock/fm-home +1 -0
  51. package/assets/reference/state/.watch.lock/pid +1 -0
  52. package/assets/reference/state/.watch.lock/pid-identity +1 -0
  53. package/assets/reference/state/.watch.lock/watcher-path +1 -0
  54. package/assets/reference/state/.watch.lock.owner.qqbxmS/fm-home +1 -0
  55. package/assets/reference/state/.watch.lock.owner.qqbxmS/pid +1 -0
  56. package/assets/reference/state/.watch.lock.owner.qqbxmS/pid-identity +1 -0
  57. package/assets/reference/state/.watch.lock.owner.qqbxmS/watcher-path +1 -0
  58. package/assets/reference/state/.watcher-down +1 -0
  59. package/assets/reference/state/branch-outcomes.jsonl +1 -0
  60. package/assets/reference/state/branch-session/2026-09-04T16-49-38-671Z_01a06d53-6b6f-7619-930d-e6dfd9a4a29e.jsonl +211 -0
  61. package/assets/reference/state/home-summary.json +42 -0
  62. package/assets/reference/state/server-knowledge.busy-gen +1 -0
  63. package/assets/reference/state/server-knowledge.busy-state +1 -0
  64. package/assets/reference/state/server-knowledge.herdr-presentation +12 -0
  65. package/assets/reference/state/server-knowledge.meta +18 -0
  66. package/assets/reference/state/server-knowledge.pi-ext.ts +26 -0
  67. package/assets/reference/state/server-knowledge.turn-ended +0 -0
  68. package/bin/ymir-install.sh +6 -1
  69. package/package.json +2 -2
  70. package/scripts/start.sh +0 -9
  71. package/.agents/config/agents.yaml +0 -53
  72. package/.agents/config/tailscale-sync.yaml +0 -9
  73. package/.agents/config/wedge-alarm +0 -3
  74. package/.agents/state/.wake-queue.seq +0 -1
  75. package/.agents/state/.watcher-down +0 -1
  76. package/.agents/state/procevent-inbox/when-hall-button.1.adapter +0 -1
  77. package/.agents/state/procevent-inbox/when-hall-button.1.result +0 -8
  78. package/.agents/state/procevent-inbox/when-hall-button.2.adapter +0 -1
  79. package/.agents/state/procevent-inbox/when-hall-button.2.result +0 -5
  80. package/.agents/state/procevent-inbox/when-odrerir.1.adapter +0 -1
  81. package/.agents/state/procevent-inbox/when-odrerir.1.result +0 -8
  82. package/.agents/state/procevent-inbox/when-odrerir.2.adapter +0 -1
  83. package/.agents/state/procevent-inbox/when-odrerir.2.result +0 -5
  84. package/.agents/state/procevent-inbox/when-odrerir.3.adapter +0 -1
  85. package/.agents/state/procevent-inbox/when-odrerir.3.result +0 -5
  86. package/.agents/state/procevent-inbox/when-odrerir.4.adapter +0 -1
  87. package/.agents/state/procevent-inbox/when-odrerir.4.result +0 -8
  88. package/.agents/state/procevent-inbox/when-odrerir.5.adapter +0 -1
  89. package/.agents/state/procevent-inbox/when-odrerir.5.result +0 -8
  90. package/.agents/state/procevent-inbox/when-sessrumnir-cloth.1.adapter +0 -1
  91. package/.agents/state/procevent-inbox/when-sessrumnir-cloth.1.result +0 -8
  92. package/data/learnings.md +0 -33
  93. package/data/local-models.md +0 -34
  94. package/data/operator.md +0 -15
  95. package/data/projects.md +0 -28
  96. package/data/realm.md +0 -1
  97. /package/{.agents/state/.wake-queue → assets/reference/state/.last-check} +0 -0
  98. /package/{.agents/state/procevent-inbox/when-hall-button.1.handled → assets/reference/state/.last-heartbeat} +0 -0
  99. /package/{.agents/state/procevent-inbox/when-hall-button.2.handled → assets/reference/state/.last-watcher-beat} +0 -0
  100. /package/{.agents/state/procevent-inbox/when-odrerir.1.handled → assets/reference/state/.main-eligible-rows.tmp.Exxm82} +0 -0
  101. /package/{.agents/state/procevent-inbox/when-odrerir.2.handled → assets/reference/state/.main-eligible-rows.tmp.p2HMKo} +0 -0
  102. /package/{.agents/state/procevent-inbox/when-odrerir.3.handled → assets/reference/state/.wake-queue} +0 -0
  103. /package/{.agents/state/procevent-inbox/when-odrerir.4.handled → assets/reference/state/.wake-rows.consume.BcqXSq} +0 -0
  104. /package/{.agents/state/procevent-inbox/when-odrerir.5.handled → assets/reference/state/.wake-rows.consume.NDZZei} +0 -0
  105. /package/{.agents/state/procevent-inbox/when-sessrumnir-cloth.1.handled → assets/reference/state/.wake-rows.consume.VGkhYm} +0 -0
@@ -304,7 +304,12 @@ step_apps() {
304
304
  esac
305
305
  local reg="$HOARD/identity/projects.yaml"
306
306
  if [ ! -r "$reg" ]; then
307
- add apps SKIP "no registryno app repos to pull ($reg)"
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.24",
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,9 +0,0 @@
1
- # The Allfather's machine mesh — hodd + company, peer-to-peer over Tailscale.
2
- machine: omarchy
3
- peers:
4
- - host: zerwiz
5
- paths:
6
- - ~/ymir/hodd/
7
- - ~/ymir/svartalfaheim/
8
- - ~/ymir/data/
9
- include_auth: false
@@ -1,3 +0,0 @@
1
- # The channel the away-mode wedge alarm fires on when an escalation
2
- # cannot be delivered into the pane. See bin/wedge-notify.sh.
3
- desktop
@@ -1 +0,0 @@
1
- 11
@@ -1 +0,0 @@
1
- pending:downtime:2358634.1789341699.Q5Ycld
@@ -1,8 +0,0 @@
1
- when: when-hall-button
2
- status: fired
3
- detail: the condition held and the action exited 0
4
- condition_polls: 2
5
- action_exit: 0
6
- output:
7
- eindri-acclaim[1]{agent,detail}:
8
- "hall-button","report filed at state/eindri-reports/hall-button.md"
@@ -1,5 +0,0 @@
1
- when: when-hall-button
2
- status: ambiguous
3
- detail: the action was already claimed but its outcome was never captured; verify its effect manually before retiring
4
- condition_polls: 0
5
- output:
@@ -1,8 +0,0 @@
1
- when: when-odrerir
2
- status: fired
3
- detail: the condition held and the action exited 0
4
- condition_polls: 2
5
- action_exit: 0
6
- output:
7
- eindri-acclaim[1]{agent,detail}:
8
- "odrerir","report filed at state/eindri-reports/odrerir.md"
@@ -1,5 +0,0 @@
1
- when: when-odrerir
2
- status: ambiguous
3
- detail: the action was already claimed but its outcome was never captured; verify its effect manually before retiring
4
- condition_polls: 0
5
- output:
@@ -1,5 +0,0 @@
1
- when: when-odrerir
2
- status: ambiguous
3
- detail: the action was already claimed but its outcome was never captured; verify its effect manually before retiring
4
- condition_polls: 0
5
- output:
@@ -1,8 +0,0 @@
1
- when: when-odrerir
2
- status: fired
3
- detail: the condition held and the action exited 0
4
- condition_polls: 59
5
- action_exit: 0
6
- output:
7
- eindri-acclaim[1]{agent,detail}:
8
- "odrerir","left working (herdr state flipped; read the pane: herdr agent read odrerir)"
@@ -1,8 +0,0 @@
1
- when: when-odrerir
2
- status: fired
3
- detail: the condition held and the action exited 0
4
- condition_polls: 110
5
- action_exit: 0
6
- output:
7
- eindri-acclaim[1]{agent,detail}:
8
- "odrerir","left working (herdr state flipped; read the pane: herdr agent read odrerir)"
@@ -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.
@@ -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