bernard-agent 0.3.1 → 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 +109 -38
  2. package/THIRD-PARTY-NOTICES +212 -0
  3. package/dist/agent.d.ts +32 -3
  4. package/dist/agent.js +63 -12
  5. package/dist/agent.js.map +1 -1
  6. package/dist/config.d.ts +67 -0
  7. package/dist/config.js +99 -31
  8. package/dist/config.js.map +1 -1
  9. package/dist/context.d.ts +7 -0
  10. package/dist/context.js +32 -20
  11. package/dist/context.js.map +1 -1
  12. package/dist/cron/cli.d.ts +7 -0
  13. package/dist/cron/cli.js +61 -5
  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 +12 -1
  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 +41 -18
  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 +77 -20
  28. package/dist/cron/runner.js.map +1 -1
  29. package/dist/cron/scheduler.d.ts +16 -0
  30. package/dist/cron/scheduler.js +24 -7
  31. package/dist/cron/scheduler.js.map +1 -1
  32. package/dist/cron/store.d.ts +32 -0
  33. package/dist/cron/store.js +64 -27
  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 +20 -1
  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 +55 -1
  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 +36 -2
  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 +116 -39
  56. package/dist/mcp.js.map +1 -1
  57. package/dist/memory-context.d.ts +4 -0
  58. package/dist/memory-context.js +4 -1
  59. package/dist/memory-context.js.map +1 -1
  60. package/dist/memory.d.ts +17 -0
  61. package/dist/memory.js +24 -10
  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 +46 -1
  67. package/dist/output.js +72 -11
  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 +70 -6
  78. package/dist/rag-query.js.map +1 -1
  79. package/dist/rag-worker.js.map +1 -1
  80. package/dist/rag.d.ts +41 -1
  81. package/dist/rag.js +125 -21
  82. package/dist/rag.js.map +1 -1
  83. package/dist/repl.d.ts +6 -0
  84. package/dist/repl.js +211 -44
  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 +8 -2
  91. package/dist/setup.js.map +1 -1
  92. package/dist/theme.d.ts +41 -0
  93. package/dist/theme.js +55 -5
  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 +17 -4
  97. package/dist/tools/cron-logs.js.map +1 -1
  98. package/dist/tools/cron.d.ts +18 -0
  99. package/dist/tools/cron.js +67 -11
  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 -325
  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 +25 -12
  112. package/dist/tools/mcp.js.map +1 -1
  113. package/dist/tools/memory.d.ts +14 -0
  114. package/dist/tools/memory.js +18 -3
  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 +16 -2
  121. package/dist/tools/shell.js.map +1 -1
  122. package/dist/tools/subagent.d.ts +18 -1
  123. package/dist/tools/subagent.js +27 -7
  124. package/dist/tools/subagent.js.map +1 -1
  125. package/dist/tools/time.d.ts +19 -0
  126. package/dist/tools/time.js +27 -4
  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 +29 -6
  134. package/dist/tools/web.js.map +1 -1
  135. package/dist/update.d.ts +5 -0
  136. package/dist/update.js +8 -7
  137. package/dist/update.js.map +1 -1
  138. package/package.json +11 -2
@@ -1,8 +1,14 @@
1
+ /** Options shared by all tool implementations. */
1
2
  export interface ToolOptions {
3
+ /** Maximum time in milliseconds a shell command may run before being killed. */
2
4
  shellTimeout: number;
5
+ /** Callback that prompts the user for confirmation before executing a dangerous command. */
3
6
  confirmDangerous: (command: string) => Promise<boolean>;
4
7
  }
8
+ /** Outcome of a shell tool invocation. */
5
9
  export interface ShellResult {
10
+ /** Combined stdout/stderr output of the command. */
6
11
  output: string;
12
+ /** `true` when the command exited with a non-zero status or timed out. */
7
13
  is_error: boolean;
8
14
  }
@@ -1,6 +1,9 @@
1
1
  import { z } from 'zod';
2
+ /** Upper bound for the wait tool's delay (5 minutes). */
2
3
  export declare const MAX_WAIT_SECONDS = 300;
4
+ /** Lower bound for the wait tool's delay. */
3
5
  export declare const MIN_WAIT_SECONDS = 0.1;
6
+ /** Creates a tool that pauses execution for a specified number of seconds. */
4
7
  export declare function createWaitTool(): import("ai").Tool<z.ZodObject<{
5
8
  seconds: z.ZodNumber;
6
9
  }, "strip", z.ZodTypeAny, {
@@ -4,8 +4,11 @@ exports.MIN_WAIT_SECONDS = exports.MAX_WAIT_SECONDS = void 0;
4
4
  exports.createWaitTool = createWaitTool;
5
5
  const ai_1 = require("ai");
6
6
  const zod_1 = require("zod");
7
+ /** Upper bound for the wait tool's delay (5 minutes). */
7
8
  exports.MAX_WAIT_SECONDS = 300;
9
+ /** Lower bound for the wait tool's delay. */
8
10
  exports.MIN_WAIT_SECONDS = 0.1;
11
+ /** Creates a tool that pauses execution for a specified number of seconds. */
9
12
  function createWaitTool() {
10
13
  return (0, ai_1.tool)({
11
14
  description: 'Pause execution for a specified number of seconds. ' +
@@ -1 +1 @@
1
- {"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/tools/wait.ts"],"names":[],"mappings":";;;AAMA,wCAmBC;AAzBD,2BAA0B;AAC1B,6BAAwB;AAEX,QAAA,gBAAgB,GAAG,GAAG,CAAC;AACvB,QAAA,gBAAgB,GAAG,GAAG,CAAC;AAEpC,SAAgB,cAAc;IAC5B,OAAO,IAAA,SAAI,EAAC;QACV,WAAW,EACT,qDAAqD;YACrD,2DAA2D;YAC3D,qDAAqD;YACrD,QAAQ,wBAAgB,WAAW,wBAAgB,IAAI;QACzD,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,OAAC;iBACP,MAAM,EAAE;iBACR,GAAG,CAAC,wBAAgB,CAAC;iBACrB,GAAG,CAAC,wBAAgB,CAAC;iBACrB,QAAQ,CAAC,qCAAqC,CAAC;SACnD,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAmB,EAAE;YAC9C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;YACpE,OAAO,UAAU,OAAO,UAAU,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAChE,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/tools/wait.ts"],"names":[],"mappings":";;;AASA,wCAmBC;AA5BD,2BAA0B;AAC1B,6BAAwB;AAExB,yDAAyD;AAC5C,QAAA,gBAAgB,GAAG,GAAG,CAAC;AACpC,6CAA6C;AAChC,QAAA,gBAAgB,GAAG,GAAG,CAAC;AAEpC,8EAA8E;AAC9E,SAAgB,cAAc;IAC5B,OAAO,IAAA,SAAI,EAAC;QACV,WAAW,EACT,qDAAqD;YACrD,2DAA2D;YAC3D,qDAAqD;YACrD,QAAQ,wBAAgB,WAAW,wBAAgB,IAAI;QACzD,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,OAAC;iBACP,MAAM,EAAE;iBACR,GAAG,CAAC,wBAAgB,CAAC;iBACrB,GAAG,CAAC,wBAAgB,CAAC;iBACrB,QAAQ,CAAC,qCAAqC,CAAC;SACnD,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAmB,EAAE;YAC9C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;YACpE,OAAO,UAAU,OAAO,UAAU,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAChE,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1,4 +1,10 @@
1
1
  import { z } from 'zod';
2
+ /**
3
+ * Creates the web-read tool that fetches a URL and converts its HTML to markdown.
4
+ *
5
+ * Non-content elements (nav, footer, scripts, etc.) are stripped before conversion.
6
+ * Output is truncated to {@link MAX_OUTPUT_CHARS} characters.
7
+ */
2
8
  export declare function createWebReadTool(): import("ai").Tool<z.ZodObject<{
3
9
  url: z.ZodString;
4
10
  selector: z.ZodOptional<z.ZodString>;
package/dist/tools/web.js CHANGED
@@ -41,21 +41,42 @@ const ai_1 = require("ai");
41
41
  const zod_1 = require("zod");
42
42
  const cheerio = __importStar(require("cheerio"));
43
43
  const turndown_1 = __importDefault(require("turndown"));
44
+ /** CSS selectors for elements stripped before HTML-to-markdown conversion. */
44
45
  const STRIP_SELECTORS = [
45
- 'script', 'style', 'nav', 'footer', 'header', 'iframe',
46
- 'noscript', 'svg', '[role="navigation"]', '[role="banner"]',
46
+ 'script',
47
+ 'style',
48
+ 'nav',
49
+ 'footer',
50
+ 'header',
51
+ 'iframe',
52
+ 'noscript',
53
+ 'svg',
54
+ '[role="navigation"]',
55
+ '[role="banner"]',
47
56
  '[aria-hidden="true"]',
48
57
  ];
49
- const MAX_HTML_BYTES = 1_000_000; // 1MB
58
+ /** Maximum raw HTML size accepted before truncation (1 MB). */
59
+ const MAX_HTML_BYTES = 1_000_000;
60
+ /** Maximum character length of the returned markdown output. */
50
61
  const MAX_OUTPUT_CHARS = 20_000;
62
+ /** HTTP fetch timeout in milliseconds. */
51
63
  const FETCH_TIMEOUT_MS = 15_000;
52
64
  const USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36';
65
+ /**
66
+ * Creates the web-read tool that fetches a URL and converts its HTML to markdown.
67
+ *
68
+ * Non-content elements (nav, footer, scripts, etc.) are stripped before conversion.
69
+ * Output is truncated to {@link MAX_OUTPUT_CHARS} characters.
70
+ */
53
71
  function createWebReadTool() {
54
72
  return (0, ai_1.tool)({
55
73
  description: 'Fetch a web page by URL and return its content as markdown. Useful for reading documentation, articles, Stack Overflow answers, GitHub pages, or any URL.',
56
74
  parameters: zod_1.z.object({
57
75
  url: zod_1.z.string().describe('The URL to fetch (must start with http:// or https://)'),
58
- selector: zod_1.z.string().optional().describe('Optional CSS selector to extract specific content (e.g., "article", "main", ".post-body")'),
76
+ selector: zod_1.z
77
+ .string()
78
+ .optional()
79
+ .describe('Optional CSS selector to extract specific content (e.g., "article", "main", ".post-body")'),
59
80
  }),
60
81
  execute: async ({ url, selector }) => {
61
82
  // Validate URL
@@ -68,7 +89,7 @@ function createWebReadTool() {
68
89
  signal: AbortSignal.timeout(FETCH_TIMEOUT_MS),
69
90
  headers: {
70
91
  'User-Agent': USER_AGENT,
71
- 'Accept': 'text/html',
92
+ Accept: 'text/html',
72
93
  },
73
94
  });
74
95
  }
@@ -80,7 +101,9 @@ function createWebReadTool() {
80
101
  return `Error: HTTP ${response.status} ${response.statusText}`;
81
102
  }
82
103
  const contentType = response.headers.get('content-type') || '';
83
- if (!contentType.includes('text/html') && !contentType.includes('text/plain') && !contentType.includes('application/xhtml')) {
104
+ if (!contentType.includes('text/html') &&
105
+ !contentType.includes('text/plain') &&
106
+ !contentType.includes('application/xhtml')) {
84
107
  return `Error: Non-HTML content type (${contentType}). This tool only reads web pages.`;
85
108
  }
86
109
  let html;
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/tools/web.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/tools/web.ts"],"names":[],"mappings":"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"}
package/dist/update.d.ts CHANGED
@@ -1,7 +1,12 @@
1
+ /** Result of comparing local and registry versions. */
1
2
  interface UpdateCheckResult {
3
+ /** `true` when the registry version is newer than the installed version. */
2
4
  updateAvailable: boolean;
5
+ /** Currently installed semver string. */
3
6
  currentVersion: string;
7
+ /** Latest semver string from the npm registry. */
4
8
  latestVersion: string;
9
+ /** `true` if the result was served from the local 24-hour cache. */
5
10
  cached: boolean;
6
11
  }
7
12
  /**
package/dist/update.js CHANGED
@@ -42,12 +42,11 @@ exports.startupUpdateCheck = startupUpdateCheck;
42
42
  exports.interactiveUpdate = interactiveUpdate;
43
43
  const https = __importStar(require("node:https"));
44
44
  const path = __importStar(require("node:path"));
45
- const os = __importStar(require("node:os"));
46
45
  const fs = __importStar(require("node:fs"));
47
46
  const node_child_process_1 = require("node:child_process");
48
47
  const output_js_1 = require("./output.js");
48
+ const paths_js_1 = require("./paths.js");
49
49
  const SEMVER_RE = /^\d+\.\d+\.\d+$/;
50
- const CACHE_PATH = path.join(os.homedir(), '.bernard', 'update-check.json');
51
50
  const CACHE_TTL_MS = 24 * 60 * 60 * 1000; // 24 hours
52
51
  const PACKAGE_NAME = 'bernard-agent';
53
52
  /**
@@ -119,11 +118,13 @@ function fetchLatestVersion() {
119
118
  }
120
119
  function readCache() {
121
120
  try {
122
- const raw = fs.readFileSync(CACHE_PATH, 'utf-8');
121
+ const raw = fs.readFileSync(paths_js_1.UPDATE_CACHE_PATH, 'utf-8');
123
122
  const parsed = JSON.parse(raw);
124
123
  if (typeof parsed.lastCheck === 'string' &&
125
- typeof parsed.latestVersion === 'string' && SEMVER_RE.test(parsed.latestVersion) &&
126
- typeof parsed.currentVersion === 'string' && SEMVER_RE.test(parsed.currentVersion)) {
124
+ typeof parsed.latestVersion === 'string' &&
125
+ SEMVER_RE.test(parsed.latestVersion) &&
126
+ typeof parsed.currentVersion === 'string' &&
127
+ SEMVER_RE.test(parsed.currentVersion)) {
127
128
  return parsed;
128
129
  }
129
130
  return null;
@@ -133,11 +134,11 @@ function readCache() {
133
134
  }
134
135
  }
135
136
  function writeCache(data) {
136
- const dir = path.dirname(CACHE_PATH);
137
+ const dir = path.dirname(paths_js_1.UPDATE_CACHE_PATH);
137
138
  if (!fs.existsSync(dir)) {
138
139
  fs.mkdirSync(dir, { recursive: true });
139
140
  }
140
- fs.writeFileSync(CACHE_PATH, JSON.stringify(data, null, 2) + '\n');
141
+ fs.writeFileSync(paths_js_1.UPDATE_CACHE_PATH, JSON.stringify(data, null, 2) + '\n');
141
142
  }
142
143
  function isCacheFresh(cache) {
143
144
  const age = Date.now() - new Date(cache.lastCheck).getTime();
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bernard-agent",
3
- "version": "0.3.1",
3
+ "version": "0.5.0",
4
4
  "description": "Local CLI AI agent with multi-provider support",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -12,6 +12,10 @@
12
12
  "start": "node dist/index.js",
13
13
  "test": "vitest run",
14
14
  "test:watch": "vitest",
15
+ "lint": "eslint src/",
16
+ "lint:fix": "eslint src/ --fix",
17
+ "format": "prettier --write \"src/**/*.{ts,md}\" \"docs/**/*.{html,css,md}\" \"*.md\"",
18
+ "format:check": "prettier --check \"src/**/*.{ts,md}\" \"docs/**/*.{html,css,md}\" \"*.md\"",
15
19
  "prepublishOnly": "npm run build"
16
20
  },
17
21
  "repository": {
@@ -37,12 +41,13 @@
37
41
  "ai-sdk"
38
42
  ],
39
43
  "engines": {
40
- "node": ">=20.0.0"
44
+ "node": ">=20.9.0"
41
45
  },
42
46
  "files": [
43
47
  "dist",
44
48
  "README.md",
45
49
  "LICENSE",
50
+ "THIRD-PARTY-NOTICES",
46
51
  ".env.example"
47
52
  ],
48
53
  "dependencies": {
@@ -66,8 +71,12 @@
66
71
  "@types/node-cron": "^3.0.11",
67
72
  "@types/node-notifier": "^8.0.5",
68
73
  "@types/turndown": "^5.0.6",
74
+ "eslint": "^9.39.2",
75
+ "eslint-config-prettier": "^10.1.8",
76
+ "prettier": "^3.8.1",
69
77
  "tsx": "^4.19.0",
70
78
  "typescript": "^5.7.0",
79
+ "typescript-eslint": "^8.56.0",
71
80
  "vitest": "^1.6.1"
72
81
  }
73
82
  }