@fungi.computer/oyster 0.1.0 → 0.3.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 +376 -72
- package/dist/agent-avatars.d.ts +103 -0
- package/dist/agent-avatars.js +66 -0
- package/dist/agents.d.ts +15 -4
- package/dist/agents.js +43 -4
- package/dist/app-builds.d.ts +81 -8
- package/dist/app-builds.js +210 -60
- package/dist/app-storage.d.ts +3 -3
- package/dist/approval-capability.d.ts +5 -0
- package/dist/approval-capability.js +46 -0
- package/dist/approval-home.d.ts +51 -0
- package/dist/approval-home.js +226 -0
- package/dist/apps/catalog.d.ts +335 -0
- package/dist/apps/catalog.js +46 -0
- package/dist/apps/gate.d.ts +26 -12
- package/dist/apps/gate.js +48 -22
- package/dist/apps/index.d.ts +3 -1
- package/dist/apps/index.js +3 -1
- package/dist/apps/installation.d.ts +147 -66
- package/dist/apps/installation.js +193 -86
- package/dist/apps/permissions.d.ts +247 -0
- package/dist/apps/permissions.js +255 -0
- package/dist/boot-capability-route.d.ts +15 -0
- package/dist/boot-capability-route.js +196 -0
- package/dist/boot-capability.d.ts +103 -0
- package/dist/boot-capability.js +141 -0
- package/dist/boot-construction.d.ts +12 -0
- package/dist/boot-construction.js +175 -0
- package/dist/boot-gate.d.ts +267 -0
- package/dist/boot-gate.js +236 -0
- package/dist/boot-host-script.d.ts +2 -0
- package/dist/boot-host-script.js +1 -0
- package/dist/boot-mount.d.ts +21 -0
- package/dist/boot-mount.js +65 -0
- package/dist/browser/boot.d.ts +73 -0
- package/dist/browser/boot.js +502 -0
- package/dist/browser/browser.d.ts +104 -0
- package/dist/browser/browser.js +374 -0
- package/dist/browser/capability-source.d.ts +76 -0
- package/dist/browser/capability-source.js +338 -0
- package/dist/browser/cdp-client.d.ts +56 -0
- package/dist/browser/cdp-client.js +184 -0
- package/dist/browser/errors.d.ts +79 -0
- package/dist/browser/errors.js +32 -0
- package/dist/browser/index.d.ts +16 -0
- package/dist/browser/index.js +14 -0
- package/dist/browser/lease-registry.d.ts +61 -0
- package/dist/browser/lease-registry.js +101 -0
- package/dist/browser/operations.d.ts +225 -0
- package/dist/browser/operations.js +137 -0
- package/dist/browser/page.d.ts +25 -0
- package/dist/browser/page.js +172 -0
- package/dist/browser/quick-reads.d.ts +29 -0
- package/dist/browser/quick-reads.js +160 -0
- package/dist/browser/sessions.d.ts +52 -0
- package/dist/browser/sessions.js +118 -0
- package/dist/browser/url-policy.d.ts +18 -0
- package/dist/browser/url-policy.js +58 -0
- package/dist/build/app-imports.d.ts +12 -0
- package/dist/build/app-imports.js +105 -0
- package/dist/build/build-policy.d.ts +5 -3
- package/dist/build/build-policy.js +5 -3
- package/dist/build/candidate-builder.d.ts +1 -1
- package/dist/build/candidate-cli.mjs +8428 -337
- package/dist/build/local-build.d.ts +2 -0
- package/dist/build/local-build.js +28 -6
- package/dist/build/snapshot-package-store.d.ts +1 -1
- package/dist/build/snapshot-package-store.js +7 -2
- package/dist/build/workspace-build.d.ts +92 -5
- package/dist/build/workspace-build.js +93 -19
- package/dist/build-egress.js +4 -4
- package/dist/build.d.ts +1 -1
- package/dist/build.js +1 -1
- package/dist/catalog-frame.js +1 -1
- package/dist/cloudflare.d.ts +13 -3
- package/dist/cloudflare.js +106 -8
- package/dist/frame-binding-wire-script.js +1 -1
- package/dist/frame-binding-wire.d.ts +1 -1
- package/dist/frame-binding-wire.js +5 -3
- package/dist/git-auth.d.ts +0 -2
- package/dist/git-auth.js +0 -2
- package/dist/git-journal.js +4 -4
- package/dist/git.d.ts +0 -1
- package/dist/git.js +0 -2
- package/dist/host.d.ts +39 -13
- package/dist/host.js +268 -142
- package/dist/index.d.ts +26 -15
- package/dist/index.js +40 -16
- package/dist/install-release-cli.d.ts +2 -0
- package/dist/install-release-cli.js +46 -0
- package/dist/installation-client.d.ts +43 -0
- package/dist/installation-client.js +178 -0
- package/dist/installation-execution.d.ts +11 -0
- package/dist/installation-execution.js +184 -0
- package/dist/installation-operations.d.ts +1437 -0
- package/dist/installation-operations.js +664 -0
- package/dist/installation-store-generation.d.ts +3 -0
- package/dist/installation-store-generation.js +16 -0
- package/dist/instance-id.d.ts +10 -0
- package/dist/instance-id.js +10 -0
- package/dist/instance-refusal.d.ts +11 -0
- package/dist/instance-refusal.js +21 -0
- package/dist/internal/delivery.js +4 -2
- package/dist/internal/host-gate.js +7 -1
- package/dist/internal/registry-installations.js +4 -4
- package/dist/keys.d.ts +5 -1
- package/dist/keys.js +10 -2
- package/dist/machine-link/authority.d.ts +89 -0
- package/dist/machine-link/authority.js +37 -0
- package/dist/machine-link/client.d.ts +66 -0
- package/dist/machine-link/client.js +94 -0
- package/dist/machine-link/delivery.d.ts +18 -0
- package/dist/machine-link/delivery.js +55 -0
- package/dist/machine-link/enrollment.d.ts +111 -0
- package/dist/machine-link/enrollment.js +286 -0
- package/dist/machine-link/fences.d.ts +37 -0
- package/dist/machine-link/fences.js +166 -0
- package/dist/machine-link/home.d.ts +20 -0
- package/dist/machine-link/home.js +24 -0
- package/dist/machine-link/host.d.ts +43 -0
- package/dist/machine-link/host.js +189 -0
- package/dist/machine-link/index.d.ts +15 -0
- package/dist/machine-link/index.js +15 -0
- package/dist/machine-link/link.d.ts +48 -0
- package/dist/machine-link/link.js +223 -0
- package/dist/machine-link/presence.d.ts +10 -0
- package/dist/machine-link/presence.js +25 -0
- package/dist/machine-link/workers.d.ts +6 -0
- package/dist/machine-link/workers.js +6 -0
- package/dist/mcp-owner.d.ts +2 -2
- package/dist/mcp-owner.js +41 -33
- package/dist/mcp.d.ts +15 -3
- package/dist/mcp.js +146 -25
- package/dist/pack.d.ts +14 -3
- package/dist/pack.js +44 -19
- package/dist/page/app-access.d.ts +7 -0
- package/dist/page/app-access.js +75 -0
- package/dist/page/boot-host.js +57 -0
- package/dist/page/capabilities.d.ts +3 -3
- package/dist/page/capabilities.js +16 -12
- package/dist/page/computer-handles.d.ts +3 -3
- package/dist/page/computer-target.d.ts +3 -0
- package/dist/page/computer-target.js +9 -0
- package/dist/page/mount.d.ts +23 -7
- package/dist/page/mount.js +152 -16
- package/dist/page-assets.d.ts +22 -0
- package/dist/page-assets.js +28 -0
- package/dist/page-script.d.ts +3 -0
- package/dist/page-script.js +5 -4
- package/dist/release.d.ts +13 -6
- package/dist/release.js +10 -7
- package/dist/root-data.d.ts +16 -6
- package/dist/root-data.js +2 -2
- package/dist/source/index.d.ts +1 -1
- package/dist/source/team-source.d.ts +20 -8
- package/dist/source/team-source.js +39 -10
- package/dist/source/template-seed.d.ts +2 -2
- package/dist/standalone/agent-mail.d.ts +24 -0
- package/dist/standalone/agent-mail.js +62 -0
- package/dist/standalone/agent-store.d.ts +9 -0
- package/dist/standalone/agent-store.js +30 -0
- package/dist/standalone/agents.d.ts +78 -12
- package/dist/standalone/agents.js +470 -59
- package/dist/standalone/app-builds-binding.d.ts +20 -2
- package/dist/standalone/app-builds-binding.js +151 -27
- package/dist/standalone/app-set.d.ts +5 -2
- package/dist/standalone/app-set.js +174 -143
- package/dist/standalone/browser.d.ts +11 -0
- package/dist/standalone/browser.js +72 -0
- package/dist/standalone/builds.d.ts +13 -4
- package/dist/standalone/builds.js +28 -44
- package/dist/standalone/computer-egress.d.ts +2 -0
- package/dist/standalone/computer-egress.js +13 -4
- package/dist/standalone/computer-fleet.d.ts +43 -0
- package/dist/standalone/computer-fleet.js +200 -0
- package/dist/standalone/computer.d.ts +44 -9
- package/dist/standalone/computer.js +132 -25
- package/dist/standalone/install-apps-cli.js +43 -6
- package/dist/standalone/instance.d.ts +2 -2
- package/dist/standalone/instance.js +8 -11
- package/dist/standalone/machine-link.d.ts +354 -0
- package/dist/standalone/machine-link.js +368 -0
- package/dist/standalone/media.d.ts +2 -2
- package/dist/standalone/media.js +19 -16
- package/dist/standalone/preview.d.ts +2 -2
- package/dist/standalone/preview.js +39 -12
- package/dist/standalone/registry.d.ts +149 -9
- package/dist/standalone/registry.js +299 -8
- package/dist/standalone/worker.d.ts +19 -5
- package/dist/standalone/worker.js +90 -54
- package/dist/standalone/workflow-binding.d.ts +28 -32
- package/dist/standalone/workflow-binding.js +20 -20
- package/dist/standalone/workflow-control.d.ts +4 -0
- package/dist/standalone/workflow-control.js +40 -0
- package/dist/standalone/workflow-events.d.ts +2 -2
- package/dist/standalone/workflow-events.js +9 -10
- package/dist/standalone/workflow-git-capture.js +4 -3
- package/dist/standalone/workflow-host.d.ts +177 -152
- package/dist/standalone/workflow-host.js +137 -30
- package/dist/standalone/workflow-node-capture.js +11 -4
- package/dist/standalone/workflow-schedules.d.ts +5 -2
- package/dist/standalone/workflow-schedules.js +9 -10
- package/dist/standalone/workflow-trigger-host.d.ts +88 -6
- package/dist/standalone/workflow-trigger-host.js +2 -2
- package/dist/standalone/workflow-webhooks.d.ts +22 -0
- package/dist/standalone/workflow-webhooks.js +39 -0
- package/dist/standalone/workflows.d.ts +203 -50
- package/dist/standalone/workflows.js +198 -39
- package/dist/storage-frame.d.ts +6 -6
- package/dist/testing/capabilities.js +14 -3
- package/dist/testing/installation.js +26 -2
- package/dist/testing/worker.js +1 -1
- package/dist/testing/workers-runtime.d.ts +8 -2
- package/dist/testing/workers-runtime.js +20 -2
- package/dist/webhook-abuse.d.ts +25 -0
- package/dist/webhook-abuse.js +54 -0
- package/dist/webhook-custody.d.ts +144 -0
- package/dist/webhook-custody.js +222 -0
- package/dist/webhook-ingress.d.ts +36 -0
- package/dist/webhook-ingress.js +146 -0
- package/dist/webhooks.d.ts +111 -0
- package/dist/webhooks.js +189 -0
- package/dist/workers-git.d.ts +12 -17
- package/dist/workers-git.js +60 -55
- package/dist/workers.d.ts +224 -13
- package/dist/workers.js +351 -51
- package/dist/workflow-agent-authority.d.ts +8 -0
- package/dist/workflow-agent-authority.js +42 -0
- package/dist/workflows.d.ts +66 -0
- package/dist/workflows.js +97 -0
- package/docs/api/README.md +63 -37
- package/docs/api/agents.md +17 -0
- package/docs/api/app-storage.md +1 -1
- package/docs/api/apps.md +1394 -543
- package/docs/api/browser/boot.md +132 -0
- package/docs/api/browser.md +1440 -0
- package/docs/api/build-contract.md +38 -25
- package/docs/api/build.md +263 -84
- package/docs/api/cloudflare.md +93 -7
- package/docs/api/git.md +3 -13
- package/docs/api/host.md +944 -118
- package/docs/api/index.md +320 -18
- package/docs/api/keys.md +24 -1
- package/docs/api/mcp.md +59 -12
- package/docs/api/modules.md +33 -40
- package/docs/api/pack.md +57 -8
- package/docs/api/page/mount.md +92 -4
- package/docs/api/workers-git.md +103 -24
- package/docs/api/workers.md +1581 -244
- package/docs/site/agent-quickstart.mdx +28 -14
- package/examples/standalone/worker.ts +3 -1
- package/examples/standalone/wrangler.jsonc +2 -0
- package/package.json +73 -69
- package/dist/installation-consent.d.ts +0 -79
- package/dist/installation-consent.js +0 -82
- package/dist/shell/app-directory.d.ts +0 -542
- package/dist/shell/app-directory.js +0 -199
- package/dist/shell/browser-actions.d.ts +0 -7
- package/dist/shell/browser-actions.js +0 -56
- package/dist/shell/command-host.d.ts +0 -112
- package/dist/shell/command-host.js +0 -502
- package/dist/shell/commands.d.ts +0 -25
- package/dist/shell/commands.js +0 -78
- package/dist/shell/index.d.ts +0 -8
- package/dist/shell/index.js +0 -8
- package/dist/shell/keys.d.ts +0 -41
- package/dist/shell/keys.js +0 -134
- package/dist/shell/shell-module.d.ts +0 -55
- package/dist/shell/shell-module.js +0 -86
- package/dist/shell/window-manager.d.ts +0 -124
- package/dist/shell/window-manager.js +0 -711
- package/dist/shell/workbench-contract.d.ts +0 -68
- package/dist/shell/workbench-directory.d.ts +0 -332
- package/dist/shell/workbench-directory.js +0 -35
- package/dist/shell/workbench-host-types.d.ts +0 -96
- package/dist/shell/workbench-host-types.js +0 -1
- package/dist/shell/workbench-host.d.ts +0 -34
- package/dist/shell/workbench-host.js +0 -347
- package/dist/shell/workbench-model.d.ts +0 -192
- package/dist/shell/workbench-model.js +0 -53
- package/dist/shell/workbench.d.ts +0 -4
- package/dist/shell/workbench.js +0 -2
- package/docs/api/shell/app-directory.md +0 -599
- package/docs/api/shell/command-host.md +0 -224
- package/docs/api/shell/commands.md +0 -197
- package/docs/api/shell/keys.md +0 -183
- package/docs/api/shell/shell-module.md +0 -204
- package/docs/api/shell/window-manager.md +0 -267
- package/docs/api/shell/workbench-directory.md +0 -119
- package/docs/api/shell/workbench.md +0 -205
- package/docs/api/shell.md +0 -1915
- /package/dist/{shell/workbench-contract.js → page/boot-host.d.ts} +0 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { readFile, realpath } from "node:fs/promises";
|
|
2
|
+
import { dirname, extname, join } from "node:path";
|
|
3
|
+
import { fileURLToPath, pathToFileURL, URL } from "node:url";
|
|
4
|
+
import { build } from "esbuild";
|
|
5
|
+
import { parse } from "parse5";
|
|
6
|
+
import { isInsideSnapshot } from "./snapshot-programs/snapshot-path.js";
|
|
7
|
+
// Only code contributes package imports. Vite, not this planning pass, owns
|
|
8
|
+
// loading, validating and emitting assets (including extension-specific loaders).
|
|
9
|
+
const codeExtensions = new Set([
|
|
10
|
+
".js",
|
|
11
|
+
".jsx",
|
|
12
|
+
".mjs",
|
|
13
|
+
".cjs",
|
|
14
|
+
".ts",
|
|
15
|
+
".tsx",
|
|
16
|
+
".mts",
|
|
17
|
+
".cts",
|
|
18
|
+
".json",
|
|
19
|
+
]);
|
|
20
|
+
/**
|
|
21
|
+
* Find runtime package imports in the App, not in its authoring tools or in
|
|
22
|
+
* package export siblings. esbuild follows local modules and erases type-only
|
|
23
|
+
* imports; packages stay external until their declared products are compiled.
|
|
24
|
+
* parse5 owns HTML syntax, including inline module scripts.
|
|
25
|
+
*/
|
|
26
|
+
export async function appRuntimeImports(options) {
|
|
27
|
+
const root = await realpath(options.root);
|
|
28
|
+
const contained = async (path) => {
|
|
29
|
+
const resolved = await realpath(path);
|
|
30
|
+
if (!isInsideSnapshot(root, resolved))
|
|
31
|
+
throw new Error(`App import escapes the captured source: ${path}`);
|
|
32
|
+
return resolved;
|
|
33
|
+
};
|
|
34
|
+
const entry = await contained(join(root, options.entry));
|
|
35
|
+
const modules = [];
|
|
36
|
+
const document = parse(await readFile(entry, "utf8"));
|
|
37
|
+
const visit = (node) => {
|
|
38
|
+
if ("tagName" in node && node.tagName === "script") {
|
|
39
|
+
const attribute = (name) => node.attrs.find((attribute) => attribute.name === name)?.value;
|
|
40
|
+
if (attribute("type") === "module") {
|
|
41
|
+
const src = attribute("src");
|
|
42
|
+
if (src !== undefined) {
|
|
43
|
+
// Vite roots absolute page paths beside the HTML entry.
|
|
44
|
+
const url = new URL(src.startsWith("/") && !src.startsWith("//") ? `.${src}` : src, pathToFileURL(entry));
|
|
45
|
+
if (url.protocol === "file:")
|
|
46
|
+
modules.push({ entryPoints: [fileURLToPath(url)] });
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
modules.push({
|
|
50
|
+
stdin: {
|
|
51
|
+
contents: node.childNodes
|
|
52
|
+
.map((child) => ("value" in child ? child.value : ""))
|
|
53
|
+
.join(""),
|
|
54
|
+
resolveDir: dirname(entry),
|
|
55
|
+
sourcefile: entry,
|
|
56
|
+
loader: "js",
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if ("childNodes" in node)
|
|
63
|
+
node.childNodes.forEach(visit);
|
|
64
|
+
};
|
|
65
|
+
visit(document);
|
|
66
|
+
for (const path of [options.backendEntry, options.shellEntry])
|
|
67
|
+
if (path !== undefined)
|
|
68
|
+
modules.push({ entryPoints: [await contained(join(root, path))] });
|
|
69
|
+
const imports = new Set();
|
|
70
|
+
for (const module of modules) {
|
|
71
|
+
const result = await build({
|
|
72
|
+
...module,
|
|
73
|
+
absWorkingDir: root,
|
|
74
|
+
bundle: true,
|
|
75
|
+
write: false,
|
|
76
|
+
metafile: true,
|
|
77
|
+
packages: "external",
|
|
78
|
+
platform: "neutral",
|
|
79
|
+
format: "esm",
|
|
80
|
+
outdir: ".botanical/app-imports",
|
|
81
|
+
logLevel: "silent",
|
|
82
|
+
plugins: [
|
|
83
|
+
{
|
|
84
|
+
name: "captured-app-imports",
|
|
85
|
+
setup(build) {
|
|
86
|
+
build.onLoad({ filter: /.*/ }, async ({ path, suffix }) => {
|
|
87
|
+
await contained(path);
|
|
88
|
+
const query = new URL(suffix, "file:///").searchParams;
|
|
89
|
+
if (!codeExtensions.has(extname(path)) ||
|
|
90
|
+
query.has("raw") ||
|
|
91
|
+
query.has("url"))
|
|
92
|
+
return { contents: "", loader: "empty" };
|
|
93
|
+
return undefined;
|
|
94
|
+
});
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
});
|
|
99
|
+
for (const output of Object.values(result.metafile.outputs))
|
|
100
|
+
for (const imported of output.imports)
|
|
101
|
+
if (imported.external)
|
|
102
|
+
imports.add(imported.path);
|
|
103
|
+
}
|
|
104
|
+
return imports;
|
|
105
|
+
}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The pinned workspace build policy: how a captured workspace's manifests
|
|
3
|
-
* build (`package.json#fungi.build`).
|
|
4
|
-
*
|
|
3
|
+
* build (`package.json#fungi.build`). v4 selects App compile roots from runtime
|
|
4
|
+
* imports, not the authoring/host dependencies in its owning manifest.
|
|
5
|
+
* A dependency may name its own package build script, which
|
|
6
|
+
* only an admitted Computer build runs.
|
|
5
7
|
*
|
|
6
8
|
* It is part of every workspace HTML recipe's toolchain, so its digest moves
|
|
7
9
|
* with it, and the Computer build request carries it at the top level, where
|
|
8
10
|
* a builder compiled before it existed refuses the request outright.
|
|
9
11
|
*/
|
|
10
|
-
export declare const workspaceBuildPolicy = "package-json-fungi-build-
|
|
12
|
+
export declare const workspaceBuildPolicy = "package-json-fungi-build-v4";
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The pinned workspace build policy: how a captured workspace's manifests
|
|
3
|
-
* build (`package.json#fungi.build`).
|
|
4
|
-
*
|
|
3
|
+
* build (`package.json#fungi.build`). v4 selects App compile roots from runtime
|
|
4
|
+
* imports, not the authoring/host dependencies in its owning manifest.
|
|
5
|
+
* A dependency may name its own package build script, which
|
|
6
|
+
* only an admitted Computer build runs.
|
|
5
7
|
*
|
|
6
8
|
* It is part of every workspace HTML recipe's toolchain, so its digest moves
|
|
7
9
|
* with it, and the Computer build request carries it at the top level, where
|
|
8
10
|
* a builder compiled before it existed refuses the request outright.
|
|
9
11
|
*/
|
|
10
|
-
export const workspaceBuildPolicy = "package-json-fungi-build-
|
|
12
|
+
export const workspaceBuildPolicy = "package-json-fungi-build-v4";
|
|
@@ -6,7 +6,7 @@ export declare class TeamCandidateBuildError extends Error {
|
|
|
6
6
|
export declare const teamCandidateConfigurationSchema: Schema.Struct<{
|
|
7
7
|
/** The build policy the host expects; a builder that predates it refuses
|
|
8
8
|
* the request, and this one refuses any other. */
|
|
9
|
-
readonly buildPolicy: Schema.Literal<"package-json-fungi-build-
|
|
9
|
+
readonly buildPolicy: Schema.Literal<"package-json-fungi-build-v4">;
|
|
10
10
|
readonly appId: Schema.refine<import("@fungi.computer/puffball").AppId, Schema.String>;
|
|
11
11
|
readonly sourceRevision: Schema.refine<import("@fungi.computer/puffball").SourceRevision, Schema.String>;
|
|
12
12
|
readonly recipe: Schema.Struct<{
|