@chatcops/core 0.3.1 → 0.4.0

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.
Files changed (40) hide show
  1. package/dist/conversation/manager.d.ts.map +1 -1
  2. package/dist/conversation/manager.js +5 -1
  3. package/dist/conversation/manager.js.map +1 -1
  4. package/dist/i18n/de.js +4 -4
  5. package/dist/i18n/de.js.map +1 -1
  6. package/dist/i18n/es.js +5 -5
  7. package/dist/i18n/es.js.map +1 -1
  8. package/dist/i18n/fr.js +3 -3
  9. package/dist/i18n/hi.js +11 -11
  10. package/dist/i18n/hi.js.map +1 -1
  11. package/dist/index.d.ts +3 -3
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/providers/base.d.ts +20 -2
  16. package/dist/providers/base.d.ts.map +1 -1
  17. package/dist/providers/base.js +48 -25
  18. package/dist/providers/base.js.map +1 -1
  19. package/dist/providers/claude.d.ts +17 -0
  20. package/dist/providers/claude.d.ts.map +1 -1
  21. package/dist/providers/claude.js +127 -77
  22. package/dist/providers/claude.js.map +1 -1
  23. package/dist/providers/gemini.d.ts +6 -1
  24. package/dist/providers/gemini.d.ts.map +1 -1
  25. package/dist/providers/gemini.js +101 -75
  26. package/dist/providers/gemini.js.map +1 -1
  27. package/dist/providers/index.d.ts +2 -2
  28. package/dist/providers/index.d.ts.map +1 -1
  29. package/dist/providers/index.js +1 -1
  30. package/dist/providers/index.js.map +1 -1
  31. package/dist/providers/openai.d.ts +13 -0
  32. package/dist/providers/openai.d.ts.map +1 -1
  33. package/dist/providers/openai.js +79 -70
  34. package/dist/providers/openai.js.map +1 -1
  35. package/dist/tools/lead-capture.d.ts.map +1 -1
  36. package/dist/tools/lead-capture.js +2 -1
  37. package/dist/tools/lead-capture.js.map +1 -1
  38. package/dist/types.d.ts +32 -0
  39. package/dist/types.d.ts.map +1 -1
  40. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/conversation/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,iBAAiB,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;IAKnE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAc9C,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAiB/E,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAK3D,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASvE,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGpD"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/conversation/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,iBAAiB,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;IAKnE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAc9C,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAqB/E,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAK3D,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASvE,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGpD"}
@@ -25,9 +25,13 @@ export class ConversationManager {
25
25
  conversation.updatedAt = Date.now();
26
26
  if (conversation.messages.length > this.maxMessages) {
27
27
  const systemMessages = conversation.messages.filter((m) => m.role === 'system');
28
- const recentMessages = conversation.messages
28
+ let recentMessages = conversation.messages
29
29
  .filter((m) => m.role !== 'system')
30
30
  .slice(-(this.maxMessages - systemMessages.length));
31
+ // Never start the kept history with an assistant turn; some providers
32
+ // (Gemini) reject a conversation that doesn't open with the user.
33
+ const firstUser = recentMessages.findIndex((m) => m.role === 'user');
34
+ recentMessages = firstUser === -1 ? [] : recentMessages.slice(firstUser);
31
35
  conversation.messages = [...systemMessages, ...recentMessages];
32
36
  }
33
37
  await this.store.save(conversation);
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/conversation/manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,OAAO,mBAAmB;IACtB,KAAK,CAAoB;IACzB,WAAW,CAAS;IAE5B,YAAY,OAA6D;QACvE,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI,WAAW,EAAE,CAAC;QACjD,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,GAAG,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAU;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,YAAY,GAAiB;YACjC,EAAE;YACF,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,cAAsB,EAAE,OAAoB;QAC3D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAC5D,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEpC,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACpD,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YAChF,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ;iBACzC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;iBAClC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;YACtD,YAAY,CAAC,QAAQ,GAAG,CAAC,GAAG,cAAc,EAAE,GAAG,cAAc,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,cAAsB;QACtC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC1D,OAAO,YAAY,EAAE,QAAQ,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,cAAsB,EAAE,SAAiB;QAC3D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1B,YAAY,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAC5F,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,EAAU;QACjC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/conversation/manager.ts"],"names":[],"mappings":"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"}
package/dist/i18n/de.js CHANGED
@@ -2,13 +2,13 @@ export const de = {
2
2
  welcomeMessage: 'Hallo! Wie kann ich Ihnen helfen?',
3
3
  inputPlaceholder: 'Nachricht eingeben...',
4
4
  sendButton: 'Senden',
5
- closeButton: 'Schliessen',
5
+ closeButton: 'Schließen',
6
6
  errorGeneric: 'Etwas ist schiefgelaufen. Bitte versuchen Sie es erneut.',
7
- errorNetwork: 'Verbindungsfehler. Bitte pruefen Sie Ihr Netzwerk.',
7
+ errorNetwork: 'Verbindungsfehler. Bitte prüfen Sie Ihr Netzwerk.',
8
8
  errorRateLimit: 'Zu viele Nachrichten. Bitte warten Sie einen Moment.',
9
9
  typingIndicator: 'Tippt...',
10
10
  poweredBy: 'Betrieben von ChatCops',
11
- newConversation: 'Neues Gespraech',
12
- welcomeBubbleDefault: 'Hilfe benoetigt? Chatten Sie mit uns!',
11
+ newConversation: 'Neues Gespräch',
12
+ welcomeBubbleDefault: 'Hilfe benötigt? Chatten Sie mit uns!',
13
13
  };
14
14
  //# sourceMappingURL=de.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"de.js","sourceRoot":"","sources":["../../src/i18n/de.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAkB;IAC/B,cAAc,EAAE,mCAAmC;IACnD,gBAAgB,EAAE,uBAAuB;IACzC,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,YAAY;IACzB,YAAY,EAAE,0DAA0D;IACxE,YAAY,EAAE,oDAAoD;IAClE,cAAc,EAAE,sDAAsD;IACtE,eAAe,EAAE,UAAU;IAC3B,SAAS,EAAE,wBAAwB;IACnC,eAAe,EAAE,iBAAiB;IAClC,oBAAoB,EAAE,uCAAuC;CAC9D,CAAC"}
1
+ {"version":3,"file":"de.js","sourceRoot":"","sources":["../../src/i18n/de.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAkB;IAC/B,cAAc,EAAE,mCAAmC;IACnD,gBAAgB,EAAE,uBAAuB;IACzC,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,WAAW;IACxB,YAAY,EAAE,0DAA0D;IACxE,YAAY,EAAE,mDAAmD;IACjE,cAAc,EAAE,sDAAsD;IACtE,eAAe,EAAE,UAAU;IAC3B,SAAS,EAAE,wBAAwB;IACnC,eAAe,EAAE,gBAAgB;IACjC,oBAAoB,EAAE,sCAAsC;CAC7D,CAAC"}
package/dist/i18n/es.js CHANGED
@@ -1,14 +1,14 @@
1
1
  export const es = {
2
- welcomeMessage: 'Hola! Como puedo ayudarte hoy?',
2
+ welcomeMessage: '¡Hola! ¿Cómo puedo ayudarte hoy?',
3
3
  inputPlaceholder: 'Escribe un mensaje...',
4
4
  sendButton: 'Enviar',
5
5
  closeButton: 'Cerrar',
6
- errorGeneric: 'Algo salio mal. Por favor, intentalo de nuevo.',
7
- errorNetwork: 'Error de conexion. Verifica tu red.',
6
+ errorGeneric: 'Algo salió mal. Por favor, inténtalo de nuevo.',
7
+ errorNetwork: 'Error de conexión. Verifica tu red.',
8
8
  errorRateLimit: 'Demasiados mensajes. Espera un momento.',
9
9
  typingIndicator: 'Escribiendo...',
10
10
  poweredBy: 'Desarrollado por ChatCops',
11
- newConversation: 'Nueva conversacion',
12
- welcomeBubbleDefault: 'Necesitas ayuda? Chatea con nosotros!',
11
+ newConversation: 'Nueva conversación',
12
+ welcomeBubbleDefault: '¿Necesitas ayuda? ¡Chatea con nosotros!',
13
13
  };
14
14
  //# sourceMappingURL=es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"es.js","sourceRoot":"","sources":["../../src/i18n/es.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAkB;IAC/B,cAAc,EAAE,gCAAgC;IAChD,gBAAgB,EAAE,uBAAuB;IACzC,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,QAAQ;IACrB,YAAY,EAAE,gDAAgD;IAC9D,YAAY,EAAE,qCAAqC;IACnD,cAAc,EAAE,yCAAyC;IACzD,eAAe,EAAE,gBAAgB;IACjC,SAAS,EAAE,2BAA2B;IACtC,eAAe,EAAE,oBAAoB;IACrC,oBAAoB,EAAE,uCAAuC;CAC9D,CAAC"}
1
+ {"version":3,"file":"es.js","sourceRoot":"","sources":["../../src/i18n/es.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAkB;IAC/B,cAAc,EAAE,kCAAkC;IAClD,gBAAgB,EAAE,uBAAuB;IACzC,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,QAAQ;IACrB,YAAY,EAAE,gDAAgD;IAC9D,YAAY,EAAE,qCAAqC;IACnD,cAAc,EAAE,yCAAyC;IACzD,eAAe,EAAE,gBAAgB;IACjC,SAAS,EAAE,2BAA2B;IACtC,eAAe,EAAE,oBAAoB;IACrC,oBAAoB,EAAE,yCAAyC;CAChE,CAAC"}
package/dist/i18n/fr.js CHANGED
@@ -3,11 +3,11 @@ export const fr = {
3
3
  inputPlaceholder: 'Tapez un message...',
4
4
  sendButton: 'Envoyer',
5
5
  closeButton: 'Fermer',
6
- errorGeneric: 'Une erreur est survenue. Veuillez reessayer.',
7
- errorNetwork: 'Erreur de connexion. Verifiez votre reseau.',
6
+ errorGeneric: 'Une erreur est survenue. Veuillez réessayer.',
7
+ errorNetwork: 'Erreur de connexion. Vérifiez votre réseau.',
8
8
  errorRateLimit: 'Trop de messages. Patientez un instant.',
9
9
  typingIndicator: 'En train de taper...',
10
- poweredBy: 'Propulse par ChatCops',
10
+ poweredBy: 'Propulsé par ChatCops',
11
11
  newConversation: 'Nouvelle conversation',
12
12
  welcomeBubbleDefault: 'Besoin d\'aide ? Discutons !',
13
13
  };
package/dist/i18n/hi.js CHANGED
@@ -1,14 +1,14 @@
1
1
  export const hi = {
2
- welcomeMessage: 'Namaste! Main aapki kaise madad kar sakta hoon?',
3
- inputPlaceholder: 'Apna sandesh likhen...',
4
- sendButton: 'Bhejen',
5
- closeButton: 'Band karen',
6
- errorGeneric: 'Kuch galat ho gaya. Kripya dobara koshish karen.',
7
- errorNetwork: 'Connection mein samasya. Apna network jaanchen.',
8
- errorRateLimit: 'Bahut saare sandesh. Kripya thoda intezaar karen.',
9
- typingIndicator: 'Likh raha hai...',
10
- poweredBy: 'ChatCops dwara sanchaalit',
11
- newConversation: 'Nayi baatcheet',
12
- welcomeBubbleDefault: 'Madad chahiye? Humse baat karen!',
2
+ welcomeMessage: 'नमस्ते! मैं आपकी कैसे मदद कर सकता हूँ?',
3
+ inputPlaceholder: 'अपना संदेश लिखें...',
4
+ sendButton: 'भेजें',
5
+ closeButton: 'बंद करें',
6
+ errorGeneric: 'कुछ गलत हो गया। कृपया दोबारा कोशिश करें।',
7
+ errorNetwork: 'कनेक्शन में समस्या है। अपना नेटवर्क जाँचें।',
8
+ errorRateLimit: 'बहुत सारे संदेश। कृपया थोड़ा इंतज़ार करें।',
9
+ typingIndicator: 'लिख रहा है...',
10
+ poweredBy: 'ChatCops द्वारा संचालित',
11
+ newConversation: 'नई बातचीत',
12
+ welcomeBubbleDefault: 'मदद चाहिए? हमसे बात करें!',
13
13
  };
14
14
  //# sourceMappingURL=hi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hi.js","sourceRoot":"","sources":["../../src/i18n/hi.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAkB;IAC/B,cAAc,EAAE,iDAAiD;IACjE,gBAAgB,EAAE,wBAAwB;IAC1C,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,YAAY;IACzB,YAAY,EAAE,kDAAkD;IAChE,YAAY,EAAE,iDAAiD;IAC/D,cAAc,EAAE,mDAAmD;IACnE,eAAe,EAAE,kBAAkB;IACnC,SAAS,EAAE,2BAA2B;IACtC,eAAe,EAAE,gBAAgB;IACjC,oBAAoB,EAAE,kCAAkC;CACzD,CAAC"}
1
+ {"version":3,"file":"hi.js","sourceRoot":"","sources":["../../src/i18n/hi.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAkB;IAC/B,cAAc,EAAE,wCAAwC;IACxD,gBAAgB,EAAE,qBAAqB;IACvC,UAAU,EAAE,OAAO;IACnB,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,0CAA0C;IACxD,YAAY,EAAE,6CAA6C;IAC3D,cAAc,EAAE,4CAA4C;IAC5D,eAAe,EAAE,eAAe;IAChC,SAAS,EAAE,yBAAyB;IACpC,eAAe,EAAE,WAAW;IAC5B,oBAAoB,EAAE,2BAA2B;CAClD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export type { ChatMessage, Conversation, ChatRequest, ChatResponse, PageContext, LeadData, ToolParameter, ToolDefinition, ToolResult, ProviderToolCall, ProviderToolExecutor, WebhookConfig, ProviderConfig, ProviderChatParams, AnalyticsEvent, LocaleStrings, } from './types.js';
2
- export type { AIProvider } from './providers/index.js';
3
- export { createProvider, ClaudeProvider, OpenAIProvider, GeminiProvider } from './providers/index.js';
1
+ export type { ChatMessage, Conversation, ChatRequest, ChatResponse, PageContext, LeadData, ToolParameter, ToolDefinition, ToolResult, ProviderToolCall, ProviderToolExecutor, WebhookConfig, ProviderConfig, ProviderEffort, ProviderChatParams, AnalyticsEvent, LocaleStrings, } from './types.js';
2
+ export type { AIProvider, NormalizedMessage } from './providers/index.js';
3
+ export { createProvider, normalizeHistory, ClaudeProvider, OpenAIProvider, GeminiProvider } from './providers/index.js';
4
4
  export type { ChatTool, LeadCaptureCallback } from './tools/index.js';
5
5
  export { toolToDefinition, LeadCaptureTool } from './tools/index.js';
6
6
  export type { KnowledgeSource, FAQPair } from './knowledge/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,aAAa,EACb,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtG,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGrE,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/E,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,aAAa,EACb,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGxH,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGrE,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/E,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { createProvider, ClaudeProvider, OpenAIProvider, GeminiProvider } from './providers/index.js';
1
+ export { createProvider, normalizeHistory, ClaudeProvider, OpenAIProvider, GeminiProvider } from './providers/index.js';
2
2
  export { toolToDefinition, LeadCaptureTool } from './tools/index.js';
3
3
  export { TextKnowledgeSource, FAQKnowledgeSource } from './knowledge/index.js';
4
4
  export { ConversationManager, MemoryStore } from './conversation/index.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItG,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIrE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI/E,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3E,YAAY;AACZ,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO;AACP,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAIxH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIrE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI/E,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3E,YAAY;AACZ,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO;AACP,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,15 +1,33 @@
1
- import { type Tool } from '@google/generative-ai';
1
+ import type { Tool as GeminiTool } from '@google/genai';
2
2
  import type { ChatMessage, ProviderChatParams, ProviderConfig, ToolDefinition } from '../types.js';
3
3
  export interface AIProvider {
4
4
  name: string;
5
5
  chat(params: ProviderChatParams): AsyncGenerator<string>;
6
6
  chatSync(params: ProviderChatParams): Promise<string>;
7
7
  }
8
+ /** Output token limit used when neither the server config nor the request sets one. */
9
+ export declare const DEFAULT_MAX_TOKENS = 4096;
8
10
  export declare function createProvider(config: ProviderConfig): Promise<AIProvider>;
9
11
  export declare function toProviderMessages(messages: ChatMessage[]): Array<{
10
12
  role: string;
11
13
  content: string;
12
14
  }>;
15
+ export interface NormalizedMessage {
16
+ role: 'user' | 'assistant';
17
+ content: string;
18
+ }
19
+ /**
20
+ * Turns stored messages into a history every provider accepts: it starts with
21
+ * a user turn and alternates between user and assistant.
22
+ *
23
+ * - System messages and empty messages are dropped.
24
+ * - Leading assistant turns are dropped (history trimming can leave one first).
25
+ * - Consecutive turns with the same role are merged with a blank line, for
26
+ * example a user message saved before a provider call that then failed.
27
+ */
28
+ export declare function normalizeHistory(messages: ChatMessage[]): NormalizedMessage[];
29
+ /** Logs a configuration warning once per process. */
30
+ export declare function warnOnce(key: string, message: string): void;
13
31
  export declare function toClaudeTools(tools: ToolDefinition[]): {
14
32
  name: string;
15
33
  description: string;
@@ -31,5 +49,5 @@ export declare function toOpenAITools(tools: ToolDefinition[]): {
31
49
  };
32
50
  };
33
51
  }[];
34
- export declare function toGeminiTools(tools: ToolDefinition[]): Tool[];
52
+ export declare function toGeminiTools(tools: ToolDefinition[]): GeminiTool[];
35
53
  //# sourceMappingURL=base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,IAAI,EAA4B,MAAM,uBAAuB,CAAC;AACxF,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEnG,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACzD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvD;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAiBhF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAIpG;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE;;;;;;;;IAUpD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE;;;;;;;;;;;IAapD;AAQD,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,CAkB7D"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEnG,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACzD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvD;AAED,uFAAuF;AACvF,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAiBhF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAIpG;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,iBAAiB,EAAE,CAiB7E;AAID,qDAAqD;AACrD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAI3D;AAUD,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE;;;;;;;;IAMpD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE;;;;;;;;;;;IASpD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE,CAQnE"}
@@ -1,4 +1,5 @@
1
- import { SchemaType } from '@google/generative-ai';
1
+ /** Output token limit used when neither the server config nor the request sets one. */
2
+ export const DEFAULT_MAX_TOKENS = 4096;
2
3
  export async function createProvider(config) {
3
4
  switch (config.type) {
4
5
  case 'claude': {
@@ -22,15 +23,54 @@ export function toProviderMessages(messages) {
22
23
  .filter((m) => m.role !== 'system')
23
24
  .map((m) => ({ role: m.role, content: m.content }));
24
25
  }
26
+ /**
27
+ * Turns stored messages into a history every provider accepts: it starts with
28
+ * a user turn and alternates between user and assistant.
29
+ *
30
+ * - System messages and empty messages are dropped.
31
+ * - Leading assistant turns are dropped (history trimming can leave one first).
32
+ * - Consecutive turns with the same role are merged with a blank line, for
33
+ * example a user message saved before a provider call that then failed.
34
+ */
35
+ export function normalizeHistory(messages) {
36
+ const normalized = [];
37
+ for (const message of messages) {
38
+ if (message.role !== 'user' && message.role !== 'assistant')
39
+ continue;
40
+ if (!message.content.trim())
41
+ continue;
42
+ if (normalized.length === 0 && message.role !== 'user')
43
+ continue;
44
+ const previous = normalized.at(-1);
45
+ if (previous && previous.role === message.role) {
46
+ previous.content += `\n\n${message.content}`;
47
+ }
48
+ else {
49
+ normalized.push({ role: message.role, content: message.content });
50
+ }
51
+ }
52
+ return normalized;
53
+ }
54
+ const warned = new Set();
55
+ /** Logs a configuration warning once per process. */
56
+ export function warnOnce(key, message) {
57
+ if (warned.has(key))
58
+ return;
59
+ warned.add(key);
60
+ console.warn(`[chatcops] ${message}`);
61
+ }
62
+ function toJsonSchemaObject(tool) {
63
+ return {
64
+ type: 'object',
65
+ properties: tool.parameters,
66
+ required: tool.required,
67
+ };
68
+ }
25
69
  export function toClaudeTools(tools) {
26
70
  return tools.map((t) => ({
27
71
  name: t.name,
28
72
  description: t.description,
29
- input_schema: {
30
- type: 'object',
31
- properties: t.parameters,
32
- required: t.required,
33
- },
73
+ input_schema: toJsonSchemaObject(t),
34
74
  }));
35
75
  }
36
76
  export function toOpenAITools(tools) {
@@ -39,33 +79,16 @@ export function toOpenAITools(tools) {
39
79
  function: {
40
80
  name: t.name,
41
81
  description: t.description,
42
- parameters: {
43
- type: 'object',
44
- properties: t.parameters,
45
- required: t.required,
46
- },
82
+ parameters: toJsonSchemaObject(t),
47
83
  },
48
84
  }));
49
85
  }
50
- const SCHEMA_TYPE_MAP = {
51
- string: SchemaType.STRING,
52
- number: SchemaType.NUMBER,
53
- boolean: SchemaType.BOOLEAN,
54
- };
55
86
  export function toGeminiTools(tools) {
56
87
  return [{
57
88
  functionDeclarations: tools.map((t) => ({
58
89
  name: t.name,
59
90
  description: t.description,
60
- parameters: {
61
- type: SchemaType.OBJECT,
62
- properties: Object.fromEntries(Object.entries(t.parameters).map(([k, v]) => [k, {
63
- type: SCHEMA_TYPE_MAP[v.type] ?? SchemaType.STRING,
64
- description: v.description,
65
- ...(v.enum ? { enum: v.enum } : {}),
66
- }])),
67
- required: t.required,
68
- },
91
+ parametersJsonSchema: toJsonSchemaObject(t),
69
92
  })),
70
93
  }];
71
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,28 @@
1
1
  import type { ProviderConfig, ProviderChatParams } from '../types.js';
2
2
  import type { AIProvider } from './base.js';
3
+ interface ClaudeVersion {
4
+ family: string;
5
+ major: number;
6
+ minor: number;
7
+ }
8
+ /** Reads family and version from ids like `claude-haiku-5-5` or `claude-haiku-4-5-20251001`. */
9
+ export declare function parseClaudeModel(model: string): ClaudeVersion | null;
10
+ /** `output_config.effort` exists on Opus 4.5 and on every model from 4.6 on. */
11
+ export declare function claudeSupportsEffort(model: string): boolean;
12
+ /** Fable, Mythos, every 5.x model and Opus 4.7+ reject non-default `temperature`. */
13
+ export declare function claudeRejectsTemperature(model: string): boolean;
3
14
  export declare class ClaudeProvider implements AIProvider {
4
15
  name: string;
5
16
  private client;
6
17
  private model;
18
+ private effort;
7
19
  constructor(config: ProviderConfig);
20
+ private request;
21
+ /** Throws on stop reasons that mean the reply can't be used. */
22
+ private checkStopReason;
8
23
  chat(params: ProviderChatParams): AsyncGenerator<string>;
9
24
  chatSync(params: ProviderChatParams): Promise<string>;
25
+ private runTools;
10
26
  }
27
+ export {};
11
28
  //# sourceMappingURL=claude.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/providers/claude.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAyC5C,qBAAa,cAAe,YAAW,UAAU;IAC/C,IAAI,SAAY;IAChB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,cAAc;IAK3B,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC;IA2DzD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;CAqD5D"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/providers/claude.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAkB,MAAM,aAAa,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAW5C,UAAU,aAAa;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,gGAAgG;AAChG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAIpE;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAO3D;AAED,qFAAqF;AACrF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAM/D;AA+CD,qBAAa,cAAe,YAAW,UAAU;IAC/C,IAAI,SAAY;IAChB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAA6B;gBAE/B,MAAM,EAAE,cAAc;IAclC,OAAO,CAAC,OAAO;IAqBf,gEAAgE;IAChE,OAAO,CAAC,eAAe;IAYhB,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC;IAgCzD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;YA0B7C,QAAQ;CAmBvB"}