@orchestraworks/worker 0.0.149 → 0.0.151

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
@@ -25,7 +25,8 @@ To check that a machine image can host a harness, run `worker check` inside it:
25
25
  docker run --rm --entrypoint worker <image> check --harness claude
26
26
  ```
27
27
 
28
- `worker version` prints the version and the protocol versions this build speaks.
28
+ `worker version` prints the version, the build hash, the release package and the protocol versions this
29
+ build speaks.
29
30
 
30
31
  ## Make a machine image
31
32
 
@@ -227,8 +228,8 @@ minutes later.
227
228
  - `orchestra worker --help` lists the worker commands. `orchestra worker <command> --help` gives their flags.
228
229
  - `worker` with no command prints its usage.
229
230
  - `skills/orchestra/SKILL.md` in `@orchestraworks/cli` explains machines and what the platform can do.
230
- - [docs/REFERENCE.md](docs/REFERENCE.md): every command, the start-up settings, egress, and how a release is built.
231
+ - [docs/REFERENCE.md](https://unpkg.com/@orchestraworks/worker/docs/REFERENCE.md): every command, the start-up settings, egress, and how a release is built.
231
232
 
232
233
  ## License
233
234
 
234
- Apache License 2.0. The full text is in [LICENSE](LICENSE).
235
+ Apache License 2.0. The full text is in the `LICENSE` file in this package.
package/docs/REFERENCE.md CHANGED
@@ -16,7 +16,7 @@ The worker exposes no API of its own. Every route it calls is the platform's.
16
16
  | `identity/` | the four identity exchanges — claim, refresh, reattach-challenge, reattach — the holder key, and the loop that keeps the machine token alive |
17
17
  | `broker/` | the protocol on the message broker: the connection, the register on every connect, the heartbeat and the status cadence, the pull of this machine's own work consumer, and the publisher every other package sends through |
18
18
  | `env/` | the machine-side environment the platform composes onto a launch, read from the names the contract declares |
19
- | `facts/` | what this build knows about the four harness families: the program to install and the digest that authenticates it, the environment each family is handed, the templates it seeds, and every location its content lands in; and, in `machine.json`, the pins of what `install-machine` puts on a machine beside the worker — Docker, WinDivert and the agent's Node — and where a launch's certificate files land. Both are embedded in the binary, so one release digest covers the facts and the program that reads them |
19
+ | `facts/` | what this build knows about the four harness families: the program to install and the digest that authenticates it, the environment each family is handed, the templates it seeds, and every location its content lands in; and, in `machine.json`, the pins of what `install-machine` puts on a machine beside the worker — Docker and WinDivert, the agent's Node being the families' own Node pin — and where a launch's certificate files land. Both are embedded in the binary, so one release digest covers the facts and the program that reads them |
20
20
  | `harness/` | the only place family-specific knowledge lives: the launch plan, the content layout, the store lookup, the mid-turn message each family accepts, and the installer that puts the pinned Node and a family's programs under the worker root |
21
21
  | `process/` | the agent's setup and the harness process behind each session placement: the start, the stop and the last save a remove asks for, the startup fence over what a previous run left, and the stop of everything when the worker is told to stop |
22
22
  | `stream/` | the queue: every placement message and every prompt, steer and cancel pulled off this machine's work consumer, the ACP client that opens a session's harness conversation and runs its turns, each turn's events batched to the platform and published live, and the answer every placement message is owed |
@@ -82,6 +82,18 @@ Each `ORCHESTRA_` machine variable this page names also has a former `SFDK_` spe
82
82
  forms fill the installer seam in `cmd/worker/install.go`; a build with none refuses rather than
83
83
  reporting an install it did not perform.
84
84
 
85
+ **An install that names a family stops the running worker first.** When `--harness` names a family
86
+ and `--service` is not `none`, the install stops the worker service in its scope, and the service an
87
+ earlier release registered, before it changes anything under the root. A running service installs and
88
+ runs harnesses from that same root, and nothing else keeps the two apart. The stop keeps each
89
+ service's definition, and the install prints `the worker service is stopped while this install changes
90
+ <root>`. The service starts again only after the whole install succeeds, and then at the time its role
91
+ sets, below. When the stop fails, the install changes nothing. When a later step fails, or a signal
92
+ interrupts the install after the stop, the service stays stopped and the error says so; for a `worker`,
93
+ run `worker install` again to start it. A signal during the stop itself gives an error that says the
94
+ service may still be stopping. A signal before the stop ends the install quietly, with nothing stopped
95
+ and nothing changed.
96
+
85
97
  **`--service` says which session the worker is registered in, and neither of its two values needs any
86
98
  privilege.** `user` registers it in the invoking account's own session: a launch agent under
87
99
  `~/Library/LaunchAgents` on macOS, a `systemd --user` unit under `~/.config/systemd/user` on Linux, a
@@ -176,7 +188,7 @@ Each `ORCHESTRA_` machine variable this page names also has a former `SFDK_` spe
176
188
  the worker's unit, which requires it. Azure on Linux also installs WALinuxAgent's and azure-vm-utils'
177
189
  udev rules, which name a data disk by its LUN. `aws` removes the Azure task, or the Azure unit and the
178
190
  worker unit's link to it, that an earlier `azure` run left. The optional steps fetch what they install from the pins
179
- in `facts/machine.json` and check each archive's SHA-256 — Node against `nodejs.org`'s published
191
+ in `facts/machine.json`, and Node at the families' pin in `facts/families.json`, and check each archive's SHA-256 — Node against `nodejs.org`'s published
180
192
  `SHASUMS256.txt` — before anything is unpacked. A new Node on Windows replaces only the archive's own
181
193
  files, `node.exe` last, so npm's global packages in its folder and their commands stay. The last step runs `worker check` in-process with the
182
194
  profile that holds only what this command installs: `launcher` for `azure`, `enrolled` for `aws`. A
@@ -235,12 +247,13 @@ Each `ORCHESTRA_` machine variable this page names also has a former `SFDK_` spe
235
247
  **`worker redirect remove`** deletes it. Each runs with its caller's own rights, so without
236
248
  `CAP_NET_ADMIN` the kernel refuses both, and each exits 0 on an answer and 1 on a failure. Off Linux
237
249
  both refuse, naming the operating system. What the table holds is under the in-guest egress below.
238
- - **`worker version`** prints this binary's version, the release package it belongs to, and the
239
- protocol versions it speaks.
250
+ - **`worker version`** prints one `key value` line each: `version`, this binary's version; `build`,
251
+ the content hash it was stamped with, or `unstamped`; `platform`, the release package it belongs to;
252
+ and `protocol`, the protocol versions it speaks.
240
253
 
241
- The version is stamped at link time by the publishing lane, and both `package.json` files carry
242
- `0.0.0` until that lane stamps them; a build that stamps nothing says so rather than claiming a
243
- version it is not.
254
+ The version and the build hash are stamped at link time by the publishing lane, and both `package.json`
255
+ files carry `0.0.0` until that lane stamps them; a build that stamps nothing says so rather than
256
+ claiming a version or a build it is not.
244
257
 
245
258
  ## The bootstrap a machine is started with
246
259
 
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@orchestraworks/worker",
3
- "version": "0.0.149",
3
+ "version": "0.0.151",
4
4
  "type": "module",
5
5
  "description": "The Orchestra worker.",
6
6
  "license": "Apache-2.0",
7
7
  "author": "Orchestra Works",
8
8
  "homepage": "https://orchestraworks.ai",
9
9
  "engines": {
10
- "node": ">=22"
10
+ "node": ">=24"
11
11
  },
12
12
  "bin": {
13
13
  "worker": "bin/worker.js"
@@ -18,10 +18,10 @@
18
18
  "docs/REFERENCE.md"
19
19
  ],
20
20
  "optionalDependencies": {
21
- "@orchestraworks/worker-linux-x64": "0.0.149",
22
- "@orchestraworks/worker-linux-arm64": "0.0.149",
23
- "@orchestraworks/worker-darwin-x64": "0.0.149",
24
- "@orchestraworks/worker-darwin-arm64": "0.0.149",
25
- "@orchestraworks/worker-win32-x64": "0.0.149"
21
+ "@orchestraworks/worker-linux-x64": "0.0.151",
22
+ "@orchestraworks/worker-linux-arm64": "0.0.151",
23
+ "@orchestraworks/worker-darwin-x64": "0.0.151",
24
+ "@orchestraworks/worker-darwin-arm64": "0.0.151",
25
+ "@orchestraworks/worker-win32-x64": "0.0.151"
26
26
  }
27
27
  }