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.
Files changed (48) hide show
  1. package/README.md +16 -6
  2. package/dist/agent.d.ts +1 -0
  3. package/dist/agent.js +63 -35
  4. package/dist/agent.js.map +1 -1
  5. package/dist/config.d.ts +5 -0
  6. package/dist/config.js +21 -0
  7. package/dist/config.js.map +1 -1
  8. package/dist/context.d.ts +37 -1
  9. package/dist/context.js +170 -41
  10. package/dist/context.js.map +1 -1
  11. package/dist/cron/runner.js +33 -1
  12. package/dist/cron/runner.js.map +1 -1
  13. package/dist/domains.d.ts +10 -0
  14. package/dist/domains.js +87 -0
  15. package/dist/domains.js.map +1 -0
  16. package/dist/index.js +43 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/memory-context.d.ts +13 -0
  19. package/dist/memory-context.js +48 -0
  20. package/dist/memory-context.js.map +1 -0
  21. package/dist/output.js +35 -35
  22. package/dist/output.js.map +1 -1
  23. package/dist/rag-worker.d.ts +1 -1
  24. package/dist/rag-worker.js +9 -6
  25. package/dist/rag-worker.js.map +1 -1
  26. package/dist/rag.d.ts +12 -5
  27. package/dist/rag.js +47 -14
  28. package/dist/rag.js.map +1 -1
  29. package/dist/repl.js +92 -12
  30. package/dist/repl.js.map +1 -1
  31. package/dist/setup.js +17 -18
  32. package/dist/setup.js.map +1 -1
  33. package/dist/theme.d.ts +28 -0
  34. package/dist/theme.js +154 -0
  35. package/dist/theme.js.map +1 -0
  36. package/dist/tools/index.d.ts +11 -0
  37. package/dist/tools/index.js +2 -0
  38. package/dist/tools/index.js.map +1 -1
  39. package/dist/tools/subagent.d.ts +2 -1
  40. package/dist/tools/subagent.js +25 -5
  41. package/dist/tools/subagent.js.map +1 -1
  42. package/dist/tools/wait.d.ts +14 -0
  43. package/dist/tools/wait.js +28 -0
  44. package/dist/tools/wait.js.map +1 -0
  45. package/dist/update.d.ts +35 -0
  46. package/dist/update.js +233 -0
  47. package/dist/update.js.map +1 -0
  48. 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 notable facts from serialized conversation text via LLM.
133
- * Returns an empty array on any failure.
134
- * @internal
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 extractFacts(serializedText, config) {
126
+ async function extractDomainFacts(serializedText, config) {
137
127
  if (!serializedText.trim())
138
128
  return [];
139
- try {
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: FACT_EXTRACTION_PROMPT,
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
- return parsed
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
- catch (err) {
161
- (0, logger_js_1.debugLog)('context:extractFacts', `Failed: ${err instanceof Error ? err.message : String(err)}`);
162
- return [];
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
- ? extractFacts(serialized, config)
212
+ ? extractDomainFacts(serialized, config)
201
213
  : Promise.resolve([]);
202
- const [result, facts] = await Promise.all([summarizePromise, extractPromise]);
203
- // Store extracted facts fire-and-forget
204
- if (ragStore && facts.length > 0) {
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
- factsExtracted: facts.length,
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;
@@ -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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"}
@@ -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: DAEMON_SYSTEM_PROMPT,
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 => ({
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/cron/runner.ts"],"names":[],"mappings":"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"}
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;
@@ -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('0.1.0')
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