@saccolabs/tars 1.0.53 → 1.3.2
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/README.md +10 -7
- package/dist/channels/channel-manager.d.ts +35 -0
- package/dist/channels/channel-manager.js +100 -0
- package/dist/channels/channel-manager.js.map +1 -0
- package/dist/channels/discord/discord-channel.d.ts +41 -0
- package/dist/channels/discord/discord-channel.js +200 -0
- package/dist/channels/discord/discord-channel.js.map +1 -0
- package/dist/channels/discord/message-formatter.js.map +1 -0
- package/dist/channels/types.d.ts +36 -0
- package/dist/channels/types.js +2 -0
- package/dist/channels/types.js.map +1 -0
- package/dist/channels/whatsapp/whatsapp-channel.d.ts +39 -0
- package/dist/channels/whatsapp/whatsapp-channel.js +198 -0
- package/dist/channels/whatsapp/whatsapp-channel.js.map +1 -0
- package/dist/cli/commands/discord.js +20 -5
- package/dist/cli/commands/discord.js.map +1 -1
- package/dist/cli/commands/export.js +5 -4
- package/dist/cli/commands/export.js.map +1 -1
- package/dist/cli/commands/import.js +5 -4
- package/dist/cli/commands/import.js.map +1 -1
- package/dist/cli/commands/quota.d.ts +1 -0
- package/dist/cli/commands/quota.js +62 -0
- package/dist/cli/commands/quota.js.map +1 -0
- package/dist/cli/commands/setup.js +120 -137
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/start.d.ts +4 -1
- package/dist/cli/commands/start.js +49 -38
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/uninstall.js +9 -10
- package/dist/cli/commands/uninstall.js.map +1 -1
- package/dist/cli/index.js +30 -8
- package/dist/cli/index.js.map +1 -1
- package/dist/config/config.d.ts +14 -2
- package/dist/config/config.js +38 -18
- package/dist/config/config.js.map +1 -1
- package/dist/scripts/debug-cli.js +1 -1
- package/dist/scripts/debug-cli.js.map +1 -1
- package/dist/supervisor/cron-service.d.ts +3 -3
- package/dist/supervisor/cron-service.js +4 -4
- package/dist/supervisor/cron-service.js.map +1 -1
- package/dist/supervisor/gemini-engine.d.ts +4 -4
- package/dist/supervisor/gemini-engine.js +15 -10
- package/dist/supervisor/gemini-engine.js.map +1 -1
- package/dist/supervisor/heartbeat-service.js +1 -1
- package/dist/supervisor/heartbeat-service.js.map +1 -1
- package/dist/supervisor/main.js +63 -61
- package/dist/supervisor/main.js.map +1 -1
- package/dist/tools/get-quota.d.ts +11 -0
- package/dist/tools/get-quota.js +84 -0
- package/dist/tools/get-quota.js.map +1 -0
- package/dist/tools/send-discord-message.d.ts +9 -6
- package/dist/tools/send-discord-message.js +14 -21
- package/dist/tools/send-discord-message.js.map +1 -1
- package/dist/tools/send-notification.d.ts +15 -0
- package/dist/tools/send-notification.js +51 -0
- package/dist/tools/send-notification.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/utils/brain-audit.js +2 -2
- package/dist/utils/brain-audit.js.map +1 -1
- package/dist/utils/paths.d.ts +9 -0
- package/dist/utils/paths.js +18 -0
- package/dist/utils/paths.js.map +1 -0
- package/package.json +11 -7
- package/src/prompts/system.md +6 -2
- package/dist/discord/discord-bot.d.ts +0 -37
- package/dist/discord/discord-bot.js +0 -205
- package/dist/discord/discord-bot.js.map +0 -1
- package/dist/discord/message-formatter.js.map +0 -1
- /package/dist/{discord → channels/discord}/message-formatter.d.ts +0 -0
- /package/dist/{discord → channels/discord}/message-formatter.js +0 -0
package/dist/supervisor/main.js
CHANGED
|
@@ -4,7 +4,7 @@ import { SessionManager } from './session-manager.js';
|
|
|
4
4
|
import { Supervisor } from './supervisor.js';
|
|
5
5
|
import { HeartbeatService } from './heartbeat-service.js';
|
|
6
6
|
import { CronService } from './cron-service.js';
|
|
7
|
-
import {
|
|
7
|
+
import { ChannelManager } from '../channels/channel-manager.js';
|
|
8
8
|
import logger from '../utils/logger.js';
|
|
9
9
|
import fs from 'fs';
|
|
10
10
|
import path from 'path';
|
|
@@ -42,13 +42,15 @@ function installSystemPrompt(config) {
|
|
|
42
42
|
// Ensure target directory exists
|
|
43
43
|
const targetDir = path.dirname(config.systemPromptPath);
|
|
44
44
|
fs.mkdirSync(targetDir, { recursive: true });
|
|
45
|
+
// Read the template and process placeholders
|
|
46
|
+
let promptContent = fs.readFileSync(srcPrompt, 'utf-8');
|
|
47
|
+
promptContent = promptContent.replace(/{{ASSISTANT_NAME}}/g, config.assistantName);
|
|
48
|
+
promptContent = promptContent.replace(/{{INSTANCE_NAME}}/g, config.instanceName);
|
|
49
|
+
promptContent = promptContent.replace(/{{INSTANCE_ROLE}}/g, config.instanceRole);
|
|
45
50
|
// Always overwrite to ensure latest prompt is deployed
|
|
46
|
-
fs.
|
|
51
|
+
fs.writeFileSync(config.systemPromptPath, promptContent);
|
|
47
52
|
logger.info(`📝 System prompt installed: ${config.systemPromptPath}`);
|
|
48
53
|
}
|
|
49
|
-
/**
|
|
50
|
-
* Install built-in skills into the Tars runtime directory.
|
|
51
|
-
*/
|
|
52
54
|
/**
|
|
53
55
|
* Install and sync built-in skills into the Tars runtime directory.
|
|
54
56
|
* Safely updates built-in skills while preserving user-created ones.
|
|
@@ -95,7 +97,6 @@ function installSkills(config) {
|
|
|
95
97
|
if (!fs.statSync(srcSkillPath).isDirectory())
|
|
96
98
|
continue;
|
|
97
99
|
// Remove existing destination (to ensure clean update - e.g. deleting old files)
|
|
98
|
-
// This assumes built-in skills are managed entirely by the repo
|
|
99
100
|
if (fs.existsSync(destSkillPath)) {
|
|
100
101
|
fs.rmSync(destSkillPath, { recursive: true, force: true });
|
|
101
102
|
}
|
|
@@ -157,7 +158,6 @@ function installAgents(config) {
|
|
|
157
158
|
}
|
|
158
159
|
/**
|
|
159
160
|
* Automatically install/link extensions and enable them.
|
|
160
|
-
* Verifies symlinks are valid and re-links if broken.
|
|
161
161
|
*/
|
|
162
162
|
function installExtensions(config) {
|
|
163
163
|
const repoExtensionsDir = path.join(__dirname, '..', '..', 'extensions');
|
|
@@ -203,20 +203,18 @@ function installExtensions(config) {
|
|
|
203
203
|
catch (e) { }
|
|
204
204
|
if (needsLink) {
|
|
205
205
|
try {
|
|
206
|
-
// Remove existing file/link if present to prevent EEXIST or to replace link with copy
|
|
207
206
|
if (fs.existsSync(finalDestPath) ||
|
|
208
207
|
(fs.existsSync(finalDestPath) && fs.lstatSync(finalDestPath).isSymbolicLink())) {
|
|
209
208
|
fs.rmSync(finalDestPath, { recursive: true, force: true });
|
|
210
209
|
}
|
|
211
|
-
|
|
212
|
-
fs.cpSync(srcPath, finalDestPath, { recursive: true });
|
|
210
|
+
fs.symlinkSync(srcPath, finalDestPath);
|
|
213
211
|
logger.info(`🔌 Integrated extension: ${finalExtName}`);
|
|
214
212
|
}
|
|
215
213
|
catch (error) {
|
|
216
214
|
logger.error(`❌ Failed to integrate extension ${finalExtName}: ${error}`);
|
|
217
215
|
}
|
|
218
216
|
}
|
|
219
|
-
// Hydration check
|
|
217
|
+
// Hydration check
|
|
220
218
|
const nmPath = path.join(finalDestPath, 'node_modules');
|
|
221
219
|
if (!fs.existsSync(nmPath)) {
|
|
222
220
|
logger.info(`💧 Hydrating extension: ${finalExtName}...`);
|
|
@@ -244,7 +242,7 @@ function installExtensions(config) {
|
|
|
244
242
|
}
|
|
245
243
|
}
|
|
246
244
|
}
|
|
247
|
-
//
|
|
245
|
+
// Update enablement
|
|
248
246
|
const allInstalledExtensions = fs.readdirSync(targetExtensionsDir);
|
|
249
247
|
for (const extName of allInstalledExtensions) {
|
|
250
248
|
const extPath = path.join(targetExtensionsDir, extName);
|
|
@@ -252,9 +250,7 @@ function installExtensions(config) {
|
|
|
252
250
|
continue;
|
|
253
251
|
if (!fs.statSync(extPath).isDirectory())
|
|
254
252
|
continue;
|
|
255
|
-
// Resolve real path (critical for symlinks to satisfy Gemini workspace safety)
|
|
256
253
|
const realPath = fs.realpathSync(extPath);
|
|
257
|
-
// Ensure enabled with permissive overrides
|
|
258
254
|
if (!enablement[extName]) {
|
|
259
255
|
enablement[extName] = { overrides: [] };
|
|
260
256
|
}
|
|
@@ -262,7 +258,6 @@ function installExtensions(config) {
|
|
|
262
258
|
overrides.add(path.join(config.homeDir, '*'));
|
|
263
259
|
overrides.add(path.join(realPath, '*'));
|
|
264
260
|
enablement[extName].overrides = Array.from(overrides);
|
|
265
|
-
logger.debug(`🔧 Configured safety overrides for ${extName}: ${enablement[extName].overrides.join(', ')}`);
|
|
266
261
|
}
|
|
267
262
|
fs.writeFileSync(enablementFile, JSON.stringify(enablement, null, 2));
|
|
268
263
|
}
|
|
@@ -279,12 +274,9 @@ function installDefaultSettings(config) {
|
|
|
279
274
|
fs.copyFileSync(settingsTemplate, targetSettings);
|
|
280
275
|
logger.info(`⚙️ Default settings installed: ${targetSettings}`);
|
|
281
276
|
}
|
|
282
|
-
else {
|
|
283
|
-
logger.warn('⚠️ Could not locate settings.json-template');
|
|
284
|
-
}
|
|
285
277
|
}
|
|
286
278
|
/**
|
|
287
|
-
* Ensure existing settings.json has required settings
|
|
279
|
+
* Ensure existing settings.json has required settings
|
|
288
280
|
*/
|
|
289
281
|
function patchSettings(config) {
|
|
290
282
|
const targetSettings = path.join(config.homeDir, '.gemini', 'settings.json');
|
|
@@ -297,39 +289,12 @@ function patchSettings(config) {
|
|
|
297
289
|
let modified = false;
|
|
298
290
|
if (fs.existsSync(settingsTemplate)) {
|
|
299
291
|
const template = JSON.parse(fs.readFileSync(settingsTemplate, 'utf-8'));
|
|
300
|
-
// Shallow merge for each top-level section
|
|
301
292
|
const sections = ['experimental', 'agents', 'model', 'general'];
|
|
302
293
|
for (const section of sections) {
|
|
303
294
|
if (template[section] && !settings[section]) {
|
|
304
295
|
settings[section] = template[section];
|
|
305
296
|
modified = true;
|
|
306
297
|
}
|
|
307
|
-
else if (template[section]) {
|
|
308
|
-
for (const [key, value] of Object.entries(template[section])) {
|
|
309
|
-
if (settings[section][key] === undefined) {
|
|
310
|
-
settings[section][key] = value;
|
|
311
|
-
modified = true;
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
// Force-update compressionThreshold if it was set too aggressively
|
|
317
|
-
if (settings.model?.compressionThreshold !== undefined &&
|
|
318
|
-
settings.model.compressionThreshold < 0.5) {
|
|
319
|
-
settings.model.compressionThreshold = 0.5;
|
|
320
|
-
modified = true;
|
|
321
|
-
logger.info('⚙️ Updated compressionThreshold to 0.5 (was too aggressive)');
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
else {
|
|
325
|
-
// Fallback
|
|
326
|
-
if (!settings.experimental) {
|
|
327
|
-
settings.experimental = {};
|
|
328
|
-
modified = true;
|
|
329
|
-
}
|
|
330
|
-
if (settings.experimental.enableAgents !== true) {
|
|
331
|
-
settings.experimental.enableAgents = true;
|
|
332
|
-
modified = true;
|
|
333
298
|
}
|
|
334
299
|
}
|
|
335
300
|
if (modified) {
|
|
@@ -351,33 +316,75 @@ async function main() {
|
|
|
351
316
|
const config = Config.getInstance();
|
|
352
317
|
const auditor = new BrainAuditor(config.homeDir);
|
|
353
318
|
await auditor.audit({ silent: true });
|
|
354
|
-
// 2. Install
|
|
319
|
+
// 2. Install components
|
|
355
320
|
installSystemPrompt(config);
|
|
356
321
|
installSkills(config);
|
|
357
322
|
installAgents(config);
|
|
358
323
|
installExtensions(config);
|
|
359
324
|
installDefaultSettings(config);
|
|
360
325
|
patchSettings(config);
|
|
361
|
-
// 3. Initialize Core Services
|
|
326
|
+
// 3. Initialize Core Services
|
|
362
327
|
const gemini = new GeminiEngine(config);
|
|
363
328
|
const sessionManager = new SessionManager(config.sessionFilePath);
|
|
364
329
|
const supervisor = new Supervisor(gemini, sessionManager);
|
|
365
|
-
// 4. Initialize Interface
|
|
366
|
-
const
|
|
367
|
-
// 5. Inject Interface into Engine
|
|
368
|
-
gemini.
|
|
330
|
+
// 4. Initialize Multi-Channel Interface
|
|
331
|
+
const channelManager = new ChannelManager();
|
|
332
|
+
// 5. Inject Interface into Engine
|
|
333
|
+
gemini.setChannelManager(channelManager);
|
|
369
334
|
await gemini.initialize();
|
|
370
|
-
//
|
|
335
|
+
// 6. Connect Routing
|
|
336
|
+
channelManager.onMessage(async (message) => {
|
|
337
|
+
let responseBuffer = '';
|
|
338
|
+
let replyCount = 0;
|
|
339
|
+
const flush = async () => {
|
|
340
|
+
const text = responseBuffer.trim();
|
|
341
|
+
if (!text)
|
|
342
|
+
return;
|
|
343
|
+
let finalContent = text;
|
|
344
|
+
// Prepend the binding alert to the first message if we just auto-bound
|
|
345
|
+
if (replyCount === 0 && message.metadata?.wasAutoBound) {
|
|
346
|
+
finalContent = `🔒 **System Alert:** I have permanently bound my background notification channel to your Discord account.\n\n${finalContent}`;
|
|
347
|
+
}
|
|
348
|
+
await message.reply(finalContent);
|
|
349
|
+
responseBuffer = '';
|
|
350
|
+
replyCount++;
|
|
351
|
+
};
|
|
352
|
+
try {
|
|
353
|
+
await supervisor.run(message.content, async (event) => {
|
|
354
|
+
if (event.type === 'text' && event.content && event.role !== 'user') {
|
|
355
|
+
responseBuffer += event.content;
|
|
356
|
+
}
|
|
357
|
+
else if (event.type === 'tool_call') {
|
|
358
|
+
// If the model had something to say before calling a tool, send it now
|
|
359
|
+
// so the user knows what's happening.
|
|
360
|
+
await flush();
|
|
361
|
+
}
|
|
362
|
+
else if (event.type === 'error') {
|
|
363
|
+
await flush();
|
|
364
|
+
await message.reply(`❌ **Error:** ${event.error}`);
|
|
365
|
+
}
|
|
366
|
+
else if (event.type === 'done') {
|
|
367
|
+
await flush();
|
|
368
|
+
}
|
|
369
|
+
}, undefined, message.attachments);
|
|
370
|
+
}
|
|
371
|
+
catch (error) {
|
|
372
|
+
logger.error(`Routing error: ${error.message}`);
|
|
373
|
+
await message.reply(`❌ **Supervisor Error:** ${error.message}`);
|
|
374
|
+
}
|
|
375
|
+
});
|
|
376
|
+
// 7. Initialize Background Services
|
|
371
377
|
const heartbeat = new HeartbeatService(supervisor, config, sessionManager);
|
|
372
|
-
const cron = new CronService(supervisor, config,
|
|
373
|
-
// Start
|
|
374
|
-
await
|
|
378
|
+
const cron = new CronService(supervisor, config, channelManager);
|
|
379
|
+
// Start everything
|
|
380
|
+
await channelManager.start();
|
|
375
381
|
await heartbeat.start();
|
|
376
382
|
await cron.start();
|
|
377
383
|
logger.info('✨ Tars successfully initialized and running.');
|
|
378
384
|
// Graceful shutdown
|
|
379
385
|
process.on('SIGINT', async () => {
|
|
380
386
|
logger.info('🛑 Shutting down...');
|
|
387
|
+
await channelManager.stop();
|
|
381
388
|
heartbeat.stop();
|
|
382
389
|
cron.stop();
|
|
383
390
|
process.exit(0);
|
|
@@ -388,13 +395,8 @@ async function main() {
|
|
|
388
395
|
process.exit(1);
|
|
389
396
|
}
|
|
390
397
|
}
|
|
391
|
-
// 6. Run Main
|
|
392
|
-
// Strict Safety Check: The supervisor must be explicitly activated via environment variable.
|
|
393
|
-
// This prevents accidental execution via "node dist/supervisor/main.js" which can spawn zombie processes.
|
|
394
398
|
if (process.env.TARS_SUPERVISOR_MODE !== 'true') {
|
|
395
399
|
logger.error('❌ TARS_SUPERVISOR_MODE=true is required to start the supervisor.');
|
|
396
|
-
logger.error(' This safety check prevents accidental multiple instances.');
|
|
397
|
-
logger.error('👉 Use "tars start" or "npm run dev" instead.');
|
|
398
400
|
process.exit(1);
|
|
399
401
|
}
|
|
400
402
|
main();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/supervisor/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/supervisor/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseDeclarativeTool, ToolInvocation, ToolResult, Config as CoreConfig } from '@google/gemini-cli-core';
|
|
2
|
+
import type { MessageBus } from '@google/gemini-cli-core/dist/src/confirmation-bus/message-bus.js';
|
|
3
|
+
interface GetQuotaParams {
|
|
4
|
+
modelId?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare class GetQuotaTool extends BaseDeclarativeTool<GetQuotaParams, ToolResult> {
|
|
7
|
+
private coreConfig;
|
|
8
|
+
constructor(coreConfig: CoreConfig);
|
|
9
|
+
protected createInvocation(params: GetQuotaParams, _messageBus: MessageBus): ToolInvocation<GetQuotaParams, ToolResult>;
|
|
10
|
+
}
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { BaseDeclarativeTool, BaseToolInvocation, Kind } from '@google/gemini-cli-core';
|
|
2
|
+
class GetQuotaInvocation extends BaseToolInvocation {
|
|
3
|
+
coreConfig;
|
|
4
|
+
constructor(params, coreConfig) {
|
|
5
|
+
super(params, null, 'get_model_quota', 'Get Model Quota');
|
|
6
|
+
this.coreConfig = coreConfig;
|
|
7
|
+
}
|
|
8
|
+
getDescription() {
|
|
9
|
+
return `Retrieving current rate limit and quota information for ${this.params.modelId || 'all active models'}.`;
|
|
10
|
+
}
|
|
11
|
+
async execute(signal) {
|
|
12
|
+
try {
|
|
13
|
+
const quota = await this.coreConfig.refreshUserQuota();
|
|
14
|
+
if (!quota || !quota.buckets) {
|
|
15
|
+
return {
|
|
16
|
+
llmContent: [
|
|
17
|
+
{
|
|
18
|
+
text: '⚠️ No quota information available. This may be because the current authentication method does not support quota tracking (e.g. legacy auth) or the Code Assist server is not reachable.'
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
returnDisplay: 'No quota info available.'
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
const activeModel = this.coreConfig.getActiveModel();
|
|
25
|
+
const buckets = quota.buckets;
|
|
26
|
+
let resultText = '### Current Model Quotas\n\n';
|
|
27
|
+
// Filter buckets if a specific modelId was requested, otherwise show all relevant ones
|
|
28
|
+
const relevantBuckets = this.params.modelId
|
|
29
|
+
? buckets.filter((b) => b.modelId?.includes(this.params.modelId))
|
|
30
|
+
: buckets.filter((b) => b.modelId && (b.modelId === activeModel || b.modelId.includes('gemini')));
|
|
31
|
+
if (relevantBuckets.length === 0) {
|
|
32
|
+
resultText += `No buckets found matching "${this.params.modelId || 'Gemini models'}".\n`;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
for (const bucket of relevantBuckets) {
|
|
36
|
+
const is_active = bucket.modelId === activeModel ? ' (Active)' : '';
|
|
37
|
+
const remaining = bucket.remainingFraction != null
|
|
38
|
+
? `${(bucket.remainingFraction * 100).toFixed(1)}%`
|
|
39
|
+
: 'Unknown';
|
|
40
|
+
resultText += `- **${bucket.modelId}**${is_active}\n`;
|
|
41
|
+
resultText += ` - **Remaining**: ${remaining}\n`;
|
|
42
|
+
if (bucket.resetTime) {
|
|
43
|
+
resultText += ` - **Resets At**: ${bucket.resetTime}\n`;
|
|
44
|
+
}
|
|
45
|
+
if (bucket.tokenType) {
|
|
46
|
+
resultText += ` - **Type**: ${bucket.tokenType}\n`;
|
|
47
|
+
}
|
|
48
|
+
resultText += '\n';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
llmContent: [{ text: resultText }],
|
|
53
|
+
returnDisplay: `Quota retrieved: ${relevantBuckets.length} buckets found.`
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
return {
|
|
58
|
+
llmContent: [{ text: `❌ Failed to retrieve quota: ${error.message}` }],
|
|
59
|
+
returnDisplay: `Error: ${error.message}`
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
export class GetQuotaTool extends BaseDeclarativeTool {
|
|
65
|
+
coreConfig;
|
|
66
|
+
constructor(coreConfig) {
|
|
67
|
+
super('get_model_quota', 'Get Model Quota', 'Retrieve the current rate limit, remaining quota, and reset times for the Gemini models being used. Use this to check if you are approaching limits or if capacity issues are expected.', Kind.Read, {
|
|
68
|
+
type: 'object',
|
|
69
|
+
properties: {
|
|
70
|
+
modelId: {
|
|
71
|
+
type: 'string',
|
|
72
|
+
description: 'Optional: Filter for a specific model ID (e.g. "gemini-2.5-flash"). If omitted, returns all relevant Gemini quotas.'
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}, null, true, // isOutputMarkdown
|
|
76
|
+
false // canUpdateOutput
|
|
77
|
+
);
|
|
78
|
+
this.coreConfig = coreConfig;
|
|
79
|
+
}
|
|
80
|
+
createInvocation(params, _messageBus) {
|
|
81
|
+
return new GetQuotaInvocation(params, this.coreConfig);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=get-quota.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-quota.js","sourceRoot":"","sources":["../../src/tools/get-quota.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { BaseDeclarativeTool, ToolInvocation, ToolResult } from '@google/gemini-cli-core';
|
|
2
2
|
import type { MessageBus } from '@google/gemini-cli-core/dist/src/confirmation-bus/message-bus.js';
|
|
3
|
-
import {
|
|
4
|
-
interface
|
|
3
|
+
import { ChannelManager } from '../channels/channel-manager.js';
|
|
4
|
+
interface NotifyParams {
|
|
5
5
|
message: string;
|
|
6
6
|
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Tool to send proactive messages back to the user on Discord (Deprecated: use send_notification)
|
|
9
|
+
*/
|
|
10
|
+
export declare class SendDiscordMessageTool extends BaseDeclarativeTool<NotifyParams, ToolResult> {
|
|
11
|
+
private readonly channelManager;
|
|
12
|
+
constructor(channelManager: ChannelManager);
|
|
13
|
+
protected createInvocation(params: NotifyParams, _messageBus: MessageBus): ToolInvocation<NotifyParams, ToolResult>;
|
|
11
14
|
}
|
|
12
15
|
export {};
|
|
@@ -1,42 +1,35 @@
|
|
|
1
1
|
import { BaseDeclarativeTool, BaseToolInvocation, Kind } from '@google/gemini-cli-core';
|
|
2
2
|
class SendDiscordMessageInvocation extends BaseToolInvocation {
|
|
3
|
-
|
|
4
|
-
constructor(params,
|
|
3
|
+
channelManager;
|
|
4
|
+
constructor(params, channelManager) {
|
|
5
5
|
super(params, null, 'send_discord_message', 'Send Discord Message');
|
|
6
|
-
this.
|
|
6
|
+
this.channelManager = channelManager;
|
|
7
7
|
}
|
|
8
8
|
getDescription() {
|
|
9
|
-
return `Sending
|
|
9
|
+
return `Sending Discord notification (Deprecated): ${this.params.message.substring(0, 50)}${this.params.message.length > 50 ? '...' : ''}`;
|
|
10
10
|
}
|
|
11
11
|
async execute(signal) {
|
|
12
12
|
try {
|
|
13
|
-
|
|
14
|
-
return {
|
|
15
|
-
llmContent: [
|
|
16
|
-
{
|
|
17
|
-
text: '❌ Soft Error: Could not reach Discord. Owner ID not yet captured. The user must send a direct message to the bot first before proactive notifications can be sent.'
|
|
18
|
-
}
|
|
19
|
-
],
|
|
20
|
-
returnDisplay: 'Failed: Owner ID not yet captured.'
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
await this.discordBot.notify(this.params.message);
|
|
13
|
+
await this.channelManager.notify(this.params.message);
|
|
24
14
|
return {
|
|
25
15
|
llmContent: [{ text: '✅ Message successfully queued for delivery to the user.' }],
|
|
26
|
-
returnDisplay: '
|
|
16
|
+
returnDisplay: 'Notification sent successfully.'
|
|
27
17
|
};
|
|
28
18
|
}
|
|
29
19
|
catch (error) {
|
|
30
20
|
return {
|
|
31
|
-
llmContent: [{ text: `❌ Failed to send
|
|
21
|
+
llmContent: [{ text: `❌ Failed to send notification: ${error.message}` }],
|
|
32
22
|
returnDisplay: `Error: ${error.message}`
|
|
33
23
|
};
|
|
34
24
|
}
|
|
35
25
|
}
|
|
36
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Tool to send proactive messages back to the user on Discord (Deprecated: use send_notification)
|
|
29
|
+
*/
|
|
37
30
|
export class SendDiscordMessageTool extends BaseDeclarativeTool {
|
|
38
|
-
|
|
39
|
-
constructor(
|
|
31
|
+
channelManager;
|
|
32
|
+
constructor(channelManager) {
|
|
40
33
|
super('send_discord_message', 'Send Discord Message', 'Send a proactive message or notification back to the user on Discord. Use this tool during background tasks to report results, alert the user to issues, or ask questions that you want them to see when they return.', Kind.Communicate, {
|
|
41
34
|
type: 'object',
|
|
42
35
|
properties: {
|
|
@@ -49,10 +42,10 @@ export class SendDiscordMessageTool extends BaseDeclarativeTool {
|
|
|
49
42
|
}, null, true, // isOutputMarkdown
|
|
50
43
|
false // canUpdateOutput
|
|
51
44
|
);
|
|
52
|
-
this.
|
|
45
|
+
this.channelManager = channelManager;
|
|
53
46
|
}
|
|
54
47
|
createInvocation(params, _messageBus) {
|
|
55
|
-
return new SendDiscordMessageInvocation(params, this.
|
|
48
|
+
return new SendDiscordMessageInvocation(params, this.channelManager);
|
|
56
49
|
}
|
|
57
50
|
}
|
|
58
51
|
//# sourceMappingURL=send-discord-message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-discord-message.js","sourceRoot":"","sources":["../../src/tools/send-discord-message.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EAEnB,kBAAkB,EAElB,IAAI,EACP,MAAM,yBAAyB,CAAC;AAQjC,MAAM,4BAA6B,SAAQ,
|
|
1
|
+
{"version":3,"file":"send-discord-message.js","sourceRoot":"","sources":["../../src/tools/send-discord-message.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EAEnB,kBAAkB,EAElB,IAAI,EACP,MAAM,yBAAyB,CAAC;AAQjC,MAAM,4BAA6B,SAAQ,kBAA4C;IAGvE;IAFZ,YACI,MAAoB,EACZ,cAA8B;QAEtC,KAAK,CACD,MAAM,EACN,IAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,CACzB,CAAC;QAPM,mBAAc,GAAd,cAAc,CAAgB;IAQ1C,CAAC;IAED,cAAc;QACV,OAAO,8CAA8C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC/I,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAmB;QAC7B,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACtD,OAAO;gBACH,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,yDAAyD,EAAE,CAAC;gBACjF,aAAa,EAAE,iCAAiC;aACnD,CAAC;QACN,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,OAAO;gBACH,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,kCAAkC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACzE,aAAa,EAAE,UAAU,KAAK,CAAC,OAAO,EAAE;aAC3C,CAAC;QACN,CAAC;IACL,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,mBAA6C;IACxD;IAA7B,YAA6B,cAA8B;QACvD,KAAK,CACD,sBAAsB,EACtB,sBAAsB,EACtB,uNAAuN,EACvN,IAAI,CAAC,WAAW,EAChB;YACI,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,OAAO,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sDAAsD;iBACtE;aACJ;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACxB,EACD,IAA6B,EAC7B,IAAI,EAAE,mBAAmB;QACzB,KAAK,CAAC,kBAAkB;SAC3B,CAAC;QAnBuB,mBAAc,GAAd,cAAc,CAAgB;IAoB3D,CAAC;IAES,gBAAgB,CACtB,MAAoB,EACpB,WAAuB;QAEvB,OAAO,IAAI,4BAA4B,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACzE,CAAC;CACJ"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseDeclarativeTool, ToolInvocation, ToolResult } from '@google/gemini-cli-core';
|
|
2
|
+
import type { MessageBus } from '@google/gemini-cli-core/dist/src/confirmation-bus/message-bus.js';
|
|
3
|
+
import { ChannelManager } from '../channels/channel-manager.js';
|
|
4
|
+
interface NotifyParams {
|
|
5
|
+
message: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Tool to send proactive notifications to the user via enabled channels
|
|
9
|
+
*/
|
|
10
|
+
export declare class SendNotificationTool extends BaseDeclarativeTool<NotifyParams, ToolResult> {
|
|
11
|
+
private readonly channelManager;
|
|
12
|
+
constructor(channelManager: ChannelManager);
|
|
13
|
+
protected createInvocation(params: NotifyParams, _messageBus: MessageBus): ToolInvocation<NotifyParams, ToolResult>;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { BaseDeclarativeTool, BaseToolInvocation, Kind } from '@google/gemini-cli-core';
|
|
2
|
+
class SendNotificationInvocation extends BaseToolInvocation {
|
|
3
|
+
channelManager;
|
|
4
|
+
constructor(params, channelManager) {
|
|
5
|
+
super(params, null, 'send_notification', 'Send Notification');
|
|
6
|
+
this.channelManager = channelManager;
|
|
7
|
+
}
|
|
8
|
+
getDescription() {
|
|
9
|
+
return `Sending proactive notification: ${this.params.message.substring(0, 50)}${this.params.message.length > 50 ? '...' : ''}`;
|
|
10
|
+
}
|
|
11
|
+
async execute(signal) {
|
|
12
|
+
try {
|
|
13
|
+
await this.channelManager.notify(this.params.message);
|
|
14
|
+
return {
|
|
15
|
+
llmContent: [{ text: '✅ Message successfully queued for delivery to the user.' }],
|
|
16
|
+
returnDisplay: 'Notification sent successfully.'
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
return {
|
|
21
|
+
llmContent: [{ text: `❌ Failed to send notification: ${error.message}` }],
|
|
22
|
+
returnDisplay: `Error: ${error.message}`
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Tool to send proactive notifications to the user via enabled channels
|
|
29
|
+
*/
|
|
30
|
+
export class SendNotificationTool extends BaseDeclarativeTool {
|
|
31
|
+
channelManager;
|
|
32
|
+
constructor(channelManager) {
|
|
33
|
+
super('send_notification', 'Send Notification', 'Send a proactive message or notification back to the user. Use this tool during background tasks to report results, alert the user to issues, or ask questions that you want them to see when they return.', Kind.Communicate, {
|
|
34
|
+
type: 'object',
|
|
35
|
+
properties: {
|
|
36
|
+
message: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
description: 'The text content of the message to send to the user.'
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
required: ['message']
|
|
42
|
+
}, null, true, // isOutputMarkdown
|
|
43
|
+
false // canUpdateOutput
|
|
44
|
+
);
|
|
45
|
+
this.channelManager = channelManager;
|
|
46
|
+
}
|
|
47
|
+
createInvocation(params, _messageBus) {
|
|
48
|
+
return new SendNotificationInvocation(params, this.channelManager);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=send-notification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-notification.js","sourceRoot":"","sources":["../../src/tools/send-notification.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EAEnB,kBAAkB,EAElB,IAAI,EACP,MAAM,yBAAyB,CAAC;AAQjC,MAAM,0BAA2B,SAAQ,kBAA4C;IAGrE;IAFZ,YACI,MAAoB,EACZ,cAA8B;QAEtC,KAAK,CAAC,MAAM,EAAE,IAA6B,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;QAF/E,mBAAc,GAAd,cAAc,CAAgB;IAG1C,CAAC;IAED,cAAc;QACV,OAAO,mCAAmC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpI,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAmB;QAC7B,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACtD,OAAO;gBACH,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,yDAAyD,EAAE,CAAC;gBACjF,aAAa,EAAE,iCAAiC;aACnD,CAAC;QACN,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,OAAO;gBACH,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,kCAAkC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACzE,aAAa,EAAE,UAAU,KAAK,CAAC,OAAO,EAAE;aAC3C,CAAC;QACN,CAAC;IACL,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,mBAA6C;IACtD;IAA7B,YAA6B,cAA8B;QACvD,KAAK,CACD,mBAAmB,EACnB,mBAAmB,EACnB,4MAA4M,EAC5M,IAAI,CAAC,WAAW,EAChB;YACI,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,OAAO,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sDAAsD;iBACtE;aACJ;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACxB,EACD,IAA6B,EAC7B,IAAI,EAAE,mBAAmB;QACzB,KAAK,CAAC,kBAAkB;SAC3B,CAAC;QAnBuB,mBAAc,GAAd,cAAc,CAAgB;IAoB3D,CAAC;IAES,gBAAgB,CACtB,MAAoB,EACpB,WAAuB;QAEvB,OAAO,IAAI,0BAA0B,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACvE,CAAC;CACJ"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import path from 'path';
|
|
3
|
-
import os from 'os';
|
|
4
3
|
import logger from './logger.js';
|
|
5
4
|
import chalk from 'chalk';
|
|
5
|
+
import { getTarsHome } from './paths.js';
|
|
6
6
|
/**
|
|
7
7
|
* BrainAuditor - Ensures the stability and structural integrity of the Tars workspace (~/.tars).
|
|
8
8
|
* Use this during setup, import, or supervisor startup to heal old or broken configurations.
|
|
@@ -10,7 +10,7 @@ import chalk from 'chalk';
|
|
|
10
10
|
export class BrainAuditor {
|
|
11
11
|
tarsHome;
|
|
12
12
|
constructor(tarsHome) {
|
|
13
|
-
this.tarsHome = tarsHome ||
|
|
13
|
+
this.tarsHome = tarsHome || getTarsHome();
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
16
|
* Run a full audit and repair cycle.
|