mastracode 0.27.0-alpha.4 → 0.27.0-alpha.6
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 +47 -0
- package/dist/{acp-FU7OMRIQ.js → acp-EAQUS3AT.js} +5 -5
- package/dist/{acp-FU7OMRIQ.js.map → acp-EAQUS3AT.js.map} +1 -1
- package/dist/{acp-ZZFZMXID.cjs → acp-GVDPJUYP.cjs} +7 -7
- package/dist/{acp-ZZFZMXID.cjs.map → acp-GVDPJUYP.cjs.map} +1 -1
- package/dist/agents/thread-caveman-state.d.ts +2 -2
- package/dist/agents/thread-caveman-state.d.ts.map +1 -1
- package/dist/{chunk-FW5W3Q5V.js → chunk-22B6MUSN.js} +47 -13
- package/dist/chunk-22B6MUSN.js.map +1 -0
- package/dist/{chunk-O2HJYQF5.cjs → chunk-2NKDVAOP.cjs} +85 -51
- package/dist/chunk-2NKDVAOP.cjs.map +1 -0
- package/dist/{chunk-HH4TRINZ.js → chunk-HZIMBYEM.js} +1446 -551
- package/dist/chunk-HZIMBYEM.js.map +1 -0
- package/dist/{chunk-M54DDYF4.cjs → chunk-JEIKVC6A.cjs} +140 -4
- package/dist/chunk-JEIKVC6A.cjs.map +1 -0
- package/dist/{chunk-BA7Y2DJW.js → chunk-NB52GKOT.js} +136 -5
- package/dist/chunk-NB52GKOT.js.map +1 -0
- package/dist/{chunk-IJMKJSON.cjs → chunk-RNIUWUNX.cjs} +2365 -1469
- package/dist/chunk-RNIUWUNX.cjs.map +1 -0
- package/dist/cli.cjs +21 -21
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +6 -6
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +7 -7
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/native/macos-stt.plist +16 -0
- package/dist/native/macos-stt.swift +231 -0
- package/dist/onboarding/settings.d.ts +10 -0
- package/dist/onboarding/settings.d.ts.map +1 -1
- package/dist/tools/request-sandbox-access.d.ts.map +1 -1
- package/dist/tui/commands/voice.d.ts +9 -1
- package/dist/tui/commands/voice.d.ts.map +1 -1
- package/dist/tui/state.d.ts.map +1 -1
- package/dist/tui/voice/engines/cloud-engine.d.ts +28 -0
- package/dist/tui/voice/engines/cloud-engine.d.ts.map +1 -0
- package/dist/tui/voice/engines/index.d.ts +15 -0
- package/dist/tui/voice/engines/index.d.ts.map +1 -0
- package/dist/tui/voice/engines/macos-native-engine.d.ts +35 -0
- package/dist/tui/voice/engines/macos-native-engine.d.ts.map +1 -0
- package/dist/tui/voice/engines/types.d.ts +86 -0
- package/dist/tui/voice/engines/types.d.ts.map +1 -0
- package/dist/tui/voice/native/compile.d.ts +45 -0
- package/dist/tui/voice/native/compile.d.ts.map +1 -0
- package/dist/tui/voice/native/open-settings.d.ts +12 -0
- package/dist/tui/voice/native/open-settings.d.ts.map +1 -0
- package/dist/tui/voice/stt-registry.d.ts +64 -0
- package/dist/tui/voice/stt-registry.d.ts.map +1 -0
- package/dist/tui/voice/transcribe.d.ts +50 -16
- package/dist/tui/voice/transcribe.d.ts.map +1 -1
- package/dist/tui/voice/voice-controller.d.ts +34 -16
- package/dist/tui/voice/voice-controller.d.ts.map +1 -1
- package/dist/tui.cjs +19 -19
- package/dist/tui.js +2 -2
- package/package.json +17 -14
- package/dist/chunk-BA7Y2DJW.js.map +0 -1
- package/dist/chunk-FW5W3Q5V.js.map +0 -1
- package/dist/chunk-HH4TRINZ.js.map +0 -1
- package/dist/chunk-IJMKJSON.cjs.map +0 -1
- package/dist/chunk-M54DDYF4.cjs.map +0 -1
- package/dist/chunk-O2HJYQF5.cjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,52 @@
|
|
|
1
1
|
# mastracode
|
|
2
2
|
|
|
3
|
+
## 0.27.0-alpha.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Renamed the AgentController interval API. `heartbeatHandlers` is now `intervalHandlers`, the `HeartbeatHandler` type is now `IntervalHandler`, and the `removeHeartbeat()`/`stopHeartbeats()` methods are now `removeInterval()`/`stopIntervals()`. This better reflects that these are fixed-interval background tasks, not liveness pings, and is distinct from the unrelated `mastra.heartbeats` scheduled-agent feature. ([#18665](https://github.com/mastra-ai/mastra/pull/18665))
|
|
8
|
+
|
|
9
|
+
**Before**
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
const { controller } = await createMastraCode({
|
|
13
|
+
heartbeatHandlers: [{ id: 'sync', intervalMs: 60_000, handler: async () => {} }],
|
|
14
|
+
});
|
|
15
|
+
await controller.removeHeartbeat({ id: 'sync' });
|
|
16
|
+
await controller.stopHeartbeats();
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**After**
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
const { controller } = await createMastraCode({
|
|
23
|
+
intervalHandlers: [{ id: 'sync', intervalMs: 60_000, handler: async () => {} }],
|
|
24
|
+
});
|
|
25
|
+
await controller.removeInterval({ id: 'sync' });
|
|
26
|
+
await controller.stopIntervals();
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
- Improved MastraCode web chat so hydrated and streaming messages render consistently, including tool cards, reasoning, and failed-tool states. ([#18620](https://github.com/mastra-ai/mastra/pull/18620))
|
|
30
|
+
|
|
31
|
+
- Updated dependencies [[`b33c77d`](https://github.com/mastra-ai/mastra/commit/b33c77d5293f14a794f3ec38dc947a6676de2764), [`1009f77`](https://github.com/mastra-ai/mastra/commit/1009f772aa40016b49267c8566d0c29f6a16aa3c), [`23c31de`](https://github.com/mastra-ai/mastra/commit/23c31de96ed8153402dcf092ac84b27a0c3638c1), [`0368766`](https://github.com/mastra-ai/mastra/commit/0368766744c7ea3df4d6059e2cc15f7bdf55f5a6), [`d0702ee`](https://github.com/mastra-ai/mastra/commit/d0702eedc1594cb2d0d83476440cfc2ec8820adb), [`65a66db`](https://github.com/mastra-ai/mastra/commit/65a66dbe249a0d92d828c605b955e73a983cf3b0), [`2866f04`](https://github.com/mastra-ai/mastra/commit/2866f04953edb78c1637fa45cc53abe24122edcb)]:
|
|
32
|
+
- @mastra/core@1.48.0-alpha.6
|
|
33
|
+
- @mastra/schema-compat@1.3.2-alpha.1
|
|
34
|
+
- @mastra/mcp@1.12.1-alpha.0
|
|
35
|
+
- @mastra/react@1.2.1-alpha.6
|
|
36
|
+
- @mastra/memory@1.21.3-alpha.2
|
|
37
|
+
- @mastra/server@1.48.0-alpha.6
|
|
38
|
+
- @mastra/hono@1.5.3-alpha.6
|
|
39
|
+
|
|
40
|
+
## 0.27.0-alpha.5
|
|
41
|
+
|
|
42
|
+
### Patch Changes
|
|
43
|
+
|
|
44
|
+
- Updated dependencies [[`1917c53`](https://github.com/mastra-ai/mastra/commit/1917c53b19dac43926f29c496893b0686462dca4), [`c607ece`](https://github.com/mastra-ai/mastra/commit/c607eceeda028a80b24d00ee7dae376db73df526), [`58e287b`](https://github.com/mastra-ai/mastra/commit/58e287b1edaf978b13745a1795989cad3826e82b)]:
|
|
45
|
+
- @mastra/core@1.48.0-alpha.5
|
|
46
|
+
- @mastra/server@1.48.0-alpha.5
|
|
47
|
+
- @mastra/memory@1.21.3-alpha.1
|
|
48
|
+
- @mastra/hono@1.5.3-alpha.5
|
|
49
|
+
|
|
3
50
|
## 0.27.0-alpha.4
|
|
4
51
|
|
|
5
52
|
### Minor Changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createMastraCode } from './chunk-
|
|
2
|
-
import { releaseAllThreadLocks } from './chunk-
|
|
1
|
+
import { createMastraCode } from './chunk-22B6MUSN.js';
|
|
2
|
+
import { releaseAllThreadLocks } from './chunk-NB52GKOT.js';
|
|
3
3
|
import { setAutoApprove, MastraCodeAcpAgent } from './chunk-IFUIWWGJ.js';
|
|
4
4
|
import { randomUUID } from 'crypto';
|
|
5
5
|
import { Readable, Writable } from 'stream';
|
|
@@ -60,7 +60,7 @@ async function acpMain(options) {
|
|
|
60
60
|
await Promise.allSettled([
|
|
61
61
|
mcpManager?.disconnect(),
|
|
62
62
|
controller?.getMastra()?.stopWorkers(),
|
|
63
|
-
controller?.
|
|
63
|
+
controller?.stopIntervals(),
|
|
64
64
|
closeSignalsPubSub?.()
|
|
65
65
|
]);
|
|
66
66
|
console.log = originalConsoleLog;
|
|
@@ -81,5 +81,5 @@ async function acpMain(options) {
|
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
export { acpMain };
|
|
84
|
-
//# sourceMappingURL=acp-
|
|
85
|
-
//# sourceMappingURL=acp-
|
|
84
|
+
//# sourceMappingURL=acp-EAQUS3AT.js.map
|
|
85
|
+
//# sourceMappingURL=acp-EAQUS3AT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/acp/server.ts","../src/acp/index.ts"],"names":[],"mappings":";;;;;;;AAUA,eAAsB,YAAA,CACpB,UAAA,EACA,KAAA,EACA,OAAA,EACe;AAEf,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA;AAC1C,EAAA,MAAM,MAAA,GAAS,QAAA,CAAS,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA;AAC5C,EAAA,MAAM,MAAA,GAAS,YAAA,CAAa,MAAA,EAAQ,KAAK,CAAA;AACzC,EAAA,IAAI,OAAA;AACJ,EAAA,IAAI,KAAA;AAGJ,EAAA,IAAI;AACF,IAAA,OAAA,GAAU,MAAM,WAAW,aAAA,CAAc;AAAA,MACvC,EAAA,EAAI,CAAA,IAAA,EAAO,UAAA,EAAY,CAAA,CAAA;AAAA,MACvB,OAAA,EAAS,CAAA,UAAA,EAAa,UAAA,EAAY,CAAA;AAAA,KACnC,CAAA;AACD,IAAA,MAAM,aAAA,GAAgB,OAAA;AAGtB,IAAA,MAAM,UAAA,GAAa,IAAI,mBAAA,CAAoB,CAAA,IAAA,KAAQ;AACjD,MAAA,KAAA,GAAQ,IAAI,kBAAA,CAAmB,IAAA,EAAM,UAAA,EAAY,eAAe,KAAK,CAAA;AACrE,MAAA,OAAO,KAAA;AAAA,IACT,GAAG,MAAM,CAAA;AAET,IAAA,MAAM,UAAA,CAAW,MAAA;AAAA,EACnB,CAAA,SAAE;AACA,IAAA,KAAA,EAAO,OAAA,EAAQ;AACf,IAAA,OAAA,EAAS,OAAO,iBAAA,EAAkB;AAClC,IAAA,MAAM,OAAA,EAAS,OAAO,mBAAA,EAAoB;AAC1C,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,MAAM,OAAA,EAAQ;AAAA,IAChB;AAAA,EACF;AACF;;;AClCA,eAAsB,QAAQ,OAAA,EAA6D;AACzF,EAAA,IAAI,SAAS,oBAAA,EAAsB;AACjC,IAAA,cAAA,CAAe,IAAI,CAAA;AAAA,EACrB;AAGA,EAAA,MAAM,qBAAqB,OAAA,CAAQ,GAAA;AAEnC,EAAA,OAAA,CAAQ,GAAA,GAAM,IAAI,IAAA,KAAoB;AACpC,IAAA,OAAA,CAAQ,MAAA,CAAO,MAAM,IAAA,CAAK,GAAA,CAAI,MAAM,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,GAAI,IAAI,CAAA;AAAA,EACxD,CAAA;AAEA,EAAA,IAAI,MAAA;AAEJ,EAAA,IAAI;AACF,IAAA,MAAA,GAAS,MAAM,gBAAA,CAAiB;AAAA,MAC9B,gBAAA,EAAkB,KAAA;AAAA,MAClB,UAAA,EAAY,KAAA;AAAA,MACZ,YAAA,EAAc;AAAA,KACf,CAAA;AAED,IAAA,MAAM,EAAE,UAAA,EAAY,UAAA,EAAY,aAAA,EAAc,GAAI,MAAA;AAGlD,IAAA,MAAM,KAAA,GAA+B;AAAA,MACnC,EAAE,EAAA,EAAI,OAAA,EAAS,IAAA,EAAM,OAAA,EAAQ;AAAA,MAC7B,EAAE,EAAA,EAAI,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAO;AAAA,MAC3B,EAAE,EAAA,EAAI,MAAA,EAAQ,IAAA,EAAM,MAAA;AAAO,KAC7B;AAGA,IAAA,MAAM,UAAU,YAAY;AAC1B,MAAA,qBAAA,EAAsB;AACtB,MAAA,MAAM,qBAAsB,aAAA,EAAsE,KAAA;AAClG,MAAA,MAAM,QAAQ,UAAA,CAAW;AAAA,QACvB,YAAY,UAAA,EAAW;AAAA,QACvB,UAAA,EAAY,SAAA,EAAU,EAAG,WAAA,EAAY;AAAA,QACrC,YAAY,
|
|
1
|
+
{"version":3,"sources":["../src/acp/server.ts","../src/acp/index.ts"],"names":[],"mappings":"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","file":"acp-EAQUS3AT.js","sourcesContent":["import { randomUUID } from 'node:crypto';\nimport { Readable, Writable } from 'node:stream';\nimport { AgentSideConnection, ndJsonStream } from '@agentclientprotocol/sdk';\nimport type { AgentController, AgentControllerMode, Session } from '@mastra/core/agent-controller';\nimport { MastraCodeAcpAgent } from './agent.js';\n\n/**\n * Run the ACP server over stdio.\n * This sets up the JSON-RPC stream and keeps the process alive until the client disconnects.\n */\nexport async function runAcpServer(\n controller: AgentController,\n modes: AgentControllerMode[],\n cleanup?: () => Promise<void>,\n): Promise<void> {\n // Create the ndJSON stream from stdin/stdout\n const input = Readable.toWeb(process.stdin) as ReadableStream<Uint8Array>;\n const output = Writable.toWeb(process.stdout) as WritableStream<Uint8Array>;\n const stream = ndJsonStream(output, input);\n let session: Session | undefined;\n let agent: MastraCodeAcpAgent | undefined;\n\n // Handle cleanup on disconnect (success or error)\n try {\n session = await controller.createSession({\n id: `acp-${randomUUID()}`,\n ownerId: `acp-owner-${randomUUID()}`,\n });\n const activeSession = session;\n\n // Create the agent-side connection\n const connection = new AgentSideConnection(conn => {\n agent = new MastraCodeAcpAgent(conn, controller, activeSession, modes);\n return agent;\n }, stream);\n\n await connection.closed;\n } finally {\n agent?.dispose();\n session?.thread.detachFromCurrent();\n await session?.thread.clearAndReleaseLock();\n if (cleanup) {\n await cleanup();\n }\n }\n}\n","import type { AgentControllerMode } from '@mastra/core/agent-controller';\n\nimport { createMastraCode } from '../index.js';\nimport { releaseAllThreadLocks } from '../utils/thread-lock.js';\nimport { setAutoApprove } from './event-mapper.js';\nimport { runAcpServer } from './server.js';\n\n/**\n * Entry point for ACP server mode.\n * Initializes mastracode and runs the ACP protocol over stdio.\n */\nexport async function acpMain(options?: { dangerousAutoApprove?: boolean }): Promise<void> {\n if (options?.dangerousAutoApprove) {\n setAutoApprove(true);\n }\n // Redirect console.log to stderr to avoid polluting the JSON-RPC stream on stdout.\n // eslint-disable-next-line no-console\n const originalConsoleLog = console.log;\n // eslint-disable-next-line no-console\n console.log = (...args: unknown[]) => {\n process.stderr.write(args.map(String).join(' ') + '\\n');\n };\n\n let result: Awaited<ReturnType<typeof createMastraCode>> | undefined;\n\n try {\n result = await createMastraCode({\n unixSocketPubSub: false,\n disableMcp: false,\n disableHooks: false,\n });\n\n const { controller, mcpManager, signalsPubSub } = result;\n\n // Default modes (same as createMastraCode defaults)\n const modes: AgentControllerMode[] = [\n { id: 'build', name: 'Build' },\n { id: 'plan', name: 'Plan' },\n { id: 'fast', name: 'Fast' },\n ];\n\n // Cleanup function (mirrors main.ts asyncCleanup)\n const cleanup = async () => {\n releaseAllThreadLocks();\n const closeSignalsPubSub = (signalsPubSub as { close?: () => Promise<void> | void } | undefined)?.close;\n await Promise.allSettled([\n mcpManager?.disconnect(),\n controller?.getMastra()?.stopWorkers(),\n controller?.stopIntervals(),\n closeSignalsPubSub?.(),\n ]);\n\n // Restore console.log\n // eslint-disable-next-line no-console\n console.log = originalConsoleLog;\n };\n\n // Handle signals\n const handleSignal = async () => {\n await cleanup();\n process.exit(0);\n };\n\n process.on('SIGINT', handleSignal);\n process.on('SIGTERM', handleSignal);\n\n await runAcpServer(controller, modes, cleanup);\n } catch (error) {\n process.stderr.write(`[acp] Fatal error: ${error}\\n`);\n // eslint-disable-next-line no-console\n console.log = originalConsoleLog;\n process.exit(1);\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunk2NKDVAOP_cjs = require('./chunk-2NKDVAOP.cjs');
|
|
4
|
+
var chunkJEIKVC6A_cjs = require('./chunk-JEIKVC6A.cjs');
|
|
5
5
|
var chunkVBH3L4LD_cjs = require('./chunk-VBH3L4LD.cjs');
|
|
6
6
|
var crypto = require('crypto');
|
|
7
7
|
var stream = require('stream');
|
|
@@ -45,7 +45,7 @@ async function acpMain(options) {
|
|
|
45
45
|
};
|
|
46
46
|
let result;
|
|
47
47
|
try {
|
|
48
|
-
result = await
|
|
48
|
+
result = await chunk2NKDVAOP_cjs.createMastraCode({
|
|
49
49
|
unixSocketPubSub: false,
|
|
50
50
|
disableMcp: false,
|
|
51
51
|
disableHooks: false
|
|
@@ -57,12 +57,12 @@ async function acpMain(options) {
|
|
|
57
57
|
{ id: "fast", name: "Fast" }
|
|
58
58
|
];
|
|
59
59
|
const cleanup = async () => {
|
|
60
|
-
|
|
60
|
+
chunkJEIKVC6A_cjs.releaseAllThreadLocks();
|
|
61
61
|
const closeSignalsPubSub = signalsPubSub?.close;
|
|
62
62
|
await Promise.allSettled([
|
|
63
63
|
mcpManager?.disconnect(),
|
|
64
64
|
controller?.getMastra()?.stopWorkers(),
|
|
65
|
-
controller?.
|
|
65
|
+
controller?.stopIntervals(),
|
|
66
66
|
closeSignalsPubSub?.()
|
|
67
67
|
]);
|
|
68
68
|
console.log = originalConsoleLog;
|
|
@@ -83,5 +83,5 @@ async function acpMain(options) {
|
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
exports.acpMain = acpMain;
|
|
86
|
-
//# sourceMappingURL=acp-
|
|
87
|
-
//# sourceMappingURL=acp-
|
|
86
|
+
//# sourceMappingURL=acp-GVDPJUYP.cjs.map
|
|
87
|
+
//# sourceMappingURL=acp-GVDPJUYP.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/acp/server.ts","../src/acp/index.ts"],"names":["Readable","Writable","stream","ndJsonStream","randomUUID","AgentSideConnection","MastraCodeAcpAgent","setAutoApprove","createMastraCode","releaseAllThreadLocks"],"mappings":";;;;;;;;;AAUA,eAAsB,YAAA,CACpB,UAAA,EACA,KAAA,EACA,OAAA,EACe;AAEf,EAAA,MAAM,KAAA,GAAQA,eAAA,CAAS,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA;AAC1C,EAAA,MAAM,MAAA,GAASC,eAAA,CAAS,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA;AAC5C,EAAA,MAAMC,QAAA,GAASC,gBAAA,CAAa,MAAA,EAAQ,KAAK,CAAA;AACzC,EAAA,IAAI,OAAA;AACJ,EAAA,IAAI,KAAA;AAGJ,EAAA,IAAI;AACF,IAAA,OAAA,GAAU,MAAM,WAAW,aAAA,CAAc;AAAA,MACvC,EAAA,EAAI,CAAA,IAAA,EAAOC,iBAAA,EAAY,CAAA,CAAA;AAAA,MACvB,OAAA,EAAS,CAAA,UAAA,EAAaA,iBAAA,EAAY,CAAA;AAAA,KACnC,CAAA;AACD,IAAA,MAAM,aAAA,GAAgB,OAAA;AAGtB,IAAA,MAAM,UAAA,GAAa,IAAIC,uBAAA,CAAoB,CAAA,IAAA,KAAQ;AACjD,MAAA,KAAA,GAAQ,IAAIC,oCAAA,CAAmB,IAAA,EAAM,UAAA,EAAY,eAAe,KAAK,CAAA;AACrE,MAAA,OAAO,KAAA;AAAA,IACT,GAAGJ,QAAM,CAAA;AAET,IAAA,MAAM,UAAA,CAAW,MAAA;AAAA,EACnB,CAAA,SAAE;AACA,IAAA,KAAA,EAAO,OAAA,EAAQ;AACf,IAAA,OAAA,EAAS,OAAO,iBAAA,EAAkB;AAClC,IAAA,MAAM,OAAA,EAAS,OAAO,mBAAA,EAAoB;AAC1C,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,MAAM,OAAA,EAAQ;AAAA,IAChB;AAAA,EACF;AACF;;;AClCA,eAAsB,QAAQ,OAAA,EAA6D;AACzF,EAAA,IAAI,SAAS,oBAAA,EAAsB;AACjC,IAAAK,gCAAA,CAAe,IAAI,CAAA;AAAA,EACrB;AAGA,EAAA,MAAM,qBAAqB,OAAA,CAAQ,GAAA;AAEnC,EAAA,OAAA,CAAQ,GAAA,GAAM,IAAI,IAAA,KAAoB;AACpC,IAAA,OAAA,CAAQ,MAAA,CAAO,MAAM,IAAA,CAAK,GAAA,CAAI,MAAM,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,GAAI,IAAI,CAAA;AAAA,EACxD,CAAA;AAEA,EAAA,IAAI,MAAA;AAEJ,EAAA,IAAI;AACF,IAAA,MAAA,GAAS,MAAMC,kCAAA,CAAiB;AAAA,MAC9B,gBAAA,EAAkB,KAAA;AAAA,MAClB,UAAA,EAAY,KAAA;AAAA,MACZ,YAAA,EAAc;AAAA,KACf,CAAA;AAED,IAAA,MAAM,EAAE,UAAA,EAAY,UAAA,EAAY,aAAA,EAAc,GAAI,MAAA;AAGlD,IAAA,MAAM,KAAA,GAA+B;AAAA,MACnC,EAAE,EAAA,EAAI,OAAA,EAAS,IAAA,EAAM,OAAA,EAAQ;AAAA,MAC7B,EAAE,EAAA,EAAI,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAO;AAAA,MAC3B,EAAE,EAAA,EAAI,MAAA,EAAQ,IAAA,EAAM,MAAA;AAAO,KAC7B;AAGA,IAAA,MAAM,UAAU,YAAY;AAC1B,MAAAC,uCAAA,EAAsB;AACtB,MAAA,MAAM,qBAAsB,aAAA,EAAsE,KAAA;AAClG,MAAA,MAAM,QAAQ,UAAA,CAAW;AAAA,QACvB,YAAY,UAAA,EAAW;AAAA,QACvB,UAAA,EAAY,SAAA,EAAU,EAAG,WAAA,EAAY;AAAA,QACrC,YAAY,
|
|
1
|
+
{"version":3,"sources":["../src/acp/server.ts","../src/acp/index.ts"],"names":["Readable","Writable","stream","ndJsonStream","randomUUID","AgentSideConnection","MastraCodeAcpAgent","setAutoApprove","createMastraCode","releaseAllThreadLocks"],"mappings":";;;;;;;;;AAUA,eAAsB,YAAA,CACpB,UAAA,EACA,KAAA,EACA,OAAA,EACe;AAEf,EAAA,MAAM,KAAA,GAAQA,eAAA,CAAS,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA;AAC1C,EAAA,MAAM,MAAA,GAASC,eAAA,CAAS,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA;AAC5C,EAAA,MAAMC,QAAA,GAASC,gBAAA,CAAa,MAAA,EAAQ,KAAK,CAAA;AACzC,EAAA,IAAI,OAAA;AACJ,EAAA,IAAI,KAAA;AAGJ,EAAA,IAAI;AACF,IAAA,OAAA,GAAU,MAAM,WAAW,aAAA,CAAc;AAAA,MACvC,EAAA,EAAI,CAAA,IAAA,EAAOC,iBAAA,EAAY,CAAA,CAAA;AAAA,MACvB,OAAA,EAAS,CAAA,UAAA,EAAaA,iBAAA,EAAY,CAAA;AAAA,KACnC,CAAA;AACD,IAAA,MAAM,aAAA,GAAgB,OAAA;AAGtB,IAAA,MAAM,UAAA,GAAa,IAAIC,uBAAA,CAAoB,CAAA,IAAA,KAAQ;AACjD,MAAA,KAAA,GAAQ,IAAIC,oCAAA,CAAmB,IAAA,EAAM,UAAA,EAAY,eAAe,KAAK,CAAA;AACrE,MAAA,OAAO,KAAA;AAAA,IACT,GAAGJ,QAAM,CAAA;AAET,IAAA,MAAM,UAAA,CAAW,MAAA;AAAA,EACnB,CAAA,SAAE;AACA,IAAA,KAAA,EAAO,OAAA,EAAQ;AACf,IAAA,OAAA,EAAS,OAAO,iBAAA,EAAkB;AAClC,IAAA,MAAM,OAAA,EAAS,OAAO,mBAAA,EAAoB;AAC1C,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,MAAM,OAAA,EAAQ;AAAA,IAChB;AAAA,EACF;AACF;;;AClCA,eAAsB,QAAQ,OAAA,EAA6D;AACzF,EAAA,IAAI,SAAS,oBAAA,EAAsB;AACjC,IAAAK,gCAAA,CAAe,IAAI,CAAA;AAAA,EACrB;AAGA,EAAA,MAAM,qBAAqB,OAAA,CAAQ,GAAA;AAEnC,EAAA,OAAA,CAAQ,GAAA,GAAM,IAAI,IAAA,KAAoB;AACpC,IAAA,OAAA,CAAQ,MAAA,CAAO,MAAM,IAAA,CAAK,GAAA,CAAI,MAAM,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,GAAI,IAAI,CAAA;AAAA,EACxD,CAAA;AAEA,EAAA,IAAI,MAAA;AAEJ,EAAA,IAAI;AACF,IAAA,MAAA,GAAS,MAAMC,kCAAA,CAAiB;AAAA,MAC9B,gBAAA,EAAkB,KAAA;AAAA,MAClB,UAAA,EAAY,KAAA;AAAA,MACZ,YAAA,EAAc;AAAA,KACf,CAAA;AAED,IAAA,MAAM,EAAE,UAAA,EAAY,UAAA,EAAY,aAAA,EAAc,GAAI,MAAA;AAGlD,IAAA,MAAM,KAAA,GAA+B;AAAA,MACnC,EAAE,EAAA,EAAI,OAAA,EAAS,IAAA,EAAM,OAAA,EAAQ;AAAA,MAC7B,EAAE,EAAA,EAAI,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAO;AAAA,MAC3B,EAAE,EAAA,EAAI,MAAA,EAAQ,IAAA,EAAM,MAAA;AAAO,KAC7B;AAGA,IAAA,MAAM,UAAU,YAAY;AAC1B,MAAAC,uCAAA,EAAsB;AACtB,MAAA,MAAM,qBAAsB,aAAA,EAAsE,KAAA;AAClG,MAAA,MAAM,QAAQ,UAAA,CAAW;AAAA,QACvB,YAAY,UAAA,EAAW;AAAA,QACvB,UAAA,EAAY,SAAA,EAAU,EAAG,WAAA,EAAY;AAAA,QACrC,YAAY,aAAA,EAAc;AAAA,QAC1B,kBAAA;AAAqB,OACtB,CAAA;AAID,MAAA,OAAA,CAAQ,GAAA,GAAM,kBAAA;AAAA,IAChB,CAAA;AAGA,IAAA,MAAM,eAAe,YAAY;AAC/B,MAAA,MAAM,OAAA,EAAQ;AACd,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,IAChB,CAAA;AAEA,IAAA,OAAA,CAAQ,EAAA,CAAG,UAAU,YAAY,CAAA;AACjC,IAAA,OAAA,CAAQ,EAAA,CAAG,WAAW,YAAY,CAAA;AAElC,IAAA,MAAM,YAAA,CAAa,UAAA,EAAY,KAAA,EAAO,OAAO,CAAA;AAAA,EAC/C,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,MAAA,CAAO,KAAA,CAAM,CAAA,mBAAA,EAAsB,KAAK;AAAA,CAAI,CAAA;AAEpD,IAAA,OAAA,CAAQ,GAAA,GAAM,kBAAA;AACd,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,EAChB;AACF","file":"acp-GVDPJUYP.cjs","sourcesContent":["import { randomUUID } from 'node:crypto';\nimport { Readable, Writable } from 'node:stream';\nimport { AgentSideConnection, ndJsonStream } from '@agentclientprotocol/sdk';\nimport type { AgentController, AgentControllerMode, Session } from '@mastra/core/agent-controller';\nimport { MastraCodeAcpAgent } from './agent.js';\n\n/**\n * Run the ACP server over stdio.\n * This sets up the JSON-RPC stream and keeps the process alive until the client disconnects.\n */\nexport async function runAcpServer(\n controller: AgentController,\n modes: AgentControllerMode[],\n cleanup?: () => Promise<void>,\n): Promise<void> {\n // Create the ndJSON stream from stdin/stdout\n const input = Readable.toWeb(process.stdin) as ReadableStream<Uint8Array>;\n const output = Writable.toWeb(process.stdout) as WritableStream<Uint8Array>;\n const stream = ndJsonStream(output, input);\n let session: Session | undefined;\n let agent: MastraCodeAcpAgent | undefined;\n\n // Handle cleanup on disconnect (success or error)\n try {\n session = await controller.createSession({\n id: `acp-${randomUUID()}`,\n ownerId: `acp-owner-${randomUUID()}`,\n });\n const activeSession = session;\n\n // Create the agent-side connection\n const connection = new AgentSideConnection(conn => {\n agent = new MastraCodeAcpAgent(conn, controller, activeSession, modes);\n return agent;\n }, stream);\n\n await connection.closed;\n } finally {\n agent?.dispose();\n session?.thread.detachFromCurrent();\n await session?.thread.clearAndReleaseLock();\n if (cleanup) {\n await cleanup();\n }\n }\n}\n","import type { AgentControllerMode } from '@mastra/core/agent-controller';\n\nimport { createMastraCode } from '../index.js';\nimport { releaseAllThreadLocks } from '../utils/thread-lock.js';\nimport { setAutoApprove } from './event-mapper.js';\nimport { runAcpServer } from './server.js';\n\n/**\n * Entry point for ACP server mode.\n * Initializes mastracode and runs the ACP protocol over stdio.\n */\nexport async function acpMain(options?: { dangerousAutoApprove?: boolean }): Promise<void> {\n if (options?.dangerousAutoApprove) {\n setAutoApprove(true);\n }\n // Redirect console.log to stderr to avoid polluting the JSON-RPC stream on stdout.\n // eslint-disable-next-line no-console\n const originalConsoleLog = console.log;\n // eslint-disable-next-line no-console\n console.log = (...args: unknown[]) => {\n process.stderr.write(args.map(String).join(' ') + '\\n');\n };\n\n let result: Awaited<ReturnType<typeof createMastraCode>> | undefined;\n\n try {\n result = await createMastraCode({\n unixSocketPubSub: false,\n disableMcp: false,\n disableHooks: false,\n });\n\n const { controller, mcpManager, signalsPubSub } = result;\n\n // Default modes (same as createMastraCode defaults)\n const modes: AgentControllerMode[] = [\n { id: 'build', name: 'Build' },\n { id: 'plan', name: 'Plan' },\n { id: 'fast', name: 'Fast' },\n ];\n\n // Cleanup function (mirrors main.ts asyncCleanup)\n const cleanup = async () => {\n releaseAllThreadLocks();\n const closeSignalsPubSub = (signalsPubSub as { close?: () => Promise<void> | void } | undefined)?.close;\n await Promise.allSettled([\n mcpManager?.disconnect(),\n controller?.getMastra()?.stopWorkers(),\n controller?.stopIntervals(),\n closeSignalsPubSub?.(),\n ]);\n\n // Restore console.log\n // eslint-disable-next-line no-console\n console.log = originalConsoleLog;\n };\n\n // Handle signals\n const handleSignal = async () => {\n await cleanup();\n process.exit(0);\n };\n\n process.on('SIGINT', handleSignal);\n process.on('SIGTERM', handleSignal);\n\n await runAcpServer(controller, modes, cleanup);\n } catch (error) {\n process.stderr.write(`[acp] Fatal error: ${error}\\n`);\n // eslint-disable-next-line no-console\n console.log = originalConsoleLog;\n process.exit(1);\n }\n}\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { Session } from '@mastra/core/agent-controller';
|
|
2
2
|
/**
|
|
3
|
-
* Wires MastraCode-owned
|
|
3
|
+
* Wires MastraCode-owned state into controller thread events so it persists
|
|
4
4
|
* per-thread and new threads inherit the most recent value.
|
|
5
5
|
*
|
|
6
6
|
* This is intentionally implemented in mastracode rather than core: these
|
|
7
|
-
* settings are mastracode-specific
|
|
7
|
+
* settings are mastracode-specific concepts, so persistence stays scoped to
|
|
8
8
|
* the host.
|
|
9
9
|
*/
|
|
10
10
|
export declare function attachOMThreadStatePersistence(session: Session<Record<string, unknown>>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-caveman-state.d.ts","sourceRoot":"","sources":["../../src/agents/thread-caveman-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,OAAO,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"thread-caveman-state.d.ts","sourceRoot":"","sources":["../../src/agents/thread-caveman-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAkGpF;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAqB9F;AAED;;;;GAIG;AACH,wBAAsB,oCAAoC,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAInH"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getLocalPlansRelativeDir, getPlansDir, setAuthStorage, loadSettings, MEMORY_GATEWAY_PROVIDER, getAvailableModePacks, getAvailableOmPacks, resolveModelDefaults, resolveOmRoleModel, releaseThreadLock, acquireThreadLock, saveSettings, OBSERVABILITY_AUTH_PREFIX, mastra, getCustomProviderId, getEffectiveThinkingLevel, createCodexMiddleware, THINKING_LEVEL_TO_REASONING_EFFORT, buildOpenAICodexOAuthFetch, openaiCodexProvider, isPlanFilePath } from './chunk-
|
|
1
|
+
import { getLocalPlansRelativeDir, getPlansDir, setAuthStorage, loadSettings, MEMORY_GATEWAY_PROVIDER, getAvailableModePacks, getAvailableOmPacks, resolveModelDefaults, resolveOmRoleModel, releaseThreadLock, acquireThreadLock, saveSettings, OBSERVABILITY_AUTH_PREFIX, mastra, getCustomProviderId, getEffectiveThinkingLevel, createCodexMiddleware, THINKING_LEVEL_TO_REASONING_EFFORT, buildOpenAICodexOAuthFetch, openaiCodexProvider, isPlanFilePath } from './chunk-NB52GKOT.js';
|
|
2
2
|
import { AuthStorage, DEFAULT_OM_MODEL_ID, DEFAULT_CONFIG_DIR, validateConfigDirName, detectProject, getResourceIdOverride, getStorageConfig, getObservabilityDatabasePath, getVectorDatabasePath, getCurrentGitBranchAsync, getOmScope, DEFAULT_REF_THRESHOLD, DEFAULT_OBS_THRESHOLD, getGitHubCopilotBaseUrl, fetchCopilotModels, getDatabasePath, COPILOT_HEADERS, getAppDataDir } from './chunk-Z5EMG7I2.js';
|
|
3
3
|
import { getToolCategory, MC_TOOLS, TOOL_NAME_OVERRIDES } from './chunk-UOFNLVKF.js';
|
|
4
4
|
import { createHash } from 'crypto';
|
|
@@ -808,10 +808,12 @@ var requestSandboxAccessTool = createTool({
|
|
|
808
808
|
const answerText = Array.isArray(resumeData) ? resumeData.join(", ") : String(resumeData);
|
|
809
809
|
const approved = answerText.toLowerCase().startsWith("y") || answerText.toLowerCase() === "approve";
|
|
810
810
|
if (approved) {
|
|
811
|
-
const
|
|
811
|
+
const controllerState = agentControllerCtx?.getState();
|
|
812
|
+
const currentAllowed = controllerState?.sandboxAllowedPaths ?? [];
|
|
813
|
+
const nextAllowed = currentAllowed.includes(absolutePath) ? currentAllowed : [...currentAllowed, absolutePath];
|
|
812
814
|
if (!currentAllowed.includes(absolutePath)) {
|
|
813
815
|
await agentControllerCtx?.setState({
|
|
814
|
-
sandboxAllowedPaths:
|
|
816
|
+
sandboxAllowedPaths: nextAllowed
|
|
815
817
|
});
|
|
816
818
|
}
|
|
817
819
|
const fs4 = agentControllerCtx?.workspace?.filesystem ?? context?.workspace?.filesystem;
|
|
@@ -2373,17 +2375,30 @@ var planMode = {
|
|
|
2373
2375
|
var THREAD_STATE_SETTINGS = [
|
|
2374
2376
|
{
|
|
2375
2377
|
key: "cavemanObservations",
|
|
2376
|
-
isValid: (value) => typeof value === "boolean"
|
|
2378
|
+
isValid: (value) => typeof value === "boolean",
|
|
2379
|
+
seedMissingFromCurrentState: true
|
|
2377
2380
|
},
|
|
2378
2381
|
{
|
|
2379
2382
|
key: "observeAttachments",
|
|
2380
|
-
isValid: (value) => value === "auto" || typeof value === "boolean"
|
|
2383
|
+
isValid: (value) => value === "auto" || typeof value === "boolean",
|
|
2384
|
+
seedMissingFromCurrentState: true
|
|
2385
|
+
},
|
|
2386
|
+
{
|
|
2387
|
+
key: "sandboxAllowedPaths",
|
|
2388
|
+
isValid: (value) => Array.isArray(value) && value.every((item) => typeof item === "string"),
|
|
2389
|
+
clearValueWhenMissing: []
|
|
2381
2390
|
}
|
|
2382
2391
|
];
|
|
2383
2392
|
function getStateValue(session, setting) {
|
|
2384
2393
|
const value = session.state.get()[setting.key];
|
|
2385
2394
|
return setting.isValid(value) ? value : void 0;
|
|
2386
2395
|
}
|
|
2396
|
+
function stateValuesEqual(left, right) {
|
|
2397
|
+
if (Array.isArray(left) && Array.isArray(right)) {
|
|
2398
|
+
return left.length === right.length && left.every((item, index) => item === right[index]);
|
|
2399
|
+
}
|
|
2400
|
+
return left === right;
|
|
2401
|
+
}
|
|
2387
2402
|
async function findThread(session, threadId) {
|
|
2388
2403
|
const threads = await session.thread.list({ allResources: true });
|
|
2389
2404
|
return threads.find((t) => t.id === threadId);
|
|
@@ -2401,9 +2416,18 @@ async function restoreSettingsForThread(session, threadId) {
|
|
|
2401
2416
|
}
|
|
2402
2417
|
continue;
|
|
2403
2418
|
}
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2419
|
+
if (setting.clearValueWhenMissing !== void 0) {
|
|
2420
|
+
const current = getStateValue(session, setting);
|
|
2421
|
+
if (current !== void 0 && !stateValuesEqual(current, setting.clearValueWhenMissing)) {
|
|
2422
|
+
updates[setting.key] = setting.clearValueWhenMissing;
|
|
2423
|
+
}
|
|
2424
|
+
continue;
|
|
2425
|
+
}
|
|
2426
|
+
if (setting.seedMissingFromCurrentState) {
|
|
2427
|
+
const current = getStateValue(session, setting);
|
|
2428
|
+
if (current !== void 0) {
|
|
2429
|
+
settingsToSeed.push({ key: setting.key, value: current });
|
|
2430
|
+
}
|
|
2407
2431
|
}
|
|
2408
2432
|
}
|
|
2409
2433
|
if (Object.keys(updates).length > 0) {
|
|
@@ -2421,6 +2445,16 @@ function attachOMThreadStatePersistence(session) {
|
|
|
2421
2445
|
const threadId = event.type === "thread_changed" ? event.threadId : event.thread.id;
|
|
2422
2446
|
void restoreSettingsForThread(session, threadId).catch(() => {
|
|
2423
2447
|
});
|
|
2448
|
+
return;
|
|
2449
|
+
}
|
|
2450
|
+
if (event.type === "state_changed") {
|
|
2451
|
+
for (const setting of THREAD_STATE_SETTINGS) {
|
|
2452
|
+
if (!event.changedKeys.includes(setting.key)) continue;
|
|
2453
|
+
const value = event.state[setting.key];
|
|
2454
|
+
if (!setting.isValid(value)) continue;
|
|
2455
|
+
void session.thread.setSetting({ key: setting.key, value }).catch(() => {
|
|
2456
|
+
});
|
|
2457
|
+
}
|
|
2424
2458
|
}
|
|
2425
2459
|
});
|
|
2426
2460
|
}
|
|
@@ -4594,7 +4628,7 @@ async function createMastraCodeAgentController(config) {
|
|
|
4594
4628
|
}
|
|
4595
4629
|
}
|
|
4596
4630
|
];
|
|
4597
|
-
const
|
|
4631
|
+
const defaultIntervalHandlers = [
|
|
4598
4632
|
{
|
|
4599
4633
|
id: "gateway-sync",
|
|
4600
4634
|
intervalMs: 5 * 60 * 1e3,
|
|
@@ -4602,7 +4636,7 @@ async function createMastraCodeAgentController(config) {
|
|
|
4602
4636
|
handler: () => syncGateways()
|
|
4603
4637
|
}
|
|
4604
4638
|
];
|
|
4605
|
-
const
|
|
4639
|
+
const intervalHandlers = config?.intervalHandlers ?? defaultIntervalHandlers;
|
|
4606
4640
|
const anthropicCred = authStorage2.get("anthropic");
|
|
4607
4641
|
const openaiCred = authStorage2.get("openai-codex");
|
|
4608
4642
|
const githubCopilotCred = authStorage2.get("github-copilot");
|
|
@@ -4706,7 +4740,7 @@ async function createMastraCodeAgentController(config) {
|
|
|
4706
4740
|
configDir
|
|
4707
4741
|
},
|
|
4708
4742
|
modes,
|
|
4709
|
-
|
|
4743
|
+
intervalHandlers,
|
|
4710
4744
|
modelUseCountProvider: () => loadSettings().modelUseCounts,
|
|
4711
4745
|
modelUseCountTracker: (modelId) => {
|
|
4712
4746
|
try {
|
|
@@ -4817,5 +4851,5 @@ async function mountAgentControllerOnMastra(config) {
|
|
|
4817
4851
|
var createMastraCode = bootLocalAgentController;
|
|
4818
4852
|
|
|
4819
4853
|
export { bootLocalAgentController, createAuthStorage, createMastraCode, createMastraCodeAgentController, mountAgentControllerOnMastra, wireSessionConcerns };
|
|
4820
|
-
//# sourceMappingURL=chunk-
|
|
4821
|
-
//# sourceMappingURL=chunk-
|
|
4854
|
+
//# sourceMappingURL=chunk-22B6MUSN.js.map
|
|
4855
|
+
//# sourceMappingURL=chunk-22B6MUSN.js.map
|