@mastra/code-sdk 1.7.2 → 1.8.0-alpha.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/acp/event-mapper.d.ts +1 -0
- package/dist/acp/event-mapper.d.ts.map +1 -1
- package/dist/acp/event-mapper.js +13 -15
- package/dist/acp/event-mapper.js.map +1 -1
- package/dist/agent-connections/tools.d.ts.map +1 -1
- package/dist/agent-connections/tools.js +26 -8
- package/dist/agent-connections/tools.js.map +1 -1
- package/dist/agents/background-completion-events.d.ts +16 -0
- package/dist/agents/background-completion-events.d.ts.map +1 -0
- package/dist/agents/background-completion-events.js +19 -0
- package/dist/agents/background-completion-events.js.map +1 -0
- package/dist/agents/background-completion.d.ts +9 -0
- package/dist/agents/background-completion.d.ts.map +1 -0
- package/dist/agents/background-completion.js +59 -0
- package/dist/agents/background-completion.js.map +1 -0
- package/dist/agents/tool-availability.d.ts +2 -0
- package/dist/agents/tool-availability.d.ts.map +1 -1
- package/dist/agents/tool-availability.js +33 -4
- package/dist/agents/tool-availability.js.map +1 -1
- package/dist/agents/tools.d.ts +1 -1
- package/dist/agents/tools.d.ts.map +1 -1
- package/dist/agents/tools.js +30 -2
- package/dist/agents/tools.js.map +1 -1
- package/dist/agents/workspace.d.ts +2 -1
- package/dist/agents/workspace.d.ts.map +1 -1
- package/dist/agents/workspace.js +3 -3
- package/dist/agents/workspace.js.map +1 -1
- package/dist/headless/format.d.ts +1 -0
- package/dist/headless/format.d.ts.map +1 -1
- package/dist/headless/format.js +13 -17
- package/dist/headless/format.js.map +1 -1
- package/dist/headless/run-mc.d.ts.map +1 -1
- package/dist/headless/run-mc.js +11 -5
- package/dist/headless/run-mc.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +67 -15
- package/dist/index.js.map +1 -1
- package/dist/onboarding/settings.d.ts +5 -0
- package/dist/onboarding/settings.d.ts.map +1 -1
- package/dist/onboarding/settings.js +7 -0
- package/dist/onboarding/settings.js.map +1 -1
- package/dist/plugin.d.ts +12 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/plugins/loader.d.ts.map +1 -1
- package/dist/plugins/loader.js +2 -1
- package/dist/plugins/loader.js.map +1 -1
- package/dist/tools/workflows/save-workflow.d.ts +2 -1009
- package/dist/tools/workflows/save-workflow.d.ts.map +1 -1
- package/dist/workflows/register-primitives.js +2 -2
- package/dist/workflows/register-primitives.js.map +1 -1
- package/package.json +14 -14
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EAErB,mBAAmB,EACnB,uBAAuB,EAEvB,OAAO,EACR,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,8 @@ import { setAuthStorage } from "./providers/openai-codex.js";
|
|
|
6
6
|
import { MASTRA_GATEWAY_PROVIDER, OBSERVABILITY_AUTH_PREFIX, loadSettings, resolveModelDefaults, resolveOmRoleModel, saveSettings } from "./onboarding/settings.js";
|
|
7
7
|
import { createThreadOwnershipManager } from "./agent-connections/ownership.js";
|
|
8
8
|
import { AgentConnectionsSignalProvider } from "./agent-connections/signal-provider.js";
|
|
9
|
+
import { createBackgroundCompletionEvents } from "./agents/background-completion-events.js";
|
|
10
|
+
import { createBackgroundCompletionCallbacks } from "./agents/background-completion.js";
|
|
9
11
|
import { hasCredentialStoreProvider } from "./agents/credential-resolver.js";
|
|
10
12
|
import { getDynamicWorkspace, getGoalJudgeTools } from "./agents/workspace.js";
|
|
11
13
|
import { createGitRefInstructionReader, createGitRefReminderReader, getStaticallyLoadedInstructionPaths } from "./agents/prompts/agent-instructions.js";
|
|
@@ -62,7 +64,7 @@ import { createCodingAgent } from "@mastra/core/coding-agent";
|
|
|
62
64
|
import { PROVIDER_REGISTRY } from "@mastra/core/llm";
|
|
63
65
|
import { Mastra } from "@mastra/core/mastra";
|
|
64
66
|
import { defaultNotificationDeliveryDecision } from "@mastra/core/notifications";
|
|
65
|
-
import { AgentsMDInjector, PrefillErrorHandler, ProviderHistoryCompat, StreamErrorRetryProcessor, isBadRequestError } from "@mastra/core/processors";
|
|
67
|
+
import { AgentsMDInjector, PrefillErrorHandler, ProviderHistoryCompat, StreamErrorRetryProcessor, createBackgroundWorkSignalProcessor, isBadRequestError } from "@mastra/core/processors";
|
|
66
68
|
import { RequestContext } from "@mastra/core/request-context";
|
|
67
69
|
import { InMemoryHarness, MastraCompositeStore } from "@mastra/core/storage";
|
|
68
70
|
import { DEFAULT_GOAL_JUDGE_PROMPT } from "@mastra/core/tools";
|
|
@@ -221,6 +223,7 @@ async function createMastraCodeAgentController(config) {
|
|
|
221
223
|
} catch {}
|
|
222
224
|
const authStorage = createAuthStorage();
|
|
223
225
|
const globalSettings = loadSettings(config?.settingsPath);
|
|
226
|
+
const backgroundToolsEnabled = globalSettings.backgroundTools?.enabled ?? false;
|
|
224
227
|
const storedGatewayKey = authStorage.getStoredApiKey(MASTRA_GATEWAY_PROVIDER);
|
|
225
228
|
const storedGatewayUrl = globalSettings.memoryGateway?.baseUrl;
|
|
226
229
|
if (storedGatewayKey) process.env["MASTRA_GATEWAY_API_KEY"] ??= storedGatewayKey;
|
|
@@ -342,7 +345,12 @@ async function createMastraCodeAgentController(config) {
|
|
|
342
345
|
});
|
|
343
346
|
pluginManager?.setRuntime({
|
|
344
347
|
getController: () => pluginRuntimeController,
|
|
345
|
-
getActiveSession: () => activeSession
|
|
348
|
+
getActiveSession: () => activeSession,
|
|
349
|
+
getStorage: () => ({
|
|
350
|
+
storage,
|
|
351
|
+
storageBackend: storageResult.backend,
|
|
352
|
+
vector
|
|
353
|
+
})
|
|
346
354
|
});
|
|
347
355
|
const loadedPlugins = pluginManager ? await pluginManager.reload() : [];
|
|
348
356
|
const pluginTools = pluginManager?.getPluginTools() ?? {};
|
|
@@ -398,6 +406,7 @@ async function createMastraCodeAgentController(config) {
|
|
|
398
406
|
const mastraCodeInputProcessors = [
|
|
399
407
|
...config?.inputProcessors ?? [],
|
|
400
408
|
new PlanRejectionAbortProcessor(),
|
|
409
|
+
...backgroundToolsEnabled ? [createBackgroundWorkSignalProcessor()] : [],
|
|
401
410
|
new AgentsMDInjector({
|
|
402
411
|
isEnabled: ({ requestContext }) => {
|
|
403
412
|
const state = getInjectorSessionState(requestContext);
|
|
@@ -476,7 +485,7 @@ async function createMastraCodeAgentController(config) {
|
|
|
476
485
|
streamOptions
|
|
477
486
|
} : decision;
|
|
478
487
|
} } },
|
|
479
|
-
tools: createDynamicTools(mcpManager, config?.extraTools, config?.disabledTools, storage, pluginTools),
|
|
488
|
+
tools: createDynamicTools(mcpManager, config?.extraTools, config?.disabledTools, storage, pluginTools, backgroundToolsEnabled),
|
|
480
489
|
hooks: createToolHooks(hookManager, config?.postToolObserver),
|
|
481
490
|
scorers: {
|
|
482
491
|
outcome: {
|
|
@@ -633,10 +642,17 @@ async function createMastraCodeAgentController(config) {
|
|
|
633
642
|
for (const [key, modelId] of Object.entries(globalSettings.models.subagentModels)) if (key === "default" || key === "_default") globalInitialState.subagentModelId = modelId;
|
|
634
643
|
else globalInitialState[`subagentModelId_${key}`] = modelId;
|
|
635
644
|
const typedStateSchema = stateSchema;
|
|
636
|
-
const
|
|
645
|
+
const backgroundCompletionEvents = backgroundToolsEnabled ? createBackgroundCompletionEvents() : void 0;
|
|
646
|
+
let controller;
|
|
647
|
+
controller = new AgentController({
|
|
637
648
|
id: "mastra-code",
|
|
638
649
|
resourceId: project.resourceId,
|
|
639
650
|
storage,
|
|
651
|
+
...backgroundToolsEnabled ? { backgroundTasks: {
|
|
652
|
+
enabled: true,
|
|
653
|
+
recoverStaleTasksOnStart: false,
|
|
654
|
+
...createBackgroundCompletionCallbacks(() => controller, backgroundCompletionEvents)
|
|
655
|
+
} } : {},
|
|
640
656
|
observability,
|
|
641
657
|
memory,
|
|
642
658
|
pubsub: signalsPubSub,
|
|
@@ -644,7 +660,10 @@ async function createMastraCodeAgentController(config) {
|
|
|
644
660
|
agent: codeAgent,
|
|
645
661
|
subagents,
|
|
646
662
|
gateways: [amazonBedrockGateway, mastraCodeGateway],
|
|
647
|
-
workspace: config?.workspace ?? ((args) => getDynamicWorkspace(
|
|
663
|
+
workspace: config?.workspace ?? ((args) => getDynamicWorkspace({
|
|
664
|
+
...args,
|
|
665
|
+
backgroundToolsEnabled
|
|
666
|
+
})),
|
|
648
667
|
browser: config?.browser,
|
|
649
668
|
idGenerator: config?.idGenerator,
|
|
650
669
|
toolCategoryResolver: getToolCategory,
|
|
@@ -680,15 +699,28 @@ async function createMastraCodeAgentController(config) {
|
|
|
680
699
|
const sessionPeerCleanup = /* @__PURE__ */ new WeakMap();
|
|
681
700
|
if (useCrossAgentSignals) {
|
|
682
701
|
controller.onSessionCreated(async (session) => {
|
|
683
|
-
const
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
702
|
+
const latestObservedTitles = /* @__PURE__ */ new Map();
|
|
703
|
+
const threadOwnership = createThreadOwnershipManager(async (threadId) => {
|
|
704
|
+
const revisionAtStart = latestObservedTitles.get(threadId)?.revision ?? 0;
|
|
705
|
+
const thread = await session.thread.getById({ threadId });
|
|
706
|
+
const agent = controller.getCurrentAgent(session);
|
|
707
|
+
const claim = await agent.claimThreadOwnership({
|
|
708
|
+
threadId,
|
|
709
|
+
resourceId: session.identity.getResourceId(),
|
|
710
|
+
streamOptions: () => session.machinery.buildStreamOptions({}),
|
|
711
|
+
peer: {
|
|
712
|
+
label: project.name,
|
|
713
|
+
...thread?.title ? { title: thread.title } : {}
|
|
714
|
+
}
|
|
715
|
+
});
|
|
716
|
+
const observedTitle = latestObservedTitles.get(threadId);
|
|
717
|
+
if (claim.claimed && observedTitle && observedTitle.revision !== revisionAtStart) agent.updateThreadPeerAdvertisement({
|
|
718
|
+
resourceId: session.identity.getResourceId(),
|
|
719
|
+
threadId,
|
|
720
|
+
peer: { title: observedTitle.title }
|
|
721
|
+
});
|
|
722
|
+
return claim;
|
|
723
|
+
});
|
|
692
724
|
const claimThreadOwnership = async (threadId) => {
|
|
693
725
|
try {
|
|
694
726
|
await threadOwnership.claim(threadId);
|
|
@@ -699,6 +731,19 @@ async function createMastraCodeAgentController(config) {
|
|
|
699
731
|
const unsubscribeSession = session.subscribe((event) => {
|
|
700
732
|
if (event.type === "thread_changed") claimThreadOwnership(event.threadId);
|
|
701
733
|
else if (event.type === "thread_created") claimThreadOwnership(event.thread.id);
|
|
734
|
+
else if (event.type === "thread_title_updated" || event.type === "om_thread_title_updated") {
|
|
735
|
+
const title = event.type === "thread_title_updated" ? event.title : event.newTitle;
|
|
736
|
+
const revision = (latestObservedTitles.get(event.threadId)?.revision ?? 0) + 1;
|
|
737
|
+
latestObservedTitles.set(event.threadId, {
|
|
738
|
+
revision,
|
|
739
|
+
title
|
|
740
|
+
});
|
|
741
|
+
controller.getCurrentAgent(session).updateThreadPeerAdvertisement({
|
|
742
|
+
resourceId: session.identity.getResourceId(),
|
|
743
|
+
threadId: event.threadId,
|
|
744
|
+
peer: { title }
|
|
745
|
+
});
|
|
746
|
+
}
|
|
702
747
|
});
|
|
703
748
|
sessionPeerCleanup.set(session, () => {
|
|
704
749
|
unsubscribeSession();
|
|
@@ -743,6 +788,8 @@ async function createMastraCodeAgentController(config) {
|
|
|
743
788
|
builtinOmPacks,
|
|
744
789
|
effectiveDefaults,
|
|
745
790
|
githubSignals,
|
|
791
|
+
backgroundToolsEnabled,
|
|
792
|
+
backgroundCompletionEvents,
|
|
746
793
|
sessionId,
|
|
747
794
|
ownerId,
|
|
748
795
|
projectPath: project.rootPath,
|
|
@@ -916,7 +963,7 @@ async function mountAgentControllerOnMastra(config) {
|
|
|
916
963
|
*/
|
|
917
964
|
async function prepareAgentControllerMount(config) {
|
|
918
965
|
const base = await createMastraCodeAgentController(config);
|
|
919
|
-
const { controller, storage, authStorage, projectPath, codeAgent, mcpManager } = base;
|
|
966
|
+
const { controller, storage, authStorage, projectPath, codeAgent, mcpManager, backgroundToolsEnabled, backgroundCompletionEvents } = base;
|
|
920
967
|
const controllerId = config?.controllerId ?? controller.id;
|
|
921
968
|
const apiRoutes = config?.buildApiRoutes?.({
|
|
922
969
|
controller,
|
|
@@ -934,6 +981,11 @@ async function prepareAgentControllerMount(config) {
|
|
|
934
981
|
const mastraArgs = {
|
|
935
982
|
agentControllers: { [controllerId]: controller },
|
|
936
983
|
storage,
|
|
984
|
+
...backgroundToolsEnabled ? { backgroundTasks: {
|
|
985
|
+
enabled: true,
|
|
986
|
+
recoverStaleTasksOnStart: false,
|
|
987
|
+
...createBackgroundCompletionCallbacks(() => controller, backgroundCompletionEvents)
|
|
988
|
+
} } : {},
|
|
937
989
|
...base.signalsPubSub ? { pubsub: base.signalsPubSub } : {},
|
|
938
990
|
...Object.keys(serverConfig).length ? { server: serverConfig } : {}
|
|
939
991
|
};
|