dexto 1.5.5 → 1.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/agent-template.yml +1 -1
- package/dist/agents/coding-agent/coding-agent.yml +2 -2
- package/dist/agents/podcast-agent/podcast-agent.yml +1 -1
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +1 -0
- package/dist/cli/commands/interactive-commands/commands.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/commands.js +2 -0
- package/dist/cli/commands/interactive-commands/export/index.d.ts +13 -0
- package/dist/cli/commands/interactive-commands/export/index.d.ts.map +1 -0
- package/dist/cli/commands/interactive-commands/export/index.js +21 -0
- package/dist/cli/commands/interactive-commands/general-commands.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/general-commands.js +1 -0
- package/dist/cli/commands/interactive-commands/system/system-commands.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/system/system-commands.js +2 -3
- package/dist/cli/commands/setup.js +102 -23
- package/dist/cli/commands/sync-agents.d.ts +44 -0
- package/dist/cli/commands/sync-agents.d.ts.map +1 -0
- package/dist/cli/commands/sync-agents.js +483 -0
- package/dist/cli/ink-cli/InkCLIRefactored.d.ts +14 -1
- package/dist/cli/ink-cli/InkCLIRefactored.d.ts.map +1 -1
- package/dist/cli/ink-cli/InkCLIRefactored.js +7 -2
- package/dist/cli/ink-cli/components/StatusBar.d.ts +5 -1
- package/dist/cli/ink-cli/components/StatusBar.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/StatusBar.js +16 -4
- package/dist/cli/ink-cli/components/TodoPanel.d.ts +11 -8
- package/dist/cli/ink-cli/components/TodoPanel.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/TodoPanel.js +38 -36
- package/dist/cli/ink-cli/components/chat/Header.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/chat/Header.js +1 -1
- package/dist/cli/ink-cli/components/chat/styled-boxes/LogConfigBox.js +1 -1
- package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.js +13 -4
- package/dist/cli/ink-cli/components/modes/StaticCLI.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/modes/StaticCLI.js +1 -1
- package/dist/cli/ink-cli/components/overlays/ExportWizard.d.ts +22 -0
- package/dist/cli/ink-cli/components/overlays/ExportWizard.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/ExportWizard.js +308 -0
- package/dist/cli/ink-cli/components/overlays/LogLevelSelector.js +1 -1
- package/dist/cli/ink-cli/constants/tips.js +2 -2
- package/dist/cli/ink-cli/containers/InputContainer.d.ts.map +1 -1
- package/dist/cli/ink-cli/containers/InputContainer.js +1 -0
- package/dist/cli/ink-cli/containers/OverlayContainer.d.ts.map +1 -1
- package/dist/cli/ink-cli/containers/OverlayContainer.js +5 -1
- package/dist/cli/ink-cli/hooks/useCLIState.d.ts.map +1 -1
- package/dist/cli/ink-cli/hooks/useCLIState.js +1 -0
- package/dist/cli/ink-cli/hooks/useInputOrchestrator.d.ts.map +1 -1
- package/dist/cli/ink-cli/hooks/useInputOrchestrator.js +5 -0
- package/dist/cli/ink-cli/state/initialState.d.ts.map +1 -1
- package/dist/cli/ink-cli/state/initialState.js +1 -0
- package/dist/cli/ink-cli/state/types.d.ts +14 -1
- package/dist/cli/ink-cli/state/types.d.ts.map +1 -1
- package/dist/cli/ink-cli/utils/commandOverlays.d.ts.map +1 -1
- package/dist/cli/ink-cli/utils/commandOverlays.js +1 -0
- package/dist/cli/ink-cli/utils/messageFormatting.js +2 -2
- package/dist/cli/utils/api-key-setup.d.ts.map +1 -1
- package/dist/cli/utils/api-key-setup.js +13 -90
- package/dist/cli/utils/version-check.d.ts +45 -0
- package/dist/cli/utils/version-check.d.ts.map +1 -0
- package/dist/cli/utils/version-check.js +195 -0
- package/dist/index.js +60 -31
- package/package.json +7 -7
|
@@ -103,7 +103,7 @@ storage:
|
|
|
103
103
|
|
|
104
104
|
toolConfirmation:
|
|
105
105
|
mode: manual
|
|
106
|
-
timeout:
|
|
106
|
+
# timeout: omitted = infinite wait (no timeout for CLI)
|
|
107
107
|
allowedToolsStorage: storage # Persist allowed tools across sessions
|
|
108
108
|
|
|
109
109
|
# Tool policies optimized for coding workflows
|
|
@@ -135,7 +135,7 @@ compaction:
|
|
|
135
135
|
# Elicitation configuration - required for ask_user tool
|
|
136
136
|
elicitation:
|
|
137
137
|
enabled: true
|
|
138
|
-
timeout:
|
|
138
|
+
# timeout: omitted = infinite wait (no timeout for CLI)
|
|
139
139
|
|
|
140
140
|
# Internal tools - core tools that are always available
|
|
141
141
|
internalTools:
|
|
@@ -6,4 +6,5 @@ export { handleInstallCommand, type InstallCommandOptions } from './install.js';
|
|
|
6
6
|
export { handleUninstallCommand, type UninstallCommandOptions } from './uninstall.js';
|
|
7
7
|
export { handleListAgentsCommand, type ListAgentsCommandOptions, type ListAgentsCommandOptionsInput, } from './list-agents.js';
|
|
8
8
|
export { handleWhichCommand, type WhichCommandOptions } from './which.js';
|
|
9
|
+
export { handleSyncAgentsCommand, shouldPromptForSync, markSyncDismissed, clearSyncDismissed, type SyncAgentsCommandOptions, } from './sync-agents.js';
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,0BAA0B,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAErF,OAAO,EAAE,kBAAkB,EAAE,KAAK,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACjG,OAAO,EAAE,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,KAAK,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EACH,uBAAuB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,6BAA6B,GACrC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,0BAA0B,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAErF,OAAO,EAAE,kBAAkB,EAAE,KAAK,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACjG,OAAO,EAAE,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,KAAK,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EACH,uBAAuB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,6BAA6B,GACrC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EACH,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,wBAAwB,GAChC,MAAM,kBAAkB,CAAC"}
|
|
@@ -8,3 +8,4 @@ export { handleInstallCommand } from './install.js';
|
|
|
8
8
|
export { handleUninstallCommand } from './uninstall.js';
|
|
9
9
|
export { handleListAgentsCommand, } from './list-agents.js';
|
|
10
10
|
export { handleWhichCommand } from './which.js';
|
|
11
|
+
export { handleSyncAgentsCommand, shouldPromptForSync, markSyncDismissed, clearSyncDismissed, } from './sync-agents.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/interactive-commands/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/interactive-commands/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAanF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,YAAY,EAAE,iBAAiB,EAAO,CAAC;AAuCpD;;;;;GAKG;AACH,wBAAsB,cAAc,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,UAAU,EACjB,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,CAAC,CAyD/B;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,iBAAiB,EAAE,CAEpD"}
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
// Import modular command definitions
|
|
22
22
|
import { generalCommands, createHelpCommand } from './general-commands.js';
|
|
23
23
|
import { searchCommand, resumeCommand, renameCommand } from './session/index.js';
|
|
24
|
+
import { exportCommand } from './export/index.js';
|
|
24
25
|
import { modelCommands } from './model/index.js';
|
|
25
26
|
import { mcpCommands } from './mcp/index.js';
|
|
26
27
|
import { systemCommands } from './system/index.js';
|
|
@@ -52,6 +53,7 @@ const baseCommands = [
|
|
|
52
53
|
searchCommand, // /search - opens search overlay
|
|
53
54
|
resumeCommand, // /resume - opens session selector overlay
|
|
54
55
|
renameCommand, // /rename <title> - rename current session
|
|
56
|
+
exportCommand, // /export - opens export wizard overlay
|
|
55
57
|
// Model management
|
|
56
58
|
modelCommands, // /model - opens model selector overlay
|
|
57
59
|
// MCP server management
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export Command Module
|
|
3
|
+
*
|
|
4
|
+
* Provides the /export command for exporting conversation history.
|
|
5
|
+
* Always shows the interactive export wizard overlay.
|
|
6
|
+
*/
|
|
7
|
+
import type { CommandDefinition } from '../command-parser.js';
|
|
8
|
+
/**
|
|
9
|
+
* Export command definition
|
|
10
|
+
* Always shows the interactive export wizard overlay (handled by ALWAYS_OVERLAY)
|
|
11
|
+
*/
|
|
12
|
+
export declare const exportCommand: CommandDefinition;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/interactive-commands/export/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAwC,MAAM,sBAAsB,CAAC;AAGpG;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,iBAc3B,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export Command Module
|
|
3
|
+
*
|
|
4
|
+
* Provides the /export command for exporting conversation history.
|
|
5
|
+
* Always shows the interactive export wizard overlay.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Export command definition
|
|
9
|
+
* Always shows the interactive export wizard overlay (handled by ALWAYS_OVERLAY)
|
|
10
|
+
*/
|
|
11
|
+
export const exportCommand = {
|
|
12
|
+
name: 'export',
|
|
13
|
+
description: 'Export conversation to markdown or JSON',
|
|
14
|
+
usage: '/export',
|
|
15
|
+
category: 'Session',
|
|
16
|
+
handler: async (_args, _agent, _ctx) => {
|
|
17
|
+
// This handler is never called - export is in ALWAYS_OVERLAY
|
|
18
|
+
// which intercepts and shows the export wizard overlay instead
|
|
19
|
+
return true;
|
|
20
|
+
},
|
|
21
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general-commands.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/interactive-commands/general-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAwC,MAAM,qBAAqB,CAAC;AAgGnG;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,iBAAiB,EAAE,GAAG,iBAAiB,CAgC9F;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"general-commands.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/interactive-commands/general-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAwC,MAAM,qBAAqB,CAAC;AAgGnG;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,iBAAiB,EAAE,GAAG,iBAAiB,CAgC9F;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,iBAAiB,EAyZ9C,CAAC"}
|
|
@@ -397,6 +397,7 @@ export const generalCommands = [
|
|
|
397
397
|
name: 'Global',
|
|
398
398
|
shortcuts: [
|
|
399
399
|
{ keys: 'Ctrl+C', description: 'Clear input, then exit (press twice)' },
|
|
400
|
+
{ keys: 'Ctrl+T', description: 'Toggle task list (show/hide tasks)' },
|
|
400
401
|
{ keys: 'Escape', description: 'Cancel processing / close overlay' },
|
|
401
402
|
],
|
|
402
403
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-commands.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/interactive-commands/system/system-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAwC,MAAM,sBAAsB,CAAC;AAKpG;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"system-commands.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/interactive-commands/system/system-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAwC,MAAM,sBAAsB,CAAC;AAKpG;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,iBAAiB,EAwO7C,CAAC"}
|
|
@@ -33,7 +33,7 @@ export const systemCommands = [
|
|
|
33
33
|
const logFilePath = logger.getLogFilePath();
|
|
34
34
|
console.log(chalk.bold.blue('\n📊 Logging Configuration:\n'));
|
|
35
35
|
console.log(` Current level: ${chalk.green.bold(currentLevel)}`);
|
|
36
|
-
if (logFilePath
|
|
36
|
+
if (logFilePath) {
|
|
37
37
|
console.log(` Log file: ${chalk.cyan(logFilePath)}`);
|
|
38
38
|
}
|
|
39
39
|
console.log(chalk.gray('\n Available levels (from least to most verbose):'));
|
|
@@ -44,11 +44,10 @@ export const systemCommands = [
|
|
|
44
44
|
console.log(` ${marker} ${levelText}`);
|
|
45
45
|
});
|
|
46
46
|
console.log(chalk.gray('\n 💡 Use /log <level> to change level (e.g., /log debug)\n'));
|
|
47
|
-
const isPrivacyMode = process.env.DEXTO_PRIVACY_MODE === 'true';
|
|
48
47
|
const output = [
|
|
49
48
|
'\n📊 Logging Configuration:',
|
|
50
49
|
`Current level: ${currentLevel}`,
|
|
51
|
-
logFilePath
|
|
50
|
+
logFilePath ? `Log file: ${logFilePath}` : '',
|
|
52
51
|
'\nAvailable levels: error, warn, info, http, verbose, debug, silly',
|
|
53
52
|
'💡 Use /log <level> to change level',
|
|
54
53
|
]
|
|
@@ -155,19 +155,90 @@ export async function handleSetupCommand(options) {
|
|
|
155
155
|
await handleNonInteractiveSetup(validated);
|
|
156
156
|
}
|
|
157
157
|
/**
|
|
158
|
-
* Quick start flow -
|
|
158
|
+
* Quick start flow - pick a free provider with minimal prompts
|
|
159
159
|
*/
|
|
160
160
|
async function handleQuickStart() {
|
|
161
|
-
console.log(chalk.cyan('\n🚀 Quick Start
|
|
161
|
+
console.log(chalk.cyan('\n🚀 Quick Start\n'));
|
|
162
162
|
p.intro(chalk.cyan('Quick Setup'));
|
|
163
|
-
|
|
164
|
-
const
|
|
163
|
+
// Let user pick from popular free providers
|
|
164
|
+
const quickProvider = await p.select({
|
|
165
|
+
message: 'Choose a provider',
|
|
166
|
+
options: [
|
|
167
|
+
{
|
|
168
|
+
value: 'google',
|
|
169
|
+
label: `${chalk.green('●')} Google Gemini`,
|
|
170
|
+
hint: 'Free, 1M+ context (recommended)',
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
value: 'groq',
|
|
174
|
+
label: `${chalk.green('●')} Groq`,
|
|
175
|
+
hint: 'Free, ultra-fast',
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
value: 'local',
|
|
179
|
+
label: `${chalk.cyan('●')} Local Models`,
|
|
180
|
+
hint: 'Free, private, runs on your machine',
|
|
181
|
+
},
|
|
182
|
+
],
|
|
183
|
+
});
|
|
184
|
+
if (p.isCancel(quickProvider)) {
|
|
185
|
+
p.cancel('Setup cancelled');
|
|
186
|
+
process.exit(0);
|
|
187
|
+
}
|
|
188
|
+
// Handle local models with dedicated setup flow
|
|
189
|
+
if (quickProvider === 'local') {
|
|
190
|
+
const localResult = await setupLocalModels();
|
|
191
|
+
if (!hasSelectedModel(localResult)) {
|
|
192
|
+
p.cancel('Setup cancelled');
|
|
193
|
+
process.exit(0);
|
|
194
|
+
}
|
|
195
|
+
const model = getModelFromResult(localResult);
|
|
196
|
+
// CLI mode confirmation for local
|
|
197
|
+
const useCli = await p.confirm({
|
|
198
|
+
message: 'Start in Terminal mode? (You can change this later)',
|
|
199
|
+
initialValue: true,
|
|
200
|
+
});
|
|
201
|
+
if (p.isCancel(useCli)) {
|
|
202
|
+
p.cancel('Setup cancelled');
|
|
203
|
+
process.exit(0);
|
|
204
|
+
}
|
|
205
|
+
const defaultMode = useCli ? 'cli' : await selectDefaultMode();
|
|
206
|
+
if (defaultMode === null) {
|
|
207
|
+
p.cancel('Setup cancelled');
|
|
208
|
+
process.exit(0);
|
|
209
|
+
}
|
|
210
|
+
// Sync the active model for local provider
|
|
211
|
+
await setActiveModel(model);
|
|
212
|
+
const preferences = createInitialPreferences({
|
|
213
|
+
provider: 'local',
|
|
214
|
+
model,
|
|
215
|
+
defaultMode,
|
|
216
|
+
setupCompleted: true,
|
|
217
|
+
apiKeyPending: false,
|
|
218
|
+
});
|
|
219
|
+
await saveGlobalPreferences(preferences);
|
|
220
|
+
capture('dexto_setup', {
|
|
221
|
+
provider: 'local',
|
|
222
|
+
model,
|
|
223
|
+
setupMode: 'interactive',
|
|
224
|
+
setupVariant: 'quick-start',
|
|
225
|
+
defaultMode,
|
|
226
|
+
apiKeySkipped: false,
|
|
227
|
+
});
|
|
228
|
+
showSetupComplete('local', model, defaultMode, false);
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
// Cloud provider flow (google or groq)
|
|
232
|
+
const provider = quickProvider;
|
|
233
|
+
const model = getDefaultModelForProvider(provider) ||
|
|
234
|
+
(provider === 'google' ? 'gemini-2.5-pro' : 'llama-3.3-70b-versatile');
|
|
165
235
|
const apiKeyVar = getProviderEnvVar(provider);
|
|
166
236
|
let apiKeySkipped = false;
|
|
167
237
|
// Check if API key exists
|
|
168
238
|
const hasKey = hasApiKeyConfigured(provider);
|
|
169
239
|
if (!hasKey) {
|
|
170
|
-
|
|
240
|
+
const providerName = getProviderDisplayName(provider);
|
|
241
|
+
p.note(`${providerName} is ${chalk.green('free')} to use!\n\n` +
|
|
171
242
|
`We'll help you get an API key in just a few seconds.`, 'Free AI Access');
|
|
172
243
|
const result = await interactiveApiKeySetup(provider, {
|
|
173
244
|
exitOnCancel: false, // Don't exit - allow skipping
|
|
@@ -184,8 +255,16 @@ async function handleQuickStart() {
|
|
|
184
255
|
else {
|
|
185
256
|
p.log.success(`API key for ${getProviderDisplayName(provider)} already configured`);
|
|
186
257
|
}
|
|
187
|
-
//
|
|
188
|
-
const
|
|
258
|
+
// CLI mode confirmation
|
|
259
|
+
const useCli = await p.confirm({
|
|
260
|
+
message: 'Start in Terminal mode? (You can change this later)',
|
|
261
|
+
initialValue: true,
|
|
262
|
+
});
|
|
263
|
+
if (p.isCancel(useCli)) {
|
|
264
|
+
p.cancel('Setup cancelled');
|
|
265
|
+
process.exit(0);
|
|
266
|
+
}
|
|
267
|
+
const defaultMode = useCli ? 'cli' : await selectDefaultMode();
|
|
189
268
|
// Handle cancellation
|
|
190
269
|
if (defaultMode === null) {
|
|
191
270
|
p.cancel('Setup cancelled');
|
|
@@ -262,13 +341,13 @@ async function wizardStepSetupType(state) {
|
|
|
262
341
|
options: [
|
|
263
342
|
{
|
|
264
343
|
value: 'quick',
|
|
265
|
-
label: `${chalk.green('
|
|
266
|
-
hint: '
|
|
344
|
+
label: `${chalk.green('→')} Get started now`,
|
|
345
|
+
hint: 'Pick a free provider and start chatting',
|
|
267
346
|
},
|
|
268
347
|
{
|
|
269
348
|
value: 'custom',
|
|
270
|
-
label: `${chalk.blue('●')}
|
|
271
|
-
hint: '
|
|
349
|
+
label: `${chalk.blue('●')} Choose my own provider`,
|
|
350
|
+
hint: 'OpenAI, Anthropic, local models, and more',
|
|
272
351
|
},
|
|
273
352
|
],
|
|
274
353
|
});
|
|
@@ -494,18 +573,18 @@ async function selectDefaultModeWithBack() {
|
|
|
494
573
|
options: [
|
|
495
574
|
{
|
|
496
575
|
value: 'cli',
|
|
497
|
-
label: `${chalk.green('●')} Terminal
|
|
498
|
-
hint: '
|
|
576
|
+
label: `${chalk.green('●')} Terminal`,
|
|
577
|
+
hint: 'Chat in your terminal (most popular)',
|
|
499
578
|
},
|
|
500
579
|
{
|
|
501
580
|
value: 'web',
|
|
502
|
-
label: `${chalk.blue('●')}
|
|
503
|
-
hint: '
|
|
581
|
+
label: `${chalk.blue('●')} Browser`,
|
|
582
|
+
hint: 'Web UI at localhost:3000',
|
|
504
583
|
},
|
|
505
584
|
{
|
|
506
585
|
value: 'server',
|
|
507
|
-
label: `${chalk.
|
|
508
|
-
hint: 'REST API for
|
|
586
|
+
label: `${chalk.cyan('●')} API Server`,
|
|
587
|
+
hint: 'REST API for integrations',
|
|
509
588
|
},
|
|
510
589
|
{ value: '_back', label: chalk.gray('← Back'), hint: 'Go to previous step' },
|
|
511
590
|
],
|
|
@@ -892,18 +971,18 @@ async function selectDefaultMode() {
|
|
|
892
971
|
options: [
|
|
893
972
|
{
|
|
894
973
|
value: 'cli',
|
|
895
|
-
label: `${chalk.green('●')} Terminal
|
|
896
|
-
hint: '
|
|
974
|
+
label: `${chalk.green('●')} Terminal`,
|
|
975
|
+
hint: 'Chat in your terminal (most popular)',
|
|
897
976
|
},
|
|
898
977
|
{
|
|
899
978
|
value: 'web',
|
|
900
|
-
label: `${chalk.blue('●')}
|
|
901
|
-
hint: '
|
|
979
|
+
label: `${chalk.blue('●')} Browser`,
|
|
980
|
+
hint: 'Web UI at localhost:3000',
|
|
902
981
|
},
|
|
903
982
|
{
|
|
904
983
|
value: 'server',
|
|
905
|
-
label: `${chalk.
|
|
906
|
-
hint: 'REST API for
|
|
984
|
+
label: `${chalk.cyan('●')} API Server`,
|
|
985
|
+
hint: 'REST API for integrations',
|
|
907
986
|
},
|
|
908
987
|
],
|
|
909
988
|
});
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options for the sync-agents command
|
|
3
|
+
*/
|
|
4
|
+
export interface SyncAgentsCommandOptions {
|
|
5
|
+
/** Just list status without updating */
|
|
6
|
+
list?: boolean;
|
|
7
|
+
/** Update all without prompting */
|
|
8
|
+
force?: boolean;
|
|
9
|
+
/** Minimal output - used when called from startup prompt */
|
|
10
|
+
quiet?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Mark sync as dismissed for current version
|
|
14
|
+
*/
|
|
15
|
+
export declare function markSyncDismissed(currentVersion: string): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Clear sync dismissed state (called after successful sync)
|
|
18
|
+
*/
|
|
19
|
+
export declare function clearSyncDismissed(): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Quick check if any installed agents have updates available
|
|
22
|
+
*
|
|
23
|
+
* Used at CLI startup to prompt for sync without full command output.
|
|
24
|
+
* Returns true if at least one installed agent differs from bundled
|
|
25
|
+
* AND the user hasn't dismissed the prompt for this version.
|
|
26
|
+
*
|
|
27
|
+
* @param currentVersion Current CLI version to check dismissal state
|
|
28
|
+
* @returns true if should prompt for sync
|
|
29
|
+
*/
|
|
30
|
+
export declare function shouldPromptForSync(currentVersion: string): Promise<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* Main handler for the sync-agents command
|
|
33
|
+
*
|
|
34
|
+
* @param options Command options
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```bash
|
|
38
|
+
* dexto sync-agents # Interactive - prompt for each
|
|
39
|
+
* dexto sync-agents --list # Show what would be updated
|
|
40
|
+
* dexto sync-agents --force # Update all without prompting
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare function handleSyncAgentsCommand(options: SyncAgentsCommandOptions): Promise<void>;
|
|
44
|
+
//# sourceMappingURL=sync-agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-agents.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/sync-agents.ts"],"names":[],"mappings":"AAgBA;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,wCAAwC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,mCAAmC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAgND;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS7E;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAWxD;AAED;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA8BlF;AAoDD;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiO9F"}
|