mastracode 0.45.0-alpha.2 → 0.45.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +9 -2
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +9 -2
- package/dist/cli.js.map +1 -1
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/docs/references/reference-code-sdk-acp-server.md +19 -2
- package/dist/login-command-BSpvG0ws.cjs +100 -0
- package/dist/login-command-BSpvG0ws.cjs.map +1 -0
- package/dist/login-command-C0Ro4glG.js +100 -0
- package/dist/login-command-C0Ro4glG.js.map +1 -0
- package/dist/login-command.d.ts +14 -0
- package/dist/login-command.d.ts.map +1 -0
- package/dist/tui/om-defaults.d.ts.map +1 -1
- package/dist/{tui-CUNuxs-4.js → tui-Boav6A4H.js} +6 -34
- package/dist/tui-Boav6A4H.js.map +1 -0
- package/dist/{tui-CPJv6T_R.cjs → tui-DGvjBiNg.cjs} +6 -34
- package/dist/tui-DGvjBiNg.cjs.map +1 -0
- package/dist/tui.cjs +1 -1
- package/dist/tui.js +1 -1
- package/package.json +10 -10
- package/dist/tui/open-url.d.ts +0 -10
- package/dist/tui/open-url.d.ts.map +0 -1
- package/dist/tui-CPJv6T_R.cjs.map +0 -1
- package/dist/tui-CUNuxs-4.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login-command-BSpvG0ws.cjs","names":["PROVIDER_REGISTRY","AuthStorage","openUrlInBrowser","Writable"],"sources":["../src/login-command.ts"],"sourcesContent":["import { createInterface } from 'node:readline';\nimport { Writable } from 'node:stream';\nimport type { Readable } from 'node:stream';\nimport { parseArgs } from 'node:util';\nimport { AuthStorage, getOAuthProviders } from '@mastra/code-sdk/auth/storage';\nimport type { OAuthProviderInterface } from '@mastra/code-sdk/auth/types';\nimport { seedProviderOMDefault } from '@mastra/code-sdk/onboarding/om-settings';\nimport { openUrlInBrowser } from '@mastra/code-sdk/utils/open-url';\nimport { PROVIDER_REGISTRY } from '@mastra/core/llm';\n\ntype Ask = (prompt: string, options?: { secret?: boolean }) => Promise<string>;\n\ninterface LoginCommandOptions {\n args?: string[];\n input?: Readable & { isTTY?: boolean };\n output?: NodeJS.WritableStream;\n authStorage?: AuthStorage;\n openUrl?: (url: string) => void;\n}\n\nasync function choose(ask: Ask, labels: string[], say: (line: string) => void): Promise<number | undefined> {\n labels.forEach((label, index) => say(` ${index + 1}. ${label}`));\n const index = Number((await ask('Choose an option: ')).trim()) - 1;\n return Number.isInteger(index) && index >= 0 && index < labels.length ? index : undefined;\n}\n\nasync function signIn(\n ask: Ask,\n provider: OAuthProviderInterface,\n authStorage: AuthStorage,\n openUrl: (url: string) => void,\n say: (line: string) => void,\n): Promise<void> {\n const modes = provider.authModes ?? [];\n let authMode: string | undefined;\n if (modes.length > 1) {\n const index = await choose(\n ask,\n modes.map(mode => mode.name),\n say,\n );\n if (index === undefined) throw new Error('No sign-in method selected');\n authMode = modes[index]!.id;\n }\n await authStorage.login(provider.id, {\n authMode,\n onAuth: ({ url, instructions }) => {\n say(`Open ${url} to sign in`);\n if (instructions) say(instructions);\n openUrl(url);\n },\n onPrompt: ({ message, placeholder }) => ask(`${message}${placeholder ? ` (${placeholder})` : ''} `),\n onProgress: say,\n });\n seedProviderOMDefault(provider.id);\n say(`Signed in to ${provider.name}`);\n}\n\nasync function addApiKey(ask: Ask, authStorage: AuthStorage, say: (line: string) => void): Promise<void> {\n const providerId = (await ask('Provider (for example anthropic, openai, google): ')).trim();\n if (!(providerId in PROVIDER_REGISTRY)) throw new Error(`Unknown provider: ${providerId}`);\n const key = (await ask('API key: ', { secret: true })).trim();\n say('');\n if (!key) throw new Error('No API key entered');\n authStorage.setStoredApiKey(providerId, key);\n say(`Saved the ${providerId} API key`);\n}\n\nexport async function runLoginCommand({\n args = [],\n input = process.stdin,\n output = process.stdout,\n authStorage = new AuthStorage(),\n openUrl = openUrlInBrowser,\n}: LoginCommandOptions = {}): Promise<number> {\n let echo = false;\n const rl = createInterface({\n input,\n output: new Writable({\n write(chunk, encoding, callback) {\n if (echo) output.write(chunk, encoding);\n callback();\n },\n }),\n prompt: '',\n terminal: Boolean(input.isTTY),\n });\n rl.on('line', () => {\n echo = false;\n });\n const lines = rl[Symbol.asyncIterator]();\n const say = (line: string) => output.write(`${line}\\n`);\n const ask: Ask = async (prompt, { secret = false } = {}) => {\n output.write(prompt);\n echo = !secret;\n const line = await lines.next();\n echo = false;\n if (line.done) throw new Error('Input ended before sign-in finished');\n return line.value;\n };\n try {\n const providers = getOAuthProviders();\n const { values } = parseArgs({ args, options: { provider: { type: 'string' } } });\n if (values.provider !== undefined) {\n const provider = providers.find(({ id }) => id === values.provider);\n if (!provider) {\n const ids = providers.map(({ id }) => id).join(', ');\n throw new Error(`Unknown provider: ${values.provider}. Use one of: ${ids}`);\n }\n await signIn(ask, provider, authStorage, openUrl, say);\n return 0;\n }\n say('Sign in to Mastra Code');\n const index = await choose(ask, [...providers.map(provider => provider.name), 'Add an API key'], say);\n if (index === undefined) throw new Error('No option selected');\n const provider = providers[index];\n if (provider) {\n await signIn(ask, provider, authStorage, openUrl, say);\n } else {\n await addApiKey(ask, authStorage, say);\n }\n return 0;\n } catch (error) {\n say(`Sign-in failed: ${error instanceof Error ? error.message : String(error)}`);\n return 1;\n } finally {\n rl.close();\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { AuthStorage, getOAuthProviders } from "@mastra/code-sdk/auth/storage";
|
|
2
|
+
import { Writable } from "stream";
|
|
3
|
+
import { openUrlInBrowser } from "@mastra/code-sdk/utils/open-url";
|
|
4
|
+
import { parseArgs } from "util";
|
|
5
|
+
import { seedProviderOMDefault } from "@mastra/code-sdk/onboarding/om-settings";
|
|
6
|
+
import { PROVIDER_REGISTRY } from "@mastra/core/llm";
|
|
7
|
+
import { createInterface } from "readline";
|
|
8
|
+
//#region src/login-command.ts
|
|
9
|
+
async function choose(ask, labels, say) {
|
|
10
|
+
labels.forEach((label, index) => say(` ${index + 1}. ${label}`));
|
|
11
|
+
const index = Number((await ask("Choose an option: ")).trim()) - 1;
|
|
12
|
+
return Number.isInteger(index) && index >= 0 && index < labels.length ? index : void 0;
|
|
13
|
+
}
|
|
14
|
+
async function signIn(ask, provider, authStorage, openUrl, say) {
|
|
15
|
+
const modes = provider.authModes ?? [];
|
|
16
|
+
let authMode;
|
|
17
|
+
if (modes.length > 1) {
|
|
18
|
+
const index = await choose(ask, modes.map((mode) => mode.name), say);
|
|
19
|
+
if (index === void 0) throw new Error("No sign-in method selected");
|
|
20
|
+
authMode = modes[index].id;
|
|
21
|
+
}
|
|
22
|
+
await authStorage.login(provider.id, {
|
|
23
|
+
authMode,
|
|
24
|
+
onAuth: ({ url, instructions }) => {
|
|
25
|
+
say(`Open ${url} to sign in`);
|
|
26
|
+
if (instructions) say(instructions);
|
|
27
|
+
openUrl(url);
|
|
28
|
+
},
|
|
29
|
+
onPrompt: ({ message, placeholder }) => ask(`${message}${placeholder ? ` (${placeholder})` : ""} `),
|
|
30
|
+
onProgress: say
|
|
31
|
+
});
|
|
32
|
+
seedProviderOMDefault(provider.id);
|
|
33
|
+
say(`Signed in to ${provider.name}`);
|
|
34
|
+
}
|
|
35
|
+
async function addApiKey(ask, authStorage, say) {
|
|
36
|
+
const providerId = (await ask("Provider (for example anthropic, openai, google): ")).trim();
|
|
37
|
+
if (!(providerId in PROVIDER_REGISTRY)) throw new Error(`Unknown provider: ${providerId}`);
|
|
38
|
+
const key = (await ask("API key: ", { secret: true })).trim();
|
|
39
|
+
say("");
|
|
40
|
+
if (!key) throw new Error("No API key entered");
|
|
41
|
+
authStorage.setStoredApiKey(providerId, key);
|
|
42
|
+
say(`Saved the ${providerId} API key`);
|
|
43
|
+
}
|
|
44
|
+
async function runLoginCommand({ args = [], input = process.stdin, output = process.stdout, authStorage = new AuthStorage(), openUrl = openUrlInBrowser } = {}) {
|
|
45
|
+
let echo = false;
|
|
46
|
+
const rl = createInterface({
|
|
47
|
+
input,
|
|
48
|
+
output: new Writable({ write(chunk, encoding, callback) {
|
|
49
|
+
if (echo) output.write(chunk, encoding);
|
|
50
|
+
callback();
|
|
51
|
+
} }),
|
|
52
|
+
prompt: "",
|
|
53
|
+
terminal: Boolean(input.isTTY)
|
|
54
|
+
});
|
|
55
|
+
rl.on("line", () => {
|
|
56
|
+
echo = false;
|
|
57
|
+
});
|
|
58
|
+
const lines = rl[Symbol.asyncIterator]();
|
|
59
|
+
const say = (line) => output.write(`${line}\n`);
|
|
60
|
+
const ask = async (prompt, { secret = false } = {}) => {
|
|
61
|
+
output.write(prompt);
|
|
62
|
+
echo = !secret;
|
|
63
|
+
const line = await lines.next();
|
|
64
|
+
echo = false;
|
|
65
|
+
if (line.done) throw new Error("Input ended before sign-in finished");
|
|
66
|
+
return line.value;
|
|
67
|
+
};
|
|
68
|
+
try {
|
|
69
|
+
const providers = getOAuthProviders();
|
|
70
|
+
const { values } = parseArgs({
|
|
71
|
+
args,
|
|
72
|
+
options: { provider: { type: "string" } }
|
|
73
|
+
});
|
|
74
|
+
if (values.provider !== void 0) {
|
|
75
|
+
const provider = providers.find(({ id }) => id === values.provider);
|
|
76
|
+
if (!provider) {
|
|
77
|
+
const ids = providers.map(({ id }) => id).join(", ");
|
|
78
|
+
throw new Error(`Unknown provider: ${values.provider}. Use one of: ${ids}`);
|
|
79
|
+
}
|
|
80
|
+
await signIn(ask, provider, authStorage, openUrl, say);
|
|
81
|
+
return 0;
|
|
82
|
+
}
|
|
83
|
+
say("Sign in to Mastra Code");
|
|
84
|
+
const index = await choose(ask, [...providers.map((provider) => provider.name), "Add an API key"], say);
|
|
85
|
+
if (index === void 0) throw new Error("No option selected");
|
|
86
|
+
const provider = providers[index];
|
|
87
|
+
if (provider) await signIn(ask, provider, authStorage, openUrl, say);
|
|
88
|
+
else await addApiKey(ask, authStorage, say);
|
|
89
|
+
return 0;
|
|
90
|
+
} catch (error) {
|
|
91
|
+
say(`Sign-in failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
92
|
+
return 1;
|
|
93
|
+
} finally {
|
|
94
|
+
rl.close();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//#endregion
|
|
98
|
+
export { runLoginCommand };
|
|
99
|
+
|
|
100
|
+
//# sourceMappingURL=login-command-C0Ro4glG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login-command-C0Ro4glG.js","names":[],"sources":["../src/login-command.ts"],"sourcesContent":["import { createInterface } from 'node:readline';\nimport { Writable } from 'node:stream';\nimport type { Readable } from 'node:stream';\nimport { parseArgs } from 'node:util';\nimport { AuthStorage, getOAuthProviders } from '@mastra/code-sdk/auth/storage';\nimport type { OAuthProviderInterface } from '@mastra/code-sdk/auth/types';\nimport { seedProviderOMDefault } from '@mastra/code-sdk/onboarding/om-settings';\nimport { openUrlInBrowser } from '@mastra/code-sdk/utils/open-url';\nimport { PROVIDER_REGISTRY } from '@mastra/core/llm';\n\ntype Ask = (prompt: string, options?: { secret?: boolean }) => Promise<string>;\n\ninterface LoginCommandOptions {\n args?: string[];\n input?: Readable & { isTTY?: boolean };\n output?: NodeJS.WritableStream;\n authStorage?: AuthStorage;\n openUrl?: (url: string) => void;\n}\n\nasync function choose(ask: Ask, labels: string[], say: (line: string) => void): Promise<number | undefined> {\n labels.forEach((label, index) => say(` ${index + 1}. ${label}`));\n const index = Number((await ask('Choose an option: ')).trim()) - 1;\n return Number.isInteger(index) && index >= 0 && index < labels.length ? index : undefined;\n}\n\nasync function signIn(\n ask: Ask,\n provider: OAuthProviderInterface,\n authStorage: AuthStorage,\n openUrl: (url: string) => void,\n say: (line: string) => void,\n): Promise<void> {\n const modes = provider.authModes ?? [];\n let authMode: string | undefined;\n if (modes.length > 1) {\n const index = await choose(\n ask,\n modes.map(mode => mode.name),\n say,\n );\n if (index === undefined) throw new Error('No sign-in method selected');\n authMode = modes[index]!.id;\n }\n await authStorage.login(provider.id, {\n authMode,\n onAuth: ({ url, instructions }) => {\n say(`Open ${url} to sign in`);\n if (instructions) say(instructions);\n openUrl(url);\n },\n onPrompt: ({ message, placeholder }) => ask(`${message}${placeholder ? ` (${placeholder})` : ''} `),\n onProgress: say,\n });\n seedProviderOMDefault(provider.id);\n say(`Signed in to ${provider.name}`);\n}\n\nasync function addApiKey(ask: Ask, authStorage: AuthStorage, say: (line: string) => void): Promise<void> {\n const providerId = (await ask('Provider (for example anthropic, openai, google): ')).trim();\n if (!(providerId in PROVIDER_REGISTRY)) throw new Error(`Unknown provider: ${providerId}`);\n const key = (await ask('API key: ', { secret: true })).trim();\n say('');\n if (!key) throw new Error('No API key entered');\n authStorage.setStoredApiKey(providerId, key);\n say(`Saved the ${providerId} API key`);\n}\n\nexport async function runLoginCommand({\n args = [],\n input = process.stdin,\n output = process.stdout,\n authStorage = new AuthStorage(),\n openUrl = openUrlInBrowser,\n}: LoginCommandOptions = {}): Promise<number> {\n let echo = false;\n const rl = createInterface({\n input,\n output: new Writable({\n write(chunk, encoding, callback) {\n if (echo) output.write(chunk, encoding);\n callback();\n },\n }),\n prompt: '',\n terminal: Boolean(input.isTTY),\n });\n rl.on('line', () => {\n echo = false;\n });\n const lines = rl[Symbol.asyncIterator]();\n const say = (line: string) => output.write(`${line}\\n`);\n const ask: Ask = async (prompt, { secret = false } = {}) => {\n output.write(prompt);\n echo = !secret;\n const line = await lines.next();\n echo = false;\n if (line.done) throw new Error('Input ended before sign-in finished');\n return line.value;\n };\n try {\n const providers = getOAuthProviders();\n const { values } = parseArgs({ args, options: { provider: { type: 'string' } } });\n if (values.provider !== undefined) {\n const provider = providers.find(({ id }) => id === values.provider);\n if (!provider) {\n const ids = providers.map(({ id }) => id).join(', ');\n throw new Error(`Unknown provider: ${values.provider}. Use one of: ${ids}`);\n }\n await signIn(ask, provider, authStorage, openUrl, say);\n return 0;\n }\n say('Sign in to Mastra Code');\n const index = await choose(ask, [...providers.map(provider => provider.name), 'Add an API key'], say);\n if (index === undefined) throw new Error('No option selected');\n const provider = providers[index];\n if (provider) {\n await signIn(ask, provider, authStorage, openUrl, say);\n } else {\n await addApiKey(ask, authStorage, say);\n }\n return 0;\n } catch (error) {\n say(`Sign-in failed: ${error instanceof Error ? error.message : String(error)}`);\n return 1;\n } finally {\n rl.close();\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Readable } from 'node:stream';
|
|
2
|
+
import { AuthStorage } from '@mastra/code-sdk/auth/storage';
|
|
3
|
+
interface LoginCommandOptions {
|
|
4
|
+
args?: string[];
|
|
5
|
+
input?: Readable & {
|
|
6
|
+
isTTY?: boolean;
|
|
7
|
+
};
|
|
8
|
+
output?: NodeJS.WritableStream;
|
|
9
|
+
authStorage?: AuthStorage;
|
|
10
|
+
openUrl?: (url: string) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function runLoginCommand({ args, input, output, authStorage, openUrl, }?: LoginCommandOptions): Promise<number>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=login-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login-command.d.ts","sourceRoot":"","sources":["../src/login-command.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAqB,MAAM,+BAA+B,CAAC;AAQ/E,UAAU,mBAAmB;IAC3B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,QAAQ,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAkDD,wBAAsB,eAAe,CAAC,EACpC,IAAS,EACT,KAAqB,EACrB,MAAuB,EACvB,WAA+B,EAC/B,OAA0B,GAC3B,GAAE,mBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAsD5C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"om-defaults.d.ts","sourceRoot":"","sources":["../../src/tui/om-defaults.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"om-defaults.d.ts","sourceRoot":"","sources":["../../src/tui/om-defaults.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,uFAAuF;AACvF,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3F;AAED,sGAAsG;AACtG,wBAAsB,oCAAoC,CACxD,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAM7B;AAID,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC,OAAO,CAAC,IAAI,CAAC,CAOf"}
|
|
@@ -25,6 +25,7 @@ import { DeepgramVoice } from "@mastra/voice-deepgram";
|
|
|
25
25
|
import { OpenAIVoice } from "@mastra/voice-openai";
|
|
26
26
|
import { THINK_COMMAND_DESCRIPTOR, getAvailableThinkingLevelsForModel, isThinkingLevelSetting, parseThinkCommand } from "@mastra/code-sdk/thinking";
|
|
27
27
|
import { VALID_EVENTS } from "@mastra/code-sdk/hooks/index";
|
|
28
|
+
import { openUrlInBrowser } from "@mastra/code-sdk/utils/open-url";
|
|
28
29
|
import { parseError } from "@mastra/code-sdk/utils/errors";
|
|
29
30
|
import { formatSkillActivation } from "@mastra/core/workspace";
|
|
30
31
|
import { approvePlanFile, readPlanFile, resolvePlanPath } from "@mastra/code-sdk/utils/plans";
|
|
@@ -42,11 +43,11 @@ import { highlight } from "cli-highlight";
|
|
|
42
43
|
import { TOOL_CATEGORIES, getToolCategory } from "@mastra/code-sdk/permissions";
|
|
43
44
|
import { parse } from "jsonriver";
|
|
44
45
|
import { stripVTControlCharacters } from "util";
|
|
45
|
-
import { getAvailableModePacks as getAvailableModePacks$1, getBuiltinModePack, resolveModePackFallbackChain
|
|
46
|
+
import { getAvailableModePacks as getAvailableModePacks$1, getBuiltinModePack, resolveModePackFallbackChain } from "@mastra/code-sdk/onboarding/packs";
|
|
46
47
|
import { getClipboardImage, getClipboardText, setClipboardText } from "@mastra/code-sdk/clipboard/index";
|
|
47
48
|
import { removeCustomPackFromSettings } from "@mastra/code-sdk/onboarding/custom-packs";
|
|
48
49
|
import { removeCustomProviderFromSettings, upsertCustomProviderInSettings } from "@mastra/code-sdk/onboarding/custom-providers";
|
|
49
|
-
import {
|
|
50
|
+
import { applyOmRoleOverride, persistOmObserveAttachments, seedProviderOMDefault } from "@mastra/code-sdk/onboarding/om-settings";
|
|
50
51
|
import { access, mkdir, mkdtemp, readFile, rm, stat, writeFile } from "fs/promises";
|
|
51
52
|
import { remapOpenAIModelForCodexOAuth } from "@mastra/code-sdk/providers/model-ids";
|
|
52
53
|
import { STAGEHAND_MODEL_PROVIDERS } from "@mastra/stagehand";
|
|
@@ -4910,32 +4911,6 @@ function runPermissionHooksForEvent(state, event) {
|
|
|
4910
4911
|
}
|
|
4911
4912
|
}
|
|
4912
4913
|
//#endregion
|
|
4913
|
-
//#region src/tui/open-url.ts
|
|
4914
|
-
/**
|
|
4915
|
-
* Best-effort browser opening for OAuth and other login flows.
|
|
4916
|
-
*/
|
|
4917
|
-
/**
|
|
4918
|
-
* Open a URL in the default browser without going through a shell.
|
|
4919
|
-
* Only well-formed http(s) URLs are opened; anything else is ignored
|
|
4920
|
-
* (the URL is still displayed for the user to open manually).
|
|
4921
|
-
*/
|
|
4922
|
-
function openUrlInBrowser(url) {
|
|
4923
|
-
let parsed;
|
|
4924
|
-
try {
|
|
4925
|
-
parsed = new URL(url);
|
|
4926
|
-
} catch {
|
|
4927
|
-
return;
|
|
4928
|
-
}
|
|
4929
|
-
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") return;
|
|
4930
|
-
const [cmd, args] = process.platform === "darwin" ? ["open", [url]] : process.platform === "win32" ? ["rundll32", ["url.dll,FileProtocolHandler", url]] : ["xdg-open", [url]];
|
|
4931
|
-
const child = spawn(cmd, args, {
|
|
4932
|
-
stdio: "ignore",
|
|
4933
|
-
detached: true
|
|
4934
|
-
});
|
|
4935
|
-
child.on("error", () => {});
|
|
4936
|
-
child.unref();
|
|
4937
|
-
}
|
|
4938
|
-
//#endregion
|
|
4939
4914
|
//#region src/tui/commands/mcp.ts
|
|
4940
4915
|
async function handleMcpCommand(ctx, args) {
|
|
4941
4916
|
const mm = ctx.mcpManager;
|
|
@@ -18130,11 +18105,8 @@ async function applyOMModelToSession(state, modelId) {
|
|
|
18130
18105
|
}
|
|
18131
18106
|
/** Seed OM from a provider login, preserving explicit settings; undefined when nothing was seeded. */
|
|
18132
18107
|
async function applyProviderOMDefaultIfUnconfigured(state, providerId) {
|
|
18133
|
-
const pack =
|
|
18134
|
-
if (pack
|
|
18135
|
-
const settings = loadSettings();
|
|
18136
|
-
if (!applyOMDefaultIfUnconfigured(settings, pack)) return void 0;
|
|
18137
|
-
saveSettings(settings);
|
|
18108
|
+
const pack = seedProviderOMDefault(providerId);
|
|
18109
|
+
if (!pack) return void 0;
|
|
18138
18110
|
await applyOMModelToSession(state, pack.modelId);
|
|
18139
18111
|
return pack;
|
|
18140
18112
|
}
|
|
@@ -28295,4 +28267,4 @@ var MastraTUI = class MastraTUI {
|
|
|
28295
28267
|
//#endregion
|
|
28296
28268
|
export { mastraBrand as _, OMProgressComponent as a, TUI_CO_AUTHOR as b, ToolExecutionComponentEnhanced as c, detectTerminalTheme as d, applyThemeMode as f, mastra as g, getThemeMode as h, LoginDialogComponent as i, ModelSelectorComponent as l, getMarkdownTheme as m, createTUIState as n, formatOMStatus as o, getEditorTheme as p, LoginSelectorComponent as r, UserMessageComponent as s, MastraTUI as t, AssistantMessageComponent as u, restoreTerminalForeground as v, theme as y };
|
|
28297
28269
|
|
|
28298
|
-
//# sourceMappingURL=tui-
|
|
28270
|
+
//# sourceMappingURL=tui-Boav6A4H.js.map
|