@chatcops/core 0.5.0 → 0.6.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 (144) hide show
  1. package/dist/agent/run-turn.d.ts +11 -0
  2. package/dist/agent/run-turn.d.ts.map +1 -1
  3. package/dist/agent/run-turn.js +65 -9
  4. package/dist/agent/run-turn.js.map +1 -1
  5. package/dist/agent/tool-registry.d.ts +2 -0
  6. package/dist/agent/tool-registry.d.ts.map +1 -1
  7. package/dist/agent/tool-registry.js +4 -7
  8. package/dist/agent/tool-registry.js.map +1 -1
  9. package/dist/analytics/collector.d.ts +2 -0
  10. package/dist/analytics/collector.d.ts.map +1 -1
  11. package/dist/analytics/collector.js +16 -10
  12. package/dist/analytics/collector.js.map +1 -1
  13. package/dist/analytics/index.d.ts +1 -0
  14. package/dist/analytics/index.d.ts.map +1 -1
  15. package/dist/analytics/index.js +1 -0
  16. package/dist/analytics/index.js.map +1 -1
  17. package/dist/analytics/names.d.ts +21 -0
  18. package/dist/analytics/names.d.ts.map +1 -0
  19. package/dist/analytics/names.js +41 -0
  20. package/dist/analytics/names.js.map +1 -0
  21. package/dist/analytics/sink.d.ts +3 -0
  22. package/dist/analytics/sink.d.ts.map +1 -1
  23. package/dist/analytics/sink.js +15 -12
  24. package/dist/analytics/sink.js.map +1 -1
  25. package/dist/conversation/manager.d.ts +3 -0
  26. package/dist/conversation/manager.d.ts.map +1 -1
  27. package/dist/conversation/manager.js +2 -1
  28. package/dist/conversation/manager.js.map +1 -1
  29. package/dist/index.d.ts +6 -3
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +4 -2
  32. package/dist/index.js.map +1 -1
  33. package/dist/knowledge/base.d.ts +8 -0
  34. package/dist/knowledge/base.d.ts.map +1 -1
  35. package/dist/knowledge/tokenize.d.ts.map +1 -1
  36. package/dist/knowledge/tokenize.js +4 -4
  37. package/dist/knowledge/tokenize.js.map +1 -1
  38. package/dist/logger.d.ts +36 -0
  39. package/dist/logger.d.ts.map +1 -0
  40. package/dist/logger.js +40 -0
  41. package/dist/logger.js.map +1 -0
  42. package/dist/providers/base.d.ts +2 -1
  43. package/dist/providers/base.d.ts.map +1 -1
  44. package/dist/providers/base.js +2 -2
  45. package/dist/providers/base.js.map +1 -1
  46. package/dist/providers/claude.d.ts +15 -1
  47. package/dist/providers/claude.d.ts.map +1 -1
  48. package/dist/providers/claude.js +48 -8
  49. package/dist/providers/claude.js.map +1 -1
  50. package/dist/providers/openai.d.ts +1 -0
  51. package/dist/providers/openai.d.ts.map +1 -1
  52. package/dist/providers/openai.js +6 -3
  53. package/dist/providers/openai.js.map +1 -1
  54. package/dist/providers/tool-execution.d.ts +3 -0
  55. package/dist/providers/tool-execution.d.ts.map +1 -1
  56. package/dist/providers/tool-execution.js +13 -3
  57. package/dist/providers/tool-execution.js.map +1 -1
  58. package/dist/providers/types.d.ts +18 -0
  59. package/dist/providers/types.d.ts.map +1 -1
  60. package/dist/retrieval/citations.d.ts +44 -0
  61. package/dist/retrieval/citations.d.ts.map +1 -0
  62. package/dist/retrieval/citations.js +97 -0
  63. package/dist/retrieval/citations.js.map +1 -0
  64. package/dist/retrieval/cohere-reranker.d.ts +13 -0
  65. package/dist/retrieval/cohere-reranker.d.ts.map +1 -0
  66. package/dist/retrieval/cohere-reranker.js +33 -0
  67. package/dist/retrieval/cohere-reranker.js.map +1 -0
  68. package/dist/retrieval/gemini-embedder.d.ts +26 -0
  69. package/dist/retrieval/gemini-embedder.d.ts.map +1 -0
  70. package/dist/retrieval/gemini-embedder.js +36 -0
  71. package/dist/retrieval/gemini-embedder.js.map +1 -0
  72. package/dist/retrieval/http.d.ts +20 -0
  73. package/dist/retrieval/http.d.ts.map +1 -0
  74. package/dist/retrieval/http.js +68 -0
  75. package/dist/retrieval/http.js.map +1 -0
  76. package/dist/retrieval/index.d.ts +14 -0
  77. package/dist/retrieval/index.d.ts.map +1 -0
  78. package/dist/retrieval/index.js +13 -0
  79. package/dist/retrieval/index.js.map +1 -0
  80. package/dist/retrieval/knowledge.d.ts +16 -0
  81. package/dist/retrieval/knowledge.d.ts.map +1 -0
  82. package/dist/retrieval/knowledge.js +21 -0
  83. package/dist/retrieval/knowledge.js.map +1 -0
  84. package/dist/retrieval/openai-embedder.d.ts +25 -0
  85. package/dist/retrieval/openai-embedder.d.ts.map +1 -0
  86. package/dist/retrieval/openai-embedder.js +30 -0
  87. package/dist/retrieval/openai-embedder.js.map +1 -0
  88. package/dist/retrieval/query.d.ts +8 -0
  89. package/dist/retrieval/query.d.ts.map +1 -0
  90. package/dist/retrieval/query.js +19 -0
  91. package/dist/retrieval/query.js.map +1 -0
  92. package/dist/retrieval/retrievers.d.ts +30 -0
  93. package/dist/retrieval/retrievers.d.ts.map +1 -0
  94. package/dist/retrieval/retrievers.js +89 -0
  95. package/dist/retrieval/retrievers.js.map +1 -0
  96. package/dist/retrieval/sources.d.ts +16 -0
  97. package/dist/retrieval/sources.d.ts.map +1 -0
  98. package/dist/retrieval/sources.js +37 -0
  99. package/dist/retrieval/sources.js.map +1 -0
  100. package/dist/retrieval/types.d.ts +50 -0
  101. package/dist/retrieval/types.d.ts.map +1 -0
  102. package/dist/retrieval/types.js +2 -0
  103. package/dist/retrieval/types.js.map +1 -0
  104. package/dist/retrieval/voyage-embedder.d.ts +33 -0
  105. package/dist/retrieval/voyage-embedder.d.ts.map +1 -0
  106. package/dist/retrieval/voyage-embedder.js +33 -0
  107. package/dist/retrieval/voyage-embedder.js.map +1 -0
  108. package/dist/retrieval/voyage-reranker.d.ts +13 -0
  109. package/dist/retrieval/voyage-reranker.d.ts.map +1 -0
  110. package/dist/retrieval/voyage-reranker.js +38 -0
  111. package/dist/retrieval/voyage-reranker.js.map +1 -0
  112. package/dist/retrieval/workers-ai-embedder.d.ts +21 -0
  113. package/dist/retrieval/workers-ai-embedder.d.ts.map +1 -0
  114. package/dist/retrieval/workers-ai-embedder.js +42 -0
  115. package/dist/retrieval/workers-ai-embedder.js.map +1 -0
  116. package/dist/retrieval/workers-ai-reranker.d.ts +11 -0
  117. package/dist/retrieval/workers-ai-reranker.d.ts.map +1 -0
  118. package/dist/retrieval/workers-ai-reranker.js +54 -0
  119. package/dist/retrieval/workers-ai-reranker.js.map +1 -0
  120. package/dist/storage/index.d.ts +2 -1
  121. package/dist/storage/index.d.ts.map +1 -1
  122. package/dist/storage/index.js +1 -0
  123. package/dist/storage/index.js.map +1 -1
  124. package/dist/storage/memory-vectors.d.ts +22 -0
  125. package/dist/storage/memory-vectors.d.ts.map +1 -0
  126. package/dist/storage/memory-vectors.js +140 -0
  127. package/dist/storage/memory-vectors.js.map +1 -0
  128. package/dist/storage/types.d.ts +70 -0
  129. package/dist/storage/types.d.ts.map +1 -1
  130. package/dist/testing/conformance.d.ts +4 -3
  131. package/dist/testing/conformance.d.ts.map +1 -1
  132. package/dist/testing/conformance.js +172 -2
  133. package/dist/testing/conformance.js.map +1 -1
  134. package/dist/testing/provider.d.ts +2 -0
  135. package/dist/testing/provider.d.ts.map +1 -1
  136. package/dist/testing/provider.js +1 -0
  137. package/dist/testing/provider.js.map +1 -1
  138. package/dist/tools/lead-capture.d.ts +2 -2
  139. package/dist/tools/lead-capture.d.ts.map +1 -1
  140. package/dist/tools/lead-capture.js +3 -2
  141. package/dist/tools/lead-capture.js.map +1 -1
  142. package/dist/types.d.ts +7 -0
  143. package/dist/types.d.ts.map +1 -1
  144. package/package.json +2 -2
@@ -1,3 +1,5 @@
1
+ import { consoleLogger } from '../logger.js';
2
+ import { ANALYTICS_EVENTS, countsWithAliases, eventName } from './names.js';
1
3
  const DEFAULT_MAX_BATCH = 50;
2
4
  const DEFAULT_FLUSH_MS = 2000;
3
5
  export class BufferedEventSink {
@@ -7,8 +9,10 @@ export class BufferedEventSink {
7
9
  flushMs;
8
10
  timer;
9
11
  flushPromise;
12
+ logger;
10
13
  constructor(sink, options) {
11
14
  this.sink = sink;
15
+ this.logger = options?.logger ?? consoleLogger();
12
16
  this.maxBatch = options?.maxBatch ?? DEFAULT_MAX_BATCH;
13
17
  this.flushMs = options?.flushMs ?? DEFAULT_FLUSH_MS;
14
18
  if (!Number.isInteger(this.maxBatch) || this.maxBatch < 1) {
@@ -20,7 +24,7 @@ export class BufferedEventSink {
20
24
  }
21
25
  track(type, data) {
22
26
  const wasEmpty = this.events.length === 0;
23
- this.events.push({ type, data, timestamp: Date.now() });
27
+ this.events.push({ type: eventName(type), data, timestamp: Date.now() });
24
28
  if (wasEmpty)
25
29
  this.scheduleFlush();
26
30
  if (this.events.length >= this.maxBatch)
@@ -38,7 +42,7 @@ export class BufferedEventSink {
38
42
  await this.sink.write(batch);
39
43
  }
40
44
  catch (error) {
41
- console.error(`[chatcops] analytics write failed: ${errorMessage(error)}`);
45
+ this.logger.error('analytics_write_failed', `analytics write failed: ${errorMessage(error)}`);
42
46
  }
43
47
  }
44
48
  });
@@ -64,7 +68,7 @@ export class BufferedEventSink {
64
68
  }
65
69
  catch (error) {
66
70
  this.clearTimer();
67
- console.error(`[chatcops] analytics timer failed: ${errorMessage(error)}`);
71
+ this.logger.error('analytics_flush_failed', `analytics timer failed: ${errorMessage(error)}`);
68
72
  this.startAutomaticFlush();
69
73
  }
70
74
  }
@@ -76,7 +80,7 @@ export class BufferedEventSink {
76
80
  }
77
81
  startAutomaticFlush() {
78
82
  void this.flush().catch((error) => {
79
- console.error(`[chatcops] analytics flush failed: ${errorMessage(error)}`);
83
+ this.logger.error('analytics_flush_failed', `analytics flush failed: ${errorMessage(error)}`);
80
84
  });
81
85
  }
82
86
  }
@@ -84,17 +88,16 @@ export async function statsFromSink(sink, range) {
84
88
  if (!sink.query) {
85
89
  throw new Error('Event sink does not support querying; implement EventSink.query to calculate analytics statistics.');
86
90
  }
87
- const counts = await sink.query(range);
88
- const eventCounts = new Map();
89
- for (const { type, count } of counts) {
90
- eventCounts.set(type, (eventCounts.get(type) ?? 0) + count);
91
- }
92
- const totalConversations = eventCounts.get('conversation:started') ?? 0;
93
- const totalMessages = (eventCounts.get('message:sent') ?? 0) + (eventCounts.get('message:received') ?? 0);
91
+ // Events stored under the old names (before 0.8) still count.
92
+ const eventCounts = countsWithAliases((await sink.query(range)).map(({ type, count }) => [type, count]));
93
+ const totalConversations = eventCounts.get(ANALYTICS_EVENTS.conversationStarted) ?? 0;
94
+ const totalMessages = (eventCounts.get(ANALYTICS_EVENTS.messageSent) ?? 0) + (eventCounts.get(ANALYTICS_EVENTS.messageReceived) ?? 0);
95
+ const leadsCaptured = eventCounts.get(ANALYTICS_EVENTS.leadCaptured) ?? 0;
94
96
  return {
95
97
  totalConversations,
96
98
  totalMessages,
97
- leadsCapture: eventCounts.get('lead:captured') ?? 0,
99
+ leadsCaptured,
100
+ leadsCapture: leadsCaptured,
98
101
  averageMessagesPerConversation: totalConversations > 0 ? totalMessages / totalConversations : 0,
99
102
  eventCounts: Object.fromEntries(eventCounts),
100
103
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sink.js","sourceRoot":"","sources":["../../src/analytics/sink.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sink.js","sourceRoot":"","sources":["../../src/analytics/sink.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type Logger } from '../logger.js';
1
2
  import type { AppendOptions, ChatCopsStorage } from '../storage/types.js';
2
3
  import type { ChatMessage, Conversation } from '../types.js';
3
4
  import type { ConversationStore } from './store.js';
@@ -13,6 +14,8 @@ export interface ConversationManagerOptions {
13
14
  maxMessages?: number;
14
15
  /** Token budget for the history sent to the model. Default 32,000. */
15
16
  maxHistoryTokens?: number;
17
+ /** Where warnings go. Default `consoleLogger()`. */
18
+ logger?: Logger;
16
19
  }
17
20
  /** Releases a turn lock. Safe to call more than once. */
18
21
  export type ReleaseTurn = () => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/conversation/manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAiB,MAAM,qBAAqB,CAAC;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,WAAW,0BAA0B;IACzC,iEAAiE;IACjE,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,kDAAkD;IAClD,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,yDAAyD;AACzD,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAE9C;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;IACpD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAA4B;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;gBAEpC,OAAO,GAAE,0BAA+B;IAcpD;;;OAGG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAOpD,0EAA0E;IACpE,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAKrF;;;;OAIG;IACG,cAAc,CAClB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAM/B,sFAAsF;IACtF,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvE,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAKjE;;;OAGG;IACG,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAI1D,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD;;;;;;;OAOG;IACG,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,SAAU,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA8BvF;;;;OAIG;YACW,kBAAkB;CAWjC"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/conversation/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAK1D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAiB,MAAM,qBAAqB,CAAC;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,WAAW,0BAA0B;IACzC,iEAAiE;IACjE,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,kDAAkD;IAClD,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,yDAAyD;AACzD,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAE9C;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;IACpD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAA4B;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;gBAEpC,OAAO,GAAE,0BAA+B;IAepD;;;OAGG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAOpD,0EAA0E;IACpE,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAKrF;;;;OAIG;IACG,cAAc,CAClB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAM/B,sFAAsF;IACtF,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvE,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAKjE;;;OAGG;IACG,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAI1D,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD;;;;;;;OAOG;IACG,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,SAAU,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA8BvF;;;;OAIG;YACW,kBAAkB;CAWjC"}
@@ -1,3 +1,4 @@
1
+ import { consoleLogger } from '../logger.js';
1
2
  import { warnOnce } from '../providers/base.js';
2
3
  import { DEFAULT_MAX_HISTORY_TOKENS, trimHistory } from '../providers/history.js';
3
4
  import { isLegacyConversationStore, withAppend } from '../storage/adapt.js';
@@ -16,7 +17,7 @@ export class ConversationManager {
16
17
  constructor(options = {}) {
17
18
  const store = options.storage?.conversations ?? options.store ?? memoryStorage().conversations;
18
19
  if (isLegacyConversationStore(store)) {
19
- warnOnce('legacy-conversation-store', "The conversation store has no append(), so each write saves the whole conversation. That's fine on one server, but two instances writing the same conversation can lose a message. The store packages (@chatcops/store-*) have append().");
20
+ warnOnce(options.logger ?? consoleLogger(), 'legacy-conversation-store', "The conversation store has no append(), so each write saves the whole conversation. That's fine on one server, but two instances writing the same conversation can lose a message. The store packages (@chatcops/store-*) have append().");
20
21
  }
21
22
  this.store = withAppend(store);
22
23
  this.kv = options.storage?.kv;
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/conversation/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/conversation/manager.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export type { ChatMessage, Conversation, ChatRequest, ChatResponse, PageContext, LeadData, ToolParameter, ToolDefinition, ToolAnnotations, ToolContext, ToolResult, ProviderToolCall, ProviderToolExecutor, WebhookConfig, ProviderConfig, ProviderEffort, ProviderChatParams, AnalyticsEvent, LocaleStrings, TokenUsage, ProviderMetadata, JSONSchema, ToolExecutor, ToolCallState, MessagePart, TextPart, ReasoningPart, SourcePart, ToolCallPart, ToolResultPart, LeadCapturedPart, HandoffPart, } from './types.js';
2
2
  export { partsOf, messageText } from './parts.js';
3
+ export { consoleLogger, jsonLogger, silentLogger, type Logger, type LogFields, type JsonLoggerOptions } from './logger.js';
3
4
  export { PROTOCOL_VERSION, encodeSSE, SSE_PING, SSE_DONE, SSE_HEADERS, statusForError, errorBody, describeInvalidRequest, toLegacyChunk, aiSdkEncoder, fromAiSdkRequest, AI_SDK_STREAM_HEADER } from './protocol/index.js';
4
5
  export type { AiSdkChunk, LegacyChunk, WirePart, WirePartType, WireErrorCode, WireFinishReason, WireAgent, WireErrorBody, ChatRequestV1, ClientToolManifest, } from './protocol/index.js';
5
6
  export type { AIProvider, NormalizedMessage, NormalizedTurn, TurnPart, FinishReason, ProviderEvent, ProviderStepParams, } from './providers/index.js';
@@ -12,16 +13,18 @@ export type { ChatTool, LeadCaptureCallback } from './tools/index.js';
12
13
  export { toolToDefinition, LeadCaptureTool } from './tools/index.js';
13
14
  export type { KnowledgeSource, FAQPair } from './knowledge/index.js';
14
15
  export { TextKnowledgeSource, FAQKnowledgeSource } from './knowledge/index.js';
16
+ export type { Embedder, RetrievedChunk, RetrievalQuery, Retriever, Reranker, OpenAIEmbedderOptions, GeminiEmbedderOptions, VoyageEmbedderOptions, VoyageRerankerOptions, CohereRerankerOptions, WorkersAiBinding, WorkersAiEmbedderOptions, WorkersAiRerankerOptions, RetrieverKnowledgeOptions, VectorRetrieverOptions, HybridRetrieverOptions, } from './retrieval/index.js';
17
+ export { openaiEmbedder, geminiEmbedder, voyageEmbedder, voyageReranker, cohereReranker, workersAiEmbedder, workersAiReranker, retrieverKnowledge, formatSources, uniqueChunks, SOURCES_INSTRUCTION, vectorRetriever, hybridRetriever, reciprocalRankFusion, retrievalQueryText, CitationParser, parseCitations, sourcePart, sourcesContext, CITE_INSTRUCTION, NATIVE_SOURCES_INSTRUCTION, } from './retrieval/index.js';
15
18
  export type { ConversationStore } from './conversation/index.js';
16
19
  export { ConversationManager, MemoryStore } from './conversation/index.js';
17
20
  export type { ConversationManagerOptions, ReleaseTurn } from './conversation/index.js';
18
- export type { AppendOptions, ChatCopsStorage, ConversationSummary, CounterStore, CounterValue, EventCount, EventQuery, EventSink, KeyValueStore, ListQuery, MemoryStorageOptions, ConversationStoreWithAppend, } from './storage/index.js';
19
- export { ConflictError, isConflictError, CONFLICT_ERROR_CODE, memoryStorage, withAppend, isLegacyConversationStore, } from './storage/index.js';
21
+ export type { AppendOptions, ChatCopsStorage, ConversationSummary, CounterStore, CounterValue, EventCount, EventQuery, EventSink, KeyValueStore, ListQuery, MemoryStorageOptions, ConversationStoreWithAppend, KeywordQuery, MetadataFilter, MetadataValue, ScoredRecord, VectorQuery, VectorRecord, VectorSource, VectorStore, MemoryVectorsOptions, } from './storage/index.js';
22
+ export { ConflictError, isConflictError, CONFLICT_ERROR_CODE, memoryStorage, memoryVectors, matchesFilter, segmentWords, withAppend, isLegacyConversationStore, } from './storage/index.js';
20
23
  export { createBudgetGuard, BudgetExceededError, DEFAULT_BUDGETS, withDefaultBudgets } from './limits/budget.js';
21
24
  export type { Budgets, BudgetLimit, BudgetContext, BudgetGuard, BudgetScope } from './limits/budget.js';
22
25
  export { createRateLimiter } from './limits/rate-limit.js';
23
26
  export type { RateLimitRule, RateLimitResult, RateLimiterOptions } from './limits/rate-limit.js';
24
- export { AnalyticsCollector, BufferedEventSink, statsFromSink } from './analytics/index.js';
27
+ export { AnalyticsCollector, BufferedEventSink, statsFromSink, ANALYTICS_EVENTS } from './analytics/index.js';
25
28
  export type { AnalyticsStats } from './analytics/index.js';
26
29
  export { getLocale, getAvailableLocales } from './i18n/index.js';
27
30
  export { en, es, hi, fr, de, ja, zh, ar } from './i18n/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { partsOf, messageText } from './parts.js';
2
+ export { consoleLogger, jsonLogger, silentLogger } from './logger.js';
2
3
  // Wire protocol
3
4
  export { PROTOCOL_VERSION, encodeSSE, SSE_PING, SSE_DONE, SSE_HEADERS, statusForError, errorBody, describeInvalidRequest, toLegacyChunk, aiSdkEncoder, fromAiSdkRequest, AI_SDK_STREAM_HEADER } from './protocol/index.js';
4
5
  export { createProvider, isAIProvider, normalizeHistory, normalizeTurns, trimHistory, estimateTokens } from './providers/index.js';
@@ -8,14 +9,15 @@ export { toolInputSchema, legacyParametersToSchema, validateTools, ToolDefinitio
8
9
  export { runTurn, DEFAULT_MAX_STEPS, toolRegistry, executorRegistry, toolOutput, MAX_TOOL_OUTPUT_CHARS, RefusalError, ContentFilterError, MaxStepsError, } from './agent/index.js';
9
10
  export { toolToDefinition, LeadCaptureTool } from './tools/index.js';
10
11
  export { TextKnowledgeSource, FAQKnowledgeSource } from './knowledge/index.js';
12
+ export { openaiEmbedder, geminiEmbedder, voyageEmbedder, voyageReranker, cohereReranker, workersAiEmbedder, workersAiReranker, retrieverKnowledge, formatSources, uniqueChunks, SOURCES_INSTRUCTION, vectorRetriever, hybridRetriever, reciprocalRankFusion, retrievalQueryText, CitationParser, parseCitations, sourcePart, sourcesContext, CITE_INSTRUCTION, NATIVE_SOURCES_INSTRUCTION, } from './retrieval/index.js';
11
13
  export { ConversationManager, MemoryStore } from './conversation/index.js';
12
- export { ConflictError, isConflictError, CONFLICT_ERROR_CODE, memoryStorage, withAppend, isLegacyConversationStore, } from './storage/index.js';
14
+ export { ConflictError, isConflictError, CONFLICT_ERROR_CODE, memoryStorage, memoryVectors, matchesFilter, segmentWords, withAppend, isLegacyConversationStore, } from './storage/index.js';
13
15
  // Budgets
14
16
  export { createBudgetGuard, BudgetExceededError, DEFAULT_BUDGETS, withDefaultBudgets } from './limits/budget.js';
15
17
  // Rate limiting
16
18
  export { createRateLimiter } from './limits/rate-limit.js';
17
19
  // Analytics
18
- export { AnalyticsCollector, BufferedEventSink, statsFromSink } from './analytics/index.js';
20
+ export { AnalyticsCollector, BufferedEventSink, statsFromSink, ANALYTICS_EVENTS } from './analytics/index.js';
19
21
  // i18n
20
22
  export { getLocale, getAvailableLocales } from './i18n/index.js';
21
23
  export { en, es, hi, fr, de, ja, zh, ar } from './i18n/index.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAElD,gBAAgB;AAChB,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,sBAAsB,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAwB3N,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnI,OAAO,EAAE,gBAAgB,EAAwB,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAErH,cAAc;AACd,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAK1B,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;AAkB3E,OAAO,EACL,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAE5B,UAAU;AACV,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGjH,gBAAgB;AAChB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,YAAY;AACZ,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG5F,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":"AAmCA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAuD,MAAM,aAAa,CAAC;AAE3H,gBAAgB;AAChB,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,sBAAsB,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAwB3N,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnI,OAAO,EAAE,gBAAgB,EAAwB,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAErH,cAAc;AACd,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIrE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAqB/E,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA2B3E,OAAO,EACL,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACZ,UAAU,EACV,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAE5B,UAAU;AACV,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGjH,gBAAgB;AAChB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,YAAY;AACZ,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG9G,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,5 +1,13 @@
1
+ import type { RetrievalQuery, RetrievedChunk } from '../retrieval/types.js';
1
2
  export interface KnowledgeSource {
2
3
  type: string;
4
+ /** Text added to the model's context for a message. */
3
5
  getContext(query: string): Promise<string>;
6
+ /**
7
+ * The matching chunks themselves, with the conversation so far for
8
+ * follow-up questions. When a source has this, the server uses it instead
9
+ * of `getContext`, so answers can say which page they came from.
10
+ */
11
+ retrieve?(query: RetrievalQuery): Promise<RetrievedChunk[]>;
4
12
  }
5
13
  //# sourceMappingURL=base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/knowledge/base.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5C"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/knowledge/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5E,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;CAC7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"tokenize.d.ts","sourceRoot":"","sources":["../../src/knowledge/tokenize.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAKhD"}
1
+ {"version":3,"file":"tokenize.d.ts","sourceRoot":"","sources":["../../src/knowledge/tokenize.ts"],"names":[],"mappings":"AAKA,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhD"}
@@ -1,7 +1,7 @@
1
+ import { segmentWords } from '../storage/memory-vectors.js';
2
+ const CJK_SCRIPTS = /[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}]/u;
3
+ const PARTICLE = /^\p{Script=Hiragana}$/u;
1
4
  export function tokenize(query) {
2
- return query
3
- .toLowerCase()
4
- .split(/[^\p{L}\p{N}]+/u)
5
- .filter((w) => w.length > 2);
5
+ return segmentWords(query).filter((w) => !PARTICLE.test(w) && (w.length > 2 || CJK_SCRIPTS.test(w)));
6
6
  }
7
7
  //# sourceMappingURL=tokenize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokenize.js","sourceRoot":"","sources":["../../src/knowledge/tokenize.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAO,KAAK;SACT,WAAW,EAAE;SACb,KAAK,CAAC,iBAAiB,CAAC;SACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"tokenize.js","sourceRoot":"","sources":["../../src/knowledge/tokenize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,MAAM,WAAW,GAAG,0EAA0E,CAAC;AAC/F,MAAM,QAAQ,GAAG,wBAAwB,CAAC;AAE1C,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvG,CAAC"}
@@ -0,0 +1,36 @@
1
+ /** Extra details for a log line. An `error` field is printed in full. */
2
+ export type LogFields = Record<string, unknown>;
3
+ /**
4
+ * Where ChatCops writes what it notices: startup notes, refused requests and
5
+ * every error it catches instead of throwing. `event` is a stable name to
6
+ * filter or alert on (`provider_error`, `tool_error`, `webhook_failed`, …),
7
+ * and `message` is for people.
8
+ */
9
+ export interface Logger {
10
+ debug(event: string, message: string, fields?: LogFields): void;
11
+ info(event: string, message: string, fields?: LogFields): void;
12
+ warn(event: string, message: string, fields?: LogFields): void;
13
+ error(event: string, message: string, fields?: LogFields): void;
14
+ }
15
+ type Level = keyof Logger;
16
+ /**
17
+ * The default: `[chatcops] message` on the console, with an `error` field
18
+ * printed after it so its stack shows. Other fields are left out, to keep
19
+ * the lines short.
20
+ */
21
+ export declare function consoleLogger(): Logger;
22
+ export interface JsonLoggerOptions {
23
+ /** Where each line goes. Default `console.error`, which is stderr on Node and the log on Workers. */
24
+ write?: (line: string) => void;
25
+ /** Lines below this level are dropped. Default `info`. */
26
+ level?: Level;
27
+ }
28
+ /**
29
+ * One JSON object per line (`{ time, level, event, message, ...fields }`), for
30
+ * log tools that parse them. Errors become `{ name, message, stack }`.
31
+ */
32
+ export declare function jsonLogger(options?: JsonLoggerOptions): Logger;
33
+ /** A logger that writes nothing, for tests. */
34
+ export declare function silentLogger(): Logger;
35
+ export {};
36
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAChE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/D,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CACjE;AAED,KAAK,KAAK,GAAG,MAAM,MAAM,CAAC;AAG1B;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAOtC;AAED,MAAM,WAAW,iBAAiB;IAChC,qGAAqG;IACrG,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,0DAA0D;IAC1D,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,CASlE;AAMD,+CAA+C;AAC/C,wBAAgB,YAAY,IAAI,MAAM,CAGrC"}
package/dist/logger.js ADDED
@@ -0,0 +1,40 @@
1
+ const LEVELS = ['debug', 'info', 'warn', 'error'];
2
+ /**
3
+ * The default: `[chatcops] message` on the console, with an `error` field
4
+ * printed after it so its stack shows. Other fields are left out, to keep
5
+ * the lines short.
6
+ */
7
+ export function consoleLogger() {
8
+ const write = (level) => (_event, message, fields) => {
9
+ const line = `[chatcops] ${message}`;
10
+ if (fields?.error !== undefined)
11
+ console[level](line, fields.error);
12
+ else
13
+ console[level](line);
14
+ };
15
+ return Object.fromEntries(LEVELS.map((level) => [level, write(level)]));
16
+ }
17
+ /**
18
+ * One JSON object per line (`{ time, level, event, message, ...fields }`), for
19
+ * log tools that parse them. Errors become `{ name, message, stack }`.
20
+ */
21
+ export function jsonLogger(options = {}) {
22
+ const write = options.write ?? ((line) => console.error(line));
23
+ const min = LEVELS.indexOf(options.level ?? 'info');
24
+ const log = (level) => (event, message, fields = {}) => {
25
+ if (LEVELS.indexOf(level) < min)
26
+ return;
27
+ const entries = Object.entries(fields).map(([key, value]) => [key, value instanceof Error ? describeError(value) : value]);
28
+ write(JSON.stringify({ time: new Date().toISOString(), level, event, message, ...Object.fromEntries(entries) }));
29
+ };
30
+ return Object.fromEntries(LEVELS.map((level) => [level, log(level)]));
31
+ }
32
+ function describeError(error) {
33
+ return { name: error.name, message: error.message, ...(error.stack ? { stack: error.stack } : {}) };
34
+ }
35
+ /** A logger that writes nothing, for tests. */
36
+ export function silentLogger() {
37
+ const nothing = () => { };
38
+ return { debug: nothing, info: nothing, warn: nothing, error: nothing };
39
+ }
40
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAiBA,MAAM,MAAM,GAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3D;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,KAAK,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC,MAAc,EAAE,OAAe,EAAE,MAAkB,EAAE,EAAE;QACtF,MAAM,IAAI,GAAG,cAAc,OAAO,EAAE,CAAC;QACrC,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;;YAC/D,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAsB,CAAC;AAC/F,CAAC;AASD;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,UAA6B,EAAE;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC,KAAa,EAAE,OAAe,EAAE,SAAoB,EAAE,EAAE,EAAE;QACvF,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG;YAAE,OAAO;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3H,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACnH,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAsB,CAAC;AAC7F,CAAC;AAED,SAAS,aAAa,CAAC,KAAY;IACjC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACtG,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IACzB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC1E,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { Logger } from '../logger.js';
1
2
  import type { Tool as GeminiTool } from '@google/genai';
2
3
  import type { ChatMessage, ProviderConfig, ToolDefinition } from '../types.js';
3
4
  import type { AIProvider } from './types.js';
@@ -16,7 +17,7 @@ export declare function toProviderMessages(messages: ChatMessage[]): Array<{
16
17
  }>;
17
18
  export { normalizeHistory, normalizeTurns, trimHistory, estimateTokens, type NormalizedMessage, type NormalizedTurn, type TurnPart, } from './history.js';
18
19
  /** Logs a configuration warning once per process. */
19
- export declare function warnOnce(key: string, message: string): void;
20
+ export declare function warnOnce(logger: Logger, key: string, message: string): void;
20
21
  export declare function toClaudeTools(tools: ToolDefinition[]): {
21
22
  name: string;
22
23
  description: string;
@@ -1 +1 @@
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,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,uFAAuF;AACvF,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAIhE;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAwBhF;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,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,QAAQ,GACd,MAAM,cAAc,CAAC;AAItB,qDAAqD;AACrD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAI3D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE;;;kBAIb;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE;IAEjF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE;;;;;;;IAapD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE,CAQnE"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,uFAAuF;AACvF,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAIhE;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAwBhF;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,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,QAAQ,GACd,MAAM,cAAc,CAAC;AAItB,qDAAqD;AACrD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAI3E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE;;;kBAIb;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE;IAEjF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE;;;;;;;IAapD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE,CAQnE"}
@@ -45,11 +45,11 @@ export function toProviderMessages(messages) {
45
45
  export { normalizeHistory, normalizeTurns, trimHistory, estimateTokens, } from './history.js';
46
46
  const warned = new Set();
47
47
  /** Logs a configuration warning once per process. */
48
- export function warnOnce(key, message) {
48
+ export function warnOnce(logger, key, message) {
49
49
  if (warned.has(key))
50
50
  return;
51
51
  warned.add(key);
52
- console.warn(`[chatcops] ${message}`);
52
+ logger.warn('config_warning', message, { key });
53
53
  }
54
54
  export function toClaudeTools(tools) {
55
55
  return tools.map((t) => ({
@@ -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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"}
@@ -2,6 +2,7 @@ import Anthropic from '@anthropic-ai/sdk';
2
2
  import type { ChatMessage, ProviderChatParams, ProviderConfig } from '../types.js';
3
3
  import type { AIProvider } from './base.js';
4
4
  import type { ProviderEvent, ProviderStepParams } from './types.js';
5
+ import type { RetrievedChunk } from '../retrieval/types.js';
5
6
  interface ClaudeVersion {
6
7
  family: string;
7
8
  major: number;
@@ -11,7 +12,11 @@ interface ClaudeVersion {
11
12
  export declare function parseClaudeModel(model: string): ClaudeVersion | null;
12
13
  /** `output_config.effort` exists on Opus 4.5 and on every model from 4.6 on. */
13
14
  export declare function claudeSupportsEffort(model: string): boolean;
14
- /** Fable, Mythos, every 5.x model and Opus 4.7+ reject non-default `temperature`. */
15
+ /**
16
+ * Fable, Mythos, every 5.x model and Opus 4.7+ reject non-default `temperature`.
17
+ * Since API version 2026-10-21 no Claude model takes it, so the provider no
18
+ * longer uses this; it stays exported for code that does.
19
+ */
15
20
  export declare function claudeRejectsTemperature(model: string): boolean;
16
21
  type MessageParam = Anthropic.Messages.MessageParam;
17
22
  /**
@@ -22,11 +27,14 @@ type MessageParam = Anthropic.Messages.MessageParam;
22
27
  */
23
28
  export declare function toClaudeStepMessages(messages: ChatMessage[]): MessageParam[];
24
29
  export declare class ClaudeProvider implements AIProvider {
30
+ /** Retrieved chunks go to Claude as `search_result` blocks, and it cites them natively. */
31
+ readonly citations: "native";
25
32
  name: string;
26
33
  private client;
27
34
  readonly model: string;
28
35
  private effort;
29
36
  private promptCaching;
37
+ private readonly logger;
30
38
  constructor(config: ProviderConfig);
31
39
  /**
32
40
  * The system prompt, with a cache breakpoint after it. Claude caches tools
@@ -45,5 +53,11 @@ export declare class ClaudeProvider implements AIProvider {
45
53
  /** @deprecated Use `runTurn()`. */
46
54
  chatSync(params: ProviderChatParams): Promise<string>;
47
55
  }
56
+ /**
57
+ * Puts retrieved chunks before the visitor's latest message as `search_result`
58
+ * blocks, so Claude can cite them by index. Retrieved text travels as
59
+ * content, never in the system prompt. Tool results after it are left alone.
60
+ */
61
+ export declare function withSearchResults(messages: MessageParam[], sources: RetrievedChunk[] | undefined): MessageParam[];
48
62
  export {};
49
63
  //# sourceMappingURL=claude.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/providers/claude.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EACV,WAAW,EAEX,kBAAkB,EAClB,cAAc,EAIf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAK5C,OAAO,KAAK,EAAgB,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAKlF,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;AAED,KAAK,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;AAgDpD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,YAAY,EAAE,CAyC5E;AA0DD,qBAAa,cAAe,YAAW,UAAU;IAC/C,IAAI,SAAY;IAChB,OAAO,CAAC,MAAM,CAAY;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,aAAa,CAAU;gBAEnB,MAAM,EAAE,cAAc;IAiBlC;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,OAAO;IAwBf,iGAAiG;IAC1F,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAAC;IAmCtE;;;OAGG;IACH,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC;IAIxD,mCAAmC;IACnC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;CAGtD"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/providers/claude.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EACV,WAAW,EAEX,kBAAkB,EAClB,cAAc,EAIf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAM5C,OAAO,KAAK,EAAgB,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,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;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAM/D;AAED,KAAK,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;AAgDpD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,YAAY,EAAE,CA2C5E;AA0DD,qBAAa,cAAe,YAAW,UAAU;IAC/C,2FAA2F;IAC3F,QAAQ,CAAC,SAAS,EAAG,QAAQ,CAAU;IACvC,IAAI,SAAY;IAChB,OAAO,CAAC,MAAM,CAAY;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,cAAc;IAkBlC;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,OAAO;IAwBf,iGAAiG;IAC1F,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAAC;IAsCtE;;;OAGG;IACH,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC;IAIxD,mCAAmC;IACnC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;CAGtD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,SAAS,GAAG,YAAY,EAAE,CAiBjH"}