@chozzz/vargos 2.0.14 → 2.1.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.
Files changed (52) hide show
  1. package/dist/.templates/vargos/agents/subagent.md +36 -0
  2. package/dist/cli/channels.d.ts +26 -0
  3. package/dist/cli/channels.d.ts.map +1 -0
  4. package/dist/cli/channels.js +116 -0
  5. package/dist/cli/channels.js.map +1 -0
  6. package/dist/cli/onboard.d.ts.map +1 -1
  7. package/dist/cli/onboard.js +181 -109
  8. package/dist/cli/onboard.js.map +1 -1
  9. package/dist/cli.js +89 -1
  10. package/dist/cli.js.map +1 -1
  11. package/dist/index.js +3 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/lib/subagent.d.ts +10 -3
  14. package/dist/lib/subagent.d.ts.map +1 -1
  15. package/dist/lib/subagent.js +20 -1
  16. package/dist/lib/subagent.js.map +1 -1
  17. package/dist/services/agent/index.d.ts +10 -5
  18. package/dist/services/agent/index.d.ts.map +1 -1
  19. package/dist/services/agent/index.js +28 -20
  20. package/dist/services/agent/index.js.map +1 -1
  21. package/dist/services/agent/persona.d.ts +6 -0
  22. package/dist/services/agent/persona.d.ts.map +1 -1
  23. package/dist/services/agent/persona.js +19 -0
  24. package/dist/services/agent/persona.js.map +1 -1
  25. package/dist/services/agent/tools.d.ts +11 -4
  26. package/dist/services/agent/tools.d.ts.map +1 -1
  27. package/dist/services/agent/tools.js +24 -7
  28. package/dist/services/agent/tools.js.map +1 -1
  29. package/dist/services/channels/index.d.ts.map +1 -1
  30. package/dist/services/channels/index.js +5 -9
  31. package/dist/services/channels/index.js.map +1 -1
  32. package/dist/services/channels/pipeline.js +2 -2
  33. package/dist/services/channels/pipeline.js.map +1 -1
  34. package/dist/services/channels/providers/telegram/normalizer.d.ts.map +1 -1
  35. package/dist/services/channels/providers/telegram/normalizer.js +9 -3
  36. package/dist/services/channels/providers/telegram/normalizer.js.map +1 -1
  37. package/dist/services/channels/providers/whatsapp/adapter.d.ts +0 -4
  38. package/dist/services/channels/providers/whatsapp/adapter.d.ts.map +1 -1
  39. package/dist/services/channels/providers/whatsapp/adapter.js +10 -33
  40. package/dist/services/channels/providers/whatsapp/adapter.js.map +1 -1
  41. package/dist/services/channels/providers/whatsapp/normalizer.d.ts.map +1 -1
  42. package/dist/services/channels/providers/whatsapp/normalizer.js +8 -9
  43. package/dist/services/channels/providers/whatsapp/normalizer.js.map +1 -1
  44. package/dist/services/channels/providers/whatsapp/session.d.ts.map +1 -1
  45. package/dist/services/channels/providers/whatsapp/session.js +13 -7
  46. package/dist/services/channels/providers/whatsapp/session.js.map +1 -1
  47. package/dist/services/config/index.d.ts +3 -3
  48. package/dist/services/config/schemas/auth.d.ts +2 -2
  49. package/dist/services/cron/index.d.ts.map +1 -1
  50. package/dist/services/cron/index.js +7 -1
  51. package/dist/services/cron/index.js.map +1 -1
  52. package/package.json +15 -15
@@ -0,0 +1,36 @@
1
+ ---
2
+ # Glob whitelist of bus tools the subagent can call.
3
+ # agent.execute and channel.send/channel.sendMedia are intentionally excluded:
4
+ # - No recursive delegation (1-depth max)
5
+ # - No direct user messaging (all communication flows through parent)
6
+ allowedTools:
7
+ - memory.*
8
+ - web.*
9
+ - cron.*
10
+ - bus.*
11
+ - log.*
12
+ - mcp.*
13
+ - agent.status
14
+ - agent.appendMessage
15
+ ---
16
+
17
+ You are a subagent — a focused worker delegated a specific task by the parent agent.
18
+
19
+ Rules:
20
+ - Execute the task thoroughly and return all findings.
21
+ - Use tools to inspect and act — do not guess or fabricate.
22
+ - Do not delegate to other subagents.
23
+ - Do not message users directly.
24
+ - If blocked, report what you tried and why.
25
+
26
+ Return your results as structured markdown:
27
+ ## Findings
28
+ [what you found or accomplished]
29
+ ## Files Changed
30
+ [list any files modified, if applicable]
31
+ ## Commands Run
32
+ [list commands executed, if applicable]
33
+ ## Confidence
34
+ [high/medium/low — brief reasoning]
35
+ ## Blockers
36
+ [any issues encountered, or "None"]
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Channel management — shared CRUD used by onboard wizard and vargos channels CLI.
3
+ *
4
+ * Exports:
5
+ * listChannels() → array of { id, type, botToken? }
6
+ * registerChannel() → add to config.json
7
+ * deregisterChannel() → remove from config.json
8
+ * pairWhatsApp() → standalone QR pairing (stops after connected)
9
+ */
10
+ export interface ChannelInfo {
11
+ id: string;
12
+ type: 'telegram' | 'whatsapp';
13
+ botToken?: string;
14
+ enabled?: boolean;
15
+ registered?: boolean;
16
+ }
17
+ export interface RegisterChannelParams {
18
+ id: string;
19
+ type: 'telegram' | 'whatsapp';
20
+ botToken?: string;
21
+ }
22
+ export declare function listChannels(): ChannelInfo[];
23
+ export declare function registerChannel(params: RegisterChannelParams): void;
24
+ export declare function deregisterChannel(id: string): void;
25
+ export declare function pairWhatsApp(id: string): Promise<void>;
26
+ //# sourceMappingURL=channels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../cli/channels.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA6BD,wBAAgB,YAAY,IAAI,WAAW,EAAE,CAmB5C;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAmBnE;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAQlD;AAID,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqC5D"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Channel management — shared CRUD used by onboard wizard and vargos channels CLI.
3
+ *
4
+ * Exports:
5
+ * listChannels() → array of { id, type, botToken? }
6
+ * registerChannel() → add to config.json
7
+ * deregisterChannel() → remove from config.json
8
+ * pairWhatsApp() → standalone QR pairing (stops after connected)
9
+ */
10
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
11
+ import path from 'node:path';
12
+ import { getDataPaths } from '../lib/paths.js';
13
+ function readConfig() {
14
+ const { configFile } = getDataPaths();
15
+ if (!existsSync(configFile))
16
+ return {};
17
+ try {
18
+ return JSON.parse(readFileSync(configFile, 'utf-8'));
19
+ }
20
+ catch {
21
+ return {};
22
+ }
23
+ }
24
+ function writeConfig(config) {
25
+ const { configFile } = getDataPaths();
26
+ if (!existsSync(path.dirname(configFile))) {
27
+ mkdirSync(path.dirname(configFile), { recursive: true });
28
+ }
29
+ writeFileSync(configFile, JSON.stringify(config, null, 2), { mode: 0o600 });
30
+ }
31
+ // ── Public API ────────────────────────────────────────────────────────────────
32
+ export function listChannels() {
33
+ const config = readConfig();
34
+ const channels = (config.channels ?? []);
35
+ return channels.map((ch) => {
36
+ const info = {
37
+ id: String(ch.id ?? ''),
38
+ type: ch.type ?? 'whatsapp',
39
+ enabled: ch.enabled !== false,
40
+ };
41
+ if (ch.botToken != null)
42
+ info['botToken'] = String(ch.botToken);
43
+ // WhatsApp: check if paired (creds.json exists)
44
+ if (info.type === 'whatsapp') {
45
+ const authDir = path.join(getDataPaths().channelsDir, info.id);
46
+ info.registered = existsSync(path.join(authDir, 'creds.json'));
47
+ }
48
+ return info;
49
+ });
50
+ }
51
+ export function registerChannel(params) {
52
+ const config = readConfig();
53
+ const channels = (config.channels ?? []);
54
+ // Check for duplicate id
55
+ if (channels.some((c) => c.id === params.id)) {
56
+ throw new Error(`Channel "${params.id}" already exists. Use deregister first.`);
57
+ }
58
+ const entry = {
59
+ id: params.id,
60
+ type: params.type,
61
+ enabled: true,
62
+ };
63
+ if (params.botToken)
64
+ entry['botToken'] = params.botToken;
65
+ channels.push(entry);
66
+ config.channels = channels;
67
+ writeConfig(config);
68
+ }
69
+ export function deregisterChannel(id) {
70
+ const config = readConfig();
71
+ const channels = (config.channels ?? []);
72
+ const idx = channels.findIndex((c) => c.id === id);
73
+ if (idx === -1)
74
+ throw new Error(`Channel "${id}" not found.`);
75
+ channels.splice(idx, 1);
76
+ config.channels = channels;
77
+ writeConfig(config);
78
+ }
79
+ // ── WhatsApp standalone pairing ───────────────────────────────────────────────
80
+ export async function pairWhatsApp(id) {
81
+ const authDir = path.join(getDataPaths().channelsDir, id);
82
+ // Dynamic import — only loads Baileys when this function is called
83
+ const { createWhatsAppSocket } = await import('../services/channels/providers/whatsapp/session.js');
84
+ return new Promise((resolve, reject) => {
85
+ createWhatsAppSocket(authDir, {
86
+ onQR: () => {
87
+ // QR printed automatically by qrcode-terminal inside session.ts
88
+ },
89
+ onConnected: (name) => {
90
+ console.log(`\n✅ Connected as ${name}`);
91
+ console.log(` Credentials saved to ${authDir}/creds.json\n`);
92
+ resolve();
93
+ },
94
+ onDisconnected: (reason) => {
95
+ if (reason === 'logged_out') {
96
+ reject(new Error('Pairing failed — device logged out. Try again.'));
97
+ }
98
+ else if (reason === 'forbidden') {
99
+ reject(new Error('Pairing failed — access forbidden.'));
100
+ }
101
+ else {
102
+ // Connection closed for other reasons — may still have succeeded
103
+ console.log(`\n⚠ Connection closed (${reason}). If you scanned the QR, pairing may have succeeded.`);
104
+ resolve();
105
+ }
106
+ },
107
+ onMessage: () => {
108
+ // Ignore messages during pairing
109
+ },
110
+ }).then((sock) => {
111
+ // Socket created, wait for onConnected to resolve
112
+ // If the process exits before onConnected, the promise rejects via onDisconnected
113
+ }).catch(reject);
114
+ });
115
+ }
116
+ //# sourceMappingURL=channels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channels.js","sourceRoot":"","sources":["../../cli/channels.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"onboard.d.ts","sourceRoot":"","sources":["../../cli/onboard.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA0FH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAqM7C"}
1
+ {"version":3,"file":"onboard.d.ts","sourceRoot":"","sources":["../../cli/onboard.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA2FH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA6R7C"}
@@ -10,6 +10,7 @@ import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
10
10
  import path from 'node:path';
11
11
  import * as p from '@clack/prompts';
12
12
  import { getDataPaths } from '../lib/paths.js';
13
+ import { registerChannel } from './channels.js';
13
14
  const PROVIDERS = {
14
15
  anthropic: {
15
16
  baseUrl: 'https://api.anthropic.com/v1',
@@ -84,113 +85,187 @@ function writeJson(filePath, data) {
84
85
  export async function onboard() {
85
86
  const { dataDir, configFile } = getDataPaths();
86
87
  const agentDir = `${dataDir}/agent`;
88
+ const hasConfig = existsSync(configFile);
87
89
  p.intro('⚡ Vargos — Setup Wizard');
88
- // ── Step 1: Provider ─────────────────────────────────────────────────────
89
- const providerKey = (await p.select({
90
- message: 'Choose your LLM provider:',
91
- options: Object.entries(PROVIDERS).map(([key, preset]) => {
92
- const local = key === 'ollama' ? ' (local)' : '';
93
- return { value: key, label: `${key}${local}`, hint: preset.baseUrl };
94
- }),
95
- }));
96
- if (p.isCancel(providerKey)) {
97
- p.cancel('Setup cancelled. Run vargos onboard to try again.');
98
- process.exit(0);
99
- }
100
- const preset = PROVIDERS[providerKey];
101
- // ── Step 2: API Key ──────────────────────────────────────────────────────
102
- let apiKey;
103
- if (preset.envKey) {
104
- const envVal = process.env[preset.envKey];
105
- if (envVal) {
106
- p.note(`Found ${preset.envKey} in environment — using it.`, 'API Key');
107
- apiKey = envVal;
108
- }
109
- }
110
- if (!apiKey && preset.envKey) {
111
- const input = (await p.password({
112
- message: `Enter your ${providerKey} API key:`,
113
- validate(value) {
114
- if (!value)
115
- return 'API key is required';
116
- return;
117
- },
90
+ // ── Step 1: Provider (skip if already configured) ────────────────────────
91
+ if (!hasConfig) {
92
+ const providerKey = (await p.select({
93
+ message: 'Choose your LLM provider:',
94
+ options: Object.entries(PROVIDERS).map(([key, preset]) => {
95
+ const local = key === 'ollama' ? ' (local)' : '';
96
+ return { value: key, label: `${key}${local}`, hint: preset.baseUrl };
97
+ }),
118
98
  }));
119
- if (p.isCancel(input)) {
120
- p.cancel('Setup cancelled.');
99
+ if (p.isCancel(providerKey)) {
100
+ p.cancel('Setup cancelled. Run vargos onboard to try again.');
121
101
  process.exit(0);
122
102
  }
123
- apiKey = input;
124
- }
125
- // Local providers don't need an API key
126
- if (providerKey === 'ollama' && !apiKey) {
127
- apiKey = 'ollama'; // Pi SDK expects a non-empty key
128
- }
129
- // ── Step 3: Base URL (for custom/local) ──────────────────────────────────
130
- let baseUrl = preset.baseUrl;
131
- if (providerKey === 'ollama') {
132
- const customUrl = (await p.text({
133
- message: `Ollama base URL:`,
134
- placeholder: preset.baseUrl,
135
- defaultValue: preset.baseUrl,
136
- }));
137
- if (p.isCancel(customUrl)) {
138
- p.cancel('Setup cancelled.');
139
- process.exit(0);
103
+ const preset = PROVIDERS[providerKey];
104
+ // ── Step 2: API Key ────────────────────────────────────────────────────
105
+ let apiKey;
106
+ if (preset.envKey) {
107
+ const envVal = process.env[preset.envKey];
108
+ if (envVal) {
109
+ p.note(`Found ${preset.envKey} in environment using it.`, 'API Key');
110
+ apiKey = envVal;
111
+ }
140
112
  }
141
- baseUrl = customUrl || preset.baseUrl;
142
- }
143
- // ── Step 4: Model ────────────────────────────────────────────────────────
144
- let model = preset.models?.[0]?.id ?? '';
145
- if (preset.models && preset.models.length > 0) {
146
- const selected = (await p.select({
147
- message: 'Default model:',
148
- options: preset.models.map(m => ({ value: m.id, label: m.name })),
149
- }));
150
- if (p.isCancel(selected)) {
151
- p.cancel('Setup cancelled.');
152
- process.exit(0);
113
+ if (!apiKey && preset.envKey) {
114
+ const input = (await p.password({
115
+ message: `Enter your ${providerKey} API key:`,
116
+ validate(value) {
117
+ if (!value)
118
+ return 'API key is required';
119
+ return;
120
+ },
121
+ }));
122
+ if (p.isCancel(input)) {
123
+ p.cancel('Setup cancelled.');
124
+ process.exit(0);
125
+ }
126
+ apiKey = input;
153
127
  }
154
- model = selected;
155
- }
156
- if (!model && !preset.models) {
157
- const customModel = (await p.text({
158
- message: 'Enter model ID:',
159
- placeholder: 'e.g. gpt-4o, claude-sonnet-4-20250514',
160
- }));
161
- if (p.isCancel(customModel)) {
162
- p.cancel('Setup cancelled.');
163
- process.exit(0);
128
+ // Local providers don't need an API key
129
+ if (providerKey === 'ollama' && !apiKey) {
130
+ apiKey = 'ollama';
164
131
  }
165
- model = customModel || '';
166
- }
167
- // ── Write config files ───────────────────────────────────────────────────
168
- const spinner = p.spinner();
169
- spinner.start('Writing configuration…');
170
- // config.json — minimal app config
171
- writeJson(configFile, { gateway: {} });
172
- // agent/models.json — provider registry
173
- writeJson(`${agentDir}/models.json`, {
174
- providers: {
175
- [providerKey]: {
176
- baseUrl,
177
- api: preset.api,
178
- ...(preset.models ? { models: preset.models } : {}),
132
+ // ── Step 3: Base URL (for custom/local) ────────────────────────────────
133
+ let baseUrl = preset.baseUrl;
134
+ if (providerKey === 'ollama') {
135
+ const customUrl = (await p.text({
136
+ message: `Ollama base URL:`,
137
+ placeholder: preset.baseUrl,
138
+ defaultValue: preset.baseUrl,
139
+ }));
140
+ if (p.isCancel(customUrl)) {
141
+ p.cancel('Setup cancelled.');
142
+ process.exit(0);
143
+ }
144
+ baseUrl = customUrl || preset.baseUrl;
145
+ }
146
+ // ── Step 4: Model ──────────────────────────────────────────────────────
147
+ let model = preset.models?.[0]?.id ?? '';
148
+ if (preset.models && preset.models.length > 0) {
149
+ const selected = (await p.select({
150
+ message: 'Default model:',
151
+ options: preset.models.map(m => ({ value: m.id, label: m.name })),
152
+ }));
153
+ if (p.isCancel(selected)) {
154
+ p.cancel('Setup cancelled.');
155
+ process.exit(0);
156
+ }
157
+ model = selected;
158
+ }
159
+ if (!model && !preset.models) {
160
+ const customModel = (await p.text({
161
+ message: 'Enter model ID:',
162
+ placeholder: 'e.g. gpt-4o, claude-sonnet-4-20250514',
163
+ }));
164
+ if (p.isCancel(customModel)) {
165
+ p.cancel('Setup cancelled.');
166
+ process.exit(0);
167
+ }
168
+ model = customModel || '';
169
+ }
170
+ // ── Write config files ─────────────────────────────────────────────────
171
+ const spinner = p.spinner();
172
+ spinner.start('Writing configuration…');
173
+ // config.json — minimal app config
174
+ writeJson(configFile, { gateway: {} });
175
+ // agent/models.json — provider registry
176
+ writeJson(`${agentDir}/models.json`, {
177
+ providers: {
178
+ [providerKey]: {
179
+ baseUrl,
180
+ api: preset.api,
181
+ ...(preset.models ? { models: preset.models } : {}),
182
+ },
179
183
  },
180
- },
181
- });
182
- // agent/auth.json — API key
183
- if (apiKey) {
184
- writeJson(`${agentDir}/auth.json`, {
185
- [providerKey]: { type: 'api_key', key: apiKey },
186
184
  });
185
+ // agent/auth.json — API key
186
+ if (apiKey) {
187
+ writeJson(`${agentDir}/auth.json`, {
188
+ [providerKey]: { type: 'api_key', key: apiKey },
189
+ });
190
+ }
191
+ // agent/settings.json — Pi SDK settings (default model + provider)
192
+ writeJson(`${agentDir}/settings.json`, {
193
+ defaultModel: model,
194
+ defaultProvider: providerKey,
195
+ });
196
+ spinner.stop('Configuration saved.');
197
+ }
198
+ // ── Channels Setup ───────────────────────────────────────────────────────────
199
+ p.note('Vargos can connect to Telegram and WhatsApp so you can talk to your agent\n' +
200
+ 'from your phone. You can skip this and set up channels later.', 'Communication');
201
+ const addChannel = (await p.confirm({
202
+ message: 'Set up a messaging channel now?',
203
+ initialValue: true,
204
+ }));
205
+ if (!p.isCancel(addChannel) && addChannel) {
206
+ const channelType = (await p.select({
207
+ message: 'Which channel?',
208
+ options: [
209
+ { value: 'telegram', label: 'Telegram', hint: 'Bot API token required' },
210
+ { value: 'whatsapp', label: 'WhatsApp', hint: 'QR code pairing' },
211
+ ],
212
+ }));
213
+ if (!p.isCancel(channelType)) {
214
+ const channelId = (await p.text({
215
+ message: 'Channel ID (a short name for this connection):',
216
+ placeholder: channelType === 'telegram' ? 'telegram-bot' : 'whatsapp-personal',
217
+ validate(value) {
218
+ if (!value)
219
+ return 'Channel ID is required';
220
+ if (!/^[a-z0-9_-]+$/.test(value))
221
+ return 'Use lowercase letters, numbers, hyphens, underscores';
222
+ return;
223
+ },
224
+ }));
225
+ if (!p.isCancel(channelId)) {
226
+ try {
227
+ if (channelType === 'telegram') {
228
+ const tgBotKey = (await p.password({
229
+ message: 'Telegram Bot Token (from @BotFather):',
230
+ validate(value) {
231
+ if (!value)
232
+ return 'Bot token is required';
233
+ return;
234
+ },
235
+ }));
236
+ if (!p.isCancel(tgBotKey)) {
237
+ registerChannel({ id: channelId, type: 'telegram', botToken: tgBotKey });
238
+ p.note(`Channel "${channelId}" registered.\nRun vargos start to bring it online.`, 'Telegram');
239
+ }
240
+ }
241
+ else {
242
+ // WhatsApp
243
+ registerChannel({ id: channelId, type: 'whatsapp' });
244
+ const pairNow = (await p.confirm({
245
+ message: 'Pair WhatsApp now? (QR code will appear in terminal)',
246
+ initialValue: true,
247
+ }));
248
+ if (!p.isCancel(pairNow) && pairNow) {
249
+ console.log('\n Scan the QR code with WhatsApp → Linked Devices\n');
250
+ try {
251
+ const { pairWhatsApp } = await import('./channels.js');
252
+ await pairWhatsApp(channelId);
253
+ }
254
+ catch (err) {
255
+ p.note(`Pairing failed: ${err instanceof Error ? err.message : err}\nRun "vargos channels pair whatsapp ${channelId}" to try again.`, 'WhatsApp');
256
+ }
257
+ }
258
+ else {
259
+ p.note(`Channel "${channelId}" registered.\nRun "vargos channels pair whatsapp ${channelId}" to pair.`, 'WhatsApp');
260
+ }
261
+ }
262
+ }
263
+ catch (err) {
264
+ p.note(`Failed: ${err instanceof Error ? err.message : err}`, 'Error');
265
+ }
266
+ }
267
+ }
187
268
  }
188
- // agent/settings.json — Pi SDK settings (default model + provider)
189
- writeJson(`${agentDir}/settings.json`, {
190
- defaultModel: model,
191
- defaultProvider: providerKey,
192
- });
193
- spinner.stop('Configuration saved.');
194
269
  // ── MCP Adapter Setup ────────────────────────────────────────────────────────
195
270
  const enableMcp = (await p.confirm({
196
271
  message: 'Enable MCP (Model Context Protocol) support for accessing tools in chat?',
@@ -224,17 +299,14 @@ export async function onboard() {
224
299
  }
225
300
  }
226
301
  // ── Done ─────────────────────────────────────────────────────────────────
227
- p.note([
228
- `Config: ${configFile}`,
229
- `Models: ${agentDir}/models.json`,
230
- `Auth: ${agentDir}/auth.json`,
231
- `Settings: ${agentDir}/settings.json`,
232
- '',
233
- model ? `Provider: ${providerKey}` : '',
234
- model ? `Model: ${model}` : '',
235
- ]
236
- .filter(Boolean)
237
- .join('\n'), 'Files written');
238
- p.outro('Ready. Run vargos start to boot the server.');
302
+ if (!hasConfig) {
303
+ p.note([
304
+ `Config: ${configFile}`,
305
+ `Models: ${agentDir}/models.json`,
306
+ `Auth: ${agentDir}/auth.json`,
307
+ `Settings: ${agentDir}/settings.json`,
308
+ ].join('\n'), 'Files written');
309
+ }
310
+ p.outro('Ready. Run vargos start to boot the server.\n Use vargos channels to manage messaging connections.');
239
311
  }
240
312
  //# sourceMappingURL=onboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"onboard.js","sourceRoot":"","sources":["../../cli/onboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onboard.js","sourceRoot":"","sources":["../../cli/onboard.ts"],"names":[],"mappings":"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"}