@miadi/chronicle-tui 0.4.2 → 0.6.0

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/README.md CHANGED
@@ -1,8 +1,11 @@
1
1
  # @miadi/chronicle-tui
2
2
 
3
- Browse the Miadi Chronicle from a terminal. `miadi-chronicle` lists every
4
- episode, filters them as you type, searches their text, reads a vessel's
5
- files, and opens the room, the wheel or the vessel.
3
+ Browse the Miadi Chronicle from a terminal, and take part in its talking
4
+ circles. `miadi-chronicle` lists every episode, filters them as you type,
5
+ searches their text, reads a vessel's files, and opens the room, the wheel or
6
+ the vessel. With your person token it enters the circles you sit in: you read
7
+ the turns and the diary, speak, witness, write in the diary and close a
8
+ ceremony, as yourself.
6
9
 
7
10
  ```bash
8
11
  npm i -g @miadi/chronicle-tui
@@ -22,14 +25,16 @@ On Termux, install with `--ignore-scripts`. Node 22 or later.
22
25
  | Tab | title filter or full-text search. In an open file: the next reference (Shift+Tab: the previous one) |
23
26
  | ↑ ↓ `j` `k`, PgUp PgDn, `g` `G` | move |
24
27
  | Enter, `l`, → | open: an episode's files, a file, a search hit |
25
- | Enter on a reference | a chronicle reference opens that episode. A ceremony or circle shows its doors |
28
+ | Enter on a reference | a chronicle reference opens that episode. A ceremony or circle opens as your seat allows (else its pages) |
26
29
  | Esc, `h`, ← | back |
27
30
  | `o` | the doors of the reference, file or episode in focus: room (local, tailnet, public), wheel, vessel. Enter opens one |
28
31
  | `r` | the phone door as a QR code (`i` inverts it for a light terminal) |
29
32
  | `p` | the five-stage proof (git and the wheel, on demand) |
30
33
  | `a` | the episode's attention items, Open and History (Tab), each with what it cites. Enter reads one; Enter again answers an open one |
31
34
  | `!` | the chronicle's attention board: every open item, newest asked first, filtered by `/`. `e` on an item opens its episode |
35
+ | `c` | talking circles: the ceremonies held in the episode in focus, the circles gathered for it, yours, the others |
32
36
  | `v` | hold a Miadi review in the episode (writer token) |
37
+ | `L` | relate episodes: `L` marks the one in focus, move to the other, `L` again, say why (relates to or continues from, one way or both). Esc forgets the mark |
33
38
  | `?` | all keys · `q` quits |
34
39
 
35
40
  Under 90 columns (a phone, a narrow split) one pane shows at a time: the list
@@ -71,20 +76,58 @@ miadi-chronicle --url https://miadi.tail3b11eb.ts.net
71
76
  visitor sees no `community` episode and nothing under `captures/` or
72
77
  `ceremonies/`. A reader the app names sees community episodes (◇); a reader
73
78
  the app lets write sees the room's private folders too.
74
- - **A ceremony or circle reference** opens as a card for a person the app
75
- seats (`GET /api/ceremony/{id}`, `GET /api/circles/{id}`): its kind,
76
- direction, intention, episode or facilitator, and what your seat may do.
77
- Never its turns. Otherwise it shows its pages, and never the wheel's record.
79
+ - **A ceremony or circle reference** opens as the ceremony or circle itself
80
+ for a person the app seats, as its page would. Otherwise it shows its pages,
81
+ and never the wheel's record.
78
82
  - **Attention** works as in the web room, through `@miadi/attention-core`: the
79
83
  board (`!`) and each episode's panel (`a`) read the vessels exactly as the
80
84
  room does; an answer is checked the same way and posted to
81
85
  `POST /api/chronicle/attention`, and the wheel is reported, never assumed.
82
86
  - **A review** (`v`) posts to `POST /api/chronicle/episodes/{ref}/reviews`;
83
87
  with your person token its talking circle opens in your name.
88
+ - **Lineage** (`L`) is the room's lineage form
89
+ (`POST /api/chronicle/episodes/{ref}/lineage`): the door writes
90
+ `episode.yaml`, puts the edge and its words on the wheel, and lands the
91
+ commit. Offered when the episode door says it would take the write
92
+ (`capabilities.mint`). The episode card shows what each episode continues
93
+ from and relates to.
84
94
 
85
95
  Write actions declare `effect: "write"` and are offered only when the app said
86
96
  it would record them.
87
97
 
98
+ ## Talking circles
99
+
100
+ `c` opens the circles, from the episode in focus: the ceremonies held in it
101
+ that you may read, the circles gathered for it, the circles you sit in, then
102
+ the others. It is the web's `/circles` and `/ceremony/{id}` pages, through
103
+ their routes:
104
+
105
+ | where | key | does | route |
106
+ |---|---|---|---|
107
+ | circles | Enter | enter a ceremony, or a circle | `GET /api/circles`, `GET /api/chronicle/episodes/{ref}/wheel` |
108
+ | a circle | Enter, `n` | enter a ceremony; open one (kind, direction, and the episode it binds to) | `GET /api/circles/{id}`, `POST /api/circles/{id}/ceremonies` |
109
+ | a ceremony | Tab | its turns, or its diary | `GET /api/ceremony/{id}`, read again every 10 s |
110
+ | a ceremony | `s` | speak a turn | `POST /api/ceremony/{id}/turns` |
111
+ | a ceremony | `w` | witness the selected turn (not your own, once) | `POST …/turns/{turn}/witness` |
112
+ | a ceremony | `d` | write in the diary, in a phase and a kind | `POST /api/ceremony/{id}/diary` |
113
+ | a ceremony | `x` | close it, with what the circle learned | `POST /api/ceremony/{id}/close` |
114
+ | a ceremony | `e`, `o` | its episode; its pages | |
115
+
116
+ - **Each act is yours.** A turn, a witness, a diary entry, a close and a new
117
+ ceremony go with `MIADI_PERSON_TOKEN` as the only bearer: those routes take
118
+ the act from whoever the bearer is and refuse the writer token. Without a
119
+ person token, `c` says what to set and sends nothing.
120
+ - **Offered as the page offers it.** Each key appears only when the app's
121
+ `can` says the route would accept it from you now: a seat in the circle and
122
+ the role's permission, an open ceremony, a facilitator to close.
123
+ - **A turn is a person's words.** It shows inside its ceremony to a reader the
124
+ app lets read that ceremony, never in a list (jgwill/Miadi#680, D3). Its
125
+ text passes the same sanitizer as every file.
126
+ - **Typing a turn.** Enter sends, Esc cancels. A paste arrives whole, line
127
+ breaks kept. ↑↓ change a choice (a diary phase, a direction) and Tab moves
128
+ between choices. Learnings for a close go one per line, or separated by
129
+ ` | `.
130
+
88
131
  ## Safe to point at any chronicle
89
132
 
90
133
  Chronicle files are written by many agents and people. Every string the
@@ -106,10 +149,11 @@ The browser holds no chronicle rules of its own:
106
149
  | references in a file: `miadi-chronicle:`, `miadi-ceremony:`, `miadi-circle:`, `{{ … }}` | `@miadi/inquiry-weave` (`findTextReferences`) |
107
150
  | the doors, as OSC 8 links | `@miadi/inquiry-weave` (`resolveForTerminal`, `resolveWheelRefForTerminal`) |
108
151
  | the five-stage proof | `@miadi/inquiry-weave` (`episodeDoorStatus`) |
152
+ | circles, ceremonies, turns and the diary | the Miadi app's circle routes, as the person; closings folded into what they close as the web folds them (`lib/ceremony-view.ts`) |
109
153
 
110
- A ceremony or circle shows its addresses only. Ceremonies are private until
111
- their page sees the reader's seat, so nothing the wheel holds about one is
112
- read here (jgwill/Miadi#680).
154
+ A ceremony or circle is read only through the app, as the person whose seat
155
+ it is. Ceremonies are private until their page sees the reader's seat, so
156
+ nothing is read from the wheel directly (jgwill/Miadi#680).
113
157
 
114
158
  Readings are guesses from keywords in an episode's name and title, and an
115
159
  episode with no keyword reads by its number's turn of the wheel. The detail
@@ -140,6 +184,8 @@ render(<App root={process.env.MIADI_CHRONICLE_ROOT!} actions={[mine]} />)
140
184
 
141
185
  An action that changes anything declares `effect: "write"` and calls the
142
186
  existing door for it (the episode API, inquiry-weave, the ceremony routes),
143
- never the files directly. Version 0.1 registers reading actions only.
187
+ never the files directly. A person's acts inside a ceremony (speak, witness,
188
+ the diary, close) are keys of its overlay, offered where the app's `can`
189
+ allows them.
144
190
 
145
191
  Ref: jgwill/Miadi#706
package/dist/App.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAiD,MAAM,OAAO,CAAA;AAGrE,OAAO,EAIL,KAAK,eAAe,EAGrB,MAAM,cAAc,CAAA;AA0CrB,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;IACpC,kFAAkF;IAClF,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,sEAAsE;IACtE,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC7B;AAoHD,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,qBA+9BlC"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAiD,MAAM,OAAO,CAAA;AAIrE,OAAO,EAML,KAAK,eAAe,EAIrB,MAAM,cAAc,CAAA;AAmErB,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;IACpC,kFAAkF;IAClF,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,sEAAsE;IACtE,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC7B;AAuHD,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,qBAg8ClC"}