@mastra/editor 0.11.2 → 0.12.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/dist/index.cjs +43 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +49 -15
- package/dist/index.js.map +1 -1
- package/package.json +12 -12
package/dist/index.d.cts
CHANGED
|
@@ -4,7 +4,7 @@ import { GetByIdOptions, IEditorFavoritesNamespace, EditorFavoriteTargetInput, E
|
|
|
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';
|
|
7
|
-
import { StorageCreateAgentInput, StorageUpdateAgentInput, StorageListAgentsInput, StorageListAgentsOutput, StorageListAgentsResolvedOutput, StorageResolvedAgentType, StorageCreateMCPClientInput, StorageUpdateMCPClientInput, StorageListMCPClientsInput, StorageListMCPClientsOutput, StorageListMCPClientsResolvedOutput, StorageResolvedMCPClientType, StorageMCPServerConfig, StorageCreateMCPServerInput, StorageUpdateMCPServerInput, StorageListMCPServersInput, StorageListMCPServersOutput, StorageListMCPServersResolvedOutput, StorageResolvedMCPServerType, StorageCreatePromptBlockInput, StorageUpdatePromptBlockInput, StorageListPromptBlocksInput, StorageListPromptBlocksOutput, StorageListPromptBlocksResolvedOutput, StorageResolvedPromptBlockType, AgentInstructionBlock, StorageCreateScorerDefinitionInput, StorageUpdateScorerDefinitionInput, StorageListScorerDefinitionsInput, StorageListScorerDefinitionsOutput, StorageListScorerDefinitionsResolvedOutput, StorageResolvedScorerDefinitionType, StorageCreateWorkspaceInput, StorageUpdateWorkspaceInput, StorageListWorkspacesInput, StorageListWorkspacesOutput, StorageListWorkspacesResolvedOutput, StorageResolvedWorkspaceType, StorageWorkspaceSnapshotType, StorageCreateSkillInput, StorageUpdateSkillInput, StorageListSkillsInput, StorageListSkillsOutput, StorageListSkillsResolvedOutput, StorageResolvedSkillType, RuleGroup, PromptBlocksStorage, BlobStore } from '@mastra/core/storage';
|
|
7
|
+
import { StorageCreateAgentInput, StorageUpdateAgentInput, StorageListAgentsInput, StorageListAgentsOutput, StorageListAgentsResolvedOutput, StorageResolvedAgentType, StorageCreateMCPClientInput, StorageUpdateMCPClientInput, StorageListMCPClientsInput, StorageListMCPClientsOutput, StorageListMCPClientsResolvedOutput, StorageResolvedMCPClientType, StorageMCPServerConfig, StorageCreateMCPServerInput, StorageUpdateMCPServerInput, StorageListMCPServersInput, StorageListMCPServersOutput, StorageListMCPServersResolvedOutput, StorageResolvedMCPServerType, StorageCreatePromptBlockInput, StorageUpdatePromptBlockInput, StorageListPromptBlocksInput, StorageListPromptBlocksOutput, StorageListPromptBlocksResolvedOutput, StorageResolvedPromptBlockType, AgentInstructionBlock, StorageCreateScorerDefinitionInput, StorageUpdateScorerDefinitionInput, StorageListScorerDefinitionsInput, StorageListScorerDefinitionsOutput, StorageListScorerDefinitionsResolvedOutput, StorageResolvedScorerDefinitionType, StorageCreateWorkspaceInput, StorageUpdateWorkspaceInput, StorageListWorkspacesInput, StorageListWorkspacesOutput, StorageListWorkspacesResolvedOutput, StorageResolvedWorkspaceType, StorageWorkspaceSnapshotType, StorageCreateSkillInput, StorageUpdateSkillInput, StorageListSkillsInput, StorageListSkillsOutput, StorageListSkillsResolvedOutput, StorageResolvedSkillType, RuleGroup, PromptBlocksStorage, SourceControlProvider, BlobStore } from '@mastra/core/storage';
|
|
8
8
|
import { ToolProvider } from '@mastra/core/tool-provider';
|
|
9
9
|
import { Agent } from '@mastra/core/agent';
|
|
10
10
|
import { RequestContext } from '@mastra/core/request-context';
|
|
@@ -101,6 +101,7 @@ declare class EditorAgentNamespace extends CrudEditorNamespace<StorageCreateAgen
|
|
|
101
101
|
* Also ensures the referenced workspace (if any) is persisted as a stored workspace.
|
|
102
102
|
*/
|
|
103
103
|
create(input: StorageCreateAgentInput): Promise<Agent>;
|
|
104
|
+
private getCodeDefinedAgent;
|
|
104
105
|
/**
|
|
105
106
|
* Ensure a workspace reference is persisted in the DB.
|
|
106
107
|
*
|
|
@@ -445,6 +446,7 @@ declare class MastraEditor implements IMastraEditor {
|
|
|
445
446
|
private __processorProviders;
|
|
446
447
|
private __source?;
|
|
447
448
|
private __codePath;
|
|
449
|
+
private __sourceControlProvider?;
|
|
448
450
|
private readonly __builderConfig?;
|
|
449
451
|
private __builderInstance?;
|
|
450
452
|
private __builderResolved;
|
|
@@ -526,6 +528,8 @@ declare class MastraEditor implements IMastraEditor {
|
|
|
526
528
|
private assertAgentBuilderLicensed;
|
|
527
529
|
/** Returns the editor's configured source, or undefined if unset. */
|
|
528
530
|
getSource(): 'code' | 'db' | undefined;
|
|
531
|
+
/** Returns the configured source control provider, if any. */
|
|
532
|
+
getSourceControlProvider(): SourceControlProvider | undefined;
|
|
529
533
|
/** Registered tool providers */
|
|
530
534
|
getToolProvider(id: string): ToolProvider | undefined;
|
|
531
535
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { GetByIdOptions, IEditorFavoritesNamespace, EditorFavoriteTargetInput, E
|
|
|
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';
|
|
7
|
-
import { StorageCreateAgentInput, StorageUpdateAgentInput, StorageListAgentsInput, StorageListAgentsOutput, StorageListAgentsResolvedOutput, StorageResolvedAgentType, StorageCreateMCPClientInput, StorageUpdateMCPClientInput, StorageListMCPClientsInput, StorageListMCPClientsOutput, StorageListMCPClientsResolvedOutput, StorageResolvedMCPClientType, StorageMCPServerConfig, StorageCreateMCPServerInput, StorageUpdateMCPServerInput, StorageListMCPServersInput, StorageListMCPServersOutput, StorageListMCPServersResolvedOutput, StorageResolvedMCPServerType, StorageCreatePromptBlockInput, StorageUpdatePromptBlockInput, StorageListPromptBlocksInput, StorageListPromptBlocksOutput, StorageListPromptBlocksResolvedOutput, StorageResolvedPromptBlockType, AgentInstructionBlock, StorageCreateScorerDefinitionInput, StorageUpdateScorerDefinitionInput, StorageListScorerDefinitionsInput, StorageListScorerDefinitionsOutput, StorageListScorerDefinitionsResolvedOutput, StorageResolvedScorerDefinitionType, StorageCreateWorkspaceInput, StorageUpdateWorkspaceInput, StorageListWorkspacesInput, StorageListWorkspacesOutput, StorageListWorkspacesResolvedOutput, StorageResolvedWorkspaceType, StorageWorkspaceSnapshotType, StorageCreateSkillInput, StorageUpdateSkillInput, StorageListSkillsInput, StorageListSkillsOutput, StorageListSkillsResolvedOutput, StorageResolvedSkillType, RuleGroup, PromptBlocksStorage, BlobStore } from '@mastra/core/storage';
|
|
7
|
+
import { StorageCreateAgentInput, StorageUpdateAgentInput, StorageListAgentsInput, StorageListAgentsOutput, StorageListAgentsResolvedOutput, StorageResolvedAgentType, StorageCreateMCPClientInput, StorageUpdateMCPClientInput, StorageListMCPClientsInput, StorageListMCPClientsOutput, StorageListMCPClientsResolvedOutput, StorageResolvedMCPClientType, StorageMCPServerConfig, StorageCreateMCPServerInput, StorageUpdateMCPServerInput, StorageListMCPServersInput, StorageListMCPServersOutput, StorageListMCPServersResolvedOutput, StorageResolvedMCPServerType, StorageCreatePromptBlockInput, StorageUpdatePromptBlockInput, StorageListPromptBlocksInput, StorageListPromptBlocksOutput, StorageListPromptBlocksResolvedOutput, StorageResolvedPromptBlockType, AgentInstructionBlock, StorageCreateScorerDefinitionInput, StorageUpdateScorerDefinitionInput, StorageListScorerDefinitionsInput, StorageListScorerDefinitionsOutput, StorageListScorerDefinitionsResolvedOutput, StorageResolvedScorerDefinitionType, StorageCreateWorkspaceInput, StorageUpdateWorkspaceInput, StorageListWorkspacesInput, StorageListWorkspacesOutput, StorageListWorkspacesResolvedOutput, StorageResolvedWorkspaceType, StorageWorkspaceSnapshotType, StorageCreateSkillInput, StorageUpdateSkillInput, StorageListSkillsInput, StorageListSkillsOutput, StorageListSkillsResolvedOutput, StorageResolvedSkillType, RuleGroup, PromptBlocksStorage, SourceControlProvider, BlobStore } from '@mastra/core/storage';
|
|
8
8
|
import { ToolProvider } from '@mastra/core/tool-provider';
|
|
9
9
|
import { Agent } from '@mastra/core/agent';
|
|
10
10
|
import { RequestContext } from '@mastra/core/request-context';
|
|
@@ -101,6 +101,7 @@ declare class EditorAgentNamespace extends CrudEditorNamespace<StorageCreateAgen
|
|
|
101
101
|
* Also ensures the referenced workspace (if any) is persisted as a stored workspace.
|
|
102
102
|
*/
|
|
103
103
|
create(input: StorageCreateAgentInput): Promise<Agent>;
|
|
104
|
+
private getCodeDefinedAgent;
|
|
104
105
|
/**
|
|
105
106
|
* Ensure a workspace reference is persisted in the DB.
|
|
106
107
|
*
|
|
@@ -445,6 +446,7 @@ declare class MastraEditor implements IMastraEditor {
|
|
|
445
446
|
private __processorProviders;
|
|
446
447
|
private __source?;
|
|
447
448
|
private __codePath;
|
|
449
|
+
private __sourceControlProvider?;
|
|
448
450
|
private readonly __builderConfig?;
|
|
449
451
|
private __builderInstance?;
|
|
450
452
|
private __builderResolved;
|
|
@@ -526,6 +528,8 @@ declare class MastraEditor implements IMastraEditor {
|
|
|
526
528
|
private assertAgentBuilderLicensed;
|
|
527
529
|
/** Returns the editor's configured source, or undefined if unset. */
|
|
528
530
|
getSource(): 'code' | 'db' | undefined;
|
|
531
|
+
/** Returns the configured source control provider, if any. */
|
|
532
|
+
getSourceControlProvider(): SourceControlProvider | undefined;
|
|
529
533
|
/** Registered tool providers */
|
|
530
534
|
getToolProvider(id: string): ToolProvider | undefined;
|
|
531
535
|
/**
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
2
|
import { BUILT_IN_PROCESSOR_PROVIDERS } from "@mastra/core/processor-provider";
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
createGitHubSourceControlProviderFromEnv,
|
|
5
|
+
FilesystemStore,
|
|
6
|
+
MastraCompositeStore,
|
|
7
|
+
SourceAgentsSourceControl
|
|
8
|
+
} from "@mastra/core/storage";
|
|
4
9
|
import { UnknownToolProviderError } from "@mastra/core/tool-provider";
|
|
5
10
|
|
|
6
11
|
// src/namespaces/base.ts
|
|
@@ -605,8 +610,24 @@ var EditorAgentNamespace = class extends CrudEditorNamespace {
|
|
|
605
610
|
finalInput = applyBuilderDefaults(input, agentConfig);
|
|
606
611
|
}
|
|
607
612
|
await this.ensureStoredWorkspace(finalInput.workspace);
|
|
613
|
+
const existingCodeAgent = this.getCodeDefinedAgent(finalInput.id);
|
|
614
|
+
if (existingCodeAgent) {
|
|
615
|
+
const adapter = await this.getStorageAdapter();
|
|
616
|
+
await adapter.create(finalInput);
|
|
617
|
+
this._cache.set(finalInput.id, existingCodeAgent);
|
|
618
|
+
return existingCodeAgent;
|
|
619
|
+
}
|
|
608
620
|
return super.create(finalInput);
|
|
609
621
|
}
|
|
622
|
+
getCodeDefinedAgent(id) {
|
|
623
|
+
let agent;
|
|
624
|
+
try {
|
|
625
|
+
agent = this.mastra?.getAgentById(id);
|
|
626
|
+
} catch {
|
|
627
|
+
return void 0;
|
|
628
|
+
}
|
|
629
|
+
return agent?.source === "code" ? agent : void 0;
|
|
630
|
+
}
|
|
610
631
|
/**
|
|
611
632
|
* Ensure a workspace reference is persisted in the DB.
|
|
612
633
|
*
|
|
@@ -1098,14 +1119,7 @@ var EditorAgentNamespace = class extends CrudEditorNamespace {
|
|
|
1098
1119
|
browser,
|
|
1099
1120
|
...skillsFormat && { skillsFormat }
|
|
1100
1121
|
});
|
|
1101
|
-
|
|
1102
|
-
try {
|
|
1103
|
-
return this.mastra?.getAgentById(storedAgent.id);
|
|
1104
|
-
} catch {
|
|
1105
|
-
return void 0;
|
|
1106
|
-
}
|
|
1107
|
-
})();
|
|
1108
|
-
if (!existingCodeAgent || existingCodeAgent.source !== "code") {
|
|
1122
|
+
if (!this.getCodeDefinedAgent(storedAgent.id)) {
|
|
1109
1123
|
this.mastra?.addAgent(agent, storedAgent.id, { source: "stored" });
|
|
1110
1124
|
}
|
|
1111
1125
|
this.logger?.debug(`[createAgentFromStoredConfig] Successfully created agent "${storedAgent.id}"`);
|
|
@@ -2254,6 +2268,7 @@ var MastraEditor = class {
|
|
|
2254
2268
|
this.__processorProviders = { ...BUILT_IN_PROCESSOR_PROVIDERS, ...config?.processorProviders };
|
|
2255
2269
|
this.__source = config?.source;
|
|
2256
2270
|
this.__codePath = config?.codePath ?? "./mastra/editor";
|
|
2271
|
+
this.__sourceControlProvider = config?.sourceControlProvider ?? createGitHubSourceControlProviderFromEnv(process.env, { pathPrefix: this.__codePath });
|
|
2257
2272
|
this.__filesystems = /* @__PURE__ */ new Map();
|
|
2258
2273
|
this.__filesystems.set(localFilesystemProvider.id, localFilesystemProvider);
|
|
2259
2274
|
for (const [id, provider] of Object.entries(config?.filesystems ?? {})) {
|
|
@@ -2292,18 +2307,33 @@ var MastraEditor = class {
|
|
|
2292
2307
|
this.__logger = mastra.getLogger();
|
|
2293
2308
|
}
|
|
2294
2309
|
if (this.__source === "code") {
|
|
2295
|
-
const filesystemStore = new FilesystemStore({ dir: this.__codePath });
|
|
2296
2310
|
const existingStorage = mastra.getStorage();
|
|
2297
|
-
if (
|
|
2311
|
+
if (this.__sourceControlProvider) {
|
|
2312
|
+
const sourceAgentsStore = new SourceAgentsSourceControl({
|
|
2313
|
+
provider: this.__sourceControlProvider
|
|
2314
|
+
});
|
|
2315
|
+
const filesystemStore = new FilesystemStore({ dir: this.__codePath });
|
|
2298
2316
|
mastra.setStorage(
|
|
2299
2317
|
new MastraCompositeStore({
|
|
2300
|
-
id: `${existingStorage
|
|
2301
|
-
default: existingStorage,
|
|
2302
|
-
editor: filesystemStore
|
|
2318
|
+
id: `${existingStorage?.id ?? "mastra"}-with-editor-source-control`,
|
|
2319
|
+
...existingStorage ? { default: existingStorage } : {},
|
|
2320
|
+
editor: filesystemStore,
|
|
2321
|
+
domains: { agents: sourceAgentsStore }
|
|
2303
2322
|
})
|
|
2304
2323
|
);
|
|
2305
2324
|
} else {
|
|
2306
|
-
|
|
2325
|
+
const filesystemStore = new FilesystemStore({ dir: this.__codePath });
|
|
2326
|
+
if (existingStorage) {
|
|
2327
|
+
mastra.setStorage(
|
|
2328
|
+
new MastraCompositeStore({
|
|
2329
|
+
id: `${existingStorage.id}-with-editor-filesystem`,
|
|
2330
|
+
default: existingStorage,
|
|
2331
|
+
editor: filesystemStore
|
|
2332
|
+
})
|
|
2333
|
+
);
|
|
2334
|
+
} else {
|
|
2335
|
+
mastra.setStorage(filesystemStore);
|
|
2336
|
+
}
|
|
2307
2337
|
}
|
|
2308
2338
|
}
|
|
2309
2339
|
this.ensureBuilderWorkspaces().then(() => this.reconcileBuilderWorkspaces()).catch((err) => {
|
|
@@ -2458,6 +2488,10 @@ var MastraEditor = class {
|
|
|
2458
2488
|
getSource() {
|
|
2459
2489
|
return this.__source;
|
|
2460
2490
|
}
|
|
2491
|
+
/** Returns the configured source control provider, if any. */
|
|
2492
|
+
getSourceControlProvider() {
|
|
2493
|
+
return this.__sourceControlProvider;
|
|
2494
|
+
}
|
|
2461
2495
|
/** Registered tool providers */
|
|
2462
2496
|
getToolProvider(id) {
|
|
2463
2497
|
return this.__toolProviders[id];
|