vibekit-auth 1.0.1 → 1.0.3

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/index.js CHANGED
@@ -83,19 +83,48 @@ async function main() {
83
83
  }
84
84
  const telegramId = response.telegramId.trim();
85
85
  const numericTelegramId = parseInt(telegramId, 10);
86
- // Step 3: Upload to server
86
+ // Step 3: Select session duration
87
+ console.log();
88
+ const durationResponse = await (0, prompts_1.default)([
89
+ {
90
+ type: 'select',
91
+ name: 'sessionDuration',
92
+ message: 'How long should Auto Mode stay active?',
93
+ choices: [
94
+ { title: '1 day', value: 1 },
95
+ { title: '7 days', value: 7 },
96
+ { title: '30 days', value: 30 },
97
+ { title: 'Until I disconnect', value: 0 },
98
+ ],
99
+ initial: 2 // Default to 30 days
100
+ }
101
+ ]);
102
+ if (durationResponse.sessionDuration === undefined) {
103
+ console.log(chalk_1.default.yellow('\n Cancelled.'));
104
+ process.exit(0);
105
+ }
106
+ const sessionDurationDays = durationResponse.sessionDuration;
107
+ // Step 4: Upload to server
87
108
  console.log();
88
109
  const uploadSpinner = (0, ora_1.default)('Uploading credentials to VibeKit...').start();
89
110
  try {
90
- const result = await (0, upload_1.uploadCredentials)(numericTelegramId, credentials, VIBEKIT_SERVER);
111
+ const result = await (0, upload_1.uploadCredentials)(numericTelegramId, credentials, sessionDurationDays, VIBEKIT_SERVER);
91
112
  if (result.success) {
92
113
  uploadSpinner.succeed(chalk_1.default.green('Credentials uploaded successfully!'));
93
114
  console.log();
94
115
  console.log(chalk_1.default.bold.green(' Auto Mode is ready!'));
95
116
  console.log();
117
+ if (sessionDurationDays > 0) {
118
+ console.log(chalk_1.default.gray(` Session active for ${sessionDurationDays} day${sessionDurationDays > 1 ? 's' : ''}`));
119
+ }
120
+ else {
121
+ console.log(chalk_1.default.gray(' Session active until you disconnect'));
122
+ }
96
123
  console.log(chalk_1.default.white(' Open Telegram and use /auto to start.'));
97
124
  console.log(chalk_1.default.gray(' Your Claude subscription will be used for AI - no credits needed.'));
98
125
  console.log();
126
+ console.log(chalk_1.default.dim(' You may now close this terminal.'));
127
+ console.log();
99
128
  }
100
129
  else {
101
130
  uploadSpinner.fail(chalk_1.default.red('Upload failed'));
package/dist/types.d.ts CHANGED
@@ -20,6 +20,7 @@ export interface UploadPayload {
20
20
  credentials: string;
21
21
  subscriptionType: string;
22
22
  expiresAt: number;
23
+ sessionDurationDays: number;
23
24
  }
24
25
  /**
25
26
  * Server response after credential upload
package/dist/upload.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import { ClaudeOAuthCredentials, UploadResponse } from './types';
2
2
  /**
3
3
  * Upload credentials to VibeKit server
4
+ * @param sessionDurationDays - Number of days to keep session active (0 = until manual disconnect)
4
5
  */
5
- export declare function uploadCredentials(telegramId: number, credentials: ClaudeOAuthCredentials, serverUrl?: string): Promise<UploadResponse>;
6
+ export declare function uploadCredentials(telegramId: number, credentials: ClaudeOAuthCredentials, sessionDurationDays: number, serverUrl?: string): Promise<UploadResponse>;
6
7
  /**
7
8
  * Check if user has existing auto mode credentials on server
8
9
  */
package/dist/upload.js CHANGED
@@ -11,15 +11,17 @@ const url_1 = require("url");
11
11
  const DEFAULT_SERVER_URL = 'https://vibekit.bot';
12
12
  /**
13
13
  * Upload credentials to VibeKit server
14
+ * @param sessionDurationDays - Number of days to keep session active (0 = until manual disconnect)
14
15
  */
15
- async function uploadCredentials(telegramId, credentials, serverUrl = DEFAULT_SERVER_URL) {
16
+ async function uploadCredentials(telegramId, credentials, sessionDurationDays, serverUrl = DEFAULT_SERVER_URL) {
16
17
  const url = new url_1.URL('/api/auto/credentials', serverUrl);
17
18
  // Prepare payload - base64 encode the full credentials JSON
18
19
  const payload = JSON.stringify({
19
20
  telegramId,
20
21
  credentials: Buffer.from(JSON.stringify(credentials)).toString('base64'),
21
22
  subscriptionType: credentials.claudeAiOauth.subscriptionType,
22
- expiresAt: credentials.claudeAiOauth.expiresAt
23
+ expiresAt: credentials.claudeAiOauth.expiresAt,
24
+ sessionDurationDays
23
25
  });
24
26
  return new Promise((resolve, reject) => {
25
27
  const protocol = url.protocol === 'https:' ? https_1.default : http_1.default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibekit-auth",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Upload your Claude credentials to VibeKit for Auto Mode",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
package/src/index.ts CHANGED
@@ -93,24 +93,54 @@ async function main() {
93
93
  }
94
94
 
95
95
  const telegramId = response.telegramId.trim();
96
-
97
96
  const numericTelegramId = parseInt(telegramId, 10);
98
97
 
99
- // Step 3: Upload to server
98
+ // Step 3: Select session duration
99
+ console.log();
100
+ const durationResponse = await prompts([
101
+ {
102
+ type: 'select',
103
+ name: 'sessionDuration',
104
+ message: 'How long should Auto Mode stay active?',
105
+ choices: [
106
+ { title: '1 day', value: 1 },
107
+ { title: '7 days', value: 7 },
108
+ { title: '30 days', value: 30 },
109
+ { title: 'Until I disconnect', value: 0 },
110
+ ],
111
+ initial: 2 // Default to 30 days
112
+ }
113
+ ]);
114
+
115
+ if (durationResponse.sessionDuration === undefined) {
116
+ console.log(chalk.yellow('\n Cancelled.'));
117
+ process.exit(0);
118
+ }
119
+
120
+ const sessionDurationDays = durationResponse.sessionDuration;
121
+
122
+ // Step 4: Upload to server
100
123
  console.log();
101
124
  const uploadSpinner = ora('Uploading credentials to VibeKit...').start();
102
125
 
103
126
  try {
104
- const result = await uploadCredentials(numericTelegramId, credentials, VIBEKIT_SERVER);
127
+ const result = await uploadCredentials(numericTelegramId, credentials, sessionDurationDays, VIBEKIT_SERVER);
105
128
 
106
129
  if (result.success) {
107
130
  uploadSpinner.succeed(chalk.green('Credentials uploaded successfully!'));
108
131
  console.log();
109
132
  console.log(chalk.bold.green(' Auto Mode is ready!'));
110
133
  console.log();
134
+ if (sessionDurationDays > 0) {
135
+ console.log(chalk.gray(` Session active for ${sessionDurationDays} day${sessionDurationDays > 1 ? 's' : ''}`));
136
+ } else {
137
+ console.log(chalk.gray(' Session active until you disconnect'));
138
+ }
111
139
  console.log(chalk.white(' Open Telegram and use /auto to start.'));
112
140
  console.log(chalk.gray(' Your Claude subscription will be used for AI - no credits needed.'));
113
141
  console.log();
142
+ console.log(chalk.dim(' You may now close this terminal.'));
143
+ console.log();
114
144
  } else {
115
145
  uploadSpinner.fail(chalk.red('Upload failed'));
116
146
  console.log(chalk.red(` ${result.message}`));
package/src/types.ts CHANGED
@@ -21,6 +21,7 @@ export interface UploadPayload {
21
21
  credentials: string; // Base64 encoded JSON
22
22
  subscriptionType: string;
23
23
  expiresAt: number;
24
+ sessionDurationDays: number; // 0 = until manual disconnect
24
25
  }
25
26
 
26
27
  /**
package/src/upload.ts CHANGED
@@ -7,10 +7,12 @@ const DEFAULT_SERVER_URL = 'https://vibekit.bot';
7
7
 
8
8
  /**
9
9
  * Upload credentials to VibeKit server
10
+ * @param sessionDurationDays - Number of days to keep session active (0 = until manual disconnect)
10
11
  */
11
12
  export async function uploadCredentials(
12
13
  telegramId: number,
13
14
  credentials: ClaudeOAuthCredentials,
15
+ sessionDurationDays: number,
14
16
  serverUrl: string = DEFAULT_SERVER_URL
15
17
  ): Promise<UploadResponse> {
16
18
  const url = new URL('/api/auto/credentials', serverUrl);
@@ -20,7 +22,8 @@ export async function uploadCredentials(
20
22
  telegramId,
21
23
  credentials: Buffer.from(JSON.stringify(credentials)).toString('base64'),
22
24
  subscriptionType: credentials.claudeAiOauth.subscriptionType,
23
- expiresAt: credentials.claudeAiOauth.expiresAt
25
+ expiresAt: credentials.claudeAiOauth.expiresAt,
26
+ sessionDurationDays
24
27
  });
25
28
 
26
29
  return new Promise((resolve, reject) => {