feat: implement tier 1 quick wins (tool groups, typing, pruning, verbose, think)
Five additive features with no breaking changes: - Tool groups: group:fs, group:runtime, group:web, group:memory syntactic sugar for allow/deny lists in tool policy config - Typing indicators: Discord sendTyping() and WhatsApp sendStateTyping() on message receipt for better UX feedback - Session pruning: TTL-based auto-cleanup via sessions.ttl config with hourly daemon timer and SQLite GROUP BY pruning - /verbose command: TUI command parser toggle for raw streaming display - !!think prefix: per-message extended thinking mode wired through Anthropic (budget_tokens), OpenAI/GitHub (reasoning_effort), and Gemini (thinkingConfig) providers Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+10
-3
@@ -25,13 +25,20 @@ export class GeminiClient implements ModelClient {
|
||||
? [{ functionDeclarations: request.tools.map(t => convertToolDefinition(t)) }]
|
||||
: undefined;
|
||||
|
||||
const generationConfig: Record<string, unknown> = {
|
||||
maxOutputTokens: request.maxTokens ?? this.defaultMaxTokens,
|
||||
};
|
||||
|
||||
// Extended thinking mode
|
||||
if (request.thinking) {
|
||||
generationConfig.thinkingConfig = { thinkingBudget: 4096 };
|
||||
}
|
||||
|
||||
return this.genAI.getGenerativeModel({
|
||||
model: this.model,
|
||||
systemInstruction: request.system || undefined,
|
||||
tools,
|
||||
generationConfig: {
|
||||
maxOutputTokens: request.maxTokens ?? this.defaultMaxTokens,
|
||||
},
|
||||
generationConfig,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user