@mastra/code-sdk 1.8.4-alpha.6 → 1.9.0-alpha.10
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/README.md +190 -0
- package/dist/acp/agent.d.ts +30 -17
- package/dist/acp/agent.d.ts.map +1 -1
- package/dist/acp/agent.js +294 -103
- package/dist/acp/agent.js.map +1 -1
- package/dist/acp/errors.d.ts +3 -0
- package/dist/acp/errors.d.ts.map +1 -0
- package/dist/acp/errors.js +14 -0
- package/dist/acp/errors.js.map +1 -0
- package/dist/acp/event-mapper.d.ts +6 -1
- package/dist/acp/event-mapper.d.ts.map +1 -1
- package/dist/acp/event-mapper.js +116 -56
- package/dist/acp/event-mapper.js.map +1 -1
- package/dist/acp/index.d.ts +1 -4
- package/dist/acp/index.d.ts.map +1 -1
- package/dist/acp/index.js +6 -48
- package/dist/acp/index.js.map +1 -1
- package/dist/acp/runtime.d.ts +5 -0
- package/dist/acp/runtime.d.ts.map +1 -0
- package/dist/acp/runtime.js +80 -0
- package/dist/acp/runtime.js.map +1 -0
- package/dist/acp/server.d.ts +3 -6
- package/dist/acp/server.d.ts.map +1 -1
- package/dist/acp/server.js +22 -19
- package/dist/acp/server.js.map +1 -1
- package/dist/acp/skills.d.ts +6 -0
- package/dist/acp/skills.d.ts.map +1 -0
- package/dist/acp/skills.js +33 -0
- package/dist/acp/skills.js.map +1 -0
- package/dist/agents/model.js +1 -1
- package/dist/agents/prompts/agent-instructions.js +2 -2
- package/dist/agents/tools.d.ts +1 -1
- package/dist/agents/tools.d.ts.map +1 -1
- package/dist/agents/tools.js +2 -1
- package/dist/agents/tools.js.map +1 -1
- package/dist/agents/workspace.js +1 -1
- package/dist/analytics.js +2 -2
- package/dist/auth/providers/kimi-coding.js +1 -1
- package/dist/auth/storage.js +2 -2
- package/dist/clipboard/index.js +2 -2
- package/dist/headless/run-mc.d.ts.map +1 -1
- package/dist/headless/run-mc.js +14 -0
- package/dist/headless/run-mc.js.map +1 -1
- package/dist/hooks/config.js +1 -1
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +75 -8
- package/dist/index.js.map +1 -1
- package/dist/lsp/server.js +1 -1
- package/dist/lsp/workspace.js +1 -1
- package/dist/mcp/config.js +1 -1
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +2 -1
- package/dist/mcp/manager.js.map +1 -1
- package/dist/mcp/state.js +1 -1
- package/dist/mcp/types.d.ts +2 -0
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/onboarding/settings.d.ts +2 -0
- package/dist/onboarding/settings.d.ts.map +1 -1
- package/dist/onboarding/settings.js +6 -4
- package/dist/onboarding/settings.js.map +1 -1
- package/dist/permissions.d.ts.map +1 -1
- package/dist/permissions.js +6 -1
- package/dist/permissions.js.map +1 -1
- package/dist/plugins/dependencies.js +1 -1
- package/dist/plugins/install.js +1 -1
- package/dist/plugins/loader.js +3 -3
- package/dist/plugins/manager.js +1 -1
- package/dist/plugins/manifest.js +1 -1
- package/dist/plugins/package-link.js +1 -1
- package/dist/plugins/paths.js +1 -1
- package/dist/plugins/registry.js +1 -1
- package/dist/plugins/scaffold.js +1 -1
- package/dist/process-memory-diagnostics.js +3 -3
- package/dist/providers/amazon-bedrock-gateway.js +1 -1
- package/dist/providers/openai-codex.js +1 -1
- package/dist/schedules/index.d.ts +10 -0
- package/dist/schedules/index.d.ts.map +1 -0
- package/dist/schedules/index.js +6 -0
- package/dist/schedules/interval.d.ts +49 -0
- package/dist/schedules/interval.d.ts.map +1 -0
- package/dist/schedules/interval.js +215 -0
- package/dist/schedules/interval.js.map +1 -0
- package/dist/schedules/prompt.d.ts +36 -0
- package/dist/schedules/prompt.d.ts.map +1 -0
- package/dist/schedules/prompt.js +39 -0
- package/dist/schedules/prompt.js.map +1 -0
- package/dist/schedules/run-script.d.ts +8 -0
- package/dist/schedules/run-script.d.ts.map +1 -0
- package/dist/schedules/run-script.js +83 -0
- package/dist/schedules/run-script.js.map +1 -0
- package/dist/schedules/scheduler.d.ts +101 -0
- package/dist/schedules/scheduler.d.ts.map +1 -0
- package/dist/schedules/scheduler.js +169 -0
- package/dist/schedules/scheduler.js.map +1 -0
- package/dist/schedules/tools.d.ts +57 -0
- package/dist/schedules/tools.d.ts.map +1 -0
- package/dist/schedules/tools.js +220 -0
- package/dist/schedules/tools.js.map +1 -0
- package/dist/schema.js +1 -1
- package/dist/tools/request-sandbox-access.js +5 -4
- package/dist/tools/request-sandbox-access.js.map +1 -1
- package/dist/utils/debug-log.js +1 -1
- package/dist/utils/discarding-scores-storage.d.ts +33 -0
- package/dist/utils/discarding-scores-storage.d.ts.map +1 -0
- package/dist/utils/discarding-scores-storage.js +54 -0
- package/dist/utils/discarding-scores-storage.js.map +1 -0
- package/dist/utils/maintenance-lock.d.ts +42 -0
- package/dist/utils/maintenance-lock.d.ts.map +1 -0
- package/dist/utils/maintenance-lock.js +199 -0
- package/dist/utils/maintenance-lock.js.map +1 -0
- package/dist/utils/project.js +3 -3
- package/dist/utils/prune-cli.d.ts +24 -0
- package/dist/utils/prune-cli.d.ts.map +1 -0
- package/dist/utils/prune-cli.js +125 -0
- package/dist/utils/prune-cli.js.map +1 -0
- package/dist/utils/signals-pubsub.js +1 -1
- package/dist/utils/slash-command-loader.js +1 -1
- package/dist/utils/slash-command-processor.js +1 -1
- package/dist/utils/storage-maintenance.d.ts.map +1 -1
- package/dist/utils/storage-maintenance.js +34 -4
- package/dist/utils/storage-maintenance.js.map +1 -1
- package/dist/utils/thread-lock.js +1 -1
- package/dist/utils/update-check.js +2 -2
- package/dist/workflows/register-primitives.js +1 -1
- package/package.json +22 -12
package/dist/index.js
CHANGED
|
@@ -43,9 +43,16 @@ import { getToolCategory } from "./permissions.js";
|
|
|
43
43
|
import { PluginManager } from "./plugins/manager.js";
|
|
44
44
|
import { PluginSignalLane } from "./plugins/signal-lane.js";
|
|
45
45
|
import { PlanRejectionAbortProcessor } from "./processors/plan-rejection-abort.js";
|
|
46
|
+
import { assembleSchedulePrompt } from "./schedules/prompt.js";
|
|
47
|
+
import { ThreadScheduler, scheduleSignalAttributes, shortScheduleId } from "./schedules/scheduler.js";
|
|
48
|
+
import { runScript } from "./schedules/run-script.js";
|
|
49
|
+
import { createScheduleTools } from "./schedules/tools.js";
|
|
50
|
+
import "./schedules/index.js";
|
|
46
51
|
import { stateSchema } from "./schema.js";
|
|
47
52
|
import { mastraBrand } from "./theme-palette.js";
|
|
53
|
+
import { DiscardingScoresStorage } from "./utils/discarding-scores-storage.js";
|
|
48
54
|
import { syncGateways } from "./utils/gateway-sync.js";
|
|
55
|
+
import { registerSessionAndWaitForMaintenance, unregisterSession } from "./utils/maintenance-lock.js";
|
|
49
56
|
import { createSignalsPubSub } from "./utils/signals-pubsub.js";
|
|
50
57
|
import { DEFAULT_RETENTION, createStorageMaintenance, resolveLocalDbFiles } from "./utils/storage-maintenance.js";
|
|
51
58
|
import { createStorage, createVectorStore } from "./utils/storage-factory.js";
|
|
@@ -56,10 +63,11 @@ import { runMC } from "./headless/run-mc.js";
|
|
|
56
63
|
import { formatHuman, formatJsonl, renderJsonResult, renderTextResult } from "./headless/format.js";
|
|
57
64
|
import { hasHeadlessFlag, runMCCli } from "./headless/cli.js";
|
|
58
65
|
import "./headless/index.js";
|
|
59
|
-
import { TaskSignalProvider } from "@mastra/core/signals";
|
|
60
|
-
import { createHash } from "crypto";
|
|
61
|
-
import { hostname } from "os";
|
|
62
66
|
import path from "path";
|
|
67
|
+
import { statSync } from "fs";
|
|
68
|
+
import { homedir, hostname } from "os";
|
|
69
|
+
import { createHash } from "crypto";
|
|
70
|
+
import { readFile } from "fs/promises";
|
|
63
71
|
import { AgentController } from "@mastra/core/agent-controller";
|
|
64
72
|
import { createCodingAgent } from "@mastra/core/coding-agent";
|
|
65
73
|
import { PROVIDER_REGISTRY } from "@mastra/core/llm";
|
|
@@ -67,6 +75,7 @@ import { Mastra } from "@mastra/core/mastra";
|
|
|
67
75
|
import { defaultNotificationDeliveryDecision } from "@mastra/core/notifications";
|
|
68
76
|
import { AgentsMDInjector, CyberRefusalHandler, PrefillErrorHandler, ProviderHistoryCompat, StreamErrorRetryProcessor, createBackgroundWorkSignalProcessor, isBadRequestError } from "@mastra/core/processors";
|
|
69
77
|
import { RequestContext } from "@mastra/core/request-context";
|
|
78
|
+
import { TaskSignalProvider } from "@mastra/core/signals";
|
|
70
79
|
import { InMemoryHarness, MastraCompositeStore } from "@mastra/core/storage";
|
|
71
80
|
import { DEFAULT_GOAL_JUDGE_PROMPT } from "@mastra/core/tools";
|
|
72
81
|
import { DuckDBStore } from "@mastra/duckdb";
|
|
@@ -224,7 +233,7 @@ async function createMastraCodeAgentController(config) {
|
|
|
224
233
|
let activeSession;
|
|
225
234
|
let pluginRuntimeController;
|
|
226
235
|
if (configDir !== ".mastracode") validateConfigDirName(configDir);
|
|
227
|
-
try {
|
|
236
|
+
if (!config?.disableEnvFile) try {
|
|
228
237
|
process.loadEnvFile(path.join(cwd, ".env"));
|
|
229
238
|
} catch {}
|
|
230
239
|
const authStorage = createAuthStorage();
|
|
@@ -276,12 +285,21 @@ async function createMastraCodeAgentController(config) {
|
|
|
276
285
|
const crossProcessPubSub = config?.crossProcessPubSub ?? (!configuredPubSub && useUnixSocketPubSub);
|
|
277
286
|
if (crossProcessPubSub && !signalsPubSub) throw new Error("crossProcessPubSub requires a pubsub instance");
|
|
278
287
|
const useCrossAgentSignals = config?.crossAgentSignals ?? globalSettings.signals?.experimentalCrossAgentSignals ?? false;
|
|
288
|
+
const useScheduleTools = config?.scheduleTools ?? globalSettings.signals?.experimentalScheduleTools ?? false;
|
|
279
289
|
const injectedStorage = isInjectedStorageInstance(config?.storage) ? config.storage : void 0;
|
|
280
290
|
const storageConfig = injectedStorage ? void 0 : config?.storage ?? getStorageConfig(project.rootPath, globalSettings.storage, configDir);
|
|
281
|
-
|
|
291
|
+
if (!injectedStorage) await registerSessionAndWaitForMaintenance({ onWait: (pid) => console.error(`Waiting for storage maintenance (mastracode prune${pid === -1 ? "" : `, PID ${pid}`}) to finish. Press Ctrl+C to give up.`) });
|
|
292
|
+
let storageResult;
|
|
293
|
+
if (injectedStorage) storageResult = {
|
|
282
294
|
storage: injectedStorage,
|
|
283
295
|
backend: resolveInjectedStorageBackend(injectedStorage, config?.storageBackend)
|
|
284
|
-
}
|
|
296
|
+
};
|
|
297
|
+
else try {
|
|
298
|
+
storageResult = await createStorage(storageConfig);
|
|
299
|
+
} catch (error) {
|
|
300
|
+
unregisterSession();
|
|
301
|
+
throw error;
|
|
302
|
+
}
|
|
285
303
|
const storageWarning = storageResult.warning;
|
|
286
304
|
let observabilityDomain;
|
|
287
305
|
let observabilityWarning;
|
|
@@ -298,12 +316,14 @@ async function createMastraCodeAgentController(config) {
|
|
|
298
316
|
else observabilityWarning = `Observability unavailable — DuckDB initialization failed: ${message}`;
|
|
299
317
|
}
|
|
300
318
|
const harnessStorage = new InMemoryHarness();
|
|
319
|
+
const scoresStorage = new DiscardingScoresStorage();
|
|
301
320
|
const storage = new MastraCompositeStore({
|
|
302
321
|
id: "mastra-code-storage",
|
|
303
322
|
default: storageResult.storage,
|
|
304
323
|
domains: {
|
|
305
324
|
observability: observabilityDomain ?? false,
|
|
306
|
-
harness: harnessStorage
|
|
325
|
+
harness: harnessStorage,
|
|
326
|
+
scores: scoresStorage
|
|
307
327
|
}
|
|
308
328
|
});
|
|
309
329
|
const observability = new Observability({ configs: { default: {
|
|
@@ -471,6 +491,51 @@ async function createMastraCodeAgentController(config) {
|
|
|
471
491
|
modelSettings: { temperature: 1 }
|
|
472
492
|
};
|
|
473
493
|
};
|
|
494
|
+
const threadScheduler = new ThreadScheduler({
|
|
495
|
+
assemblePrompt: (schedule) => assembleSchedulePrompt(schedule, {
|
|
496
|
+
cwd: project.rootPath,
|
|
497
|
+
runScript,
|
|
498
|
+
readFile: (absPath) => readFile(absPath, "utf8")
|
|
499
|
+
}),
|
|
500
|
+
deliver: async (schedule, assembled) => {
|
|
501
|
+
const target = {
|
|
502
|
+
resourceId: schedule.resourceId,
|
|
503
|
+
threadId: schedule.threadId
|
|
504
|
+
};
|
|
505
|
+
const streamOptions = await getWakeStreamOptions(target);
|
|
506
|
+
const accepted = await codeAgent.sendSignal({
|
|
507
|
+
type: "user",
|
|
508
|
+
tagName: "user",
|
|
509
|
+
contents: assembled.prompt,
|
|
510
|
+
attributes: scheduleSignalAttributes(schedule, assembled)
|
|
511
|
+
}, {
|
|
512
|
+
...target,
|
|
513
|
+
ifActive: { behavior: "deliver" },
|
|
514
|
+
ifIdle: {
|
|
515
|
+
behavior: "wake",
|
|
516
|
+
...streamOptions ? { streamOptions } : {}
|
|
517
|
+
}
|
|
518
|
+
}).accepted;
|
|
519
|
+
if (accepted.action === "blocked" || accepted.action === "discard") throw new Error(`the agent did not accept the prompt (${accepted.action})`);
|
|
520
|
+
},
|
|
521
|
+
onError: (error, schedule) => {
|
|
522
|
+
console.warn(`Schedule ${shortScheduleId(schedule.id)} failed to fire:`, error);
|
|
523
|
+
}
|
|
524
|
+
});
|
|
525
|
+
const scheduleTools = useScheduleTools ? createScheduleTools({
|
|
526
|
+
scheduler: threadScheduler,
|
|
527
|
+
fileOptions: () => ({
|
|
528
|
+
cwd: project.rootPath,
|
|
529
|
+
homeDir: homedir(),
|
|
530
|
+
fileExists: (absPath) => {
|
|
531
|
+
try {
|
|
532
|
+
return statSync(absPath).isFile();
|
|
533
|
+
} catch {
|
|
534
|
+
return false;
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
})
|
|
538
|
+
}) : void 0;
|
|
474
539
|
const githubSignals = globalSettings.signals?.experimentalGithubSignals && !config?.disableGithubSignals ? new GithubSignals({
|
|
475
540
|
cwd: project.rootPath,
|
|
476
541
|
pollIntervalMs: globalSettings.signals.githubPollIntervalMs,
|
|
@@ -559,7 +624,7 @@ async function createMastraCodeAgentController(config) {
|
|
|
559
624
|
streamOptions
|
|
560
625
|
} : decision;
|
|
561
626
|
} } },
|
|
562
|
-
tools: createDynamicTools(mcpManager, config?.extraTools, config?.disabledTools, storage, pluginTools, backgroundToolsEnabled),
|
|
627
|
+
tools: createDynamicTools(mcpManager, config?.extraTools, config?.disabledTools, storage, pluginTools, backgroundToolsEnabled, scheduleTools),
|
|
563
628
|
hooks: createToolHooks(hookManager, config?.postToolObserver),
|
|
564
629
|
scorers: {
|
|
565
630
|
outcome: {
|
|
@@ -867,6 +932,8 @@ async function createMastraCodeAgentController(config) {
|
|
|
867
932
|
unsubscribePluginReload = void 0;
|
|
868
933
|
pluginSignalLane?.stopAll();
|
|
869
934
|
},
|
|
935
|
+
/** Process-local `/schedules` scheduler. Call `stop()` on shutdown. */
|
|
936
|
+
threadScheduler,
|
|
870
937
|
/**
|
|
871
938
|
* Hands Mastra to the statically configured input processors.
|
|
872
939
|
*
|