@fungi.computer/oyster 0.5.0 → 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 +46 -8
- package/dist/agents.js +4 -0
- package/dist/auth.d.ts +24 -1
- package/dist/auth.js +38 -0
- package/dist/boot-host-script.js +1 -1
- package/dist/build/candidate-cli.mjs +8 -1
- package/dist/channels/binding.d.ts +8 -1
- package/dist/channels/binding.js +12 -0
- package/dist/channels/conversations.d.ts +16 -5
- package/dist/channels/visitor-channel.d.ts +53 -0
- package/dist/channels/visitor-channel.js +124 -0
- package/dist/channels/visitor-edge.d.ts +115 -0
- package/dist/channels/visitor-edge.js +582 -0
- package/dist/channels/visitor-request.d.ts +7 -0
- package/dist/channels/visitor-request.js +17 -0
- package/dist/channels/visitor-stream-slots.d.ts +2 -0
- package/dist/channels/visitor-stream-slots.js +33 -0
- package/dist/channels/visitors.d.ts +47 -0
- package/dist/channels/visitors.js +181 -0
- package/dist/cloudflare.d.ts +8 -2
- package/dist/cloudflare.js +27 -1
- package/dist/computer-target.d.ts +5 -0
- package/dist/computer-target.js +11 -0
- package/dist/host.d.ts +6 -3
- package/dist/host.js +75 -13
- package/dist/internal/host-gate.d.ts +6 -4
- package/dist/internal/host-gate.js +14 -7
- package/dist/invocation.d.ts +11 -4
- package/dist/invocation.js +134 -91
- package/dist/page/capabilities.js +1 -1
- package/dist/page/child-selection.d.ts +27 -0
- package/dist/page/child-selection.js +38 -0
- package/dist/page/mount.js +1 -1
- package/dist/page-script.js +4 -4
- package/dist/release.d.ts +13 -0
- package/dist/release.js +10 -0
- package/dist/request-origin.d.ts +4 -0
- package/dist/request-origin.js +10 -0
- package/dist/standalone/agents.js +11 -11
- package/dist/standalone/channel-session-door.d.ts +2 -2
- package/dist/standalone/channel-session-door.js +35 -5
- package/dist/standalone/computer-fleet.js +7 -1
- package/dist/standalone/tenancy.d.ts +3 -0
- package/dist/standalone/tenancy.js +7 -2
- package/dist/turnstile.d.ts +27 -0
- package/dist/turnstile.js +51 -0
- package/dist/workers-git.js +20 -1
- package/dist/workers.js +15 -12
- package/docs/api/auth.md +55 -0
- package/docs/api/build-contract.md +2 -2
- package/docs/api/cloudflare.md +26 -1
- package/docs/api/host.md +22 -13
- package/docs/api/invocation.md +7 -3
- package/docs/api/workers.md +17 -16
- package/docs/site/agent-quickstart.mdx +6 -2
- package/examples/standalone/wrangler.celld.jsonc +66 -0
- package/package.json +40 -16
|
@@ -10,6 +10,10 @@ Run every command exactly as written, from the directory each step names.
|
|
|
10
10
|
Compare its output with the expected output before you go on. When a step fails,
|
|
11
11
|
read the "If it fails" notes under it before trying anything else.
|
|
12
12
|
|
|
13
|
+
Not sure Oyster fits the job?
|
|
14
|
+
[Is Oyster for you?](https://docs.fungi.computer/is-oyster-for-you/) compares it
|
|
15
|
+
with Cloudflare Workers Builds before you install anything.
|
|
16
|
+
|
|
13
17
|
## Before you start
|
|
14
18
|
|
|
15
19
|
- **Cloudflare plan:** SQLite-backed Durable Objects are available on Workers
|
|
@@ -303,8 +307,8 @@ If it fails:
|
|
|
303
307
|
|
|
304
308
|
- `SESSION` is empty: the `initialize` call was refused. Check the key as in
|
|
305
309
|
step 3.
|
|
306
|
-
-
|
|
307
|
-
|
|
310
|
+
- The copied Worker already includes `POST /api/keys`. Use the owner key to
|
|
311
|
+
create a separate key for each agent; no extra Worker is needed.
|
|
308
312
|
|
|
309
313
|
## 6. Add Git
|
|
310
314
|
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
// Copy beside this package's worker.ts into a celld project as wrangler.jsonc.
|
|
3
|
+
// Set OYSTER_ORIGIN to the public HTTPS origin and keep the owner key out of
|
|
4
|
+
// this file (.dev.vars for dev; --secret-name / --secrets-file for a fleet).
|
|
5
|
+
"name": "oyster",
|
|
6
|
+
"main": "worker.ts",
|
|
7
|
+
"compatibility_date": "2026-09-04",
|
|
8
|
+
"compatibility_flags": ["nodejs_compat"],
|
|
9
|
+
// The React build uses console.createTask() without this production define.
|
|
10
|
+
"define": { "process.env.NODE_ENV": "\"production\"" },
|
|
11
|
+
"workflows": [
|
|
12
|
+
{
|
|
13
|
+
"binding": "GRAPH_WORKFLOWS",
|
|
14
|
+
"name": "oyster-graphs",
|
|
15
|
+
"class_name": "StandaloneGraphWorkflow",
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
"worker_loaders": [{ "binding": "LOADER" }],
|
|
19
|
+
// celld requires distinct bucket names (unlike the Cloudflare example, which
|
|
20
|
+
// uses oyster-releases for both); these are prefixes in the same fleet bucket.
|
|
21
|
+
"r2_buckets": [
|
|
22
|
+
{ "binding": "RELEASES", "bucket_name": "oyster-releases" },
|
|
23
|
+
{ "binding": "APP_ARTIFACTS", "bucket_name": "oyster-media" },
|
|
24
|
+
],
|
|
25
|
+
"vars": {
|
|
26
|
+
"OYSTER_ORIGIN": "https://oyster.example",
|
|
27
|
+
"OYSTER_COMPUTER_ID": "workspace",
|
|
28
|
+
"OYSTER_HOME_INSTALLATION": "tourtois",
|
|
29
|
+
"OYSTER_OWNER_NAME": "owner",
|
|
30
|
+
},
|
|
31
|
+
"durable_objects": {
|
|
32
|
+
"bindings": [
|
|
33
|
+
{ "name": "TENANTS", "class_name": "StandaloneTenants" },
|
|
34
|
+
{ "name": "MCP", "class_name": "OysterMcp" },
|
|
35
|
+
{ "name": "REGISTRY", "class_name": "OysterRegistry" },
|
|
36
|
+
{ "name": "WORKFLOW_RUNS", "class_name": "StandaloneWorkflowRuns" },
|
|
37
|
+
{ "name": "INSTANCES", "class_name": "StandaloneInstance" },
|
|
38
|
+
{ "name": "COMPUTER", "class_name": "ComputerDO" },
|
|
39
|
+
{ "name": "KEYS", "class_name": "OysterKeys" },
|
|
40
|
+
{ "name": "WEBHOOKS", "class_name": "OysterWebhooks" },
|
|
41
|
+
{ "name": "AGENTS", "class_name": "StandaloneAgent" },
|
|
42
|
+
{ "name": "AGENT_DIRECTORY", "class_name": "AgentDirectory" },
|
|
43
|
+
{ "name": "MACHINE_LINK", "class_name": "MachineLinkDO" },
|
|
44
|
+
{ "name": "MEDIA_OPERATION", "class_name": "MediaOperationDO" },
|
|
45
|
+
],
|
|
46
|
+
},
|
|
47
|
+
"migrations": [
|
|
48
|
+
{
|
|
49
|
+
"tag": "oyster-v1",
|
|
50
|
+
"new_sqlite_classes": [
|
|
51
|
+
"StandaloneTenants",
|
|
52
|
+
"OysterMcp",
|
|
53
|
+
"OysterRegistry",
|
|
54
|
+
"StandaloneWorkflowRuns",
|
|
55
|
+
"StandaloneInstance",
|
|
56
|
+
"ComputerDO",
|
|
57
|
+
"OysterKeys",
|
|
58
|
+
"OysterWebhooks",
|
|
59
|
+
"StandaloneAgent",
|
|
60
|
+
"AgentDirectory",
|
|
61
|
+
"MachineLinkDO",
|
|
62
|
+
"MediaOperationDO",
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fungi.computer/oyster",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"author": "Levi <levi@technomancy.dev>",
|
|
5
5
|
"description": "Run your own Apps on Cloudflare Workers or celld: installable App Releases, each with its own Durable Object, SQLite database and declared bindings",
|
|
6
6
|
"type": "module",
|
|
@@ -112,6 +112,26 @@
|
|
|
112
112
|
"types": "./dist/channels/binding.d.ts",
|
|
113
113
|
"import": "./dist/channels/binding.js"
|
|
114
114
|
},
|
|
115
|
+
"./channels/visitors": {
|
|
116
|
+
"types": "./dist/channels/visitors.d.ts",
|
|
117
|
+
"import": "./dist/channels/visitors.js"
|
|
118
|
+
},
|
|
119
|
+
"./channels/visitor-request": {
|
|
120
|
+
"types": "./dist/channels/visitor-request.d.ts",
|
|
121
|
+
"import": "./dist/channels/visitor-request.js"
|
|
122
|
+
},
|
|
123
|
+
"./channels/visitor-stream-slots": {
|
|
124
|
+
"types": "./dist/channels/visitor-stream-slots.d.ts",
|
|
125
|
+
"import": "./dist/channels/visitor-stream-slots.js"
|
|
126
|
+
},
|
|
127
|
+
"./channels/visitor-channel": {
|
|
128
|
+
"types": "./dist/channels/visitor-channel.d.ts",
|
|
129
|
+
"import": "./dist/channels/visitor-channel.js"
|
|
130
|
+
},
|
|
131
|
+
"./channels/visitor-edge": {
|
|
132
|
+
"types": "./dist/channels/visitor-edge.d.ts",
|
|
133
|
+
"import": "./dist/channels/visitor-edge.js"
|
|
134
|
+
},
|
|
115
135
|
"./channels/conversations": {
|
|
116
136
|
"types": "./dist/channels/conversations.d.ts",
|
|
117
137
|
"import": "./dist/channels/conversations.js"
|
|
@@ -232,6 +252,10 @@
|
|
|
232
252
|
"types": "./dist/auth.d.ts",
|
|
233
253
|
"import": "./dist/auth.js"
|
|
234
254
|
},
|
|
255
|
+
"./turnstile": {
|
|
256
|
+
"types": "./dist/turnstile.d.ts",
|
|
257
|
+
"import": "./dist/turnstile.js"
|
|
258
|
+
},
|
|
235
259
|
"./apps": {
|
|
236
260
|
"types": "./dist/apps/index.d.ts",
|
|
237
261
|
"import": "./dist/apps/index.js"
|
|
@@ -264,35 +288,35 @@
|
|
|
264
288
|
"dependencies": {
|
|
265
289
|
"@cfworker/json-schema": "4.1.1",
|
|
266
290
|
"@earendil-works/pi-ai": "1.3.0",
|
|
267
|
-
"@fungi.computer/agar": "0.
|
|
268
|
-
"@fungi.computer/bird-dog": "0.
|
|
269
|
-
"@fungi.computer/braid": "0.2.
|
|
291
|
+
"@fungi.computer/agar": "0.5.0",
|
|
292
|
+
"@fungi.computer/bird-dog": "0.3.0",
|
|
293
|
+
"@fungi.computer/braid": "0.2.4",
|
|
270
294
|
"@fungi.computer/burrow": "0.1.0",
|
|
271
295
|
"@fungi.computer/cairn": "0.1.0",
|
|
272
296
|
"@fungi.computer/capnweb": "0.12.0",
|
|
273
|
-
"@fungi.computer/caps": "0.
|
|
297
|
+
"@fungi.computer/caps": "0.4.0",
|
|
274
298
|
"@fungi.computer/carrier": "0.2.0",
|
|
275
|
-
"@fungi.computer/computer": "0.3.
|
|
276
|
-
"@fungi.computer/computer-contract": "0.0.
|
|
277
|
-
"@fungi.computer/darkroom": "0.3.
|
|
299
|
+
"@fungi.computer/computer": "0.3.2",
|
|
300
|
+
"@fungi.computer/computer-contract": "0.0.5",
|
|
301
|
+
"@fungi.computer/darkroom": "0.3.1",
|
|
278
302
|
"@fungi.computer/ear-tag": "0.1.0",
|
|
279
303
|
"@fungi.computer/forage": "0.2.0",
|
|
280
304
|
"@fungi.computer/gills": "0.2.0",
|
|
281
|
-
"@fungi.computer/knapsack": "0.
|
|
282
|
-
"@fungi.computer/mycelium": "0.2.
|
|
283
|
-
"@fungi.computer/nacre": "0.0
|
|
305
|
+
"@fungi.computer/knapsack": "0.4.0",
|
|
306
|
+
"@fungi.computer/mycelium": "0.2.3",
|
|
307
|
+
"@fungi.computer/nacre": "0.1.0",
|
|
284
308
|
"@fungi.computer/puffball": "0.2.0",
|
|
285
309
|
"@fungi.computer/seam": "0.2.0",
|
|
286
|
-
"@fungi.computer/shiitake": "0.
|
|
287
|
-
"@fungi.computer/shiitake-extensions": "0.
|
|
310
|
+
"@fungi.computer/shiitake": "0.6.0",
|
|
311
|
+
"@fungi.computer/shiitake-extensions": "0.4.0",
|
|
288
312
|
"@fungi.computer/sigils": "0.2.0",
|
|
289
313
|
"@fungi.computer/sprite": "0.2.0",
|
|
290
314
|
"@fungi.computer/sprite-zdog": "0.2.0",
|
|
291
315
|
"@fungi.computer/veil": "0.2.1",
|
|
292
316
|
"@fungi.computer/watchdog": "0.1.0",
|
|
293
|
-
"@fungi.computer/whistle": "0.
|
|
294
|
-
"@fungi.computer/workflows-wire": "0.2.
|
|
295
|
-
"@fungi.computer/zookeeper": "0.0.
|
|
317
|
+
"@fungi.computer/whistle": "0.3.0",
|
|
318
|
+
"@fungi.computer/workflows-wire": "0.2.4",
|
|
319
|
+
"@fungi.computer/zookeeper": "0.0.5",
|
|
296
320
|
"@modelcontextprotocol/server": "2.0.0",
|
|
297
321
|
"@pnpm/lockfile.fs": "1100.2.13",
|
|
298
322
|
"@pnpm/lockfile.pruner": "1100.0.27",
|