mastracode 0.33.2-alpha.8 → 0.34.0-alpha.13
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 +52 -0
- package/dist/cli.cjs +3 -2
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +3 -2
- package/dist/cli.js.map +1 -1
- package/dist/tui/command-dispatch.d.ts.map +1 -1
- package/dist/tui/commands/index.d.ts +1 -0
- package/dist/tui/commands/index.d.ts.map +1 -1
- package/dist/tui/commands/knowledge-command.d.ts +3 -0
- package/dist/tui/commands/knowledge-command.d.ts.map +1 -0
- package/dist/tui/commands/types.d.ts +2 -0
- package/dist/tui/commands/types.d.ts.map +1 -1
- package/dist/tui/components/help-overlay.d.ts.map +1 -1
- package/dist/tui/components/knowledge-browser.d.ts +57 -0
- package/dist/tui/components/knowledge-browser.d.ts.map +1 -0
- package/dist/tui/components/subconscious-activity.d.ts +25 -0
- package/dist/tui/components/subconscious-activity.d.ts.map +1 -0
- package/dist/tui/db-message-parts.d.ts +3 -1
- package/dist/tui/db-message-parts.d.ts.map +1 -1
- package/dist/tui/mastra-tui.d.ts.map +1 -1
- package/dist/tui/render-messages.d.ts.map +1 -1
- package/dist/tui/setup.d.ts.map +1 -1
- package/dist/tui/state.d.ts +3 -0
- package/dist/tui/state.d.ts.map +1 -1
- package/dist/tui/utils/experimental-features.d.ts +2 -0
- package/dist/tui/utils/experimental-features.d.ts.map +1 -0
- package/dist/{tui-D-aJNadI.js → tui-BB2N6Mud.js} +599 -4
- package/dist/tui-BB2N6Mud.js.map +1 -0
- package/dist/{tui-C-5CxtMW.cjs → tui-C6uUdh0u.cjs} +599 -4
- package/dist/tui-C6uUdh0u.cjs.map +1 -0
- package/dist/tui.cjs +1 -1
- package/dist/tui.js +1 -1
- package/package.json +11 -11
- package/dist/tui-C-5CxtMW.cjs.map +0 -1
- package/dist/tui-D-aJNadI.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,57 @@
|
|
|
1
1
|
# mastracode
|
|
2
2
|
|
|
3
|
+
## 0.34.0-alpha.13
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Added foundational support for an upcoming experimental memory capability across storage, runtime, and developer tooling. ([#19538](https://github.com/mastra-ai/mastra/pull/19538))
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [[`566e080`](https://github.com/mastra-ai/mastra/commit/566e080ac4296ef2ba84a99c496a1c19706fa2df), [`c549e2f`](https://github.com/mastra-ai/mastra/commit/c549e2f40edc1cac5d9e74e82f90da22b48df084), [`c549e2f`](https://github.com/mastra-ai/mastra/commit/c549e2f40edc1cac5d9e74e82f90da22b48df084), [`2ef2f23`](https://github.com/mastra-ai/mastra/commit/2ef2f230a7aed342e7dc3b2000cd42e4c43e08a7), [`5740ec6`](https://github.com/mastra-ai/mastra/commit/5740ec60c760ffdfbfaa59d603d03b847c864e05)]:
|
|
12
|
+
- @mastra/code-sdk@1.3.0-alpha.13
|
|
13
|
+
- @mastra/core@1.60.0-alpha.13
|
|
14
|
+
- @mastra/memory@1.27.0-alpha.3
|
|
15
|
+
- @mastra/libsql@1.21.0-alpha.1
|
|
16
|
+
- @mastra/pg@1.21.0-alpha.4
|
|
17
|
+
|
|
18
|
+
## 0.33.2-alpha.12
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- Updated dependencies [[`6db7a5d`](https://github.com/mastra-ai/mastra/commit/6db7a5dd3dd2b6f7ef75dcd804fcffef5fa83963), [`0e5b1d9`](https://github.com/mastra-ai/mastra/commit/0e5b1d9513399e5ef6f1c114367393abf124a8e2), [`0cdc5dc`](https://github.com/mastra-ai/mastra/commit/0cdc5dc69024957815da4f51acc4119eb4f447d7)]:
|
|
23
|
+
- @mastra/core@1.60.0-alpha.12
|
|
24
|
+
- @mastra/pg@1.20.1-alpha.3
|
|
25
|
+
- @mastra/code-sdk@1.3.0-alpha.12
|
|
26
|
+
|
|
27
|
+
## 0.33.2-alpha.11
|
|
28
|
+
|
|
29
|
+
### Patch Changes
|
|
30
|
+
|
|
31
|
+
- Updated dependencies [[`6223446`](https://github.com/mastra-ai/mastra/commit/6223446ddce6166e96e0ba5e00d628b615dee8ca), [`583e235`](https://github.com/mastra-ai/mastra/commit/583e23519c13af16c1746f9c49722d011216611b), [`a77f8d4`](https://github.com/mastra-ai/mastra/commit/a77f8d4740d2178a74c41e4bf678b4fcd8fa0bb2), [`40d358e`](https://github.com/mastra-ai/mastra/commit/40d358e29d55543803e64b49241122f598ffabc7), [`e80cd7e`](https://github.com/mastra-ai/mastra/commit/e80cd7e7683e7d732e1cc6784bcac1d2640d2ce3), [`39ba1b9`](https://github.com/mastra-ai/mastra/commit/39ba1b9ce256a9a910a16f125cc6a59588185bfe), [`0f53aeb`](https://github.com/mastra-ai/mastra/commit/0f53aeb119158bd9f83bd8ef667f1f675740e8f0), [`20504b2`](https://github.com/mastra-ai/mastra/commit/20504b2ecebd0e077acda3d457ab57480a98ed3e), [`0db29ce`](https://github.com/mastra-ai/mastra/commit/0db29ce28d0089e2e0a9a65270321ed08d5d9ce6)]:
|
|
32
|
+
- @mastra/core@1.60.0-alpha.11
|
|
33
|
+
- @mastra/mcp@1.17.0-alpha.2
|
|
34
|
+
- @mastra/libsql@1.20.1-alpha.0
|
|
35
|
+
- @mastra/pg@1.20.1-alpha.2
|
|
36
|
+
- @mastra/code-sdk@1.3.0-alpha.11
|
|
37
|
+
|
|
38
|
+
## 0.33.2-alpha.10
|
|
39
|
+
|
|
40
|
+
### Patch Changes
|
|
41
|
+
|
|
42
|
+
- Updated dependencies [[`b860493`](https://github.com/mastra-ai/mastra/commit/b86049391100e665d579f700c8a2034c036defc3)]:
|
|
43
|
+
- @mastra/core@1.60.0-alpha.10
|
|
44
|
+
- @mastra/code-sdk@1.3.0-alpha.10
|
|
45
|
+
|
|
46
|
+
## 0.33.2-alpha.9
|
|
47
|
+
|
|
48
|
+
### Patch Changes
|
|
49
|
+
|
|
50
|
+
- Updated dependencies [[`b0a2a07`](https://github.com/mastra-ai/mastra/commit/b0a2a07800d42bd9823292e7db832374ed084c9c), [`b0a2a07`](https://github.com/mastra-ai/mastra/commit/b0a2a07800d42bd9823292e7db832374ed084c9c), [`ccbbcd9`](https://github.com/mastra-ai/mastra/commit/ccbbcd974eedff4367a54ed0e24c9ee742ab2f61), [`3f5c6f7`](https://github.com/mastra-ai/mastra/commit/3f5c6f728ea35da344248de9aa070f12849f3aa0), [`77e6b1b`](https://github.com/mastra-ai/mastra/commit/77e6b1bc4c46ce94fe501023fb4393c812ec6be3), [`2e1d098`](https://github.com/mastra-ai/mastra/commit/2e1d0984e325fd319d32ea182f596b3170be3847)]:
|
|
51
|
+
- @mastra/memory@1.27.0-alpha.2
|
|
52
|
+
- @mastra/core@1.60.0-alpha.9
|
|
53
|
+
- @mastra/code-sdk@1.3.0-alpha.9
|
|
54
|
+
|
|
3
55
|
## 0.33.2-alpha.8
|
|
4
56
|
|
|
5
57
|
### Patch Changes
|
package/dist/cli.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const require_tui = require("./tui-
|
|
2
|
+
const require_tui = require("./tui-C6uUdh0u.cjs");
|
|
3
3
|
let _mastra_code_sdk = require("@mastra/code-sdk");
|
|
4
4
|
let fs = require("fs");
|
|
5
5
|
fs = require_tui.__toESM(fs, 1);
|
|
@@ -13,7 +13,7 @@ let _mastra_code_sdk_utils_stdin_pipe = require("@mastra/code-sdk/utils/stdin-pi
|
|
|
13
13
|
let _mastra_code_sdk_utils_thread_lock = require("@mastra/code-sdk/utils/thread-lock");
|
|
14
14
|
//#region src/version.ts
|
|
15
15
|
function getCurrentVersion() {
|
|
16
|
-
return "0.
|
|
16
|
+
return "0.34.0-alpha.13";
|
|
17
17
|
}
|
|
18
18
|
//#endregion
|
|
19
19
|
//#region src/main.ts
|
|
@@ -110,6 +110,7 @@ async function tuiMain(pipedInput) {
|
|
|
110
110
|
mcpManager,
|
|
111
111
|
pluginManager: result.pluginManager,
|
|
112
112
|
storageMaintenance: result.storageMaintenance,
|
|
113
|
+
knowledgeInspector: result.knowledgeInspector,
|
|
113
114
|
appName: "Mastra Code",
|
|
114
115
|
version: getCurrentVersion(),
|
|
115
116
|
inlineQuestions: true,
|
package/dist/cli.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.cjs","names":["detectTerminalTheme","MastraTUI"],"sources":["../src/version.ts","../src/main.ts"],"sourcesContent":["import { readFileSync } from 'node:fs';\n\ndeclare const MASTRACODE_VERSION: string | undefined;\n\nexport function getCurrentVersion(): string {\n if (typeof MASTRACODE_VERSION !== 'undefined') {\n return MASTRACODE_VERSION;\n }\n\n const pkg = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8')) as { version: string };\n return pkg.version;\n}\n","#!/usr/bin/env node\n/**\n * Main entry point for Mastra Code TUI.\n */\nimport fs from 'node:fs';\n\nimport { createMastraCode } from '@mastra/code-sdk';\nimport { createMastraCodeAnalytics } from '@mastra/code-sdk/analytics';\nimport { isStreamDestroyedError } from '@mastra/code-sdk/error-classification';\nimport { hasHeadlessFlag, runMCCli } from '@mastra/code-sdk/headless/index';\nimport { createBrowserFromSettings, loadSettings } from '@mastra/code-sdk/onboarding/settings';\nimport { formatScaffoldSuccess, scaffoldPlugin } from '@mastra/code-sdk/plugins/scaffold';\nimport { setupDebugLogging } from '@mastra/code-sdk/utils/debug-log';\nimport { drainPipedStdin, reopenStdinFromTTY } from '@mastra/code-sdk/utils/stdin-pipe';\nimport { releaseAllThreadLocks } from '@mastra/code-sdk/utils/thread-lock';\nimport { detectTerminalTheme } from './tui/detect-theme.js';\nimport { MastraTUI } from './tui/index.js';\nimport { applyThemeMode, restoreTerminalForeground } from './tui/theme.js';\nimport { getCurrentVersion } from './version.js';\n\nlet controller: Awaited<ReturnType<typeof createMastraCode>>['controller'];\nlet mcpManager: Awaited<ReturnType<typeof createMastraCode>>['mcpManager'];\nlet hookManager: Awaited<ReturnType<typeof createMastraCode>>['hookManager'];\nlet authStorage: Awaited<ReturnType<typeof createMastraCode>>['authStorage'];\nlet signalsPubSub: Awaited<ReturnType<typeof createMastraCode>>['signalsPubSub'];\nlet storageMaintenance: Awaited<ReturnType<typeof createMastraCode>>['storageMaintenance'];\nlet stopPluginSignalProviders: Awaited<ReturnType<typeof createMastraCode>>['stopPluginSignalProviders'] | undefined;\nlet analytics: ReturnType<typeof createMastraCodeAnalytics> | undefined;\nlet tui: MastraTUI | undefined;\nlet storageClosed = false;\n\nfunction isTruthyEnv(name: string): boolean {\n return ['1', 'true', 'yes', 'on'].includes(process.env[name]?.trim().toLowerCase() ?? '');\n}\n\nfunction resolveInitialStateFromEnv() {\n const currentModelId = process.env.MASTRACODE_MODEL_ID?.trim();\n const initialState: Record<string, unknown> = {};\n if (currentModelId) initialState.currentModelId = currentModelId;\n if (isTruthyEnv('MASTRACODE_YOLO')) initialState.yolo = true;\n return Object.keys(initialState).length > 0 ? initialState : undefined;\n}\n\n// Global safety nets — catch any uncaught errors from storage init, etc.\nprocess.on('uncaughtException', error => {\n // ERR_STREAM_DESTROYED is non-fatal — happens routinely when streams close\n // during shutdown, cancelled LLM requests, or LSP/subprocess exits (#13548, #13549)\n if (isStreamDestroyedError(error)) return;\n handleFatalError(error);\n});\nprocess.on('unhandledRejection', reason => {\n if (isStreamDestroyedError(reason)) return;\n handleFatalError(reason instanceof Error ? reason : new Error(String(reason)));\n});\n\nasync function tuiMain(pipedInput?: string | null) {\n const settings = loadSettings();\n let browserPromise: ReturnType<typeof createBrowserFromSettings> | undefined;\n const loadBrowser = () => {\n browserPromise ??= createBrowserFromSettings(settings.browser);\n return browserPromise;\n };\n\n const initialState = resolveInitialStateFromEnv();\n const result = await createMastraCode({\n unixSocketPubSub: !isTruthyEnv('MASTRACODE_DISABLE_UNIX_SOCKET_PUBSUB'),\n disableMcp: isTruthyEnv('MASTRACODE_DISABLE_MCP'),\n disableHooks: isTruthyEnv('MASTRACODE_DISABLE_HOOKS'),\n ...(isTruthyEnv('MASTRACODE_DISABLE_MEMORY') ? { memory: false as never } : {}),\n ...(initialState ? { initialState: initialState as never } : {}),\n });\n controller = result.controller;\n mcpManager = result.mcpManager;\n hookManager = result.hookManager;\n authStorage = result.authStorage;\n signalsPubSub = result.signalsPubSub;\n storageMaintenance = result.storageMaintenance;\n stopPluginSignalProviders = result.stopPluginSignalProviders;\n\n if (result.storageWarning) {\n console.info(`⚠ ${result.storageWarning}`);\n }\n if (result.observabilityWarning) {\n console.info(`⚠ ${result.observabilityWarning}`);\n }\n\n // MCP connection is deferred to TUI.init() (after ui.start()) so that\n // status messages use showInfo() instead of console.info(), which would\n // corrupt the terminal. Headless mode still inits from headless/cli.ts.\n\n setupDebugLogging();\n\n // Detect and apply terminal theme\n // MASTRA_THEME env var is the highest-priority override\n const envTheme = process.env.MASTRA_THEME?.toLowerCase();\n let themeMode: 'dark' | 'light';\n let detectedBgHex: string | undefined;\n if (envTheme === 'dark' || envTheme === 'light') {\n themeMode = envTheme;\n } else {\n const settings = loadSettings();\n const themePref = settings.preferences.theme;\n if (themePref === 'dark' || themePref === 'light') {\n themeMode = themePref;\n } else {\n const detection = await detectTerminalTheme();\n themeMode = detection.mode;\n detectedBgHex = detection.detectedBgHex;\n }\n }\n applyThemeMode(themeMode, detectedBgHex);\n\n // createMastraCode() brought up shared resources and minted the single\n // session that all work runs through. The AgentController owns no session of its own.\n const session = result.session;\n\n analytics = createMastraCodeAnalytics({ version: getCurrentVersion() });\n analytics.capture('mastracode_session_started', {\n mode: session.mode.get(),\n resourceId: session.identity.getResourceId(),\n hasAuthStorage: Boolean(authStorage),\n hasMcp: Boolean(mcpManager),\n theme: themeMode,\n });\n\n tui = new MastraTUI({\n controller: controller,\n session,\n hookManager,\n analytics,\n authStorage,\n mcpManager,\n pluginManager: result.pluginManager,\n storageMaintenance: result.storageMaintenance,\n appName: 'Mastra Code',\n version: getCurrentVersion(),\n inlineQuestions: true,\n githubSignals: result.githubSignals,\n ...(pipedInput ? { initialMessage: `The following was piped via stdin:\\n\\n${pipedInput}` } : {}),\n });\n tui.run().catch(error => {\n handleFatalError(error);\n });\n\n if (settings.browser.enabled) {\n void loadBrowser()\n .then(browser => {\n if (!browser) return;\n controller.setBrowser(browser);\n void session.state.set({ activeBrowserSettings: settings.browser } as any).catch(() => {});\n })\n .catch(() => {});\n }\n}\n\nconst asyncCleanup = async () => {\n releaseAllThreadLocks();\n // Stop plugin-contributed signal providers (and the plugin reload listener)\n // before quiescing workers: a provider that keeps polling past this point\n // could dispatch into a controller that is shutting down.\n try {\n stopPluginSignalProviders?.();\n } catch {\n // Best-effort — the process is exiting.\n }\n const closeSignalsPubSub = (signalsPubSub as { close?: () => Promise<void> | void } | undefined)?.close;\n await Promise.allSettled([mcpManager?.disconnect(), controller?.stopIntervals(), closeSignalsPubSub?.()]);\n // Mastra owns the workspaces and must destroy them to stop retained language\n // servers before storage is closed.\n await Promise.allSettled([controller?.getMastra()?.shutdown(), analytics?.shutdown()]);\n // Checkpoint WAL and close the local storage connection after all producers\n // and timers are quiesced. Idempotent — repeated signals (SIGINT then SIGHUP)\n // close only once. LibSQLStore.close()/LibSQLVector.close() truncate the WAL\n // and switch back to DELETE journal mode for a clean shutdown.\n if (!storageClosed) {\n storageClosed = true;\n await storageMaintenance?.closeStorage?.().catch(() => {\n // Swallow — best-effort cleanup during shutdown. The process is exiting.\n });\n }\n};\n\nprocess.on('beforeExit', () => {\n void asyncCleanup();\n});\nprocess.on('exit', () => {\n // Ensure terminal protocols (kitty keyboard, modifyOtherKeys, bracketed paste,\n // raw mode) are disabled on ANY exit path. Without this, killing the process\n // via SIGINT/SIGTERM leaves the terminal in a corrupted state where keypresses\n // produce escape sequences like \"5;99~\" instead of normal characters.\n try {\n tui?.stop();\n } catch {\n // Failsafe: even if MastraTUI.stop() throws, write raw terminal reset\n // sequences to disable Kitty keyboard protocol, bracketed paste, and\n // modifyOtherKeys. These are the exact sequences pi-tui's terminal.stop()\n // would write.\n }\n // Belt-and-suspenders: always write terminal reset sequences directly,\n // regardless of whether tui.stop() succeeded. Writing them twice is harmless\n // but missing them leaves the terminal in a corrupted state.\n try {\n process.stdout.write(\n '\\x1b[?2004l' + // disable bracketed paste\n '\\x1b[<u' + // pop kitty keyboard protocol\n '\\x1b[>4;0m' + // disable modifyOtherKeys\n '\\x1b[?25h', // show cursor\n );\n if (process.stdin.setRawMode) {\n process.stdin.setRawMode(false);\n }\n } catch {\n // stdout may already be closed during exit\n }\n restoreTerminalForeground();\n releaseAllThreadLocks();\n});\n\n// For all termination signals: stop the TUI FIRST (synchronous, disables keyboard\n// protocol immediately) before doing any async cleanup. This ensures the terminal\n// escape sequences are written even if asyncCleanup hangs or the process is killed\n// during cleanup.\nconst handleTermSignal = () => {\n try {\n tui?.stop();\n } catch {\n // ignored — exit handler has failsafe reset\n }\n void asyncCleanup().finally(() => process.exit(0));\n};\nprocess.on('SIGINT', handleTermSignal);\nprocess.on('SIGTERM', handleTermSignal);\nprocess.on('SIGHUP', handleTermSignal);\n\nfunction hasEconnrefused(err: unknown, depth = 0): boolean {\n if (!err || depth > 5) return false;\n const e = err as any;\n if (e.code === 'ECONNREFUSED') return true;\n if (e.cause) return hasEconnrefused(e.cause, depth + 1);\n // AggregateError has .errors array\n if (Array.isArray(e.errors)) return e.errors.some((inner: unknown) => hasEconnrefused(inner, depth + 1));\n return false;\n}\n\nfunction pluginMain(args: string[]): void {\n if (args[0] !== 'scaffold') {\n process.stderr.write('Usage: mastracode plugin scaffold <dir> [--id acme.foo] [--name \"Foo Tools\"]\\n');\n process.exit(1);\n }\n\n const dir = args[1];\n if (!dir) {\n process.stderr.write('Usage: mastracode plugin scaffold <dir> [--id acme.foo] [--name \"Foo Tools\"]\\n');\n process.exit(1);\n }\n\n const id = readFlag(args, '--id');\n const name = readFlag(args, '--name');\n const targetDir = scaffoldPlugin(dir, { ...(id ? { id } : {}), ...(name ? { name } : {}) });\n process.stdout.write(`${formatScaffoldSuccess(targetDir)}\\n`);\n}\n\nfunction readFlag(args: string[], flag: string): string | undefined {\n const index = args.indexOf(flag);\n if (index === -1) return undefined;\n const value = args[index + 1];\n if (!value || value.startsWith('--')) {\n throw new Error(`Missing value for ${flag}`);\n }\n return value;\n}\n\nfunction handleFatalError(error: unknown): never {\n // Always write to real stderr, even if console.error was overridden\n const write = (msg: string) => process.stderr.write(msg + '\\n');\n\n if (hasEconnrefused(error)) {\n const settings = loadSettings();\n const connStr = settings.storage?.pg?.connectionString;\n const target = connStr ?? 'localhost:5432';\n write(\n `\\nFailed to connect to PostgreSQL at ${target}.` +\n `\\nMake sure the database is running and accessible.` +\n `\\n\\nTo switch back to LibSQL:` +\n `\\n Set MASTRA_STORAGE_BACKEND=libsql or change the backend in /settings\\n`,\n );\n process.exit(1);\n }\n\n const msg = `Fatal error: ${error instanceof Error ? error.message : String(error)}`;\n write(msg);\n // Write crash log to file so it persists even if terminal closes\n try {\n const crashLog = `[${new Date().toISOString()}] ${msg}\\n${error instanceof Error && error.stack ? error.stack + '\\n' : ''}`;\n fs.appendFileSync('/tmp/mastra-crash.log', crashLog);\n } catch {}\n if (error instanceof Error && error.stack) {\n write(error.stack);\n }\n process.exit(1);\n}\n\nasync function main() {\n if (process.argv[2] === 'plugin') {\n return pluginMain(process.argv.slice(3));\n }\n\n if (hasHeadlessFlag(process.argv) || process.argv.includes('--help') || process.argv.includes('-h')) {\n return runMCCli();\n }\n\n if (process.argv.includes('--acp')) {\n const { acpMain } = await import('@mastra/code-sdk/acp/index');\n return acpMain({ dangerousAutoApprove: process.argv.includes('--dangerous-auto-approve') });\n }\n\n // When stdin is piped (e.g. `cat foo | mastracode`), drain the pipe fully\n // before starting the TUI. The drain blocks until the sender process exits\n // and closes its stdout, so we never see partial output.\n let pipedInput: string | null = null;\n if (!process.stdin.isTTY) {\n process.stderr.write('Reading piped input...\\n');\n pipedInput = await drainPipedStdin();\n\n // Always reopen a real TTY — even if the pipe was empty, the original\n // stdin is consumed/closed and the TUI needs a live TTY for keyboard input.\n const reopenedStdin = reopenStdinFromTTY();\n if (!reopenedStdin) {\n process.stderr.write('No TTY available — falling back to headless mode.\\n');\n return runMCCli(pipedInput);\n }\n }\n\n return tuiMain(pipedInput);\n}\n\nmain().catch(error => {\n handleFatalError(error);\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.cjs","names":["detectTerminalTheme","MastraTUI"],"sources":["../src/version.ts","../src/main.ts"],"sourcesContent":["import { readFileSync } from 'node:fs';\n\ndeclare const MASTRACODE_VERSION: string | undefined;\n\nexport function getCurrentVersion(): string {\n if (typeof MASTRACODE_VERSION !== 'undefined') {\n return MASTRACODE_VERSION;\n }\n\n const pkg = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8')) as { version: string };\n return pkg.version;\n}\n","#!/usr/bin/env node\n/**\n * Main entry point for Mastra Code TUI.\n */\nimport fs from 'node:fs';\n\nimport { createMastraCode } from '@mastra/code-sdk';\nimport { createMastraCodeAnalytics } from '@mastra/code-sdk/analytics';\nimport { isStreamDestroyedError } from '@mastra/code-sdk/error-classification';\nimport { hasHeadlessFlag, runMCCli } from '@mastra/code-sdk/headless/index';\nimport { createBrowserFromSettings, loadSettings } from '@mastra/code-sdk/onboarding/settings';\nimport { formatScaffoldSuccess, scaffoldPlugin } from '@mastra/code-sdk/plugins/scaffold';\nimport { setupDebugLogging } from '@mastra/code-sdk/utils/debug-log';\nimport { drainPipedStdin, reopenStdinFromTTY } from '@mastra/code-sdk/utils/stdin-pipe';\nimport { releaseAllThreadLocks } from '@mastra/code-sdk/utils/thread-lock';\nimport { detectTerminalTheme } from './tui/detect-theme.js';\nimport { MastraTUI } from './tui/index.js';\nimport { applyThemeMode, restoreTerminalForeground } from './tui/theme.js';\nimport { getCurrentVersion } from './version.js';\n\nlet controller: Awaited<ReturnType<typeof createMastraCode>>['controller'];\nlet mcpManager: Awaited<ReturnType<typeof createMastraCode>>['mcpManager'];\nlet hookManager: Awaited<ReturnType<typeof createMastraCode>>['hookManager'];\nlet authStorage: Awaited<ReturnType<typeof createMastraCode>>['authStorage'];\nlet signalsPubSub: Awaited<ReturnType<typeof createMastraCode>>['signalsPubSub'];\nlet storageMaintenance: Awaited<ReturnType<typeof createMastraCode>>['storageMaintenance'];\nlet stopPluginSignalProviders: Awaited<ReturnType<typeof createMastraCode>>['stopPluginSignalProviders'] | undefined;\nlet analytics: ReturnType<typeof createMastraCodeAnalytics> | undefined;\nlet tui: MastraTUI | undefined;\nlet storageClosed = false;\n\nfunction isTruthyEnv(name: string): boolean {\n return ['1', 'true', 'yes', 'on'].includes(process.env[name]?.trim().toLowerCase() ?? '');\n}\n\nfunction resolveInitialStateFromEnv() {\n const currentModelId = process.env.MASTRACODE_MODEL_ID?.trim();\n const initialState: Record<string, unknown> = {};\n if (currentModelId) initialState.currentModelId = currentModelId;\n if (isTruthyEnv('MASTRACODE_YOLO')) initialState.yolo = true;\n return Object.keys(initialState).length > 0 ? initialState : undefined;\n}\n\n// Global safety nets — catch any uncaught errors from storage init, etc.\nprocess.on('uncaughtException', error => {\n // ERR_STREAM_DESTROYED is non-fatal — happens routinely when streams close\n // during shutdown, cancelled LLM requests, or LSP/subprocess exits (#13548, #13549)\n if (isStreamDestroyedError(error)) return;\n handleFatalError(error);\n});\nprocess.on('unhandledRejection', reason => {\n if (isStreamDestroyedError(reason)) return;\n handleFatalError(reason instanceof Error ? reason : new Error(String(reason)));\n});\n\nasync function tuiMain(pipedInput?: string | null) {\n const settings = loadSettings();\n let browserPromise: ReturnType<typeof createBrowserFromSettings> | undefined;\n const loadBrowser = () => {\n browserPromise ??= createBrowserFromSettings(settings.browser);\n return browserPromise;\n };\n\n const initialState = resolveInitialStateFromEnv();\n const result = await createMastraCode({\n unixSocketPubSub: !isTruthyEnv('MASTRACODE_DISABLE_UNIX_SOCKET_PUBSUB'),\n disableMcp: isTruthyEnv('MASTRACODE_DISABLE_MCP'),\n disableHooks: isTruthyEnv('MASTRACODE_DISABLE_HOOKS'),\n ...(isTruthyEnv('MASTRACODE_DISABLE_MEMORY') ? { memory: false as never } : {}),\n ...(initialState ? { initialState: initialState as never } : {}),\n });\n controller = result.controller;\n mcpManager = result.mcpManager;\n hookManager = result.hookManager;\n authStorage = result.authStorage;\n signalsPubSub = result.signalsPubSub;\n storageMaintenance = result.storageMaintenance;\n stopPluginSignalProviders = result.stopPluginSignalProviders;\n\n if (result.storageWarning) {\n console.info(`⚠ ${result.storageWarning}`);\n }\n if (result.observabilityWarning) {\n console.info(`⚠ ${result.observabilityWarning}`);\n }\n\n // MCP connection is deferred to TUI.init() (after ui.start()) so that\n // status messages use showInfo() instead of console.info(), which would\n // corrupt the terminal. Headless mode still inits from headless/cli.ts.\n\n setupDebugLogging();\n\n // Detect and apply terminal theme\n // MASTRA_THEME env var is the highest-priority override\n const envTheme = process.env.MASTRA_THEME?.toLowerCase();\n let themeMode: 'dark' | 'light';\n let detectedBgHex: string | undefined;\n if (envTheme === 'dark' || envTheme === 'light') {\n themeMode = envTheme;\n } else {\n const settings = loadSettings();\n const themePref = settings.preferences.theme;\n if (themePref === 'dark' || themePref === 'light') {\n themeMode = themePref;\n } else {\n const detection = await detectTerminalTheme();\n themeMode = detection.mode;\n detectedBgHex = detection.detectedBgHex;\n }\n }\n applyThemeMode(themeMode, detectedBgHex);\n\n // createMastraCode() brought up shared resources and minted the single\n // session that all work runs through. The AgentController owns no session of its own.\n const session = result.session;\n\n analytics = createMastraCodeAnalytics({ version: getCurrentVersion() });\n analytics.capture('mastracode_session_started', {\n mode: session.mode.get(),\n resourceId: session.identity.getResourceId(),\n hasAuthStorage: Boolean(authStorage),\n hasMcp: Boolean(mcpManager),\n theme: themeMode,\n });\n\n tui = new MastraTUI({\n controller: controller,\n session,\n hookManager,\n analytics,\n authStorage,\n mcpManager,\n pluginManager: result.pluginManager,\n storageMaintenance: result.storageMaintenance,\n knowledgeInspector: result.knowledgeInspector,\n appName: 'Mastra Code',\n version: getCurrentVersion(),\n inlineQuestions: true,\n githubSignals: result.githubSignals,\n ...(pipedInput ? { initialMessage: `The following was piped via stdin:\\n\\n${pipedInput}` } : {}),\n });\n tui.run().catch(error => {\n handleFatalError(error);\n });\n\n if (settings.browser.enabled) {\n void loadBrowser()\n .then(browser => {\n if (!browser) return;\n controller.setBrowser(browser);\n void session.state.set({ activeBrowserSettings: settings.browser } as any).catch(() => {});\n })\n .catch(() => {});\n }\n}\n\nconst asyncCleanup = async () => {\n releaseAllThreadLocks();\n // Stop plugin-contributed signal providers (and the plugin reload listener)\n // before quiescing workers: a provider that keeps polling past this point\n // could dispatch into a controller that is shutting down.\n try {\n stopPluginSignalProviders?.();\n } catch {\n // Best-effort — the process is exiting.\n }\n const closeSignalsPubSub = (signalsPubSub as { close?: () => Promise<void> | void } | undefined)?.close;\n await Promise.allSettled([mcpManager?.disconnect(), controller?.stopIntervals(), closeSignalsPubSub?.()]);\n // Mastra owns the workspaces and must destroy them to stop retained language\n // servers before storage is closed.\n await Promise.allSettled([controller?.getMastra()?.shutdown(), analytics?.shutdown()]);\n // Checkpoint WAL and close the local storage connection after all producers\n // and timers are quiesced. Idempotent — repeated signals (SIGINT then SIGHUP)\n // close only once. LibSQLStore.close()/LibSQLVector.close() truncate the WAL\n // and switch back to DELETE journal mode for a clean shutdown.\n if (!storageClosed) {\n storageClosed = true;\n await storageMaintenance?.closeStorage?.().catch(() => {\n // Swallow — best-effort cleanup during shutdown. The process is exiting.\n });\n }\n};\n\nprocess.on('beforeExit', () => {\n void asyncCleanup();\n});\nprocess.on('exit', () => {\n // Ensure terminal protocols (kitty keyboard, modifyOtherKeys, bracketed paste,\n // raw mode) are disabled on ANY exit path. Without this, killing the process\n // via SIGINT/SIGTERM leaves the terminal in a corrupted state where keypresses\n // produce escape sequences like \"5;99~\" instead of normal characters.\n try {\n tui?.stop();\n } catch {\n // Failsafe: even if MastraTUI.stop() throws, write raw terminal reset\n // sequences to disable Kitty keyboard protocol, bracketed paste, and\n // modifyOtherKeys. These are the exact sequences pi-tui's terminal.stop()\n // would write.\n }\n // Belt-and-suspenders: always write terminal reset sequences directly,\n // regardless of whether tui.stop() succeeded. Writing them twice is harmless\n // but missing them leaves the terminal in a corrupted state.\n try {\n process.stdout.write(\n '\\x1b[?2004l' + // disable bracketed paste\n '\\x1b[<u' + // pop kitty keyboard protocol\n '\\x1b[>4;0m' + // disable modifyOtherKeys\n '\\x1b[?25h', // show cursor\n );\n if (process.stdin.setRawMode) {\n process.stdin.setRawMode(false);\n }\n } catch {\n // stdout may already be closed during exit\n }\n restoreTerminalForeground();\n releaseAllThreadLocks();\n});\n\n// For all termination signals: stop the TUI FIRST (synchronous, disables keyboard\n// protocol immediately) before doing any async cleanup. This ensures the terminal\n// escape sequences are written even if asyncCleanup hangs or the process is killed\n// during cleanup.\nconst handleTermSignal = () => {\n try {\n tui?.stop();\n } catch {\n // ignored — exit handler has failsafe reset\n }\n void asyncCleanup().finally(() => process.exit(0));\n};\nprocess.on('SIGINT', handleTermSignal);\nprocess.on('SIGTERM', handleTermSignal);\nprocess.on('SIGHUP', handleTermSignal);\n\nfunction hasEconnrefused(err: unknown, depth = 0): boolean {\n if (!err || depth > 5) return false;\n const e = err as any;\n if (e.code === 'ECONNREFUSED') return true;\n if (e.cause) return hasEconnrefused(e.cause, depth + 1);\n // AggregateError has .errors array\n if (Array.isArray(e.errors)) return e.errors.some((inner: unknown) => hasEconnrefused(inner, depth + 1));\n return false;\n}\n\nfunction pluginMain(args: string[]): void {\n if (args[0] !== 'scaffold') {\n process.stderr.write('Usage: mastracode plugin scaffold <dir> [--id acme.foo] [--name \"Foo Tools\"]\\n');\n process.exit(1);\n }\n\n const dir = args[1];\n if (!dir) {\n process.stderr.write('Usage: mastracode plugin scaffold <dir> [--id acme.foo] [--name \"Foo Tools\"]\\n');\n process.exit(1);\n }\n\n const id = readFlag(args, '--id');\n const name = readFlag(args, '--name');\n const targetDir = scaffoldPlugin(dir, { ...(id ? { id } : {}), ...(name ? { name } : {}) });\n process.stdout.write(`${formatScaffoldSuccess(targetDir)}\\n`);\n}\n\nfunction readFlag(args: string[], flag: string): string | undefined {\n const index = args.indexOf(flag);\n if (index === -1) return undefined;\n const value = args[index + 1];\n if (!value || value.startsWith('--')) {\n throw new Error(`Missing value for ${flag}`);\n }\n return value;\n}\n\nfunction handleFatalError(error: unknown): never {\n // Always write to real stderr, even if console.error was overridden\n const write = (msg: string) => process.stderr.write(msg + '\\n');\n\n if (hasEconnrefused(error)) {\n const settings = loadSettings();\n const connStr = settings.storage?.pg?.connectionString;\n const target = connStr ?? 'localhost:5432';\n write(\n `\\nFailed to connect to PostgreSQL at ${target}.` +\n `\\nMake sure the database is running and accessible.` +\n `\\n\\nTo switch back to LibSQL:` +\n `\\n Set MASTRA_STORAGE_BACKEND=libsql or change the backend in /settings\\n`,\n );\n process.exit(1);\n }\n\n const msg = `Fatal error: ${error instanceof Error ? error.message : String(error)}`;\n write(msg);\n // Write crash log to file so it persists even if terminal closes\n try {\n const crashLog = `[${new Date().toISOString()}] ${msg}\\n${error instanceof Error && error.stack ? error.stack + '\\n' : ''}`;\n fs.appendFileSync('/tmp/mastra-crash.log', crashLog);\n } catch {}\n if (error instanceof Error && error.stack) {\n write(error.stack);\n }\n process.exit(1);\n}\n\nasync function main() {\n if (process.argv[2] === 'plugin') {\n return pluginMain(process.argv.slice(3));\n }\n\n if (hasHeadlessFlag(process.argv) || process.argv.includes('--help') || process.argv.includes('-h')) {\n return runMCCli();\n }\n\n if (process.argv.includes('--acp')) {\n const { acpMain } = await import('@mastra/code-sdk/acp/index');\n return acpMain({ dangerousAutoApprove: process.argv.includes('--dangerous-auto-approve') });\n }\n\n // When stdin is piped (e.g. `cat foo | mastracode`), drain the pipe fully\n // before starting the TUI. The drain blocks until the sender process exits\n // and closes its stdout, so we never see partial output.\n let pipedInput: string | null = null;\n if (!process.stdin.isTTY) {\n process.stderr.write('Reading piped input...\\n');\n pipedInput = await drainPipedStdin();\n\n // Always reopen a real TTY — even if the pipe was empty, the original\n // stdin is consumed/closed and the TUI needs a live TTY for keyboard input.\n const reopenedStdin = reopenStdinFromTTY();\n if (!reopenedStdin) {\n process.stderr.write('No TTY available — falling back to headless mode.\\n');\n return runMCCli(pipedInput);\n }\n }\n\n return tuiMain(pipedInput);\n}\n\nmain().catch(error => {\n handleFatalError(error);\n});\n"],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { d as detectTerminalTheme, f as applyThemeMode, t as MastraTUI, v as restoreTerminalForeground } from "./tui-
|
|
2
|
+
import { d as detectTerminalTheme, f as applyThemeMode, t as MastraTUI, v as restoreTerminalForeground } from "./tui-BB2N6Mud.js";
|
|
3
3
|
import { createMastraCode } from "@mastra/code-sdk";
|
|
4
4
|
import fs from "fs";
|
|
5
5
|
import { createMastraCodeAnalytics } from "@mastra/code-sdk/analytics";
|
|
@@ -12,7 +12,7 @@ import { drainPipedStdin, reopenStdinFromTTY } from "@mastra/code-sdk/utils/stdi
|
|
|
12
12
|
import { releaseAllThreadLocks } from "@mastra/code-sdk/utils/thread-lock";
|
|
13
13
|
//#region src/version.ts
|
|
14
14
|
function getCurrentVersion() {
|
|
15
|
-
return "0.
|
|
15
|
+
return "0.34.0-alpha.13";
|
|
16
16
|
}
|
|
17
17
|
//#endregion
|
|
18
18
|
//#region src/main.ts
|
|
@@ -109,6 +109,7 @@ async function tuiMain(pipedInput) {
|
|
|
109
109
|
mcpManager,
|
|
110
110
|
pluginManager: result.pluginManager,
|
|
111
111
|
storageMaintenance: result.storageMaintenance,
|
|
112
|
+
knowledgeInspector: result.knowledgeInspector,
|
|
112
113
|
appName: "Mastra Code",
|
|
113
114
|
version: getCurrentVersion(),
|
|
114
115
|
inlineQuestions: true,
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","names":[],"sources":["../src/version.ts","../src/main.ts"],"sourcesContent":["import { readFileSync } from 'node:fs';\n\ndeclare const MASTRACODE_VERSION: string | undefined;\n\nexport function getCurrentVersion(): string {\n if (typeof MASTRACODE_VERSION !== 'undefined') {\n return MASTRACODE_VERSION;\n }\n\n const pkg = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8')) as { version: string };\n return pkg.version;\n}\n","#!/usr/bin/env node\n/**\n * Main entry point for Mastra Code TUI.\n */\nimport fs from 'node:fs';\n\nimport { createMastraCode } from '@mastra/code-sdk';\nimport { createMastraCodeAnalytics } from '@mastra/code-sdk/analytics';\nimport { isStreamDestroyedError } from '@mastra/code-sdk/error-classification';\nimport { hasHeadlessFlag, runMCCli } from '@mastra/code-sdk/headless/index';\nimport { createBrowserFromSettings, loadSettings } from '@mastra/code-sdk/onboarding/settings';\nimport { formatScaffoldSuccess, scaffoldPlugin } from '@mastra/code-sdk/plugins/scaffold';\nimport { setupDebugLogging } from '@mastra/code-sdk/utils/debug-log';\nimport { drainPipedStdin, reopenStdinFromTTY } from '@mastra/code-sdk/utils/stdin-pipe';\nimport { releaseAllThreadLocks } from '@mastra/code-sdk/utils/thread-lock';\nimport { detectTerminalTheme } from './tui/detect-theme.js';\nimport { MastraTUI } from './tui/index.js';\nimport { applyThemeMode, restoreTerminalForeground } from './tui/theme.js';\nimport { getCurrentVersion } from './version.js';\n\nlet controller: Awaited<ReturnType<typeof createMastraCode>>['controller'];\nlet mcpManager: Awaited<ReturnType<typeof createMastraCode>>['mcpManager'];\nlet hookManager: Awaited<ReturnType<typeof createMastraCode>>['hookManager'];\nlet authStorage: Awaited<ReturnType<typeof createMastraCode>>['authStorage'];\nlet signalsPubSub: Awaited<ReturnType<typeof createMastraCode>>['signalsPubSub'];\nlet storageMaintenance: Awaited<ReturnType<typeof createMastraCode>>['storageMaintenance'];\nlet stopPluginSignalProviders: Awaited<ReturnType<typeof createMastraCode>>['stopPluginSignalProviders'] | undefined;\nlet analytics: ReturnType<typeof createMastraCodeAnalytics> | undefined;\nlet tui: MastraTUI | undefined;\nlet storageClosed = false;\n\nfunction isTruthyEnv(name: string): boolean {\n return ['1', 'true', 'yes', 'on'].includes(process.env[name]?.trim().toLowerCase() ?? '');\n}\n\nfunction resolveInitialStateFromEnv() {\n const currentModelId = process.env.MASTRACODE_MODEL_ID?.trim();\n const initialState: Record<string, unknown> = {};\n if (currentModelId) initialState.currentModelId = currentModelId;\n if (isTruthyEnv('MASTRACODE_YOLO')) initialState.yolo = true;\n return Object.keys(initialState).length > 0 ? initialState : undefined;\n}\n\n// Global safety nets — catch any uncaught errors from storage init, etc.\nprocess.on('uncaughtException', error => {\n // ERR_STREAM_DESTROYED is non-fatal — happens routinely when streams close\n // during shutdown, cancelled LLM requests, or LSP/subprocess exits (#13548, #13549)\n if (isStreamDestroyedError(error)) return;\n handleFatalError(error);\n});\nprocess.on('unhandledRejection', reason => {\n if (isStreamDestroyedError(reason)) return;\n handleFatalError(reason instanceof Error ? reason : new Error(String(reason)));\n});\n\nasync function tuiMain(pipedInput?: string | null) {\n const settings = loadSettings();\n let browserPromise: ReturnType<typeof createBrowserFromSettings> | undefined;\n const loadBrowser = () => {\n browserPromise ??= createBrowserFromSettings(settings.browser);\n return browserPromise;\n };\n\n const initialState = resolveInitialStateFromEnv();\n const result = await createMastraCode({\n unixSocketPubSub: !isTruthyEnv('MASTRACODE_DISABLE_UNIX_SOCKET_PUBSUB'),\n disableMcp: isTruthyEnv('MASTRACODE_DISABLE_MCP'),\n disableHooks: isTruthyEnv('MASTRACODE_DISABLE_HOOKS'),\n ...(isTruthyEnv('MASTRACODE_DISABLE_MEMORY') ? { memory: false as never } : {}),\n ...(initialState ? { initialState: initialState as never } : {}),\n });\n controller = result.controller;\n mcpManager = result.mcpManager;\n hookManager = result.hookManager;\n authStorage = result.authStorage;\n signalsPubSub = result.signalsPubSub;\n storageMaintenance = result.storageMaintenance;\n stopPluginSignalProviders = result.stopPluginSignalProviders;\n\n if (result.storageWarning) {\n console.info(`⚠ ${result.storageWarning}`);\n }\n if (result.observabilityWarning) {\n console.info(`⚠ ${result.observabilityWarning}`);\n }\n\n // MCP connection is deferred to TUI.init() (after ui.start()) so that\n // status messages use showInfo() instead of console.info(), which would\n // corrupt the terminal. Headless mode still inits from headless/cli.ts.\n\n setupDebugLogging();\n\n // Detect and apply terminal theme\n // MASTRA_THEME env var is the highest-priority override\n const envTheme = process.env.MASTRA_THEME?.toLowerCase();\n let themeMode: 'dark' | 'light';\n let detectedBgHex: string | undefined;\n if (envTheme === 'dark' || envTheme === 'light') {\n themeMode = envTheme;\n } else {\n const settings = loadSettings();\n const themePref = settings.preferences.theme;\n if (themePref === 'dark' || themePref === 'light') {\n themeMode = themePref;\n } else {\n const detection = await detectTerminalTheme();\n themeMode = detection.mode;\n detectedBgHex = detection.detectedBgHex;\n }\n }\n applyThemeMode(themeMode, detectedBgHex);\n\n // createMastraCode() brought up shared resources and minted the single\n // session that all work runs through. The AgentController owns no session of its own.\n const session = result.session;\n\n analytics = createMastraCodeAnalytics({ version: getCurrentVersion() });\n analytics.capture('mastracode_session_started', {\n mode: session.mode.get(),\n resourceId: session.identity.getResourceId(),\n hasAuthStorage: Boolean(authStorage),\n hasMcp: Boolean(mcpManager),\n theme: themeMode,\n });\n\n tui = new MastraTUI({\n controller: controller,\n session,\n hookManager,\n analytics,\n authStorage,\n mcpManager,\n pluginManager: result.pluginManager,\n storageMaintenance: result.storageMaintenance,\n appName: 'Mastra Code',\n version: getCurrentVersion(),\n inlineQuestions: true,\n githubSignals: result.githubSignals,\n ...(pipedInput ? { initialMessage: `The following was piped via stdin:\\n\\n${pipedInput}` } : {}),\n });\n tui.run().catch(error => {\n handleFatalError(error);\n });\n\n if (settings.browser.enabled) {\n void loadBrowser()\n .then(browser => {\n if (!browser) return;\n controller.setBrowser(browser);\n void session.state.set({ activeBrowserSettings: settings.browser } as any).catch(() => {});\n })\n .catch(() => {});\n }\n}\n\nconst asyncCleanup = async () => {\n releaseAllThreadLocks();\n // Stop plugin-contributed signal providers (and the plugin reload listener)\n // before quiescing workers: a provider that keeps polling past this point\n // could dispatch into a controller that is shutting down.\n try {\n stopPluginSignalProviders?.();\n } catch {\n // Best-effort — the process is exiting.\n }\n const closeSignalsPubSub = (signalsPubSub as { close?: () => Promise<void> | void } | undefined)?.close;\n await Promise.allSettled([mcpManager?.disconnect(), controller?.stopIntervals(), closeSignalsPubSub?.()]);\n // Mastra owns the workspaces and must destroy them to stop retained language\n // servers before storage is closed.\n await Promise.allSettled([controller?.getMastra()?.shutdown(), analytics?.shutdown()]);\n // Checkpoint WAL and close the local storage connection after all producers\n // and timers are quiesced. Idempotent — repeated signals (SIGINT then SIGHUP)\n // close only once. LibSQLStore.close()/LibSQLVector.close() truncate the WAL\n // and switch back to DELETE journal mode for a clean shutdown.\n if (!storageClosed) {\n storageClosed = true;\n await storageMaintenance?.closeStorage?.().catch(() => {\n // Swallow — best-effort cleanup during shutdown. The process is exiting.\n });\n }\n};\n\nprocess.on('beforeExit', () => {\n void asyncCleanup();\n});\nprocess.on('exit', () => {\n // Ensure terminal protocols (kitty keyboard, modifyOtherKeys, bracketed paste,\n // raw mode) are disabled on ANY exit path. Without this, killing the process\n // via SIGINT/SIGTERM leaves the terminal in a corrupted state where keypresses\n // produce escape sequences like \"5;99~\" instead of normal characters.\n try {\n tui?.stop();\n } catch {\n // Failsafe: even if MastraTUI.stop() throws, write raw terminal reset\n // sequences to disable Kitty keyboard protocol, bracketed paste, and\n // modifyOtherKeys. These are the exact sequences pi-tui's terminal.stop()\n // would write.\n }\n // Belt-and-suspenders: always write terminal reset sequences directly,\n // regardless of whether tui.stop() succeeded. Writing them twice is harmless\n // but missing them leaves the terminal in a corrupted state.\n try {\n process.stdout.write(\n '\\x1b[?2004l' + // disable bracketed paste\n '\\x1b[<u' + // pop kitty keyboard protocol\n '\\x1b[>4;0m' + // disable modifyOtherKeys\n '\\x1b[?25h', // show cursor\n );\n if (process.stdin.setRawMode) {\n process.stdin.setRawMode(false);\n }\n } catch {\n // stdout may already be closed during exit\n }\n restoreTerminalForeground();\n releaseAllThreadLocks();\n});\n\n// For all termination signals: stop the TUI FIRST (synchronous, disables keyboard\n// protocol immediately) before doing any async cleanup. This ensures the terminal\n// escape sequences are written even if asyncCleanup hangs or the process is killed\n// during cleanup.\nconst handleTermSignal = () => {\n try {\n tui?.stop();\n } catch {\n // ignored — exit handler has failsafe reset\n }\n void asyncCleanup().finally(() => process.exit(0));\n};\nprocess.on('SIGINT', handleTermSignal);\nprocess.on('SIGTERM', handleTermSignal);\nprocess.on('SIGHUP', handleTermSignal);\n\nfunction hasEconnrefused(err: unknown, depth = 0): boolean {\n if (!err || depth > 5) return false;\n const e = err as any;\n if (e.code === 'ECONNREFUSED') return true;\n if (e.cause) return hasEconnrefused(e.cause, depth + 1);\n // AggregateError has .errors array\n if (Array.isArray(e.errors)) return e.errors.some((inner: unknown) => hasEconnrefused(inner, depth + 1));\n return false;\n}\n\nfunction pluginMain(args: string[]): void {\n if (args[0] !== 'scaffold') {\n process.stderr.write('Usage: mastracode plugin scaffold <dir> [--id acme.foo] [--name \"Foo Tools\"]\\n');\n process.exit(1);\n }\n\n const dir = args[1];\n if (!dir) {\n process.stderr.write('Usage: mastracode plugin scaffold <dir> [--id acme.foo] [--name \"Foo Tools\"]\\n');\n process.exit(1);\n }\n\n const id = readFlag(args, '--id');\n const name = readFlag(args, '--name');\n const targetDir = scaffoldPlugin(dir, { ...(id ? { id } : {}), ...(name ? { name } : {}) });\n process.stdout.write(`${formatScaffoldSuccess(targetDir)}\\n`);\n}\n\nfunction readFlag(args: string[], flag: string): string | undefined {\n const index = args.indexOf(flag);\n if (index === -1) return undefined;\n const value = args[index + 1];\n if (!value || value.startsWith('--')) {\n throw new Error(`Missing value for ${flag}`);\n }\n return value;\n}\n\nfunction handleFatalError(error: unknown): never {\n // Always write to real stderr, even if console.error was overridden\n const write = (msg: string) => process.stderr.write(msg + '\\n');\n\n if (hasEconnrefused(error)) {\n const settings = loadSettings();\n const connStr = settings.storage?.pg?.connectionString;\n const target = connStr ?? 'localhost:5432';\n write(\n `\\nFailed to connect to PostgreSQL at ${target}.` +\n `\\nMake sure the database is running and accessible.` +\n `\\n\\nTo switch back to LibSQL:` +\n `\\n Set MASTRA_STORAGE_BACKEND=libsql or change the backend in /settings\\n`,\n );\n process.exit(1);\n }\n\n const msg = `Fatal error: ${error instanceof Error ? error.message : String(error)}`;\n write(msg);\n // Write crash log to file so it persists even if terminal closes\n try {\n const crashLog = `[${new Date().toISOString()}] ${msg}\\n${error instanceof Error && error.stack ? error.stack + '\\n' : ''}`;\n fs.appendFileSync('/tmp/mastra-crash.log', crashLog);\n } catch {}\n if (error instanceof Error && error.stack) {\n write(error.stack);\n }\n process.exit(1);\n}\n\nasync function main() {\n if (process.argv[2] === 'plugin') {\n return pluginMain(process.argv.slice(3));\n }\n\n if (hasHeadlessFlag(process.argv) || process.argv.includes('--help') || process.argv.includes('-h')) {\n return runMCCli();\n }\n\n if (process.argv.includes('--acp')) {\n const { acpMain } = await import('@mastra/code-sdk/acp/index');\n return acpMain({ dangerousAutoApprove: process.argv.includes('--dangerous-auto-approve') });\n }\n\n // When stdin is piped (e.g. `cat foo | mastracode`), drain the pipe fully\n // before starting the TUI. The drain blocks until the sender process exits\n // and closes its stdout, so we never see partial output.\n let pipedInput: string | null = null;\n if (!process.stdin.isTTY) {\n process.stderr.write('Reading piped input...\\n');\n pipedInput = await drainPipedStdin();\n\n // Always reopen a real TTY — even if the pipe was empty, the original\n // stdin is consumed/closed and the TUI needs a live TTY for keyboard input.\n const reopenedStdin = reopenStdinFromTTY();\n if (!reopenedStdin) {\n process.stderr.write('No TTY available — falling back to headless mode.\\n');\n return runMCCli(pipedInput);\n }\n }\n\n return tuiMain(pipedInput);\n}\n\nmain().catch(error => {\n handleFatalError(error);\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","names":[],"sources":["../src/version.ts","../src/main.ts"],"sourcesContent":["import { readFileSync } from 'node:fs';\n\ndeclare const MASTRACODE_VERSION: string | undefined;\n\nexport function getCurrentVersion(): string {\n if (typeof MASTRACODE_VERSION !== 'undefined') {\n return MASTRACODE_VERSION;\n }\n\n const pkg = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8')) as { version: string };\n return pkg.version;\n}\n","#!/usr/bin/env node\n/**\n * Main entry point for Mastra Code TUI.\n */\nimport fs from 'node:fs';\n\nimport { createMastraCode } from '@mastra/code-sdk';\nimport { createMastraCodeAnalytics } from '@mastra/code-sdk/analytics';\nimport { isStreamDestroyedError } from '@mastra/code-sdk/error-classification';\nimport { hasHeadlessFlag, runMCCli } from '@mastra/code-sdk/headless/index';\nimport { createBrowserFromSettings, loadSettings } from '@mastra/code-sdk/onboarding/settings';\nimport { formatScaffoldSuccess, scaffoldPlugin } from '@mastra/code-sdk/plugins/scaffold';\nimport { setupDebugLogging } from '@mastra/code-sdk/utils/debug-log';\nimport { drainPipedStdin, reopenStdinFromTTY } from '@mastra/code-sdk/utils/stdin-pipe';\nimport { releaseAllThreadLocks } from '@mastra/code-sdk/utils/thread-lock';\nimport { detectTerminalTheme } from './tui/detect-theme.js';\nimport { MastraTUI } from './tui/index.js';\nimport { applyThemeMode, restoreTerminalForeground } from './tui/theme.js';\nimport { getCurrentVersion } from './version.js';\n\nlet controller: Awaited<ReturnType<typeof createMastraCode>>['controller'];\nlet mcpManager: Awaited<ReturnType<typeof createMastraCode>>['mcpManager'];\nlet hookManager: Awaited<ReturnType<typeof createMastraCode>>['hookManager'];\nlet authStorage: Awaited<ReturnType<typeof createMastraCode>>['authStorage'];\nlet signalsPubSub: Awaited<ReturnType<typeof createMastraCode>>['signalsPubSub'];\nlet storageMaintenance: Awaited<ReturnType<typeof createMastraCode>>['storageMaintenance'];\nlet stopPluginSignalProviders: Awaited<ReturnType<typeof createMastraCode>>['stopPluginSignalProviders'] | undefined;\nlet analytics: ReturnType<typeof createMastraCodeAnalytics> | undefined;\nlet tui: MastraTUI | undefined;\nlet storageClosed = false;\n\nfunction isTruthyEnv(name: string): boolean {\n return ['1', 'true', 'yes', 'on'].includes(process.env[name]?.trim().toLowerCase() ?? '');\n}\n\nfunction resolveInitialStateFromEnv() {\n const currentModelId = process.env.MASTRACODE_MODEL_ID?.trim();\n const initialState: Record<string, unknown> = {};\n if (currentModelId) initialState.currentModelId = currentModelId;\n if (isTruthyEnv('MASTRACODE_YOLO')) initialState.yolo = true;\n return Object.keys(initialState).length > 0 ? initialState : undefined;\n}\n\n// Global safety nets — catch any uncaught errors from storage init, etc.\nprocess.on('uncaughtException', error => {\n // ERR_STREAM_DESTROYED is non-fatal — happens routinely when streams close\n // during shutdown, cancelled LLM requests, or LSP/subprocess exits (#13548, #13549)\n if (isStreamDestroyedError(error)) return;\n handleFatalError(error);\n});\nprocess.on('unhandledRejection', reason => {\n if (isStreamDestroyedError(reason)) return;\n handleFatalError(reason instanceof Error ? reason : new Error(String(reason)));\n});\n\nasync function tuiMain(pipedInput?: string | null) {\n const settings = loadSettings();\n let browserPromise: ReturnType<typeof createBrowserFromSettings> | undefined;\n const loadBrowser = () => {\n browserPromise ??= createBrowserFromSettings(settings.browser);\n return browserPromise;\n };\n\n const initialState = resolveInitialStateFromEnv();\n const result = await createMastraCode({\n unixSocketPubSub: !isTruthyEnv('MASTRACODE_DISABLE_UNIX_SOCKET_PUBSUB'),\n disableMcp: isTruthyEnv('MASTRACODE_DISABLE_MCP'),\n disableHooks: isTruthyEnv('MASTRACODE_DISABLE_HOOKS'),\n ...(isTruthyEnv('MASTRACODE_DISABLE_MEMORY') ? { memory: false as never } : {}),\n ...(initialState ? { initialState: initialState as never } : {}),\n });\n controller = result.controller;\n mcpManager = result.mcpManager;\n hookManager = result.hookManager;\n authStorage = result.authStorage;\n signalsPubSub = result.signalsPubSub;\n storageMaintenance = result.storageMaintenance;\n stopPluginSignalProviders = result.stopPluginSignalProviders;\n\n if (result.storageWarning) {\n console.info(`⚠ ${result.storageWarning}`);\n }\n if (result.observabilityWarning) {\n console.info(`⚠ ${result.observabilityWarning}`);\n }\n\n // MCP connection is deferred to TUI.init() (after ui.start()) so that\n // status messages use showInfo() instead of console.info(), which would\n // corrupt the terminal. Headless mode still inits from headless/cli.ts.\n\n setupDebugLogging();\n\n // Detect and apply terminal theme\n // MASTRA_THEME env var is the highest-priority override\n const envTheme = process.env.MASTRA_THEME?.toLowerCase();\n let themeMode: 'dark' | 'light';\n let detectedBgHex: string | undefined;\n if (envTheme === 'dark' || envTheme === 'light') {\n themeMode = envTheme;\n } else {\n const settings = loadSettings();\n const themePref = settings.preferences.theme;\n if (themePref === 'dark' || themePref === 'light') {\n themeMode = themePref;\n } else {\n const detection = await detectTerminalTheme();\n themeMode = detection.mode;\n detectedBgHex = detection.detectedBgHex;\n }\n }\n applyThemeMode(themeMode, detectedBgHex);\n\n // createMastraCode() brought up shared resources and minted the single\n // session that all work runs through. The AgentController owns no session of its own.\n const session = result.session;\n\n analytics = createMastraCodeAnalytics({ version: getCurrentVersion() });\n analytics.capture('mastracode_session_started', {\n mode: session.mode.get(),\n resourceId: session.identity.getResourceId(),\n hasAuthStorage: Boolean(authStorage),\n hasMcp: Boolean(mcpManager),\n theme: themeMode,\n });\n\n tui = new MastraTUI({\n controller: controller,\n session,\n hookManager,\n analytics,\n authStorage,\n mcpManager,\n pluginManager: result.pluginManager,\n storageMaintenance: result.storageMaintenance,\n knowledgeInspector: result.knowledgeInspector,\n appName: 'Mastra Code',\n version: getCurrentVersion(),\n inlineQuestions: true,\n githubSignals: result.githubSignals,\n ...(pipedInput ? { initialMessage: `The following was piped via stdin:\\n\\n${pipedInput}` } : {}),\n });\n tui.run().catch(error => {\n handleFatalError(error);\n });\n\n if (settings.browser.enabled) {\n void loadBrowser()\n .then(browser => {\n if (!browser) return;\n controller.setBrowser(browser);\n void session.state.set({ activeBrowserSettings: settings.browser } as any).catch(() => {});\n })\n .catch(() => {});\n }\n}\n\nconst asyncCleanup = async () => {\n releaseAllThreadLocks();\n // Stop plugin-contributed signal providers (and the plugin reload listener)\n // before quiescing workers: a provider that keeps polling past this point\n // could dispatch into a controller that is shutting down.\n try {\n stopPluginSignalProviders?.();\n } catch {\n // Best-effort — the process is exiting.\n }\n const closeSignalsPubSub = (signalsPubSub as { close?: () => Promise<void> | void } | undefined)?.close;\n await Promise.allSettled([mcpManager?.disconnect(), controller?.stopIntervals(), closeSignalsPubSub?.()]);\n // Mastra owns the workspaces and must destroy them to stop retained language\n // servers before storage is closed.\n await Promise.allSettled([controller?.getMastra()?.shutdown(), analytics?.shutdown()]);\n // Checkpoint WAL and close the local storage connection after all producers\n // and timers are quiesced. Idempotent — repeated signals (SIGINT then SIGHUP)\n // close only once. LibSQLStore.close()/LibSQLVector.close() truncate the WAL\n // and switch back to DELETE journal mode for a clean shutdown.\n if (!storageClosed) {\n storageClosed = true;\n await storageMaintenance?.closeStorage?.().catch(() => {\n // Swallow — best-effort cleanup during shutdown. The process is exiting.\n });\n }\n};\n\nprocess.on('beforeExit', () => {\n void asyncCleanup();\n});\nprocess.on('exit', () => {\n // Ensure terminal protocols (kitty keyboard, modifyOtherKeys, bracketed paste,\n // raw mode) are disabled on ANY exit path. Without this, killing the process\n // via SIGINT/SIGTERM leaves the terminal in a corrupted state where keypresses\n // produce escape sequences like \"5;99~\" instead of normal characters.\n try {\n tui?.stop();\n } catch {\n // Failsafe: even if MastraTUI.stop() throws, write raw terminal reset\n // sequences to disable Kitty keyboard protocol, bracketed paste, and\n // modifyOtherKeys. These are the exact sequences pi-tui's terminal.stop()\n // would write.\n }\n // Belt-and-suspenders: always write terminal reset sequences directly,\n // regardless of whether tui.stop() succeeded. Writing them twice is harmless\n // but missing them leaves the terminal in a corrupted state.\n try {\n process.stdout.write(\n '\\x1b[?2004l' + // disable bracketed paste\n '\\x1b[<u' + // pop kitty keyboard protocol\n '\\x1b[>4;0m' + // disable modifyOtherKeys\n '\\x1b[?25h', // show cursor\n );\n if (process.stdin.setRawMode) {\n process.stdin.setRawMode(false);\n }\n } catch {\n // stdout may already be closed during exit\n }\n restoreTerminalForeground();\n releaseAllThreadLocks();\n});\n\n// For all termination signals: stop the TUI FIRST (synchronous, disables keyboard\n// protocol immediately) before doing any async cleanup. This ensures the terminal\n// escape sequences are written even if asyncCleanup hangs or the process is killed\n// during cleanup.\nconst handleTermSignal = () => {\n try {\n tui?.stop();\n } catch {\n // ignored — exit handler has failsafe reset\n }\n void asyncCleanup().finally(() => process.exit(0));\n};\nprocess.on('SIGINT', handleTermSignal);\nprocess.on('SIGTERM', handleTermSignal);\nprocess.on('SIGHUP', handleTermSignal);\n\nfunction hasEconnrefused(err: unknown, depth = 0): boolean {\n if (!err || depth > 5) return false;\n const e = err as any;\n if (e.code === 'ECONNREFUSED') return true;\n if (e.cause) return hasEconnrefused(e.cause, depth + 1);\n // AggregateError has .errors array\n if (Array.isArray(e.errors)) return e.errors.some((inner: unknown) => hasEconnrefused(inner, depth + 1));\n return false;\n}\n\nfunction pluginMain(args: string[]): void {\n if (args[0] !== 'scaffold') {\n process.stderr.write('Usage: mastracode plugin scaffold <dir> [--id acme.foo] [--name \"Foo Tools\"]\\n');\n process.exit(1);\n }\n\n const dir = args[1];\n if (!dir) {\n process.stderr.write('Usage: mastracode plugin scaffold <dir> [--id acme.foo] [--name \"Foo Tools\"]\\n');\n process.exit(1);\n }\n\n const id = readFlag(args, '--id');\n const name = readFlag(args, '--name');\n const targetDir = scaffoldPlugin(dir, { ...(id ? { id } : {}), ...(name ? { name } : {}) });\n process.stdout.write(`${formatScaffoldSuccess(targetDir)}\\n`);\n}\n\nfunction readFlag(args: string[], flag: string): string | undefined {\n const index = args.indexOf(flag);\n if (index === -1) return undefined;\n const value = args[index + 1];\n if (!value || value.startsWith('--')) {\n throw new Error(`Missing value for ${flag}`);\n }\n return value;\n}\n\nfunction handleFatalError(error: unknown): never {\n // Always write to real stderr, even if console.error was overridden\n const write = (msg: string) => process.stderr.write(msg + '\\n');\n\n if (hasEconnrefused(error)) {\n const settings = loadSettings();\n const connStr = settings.storage?.pg?.connectionString;\n const target = connStr ?? 'localhost:5432';\n write(\n `\\nFailed to connect to PostgreSQL at ${target}.` +\n `\\nMake sure the database is running and accessible.` +\n `\\n\\nTo switch back to LibSQL:` +\n `\\n Set MASTRA_STORAGE_BACKEND=libsql or change the backend in /settings\\n`,\n );\n process.exit(1);\n }\n\n const msg = `Fatal error: ${error instanceof Error ? error.message : String(error)}`;\n write(msg);\n // Write crash log to file so it persists even if terminal closes\n try {\n const crashLog = `[${new Date().toISOString()}] ${msg}\\n${error instanceof Error && error.stack ? error.stack + '\\n' : ''}`;\n fs.appendFileSync('/tmp/mastra-crash.log', crashLog);\n } catch {}\n if (error instanceof Error && error.stack) {\n write(error.stack);\n }\n process.exit(1);\n}\n\nasync function main() {\n if (process.argv[2] === 'plugin') {\n return pluginMain(process.argv.slice(3));\n }\n\n if (hasHeadlessFlag(process.argv) || process.argv.includes('--help') || process.argv.includes('-h')) {\n return runMCCli();\n }\n\n if (process.argv.includes('--acp')) {\n const { acpMain } = await import('@mastra/code-sdk/acp/index');\n return acpMain({ dangerousAutoApprove: process.argv.includes('--dangerous-auto-approve') });\n }\n\n // When stdin is piped (e.g. `cat foo | mastracode`), drain the pipe fully\n // before starting the TUI. The drain blocks until the sender process exits\n // and closes its stdout, so we never see partial output.\n let pipedInput: string | null = null;\n if (!process.stdin.isTTY) {\n process.stderr.write('Reading piped input...\\n');\n pipedInput = await drainPipedStdin();\n\n // Always reopen a real TTY — even if the pipe was empty, the original\n // stdin is consumed/closed and the TUI needs a live TTY for keyboard input.\n const reopenedStdin = reopenStdinFromTTY();\n if (!reopenedStdin) {\n process.stderr.write('No TTY available — falling back to headless mode.\\n');\n return runMCCli(pipedInput);\n }\n }\n\n return tuiMain(pipedInput);\n}\n\nmain().catch(error => {\n handleFatalError(error);\n});\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-dispatch.d.ts","sourceRoot":"","sources":["../../src/tui/command-dispatch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command-dispatch.d.ts","sourceRoot":"","sources":["../../src/tui/command-dispatch.ts"],"names":[],"mappings":"AAoDA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAQ/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAa3C;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,MAAM,mBAAmB,GAClC,OAAO,CAAC,OAAO,CAAC,CA6NlB"}
|
|
@@ -23,6 +23,7 @@ export { handleModelsPackCommand } from './models-pack.js';
|
|
|
23
23
|
export { handleCustomProvidersCommand } from './custom-providers.js';
|
|
24
24
|
export { handleSubagentsCommand } from './subagents.js';
|
|
25
25
|
export { handleOMCommand } from './om.js';
|
|
26
|
+
export { handleKnowledgeCommand } from './knowledge-command.js';
|
|
26
27
|
export { handleSettingsCommand } from './settings.js';
|
|
27
28
|
export { handleBrowserCommand } from './browser.js';
|
|
28
29
|
export { handleLoginCommand } from './login.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tui/commands/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tui/commands/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-command.d.ts","sourceRoot":"","sources":["../../../src/tui/commands/knowledge-command.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGtD,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBpF"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Shared context passed to extracted slash command handlers.
|
|
3
3
|
* Keeps commands decoupled from the MastraTUI class.
|
|
4
4
|
*/
|
|
5
|
+
import type { KnowledgeInspector } from '@mastra/code-sdk';
|
|
5
6
|
import type { MastraCodeAnalytics } from '@mastra/code-sdk/analytics';
|
|
6
7
|
import type { AuthStorage } from '@mastra/code-sdk/auth/storage';
|
|
7
8
|
import type { HookManager } from '@mastra/code-sdk/hooks/index';
|
|
@@ -20,6 +21,7 @@ export interface SlashCommandContext {
|
|
|
20
21
|
pluginManager?: PluginManager;
|
|
21
22
|
analytics?: MastraCodeAnalytics;
|
|
22
23
|
authStorage?: AuthStorage;
|
|
24
|
+
knowledgeInspector?: KnowledgeInspector;
|
|
23
25
|
customSlashCommands: SlashCommandMetadata[];
|
|
24
26
|
showInfo: (message: string) => void;
|
|
25
27
|
showError: (message: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tui/commands/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC/F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,QAAQ,CAAC;IAChB,UAAU,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;IAC5C,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,oBAAoB,EAAE,MAAM,SAAS,GAAG,SAAS,CAAC;IAClD,cAAc,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACnD,sBAAsB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tui/commands/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC/F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,QAAQ,CAAC;IAChB,UAAU,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;IAC5C,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,oBAAoB,EAAE,MAAM,SAAS,GAAG,SAAS,CAAC;IAClD,cAAc,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACnD,sBAAsB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help-overlay.d.ts","sourceRoot":"","sources":["../../../src/tui/components/help-overlay.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"help-overlay.d.ts","sourceRoot":"","sources":["../../../src/tui/components/help-overlay.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAGxF,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;IAC5C,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA+FD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAyB9D"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { Component, Focusable, TUI } from '@earendil-works/pi-tui';
|
|
2
|
+
import type { KnowledgeInspector } from '@mastra/code-sdk';
|
|
3
|
+
export type KnowledgeBrowserSection = 'scopes' | 'nodes' | 'activity';
|
|
4
|
+
export interface KnowledgeBrowserOptions {
|
|
5
|
+
tui: TUI;
|
|
6
|
+
inspector: KnowledgeInspector;
|
|
7
|
+
onClose: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare class KnowledgeBrowserComponent implements Component, Focusable {
|
|
10
|
+
private readonly tui;
|
|
11
|
+
private readonly inspector;
|
|
12
|
+
private readonly onClose;
|
|
13
|
+
private scopeTree?;
|
|
14
|
+
private identityKey?;
|
|
15
|
+
private section;
|
|
16
|
+
private level;
|
|
17
|
+
private nodes;
|
|
18
|
+
private activity;
|
|
19
|
+
private nextCursor?;
|
|
20
|
+
private query;
|
|
21
|
+
private nodeSort;
|
|
22
|
+
private nodeCoverage?;
|
|
23
|
+
private selectedIndex;
|
|
24
|
+
private detail?;
|
|
25
|
+
private detailHistory;
|
|
26
|
+
private detailTargets;
|
|
27
|
+
private loading;
|
|
28
|
+
private error?;
|
|
29
|
+
private requestVersion;
|
|
30
|
+
private _focused;
|
|
31
|
+
constructor(options: KnowledgeBrowserOptions);
|
|
32
|
+
get focused(): boolean;
|
|
33
|
+
set focused(value: boolean);
|
|
34
|
+
refresh(): Promise<void>;
|
|
35
|
+
private renderNow;
|
|
36
|
+
private ensureIdentity;
|
|
37
|
+
private loadSection;
|
|
38
|
+
private openNode;
|
|
39
|
+
private mergeNodes;
|
|
40
|
+
private loadMoreRecords;
|
|
41
|
+
private listLength;
|
|
42
|
+
private move;
|
|
43
|
+
private selectCurrent;
|
|
44
|
+
private changeSection;
|
|
45
|
+
private cycleNodeSort;
|
|
46
|
+
handleInput(data: string): void;
|
|
47
|
+
invalidate(): void;
|
|
48
|
+
private breadcrumb;
|
|
49
|
+
private renderTabs;
|
|
50
|
+
private renderScopes;
|
|
51
|
+
private renderRecordList;
|
|
52
|
+
private renderActivity;
|
|
53
|
+
private selectableLine;
|
|
54
|
+
private renderNodeDetail;
|
|
55
|
+
render(width: number): string[];
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=knowledge-browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-browser.d.ts","sourceRoot":"","sources":["../../../src/tui/components/knowledge-browser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EACV,kBAAkB,EASnB,MAAM,kBAAkB,CAAC;AAK1B,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAOtE,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,GAAG,CAAC;IACT,SAAS,EAAE,kBAAkB,CAAC;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAoED,qBAAa,yBAA0B,YAAW,SAAS,EAAE,SAAS;IACpE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,SAAS,CAAC,CAA8B;IAChD,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,KAAK,CAA4C;IACzD,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,QAAQ,CAA0C;IAC1D,OAAO,CAAC,YAAY,CAAC,CAA4B;IACjD,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,EAAE,uBAAuB;IAO5C,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAEzB;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC9B,OAAO,CAAC,SAAS;YAIH,cAAc;YAMd,WAAW;YA4DX,QAAQ;IAsBtB,OAAO,CAAC,UAAU;YAcJ,eAAe;IAqD7B,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,IAAI;YAOE,aAAa;YAgCb,aAAa;YAcb,aAAa;IAS3B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAmC/B,UAAU,IAAI,IAAI;IAElB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,gBAAgB;IA8DxB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAkBhC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Container } from '@earendil-works/pi-tui';
|
|
2
|
+
import type { ChatSpacingKind } from './chat-spacing.js';
|
|
3
|
+
interface SubconsciousActivityUpdate {
|
|
4
|
+
action: string;
|
|
5
|
+
type: 'node' | 'record';
|
|
6
|
+
name?: string;
|
|
7
|
+
createdAt: string;
|
|
8
|
+
}
|
|
9
|
+
interface SubconsciousHotRecord {
|
|
10
|
+
type: 'node';
|
|
11
|
+
name: string;
|
|
12
|
+
updates: number;
|
|
13
|
+
}
|
|
14
|
+
export interface SubconsciousActivitySnapshot {
|
|
15
|
+
updates: SubconsciousActivityUpdate[];
|
|
16
|
+
hot: SubconsciousHotRecord[];
|
|
17
|
+
errors?: string[];
|
|
18
|
+
}
|
|
19
|
+
export declare function parseSubconsciousActivitySnapshot(value: unknown): SubconsciousActivitySnapshot | undefined;
|
|
20
|
+
export declare class SubconsciousActivityComponent extends Container {
|
|
21
|
+
constructor(snapshot: SubconsciousActivitySnapshot);
|
|
22
|
+
getChatSpacingKind(): ChatSpacingKind;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=subconscious-activity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subconscious-activity.d.ts","sourceRoot":"","sources":["../../../src/tui/components/subconscious-activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAQ,MAAM,wBAAwB,CAAC;AAGzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AASzD,UAAU,0BAA0B;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,qBAAqB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACtC,GAAG,EAAE,qBAAqB,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAkDD,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,4BAA4B,GAAG,SAAS,CAmB1G;AAED,qBAAa,6BAA8B,SAAQ,SAAS;gBAC9C,QAAQ,EAAE,4BAA4B;IAiClD,kBAAkB,IAAI,eAAe;CAGtC"}
|
|
@@ -80,9 +80,11 @@ export interface StateSignalView {
|
|
|
80
80
|
mode: 'snapshot' | 'delta';
|
|
81
81
|
cacheKey?: string;
|
|
82
82
|
version?: number;
|
|
83
|
+
value?: unknown;
|
|
84
|
+
delta?: unknown;
|
|
83
85
|
message: string;
|
|
84
86
|
}
|
|
85
|
-
/** Fields the state-signal UI needs, sourced from a `state` signal's
|
|
87
|
+
/** Fields the state-signal UI needs, sourced from a `state` signal's metadata. */
|
|
86
88
|
export declare function getStateSignalView(message: MastraDBMessage): StateSignalView;
|
|
87
89
|
export interface ReactiveSignalView {
|
|
88
90
|
tagName?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-message-parts.d.ts","sourceRoot":"","sources":["../../src/tui/db-message-parts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAc/D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,cAAc,CAAC;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG,kBAAkB,GAAG,cAAc,GAAG,YAAY,CAAC;AAQtG,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAK/D;AASD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG,mBAAmB,EAAE,CAgFvF;AAUD,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAEjE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,kBAAkB,CAE1E;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,sBAAsB,GAAG,cAAc,GAAG,UAAU,GAAG,MAAM,CAAC;AAE9G;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,UAAU,CASlE;AAUD,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAEtE;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAmB1E;AAcD,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,YAAY,CActE;AAED,+EAA+E;AAC/E,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAI7E;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,
|
|
1
|
+
{"version":3,"file":"db-message-parts.d.ts","sourceRoot":"","sources":["../../src/tui/db-message-parts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mastra-tui.d.ts","sourceRoot":"","sources":["../../src/tui/mastra-tui.ts"],"names":[],"mappings":"AAgFA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQ7D,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAgCnD,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB3E;AAMD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,QAAQ,CAAC,eAAe,CAAC,GACvC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAA;CAAE,CAQzD;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,gBAAgB,CAA+C;IACvE,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,kBAAkB,CAAC,CAAa;IACxC,OAAO,CAAC,2BAA2B,CAAC,CAAa;IACjD,OAAO,CAAC,2BAA2B,CAAC,CAAa;IACjD,OAAO,CAAC,eAAe,CAAuB;IAC9C;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,uBAAuB,CAAuC;IAEtE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAO;gBAEnC,OAAO,EAAE,gBAAgB;IAkGrC;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA8F1B;;;OAGG;IACH,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,uBAAuB;IAmB/B,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,2BAA2B;IAUnC,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,oBAAoB;IAwC5B,OAAO,CAAC,aAAa;IAyCrB,OAAO,CAAC,oBAAoB;IAoB5B;;OAEG;IACH,IAAI,IAAI,IAAI;YAsCE,yBAAyB;YAezB,IAAI;YA+GJ,sBAAsB;IAKpC,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,wBAAwB;IAMhC,OAAO,CAAC,6BAA6B;IAYrC,OAAO,CAAC,2BAA2B;YAQrB,wCAAwC;IAiBtD,OAAO,CAAC,uBAAuB;IAe/B,iEAAiE;IACjE,OAAO,CAAC,KAAK,CAAkC;IAE/C,OAAO,CAAC,eAAe;YAOT,WAAW;IAmDzB,OAAO,CAAC,+BAA+B;IAuCvC,OAAO,CAAC,iBAAiB;IAoCzB,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,cAAc;YAUR,mBAAmB;YAmCnB,4BAA4B;IA8B1C,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,0BAA0B;YAoBpB,eAAe;IAU7B,OAAO,CAAC,eAAe;YAKT,WAAW;YAeX,iBAAiB;IAqB/B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAuB/B,OAAO,CAAC,YAAY;IAgEpB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,mBAAmB;
|
|
1
|
+
{"version":3,"file":"mastra-tui.d.ts","sourceRoot":"","sources":["../../src/tui/mastra-tui.ts"],"names":[],"mappings":"AAgFA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQ7D,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAgCnD,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB3E;AAMD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,QAAQ,CAAC,eAAe,CAAC,GACvC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAA;CAAE,CAQzD;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,gBAAgB,CAA+C;IACvE,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,kBAAkB,CAAC,CAAa;IACxC,OAAO,CAAC,2BAA2B,CAAC,CAAa;IACjD,OAAO,CAAC,2BAA2B,CAAC,CAAa;IACjD,OAAO,CAAC,eAAe,CAAuB;IAC9C;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,uBAAuB,CAAuC;IAEtE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAO;gBAEnC,OAAO,EAAE,gBAAgB;IAkGrC;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA8F1B;;;OAGG;IACH,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,uBAAuB;IAmB/B,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,2BAA2B;IAUnC,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,oBAAoB;IAwC5B,OAAO,CAAC,aAAa;IAyCrB,OAAO,CAAC,oBAAoB;IAoB5B;;OAEG;IACH,IAAI,IAAI,IAAI;YAsCE,yBAAyB;YAezB,IAAI;YA+GJ,sBAAsB;IAKpC,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,wBAAwB;IAMhC,OAAO,CAAC,6BAA6B;IAYrC,OAAO,CAAC,2BAA2B;YAQrB,wCAAwC;IAiBtD,OAAO,CAAC,uBAAuB;IAe/B,iEAAiE;IACjE,OAAO,CAAC,KAAK,CAAkC;IAE/C,OAAO,CAAC,eAAe;YAOT,WAAW;IAmDzB,OAAO,CAAC,+BAA+B;IAuCvC,OAAO,CAAC,iBAAiB;IAoCzB,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,cAAc;YAUR,mBAAmB;YAmCnB,4BAA4B;IA8B1C,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,0BAA0B;YAoBpB,eAAe;IAU7B,OAAO,CAAC,eAAe;YAKT,WAAW;YAeX,iBAAiB;IAqB/B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAuB/B,OAAO,CAAC,YAAY;IAgEpB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,iBAAiB;YA2BX,kBAAkB;IAQ1B,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwE/C,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;YAyGvB,qBAAqB;IAwFnC,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,wBAAwB;IAwBhC,OAAO,CAAC,2BAA2B;IAM7B,qCAAqC,IAAI,OAAO,CAAC,IAAI,CAAC;IA0C5D;;;;;OAKG;YACW,cAAc;IA0C5B;;OAEG;YACW,gBAAgB;CA4D/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-messages.d.ts","sourceRoot":"","sources":["../../src/tui/render-messages.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,KAAK,EAAiB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"render-messages.d.ts","sourceRoot":"","sources":["../../src/tui/render-messages.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,KAAK,EAAiB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AA2C5E,OAAO,EAAE,gBAAgB,EAAsB,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAwD5B;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,EAAE,WAAW,SAAK,GAAG,IAAI,CASlH;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,QAAQ,EACf,cAAc,EAAE,gBAAgB,EAAE,EAClC,WAAW,SAAK,GACf,IAAI,CAUN;AAMD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,QAAQ,EACf,aAAa,EAAE,gBAAgB,EAAE,EACjC,SAAS,EAAE,gBAAgB,EAAE,EAC7B,WAAW,SAAK,GACf,OAAO,CA0BT;AAwED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAapH;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,EAClD,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GACrC,IAAI,CAiBN;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACtD,IAAI,CAUN;AA+BD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAMjF;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAO1E;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAM9D;AAmED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAuItF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA6I5G;AAsID;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAoU3E"}
|
package/dist/tui/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/tui/setup.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/tui/setup.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAS3C,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE;IACT,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C,GACA,IAAI,CA+KN;AA8BD,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CA0D9F;AAeD,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY,GAAG,UAAU,CAAC,EACnE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,cAAc,GAAG,0BAA0B,CAAC,GACjE,IAAI,CAiBN;AAsBD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CA2JvD;AAMD,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B5E;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBtE;AAED,2DAA2D;AAC3D,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAG9E;AAMD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE;IACT,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB,GACA,MAAM,IAAI,CAyCZ;AAMD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAwB5G;AAMD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAIzD;AAMD,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAkG7E;AAMD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAWxE"}
|
package/dist/tui/state.d.ts
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { Container, TUI } from '@earendil-works/pi-tui';
|
|
8
8
|
import type { CombinedAutocompleteProvider, Component, Terminal, Text } from '@earendil-works/pi-tui';
|
|
9
|
+
import type { KnowledgeInspector } from '@mastra/code-sdk';
|
|
9
10
|
import type { MastraCodeAnalytics } from '@mastra/code-sdk/analytics';
|
|
10
11
|
import type { AuthStorage } from '@mastra/code-sdk/auth/storage';
|
|
11
12
|
import type { HookManager } from '@mastra/code-sdk/hooks/index';
|
|
@@ -91,6 +92,8 @@ export interface MastraTUIOptions {
|
|
|
91
92
|
githubSignals?: GithubSignals;
|
|
92
93
|
/** Storage maintenance handle for /prune (retention pruning + disk reclamation). */
|
|
93
94
|
storageMaintenance?: StorageMaintenance;
|
|
95
|
+
/** Session-scoped, read-only Subconscious knowledge inspection capability. */
|
|
96
|
+
knowledgeInspector?: KnowledgeInspector;
|
|
94
97
|
/** Optional terminal injection for in-process tests. Defaults to ProcessTerminal. */
|
|
95
98
|
terminal?: Terminal;
|
|
96
99
|
}
|
package/dist/tui/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/tui/state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/tui/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"experimental-features.d.ts","sourceRoot":"","sources":["../../../src/tui/utils/experimental-features.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C"}
|