@mastra/code-sdk 1.10.1-alpha.1 → 1.10.2-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/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 +18 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -7
- 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 +12 -12
package/dist/index.d.ts
CHANGED
|
@@ -211,6 +211,15 @@ export declare function createMastraCodeAgentController(config?: MastraCodeConfi
|
|
|
211
211
|
stopPluginSignalProviders: () => void;
|
|
212
212
|
/** Process-local `/schedules` scheduler. Call `stop()` on shutdown. */
|
|
213
213
|
threadScheduler: ThreadScheduler;
|
|
214
|
+
/**
|
|
215
|
+
* Starts delivering the due notifications of this controller's sessions'
|
|
216
|
+
* resources from this process. Called by the composition layer once the
|
|
217
|
+
* controller is inited. A no-op when the embedder configured its own
|
|
218
|
+
* PubSub, whose shared dispatch schedule keeps delivering everything.
|
|
219
|
+
*/
|
|
220
|
+
startNotificationDispatch: () => void;
|
|
221
|
+
/** Stops this process's notification dispatch and releases its leases. Call on shutdown. */
|
|
222
|
+
stopNotificationDispatch: () => Promise<void>;
|
|
214
223
|
/**
|
|
215
224
|
* Hands Mastra to the statically configured input processors.
|
|
216
225
|
*
|
|
@@ -301,6 +310,15 @@ export declare function bootLocalAgentController(config?: MastraCodeConfig): Pro
|
|
|
301
310
|
stopPluginSignalProviders: () => void;
|
|
302
311
|
/** Process-local `/schedules` scheduler. Call `stop()` on shutdown. */
|
|
303
312
|
threadScheduler: ThreadScheduler;
|
|
313
|
+
/**
|
|
314
|
+
* Starts delivering the due notifications of this controller's sessions'
|
|
315
|
+
* resources from this process. Called by the composition layer once the
|
|
316
|
+
* controller is inited. A no-op when the embedder configured its own
|
|
317
|
+
* PubSub, whose shared dispatch schedule keeps delivering everything.
|
|
318
|
+
*/
|
|
319
|
+
startNotificationDispatch: () => void;
|
|
320
|
+
/** Stops this process's notification dispatch and releases its leases. Call on shutdown. */
|
|
321
|
+
stopNotificationDispatch: () => Promise<void>;
|
|
304
322
|
/**
|
|
305
323
|
* Hands Mastra to the statically configured input processors.
|
|
306
324
|
*
|
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,6 +1072,7 @@ 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
1078
|
ownerId
|
|
@@ -1130,6 +1171,7 @@ async function prepareAgentControllerMount(config) {
|
|
|
1130
1171
|
await controller.getMastra()?.startWorkers();
|
|
1131
1172
|
base.registerConfiguredProcessorsWithMastra();
|
|
1132
1173
|
base.startPluginSignalProviders();
|
|
1174
|
+
base.startNotificationDispatch();
|
|
1133
1175
|
};
|
|
1134
1176
|
return {
|
|
1135
1177
|
base,
|