@mastra/editor 0.13.4 → 0.13.5

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/index.d.cts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Mastra } from '@mastra/core';
2
2
  import { IAgentBuilder } from '@mastra/core/agent-builder/ee';
3
- import { GetByIdOptions, IEditorFavoritesNamespace, EditorFavoriteTargetInput, EditorFavoriteToggleResult, EditorIsFavoritedBatchInput, EditorListFavoritedIdsInput, FilesystemProvider, SandboxProvider, IMastraEditor, BlobStoreProvider, BrowserProvider, MastraEditorConfig } from '@mastra/core/editor';
3
+ import { GetByIdOptions, IEditorFavoritesNamespace, EditorFavoriteTargetInput, EditorFavoriteToggleResult, EditorIsFavoritedBatchInput, EditorListFavoritedIdsInput, FilesystemProvider, SandboxProvider, IMastraEditor, BlobStoreProvider, BrowserProvider, WorkspaceProvider, MastraEditorConfig } from '@mastra/core/editor';
4
4
  export { BrowserProvider, MastraEditorConfig } from '@mastra/core/editor';
5
5
  import { IMastraLogger } from '@mastra/core/logger';
6
6
  import { ProcessorProvider } from '@mastra/core/processor-provider';
@@ -324,6 +324,11 @@ declare class EditorWorkspaceNamespace extends CrudEditorNamespace<StorageCreate
324
324
  * Looks up the provider by ID in the editor's registry (which includes built-in providers).
325
325
  */
326
326
  private resolveSandbox;
327
+ /**
328
+ * Resolve a stored workspace provider config to a complete runtime Workspace instance.
329
+ * Looks up the provider by ID in the editor's workspace provider registry.
330
+ */
331
+ resolveWorkspaceProvider(providerId: string, config: Record<string, unknown>): Promise<Workspace<any, any, any>>;
327
332
  protected getStorageAdapter(): Promise<StorageAdapter<StorageCreateWorkspaceInput, StorageUpdateWorkspaceInput, StorageListWorkspacesInput, StorageListWorkspacesOutput, StorageListWorkspacesResolvedOutput, StorageResolvedWorkspaceType>>;
328
333
  }
329
334
 
@@ -478,6 +483,12 @@ declare class MastraEditor implements IMastraEditor {
478
483
  * No built-in providers — browser packages must be registered via config.
479
484
  */
480
485
  readonly __browsers: Map<string, BrowserProvider>;
486
+ /**
487
+ * @internal — exposed for namespace classes to hydrate stored workspace configs.
488
+ * Maps provider ID to the provider descriptor.
489
+ * No built-in providers — workspace providers must be registered via config.
490
+ */
491
+ readonly __workspaces: Map<string, WorkspaceProvider>;
481
492
  readonly agent: EditorAgentNamespace;
482
493
  readonly mcp: EditorMCPNamespace;
483
494
  readonly mcpServer: EditorMCPServerNamespace;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Mastra } from '@mastra/core';
2
2
  import { IAgentBuilder } from '@mastra/core/agent-builder/ee';
3
- import { GetByIdOptions, IEditorFavoritesNamespace, EditorFavoriteTargetInput, EditorFavoriteToggleResult, EditorIsFavoritedBatchInput, EditorListFavoritedIdsInput, FilesystemProvider, SandboxProvider, IMastraEditor, BlobStoreProvider, BrowserProvider, MastraEditorConfig } from '@mastra/core/editor';
3
+ import { GetByIdOptions, IEditorFavoritesNamespace, EditorFavoriteTargetInput, EditorFavoriteToggleResult, EditorIsFavoritedBatchInput, EditorListFavoritedIdsInput, FilesystemProvider, SandboxProvider, IMastraEditor, BlobStoreProvider, BrowserProvider, WorkspaceProvider, MastraEditorConfig } from '@mastra/core/editor';
4
4
  export { BrowserProvider, MastraEditorConfig } from '@mastra/core/editor';
5
5
  import { IMastraLogger } from '@mastra/core/logger';
6
6
  import { ProcessorProvider } from '@mastra/core/processor-provider';
@@ -324,6 +324,11 @@ declare class EditorWorkspaceNamespace extends CrudEditorNamespace<StorageCreate
324
324
  * Looks up the provider by ID in the editor's registry (which includes built-in providers).
325
325
  */
326
326
  private resolveSandbox;
327
+ /**
328
+ * Resolve a stored workspace provider config to a complete runtime Workspace instance.
329
+ * Looks up the provider by ID in the editor's workspace provider registry.
330
+ */
331
+ resolveWorkspaceProvider(providerId: string, config: Record<string, unknown>): Promise<Workspace<any, any, any>>;
327
332
  protected getStorageAdapter(): Promise<StorageAdapter<StorageCreateWorkspaceInput, StorageUpdateWorkspaceInput, StorageListWorkspacesInput, StorageListWorkspacesOutput, StorageListWorkspacesResolvedOutput, StorageResolvedWorkspaceType>>;
328
333
  }
329
334
 
@@ -478,6 +483,12 @@ declare class MastraEditor implements IMastraEditor {
478
483
  * No built-in providers — browser packages must be registered via config.
479
484
  */
480
485
  readonly __browsers: Map<string, BrowserProvider>;
486
+ /**
487
+ * @internal — exposed for namespace classes to hydrate stored workspace configs.
488
+ * Maps provider ID to the provider descriptor.
489
+ * No built-in providers — workspace providers must be registered via config.
490
+ */
491
+ readonly __workspaces: Map<string, WorkspaceProvider>;
481
492
  readonly agent: EditorAgentNamespace;
482
493
  readonly mcp: EditorMCPNamespace;
483
494
  readonly mcpServer: EditorMCPServerNamespace;
package/dist/index.js CHANGED
@@ -837,6 +837,7 @@ var EditorAgentNamespace = class extends CrudEditorNamespace {
837
837
  ...workspaceRef.config
838
838
  });
839
839
  this.logger?.debug(`[ensureStoredWorkspace] Persisted inline workspace '${workspaceId}' to DB`);
840
+ } else if (workspaceRef.type === "provider") {
840
841
  }
841
842
  } catch (error) {
842
843
  this.logger?.warn("[ensureStoredWorkspace] Failed to persist workspace", { error });
@@ -1746,6 +1747,9 @@ var EditorAgentNamespace = class extends CrudEditorNamespace {
1746
1747
  const configHash = createHash("sha256").update(JSON.stringify(workspaceRef.config)).digest("hex").slice(0, 12);
1747
1748
  return workspaceNs.hydrateSnapshotToWorkspace(`inline-${configHash}`, workspaceRef.config, hydrateOptions);
1748
1749
  }
1750
+ if (workspaceRef.type === "provider") {
1751
+ return workspaceNs.resolveWorkspaceProvider(workspaceRef.provider, workspaceRef.config);
1752
+ }
1749
1753
  return void 0;
1750
1754
  }
1751
1755
  /**
@@ -2339,6 +2343,19 @@ var EditorWorkspaceNamespace = class extends CrudEditorNamespace {
2339
2343
  }
2340
2344
  return await provider.createSandbox(sandboxConfig.config);
2341
2345
  }
2346
+ /**
2347
+ * Resolve a stored workspace provider config to a complete runtime Workspace instance.
2348
+ * Looks up the provider by ID in the editor's workspace provider registry.
2349
+ */
2350
+ async resolveWorkspaceProvider(providerId, config) {
2351
+ const provider = this.editor.__workspaces.get(providerId);
2352
+ if (!provider) {
2353
+ throw new Error(
2354
+ `Workspace provider "${providerId}" is not registered. Register it via new MastraEditor({ workspaces: { '${providerId}': yourProvider } })`
2355
+ );
2356
+ }
2357
+ return await provider.createWorkspace(config);
2358
+ }
2342
2359
  async getStorageAdapter() {
2343
2360
  const storage = this.mastra?.getStorage();
2344
2361
  if (!storage) throw new Error("Storage is not configured");
@@ -2573,6 +2590,10 @@ var MastraEditor = class {
2573
2590
  for (const [id, provider] of Object.entries(config?.browsers ?? {})) {
2574
2591
  this.__browsers.set(id, provider);
2575
2592
  }
2593
+ this.__workspaces = /* @__PURE__ */ new Map();
2594
+ for (const [id, provider] of Object.entries(config?.workspaces ?? {})) {
2595
+ this.__workspaces.set(id, provider);
2596
+ }
2576
2597
  this.agent = new EditorAgentNamespace(this);
2577
2598
  this.mcp = new EditorMCPNamespace(this);
2578
2599
  this.mcpServer = new EditorMCPServerNamespace(this);