bernard-agent 0.2.2 → 0.3.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.
- package/README.md +16 -6
- package/dist/agent.d.ts +1 -0
- package/dist/agent.js +63 -35
- package/dist/agent.js.map +1 -1
- package/dist/config.d.ts +5 -0
- package/dist/config.js +21 -0
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +37 -1
- package/dist/context.js +170 -41
- package/dist/context.js.map +1 -1
- package/dist/cron/runner.js +33 -1
- package/dist/cron/runner.js.map +1 -1
- package/dist/domains.d.ts +10 -0
- package/dist/domains.js +87 -0
- package/dist/domains.js.map +1 -0
- package/dist/index.js +43 -1
- package/dist/index.js.map +1 -1
- package/dist/memory-context.d.ts +13 -0
- package/dist/memory-context.js +48 -0
- package/dist/memory-context.js.map +1 -0
- package/dist/output.js +35 -35
- package/dist/output.js.map +1 -1
- package/dist/rag-worker.d.ts +1 -1
- package/dist/rag-worker.js +9 -6
- package/dist/rag-worker.js.map +1 -1
- package/dist/rag.d.ts +12 -5
- package/dist/rag.js +47 -14
- package/dist/rag.js.map +1 -1
- package/dist/repl.js +92 -12
- package/dist/repl.js.map +1 -1
- package/dist/setup.js +17 -18
- package/dist/setup.js.map +1 -1
- package/dist/theme.d.ts +28 -0
- package/dist/theme.js +154 -0
- package/dist/theme.js.map +1 -0
- package/dist/tools/index.d.ts +11 -0
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/subagent.d.ts +2 -1
- package/dist/tools/subagent.js +25 -5
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/wait.d.ts +14 -0
- package/dist/tools/wait.js +28 -0
- package/dist/tools/wait.js.map +1 -0
- package/dist/update.d.ts +35 -0
- package/dist/update.js +233 -0
- package/dist/update.js.map +1 -0
- package/package.json +2 -2
package/dist/context.js
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RECENT_TURNS_TO_KEEP = exports.COMPRESSION_THRESHOLD = exports.DEFAULT_CONTEXT_WINDOW = exports.MODEL_CONTEXT_WINDOWS = void 0;
|
|
3
|
+
exports.MAX_TOOL_RESULT_CHARS = exports.RECENT_TURNS_TO_KEEP = exports.COMPRESSION_THRESHOLD = exports.DEFAULT_CONTEXT_WINDOW = exports.MODEL_CONTEXT_WINDOWS = void 0;
|
|
4
4
|
exports.getContextWindow = getContextWindow;
|
|
5
5
|
exports.shouldCompress = shouldCompress;
|
|
6
6
|
exports.serializeMessages = serializeMessages;
|
|
7
7
|
exports.countRecentMessages = countRecentMessages;
|
|
8
|
+
exports.extractDomainFacts = extractDomainFacts;
|
|
8
9
|
exports.extractFacts = extractFacts;
|
|
9
10
|
exports.compressHistory = compressHistory;
|
|
11
|
+
exports.truncateToolResults = truncateToolResults;
|
|
12
|
+
exports.estimateHistoryTokens = estimateHistoryTokens;
|
|
13
|
+
exports.emergencyTruncate = emergencyTruncate;
|
|
14
|
+
exports.isTokenOverflowError = isTokenOverflowError;
|
|
10
15
|
const ai_1 = require("ai");
|
|
11
16
|
const index_js_1 = require("./providers/index.js");
|
|
12
17
|
const logger_js_1 = require("./logger.js");
|
|
18
|
+
const domains_js_1 = require("./domains.js");
|
|
13
19
|
/** Model name → context window size in tokens */
|
|
14
20
|
exports.MODEL_CONTEXT_WINDOWS = {
|
|
15
21
|
// Anthropic
|
|
@@ -111,56 +117,58 @@ function countRecentMessages(history, turnsToKeep) {
|
|
|
111
117
|
// Fewer user turns than turnsToKeep — nothing to compress
|
|
112
118
|
return 0;
|
|
113
119
|
}
|
|
114
|
-
const FACT_EXTRACTION_PROMPT = `You are a fact extraction system. Extract notable, self-contained facts from the conversation below that would be useful to recall in future sessions.
|
|
115
|
-
|
|
116
|
-
Extract:
|
|
117
|
-
- User preferences and habits
|
|
118
|
-
- Project details, structure, and conventions
|
|
119
|
-
- Technical environment info (OS, languages, tools, versions)
|
|
120
|
-
- Decisions made and their reasoning
|
|
121
|
-
- Recurring patterns or workflows
|
|
122
|
-
- Names, roles, and relationships mentioned
|
|
123
|
-
|
|
124
|
-
Do NOT extract:
|
|
125
|
-
- Task-specific transient details (e.g., "the user asked to fix a typo on line 42")
|
|
126
|
-
- Generic knowledge that any AI would know
|
|
127
|
-
- Greetings, filler, or conversational noise
|
|
128
|
-
|
|
129
|
-
Return a JSON array of strings. Each string should be a self-contained fact (understandable without the original conversation). Maximum 500 characters per fact. If there are no notable facts, return an empty array [].`;
|
|
130
120
|
const FACT_EXTRACTION_MAX = 500;
|
|
131
121
|
/**
|
|
132
|
-
* Extract
|
|
133
|
-
*
|
|
134
|
-
*
|
|
122
|
+
* Extract facts from serialized conversation text using domain-specific prompts.
|
|
123
|
+
* Runs all domain extractors in parallel via Promise.allSettled.
|
|
124
|
+
* Partial failures (one domain errors) don't block others.
|
|
135
125
|
*/
|
|
136
|
-
async function
|
|
126
|
+
async function extractDomainFacts(serializedText, config) {
|
|
137
127
|
if (!serializedText.trim())
|
|
138
128
|
return [];
|
|
139
|
-
|
|
129
|
+
const domainIds = (0, domains_js_1.getDomainIds)();
|
|
130
|
+
const results = await Promise.allSettled(domainIds.map(async (domainId) => {
|
|
131
|
+
const domain = domains_js_1.DOMAIN_REGISTRY[domainId];
|
|
140
132
|
const result = await (0, ai_1.generateText)({
|
|
141
133
|
model: (0, index_js_1.getModel)(config.provider, config.model),
|
|
142
134
|
maxTokens: 2048,
|
|
143
|
-
system:
|
|
135
|
+
system: domain.extractionPrompt,
|
|
144
136
|
messages: [
|
|
145
137
|
{ role: 'user', content: `Extract facts from this conversation:\n\n${serializedText}` },
|
|
146
138
|
],
|
|
147
139
|
});
|
|
148
140
|
const text = result.text?.trim();
|
|
149
141
|
if (!text)
|
|
150
|
-
return [];
|
|
142
|
+
return { domain: domainId, facts: [] };
|
|
151
143
|
// Parse JSON array from response — handle markdown code fences
|
|
152
144
|
const jsonStr = text.replace(/^```(?:json)?\s*/m, '').replace(/\s*```$/m, '');
|
|
153
145
|
const parsed = JSON.parse(jsonStr);
|
|
154
146
|
if (!Array.isArray(parsed))
|
|
155
|
-
return [];
|
|
156
|
-
|
|
147
|
+
return { domain: domainId, facts: [] };
|
|
148
|
+
const facts = parsed
|
|
157
149
|
.filter((item) => typeof item === 'string' && item.length > 0)
|
|
158
150
|
.filter((item) => item.length <= FACT_EXTRACTION_MAX);
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
151
|
+
return { domain: domainId, facts };
|
|
152
|
+
}));
|
|
153
|
+
const domainFacts = [];
|
|
154
|
+
results.forEach((result, index) => {
|
|
155
|
+
if (result.status === 'fulfilled' && result.value.facts.length > 0) {
|
|
156
|
+
domainFacts.push(result.value);
|
|
157
|
+
}
|
|
158
|
+
else if (result.status === 'rejected') {
|
|
159
|
+
(0, logger_js_1.debugLog)('context:extractDomainFacts', `Domain "${domainIds[index]}" extraction failed: ${result.reason instanceof Error ? result.reason.message : String(result.reason)}`);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
return domainFacts;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Extract notable facts from serialized conversation text via LLM.
|
|
166
|
+
* Returns a flat array of facts (backward-compatible wrapper around extractDomainFacts).
|
|
167
|
+
* @internal
|
|
168
|
+
*/
|
|
169
|
+
async function extractFacts(serializedText, config) {
|
|
170
|
+
const domainFacts = await extractDomainFacts(serializedText, config);
|
|
171
|
+
return domainFacts.flatMap((df) => df.facts);
|
|
164
172
|
}
|
|
165
173
|
const SUMMARIZATION_PROMPT = `You are a conversation summarizer. Produce a concise summary of the conversation below, preserving:
|
|
166
174
|
- Key facts, decisions, and outcomes
|
|
@@ -168,6 +176,10 @@ const SUMMARIZATION_PROMPT = `You are a conversation summarizer. Produce a conci
|
|
|
168
176
|
- Any user preferences or requirements mentioned
|
|
169
177
|
- The overall arc of what was discussed and accomplished
|
|
170
178
|
|
|
179
|
+
For each task or goal mentioned, clearly mark its status:
|
|
180
|
+
- COMPLETED — if the task was finished or resolved
|
|
181
|
+
- IN PROGRESS — if the task is still ongoing and unfinished
|
|
182
|
+
|
|
171
183
|
Be concise but complete. Use bullet points. Do not include greetings or filler.`;
|
|
172
184
|
/**
|
|
173
185
|
* Compress conversation history by summarizing older messages via the LLM.
|
|
@@ -187,7 +199,7 @@ async function compressHistory(history, config, ragStore) {
|
|
|
187
199
|
return history;
|
|
188
200
|
}
|
|
189
201
|
try {
|
|
190
|
-
// Run summarization and fact extraction in parallel
|
|
202
|
+
// Run summarization and domain-specific fact extraction in parallel
|
|
191
203
|
const summarizePromise = (0, ai_1.generateText)({
|
|
192
204
|
model: (0, index_js_1.getModel)(config.provider, config.model),
|
|
193
205
|
maxTokens: 2048,
|
|
@@ -197,14 +209,14 @@ async function compressHistory(history, config, ragStore) {
|
|
|
197
209
|
],
|
|
198
210
|
});
|
|
199
211
|
const extractPromise = ragStore
|
|
200
|
-
?
|
|
212
|
+
? extractDomainFacts(serialized, config)
|
|
201
213
|
: Promise.resolve([]);
|
|
202
|
-
const [result,
|
|
203
|
-
// Store extracted facts
|
|
204
|
-
if (ragStore &&
|
|
205
|
-
ragStore.addFacts(facts, 'compression').catch((err) => {
|
|
206
|
-
(0, logger_js_1.debugLog)('context:compress:rag', `Failed to store facts: ${err instanceof Error ? err.message : String(err)}`);
|
|
207
|
-
});
|
|
214
|
+
const [result, domainFacts] = await Promise.all([summarizePromise, extractPromise]);
|
|
215
|
+
// Store extracted facts per domain — await to prevent races on persist()
|
|
216
|
+
if (ragStore && domainFacts.length > 0) {
|
|
217
|
+
await Promise.all(domainFacts.map((df) => ragStore.addFacts(df.facts, 'compression', df.domain).catch((err) => {
|
|
218
|
+
(0, logger_js_1.debugLog)('context:compress:rag', `Failed to store facts for domain ${df.domain}: ${err instanceof Error ? err.message : String(err)}`);
|
|
219
|
+
})));
|
|
208
220
|
}
|
|
209
221
|
const summary = result.text?.trim();
|
|
210
222
|
if (!summary) {
|
|
@@ -213,7 +225,7 @@ async function compressHistory(history, config, ragStore) {
|
|
|
213
225
|
}
|
|
214
226
|
const summaryMessage = {
|
|
215
227
|
role: 'user',
|
|
216
|
-
content: `[Context Summary — earlier conversation was compressed]\n\n${summary}`,
|
|
228
|
+
content: `[Context Summary — earlier conversation was compressed. This is background context only. Focus on the messages that follow for the current task.]\n\n${summary}`,
|
|
217
229
|
};
|
|
218
230
|
const ackMessage = {
|
|
219
231
|
role: 'assistant',
|
|
@@ -223,7 +235,7 @@ async function compressHistory(history, config, ragStore) {
|
|
|
223
235
|
oldMessageCount: oldMessages.length,
|
|
224
236
|
recentMessageCount: recentMessages.length,
|
|
225
237
|
summaryLength: summary.length,
|
|
226
|
-
|
|
238
|
+
domainFactsCount: domainFacts.reduce((sum, df) => sum + df.facts.length, 0),
|
|
227
239
|
});
|
|
228
240
|
return [summaryMessage, ackMessage, ...recentMessages];
|
|
229
241
|
}
|
|
@@ -232,6 +244,123 @@ async function compressHistory(history, config, ragStore) {
|
|
|
232
244
|
return history;
|
|
233
245
|
}
|
|
234
246
|
}
|
|
247
|
+
/** Max characters to keep per tool-result content part in history. */
|
|
248
|
+
exports.MAX_TOOL_RESULT_CHARS = 10_000;
|
|
249
|
+
/**
|
|
250
|
+
* Truncate large tool-result content parts in response messages before adding to history.
|
|
251
|
+
* The user already sees the full result via onStepFinish; the history copy just needs
|
|
252
|
+
* enough for the LLM to understand what happened on subsequent turns.
|
|
253
|
+
* Returns a new array — does not mutate the input.
|
|
254
|
+
*/
|
|
255
|
+
function truncateToolResults(messages, maxChars = exports.MAX_TOOL_RESULT_CHARS) {
|
|
256
|
+
return messages.map((msg) => {
|
|
257
|
+
if (msg.role !== 'tool' || !Array.isArray(msg.content))
|
|
258
|
+
return msg;
|
|
259
|
+
let changed = false;
|
|
260
|
+
const newContent = msg.content.map((part) => {
|
|
261
|
+
if (typeof part === 'object' &&
|
|
262
|
+
part !== null &&
|
|
263
|
+
'type' in part &&
|
|
264
|
+
part.type === 'tool-result') {
|
|
265
|
+
const resultStr = typeof part.result === 'string'
|
|
266
|
+
? part.result
|
|
267
|
+
: JSON.stringify(part.result);
|
|
268
|
+
if (resultStr.length > maxChars) {
|
|
269
|
+
changed = true;
|
|
270
|
+
return {
|
|
271
|
+
...part,
|
|
272
|
+
result: resultStr.slice(0, maxChars) +
|
|
273
|
+
`\n...[truncated from ${resultStr.length} to ${maxChars} chars]`,
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
return part;
|
|
278
|
+
});
|
|
279
|
+
return changed ? { ...msg, content: newContent } : msg;
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Rough-but-safe token estimator for pre-flight checks.
|
|
284
|
+
* Uses 3.6 chars/token (instead of 4) for a ~10% safety margin,
|
|
285
|
+
* since tool-result tokens can be denser than natural language.
|
|
286
|
+
*/
|
|
287
|
+
function estimateHistoryTokens(history) {
|
|
288
|
+
let chars = 0;
|
|
289
|
+
for (const msg of history) {
|
|
290
|
+
chars += JSON.stringify(msg.content).length;
|
|
291
|
+
}
|
|
292
|
+
return Math.ceil(chars / 3.6);
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Progressively drop oldest messages until estimated tokens fit within budget.
|
|
296
|
+
* Always keeps at least the last 6 messages so the model has some context.
|
|
297
|
+
* Prepends a synthetic truncation notice.
|
|
298
|
+
*/
|
|
299
|
+
function emergencyTruncate(history, tokenBudget, systemPrompt, currentUserMessage) {
|
|
300
|
+
const systemTokens = Math.ceil(systemPrompt.length / 4);
|
|
301
|
+
const historyBudget = tokenBudget - systemTokens;
|
|
302
|
+
const taskHint = currentUserMessage
|
|
303
|
+
? `\n\nThe user's most recent request was: ${currentUserMessage.slice(0, 500)}`
|
|
304
|
+
: '';
|
|
305
|
+
if (historyBudget <= 0) {
|
|
306
|
+
// System prompt alone exceeds budget — keep last 6 messages anyway
|
|
307
|
+
const kept = history.slice(-6);
|
|
308
|
+
return [
|
|
309
|
+
{ role: 'user', content: `[Earlier conversation was truncated to fit context window. Focus on the most recent messages below.]${taskHint}` },
|
|
310
|
+
{ role: 'assistant', content: 'Understood. Continuing with limited context.' },
|
|
311
|
+
...kept,
|
|
312
|
+
];
|
|
313
|
+
}
|
|
314
|
+
// Walk backward, accumulating estimated tokens
|
|
315
|
+
let accumulated = 0;
|
|
316
|
+
let cutoff = history.length;
|
|
317
|
+
for (let i = history.length - 1; i >= 0; i--) {
|
|
318
|
+
const msgTokens = Math.ceil(JSON.stringify(history[i].content).length / 3.6);
|
|
319
|
+
if (accumulated + msgTokens > historyBudget) {
|
|
320
|
+
cutoff = i + 1;
|
|
321
|
+
break;
|
|
322
|
+
}
|
|
323
|
+
accumulated += msgTokens;
|
|
324
|
+
if (i === 0)
|
|
325
|
+
cutoff = 0;
|
|
326
|
+
}
|
|
327
|
+
// Always keep at least 6 messages (covers 1-2 complete user turns with tool calls)
|
|
328
|
+
const minKeep = Math.max(0, history.length - 6);
|
|
329
|
+
if (cutoff > minKeep)
|
|
330
|
+
cutoff = minKeep;
|
|
331
|
+
// Align cutoff backward to a 'user' message boundary so the kept
|
|
332
|
+
// slice never starts with an orphaned 'tool' or 'assistant' message
|
|
333
|
+
// (which would violate provider role-ordering requirements).
|
|
334
|
+
// Searching backward (instead of forward) preserves the min-keep guarantee.
|
|
335
|
+
if (cutoff > 0 && cutoff < history.length && history[cutoff].role !== 'user') {
|
|
336
|
+
let aligned = cutoff;
|
|
337
|
+
while (aligned > 0 && history[aligned].role !== 'user') {
|
|
338
|
+
aligned--;
|
|
339
|
+
}
|
|
340
|
+
cutoff = aligned;
|
|
341
|
+
}
|
|
342
|
+
const kept = history.slice(cutoff);
|
|
343
|
+
if (cutoff === 0) {
|
|
344
|
+
// Nothing was dropped
|
|
345
|
+
return history;
|
|
346
|
+
}
|
|
347
|
+
const notice = {
|
|
348
|
+
role: 'user',
|
|
349
|
+
content: `[Earlier conversation was truncated to fit context window. Focus on the most recent messages below.]${taskHint}`,
|
|
350
|
+
};
|
|
351
|
+
const ack = {
|
|
352
|
+
role: 'assistant',
|
|
353
|
+
content: 'Understood. Continuing with limited context.',
|
|
354
|
+
};
|
|
355
|
+
return [notice, ack, ...kept];
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Detect token overflow errors from various providers.
|
|
359
|
+
* Covers Anthropic, OpenAI, and xAI error message patterns.
|
|
360
|
+
*/
|
|
361
|
+
function isTokenOverflowError(message) {
|
|
362
|
+
return /maximum.*prompt.*length|prompt.*too.*long|context.*length.*exceeded|maximum.*context.*length|token.*limit/i.test(message);
|
|
363
|
+
}
|
|
235
364
|
function extractText(msg) {
|
|
236
365
|
if (typeof msg.content === 'string')
|
|
237
366
|
return msg.content;
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
package/dist/cron/runner.js
CHANGED
|
@@ -41,6 +41,9 @@ const zod_1 = require("zod");
|
|
|
41
41
|
const index_js_1 = require("../providers/index.js");
|
|
42
42
|
const config_js_1 = require("../config.js");
|
|
43
43
|
const memory_js_1 = require("../memory.js");
|
|
44
|
+
const rag_js_1 = require("../rag.js");
|
|
45
|
+
const memory_context_js_1 = require("../memory-context.js");
|
|
46
|
+
const logger_js_1 = require("../logger.js");
|
|
44
47
|
const shell_js_1 = require("../tools/shell.js");
|
|
45
48
|
const memory_js_2 = require("../tools/memory.js");
|
|
46
49
|
const datetime_js_1 = require("../tools/datetime.js");
|
|
@@ -63,6 +66,17 @@ async function runJob(job, log) {
|
|
|
63
66
|
const config = (0, config_js_1.loadConfig)();
|
|
64
67
|
const memoryStore = new memory_js_1.MemoryStore();
|
|
65
68
|
const store = new store_js_1.CronStore();
|
|
69
|
+
// Conditionally create RAGStore for memory context enrichment
|
|
70
|
+
let ragStore;
|
|
71
|
+
if (config.ragEnabled) {
|
|
72
|
+
try {
|
|
73
|
+
ragStore = new rag_js_1.RAGStore();
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
77
|
+
log(`RAG initialization failed, continuing without RAG: ${msg}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
66
80
|
const mcpManager = new mcp_js_1.MCPManager();
|
|
67
81
|
let mcpTools = {};
|
|
68
82
|
try {
|
|
@@ -133,12 +147,30 @@ async function runJob(job, log) {
|
|
|
133
147
|
cron_self_disable: selfDisableTool,
|
|
134
148
|
...mcpTools,
|
|
135
149
|
};
|
|
150
|
+
// RAG search using job prompt as query
|
|
151
|
+
let ragResults;
|
|
152
|
+
if (ragStore) {
|
|
153
|
+
try {
|
|
154
|
+
ragResults = await ragStore.search(job.prompt);
|
|
155
|
+
if (ragResults.length > 0) {
|
|
156
|
+
(0, logger_js_1.debugLog)('cron:rag', { jobId: job.id, query: job.prompt.slice(0, 100), results: ragResults.length });
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
catch (err) {
|
|
160
|
+
(0, logger_js_1.debugLog)('cron:rag:error', err instanceof Error ? err.message : String(err));
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
const enrichedPrompt = DAEMON_SYSTEM_PROMPT + (0, memory_context_js_1.buildMemoryContext)({
|
|
164
|
+
memoryStore,
|
|
165
|
+
ragResults,
|
|
166
|
+
includeScratch: false,
|
|
167
|
+
});
|
|
136
168
|
const result = await (0, ai_1.generateText)({
|
|
137
169
|
model: (0, index_js_1.getModel)(config.provider, config.model),
|
|
138
170
|
tools,
|
|
139
171
|
maxSteps: 20,
|
|
140
172
|
maxTokens: config.maxTokens,
|
|
141
|
-
system:
|
|
173
|
+
system: enrichedPrompt,
|
|
142
174
|
messages: [{ role: 'user', content: job.prompt }],
|
|
143
175
|
onStepFinish: ({ text, toolCalls, toolResults, usage, finishReason }) => {
|
|
144
176
|
const truncatedResults = (toolResults || []).map(tr => ({
|
package/dist/cron/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/cron/runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/cron/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface MemoryDomain {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
extractionPrompt: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const DEFAULT_DOMAIN = "general";
|
|
8
|
+
export declare const DOMAIN_REGISTRY: Record<string, MemoryDomain>;
|
|
9
|
+
export declare function getDomainIds(): string[];
|
|
10
|
+
export declare function getDomain(id: string): MemoryDomain;
|
package/dist/domains.js
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DOMAIN_REGISTRY = exports.DEFAULT_DOMAIN = void 0;
|
|
4
|
+
exports.getDomainIds = getDomainIds;
|
|
5
|
+
exports.getDomain = getDomain;
|
|
6
|
+
exports.DEFAULT_DOMAIN = 'general';
|
|
7
|
+
exports.DOMAIN_REGISTRY = {
|
|
8
|
+
'tool-usage': {
|
|
9
|
+
id: 'tool-usage',
|
|
10
|
+
name: 'Tool Usage Patterns',
|
|
11
|
+
description: 'Command sequences, tool interaction patterns, error resolutions, build/deploy workflows',
|
|
12
|
+
extractionPrompt: `You are a tool-usage pattern extractor. Extract facts about how tools, commands, and workflows are used in the conversation below.
|
|
13
|
+
|
|
14
|
+
Extract:
|
|
15
|
+
- Shell command sequences and pipelines that accomplished a task
|
|
16
|
+
- Tool interaction patterns (which tools were used together, in what order)
|
|
17
|
+
- Error messages encountered and how they were resolved
|
|
18
|
+
- File navigation paths and directory structures discovered
|
|
19
|
+
- Build, test, and deploy commands and workflows
|
|
20
|
+
- Package manager commands and dependency operations
|
|
21
|
+
- Git workflows and branching patterns
|
|
22
|
+
|
|
23
|
+
Do NOT extract:
|
|
24
|
+
- User preferences or communication style
|
|
25
|
+
- Project architecture or business requirements
|
|
26
|
+
- Generic knowledge any developer would know
|
|
27
|
+
- Greetings, filler, or conversational noise
|
|
28
|
+
- Task-specific transient details (e.g., "user asked to fix a typo on line 42")
|
|
29
|
+
|
|
30
|
+
Return a JSON array of strings. Each string should be a self-contained fact (understandable without the original conversation). Maximum 500 characters per fact. If there are no notable facts, return an empty array [].`,
|
|
31
|
+
},
|
|
32
|
+
'user-preferences': {
|
|
33
|
+
id: 'user-preferences',
|
|
34
|
+
name: 'User Preferences',
|
|
35
|
+
description: 'Communication style, workflow conventions, repeated instructions, naming preferences',
|
|
36
|
+
extractionPrompt: `You are a user preference extractor. Extract facts about the user's preferences, habits, and conventions from the conversation below.
|
|
37
|
+
|
|
38
|
+
Extract:
|
|
39
|
+
- Communication style preferences (verbosity, tone, format)
|
|
40
|
+
- Workflow conventions (branching strategy, commit style, review process)
|
|
41
|
+
- Repeated instructions or corrections the user has given
|
|
42
|
+
- Naming conventions and coding style preferences
|
|
43
|
+
- Tool and editor preferences
|
|
44
|
+
- Preferred approaches to problem solving
|
|
45
|
+
- Explicit "always do X" or "never do Y" directives
|
|
46
|
+
|
|
47
|
+
Do NOT extract:
|
|
48
|
+
- Shell commands, tool sequences, or error resolutions
|
|
49
|
+
- Project architecture, structure, or technical environment details
|
|
50
|
+
- Generic knowledge any developer would know
|
|
51
|
+
- Greetings, filler, or conversational noise
|
|
52
|
+
- Task-specific transient details (e.g., "user asked to fix a typo on line 42")
|
|
53
|
+
|
|
54
|
+
Return a JSON array of strings. Each string should be a self-contained fact (understandable without the original conversation). Maximum 500 characters per fact. If there are no notable facts, return an empty array [].`,
|
|
55
|
+
},
|
|
56
|
+
'general': {
|
|
57
|
+
id: 'general',
|
|
58
|
+
name: 'General Knowledge',
|
|
59
|
+
description: 'Project structure, architecture decisions, environment info, team context',
|
|
60
|
+
extractionPrompt: `You are a general knowledge extractor. Extract facts about the project, environment, and context from the conversation below.
|
|
61
|
+
|
|
62
|
+
Extract:
|
|
63
|
+
- Project structure, architecture, and design decisions
|
|
64
|
+
- Technical environment info (OS, languages, frameworks, versions)
|
|
65
|
+
- Team context, roles, and relationships mentioned
|
|
66
|
+
- Business requirements and domain concepts
|
|
67
|
+
- Configuration details and environment variables
|
|
68
|
+
- API endpoints, database schemas, or service dependencies
|
|
69
|
+
- Decisions made and their reasoning
|
|
70
|
+
|
|
71
|
+
Do NOT extract:
|
|
72
|
+
- Shell commands, tool sequences, or error resolutions
|
|
73
|
+
- User preferences, communication style, or workflow conventions
|
|
74
|
+
- Generic knowledge any developer would know
|
|
75
|
+
- Greetings, filler, or conversational noise
|
|
76
|
+
- Task-specific transient details (e.g., "user asked to fix a typo on line 42")
|
|
77
|
+
|
|
78
|
+
Return a JSON array of strings. Each string should be a self-contained fact (understandable without the original conversation). Maximum 500 characters per fact. If there are no notable facts, return an empty array [].`,
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
function getDomainIds() {
|
|
82
|
+
return Object.keys(exports.DOMAIN_REGISTRY);
|
|
83
|
+
}
|
|
84
|
+
function getDomain(id) {
|
|
85
|
+
return exports.DOMAIN_REGISTRY[id] ?? exports.DOMAIN_REGISTRY[exports.DEFAULT_DOMAIN];
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=domains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domains.js","sourceRoot":"","sources":["../src/domains.ts"],"names":[],"mappings":";;;AAsFA,oCAEC;AAED,8BAEC;AArFY,QAAA,cAAc,GAAG,SAAS,CAAC;AAE3B,QAAA,eAAe,GAAiC;IAC3D,YAAY,EAAE;QACZ,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,yFAAyF;QACtG,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;0NAkBoM;KACvN;IAED,kBAAkB,EAAE;QAClB,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,sFAAsF;QACnG,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;0NAkBoM;KACvN;IAED,SAAS,EAAE;QACT,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,2EAA2E;QACxF,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;0NAkBoM;KACvN;CACF,CAAC;AAEF,SAAgB,YAAY;IAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,uBAAe,CAAC,CAAC;AACtC,CAAC;AAED,SAAgB,SAAS,CAAC,EAAU;IAClC,OAAO,uBAAe,CAAC,EAAE,CAAC,IAAI,uBAAe,CAAC,sBAAc,CAAC,CAAC;AAChE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -39,15 +39,17 @@ const readline = __importStar(require("node:readline"));
|
|
|
39
39
|
const config_js_1 = require("./config.js");
|
|
40
40
|
const repl_js_1 = require("./repl.js");
|
|
41
41
|
const output_js_1 = require("./output.js");
|
|
42
|
+
const theme_js_1 = require("./theme.js");
|
|
42
43
|
const store_js_1 = require("./cron/store.js");
|
|
43
44
|
const cli_js_1 = require("./cron/cli.js");
|
|
44
45
|
const mcp_js_1 = require("./mcp.js");
|
|
45
46
|
const setup_js_1 = require("./setup.js");
|
|
47
|
+
const update_js_1 = require("./update.js");
|
|
46
48
|
const program = new commander_1.Command();
|
|
47
49
|
program
|
|
48
50
|
.name('bernard')
|
|
49
51
|
.description('Local CLI AI agent with multi-provider support')
|
|
50
|
-
.version(
|
|
52
|
+
.version((0, update_js_1.getLocalVersion)())
|
|
51
53
|
.option('-p, --provider <provider>', 'LLM provider (anthropic, openai, xai)')
|
|
52
54
|
.option('-m, --model <model>', 'Model name')
|
|
53
55
|
.option('-r, --resume', 'Resume the previous conversation')
|
|
@@ -59,6 +61,10 @@ program
|
|
|
59
61
|
provider: opts.provider,
|
|
60
62
|
model: opts.model,
|
|
61
63
|
});
|
|
64
|
+
if (!(0, theme_js_1.setTheme)(config.theme)) {
|
|
65
|
+
config.theme = theme_js_1.DEFAULT_THEME;
|
|
66
|
+
(0, theme_js_1.setTheme)(config.theme);
|
|
67
|
+
}
|
|
62
68
|
let alertContext;
|
|
63
69
|
if (opts.alert) {
|
|
64
70
|
const store = new store_js_1.CronStore();
|
|
@@ -84,6 +90,8 @@ The user has been notified and this session is open for them to review and act o
|
|
|
84
90
|
(0, output_js_1.printInfo)(` Time: ${alert.timestamp}\n`);
|
|
85
91
|
}
|
|
86
92
|
(0, output_js_1.printWelcome)(config.provider, config.model);
|
|
93
|
+
const prefs = (0, config_js_1.loadPreferences)();
|
|
94
|
+
(0, update_js_1.startupUpdateCheck)(!!prefs.autoUpdate);
|
|
87
95
|
await (0, repl_js_1.startRepl)(config, alertContext, !!opts.resume);
|
|
88
96
|
}
|
|
89
97
|
catch (err) {
|
|
@@ -307,5 +315,39 @@ program
|
|
|
307
315
|
process.exit(1);
|
|
308
316
|
}
|
|
309
317
|
});
|
|
318
|
+
program
|
|
319
|
+
.command('update')
|
|
320
|
+
.description('Check for and install updates')
|
|
321
|
+
.action(async () => {
|
|
322
|
+
try {
|
|
323
|
+
await (0, update_js_1.interactiveUpdate)();
|
|
324
|
+
}
|
|
325
|
+
catch (err) {
|
|
326
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
327
|
+
(0, output_js_1.printError)(message);
|
|
328
|
+
process.exit(1);
|
|
329
|
+
}
|
|
330
|
+
});
|
|
331
|
+
program
|
|
332
|
+
.command('auto-update <state>')
|
|
333
|
+
.description('Enable or disable automatic updates (on/off)')
|
|
334
|
+
.action((state) => {
|
|
335
|
+
const lower = state.toLowerCase();
|
|
336
|
+
if (lower !== 'on' && lower !== 'off') {
|
|
337
|
+
(0, output_js_1.printError)('Usage: bernard auto-update <on|off>');
|
|
338
|
+
process.exit(1);
|
|
339
|
+
}
|
|
340
|
+
const enabled = lower === 'on';
|
|
341
|
+
const prefs = (0, config_js_1.loadPreferences)();
|
|
342
|
+
(0, config_js_1.savePreferences)({
|
|
343
|
+
provider: prefs.provider || 'anthropic',
|
|
344
|
+
model: prefs.model || (0, config_js_1.getDefaultModel)(prefs.provider || 'anthropic'),
|
|
345
|
+
maxTokens: prefs.maxTokens,
|
|
346
|
+
shellTimeout: prefs.shellTimeout,
|
|
347
|
+
theme: prefs.theme,
|
|
348
|
+
autoUpdate: enabled,
|
|
349
|
+
});
|
|
350
|
+
(0, output_js_1.printInfo)(`Auto-update ${enabled ? 'enabled' : 'disabled'}.`);
|
|
351
|
+
});
|
|
310
352
|
program.parse();
|
|
311
353
|
//# sourceMappingURL=index.js.map
|