@nervur-org/dock 0.3.1 → 0.4.1

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 (212) hide show
  1. package/GETTING_STARTED.md +23 -13
  2. package/{beings/GLOSSARY.md → GLOSSARY.md} +3 -3
  3. package/NOTICE +1 -1
  4. package/README.md +20 -16
  5. package/{beings/WORLDS.md → WORLDS.md} +6 -4
  6. package/api/route.ts +3 -3
  7. package/beings/avatar.ts +2 -2
  8. package/beings/carry.ts +2 -2
  9. package/beings/clock.ts +2 -2
  10. package/beings/courier.ts +2 -2
  11. package/beings/desk.ts +2 -2
  12. package/beings/doorbell.ts +2 -2
  13. package/beings/envoy.ts +2 -2
  14. package/beings/join.ts +2 -2
  15. package/beings/link.ts +5 -5
  16. package/beings/look.ts +1 -1
  17. package/beings/porter.ts +2 -2
  18. package/beings/presence.ts +1 -1
  19. package/beings/setup.ts +3 -3
  20. package/beings/side.ts +2 -2
  21. package/beings/user.ts +2 -2
  22. package/beings/way.ts +1 -1
  23. package/cli/client.ts +6 -6
  24. package/cli/daemon.ts +7 -7
  25. package/cli/estate/{quo.service → nervur.service} +12 -12
  26. package/cli/estate/org.nervur.plist +44 -0
  27. package/cli/estate.ts +6 -6
  28. package/cli/{quo.ts → nervur.ts} +43 -37
  29. package/cli/pilot.ts +3 -3
  30. package/cli/stand.ts +3 -3
  31. package/dist/api/route.d.ts +2 -2
  32. package/dist/api/route.js +2 -2
  33. package/dist/beings/avatar.d.ts +1 -1
  34. package/dist/beings/avatar.js +1 -1
  35. package/dist/beings/carry.d.ts +2 -2
  36. package/dist/beings/carry.js +1 -1
  37. package/dist/beings/clock.d.ts +2 -2
  38. package/dist/beings/clock.js +1 -1
  39. package/dist/beings/courier.d.ts +2 -2
  40. package/dist/beings/courier.js +1 -1
  41. package/dist/beings/desk.d.ts +3 -3
  42. package/dist/beings/desk.js +1 -1
  43. package/dist/beings/doorbell.d.ts +3 -3
  44. package/dist/beings/doorbell.js +1 -1
  45. package/dist/beings/envoy.d.ts +2 -2
  46. package/dist/beings/envoy.js +1 -1
  47. package/dist/beings/join.d.ts +2 -2
  48. package/dist/beings/link.d.ts +2 -2
  49. package/dist/beings/link.js +3 -3
  50. package/dist/beings/look.d.ts +1 -1
  51. package/dist/beings/porter.d.ts +2 -2
  52. package/dist/beings/porter.js +1 -1
  53. package/dist/beings/presence.d.ts +1 -1
  54. package/dist/beings/setup.d.ts +1 -1
  55. package/dist/beings/side.d.ts +1 -1
  56. package/dist/beings/side.js +1 -1
  57. package/dist/beings/user.d.ts +3 -3
  58. package/dist/beings/user.js +1 -1
  59. package/dist/beings/way.d.ts +1 -1
  60. package/dist/cli/client.js +4 -4
  61. package/dist/cli/daemon.d.ts +1 -1
  62. package/dist/cli/daemon.js +6 -6
  63. package/dist/cli/estate/{quo.service → nervur.service} +12 -12
  64. package/dist/cli/estate/org.nervur.plist +44 -0
  65. package/dist/cli/estate.js +6 -6
  66. package/dist/cli/{quo.js → nervur.js} +43 -37
  67. package/dist/cli/stand.d.ts +2 -2
  68. package/dist/dock/agents.d.ts +1 -1
  69. package/dist/dock/agents.js +1 -1
  70. package/dist/dock/apns.js +1 -1
  71. package/dist/dock/console.d.ts +1 -1
  72. package/dist/dock/dialers.d.ts +2 -2
  73. package/dist/dock/dialers.js +2 -2
  74. package/dist/dock/faculty.d.ts +2 -2
  75. package/dist/dock/faculty.js +1 -1
  76. package/dist/dock/grants.d.ts +1 -1
  77. package/dist/dock/grants.js +1 -1
  78. package/dist/dock/http2.js +1 -1
  79. package/dist/dock/index.d.ts +1 -1
  80. package/dist/dock/index.js +1 -1
  81. package/dist/dock/local.d.ts +2 -2
  82. package/dist/dock/location.d.ts +1 -1
  83. package/dist/dock/notifications.d.ts +1 -1
  84. package/dist/dock/notifications.js +1 -1
  85. package/dist/dock/push.d.ts +1 -1
  86. package/dist/dock/push.js +3 -3
  87. package/dist/dock/service.js +1 -1
  88. package/dist/dock/timer.d.ts +1 -1
  89. package/dist/harbor/browser.d.ts +2 -2
  90. package/dist/harbor/browser.js +4 -4
  91. package/dist/harbor/capacitor.d.ts +1 -1
  92. package/dist/harbor/capacitor.js +1 -1
  93. package/dist/harbor/disk.d.ts +4 -4
  94. package/dist/harbor/disk.js +5 -5
  95. package/dist/harbor/edge/edge.d.ts +2 -2
  96. package/dist/harbor/edge/edge.js +5 -5
  97. package/dist/harbor/edge/exercise.js +8 -8
  98. package/dist/harbor/edge/given.d.ts +1 -1
  99. package/dist/harbor/edge/platform.d.ts +1 -1
  100. package/dist/harbor/edge/storage.d.ts +1 -1
  101. package/dist/harbor/edge/storage.js +2 -2
  102. package/dist/harbor/edge/worker.js +2 -2
  103. package/dist/harbor/files.d.ts +1 -1
  104. package/dist/harbor/files.js +2 -2
  105. package/dist/harbor/http.d.ts +2 -2
  106. package/dist/harbor/http.js +1 -1
  107. package/dist/harbor/idb.d.ts +1 -1
  108. package/dist/harbor/idb.js +0 -0
  109. package/dist/harbor/quo.js +1 -1
  110. package/dist/harbor/seal.js +1 -1
  111. package/dist/harbor/sealed.d.ts +1 -1
  112. package/dist/harbor/sealed.js +4 -4
  113. package/dist/harbor/tauri.d.ts +1 -1
  114. package/dist/harbor/tauri.js +1 -1
  115. package/dist/harbor/ward.d.ts +1 -1
  116. package/dist/human/app.d.ts +2 -2
  117. package/dist/human/door.js +4 -4
  118. package/dist/human/guest.js +1 -1
  119. package/dist/human/html.d.ts +1 -1
  120. package/dist/human/html.js +1 -1
  121. package/dist/human/local.d.ts +1 -1
  122. package/dist/human/mark.js +2 -2
  123. package/dist/human/move.d.ts +2 -2
  124. package/dist/human/move.js +1 -1
  125. package/dist/human/screen.d.ts +1 -1
  126. package/dist/human/screen.js +3 -3
  127. package/dist/human/tab.bundle.txt +32 -32
  128. package/dist/human/tab.js +7 -7
  129. package/dist/human/tree.d.ts +1 -1
  130. package/dist/human/wake.d.ts +2 -2
  131. package/dist/human/wake.js +1 -1
  132. package/dist/human/web.d.ts +1 -1
  133. package/dist/human/web.js +4 -4
  134. package/dist/human/worker.bundle.txt +27 -27
  135. package/dist/human/worker.js +4 -4
  136. package/dist/human/worlds.d.ts +2 -2
  137. package/dist/human/worlds.js +4 -4
  138. package/dist/mcp/agent.d.ts +1 -1
  139. package/dist/mcp/allow.d.ts +1 -1
  140. package/dist/mcp/allow.js +2 -2
  141. package/dist/mcp/oauth.js +1 -1
  142. package/dist/mcp/runner.d.ts +1 -1
  143. package/dist/mcp/server.d.ts +2 -2
  144. package/dist/mcp/server.js +2 -2
  145. package/dock/agents.ts +2 -2
  146. package/dock/apns.ts +1 -1
  147. package/dock/console.ts +1 -1
  148. package/dock/dialers.ts +3 -3
  149. package/dock/faculty.ts +2 -2
  150. package/dock/grants.ts +2 -2
  151. package/dock/http2.ts +1 -1
  152. package/dock/index.ts +3 -3
  153. package/dock/local.ts +1 -1
  154. package/dock/location.ts +1 -1
  155. package/dock/notifications.ts +2 -2
  156. package/dock/push.ts +4 -4
  157. package/dock/service.ts +1 -1
  158. package/dock/timer.ts +1 -1
  159. package/harbor/browser.ts +5 -5
  160. package/harbor/capacitor.ts +2 -2
  161. package/harbor/disk.ts +8 -8
  162. package/harbor/edge/edge.ts +7 -7
  163. package/harbor/edge/exercise.ts +11 -11
  164. package/harbor/edge/given.ts +1 -1
  165. package/harbor/edge/platform.d.ts +1 -1
  166. package/harbor/edge/storage.ts +2 -2
  167. package/harbor/edge/worker.ts +2 -2
  168. package/harbor/edge/wrangler.toml +3 -3
  169. package/harbor/files.ts +2 -2
  170. package/harbor/http.ts +2 -2
  171. package/harbor/idb.ts +0 -0
  172. package/harbor/quo.ts +1 -1
  173. package/harbor/resolve.ts +1 -1
  174. package/harbor/seal.ts +1 -1
  175. package/harbor/sealed.ts +5 -5
  176. package/harbor/tauri.ts +2 -2
  177. package/harbor/ward.ts +1 -1
  178. package/human/app.ts +2 -2
  179. package/human/apps.ts +1 -1
  180. package/human/door.ts +4 -4
  181. package/human/guest.ts +2 -2
  182. package/human/html.ts +2 -2
  183. package/human/local.ts +1 -1
  184. package/human/mark.ts +2 -2
  185. package/human/move.ts +3 -3
  186. package/human/screen.ts +5 -5
  187. package/human/tab.bundle.txt +32 -32
  188. package/human/tab.ts +10 -10
  189. package/human/tree.ts +1 -1
  190. package/human/wake.ts +3 -3
  191. package/human/web.ts +5 -5
  192. package/human/worker.bundle.txt +27 -27
  193. package/human/worker.ts +6 -6
  194. package/human/worlds.ts +5 -5
  195. package/mcp/agent.ts +1 -1
  196. package/mcp/allow.ts +5 -5
  197. package/mcp/oauth.ts +1 -1
  198. package/mcp/runner.ts +1 -1
  199. package/mcp/server.ts +3 -3
  200. package/package.json +15 -7
  201. package/{api/quo-api.md → quo-api.md} +1 -1
  202. package/{beings/quo-dock.md → quo-dock.md} +75 -72
  203. package/{harbor/quo-harbor.md → quo-harbor.md} +54 -30
  204. package/{human/quo-human.md → quo-human.md} +7 -7
  205. package/{mcp/quo-mcp.md → quo-mcp.md} +10 -10
  206. package/cli/estate/systems.quo.plist +0 -44
  207. package/cli/quo-dock.md +0 -1942
  208. package/dist/cli/estate/systems.quo.plist +0 -44
  209. package/dock/quo-app-bells.md +0 -280
  210. package/dock/quo-dock.md +0 -1942
  211. /package/dist/cli/{quo.d.ts → nervur.d.ts} +0 -0
  212. /package/{beings/quo-app-bells.md → quo-app-bells.md} +0 -0
@@ -131,7 +131,7 @@ running there, from her cells, and painted by the same painter.
131
131
  on every device and no class carries a layout. A kind an estate wants and
132
132
  the grammar lacks is asked for here, and never written around.
133
133
  - **The painter emits the kit and nothing else.** Every node paints as a
134
- piece of `papers/quo-ui.md`'s catalogue, a `stack` as `.nv-stack`, a
134
+ piece of `papers/nervur-ui.md`'s catalogue, a `stack` as `.nv-stack`, a
135
135
  `list` as `.nv-list` of `.nv-item`, a `person` as `.nv-person` with an
136
136
  `.nv-avatar`, a title as `.nv-t-title`, a form as the kit's fieldset and
137
137
  fields and one `.nv-button`, an answer as `.nv-answer` with the word it
@@ -326,7 +326,7 @@ Read with the trunk's "Carrying" and "The look", which this applies.
326
326
  - **Worlds have addresses, and so do the beings one holds.** `web./<ward>`
327
327
  is that world's page, `web./` lists the worlds shown, and a hostname per
328
328
  world is one proxy line, the estate's choice. Shown is the ward's own
329
- mark, `quo show` and `quo hide`, hidden at `init`: a hidden ward is not
329
+ mark, `nervur show` and `nervur hide`, hidden at `init`: a hidden ward is not
330
330
  listed and a stranger at its page meets the plain door, while a link
331
331
  still knocks with its invitation and the desk still answers a proof, so
332
332
  an estate shows its face and leaves every home hidden. `quo.` stays one per harbor,
@@ -339,24 +339,24 @@ Read with the trunk's "Carrying" and "The look", which this applies.
339
339
  device paints as nothing, since an address adds no right. Every section
340
340
  on the world's page says where its own page is.
341
341
  - **A link is the page with the invitation in the fragment**, under the one
342
- reserved key `quo`, the invitation compact as `ward.heir.secret` or
343
- `ward` alone: `web.acme.com/shop#quo=...`. The fragment never leaves the
342
+ reserved key `nervur`, the invitation compact as `ward.heir.secret` or
343
+ `ward` alone: `web.acme.com/shop#nervur=...`. The fragment never leaves the
344
344
  browser, where a query string would reach the server, its logs and every
345
345
  referer. The tab reads it, strips it from the address bar before anything
346
346
  else runs, and joins. A page's own routing keeps the query, the path and
347
- the rest of the fragment; only `quo` is taken. `beings/link.ts`.
347
+ the rest of the fragment; only `nervur` is taken. `beings/link.ts`.
348
348
  - **An answer that is an invitation paints as the link it is.** The only
349
349
  thing to do with one is to open it, and a being does not know where her
350
350
  page lives while the side does: the side builds the link on the world's
351
351
  page address, which is why the grammar carries no URL and this is not a
352
352
  node. It is how devices beget devices on a page: a human asks her user
353
353
  being's `device` for the next one and gets back a link to send, the same
354
- link `quo invite` prints on the box. A side with an `admit` shows a guest
354
+ link `nervur invite` prints on the box. A side with an `admit` shows a guest
355
355
  the door instead, and that is the door alone.
356
356
  - **An invitation is self-addressing.** It names its ward by pk, so the
357
357
  path of the page it was opened on is a hint for humans and nothing more:
358
358
  the tab joins in the local ward of the ward the invitation names, and
359
- the address follows. `web./#quo=...` is a complete way in for anyone
359
+ the address follows. `web./#nervur=...` is a complete way in for anyone
360
360
  holding an invitation to any ward the harbor hosts, and every ward has a
361
361
  page, whether or not anyone is at its door, so that a link into one has
362
362
  somewhere to land; a ward with no public being says it admits by
@@ -70,7 +70,7 @@ the two words give it what it needs to decide.
70
70
 
71
71
  The client speaks OAuth and lands the human on the allow page of the web
72
72
  route, where nothing is typed but an invitation: the one the root minted
73
- for this client on the user being with `quo invite`, and the identity it
73
+ for this client on the user being with `nervur invite`, and the identity it
74
74
  will be. The invitation names its ward, so the world the client is let
75
75
  into is the invitation's, and the grant remembers it: a bearer is an
76
76
  identity in a world and a session is that identity's there. A session
@@ -144,11 +144,11 @@ process runs as the human on the device, and the avatar lives in the laptop
144
144
  harbor. No droplet is needed for this. A dialer harbor is enough, because the
145
145
  model is on the same machine as the ward it talks to.
146
146
 
147
- One thing to know when a client launches `quo side` or `quo pilot`: the MCP
147
+ One thing to know when a client launches `nervur side` or `nervur pilot`: the MCP
148
148
  SDK spawns the server with a stripped environment, without `TMPDIR`. A
149
149
  harbor folder whose path is long gets its sockets in the temp dir under a
150
150
  hashed name, and the child then computes a different temp dir and finds no
151
- daemon. The default `~/.quo` is short and unaffected; for a long folder,
151
+ daemon. The default `~/.nervur` is short and unaffected; for a long folder,
152
152
  hand the client the full environment.
153
153
 
154
154
  ### Two ways a model is driven
@@ -218,8 +218,8 @@ the dock ward's `agents` faculty, the way a schedule is placed on the
218
218
  clock, and it lives in her cells and in no file:
219
219
 
220
220
  ```bash
221
- quo ask --ward dock agents keep '{"id":"claude","ward":"main","command":"claude","args":["-p","--model","haiku"],"dir":"/home/quo/claude"}'
222
- quo ask --ward dock agents keep '{"id":"kimi","ward":"main","url":"https://openrouter.ai/api/v1","model":"moonshotai/kimi-k2","key":"..."}'
221
+ nervur ask --ward dock agents keep '{"id":"claude","ward":"main","command":"claude","args":["-p","--model","haiku"],"dir":"/home/nervur/claude"}'
222
+ nervur ask --ward dock agents keep '{"id":"kimi","ward":"main","url":"https://openrouter.ai/api/v1","model":"moonshotai/kimi-k2","key":"..."}'
223
223
  ```
224
224
 
225
225
  She runs at once and again at every boot; `drop` stops her and forgets the
@@ -271,16 +271,16 @@ runner pins, in `packages/dock/mcp/runner.ts`:
271
271
  Ten is a ceiling, not a permission: a turn that ends there has no final
272
272
  text, and the gate decided everything the model reached. The proof is
273
273
  `packages/dock/test/runner.test.ts` over a scripted endpoint on loopback, and the
274
- same suite runs one live turn when `QUO_MODEL_URL` names a real endpoint.
274
+ same suite runs one live turn when `NERVUR_MODEL_URL` names a real endpoint.
275
275
 
276
- From a terminal the runner is `quo run --as NAME --url URL --model NAME`:
277
- the same pipe as `quo side`, with the model named in the hello line, so
276
+ From a terminal the runner is `nervur run --as NAME --url URL --model NAME`:
277
+ the same pipe as `nervur side`, with the model named in the hello line, so
278
278
  the daemon runs the runner beside the avatar it boots for the name. A line
279
279
  typed is a turn; the model's final text is a line back; a push from the
280
280
  user being starts a turn of its own and its text comes back the same way.
281
281
  A turn that ends at the ceiling, `--turns`, has no final text and comes
282
282
  back as an empty line; a model that fails comes back as one line holding
283
- an error object. The bearer, `QUO_MODEL_KEY`, is read by the command from
283
+ an error object. The bearer, `NERVUR_MODEL_KEY`, is read by the command from
284
284
  the device and crosses only the local socket.
285
285
 
286
286
  ### A model as the owner
@@ -297,7 +297,7 @@ nothing and logs nothing: what a model did with it is in the host's own
297
297
  transcript, and an invitation it was handed is in no file of the dock's.
298
298
  The pilot is handed to one local agent by the device's own rules. A remote
299
299
  pilot is a standing at the ward, and still not a route: a model without a
300
- ward of its own cannot be an owner anywhere. `quo pilot --via S` is that
300
+ ward of its own cannot be an owner anywhere. `nervur pilot --via S` is that
301
301
  pilot: S is a standing the user being here holds at the
302
302
  far ward, taken when the root here knocked for her with an invitation the
303
303
  far root minted on its ward's pk, and every tool call is a sealed ask
@@ -1,44 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!--
3
- The daemon on a Mac, as the user, forever: a launchd agent. It holds the
4
- harbor at ~/.quo and the socket to every quo. route ~/.quo/dial.json
5
- names, so a Mac behind NAT is reached through the droplet it dialed. The
6
- daemon runs the dock's emitted `dist/cli/quo.js` from where the estate
7
- installed it, never the source. Install, with node on the path:
8
-
9
- sed "s#HOME#$HOME#g; s#NODE#$(which node)#g" mac/systems.quo.plist > ~/Library/LaunchAgents/systems.quo.plist
10
- launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/systems.quo.plist
11
-
12
- Remove with `launchctl bootout gui/$(id -u)/systems.quo`; restart after a
13
- wire change with `launchctl kickstart -k gui/$(id -u)/systems.quo`. The
14
- log is ~/.quo/serve.log. No HTTP door: a Mac is a dialer, not a listener.
15
- -->
16
- <plist version="1.0">
17
- <dict>
18
- <key>Label</key>
19
- <string>systems.quo</string>
20
- <key>ProgramArguments</key>
21
- <array>
22
- <string>NODE</string>
23
- <string>HOME/ESTATE/node_modules/@nervur-org/dock/dist/cli/quo.js</string>
24
- <string>serve</string>
25
- </array>
26
- <key>EnvironmentVariables</key>
27
- <dict>
28
- <key>QUO_DIR</key>
29
- <string>HOME/.quo</string>
30
- </dict>
31
- <key>WorkingDirectory</key>
32
- <string>HOME/ESTATE</string>
33
- <key>RunAtLoad</key>
34
- <true/>
35
- <key>KeepAlive</key>
36
- <true/>
37
- <key>ThrottleInterval</key>
38
- <integer>2</integer>
39
- <key>StandardOutPath</key>
40
- <string>HOME/.quo/serve.log</string>
41
- <key>StandardErrorPath</key>
42
- <string>HOME/.quo/serve.log</string>
43
- </dict>
44
- </plist>