mastracode 0.36.1 → 0.37.0-alpha.1

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 CHANGED
@@ -1,5 +1,30 @@
1
1
  # mastracode
2
2
 
3
+ ## 0.37.0-alpha.1
4
+
5
+ ### Minor Changes
6
+
7
+ - Added `/connect` for provider accounts and API keys. `/login` continues to open provider account sign-in. ([#22426](https://github.com/mastra-ai/mastra/pull/22426))
8
+
9
+ ### Patch Changes
10
+
11
+ - Stopped showing the Git user email address in the startup header. ([#22430](https://github.com/mastra-ai/mastra/pull/22430))
12
+
13
+ - Updated dependencies [[`295e506`](https://github.com/mastra-ai/mastra/commit/295e506b9e6cec99e7181c5f712648888cd9486f), [`8c3be07`](https://github.com/mastra-ai/mastra/commit/8c3be0761a862c5c035ed6e5d633de87cbba20e7), [`078affd`](https://github.com/mastra-ai/mastra/commit/078affdaea57ac5e95a77e9e7b197d1878190684), [`a87ff53`](https://github.com/mastra-ai/mastra/commit/a87ff53cef9318bea80c38c3bf3d9d9d507ac3c1), [`9e3403e`](https://github.com/mastra-ai/mastra/commit/9e3403e9868240cb18841898e84cf008ebd7a87e), [`00707f3`](https://github.com/mastra-ai/mastra/commit/00707f376a7cea7a26ce8a18ddfaefdc947dcf5a), [`791bf5e`](https://github.com/mastra-ai/mastra/commit/791bf5e81cd27e2e1cff66122f1380ab8a3dda41)]:
14
+ - @mastra/memory@1.28.1-alpha.0
15
+ - @mastra/core@1.63.1-alpha.1
16
+ - @mastra/observability@1.17.4-alpha.0
17
+ - @mastra/code-sdk@1.5.2-alpha.1
18
+ - @mastra/mcp@1.17.2
19
+
20
+ ## 0.36.2-alpha.0
21
+
22
+ ### Patch Changes
23
+
24
+ - Updated dependencies [[`bae1502`](https://github.com/mastra-ai/mastra/commit/bae150254b06a4da6964d7c137af97f336362359)]:
25
+ - @mastra/core@1.63.1-alpha.0
26
+ - @mastra/code-sdk@1.5.2-alpha.0
27
+
3
28
  ## 0.36.1
4
29
 
5
30
  ### Patch Changes
package/LICENSE.md CHANGED
@@ -1,10 +1,12 @@
1
1
  Portions of this software are licensed as follows:
2
2
 
3
- - All content that resides under any directory named "ee/" within this
3
+ - All content that resides under any directory named `ee/` within this
4
4
  repository, including but not limited to:
5
- - `packages/core/src/auth/ee/`
6
- - `packages/server/src/server/auth/ee/`
7
- is licensed under the license defined in `ee/LICENSE`.
5
+ - `@mastra/core/auth/ee`
6
+ - `@mastra/core/agent-builder/ee`
7
+ - `@mastra/editor/ee`
8
+
9
+ is licensed under the license defined in [`ee/LICENSE`](https://github.com/mastra-ai/mastra/blob/main/ee/LICENSE).
8
10
 
9
11
  - All third-party components incorporated into the Mastra Software are
10
12
  licensed under the original license provided by the owner of the
package/README.md CHANGED
@@ -110,7 +110,8 @@ Select a suggestion with arrow keys and press Tab to insert it.
110
110
  | `/yolo` | Toggle YOLO mode (auto-approve all tools) |
111
111
  | `/resource` | Show/switch resource ID (tag for sharing) |
112
112
  | `/thread:tag-dir` | Tag current thread with this directory |
113
- | `/login` | Authenticate with OAuth providers |
113
+ | `/connect` | Connect a provider account or API key |
114
+ | `/login` | Sign in with a provider account |
114
115
  | `/logout` | Log out from a provider |
115
116
  | `/setup` | Re-run the interactive setup wizard |
116
117
  | `/help` | Show available commands |
@@ -286,7 +287,7 @@ The SQLite database is stored in your system's application data directory:
286
287
 
287
288
  For **Anthropic** models, mastracode supports two authentication methods:
288
289
 
289
- 1. **Claude Max OAuth (primary)**: Use `/login` to authenticate with a Claude Pro/Max subscription.
290
+ 1. **Claude Max OAuth (primary)**: Use `/connect` to authenticate with a Claude Pro/Max subscription.
290
291
  2. **API key (fallback)**: Set the `ANTHROPIC_API_KEY` environment variable for direct API access. This is used when not logged in via OAuth.
291
292
 
292
293
  When both are available, Claude Max OAuth takes priority.
package/dist/cli.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- const require_tui = require("./tui-Dg7vMm5_.cjs");
2
+ const require_tui = require("./tui-7K6-8X8N.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);
@@ -41,7 +41,7 @@ function createShutdownCoordinator(cleanup, exit, timeoutMs = 5e3) {
41
41
  //#endregion
42
42
  //#region src/version.ts
43
43
  function getCurrentVersion() {
44
- return "0.36.1";
44
+ return "0.37.0-alpha.1";
45
45
  }
46
46
  //#endregion
47
47
  //#region src/main.ts
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-BaobOqGM.js";
2
+ import { d as detectTerminalTheme, f as applyThemeMode, t as MastraTUI, v as restoreTerminalForeground } from "./tui-Br7kRtOS.js";
3
3
  import { createMastraCode } from "@mastra/code-sdk";
4
4
  import fs from "fs";
5
5
  import { createMastraCodeAnalytics } from "@mastra/code-sdk/analytics";
@@ -40,7 +40,7 @@ function createShutdownCoordinator(cleanup, exit, timeoutMs = 5e3) {
40
40
  //#endregion
41
41
  //#region src/version.ts
42
42
  function getCurrentVersion() {
43
- return "0.36.1";
43
+ return "0.37.0-alpha.1";
44
44
  }
45
45
  //#endregion
46
46
  //#region src/main.ts
@@ -1 +1 @@
1
- {"version":3,"file":"command-dispatch.d.ts","sourceRoot":"","sources":["../../src/tui/command-dispatch.ts"],"names":[],"mappings":"AAsDA,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,CAoOlB"}
1
+ {"version":3,"file":"command-dispatch.d.ts","sourceRoot":"","sources":["../../src/tui/command-dispatch.ts"],"names":[],"mappings":"AAuDA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAQ/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAc3C;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,MAAM,mBAAmB,GAClC,OAAO,CAAC,OAAO,CAAC,CAuOlB"}
@@ -0,0 +1,3 @@
1
+ import type { SlashCommandContext } from './types.js';
2
+ export declare function handleConnectCommand(ctx: SlashCommandContext): Promise<void>;
3
+ //# sourceMappingURL=connect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../src/tui/commands/connect.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOlF"}
@@ -27,6 +27,7 @@ export { handleOMCommand } from './om.js';
27
27
  export { handleKnowledgeCommand } from './knowledge-command.js';
28
28
  export { handleSettingsCommand } from './settings.js';
29
29
  export { handleBrowserCommand } from './browser.js';
30
+ export { handleConnectCommand } from './connect.js';
30
31
  export { handleLoginCommand } from './login.js';
31
32
  export { handleReviewCommand } from './review.js';
32
33
  export { handleReportIssueCommand } from './report-issue.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,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,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;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tui/commands/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/tui/commands/login.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AA0EtD,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA0D1G"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/tui/commands/login.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AA2EtD,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA2D1G"}
@@ -0,0 +1,4 @@
1
+ import type { TUI } from '@earendil-works/pi-tui';
2
+ export type ConnectMethod = 'account' | 'api-key';
3
+ export declare function promptConnectMethod(tui: TUI): Promise<ConnectMethod | null>;
4
+ //# sourceMappingURL=connect-method-selector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-method-selector.d.ts","sourceRoot":"","sources":["../../../src/tui/components/connect-method-selector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAI9D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,CAAC;AAElD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAiC3E"}
@@ -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;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;AAiGD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAyB9D"}
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;AAkGD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAyB9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/tui/setup.ts"],"names":[],"mappings":"AAqBA,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,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C,GACA,IAAI,CAkLN;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,CAwKvD;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,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;CACvB,GACA,MAAM,IAAI,CA2CZ;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"}
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,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C,GACA,IAAI,CAkLN;AA8BD,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAyD9F;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,CAyKvD;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,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;CACvB,GACA,MAAM,IAAI,CA2CZ;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"}
@@ -2299,9 +2299,13 @@ function getCommands(modes) {
2299
2299
  key: "/mcp",
2300
2300
  description: "Show/reload MCP connections"
2301
2301
  },
2302
+ {
2303
+ key: "/connect",
2304
+ description: "Connect a provider account or API key"
2305
+ },
2302
2306
  {
2303
2307
  key: "/login",
2304
- description: "Login with OAuth provider"
2308
+ description: "Sign in with a provider account"
2305
2309
  },
2306
2310
  {
2307
2311
  key: "/logout",
@@ -4441,7 +4445,7 @@ function withOMGuidance(typeHint, omModelId) {
4441
4445
  }
4442
4446
  function getErrorHint(errorType) {
4443
4447
  switch (errorType) {
4444
- case "auth": return "Use /login to authenticate with a provider";
4448
+ case "auth": return "Use /connect to authenticate with a provider";
4445
4449
  case "model_not_found": return "Use /models to select a different model";
4446
4450
  case "context_length": return "Use /new to start a fresh conversation";
4447
4451
  case "rate_limit": return "Wait a moment and try again";
@@ -15430,6 +15434,43 @@ async function handleBrowserCommand(ctx, args = []) {
15430
15434
  ctx.showInfo(summary.join("\n"));
15431
15435
  }
15432
15436
  //#endregion
15437
+ //#region src/tui/components/connect-method-selector.ts
15438
+ function promptConnectMethod(tui) {
15439
+ return new Promise((resolve) => {
15440
+ const container = new _earendil_works_pi_tui.Box(4, 2, (text) => theme.bg("overlayBg", text));
15441
+ container.addChild(new _earendil_works_pi_tui.Text(theme.bold(theme.fg("accent", "Select authentication method:")), 0, 0));
15442
+ container.addChild(new _earendil_works_pi_tui.Spacer(1));
15443
+ const items = [{
15444
+ value: "account",
15445
+ label: " Sign in with an account"
15446
+ }, {
15447
+ value: "api-key",
15448
+ label: " Sign in with an API key"
15449
+ }];
15450
+ const selectList = new _earendil_works_pi_tui.SelectList(items, items.length, getSelectListTheme());
15451
+ const close = () => {
15452
+ tui.hideOverlay();
15453
+ tui.requestRender();
15454
+ };
15455
+ selectList.onSelect = (item) => {
15456
+ close();
15457
+ resolve(item.value);
15458
+ };
15459
+ selectList.onCancel = () => {
15460
+ close();
15461
+ resolve(null);
15462
+ };
15463
+ container.addChild(selectList);
15464
+ container.addChild(new _earendil_works_pi_tui.Spacer(1));
15465
+ container.addChild(new _earendil_works_pi_tui.Text(theme.fg("dim", "↑↓ navigate · Enter select · Esc/Ctrl+C cancel"), 0, 0));
15466
+ container.handleInput = (data) => selectList.handleInput(data);
15467
+ showModalOverlay(tui, container, {
15468
+ widthPercent: .8,
15469
+ maxHeight: "60%"
15470
+ });
15471
+ });
15472
+ }
15473
+ //#endregion
15433
15474
  //#region src/tui/components/login-dialog.ts
15434
15475
  /**
15435
15476
  * Login dialog component - handles OAuth login flow UI
@@ -15645,14 +15686,14 @@ var LoginSelectorComponent = class extends _earendil_works_pi_tui.Box {
15645
15686
  const provider = this.allProviders[i];
15646
15687
  if (!provider) continue;
15647
15688
  const isSelected = i === this.selectedIndex;
15648
- const statusIndicator = this.authSource.isLoggedIn(provider.id) ? theme.fg("success", " ✓ logged in") : "";
15689
+ const statusIndicator = this.authSource.isLoggedIn(provider.id) ? theme.fg("success", " ✓ stored") : theme.fg("muted", " • unconfigured");
15649
15690
  let line = "";
15650
15691
  if (isSelected) line = theme.fg("accent", "→ " + provider.name) + statusIndicator;
15651
15692
  else line = " " + provider.name + statusIndicator;
15652
15693
  this.listContainer.addChild(new _earendil_works_pi_tui.Text(line));
15653
15694
  }
15654
15695
  if (this.allProviders.length === 0) {
15655
- const message = this.mode === "login" ? "No OAuth providers available" : "No OAuth providers logged in. Use /login first.";
15696
+ const message = this.mode === "login" ? "No OAuth providers available" : "No OAuth providers logged in. Use /connect first.";
15656
15697
  this.listContainer.addChild(new _earendil_works_pi_tui.Text(theme.fg("muted", message)));
15657
15698
  }
15658
15699
  }
@@ -15734,6 +15775,7 @@ async function performLogin(ctx, providerId) {
15734
15775
  authMode
15735
15776
  }).then(async () => {
15736
15777
  ctx.state.ui.hideOverlay();
15778
+ ctx.state.controller.invalidateAvailableModelsCache();
15737
15779
  const hasSelectedModel = ctx.state.session.model.get() !== "";
15738
15780
  const defaultModel = _mastra_code_sdk_auth_storage.PROVIDER_DEFAULT_MODELS[providerId];
15739
15781
  if (defaultModel && !hasSelectedModel) {
@@ -15754,7 +15796,7 @@ async function handleLoginCommand(ctx, mode) {
15754
15796
  const loggedInIds = allProviders.filter((p) => ctx.authStorage?.isLoggedIn(p.id)).map((p) => p.id);
15755
15797
  if (mode === "logout") {
15756
15798
  if (loggedInIds.length === 0) {
15757
- ctx.showInfo("No OAuth providers logged in. Use /login first.");
15799
+ ctx.showInfo("No OAuth providers logged in. Use /connect first.");
15758
15800
  return;
15759
15801
  }
15760
15802
  }
@@ -15778,6 +15820,7 @@ async function handleLoginCommand(ctx, mode) {
15778
15820
  if (provider) if (mode === "login") await performLogin(ctx, provider.id);
15779
15821
  else if (ctx.authStorage) {
15780
15822
  ctx.authStorage.logout(provider.id);
15823
+ ctx.state.controller.invalidateAvailableModelsCache();
15781
15824
  ctx.showInfo(`Logged out from ${provider.name}`);
15782
15825
  } else ctx.showError("Auth storage not configured");
15783
15826
  resolve();
@@ -15792,10 +15835,17 @@ async function handleLoginCommand(ctx, mode) {
15792
15835
  });
15793
15836
  }
15794
15837
  //#endregion
15838
+ //#region src/tui/commands/connect.ts
15839
+ async function handleConnectCommand(ctx) {
15840
+ const method = await promptConnectMethod(ctx.state.ui);
15841
+ if (method === "account") await handleLoginCommand(ctx, "login");
15842
+ else if (method === "api-key") await handleApiKeysCommand(ctx);
15843
+ }
15844
+ //#endregion
15795
15845
  //#region src/tui/commands/review.ts
15796
15846
  async function handleReviewCommand(ctx, args) {
15797
15847
  if (!ctx.state.session.model.hasSelection()) {
15798
- ctx.showInfo("No model selected. Use /models to select a model, or /login to authenticate.");
15848
+ ctx.showInfo("No model selected. Use /models to select a model, or /connect to authenticate.");
15799
15849
  return;
15800
15850
  }
15801
15851
  if (ctx.state.pendingNewThread) {
@@ -15820,7 +15870,7 @@ const MASTRA_REPO = "mastra-ai/mastra";
15820
15870
  const MASTRA_LABEL = "mastracode";
15821
15871
  async function handleReportIssueCommand(ctx, args) {
15822
15872
  if (!ctx.state.session.model.hasSelection()) {
15823
- ctx.showInfo("No model selected. Use /models to select a model, or /login to authenticate.");
15873
+ ctx.showInfo("No model selected. Use /models to select a model, or /connect to authenticate.");
15824
15874
  return;
15825
15875
  }
15826
15876
  if (ctx.state.pendingNewThread) {
@@ -17385,6 +17435,7 @@ function canRunSlashCommandDuringGoalJudge(command, args) {
17385
17435
  * Slash command dispatcher: routes command strings to extracted handlers.
17386
17436
  */
17387
17437
  const TRACKED_COMMANDS = /* @__PURE__ */ new Set([
17438
+ "connect",
17388
17439
  "login",
17389
17440
  "models",
17390
17441
  "mode",
@@ -17515,6 +17566,9 @@ async function dispatchSlashCommand(input, state, buildCtx) {
17515
17566
  case "settings":
17516
17567
  await handleSettingsCommand(ctx);
17517
17568
  return true;
17569
+ case "connect":
17570
+ await handleConnectCommand(ctx);
17571
+ return true;
17518
17572
  case "login":
17519
17573
  await handleLoginCommand(ctx, "login");
17520
17574
  return true;
@@ -21364,7 +21418,7 @@ var OnboardingInlineComponent = class extends _earendil_works_pi_tui.Box {
21364
21418
  }));
21365
21419
  items.push({
21366
21420
  value: "__skip",
21367
- label: ` ${theme.fg("dim", "Skip (use API keys or configure later with /login)")}`
21421
+ label: ` ${theme.fg("dim", "Skip (use API keys or configure later with /connect)")}`
21368
21422
  });
21369
21423
  this.selectList = new _earendil_works_pi_tui.SelectList(items, Math.min(items.length, 8), getSelectListTheme());
21370
21424
  this.selectList.onSelect = (item) => {
@@ -21397,7 +21451,7 @@ var OnboardingInlineComponent = class extends _earendil_works_pi_tui.Box {
21397
21451
  box.addChild(new _earendil_works_pi_tui.Spacer(1));
21398
21452
  box.addChild(new _earendil_works_pi_tui.Text(theme.fg("dim", "See https://mastra.ai/models for supported providers and API key env vars."), 0, 0));
21399
21453
  box.addChild(new _earendil_works_pi_tui.Spacer(1));
21400
- box.addChild(new _earendil_works_pi_tui.Text(theme.fg("dim", "Set an API key and restart, or run /login to authenticate via OAuth."), 0, 0));
21454
+ box.addChild(new _earendil_works_pi_tui.Text(theme.fg("dim", "Run /connect to configure an API key or authenticate with an account."), 0, 0));
21401
21455
  box.addChild(new _earendil_works_pi_tui.Spacer(1));
21402
21456
  }
21403
21457
  box.addChild(new _earendil_works_pi_tui.Text(theme.bold(theme.fg("accent", "Model Packs")), 0, 0));
@@ -22056,8 +22110,7 @@ function buildLayout(state, refreshModelAuthStatus) {
22056
22110
  `Project: ${state.projectInfo.name}`,
22057
22111
  `Resource ID: ${state.projectInfo.resourceId}`,
22058
22112
  state.projectInfo.gitBranch ? `Branch: ${state.projectInfo.gitBranch}` : null,
22059
- state.projectInfo.isWorktree ? `Worktree of: ${state.projectInfo.mainRepoPath}` : null,
22060
- `User: ${(0, _mastra_code_sdk_utils_project.getUserId)(state.projectInfo.rootPath)}`
22113
+ state.projectInfo.isWorktree ? `Worktree of: ${state.projectInfo.mainRepoPath}` : null
22061
22114
  ].filter(Boolean).map((line) => theme.fg("muted", line)).join("\n");
22062
22115
  const sep = theme.fg("dim", " · ");
22063
22116
  const hintParts = [];
@@ -22175,9 +22228,13 @@ function setupAutocomplete(state) {
22175
22228
  description: "Browse scoped Subconscious knowledge"
22176
22229
  }] : [],
22177
22230
  _mastra_code_sdk_thinking.THINK_COMMAND_DESCRIPTOR,
22231
+ {
22232
+ name: "connect",
22233
+ description: "Connect a provider account or API key"
22234
+ },
22178
22235
  {
22179
22236
  name: "login",
22180
- description: "Login with OAuth provider"
22237
+ description: "Sign in with a provider account"
22181
22238
  },
22182
22239
  {
22183
22240
  name: "skills",
@@ -22969,7 +23026,7 @@ var MastraTUI = class MastraTUI {
22969
23026
  if (hookMgr) hookMgr.runSessionStart().catch(() => {});
22970
23027
  if (this.state.options.initialMessage) {
22971
23028
  const msg = this.state.options.initialMessage;
22972
- if (!this.state.session.model.hasSelection()) showInfo(this.state, "No model selected. Use /models to select a model, or /login to authenticate.");
23029
+ if (!this.state.session.model.hasSelection()) showInfo(this.state, "No model selected. Use /models to select a model, or /connect to authenticate.");
22973
23030
  else {
22974
23031
  const messageId = `user-${Date.now()}`;
22975
23032
  addUserMessage(this.state, {
@@ -23017,7 +23074,7 @@ var MastraTUI = class MastraTUI {
23017
23074
  continue;
23018
23075
  }
23019
23076
  if (!this.state.session.model.hasSelection()) {
23020
- showInfo(this.state, "No model selected. Use /models to select a model, or /login to authenticate.");
23077
+ showInfo(this.state, "No model selected. Use /models to select a model, or /connect to authenticate.");
23021
23078
  continue;
23022
23079
  }
23023
23080
  const { content, images } = consumePendingImages(userInput, this.state.pendingImages);
@@ -24147,4 +24204,4 @@ Object.defineProperty(exports, "theme", {
24147
24204
  }
24148
24205
  });
24149
24206
 
24150
- //# sourceMappingURL=tui-Dg7vMm5_.cjs.map
24207
+ //# sourceMappingURL=tui-7K6-8X8N.cjs.map