@mastra/code-sdk 1.10.1 → 1.11.0-alpha.1
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/agents/mastracode-gateway.d.ts +4 -1
- package/dist/agents/mastracode-gateway.d.ts.map +1 -1
- package/dist/agents/mastracode-gateway.js +13 -9
- package/dist/agents/mastracode-gateway.js.map +1 -1
- package/dist/agents/memory.d.ts.map +1 -1
- package/dist/agents/memory.js +7 -2
- package/dist/agents/memory.js.map +1 -1
- package/dist/agents/model.d.ts +2 -0
- package/dist/agents/model.d.ts.map +1 -1
- package/dist/agents/model.js +1 -0
- package/dist/agents/model.js.map +1 -1
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +51 -8
- package/dist/index.js.map +1 -1
- package/dist/providers/anthropic-prompt-cache.d.ts +19 -0
- package/dist/providers/anthropic-prompt-cache.d.ts.map +1 -0
- package/dist/providers/anthropic-prompt-cache.js +11 -0
- package/dist/providers/anthropic-prompt-cache.js.map +1 -0
- package/dist/providers/claude-max.d.ts +4 -2
- package/dist/providers/claude-max.d.ts.map +1 -1
- package/dist/providers/claude-max.js +8 -7
- package/dist/providers/claude-max.js.map +1 -1
- package/dist/utils/notification-dispatch.d.ts +59 -0
- package/dist/utils/notification-dispatch.d.ts.map +1 -0
- package/dist/utils/notification-dispatch.js +109 -0
- package/dist/utils/notification-dispatch.js.map +1 -0
- package/dist/utils/signals-pubsub.d.ts +42 -13
- package/dist/utils/signals-pubsub.d.ts.map +1 -1
- package/dist/utils/signals-pubsub.js +141 -38
- package/dist/utils/signals-pubsub.js.map +1 -1
- package/package.json +8 -8
package/dist/index.d.ts
CHANGED
|
@@ -60,6 +60,8 @@ export interface MastraCodeConfig {
|
|
|
60
60
|
settingsPath?: string;
|
|
61
61
|
/** Initial state overrides (yolo, thinkingLevel, etc.) */
|
|
62
62
|
initialState?: Partial<MastraCodeState>;
|
|
63
|
+
/** Create a thread during local boot when no existing thread matches. Default: true */
|
|
64
|
+
createInitialThread?: boolean;
|
|
63
65
|
/** Trusted host instructions resolved outside mutable session state. */
|
|
64
66
|
hostInstructions?: string | ((ctx: {
|
|
65
67
|
requestContext: RequestContext;
|
|
@@ -211,6 +213,15 @@ export declare function createMastraCodeAgentController(config?: MastraCodeConfi
|
|
|
211
213
|
stopPluginSignalProviders: () => void;
|
|
212
214
|
/** Process-local `/schedules` scheduler. Call `stop()` on shutdown. */
|
|
213
215
|
threadScheduler: ThreadScheduler;
|
|
216
|
+
/**
|
|
217
|
+
* Starts delivering the due notifications of this controller's sessions'
|
|
218
|
+
* resources from this process. Called by the composition layer once the
|
|
219
|
+
* controller is inited. A no-op when the embedder configured its own
|
|
220
|
+
* PubSub, whose shared dispatch schedule keeps delivering everything.
|
|
221
|
+
*/
|
|
222
|
+
startNotificationDispatch: () => void;
|
|
223
|
+
/** Stops this process's notification dispatch and releases its leases. Call on shutdown. */
|
|
224
|
+
stopNotificationDispatch: () => Promise<void>;
|
|
214
225
|
/**
|
|
215
226
|
* Hands Mastra to the statically configured input processors.
|
|
216
227
|
*
|
|
@@ -301,6 +312,15 @@ export declare function bootLocalAgentController(config?: MastraCodeConfig): Pro
|
|
|
301
312
|
stopPluginSignalProviders: () => void;
|
|
302
313
|
/** Process-local `/schedules` scheduler. Call `stop()` on shutdown. */
|
|
303
314
|
threadScheduler: ThreadScheduler;
|
|
315
|
+
/**
|
|
316
|
+
* Starts delivering the due notifications of this controller's sessions'
|
|
317
|
+
* resources from this process. Called by the composition layer once the
|
|
318
|
+
* controller is inited. A no-op when the embedder configured its own
|
|
319
|
+
* PubSub, whose shared dispatch schedule keeps delivering everything.
|
|
320
|
+
*/
|
|
321
|
+
startNotificationDispatch: () => void;
|
|
322
|
+
/** Stops this process's notification dispatch and releases its leases. Call on shutdown. */
|
|
323
|
+
stopNotificationDispatch: () => Promise<void>;
|
|
304
324
|
/**
|
|
305
325
|
* Hands Mastra to the statically configured input processors.
|
|
306
326
|
*
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,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;AAU7C,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAmB,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EACL,aAAa,EAId,MAAM,uBAAuB,CAAC;AAK/B,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,wCAAwC,CAAC;AAMpG,OAAO,EAA+D,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAc9G,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AASpE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAItD,OAAO,EACL,YAAY,EAOb,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAWrD,OAAO,EAML,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -55,6 +55,7 @@ import { DiscardingScoresStorage } from "./utils/discarding-scores-storage.js";
|
|
|
55
55
|
import { syncGateways } from "./utils/gateway-sync.js";
|
|
56
56
|
import { registerSessionAndWaitForMaintenance, unregisterSession } from "./utils/maintenance-lock.js";
|
|
57
57
|
import { createSignalsPubSub } from "./utils/signals-pubsub.js";
|
|
58
|
+
import { createResourceNotificationDispatcher, shouldHoldNotificationDelivery } from "./utils/notification-dispatch.js";
|
|
58
59
|
import { DEFAULT_RETENTION, createStorageMaintenance, resolveLocalDbFiles } from "./utils/storage-maintenance.js";
|
|
59
60
|
import { createStorage, createVectorStore } from "./utils/storage-factory.js";
|
|
60
61
|
import { acquireThreadLock, releaseThreadLock } from "./utils/thread-lock.js";
|
|
@@ -67,7 +68,7 @@ import "./headless/index.js";
|
|
|
67
68
|
import path from "path";
|
|
68
69
|
import { statSync } from "fs";
|
|
69
70
|
import { homedir, hostname } from "os";
|
|
70
|
-
import { createHash } from "crypto";
|
|
71
|
+
import { createHash, randomUUID } from "crypto";
|
|
71
72
|
import { readFile } from "fs/promises";
|
|
72
73
|
import { AgentController } from "@mastra/core/agent-controller";
|
|
73
74
|
import { createCodingAgent } from "@mastra/core/coding-agent";
|
|
@@ -241,6 +242,7 @@ async function createMastraCodeAgentController(config) {
|
|
|
241
242
|
const homeDir = config?.homeDir ?? config?.initialState?.homeDir;
|
|
242
243
|
const configDir = config?.configDir ?? ".mastracode";
|
|
243
244
|
let activeSession;
|
|
245
|
+
const liveSessions = /* @__PURE__ */ new Set();
|
|
244
246
|
let pluginRuntimeController;
|
|
245
247
|
if (configDir !== ".mastracode") validateConfigDirName(configDir);
|
|
246
248
|
if (!config?.disableEnvFile) try {
|
|
@@ -292,8 +294,9 @@ async function createMastraCodeAgentController(config) {
|
|
|
292
294
|
const ownerId = `mastracode-${shortHash(`${hostname()}\0${project.rootPath}`)}`;
|
|
293
295
|
const configuredPubSub = config?.pubsub;
|
|
294
296
|
const useUnixSocketPubSub = (config?.unixSocketPubSub ?? globalSettings.signals?.unixSocketPubSub ?? false) && process.platform !== "win32";
|
|
295
|
-
const
|
|
296
|
-
const
|
|
297
|
+
const ownSignalsPubSub = !configuredPubSub && useUnixSocketPubSub ? createSignalsPubSub(project.resourceId) : void 0;
|
|
298
|
+
const signalsPubSub = configuredPubSub ?? ownSignalsPubSub;
|
|
299
|
+
const crossProcessPubSub = config?.crossProcessPubSub ?? Boolean(ownSignalsPubSub);
|
|
297
300
|
if (crossProcessPubSub && !signalsPubSub) throw new Error("crossProcessPubSub requires a pubsub instance");
|
|
298
301
|
const useCrossAgentSignals = config?.crossAgentSignals ?? globalSettings.signals?.experimentalCrossAgentSignals ?? false;
|
|
299
302
|
const useScheduleTools = config?.scheduleTools ?? globalSettings.signals?.experimentalScheduleTools ?? false;
|
|
@@ -397,9 +400,17 @@ async function createMastraCodeAgentController(config) {
|
|
|
397
400
|
const pluginTools = pluginManager?.getPluginTools() ?? {};
|
|
398
401
|
const outcomeScorer = createOutcomeScorer();
|
|
399
402
|
const efficiencyScorer = createEfficiencyScorer();
|
|
403
|
+
const ownsNotificationDispatch = !configuredPubSub;
|
|
404
|
+
const dispatchLeasePubSub = ownsNotificationDispatch && !ownSignalsPubSub && process.platform !== "win32" ? createSignalsPubSub(project.resourceId) : void 0;
|
|
405
|
+
const notificationDispatcher = createResourceNotificationDispatcher({
|
|
406
|
+
getMastra: () => controller.getMastra(),
|
|
407
|
+
getResourceIds: () => [...liveSessions].map((session) => session.identity.getResourceId()),
|
|
408
|
+
leases: ownsNotificationDispatch ? (ownSignalsPubSub ?? dispatchLeasePubSub)?.getLeaseProvider() : void 0,
|
|
409
|
+
owner: `${ownerId}:${process.pid}:${randomUUID()}`,
|
|
410
|
+
onError: (error) => console.warn("Notification dispatch failed:", error)
|
|
411
|
+
});
|
|
400
412
|
const getWakeStreamOptions = async ({ resourceId, threadId }) => {
|
|
401
|
-
const
|
|
402
|
-
const session = owningSession ?? activeSession;
|
|
413
|
+
const session = await controller.getSessionByResource(resourceId);
|
|
403
414
|
if (!session) return void 0;
|
|
404
415
|
const targetThread = await session.thread.getById({ threadId });
|
|
405
416
|
const metadata = targetThread?.resourceId === resourceId ? targetThread.metadata : void 0;
|
|
@@ -485,7 +496,7 @@ async function createMastraCodeAgentController(config) {
|
|
|
485
496
|
}
|
|
486
497
|
};
|
|
487
498
|
requestContext.set("controller", agentControllerContext);
|
|
488
|
-
|
|
499
|
+
await config?.prepareWakeRequestContext?.({
|
|
489
500
|
requestContext,
|
|
490
501
|
resourceId,
|
|
491
502
|
threadId
|
|
@@ -629,10 +640,19 @@ async function createMastraCodeAgentController(config) {
|
|
|
629
640
|
resourceId: input.record.resourceId,
|
|
630
641
|
threadId: input.record.threadId
|
|
631
642
|
});
|
|
632
|
-
|
|
643
|
+
const withOptions = streamOptions ? {
|
|
633
644
|
...decision,
|
|
634
645
|
streamOptions
|
|
635
646
|
} : decision;
|
|
647
|
+
if (!ownsNotificationDispatch) return withOptions;
|
|
648
|
+
return shouldHoldNotificationDelivery({
|
|
649
|
+
resourceId: input.record.resourceId,
|
|
650
|
+
ownedHere: streamOptions !== void 0,
|
|
651
|
+
dispatcher: notificationDispatcher
|
|
652
|
+
}) ? {
|
|
653
|
+
...withOptions,
|
|
654
|
+
hold: true
|
|
655
|
+
} : withOptions;
|
|
636
656
|
} } },
|
|
637
657
|
tools: createDynamicTools(mcpManager, config?.extraTools, config?.disabledTools, storage, pluginTools, backgroundToolsEnabled, scheduleTools),
|
|
638
658
|
hooks: createToolHooks(hookManager, config?.postToolObserver),
|
|
@@ -864,6 +884,12 @@ async function createMastraCodeAgentController(config) {
|
|
|
864
884
|
release: releaseThreadLock
|
|
865
885
|
}
|
|
866
886
|
});
|
|
887
|
+
controller.onSessionCreated((session) => {
|
|
888
|
+
liveSessions.add(session);
|
|
889
|
+
});
|
|
890
|
+
controller.onSessionDeleted((session) => {
|
|
891
|
+
liveSessions.delete(session);
|
|
892
|
+
});
|
|
867
893
|
const sessionPeerCleanup = /* @__PURE__ */ new WeakMap();
|
|
868
894
|
if (useCrossAgentSignals) {
|
|
869
895
|
controller.onSessionCreated(async (session) => {
|
|
@@ -949,6 +975,20 @@ async function createMastraCodeAgentController(config) {
|
|
|
949
975
|
/** Process-local `/schedules` scheduler. Call `stop()` on shutdown. */
|
|
950
976
|
threadScheduler,
|
|
951
977
|
/**
|
|
978
|
+
* Starts delivering the due notifications of this controller's sessions'
|
|
979
|
+
* resources from this process. Called by the composition layer once the
|
|
980
|
+
* controller is inited. A no-op when the embedder configured its own
|
|
981
|
+
* PubSub, whose shared dispatch schedule keeps delivering everything.
|
|
982
|
+
*/
|
|
983
|
+
startNotificationDispatch: () => {
|
|
984
|
+
if (ownsNotificationDispatch) notificationDispatcher.start();
|
|
985
|
+
},
|
|
986
|
+
/** Stops this process's notification dispatch and releases its leases. Call on shutdown. */
|
|
987
|
+
stopNotificationDispatch: async () => {
|
|
988
|
+
await notificationDispatcher.stop();
|
|
989
|
+
await dispatchLeasePubSub?.close();
|
|
990
|
+
},
|
|
991
|
+
/**
|
|
952
992
|
* Hands Mastra to the statically configured input processors.
|
|
953
993
|
*
|
|
954
994
|
* The Agent does this itself, but only for processors configured as a
|
|
@@ -1032,9 +1072,11 @@ async function bootLocalAgentController(config) {
|
|
|
1032
1072
|
await mastra?.startWorkers();
|
|
1033
1073
|
base.registerConfiguredProcessorsWithMastra();
|
|
1034
1074
|
base.startPluginSignalProviders();
|
|
1075
|
+
base.startNotificationDispatch();
|
|
1035
1076
|
const session = await controller.createSession({
|
|
1036
1077
|
id: sessionId,
|
|
1037
|
-
ownerId
|
|
1078
|
+
ownerId,
|
|
1079
|
+
createInitialThread: config?.createInitialThread
|
|
1038
1080
|
});
|
|
1039
1081
|
await wireSessionConcerns(base, session);
|
|
1040
1082
|
const knowledgeInspector = await base.createKnowledgeInspector(session);
|
|
@@ -1130,6 +1172,7 @@ async function prepareAgentControllerMount(config) {
|
|
|
1130
1172
|
await controller.getMastra()?.startWorkers();
|
|
1131
1173
|
base.registerConfiguredProcessorsWithMastra();
|
|
1132
1174
|
base.startPluginSignalProviders();
|
|
1175
|
+
base.startNotificationDispatch();
|
|
1133
1176
|
};
|
|
1134
1177
|
return {
|
|
1135
1178
|
base,
|