clementine-agent 1.18.2 → 1.18.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.
@@ -13,7 +13,11 @@ import fs from 'node:fs';
13
13
  import path from 'node:path';
14
14
  import { query as rawQuery, listSubagents, getSubagentMessages, SYSTEM_PROMPT_DYNAMIC_BOUNDARY, } from '@anthropic-ai/claude-agent-sdk';
15
15
  import pino from 'pino';
16
- import { BASE_DIR, PKG_DIR, VAULT_DIR, DAILY_NOTES_DIR, SOUL_FILE, AGENTS_FILE, MEMORY_FILE, AGENTS_DIR, ASSISTANT_NAME, OWNER_NAME, MODEL, MODELS, HEARTBEAT_MAX_TURNS, SEARCH_CONTEXT_LIMIT, SEARCH_RECENCY_LIMIT, SYSTEM_PROMPT_MAX_CONTEXT_CHARS, SESSION_EXCHANGE_HISTORY_SIZE, SESSION_EXCHANGE_MAX_CHARS, INJECTED_CONTEXT_MAX_CHARS, UNLEASHED_PHASE_TURNS, UNLEASHED_DEFAULT_MAX_HOURS, UNLEASHED_MAX_PHASES, PROJECTS_META_FILE, CRON_PROGRESS_DIR, CRON_REFLECTIONS_DIR, HANDOFFS_DIR, BUDGET, TASK_BUDGET_TOKENS, IDENTITY_FILE, CLAUDE_CODE_OAUTH_TOKEN, ANTHROPIC_API_KEY as CONFIG_ANTHROPIC_API_KEY, } from '../config.js';
16
+ import { BASE_DIR, PKG_DIR, VAULT_DIR, DAILY_NOTES_DIR, SOUL_FILE, AGENTS_FILE, MEMORY_FILE, AGENTS_DIR, ASSISTANT_NAME, OWNER_NAME, MODEL, MODELS, HEARTBEAT_MAX_TURNS, SEARCH_CONTEXT_LIMIT, SEARCH_RECENCY_LIMIT, SYSTEM_PROMPT_MAX_CONTEXT_CHARS, SESSION_EXCHANGE_HISTORY_SIZE, SESSION_EXCHANGE_MAX_CHARS, INJECTED_CONTEXT_MAX_CHARS, UNLEASHED_PHASE_TURNS, UNLEASHED_DEFAULT_MAX_HOURS, UNLEASHED_MAX_PHASES, PROJECTS_META_FILE, CRON_PROGRESS_DIR, CRON_REFLECTIONS_DIR, HANDOFFS_DIR, BUDGET, TASK_BUDGET_TOKENS, IDENTITY_FILE, CLAUDE_CODE_OAUTH_TOKEN, ANTHROPIC_API_KEY as CONFIG_ANTHROPIC_API_KEY, envSnapshot, } from '../config.js';
17
+ import { summarizeIntegrationStatus } from '../config/integrations-registry.js';
18
+ import { loadToolPreferences, computeAvailability, buildPromptInstruction, buildComposioStatusBlock, } from '../integrations/tool-preferences.js';
19
+ import { loadClaudeIntegrations } from './mcp-bridge.js';
20
+ import { detectFrustrationSignals, detectRepeatedTopics } from './insight-engine.js';
17
21
  import { DEFAULT_CHANNEL_CAPABILITIES } from '../types.js';
18
22
  import { enforceToolPermissions, getSecurityPrompt, getHeartbeatSecurityPrompt, getCronSecurityPrompt, getHeartbeatDisallowedTools, logToolUse, setProfileTier, setProfileAllowedTools, setAgentDir, setSendPolicy, setInteractionSource, logAuditJsonl, } from './hooks.js';
19
23
  import { scanner } from '../security/scanner.js';
@@ -1558,8 +1562,6 @@ You have a cost budget per message — not a hard turn limit. Work until the tas
1558
1562
  // Integration status — changes as owner adds credentials.
1559
1563
  if (!isAutonomous) {
1560
1564
  try {
1561
- const { summarizeIntegrationStatus } = require('../config/integrations-registry.js');
1562
- const { envSnapshot } = require('../config.js');
1563
1565
  const summary = summarizeIntegrationStatus(envSnapshot());
1564
1566
  if (summary)
1565
1567
  volatileParts.push(`## Integration Status\n\n${summary}\n\nCall \`integration_status\`, \`list_integrations\`, or \`setup_integration\` for details.`);
@@ -1578,8 +1580,6 @@ You have a cost budget per message — not a hard turn limit. Work until the tas
1578
1580
  // every turn regardless.
1579
1581
  if (!isAutonomous) {
1580
1582
  try {
1581
- const { loadToolPreferences, computeAvailability, buildPromptInstruction, buildComposioStatusBlock } = require('../integrations/tool-preferences.js');
1582
- const { loadClaudeIntegrations } = require('./mcp-bridge.js');
1583
1583
  const composioSet = new Set(composioConnectedSlugs);
1584
1584
  const cdIntegrations = loadClaudeIntegrations();
1585
1585
  const cdActive = new Set(Object.values(cdIntegrations).filter(i => i.connected).map(i => i.name));
@@ -1605,7 +1605,6 @@ You have a cost budget per message — not a hard turn limit. Work until the tas
1605
1605
  // one signal fires — keeps the prompt clean during normal sessions.
1606
1606
  if (!isAutonomous) {
1607
1607
  try {
1608
- const { detectFrustrationSignals, detectRepeatedTopics } = require('./insight-engine.js');
1609
1608
  const since24h = new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString();
1610
1609
  const since7d = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString();
1611
1610
  let recent = this.getRecentActivity(since24h, 50);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clementine-agent",
3
- "version": "1.18.2",
3
+ "version": "1.18.3",
4
4
  "description": "Clementine — Personal AI Assistant (TypeScript)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",