@hachej/boring-workspace 0.1.60 → 0.1.62
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/dist/{FileTree-BMXXbAgy.js → FileTree-zGmxifl_.js} +1 -1
- package/dist/{MarkdownEditor-P47F3En6.js → MarkdownEditor-BykEKKxv.js} +1 -1
- package/dist/{WorkspaceLoadingState-D9v0oLDq.js → WorkspaceLoadingState-Dfnk7JjR.js} +3 -3
- package/dist/{WorkspaceProvider-Dxvh_Faj.js → WorkspaceProvider-kf-pjz6V.js} +617 -588
- package/dist/app-front.js +1205 -1155
- package/dist/app-server.d.ts +12 -3
- package/dist/app-server.js +38 -21
- package/dist/boring-workspace.css +1 -1
- package/dist/{runtimeEnv-XVFZ1OkV.d.ts → runtimeEnv-B8XJz-k4.d.ts} +1 -1
- package/dist/server.d.ts +3 -2
- package/dist/server.js +2 -1
- package/dist/testing.js +1 -1
- package/dist/workspace.css +105 -1
- package/dist/workspace.js +5 -5
- package/package.json +4 -4
package/dist/app-server.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { PiPackageSource, PiExtensionFactory, CreateAgentAppOptions, ProvisionWorkspaceRuntimeOptions } from '@hachej/boring-agent/server';
|
|
2
2
|
export { PiPackageSource as WorkspacePiPackageSource } from '@hachej/boring-agent/server';
|
|
3
3
|
import { FastifyInstance } from 'fastify';
|
|
4
|
-
import { W as WorkspaceServerPlugin, S as ServerBootstrapOptions, a as WorkspaceBridgeRegistry, B as BridgeAuthPolicy, b as WorkspaceBridgeHandler, c as WorkspaceBridgeRuntimeEnvOptions, d as BoringPluginSourceInput, e as BoringPluginFrontTargetResolver, f as
|
|
5
|
-
export { i as ServerWorkspaceRuntimeProvisioningInput } from './runtimeEnv-
|
|
4
|
+
import { W as WorkspaceServerPlugin, S as ServerBootstrapOptions, a as WorkspaceBridgeRegistry, B as BridgeAuthPolicy, b as WorkspaceBridgeHandler, c as WorkspaceBridgeRuntimeEnvOptions, d as BoringPluginSourceInput, e as BoringPluginFrontTargetResolver, f as createInMemoryBridge, g as WorkspaceProvisioningContribution, h as WorkspaceRouteContribution } from './runtimeEnv-B8XJz-k4.js';
|
|
5
|
+
export { i as ServerWorkspaceRuntimeProvisioningInput } from './runtimeEnv-B8XJz-k4.js';
|
|
6
6
|
import { W as WorkspaceBridgeOperationDefinition } from './workspace-bridge-rpc-A98RA5o6.js';
|
|
7
7
|
import './manifest-C2vVgH_e.js';
|
|
8
8
|
import './agent-tool-CB0RQyx9.js';
|
|
@@ -176,6 +176,7 @@ interface WorkspaceAgentServerPluginCollection {
|
|
|
176
176
|
routeContributions: WorkspaceRouteContribution[];
|
|
177
177
|
workspaceBridgeHandlers: WorkspaceServerPlugin["workspaceBridgeHandlers"];
|
|
178
178
|
preservedUiStateKeys: string[];
|
|
179
|
+
defaultPluginPackagePaths: string[];
|
|
179
180
|
agentOptions: Pick<WorkspaceAgentCreateOptions, "extraTools" | "systemPromptAppend" | "pi">;
|
|
180
181
|
}
|
|
181
182
|
interface CollectWorkspaceAgentServerPluginsOptions extends Pick<ServerBootstrapOptions, "plugins" | "defaults" | "excludeDefaults"> {
|
|
@@ -185,10 +186,18 @@ interface CollectWorkspaceAgentServerPluginsOptions extends Pick<ServerBootstrap
|
|
|
185
186
|
/** Whether to include built-in boring plugin-authoring provisioning/prompt resources. */
|
|
186
187
|
installPluginAuthoring?: boolean;
|
|
187
188
|
}
|
|
189
|
+
interface ResolveWorkspaceAgentServerPluginCollectionOptions extends Omit<CollectWorkspaceAgentServerPluginsOptions, "plugins"> {
|
|
190
|
+
workspaceRoot: string;
|
|
191
|
+
bridge: ReturnType<typeof createInMemoryBridge>;
|
|
192
|
+
defaultPluginPackages?: string[];
|
|
193
|
+
appRoot?: string;
|
|
194
|
+
plugins?: WorkspacePluginEntry[];
|
|
195
|
+
}
|
|
188
196
|
declare function buildWorkspaceContextPrompt(options?: {
|
|
189
197
|
pluginAuthoringEnabled?: boolean;
|
|
190
198
|
}): string;
|
|
191
199
|
declare function collectWorkspaceAgentServerPlugins(opts?: CollectWorkspaceAgentServerPluginsOptions): WorkspaceAgentServerPluginCollection;
|
|
200
|
+
declare function resolveWorkspaceAgentServerPluginCollection(opts: ResolveWorkspaceAgentServerPluginCollectionOptions): Promise<WorkspaceAgentServerPluginCollection>;
|
|
192
201
|
declare function provisionWorkspaceAgentServer(opts: {
|
|
193
202
|
workspaceRoot: string;
|
|
194
203
|
provisioningContributions?: WorkspaceProvisioningContribution[];
|
|
@@ -230,4 +239,4 @@ interface ResolveDefaultWorkspacePluginPackagePathsOptions {
|
|
|
230
239
|
*/
|
|
231
240
|
declare function resolveDefaultWorkspacePluginPackagePaths({ workspaceRoot, defaultPluginPackages, anchorDir, }?: ResolveDefaultWorkspacePluginPackagePathsOptions): string[];
|
|
232
241
|
|
|
233
|
-
export { type CollectWorkspaceAgentServerPluginsOptions, type CreateWorkspaceAgentServerOptions, type DirPluginEntry, PLUGIN_AUTHORING_PROVISIONING_IDS, type PluginResolveContext, type ResolveDefaultWorkspacePluginPackagePathsOptions, type WorkspaceAgentPiOptions, type WorkspaceAgentServerPluginCollection, type WorkspaceAgentServerPluginContext, type WorkspacePluginEntry, type WorkspacePluginPackagePiSnapshot, WorkspaceProvisioningContribution, WorkspaceRouteContribution, type WorkspaceRuntimeProvisioningInput, assertWorkspaceBridgeHandlersTrusted, buildWorkspaceContextPrompt, collectWorkspaceAgentServerPlugins, createWorkspaceAgentServer, hasDirServerPlugin, isTrustedWorkspaceBridgeHandlerEntry, omitPluginAuthoringProvisioning, provisionWorkspaceAgentServer, readWorkspacePluginPackagePiSnapshot, readWorkspacePluginPackageRuntimePlugins, resolveDefaultWorkspacePluginPackagePaths, resolveOnePluginEntry };
|
|
242
|
+
export { type CollectWorkspaceAgentServerPluginsOptions, type CreateWorkspaceAgentServerOptions, type DirPluginEntry, PLUGIN_AUTHORING_PROVISIONING_IDS, type PluginResolveContext, type ResolveDefaultWorkspacePluginPackagePathsOptions, type ResolveWorkspaceAgentServerPluginCollectionOptions, type WorkspaceAgentPiOptions, type WorkspaceAgentServerPluginCollection, type WorkspaceAgentServerPluginContext, type WorkspacePluginEntry, type WorkspacePluginPackagePiSnapshot, WorkspaceProvisioningContribution, WorkspaceRouteContribution, type WorkspaceRuntimeProvisioningInput, assertWorkspaceBridgeHandlersTrusted, buildWorkspaceContextPrompt, collectWorkspaceAgentServerPlugins, createWorkspaceAgentServer, hasDirServerPlugin, isTrustedWorkspaceBridgeHandlerEntry, omitPluginAuthoringProvisioning, provisionWorkspaceAgentServer, readWorkspacePluginPackagePiSnapshot, readWorkspacePluginPackageRuntimePlugins, resolveDefaultWorkspacePluginPackagePaths, resolveOnePluginEntry, resolveWorkspaceAgentServerPluginCollection };
|
package/dist/app-server.js
CHANGED
|
@@ -2979,8 +2979,9 @@ function uiRoutes(app, opts, done) {
|
|
|
2979
2979
|
const body = request.body;
|
|
2980
2980
|
const bridge = await resolveBridge(request);
|
|
2981
2981
|
const current = await bridge.getState() ?? {};
|
|
2982
|
+
const preserveStateKeys = opts.getPreserveStateKeys ? await opts.getPreserveStateKeys(request) : opts.preserveStateKeys ?? [];
|
|
2982
2983
|
const preserved = Object.fromEntries(
|
|
2983
|
-
|
|
2984
|
+
preserveStateKeys.filter((key) => !(key in body.state) && key in current).map((key) => [key, current[key]])
|
|
2984
2985
|
);
|
|
2985
2986
|
await bridge.setState({ ...body.state, ...preserved });
|
|
2986
2987
|
return reply.code(204).send();
|
|
@@ -3928,6 +3929,7 @@ function collectWorkspaceAgentServerPlugins(opts = {}) {
|
|
|
3928
3929
|
routeContributions: result.routeContributions,
|
|
3929
3930
|
workspaceBridgeHandlers: result.workspaceBridgeHandlers,
|
|
3930
3931
|
preservedUiStateKeys: result.preservedUiStateKeys,
|
|
3932
|
+
defaultPluginPackagePaths: [],
|
|
3931
3933
|
agentOptions: {
|
|
3932
3934
|
extraTools: result.agentTools,
|
|
3933
3935
|
systemPromptAppend: [opts.systemPromptAppend, result.systemPromptAppend].filter(Boolean).join("\n\n") || void 0,
|
|
@@ -3944,6 +3946,31 @@ function collectWorkspaceAgentServerPlugins(opts = {}) {
|
|
|
3944
3946
|
}
|
|
3945
3947
|
};
|
|
3946
3948
|
}
|
|
3949
|
+
async function resolveWorkspaceAgentServerPluginCollection(opts) {
|
|
3950
|
+
const ctx = { workspaceRoot: opts.workspaceRoot, bridge: opts.bridge };
|
|
3951
|
+
const defaultPluginPackagePaths = resolveDefaultWorkspacePluginPackagePaths({
|
|
3952
|
+
workspaceRoot: opts.workspaceRoot,
|
|
3953
|
+
defaultPluginPackages: opts.defaultPluginPackages,
|
|
3954
|
+
anchorDir: opts.appRoot
|
|
3955
|
+
});
|
|
3956
|
+
const defaultPluginDirEntries = defaultPluginPackagePaths.map((dir) => ({ dir, hotReload: true, trust: "internal" })).filter((entry) => hasDirServerPlugin(entry));
|
|
3957
|
+
const allPluginEntries = [
|
|
3958
|
+
...defaultPluginDirEntries,
|
|
3959
|
+
...opts.plugins ?? []
|
|
3960
|
+
];
|
|
3961
|
+
const resolvedPlugins = await Promise.all(
|
|
3962
|
+
allPluginEntries.map(async (entry) => {
|
|
3963
|
+
const plugin = await resolveOnePluginEntry(entry, ctx);
|
|
3964
|
+
assertWorkspaceBridgeHandlersTrusted(plugin, entry);
|
|
3965
|
+
return plugin;
|
|
3966
|
+
})
|
|
3967
|
+
);
|
|
3968
|
+
const collection = collectWorkspaceAgentServerPlugins({
|
|
3969
|
+
...opts,
|
|
3970
|
+
plugins: resolvedPlugins
|
|
3971
|
+
});
|
|
3972
|
+
return { ...collection, defaultPluginPackagePaths };
|
|
3973
|
+
}
|
|
3947
3974
|
async function provisionWorkspaceAgentServer(opts) {
|
|
3948
3975
|
if (!opts.provisioningContributions?.length) return;
|
|
3949
3976
|
await provisionRuntimeWorkspace({
|
|
@@ -4117,30 +4144,19 @@ async function createWorkspaceAgentServer(opts = {}) {
|
|
|
4117
4144
|
const uiTools = createWorkspaceUiTools(bridge, {
|
|
4118
4145
|
workspaceRoot: validateUiPaths ? workspaceRoot : void 0
|
|
4119
4146
|
});
|
|
4120
|
-
const
|
|
4121
|
-
const
|
|
4147
|
+
const pluginAuthoringEnabled = externalPluginsEnabled && (opts.installPluginAuthoring ?? workspaceFsCapability === "strong") && !(opts.excludeDefaults ?? []).includes("boring-ui-plugin-cli-package");
|
|
4148
|
+
const pluginCollection = await resolveWorkspaceAgentServerPluginCollection({
|
|
4149
|
+
...opts,
|
|
4122
4150
|
workspaceRoot,
|
|
4123
|
-
|
|
4124
|
-
|
|
4151
|
+
bridge,
|
|
4152
|
+
installPluginAuthoring: pluginAuthoringEnabled
|
|
4125
4153
|
});
|
|
4126
|
-
const
|
|
4154
|
+
const defaultPluginPackagePaths = pluginCollection.defaultPluginPackagePaths;
|
|
4155
|
+
const ctx = { workspaceRoot, bridge };
|
|
4127
4156
|
const allPluginEntries = [
|
|
4128
|
-
...
|
|
4157
|
+
...defaultPluginPackagePaths.map((dir) => ({ dir, hotReload: true, trust: "internal" })).filter((entry) => hasDirServerPlugin(entry)),
|
|
4129
4158
|
...opts.plugins ?? []
|
|
4130
4159
|
];
|
|
4131
|
-
const resolvedPlugins = await Promise.all(
|
|
4132
|
-
allPluginEntries.map(async (entry) => {
|
|
4133
|
-
const plugin = await resolveOnePluginEntry(entry, ctx);
|
|
4134
|
-
assertWorkspaceBridgeHandlersTrusted(plugin, entry);
|
|
4135
|
-
return plugin;
|
|
4136
|
-
})
|
|
4137
|
-
);
|
|
4138
|
-
const pluginAuthoringEnabled = externalPluginsEnabled && (opts.installPluginAuthoring ?? workspaceFsCapability === "strong") && !(opts.excludeDefaults ?? []).includes("boring-ui-plugin-cli-package");
|
|
4139
|
-
const pluginCollection = collectWorkspaceAgentServerPlugins({
|
|
4140
|
-
...opts,
|
|
4141
|
-
plugins: resolvedPlugins,
|
|
4142
|
-
installPluginAuthoring: pluginAuthoringEnabled
|
|
4143
|
-
});
|
|
4144
4160
|
const { registry: workspaceBridgeRegistry } = createWorkspaceBridgeRuntimeCore({
|
|
4145
4161
|
registry: opts.workspaceBridge?.registry,
|
|
4146
4162
|
ownerWorkspaceId: "default",
|
|
@@ -4364,5 +4380,6 @@ export {
|
|
|
4364
4380
|
readWorkspacePluginPackagePiSnapshot,
|
|
4365
4381
|
readWorkspacePluginPackageRuntimePlugins,
|
|
4366
4382
|
resolveDefaultWorkspacePluginPackagePaths,
|
|
4367
|
-
resolveOnePluginEntry
|
|
4383
|
+
resolveOnePluginEntry,
|
|
4384
|
+
resolveWorkspaceAgentServerPluginCollection
|
|
4368
4385
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.dv-shell{--dv-background-color: var(--background);--dv-paneview-header-border-color: var(--border);--dv-tabs-and-actions-container-font-size: .8125rem;--dv-tabs-and-actions-container-height: 52px;--dv-tab-close-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E");--dv-group-view-background-color: var(--background);--dv-tabs-and-actions-container-background-color: var(--background);--dv-activegroup-visiblepanel-tab-background-color: var(--background);--dv-activegroup-hiddenpanel-tab-background-color: var(--muted);--dv-inactivegroup-visiblepanel-tab-background-color: var(--background);--dv-inactivegroup-hiddenpanel-tab-background-color: var(--muted);--dv-activegroup-visiblepanel-tab-color: var(--foreground);--dv-activegroup-hiddenpanel-tab-color: var(--muted-foreground);--dv-inactivegroup-visiblepanel-tab-color: var(--foreground);--dv-inactivegroup-hiddenpanel-tab-color: var(--muted-foreground);--dv-tab-divider-color: transparent;--dv-drag-over-background-color: oklch(from var(--accent) l c h / .3);--dv-drag-over-border-color: var(--accent);--dv-separator-border: var(--border);color:var(--foreground);background-color:var(--background)}.dv-shell .dv-tabs-and-actions-container,.dv-shell .tabs-and-actions-container{background-color:var(--background)!important;border-bottom:1px solid oklch(from var(--border) l c h / .4);padding:6px 8px 0;gap:4px;align-items:flex-end}.dv-shell .dv-tabs-container,.dv-shell .tab-container{background-color:transparent!important;gap:4px;align-self:stretch;display:flex;align-items:flex-end}.workbench-dockview .dv-shell .dv-tabs-and-actions-container,.workbench-dockview .dv-shell .tabs-and-actions-container,.workbench-dockview .dv-tabs-and-actions-container,.workbench-dockview .tabs-and-actions-container{height:44px!important}.workbench-dockview[data-left-block-collapsed=true] .dv-tabs-and-actions-container,.workbench-dockview[data-left-block-collapsed=true] .tabs-and-actions-container{padding-left:44px!important}[data-boring-workspace-part=plugin-tabs-shell][data-boring-state=collapsed] .dv-chat-stage .dv-tabs-and-actions-container,[data-boring-workspace-part=plugin-tabs-shell][data-boring-state=collapsed] .dv-chat-stage .tabs-and-actions-container{padding-left:48px!important}.workbench-dockview .dv-tabs-and-actions-container,.workbench-dockview .tabs-and-actions-container{padding-right:72px!important}.dv-shell .dv-tab,.dv-shell .tab{color:var(--muted-foreground)!important;background-color:transparent!important;border:1px solid transparent;border-top-left-radius:8px;border-top-right-radius:8px;transition:color .18s cubic-bezier(.22,1,.36,1),background-color .18s cubic-bezier(.22,1,.36,1),border-color .18s cubic-bezier(.22,1,.36,1);min-width:120px;max-width:220px;padding:0;height:34px;align-self:end;font-size:12.5px;letter-spacing:-.01em}.dv-shell .dv-tab:hover,.dv-shell .tab:hover{color:var(--foreground)!important;background-color:oklch(from var(--foreground) l c h / .04)!important}.dv-shell .dv-tab>*,.dv-shell .tab>*{width:100%;height:100%}.dv-shell .dv-tab.dv-active-tab,.dv-shell .tab.active-tab{color:var(--foreground)!important;background-color:var(--background)!important;border-color:oklch(from var(--border) l c h / .5);border-bottom-color:var(--background);margin-bottom:-1px;position:relative;z-index:1;font-weight:500}.dv-shell .dv-tab.dv-active-tab:before,.dv-shell .tab.active-tab:before{content:"";position:absolute;left:10px;right:10px;top:-1px;height:2px;background:var(--accent);border-radius:0 0 2px 2px;opacity:0;transition:opacity .2s cubic-bezier(.22,1,.36,1)}.dv-shell .dv-tab.dv-active-tab:hover:before,.dv-shell .tab.active-tab:hover:before{opacity:.7}.dv-shell{--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-delay: 0s}.dv-shell .sash-container .sash,.dv-shell .dv-sash-container .dv-sash{transition:box-shadow .16s cubic-bezier(.22,1,.36,1),background-color .16s cubic-bezier(.22,1,.36,1)}.dv-shell .dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash{width:12px;margin-left:-4px}.dv-shell .dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash{height:12px;margin-top:-4px}.dv-shell .dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash:hover,.dv-shell .dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash:active{box-shadow:inset 0 0 0 1px oklch(from var(--primary) l c h / .45),inset 5px 0 oklch(from var(--primary) l c h / .35),inset 6px 0 oklch(from var(--primary) l c h / .35)}.dv-shell .dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash:hover,.dv-shell .dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash:active{box-shadow:inset 0 0 0 1px oklch(from var(--primary) l c h / .45),inset 0 5px oklch(from var(--primary) l c h / .35),inset 0 6px oklch(from var(--primary) l c h / .35)}.dv-shell .drop-target-dropzone>.drop-target-selection,.dv-shell .dv-drop-target-dropzone>.dv-drop-target-selection{background-color:oklch(from var(--primary) l c h / .15);border:2px dashed var(--primary);border-radius:calc(var(--radius) - 2px)}.dv-shell .watermark,.dv-shell .dv-watermark{color:var(--muted-foreground)}.dv-shell,.dv-shell .dv-dockview,.dv-shell .dv-groupview,.dv-shell .groupview,.dv-shell .groupview>.content-container,.dv-shell .dv-view-container,.dv-shell .view-container{background-color:var(--background)}.dv-shell .dv-groupview,.dv-shell .groupview{color:var(--foreground)}.dv-shell .right-actions-container,.dv-shell .left-actions-container,.dv-shell .dv-right-actions-container,.dv-shell .dv-left-actions-container{color:var(--muted-foreground);display:flex;align-items:center;align-self:stretch}.dv-shell .right-actions-container:hover,.dv-shell .left-actions-container:hover,.dv-shell .dv-right-actions-container:hover,.dv-shell .dv-left-actions-container:hover{color:var(--foreground)}.dv-shell .dv-drag-image{opacity:.85;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);box-shadow:0 4px 12px #00000026}.dv-chat-stage{--dv-tabs-and-actions-container-height: 32px;--dv-tabs-and-actions-container-font-size: .75rem;--dv-activegroup-visiblepanel-tab-background-color: transparent;--dv-activegroup-hiddenpanel-tab-background-color: transparent;--dv-inactivegroup-visiblepanel-tab-background-color: transparent;--dv-inactivegroup-hiddenpanel-tab-background-color: transparent}.dv-shell.dv-chat-stage .dv-tabs-and-actions-container{border-bottom:none;padding:0;gap:0;align-items:stretch}.dv-shell.dv-chat-stage .dv-tabs-and-actions-container.dv-single-tab .dv-tabs-container{
|
|
1
|
+
.dv-shell{--dv-background-color: var(--background);--dv-paneview-header-border-color: var(--border);--dv-tabs-and-actions-container-font-size: .8125rem;--dv-tabs-and-actions-container-height: 52px;--dv-tab-close-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E");--dv-group-view-background-color: var(--background);--dv-tabs-and-actions-container-background-color: var(--background);--dv-activegroup-visiblepanel-tab-background-color: var(--background);--dv-activegroup-hiddenpanel-tab-background-color: var(--muted);--dv-inactivegroup-visiblepanel-tab-background-color: var(--background);--dv-inactivegroup-hiddenpanel-tab-background-color: var(--muted);--dv-activegroup-visiblepanel-tab-color: var(--foreground);--dv-activegroup-hiddenpanel-tab-color: var(--muted-foreground);--dv-inactivegroup-visiblepanel-tab-color: var(--foreground);--dv-inactivegroup-hiddenpanel-tab-color: var(--muted-foreground);--dv-tab-divider-color: transparent;--dv-drag-over-background-color: oklch(from var(--accent) l c h / .3);--dv-drag-over-border-color: var(--accent);--dv-separator-border: var(--border);color:var(--foreground);background-color:var(--background)}.dv-shell .dv-tabs-and-actions-container,.dv-shell .tabs-and-actions-container{background-color:var(--background)!important;border-bottom:1px solid oklch(from var(--border) l c h / .4);padding:6px 8px 0;gap:4px;align-items:flex-end}.dv-shell .dv-tabs-container,.dv-shell .tab-container{background-color:transparent!important;gap:4px;align-self:stretch;display:flex;align-items:flex-end}.workbench-dockview .dv-shell .dv-tabs-and-actions-container,.workbench-dockview .dv-shell .tabs-and-actions-container,.workbench-dockview .dv-tabs-and-actions-container,.workbench-dockview .tabs-and-actions-container{height:44px!important}.workbench-dockview[data-left-block-collapsed=true] .dv-tabs-and-actions-container,.workbench-dockview[data-left-block-collapsed=true] .tabs-and-actions-container{padding-left:44px!important}[data-boring-workspace-part=plugin-tabs-shell][data-boring-state=collapsed] .dv-chat-stage .dv-tabs-and-actions-container,[data-boring-workspace-part=plugin-tabs-shell][data-boring-state=collapsed] .dv-chat-stage .tabs-and-actions-container{padding-left:48px!important}.workbench-dockview .dv-tabs-and-actions-container,.workbench-dockview .tabs-and-actions-container{padding-right:72px!important}.dv-shell .dv-tab,.dv-shell .tab{color:var(--muted-foreground)!important;background-color:transparent!important;border:1px solid transparent;border-top-left-radius:8px;border-top-right-radius:8px;transition:color .18s cubic-bezier(.22,1,.36,1),background-color .18s cubic-bezier(.22,1,.36,1),border-color .18s cubic-bezier(.22,1,.36,1);min-width:120px;max-width:220px;padding:0;height:34px;align-self:end;font-size:12.5px;letter-spacing:-.01em}.dv-shell .dv-tab:hover,.dv-shell .tab:hover{color:var(--foreground)!important;background-color:oklch(from var(--foreground) l c h / .04)!important}.dv-shell .dv-tab>*,.dv-shell .tab>*{width:100%;height:100%}.dv-shell .dv-tab.dv-active-tab,.dv-shell .tab.active-tab{color:var(--foreground)!important;background-color:var(--background)!important;border-color:oklch(from var(--border) l c h / .5);border-bottom-color:var(--background);margin-bottom:-1px;position:relative;z-index:1;font-weight:500}.dv-shell .dv-tab.dv-active-tab:before,.dv-shell .tab.active-tab:before{content:"";position:absolute;left:10px;right:10px;top:-1px;height:2px;background:var(--accent);border-radius:0 0 2px 2px;opacity:0;transition:opacity .2s cubic-bezier(.22,1,.36,1)}.dv-shell .dv-tab.dv-active-tab:hover:before,.dv-shell .tab.active-tab:hover:before{opacity:.7}.dv-shell{--dv-sash-color: transparent;--dv-active-sash-color: transparent;--dv-active-sash-transition-delay: 0s}.dv-shell .sash-container .sash,.dv-shell .dv-sash-container .dv-sash{transition:box-shadow .16s cubic-bezier(.22,1,.36,1),background-color .16s cubic-bezier(.22,1,.36,1)}.dv-shell .dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash{width:12px;margin-left:-4px}.dv-shell .dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash{height:12px;margin-top:-4px}.dv-shell .dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash:hover,.dv-shell .dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash:active{box-shadow:inset 0 0 0 1px oklch(from var(--primary) l c h / .45),inset 5px 0 oklch(from var(--primary) l c h / .35),inset 6px 0 oklch(from var(--primary) l c h / .35)}.dv-shell .dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash:hover,.dv-shell .dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash:active{box-shadow:inset 0 0 0 1px oklch(from var(--primary) l c h / .45),inset 0 5px oklch(from var(--primary) l c h / .35),inset 0 6px oklch(from var(--primary) l c h / .35)}.dv-shell .drop-target-dropzone>.drop-target-selection,.dv-shell .dv-drop-target-dropzone>.dv-drop-target-selection{background-color:oklch(from var(--primary) l c h / .15);border:2px dashed var(--primary);border-radius:calc(var(--radius) - 2px)}.dv-shell .watermark,.dv-shell .dv-watermark{color:var(--muted-foreground)}.dv-shell,.dv-shell .dv-dockview,.dv-shell .dv-groupview,.dv-shell .groupview,.dv-shell .groupview>.content-container,.dv-shell .dv-view-container,.dv-shell .view-container{background-color:var(--background)}.dv-shell .dv-groupview,.dv-shell .groupview{color:var(--foreground)}.dv-shell .right-actions-container,.dv-shell .left-actions-container,.dv-shell .dv-right-actions-container,.dv-shell .dv-left-actions-container{color:var(--muted-foreground);display:flex;align-items:center;align-self:stretch}.dv-shell .right-actions-container:hover,.dv-shell .left-actions-container:hover,.dv-shell .dv-right-actions-container:hover,.dv-shell .dv-left-actions-container:hover{color:var(--foreground)}.dv-shell .dv-drag-image{opacity:.85;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);box-shadow:0 4px 12px #00000026}.dv-chat-stage{--dv-tabs-and-actions-container-height: 32px;--dv-tabs-and-actions-container-font-size: .75rem;--dv-activegroup-visiblepanel-tab-background-color: transparent;--dv-activegroup-hiddenpanel-tab-background-color: transparent;--dv-inactivegroup-visiblepanel-tab-background-color: transparent;--dv-inactivegroup-hiddenpanel-tab-background-color: transparent}.dv-shell.dv-chat-stage .dv-tabs-and-actions-container{height:var(--dv-tabs-and-actions-container-height);box-sizing:border-box;flex-shrink:0;border-bottom:none;padding:0;gap:0;align-items:stretch}.dv-shell.dv-chat-stage .dv-tabs-and-actions-container.dv-single-tab .dv-scrollable,.dv-shell.dv-chat-stage .dv-tabs-and-actions-container.dv-single-tab .dv-tabs-container,.dv-shell.dv-chat-stage .dv-tabs-and-actions-container.dv-single-tab .dv-react-part{height:100%}.dv-shell.dv-chat-stage .dv-tabs-and-actions-container.dv-single-tab .dv-tabs-container{width:100%;align-items:stretch}.dv-shell.dv-chat-stage .dv-tab,.dv-shell.dv-chat-stage .dv-tab.dv-active-tab{width:100%;height:100%;min-width:0;max-width:none;flex:1 1 auto;align-self:stretch;margin-bottom:0;padding:0;border:none;border-radius:0;background-color:transparent!important}.dv-shell.dv-chat-stage .dv-tab.dv-active-tab:before{content:none}.dv-chat-stage .dv-default-tab-action{display:none}.dv-chat-stage .dv-groupview{position:relative}.dv-chat-stage .dv-groupview:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;pointer-events:none;background:transparent;transition:background-color .22s cubic-bezier(.22,1,.36,1),box-shadow .22s cubic-bezier(.22,1,.36,1)}[data-boring-workspace-part=chat-pane-stage][data-multi-pane=true] .dv-groupview:not(.dv-active-group):after{background:oklch(from var(--foreground) l c h / .035)}
|
|
@@ -350,4 +350,4 @@ declare function createWorkspaceBridgeRuntimeEnvContribution(options: CreateWork
|
|
|
350
350
|
declare function resolveBridgeCallUrl(value: string | undefined): string | undefined;
|
|
351
351
|
declare function resolveBridgeTokenUrl(value: string | undefined): string | undefined;
|
|
352
352
|
|
|
353
|
-
export { type WorkspaceBridgeCallContext as A, type BridgeAuthPolicy as B, type CreateWorkspaceBridgeRuntimeEnvContributionOptions as C, type WorkspaceBridgeHandlerArgs as D, type WorkspaceBridgeHandlerContribution as E, type WorkspaceBridgeRegistryCallOptions as F, type WorkspaceBridgeRegistryLogger as G, type WorkspaceBridgeRegistryOptions as H, type WorkspaceBridgeRuntimeEnvDisabledReason as I, type WorkspaceBridgeRuntimePlacement as J, bootstrapServer as K, type LocalCliBridgeAuthPolicyOptions as L, createBrowserBridgeAuthPolicy as M, createLocalCliBridgeAuthPolicy as N, createWorkspaceBridgeRegistry as O, type PluginRestartSurface as P, createWorkspaceBridgeRuntimeEnvContribution as Q, type RegisterWorkspaceBridgeHandlerOptions as R, type ServerBootstrapOptions as S, defineServerPlugin as T, resolveBridgeCallUrl as U, resolveBridgeTokenUrl as V, type WorkspaceServerPlugin as W, validateServerPlugin as X, validateWorkspaceBridgeOperationDefinition as Y, WorkspaceBridgeRegistry as a, type WorkspaceBridgeHandler as b, type WorkspaceBridgeRuntimeEnvOptions as c, type BoringPluginSourceInput as d, type BoringPluginFrontTargetResolver as e,
|
|
353
|
+
export { type WorkspaceBridgeCallContext as A, type BridgeAuthPolicy as B, type CreateWorkspaceBridgeRuntimeEnvContributionOptions as C, type WorkspaceBridgeHandlerArgs as D, type WorkspaceBridgeHandlerContribution as E, type WorkspaceBridgeRegistryCallOptions as F, type WorkspaceBridgeRegistryLogger as G, type WorkspaceBridgeRegistryOptions as H, type WorkspaceBridgeRuntimeEnvDisabledReason as I, type WorkspaceBridgeRuntimePlacement as J, bootstrapServer as K, type LocalCliBridgeAuthPolicyOptions as L, createBrowserBridgeAuthPolicy as M, createLocalCliBridgeAuthPolicy as N, createWorkspaceBridgeRegistry as O, type PluginRestartSurface as P, createWorkspaceBridgeRuntimeEnvContribution as Q, type RegisterWorkspaceBridgeHandlerOptions as R, type ServerBootstrapOptions as S, defineServerPlugin as T, resolveBridgeCallUrl as U, resolveBridgeTokenUrl as V, type WorkspaceServerPlugin as W, validateServerPlugin as X, validateWorkspaceBridgeOperationDefinition as Y, WorkspaceBridgeRegistry as a, type WorkspaceBridgeHandler as b, type WorkspaceBridgeRuntimeEnvOptions as c, type BoringPluginSourceInput as d, type BoringPluginFrontTargetResolver as e, createInMemoryBridge as f, type WorkspaceProvisioningContribution as g, type WorkspaceRouteContribution as h, type WorkspaceRuntimeProvisioningInput as i, type WorkspaceServerPluginAsset as j, type BoringServerPluginManifest as k, type BoringPluginListEntry as l, type BoringPluginFrontTarget as m, type BoringPluginSource as n, type BoringPluginEvent as o, type BoringPluginFrontTargetResolverContext as p, type BoringPluginNativeFrontTarget as q, type BoringPluginNativeFrontTargetTrust as r, type BoringPluginSourceKind as s, type BridgeAuthPolicyInput as t, type BridgeAuthPolicyRequestLike as u, type BridgeAuthResolution as v, type BridgePrincipal as w, type BridgeWorkspaceGrant as x, type BrowserBridgeAuthPolicyOptions as y, type ServerBootstrapResult as z };
|
package/dist/server.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { j as WorkspaceServerPluginAsset, a as WorkspaceBridgeRegistry, B as BridgeAuthPolicy, b as WorkspaceBridgeHandler, k as BoringServerPluginManifest, d as BoringPluginSourceInput, e as BoringPluginFrontTargetResolver, l as BoringPluginListEntry, m as BoringPluginFrontTarget, n as BoringPluginSource, o as BoringPluginEvent, P as PluginRestartSurface } from './runtimeEnv-
|
|
2
|
-
export { p as BoringPluginFrontTargetResolverContext, q as BoringPluginNativeFrontTarget, r as BoringPluginNativeFrontTargetTrust, s as BoringPluginSourceKind, t as BridgeAuthPolicyInput, u as BridgeAuthPolicyRequestLike, v as BridgeAuthResolution, w as BridgePrincipal, x as BridgeWorkspaceGrant, y as BrowserBridgeAuthPolicyOptions, C as CreateWorkspaceBridgeRuntimeEnvContributionOptions, L as LocalCliBridgeAuthPolicyOptions, R as RegisterWorkspaceBridgeHandlerOptions, S as ServerBootstrapOptions, z as ServerBootstrapResult, A as WorkspaceBridgeCallContext, D as WorkspaceBridgeHandlerArgs, E as WorkspaceBridgeHandlerContribution, F as WorkspaceBridgeRegistryCallOptions, G as WorkspaceBridgeRegistryLogger, H as WorkspaceBridgeRegistryOptions, I as WorkspaceBridgeRuntimeEnvDisabledReason, c as WorkspaceBridgeRuntimeEnvOptions, J as WorkspaceBridgeRuntimePlacement,
|
|
1
|
+
import { j as WorkspaceServerPluginAsset, a as WorkspaceBridgeRegistry, B as BridgeAuthPolicy, b as WorkspaceBridgeHandler, k as BoringServerPluginManifest, d as BoringPluginSourceInput, e as BoringPluginFrontTargetResolver, l as BoringPluginListEntry, m as BoringPluginFrontTarget, n as BoringPluginSource, o as BoringPluginEvent, P as PluginRestartSurface } from './runtimeEnv-B8XJz-k4.js';
|
|
2
|
+
export { p as BoringPluginFrontTargetResolverContext, q as BoringPluginNativeFrontTarget, r as BoringPluginNativeFrontTargetTrust, s as BoringPluginSourceKind, t as BridgeAuthPolicyInput, u as BridgeAuthPolicyRequestLike, v as BridgeAuthResolution, w as BridgePrincipal, x as BridgeWorkspaceGrant, y as BrowserBridgeAuthPolicyOptions, C as CreateWorkspaceBridgeRuntimeEnvContributionOptions, L as LocalCliBridgeAuthPolicyOptions, R as RegisterWorkspaceBridgeHandlerOptions, S as ServerBootstrapOptions, z as ServerBootstrapResult, A as WorkspaceBridgeCallContext, D as WorkspaceBridgeHandlerArgs, E as WorkspaceBridgeHandlerContribution, F as WorkspaceBridgeRegistryCallOptions, G as WorkspaceBridgeRegistryLogger, H as WorkspaceBridgeRegistryOptions, I as WorkspaceBridgeRuntimeEnvDisabledReason, c as WorkspaceBridgeRuntimeEnvOptions, J as WorkspaceBridgeRuntimePlacement, g as WorkspaceProvisioningContribution, h as WorkspaceRouteContribution, W as WorkspaceServerPlugin, K as bootstrapServer, M as createBrowserBridgeAuthPolicy, f as createInMemoryBridge, N as createLocalCliBridgeAuthPolicy, O as createWorkspaceBridgeRegistry, Q as createWorkspaceBridgeRuntimeEnvContribution, T as defineServerPlugin, U as resolveBridgeCallUrl, V as resolveBridgeTokenUrl, X as validateServerPlugin, Y as validateWorkspaceBridgeOperationDefinition } from './runtimeEnv-B8XJz-k4.js';
|
|
3
3
|
import { FastifyRequest, FastifyInstance } from 'fastify';
|
|
4
4
|
import { U as UiBridge, W as WorkspaceBridge } from './ui-bridge-BbuUZ5iC.js';
|
|
5
5
|
export { C as CommandResult, a as UiCommand, b as UiState } from './ui-bridge-BbuUZ5iC.js';
|
|
@@ -74,6 +74,7 @@ interface UiRoutesOptions {
|
|
|
74
74
|
* these slots are published out-of-band by server plugins.
|
|
75
75
|
*/
|
|
76
76
|
preserveStateKeys?: string[];
|
|
77
|
+
getPreserveStateKeys?: (request: FastifyRequest) => string[] | Promise<string[]>;
|
|
77
78
|
paneStatusStore?: PaneRenderStatusStore;
|
|
78
79
|
}
|
|
79
80
|
declare function uiRoutes(app: FastifyInstance, opts: UiRoutesOptions, done: (err?: Error) => void): void;
|
package/dist/server.js
CHANGED
|
@@ -262,8 +262,9 @@ function uiRoutes(app, opts, done) {
|
|
|
262
262
|
const body = request.body;
|
|
263
263
|
const bridge = await resolveBridge(request);
|
|
264
264
|
const current = await bridge.getState() ?? {};
|
|
265
|
+
const preserveStateKeys = opts.getPreserveStateKeys ? await opts.getPreserveStateKeys(request) : opts.preserveStateKeys ?? [];
|
|
265
266
|
const preserved = Object.fromEntries(
|
|
266
|
-
|
|
267
|
+
preserveStateKeys.filter((key) => !(key in body.state) && key in current).map((key) => [key, current[key]])
|
|
267
268
|
);
|
|
268
269
|
await bridge.setState({ ...body.state, ...preserved });
|
|
269
270
|
return reply.code(204).send();
|
package/dist/testing.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as Ba } from "react/jsx-runtime";
|
|
2
2
|
import * as Pa from "react";
|
|
3
3
|
import { createElement as is, useMemo as wn, useLayoutEffect as us, isValidElement as ss, cloneElement as ds, useSyncExternalStore as Gi } from "react";
|
|
4
|
-
import { i as cs, O as fs, x as ps, v as ms } from "./WorkspaceProvider-
|
|
4
|
+
import { i as cs, O as fs, x as ps, v as ms } from "./WorkspaceProvider-kf-pjz6V.js";
|
|
5
5
|
import * as bs from "react-dom/test-utils";
|
|
6
6
|
import ka from "react-dom";
|
|
7
7
|
import * as xn from "react-dom/client";
|
package/dist/workspace.css
CHANGED
|
@@ -1439,6 +1439,9 @@
|
|
|
1439
1439
|
.collapse {
|
|
1440
1440
|
visibility: collapse;
|
|
1441
1441
|
}
|
|
1442
|
+
.invisible {
|
|
1443
|
+
visibility: hidden;
|
|
1444
|
+
}
|
|
1442
1445
|
.visible {
|
|
1443
1446
|
visibility: visible;
|
|
1444
1447
|
}
|
|
@@ -1543,6 +1546,9 @@
|
|
|
1543
1546
|
.left-2 {
|
|
1544
1547
|
left: calc(var(--spacing) * 2);
|
|
1545
1548
|
}
|
|
1549
|
+
.z-0 {
|
|
1550
|
+
z-index: 0;
|
|
1551
|
+
}
|
|
1546
1552
|
.z-10 {
|
|
1547
1553
|
z-index: 10;
|
|
1548
1554
|
}
|
|
@@ -1624,6 +1630,9 @@
|
|
|
1624
1630
|
.mt-px {
|
|
1625
1631
|
margin-top: 1px;
|
|
1626
1632
|
}
|
|
1633
|
+
.mr-2 {
|
|
1634
|
+
margin-right: calc(var(--spacing) * 2);
|
|
1635
|
+
}
|
|
1627
1636
|
.mr-auto {
|
|
1628
1637
|
margin-right: auto;
|
|
1629
1638
|
}
|
|
@@ -1642,6 +1651,9 @@
|
|
|
1642
1651
|
.-ml-px {
|
|
1643
1652
|
margin-left: -1px;
|
|
1644
1653
|
}
|
|
1654
|
+
.ml-0 {
|
|
1655
|
+
margin-left: calc(var(--spacing) * 0);
|
|
1656
|
+
}
|
|
1645
1657
|
.ml-0\.5 {
|
|
1646
1658
|
margin-left: calc(var(--spacing) * 0.5);
|
|
1647
1659
|
}
|
|
@@ -1651,6 +1663,9 @@
|
|
|
1651
1663
|
.ml-1\.5 {
|
|
1652
1664
|
margin-left: calc(var(--spacing) * 1.5);
|
|
1653
1665
|
}
|
|
1666
|
+
.ml-2 {
|
|
1667
|
+
margin-left: calc(var(--spacing) * 2);
|
|
1668
|
+
}
|
|
1654
1669
|
.ml-3 {
|
|
1655
1670
|
margin-left: calc(var(--spacing) * 3);
|
|
1656
1671
|
}
|
|
@@ -1800,6 +1815,9 @@
|
|
|
1800
1815
|
.min-h-screen {
|
|
1801
1816
|
min-height: 100vh;
|
|
1802
1817
|
}
|
|
1818
|
+
.w-0 {
|
|
1819
|
+
width: calc(var(--spacing) * 0);
|
|
1820
|
+
}
|
|
1803
1821
|
.w-1 {
|
|
1804
1822
|
width: calc(var(--spacing) * 1);
|
|
1805
1823
|
}
|
|
@@ -1851,6 +1869,9 @@
|
|
|
1851
1869
|
.w-\[360px\] {
|
|
1852
1870
|
width: 360px;
|
|
1853
1871
|
}
|
|
1872
|
+
.w-auto {
|
|
1873
|
+
width: auto;
|
|
1874
|
+
}
|
|
1854
1875
|
.w-full {
|
|
1855
1876
|
width: 100%;
|
|
1856
1877
|
}
|
|
@@ -2924,6 +2945,11 @@
|
|
|
2924
2945
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
2925
2946
|
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
2926
2947
|
}
|
|
2948
|
+
.transition-\[margin\] {
|
|
2949
|
+
transition-property: margin;
|
|
2950
|
+
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
2951
|
+
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
2952
|
+
}
|
|
2927
2953
|
.transition-\[opacity\,padding\] {
|
|
2928
2954
|
transition-property: opacity,padding;
|
|
2929
2955
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
@@ -2934,6 +2960,11 @@
|
|
|
2934
2960
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
2935
2961
|
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
2936
2962
|
}
|
|
2963
|
+
.transition-\[width\,opacity\,margin\] {
|
|
2964
|
+
transition-property: width,opacity,margin;
|
|
2965
|
+
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
2966
|
+
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
2967
|
+
}
|
|
2937
2968
|
.transition-colors {
|
|
2938
2969
|
transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
|
|
2939
2970
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
@@ -2981,6 +3012,16 @@
|
|
|
2981
3012
|
-webkit-user-select: none;
|
|
2982
3013
|
user-select: none;
|
|
2983
3014
|
}
|
|
3015
|
+
.group-focus-within\:ml-1 {
|
|
3016
|
+
&:is(:where(.group):focus-within *) {
|
|
3017
|
+
margin-left: calc(var(--spacing) * 1);
|
|
3018
|
+
}
|
|
3019
|
+
}
|
|
3020
|
+
.group-focus-within\:w-auto {
|
|
3021
|
+
&:is(:where(.group):focus-within *) {
|
|
3022
|
+
width: auto;
|
|
3023
|
+
}
|
|
3024
|
+
}
|
|
2984
3025
|
.group-focus-within\:opacity-0 {
|
|
2985
3026
|
&:is(:where(.group):focus-within *) {
|
|
2986
3027
|
opacity: 0%;
|
|
@@ -2991,6 +3032,27 @@
|
|
|
2991
3032
|
opacity: 100%;
|
|
2992
3033
|
}
|
|
2993
3034
|
}
|
|
3035
|
+
.group-hover\:ml-1 {
|
|
3036
|
+
&:is(:where(.group):hover *) {
|
|
3037
|
+
@media (hover: hover) {
|
|
3038
|
+
margin-left: calc(var(--spacing) * 1);
|
|
3039
|
+
}
|
|
3040
|
+
}
|
|
3041
|
+
}
|
|
3042
|
+
.group-hover\:ml-1\.5 {
|
|
3043
|
+
&:is(:where(.group):hover *) {
|
|
3044
|
+
@media (hover: hover) {
|
|
3045
|
+
margin-left: calc(var(--spacing) * 1.5);
|
|
3046
|
+
}
|
|
3047
|
+
}
|
|
3048
|
+
}
|
|
3049
|
+
.group-hover\:ml-2 {
|
|
3050
|
+
&:is(:where(.group):hover *) {
|
|
3051
|
+
@media (hover: hover) {
|
|
3052
|
+
margin-left: calc(var(--spacing) * 2);
|
|
3053
|
+
}
|
|
3054
|
+
}
|
|
3055
|
+
}
|
|
2994
3056
|
.group-hover\:inline-flex {
|
|
2995
3057
|
&:is(:where(.group):hover *) {
|
|
2996
3058
|
@media (hover: hover) {
|
|
@@ -2998,6 +3060,13 @@
|
|
|
2998
3060
|
}
|
|
2999
3061
|
}
|
|
3000
3062
|
}
|
|
3063
|
+
.group-hover\:w-auto {
|
|
3064
|
+
&:is(:where(.group):hover *) {
|
|
3065
|
+
@media (hover: hover) {
|
|
3066
|
+
width: auto;
|
|
3067
|
+
}
|
|
3068
|
+
}
|
|
3069
|
+
}
|
|
3001
3070
|
.group-hover\:bg-foreground\/30 {
|
|
3002
3071
|
&:is(:where(.group):hover *) {
|
|
3003
3072
|
@media (hover: hover) {
|
|
@@ -3121,6 +3190,31 @@
|
|
|
3121
3190
|
transition-duration: 150ms;
|
|
3122
3191
|
}
|
|
3123
3192
|
}
|
|
3193
|
+
.focus-within\:ml-1 {
|
|
3194
|
+
&:focus-within {
|
|
3195
|
+
margin-left: calc(var(--spacing) * 1);
|
|
3196
|
+
}
|
|
3197
|
+
}
|
|
3198
|
+
.focus-within\:ml-1\.5 {
|
|
3199
|
+
&:focus-within {
|
|
3200
|
+
margin-left: calc(var(--spacing) * 1.5);
|
|
3201
|
+
}
|
|
3202
|
+
}
|
|
3203
|
+
.focus-within\:ml-2 {
|
|
3204
|
+
&:focus-within {
|
|
3205
|
+
margin-left: calc(var(--spacing) * 2);
|
|
3206
|
+
}
|
|
3207
|
+
}
|
|
3208
|
+
.focus-within\:w-auto {
|
|
3209
|
+
&:focus-within {
|
|
3210
|
+
width: auto;
|
|
3211
|
+
}
|
|
3212
|
+
}
|
|
3213
|
+
.focus-within\:opacity-100 {
|
|
3214
|
+
&:focus-within {
|
|
3215
|
+
opacity: 100%;
|
|
3216
|
+
}
|
|
3217
|
+
}
|
|
3124
3218
|
.hover\:-translate-y-0\.5 {
|
|
3125
3219
|
&:hover {
|
|
3126
3220
|
@media (hover: hover) {
|
|
@@ -7265,6 +7359,9 @@
|
|
|
7265
7359
|
the stage root (.dv-shell.dv-chat-stage) out-specifies the workbench
|
|
7266
7360
|
rules; the header must read as part of the pane, not a tab strip. */
|
|
7267
7361
|
.dv-shell.dv-chat-stage .dv-tabs-and-actions-container {
|
|
7362
|
+
height: var(--dv-tabs-and-actions-container-height);
|
|
7363
|
+
box-sizing: border-box;
|
|
7364
|
+
flex-shrink: 0;
|
|
7268
7365
|
border-bottom: none;
|
|
7269
7366
|
padding: 0;
|
|
7270
7367
|
gap: 0;
|
|
@@ -7272,9 +7369,16 @@
|
|
|
7272
7369
|
}
|
|
7273
7370
|
|
|
7274
7371
|
/* dockview's fullwidth single-tab rules stop at the scroll wrapper; carry
|
|
7275
|
-
the full width down to the tab itself. */
|
|
7372
|
+
the full width and height down to the tab itself. */
|
|
7373
|
+
.dv-shell.dv-chat-stage .dv-tabs-and-actions-container.dv-single-tab .dv-scrollable,
|
|
7374
|
+
.dv-shell.dv-chat-stage .dv-tabs-and-actions-container.dv-single-tab .dv-tabs-container,
|
|
7375
|
+
.dv-shell.dv-chat-stage .dv-tabs-and-actions-container.dv-single-tab .dv-react-part {
|
|
7376
|
+
height: 100%;
|
|
7377
|
+
}
|
|
7378
|
+
|
|
7276
7379
|
.dv-shell.dv-chat-stage .dv-tabs-and-actions-container.dv-single-tab .dv-tabs-container {
|
|
7277
7380
|
width: 100%;
|
|
7381
|
+
align-items: stretch;
|
|
7278
7382
|
}
|
|
7279
7383
|
|
|
7280
7384
|
.dv-shell.dv-chat-stage .dv-tab,
|
package/dist/workspace.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
var X = Object.defineProperty;
|
|
2
2
|
var Q = (e, t, a) => t in e ? X(e, t, { enumerable: !0, configurable: !0, writable: !0, value: a }) : e[t] = a;
|
|
3
3
|
var T = (e, t, a) => Q(e, typeof t != "symbol" ? t + "" : t, a);
|
|
4
|
-
import { u as D, p as Y, a as Z, b as ee, D as te } from "./WorkspaceProvider-
|
|
5
|
-
import { A as qe, C as Je, c as Ve, d as Ge, e as Xe, f as Qe, F as Ye, g as Ze, M as et, h as tt, P as at, i as rt, j as nt, k as st, l as ot, R as it, S as lt, m as ct, n as dt, T as ut, U as pt, W as mt, o as ft, q as ht, r as gt, s as bt, t as yt, v as kt, w as St, x as vt, y as Pt, z as xt, B as wt, E as Ct, G as Et, H as Nt, I as Rt, J as Tt, K as Ot, L as It, N as Wt, O as Ft, Q as Lt, V as Bt, X as Mt, Y as Kt, Z as _t, _ as Dt, $ as At, a0 as $t, a1 as jt, a2 as zt, a3 as Ht, a4 as Ut, a5 as qt, a6 as Jt, a7 as Vt, a8 as Gt, a9 as Xt, aa as Qt, ab as Yt, ac as Zt, ad as ea, ae as ta, af as aa, ag as ra, ah as na, ai as sa, aj as oa, ak as ia, al as la, am as ca, an as da, ao as ua, ap as pa, aq as ma, ar as fa, as as ha, at as ga, au as ba, av as ya, aw as ka, ax as Sa, ay as va, az as Pa, aA as xa, aB as wa, aC as Ca, aD as Ea, aE as Na, aF as Ra, aG as Ta, aH as Oa, aI as Ia, aJ as Wa, aK as Fa, aL as La } from "./WorkspaceProvider-
|
|
4
|
+
import { u as D, p as Y, a as Z, b as ee, D as te } from "./WorkspaceProvider-kf-pjz6V.js";
|
|
5
|
+
import { A as qe, C as Je, c as Ve, d as Ge, e as Xe, f as Qe, F as Ye, g as Ze, M as et, h as tt, P as at, i as rt, j as nt, k as st, l as ot, R as it, S as lt, m as ct, n as dt, T as ut, U as pt, W as mt, o as ft, q as ht, r as gt, s as bt, t as yt, v as kt, w as St, x as vt, y as Pt, z as xt, B as wt, E as Ct, G as Et, H as Nt, I as Rt, J as Tt, K as Ot, L as It, N as Wt, O as Ft, Q as Lt, V as Bt, X as Mt, Y as Kt, Z as _t, _ as Dt, $ as At, a0 as $t, a1 as jt, a2 as zt, a3 as Ht, a4 as Ut, a5 as qt, a6 as Jt, a7 as Vt, a8 as Gt, a9 as Xt, aa as Qt, ab as Yt, ac as Zt, ad as ea, ae as ta, af as aa, ag as ra, ah as na, ai as sa, aj as oa, ak as ia, al as la, am as ca, an as da, ao as ua, ap as pa, aq as ma, ar as fa, as as ha, at as ga, au as ba, av as ya, aw as ka, ax as Sa, ay as va, az as Pa, aA as xa, aB as wa, aC as Ca, aD as Ea, aE as Na, aF as Ra, aG as Ta, aH as Oa, aI as Ia, aJ as Wa, aK as Fa, aL as La } from "./WorkspaceProvider-kf-pjz6V.js";
|
|
6
6
|
import { c as C } from "./utils-B6yFEsav.js";
|
|
7
|
-
import { C as Ma, T as Ka, W as _a, b as Da } from "./WorkspaceLoadingState-
|
|
7
|
+
import { C as Ma, T as Ka, W as _a, b as Da } from "./WorkspaceLoadingState-Dfnk7JjR.js";
|
|
8
8
|
import { jsx as r, jsxs as g, Fragment as ae } from "react/jsx-runtime";
|
|
9
9
|
import { Button as x, Sheet as re, SheetContent as ne, SheetHeader as se, SheetTitle as oe, SheetDescription as ie, EmptyState as le, Kbd as O, ErrorState as ce, IconButton as I } from "@hachej/boring-ui-kit";
|
|
10
10
|
import { Toaster as $a, dismissToast as ja, toast as za } from "@hachej/boring-ui-kit";
|
|
11
11
|
import { useSyncExternalStore as A, useState as E, useEffect as v, useRef as w, useCallback as b, useMemo as P, Suspense as de, Component as ue } from "react";
|
|
12
|
-
import { FileTree as Ua } from "./FileTree-
|
|
13
|
-
import { MarkdownEditor as Ja } from "./MarkdownEditor-
|
|
12
|
+
import { FileTree as Ua } from "./FileTree-zGmxifl_.js";
|
|
13
|
+
import { MarkdownEditor as Ja } from "./MarkdownEditor-BykEKKxv.js";
|
|
14
14
|
import { MenuIcon as pe, PanelLeftIcon as B, PinIcon as me, CheckIcon as fe, CopyIcon as he } from "lucide-react";
|
|
15
15
|
function Be() {
|
|
16
16
|
const e = D();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hachej/boring-workspace",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.62",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Workspace UI, plugin, and bridge package for composing chat, files, catalogs, editors, and app-specific panes.",
|
|
@@ -139,9 +139,9 @@
|
|
|
139
139
|
"tailwind-merge": "^2.0.0",
|
|
140
140
|
"zod": "^3.23.0",
|
|
141
141
|
"zustand": "^5.0.0",
|
|
142
|
-
"@hachej/boring-agent": "0.1.
|
|
143
|
-
"@hachej/boring-ui-kit": "0.1.
|
|
144
|
-
"@hachej/boring-ui-plugin-cli": "0.1.
|
|
142
|
+
"@hachej/boring-agent": "0.1.62",
|
|
143
|
+
"@hachej/boring-ui-kit": "0.1.62",
|
|
144
|
+
"@hachej/boring-ui-plugin-cli": "0.1.62"
|
|
145
145
|
},
|
|
146
146
|
"devDependencies": {
|
|
147
147
|
"@tailwindcss/postcss": "^4.0.0",
|