diff options
| author | Adam Malczewski <[email protected]> | 2026-06-06 18:55:53 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-06 18:55:53 +0900 |
| commit | 22936857685c318b71752d625808100b1a96e63e (patch) | |
| tree | 5e10a73d616c206e3820a8d8568e5f3d4c8a302e /bun.lock | |
| parent | 969afc45f895230fe3da1c737f18e64452efc8f2 (diff) | |
| download | dispatch-22936857685c318b71752d625808100b1a96e63e.tar.gz dispatch-22936857685c318b71752d625808100b1a96e63e.zip | |
feat(frontend,wire): surface system (FE slice 1) + @dispatch/wire types-only split (B2)
FE slice 1 — backend-declared, frontend-agnostic surface system (verified live): new types-only @dispatch/ui-contract (SurfaceSpec / field kinds / region / ActionRef / catalog), surface-registry (typed service handle), transport-ws (Bun WS :24205, path-agnostic upgrade), surface-loaded-extensions (first real surface); kernel HostAPI.getExtensions; host-bin wiring; bin/up. Harness: retire AGENTS 'backend only', ORCHESTRATOR §3/§7/§8, frontend-design.md locked.
B2 — wire-types split (chat-slice prerequisite): new types-only @dispatch/wire single-sources the wire ABI (AgentEvent + 11 variants; conversation model Chunk/ChatMessage/Role/TurnId/StepId + 6 chunk variants; Usage) with zero @dispatch/* deps. @dispatch/kernel re-exports via shims so its public surface is byte-identical (zero consumer blast radius). transport-contract re-exports AgentEvent from @dispatch/wire and drops its @dispatch/kernel dependency, so HTTP clients (the web frontend) consume the wire without the kernel runtime.
tsc -b + biome clean; 460 vitest + 77 bun pass.
Diffstat (limited to 'bun.lock')
| -rw-r--r-- | bun.lock | 52 |
1 files changed, 51 insertions, 1 deletions
@@ -51,8 +51,11 @@ "@dispatch/provider-openai-compat": "workspace:*", "@dispatch/session-orchestrator": "workspace:*", "@dispatch/storage-sqlite": "workspace:*", + "@dispatch/surface-loaded-extensions": "workspace:*", + "@dispatch/surface-registry": "workspace:*", "@dispatch/tool-read-file": "workspace:*", "@dispatch/transport-http": "workspace:*", + "@dispatch/transport-ws": "workspace:*", }, }, "packages/journal-sink": { @@ -65,6 +68,9 @@ "packages/kernel": { "name": "@dispatch/kernel", "version": "0.0.0", + "dependencies": { + "@dispatch/wire": "workspace:*", + }, }, "packages/observability-collector": { "name": "@dispatch/observability-collector", @@ -98,6 +104,23 @@ "@dispatch/kernel": "workspace:*", }, }, + "packages/surface-loaded-extensions": { + "name": "@dispatch/surface-loaded-extensions", + "version": "0.0.0", + "dependencies": { + "@dispatch/kernel": "workspace:*", + "@dispatch/surface-registry": "workspace:*", + "@dispatch/ui-contract": "workspace:*", + }, + }, + "packages/surface-registry": { + "name": "@dispatch/surface-registry", + "version": "0.0.0", + "dependencies": { + "@dispatch/kernel": "workspace:*", + "@dispatch/ui-contract": "workspace:*", + }, + }, "packages/tool-read-file": { "name": "@dispatch/tool-read-file", "version": "0.0.0", @@ -120,7 +143,7 @@ "name": "@dispatch/transport-contract", "version": "0.0.0", "dependencies": { - "@dispatch/kernel": "workspace:*", + "@dispatch/wire": "workspace:*", }, }, "packages/transport-http": { @@ -134,6 +157,23 @@ "hono": "^4.0.0", }, }, + "packages/transport-ws": { + "name": "@dispatch/transport-ws", + "version": "0.0.0", + "dependencies": { + "@dispatch/kernel": "workspace:*", + "@dispatch/surface-registry": "workspace:*", + "@dispatch/ui-contract": "workspace:*", + }, + }, + "packages/ui-contract": { + "name": "@dispatch/ui-contract", + "version": "0.0.0", + }, + "packages/wire": { + "name": "@dispatch/wire", + "version": "0.0.0", + }, }, "packages": { "@biomejs/biome": ["@biomejs/[email protected]", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.4.16", "@biomejs/cli-darwin-x64": "2.4.16", "@biomejs/cli-linux-arm64": "2.4.16", "@biomejs/cli-linux-arm64-musl": "2.4.16", "@biomejs/cli-linux-x64": "2.4.16", "@biomejs/cli-linux-x64-musl": "2.4.16", "@biomejs/cli-win32-arm64": "2.4.16", "@biomejs/cli-win32-x64": "2.4.16" }, "bin": { "biome": "bin/biome" } }, "sha512-x9ajFh1zChVybCiM3TN6OD4phAqLgtPZjFrZF+aTMYCPjwBO+k529TX7PPsAqtGNLeV4UgzwQnowEgS7bGmzcA=="], @@ -176,6 +216,10 @@ "@dispatch/storage-sqlite": ["@dispatch/storage-sqlite@workspace:packages/storage-sqlite"], + "@dispatch/surface-loaded-extensions": ["@dispatch/surface-loaded-extensions@workspace:packages/surface-loaded-extensions"], + + "@dispatch/surface-registry": ["@dispatch/surface-registry@workspace:packages/surface-registry"], + "@dispatch/tool-read-file": ["@dispatch/tool-read-file@workspace:packages/tool-read-file"], "@dispatch/trace-replay": ["@dispatch/trace-replay@workspace:packages/trace-replay"], @@ -186,6 +230,12 @@ "@dispatch/transport-http": ["@dispatch/transport-http@workspace:packages/transport-http"], + "@dispatch/transport-ws": ["@dispatch/transport-ws@workspace:packages/transport-ws"], + + "@dispatch/ui-contract": ["@dispatch/ui-contract@workspace:packages/ui-contract"], + + "@dispatch/wire": ["@dispatch/wire@workspace:packages/wire"], + "@esbuild/aix-ppc64": ["@esbuild/[email protected]", "", { "os": "aix", "cpu": "ppc64" }, "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg=="], "@esbuild/android-arm": ["@esbuild/[email protected]", "", { "os": "android", "cpu": "arm" }, "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ=="], |
