dexto 1.14.4 → 2.0.0-beta.0
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/auth/billing.d.ts +0 -6
- package/dist/cli/auth/billing.d.ts.map +1 -1
- package/dist/cli/auth/billing.js +0 -23
- package/dist/cli/auth/constants.d.ts +3 -31
- package/dist/cli/auth/constants.d.ts.map +1 -1
- package/dist/cli/auth/constants.js +9 -33
- package/dist/cli/auth/index.d.ts +2 -9
- package/dist/cli/auth/index.d.ts.map +1 -1
- package/dist/cli/auth/index.js +2 -7
- package/dist/cli/auth/sign-in-runtime.d.ts +12 -0
- package/dist/cli/auth/sign-in-runtime.d.ts.map +1 -0
- package/dist/cli/auth/sign-in-runtime.js +59 -0
- package/dist/cli/cloud/app-scopes.d.ts +4 -0
- package/dist/cli/cloud/app-scopes.d.ts.map +1 -0
- package/dist/cli/cloud/app-scopes.js +19 -0
- package/dist/cli/cloud/command.d.ts +143 -0
- package/dist/cli/cloud/command.d.ts.map +1 -0
- package/dist/cli/cloud/command.js +202 -0
- package/dist/cli/cloud/commands/account.d.ts +11 -0
- package/dist/cli/cloud/commands/account.d.ts.map +1 -0
- package/dist/cli/cloud/commands/account.js +128 -0
- package/dist/cli/cloud/commands/agents.d.ts +3 -0
- package/dist/cli/cloud/commands/agents.d.ts.map +1 -0
- package/dist/cli/cloud/commands/agents.js +524 -0
- package/dist/cli/cloud/commands/api.d.ts +3 -0
- package/dist/cli/cloud/commands/api.d.ts.map +1 -0
- package/dist/cli/cloud/commands/api.js +26 -0
- package/dist/cli/cloud/commands/app-files.d.ts +29 -0
- package/dist/cli/cloud/commands/app-files.d.ts.map +1 -0
- package/dist/cli/cloud/commands/app-files.js +72 -0
- package/dist/cli/cloud/commands/automations.d.ts +3 -0
- package/dist/cli/cloud/commands/automations.d.ts.map +1 -0
- package/dist/cli/cloud/commands/automations.js +232 -0
- package/dist/cli/cloud/commands/chats.d.ts +3 -0
- package/dist/cli/cloud/commands/chats.d.ts.map +1 -0
- package/dist/cli/cloud/commands/chats.js +189 -0
- package/dist/cli/cloud/commands/data-deletions.d.ts +3 -0
- package/dist/cli/cloud/commands/data-deletions.d.ts.map +1 -0
- package/dist/cli/cloud/commands/data-deletions.js +54 -0
- package/dist/cli/cloud/commands/deploys.d.ts +10 -0
- package/dist/cli/cloud/commands/deploys.d.ts.map +1 -0
- package/dist/cli/cloud/commands/deploys.js +223 -0
- package/dist/cli/cloud/commands/drive.d.ts +12 -0
- package/dist/cli/cloud/commands/drive.d.ts.map +1 -0
- package/dist/cli/cloud/commands/drive.js +320 -0
- package/dist/cli/cloud/commands/files.d.ts +24 -0
- package/dist/cli/cloud/commands/files.d.ts.map +1 -0
- package/dist/cli/cloud/commands/files.js +282 -0
- package/dist/cli/cloud/commands/find.d.ts +3 -0
- package/dist/cli/cloud/commands/find.d.ts.map +1 -0
- package/dist/cli/cloud/commands/find.js +63 -0
- package/dist/cli/cloud/commands/models.d.ts +3 -0
- package/dist/cli/cloud/commands/models.d.ts.map +1 -0
- package/dist/cli/cloud/commands/models.js +248 -0
- package/dist/cli/cloud/commands/profile.d.ts +3 -0
- package/dist/cli/cloud/commands/profile.d.ts.map +1 -0
- package/dist/cli/cloud/commands/profile.js +119 -0
- package/dist/cli/cloud/commands/projects.d.ts +5 -0
- package/dist/cli/cloud/commands/projects.d.ts.map +1 -0
- package/dist/cli/cloud/commands/projects.js +66 -0
- package/dist/cli/cloud/commands/publish.d.ts +3 -0
- package/dist/cli/cloud/commands/publish.d.ts.map +1 -0
- package/dist/cli/cloud/commands/publish.js +138 -0
- package/dist/cli/cloud/commands/sandboxes.d.ts +3 -0
- package/dist/cli/cloud/commands/sandboxes.d.ts.map +1 -0
- package/dist/cli/cloud/commands/sandboxes.js +265 -0
- package/dist/cli/cloud/commands/secrets.d.ts +3 -0
- package/dist/cli/cloud/commands/secrets.d.ts.map +1 -0
- package/dist/cli/cloud/commands/secrets.js +110 -0
- package/dist/cli/cloud/commands/skills.d.ts +3 -0
- package/dist/cli/cloud/commands/skills.d.ts.map +1 -0
- package/dist/cli/cloud/commands/skills.js +202 -0
- package/dist/cli/cloud/commands/web.d.ts +3 -0
- package/dist/cli/cloud/commands/web.d.ts.map +1 -0
- package/dist/cli/cloud/commands/web.js +53 -0
- package/dist/cli/cloud/commands/workspace-apps.d.ts +58 -0
- package/dist/cli/cloud/commands/workspace-apps.d.ts.map +1 -0
- package/dist/cli/cloud/commands/workspace-apps.js +656 -0
- package/dist/cli/cloud/commands/workspace.d.ts +36 -0
- package/dist/cli/cloud/commands/workspace.d.ts.map +1 -0
- package/dist/cli/cloud/commands/workspace.js +279 -0
- package/dist/cli/cloud/connection.d.ts +33 -0
- package/dist/cli/cloud/connection.d.ts.map +1 -0
- package/dist/cli/cloud/connection.js +38 -0
- package/dist/cli/cloud/events.d.ts +63 -0
- package/dist/cli/cloud/events.d.ts.map +1 -0
- package/dist/cli/cloud/events.js +72 -0
- package/dist/cli/cloud/host.d.ts +9 -0
- package/dist/cli/cloud/host.d.ts.map +1 -0
- package/dist/cli/cloud/host.js +105 -0
- package/dist/cli/cloud/local-chats.d.ts +73 -0
- package/dist/cli/cloud/local-chats.d.ts.map +1 -0
- package/dist/cli/cloud/local-chats.js +441 -0
- package/dist/cli/cloud/output.d.ts +34 -0
- package/dist/cli/cloud/output.d.ts.map +1 -0
- package/dist/cli/cloud/output.js +76 -0
- package/dist/cli/cloud/run.d.ts +26 -0
- package/dist/cli/cloud/run.d.ts.map +1 -0
- package/dist/cli/cloud/run.js +444 -0
- package/dist/cli/cloud/runtime.d.ts +33 -0
- package/dist/cli/cloud/runtime.d.ts.map +1 -0
- package/dist/cli/cloud/runtime.js +86 -0
- package/dist/cli/cloud/tar.d.ts +9 -0
- package/dist/cli/cloud/tar.d.ts.map +1 -0
- package/dist/cli/cloud/tar.js +69 -0
- package/dist/cli/cloud/transfer.d.ts +13 -0
- package/dist/cli/cloud/transfer.d.ts.map +1 -0
- package/dist/cli/cloud/transfer.js +35 -0
- package/dist/cli/cloud/v1.d.ts +19 -0
- package/dist/cli/cloud/v1.d.ts.map +1 -0
- package/dist/cli/cloud/v1.js +65 -0
- package/dist/cli/cloud/zip.d.ts +8 -0
- package/dist/cli/cloud/zip.d.ts.map +1 -0
- package/dist/cli/cloud/zip.js +66 -0
- package/dist/cli/commands/auth/sign-in-commands.d.ts +62 -0
- package/dist/cli/commands/auth/sign-in-commands.d.ts.map +1 -0
- package/dist/cli/commands/auth/sign-in-commands.js +247 -0
- package/dist/cli/commands/auth/sign-in-context.d.ts +16 -0
- package/dist/cli/commands/auth/sign-in-context.d.ts.map +1 -0
- package/dist/cli/commands/auth/sign-in-context.js +68 -0
- package/dist/cli/commands/cloud/register.d.ts +5 -0
- package/dist/cli/commands/cloud/register.d.ts.map +1 -1
- package/dist/cli/commands/cloud/register.js +42 -24
- package/dist/cli/commands/create-app.js +5 -6
- package/dist/cli/commands/create-image.d.ts.map +1 -1
- package/dist/cli/commands/create-image.js +9 -10
- package/dist/cli/commands/index.d.ts +0 -2
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +0 -2
- package/dist/cli/commands/init.d.ts +0 -2
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +5 -26
- package/dist/cli/commands/run/headless.js +2 -2
- package/dist/cli/commands/run/output.d.ts +29 -10
- package/dist/cli/commands/run/output.d.ts.map +1 -1
- package/dist/cli/commands/run/output.js +44 -22
- package/dist/cli/commands/run/register.d.ts.map +1 -1
- package/dist/cli/commands/run/register.js +21 -9
- package/dist/cli/commands/session/register.d.ts.map +1 -1
- package/dist/cli/commands/session/register.js +51 -21
- package/dist/cli/commands/session-commands.js +1 -1
- package/dist/cli/commands/setup.js +17 -14
- package/dist/cli/help-json.d.ts +22 -0
- package/dist/cli/help-json.d.ts.map +1 -0
- package/dist/cli/help-json.js +20 -0
- package/dist/cli/modes/cli.d.ts.map +1 -1
- package/dist/cli/modes/cli.js +42 -9
- package/dist/cli/modes/server.js +8 -8
- package/dist/cli/modes/web.js +3 -3
- package/dist/cli/utils/dexto-auth-check.d.ts +1 -1
- package/dist/cli/utils/dexto-auth-check.d.ts.map +1 -1
- package/dist/cli/utils/dexto-auth-check.js +4 -5
- package/dist/cli/utils/dexto-setup.d.ts +4 -5
- package/dist/cli/utils/dexto-setup.d.ts.map +1 -1
- package/dist/cli/utils/dexto-setup.js +17 -14
- package/dist/cli/utils/provider-setup.js +1 -1
- package/dist/cli/utils/scaffolding-utils.d.ts +9 -3
- package/dist/cli/utils/scaffolding-utils.d.ts.map +1 -1
- package/dist/cli/utils/scaffolding-utils.js +48 -40
- package/dist/cli/utils/version-check.d.ts.map +1 -1
- package/dist/cli/utils/version-check.js +2 -1
- package/dist/index-main.js +33 -65
- package/package.json +8 -7
- package/dist/cli/auth/api-client.d.ts +0 -125
- package/dist/cli/auth/api-client.d.ts.map +0 -1
- package/dist/cli/auth/api-client.js +0 -585
- package/dist/cli/auth/device.d.ts +0 -14
- package/dist/cli/auth/device.d.ts.map +0 -1
- package/dist/cli/auth/device.js +0 -84
- package/dist/cli/auth/dexto-api-key.d.ts +0 -34
- package/dist/cli/auth/dexto-api-key.d.ts.map +0 -1
- package/dist/cli/auth/dexto-api-key.js +0 -160
- package/dist/cli/auth/login-persistence.d.ts +0 -15
- package/dist/cli/auth/login-persistence.d.ts.map +0 -1
- package/dist/cli/auth/login-persistence.js +0 -72
- package/dist/cli/auth/oauth.d.ts +0 -39
- package/dist/cli/auth/oauth.d.ts.map +0 -1
- package/dist/cli/auth/oauth.js +0 -434
- package/dist/cli/auth/service.d.ts +0 -24
- package/dist/cli/auth/service.d.ts.map +0 -1
- package/dist/cli/auth/service.js +0 -161
- package/dist/cli/auth/types.d.ts +0 -11
- package/dist/cli/auth/types.d.ts.map +0 -1
- package/dist/cli/auth/types.js +0 -1
- package/dist/cli/cloud-chat.d.ts +0 -18
- package/dist/cli/cloud-chat.d.ts.map +0 -1
- package/dist/cli/cloud-chat.js +0 -734
- package/dist/cli/commands/auth/index.d.ts +0 -4
- package/dist/cli/commands/auth/index.d.ts.map +0 -1
- package/dist/cli/commands/auth/index.js +0 -4
- package/dist/cli/commands/auth/login.d.ts +0 -12
- package/dist/cli/commands/auth/login.d.ts.map +0 -1
- package/dist/cli/commands/auth/login.js +0 -153
- package/dist/cli/commands/auth/logout.d.ts +0 -5
- package/dist/cli/commands/auth/logout.d.ts.map +0 -1
- package/dist/cli/commands/auth/logout.js +0 -81
- package/dist/cli/commands/auth/register.d.ts +0 -3
- package/dist/cli/commands/auth/register.d.ts.map +0 -1
- package/dist/cli/commands/auth/register.js +0 -96
- package/dist/cli/commands/auth/status.d.ts +0 -2
- package/dist/cli/commands/auth/status.d.ts.map +0 -1
- package/dist/cli/commands/auth/status.js +0 -22
- package/dist/cli/commands/billing/index.d.ts +0 -2
- package/dist/cli/commands/billing/index.d.ts.map +0 -1
- package/dist/cli/commands/billing/index.js +0 -2
- package/dist/cli/commands/billing/register.d.ts +0 -3
- package/dist/cli/commands/billing/register.d.ts.map +0 -1
- package/dist/cli/commands/billing/register.js +0 -20
- package/dist/cli/commands/billing/status.d.ts +0 -8
- package/dist/cli/commands/billing/status.d.ts.map +0 -1
- package/dist/cli/commands/billing/status.js +0 -71
- package/dist/cli/commands/cloud/discovery.d.ts +0 -17
- package/dist/cli/commands/cloud/discovery.d.ts.map +0 -1
- package/dist/cli/commands/cloud/discovery.js +0 -88
- package/dist/cli/commands/deploy/client.d.ts +0 -113
- package/dist/cli/commands/deploy/client.d.ts.map +0 -1
- package/dist/cli/commands/deploy/client.js +0 -519
- package/dist/cli/commands/deploy/config.d.ts +0 -37
- package/dist/cli/commands/deploy/config.d.ts.map +0 -1
- package/dist/cli/commands/deploy/config.js +0 -144
- package/dist/cli/commands/deploy/entry-agent.d.ts +0 -3
- package/dist/cli/commands/deploy/entry-agent.d.ts.map +0 -1
- package/dist/cli/commands/deploy/entry-agent.js +0 -70
- package/dist/cli/commands/deploy/index.d.ts +0 -12
- package/dist/cli/commands/deploy/index.d.ts.map +0 -1
- package/dist/cli/commands/deploy/index.js +0 -370
- package/dist/cli/commands/deploy/links.d.ts +0 -3
- package/dist/cli/commands/deploy/links.d.ts.map +0 -1
- package/dist/cli/commands/deploy/links.js +0 -53
- package/dist/cli/commands/deploy/register.d.ts +0 -6
- package/dist/cli/commands/deploy/register.d.ts.map +0 -1
- package/dist/cli/commands/deploy/register.js +0 -128
- package/dist/cli/commands/deploy/snapshot.d.ts +0 -12
- package/dist/cli/commands/deploy/snapshot.d.ts.map +0 -1
- package/dist/cli/commands/deploy/snapshot.js +0 -76
- package/dist/cli/commands/deploy/state.d.ts +0 -13
- package/dist/cli/commands/deploy/state.d.ts.map +0 -1
- package/dist/cli/commands/deploy/state.js +0 -122
- package/dist/cli/commands/span/register.d.ts +0 -6
- package/dist/cli/commands/span/register.d.ts.map +0 -1
- package/dist/cli/commands/span/register.js +0 -25
- package/dist/cli/commands/trace/client.d.ts +0 -98
- package/dist/cli/commands/trace/client.d.ts.map +0 -1
- package/dist/cli/commands/trace/client.js +0 -150
- package/dist/cli/commands/trace/format.d.ts +0 -5
- package/dist/cli/commands/trace/format.d.ts.map +0 -1
- package/dist/cli/commands/trace/format.js +0 -58
- package/dist/cli/commands/trace/index.d.ts +0 -21
- package/dist/cli/commands/trace/index.d.ts.map +0 -1
- package/dist/cli/commands/trace/index.js +0 -49
- package/dist/cli/commands/trace/register.d.ts +0 -6
- package/dist/cli/commands/trace/register.d.ts.map +0 -1
- package/dist/cli/commands/trace/register.js +0 -71
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
import { withAnalytics, safeExit, ExitSignal } from '../../../analytics/wrapper.js';
|
|
2
2
|
export function registerSessionCommand({ program, bootstrapAgentFromGlobalOpts, }) {
|
|
3
|
-
const
|
|
4
|
-
|
|
3
|
+
const chatCommand = program
|
|
4
|
+
.command('chat')
|
|
5
|
+
.description("Your chats: this machine's sessions, and other agents' chats into Dexto");
|
|
6
|
+
chatCommand
|
|
5
7
|
.command('list')
|
|
6
|
-
.description(
|
|
7
|
-
.action(withAnalytics('
|
|
8
|
+
.description("List this machine's chats")
|
|
9
|
+
.action(withAnalytics('chat list', async () => {
|
|
8
10
|
let agent = null;
|
|
9
11
|
try {
|
|
10
12
|
agent = await bootstrapAgentFromGlobalOpts({ mode: 'non-interactive' });
|
|
11
13
|
const { handleSessionListCommand } = await import('../session-commands.js');
|
|
12
14
|
await handleSessionListCommand(agent);
|
|
13
|
-
safeExit('
|
|
15
|
+
safeExit('chat list', 0);
|
|
14
16
|
}
|
|
15
17
|
catch (err) {
|
|
16
18
|
if (err instanceof ExitSignal)
|
|
17
19
|
throw err;
|
|
18
|
-
console.error(`❌ dexto
|
|
19
|
-
safeExit('
|
|
20
|
+
console.error(`❌ dexto chat list command failed: ${err}`);
|
|
21
|
+
safeExit('chat list', 1, 'error');
|
|
20
22
|
}
|
|
21
23
|
finally {
|
|
22
24
|
if (agent) {
|
|
@@ -24,23 +26,23 @@ export function registerSessionCommand({ program, bootstrapAgentFromGlobalOpts,
|
|
|
24
26
|
}
|
|
25
27
|
}
|
|
26
28
|
}));
|
|
27
|
-
|
|
29
|
+
chatCommand
|
|
28
30
|
.command('history')
|
|
29
|
-
.description(
|
|
30
|
-
.argument('[sessionId]', '
|
|
31
|
-
.action(withAnalytics('
|
|
31
|
+
.description("Show a chat's messages")
|
|
32
|
+
.argument('[sessionId]', 'The chat (default: the current one)')
|
|
33
|
+
.action(withAnalytics('chat history', async (sessionId) => {
|
|
32
34
|
let agent = null;
|
|
33
35
|
try {
|
|
34
36
|
agent = await bootstrapAgentFromGlobalOpts({ mode: 'non-interactive' });
|
|
35
37
|
const { handleSessionHistoryCommand } = await import('../session-commands.js');
|
|
36
38
|
await handleSessionHistoryCommand(agent, sessionId);
|
|
37
|
-
safeExit('
|
|
39
|
+
safeExit('chat history', 0);
|
|
38
40
|
}
|
|
39
41
|
catch (err) {
|
|
40
42
|
if (err instanceof ExitSignal)
|
|
41
43
|
throw err;
|
|
42
|
-
console.error(`❌ dexto
|
|
43
|
-
safeExit('
|
|
44
|
+
console.error(`❌ dexto chat history command failed: ${err}`);
|
|
45
|
+
safeExit('chat history', 1, 'error');
|
|
44
46
|
}
|
|
45
47
|
finally {
|
|
46
48
|
if (agent) {
|
|
@@ -48,23 +50,23 @@ export function registerSessionCommand({ program, bootstrapAgentFromGlobalOpts,
|
|
|
48
50
|
}
|
|
49
51
|
}
|
|
50
52
|
}));
|
|
51
|
-
|
|
53
|
+
chatCommand
|
|
52
54
|
.command('delete')
|
|
53
|
-
.description('Delete a
|
|
54
|
-
.argument('<sessionId>', '
|
|
55
|
-
.action(withAnalytics('
|
|
55
|
+
.description('Delete a chat')
|
|
56
|
+
.argument('<sessionId>', 'The chat to delete')
|
|
57
|
+
.action(withAnalytics('chat delete', async (sessionId) => {
|
|
56
58
|
let agent = null;
|
|
57
59
|
try {
|
|
58
60
|
agent = await bootstrapAgentFromGlobalOpts({ mode: 'non-interactive' });
|
|
59
61
|
const { handleSessionDeleteCommand } = await import('../session-commands.js');
|
|
60
62
|
await handleSessionDeleteCommand(agent, sessionId);
|
|
61
|
-
safeExit('
|
|
63
|
+
safeExit('chat delete', 0);
|
|
62
64
|
}
|
|
63
65
|
catch (err) {
|
|
64
66
|
if (err instanceof ExitSignal)
|
|
65
67
|
throw err;
|
|
66
|
-
console.error(`❌ dexto
|
|
67
|
-
safeExit('
|
|
68
|
+
console.error(`❌ dexto chat delete command failed: ${err}`);
|
|
69
|
+
safeExit('chat delete', 1, 'error');
|
|
68
70
|
}
|
|
69
71
|
finally {
|
|
70
72
|
if (agent) {
|
|
@@ -72,4 +74,32 @@ export function registerSessionCommand({ program, bootstrapAgentFromGlobalOpts,
|
|
|
72
74
|
}
|
|
73
75
|
}
|
|
74
76
|
}));
|
|
77
|
+
// Claude Code and Codex chats on this machine, and importing them into Dexto, run on the
|
|
78
|
+
// cloud command engine with its own options; analytics records only the command name.
|
|
79
|
+
for (const [word, description] of [
|
|
80
|
+
['local', 'List Claude Code and Codex chats on this machine that Dexto can import'],
|
|
81
|
+
['import', 'Import Claude Code or Codex chats into Dexto'],
|
|
82
|
+
])
|
|
83
|
+
chatCommand
|
|
84
|
+
.command(word)
|
|
85
|
+
.description(description)
|
|
86
|
+
.helpOption(false)
|
|
87
|
+
.passThroughOptions()
|
|
88
|
+
.allowUnknownOption()
|
|
89
|
+
.allowExcessArguments()
|
|
90
|
+
.argument('[args...]')
|
|
91
|
+
.action(async (args) => {
|
|
92
|
+
await withAnalytics(`chat ${word}`, async () => {
|
|
93
|
+
const [{ runCloud }, { nodeCloudHost }] = await Promise.all([
|
|
94
|
+
import('../../cloud/run.js'),
|
|
95
|
+
import('../../cloud/host.js'),
|
|
96
|
+
]);
|
|
97
|
+
const code = await runCloud(nodeCloudHost(new AbortController().signal), [
|
|
98
|
+
'chat',
|
|
99
|
+
word,
|
|
100
|
+
...args,
|
|
101
|
+
]);
|
|
102
|
+
safeExit(`chat ${word}`, code);
|
|
103
|
+
})();
|
|
104
|
+
});
|
|
75
105
|
}
|
|
@@ -117,7 +117,7 @@ export async function handleSessionHistoryCommand(agent, sessionId) {
|
|
|
117
117
|
catch (error) {
|
|
118
118
|
if (error instanceof Error && error.message.includes('not found')) {
|
|
119
119
|
console.log(chalk.red(`❌ Session not found: ${sessionId || 'current'}`));
|
|
120
|
-
console.log(chalk.gray(' Use `dexto
|
|
120
|
+
console.log(chalk.gray(' Use `dexto chat list` to see available sessions'));
|
|
121
121
|
}
|
|
122
122
|
else if (error instanceof Error && error.message !== 'No sessions found') {
|
|
123
123
|
logger.error(`Failed to get session history: ${error.message}`, null, 'red');
|
|
@@ -3,14 +3,13 @@ import chalk from 'chalk';
|
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { acceptsAnyModel, getDefaultModelForProvider, getReasoningProfile, getSupportedModels, isValidProviderModel, LLM_PROVIDERS, LLM_REGISTRY, requiresApiKey, supportsCustomModels, } from '@dexto/llm';
|
|
5
5
|
import { getCuratedModelsForProvider, logger, resolveApiKeyForProvider } from '@dexto/core';
|
|
6
|
-
import { createInitialPreferences, saveGlobalPreferences, loadGlobalPreferences, getGlobalPreferencesPath, updateGlobalPreferences, setActiveModel, isDextoAuthEnabled, loadCustomModels, saveCustomModel, deleteCustomModel, globalPreferencesExist, getDefaultModelAuthProfile, loadModelAuthProfilesSync, } from '@dexto/agent-management';
|
|
6
|
+
import { createInitialPreferences, saveGlobalPreferences, loadGlobalPreferences, getGlobalPreferencesPath, updateGlobalPreferences, setActiveModel, isDextoAuthEnabled, loadCustomModels, saveCustomModel, deleteCustomModel, globalPreferencesExist, getDefaultModelAuthProfile, loadModelAuthProfilesSync, dextoGateway, } from '@dexto/agent-management';
|
|
7
7
|
import { interactiveApiKeySetup, hasApiKeyConfigured } from '../utils/api-key-setup.js';
|
|
8
8
|
import { selectProvider, getProviderDisplayName, getProviderEnvVar, providerRequiresBaseURL, getDefaultModel, } from '../utils/provider-setup.js';
|
|
9
9
|
import { setupLocalModels, setupOllamaModels, hasSelectedModel, getModelFromResult, } from '../utils/local-model-setup.js';
|
|
10
10
|
import { requiresSetup } from '../utils/setup-utils.js';
|
|
11
|
-
import { canUseDextoProvider } from '../utils/dexto-setup.js';
|
|
12
|
-
import {
|
|
13
|
-
import { loadAuth, getBillingBalanceForCurrentLogin, openDextoBillingPage } from '../auth/index.js';
|
|
11
|
+
import { canUseDextoProvider, signInForDextoModels } from '../utils/dexto-setup.js';
|
|
12
|
+
import { openBrowserUrl } from '../auth/browser-launch.js';
|
|
14
13
|
import { DEXTO_CREDITS_URL } from '../auth/constants.js';
|
|
15
14
|
import * as p from '@clack/prompts';
|
|
16
15
|
import { capture } from '../../analytics/index.js';
|
|
@@ -446,11 +445,11 @@ async function handleDextoProviderSetup(options = {}) {
|
|
|
446
445
|
return false;
|
|
447
446
|
};
|
|
448
447
|
console.log(chalk.magenta('\n★ Dexto Nova Setup\n'));
|
|
449
|
-
//
|
|
448
|
+
// Signed in with permission to spend credits, or DEXTO_API_KEY
|
|
450
449
|
const hasKey = await canUseDextoProvider();
|
|
451
450
|
if (!hasKey) {
|
|
452
451
|
p.note(`Dexto gives you instant access to ${chalk.cyan('all AI models')} with a single account.\n\n` +
|
|
453
|
-
`We'll
|
|
452
|
+
`We'll sign you in with your browser, or a code over SSH.`, 'Login Required');
|
|
454
453
|
const shouldLogin = await p.confirm({
|
|
455
454
|
message: 'Continue with Dexto login?',
|
|
456
455
|
initialValue: true,
|
|
@@ -459,10 +458,10 @@ async function handleDextoProviderSetup(options = {}) {
|
|
|
459
458
|
return abort('Setup cancelled');
|
|
460
459
|
}
|
|
461
460
|
try {
|
|
462
|
-
await
|
|
463
|
-
//
|
|
461
|
+
await signInForDextoModels();
|
|
462
|
+
// Consent can leave out spending credits, and an organization can have no Cloud project.
|
|
464
463
|
if (!(await canUseDextoProvider())) {
|
|
465
|
-
p.log.error('
|
|
464
|
+
p.log.error("Signed in, but Dexto models can't run yet: allow spending credits when asked, and make sure your organization has a Cloud project. Or use `dexto setup` with a different provider.");
|
|
466
465
|
return abort('Setup cancelled', 1);
|
|
467
466
|
}
|
|
468
467
|
p.log.success('Login successful! Continuing with setup...');
|
|
@@ -474,9 +473,12 @@ async function handleDextoProviderSetup(options = {}) {
|
|
|
474
473
|
}
|
|
475
474
|
}
|
|
476
475
|
else {
|
|
477
|
-
const
|
|
478
|
-
|
|
479
|
-
|
|
476
|
+
const [{ describeSignIn }, { nodeSignInContext }] = await Promise.all([
|
|
477
|
+
import('./auth/sign-in-commands.js'),
|
|
478
|
+
import('./auth/sign-in-context.js'),
|
|
479
|
+
]);
|
|
480
|
+
const signedInAs = await describeSignIn(await nodeSignInContext());
|
|
481
|
+
p.log.success(`Signed in to Dexto as ${signedInAs ?? 'unknown'}`);
|
|
480
482
|
}
|
|
481
483
|
const balance = await getCreditsBalance();
|
|
482
484
|
if (balance !== null) {
|
|
@@ -608,7 +610,7 @@ async function handleDextoProviderSetup(options = {}) {
|
|
|
608
610
|
}
|
|
609
611
|
async function openCreditsPage() {
|
|
610
612
|
try {
|
|
611
|
-
await
|
|
613
|
+
await openBrowserUrl(DEXTO_CREDITS_URL);
|
|
612
614
|
}
|
|
613
615
|
catch (error) {
|
|
614
616
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
@@ -618,7 +620,8 @@ async function openCreditsPage() {
|
|
|
618
620
|
}
|
|
619
621
|
async function getCreditsBalance() {
|
|
620
622
|
try {
|
|
621
|
-
|
|
623
|
+
const summary = await dextoGateway.dextoBillingSummary(dextoGateway.defaultDextoGatewayOptions());
|
|
624
|
+
return summary?.balanceUsd ?? null;
|
|
622
625
|
}
|
|
623
626
|
catch {
|
|
624
627
|
return null;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
|
+
/** `--help` (or `-h`) with `--json`, and nothing else. */
|
|
3
|
+
export declare function isRootJsonHelp(args: readonly string[]): boolean;
|
|
4
|
+
export declare function rootHelpJson(program: Command): {
|
|
5
|
+
usage: string[];
|
|
6
|
+
commands: {
|
|
7
|
+
name: string;
|
|
8
|
+
summary: string;
|
|
9
|
+
help: string;
|
|
10
|
+
}[];
|
|
11
|
+
output: string;
|
|
12
|
+
exit_codes: {
|
|
13
|
+
readonly '0': "done";
|
|
14
|
+
readonly '1': "failed";
|
|
15
|
+
readonly '2': "usage or invalid input";
|
|
16
|
+
readonly '3': "needs sign-in or permission";
|
|
17
|
+
readonly '4': "needs confirmation: pass --yes once your person has agreed";
|
|
18
|
+
readonly '5': "not found";
|
|
19
|
+
readonly '6': "waiting on a person, such as an approval";
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=help-json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help-json.d.ts","sourceRoot":"","sources":["../../src/cli/help-json.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAM/D;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO;;;;;;;;;;;;;;;;;EAW5C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// `dexto --help --json`: the commands and the frozen exit codes, for agents.
|
|
2
|
+
import { EXIT_CODE_MEANINGS } from './cloud/command.js';
|
|
3
|
+
/** `--help` (or `-h`) with `--json`, and nothing else. */
|
|
4
|
+
export function isRootJsonHelp(args) {
|
|
5
|
+
return (args.length === 2 &&
|
|
6
|
+
args.includes('--json') &&
|
|
7
|
+
(args.includes('--help') || args.includes('-h')));
|
|
8
|
+
}
|
|
9
|
+
export function rootHelpJson(program) {
|
|
10
|
+
return {
|
|
11
|
+
usage: ['dexto [prompt]', 'dexto <command> [options]'],
|
|
12
|
+
commands: program.commands.map((command) => ({
|
|
13
|
+
name: command.name(),
|
|
14
|
+
summary: command.description(),
|
|
15
|
+
help: `dexto ${command.name()} --help --json`,
|
|
16
|
+
})),
|
|
17
|
+
output: 'JSON when stdout isn\'t a terminal; failures as {"error":{"code","message","fix"}} on stderr.',
|
|
18
|
+
exit_codes: EXIT_CODE_MEANINGS,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/cli/modes/cli.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAuBpD,wBAAsB,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/cli/modes/cli.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAuBpD,wBAAsB,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA+SxE"}
|
package/dist/cli/modes/cli.js
CHANGED
|
@@ -133,7 +133,7 @@ export async function runCliMode(context) {
|
|
|
133
133
|
const existing = await agent.getSession(opts.resume);
|
|
134
134
|
if (!existing) {
|
|
135
135
|
console.error(`❌ Session '${opts.resume}' not found`);
|
|
136
|
-
console.error('💡 Use `dexto
|
|
136
|
+
console.error('💡 Use `dexto chat list` to see available sessions');
|
|
137
137
|
safeExit('main', 1, 'resume-failed');
|
|
138
138
|
}
|
|
139
139
|
cliSessionId = opts.resume;
|
|
@@ -166,12 +166,14 @@ export async function runCliMode(context) {
|
|
|
166
166
|
console.info = noOp;
|
|
167
167
|
let inkError = undefined;
|
|
168
168
|
try {
|
|
169
|
-
const [{ startInkCliRefactored, setTuiRuntimeServices }, { registerGracefulShutdown }, { applyLayeredEnvironmentLoading }, { getProviderDisplayName, isValidApiKeyFormat, getProviderInstructions }, {
|
|
169
|
+
const [{ startInkCliRefactored, setTuiRuntimeServices }, { registerGracefulShutdown }, { applyLayeredEnvironmentLoading }, { getProviderDisplayName, isValidApiKeyFormat, getProviderInstructions }, { buildDextoBillingUrl, openDextoBillingPage }, { describeSignIn, login, logout }, { nodeSignInContext }, { isUsingDextoCredits }, { canUseDextoProvider }, { capture },] = await Promise.all([
|
|
170
170
|
import('@dexto/tui'),
|
|
171
171
|
import('../../utils/graceful-shutdown.js'),
|
|
172
172
|
import('../../utils/env.js'),
|
|
173
173
|
import('../utils/provider-setup.js'),
|
|
174
174
|
import('../auth/index.js'),
|
|
175
|
+
import('../commands/auth/sign-in-commands.js'),
|
|
176
|
+
import('../commands/auth/sign-in-context.js'),
|
|
175
177
|
import('../../config/effective-llm.js'),
|
|
176
178
|
import('../utils/dexto-setup.js'),
|
|
177
179
|
import('../../analytics/index.js'),
|
|
@@ -185,17 +187,48 @@ export async function runCliMode(context) {
|
|
|
185
187
|
getProviderDisplayName,
|
|
186
188
|
isValidApiKeyFormat,
|
|
187
189
|
getProviderInstructions,
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
190
|
+
currentSignIn: async () => describeSignIn(await nodeSignInContext({
|
|
191
|
+
result: () => undefined,
|
|
192
|
+
confirm: async () => false,
|
|
193
|
+
note: () => undefined,
|
|
194
|
+
signal: new AbortController().signal,
|
|
195
|
+
})),
|
|
196
|
+
signIn: async ({ signal, onNote }) => {
|
|
197
|
+
const printed = [];
|
|
198
|
+
await login(await nodeSignInContext({
|
|
199
|
+
result: (_value, text) => printed.push(text),
|
|
200
|
+
confirm: async () => false,
|
|
201
|
+
note: onNote,
|
|
202
|
+
signal,
|
|
203
|
+
}), {
|
|
204
|
+
profile: null,
|
|
205
|
+
org: null,
|
|
206
|
+
device: false,
|
|
207
|
+
browser: true,
|
|
208
|
+
scopes: [],
|
|
209
|
+
apiKey: null,
|
|
210
|
+
});
|
|
211
|
+
return printed.join('\n');
|
|
212
|
+
},
|
|
213
|
+
signOut: async () => {
|
|
214
|
+
const said = [];
|
|
215
|
+
await logout(await nodeSignInContext({
|
|
216
|
+
result: (_value, text) => said.push(text),
|
|
217
|
+
confirm: async () => false,
|
|
218
|
+
note: (text) => said.push(text),
|
|
219
|
+
signal: new AbortController().signal,
|
|
220
|
+
}), { profile: null });
|
|
221
|
+
return said.join('\n');
|
|
222
|
+
},
|
|
195
223
|
isUsingDextoCredits,
|
|
196
224
|
canUseDextoProvider,
|
|
197
225
|
buildDextoBillingUrl,
|
|
198
226
|
openDextoBillingPage,
|
|
227
|
+
dextoCreditBalance: async () => {
|
|
228
|
+
const { dextoGateway } = await import('@dexto/agent-management');
|
|
229
|
+
const summary = await dextoGateway.dextoBillingSummary(dextoGateway.defaultDextoGatewayOptions());
|
|
230
|
+
return summary?.balanceUsd ?? null;
|
|
231
|
+
},
|
|
199
232
|
});
|
|
200
233
|
await startInkCliRefactored(agent, cliSessionId, {
|
|
201
234
|
updateInfo: cliUpdateInfo ?? undefined,
|
package/dist/cli/modes/server.js
CHANGED
|
@@ -19,15 +19,15 @@ export async function runServerMode(context) {
|
|
|
19
19
|
})();
|
|
20
20
|
const apiPort = getPort(process.env.PORT, defaultPort, 'PORT');
|
|
21
21
|
const apiUrl = process.env.DEXTO_URL ?? `http://localhost:${apiPort}`;
|
|
22
|
-
console.
|
|
22
|
+
console.error('🌐 Starting server (REST APIs + SSE)...');
|
|
23
23
|
await startHonoApiServer(agent, apiPort, agentCard, derivedAgentId, resolvedPath, workspaceRoot);
|
|
24
|
-
console.
|
|
25
|
-
console.
|
|
26
|
-
console.
|
|
27
|
-
console.
|
|
28
|
-
console.
|
|
29
|
-
console.
|
|
30
|
-
console.
|
|
24
|
+
console.error(`✅ Server running at ${apiUrl}`);
|
|
25
|
+
console.error('Available endpoints:');
|
|
26
|
+
console.error(' POST /api/message - Send async message');
|
|
27
|
+
console.error(' POST /api/message-sync - Send sync message');
|
|
28
|
+
console.error(' POST /api/reset - Reset conversation');
|
|
29
|
+
console.error(' GET /api/mcp/servers - List MCP servers');
|
|
30
|
+
console.error(' SSE support available for real-time events');
|
|
31
31
|
const serverUpdateInfo = await getVersionCheckResult();
|
|
32
32
|
if (serverUpdateInfo) {
|
|
33
33
|
const { displayUpdateNotification } = await import('../utils/version-check.js');
|
package/dist/cli/modes/web.js
CHANGED
|
@@ -31,7 +31,7 @@ export async function runWebMode(context) {
|
|
|
31
31
|
}
|
|
32
32
|
const webUIConfig = webRoot ? { analytics: await getWebUIAnalyticsConfig() } : undefined;
|
|
33
33
|
await startHonoApiServer(agent, port, agent.config.agentCard || {}, derivedAgentId, resolvedPath, workspaceRoot, webRoot, webUIConfig);
|
|
34
|
-
console.
|
|
34
|
+
console.error(chalk.green(`✅ Server running at ${serverUrl}`));
|
|
35
35
|
const webUpdateInfo = await getVersionCheckResult();
|
|
36
36
|
if (webUpdateInfo) {
|
|
37
37
|
const { displayUpdateNotification } = await import('../utils/version-check.js');
|
|
@@ -41,10 +41,10 @@ export async function runWebMode(context) {
|
|
|
41
41
|
try {
|
|
42
42
|
const { default: open } = await import('open');
|
|
43
43
|
await open(serverUrl, { wait: false });
|
|
44
|
-
console.
|
|
44
|
+
console.error(chalk.green(`🌐 Opened WebUI in browser: ${serverUrl}`));
|
|
45
45
|
}
|
|
46
46
|
catch (_error) {
|
|
47
|
-
console.
|
|
47
|
+
console.error(chalk.yellow(`💡 WebUI is available at: ${serverUrl}`));
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
}
|
|
@@ -42,7 +42,7 @@ export interface DextoAuthCheckResult {
|
|
|
42
42
|
* const result = await checkDextoAuthState(true, 'coding-agent');
|
|
43
43
|
* if (!result.shouldContinue) {
|
|
44
44
|
* if (result.action === 'login') {
|
|
45
|
-
* await
|
|
45
|
+
* await signInForDextoModels();
|
|
46
46
|
* } else if (result.action === 'setup') {
|
|
47
47
|
* await handleSetupCommand();
|
|
48
48
|
* }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dexto-auth-check.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/dexto-auth-check.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAOH,MAAM,WAAW,oBAAoB;IACjC,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;CACzC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,mBAAmB,CACrC,WAAW,GAAE,OAAc,EAC3B,OAAO,GAAE,MAAuB,GACjC,OAAO,CAAC,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"dexto-auth-check.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/dexto-auth-check.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAOH,MAAM,WAAW,oBAAoB;IACjC,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;CACzC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,mBAAmB,CACrC,WAAW,GAAE,OAAc,EAC3B,OAAO,GAAE,MAAuB,GACjC,OAAO,CAAC,oBAAoB,CAAC,CAmE/B"}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
*/
|
|
26
26
|
import chalk from 'chalk';
|
|
27
27
|
import * as p from '@clack/prompts';
|
|
28
|
-
import {
|
|
28
|
+
import { canUseDextoProvider } from './dexto-setup.js';
|
|
29
29
|
import { getEffectiveLLMConfig } from '../../config/effective-llm.js';
|
|
30
30
|
/**
|
|
31
31
|
* Check if user is configured to use Dexto Nova credits but is not authenticated.
|
|
@@ -43,7 +43,7 @@ import { getEffectiveLLMConfig } from '../../config/effective-llm.js';
|
|
|
43
43
|
* const result = await checkDextoAuthState(true, 'coding-agent');
|
|
44
44
|
* if (!result.shouldContinue) {
|
|
45
45
|
* if (result.action === 'login') {
|
|
46
|
-
* await
|
|
46
|
+
* await signInForDextoModels();
|
|
47
47
|
* } else if (result.action === 'setup') {
|
|
48
48
|
* await handleSetupCommand();
|
|
49
49
|
* }
|
|
@@ -57,9 +57,8 @@ export async function checkDextoAuthState(interactive = true, agentId = 'coding-
|
|
|
57
57
|
if (!effectiveLLM || effectiveLLM.provider !== 'dexto-nova') {
|
|
58
58
|
return { shouldContinue: true };
|
|
59
59
|
}
|
|
60
|
-
// Using dexto-nova provider - check
|
|
61
|
-
|
|
62
|
-
if (authenticated) {
|
|
60
|
+
// Using dexto-nova provider - check the sign-in can run Dexto models
|
|
61
|
+
if (await canUseDextoProvider()) {
|
|
63
62
|
return { shouldContinue: true };
|
|
64
63
|
}
|
|
65
64
|
// User is configured for Dexto Nova credits but not logged in
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
+
export { canUseDextoProvider } from '@dexto/agent-management';
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* 1. User has usable Dexto auth state from `dexto login`
|
|
5
|
-
* 2. Has DEXTO_API_KEY (from auth config or environment)
|
|
3
|
+
* Signs in to Dexto asking to spend credits (`cloud:write`), as choosing Dexto models needs. A
|
|
4
|
+
* sign-in that only reads keeps what it had and gains that.
|
|
6
5
|
*/
|
|
7
|
-
export declare function
|
|
6
|
+
export declare function signInForDextoModels(): Promise<void>;
|
|
8
7
|
//# sourceMappingURL=dexto-setup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dexto-setup.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/dexto-setup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dexto-setup.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/dexto-setup.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;GAGG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAa1D"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
//
|
|
2
|
-
|
|
1
|
+
// Setting this machine up for Dexto models: whether they can run, and signing in so they can.
|
|
2
|
+
export { canUseDextoProvider } from '@dexto/agent-management';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* 1. User has usable Dexto auth state from `dexto login`
|
|
7
|
-
* 2. Has DEXTO_API_KEY (from auth config or environment)
|
|
4
|
+
* Signs in to Dexto asking to spend credits (`cloud:write`), as choosing Dexto models needs. A
|
|
5
|
+
* sign-in that only reads keeps what it had and gains that.
|
|
8
6
|
*/
|
|
9
|
-
export async function
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
7
|
+
export async function signInForDextoModels() {
|
|
8
|
+
const [{ login }, { nodeSignInContext }] = await Promise.all([
|
|
9
|
+
import('../commands/auth/sign-in-commands.js'),
|
|
10
|
+
import('../commands/auth/sign-in-context.js'),
|
|
11
|
+
]);
|
|
12
|
+
await login(await nodeSignInContext(), {
|
|
13
|
+
profile: null,
|
|
14
|
+
org: null,
|
|
15
|
+
device: false,
|
|
16
|
+
browser: true,
|
|
17
|
+
scopes: ['cloud:write'],
|
|
18
|
+
apiKey: null,
|
|
19
|
+
});
|
|
17
20
|
}
|
|
@@ -260,7 +260,7 @@ export async function selectProvider() {
|
|
|
260
260
|
*/
|
|
261
261
|
export function getProviderDisplayName(provider) {
|
|
262
262
|
if (provider === 'dexto-nova')
|
|
263
|
-
return 'Dexto
|
|
263
|
+
return 'Dexto';
|
|
264
264
|
if (isLLMProvider(provider)) {
|
|
265
265
|
return PROVIDER_REGISTRY[provider]?.label || provider;
|
|
266
266
|
}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import * as p from '@clack/prompts';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* The range a scaffolded project asks for `packageName` (an `@dexto/*` package): the version the
|
|
4
|
+
* CLI itself runs, since dexto versions apart from them. A package the CLI doesn't install, such as
|
|
5
|
+
* @dexto/image-bundler, takes @dexto/core's, as the @dexto/* packages version together.
|
|
6
|
+
*/
|
|
7
|
+
export declare function dextoPackageRange(packageName: string, cliRoot?: string): string;
|
|
8
|
+
/** The range a scaffolded project asks for a peer of @dexto/core, such as zod: core's own. */
|
|
9
|
+
export declare function dextoPeerRange(peerName: string, cliRoot?: string): string;
|
|
4
10
|
export declare function isLocalDependencySpecifier(specifier: string): boolean;
|
|
5
11
|
export declare function hasVersionInPackageSpecifier(specifier: string): boolean;
|
|
6
|
-
export declare function pinDextoPackageIfUnversioned(specifier: string,
|
|
12
|
+
export declare function pinDextoPackageIfUnversioned(specifier: string, rangeFor: (packageName: string) => string): string;
|
|
7
13
|
/**
|
|
8
14
|
* Validates a project name against the standard regex
|
|
9
15
|
* @param name - The project name to validate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffolding-utils.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/scaffolding-utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"scaffolding-utils.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/scaffolding-utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAqCpC;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,MAAyB,GAAG,MAAM,CAMjG;AAED,8FAA8F;AAC9F,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,MAAyB,GAAG,MAAM,CAS3F;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAOrE;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAYvE;AAED,wBAAgB,4BAA4B,CACxC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,GAC1C,MAAM,CAKR;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMpE;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACtC,WAAW,GAAE,MAA2B,EACxC,aAAa,GAAE,MAAiD,GACjE,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CACxC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErE;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACjC,WAAW,EAAE,MAAM,EACnB,iBAAiB,GAAE,MAAM,EAAO,GACjC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACjC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,GAClC,OAAO,CAAC,IAAI,CAAC,CAiCf;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB7F;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB/E;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BjF;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACrC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;IACF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,EACD,cAAc,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE"}
|