@vibesdotdev/vessel 0.0.0-stage → 1.0.0-rc.2
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/LICENSE +18 -0
- package/README.md +90 -2
- package/dist/apps/filesystem.vessel.plugin.d.ts +307 -0
- package/dist/apps/filesystem.vessel.plugin.d.ts.map +1 -0
- package/dist/apps/filesystem.vessel.plugin.js +134 -0
- package/dist/apps/filesystem.vessel.plugin.js.map +1 -0
- package/dist/apps/storage.vessel.plugin.d.ts +318 -0
- package/dist/apps/storage.vessel.plugin.d.ts.map +1 -0
- package/dist/apps/storage.vessel.plugin.js +132 -0
- package/dist/apps/storage.vessel.plugin.js.map +1 -0
- package/dist/apps/terminal.vessel.plugin.d.ts +306 -0
- package/dist/apps/terminal.vessel.plugin.d.ts.map +1 -0
- package/dist/apps/terminal.vessel.plugin.js +112 -0
- package/dist/apps/terminal.vessel.plugin.js.map +1 -0
- package/dist/boundary.d.ts +10 -0
- package/dist/boundary.d.ts.map +1 -0
- package/dist/boundary.js +43 -0
- package/dist/boundary.js.map +1 -0
- package/dist/client/helper.d.ts +4 -0
- package/dist/client/helper.d.ts.map +1 -0
- package/dist/client/helper.js +5 -0
- package/dist/client/helper.js.map +1 -0
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +3 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/vessel-client.d.ts +39 -0
- package/dist/client/vessel-client.d.ts.map +1 -0
- package/dist/client/vessel-client.js +101 -0
- package/dist/client/vessel-client.js.map +1 -0
- package/dist/docs/vessel.docs.descriptor.d.ts +4 -0
- package/dist/docs/vessel.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/vessel.docs.descriptor.js +96 -0
- package/dist/docs/vessel.docs.descriptor.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/kinds.d.ts +24 -0
- package/dist/kinds.d.ts.map +1 -0
- package/dist/kinds.js +78 -0
- package/dist/kinds.js.map +1 -0
- package/dist/launch/cli/descriptor.d.ts +3 -0
- package/dist/launch/cli/descriptor.d.ts.map +1 -0
- package/dist/launch/cli/descriptor.js +24 -0
- package/dist/launch/cli/descriptor.js.map +1 -0
- package/dist/launch/cli/implementation.d.ts +7 -0
- package/dist/launch/cli/implementation.d.ts.map +1 -0
- package/dist/launch/cli/implementation.js +14 -0
- package/dist/launch/cli/implementation.js.map +1 -0
- package/dist/launch/cli/options.d.ts +10 -0
- package/dist/launch/cli/options.d.ts.map +1 -0
- package/dist/launch/cli/options.js +12 -0
- package/dist/launch/cli/options.js.map +1 -0
- package/dist/launch/cli/plugin.d.ts +4 -0
- package/dist/launch/cli/plugin.d.ts.map +1 -0
- package/dist/launch/cli/plugin.js +12 -0
- package/dist/launch/cli/plugin.js.map +1 -0
- package/dist/launch/cli/request.d.ts +23 -0
- package/dist/launch/cli/request.d.ts.map +1 -0
- package/dist/launch/cli/request.js +27 -0
- package/dist/launch/cli/request.js.map +1 -0
- package/dist/launch/ensure-host.d.ts +48 -0
- package/dist/launch/ensure-host.d.ts.map +1 -0
- package/dist/launch/ensure-host.js +54 -0
- package/dist/launch/ensure-host.js.map +1 -0
- package/dist/launch/index.d.ts +9 -0
- package/dist/launch/index.d.ts.map +1 -0
- package/dist/launch/index.js +52 -0
- package/dist/launch/index.js.map +1 -0
- package/dist/launch/plugin.d.ts +6 -0
- package/dist/launch/plugin.d.ts.map +1 -0
- package/dist/launch/plugin.js +20 -0
- package/dist/launch/plugin.js.map +1 -0
- package/dist/launch/schema.d.ts +66 -0
- package/dist/launch/schema.d.ts.map +1 -0
- package/dist/launch/schema.js +71 -0
- package/dist/launch/schema.js.map +1 -0
- package/dist/launch/workspaces.d.ts +134 -0
- package/dist/launch/workspaces.d.ts.map +1 -0
- package/dist/launch/workspaces.js +60 -0
- package/dist/launch/workspaces.js.map +1 -0
- package/dist/module-not-found.d.ts +3 -0
- package/dist/module-not-found.d.ts.map +1 -0
- package/dist/module-not-found.js +18 -0
- package/dist/module-not-found.js.map +1 -0
- package/dist/schemas/platform.config.descriptor.d.ts +34 -0
- package/dist/schemas/platform.config.descriptor.d.ts.map +1 -0
- package/dist/schemas/platform.config.descriptor.js +13 -0
- package/dist/schemas/platform.config.descriptor.js.map +1 -0
- package/dist/schemas.d.ts +2213 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +661 -0
- package/dist/schemas.js.map +1 -0
- package/dist/shell/app-surface.d.ts +55 -0
- package/dist/shell/app-surface.d.ts.map +1 -0
- package/dist/shell/app-surface.js +159 -0
- package/dist/shell/app-surface.js.map +1 -0
- package/dist/shell/dock.d.ts +30 -0
- package/dist/shell/dock.d.ts.map +1 -0
- package/dist/shell/dock.js +75 -0
- package/dist/shell/dock.js.map +1 -0
- package/dist/shell/index.d.ts +11 -0
- package/dist/shell/index.d.ts.map +1 -0
- package/dist/shell/index.js +10 -0
- package/dist/shell/index.js.map +1 -0
- package/dist/shell/launch-resolution.d.ts +49 -0
- package/dist/shell/launch-resolution.d.ts.map +1 -0
- package/dist/shell/launch-resolution.js +163 -0
- package/dist/shell/launch-resolution.js.map +1 -0
- package/dist/shell/layout-grid.d.ts +30 -0
- package/dist/shell/layout-grid.d.ts.map +1 -0
- package/dist/shell/layout-grid.js +56 -0
- package/dist/shell/layout-grid.js.map +1 -0
- package/dist/shell/owner-surface-lifecycle.d.ts +30 -0
- package/dist/shell/owner-surface-lifecycle.d.ts.map +1 -0
- package/dist/shell/owner-surface-lifecycle.js +54 -0
- package/dist/shell/owner-surface-lifecycle.js.map +1 -0
- package/dist/shell/ports.d.ts +107 -0
- package/dist/shell/ports.d.ts.map +1 -0
- package/dist/shell/ports.js +154 -0
- package/dist/shell/ports.js.map +1 -0
- package/dist/shell/types.d.ts +7 -0
- package/dist/shell/types.d.ts.map +1 -0
- package/dist/shell/types.js +2 -0
- package/dist/shell/types.js.map +1 -0
- package/dist/shell/window-manager.d.ts +82 -0
- package/dist/shell/window-manager.d.ts.map +1 -0
- package/dist/shell/window-manager.js +285 -0
- package/dist/shell/window-manager.js.map +1 -0
- package/dist/shell/workspace-memory.d.ts +42 -0
- package/dist/shell/workspace-memory.d.ts.map +1 -0
- package/dist/shell/workspace-memory.js +65 -0
- package/dist/shell/workspace-memory.js.map +1 -0
- package/dist/shell/workspace-state.d.ts +47 -0
- package/dist/shell/workspace-state.d.ts.map +1 -0
- package/dist/shell/workspace-state.js +137 -0
- package/dist/shell/workspace-state.js.map +1 -0
- package/dist/vessel.docs.plugin.d.ts +4 -0
- package/dist/vessel.docs.plugin.d.ts.map +1 -0
- package/dist/vessel.docs.plugin.js +11 -0
- package/dist/vessel.docs.plugin.js.map +1 -0
- package/dist/vessel.plugin.d.ts +3 -0
- package/dist/vessel.plugin.d.ts.map +1 -0
- package/dist/vessel.plugin.js +23 -0
- package/dist/vessel.plugin.js.map +1 -0
- package/dist/vessel.runtime-client.descriptor.d.ts +4 -0
- package/dist/vessel.runtime-client.descriptor.d.ts.map +1 -0
- package/dist/vessel.runtime-client.descriptor.js +13 -0
- package/dist/vessel.runtime-client.descriptor.js.map +1 -0
- package/dist/vessel.workspace-state.plugin.d.ts +4 -0
- package/dist/vessel.workspace-state.plugin.d.ts.map +1 -0
- package/dist/vessel.workspace-state.plugin.js +12 -0
- package/dist/vessel.workspace-state.plugin.js.map +1 -0
- package/dist/vessel.workspace.plugin.d.ts +3 -0
- package/dist/vessel.workspace.plugin.d.ts.map +1 -0
- package/dist/vessel.workspace.plugin.js +17 -0
- package/dist/vessel.workspace.plugin.js.map +1 -0
- package/dist/whiteboard/client.d.ts +35 -0
- package/dist/whiteboard/client.d.ts.map +1 -0
- package/dist/whiteboard/client.js +185 -0
- package/dist/whiteboard/client.js.map +1 -0
- package/dist/whiteboard/descriptor.d.ts +5 -0
- package/dist/whiteboard/descriptor.d.ts.map +1 -0
- package/dist/whiteboard/descriptor.js +14 -0
- package/dist/whiteboard/descriptor.js.map +1 -0
- package/dist/whiteboard/index.d.ts +7 -0
- package/dist/whiteboard/index.d.ts.map +1 -0
- package/dist/whiteboard/index.js +7 -0
- package/dist/whiteboard/index.js.map +1 -0
- package/dist/whiteboard/plugin.d.ts +3 -0
- package/dist/whiteboard/plugin.d.ts.map +1 -0
- package/dist/whiteboard/plugin.js +42 -0
- package/dist/whiteboard/plugin.js.map +1 -0
- package/dist/whiteboard/schemas.d.ts +479 -0
- package/dist/whiteboard/schemas.d.ts.map +1 -0
- package/dist/whiteboard/schemas.js +55 -0
- package/dist/whiteboard/schemas.js.map +1 -0
- package/dist/whiteboard/tools/apply.impl.d.ts +7 -0
- package/dist/whiteboard/tools/apply.impl.d.ts.map +1 -0
- package/dist/whiteboard/tools/apply.impl.js +12 -0
- package/dist/whiteboard/tools/apply.impl.js.map +1 -0
- package/dist/whiteboard/tools/descriptors.d.ts +489 -0
- package/dist/whiteboard/tools/descriptors.d.ts.map +1 -0
- package/dist/whiteboard/tools/descriptors.js +72 -0
- package/dist/whiteboard/tools/descriptors.js.map +1 -0
- package/dist/whiteboard/tools/get.impl.d.ts +7 -0
- package/dist/whiteboard/tools/get.impl.d.ts.map +1 -0
- package/dist/whiteboard/tools/get.impl.js +12 -0
- package/dist/whiteboard/tools/get.impl.js.map +1 -0
- package/dist/whiteboard/tools/open.impl.d.ts +7 -0
- package/dist/whiteboard/tools/open.impl.d.ts.map +1 -0
- package/dist/whiteboard/tools/open.impl.js +12 -0
- package/dist/whiteboard/tools/open.impl.js.map +1 -0
- package/dist/whiteboard/tools/signal.impl.d.ts +7 -0
- package/dist/whiteboard/tools/signal.impl.d.ts.map +1 -0
- package/dist/whiteboard/tools/signal.impl.js +11 -0
- package/dist/whiteboard/tools/signal.impl.js.map +1 -0
- package/dist/whiteboard/vessel-whiteboard.descriptors.d.ts +4 -0
- package/dist/whiteboard/vessel-whiteboard.descriptors.d.ts.map +1 -0
- package/dist/whiteboard/vessel-whiteboard.descriptors.js +61 -0
- package/dist/whiteboard/vessel-whiteboard.descriptors.js.map +1 -0
- package/dist/workspace/vessel-hub.descriptors.d.ts +543 -0
- package/dist/workspace/vessel-hub.descriptors.d.ts.map +1 -0
- package/dist/workspace/vessel-hub.descriptors.js +544 -0
- package/dist/workspace/vessel-hub.descriptors.js.map +1 -0
- package/dist/workspace/vessel-platform.descriptors.d.ts +809 -0
- package/dist/workspace/vessel-platform.descriptors.d.ts.map +1 -0
- package/dist/workspace/vessel-platform.descriptors.js +207 -0
- package/dist/workspace/vessel-platform.descriptors.js.map +1 -0
- package/dist/workspace/vessel-workspace.descriptors.d.ts +537 -0
- package/dist/workspace/vessel-workspace.descriptors.d.ts.map +1 -0
- package/dist/workspace/vessel-workspace.descriptors.js +115 -0
- package/dist/workspace/vessel-workspace.descriptors.js.map +1 -0
- package/dist/workspace-state/index.d.ts +3 -0
- package/dist/workspace-state/index.d.ts.map +1 -0
- package/dist/workspace-state/index.js +3 -0
- package/dist/workspace-state/index.js.map +1 -0
- package/dist/workspace-state/vessel.workspace-state.storage.descriptor.d.ts +51 -0
- package/dist/workspace-state/vessel.workspace-state.storage.descriptor.d.ts.map +1 -0
- package/dist/workspace-state/vessel.workspace-state.storage.descriptor.js +24 -0
- package/dist/workspace-state/vessel.workspace-state.storage.descriptor.js.map +1 -0
- package/package.json +207 -4
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { parseVesselValue, vesselFailure, vesselSyncOperation } from "../boundary.js";
|
|
2
|
+
import { VESSEL_WORKSPACE_STATE_SCHEMA_VERSION, advanceVesselWorkspaceReceipts, parseVesselWorkspaceState, vesselRouteStateSchema } from "../schemas.js";
|
|
3
|
+
import { createWindowManagerState, focusWindow, minimizeWindow, openWindow, orderedWindows } from "./window-manager.js";
|
|
4
|
+
/**
|
|
5
|
+
* Capture only windows backed by stable `vessel/surface` identities. Import
|
|
6
|
+
* paths, package names, app ids, and runtime instance ids never enter storage.
|
|
7
|
+
*/
|
|
8
|
+
export function captureVesselWorkspaceState(input) {
|
|
9
|
+
if (input.previous && input.previous.workspaceId !== input.workspaceId) {
|
|
10
|
+
throw vesselFailure('vessel-workspace-partition-conflict', 'CONFLICT');
|
|
11
|
+
}
|
|
12
|
+
const appsById = new Map(input.apps.map((app) => [app.id, app]));
|
|
13
|
+
let focusedAvailableAnchor;
|
|
14
|
+
const availableAnchors = orderedWindows(input.manager, { includeMinimized: true }).flatMap((win) => {
|
|
15
|
+
const app = appsById.get(win.appId);
|
|
16
|
+
if (!app || app.launch.type !== 'vessel-surface')
|
|
17
|
+
return [];
|
|
18
|
+
const surfaceId = app.launch.surfaceId;
|
|
19
|
+
// Maximization is transient shell presentation. Persist the floating
|
|
20
|
+
// rectangle so a later session never restores into a viewport-sized box.
|
|
21
|
+
const presentationRect = win.maximized && win.restoreRect ? win.restoreRect : win;
|
|
22
|
+
const anchor = {
|
|
23
|
+
surfaceId,
|
|
24
|
+
runtimePlaceId: win.runtimePlaceId,
|
|
25
|
+
routeParams: parseVesselValue(vesselRouteStateSchema, win.routeParams),
|
|
26
|
+
presentation: {
|
|
27
|
+
x: presentationRect.x,
|
|
28
|
+
y: presentationRect.y,
|
|
29
|
+
width: presentationRect.width,
|
|
30
|
+
height: presentationRect.height,
|
|
31
|
+
minimized: win.minimized
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
if (win.instanceId === input.manager.focusedInstanceId) {
|
|
35
|
+
focusedAvailableAnchor = anchor;
|
|
36
|
+
}
|
|
37
|
+
return [anchor];
|
|
38
|
+
});
|
|
39
|
+
const anchors = [...availableAnchors];
|
|
40
|
+
for (const retained of [...(input.retainedUnavailableAnchors ?? [])].sort((left, right) => left.index - right.index)) {
|
|
41
|
+
anchors.splice(Math.min(Math.max(retained.index, 0), anchors.length), 0, retained.anchor);
|
|
42
|
+
}
|
|
43
|
+
let availableLastFocus;
|
|
44
|
+
if (focusedAvailableAnchor) {
|
|
45
|
+
const focusIndex = anchors.indexOf(focusedAvailableAnchor);
|
|
46
|
+
availableLastFocus = {
|
|
47
|
+
surfaceId: focusedAvailableAnchor.surfaceId,
|
|
48
|
+
ordinal: anchors
|
|
49
|
+
.slice(0, focusIndex)
|
|
50
|
+
.filter((anchor) => anchor.surfaceId === focusedAvailableAnchor?.surfaceId).length
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
const persistedLastFocus = input.retainedUnavailableFocus ?? availableLastFocus;
|
|
54
|
+
const receipts = advanceVesselWorkspaceReceipts(input.previous?.receipts ?? [], input.receipts ?? []);
|
|
55
|
+
return parseVesselWorkspaceState({
|
|
56
|
+
schemaVersion: VESSEL_WORKSPACE_STATE_SCHEMA_VERSION,
|
|
57
|
+
workspaceId: input.workspaceId,
|
|
58
|
+
revision: (input.previous?.revision ?? 0) + 1,
|
|
59
|
+
savedAt: input.savedAt,
|
|
60
|
+
anchors,
|
|
61
|
+
lastFocus: persistedLastFocus,
|
|
62
|
+
chronologicalCue: input.chronologicalCue ??
|
|
63
|
+
{
|
|
64
|
+
type: 'saved',
|
|
65
|
+
occurredAt: input.savedAt,
|
|
66
|
+
surfaceId: persistedLastFocus?.surfaceId
|
|
67
|
+
},
|
|
68
|
+
receipts
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Restore against the app descriptors available now. Missing providers are
|
|
73
|
+
* reported and omitted; every surviving instance receives fresh ids and z-order.
|
|
74
|
+
*/
|
|
75
|
+
export function restoreVesselWorkspaceState(stored, apps, options = {}) {
|
|
76
|
+
const workspace = parseVesselWorkspaceState(stored);
|
|
77
|
+
const appsBySurfaceId = new Map();
|
|
78
|
+
for (const app of apps) {
|
|
79
|
+
if (app.launch.type !== 'vessel-surface')
|
|
80
|
+
continue;
|
|
81
|
+
if (!appsBySurfaceId.has(app.launch.surfaceId)) {
|
|
82
|
+
appsBySurfaceId.set(app.launch.surfaceId, app);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
let manager = createWindowManagerState();
|
|
86
|
+
const droppedSurfaceIds = [];
|
|
87
|
+
const unavailableAnchors = [];
|
|
88
|
+
const restoredInstances = new Map();
|
|
89
|
+
const surfaceOrdinals = new Map();
|
|
90
|
+
for (const [index, anchor] of workspace.anchors.entries()) {
|
|
91
|
+
const ordinal = surfaceOrdinals.get(anchor.surfaceId) ?? 0;
|
|
92
|
+
surfaceOrdinals.set(anchor.surfaceId, ordinal + 1);
|
|
93
|
+
const app = vesselSyncOperation(() => options.isAnchorAvailable?.(anchor, index), 'vessel-anchor-preflight-failed') === false
|
|
94
|
+
? undefined
|
|
95
|
+
: appsBySurfaceId.get(anchor.surfaceId);
|
|
96
|
+
if (!app) {
|
|
97
|
+
droppedSurfaceIds.push(anchor.surfaceId);
|
|
98
|
+
unavailableAnchors.push({ anchor, index });
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
manager = openWindow(manager, app, {
|
|
102
|
+
forceNew: true,
|
|
103
|
+
runtimePlaceId: anchor.runtimePlaceId,
|
|
104
|
+
rect: anchor.presentation,
|
|
105
|
+
routeParams: anchor.routeParams,
|
|
106
|
+
replaceRouteParams: true
|
|
107
|
+
});
|
|
108
|
+
const instanceId = manager.focusedInstanceId;
|
|
109
|
+
if (!instanceId) {
|
|
110
|
+
throw vesselFailure('vessel-window-restore-failed', 'INTERNAL');
|
|
111
|
+
}
|
|
112
|
+
const instances = restoredInstances.get(anchor.surfaceId) ?? new Map();
|
|
113
|
+
instances.set(ordinal, instanceId);
|
|
114
|
+
restoredInstances.set(anchor.surfaceId, instances);
|
|
115
|
+
if (anchor.presentation.minimized) {
|
|
116
|
+
manager = minimizeWindow(manager, instanceId);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
let unavailableLastFocus;
|
|
120
|
+
if (workspace.lastFocus) {
|
|
121
|
+
const instanceId = restoredInstances
|
|
122
|
+
.get(workspace.lastFocus.surfaceId)
|
|
123
|
+
?.get(workspace.lastFocus.ordinal);
|
|
124
|
+
if (instanceId)
|
|
125
|
+
manager = focusWindow(manager, instanceId);
|
|
126
|
+
else
|
|
127
|
+
unavailableLastFocus = workspace.lastFocus;
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
manager,
|
|
131
|
+
droppedSurfaceIds,
|
|
132
|
+
unavailableAnchors,
|
|
133
|
+
unavailableLastFocus,
|
|
134
|
+
restoredAnchorCount: workspace.anchors.length - droppedSurfaceIds.length
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=workspace-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-state.js","sourceRoot":"","sources":["../../src/shell/workspace-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vessel.docs.plugin.d.ts","sourceRoot":"","sources":["../src/vessel.docs.plugin.ts"],"names":[],"mappings":"AAGA,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,6CAK3B,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createRuntimePlugin } from '@vibesdotdev/kernel';
|
|
2
|
+
import vesselDocsDescriptor from "./docs/vessel.docs.descriptor.js";
|
|
3
|
+
/** Docs-only Vessel registration for hosts that must not install feature behavior. */
|
|
4
|
+
export const vesselDocsPlugin = createRuntimePlugin({
|
|
5
|
+
id: 'vessel.docs',
|
|
6
|
+
name: 'Vessel Documentation',
|
|
7
|
+
description: 'Discoverable Vessel desktop contracts and package boundaries.',
|
|
8
|
+
descriptors: [vesselDocsDescriptor]
|
|
9
|
+
});
|
|
10
|
+
export default vesselDocsPlugin;
|
|
11
|
+
//# sourceMappingURL=vessel.docs.plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vessel.docs.plugin.js","sourceRoot":"","sources":["../src/vessel.docs.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;AAEpE,sFAAsF;AACtF,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;IACnD,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,+DAA+D;IAC5E,WAAW,EAAE,CAAC,oBAAoB,CAAC;CACnC,CAAC,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vessel.plugin.d.ts","sourceRoot":"","sources":["../src/vessel.plugin.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,6CAgBvB,CAAC;AAEH,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { createRuntimePlugin, loader } from '@vibesdotdev/kernel';
|
|
2
|
+
import { vesselRuntimeKinds } from "./kinds.js";
|
|
3
|
+
import vesselRuntimeClientDescriptor from "./vessel.runtime-client.descriptor.js";
|
|
4
|
+
import vesselDocsPlugin from "./vessel.docs.plugin.js";
|
|
5
|
+
export const vesselPlugin = createRuntimePlugin({
|
|
6
|
+
id: 'vessel',
|
|
7
|
+
name: 'Vessel',
|
|
8
|
+
description: 'Desktop OS contracts, runtime descriptors, and review metadata for Vibes workspace hosts.',
|
|
9
|
+
dependencies: ['runtime-client', 'canvas'],
|
|
10
|
+
kinds: vesselRuntimeKinds,
|
|
11
|
+
descriptors: [vesselRuntimeClientDescriptor],
|
|
12
|
+
loaders: [
|
|
13
|
+
loader('vessel', { kind: 'runtime/client' }, async () => {
|
|
14
|
+
const { VesselClient } = await import("./client/vessel-client.js");
|
|
15
|
+
return { impl: VesselClient };
|
|
16
|
+
})
|
|
17
|
+
],
|
|
18
|
+
onRegister: async (runtime) => {
|
|
19
|
+
await runtime.registerPlugin(vesselDocsPlugin);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
export default vesselPlugin;
|
|
23
|
+
//# sourceMappingURL=vessel.plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vessel.plugin.js","sourceRoot":"","sources":["../src/vessel.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,6BAA6B,MAAM,uCAAuC,CAAC;AAClF,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AAEvD,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC;IAC/C,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,2FAA2F;IACxG,YAAY,EAAE,CAAC,gBAAgB,EAAE,QAAQ,CAAC;IAC1C,KAAK,EAAE,kBAAkB;IACzB,WAAW,EAAE,CAAC,6BAA6B,CAAC;IAC5C,OAAO,EAAE;QACR,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;YACnE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAC/B,CAAC,CAAC;KACF;IACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC7B,MAAM,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAChD,CAAC;CACD,CAAC,CAAC;AAEH,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vessel.runtime-client.descriptor.d.ts","sourceRoot":"","sources":["../src/vessel.runtime-client.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAEzG,QAAA,MAAM,UAAU,EAAE,uBAShB,CAAC;AAEH,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { RuntimeClientDescriptorSchema } from '@vibesdotdev/kernel/client';
|
|
2
|
+
const descriptor = RuntimeClientDescriptorSchema.parse({
|
|
3
|
+
id: 'vessel',
|
|
4
|
+
kind: 'runtime/client',
|
|
5
|
+
name: 'Vessel Client',
|
|
6
|
+
description: 'Runtime client for Vessel desktop descriptors, readiness, setup, review, and OS standard metadata.',
|
|
7
|
+
enabled: true,
|
|
8
|
+
hardware: ['consumer', 'cloud'],
|
|
9
|
+
requiredContext: [],
|
|
10
|
+
optionalContext: ['user', 'surface', 'session']
|
|
11
|
+
});
|
|
12
|
+
export default descriptor;
|
|
13
|
+
//# sourceMappingURL=vessel.runtime-client.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vessel.runtime-client.descriptor.js","sourceRoot":"","sources":["../src/vessel.runtime-client.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAgC,MAAM,4BAA4B,CAAC;AAEzG,MAAM,UAAU,GAA4B,6BAA6B,CAAC,KAAK,CAAC;IAC/E,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,oGAAoG;IACjH,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;IAC/B,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;CAC/C,CAAC,CAAC;AAEH,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Optional persistence slice for browser hosts that compose Storage + IDB. */
|
|
2
|
+
export declare const vesselWorkspaceStatePlugin: import("@vibesdotdev/kernel").RuntimePlugin;
|
|
3
|
+
export default vesselWorkspaceStatePlugin;
|
|
4
|
+
//# sourceMappingURL=vessel.workspace-state.plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vessel.workspace-state.plugin.d.ts","sourceRoot":"","sources":["../src/vessel.workspace-state.plugin.ts"],"names":[],"mappings":"AAGA,+EAA+E;AAC/E,eAAO,MAAM,0BAA0B,6CAMrC,CAAC;AAEH,eAAe,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createRuntimePlugin } from '@vibesdotdev/kernel';
|
|
2
|
+
import vesselWorkspaceStateStorageDescriptor from "./workspace-state/vessel.workspace-state.storage.descriptor.js";
|
|
3
|
+
/** Optional persistence slice for browser hosts that compose Storage + IDB. */
|
|
4
|
+
export const vesselWorkspaceStatePlugin = createRuntimePlugin({
|
|
5
|
+
id: 'vessel-workspace-state',
|
|
6
|
+
name: 'Vessel Workspace State',
|
|
7
|
+
description: 'Device-local return-point persistence for Vessel workspaces.',
|
|
8
|
+
dependencies: ['vessel', 'storage'],
|
|
9
|
+
descriptors: [vesselWorkspaceStateStorageDescriptor]
|
|
10
|
+
});
|
|
11
|
+
export default vesselWorkspaceStatePlugin;
|
|
12
|
+
//# sourceMappingURL=vessel.workspace-state.plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vessel.workspace-state.plugin.js","sourceRoot":"","sources":["../src/vessel.workspace-state.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,qCAAqC,MAAM,gEAAgE,CAAC;AAEnH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,0BAA0B,GAAG,mBAAmB,CAAC;IAC7D,EAAE,EAAE,wBAAwB;IAC5B,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE,8DAA8D;IAC3E,YAAY,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;IACnC,WAAW,EAAE,CAAC,qCAAqC,CAAC;CACpD,CAAC,CAAC;AAEH,eAAe,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vessel.workspace.plugin.d.ts","sourceRoot":"","sources":["../src/vessel.workspace.plugin.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,6CAUhC,CAAC;AAEH,eAAe,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createRuntimePlugin } from '@vibesdotdev/kernel';
|
|
2
|
+
import { resolveVesselPlatformDescriptors, vesselPlatformDescriptors } from "./workspace/vessel-platform.descriptors.js";
|
|
3
|
+
import { vesselWorkspaceDescriptors } from "./workspace/vessel-workspace.descriptors.js";
|
|
4
|
+
export const vesselWorkspacePlugin = createRuntimePlugin({
|
|
5
|
+
id: 'vessel-workspace',
|
|
6
|
+
name: 'Workspace',
|
|
7
|
+
description: 'Product-safe starter descriptors for a workspace desktop.',
|
|
8
|
+
dependencies: ['vessel'],
|
|
9
|
+
descriptors: vesselWorkspaceDescriptors.filter(descriptor => !vesselPlatformDescriptors.some(platform => platform.id === descriptor.id && platform.kind === descriptor.kind)),
|
|
10
|
+
onRegister: async (runtime) => {
|
|
11
|
+
const descriptors = await resolveVesselPlatformDescriptors(runtime);
|
|
12
|
+
for (const descriptor of descriptors)
|
|
13
|
+
runtime.registerDescriptor(descriptor.kind, descriptor);
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
export default vesselWorkspacePlugin;
|
|
17
|
+
//# sourceMappingURL=vessel.workspace.plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vessel.workspace.plugin.js","sourceRoot":"","sources":["../src/vessel.workspace.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,gCAAgC,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACzH,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAEzF,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;IACxD,EAAE,EAAE,kBAAkB;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,2DAA2D;IACxE,YAAY,EAAE,CAAC,QAAQ,CAAC;IACxB,WAAW,EAAE,0BAA0B,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7K,UAAU,EAAE,KAAK,EAAC,OAAO,EAAC,EAAE;QAC3B,MAAM,WAAW,GAAG,MAAM,gCAAgC,CAAC,OAAO,CAAC,CAAC;QACpE,KAAK,MAAM,UAAU,IAAI,WAAW;YAAE,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC/F,CAAC;CACD,CAAC,CAAC;AAEH,eAAe,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { BaseRuntimeClient, type RuntimeClientDescriptor } from '@vibesdotdev/kernel/client';
|
|
2
|
+
import { type KindContext, type RuntimeRef } from '@vibesdotdev/kernel';
|
|
3
|
+
import { type CanvasBoardDocument, type CanvasBoardOp } from '@vibesdotdev/canvas';
|
|
4
|
+
import { type VesselWhiteboardOpenInput, type VesselWhiteboardGetInput, type VesselWhiteboardApplyInput, type VesselWhiteboardSignalInput, type VesselWhiteboardSignalOutput } from './schemas.ts';
|
|
5
|
+
export interface VesselWhiteboardRPC {
|
|
6
|
+
open(input: VesselWhiteboardOpenInput): Promise<CanvasBoardDocument>;
|
|
7
|
+
getBoard(input: VesselWhiteboardGetInput): Promise<CanvasBoardDocument>;
|
|
8
|
+
applyOps(input: VesselWhiteboardApplyInput): Promise<CanvasBoardDocument>;
|
|
9
|
+
signal(input: VesselWhiteboardSignalInput): Promise<VesselWhiteboardSignalOutput>;
|
|
10
|
+
}
|
|
11
|
+
/** Session-local board provider; the sealed Canvas registration is a snapshot. */
|
|
12
|
+
export declare class VesselWhiteboardClient extends BaseRuntimeClient implements VesselWhiteboardRPC {
|
|
13
|
+
private readonly boards;
|
|
14
|
+
private readonly sessionIndex;
|
|
15
|
+
private readonly registrations;
|
|
16
|
+
private readonly signalLifetime;
|
|
17
|
+
private closed;
|
|
18
|
+
private readonly controller;
|
|
19
|
+
private readonly onAbort;
|
|
20
|
+
constructor(descriptor: RuntimeClientDescriptor, context?: KindContext, runtime?: RuntimeRef);
|
|
21
|
+
private assertLive;
|
|
22
|
+
private record;
|
|
23
|
+
open(input: VesselWhiteboardOpenInput): Promise<CanvasBoardDocument>;
|
|
24
|
+
getBoard(input: VesselWhiteboardGetInput): Promise<CanvasBoardDocument>;
|
|
25
|
+
applyOps(input: VesselWhiteboardApplyInput): Promise<CanvasBoardDocument>;
|
|
26
|
+
signal(input: VesselWhiteboardSignalInput): Promise<VesselWhiteboardSignalOutput>;
|
|
27
|
+
getElements(boardId: string): CanvasBoardOp[];
|
|
28
|
+
getHistory(boardId: string): CanvasBoardOp[];
|
|
29
|
+
findBoardBySession(sessionRef: string): CanvasBoardDocument | undefined;
|
|
30
|
+
listBoards(): CanvasBoardDocument[];
|
|
31
|
+
private signalInternal;
|
|
32
|
+
private emitHook;
|
|
33
|
+
protected onDispose(): void;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/whiteboard/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAA0D,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAChI,OAAO,EAAiG,KAAK,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAElL,OAAO,EAGN,KAAK,yBAAyB,EAAE,KAAK,wBAAwB,EAAE,KAAK,0BAA0B,EAAE,KAAK,2BAA2B,EAChI,KAAK,4BAA4B,EACjC,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,mBAAmB;IACnC,IAAI,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrE,QAAQ,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACxE,QAAQ,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1E,MAAM,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;CAClF;AAID,kFAAkF;AAClF,qBAAa,sBAAuB,SAAQ,iBAAkB,YAAW,mBAAmB;IAC3F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IACzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAC7C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;gBAC/C,UAAU,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,UAAU;IAK5F,OAAO,CAAC,UAAU;IAGlB,OAAO,CAAC,MAAM;IAMR,IAAI,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA4BpE,QAAQ,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIvE,QAAQ,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAuCzE,MAAM,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAKvF,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE;IAI7C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE;IAI5C,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAKvE,UAAU,IAAI,mBAAmB,EAAE;YACrB,cAAc;YAId,QAAQ;cAWH,SAAS,IAAI,IAAI;CAYpC"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { BaseRuntimeClient } from '@vibesdotdev/kernel/client';
|
|
2
|
+
import { CapabilityError, CaughtFailureSchema, valueFreeFailure } from '@vibesdotdev/kernel';
|
|
3
|
+
import { CanvasBoardDescriptorSchema, CanvasBoardDocumentSchema, CanvasBoardOpSchema } from '@vibesdotdev/canvas';
|
|
4
|
+
import { parseVesselValue, vesselFailure } from "../boundary.js";
|
|
5
|
+
import { VesselWhiteboardOpenInputSchema, VesselWhiteboardGetInputSchema, VesselWhiteboardApplyInputSchema, VesselWhiteboardSignalInputSchema, VesselWhiteboardSignalOutputSchema, VesselWhiteboardOpenedEventSchema, VesselWhiteboardChangedEventSchema, VesselWhiteboardSignalEventSchema } from "./schemas.js";
|
|
6
|
+
const elementKinds = new Set(['stroke', 'shape', 'note', 'annotate', 'diagram']);
|
|
7
|
+
/** Session-local board provider; the sealed Canvas registration is a snapshot. */
|
|
8
|
+
export class VesselWhiteboardClient extends BaseRuntimeClient {
|
|
9
|
+
boards = new Map();
|
|
10
|
+
sessionIndex = new Map();
|
|
11
|
+
registrations = new Map();
|
|
12
|
+
signalLifetime;
|
|
13
|
+
closed = false;
|
|
14
|
+
controller = new AbortController();
|
|
15
|
+
onAbort = () => { this.dispose(); };
|
|
16
|
+
constructor(descriptor, context, runtime) {
|
|
17
|
+
super(descriptor, context, runtime);
|
|
18
|
+
this.signalLifetime = this.runtime.lifecycle.signal;
|
|
19
|
+
this.signalLifetime.addEventListener('abort', this.onAbort, { once: true });
|
|
20
|
+
}
|
|
21
|
+
assertLive() {
|
|
22
|
+
if (this.closed || this.signalLifetime.aborted)
|
|
23
|
+
throw vesselFailure('vessel-whiteboard-cancelled', 'CANCELLED');
|
|
24
|
+
}
|
|
25
|
+
record(boardId) {
|
|
26
|
+
this.assertLive();
|
|
27
|
+
const record = this.boards.get(boardId);
|
|
28
|
+
if (!record)
|
|
29
|
+
throw vesselFailure('vessel-whiteboard-board-not-found', 'NOT_FOUND');
|
|
30
|
+
return record;
|
|
31
|
+
}
|
|
32
|
+
async open(input) {
|
|
33
|
+
const parsed = parseVesselValue(VesselWhiteboardOpenInputSchema, input);
|
|
34
|
+
this.assertLive();
|
|
35
|
+
if (!this.runtime.hasKind('canvas/board'))
|
|
36
|
+
throw vesselFailure('vessel-whiteboard-canvas-required', 'UNAVAILABLE');
|
|
37
|
+
const existingId = this.sessionIndex.get(parsed.sessionRef);
|
|
38
|
+
if (existingId) {
|
|
39
|
+
const record = this.record(existingId);
|
|
40
|
+
if (parsed.showTarget) {
|
|
41
|
+
const document = parseVesselValue(CanvasBoardDocumentSchema, { ...record.document, showTarget: parsed.showTarget, updatedAt: new Date().toISOString(), revision: record.document.revision + 1 });
|
|
42
|
+
record.document = document;
|
|
43
|
+
await this.emitHook('board:changed', parseVesselValue(VesselWhiteboardChangedEventSchema, { boardId: document.boardId, revision: document.revision, reason: 'showTarget:updated', showTarget: document.showTarget }), true);
|
|
44
|
+
}
|
|
45
|
+
return structuredClone(record.document);
|
|
46
|
+
}
|
|
47
|
+
const now = new Date().toISOString();
|
|
48
|
+
const document = parseVesselValue(CanvasBoardDocumentSchema, { boardId: `board-${crypto.randomUUID()}`, schemaVersion: 1, sessionRef: parsed.sessionRef, showTarget: parsed.showTarget, revision: 0, createdAt: now, updatedAt: now, actors: [] });
|
|
49
|
+
const descriptor = parseVesselValue(CanvasBoardDescriptorSchema, { ...document, id: document.boardId, kind: 'canvas/board' });
|
|
50
|
+
try {
|
|
51
|
+
const dispose = this.runtime.registerDynamicAsset('canvas/board', descriptor, async () => ({ impl: await this.getBoard({ boardId: document.boardId }) }));
|
|
52
|
+
this.registrations.set(document.boardId, dispose);
|
|
53
|
+
}
|
|
54
|
+
catch (cause) {
|
|
55
|
+
throw new CapabilityError('The whiteboard could not be registered.', 'UNAVAILABLE', { reason: 'vessel-whiteboard-registration-failed', details: { failure: { ...valueFreeFailure(CaughtFailureSchema.parse(cause)) } } });
|
|
56
|
+
}
|
|
57
|
+
this.boards.set(document.boardId, { document, elements: new Map(), history: [] });
|
|
58
|
+
this.sessionIndex.set(parsed.sessionRef, document.boardId);
|
|
59
|
+
await this.emitHook('board:opened', parseVesselValue(VesselWhiteboardOpenedEventSchema, { boardId: document.boardId, sessionRef: document.sessionRef }), true);
|
|
60
|
+
return structuredClone(document);
|
|
61
|
+
}
|
|
62
|
+
async getBoard(input) {
|
|
63
|
+
const parsed = parseVesselValue(VesselWhiteboardGetInputSchema, input);
|
|
64
|
+
return structuredClone(this.record(parsed.boardId).document);
|
|
65
|
+
}
|
|
66
|
+
async applyOps(input) {
|
|
67
|
+
const { boardId, actor, ops } = parseVesselValue(VesselWhiteboardApplyInputSchema, input);
|
|
68
|
+
const record = this.record(boardId);
|
|
69
|
+
const elements = new Map(record.elements);
|
|
70
|
+
const document = structuredClone(record.document);
|
|
71
|
+
const signals = [];
|
|
72
|
+
// Validate the entire candidate before publishing any of the batch.
|
|
73
|
+
for (const op of ops) {
|
|
74
|
+
switch (op.op) {
|
|
75
|
+
case 'show':
|
|
76
|
+
document.showTarget = op.showTarget;
|
|
77
|
+
break;
|
|
78
|
+
case 'stroke':
|
|
79
|
+
case 'shape':
|
|
80
|
+
case 'note':
|
|
81
|
+
case 'annotate':
|
|
82
|
+
case 'diagram':
|
|
83
|
+
elements.set(op.id, op);
|
|
84
|
+
break;
|
|
85
|
+
case 'remove':
|
|
86
|
+
elements.delete(op.id);
|
|
87
|
+
break;
|
|
88
|
+
case 'update': {
|
|
89
|
+
const previous = elements.get(op.id);
|
|
90
|
+
if (!previous)
|
|
91
|
+
break;
|
|
92
|
+
const merged = { ...previous, ...op.patch };
|
|
93
|
+
const validated = parseVesselValue(CanvasBoardOpSchema, merged);
|
|
94
|
+
if (!elementKinds.has(validated.op) || !('id' in validated))
|
|
95
|
+
throw vesselFailure('vessel-whiteboard-element-invalid', 'INVALID_INPUT');
|
|
96
|
+
// JSON extensions remain available; recognized fields use Canvas validation.
|
|
97
|
+
elements.delete(op.id);
|
|
98
|
+
elements.set(validated.id, { ...merged, ...validated });
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
case 'clear':
|
|
102
|
+
for (const [id, element] of elements) {
|
|
103
|
+
if (!op.layer || op.layer === 'all' || (op.layer === 'annotations' && element.op === 'annotate') || (op.layer === 'ink' && element.op === 'stroke'))
|
|
104
|
+
elements.delete(id);
|
|
105
|
+
}
|
|
106
|
+
break;
|
|
107
|
+
case 'signal':
|
|
108
|
+
signals.push(op);
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
document.revision += 1;
|
|
113
|
+
document.updatedAt = new Date().toISOString();
|
|
114
|
+
if (!document.actors.some(entry => entry.type === actor.type && entry.id === actor.id))
|
|
115
|
+
document.actors.push(actor);
|
|
116
|
+
const next = { document: parseVesselValue(CanvasBoardDocumentSchema, document), elements, history: [...record.history, ...ops] };
|
|
117
|
+
this.boards.set(boardId, next);
|
|
118
|
+
await this.emitHook('board:changed', parseVesselValue(VesselWhiteboardChangedEventSchema, { boardId, revision: next.document.revision, actor, ops }), true);
|
|
119
|
+
for (const signal of signals)
|
|
120
|
+
await this.signalInternal(next.document, signal.reason, signal.agentIds, actor, true);
|
|
121
|
+
return structuredClone(next.document);
|
|
122
|
+
}
|
|
123
|
+
async signal(input) {
|
|
124
|
+
const parsed = parseVesselValue(VesselWhiteboardSignalInputSchema, input);
|
|
125
|
+
const document = this.record(parsed.boardId).document;
|
|
126
|
+
return this.signalInternal(document, parsed.reason, parsed.agentIds, document.actors.at(-1), false);
|
|
127
|
+
}
|
|
128
|
+
getElements(boardId) {
|
|
129
|
+
const parsed = parseVesselValue(VesselWhiteboardGetInputSchema, { boardId });
|
|
130
|
+
this.assertLive();
|
|
131
|
+
return structuredClone(Array.from(this.boards.get(parsed.boardId)?.elements.values() ?? []));
|
|
132
|
+
}
|
|
133
|
+
getHistory(boardId) {
|
|
134
|
+
const parsed = parseVesselValue(VesselWhiteboardGetInputSchema, { boardId });
|
|
135
|
+
this.assertLive();
|
|
136
|
+
return structuredClone(this.boards.get(parsed.boardId)?.history ?? []);
|
|
137
|
+
}
|
|
138
|
+
findBoardBySession(sessionRef) {
|
|
139
|
+
const parsed = parseVesselValue(VesselWhiteboardOpenInputSchema, { sessionRef });
|
|
140
|
+
this.assertLive();
|
|
141
|
+
const id = this.sessionIndex.get(parsed.sessionRef);
|
|
142
|
+
const document = id ? this.boards.get(id)?.document : undefined;
|
|
143
|
+
return document ? structuredClone(document) : undefined;
|
|
144
|
+
}
|
|
145
|
+
listBoards() { this.assertLive(); return Array.from(this.boards.values(), record => structuredClone(record.document)); }
|
|
146
|
+
async signalInternal(document, reason, agentIds, actor, committed) {
|
|
147
|
+
await this.emitHook('board:signal', parseVesselValue(VesselWhiteboardSignalEventSchema, { boardId: document.boardId, revision: document.revision, reason, showTarget: document.showTarget, actor: actor ?? { type: 'agent', id: 'system' }, agentIds }), committed);
|
|
148
|
+
return parseVesselValue(VesselWhiteboardSignalOutputSchema, { boardId: document.boardId, signaled: true, recipientCount: agentIds?.length || 1 });
|
|
149
|
+
}
|
|
150
|
+
async emitHook(event, payload, committed) {
|
|
151
|
+
try {
|
|
152
|
+
const result = await this.runtime.lifecycle.wait(() => this.runtime.hooks('vessel:whiteboard').emit(event, structuredClone(payload)), { timeoutMs: 30_000, reason: 'vessel-whiteboard-notification', signal: this.controller.signal });
|
|
153
|
+
if (result.failures.length)
|
|
154
|
+
throw vesselFailure('vessel-whiteboard-handler-failed', 'UNAVAILABLE', valueFreeFailure(CaughtFailureSchema.parse(result.failures[0].error)));
|
|
155
|
+
this.assertLive();
|
|
156
|
+
}
|
|
157
|
+
catch (cause) {
|
|
158
|
+
const failure = CaughtFailureSchema.parse(cause);
|
|
159
|
+
const code = CapabilityError.from(failure).code;
|
|
160
|
+
throw new CapabilityError('The whiteboard notification could not be published.', code === 'CANCELLED' || code === 'TIMEOUT' ? code : 'UNAVAILABLE', { reason: 'vessel-whiteboard-notification-failed', details: { committed, failure: { ...valueFreeFailure(failure) } } });
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
onDispose() {
|
|
164
|
+
if (this.closed)
|
|
165
|
+
return;
|
|
166
|
+
this.closed = true;
|
|
167
|
+
this.controller.abort();
|
|
168
|
+
this.signalLifetime.removeEventListener('abort', this.onAbort);
|
|
169
|
+
const failures = Array.from(this.registrations.values(), dispose => {
|
|
170
|
+
try {
|
|
171
|
+
dispose();
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
174
|
+
catch (cause) {
|
|
175
|
+
return new CapabilityError('The whiteboard registration could not be released.', 'UNAVAILABLE', { reason: 'vessel-whiteboard-release-failed', cause: valueFreeFailure(CaughtFailureSchema.parse(cause)) });
|
|
176
|
+
}
|
|
177
|
+
}).filter(failure => failure !== null);
|
|
178
|
+
this.registrations.clear();
|
|
179
|
+
this.boards.clear();
|
|
180
|
+
this.sessionIndex.clear();
|
|
181
|
+
if (failures.length)
|
|
182
|
+
throw new AggregateError(failures, 'The whiteboard registrations could not be released.');
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/whiteboard/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type RuntimeClientDescriptor } from '@vibesdotdev/kernel/client';
|
|
2
|
+
export declare const VESSEL_WHITEBOARD_CLIENT_ID: "vessel-whiteboard";
|
|
3
|
+
export declare const vesselWhiteboardClientDescriptor: RuntimeClientDescriptor;
|
|
4
|
+
export default vesselWhiteboardClientDescriptor;
|
|
5
|
+
//# sourceMappingURL=descriptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../src/whiteboard/descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAEzG,eAAO,MAAM,2BAA2B,EAAG,mBAA4B,CAAC;AAExE,eAAO,MAAM,gCAAgC,EAAE,uBAU7C,CAAC;AAEH,eAAe,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { RuntimeClientDescriptorSchema } from '@vibesdotdev/kernel/client';
|
|
2
|
+
export const VESSEL_WHITEBOARD_CLIENT_ID = 'vessel-whiteboard';
|
|
3
|
+
export const vesselWhiteboardClientDescriptor = RuntimeClientDescriptorSchema.parse({
|
|
4
|
+
id: VESSEL_WHITEBOARD_CLIENT_ID,
|
|
5
|
+
kind: 'runtime/client',
|
|
6
|
+
name: 'Vessel Whiteboard Client',
|
|
7
|
+
description: 'Native adapter for canvas/board. Implements open, getBoard, applyOps, and signal over shared user and agent ink.',
|
|
8
|
+
enabled: true,
|
|
9
|
+
hardware: ['consumer', 'cloud'],
|
|
10
|
+
requiredContext: [],
|
|
11
|
+
optionalContext: ['user', 'surface', 'session']
|
|
12
|
+
});
|
|
13
|
+
export default vesselWhiteboardClientDescriptor;
|
|
14
|
+
//# sourceMappingURL=descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../src/whiteboard/descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAgC,MAAM,4BAA4B,CAAC;AAEzG,MAAM,CAAC,MAAM,2BAA2B,GAAG,mBAA4B,CAAC;AAExE,MAAM,CAAC,MAAM,gCAAgC,GAA4B,6BAA6B,CAAC,KAAK,CAAC;IAC5G,EAAE,EAAE,2BAA2B;IAC/B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,0BAA0B;IAChC,WAAW,EACV,kHAAkH;IACnH,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;IAC/B,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;CAC/C,CAAC,CAAC;AAEH,eAAe,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { VesselWhiteboardClient, type VesselWhiteboardRPC } from './client.ts';
|
|
2
|
+
export { vesselWhiteboardClientDescriptor, VESSEL_WHITEBOARD_CLIENT_ID } from './descriptor.ts';
|
|
3
|
+
export { vesselWhiteboardAppDescriptor, vesselWhiteboardSurfaceDescriptor } from './vessel-whiteboard.descriptors.ts';
|
|
4
|
+
export { vesselWhiteboardOpenToolDescriptor, vesselWhiteboardApplyToolDescriptor, vesselWhiteboardGetToolDescriptor, vesselWhiteboardSignalToolDescriptor, vesselWhiteboardToolDescriptors } from './tools/descriptors.ts';
|
|
5
|
+
export { vesselWhiteboardPlugin, default as vesselWhiteboardPluginDefault } from './plugin.ts';
|
|
6
|
+
export * from './schemas.ts';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/whiteboard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,gCAAgC,EAChC,2BAA2B,EAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,6BAA6B,EAC7B,iCAAiC,EACjC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACN,kCAAkC,EAClC,mCAAmC,EACnC,iCAAiC,EACjC,oCAAoC,EACpC,+BAA+B,EAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,sBAAsB,EACtB,OAAO,IAAI,6BAA6B,EACxC,MAAM,aAAa,CAAC;AACrB,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { VesselWhiteboardClient } from "./client.js";
|
|
2
|
+
export { vesselWhiteboardClientDescriptor, VESSEL_WHITEBOARD_CLIENT_ID } from "./descriptor.js";
|
|
3
|
+
export { vesselWhiteboardAppDescriptor, vesselWhiteboardSurfaceDescriptor } from "./vessel-whiteboard.descriptors.js";
|
|
4
|
+
export { vesselWhiteboardOpenToolDescriptor, vesselWhiteboardApplyToolDescriptor, vesselWhiteboardGetToolDescriptor, vesselWhiteboardSignalToolDescriptor, vesselWhiteboardToolDescriptors } from "./tools/descriptors.js";
|
|
5
|
+
export { vesselWhiteboardPlugin, default as vesselWhiteboardPluginDefault } from "./plugin.js";
|
|
6
|
+
export * from "./schemas.js";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/whiteboard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,sBAAsB,EAEtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,gCAAgC,EAChC,2BAA2B,EAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,6BAA6B,EAC7B,iCAAiC,EACjC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACN,kCAAkC,EAClC,mCAAmC,EACnC,iCAAiC,EACjC,oCAAoC,EACpC,+BAA+B,EAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,sBAAsB,EACtB,OAAO,IAAI,6BAA6B,EACxC,MAAM,aAAa,CAAC;AACrB,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/whiteboard/plugin.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,sBAAsB,6CAkCjC,CAAC;AAEH,eAAe,sBAAsB,CAAC"}
|