@ours.network/cowork 1.3.2 → 1.3.3-nightly.20260923.2d2ff89
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 +54 -1
- package/dist/cli.js +5788 -4733
- package/dist/daemon.js +763 -418
- package/dist/web/assets/app.css +1 -1
- package/dist/web/assets/app.js +8 -8
- package/dist/web/index.html +2 -2
- package/docs/01-prerequisites.md +1 -1
- package/docs/02-installation.md +3 -3
- package/docs/03-configuration.md +25 -8
- package/docs/04-daemon-lifecycle.md +38 -1
- package/docs/07-messaging-history.md +0 -29
- package/docs/09-service-management.md +1 -1
- package/docs/11-web-console.md +1 -1
- package/docs/selected-source-development.md +30 -0
- package/docs/state-maintenance.md +14 -0
- package/package.json +8 -6
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@ The localhost HTTP console has no authentication. Keep it bound to `127.0.0.1`;
|
|
|
15
15
|
|
|
16
16
|
The same listener describes its own room management REST API: `http://127.0.0.1:3052/openapi.json` is the OpenAPI 3.1 document and `http://127.0.0.1:3052/docs` is the browser UI for it. Both are read-only, load no remote assets, and follow the console's loopback-only exposure rules.
|
|
17
17
|
|
|
18
|
-
Start or install the shared daemon with `@ours.network/
|
|
18
|
+
Start or install the shared daemon with the selected `@ours.network/daemon` before starting cowork. Cowork never embeds, starts, stops, or silently substitutes an ours daemon. V1 selection uses `OURS_DAEMON_URL`, `OURS_DAEMON_ID` and `OURS_DAEMON_CREDENTIAL_PATH` together; each room has an independent external owner and requests read the protected current-token file. The temporary legacy SDK selection remains only when the V1 inputs are absent. See [configuration](docs/03-configuration.md) for the exact selection and refusal behavior.
|
|
19
19
|
|
|
20
20
|
The shared daemon retains application payload history outside its protocol packets: each identity has a `history.sqlite3` database and immutable content-addressed file blobs. Cowork authorizes unread metadata by authenticated CID, reads the corresponding persistent history or blob, durably archives the room item and its complete fan-out, and only then advances that exact SDK unread item. There is no packet-inbox fallback, defer queue, host outbox, or cross-store transaction.
|
|
21
21
|
|
|
@@ -45,3 +45,56 @@ ours-cowork docs web
|
|
|
45
45
|
Before production use, read the limitations topic. In particular, backups require a stopped daemon and restore uses the complete state directory.
|
|
46
46
|
Lost room identity leases are recovered automatically with a non-force bind and exact persisted-CID proof. Operators can invoke the same safe path explicitly with `ours-cowork room rebind <room-id>`; it never recreates an established identity or steals a live lease.
|
|
47
47
|
The localhost host-management CLI/API and web Archive retain full scoped-thread visibility for administrators, including excluded-member traffic that participant APIs hide. Runtime `room.history` is an authenticated, grant-gated participant view with viewer-local cursors; host cursors and participant cursors are not interchangeable. The shared SDK history remains local to each identity and does not define Cowork routing or host archive retention.
|
|
48
|
+
|
|
49
|
+
## Container lifecycle verification
|
|
50
|
+
|
|
51
|
+
After building with the selected locked SDK/CLI artifacts, run
|
|
52
|
+
`npm run test:v1-lifecycle` in an isolated Docker environment. This existing
|
|
53
|
+
integration uses the installed CLI and local development broker with temporary
|
|
54
|
+
state; it checks the explicit daemon-selection and room-recovery path. It does
|
|
55
|
+
not verify an external production broker or a complete Compose deployment.
|
|
56
|
+
For the existing browser smoke (`npm run test:browser`), provide system Chrome
|
|
57
|
+
or Chromium through `COWORK_CHROME_PATH`; no browser is needed by the server.
|
|
58
|
+
|
|
59
|
+
### Build with selected SDK and CLI archives
|
|
60
|
+
|
|
61
|
+
Run in the build container with Node 22+, npm and tar available:
|
|
62
|
+
|
|
63
|
+
```sh
|
|
64
|
+
node scripts/build-selected.mjs --sdk /artifacts/ours.network-sdk-3.7.2.tgz --cli /artifacts/ours.network-cli-2.7.2.tgz --out-dir /artifacts/consumer
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
The recipe validates package names, installs and builds in disposable staging,
|
|
68
|
+
then writes one complete portable npm archive. Stdout is a JSON object with its
|
|
69
|
+
actual `filename`; build/npm logs go to stderr. Normal source manifests, locks
|
|
70
|
+
and installed dependencies are preserved. The installer must install the same
|
|
71
|
+
selected SDK and CLI archives alongside this package; its final dependency
|
|
72
|
+
versions come from those archives. Existing bundling choices are unchanged.
|
|
73
|
+
|
|
74
|
+
Focused build/install verification (two real builds, including changed bytes
|
|
75
|
+
under identical input names and versions, plus a missing-vendor negative check):
|
|
76
|
+
|
|
77
|
+
```sh
|
|
78
|
+
node scripts/check-build-selected.mjs --sdk /artifacts/ours.network-sdk-3.7.2.tgz --cli /artifacts/ours.network-cli-2.7.2.tgz
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
For development against the selected, unpublished SDK/CLI sources, see [selected-source development](docs/selected-source-development.md).
|
|
82
|
+
|
|
83
|
+
### Authenticated HTTP gateway management
|
|
84
|
+
|
|
85
|
+
The installer can enable `OURS_COWORK_HTTP_MANAGEMENT=1` with a pinned
|
|
86
|
+
`OURS_DAEMON_URL` and `OURS_DAEMON_ID`. `/management/rpc` accepts the existing
|
|
87
|
+
issued `X-Ours-Api-Token` and verifies it against that daemon on every request.
|
|
88
|
+
It exposes the room service methods, including `room.accept`, but excludes
|
|
89
|
+
`daemon.status` and `daemon.shutdown`; supervisor control remains local.
|
|
90
|
+
Invalid/revoked credentials, instance mismatch, redirects and daemon outages fail
|
|
91
|
+
closed. Browser-origin requests cannot use machine management.
|
|
92
|
+
|
|
93
|
+
The separate `/browser/rpc` uses the ordinary room routes and also requires an
|
|
94
|
+
issued token. The browser prompt explains its operator authority; the token stays
|
|
95
|
+
in memory and is cleared by reload. `OURS_COWORK_PUBLIC_ORIGIN` pins the exact
|
|
96
|
+
external HTTP(S) origin behind a gateway. Same-origin proxy credentials remain
|
|
97
|
+
available, and assets/RPC paths work beneath a nested `/base/cowork/` mount.
|
|
98
|
+
The legacy unauthenticated loopback `/rpc` must remain blocked at the gateway.
|
|
99
|
+
All applications on the gateway origin share trust; a prefix is not isolation.
|
|
100
|
+
`ours-cowork --json capabilities` advertises `cowork.http-management-v1`.
|