@zerwiz/ymir 0.1.29 → 0.1.30

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 (2) hide show
  1. package/README.md +92 -178
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,6 +1,5 @@
1
1
  # YMIR — The Single-Tenant Agent Operating System
2
2
 
3
-
4
3
  ---
5
4
 
6
5
  <p align="center">
@@ -29,6 +28,98 @@ no second master but the Allfather's own hand.
29
28
 
30
29
  ---
31
30
 
31
+ ## Install
32
+
33
+ **One command. It installs into a prefix you own, writes the PATH into your shell,
34
+ runs the first setup, and then proves it.**
35
+
36
+ ```bash
37
+ curl -fsSL https://raw.githubusercontent.com/zerwiz/ymir/main/install.sh | bash
38
+ ```
39
+
40
+ **No PATH, no prefix, nothing to configure — run it without installing:**
41
+
42
+ ```bash
43
+ npx @zerwiz/ymir
44
+ ```
45
+
46
+ **Already manage Node and npm yourself:**
47
+
48
+ ```bash
49
+ npm install -g @zerwiz/ymir # then: ymir
50
+ ```
51
+
52
+ ### If `ymir` is "command not found"
53
+
54
+ The command **is** installed — npm put it in its global bin directory, and your shell
55
+ does not look there. That is npm's behaviour, not Ymir's, and it is the most common
56
+ *"it does not work"* in the whole Node ecosystem.
57
+
58
+ ```bash
59
+ npm prefix -g # where npm puts global commands
60
+ ls "$(npm prefix -g)/bin/ymir" # the command is there
61
+ export PATH="$(npm prefix -g)/bin:$PATH" # this shell
62
+ echo 'export PATH="$(npm prefix -g)/bin:$PATH"' >> ~/.bashrc # every shell after
63
+ ```
64
+
65
+ Or skip the question entirely: `npx @zerwiz/ymir` works with no PATH at all.
66
+
67
+ ### If the version never changes
68
+
69
+ An install can *succeed* and change nothing — npm may resolve a cached `latest` and
70
+ report success while the old build stays. Clear it once:
71
+
72
+ ```bash
73
+ npm cache clean --force && npm i -g @zerwiz/ymir@latest --prefer-online
74
+ ```
75
+
76
+ The CLI itself now says when it is out of date, once a day.
77
+
78
+ ### The packages — what is on npm
79
+
80
+ The distro **depends on the four surfaces**, so one command brings the whole
81
+ platform — and each can be installed alone if you want only that hall.
82
+
83
+ ```
84
+ packages[5]{package,what}:
85
+ "@zerwiz/ymir","the distro — the runtime, the doors, the installer, the plan"
86
+ "@zerwiz/hlidskjalf","the high seat — the control plane, the gate and the landing"
87
+ "@zerwiz/odrerir","the live hall — the board on :4322"
88
+ "@zerwiz/smidja-factory","the smithy — the agent factory, its skills and the visualizer on :8437"
89
+ "@zerwiz/sessrumnir","the seat-hall — the desktop where you speak with Brokk"
90
+ ```
91
+
92
+ **Why the smithy is not `@zerwiz/smidja`:** that name was accepted twice by the
93
+ registry and served never; it ships as `@zerwiz/smidja-factory`, which resolves.
94
+
95
+ ### A clone and a package are one tree
96
+
97
+ Ymir runs the same either way; the only difference is where the apps live — a
98
+ clone's `apps/<surface>`, or the package's `node_modules/@zerwiz/<surface>`. One
99
+ resolver (`bin/app-lib.sh`) answers for both, so no script has to care which shape
100
+ it woke in. Colour is for the eye, never for the pipe: `bin/ymir-style.sh` renders
101
+ in the halls' own cloth, and what a pipeline reads on stdout stays plain TOON.
102
+
103
+ ### After it installs — the doors
104
+
105
+ `npm install -g @zerwiz/ymir` puts **two** commands on your PATH: `ymir` and
106
+ `ymir-install`. Everything else is a door on `ymir`, named for the figure whose
107
+ work it does.
108
+
109
+ ```
110
+ ymir first setup: the plan, then your word
111
+ ymir raise | lower lift the hall, or lay it down
112
+ ymir hlidskjalf the high seat's window
113
+ ymir smidja the smithy's board (:8437)
114
+ ymir sessrumnir the seat-hall's window
115
+ ymir heimdall · invite the way in, and letting someone else in
116
+ ymir eir · groa what stands and mending · take the latest and mend forward
117
+ ymir mimir · sense · plan
118
+ ```
119
+
120
+ A name the law has not given a home still answers, once, and tells you the name that
121
+ has it: `ymir doctor` replies *the door is named `ymir eir` now*.
122
+
32
123
  ## The Lore (short version)
33
124
 
34
125
  Ymir is not a theme — the myths are **load-bearing allegory**. Every subsystem is
@@ -637,180 +728,3 @@ resolved from `$YMIR_HOME/secrets/platform.env` at runtime.
637
728
 
638
729
  ---
639
730
 
640
- ## Install
641
-
642
- **One command. It installs into a prefix you own, writes the PATH into your shell,
643
- runs the first setup, and then proves it.**
644
-
645
- ```bash
646
- curl -fsSL https://raw.githubusercontent.com/zerwiz/ymir/main/install.sh | bash
647
- ```
648
-
649
- **No PATH, no prefix, nothing to configure — run it without installing:**
650
-
651
- ```bash
652
- npx @zerwiz/ymir
653
- ```
654
-
655
- **Already manage Node and npm yourself:**
656
-
657
- ```bash
658
- npm install -g @zerwiz/ymir # then: ymir
659
- ```
660
-
661
- ### If `ymir` is "command not found"
662
-
663
- The command **is** installed — npm put it in its global bin directory, and your
664
- shell does not look there. This is npm's behaviour, not Ymir's, and it is the most
665
- common *"it does not work"* in the whole Node ecosystem.
666
-
667
- ```bash
668
- npm prefix -g # where npm puts global commands
669
- ls "$(npm prefix -g)/bin/ymir" # the command is there
670
- export PATH="$(npm prefix -g)/bin:$PATH" # this shell
671
- echo 'export PATH="$(npm prefix -g)/bin:$PATH"' >> ~/.bashrc # every shell after
672
- ```
673
-
674
- **Or skip the question entirely** — `npx @zerwiz/ymir` works with no PATH at all,
675
- and the one-liner above sets it once.
676
-
677
- ### If the version never changes
678
-
679
- An install can *succeed* and change nothing: npm may resolve a cached `latest` and
680
- report success while the old build stays. Clear it once:
681
-
682
- ```bash
683
- npm cache clean --force && npm i -g @zerwiz/ymir@latest --prefer-online
684
- ```
685
-
686
- The CLI itself now says when it is out of date, once a day.
687
-
688
- **Who can install this today.** The Ymir distro is private while it is young —
689
- so `curl`, `npx` and `git clone` work for the author and invited users, not for
690
- the public (an unknown clone returns 404). If you would like access, ask:
691
- **zerwiz.org**. When the distro opens, this note goes away and the four commands
692
- above become open to everyone.
693
-
694
- **Early adopters and contributors can install now — but it is rough.** Expect
695
- sharp edges: the installer is honest about what it cannot do, and says so rather
696
- than pretending. Bring a Linux host (or let the Windows/macOS bootstraps give
697
- you one — see *Bringing your own machine* above), and read what the installer
698
- prints before you trust it.
699
-
700
- The npm package carries the runtime's `bin/` scripts and the installer; every
701
- `npm update -g @zerwiz/ymir` re-runs the same self-healing setup that provisions
702
- prerequisites, engines, and the Hlidskjalf seat. `@zerwiz/*` are the app
703
- packages (Hlidskjalf, Óðrerir, Sessrúmnir, Smíðja) — one per app.
704
-
705
- Private data never touches npm — all user data lives at `$YMIR_HOME` (the hoard
706
- at `hodd/` and the realms at `svartalfaheim/`) and syncs via the user's
707
- **private** GitHub repo, never a public one.
708
-
709
- ### After it installs — the doors
710
-
711
- `npm install -g @zerwiz/ymir` puts **two** commands on your PATH: `ymir` and
712
- `ymir-install`. Everything else is a door on `ymir`, named for the figure whose
713
- work it does — because a great many doors either open or they do not, and a name
714
- that says whose hand is on it is the difference between guessing and knowing.
715
-
716
- ```
717
- ymir first setup: the plan, then your word
718
- ymir raise | lower lift the hall, or lay it down
719
- ymir hlidskjalf the high seat's window
720
- ymir smidja the smithy's board (:8437) — build · start · stop · status
721
- ymir sessrumnir the seat-hall's window
722
- ymir heimdall the way in — your credential (status · set · github)
723
- ymir invite let someone else in — mint · list · revoke
724
- ymir eir what stands, and mend what does not
725
- ymir groa [migrate] take the latest, and mend this home forward
726
- ymir mimir · sense · plan
727
- ```
728
-
729
- A name the law has not given a home still answers, once, and tells you the name
730
- that has it: `ymir doctor` replies *the door is named `ymir eir` now*.
731
-
732
- **A long hour says so, in its own voice.** The installer opens with the plan and,
733
- when the work will take a while, tells you plainly:
734
-
735
- ```
736
- ◆ much moves the halls are being stood up for the first time
737
- this hour is long, and nothing of yours is lost in it —
738
- roots come home, shapes are re-cut, names are set true again.
739
- Your patience is noted, and it is earned.
740
- ```
741
-
742
- ### "`ymir`: command not found" — it is almost always PATH
743
-
744
- The command is installed; npm puts it in a directory your shell may not look in.
745
- The package declares it (`bin: {ymir, ymir-install}`), so this is not a missing
746
- file — it is a missing path.
747
-
748
- ```bash
749
- npm prefix -g # where npm puts global packages (e.g. ~/.npm-global)
750
- ls "$(npm prefix -g)/bin/ymir" # the command is there
751
- export PATH="$(npm prefix -g)/bin:$PATH" # this session
752
- echo 'export PATH="$(npm prefix -g)/bin:$PATH"' >> ~/.bashrc # every session after
753
- ```
754
-
755
- On macOS with Homebrew, npm's prefix is usually `/opt/homebrew` and already on
756
- the path; on Linux a global install as an ordinary user lands under `~/.npm-global`
757
- (or whatever `npm config get prefix` says), which is exactly the directory that is
758
- easy to miss. Windows uses `%APPDATA%\npm`.
759
-
760
- **And if the install itself is refused** — a `EACCES` on `/usr/lib/node_modules` —
761
- do not reach for `sudo`: point npm at a prefix you own once, and every Ymir
762
- install afterwards is painless.
763
-
764
- ```bash
765
- npm config set prefix "$HOME/.npm-global"
766
- export PATH="$HOME/.npm-global/bin:$PATH"
767
- npm install -g @zerwiz/ymir
768
- ```
769
-
770
- ### The packages — what is on npm
771
-
772
- Six names were published; five serve. The distro **depends on the four
773
- surfaces**, so one command brings the whole platform — and each can be installed
774
- alone if you want only that hall.
775
-
776
- ```
777
- packages[5]{package,what,live}:
778
- "@zerwiz/ymir","the distro — the runtime, the doors, the installer, the plan","0.1.28"
779
- "@zerwiz/hlidskjalf","the high seat — the control plane, the gate and the landing","0.1.1"
780
- "@zerwiz/odrerir","the live hall — the board on :4322","0.1.1"
781
- "@zerwiz/smidja-factory","the smithy — the agent factory, its skills and the visualizer on :8437","0.1.1"
782
- "@zerwiz/sessrumnir","the seat-hall — the desktop where you speak with Brokk","0.1.10"
783
- ```
784
-
785
- ```bash
786
- npm install -g @zerwiz/ymir # the distro AND the four surfaces (dependencies)
787
- npm install -g @zerwiz/hlidskjalf # or one hall on its own
788
- ```
789
-
790
- **Why the smithy's name is not `@zerwiz/smidja`.** It was published under that
791
- name and the registry accepted it twice — `0.1.0`, then `0.1.1` — while serving
792
- neither: the package document answered 404, the website 403, and a republish was
793
- refused as *already published*. The name was retired and the smithy ships as
794
- **`@zerwiz/smidja-factory`**, which resolves. A second look before publishing
795
- costs less than explaining a name that never worked.
796
-
797
- ### Both shapes — a clone and a package are one tree
798
-
799
- Ymir runs the same whether you **cloned** it or **installed** it from npm. The
800
- apps are the difference, and only in where they live:
801
-
802
- | | a clone | an npm install |
803
- |---|---|---|
804
- | the surfaces | `apps/hlidskjalf` · `odrerir` · `sessrumnir` · `smidja-factory` | `node_modules/@zerwiz/hlidskjalf` · `odrerir` · `sessrumnir` · `smidja-factory` |
805
- | how they got there | the registry's `repo: apps/<path>` block clones each | declared as dependencies of the distro |
806
-
807
- One resolver (`bin/app-lib.sh`) answers for both, so a script never has to care
808
- which shape it woke in — and the same is true of the smithy (`bin/smidja-lib.sh`)
809
- and of a desktop shell's runtime (`bin/electron-lib.sh`). The plan tells you which
810
- surfaces are present, which are declared but not yet fetched, and which have no
811
- package at all.
812
-
813
- **Colour is for the eye, never for the pipe.** `bin/ymir-style.sh` renders in the
814
- halls' own cloth — bone for words, bronze for what acts, steel for what stands,
815
- blood for what is wrong — and only when a human is watching (a terminal, no
816
- `NO_COLOR`). What a pipeline reads on stdout stays plain TOON.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerwiz/ymir",
3
- "version": "0.1.29",
3
+ "version": "0.1.30",
4
4
  "description": "Ymir — the single-tenant agent operating system. One command: curl -fsSL https://raw.githubusercontent.com/zerwiz/ymir/main/install.sh | bash · or: npx @zerwiz/ymir · or: npm i -g @zerwiz/ymir (if `ymir` is not found, the README has the three-line PATH cure)",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/zerwiz/ymir",