bernard-agent 0.4.0 → 0.5.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 (138) hide show
  1. package/README.md +69 -14
  2. package/THIRD-PARTY-NOTICES +212 -0
  3. package/dist/agent.d.ts +32 -3
  4. package/dist/agent.js +59 -11
  5. package/dist/agent.js.map +1 -1
  6. package/dist/config.d.ts +67 -0
  7. package/dist/config.js +82 -20
  8. package/dist/config.js.map +1 -1
  9. package/dist/context.d.ts +7 -0
  10. package/dist/context.js +4 -0
  11. package/dist/context.js.map +1 -1
  12. package/dist/cron/cli.d.ts +6 -0
  13. package/dist/cron/cli.js +8 -0
  14. package/dist/cron/cli.js.map +1 -1
  15. package/dist/cron/client.d.ts +9 -0
  16. package/dist/cron/client.js +9 -0
  17. package/dist/cron/client.js.map +1 -1
  18. package/dist/cron/daemon.js +8 -0
  19. package/dist/cron/daemon.js.map +1 -1
  20. package/dist/cron/log-store.d.ts +18 -0
  21. package/dist/cron/log-store.js +22 -7
  22. package/dist/cron/log-store.js.map +1 -1
  23. package/dist/cron/notify.d.ts +7 -0
  24. package/dist/cron/notify.js +16 -0
  25. package/dist/cron/notify.js.map +1 -1
  26. package/dist/cron/runner.d.ts +11 -0
  27. package/dist/cron/runner.js +63 -13
  28. package/dist/cron/runner.js.map +1 -1
  29. package/dist/cron/scheduler.d.ts +16 -0
  30. package/dist/cron/scheduler.js +16 -0
  31. package/dist/cron/scheduler.js.map +1 -1
  32. package/dist/cron/store.d.ts +32 -0
  33. package/dist/cron/store.js +51 -24
  34. package/dist/cron/store.js.map +1 -1
  35. package/dist/cron/types.d.ts +19 -0
  36. package/dist/domains.d.ts +15 -0
  37. package/dist/domains.js +19 -0
  38. package/dist/domains.js.map +1 -1
  39. package/dist/embeddings.d.ts +7 -1
  40. package/dist/embeddings.js +43 -1
  41. package/dist/embeddings.js.map +1 -1
  42. package/dist/facts-cli.d.ts +14 -0
  43. package/dist/facts-cli.js +51 -0
  44. package/dist/facts-cli.js.map +1 -1
  45. package/dist/history.d.ts +8 -0
  46. package/dist/history.js +14 -9
  47. package/dist/history.js.map +1 -1
  48. package/dist/index.d.ts +5 -0
  49. package/dist/index.js +22 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/logger.d.ts +6 -0
  52. package/dist/logger.js +6 -0
  53. package/dist/logger.js.map +1 -1
  54. package/dist/mcp.d.ts +87 -0
  55. package/dist/mcp.js +106 -25
  56. package/dist/mcp.js.map +1 -1
  57. package/dist/memory-context.d.ts +4 -0
  58. package/dist/memory-context.js +4 -2
  59. package/dist/memory-context.js.map +1 -1
  60. package/dist/memory.d.ts +17 -0
  61. package/dist/memory.js +23 -7
  62. package/dist/memory.js.map +1 -1
  63. package/dist/migrate.d.ts +13 -0
  64. package/dist/migrate.js +209 -0
  65. package/dist/migrate.js.map +1 -0
  66. package/dist/output.d.ts +45 -0
  67. package/dist/output.js +61 -0
  68. package/dist/output.js.map +1 -1
  69. package/dist/paths.d.ts +23 -0
  70. package/dist/paths.js +82 -0
  71. package/dist/paths.js.map +1 -0
  72. package/dist/providers/index.d.ts +7 -0
  73. package/dist/providers/index.js +7 -0
  74. package/dist/providers/index.js.map +1 -1
  75. package/dist/providers/types.d.ts +4 -0
  76. package/dist/rag-query.d.ts +20 -0
  77. package/dist/rag-query.js +69 -3
  78. package/dist/rag-query.js.map +1 -1
  79. package/dist/rag-worker.js.map +1 -1
  80. package/dist/rag.d.ts +27 -0
  81. package/dist/rag.js +29 -19
  82. package/dist/rag.js.map +1 -1
  83. package/dist/repl.d.ts +6 -0
  84. package/dist/repl.js +147 -9
  85. package/dist/repl.js.map +1 -1
  86. package/dist/routines.d.ts +49 -0
  87. package/dist/routines.js +172 -0
  88. package/dist/routines.js.map +1 -0
  89. package/dist/setup.d.ts +5 -0
  90. package/dist/setup.js +7 -1
  91. package/dist/setup.js.map +1 -1
  92. package/dist/theme.d.ts +41 -0
  93. package/dist/theme.js +25 -0
  94. package/dist/theme.js.map +1 -1
  95. package/dist/tools/cron-logs.d.ts +6 -0
  96. package/dist/tools/cron-logs.js +6 -0
  97. package/dist/tools/cron-logs.js.map +1 -1
  98. package/dist/tools/cron.d.ts +7 -0
  99. package/dist/tools/cron.js +7 -0
  100. package/dist/tools/cron.js.map +1 -1
  101. package/dist/tools/datetime.d.ts +1 -0
  102. package/dist/tools/datetime.js +1 -0
  103. package/dist/tools/datetime.js.map +1 -1
  104. package/dist/tools/index.d.ts +10 -336
  105. package/dist/tools/index.js +11 -1
  106. package/dist/tools/index.js.map +1 -1
  107. package/dist/tools/mcp-url.d.ts +6 -0
  108. package/dist/tools/mcp-url.js +6 -0
  109. package/dist/tools/mcp-url.js.map +1 -1
  110. package/dist/tools/mcp.d.ts +6 -0
  111. package/dist/tools/mcp.js +6 -0
  112. package/dist/tools/mcp.js.map +1 -1
  113. package/dist/tools/memory.d.ts +14 -0
  114. package/dist/tools/memory.js +16 -1
  115. package/dist/tools/memory.js.map +1 -1
  116. package/dist/tools/routine.d.ts +35 -0
  117. package/dist/tools/routine.js +93 -0
  118. package/dist/tools/routine.js.map +1 -0
  119. package/dist/tools/shell.d.ts +15 -1
  120. package/dist/tools/shell.js +15 -1
  121. package/dist/tools/shell.js.map +1 -1
  122. package/dist/tools/subagent.d.ts +18 -1
  123. package/dist/tools/subagent.js +18 -1
  124. package/dist/tools/subagent.js.map +1 -1
  125. package/dist/tools/time.d.ts +19 -0
  126. package/dist/tools/time.js +19 -0
  127. package/dist/tools/time.js.map +1 -1
  128. package/dist/tools/types.d.ts +6 -0
  129. package/dist/tools/wait.d.ts +3 -0
  130. package/dist/tools/wait.js +3 -0
  131. package/dist/tools/wait.js.map +1 -1
  132. package/dist/tools/web.d.ts +6 -0
  133. package/dist/tools/web.js +11 -1
  134. package/dist/tools/web.js.map +1 -1
  135. package/dist/update.d.ts +5 -0
  136. package/dist/update.js +4 -5
  137. package/dist/update.js.map +1 -1
  138. package/package.json +2 -1
package/dist/output.js CHANGED
@@ -17,12 +17,20 @@ const context_js_1 = require("./context.js");
17
17
  const theme_js_1 = require("./theme.js");
18
18
  const MAX_TOOL_OUTPUT_LENGTH = 2000;
19
19
  const MAX_REPLAY_LENGTH = 200;
20
+ /**
21
+ * Formats a token count into a compact human-readable string (e.g. `"3.2k"`).
22
+ * @internal
23
+ */
20
24
  function formatTokenCount(n) {
21
25
  if (n < 1000)
22
26
  return String(n);
23
27
  const k = n / 1000;
24
28
  return k >= 10 ? `${Math.round(k)}k` : `${k.toFixed(1)}k`;
25
29
  }
30
+ /**
31
+ * Formats a millisecond duration as `"Xs"` or `"XmYs"`.
32
+ * @internal
33
+ */
26
34
  function formatElapsed(ms) {
27
35
  const totalSeconds = Math.floor(ms / 1000);
28
36
  if (totalSeconds < 60)
@@ -31,6 +39,12 @@ function formatElapsed(ms) {
31
39
  const seconds = totalSeconds % 60;
32
40
  return `${minutes}m${seconds}s`;
33
41
  }
42
+ /**
43
+ * Builds the dynamic status text shown next to the spinner animation.
44
+ *
45
+ * Displays elapsed time, cumulative token counts (up/down arrows),
46
+ * and percentage of context window remaining before compression triggers.
47
+ */
34
48
  function buildSpinnerMessage(stats) {
35
49
  const elapsed = formatElapsed(Date.now() - stats.startTime);
36
50
  if (stats.totalPromptTokens === 0 && stats.totalCompletionTokens === 0) {
@@ -43,6 +57,11 @@ function buildSpinnerMessage(stats) {
43
57
  const remainingPct = Math.max(0, Math.round(((thresholdTokens - stats.latestPromptTokens) / thresholdTokens) * 100));
44
58
  return `Thinking (${elapsed} | ${up}\u2191 ${down}\u2193 | ${remainingPct}% until compression)`;
45
59
  }
60
+ /**
61
+ * Wraps an optional sub-agent prefix (e.g. `"sub:2"`) in a colored bracket label.
62
+ * Returns an empty string when no prefix is provided.
63
+ * @internal
64
+ */
46
65
  function formatPrefix(prefix) {
47
66
  if (!prefix)
48
67
  return '';
@@ -56,6 +75,14 @@ function formatPrefix(prefix) {
56
75
  const SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
57
76
  let spinnerTimer = null;
58
77
  let spinnerFrameIndex = 0;
78
+ /**
79
+ * Starts a braille-dot spinner animation on stdout.
80
+ *
81
+ * Hides the cursor and redraws at 80 ms intervals. If a spinner is already
82
+ * running the call is a no-op. Call {@link stopSpinner} to clear it.
83
+ *
84
+ * @param message - Static string or callback returning a dynamic status line.
85
+ */
59
86
  function startSpinner(message = 'Thinking') {
60
87
  if (spinnerTimer)
61
88
  return; // already running
@@ -68,6 +95,7 @@ function startSpinner(message = 'Thinking') {
68
95
  spinnerFrameIndex++;
69
96
  }, 80);
70
97
  }
98
+ /** Stops the spinner, clears its line, and restores the cursor. */
71
99
  function stopSpinner() {
72
100
  if (!spinnerTimer)
73
101
  return;
@@ -76,6 +104,7 @@ function stopSpinner() {
76
104
  process.stdout.write('\r\x1B[2K'); // clear line
77
105
  process.stdout.write('\x1B[?25h'); // show cursor
78
106
  }
107
+ /** Prints the branded welcome banner with provider, model, and optional version info. */
79
108
  function printWelcome(provider, model, version) {
80
109
  const ver = version ? (0, theme_js_1.getTheme)().muted(` v${version}`) : '';
81
110
  console.log((0, theme_js_1.getTheme)().accentBold('\n Bernard') + ver + (0, theme_js_1.getTheme)().muted(' — AI CLI Assistant'));
@@ -85,6 +114,7 @@ function printWelcome(provider, model, version) {
85
114
  }
86
115
  console.log((0, theme_js_1.getTheme)().muted(' Type /help for commands, exit to quit\n'));
87
116
  }
117
+ /** Prints an assistant response, stopping any active spinner first. */
88
118
  function printAssistantText(text, prefix) {
89
119
  stopSpinner();
90
120
  if (text.trim()) {
@@ -92,12 +122,23 @@ function printAssistantText(text, prefix) {
92
122
  console.log(label + (0, theme_js_1.getTheme)().text(text));
93
123
  }
94
124
  }
125
+ /**
126
+ * Prints a one-line summary of a tool invocation.
127
+ *
128
+ * For the `shell` tool the raw command string is shown; for all others
129
+ * the args object is JSON-serialized.
130
+ */
95
131
  function printToolCall(toolName, args, prefix) {
96
132
  stopSpinner();
97
133
  const label = formatPrefix(prefix);
98
134
  const argsStr = toolName === 'shell' ? String(args.command || '') : JSON.stringify(args);
99
135
  console.log(label + (0, theme_js_1.getTheme)().toolCall(` ▶ ${toolName}`) + (0, theme_js_1.getTheme)().muted(`: ${argsStr}`));
100
136
  }
137
+ /**
138
+ * Prints a tool's return value, truncated to {@link MAX_TOOL_OUTPUT_LENGTH} characters.
139
+ *
140
+ * Handles string results, `{ output: string }` shapes, and arbitrary objects.
141
+ */
101
142
  function printToolResult(toolName, result, prefix) {
102
143
  stopSpinner();
103
144
  const label = formatPrefix(prefix);
@@ -120,13 +161,21 @@ function printToolResult(toolName, result, prefix) {
120
161
  .join('\n');
121
162
  console.log(lines);
122
163
  }
164
+ /** Prints an error message to stderr in the theme's error color. */
123
165
  function printError(message) {
124
166
  stopSpinner();
125
167
  console.error((0, theme_js_1.getTheme)().error(`Error: ${message}`));
126
168
  }
169
+ /** Prints an informational message in the theme's muted color. */
127
170
  function printInfo(message) {
128
171
  console.log((0, theme_js_1.getTheme)().muted(message));
129
172
  }
173
+ /**
174
+ * Prints a dimmed summary of a prior conversation for session-resume context.
175
+ *
176
+ * Each message is truncated to {@link MAX_REPLAY_LENGTH} characters.
177
+ * Tool-role messages are skipped.
178
+ */
130
179
  function printConversationReplay(messages) {
131
180
  console.log((0, theme_js_1.getTheme)().dim(' Previous conversation:'));
132
181
  for (const msg of messages) {
@@ -142,6 +191,15 @@ function printConversationReplay(messages) {
142
191
  console.log((0, theme_js_1.getTheme)().dim(' ———'));
143
192
  console.log();
144
193
  }
194
+ /**
195
+ * Extracts the plain-text content from a {@link CoreMessage} for display formatting.
196
+ *
197
+ * Unlike {@link extractText} in `context.ts` (which is used for serialization and compression),
198
+ * this variant is scoped to output rendering only.
199
+ *
200
+ * @returns The joined text content, or `null` if the message has no text parts.
201
+ * @internal
202
+ */
145
203
  function extractText(msg) {
146
204
  if (typeof msg.content === 'string')
147
205
  return msg.content;
@@ -152,17 +210,20 @@ function extractText(msg) {
152
210
  .map((p) => p.text);
153
211
  return textParts.length > 0 ? textParts.join(' ') : null;
154
212
  }
213
+ /** Prints a colored top-border line when a sub-agent begins executing a task. */
155
214
  function printSubAgentStart(id, task) {
156
215
  const prefixColors = (0, theme_js_1.getTheme)().prefixColors;
157
216
  const colorFn = prefixColors[(id - 1) % prefixColors.length];
158
217
  const displayTask = task.length > 80 ? task.slice(0, 80) + '…' : task;
159
218
  console.log(colorFn(`┌─ sub:${id} — ${displayTask}`));
160
219
  }
220
+ /** Prints a colored bottom-border line when a sub-agent finishes. */
161
221
  function printSubAgentEnd(id) {
162
222
  const prefixColors = (0, theme_js_1.getTheme)().prefixColors;
163
223
  const colorFn = prefixColors[(id - 1) % prefixColors.length];
164
224
  console.log(colorFn(`└─ sub:${id} done`));
165
225
  }
226
+ /** Prints the REPL help menu listing all available slash commands. */
166
227
  function printHelp() {
167
228
  const t = (0, theme_js_1.getTheme)();
168
229
  console.log(t.accent('\nCommands:'));
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export declare const CONFIG_DIR: string;
2
+ export declare const DATA_DIR: string;
3
+ export declare const CACHE_DIR: string;
4
+ export declare const STATE_DIR: string;
5
+ export declare const LEGACY_DIR: string;
6
+ export declare const PREFS_PATH: string;
7
+ export declare const KEYS_PATH: string;
8
+ export declare const ENV_PATH: string;
9
+ export declare const MCP_CONFIG_PATH: string;
10
+ export declare const MEMORY_DIR: string;
11
+ export declare const RAG_DIR: string;
12
+ export declare const MEMORIES_FILE: string;
13
+ export declare const LAST_SESSION_FILE: string;
14
+ export declare const CRON_DIR: string;
15
+ export declare const CRON_JOBS_FILE: string;
16
+ export declare const CRON_ALERTS_DIR: string;
17
+ export declare const ROUTINES_DIR: string;
18
+ export declare const MODELS_DIR: string;
19
+ export declare const UPDATE_CACHE_PATH: string;
20
+ export declare const HISTORY_FILE: string;
21
+ export declare const LOGS_DIR: string;
22
+ export declare const CRON_PID_FILE: string;
23
+ export declare const CRON_LOG_FILE: string;
package/dist/paths.js ADDED
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.CRON_LOG_FILE = exports.CRON_PID_FILE = exports.LOGS_DIR = exports.HISTORY_FILE = exports.UPDATE_CACHE_PATH = exports.MODELS_DIR = exports.ROUTINES_DIR = exports.CRON_ALERTS_DIR = exports.CRON_JOBS_FILE = exports.CRON_DIR = exports.LAST_SESSION_FILE = exports.MEMORIES_FILE = exports.RAG_DIR = exports.MEMORY_DIR = exports.MCP_CONFIG_PATH = exports.ENV_PATH = exports.KEYS_PATH = exports.PREFS_PATH = exports.LEGACY_DIR = exports.STATE_DIR = exports.CACHE_DIR = exports.DATA_DIR = exports.CONFIG_DIR = void 0;
37
+ const path = __importStar(require("node:path"));
38
+ const os = __importStar(require("node:os"));
39
+ const home = os.homedir();
40
+ const bernardHome = process.env.BERNARD_HOME;
41
+ function xdgBase(envVar, fallbackSuffix) {
42
+ if (bernardHome && path.isAbsolute(bernardHome))
43
+ return bernardHome;
44
+ const envVal = process.env[envVar];
45
+ // XDG spec: ignore relative paths
46
+ if (envVal && path.isAbsolute(envVal))
47
+ return envVal;
48
+ return path.join(home, fallbackSuffix);
49
+ }
50
+ const configBase = xdgBase('XDG_CONFIG_HOME', '.config');
51
+ const dataBase = xdgBase('XDG_DATA_HOME', path.join('.local', 'share'));
52
+ const cacheBase = xdgBase('XDG_CACHE_HOME', '.cache');
53
+ const stateBase = xdgBase('XDG_STATE_HOME', path.join('.local', 'state'));
54
+ // App-scoped roots
55
+ exports.CONFIG_DIR = path.join(configBase, 'bernard');
56
+ exports.DATA_DIR = path.join(dataBase, 'bernard');
57
+ exports.CACHE_DIR = path.join(cacheBase, 'bernard');
58
+ exports.STATE_DIR = path.join(stateBase, 'bernard');
59
+ exports.LEGACY_DIR = path.join(home, '.bernard');
60
+ // Config
61
+ exports.PREFS_PATH = path.join(exports.CONFIG_DIR, 'preferences.json');
62
+ exports.KEYS_PATH = path.join(exports.CONFIG_DIR, 'keys.json');
63
+ exports.ENV_PATH = path.join(exports.CONFIG_DIR, '.env');
64
+ exports.MCP_CONFIG_PATH = path.join(exports.CONFIG_DIR, 'mcp.json');
65
+ // Data
66
+ exports.MEMORY_DIR = path.join(exports.DATA_DIR, 'memory');
67
+ exports.RAG_DIR = path.join(exports.DATA_DIR, 'rag');
68
+ exports.MEMORIES_FILE = path.join(exports.RAG_DIR, 'memories.json');
69
+ exports.LAST_SESSION_FILE = path.join(exports.RAG_DIR, 'last-session.txt');
70
+ exports.CRON_DIR = path.join(exports.DATA_DIR, 'cron');
71
+ exports.CRON_JOBS_FILE = path.join(exports.CRON_DIR, 'jobs.json');
72
+ exports.CRON_ALERTS_DIR = path.join(exports.CRON_DIR, 'alerts');
73
+ exports.ROUTINES_DIR = path.join(exports.DATA_DIR, 'routines');
74
+ // Cache
75
+ exports.MODELS_DIR = path.join(exports.CACHE_DIR, 'models');
76
+ exports.UPDATE_CACHE_PATH = path.join(exports.CACHE_DIR, 'update-check.json');
77
+ // State
78
+ exports.HISTORY_FILE = path.join(exports.STATE_DIR, 'conversation-history.json');
79
+ exports.LOGS_DIR = path.join(exports.STATE_DIR, 'logs');
80
+ exports.CRON_PID_FILE = path.join(exports.STATE_DIR, 'cron-daemon.pid');
81
+ exports.CRON_LOG_FILE = path.join(exports.STATE_DIR, 'cron-daemon.log');
82
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAClC,4CAA8B;AAE9B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;AAC1B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AAE7C,SAAS,OAAO,CAAC,MAAc,EAAE,cAAsB;IACrD,IAAI,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IACpE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,kCAAkC;IAClC,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACrD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;AACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AACxE,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AACtD,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAE1E,mBAAmB;AACN,QAAA,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAC9C,QAAA,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC1C,QAAA,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAC5C,QAAA,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAC5C,QAAA,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAEtD,SAAS;AACI,QAAA,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAU,EAAE,kBAAkB,CAAC,CAAC;AACvD,QAAA,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAU,EAAE,WAAW,CAAC,CAAC;AAC/C,QAAA,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAU,EAAE,MAAM,CAAC,CAAC;AACzC,QAAA,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAU,EAAE,UAAU,CAAC,CAAC;AAEjE,OAAO;AACM,QAAA,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAQ,EAAE,QAAQ,CAAC,CAAC;AAC3C,QAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAQ,EAAE,KAAK,CAAC,CAAC;AACrC,QAAA,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,eAAO,EAAE,eAAe,CAAC,CAAC;AACpD,QAAA,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAO,EAAE,kBAAkB,CAAC,CAAC;AAC3D,QAAA,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAQ,EAAE,MAAM,CAAC,CAAC;AACvC,QAAA,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAQ,EAAE,WAAW,CAAC,CAAC;AAClD,QAAA,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAQ,EAAE,QAAQ,CAAC,CAAC;AAChD,QAAA,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAQ,EAAE,UAAU,CAAC,CAAC;AAE5D,QAAQ;AACK,QAAA,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAS,EAAE,QAAQ,CAAC,CAAC;AAC5C,QAAA,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAS,EAAE,mBAAmB,CAAC,CAAC;AAE3E,QAAQ;AACK,QAAA,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAS,EAAE,2BAA2B,CAAC,CAAC;AACjE,QAAA,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAS,EAAE,MAAM,CAAC,CAAC;AACxC,QAAA,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAS,EAAE,iBAAiB,CAAC,CAAC;AACxD,QAAA,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAS,EAAE,iBAAiB,CAAC,CAAC"}
@@ -1,2 +1,9 @@
1
1
  import type { LanguageModel } from 'ai';
2
+ /**
3
+ * Return an AI SDK `LanguageModel` instance for the given provider and model name.
4
+ * @param provider - One of `"anthropic"`, `"openai"`, or `"xai"`.
5
+ * @param model - Provider-specific model identifier (e.g. `"claude-sonnet-4-20250514"`).
6
+ * @returns A ready-to-use `LanguageModel` backed by the requested provider.
7
+ * @throws {Error} If the provider string is not recognized.
8
+ */
2
9
  export declare function getModel(provider: string, model: string): LanguageModel;
@@ -4,6 +4,13 @@ exports.getModel = getModel;
4
4
  const anthropic_1 = require("@ai-sdk/anthropic");
5
5
  const openai_1 = require("@ai-sdk/openai");
6
6
  const xai_1 = require("@ai-sdk/xai");
7
+ /**
8
+ * Return an AI SDK `LanguageModel` instance for the given provider and model name.
9
+ * @param provider - One of `"anthropic"`, `"openai"`, or `"xai"`.
10
+ * @param model - Provider-specific model identifier (e.g. `"claude-sonnet-4-20250514"`).
11
+ * @returns A ready-to-use `LanguageModel` backed by the requested provider.
12
+ * @throws {Error} If the provider string is not recognized.
13
+ */
7
14
  function getModel(provider, model) {
8
15
  switch (provider) {
9
16
  case 'anthropic':
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";;AAKA,4BAWC;AAhBD,iDAA8C;AAC9C,2CAAwC;AACxC,qCAAkC;AAGlC,SAAgB,QAAQ,CAAC,QAAgB,EAAE,KAAa;IACtD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW;YACd,OAAO,IAAA,qBAAS,EAAC,KAAK,CAAC,CAAC;QAC1B,KAAK,QAAQ;YACX,OAAO,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC;QACvB,KAAK,KAAK;YACR,OAAO,IAAA,SAAG,EAAC,KAAK,CAAC,CAAC;QACpB;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,qCAAqC,CAAC,CAAC;IACxF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";;AAYA,4BAWC;AAvBD,iDAA8C;AAC9C,2CAAwC;AACxC,qCAAkC;AAGlC;;;;;;GAMG;AACH,SAAgB,QAAQ,CAAC,QAAgB,EAAE,KAAa;IACtD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW;YACd,OAAO,IAAA,qBAAS,EAAC,KAAK,CAAC,CAAC;QAC1B,KAAK,QAAQ;YACX,OAAO,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC;QACvB,KAAK,KAAK;YACR,OAAO,IAAA,SAAG,EAAC,KAAK,CAAC,CAAC;QACpB;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,qCAAqC,CAAC,CAAC;IACxF,CAAC;AACH,CAAC"}
@@ -1,5 +1,9 @@
1
+ /** Supported LLM provider identifiers. */
1
2
  export type ProviderName = 'anthropic' | 'openai' | 'xai';
3
+ /** Provider and model pair used to instantiate an AI SDK `LanguageModel`. */
2
4
  export interface ProviderConfig {
5
+ /** Which LLM provider to use. */
3
6
  provider: ProviderName;
7
+ /** Model identifier passed to the provider SDK (e.g. "claude-sonnet-4-5-20250929"). */
4
8
  model: string;
5
9
  }
@@ -1,7 +1,10 @@
1
1
  import type { CoreMessage } from 'ai';
2
2
  import type { RAGSearchResult } from './rag.js';
3
+ /** Number of recent user messages (beyond the current input) to include in the RAG query. */
3
4
  export declare const DEFAULT_WINDOW_SIZE = 2;
5
+ /** Maximum character length for the composed RAG search query. */
4
6
  export declare const DEFAULT_MAX_QUERY_CHARS = 1000;
7
+ /** Similarity score bonus applied to facts that appeared in the previous turn's results. */
5
8
  export declare const DEFAULT_STICKINESS_BOOST = 0.05;
6
9
  /**
7
10
  * Walk history backward and collect up to `maxMessages` user-role text strings.
@@ -9,8 +12,21 @@ export declare const DEFAULT_STICKINESS_BOOST = 0.05;
9
12
  * Returns texts in chronological order (oldest first).
10
13
  */
11
14
  export declare function extractRecentUserTexts(history: CoreMessage[], maxMessages?: number): string[];
15
+ /**
16
+ * Walk history backward and collect tool call names + compact args from assistant messages.
17
+ * Returns a comma-separated string in chronological order (oldest first).
18
+ *
19
+ * @param history - Conversation history to scan
20
+ * @param maxMessages - Maximum number of assistant messages to scan (default: 3)
21
+ * @param maxChars - Maximum character length for the returned string (default: 200)
22
+ */
23
+ export declare function extractRecentToolContext(history: CoreMessage[], maxMessages?: number, maxChars?: number): string;
24
+ /** Options for {@link buildRAGQuery}. */
12
25
  export interface BuildRAGQueryOptions {
26
+ /** Character budget for the composed query (default: 1000). */
13
27
  maxQueryChars?: number;
28
+ /** Comma-separated tool context string (e.g. "shell(command=ls), memory"). */
29
+ toolContext?: string;
14
30
  }
15
31
  /**
16
32
  * Build a RAG search query from the current user input plus recent history.
@@ -18,9 +34,13 @@ export interface BuildRAGQueryOptions {
18
34
  * Truncates older messages first to stay within the character budget.
19
35
  */
20
36
  export declare function buildRAGQuery(currentInput: string, recentUserTexts: string[], options?: BuildRAGQueryOptions): string;
37
+ /** Options for {@link applyStickiness}. */
21
38
  export interface ApplyStickinessOptions {
39
+ /** Similarity score bonus for previously-seen facts (default: 0.05). */
22
40
  boost?: number;
41
+ /** Max results to keep per domain after re-ranking (default: 5). */
23
42
  topKPerDomain?: number;
43
+ /** Max total results after re-ranking (default: 15). */
24
44
  maxResults?: number;
25
45
  }
26
46
  /**
package/dist/rag-query.js CHANGED
@@ -2,11 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DEFAULT_STICKINESS_BOOST = exports.DEFAULT_MAX_QUERY_CHARS = exports.DEFAULT_WINDOW_SIZE = void 0;
4
4
  exports.extractRecentUserTexts = extractRecentUserTexts;
5
+ exports.extractRecentToolContext = extractRecentToolContext;
5
6
  exports.buildRAGQuery = buildRAGQuery;
6
7
  exports.applyStickiness = applyStickiness;
7
8
  const context_js_1 = require("./context.js");
9
+ const rag_js_1 = require("./rag.js");
10
+ /** Number of recent user messages (beyond the current input) to include in the RAG query. */
8
11
  exports.DEFAULT_WINDOW_SIZE = 2;
12
+ /** Maximum character length for the composed RAG search query. */
9
13
  exports.DEFAULT_MAX_QUERY_CHARS = 1000;
14
+ /** Similarity score bonus applied to facts that appeared in the previous turn's results. */
10
15
  exports.DEFAULT_STICKINESS_BOOST = 0.05;
11
16
  const BOUNDARY_PREFIXES = [
12
17
  '[Context Summary',
@@ -36,6 +41,60 @@ function extractRecentUserTexts(history, maxMessages = exports.DEFAULT_WINDOW_SI
36
41
  texts.reverse();
37
42
  return texts;
38
43
  }
44
+ /**
45
+ * Compact a tool call's args into a short summary string.
46
+ * Only includes the first key-value pair for brevity — tool calls
47
+ * are used as lightweight retrieval signals, not full records.
48
+ * Returns a "key=value" string, or empty string if args is empty/null.
49
+ */
50
+ function compactArgs(args) {
51
+ if (!args || typeof args !== 'object')
52
+ return '';
53
+ const keys = Object.keys(args);
54
+ if (keys.length === 0)
55
+ return '';
56
+ const key = keys[0];
57
+ const raw = String(args[key] ?? '');
58
+ const value = raw.length > 60 ? raw.slice(0, 57) + '...' : raw;
59
+ return `${key}=${value}`;
60
+ }
61
+ /**
62
+ * Walk history backward and collect tool call names + compact args from assistant messages.
63
+ * Returns a comma-separated string in chronological order (oldest first).
64
+ *
65
+ * @param history - Conversation history to scan
66
+ * @param maxMessages - Maximum number of assistant messages to scan (default: 3)
67
+ * @param maxChars - Maximum character length for the returned string (default: 200)
68
+ */
69
+ function extractRecentToolContext(history, maxMessages = 3, maxChars = 200) {
70
+ const entries = [];
71
+ let scanned = 0;
72
+ for (let i = history.length - 1; i >= 0 && scanned < maxMessages; i--) {
73
+ const msg = history[i];
74
+ if (msg.role !== 'assistant')
75
+ continue;
76
+ scanned++;
77
+ if (!Array.isArray(msg.content))
78
+ continue;
79
+ const msgEntries = [];
80
+ for (const part of msg.content) {
81
+ if (part.type === 'tool-call') {
82
+ const compact = compactArgs(part.args);
83
+ msgEntries.push(compact ? `${part.toolName}(${compact})` : part.toolName);
84
+ }
85
+ }
86
+ entries.unshift(...msgEntries);
87
+ }
88
+ if (entries.length === 0)
89
+ return '';
90
+ let result = entries.join(', ');
91
+ if (result.length > maxChars) {
92
+ if (maxChars < 3)
93
+ return '';
94
+ result = result.slice(0, maxChars - 3) + '...';
95
+ }
96
+ return result;
97
+ }
39
98
  /**
40
99
  * Build a RAG search query from the current user input plus recent history.
41
100
  * Current input is always at the end (transformers attend more to later tokens).
@@ -43,7 +102,8 @@ function extractRecentUserTexts(history, maxMessages = exports.DEFAULT_WINDOW_SI
43
102
  */
44
103
  function buildRAGQuery(currentInput, recentUserTexts, options) {
45
104
  const maxChars = options?.maxQueryChars ?? exports.DEFAULT_MAX_QUERY_CHARS;
46
- if (recentUserTexts.length === 0)
105
+ const toolContext = options?.toolContext;
106
+ if (recentUserTexts.length === 0 && !toolContext)
47
107
  return currentInput.slice(0, maxChars);
48
108
  // Always preserve current input (truncate if alone it exceeds budget)
49
109
  const current = currentInput.slice(0, maxChars);
@@ -60,6 +120,12 @@ function buildRAGQuery(currentInput, recentUserTexts, options) {
60
120
  parts.unshift(truncated);
61
121
  remaining -= truncated.length + 2; // -2 for ". " separator between parts
62
122
  }
123
+ // Tool context is lowest-priority: only inserted if remaining budget > 10 chars
124
+ if (toolContext && remaining > 10) {
125
+ const wrapped = `[tools: ${toolContext}]`;
126
+ const truncatedTool = wrapped.slice(0, remaining);
127
+ parts.unshift(truncatedTool);
128
+ }
63
129
  return [...parts, current].join('. ');
64
130
  }
65
131
  /**
@@ -71,8 +137,8 @@ function applyStickiness(currentResults, previousFacts, options) {
71
137
  if (previousFacts.size === 0)
72
138
  return currentResults;
73
139
  const boost = options?.boost ?? exports.DEFAULT_STICKINESS_BOOST;
74
- const topKPerDomain = options?.topKPerDomain ?? 3;
75
- const maxResults = options?.maxResults ?? 9;
140
+ const topKPerDomain = options?.topKPerDomain ?? rag_js_1.DEFAULT_TOP_K_PER_DOMAIN;
141
+ const maxResults = options?.maxResults ?? rag_js_1.DEFAULT_MAX_RESULTS;
76
142
  // Apply boost
77
143
  const boosted = currentResults.map((r) => ({
78
144
  ...r,
@@ -1 +1 @@
1
- {"version":3,"file":"rag-query.js","sourceRoot":"","sources":["../src/rag-query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rag-query.js","sourceRoot":"","sources":["../src/rag-query.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rag-worker.js","sourceRoot":"","sources":["../src/rag-worker.ts"],"names":[],"mappings":";;AAEA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,4CAA8B;AAC9B,2CAAyC;AACzC,6CAAkD;AAClD,qCAAoC;AAQpC,KAAK,UAAU,IAAI;IACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,QAAQ;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/B,+BAA+B;IAC/B,IAAI,OAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/D,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,iFAAiF;IACjF,MAAM,MAAM,GAAG,IAAA,sBAAU,EAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAEhF,0CAA0C;IAC1C,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAkB,EAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAEzE,+CAA+C;IAC/C,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7E,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,IAAI,iBAAQ,EAAE,CAAC;QAChC,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;YAC7B,MAAM,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,oCAAoC;IACtC,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"rag-worker.js","sourceRoot":"","sources":["../src/rag-worker.ts"],"names":[],"mappings":";;AAEA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,4CAA8B;AAC9B,2CAAyC;AACzC,6CAAkD;AAClD,qCAAoC;AAYpC,KAAK,UAAU,IAAI;IACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,QAAQ;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/B,+BAA+B;IAC/B,IAAI,OAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/D,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,iFAAiF;IACjF,MAAM,MAAM,GAAG,IAAA,sBAAU,EAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAEhF,0CAA0C;IAC1C,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAkB,EAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAEzE,+CAA+C;IAC/C,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7E,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,IAAI,iBAAQ,EAAE,CAAC;QAChC,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;YAC7B,MAAM,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,oCAAoC;IACtC,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC"}
package/dist/rag.d.ts CHANGED
@@ -1,19 +1,35 @@
1
+ /** Maximum results returned per domain before merging. */
2
+ export declare const DEFAULT_TOP_K_PER_DOMAIN = 5;
3
+ /** Maximum total results returned from a search. */
4
+ export declare const DEFAULT_MAX_RESULTS = 15;
5
+ /** A single stored memory with its embedding vector and lifecycle metadata. */
1
6
  export interface RAGMemory {
7
+ /** Unique identifier (timestamp + random suffix). */
2
8
  id: string;
9
+ /** The plain-text fact extracted from conversation. */
3
10
  fact: string;
11
+ /** Pre-computed embedding vector for similarity search. */
4
12
  embedding: number[];
13
+ /** Origin of the fact, e.g. "compression" or "user". */
5
14
  source: string;
15
+ /** Domain category this fact belongs to (e.g. "general", "tool-usage"). */
6
16
  domain: string;
17
+ /** ISO 8601 timestamp when the memory was created. */
7
18
  createdAt: string;
19
+ /** Number of times this memory has been returned in search results. */
8
20
  accessCount: number;
21
+ /** ISO 8601 timestamp of the most recent search hit. */
9
22
  lastAccessed?: string;
23
+ /** ISO 8601 timestamp after which the memory is eligible for expiration pruning. */
10
24
  expiresAt?: string;
11
25
  }
26
+ /** A search result containing the matched fact, its similarity score, and domain. */
12
27
  export interface RAGSearchResult {
13
28
  fact: string;
14
29
  similarity: number;
15
30
  domain: string;
16
31
  }
32
+ /** Extended search result that includes the memory ID and lifecycle metadata. */
17
33
  export interface RAGSearchResultWithId {
18
34
  id: string;
19
35
  fact: string;
@@ -22,13 +38,24 @@ export interface RAGSearchResultWithId {
22
38
  createdAt: string;
23
39
  accessCount: number;
24
40
  }
41
+ /** Optional configuration overrides for {@link RAGStore}. All fields fall back to sensible defaults. */
25
42
  export interface RAGStoreConfig {
43
+ /** Max results per domain before merging (default: 5). */
26
44
  topKPerDomain?: number;
45
+ /** Max total results from a search (default: 15). */
27
46
  maxResults?: number;
47
+ /** Minimum cosine similarity to include a result (default: 0.35). */
28
48
  similarityThreshold?: number;
49
+ /** Hard cap on stored memories (default: 5000). */
29
50
  maxMemories?: number;
51
+ /** Time-to-live in days for new memories (default: 90). */
30
52
  ragTtlDays?: number;
31
53
  }
54
+ /**
55
+ * Disk-backed vector store for long-term conversational memory.
56
+ * Stores facts as embeddings, supports similarity search with per-domain top-k ranking,
57
+ * and manages memory lifecycle via TTL-based expiration and capacity pruning.
58
+ */
32
59
  export declare class RAGStore {
33
60
  private memories;
34
61
  private topKPerDomain;