clementine-agent 1.0.48 → 1.0.50
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/agent/assistant.js +6 -0
- package/dist/tools/admin-tools.js +0 -10
- package/package.json +1 -1
package/dist/agent/assistant.js
CHANGED
|
@@ -1529,6 +1529,12 @@ You have a cost budget per message — not a hard turn limit. Work until the tas
|
|
|
1529
1529
|
if (!disallowed.includes(t))
|
|
1530
1530
|
disallowed.push(t);
|
|
1531
1531
|
}
|
|
1532
|
+
// ToolSearch returns misleading "MCP server still connecting" text for
|
|
1533
|
+
// Claude Desktop connectors (Drive/Gmail/etc.) during cold boot, which
|
|
1534
|
+
// sonnet interprets as "tool unavailable" and bails instead of just
|
|
1535
|
+
// calling the tool directly. Removing it forces direct tool calls.
|
|
1536
|
+
if (!disallowed.includes('ToolSearch'))
|
|
1537
|
+
disallowed.push('ToolSearch');
|
|
1532
1538
|
// Cron/heartbeat get turn limits. Interactive chat has no turn cap —
|
|
1533
1539
|
// cost budget (maxBudgetUsd) is the primary guardrail.
|
|
1534
1540
|
const effectiveMaxTurns = maxTurns
|
|
@@ -166,16 +166,6 @@ export function registerAdminTools(server) {
|
|
|
166
166
|
logger.info({ key: normalizedKey, existed, masked: maskSecret(value), storage: useKeychain ? 'keychain' : 'env' }, 'env_set');
|
|
167
167
|
return textResult(`${existed ? 'Updated' : 'Added'} ${normalizedKey} (value: ${maskSecret(value)}). ${backendNote}. Active immediately — no restart needed.`);
|
|
168
168
|
});
|
|
169
|
-
server.tool('env_list', 'List the names of environment variables configured in ~/.clementine/.env. Returns key names only — values are masked. Owner-DM only.', {}, async () => {
|
|
170
|
-
const gate = requireOwnerDm();
|
|
171
|
-
if (!gate.ok)
|
|
172
|
-
return textResult(gate.message);
|
|
173
|
-
const map = parseEnvFile();
|
|
174
|
-
if (map.size === 0)
|
|
175
|
-
return textResult('No env vars configured in ~/.clementine/.env');
|
|
176
|
-
const lines = [...map.entries()].map(([k, v]) => `- ${k} = ${maskSecret(v)}`);
|
|
177
|
-
return textResult(`Configured env vars (${map.size}):\n${lines.join('\n')}`);
|
|
178
|
-
});
|
|
179
169
|
server.tool('env_unset', 'Remove an environment variable. Owner-DM only. Also clears from Keychain (if backed by Keychain) and from the running process.', {
|
|
180
170
|
key: z.string().describe('Env var name to remove'),
|
|
181
171
|
}, async ({ key }) => {
|